@k8slens/extensions 6.3.0-git.126d4c7f23.0 → 6.3.0-git.9c64ddd59e.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.
- package/dist/src/common/app-event-bus/emit-event.injectable.d.ts +1 -1
- package/dist/src/common/app-paths/app-path-injection-token.d.ts +1 -1
- package/dist/src/common/app-paths/app-path-names.d.ts +1 -1
- package/dist/src/common/app-paths/app-paths-channel.d.ts +1 -1
- package/dist/src/common/catalog/catalog-entity.d.ts +7 -7
- package/dist/src/common/catalog/category-registry.d.ts +1 -1
- package/dist/src/common/catalog/has-category-for-entity.injectable.d.ts +1 -1
- package/dist/src/common/catalog/visit-entity-context-menu.injectable.d.ts +1 -1
- package/dist/src/common/catalog-entities/kubernetes-cluster.d.ts +1 -1
- package/dist/src/common/catalog-entities/web-link.d.ts +1 -1
- package/dist/src/common/cluster/authorization-review.injectable.d.ts +1 -1
- package/dist/src/common/cluster/create-cluster-injection-token.d.ts +1 -1
- package/dist/src/common/cluster/list-namespaces.injectable.d.ts +1 -1
- package/dist/src/common/cluster-store/get-by-id.injectable.d.ts +1 -1
- package/dist/src/common/cluster-store/read-cluster-config.injectable.d.ts +1 -1
- package/dist/src/common/cluster-types.d.ts +3 -3
- package/dist/src/common/error-reporting/initialize-sentry-reporting.injectable.d.ts +1 -1
- package/dist/src/common/event-emitter.d.ts +1 -1
- package/dist/src/common/fetch/download-binary.injectable.d.ts +1 -1
- package/dist/src/common/fetch/download-json.injectable.d.ts +1 -1
- package/dist/src/common/fetch/fetch.injectable.d.ts +3 -3
- package/dist/src/common/front-end-routing/app-navigation-channel.d.ts +1 -1
- package/dist/src/common/front-end-routing/cluster-frame-navigation-channel.d.ts +1 -1
- package/dist/src/common/front-end-routing/navigate-to-route-injection-token.d.ts +7 -7
- package/dist/src/common/front-end-routing/navigate-to-url-injection-token.d.ts +1 -1
- package/dist/src/common/front-end-routing/routes/catalog/navigate-to-catalog.injectable.d.ts +1 -1
- package/dist/src/common/front-end-routing/routes/cluster/helm/charts/navigate-to-helm-charts.injectable.d.ts +1 -1
- package/dist/src/common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable.d.ts +1 -1
- package/dist/src/common/front-end-routing/routes/cluster/network/port-forwards/navigate-to-port-forwards.injectable.d.ts +1 -1
- package/dist/src/common/front-end-routing/routes/cluster-view/navigate-to-cluster-view.injectable.d.ts +1 -1
- package/dist/src/common/front-end-routing/routes/entity-settings/navigate-to-entity-settings.injectable.d.ts +1 -1
- package/dist/src/common/fs/access-path.injectable.d.ts +1 -1
- package/dist/src/common/fs/copy.injectable.d.ts +1 -1
- package/dist/src/common/fs/create-read-file-stream.injectable.d.ts +1 -1
- package/dist/src/common/fs/delete-file.injectable.d.ts +1 -1
- package/dist/src/common/fs/ensure-dir.injectable.d.ts +1 -1
- package/dist/src/common/fs/extract-tar.injectable.d.ts +1 -1
- package/dist/src/common/fs/lstat.injectable.d.ts +1 -1
- package/dist/src/common/fs/move.injectable.d.ts +1 -1
- package/dist/src/common/fs/path-exists.injectable.d.ts +1 -1
- package/dist/src/common/fs/read-file-sync.injectable.d.ts +1 -1
- package/dist/src/common/fs/read-file.injectable.d.ts +1 -1
- package/dist/src/common/fs/read-json-file.injectable.d.ts +1 -1
- package/dist/src/common/fs/read-yaml-file.injectable.d.ts +1 -1
- package/dist/src/common/fs/remove-path.injectable.d.ts +1 -1
- package/dist/src/common/fs/stat/stat.injectable.d.ts +1 -1
- package/dist/src/common/fs/validate-directory.injectable.d.ts +1 -1
- package/dist/src/common/fs/watch/watch.injectable.d.ts +3 -3
- package/dist/src/common/fs/write-file.injectable.d.ts +1 -1
- package/dist/src/common/fs/write-json-file.injectable.d.ts +1 -1
- package/dist/src/common/helm/add-helm-repository-channel.d.ts +1 -1
- package/dist/src/common/helm/get-active-helm-repositories-channel.d.ts +1 -1
- package/dist/src/common/helm/helm-repo.d.ts +1 -1
- package/dist/src/common/helm/remove-helm-repository-channel.d.ts +1 -1
- package/dist/src/common/hotbars/add-hotbar.injectable.d.ts +1 -1
- package/dist/src/common/hotbars/types.d.ts +1 -1
- package/dist/src/common/ipc/broadcast-message.injectable.d.ts +1 -1
- package/dist/src/common/ipc/cluster.d.ts +1 -1
- package/dist/src/common/ipc/invalid-kubeconfig/index.d.ts +1 -1
- package/dist/src/common/k8s-api/api-manager/api-manager.d.ts +3 -3
- package/dist/src/common/k8s-api/create-json-api.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/create-kube-json-api-for-cluster.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/create-kube-json-api.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/custom-resource-definition.api.d.ts +2 -2
- package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-charts.injectable.d.ts +2 -2
- package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-readme.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-values.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-versions.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-charts.api.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-configuration.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-create.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-delete.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-details.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-history.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-releases.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-rollback.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-update.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-values.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.d.ts +2 -2
- package/dist/src/common/k8s-api/endpoints/ingress.api.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/limit-range.api.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-cluster-metrics-by-node-names.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-ingress-metrics.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-metrics-for-all-nodes.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-persistent-volume-claim-metrics.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-daemon-sets.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-deployments.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-jobs.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-replica-sets.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-stateful-sets.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-in-namespace.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/metrics.api/request-providers.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/network-policy.api.d.ts +2 -2
- package/dist/src/common/k8s-api/endpoints/pod.api.d.ts +2 -2
- package/dist/src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/resource-quota.api.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/types/preemption-policy.d.ts +1 -1
- package/dist/src/common/k8s-api/endpoints/types/subject.d.ts +1 -1
- package/dist/src/common/k8s-api/json-api.d.ts +4 -4
- package/dist/src/common/k8s-api/kube-api.d.ts +3 -3
- package/dist/src/common/k8s-api/kube-object.d.ts +10 -10
- package/dist/src/common/k8s-api/kube-object.store.d.ts +3 -3
- package/dist/src/common/k8s-api/kube-watch-event.d.ts +1 -1
- package/dist/src/common/kube-helpers/load-config-from-file.injectable.d.ts +1 -1
- package/dist/src/common/kube-helpers.d.ts +1 -1
- package/dist/src/common/path/get-absolute-path.injectable.d.ts +1 -1
- package/dist/src/common/path/get-basename.injectable.d.ts +1 -1
- package/dist/src/common/path/get-dirname.injectable.d.ts +1 -1
- package/dist/src/common/path/get-relative-path.injectable.d.ts +1 -1
- package/dist/src/common/path/is-logical-child-path.injectable.d.ts +1 -1
- package/dist/src/common/path/join-paths.injectable.d.ts +1 -1
- package/dist/src/common/path/resolve-path.injectable.d.ts +1 -1
- package/dist/src/common/path/resolve-tilde.injectable.d.ts +1 -1
- package/dist/src/common/rbac.d.ts +1 -1
- package/dist/src/common/root-frame/root-frame-rendered-channel.d.ts +1 -1
- package/dist/src/common/runnable/run-many-for.d.ts +2 -2
- package/dist/src/common/runnable/run-many-sync-for.d.ts +2 -2
- package/dist/src/common/terminal/channels.d.ts +1 -1
- package/dist/src/common/user-store/file-name-migration.injectable.d.ts +1 -1
- package/dist/src/common/user-store/preferences-helpers.d.ts +8 -8
- package/dist/src/common/utils/add-separator/add-separator.d.ts +1 -1
- package/dist/src/common/utils/async-result.d.ts +1 -1
- package/dist/src/common/utils/buildUrl.d.ts +1 -1
- package/dist/src/common/utils/channel/enlist-message-channel-listener-injection-token.d.ts +1 -1
- package/dist/src/common/utils/channel/message-channel-listener-injection-token.d.ts +1 -1
- package/dist/src/common/utils/composable-responsibilities/orderable/orderable.d.ts +1 -1
- package/dist/src/common/utils/composable-responsibilities/showable/showable.d.ts +1 -1
- package/dist/src/common/utils/composite/interfaces.d.ts +1 -1
- package/dist/src/common/utils/get-startable-stoppable.d.ts +2 -2
- package/dist/src/common/utils/is-allowed-resource.injectable.d.ts +1 -1
- package/dist/src/common/utils/iter.d.ts +1 -1
- package/dist/src/common/utils/observable-crate/impl.d.ts +1 -1
- package/dist/src/common/utils/open-link-in-browser.injectable.d.ts +1 -1
- package/dist/src/common/utils/resolve-system-proxy/resolve-system-proxy-channel.d.ts +1 -1
- package/dist/src/common/utils/resolve-system-proxy/resolve-system-proxy-injection-token.d.ts +1 -1
- package/dist/src/common/utils/sync-box/channels.d.ts +2 -2
- package/dist/src/common/utils/tar.d.ts +1 -1
- package/dist/src/common/utils/tuple.d.ts +2 -2
- package/dist/src/common/utils/type-narrowing.d.ts +2 -2
- package/dist/src/common/utils/types.d.ts +6 -6
- package/dist/src/common/utils/with-error-logging/with-error-logging.injectable.d.ts +1 -1
- package/dist/src/common/vars/application-information.injectable.d.ts +1 -1
- package/dist/src/extensions/common-api/types.d.ts +3 -3
- package/dist/src/extensions/extension-api.js +15 -15
- package/dist/src/extensions/extension-loader/create-extension-instance.token.d.ts +1 -1
- package/dist/src/extensions/extension-loader/extension-registrator-injection-token.d.ts +1 -1
- package/dist/src/extensions/lens-extension.d.ts +2 -2
- package/dist/src/extensions/main-api/power.d.ts +1 -1
- package/dist/src/features/application-menu/main/application-menu-item-composite.injectable.d.ts +1 -1
- package/dist/src/features/application-menu/main/menu-items/application-menu-item-injection-token.d.ts +9 -9
- package/dist/src/features/application-menu/main/menu.d.ts +1 -1
- package/dist/src/features/application-update/common/discovered-update-version/discovered-update-version.injectable.d.ts +1 -1
- package/dist/src/features/application-update/common/progress-of-update-download/progress-of-update-download.injectable.d.ts +1 -1
- package/dist/src/features/application-update/common/restart-and-install-update-channel.d.ts +1 -1
- package/dist/src/features/application-update/common/update-channels.d.ts +1 -1
- package/dist/src/features/application-update/common/update-is-being-downloaded/update-is-being-downloaded.injectable.d.ts +1 -1
- package/dist/src/features/application-update/common/updates-are-being-discovered/updates-are-being-discovered.injectable.d.ts +1 -1
- package/dist/src/features/application-update/main/check-for-updates/check-for-platform-updates/check-for-platform-updates.injectable.d.ts +2 -2
- package/dist/src/features/application-update/main/check-for-updates/check-for-updates-starting-from-channel.injectable.d.ts +1 -1
- package/dist/src/features/application-update/main/download-update/download-platform-update/download-platform-update.injectable.d.ts +1 -1
- package/dist/src/features/cluster/delete-dialog/common/clear-as-deleting-channel.d.ts +1 -1
- package/dist/src/features/cluster/delete-dialog/common/delete-channel.d.ts +1 -1
- package/dist/src/features/cluster/delete-dialog/common/set-as-deleting-channel.d.ts +1 -1
- package/dist/src/features/cluster/delete-dialog/renderer/request-clear-as-deleting.injectable.d.ts +1 -1
- package/dist/src/features/cluster/delete-dialog/renderer/request-delete.injectable.d.ts +1 -1
- package/dist/src/features/cluster/delete-dialog/renderer/request-set-as-deleting.injectable.d.ts +1 -1
- package/dist/src/features/helm-charts/child-features/preferences/renderer/helm-repositories-error-state.injectable.d.ts +1 -1
- package/dist/src/features/navigation/reload-page/common/channel.d.ts +1 -1
- package/dist/src/features/preferences/renderer/preference-items/preference-item-injection-token.d.ts +8 -8
- package/dist/src/features/preferences/renderer/preference-items/preference-tab-root.d.ts +1 -1
- package/dist/src/main/app-paths/get-electron-app-path/get-electron-app-path.d.ts +1 -1
- package/dist/src/main/catalog-sources/kubeconfig-sync/compute-diff.injectable.d.ts +1 -1
- package/dist/src/main/catalog-sources/kubeconfig-sync/config-to-models.injectable.d.ts +1 -1
- package/dist/src/main/catalog-sources/kubeconfig-sync/diff-changed-kubeconfig.injectable.d.ts +1 -1
- package/dist/src/main/catalog-sources/kubeconfig-sync/watch-file-changes.injectable.d.ts +1 -1
- package/dist/src/main/child-process/spawn.injectable.d.ts +1 -1
- package/dist/src/main/cluster-detectors/detector-registry.d.ts +1 -1
- package/dist/src/main/electron-app/features/show-message-popup.injectable.d.ts +1 -1
- package/dist/src/main/get-metrics.injectable.d.ts +1 -1
- package/dist/src/main/helm/exec-helm/exec-helm.injectable.d.ts +1 -1
- package/dist/src/main/helm/get-helm-env/get-helm-env.injectable.d.ts +1 -1
- package/dist/src/main/helm/helm-chart-manager-cache.injectable.d.ts +1 -1
- package/dist/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/call-for-kube-resources-by-manifest.injectable.d.ts +1 -1
- package/dist/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/exec-file-with-input/exec-file-with-input.injectable.d.ts +1 -1
- package/dist/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.injectable.d.ts +1 -1
- package/dist/src/main/ipc/ask-user-for-file-paths.injectable.d.ts +1 -1
- package/dist/src/main/k8s-request.injectable.d.ts +1 -1
- package/dist/src/main/kube-auth-proxy/create-kube-auth-proxy.injectable.d.ts +1 -1
- package/dist/src/main/kube-auth-proxy/get-kube-auth-proxy-certificate.d.ts +1 -1
- package/dist/src/main/kube-auth-proxy/wait-until-port-is-used/wait-until-port-is-used.injectable.d.ts +1 -1
- package/dist/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.d.ts +1 -1
- package/dist/src/main/lens-proxy/lens-proxy.d.ts +2 -2
- package/dist/src/main/logger/level.injectable.d.ts +1 -1
- package/dist/src/main/resource-applier/create-resource-applier.injectable.d.ts +1 -1
- package/dist/src/main/router/create-handler-for-route.injectable.d.ts +2 -2
- package/dist/src/main/router/parse-request.injectable.d.ts +1 -1
- package/dist/src/main/router/route.d.ts +3 -3
- package/dist/src/main/router/router-content-types.d.ts +1 -1
- package/dist/src/main/shell-session/create-shell-session.injectable.d.ts +1 -1
- package/dist/src/main/shell-session/local-shell-session/open.injectable.d.ts +1 -1
- package/dist/src/main/shell-session/shell-env-modifier/modify-terminal-shell-env.injectable.d.ts +1 -1
- package/dist/src/main/shell-session/shell-env-modifier/shell-env-modifier-registration.d.ts +1 -1
- package/dist/src/main/shell-session/spawn-pty.injectable.d.ts +4 -4
- package/dist/src/main/start-main-application/lens-window/application-window/create-electron-window.injectable.d.ts +3 -3
- package/dist/src/main/start-main-application/lens-window/navigate-for-extension.injectable.d.ts +1 -1
- package/dist/src/main/theme/operating-system-theme-state.injectable.d.ts +1 -1
- package/dist/src/main/utils/channel/channel-listeners/enlist-request-channel-listener.injectable.d.ts +1 -1
- package/dist/src/main/utils/channel/channel-listeners/listener-tokens.d.ts +1 -1
- package/dist/src/main/utils/shell-env/compute-shell-environment.injectable.d.ts +2 -2
- package/dist/src/main/utils/shell-env/compute-unix-shell-environment.injectable.d.ts +1 -1
- package/dist/src/renderer/api/catalog/entity/get-active-cluster-entity.injectable.d.ts +1 -1
- package/dist/src/renderer/api/catalog/entity/registry.d.ts +2 -2
- package/dist/src/renderer/api/create-terminal-api.injectable.d.ts +1 -1
- package/dist/src/renderer/api/helpers/watch-for-general-entity-navigation.injectable.d.ts +1 -1
- package/dist/src/renderer/catalog/normalize-menu-item.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+catalog/catalog-entity-store/catalog-entity.store.d.ts +3 -3
- package/dist/src/renderer/components/+catalog/columns/get.injectable.d.ts +2 -2
- package/dist/src/renderer/components/+catalog/columns/specific-category.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+catalog/get-label-badges.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+config-secrets/add-secret-dialog.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/attempt-install/unpack-extension.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/attempt-install-by-info.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/attempt-installs.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/confirm-uninstall-extension.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/install-extension-from-input.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/install-on-drop.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+extensions/read-file-notify/read-file-notify.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-charts/helm-charts/request-versions-of-chart-for-release.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-charts/helm-charts/request-versions.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-releases/dialog/open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/get-resource-details-url.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-releases/rollback-release/rollback-release.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+helm-releases/to-helm-release.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+namespaces/namespace-select-filter-model/is-selection-key.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+namespaces/namespace-select-filter-model/namespace-select-filter-model.d.ts +2 -2
- package/dist/src/renderer/components/+namespaces/namespace-select.d.ts +1 -1
- package/dist/src/renderer/components/+storage-volumes/get-persisten-volumes-by-storage-class.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-deployments/scale/open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-deployments/store.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-jobs/get-jobs-by-owner.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-overview/overview-workload-status.d.ts +2 -2
- package/dist/src/renderer/components/+workloads-pods/details/volumes/variant-helpers.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-pods/get-pod-by-id.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-pods/get-pods-by-owner-id.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-replicasets/scale-dialog/open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/+workloads-statefulsets/scale/open-dialog.injectable.d.ts +1 -1
- package/dist/src/renderer/components/animate/animate.d.ts +1 -1
- package/dist/src/renderer/components/animate/request-animation-frame.injectable.d.ts +1 -1
- package/dist/src/renderer/components/chart/options.d.ts +1 -1
- package/dist/src/renderer/components/chart/pie-chart.d.ts +1 -1
- package/dist/src/renderer/components/command-palette/registered-commands/commands.d.ts +1 -1
- package/dist/src/renderer/components/command-palette/registered-commands/get-entity-setting-commands.injectable.d.ts +1 -1
- package/dist/src/renderer/components/confirm-dialog/confirm.injectable.d.ts +1 -1
- package/dist/src/renderer/components/confirm-dialog/open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/confirm-dialog/with-confirm.injectable.d.ts +1 -1
- package/dist/src/renderer/components/delete-cluster-dialog/open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/delete-cluster-dialog/save-kubeconfig.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/create-resource/create-resource-templates.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/dock/store.d.ts +3 -3
- package/dist/src/renderer/components/dock/dock-tab-store/dock-tab.store.d.ts +1 -1
- package/dist/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-patch-resource/call-for-patch-resource.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/install-chart/create-install-chart-tab.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/logs/call-for-logs.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/logs/create-logs-tab.injectable.d.ts +1 -1
- package/dist/src/renderer/components/dock/logs/store.d.ts +1 -1
- package/dist/src/renderer/components/dock/terminal/create-terminal.injectable.d.ts +1 -1
- package/dist/src/renderer/components/drawer/drawer.d.ts +1 -1
- package/dist/src/renderer/components/file-picker/file-picker.d.ts +1 -1
- package/dist/src/renderer/components/input/input.d.ts +4 -4
- package/dist/src/renderer/components/input/input_validators.d.ts +4 -4
- package/dist/src/renderer/components/item-object-list/list-layout.d.ts +8 -8
- package/dist/src/renderer/components/kube-detail-params/get-details-url.injectable.d.ts +1 -1
- package/dist/src/renderer/components/kube-detail-params/hide-details.injectable.d.ts +1 -1
- package/dist/src/renderer/components/kube-detail-params/show-details.injectable.d.ts +1 -1
- package/dist/src/renderer/components/kube-object-menu/kube-object-menu-item-injection-token.d.ts +1 -1
- package/dist/src/renderer/components/kube-object-menu/on-context-menu-open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/kubeconfig-dialog/open-service-account-kube-config-dialog.injectable.d.ts +1 -1
- package/dist/src/renderer/components/kubeconfig-dialog/open.injectable.d.ts +1 -1
- package/dist/src/renderer/components/list/list.d.ts +1 -1
- package/dist/src/renderer/components/monaco-editor/monaco-editor.d.ts +1 -1
- package/dist/src/renderer/components/monaco-editor/monaco-themes.d.ts +2 -2
- package/dist/src/renderer/components/notifications/notifications.d.ts +1 -1
- package/dist/src/renderer/components/notifications/notifications.store.d.ts +2 -2
- package/dist/src/renderer/components/notifications/show-checked-error.injectable.d.ts +1 -1
- package/dist/src/renderer/components/render-delay/cancel-idle-callback.injectable.d.ts +1 -1
- package/dist/src/renderer/components/render-delay/request-idle-callback.injectable.d.ts +1 -1
- package/dist/src/renderer/components/resource-metrics/resource-metrics.d.ts +1 -1
- package/dist/src/renderer/components/select/select.d.ts +1 -1
- package/dist/src/renderer/components/table/table-cell.d.ts +1 -1
- package/dist/src/renderer/components/table/table-head.d.ts +1 -1
- package/dist/src/renderer/components/table/table-row.d.ts +1 -1
- package/dist/src/renderer/components/table/table.d.ts +4 -4
- package/dist/src/renderer/components/test-utils/discovery-of-html-elements.d.ts +4 -4
- package/dist/src/renderer/components/test-utils/get-application-builder.d.ts +2 -2
- package/dist/src/renderer/components/test-utils/renderFor.d.ts +2 -2
- package/dist/src/renderer/kube-object/handler.d.ts +2 -2
- package/dist/src/renderer/kube-watch-api/kube-watch-api.d.ts +1 -1
- package/dist/src/renderer/navigation/create-page-param.injectable.d.ts +1 -1
- package/dist/src/renderer/navigation/is-route-active.injectable.d.ts +1 -1
- package/dist/src/renderer/navigation/match-route.injectable.d.ts +1 -1
- package/dist/src/renderer/navigation/navigate.injectable.d.ts +1 -1
- package/dist/src/renderer/port-forward/open-port-forward.injectable.d.ts +1 -1
- package/dist/src/renderer/port-forward/port-forward-item.d.ts +1 -1
- package/dist/src/renderer/port-forward/port-forward-store/request-active-port-forward.injectable.d.ts +1 -1
- package/dist/src/renderer/routes/get-extension-page-parameters.injectable.d.ts +1 -1
- package/dist/src/renderer/themes/active-type.injectable.d.ts +1 -1
- package/dist/src/renderer/themes/store.d.ts +2 -2
- package/dist/src/renderer/utils/create-storage/create-storage.d.ts +1 -1
- package/dist/src/renderer/utils/cssNames.d.ts +3 -3
- package/dist/src/renderer/window/event-listener.injectable.d.ts +2 -2
- package/package.json +1 -1
@@ -11513,7 +11513,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
11513
11513
|
/***/ ((module) => {
|
11514
11514
|
|
11515
11515
|
"use strict";
|
11516
|
-
eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []
|
11516
|
+
eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack://open-lens/./node_modules/css-loader/dist/runtime/api.js?");
|
11517
11517
|
|
11518
11518
|
/***/ }),
|
11519
11519
|
|
@@ -11524,7 +11524,7 @@ eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n
|
|
11524
11524
|
/***/ ((module) => {
|
11525
11525
|
|
11526
11526
|
"use strict";
|
11527
|
-
eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n
|
11527
|
+
eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};\n\n//# sourceURL=webpack://open-lens/./node_modules/css-loader/dist/runtime/getUrl.js?");
|
11528
11528
|
|
11529
11529
|
/***/ }),
|
11530
11530
|
|
@@ -11535,7 +11535,7 @@ eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n opt
|
|
11535
11535
|
/***/ ((module) => {
|
11536
11536
|
|
11537
11537
|
"use strict";
|
11538
|
-
eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n
|
11538
|
+
eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};\n\n//# sourceURL=webpack://open-lens/./node_modules/css-loader/dist/runtime/sourceMaps.js?");
|
11539
11539
|
|
11540
11540
|
/***/ }),
|
11541
11541
|
|
@@ -29680,7 +29680,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
29680
29680
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
29681
29681
|
|
29682
29682
|
"use strict";
|
29683
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CatalogRunEvent\": () => (/* binding */ CatalogRunEvent)\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 */\nvar
|
29683
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CatalogRunEvent\": () => (/* binding */ CatalogRunEvent)\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 */\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CatalogRunEvent_defaultPrevented, _CatalogRunEvent_target;\nclass CatalogRunEvent {\n get defaultPrevented() {\n return __classPrivateFieldGet(this, _CatalogRunEvent_defaultPrevented, \"f\");\n }\n get target() {\n return __classPrivateFieldGet(this, _CatalogRunEvent_target, \"f\");\n }\n constructor({ target }) {\n _CatalogRunEvent_defaultPrevented.set(this, void 0);\n _CatalogRunEvent_target.set(this, void 0);\n __classPrivateFieldSet(this, _CatalogRunEvent_defaultPrevented, false, \"f\");\n __classPrivateFieldSet(this, _CatalogRunEvent_target, target, \"f\");\n }\n preventDefault() {\n __classPrivateFieldSet(this, _CatalogRunEvent_defaultPrevented, true, \"f\");\n }\n}\n_CatalogRunEvent_defaultPrevented = new WeakMap(), _CatalogRunEvent_target = new WeakMap();\n\n\n//# sourceURL=webpack://open-lens/./src/common/catalog/catalog-run-event.ts?");
|
29684
29684
|
|
29685
29685
|
/***/ }),
|
29686
29686
|
|
@@ -29812,7 +29812,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
29812
29812
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
29813
29813
|
|
29814
29814
|
"use strict";
|
29815
|
-
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?");
|
29815
|
+
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 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 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 /**\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?");
|
29816
29816
|
|
29817
29817
|
/***/ }),
|
29818
29818
|
|
@@ -31429,7 +31429,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
31429
31429
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
31430
31430
|
|
31431
31431
|
"use strict";
|
31432
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeObjectStore\": () => (/* binding */ KubeObjectStore)\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 _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.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 _item_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../item.store */ \"./src/common/item.store.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_objects__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/objects */ \"./src/common/utils/objects.ts\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(abort_controller__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\nclass KubeObjectStore extends _item_store__WEBPACK_IMPORTED_MODULE_2__.ItemStore {\n constructor(api, opts) {\n var _a;\n super();\n Object.defineProperty(this, \"api\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"limit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"bufferSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"loadedNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: undefined\n });\n // collect items from watch-api events to avoid UI blowing up with huge streams of data\n Object.defineProperty(this, \"eventsBuffer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_8__.observable.array([], { deep: false })\n });\n if (api) {\n this.api = api;\n }\n this.limit = opts === null || opts === void 0 ? void 0 : opts.limit;\n this.bufferSize = (_a = opts === null || opts === void 0 ? void 0 : opts.bufferSize) !== null && _a !== void 0 ? _a : 50000;\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind)(this);\n this.bindWatchEventsUpdater();\n }\n get contextReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_8__.when)(() => Boolean(this.context));\n }\n get namespacesReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_8__.when)(() => Boolean(this.loadedNamespaces));\n }\n get context() {\n return KubeObjectStore.defaultContext.get();\n }\n // TODO: Circular dependency: KubeObjectStore -> ClusterFrameContext -> NamespaceStore -> KubeObjectStore\n get contextItems() {\n var _a, _b;\n const namespaces = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.contextNamespaces) !== null && _b !== void 0 ? _b : [];\n return this.items.filter(item => {\n const itemNamespace = item.getNs();\n return !itemNamespace /* cluster-wide */ || namespaces.includes(itemNamespace);\n });\n }\n getTotalCount() {\n return this.contextItems.length;\n }\n get query() {\n const { limit } = this;\n if (!limit) {\n return {};\n }\n return { limit };\n }\n getAllByNs(namespace, strict = false) {\n const namespaces = [namespace].flat();\n if (namespaces.length) {\n return this.items.filter(item => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.includes)(namespaces, item.getNs()));\n }\n if (!strict) {\n return this.items;\n }\n return [];\n }\n getById(id) {\n return this.items.find(item => item.getId() === id);\n }\n getByName(name, namespace) {\n return this.items.find(item => {\n return item.getName() === name && (namespace ? item.getNs() === namespace : true);\n });\n }\n getByPath(path) {\n return this.items.find(item => item.selfLink === path);\n }\n getByLabel(labels) {\n if (Array.isArray(labels)) {\n return this.items.filter((item) => {\n const itemLabels = item.getLabels();\n return labels.every(label => itemLabels.includes(label));\n });\n }\n else {\n return this.items.filter((item) => {\n const itemLabels = item.metadata.labels || {};\n return (0,_utils_objects__WEBPACK_IMPORTED_MODULE_6__.entries)(labels)\n .every(([key, value]) => itemLabels[key] === value);\n });\n }\n }\n async loadItems({ namespaces, reqInit, onLoadFailure }) {\n var _a, _b, _c, _d, _e, _f;\n if (!((_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.cluster) === null || _b === void 0 ? void 0 : _b.isAllowedResource(this.api.kind))) {\n return [];\n }\n const isLoadingAll = ((_c = this.context.allNamespaces) === null || _c === void 0 ? void 0 : _c.length) > 1\n && this.context.cluster.accessibleNamespaces.length === 0\n && this.context.allNamespaces.every(ns => namespaces.includes(ns));\n if (!this.api.isNamespaced || isLoadingAll) {\n if (this.api.isNamespaced) {\n this.loadedNamespaces = [];\n }\n const res = this.api.list({ reqInit }, this.query);\n if (onLoadFailure) {\n try {\n return (_d = await res) !== null && _d !== void 0 ? _d : [];\n }\n catch (error) {\n onLoadFailure(new Error(`Failed to load ${this.api.apiBase}`, { cause: error }));\n // reset the store because we are loading all, so that nothing is displayed\n this.items.clear();\n this.selectedItemsIds.clear();\n return [];\n }\n }\n return (_e = await res) !== null && _e !== void 0 ? _e : [];\n }\n this.loadedNamespaces = namespaces;\n const results = await Promise.allSettled(namespaces.map(namespace => this.api.list({ namespace, reqInit }, this.query)));\n const res = [];\n for (const result of results) {\n switch (result.status) {\n case \"fulfilled\":\n res.push(...(_f = result.value) !== null && _f !== void 0 ? _f : []);\n break;\n case \"rejected\":\n if (onLoadFailure) {\n onLoadFailure(new Error(`Failed to load ${this.api.apiBase}`, { cause: result.reason }));\n }\n else {\n // if onLoadFailure is not provided then preserve old behaviour\n throw result.reason;\n }\n }\n }\n return res;\n }\n filterItemsOnLoad(items) {\n return items;\n }\n async loadAll({ namespaces, merge = true, reqInit, onLoadFailure } = {}) {\n const context = await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.waitUntilDefined)(() => this.context);\n namespaces !== null && namespaces !== void 0 ? namespaces : (namespaces = context.contextNamespaces);\n this.isLoading = true;\n try {\n const items = await this.loadItems({ namespaces, reqInit, onLoadFailure });\n this.mergeItems(items, { merge, namespaces });\n this.isLoaded = true;\n this.failedLoading = false;\n return items;\n }\n catch (error) {\n console.warn(\"[KubeObjectStore] loadAll failed\", this.api.apiBase, error);\n this.resetOnError(error);\n this.failedLoading = true;\n }\n finally {\n this.isLoading = false;\n }\n return undefined;\n }\n async reloadAll(opts = {}) {\n const { force = false, ...loadingOptions } = opts;\n if (this.isLoading || (this.isLoaded && !force)) {\n return undefined;\n }\n return this.loadAll(loadingOptions);\n }\n mergeItems(partialItems, { merge = true, updateStore = true, sort = true, filter = true, namespaces }) {\n let items = partialItems;\n // update existing items\n if (merge && this.api.isNamespaced) {\n const ns = new Set(namespaces);\n items = [\n ...this.items.filter(item => !ns.has(item.getNs())),\n ...partialItems,\n ];\n }\n if (filter)\n items = this.filterItemsOnLoad(items);\n if (sort)\n items = this.sortItems(items);\n if (updateStore)\n this.items.replace(items);\n return items;\n }\n resetOnError(error) {\n if (error)\n this.reset();\n }\n async loadItem(params) {\n return this.api.get(params);\n }\n async load(params) {\n const { name, namespace } = params;\n let item = this.getByName(name, namespace);\n if (!item) {\n item = await this.loadItem(params);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(item, \"Failed to load item from kube\");\n const newItems = this.sortItems([...this.items, item]);\n this.items.replace(newItems);\n }\n return item;\n }\n async loadFromPath(resourcePath) {\n const { namespace, name } = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_3__.parseKubeApi)(resourcePath);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(name, \"name must be part of resourcePath\");\n return this.load({ name, namespace });\n }\n async createItem(params, data) {\n return this.api.create(params, data);\n }\n async create(params, data) {\n const newItem = await this.createItem(params, data);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(newItem, \"Failed to create item from kube\");\n const items = this.sortItems([...this.items, newItem]);\n this.items.replace(items);\n return newItem;\n }\n postUpdate(newItem) {\n const index = this.items.findIndex(item => item.getId() === newItem.getId());\n if (index < 0) {\n this.items.push(newItem);\n }\n else {\n this.items[index] = newItem;\n }\n return newItem;\n }\n async patch(item, patch) {\n const rawItem = await this.api.patch({\n name: item.getName(), namespace: item.getNs(),\n }, patch, \"json\");\n assert__WEBPACK_IMPORTED_MODULE_5___default()(rawItem, `Failed to patch ${item.getScopedName()} of ${item.kind} ${item.apiVersion}`);\n return this.postUpdate(rawItem);\n }\n async update(item, data) {\n const rawItem = await this.api.update({\n name: item.getName(),\n namespace: item.getNs(),\n }, data);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(rawItem, `Failed to update ${item.getScopedName()} of ${item.kind} ${item.apiVersion}`);\n return this.postUpdate(rawItem);\n }\n async remove(item) {\n await this.api.delete({ name: item.getName(), namespace: item.getNs() });\n this.selectedItemsIds.delete(item.getId());\n }\n async removeSelectedItems() {\n await Promise.all(this.selectedItems.map(this.remove));\n }\n async removeItems(items) {\n await Promise.all(items.map(this.remove));\n }\n bindWatchEventsUpdater(delay = 1000) {\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.reaction)(() => [...this.eventsBuffer], this.updateFromEventsBuffer, {\n delay,\n });\n }\n subscribe({ onLoadFailure, abortController = new (abort_controller__WEBPACK_IMPORTED_MODULE_7___default())() } = {}) {\n if (this.api.isNamespaced) {\n Promise.race([\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.rejectPromiseBy)(abortController.signal),\n Promise.all([\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.waitUntilDefined)(() => this.context),\n this.namespacesReady,\n ]),\n ])\n .then(([context]) => {\n var _a;\n assert__WEBPACK_IMPORTED_MODULE_5___default()(this.loadedNamespaces);\n if (((_a = context.cluster) === null || _a === void 0 ? void 0 : _a.isGlobalWatchEnabled) && this.loadedNamespaces.length === 0) {\n return this.watchNamespace(\"\", abortController, { onLoadFailure });\n }\n for (const namespace of this.loadedNamespaces) {\n this.watchNamespace(namespace, abortController, { onLoadFailure });\n }\n })\n .catch(_utils__WEBPACK_IMPORTED_MODULE_0__.noop); // ignore DOMExceptions\n }\n else {\n this.watchNamespace(\"\", abortController, { onLoadFailure });\n }\n return () => abortController.abort();\n }\n watchNamespace(namespace, abortController, opts) {\n if (!this.api.getResourceVersion(namespace)) {\n return;\n }\n let timedRetry;\n const watch = () => this.api.watch({\n namespace,\n abortController,\n callback,\n });\n const signal = abortController.signal;\n const callback = (data, error) => {\n if (!this.isLoaded || (error === null || error === void 0 ? void 0 : error.type) === \"aborted\")\n return;\n if (error instanceof Response) {\n if (error.status === 404 || error.status === 401) {\n // api has gone, or credentials are not permitted, let's not retry\n return;\n }\n // not sure what to do, best to retry\n clearTimeout(timedRetry);\n timedRetry = setTimeout(watch, 5000);\n }\n else if (error instanceof _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeStatus && error.code === 410) {\n clearTimeout(timedRetry);\n // resourceVersion has gone, let's try to reload\n timedRetry = setTimeout(() => {\n (namespace\n ? this.loadAll({ namespaces: [namespace], reqInit: { signal }, ...opts })\n : this.loadAll({ merge: false, reqInit: { signal }, ...opts })).then(watch);\n }, 1000);\n }\n else if (error) { // not sure what to do, best to retry\n clearTimeout(timedRetry);\n timedRetry = setTimeout(watch, 5000);\n }\n if (data) {\n this.eventsBuffer.push(data);\n }\n };\n signal.addEventListener(\"abort\", () => clearTimeout(timedRetry));\n watch();\n }\n updateFromEventsBuffer() {\n var _a;\n const items = this.getItems();\n for (const event of this.eventsBuffer.clear()) {\n if (event.type === \"ERROR\") {\n continue;\n }\n try {\n const { type, object } = event;\n if (!((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.uid)) {\n _logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"].warn(\"[KUBE-STORE]: watch event did not have defined .metadata.uid, skipping\", { event });\n // Other parts of the code will break if this happens\n continue;\n }\n const index = items.findIndex(item => item.getId() === object.metadata.uid);\n const item = items[index];\n switch (type) {\n case \"ADDED\":\n // fallthrough\n case \"MODIFIED\": {\n const newItem = new this.api.objectConstructor(object);\n if (!item) {\n items.push(newItem);\n }\n else {\n items[index] = newItem;\n }\n break;\n }\n case \"DELETED\":\n if (item) {\n items.splice(index, 1);\n }\n break;\n }\n }\n catch (error) {\n _logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"].error(\"[KUBE-STORE]: failed to handle event from watch buffer\", { error, event });\n }\n }\n // update items\n this.items.replace(this.sortItems(items.slice(-this.bufferSize)));\n }\n}\nObject.defineProperty(KubeObjectStore, \"defaultContext\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_8__.observable.box()\n}); // TODO: support multiple cluster contexts\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], KubeObjectStore.prototype, \"loadedNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], KubeObjectStore.prototype, \"contextItems\", 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], KubeObjectStore.prototype, \"loadAll\", 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], KubeObjectStore.prototype, \"reloadAll\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Array, Object]),\n __metadata(\"design:returntype\", Array)\n], KubeObjectStore.prototype, \"mergeItems\", 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], KubeObjectStore.prototype, \"load\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", Promise)\n], KubeObjectStore.prototype, \"loadFromPath\", 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], KubeObjectStore.prototype, \"updateFromEventsBuffer\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-object.store.ts?");
|
31432
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeObjectStore\": () => (/* binding */ KubeObjectStore)\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 _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.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 _item_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../item.store */ \"./src/common/item.store.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_objects__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/objects */ \"./src/common/utils/objects.ts\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(abort_controller__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\nclass KubeObjectStore extends _item_store__WEBPACK_IMPORTED_MODULE_2__.ItemStore {\n get contextReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_8__.when)(() => Boolean(this.context));\n }\n get namespacesReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_8__.when)(() => Boolean(this.loadedNamespaces));\n }\n constructor(api, opts) {\n var _a;\n super();\n Object.defineProperty(this, \"api\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"limit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"bufferSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"loadedNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: undefined\n });\n // collect items from watch-api events to avoid UI blowing up with huge streams of data\n Object.defineProperty(this, \"eventsBuffer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_8__.observable.array([], { deep: false })\n });\n if (api) {\n this.api = api;\n }\n this.limit = opts === null || opts === void 0 ? void 0 : opts.limit;\n this.bufferSize = (_a = opts === null || opts === void 0 ? void 0 : opts.bufferSize) !== null && _a !== void 0 ? _a : 50000;\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind)(this);\n this.bindWatchEventsUpdater();\n }\n get context() {\n return KubeObjectStore.defaultContext.get();\n }\n // TODO: Circular dependency: KubeObjectStore -> ClusterFrameContext -> NamespaceStore -> KubeObjectStore\n get contextItems() {\n var _a, _b;\n const namespaces = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.contextNamespaces) !== null && _b !== void 0 ? _b : [];\n return this.items.filter(item => {\n const itemNamespace = item.getNs();\n return !itemNamespace /* cluster-wide */ || namespaces.includes(itemNamespace);\n });\n }\n getTotalCount() {\n return this.contextItems.length;\n }\n get query() {\n const { limit } = this;\n if (!limit) {\n return {};\n }\n return { limit };\n }\n getAllByNs(namespace, strict = false) {\n const namespaces = [namespace].flat();\n if (namespaces.length) {\n return this.items.filter(item => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.includes)(namespaces, item.getNs()));\n }\n if (!strict) {\n return this.items;\n }\n return [];\n }\n getById(id) {\n return this.items.find(item => item.getId() === id);\n }\n getByName(name, namespace) {\n return this.items.find(item => {\n return item.getName() === name && (namespace ? item.getNs() === namespace : true);\n });\n }\n getByPath(path) {\n return this.items.find(item => item.selfLink === path);\n }\n getByLabel(labels) {\n if (Array.isArray(labels)) {\n return this.items.filter((item) => {\n const itemLabels = item.getLabels();\n return labels.every(label => itemLabels.includes(label));\n });\n }\n else {\n return this.items.filter((item) => {\n const itemLabels = item.metadata.labels || {};\n return (0,_utils_objects__WEBPACK_IMPORTED_MODULE_6__.entries)(labels)\n .every(([key, value]) => itemLabels[key] === value);\n });\n }\n }\n async loadItems({ namespaces, reqInit, onLoadFailure }) {\n var _a, _b, _c, _d, _e, _f;\n if (!((_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.cluster) === null || _b === void 0 ? void 0 : _b.isAllowedResource(this.api.kind))) {\n return [];\n }\n const isLoadingAll = ((_c = this.context.allNamespaces) === null || _c === void 0 ? void 0 : _c.length) > 1\n && this.context.cluster.accessibleNamespaces.length === 0\n && this.context.allNamespaces.every(ns => namespaces.includes(ns));\n if (!this.api.isNamespaced || isLoadingAll) {\n if (this.api.isNamespaced) {\n this.loadedNamespaces = [];\n }\n const res = this.api.list({ reqInit }, this.query);\n if (onLoadFailure) {\n try {\n return (_d = await res) !== null && _d !== void 0 ? _d : [];\n }\n catch (error) {\n onLoadFailure(new Error(`Failed to load ${this.api.apiBase}`, { cause: error }));\n // reset the store because we are loading all, so that nothing is displayed\n this.items.clear();\n this.selectedItemsIds.clear();\n return [];\n }\n }\n return (_e = await res) !== null && _e !== void 0 ? _e : [];\n }\n this.loadedNamespaces = namespaces;\n const results = await Promise.allSettled(namespaces.map(namespace => this.api.list({ namespace, reqInit }, this.query)));\n const res = [];\n for (const result of results) {\n switch (result.status) {\n case \"fulfilled\":\n res.push(...(_f = result.value) !== null && _f !== void 0 ? _f : []);\n break;\n case \"rejected\":\n if (onLoadFailure) {\n onLoadFailure(new Error(`Failed to load ${this.api.apiBase}`, { cause: result.reason }));\n }\n else {\n // if onLoadFailure is not provided then preserve old behaviour\n throw result.reason;\n }\n }\n }\n return res;\n }\n filterItemsOnLoad(items) {\n return items;\n }\n async loadAll({ namespaces, merge = true, reqInit, onLoadFailure } = {}) {\n const context = await (0,_utils__WEBPACK_IMPORTED_MODULE_0__.waitUntilDefined)(() => this.context);\n namespaces !== null && namespaces !== void 0 ? namespaces : (namespaces = context.contextNamespaces);\n this.isLoading = true;\n try {\n const items = await this.loadItems({ namespaces, reqInit, onLoadFailure });\n this.mergeItems(items, { merge, namespaces });\n this.isLoaded = true;\n this.failedLoading = false;\n return items;\n }\n catch (error) {\n console.warn(\"[KubeObjectStore] loadAll failed\", this.api.apiBase, error);\n this.resetOnError(error);\n this.failedLoading = true;\n }\n finally {\n this.isLoading = false;\n }\n return undefined;\n }\n async reloadAll(opts = {}) {\n const { force = false, ...loadingOptions } = opts;\n if (this.isLoading || (this.isLoaded && !force)) {\n return undefined;\n }\n return this.loadAll(loadingOptions);\n }\n mergeItems(partialItems, { merge = true, updateStore = true, sort = true, filter = true, namespaces }) {\n let items = partialItems;\n // update existing items\n if (merge && this.api.isNamespaced) {\n const ns = new Set(namespaces);\n items = [\n ...this.items.filter(item => !ns.has(item.getNs())),\n ...partialItems,\n ];\n }\n if (filter)\n items = this.filterItemsOnLoad(items);\n if (sort)\n items = this.sortItems(items);\n if (updateStore)\n this.items.replace(items);\n return items;\n }\n resetOnError(error) {\n if (error)\n this.reset();\n }\n async loadItem(params) {\n return this.api.get(params);\n }\n async load(params) {\n const { name, namespace } = params;\n let item = this.getByName(name, namespace);\n if (!item) {\n item = await this.loadItem(params);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(item, \"Failed to load item from kube\");\n const newItems = this.sortItems([...this.items, item]);\n this.items.replace(newItems);\n }\n return item;\n }\n async loadFromPath(resourcePath) {\n const { namespace, name } = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_3__.parseKubeApi)(resourcePath);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(name, \"name must be part of resourcePath\");\n return this.load({ name, namespace });\n }\n async createItem(params, data) {\n return this.api.create(params, data);\n }\n async create(params, data) {\n const newItem = await this.createItem(params, data);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(newItem, \"Failed to create item from kube\");\n const items = this.sortItems([...this.items, newItem]);\n this.items.replace(items);\n return newItem;\n }\n postUpdate(newItem) {\n const index = this.items.findIndex(item => item.getId() === newItem.getId());\n if (index < 0) {\n this.items.push(newItem);\n }\n else {\n this.items[index] = newItem;\n }\n return newItem;\n }\n async patch(item, patch) {\n const rawItem = await this.api.patch({\n name: item.getName(), namespace: item.getNs(),\n }, patch, \"json\");\n assert__WEBPACK_IMPORTED_MODULE_5___default()(rawItem, `Failed to patch ${item.getScopedName()} of ${item.kind} ${item.apiVersion}`);\n return this.postUpdate(rawItem);\n }\n async update(item, data) {\n const rawItem = await this.api.update({\n name: item.getName(),\n namespace: item.getNs(),\n }, data);\n assert__WEBPACK_IMPORTED_MODULE_5___default()(rawItem, `Failed to update ${item.getScopedName()} of ${item.kind} ${item.apiVersion}`);\n return this.postUpdate(rawItem);\n }\n async remove(item) {\n await this.api.delete({ name: item.getName(), namespace: item.getNs() });\n this.selectedItemsIds.delete(item.getId());\n }\n async removeSelectedItems() {\n await Promise.all(this.selectedItems.map(this.remove));\n }\n async removeItems(items) {\n await Promise.all(items.map(this.remove));\n }\n bindWatchEventsUpdater(delay = 1000) {\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.reaction)(() => [...this.eventsBuffer], this.updateFromEventsBuffer, {\n delay,\n });\n }\n subscribe({ onLoadFailure, abortController = new (abort_controller__WEBPACK_IMPORTED_MODULE_7___default())() } = {}) {\n if (this.api.isNamespaced) {\n Promise.race([\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.rejectPromiseBy)(abortController.signal),\n Promise.all([\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.waitUntilDefined)(() => this.context),\n this.namespacesReady,\n ]),\n ])\n .then(([context]) => {\n var _a;\n assert__WEBPACK_IMPORTED_MODULE_5___default()(this.loadedNamespaces);\n if (((_a = context.cluster) === null || _a === void 0 ? void 0 : _a.isGlobalWatchEnabled) && this.loadedNamespaces.length === 0) {\n return this.watchNamespace(\"\", abortController, { onLoadFailure });\n }\n for (const namespace of this.loadedNamespaces) {\n this.watchNamespace(namespace, abortController, { onLoadFailure });\n }\n })\n .catch(_utils__WEBPACK_IMPORTED_MODULE_0__.noop); // ignore DOMExceptions\n }\n else {\n this.watchNamespace(\"\", abortController, { onLoadFailure });\n }\n return () => abortController.abort();\n }\n watchNamespace(namespace, abortController, opts) {\n if (!this.api.getResourceVersion(namespace)) {\n return;\n }\n let timedRetry;\n const watch = () => this.api.watch({\n namespace,\n abortController,\n callback,\n });\n const signal = abortController.signal;\n const callback = (data, error) => {\n if (!this.isLoaded || (error === null || error === void 0 ? void 0 : error.type) === \"aborted\")\n return;\n if (error instanceof Response) {\n if (error.status === 404 || error.status === 401) {\n // api has gone, or credentials are not permitted, let's not retry\n return;\n }\n // not sure what to do, best to retry\n clearTimeout(timedRetry);\n timedRetry = setTimeout(watch, 5000);\n }\n else if (error instanceof _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeStatus && error.code === 410) {\n clearTimeout(timedRetry);\n // resourceVersion has gone, let's try to reload\n timedRetry = setTimeout(() => {\n (namespace\n ? this.loadAll({ namespaces: [namespace], reqInit: { signal }, ...opts })\n : this.loadAll({ merge: false, reqInit: { signal }, ...opts })).then(watch);\n }, 1000);\n }\n else if (error) { // not sure what to do, best to retry\n clearTimeout(timedRetry);\n timedRetry = setTimeout(watch, 5000);\n }\n if (data) {\n this.eventsBuffer.push(data);\n }\n };\n signal.addEventListener(\"abort\", () => clearTimeout(timedRetry));\n watch();\n }\n updateFromEventsBuffer() {\n var _a;\n const items = this.getItems();\n for (const event of this.eventsBuffer.clear()) {\n if (event.type === \"ERROR\") {\n continue;\n }\n try {\n const { type, object } = event;\n if (!((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.uid)) {\n _logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"].warn(\"[KUBE-STORE]: watch event did not have defined .metadata.uid, skipping\", { event });\n // Other parts of the code will break if this happens\n continue;\n }\n const index = items.findIndex(item => item.getId() === object.metadata.uid);\n const item = items[index];\n switch (type) {\n case \"ADDED\":\n // fallthrough\n case \"MODIFIED\": {\n const newItem = new this.api.objectConstructor(object);\n if (!item) {\n items.push(newItem);\n }\n else {\n items[index] = newItem;\n }\n break;\n }\n case \"DELETED\":\n if (item) {\n items.splice(index, 1);\n }\n break;\n }\n }\n catch (error) {\n _logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"].error(\"[KUBE-STORE]: failed to handle event from watch buffer\", { error, event });\n }\n }\n // update items\n this.items.replace(this.sortItems(items.slice(-this.bufferSize)));\n }\n}\nObject.defineProperty(KubeObjectStore, \"defaultContext\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_8__.observable.box()\n}); // TODO: support multiple cluster contexts\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], KubeObjectStore.prototype, \"loadedNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], KubeObjectStore.prototype, \"contextItems\", 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], KubeObjectStore.prototype, \"loadAll\", 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], KubeObjectStore.prototype, \"reloadAll\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Array, Object]),\n __metadata(\"design:returntype\", Array)\n], KubeObjectStore.prototype, \"mergeItems\", 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], KubeObjectStore.prototype, \"load\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", Promise)\n], KubeObjectStore.prototype, \"loadFromPath\", 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], KubeObjectStore.prototype, \"updateFromEventsBuffer\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-object.store.ts?");
|
31433
31433
|
|
31434
31434
|
/***/ }),
|
31435
31435
|
|
@@ -31440,7 +31440,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
31440
31440
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
31441
31441
|
|
31442
31442
|
"use strict";
|
31443
|
-
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?");
|
31443
|
+
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 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 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 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?");
|
31444
31444
|
|
31445
31445
|
/***/ }),
|
31446
31446
|
|
@@ -31869,7 +31869,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
31869
31869
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
31870
31870
|
|
31871
31871
|
"use strict";
|
31872
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HashSet\": () => (/* binding */ HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* binding */ ObservableHashSet),\n/* harmony export */ \"makeIterableIterator\": () => (/* binding */ makeIterableIterator)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\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 __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _HashSet_hashmap, _ObservableHashSet_hashmap;\n\nfunction makeIterableIterator(iterator) {\n iterator[Symbol.iterator] = () => iterator;\n return iterator;\n}\nclass HashSet {\n constructor(initialValues, hasher) {\n Object.defineProperty(this, \"hasher\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: hasher\n });\n _HashSet_hashmap.set(this, void 0);\n __classPrivateFieldSet(this, _HashSet_hashmap, new Map(Array.from(initialValues, value => [this.hasher(value), value])), \"f\");\n }\n replace(other) {\n if (other === null || other === undefined) {\n return this;\n }\n if (!(Array.isArray(other) || other instanceof Set || other instanceof ObservableHashSet || other instanceof mobx__WEBPACK_IMPORTED_MODULE_0__.ObservableSet)) {\n throw new Error(`ObservableHashSet: Cannot initialize set from ${other}`);\n }\n this.clear();\n for (const value of other) {\n this.add(value);\n }\n return this;\n }\n clear() {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").clear();\n }\n add(value) {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").set(this.hasher(value), value);\n return this;\n }\n toggle(value) {\n const hash = this.hasher(value);\n if (__classPrivateFieldGet(this, _HashSet_hashmap, \"f\").has(hash)) {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").delete(hash);\n }\n else {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").set(hash, value);\n }\n }\n delete(value) {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").delete(this.hasher(value));\n }\n forEach(callbackfn, thisArg) {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").forEach(value => callbackfn(value, value, thisArg !== null && thisArg !== void 0 ? thisArg : this));\n }\n has(value) {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").has(this.hasher(value));\n }\n get size() {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").size;\n }\n entries() {\n let nextIndex = 0;\n const keys = Array.from(this.keys());\n const values = Array.from(this.values());\n return makeIterableIterator({\n next() {\n const index = nextIndex++;\n return index < values.length\n ? { value: [keys[index], values[index]], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n keys() {\n return this.values();\n }\n values() {\n let nextIndex = 0;\n const observableValues = Array.from(__classPrivateFieldGet(this, _HashSet_hashmap, \"f\").values());\n return makeIterableIterator({\n next: () => {\n return nextIndex < observableValues.length\n ? { value: observableValues[nextIndex++], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n [(_HashSet_hashmap = new WeakMap(), Symbol.iterator)]() {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").values();\n }\n get [Symbol.toStringTag]() {\n return \"Set\";\n }\n toJSON() {\n return Array.from(this);\n }\n toString() {\n return \"[object Set]\";\n }\n}\nclass ObservableHashSet {\n constructor(initialValues, hasher) {\n Object.defineProperty(this, \"hasher\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: hasher\n });\n _ObservableHashSet_hashmap.set(this, void 0);\n __classPrivateFieldSet(this, _ObservableHashSet_hashmap, mobx__WEBPACK_IMPORTED_MODULE_0__.observable.map(Array.from(initialValues, value => [this.hasher(value), value]), undefined), \"f\");\n }\n get interceptors_() {\n return [];\n }\n get changeListeners_() {\n return [];\n }\n replace(other) {\n if (other === null || other === undefined) {\n return this;\n }\n if (!(Array.isArray(other) || other instanceof Set || other instanceof ObservableHashSet || other instanceof mobx__WEBPACK_IMPORTED_MODULE_0__.ObservableSet)) {\n throw new Error(`ObservableHashSet: Cannot initialize set from ${other}`);\n }\n this.clear();\n for (const value of other) {\n this.add(value);\n }\n return this;\n }\n clear() {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").clear();\n }\n add(value) {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").set(this.hasher(value), value);\n return this;\n }\n toggle(value) {\n const hash = this.hasher(value);\n if (__classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").has(hash)) {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").delete(hash);\n }\n else {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").set(hash, value);\n }\n }\n delete(value) {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").delete(this.hasher(value));\n }\n forEach(callbackfn, thisArg) {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").forEach(value => callbackfn(value, value, thisArg !== null && thisArg !== void 0 ? thisArg : this));\n }\n has(value) {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").has(this.hasher(value));\n }\n get size() {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").size;\n }\n entries() {\n let nextIndex = 0;\n const keys = Array.from(this.keys());\n const values = Array.from(this.values());\n return makeIterableIterator({\n next() {\n const index = nextIndex++;\n return index < values.length\n ? { value: [keys[index], values[index]], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n keys() {\n return this.values();\n }\n values() {\n let nextIndex = 0;\n const observableValues = Array.from(__classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").values());\n return makeIterableIterator({\n next: () => {\n return nextIndex < observableValues.length\n ? { value: observableValues[nextIndex++], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n [(_ObservableHashSet_hashmap = new WeakMap(), Symbol.iterator)]() {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").values();\n }\n get [Symbol.toStringTag]() {\n return \"Set\";\n }\n toJSON() {\n return Array.from(this);\n }\n toString() {\n return \"[object ObservableSet]\";\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", Object)\n], ObservableHashSet.prototype, \"replace\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ObservableHashSet.prototype, \"toggle\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/hash-set.ts?");
|
31872
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HashSet\": () => (/* binding */ HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* binding */ ObservableHashSet),\n/* harmony export */ \"makeIterableIterator\": () => (/* binding */ makeIterableIterator)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\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 __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _HashSet_hashmap, _ObservableHashSet_hashmap;\n\nfunction makeIterableIterator(iterator) {\n iterator[Symbol.iterator] = () => iterator;\n return iterator;\n}\nclass HashSet {\n constructor(initialValues, hasher) {\n Object.defineProperty(this, \"hasher\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: hasher\n });\n _HashSet_hashmap.set(this, void 0);\n __classPrivateFieldSet(this, _HashSet_hashmap, new Map(Array.from(initialValues, value => [this.hasher(value), value])), \"f\");\n }\n replace(other) {\n if (other === null || other === undefined) {\n return this;\n }\n if (!(Array.isArray(other) || other instanceof Set || other instanceof ObservableHashSet || other instanceof mobx__WEBPACK_IMPORTED_MODULE_0__.ObservableSet)) {\n throw new Error(`ObservableHashSet: Cannot initialize set from ${other}`);\n }\n this.clear();\n for (const value of other) {\n this.add(value);\n }\n return this;\n }\n clear() {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").clear();\n }\n add(value) {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").set(this.hasher(value), value);\n return this;\n }\n toggle(value) {\n const hash = this.hasher(value);\n if (__classPrivateFieldGet(this, _HashSet_hashmap, \"f\").has(hash)) {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").delete(hash);\n }\n else {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").set(hash, value);\n }\n }\n delete(value) {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").delete(this.hasher(value));\n }\n forEach(callbackfn, thisArg) {\n __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").forEach(value => callbackfn(value, value, thisArg !== null && thisArg !== void 0 ? thisArg : this));\n }\n has(value) {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").has(this.hasher(value));\n }\n get size() {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").size;\n }\n entries() {\n let nextIndex = 0;\n const keys = Array.from(this.keys());\n const values = Array.from(this.values());\n return makeIterableIterator({\n next() {\n const index = nextIndex++;\n return index < values.length\n ? { value: [keys[index], values[index]], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n keys() {\n return this.values();\n }\n values() {\n let nextIndex = 0;\n const observableValues = Array.from(__classPrivateFieldGet(this, _HashSet_hashmap, \"f\").values());\n return makeIterableIterator({\n next: () => {\n return nextIndex < observableValues.length\n ? { value: observableValues[nextIndex++], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n [(_HashSet_hashmap = new WeakMap(), Symbol.iterator)]() {\n return __classPrivateFieldGet(this, _HashSet_hashmap, \"f\").values();\n }\n get [Symbol.toStringTag]() {\n return \"Set\";\n }\n toJSON() {\n return Array.from(this);\n }\n toString() {\n return \"[object Set]\";\n }\n}\nclass ObservableHashSet {\n get interceptors_() {\n return [];\n }\n get changeListeners_() {\n return [];\n }\n constructor(initialValues, hasher) {\n Object.defineProperty(this, \"hasher\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: hasher\n });\n _ObservableHashSet_hashmap.set(this, void 0);\n __classPrivateFieldSet(this, _ObservableHashSet_hashmap, mobx__WEBPACK_IMPORTED_MODULE_0__.observable.map(Array.from(initialValues, value => [this.hasher(value), value]), undefined), \"f\");\n }\n replace(other) {\n if (other === null || other === undefined) {\n return this;\n }\n if (!(Array.isArray(other) || other instanceof Set || other instanceof ObservableHashSet || other instanceof mobx__WEBPACK_IMPORTED_MODULE_0__.ObservableSet)) {\n throw new Error(`ObservableHashSet: Cannot initialize set from ${other}`);\n }\n this.clear();\n for (const value of other) {\n this.add(value);\n }\n return this;\n }\n clear() {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").clear();\n }\n add(value) {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").set(this.hasher(value), value);\n return this;\n }\n toggle(value) {\n const hash = this.hasher(value);\n if (__classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").has(hash)) {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").delete(hash);\n }\n else {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").set(hash, value);\n }\n }\n delete(value) {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").delete(this.hasher(value));\n }\n forEach(callbackfn, thisArg) {\n __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").forEach(value => callbackfn(value, value, thisArg !== null && thisArg !== void 0 ? thisArg : this));\n }\n has(value) {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").has(this.hasher(value));\n }\n get size() {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").size;\n }\n entries() {\n let nextIndex = 0;\n const keys = Array.from(this.keys());\n const values = Array.from(this.values());\n return makeIterableIterator({\n next() {\n const index = nextIndex++;\n return index < values.length\n ? { value: [keys[index], values[index]], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n keys() {\n return this.values();\n }\n values() {\n let nextIndex = 0;\n const observableValues = Array.from(__classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").values());\n return makeIterableIterator({\n next: () => {\n return nextIndex < observableValues.length\n ? { value: observableValues[nextIndex++], done: false }\n : { done: true, value: undefined };\n },\n });\n }\n [(_ObservableHashSet_hashmap = new WeakMap(), Symbol.iterator)]() {\n return __classPrivateFieldGet(this, _ObservableHashSet_hashmap, \"f\").values();\n }\n get [Symbol.toStringTag]() {\n return \"Set\";\n }\n toJSON() {\n return Array.from(this);\n }\n toString() {\n return \"[object ObservableSet]\";\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", Object)\n], ObservableHashSet.prototype, \"replace\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ObservableHashSet.prototype, \"toggle\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/hash-set.ts?");
|
31873
31873
|
|
31874
31874
|
/***/ }),
|
31875
31875
|
|
@@ -32628,7 +32628,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
32628
32628
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
32629
32629
|
|
32630
32630
|
"use strict";
|
32631
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Disposers\": () => (/* binding */ Disposers),\n/* harmony export */ \"LensExtension\": () => (/* binding */ LensExtension),\n/* harmony export */ \"extensionDisplayName\": () => (/* binding */ extensionDisplayName),\n/* harmony export */ \"getSanitizedPath\": () => (/* binding */ getSanitizedPath),\n/* harmony export */ \"lensExtensionDependencies\": () => (/* binding */ lensExtensionDependencies),\n/* harmony export */ \"sanitizeExtensionName\": () => (/* binding */ sanitizeExtensionName)\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 _main_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __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 */\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 _a, _b;\n\n\n\nconst lensExtensionDependencies = Symbol(\"lens-extension-dependencies\");\nconst Disposers = Symbol(\"disposers\");\nclass LensExtension {\n constructor({ id, manifest, manifestPath, isBundled }) {\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifest\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifestPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isBundled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"protocolHandlers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"_isEnabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, _a, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_common_utils__WEBPACK_IMPORTED_MODULE_1__.disposer)()\n });\n Object.defineProperty(this, _b, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_2__.makeObservable)(this);\n this.id = id;\n this.manifest = manifest;\n this.manifestPath = manifestPath;\n this.isBundled = !!isBundled;\n }\n get
|
32631
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Disposers\": () => (/* binding */ Disposers),\n/* harmony export */ \"LensExtension\": () => (/* binding */ LensExtension),\n/* harmony export */ \"extensionDisplayName\": () => (/* binding */ extensionDisplayName),\n/* harmony export */ \"getSanitizedPath\": () => (/* binding */ getSanitizedPath),\n/* harmony export */ \"lensExtensionDependencies\": () => (/* binding */ lensExtensionDependencies),\n/* harmony export */ \"sanitizeExtensionName\": () => (/* binding */ sanitizeExtensionName)\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 _main_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __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 */\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 _a, _b;\n\n\n\nconst lensExtensionDependencies = Symbol(\"lens-extension-dependencies\");\nconst Disposers = Symbol(\"disposers\");\nclass LensExtension {\n get sanitizedExtensionId() {\n return sanitizeExtensionName(this.name);\n }\n get isEnabled() {\n return this._isEnabled;\n }\n constructor({ id, manifest, manifestPath, isBundled }) {\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifest\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifestPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isBundled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"protocolHandlers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"_isEnabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, _a, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_common_utils__WEBPACK_IMPORTED_MODULE_1__.disposer)()\n });\n Object.defineProperty(this, _b, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_2__.makeObservable)(this);\n this.id = id;\n this.manifest = manifest;\n this.manifestPath = manifestPath;\n this.isBundled = !!isBundled;\n }\n get name() {\n return this.manifest.name;\n }\n get version() {\n return this.manifest.version;\n }\n get description() {\n return this.manifest.description;\n }\n /**\n * getExtensionFileFolder returns the path to an already created folder. This\n * folder is for the sole use of this extension.\n *\n * Note: there is no security done on this folder, only obfuscation of the\n * folder name.\n */\n async getExtensionFileFolder() {\n return this[lensExtensionDependencies].fileSystemProvisionerStore.requestDirectory(this.id);\n }\n async enable(register) {\n if (this._isEnabled) {\n return;\n }\n try {\n this._isEnabled = true;\n this[Disposers].push(...await register(this));\n _main_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].info(`[EXTENSION]: enabled ${this.name}@${this.version}`);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].error(`[EXTENSION]: failed to activate ${this.name}@${this.version}: ${error}`);\n }\n }\n async disable() {\n if (!this._isEnabled) {\n return;\n }\n this._isEnabled = false;\n try {\n await this.onDeactivate();\n this[Disposers]();\n _main_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].info(`[EXTENSION]: disabled ${this.name}@${this.version}`);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].error(`[EXTENSION]: disabling ${this.name}@${this.version} threw an error: ${error}`);\n }\n }\n async activate() {\n return this.onActivate();\n }\n onActivate() {\n return;\n }\n onDeactivate() {\n return;\n }\n}\n_a = Disposers, _b = lensExtensionDependencies;\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__.observable,\n __metadata(\"design:type\", Object)\n], LensExtension.prototype, \"_isEnabled\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], LensExtension.prototype, \"isEnabled\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function]),\n __metadata(\"design:returntype\", Promise)\n], LensExtension.prototype, \"enable\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], LensExtension.prototype, \"disable\", null);\nfunction sanitizeExtensionName(name) {\n return name.replace(\"@\", \"\").replace(\"/\", \"--\");\n}\nfunction getSanitizedPath(...parts) {\n return parts\n .filter(Boolean)\n .join(\"/\")\n .replace(/\\/+/g, \"/\")\n .replace(/\\/$/, \"\");\n} // normalize multi-slashes (e.g. coming from page.id)\nfunction extensionDisplayName(name, version) {\n return `${name}@${version}`;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/lens-extension.ts?");
|
32632
32632
|
|
32633
32633
|
/***/ }),
|
32634
32634
|
|
@@ -34344,7 +34344,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
34344
34344
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
34345
34345
|
|
34346
34346
|
"use strict";
|
34347
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Terminal\": () => (/* binding */ Terminal)\n/* harmony export */ });\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! xterm */ \"./node_modules/xterm/lib/xterm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(xterm__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xterm-addon-fit */ \"./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js\");\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _common_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../common/logger */ \"./src/common/logger.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/* harmony import */ var _common_terminal_channels__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../common/terminal/channels */ \"./src/common/terminal/channels.ts\");\n/* harmony import */ var xterm_link_provider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! xterm-link-provider */ \"./node_modules/xterm-link-provider/lib/esm/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\n\n\n\n\n\n\nclass Terminal {\n constructor(dependencies, { tabId, api, }) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"xterm\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fitAddon\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__.FitAddon()\n });\n Object.defineProperty(this, \"scrollPos\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"disposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.disposer)()\n });\n Object.defineProperty(this, \"tabId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"api\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => this.fitAddon.fit()\n });\n Object.defineProperty(this, \"fitLazy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default()(this.fit, 250)\n });\n Object.defineProperty(this, \"focus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.focus();\n }\n });\n Object.defineProperty(this, \"onApiData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n this.xterm.write(data);\n }\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n if (!this.api.isReady)\n return;\n this.api.sendMessage({\n type: _common_terminal_channels__WEBPACK_IMPORTED_MODULE_8__.TerminalChannels.STDIN,\n data,\n });\n }\n });\n Object.defineProperty(this, \"onScroll\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.scrollPos = this.viewport.scrollTop;\n }\n });\n Object.defineProperty(this, \"onClear\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.clear();\n }\n });\n Object.defineProperty(this, \"onResize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fitLazy();\n this.focus();\n }\n });\n Object.defineProperty(this, \"onActivate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fit();\n setTimeout(() => this.focus(), 250); // delay used to prevent focus on active tab\n this.viewport.scrollTop = this.scrollPos; // restore last scroll position\n }\n });\n Object.defineProperty(this, \"onContextMenu\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n if (\n // don't paste if user hasn't turned on the feature\n this.dependencies.terminalCopyOnSelect.get()\n // don't paste if the clipboard doesn't have text\n && electron__WEBPACK_IMPORTED_MODULE_5__.clipboard.availableFormats().includes(\"text/plain\")) {\n this.xterm.paste(electron__WEBPACK_IMPORTED_MODULE_5__.clipboard.readText());\n }\n }\n });\n Object.defineProperty(this, \"onSelectionChange\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n const selection = this.xterm.getSelection().trim();\n if (this.dependencies.terminalCopyOnSelect.get() && selection) {\n electron__WEBPACK_IMPORTED_MODULE_5__.clipboard.writeText(selection);\n }\n }\n });\n Object.defineProperty(this, \"setFontSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (fontSize) => {\n _common_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].info(`[TERMINAL]: set fontSize to ${fontSize}`);\n this.xterm.options.fontSize = fontSize;\n this.fit();\n }\n });\n Object.defineProperty(this, \"setFontFamily\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (fontFamily) => {\n _common_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].info(`[TERMINAL]: set fontFamily to ${fontFamily}`);\n this.xterm.options.fontFamily = fontFamily;\n this.fit();\n // provide css-variable within `:root {}`\n document.documentElement.style.setProperty(\"--font-terminal\", fontFamily);\n }\n });\n Object.defineProperty(this, \"keyHandler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n const { code, ctrlKey, metaKey } = evt;\n // Handle custom hotkey bindings\n if (ctrlKey) {\n switch (code) {\n // Ctrl+C: prevent terminal exit on windows / linux (?)\n case \"KeyC\":\n if (this.xterm.hasSelection())\n return false;\n break;\n // Ctrl+W: prevent unexpected terminal tab closing, e.g. editing file in vim\n case \"KeyW\":\n evt.preventDefault();\n break;\n }\n }\n //Ctrl+K: clear the entire buffer, making the prompt line the new first line on mac os\n if (this.dependencies.isMac && metaKey) {\n switch (code) {\n case \"KeyK\":\n this.onClear();\n break;\n }\n }\n return true;\n }\n });\n this.tabId = tabId;\n this.api = api;\n this.xterm = new xterm__WEBPACK_IMPORTED_MODULE_1__.Terminal({\n cursorBlink: true,\n cursorStyle: \"bar\",\n fontSize: this.fontSize,\n fontFamily: this.fontFamily,\n });\n // enable terminal addons\n this.xterm.loadAddon(this.fitAddon);\n this.xterm.open(this.dependencies.spawningPool);\n this.xterm.attachCustomKeyEventHandler(this.keyHandler);\n this.xterm.onSelectionChange(this.onSelectionChange);\n // bind events\n const onDataHandler = this.xterm.onData(this.onData);\n const clearOnce = (0,lodash__WEBPACK_IMPORTED_MODULE_4__.once)(this.onClear);\n this.viewport.addEventListener(\"scroll\", this.onScroll);\n this.elem.addEventListener(\"contextmenu\", this.onContextMenu);\n this.api.once(\"ready\", clearOnce);\n this.api.once(\"connected\", clearOnce);\n this.api.on(\"data\", this.onApiData);\n window.addEventListener(\"resize\", this.onResize);\n const linkProvider = new xterm_link_provider__WEBPACK_IMPORTED_MODULE_9__.LinkProvider(this.xterm, /https?:\\/\\/[^\\s]+/i, (event, link) => this.dependencies.openLinkInBrowser(link), undefined, 0);\n this.disposer.push(this.xterm.registerLinkProvider(linkProvider), (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.theme, colors => this.xterm.setOption(\"theme\", colors), {\n fireImmediately: true,\n }), (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.fontSize, this.setFontSize, { fireImmediately: true }), (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.fontFamily, this.setFontFamily, { fireImmediately: true }), () => onDataHandler.dispose(), () => this.fitAddon.dispose(), () => this.api.removeAllListeners(), () => window.removeEventListener(\"resize\", this.onResize), () => this.elem.removeEventListener(\"contextmenu\", this.onContextMenu), this.xterm.onResize(({ cols, rows }) => {\n this.api.sendTerminalSize(cols, rows);\n }));\n }\n get elem() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.xterm.element;\n }\n get viewport() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.elem.querySelector(\".xterm-viewport\");\n }\n attachTo(parentElem) {\n assert__WEBPACK_IMPORTED_MODULE_7___default()(this.elem, \"Terminal should always be mounted somewhere\");\n parentElem.appendChild(this.elem);\n this.onActivate();\n }\n detach() {\n const { elem } = this;\n if (elem) {\n this.dependencies.spawningPool.appendChild(elem);\n }\n }\n get fontFamily() {\n return this.dependencies.terminalConfig.get().fontFamily;\n }\n get fontSize() {\n return this.dependencies.terminalConfig.get().fontSize;\n }\n get theme() {\n return this.dependencies.themeStore.xtermColors;\n }\n destroy() {\n this.disposer();\n this.xterm.dispose();\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/terminal/terminal.ts?");
|
34347
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Terminal\": () => (/* binding */ Terminal)\n/* harmony export */ });\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! xterm */ \"./node_modules/xterm/lib/xterm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(xterm__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xterm-addon-fit */ \"./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js\");\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _common_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../common/logger */ \"./src/common/logger.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/* harmony import */ var _common_terminal_channels__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../common/terminal/channels */ \"./src/common/terminal/channels.ts\");\n/* harmony import */ var xterm_link_provider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! xterm-link-provider */ \"./node_modules/xterm-link-provider/lib/esm/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\n\n\n\n\n\n\nclass Terminal {\n get elem() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.xterm.element;\n }\n get viewport() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.elem.querySelector(\".xterm-viewport\");\n }\n attachTo(parentElem) {\n assert__WEBPACK_IMPORTED_MODULE_7___default()(this.elem, \"Terminal should always be mounted somewhere\");\n parentElem.appendChild(this.elem);\n this.onActivate();\n }\n detach() {\n const { elem } = this;\n if (elem) {\n this.dependencies.spawningPool.appendChild(elem);\n }\n }\n get fontFamily() {\n return this.dependencies.terminalConfig.get().fontFamily;\n }\n get fontSize() {\n return this.dependencies.terminalConfig.get().fontSize;\n }\n get theme() {\n return this.dependencies.themeStore.xtermColors;\n }\n constructor(dependencies, { tabId, api, }) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"xterm\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fitAddon\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__.FitAddon()\n });\n Object.defineProperty(this, \"scrollPos\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"disposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.disposer)()\n });\n Object.defineProperty(this, \"tabId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"api\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => this.fitAddon.fit()\n });\n Object.defineProperty(this, \"fitLazy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default()(this.fit, 250)\n });\n Object.defineProperty(this, \"focus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.focus();\n }\n });\n Object.defineProperty(this, \"onApiData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n this.xterm.write(data);\n }\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n if (!this.api.isReady)\n return;\n this.api.sendMessage({\n type: _common_terminal_channels__WEBPACK_IMPORTED_MODULE_8__.TerminalChannels.STDIN,\n data,\n });\n }\n });\n Object.defineProperty(this, \"onScroll\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.scrollPos = this.viewport.scrollTop;\n }\n });\n Object.defineProperty(this, \"onClear\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.clear();\n }\n });\n Object.defineProperty(this, \"onResize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fitLazy();\n this.focus();\n }\n });\n Object.defineProperty(this, \"onActivate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fit();\n setTimeout(() => this.focus(), 250); // delay used to prevent focus on active tab\n this.viewport.scrollTop = this.scrollPos; // restore last scroll position\n }\n });\n Object.defineProperty(this, \"onContextMenu\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n if (\n // don't paste if user hasn't turned on the feature\n this.dependencies.terminalCopyOnSelect.get()\n // don't paste if the clipboard doesn't have text\n && electron__WEBPACK_IMPORTED_MODULE_5__.clipboard.availableFormats().includes(\"text/plain\")) {\n this.xterm.paste(electron__WEBPACK_IMPORTED_MODULE_5__.clipboard.readText());\n }\n }\n });\n Object.defineProperty(this, \"onSelectionChange\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n const selection = this.xterm.getSelection().trim();\n if (this.dependencies.terminalCopyOnSelect.get() && selection) {\n electron__WEBPACK_IMPORTED_MODULE_5__.clipboard.writeText(selection);\n }\n }\n });\n Object.defineProperty(this, \"setFontSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (fontSize) => {\n _common_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].info(`[TERMINAL]: set fontSize to ${fontSize}`);\n this.xterm.options.fontSize = fontSize;\n this.fit();\n }\n });\n Object.defineProperty(this, \"setFontFamily\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (fontFamily) => {\n _common_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].info(`[TERMINAL]: set fontFamily to ${fontFamily}`);\n this.xterm.options.fontFamily = fontFamily;\n this.fit();\n // provide css-variable within `:root {}`\n document.documentElement.style.setProperty(\"--font-terminal\", fontFamily);\n }\n });\n Object.defineProperty(this, \"keyHandler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n const { code, ctrlKey, metaKey } = evt;\n // Handle custom hotkey bindings\n if (ctrlKey) {\n switch (code) {\n // Ctrl+C: prevent terminal exit on windows / linux (?)\n case \"KeyC\":\n if (this.xterm.hasSelection())\n return false;\n break;\n // Ctrl+W: prevent unexpected terminal tab closing, e.g. editing file in vim\n case \"KeyW\":\n evt.preventDefault();\n break;\n }\n }\n //Ctrl+K: clear the entire buffer, making the prompt line the new first line on mac os\n if (this.dependencies.isMac && metaKey) {\n switch (code) {\n case \"KeyK\":\n this.onClear();\n break;\n }\n }\n return true;\n }\n });\n this.tabId = tabId;\n this.api = api;\n this.xterm = new xterm__WEBPACK_IMPORTED_MODULE_1__.Terminal({\n cursorBlink: true,\n cursorStyle: \"bar\",\n fontSize: this.fontSize,\n fontFamily: this.fontFamily,\n });\n // enable terminal addons\n this.xterm.loadAddon(this.fitAddon);\n this.xterm.open(this.dependencies.spawningPool);\n this.xterm.attachCustomKeyEventHandler(this.keyHandler);\n this.xterm.onSelectionChange(this.onSelectionChange);\n // bind events\n const onDataHandler = this.xterm.onData(this.onData);\n const clearOnce = (0,lodash__WEBPACK_IMPORTED_MODULE_4__.once)(this.onClear);\n this.viewport.addEventListener(\"scroll\", this.onScroll);\n this.elem.addEventListener(\"contextmenu\", this.onContextMenu);\n this.api.once(\"ready\", clearOnce);\n this.api.once(\"connected\", clearOnce);\n this.api.on(\"data\", this.onApiData);\n window.addEventListener(\"resize\", this.onResize);\n const linkProvider = new xterm_link_provider__WEBPACK_IMPORTED_MODULE_9__.LinkProvider(this.xterm, /https?:\\/\\/[^\\s]+/i, (event, link) => this.dependencies.openLinkInBrowser(link), undefined, 0);\n this.disposer.push(this.xterm.registerLinkProvider(linkProvider), (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.theme, colors => this.xterm.setOption(\"theme\", colors), {\n fireImmediately: true,\n }), (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.fontSize, this.setFontSize, { fireImmediately: true }), (0,mobx__WEBPACK_IMPORTED_MODULE_10__.reaction)(() => this.fontFamily, this.setFontFamily, { fireImmediately: true }), () => onDataHandler.dispose(), () => this.fitAddon.dispose(), () => this.api.removeAllListeners(), () => window.removeEventListener(\"resize\", this.onResize), () => this.elem.removeEventListener(\"contextmenu\", this.onContextMenu), this.xterm.onResize(({ cols, rows }) => {\n this.api.sendTerminalSize(cols, rows);\n }));\n }\n destroy() {\n this.disposer();\n this.xterm.dispose();\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/terminal/terminal.ts?");
|
34348
34348
|
|
34349
34349
|
/***/ }),
|
34350
34350
|
|
@@ -34564,7 +34564,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
34564
34564
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
34565
34565
|
|
34566
34566
|
"use strict";
|
34567
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SearchInputUrl\": () => (/* binding */ SearchInputUrl)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var
|
34567
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SearchInputUrl\": () => (/* binding */ SearchInputUrl)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _search_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./search-input */ \"./src/renderer/components/input/search-input.tsx\");\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 _search_url_page_param_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search-url-page-param.injectable */ \"./src/renderer/components/input/search-url-page-param.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};\n\n\n\n\n\n\n\nlet NonInjectedSearchInputUrl = class NonInjectedSearchInputUrl extends react__WEBPACK_IMPORTED_MODULE_0__.Component {\n componentDidMount() {\n (0,mobx_react__WEBPACK_IMPORTED_MODULE_5__.disposeOnUnmount)(this, [\n (0,mobx__WEBPACK_IMPORTED_MODULE_6__.autorun)(() => this.inputVal = this.props.searchUrlParam.get()),\n ]);\n }\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"inputVal\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"\"\n }); // fix: use empty string on init to avoid react warnings\n Object.defineProperty(this, \"updateUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()((val) => this.props.searchUrlParam.set(val), 250)\n });\n Object.defineProperty(this, \"setValue\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (value) => {\n this.inputVal = value;\n this.updateUrl(value);\n }\n });\n Object.defineProperty(this, \"clear\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.setValue(\"\");\n this.updateUrl.flush();\n }\n });\n Object.defineProperty(this, \"onChange\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (val, evt) => {\n var _a, _b;\n this.setValue(val);\n (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, val, evt);\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_6__.makeObservable)(this);\n }\n render() {\n const { searchUrlParam, ...searchInputProps } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_search_input__WEBPACK_IMPORTED_MODULE_2__.SearchInput, { value: this.inputVal, onChange: (val, event) => {\n var _a, _b;\n this.setValue(val);\n (_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, val, event);\n }, onClear: this.clear, ...searchInputProps }));\n }\n};\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], NonInjectedSearchInputUrl.prototype, \"inputVal\", void 0);\nNonInjectedSearchInputUrl = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_5__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedSearchInputUrl);\nconst SearchInputUrl = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__.withInjectables)(NonInjectedSearchInputUrl, {\n getProps: (di, props) => ({\n ...props,\n searchUrlParam: di.inject(_search_url_page_param_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/input/search-input-url.tsx?");
|
34568
34568
|
|
34569
34569
|
/***/ }),
|
34570
34570
|
|
@@ -34674,7 +34674,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
34674
34674
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
34675
34675
|
|
34676
34676
|
"use strict";
|
34677
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"FilterType\": () => (/* binding */ FilterType),\n/* harmony export */ \"PageFiltersStore\": () => (/* binding */ PageFiltersStore)\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 _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils */ \"./src/renderer/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 */\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\nvar FilterType;\n(function (FilterType) {\n FilterType[\"SEARCH\"] = \"search\";\n})(FilterType || (FilterType = {}));\nclass PageFiltersStore {\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"filters\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_1__.observable.array([], { deep: false })\n });\n Object.defineProperty(this, \"isDisabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_1__.observable.map()\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_1__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind)(this);\n this.syncWithGlobalSearch();\n }\n
|
34677
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"FilterType\": () => (/* binding */ FilterType),\n/* harmony export */ \"PageFiltersStore\": () => (/* binding */ PageFiltersStore)\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 _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils */ \"./src/renderer/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 */\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\nvar FilterType;\n(function (FilterType) {\n FilterType[\"SEARCH\"] = \"search\";\n})(FilterType || (FilterType = {}));\nclass PageFiltersStore {\n get activeFilters() {\n return this.filters.filter(filter => !this.isDisabled.get(filter.type));\n }\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"filters\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_1__.observable.array([], { deep: false })\n });\n Object.defineProperty(this, \"isDisabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_1__.observable.map()\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_1__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind)(this);\n this.syncWithGlobalSearch();\n }\n syncWithGlobalSearch() {\n const disposers = [\n (0,mobx__WEBPACK_IMPORTED_MODULE_1__.reaction)(() => this.getValues(FilterType.SEARCH)[0], search => this.dependencies.searchUrlParam.set(search)),\n (0,mobx__WEBPACK_IMPORTED_MODULE_1__.reaction)(() => this.dependencies.searchUrlParam.get(), search => {\n const filter = this.getByType(FilterType.SEARCH);\n if (filter) {\n this.removeFilter(filter); // search filter might occur once\n }\n if (search) {\n this.addFilter({ type: FilterType.SEARCH, value: search }, true);\n }\n }, {\n fireImmediately: true,\n }),\n ];\n return () => disposers.forEach(dispose => dispose());\n }\n addFilter(filter, begin = false) {\n if (begin)\n this.filters.unshift(filter);\n else {\n this.filters.push(filter);\n }\n }\n removeFilter(filter) {\n if (!this.filters.remove(filter)) {\n const filterCopy = this.filters.find(f => f.type === filter.type && f.value === filter.value);\n if (filterCopy)\n this.filters.remove(filterCopy);\n }\n }\n getByType(type, value) {\n return this.filters.find(filter => filter.type === type && (arguments.length > 1 ? filter.value === value : true));\n }\n getValues(type) {\n return this.filters\n .filter(filter => filter.type === type)\n .map(filter => filter.value);\n }\n isEnabled(type) {\n return !this.isDisabled.get(type);\n }\n disable(type) {\n [type].flat().forEach(type => this.isDisabled.set(type, true));\n return () => this.enable(type);\n }\n enable(type) {\n [type].flat().forEach(type => this.isDisabled.delete(type));\n return () => this.disable(type);\n }\n reset() {\n if (this.isEnabled(FilterType.SEARCH)) {\n this.dependencies.searchUrlParam.clear();\n }\n this.filters.length = 0;\n this.isDisabled.clear();\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], PageFiltersStore.prototype, \"activeFilters\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Object]),\n __metadata(\"design:returntype\", void 0)\n], PageFiltersStore.prototype, \"addFilter\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PageFiltersStore.prototype, \"removeFilter\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PageFiltersStore.prototype, \"disable\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PageFiltersStore.prototype, \"enable\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], PageFiltersStore.prototype, \"reset\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/item-object-list/page-filters/store.ts?");
|
34678
34678
|
|
34679
34679
|
/***/ }),
|
34680
34680
|
|
@@ -36049,7 +36049,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
36049
36049
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
36050
36050
|
|
36051
36051
|
"use strict";
|
36052
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ThemeStore\": () => (/* binding */ ThemeStore)\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 _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _lens_dark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens-dark */ \"./src/renderer/themes/lens-dark.ts\");\n/* harmony import */ var _lens_light__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lens-light */ \"./src/renderer/themes/lens-light.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _common_ipc_native_theme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/ipc/native-theme */ \"./src/common/ipc/native-theme.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};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ThemeStore_themes;\n\n\n\n\n\n\n\n\n\nclass ThemeStore {\n
|
36052
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ThemeStore\": () => (/* binding */ ThemeStore)\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 _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _lens_dark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens-dark */ \"./src/renderer/themes/lens-dark.ts\");\n/* harmony import */ var _lens_light__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lens-light */ \"./src/renderer/themes/lens-light.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _common_ipc_native_theme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/ipc/native-theme */ \"./src/common/ipc/native-theme.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};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ThemeStore_themes;\n\n\n\n\n\n\n\n\n\nclass ThemeStore {\n get colorThemePreference() {\n return this.dependencies.userStore.colorTheme;\n }\n get activeThemeId() {\n if (this.colorThemePreference === \"system\") {\n if (this.osNativeThemeType) {\n return `lens-${this.osNativeThemeType}`;\n }\n else {\n return _common_vars__WEBPACK_IMPORTED_MODULE_4__.defaultThemeId;\n }\n }\n else {\n return this.colorThemePreference;\n }\n }\n get terminalThemeId() {\n return this.dependencies.userStore.terminalTheme;\n }\n get activeTheme() {\n var _a;\n return (_a = this.themes.get(this.activeThemeId)) !== null && _a !== void 0 ? _a : this.defaultTheme;\n }\n get terminalColors() {\n var _a;\n const theme = (_a = this.themes.get(this.terminalThemeId)) !== null && _a !== void 0 ? _a : this.activeTheme;\n return Object\n .entries(theme.colors)\n .filter(([name]) => name.startsWith(this.terminalColorPrefix));\n }\n // Replacing keys stored in styles to format accepted by terminal\n // E.g. terminalBrightBlack -> brightBlack\n get xtermColors() {\n return Object.fromEntries(this.terminalColors.map(([name, color]) => [\n (0,lodash__WEBPACK_IMPORTED_MODULE_5__.camelCase)(name.replace(this.terminalColorPrefix, \"\")),\n color,\n ]));\n }\n get themes() {\n return __classPrivateFieldGet(this, _ThemeStore_themes, \"f\");\n }\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"terminalColorPrefix\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"terminal\"\n });\n _ThemeStore_themes.set(this, mobx__WEBPACK_IMPORTED_MODULE_8__.observable.map({\n \"lens-dark\": _lens_dark__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n \"lens-light\": _lens_light__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n }));\n Object.defineProperty(this, \"osNativeThemeType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"defaultTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind)(this);\n this.init();\n const defaultTheme = __classPrivateFieldGet(this, _ThemeStore_themes, \"f\").get(_common_vars__WEBPACK_IMPORTED_MODULE_4__.defaultThemeId);\n assert__WEBPACK_IMPORTED_MODULE_7___default()(defaultTheme, `${_common_vars__WEBPACK_IMPORTED_MODULE_4__.defaultThemeId} is invalid as there is no corresponding theme`);\n this.defaultTheme = defaultTheme;\n }\n async init() {\n this.osNativeThemeType = await this.dependencies.ipcRenderer.invoke(_common_ipc_native_theme__WEBPACK_IMPORTED_MODULE_6__.getNativeThemeChannel);\n this.dependencies.ipcRenderer.on(_common_ipc_native_theme__WEBPACK_IMPORTED_MODULE_6__.setNativeThemeChannel, (event, theme) => {\n this.osNativeThemeType = theme;\n });\n // auto-apply active theme\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.reaction)(() => ({\n themeId: this.activeThemeId,\n terminalThemeId: this.terminalThemeId,\n }), () => {\n try {\n this.applyActiveTheme();\n }\n catch (err) {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`Failed to apply active theme: ${err}`);\n this.dependencies.userStore.resetTheme();\n }\n }, {\n fireImmediately: true,\n equals: mobx__WEBPACK_IMPORTED_MODULE_8__.comparer.shallow,\n });\n }\n getThemeById(themeId) {\n return this.themes.get(themeId);\n }\n applyActiveTheme() {\n const colors = Object.entries({\n ...this.activeTheme.colors,\n ...Object.fromEntries(this.terminalColors),\n });\n colors.forEach(([name, value]) => {\n document.documentElement.style.setProperty(`--${name}`, value);\n });\n // Adding universal theme flag which can be used in component styles\n document.body.classList.toggle(\"theme-light\", this.activeTheme.type === \"light\");\n }\n}\n_ThemeStore_themes = new WeakMap();\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], ThemeStore.prototype, \"osNativeThemeType\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ThemeStore.prototype, \"colorThemePreference\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ThemeStore.prototype, \"activeThemeId\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ThemeStore.prototype, \"terminalThemeId\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ThemeStore.prototype, \"activeTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], ThemeStore.prototype, \"terminalColors\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ThemeStore.prototype, \"xtermColors\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/themes/store.ts?");
|
36053
36053
|
|
36054
36054
|
/***/ }),
|
36055
36055
|
|
@@ -36247,7 +36247,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
36247
36247
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
36248
36248
|
|
36249
36249
|
"use strict";
|
36250
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"StorageHelper\": () => (/* binding */ StorageHelper)\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 immer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! immer */ \"./node_modules/immer/dist/immer.esm.mjs\");\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 _main_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.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// Helper for working with storages (e.g. window.localStorage, NodeJS/file-system, etc.)\n\n\n\n\n\nclass StorageHelper {\n constructor(key, options) {\n Object.defineProperty(this, \"key\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: key\n });\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: options\n });\n Object.defineProperty(this, \"storage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__.observable.box(undefined, {\n deep: true,\n equals: mobx__WEBPACK_IMPORTED_MODULE_3__.comparer.structural,\n })\n });\n Object.defineProperty(this, \"initialized\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n const notEmpty = data != null;\n const notDefault = !this.isDefaultValue(data);\n if (notEmpty && notDefault) {\n this.set(data);\n }\n this.initialized = true;\n }\n });\n Object.defineProperty(this, \"onError\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (error) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`${StorageHelper.logPrefix} loading error: ${error}`, this);\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_3__.makeObservable)(this);\n const { storage, autoInit = true } = options;\n this.storage = storage;\n (0,mobx__WEBPACK_IMPORTED_MODULE_3__.observe)(this.data, (change) => {\n this.onChange(change.newValue, change.oldValue);\n });\n if (autoInit) {\n this.init();\n }\n }\n
|
36250
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"StorageHelper\": () => (/* binding */ StorageHelper)\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 immer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! immer */ \"./node_modules/immer/dist/immer.esm.mjs\");\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 _main_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.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// Helper for working with storages (e.g. window.localStorage, NodeJS/file-system, etc.)\n\n\n\n\n\nclass StorageHelper {\n get whenReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_3__.when)(() => this.initialized);\n }\n get defaultValue() {\n // return as-is since options.defaultValue might be a getter too\n return this.options.defaultValue;\n }\n constructor(key, options) {\n Object.defineProperty(this, \"key\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: key\n });\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: options\n });\n Object.defineProperty(this, \"storage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__.observable.box(undefined, {\n deep: true,\n equals: mobx__WEBPACK_IMPORTED_MODULE_3__.comparer.structural,\n })\n });\n Object.defineProperty(this, \"initialized\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n const notEmpty = data != null;\n const notDefault = !this.isDefaultValue(data);\n if (notEmpty && notDefault) {\n this.set(data);\n }\n this.initialized = true;\n }\n });\n Object.defineProperty(this, \"onError\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (error) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`${StorageHelper.logPrefix} loading error: ${error}`, this);\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_3__.makeObservable)(this);\n const { storage, autoInit = true } = options;\n this.storage = storage;\n (0,mobx__WEBPACK_IMPORTED_MODULE_3__.observe)(this.data, (change) => {\n this.onChange(change.newValue, change.oldValue);\n });\n if (autoInit) {\n this.init();\n }\n }\n init({ force = false } = {}) {\n if (this.initialized && !force) {\n return;\n }\n try {\n const data = this.storage.getItem(this.key);\n if (data instanceof Promise) {\n data.then(this.onData, this.onError);\n }\n else {\n this.onData(data);\n }\n }\n catch (error) {\n this.onError(error);\n }\n }\n isDefaultValue(value) {\n return (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isEqual)(value, this.defaultValue);\n }\n onChange(value, oldValue) {\n var _a, _b;\n if (!this.initialized)\n return;\n try {\n if (value == null) {\n this.storage.removeItem(this.key);\n }\n else {\n this.storage.setItem(this.key, value);\n }\n (_b = (_a = this.storage).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, { value, oldValue, key: this.key });\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`${StorageHelper.logPrefix} updating storage: ${error}`, this, { value, oldValue });\n }\n }\n get() {\n return this.value;\n }\n get value() {\n var _a;\n return (_a = this.data.get()) !== null && _a !== void 0 ? _a : this.defaultValue;\n }\n set(value) {\n if (this.isDefaultValue(value)) {\n this.reset();\n }\n else {\n this.data.set(value);\n }\n }\n reset() {\n this.data.set(undefined);\n }\n merge(value) {\n const nextValue = (0,immer__WEBPACK_IMPORTED_MODULE_4__.produce)((0,mobx__WEBPACK_IMPORTED_MODULE_3__.toJS)(this.get()), (draft) => {\n assert__WEBPACK_IMPORTED_MODULE_2___default()(typeof draft === \"object\" && draft);\n if (typeof value == \"function\") {\n const newValue = value(draft);\n // merge returned plain objects from `value-as-callback` usage\n // otherwise `draft` can be just modified inside a callback without returning any value (void)\n if (newValue && !(0,immer__WEBPACK_IMPORTED_MODULE_4__.isDraft)(newValue)) {\n Object.assign(draft, newValue);\n }\n }\n else if ((0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(value)) {\n Object.assign(draft, value);\n }\n return draft;\n });\n this.set(nextValue);\n }\n}\nObject.defineProperty(StorageHelper, \"logPrefix\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"[StorageHelper]:\"\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.observable,\n __metadata(\"design:type\", Object)\n], StorageHelper.prototype, \"initialized\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], StorageHelper.prototype, \"init\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], StorageHelper.prototype, \"value\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], StorageHelper.prototype, \"set\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], StorageHelper.prototype, \"reset\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], StorageHelper.prototype, \"merge\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/storageHelper.ts?");
|
36251
36251
|
|
36252
36252
|
/***/ }),
|
36253
36253
|
|
@@ -40823,7 +40823,7 @@ eval("module.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A log
|
|
40823
40823
|
/***/ ((module) => {
|
40824
40824
|
|
40825
40825
|
"use strict";
|
40826
|
-
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.3.0-alpha.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\",\"compile:node-fetch\":\"yarn run webpack --config ./webpack/node-fetch.ts\",\"postinstall\":\"yarn run compile:node-fetch\",\"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.3.0\",\"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\":\"^12.0.1\",\"@ogre-tools/injectable\":\"^12.0.1\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"^12.0.1\",\"@ogre-tools/injectable-extension-for-mobx\":\"^12.0.1\",\"@ogre-tools/injectable-react\":\"^12.0.1\",\"@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.16\",\"joi\":\"^17.7.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.2.2\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.7.0\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.6.0\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.2.0\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.39\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^3.3.0\",\"node-pty\":\"0.10.1\",\"npm\":\"^8.19.3\",\"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.3.4\",\"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.8\",\"tar\":\"^6.1.12\",\"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-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.11.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.9\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.3.18\",\"@swc/jest\":\"^0.2.23\",\"@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.4.0\",\"@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.189\",\"@types/marked\":\"^4.0.7\",\"@types/md5-file\":\"^4.0.2\",\"@types/memorystream\":\"^0.3.0\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.18.2\",\"@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.19\",\"@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.13\",\"@types/sharp\":\"^0.31.0\",\"@types/tar\":\"^6.1.3\",\"@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.43.0\",\"@typescript-eslint/parser\":\"^5.43.0\",\"adr\":\"^1.4.3\",\"ansi_up\":\"^5.1.0\",\"chalk\":\"^4.1.2\",\"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.5.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.1\",\"electron\":\"^19.1.6\",\"electron-builder\":\"^23.6.0\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.14\",\"esbuild-loader\":\"^2.20.0\",\"eslint\":\"^8.27.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.31.10\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"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\",\"memorystream\":\"^0.3.1\",\"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.28.0\",\"postcss\":\"^8.4.19\",\"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.6.1\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.8\",\"sass\":\"^1.56.1\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.31.2\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.2.4\",\"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.21\",\"typedoc-plugin-markdown\":\"^3.13.6\",\"typescript\":\"^4.8.4\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.75.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?");
|
40826
|
+
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.3.0-alpha.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\",\"compile:node-fetch\":\"yarn run webpack --config ./webpack/node-fetch.ts\",\"postinstall\":\"yarn run compile:node-fetch\",\"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.3.0\",\"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\":\"^12.0.1\",\"@ogre-tools/injectable\":\"^12.0.1\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"^12.0.1\",\"@ogre-tools/injectable-extension-for-mobx\":\"^12.0.1\",\"@ogre-tools/injectable-react\":\"^12.0.1\",\"@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.16\",\"joi\":\"^17.7.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.2.2\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.7.0\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.6.0\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.2.0\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.39\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^3.3.0\",\"node-pty\":\"0.10.1\",\"npm\":\"^8.19.3\",\"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.3.4\",\"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.8\",\"tar\":\"^6.1.12\",\"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-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.11.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.9\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.3.18\",\"@swc/jest\":\"^0.2.23\",\"@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.4.0\",\"@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.189\",\"@types/marked\":\"^4.0.7\",\"@types/md5-file\":\"^4.0.2\",\"@types/memorystream\":\"^0.3.0\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.18.2\",\"@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.19\",\"@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.13\",\"@types/sharp\":\"^0.31.0\",\"@types/tar\":\"^6.1.3\",\"@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.43.0\",\"@typescript-eslint/parser\":\"^5.43.0\",\"adr\":\"^1.4.3\",\"ansi_up\":\"^5.1.0\",\"chalk\":\"^4.1.2\",\"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.5.0\",\"css-loader\":\"^6.7.2\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.1\",\"electron\":\"^19.1.6\",\"electron-builder\":\"^23.6.0\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.14\",\"esbuild-loader\":\"^2.20.0\",\"eslint\":\"^8.27.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.31.10\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"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\",\"memorystream\":\"^0.3.1\",\"mini-css-extract-plugin\":\"^2.7.0\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.20\",\"playwright\":\"^1.28.0\",\"postcss\":\"^8.4.19\",\"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.6.1\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.8\",\"sass\":\"^1.56.1\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.31.2\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.2.4\",\"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.21\",\"typedoc-plugin-markdown\":\"^3.13.6\",\"typescript\":\"^4.9.3\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.75.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?");
|
40827
40827
|
|
40828
40828
|
/***/ }),
|
40829
40829
|
|