@k8slens/extensions 6.1.1-git.55960ef653.0 → 6.1.1-git.8447451241.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 +181 -126
  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
@@ -16022,17 +16022,6 @@ eval("\n\nconst mimicFn = (to, from) => {\n\tfor (const prop of Reflect.ownKeys(
16022
16022
 
16023
16023
  /***/ }),
16024
16024
 
16025
- /***/ "./node_modules/mini-create-react-context/dist/esm/index.js":
16026
- /*!******************************************************************!*\
16027
- !*** ./node_modules/mini-create-react-context/dist/esm/index.js ***!
16028
- \******************************************************************/
16029
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16030
-
16031
- "use strict";
16032
- 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 react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n\n\n\n\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (true) {\n (0,tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object.isRequired), _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object), _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = react__WEBPACK_IMPORTED_MODULE_0__.createContext || createReactContext;\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (index);\n\n\n//# sourceURL=webpack://open-lens/./node_modules/mini-create-react-context/dist/esm/index.js?");
16033
-
16034
- /***/ }),
16035
-
16036
16025
  /***/ "./node_modules/minimatch/minimatch.js":
16037
16026
  /*!*********************************************!*\
16038
16027
  !*** ./node_modules/minimatch/minimatch.js ***!
@@ -25522,7 +25511,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
25522
25511
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25523
25512
 
25524
25513
  "use strict";
25525
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MemoryRouter\": () => (/* binding */ MemoryRouter),\n/* harmony export */ \"Prompt\": () => (/* binding */ Prompt),\n/* harmony export */ \"Redirect\": () => (/* binding */ Redirect),\n/* harmony export */ \"Route\": () => (/* binding */ Route),\n/* harmony export */ \"Router\": () => (/* binding */ Router),\n/* harmony export */ \"StaticRouter\": () => (/* binding */ StaticRouter),\n/* harmony export */ \"Switch\": () => (/* binding */ Switch),\n/* harmony export */ \"__HistoryContext\": () => (/* binding */ historyContext),\n/* harmony export */ \"__RouterContext\": () => (/* binding */ context),\n/* harmony export */ \"generatePath\": () => (/* binding */ generatePath),\n/* harmony export */ \"matchPath\": () => (/* binding */ matchPath),\n/* harmony export */ \"useHistory\": () => (/* binding */ useHistory),\n/* harmony export */ \"useLocation\": () => (/* binding */ useLocation),\n/* harmony export */ \"useParams\": () => (/* binding */ useParams),\n/* harmony export */ \"useRouteMatch\": () => (/* binding */ useRouteMatch),\n/* harmony export */ \"withRouter\": () => (/* binding */ withRouter)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! history */ \"./node_modules/history/esm/history.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var mini_create_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mini-create-react-context */ \"./node_modules/mini-create-react-context/dist/esm/index.js\");\n/* harmony import */ var tiny_invariant__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! tiny-invariant */ \"./node_modules/tiny-invariant/dist/tiny-invariant.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/react-router/node_modules/path-to-regexp/index.js\");\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(path_to_regexp__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-is */ \"./node_modules/react-router/node_modules/react-is/index.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = (0,mini_create_react_context__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n Router.propTypes = {\n children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),\n history: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object.isRequired),\n staticContext: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(prevProps.history === this.props.history, \"You cannot change <Router history>\") : 0;\n };\n}\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = (0,history__WEBPACK_IMPORTED_MODULE_10__.createMemoryHistory)(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n MemoryRouter.propTypes = {\n initialEntries: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().array),\n initialIndex: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number),\n getUserConfirmation: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func),\n keyLength: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node)\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You should not use <Prompt> outside a <Router>\") : 0 : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (true) {\n var messageType = prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string)]);\n Prompt.propTypes = {\n when: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = path_to_regexp__WEBPACK_IMPORTED_MODULE_4___default().compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You should not use <Redirect> outside a <Router>\") : 0 : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = (0,history__WEBPACK_IMPORTED_MODULE_10__.createLocation)(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = (0,history__WEBPACK_IMPORTED_MODULE_10__.createLocation)(prevProps.to);\n\n if (!(0,history__WEBPACK_IMPORTED_MODULE_10__.locationsAreEqual)(prevLocation, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (true) {\n Redirect.propTypes = {\n push: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n from: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),\n to: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = path_to_regexp__WEBPACK_IMPORTED_MODULE_4___default()(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return react__WEBPACK_IMPORTED_MODULE_1__.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You should not use <Route> outside a <Router>\") : 0 : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? true ? evalChildrenDev(children, props, _this.props.path) : 0 : children : component ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? true ? evalChildrenDev(children, props, _this.props.path) : 0 : null);\n });\n };\n\n return Route;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n Route.propTypes = {\n children: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node)]),\n component: function component(props, propName) {\n if (props[propName] && !(0,react_is__WEBPACK_IMPORTED_MODULE_5__.isValidElementType)(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n location: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object),\n path: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), prop_types__WEBPACK_IMPORTED_MODULE_8___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_8___default().string))]),\n render: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func),\n sensitive: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n strict: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)\n };\n\n Route.prototype.componentDidMount = function () {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(this.props.location && !prevProps.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : (0,history__WEBPACK_IMPORTED_MODULE_10__.createPath)(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You cannot %s with <StaticRouter>\", methodName) : 0 ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, (0,history__WEBPACK_IMPORTED_MODULE_10__.createLocation)(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, (0,history__WEBPACK_IMPORTED_MODULE_10__.createLocation)(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Router, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n StaticRouter.propTypes = {\n basename: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),\n context: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object),\n location: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : 0;\n };\n}\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You should not use <Switch> outside a <Router>\") : 0 : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n\n react__WEBPACK_IMPORTED_MODULE_1__.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n Switch.propTypes = {\n children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),\n location: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(this.props.location && !prevProps.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : 0 : void 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (true) {\n C.propTypes = {\n wrappedComponentRef: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)])\n };\n }\n\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_7___default()(C, Component);\n}\n\nvar useContext = react__WEBPACK_IMPORTED_MODULE_1__.useContext;\nfunction useHistory() {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You must use React >= 16.8 in order to use useHistory()\") : 0 : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You must use React >= 16.8 in order to use useLocation()\") : 0 : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You must use React >= 16.8 in order to use useParams()\") : 0 : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : 0 : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (true) {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\n\n//# sourceMappingURL=react-router.js.map\n\n\n//# sourceURL=webpack://open-lens/./node_modules/react-router/esm/react-router.js?");
25514
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MemoryRouter\": () => (/* binding */ MemoryRouter),\n/* harmony export */ \"Prompt\": () => (/* binding */ Prompt),\n/* harmony export */ \"Redirect\": () => (/* binding */ Redirect),\n/* harmony export */ \"Route\": () => (/* binding */ Route),\n/* harmony export */ \"Router\": () => (/* binding */ Router),\n/* harmony export */ \"StaticRouter\": () => (/* binding */ StaticRouter),\n/* harmony export */ \"Switch\": () => (/* binding */ Switch),\n/* harmony export */ \"__HistoryContext\": () => (/* binding */ historyContext),\n/* harmony export */ \"__RouterContext\": () => (/* binding */ context),\n/* harmony export */ \"generatePath\": () => (/* binding */ generatePath),\n/* harmony export */ \"matchPath\": () => (/* binding */ matchPath),\n/* harmony export */ \"useHistory\": () => (/* binding */ useHistory),\n/* harmony export */ \"useLocation\": () => (/* binding */ useLocation),\n/* harmony export */ \"useParams\": () => (/* binding */ useParams),\n/* harmony export */ \"useRouteMatch\": () => (/* binding */ useRouteMatch),\n/* harmony export */ \"withRouter\": () => (/* binding */ withRouter)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! history */ \"./node_modules/history/esm/history.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var tiny_invariant__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! tiny-invariant */ \"./node_modules/tiny-invariant/dist/tiny-invariant.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/react-router/node_modules/path-to-regexp/index.js\");\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path_to_regexp__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-is */ \"./node_modules/react-router/node_modules/react-is/index.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\n\n\n\n\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (true) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object.isRequired), _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object), _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = react__WEBPACK_IMPORTED_MODULE_1__.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n Router.propTypes = {\n children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),\n history: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object.isRequired),\n staticContext: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(prevProps.history === this.props.history, \"You cannot change <Router history>\") : 0;\n };\n}\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = (0,history__WEBPACK_IMPORTED_MODULE_9__.createMemoryHistory)(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n MemoryRouter.propTypes = {\n initialEntries: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().array),\n initialIndex: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number),\n getUserConfirmation: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func),\n keyLength: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node)\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You should not use <Prompt> outside a <Router>\") : 0 : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (true) {\n var messageType = prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string)]);\n Prompt.propTypes = {\n when: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = path_to_regexp__WEBPACK_IMPORTED_MODULE_3___default().compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You should not use <Redirect> outside a <Router>\") : 0 : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = (0,history__WEBPACK_IMPORTED_MODULE_9__.createLocation)(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = (0,history__WEBPACK_IMPORTED_MODULE_9__.createLocation)(prevProps.to);\n\n if (!(0,history__WEBPACK_IMPORTED_MODULE_9__.locationsAreEqual)(prevLocation, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (true) {\n Redirect.propTypes = {\n push: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n from: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),\n to: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = path_to_regexp__WEBPACK_IMPORTED_MODULE_3___default()(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return react__WEBPACK_IMPORTED_MODULE_1__.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You should not use <Route> outside a <Router>\") : 0 : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? true ? evalChildrenDev(children, props, _this.props.path) : 0 : children : component ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? true ? evalChildrenDev(children, props, _this.props.path) : 0 : null);\n });\n };\n\n return Route;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n Route.propTypes = {\n children: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node)]),\n component: function component(props, propName) {\n if (props[propName] && !(0,react_is__WEBPACK_IMPORTED_MODULE_4__.isValidElementType)(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n location: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object),\n path: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), prop_types__WEBPACK_IMPORTED_MODULE_8___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_8___default().string))]),\n render: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func),\n sensitive: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),\n strict: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)\n };\n\n Route.prototype.componentDidMount = function () {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(this.props.location && !prevProps.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : (0,history__WEBPACK_IMPORTED_MODULE_9__.createPath)(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You cannot %s with <StaticRouter>\", methodName) : 0 ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, (0,history__WEBPACK_IMPORTED_MODULE_9__.createLocation)(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, (0,history__WEBPACK_IMPORTED_MODULE_9__.createLocation)(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Router, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n StaticRouter.propTypes = {\n basename: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),\n context: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object),\n location: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : 0;\n };\n}\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You should not use <Switch> outside a <Router>\") : 0 : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n\n react__WEBPACK_IMPORTED_MODULE_1__.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(react__WEBPACK_IMPORTED_MODULE_1__.Component);\n\nif (true) {\n Switch.propTypes = {\n children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),\n location: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(this.props.location && !prevProps.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : 0;\n true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(context.Consumer, null, function (context) {\n !context ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : 0 : void 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (true) {\n C.propTypes = {\n wrappedComponentRef: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)])\n };\n }\n\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6___default()(C, Component);\n}\n\nvar useContext = react__WEBPACK_IMPORTED_MODULE_1__.useContext;\nfunction useHistory() {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You must use React >= 16.8 in order to use useHistory()\") : 0 : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You must use React >= 16.8 in order to use useLocation()\") : 0 : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You must use React >= 16.8 in order to use useParams()\") : 0 : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (true) {\n !(typeof useContext === \"function\") ? true ? (0,tiny_invariant__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : 0 : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (true) {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\n\n//# sourceMappingURL=react-router.js.map\n\n\n//# sourceURL=webpack://open-lens/./node_modules/react-router/esm/react-router.js?");
25526
25515
 
25527
25516
  /***/ }),
25528
25517
 
@@ -29594,7 +29583,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29594
29583
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29595
29584
 
29596
29585
  "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?");
29586
+ 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
29587
 
29599
29588
  /***/ }),
29600
29589
 
@@ -29616,7 +29605,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29616
29605
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29617
29606
 
29618
29607
  "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?");
29608
+ 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
29609
 
29621
29610
  /***/ }),
29622
29611
 
@@ -29847,7 +29836,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29847
29836
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29848
29837
 
29849
29838
  "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?");
29839
+ 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
29840
 
29852
29841
  /***/ }),
29853
29842
 
@@ -29858,7 +29847,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29858
29847
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29859
29848
 
29860
29849
  "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?");
29850
+ 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
29851
 
29863
29852
  /***/ }),
29864
29853
 
@@ -29880,7 +29869,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29880
29869
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29881
29870
 
29882
29871
  "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?");
29872
+ 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
29873
 
29885
29874
  /***/ }),
29886
29875
 
@@ -29895,6 +29884,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29895
29884
 
29896
29885
  /***/ }),
29897
29886
 
29887
+ /***/ "./src/common/fetch/fetch.injectable.ts":
29888
+ /*!**********************************************!*\
29889
+ !*** ./src/common/fetch/fetch.injectable.ts ***!
29890
+ \**********************************************/
29891
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29892
+
29893
+ "use strict";
29894
+ 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?");
29895
+
29896
+ /***/ }),
29897
+
29898
29898
  /***/ "./src/common/front-end-routing/front-end-route-injection-token.ts":
29899
29899
  /*!*************************************************************************!*\
29900
29900
  !*** ./src/common/front-end-routing/front-end-route-injection-token.ts ***!
@@ -30001,7 +30001,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30001
30001
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30002
30002
 
30003
30003
  "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?");
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_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
30005
 
30006
30006
  /***/ }),
30007
30007
 
@@ -30045,7 +30045,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30045
30045
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30046
30046
 
30047
30047
  "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?");
30048
+ 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
30049
 
30050
30050
  /***/ }),
30051
30051
 
@@ -30155,7 +30155,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30155
30155
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30156
30156
 
30157
30157
  "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?");
30158
+ 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
30159
 
30160
30160
  /***/ }),
30161
30161
 
@@ -30166,7 +30166,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30166
30166
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30167
30167
 
30168
30168
  "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?");
30169
+ 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
30170
 
30171
30171
  /***/ }),
30172
30172
 
@@ -30203,6 +30203,39 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30203
30203
 
30204
30204
  /***/ }),
30205
30205
 
30206
+ /***/ "./src/common/k8s-api/create-kube-api-for-cluster.injectable.ts":
30207
+ /*!**********************************************************************!*\
30208
+ !*** ./src/common/k8s-api/create-kube-api-for-cluster.injectable.ts ***!
30209
+ \**********************************************************************/
30210
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30211
+
30212
+ "use strict";
30213
+ 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?");
30214
+
30215
+ /***/ }),
30216
+
30217
+ /***/ "./src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts":
30218
+ /*!*****************************************************************************!*\
30219
+ !*** ./src/common/k8s-api/create-kube-api-for-remote-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 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?");
30225
+
30226
+ /***/ }),
30227
+
30228
+ /***/ "./src/common/k8s-api/create-kube-json-api.injectable.ts":
30229
+ /*!***************************************************************!*\
30230
+ !*** ./src/common/k8s-api/create-kube-json-api.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 _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?");
30236
+
30237
+ /***/ }),
30238
+
30206
30239
  /***/ "./src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts":
30207
30240
  /*!*****************************************************************************!*\
30208
30241
  !*** ./src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts ***!
@@ -30254,7 +30287,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30254
30287
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30255
30288
 
30256
30289
  "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?");
30290
+ 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
30291
 
30259
30292
  /***/ }),
30260
30293
 
@@ -30342,7 +30375,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30342
30375
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30343
30376
 
30344
30377
  "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?");
30378
+ 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
30379
 
30347
30380
  /***/ }),
30348
30381
 
@@ -30364,7 +30397,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30364
30397
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30365
30398
 
30366
30399
  "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?");
30400
+ 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
30401
 
30369
30402
  /***/ }),
30370
30403
 
@@ -30412,17 +30445,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30412
30445
 
30413
30446
  /***/ }),
30414
30447
 
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
30448
  /***/ "./src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts":
30427
30449
  /*!**********************************************************************************!*\
30428
30450
  !*** ./src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts ***!
@@ -30452,7 +30474,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30452
30474
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30453
30475
 
30454
30476
  "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?");
30477
+ 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
30478
 
30457
30479
  /***/ }),
30458
30480
 
@@ -30474,7 +30496,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30474
30496
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30475
30497
 
30476
30498
  "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?");
30499
+ 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
30500
 
30479
30501
  /***/ }),
30480
30502
 
@@ -30496,7 +30518,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30496
30518
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30497
30519
 
30498
30520
  "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?");
30521
+ 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
30522
 
30501
30523
  /***/ }),
30502
30524
 
@@ -30533,17 +30555,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30533
30555
 
30534
30556
  /***/ }),
30535
30557
 
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
30558
  /***/ "./src/common/k8s-api/endpoints/namespace.api.injectable.ts":
30548
30559
  /*!******************************************************************!*\
30549
30560
  !*** ./src/common/k8s-api/endpoints/namespace.api.injectable.ts ***!
@@ -30562,7 +30573,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30562
30573
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30563
30574
 
30564
30575
  "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?");
30576
+ 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
30577
 
30567
30578
  /***/ }),
30568
30579
 
@@ -30606,7 +30617,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30606
30617
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30607
30618
 
30608
30619
  "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?");
30620
+ 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
30621
 
30611
30622
  /***/ }),
30612
30623
 
@@ -30628,7 +30639,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30628
30639
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30629
30640
 
30630
30641
  "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?");
30642
+ 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
30643
 
30633
30644
  /***/ }),
30634
30645
 
@@ -30727,7 +30738,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30727
30738
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30728
30739
 
30729
30740
  "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?");
30741
+ 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
30742
 
30732
30743
  /***/ }),
30733
30744
 
@@ -30771,18 +30782,29 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30771
30782
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30772
30783
 
30773
30784
  "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?");
30785
+ 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
30786
 
30776
30787
  /***/ }),
30777
30788
 
30778
- /***/ "./src/common/k8s-api/endpoints/resource-applier.api.ts":
30779
- /*!**************************************************************!*\
30780
- !*** ./src/common/k8s-api/endpoints/resource-applier.api.ts ***!
30781
- \**************************************************************/
30789
+ /***/ "./src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.ts":
30790
+ /*!***************************************************************************************!*\
30791
+ !*** ./src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.ts ***!
30792
+ \***************************************************************************************/
30782
30793
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30783
30794
 
30784
30795
  "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?");
30796
+ 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?");
30797
+
30798
+ /***/ }),
30799
+
30800
+ /***/ "./src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.ts":
30801
+ /*!****************************************************************************************!*\
30802
+ !*** ./src/common/k8s-api/endpoints/resource-applier.api/request-update.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 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
30808
 
30787
30809
  /***/ }),
30788
30810
 
@@ -30852,6 +30874,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30852
30874
 
30853
30875
  /***/ }),
30854
30876
 
30877
+ /***/ "./src/common/k8s-api/endpoints/runtime-class.api.ts":
30878
+ /*!***********************************************************!*\
30879
+ !*** ./src/common/k8s-api/endpoints/runtime-class.api.ts ***!
30880
+ \***********************************************************/
30881
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30882
+
30883
+ "use strict";
30884
+ 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?");
30885
+
30886
+ /***/ }),
30887
+
30855
30888
  /***/ "./src/common/k8s-api/endpoints/secret.api.injectable.ts":
30856
30889
  /*!***************************************************************!*\
30857
30890
  !*** ./src/common/k8s-api/endpoints/secret.api.injectable.ts ***!
@@ -30947,7 +30980,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30947
30980
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30948
30981
 
30949
30982
  "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?");
30983
+ 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
30984
 
30952
30985
  /***/ }),
30953
30986
 
@@ -31325,17 +31358,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copyright (c) OpenLen
31325
31358
 
31326
31359
  /***/ }),
31327
31360
 
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
31361
  /***/ "./src/common/k8s-api/json-api.ts":
31340
31362
  /*!****************************************!*\
31341
31363
  !*** ./src/common/k8s-api/json-api.ts ***!
@@ -31343,7 +31365,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31343
31365
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31344
31366
 
31345
31367
  "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?");
31368
+ 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
31369
 
31348
31370
  /***/ }),
31349
31371
 
@@ -31365,7 +31387,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31365
31387
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31366
31388
 
31367
31389
  "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?");
31390
+ 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
31391
 
31370
31392
  /***/ }),
31371
31393
 
@@ -31387,7 +31409,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31387
31409
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31388
31410
 
31389
31411
  "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?");
31412
+ 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
31413
 
31392
31414
  /***/ }),
31393
31415
 
@@ -31420,7 +31442,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31420
31442
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31421
31443
 
31422
31444
  "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?");
31445
+ 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
31446
 
31425
31447
  /***/ }),
31426
31448
 
@@ -31464,7 +31486,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31464
31486
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31465
31487
 
31466
31488
  "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?");
31489
+ 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
31490
 
31469
31491
  /***/ }),
31470
31492
 
@@ -31501,6 +31523,39 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31501
31523
 
31502
31524
  /***/ }),
31503
31525
 
31526
+ /***/ "./src/common/path/get-dirname.injectable.ts":
31527
+ /*!***************************************************!*\
31528
+ !*** ./src/common/path/get-dirname.injectable.ts ***!
31529
+ \***************************************************/
31530
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31531
+
31532
+ "use strict";
31533
+ 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?");
31534
+
31535
+ /***/ }),
31536
+
31537
+ /***/ "./src/common/path/is-logical-child-path.injectable.ts":
31538
+ /*!*************************************************************!*\
31539
+ !*** ./src/common/path/is-logical-child-path.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 _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?");
31545
+
31546
+ /***/ }),
31547
+
31548
+ /***/ "./src/common/path/join-paths.injectable.ts":
31549
+ /*!**************************************************!*\
31550
+ !*** ./src/common/path/join-paths.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 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?");
31556
+
31557
+ /***/ }),
31558
+
31504
31559
  /***/ "./src/common/rbac.ts":
31505
31560
  /*!****************************!*\
31506
31561
  !*** ./src/common/rbac.ts ***!
@@ -31508,7 +31563,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31508
31563
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31509
31564
 
31510
31565
  "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?");
31566
+ 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
31567
 
31513
31568
  /***/ }),
31514
31569
 
@@ -31585,7 +31640,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31585
31640
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31586
31641
 
31587
31642
  "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?");
31643
+ 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
31644
 
31590
31645
  /***/ }),
31591
31646
 
@@ -31651,7 +31706,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31651
31706
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31652
31707
 
31653
31708
  "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?");
31709
+ 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
31710
 
31656
31711
  /***/ }),
31657
31712
 
@@ -31827,7 +31882,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31827
31882
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31828
31883
 
31829
31884
  "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?");
31885
+ 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
31886
 
31832
31887
  /***/ }),
31833
31888
 
@@ -31849,7 +31904,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31849
31904
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31850
31905
 
31851
31906
  "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?");
31907
+ 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
31908
 
31854
31909
  /***/ }),
31855
31910
 
@@ -31930,17 +31985,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31930
31985
 
31931
31986
  /***/ }),
31932
31987
 
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
31988
  /***/ "./src/common/utils/promise-exec.ts":
31945
31989
  /*!******************************************!*\
31946
31990
  !*** ./src/common/utils/promise-exec.ts ***!
@@ -32014,7 +32058,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32014
32058
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32015
32059
 
32016
32060
  "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?");
32061
+ 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
32062
 
32019
32063
  /***/ }),
32020
32064
 
@@ -32036,7 +32080,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32036
32080
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32037
32081
 
32038
32082
  "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?");
32083
+ 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
32084
 
32041
32085
  /***/ }),
32042
32086
 
@@ -32113,7 +32157,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32113
32157
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32114
32158
 
32115
32159
  "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?");
32160
+ 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
32161
 
32118
32162
  /***/ }),
32119
32163
 
@@ -32278,7 +32322,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32278
32322
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32279
32323
 
32280
32324
  "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?");
32325
+ 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
32326
 
32283
32327
  /***/ }),
32284
32328
 
@@ -32410,7 +32454,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32410
32454
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32411
32455
 
32412
32456
  "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?");
32457
+ 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
32458
 
32415
32459
  /***/ }),
32416
32460
 
@@ -32817,7 +32861,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32817
32861
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32818
32862
 
32819
32863
  "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?");
32864
+ 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
32865
 
32822
32866
  /***/ }),
32823
32867
 
@@ -32949,7 +32993,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32949
32993
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32950
32994
 
32951
32995
  "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?");
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 _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
32997
 
32954
32998
  /***/ }),
32955
32999
 
@@ -32993,7 +33037,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32993
33037
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32994
33038
 
32995
33039
  "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?");
33040
+ 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
33041
 
32998
33042
  /***/ }),
32999
33043
 
@@ -33004,7 +33048,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33004
33048
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33005
33049
 
33006
33050
  "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?");
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 _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
33052
 
33009
33053
  /***/ }),
33010
33054
 
@@ -33015,7 +33059,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33015
33059
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33016
33060
 
33017
33061
  "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?");
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 _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
33063
 
33020
33064
  /***/ }),
33021
33065
 
@@ -33081,7 +33125,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33081
33125
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33082
33126
 
33083
33127
  "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?");
33128
+ 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
33129
 
33086
33130
  /***/ }),
33087
33131
 
@@ -33587,7 +33631,29 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33587
33631
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33588
33632
 
33589
33633
  "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?");
33634
+ 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?");
33635
+
33636
+ /***/ }),
33637
+
33638
+ /***/ "./src/renderer/components/animate/default-enter-duration.injectable.ts":
33639
+ /*!******************************************************************************!*\
33640
+ !*** ./src/renderer/components/animate/default-enter-duration.injectable.ts ***!
33641
+ \******************************************************************************/
33642
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33643
+
33644
+ "use strict";
33645
+ 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?");
33646
+
33647
+ /***/ }),
33648
+
33649
+ /***/ "./src/renderer/components/animate/default-leave-duration.injectable.ts":
33650
+ /*!******************************************************************************!*\
33651
+ !*** ./src/renderer/components/animate/default-leave-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 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
33657
 
33592
33658
  /***/ }),
33593
33659
 
@@ -33598,7 +33664,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33598
33664
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33599
33665
 
33600
33666
  "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?");
33667
+ 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
33668
 
33603
33669
  /***/ }),
33604
33670
 
@@ -33609,7 +33675,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33609
33675
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33610
33676
 
33611
33677
  "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?");
33678
+ 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
33679
 
33614
33680
  /***/ }),
33615
33681
 
@@ -33818,7 +33884,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33818
33884
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33819
33885
 
33820
33886
  "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?");
33887
+ 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
33888
 
33823
33889
  /***/ }),
33824
33890
 
@@ -34269,18 +34335,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
34269
34335
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34270
34336
 
34271
34337
  "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?");
34338
+ 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
34339
 
34285
34340
  /***/ }),
34286
34341
 
@@ -35094,7 +35149,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35094
35149
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35095
35150
 
35096
35151
  "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?");
35152
+ 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
35153
 
35099
35154
  /***/ }),
35100
35155
 
@@ -35688,7 +35743,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35688
35743
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35689
35744
 
35690
35745
  "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?");
35746
+ 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
35747
 
35693
35748
  /***/ }),
35694
35749
 
@@ -35985,7 +36040,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35985
36040
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35986
36041
 
35987
36042
  "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?");
36043
+ 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
36044
 
35990
36045
  /***/ }),
35991
36046
 
@@ -35996,7 +36051,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35996
36051
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35997
36052
 
35998
36053
  "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?");
36054
+ 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
36055
 
36001
36056
  /***/ }),
36002
36057
 
@@ -36051,7 +36106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
36051
36106
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36052
36107
 
36053
36108
  "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?");
36109
+ 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
36110
 
36056
36111
  /***/ }),
36057
36112
 
@@ -36139,7 +36194,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
36139
36194
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36140
36195
 
36141
36196
  "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?");
36197
+ 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
36198
 
36144
36199
  /***/ }),
36145
36200
 
@@ -40528,7 +40583,7 @@ eval("module.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A log
40528
40583
  /***/ ((module) => {
40529
40584
 
40530
40585
  "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?");
40586
+ 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.4\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.55.0\",\"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.4.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
40587
 
40533
40588
  /***/ }),
40534
40589