@k8slens/extensions 5.3.1-git.b3723de3ec.0 → 5.3.1-git.bb30bdc750.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/src/common/k8s-api/cluster-context.d.ts +1 -0
  2. package/dist/src/common/k8s-api/kube-object.d.ts +3 -2
  3. package/dist/src/common/k8s-api/kube-object.store.d.ts +11 -7
  4. package/dist/src/common/k8s-api/kube-watch-api.d.ts +7 -30
  5. package/dist/src/extensions/extension-api.js +6 -18
  6. package/dist/src/renderer/components/+events/kube-event-details.d.ts +1 -1
  7. package/dist/src/renderer/components/+namespaces/namespace-details.d.ts +0 -1
  8. package/dist/src/renderer/components/+namespaces/namespace-select.d.ts +0 -1
  9. package/dist/src/renderer/components/+namespaces/namespace.store.d.ts +1 -1
  10. package/dist/src/renderer/components/+network-ingresses/ingress-details.d.ts +1 -1
  11. package/dist/src/renderer/components/+nodes/node-details.d.ts +1 -2
  12. package/dist/src/renderer/components/+storage-classes/storage-class-details.d.ts +1 -1
  13. package/dist/src/renderer/components/+storage-volume-claims/volume-claim-details.d.ts +1 -1
  14. package/dist/src/renderer/components/+workloads-cronjobs/cronjob-details.d.ts +1 -1
  15. package/dist/src/renderer/components/+workloads-daemonsets/daemonset-details.d.ts +0 -1
  16. package/dist/src/renderer/components/+workloads-deployments/deployment-details.d.ts +0 -1
  17. package/dist/src/renderer/components/+workloads-jobs/job-details.d.ts +1 -1
  18. package/dist/src/renderer/components/+workloads-overview/overview.d.ts +2 -0
  19. package/dist/src/renderer/components/+workloads-replicasets/replicaset-details.d.ts +1 -2
  20. package/dist/src/renderer/components/+workloads-statefulsets/statefulset-details.d.ts +0 -1
  21. package/dist/src/renderer/components/context.d.ts +8 -1
  22. package/dist/src/renderer/components/hotbar/hotbar-menu.d.ts +3 -0
  23. package/dist/src/renderer/components/kube-object-list-layout/kube-object-list-layout.d.ts +2 -0
  24. package/dist/src/renderer/port-forward/port-forward.store.d.ts +1 -1
  25. package/package.json +1 -1
@@ -23,4 +23,5 @@ export interface ClusterContext {
23
23
  cluster?: Cluster;
24
24
  allNamespaces: string[];
25
25
  contextNamespaces: string[];
26
+ hasSelectedAll: boolean;
26
27
  }
@@ -82,8 +82,9 @@ export declare class KubeCreationError extends Error {
82
82
  constructor(message: string, data: any);
83
83
  }
84
84
  export declare class KubeObject<Metadata extends KubeObjectMetadata = KubeObjectMetadata, Status = any, Spec = any> implements ItemObject {
85
- static readonly kind: string;
86
- static readonly namespaced: boolean;
85
+ static readonly kind?: string;
86
+ static readonly namespaced?: boolean;
87
+ static readonly apiBase?: string;
87
88
  apiVersion: string;
88
89
  kind: string;
89
90
  metadata: Metadata;
@@ -25,10 +25,10 @@ import { ItemStore } from "../item.store";
25
25
  import { IKubeApiQueryParams, KubeApi } from "./kube-api";
26
26
  import type { KubeJsonApiData } from "./kube-json-api";
27
27
  import type { RequestInit } from "node-fetch";
28
+ import AbortController from "abort-controller";
28
29
  import type { Patch } from "rfc6902";
29
- export interface KubeObjectStoreLoadingParams<K extends KubeObject> {
30
+ export interface KubeObjectStoreLoadingParams {
30
31
  namespaces: string[];
31
- api?: KubeApi<K>;
32
32
  reqInit?: RequestInit;
33
33
  /**
34
34
  * A function that is called when listing fails. If set then blocks errors
@@ -52,6 +52,10 @@ export interface KubeObjectStoreSubscribeParams {
52
52
  * being rejected with
53
53
  */
54
54
  onLoadFailure?: (err: any) => void;
55
+ /**
56
+ * An optional parent abort controller
57
+ */
58
+ abortController?: AbortController;
55
59
  }
56
60
  export declare abstract class KubeObjectStore<T extends KubeObject> extends ItemStore<T> {
57
61
  static defaultContext: import("mobx").IObservableValue<ClusterContext>;
@@ -78,16 +82,16 @@ export declare abstract class KubeObjectStore<T extends KubeObject> extends Item
78
82
  getByLabel(labels: string[] | {
79
83
  [label: string]: string;
80
84
  }): T[];
81
- protected loadItems({ namespaces, api, reqInit, onLoadFailure }: KubeObjectStoreLoadingParams<T>): Promise<T[]>;
85
+ protected loadItems({ namespaces, reqInit, onLoadFailure }: KubeObjectStoreLoadingParams): Promise<T[]>;
82
86
  protected filterItemsOnLoad(items: T[]): T[];
83
- loadAll(options?: KubeObjectStoreLoadAllParams): Promise<void | T[]>;
87
+ loadAll({ namespaces, merge, reqInit, onLoadFailure }?: KubeObjectStoreLoadAllParams): Promise<void | T[]>;
84
88
  reloadAll(opts?: {
85
89
  force?: boolean;
86
90
  namespaces?: string[];
87
91
  merge?: boolean;
88
92
  }): Promise<void | T[]>;
89
- protected mergeItems(partialItems: T[], { replace, updateStore, sort, filter }?: {
90
- replace?: boolean;
93
+ protected mergeItems(partialItems: T[], { merge, updateStore, sort, filter }?: {
94
+ merge?: boolean;
91
95
  updateStore?: boolean;
92
96
  sort?: boolean;
93
97
  filter?: boolean;
@@ -117,7 +121,7 @@ export declare abstract class KubeObjectStore<T extends KubeObject> extends Item
117
121
  removeSelectedItems(): Promise<void[]>;
118
122
  protected eventsBuffer: import("mobx").IObservableArray<IKubeWatchEvent<KubeJsonApiData>>;
119
123
  protected bindWatchEventsUpdater(delay?: number): void;
120
- subscribe(opts?: KubeObjectStoreSubscribeParams): () => void;
124
+ subscribe({ onLoadFailure, abortController }?: KubeObjectStoreSubscribeParams): () => void;
121
125
  private watchNamespace;
122
126
  protected updateFromEventsBuffer(): void;
123
127
  }
@@ -21,57 +21,34 @@
21
21
  import type { KubeObjectStore } from "./kube-object.store";
22
22
  import type { ClusterContext } from "./cluster-context";
23
23
  import { Disposer } from "../utils";
24
- import type { KubeApi } from "./kube-api";
25
24
  import type { KubeJsonApiData } from "./kube-json-api";
26
25
  import type { KubeObject } from "./kube-object";
27
26
  export interface IKubeWatchEvent<T extends KubeJsonApiData> {
28
27
  type: "ADDED" | "MODIFIED" | "DELETED" | "ERROR";
29
28
  object?: T;
30
29
  }
31
- interface KubeWatchPreloadOptions {
30
+ export interface KubeWatchSubscribeStoreOptions {
32
31
  /**
33
32
  * The namespaces to watch
34
- * @default all-accessible
33
+ * @default all selected namespaces
35
34
  */
36
35
  namespaces?: string[];
37
- /**
38
- * Whether to skip loading if the store is already loaded
39
- * @default false
40
- */
41
- loadOnce?: boolean;
42
36
  /**
43
37
  * A function that is called when listing fails. If set then blocks errors
44
38
  * being rejected with
45
39
  */
46
40
  onLoadFailure?: (err: any) => void;
47
41
  }
48
- export interface KubeWatchSubscribeStoreOptions extends KubeWatchPreloadOptions {
49
- /**
50
- * Whether to subscribe only after loading all stores
51
- * @default true
52
- */
53
- waitUntilLoaded?: boolean;
54
- /**
55
- * Whether to preload the stores before watching
56
- * @default true
57
- */
58
- preload?: boolean;
59
- }
60
42
  export interface IKubeWatchLog {
61
43
  message: string | string[] | Error;
62
44
  meta?: object;
63
45
  cssStyle?: string;
64
46
  }
65
47
  export declare class KubeWatchApi {
66
- context: ClusterContext;
67
- constructor();
68
- isAllowedApi(api: KubeApi<KubeObject>): boolean;
69
- preloadStores(stores: KubeObjectStore<KubeObject>[], { loadOnce, namespaces, onLoadFailure }?: KubeWatchPreloadOptions): {
70
- loading: Promise<PromiseSettledResult<any>[]>;
71
- cancelLoading: () => void;
72
- };
73
- subscribeStores(stores: KubeObjectStore<KubeObject>[], opts?: KubeWatchSubscribeStoreOptions): Disposer;
74
- protected log({ message, cssStyle, meta }: IKubeWatchLog): void;
48
+ #private;
49
+ static context: ClusterContext;
50
+ private subscribeStore;
51
+ subscribeStores(stores: KubeObjectStore<KubeObject>[], { namespaces, onLoadFailure }?: KubeWatchSubscribeStoreOptions): Disposer;
52
+ protected log(message: any, meta: any): void;
75
53
  }
76
54
  export declare const kubeWatchApi: KubeWatchApi;
77
- export {};
@@ -38330,7 +38330,7 @@ eval("class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthi
38330
38330
  /*! exports provided: name, productName, description, homepage, version, main, copyright, license, author, scripts, config, engines, jest, build, dependencies, devDependencies, default */
38331
38331
  /***/ (function(module) {
38332
38332
 
38333
- eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"open-lens\\\",\\\"productName\\\":\\\"OpenLens\\\",\\\"description\\\":\\\"OpenLens - Open Source IDE for Kubernetes\\\",\\\"homepage\\\":\\\"https://github.com/lensapp/lens\\\",\\\"version\\\":\\\"5.3.0\\\",\\\"main\\\":\\\"static/build/main.js\\\",\\\"copyright\\\":\\\"© 2021 OpenLens Authors\\\",\\\"license\\\":\\\"MIT\\\",\\\"author\\\":{\\\"name\\\":\\\"OpenLens Authors\\\",\\\"email\\\":\\\"info@k8slens.dev\\\"},\\\"scripts\\\":{\\\"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\\\",\\\"dev:renderer\\\":\\\"yarn run webpack-dev-server --config webpack.renderer.ts\\\",\\\"dev:extension-types\\\":\\\"yarn run compile:extension-types --watch\\\",\\\"compile\\\":\\\"env NODE_ENV=production concurrently yarn:compile:*\\\",\\\"compile:main\\\":\\\"yarn run webpack --config webpack.main.ts\\\",\\\"compile:renderer\\\":\\\"yarn run webpack --config webpack.renderer.ts\\\",\\\"compile:extension-types\\\":\\\"yarn run webpack --config webpack.extensions.ts\\\",\\\"npm:fix-build-version\\\":\\\"yarn run ts-node build/set_build_version.ts\\\",\\\"npm:fix-package-version\\\":\\\"yarn run ts-node build/set_npm_version.ts\\\",\\\"build:linux\\\":\\\"yarn run compile && electron-builder --linux --dir\\\",\\\"build:mac\\\":\\\"yarn run compile && electron-builder --mac --dir\\\",\\\"build:win\\\":\\\"yarn run compile && electron-builder --win --dir\\\",\\\"integration\\\":\\\"jest --runInBand --detectOpenHandles --forceExit integration\\\",\\\"dist\\\":\\\"yarn run compile && electron-builder --publish onTag\\\",\\\"dist:dir\\\":\\\"yarn run dist --dir -c.compression=store -c.mac.identity=null\\\",\\\"download-bins\\\":\\\"concurrently yarn:download:*\\\",\\\"download:kubectl\\\":\\\"yarn run ts-node build/download_kubectl.ts\\\",\\\"download:helm\\\":\\\"yarn run ts-node build/download_helm.ts\\\",\\\"build:tray-icons\\\":\\\"yarn run ts-node build/build_tray_icon.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\\\"},\\\"config\\\":{\\\"bundledKubectlVersion\\\":\\\"1.21.2\\\",\\\"bundledHelmVersion\\\":\\\"3.6.3\\\",\\\"sentryDsn\\\":\\\"\\\"},\\\"engines\\\":{\\\"node\\\":\\\">=14 <15\\\"},\\\"jest\\\":{\\\"collectCoverage\\\":false,\\\"verbose\\\":true,\\\"transform\\\":{\\\"^.+\\\\\\\\.tsx?$\\\":\\\"ts-jest\\\"},\\\"moduleNameMapper\\\":{\\\"\\\\\\\\.(css|scss)$\\\":\\\"<rootDir>/__mocks__/styleMock.ts\\\",\\\"\\\\\\\\.(svg)$\\\":\\\"<rootDir>/__mocks__/imageMock.ts\\\",\\\"src/(.*)\\\":\\\"<rootDir>/__mocks__/windowMock.ts\\\"},\\\"modulePathIgnorePatterns\\\":[\\\"<rootDir>/dist\\\",\\\"<rootDir>/src/extensions/npm\\\"],\\\"setupFiles\\\":[\\\"<rootDir>/src/jest.setup.ts\\\",\\\"jest-canvas-mock\\\"]},\\\"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/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"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/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"win\\\":{\\\"target\\\":[\\\"nsis\\\"],\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/windows/x64/kubectl.exe\\\",\\\"to\\\":\\\"./x64/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/windows/ia32/kubectl.exe\\\",\\\"to\\\":\\\"./ia32/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/x64/helm3/helm3.exe\\\",\\\"to\\\":\\\"./helm3/helm3.exe\\\"}]},\\\"nsis\\\":{\\\"include\\\":\\\"build/installer.nsh\\\",\\\"oneClick\\\":false,\\\"allowElevation\\\":true,\\\"createStartMenuShortcut\\\":true,\\\"allowToChangeInstallationDirectory\\\":true},\\\"protocols\\\":{\\\"name\\\":\\\"Lens Protocol Handler\\\",\\\"schemes\\\":[\\\"lens\\\"],\\\"role\\\":\\\"Viewer\\\"}},\\\"dependencies\\\":{\\\"@electron/remote\\\":\\\"^1.2.2\\\",\\\"@hapi/call\\\":\\\"^8.0.1\\\",\\\"@hapi/subtext\\\":\\\"^7.0.3\\\",\\\"@kubernetes/client-node\\\":\\\"^0.16.1\\\",\\\"@sentry/electron\\\":\\\"^2.5.4\\\",\\\"@sentry/integrations\\\":\\\"^6.15.0\\\",\\\"@ogre-tools/injectable\\\":\\\"^1.2.1\\\",\\\"@ogre-tools/injectable-react\\\":\\\"^1.2.1\\\",\\\"abort-controller\\\":\\\"^3.0.0\\\",\\\"auto-bind\\\":\\\"^4.0.0\\\",\\\"autobind-decorator\\\":\\\"^2.4.0\\\",\\\"await-lock\\\":\\\"^2.1.0\\\",\\\"byline\\\":\\\"^5.0.0\\\",\\\"chokidar\\\":\\\"^3.4.3\\\",\\\"conf\\\":\\\"^7.1.2\\\",\\\"crypto-js\\\":\\\"^4.1.1\\\",\\\"electron-devtools-installer\\\":\\\"^3.2.0\\\",\\\"electron-updater\\\":\\\"^4.6.1\\\",\\\"electron-window-state\\\":\\\"^5.0.3\\\",\\\"filehound\\\":\\\"^1.17.5\\\",\\\"fs-extra\\\":\\\"^9.0.1\\\",\\\"glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"got\\\":\\\"^11.8.2\\\",\\\"grapheme-splitter\\\":\\\"^1.0.4\\\",\\\"handlebars\\\":\\\"^4.7.7\\\",\\\"http-proxy\\\":\\\"^1.18.1\\\",\\\"immer\\\":\\\"^9.0.6\\\",\\\"joi\\\":\\\"^17.4.2\\\",\\\"js-yaml\\\":\\\"^4.1.0\\\",\\\"jsdom\\\":\\\"^16.7.0\\\",\\\"jsonpath\\\":\\\"^1.1.1\\\",\\\"lodash\\\":\\\"^4.17.15\\\",\\\"mac-ca\\\":\\\"^1.0.6\\\",\\\"marked\\\":\\\"^2.1.3\\\",\\\"md5-file\\\":\\\"^5.0.0\\\",\\\"mobx\\\":\\\"^6.3.7\\\",\\\"mobx-observable-history\\\":\\\"^2.0.3\\\",\\\"mobx-react\\\":\\\"^7.2.1\\\",\\\"mock-fs\\\":\\\"^4.14.0\\\",\\\"moment\\\":\\\"^2.29.1\\\",\\\"moment-timezone\\\":\\\"^0.5.33\\\",\\\"monaco-editor\\\":\\\"^0.29.1\\\",\\\"monaco-editor-webpack-plugin\\\":\\\"^5.0.0\\\",\\\"node-fetch\\\":\\\"lensapp/node-fetch#2.x\\\",\\\"node-pty\\\":\\\"^0.10.1\\\",\\\"npm\\\":\\\"^6.14.15\\\",\\\"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.5\\\",\\\"react-router\\\":\\\"^5.2.0\\\",\\\"react-virtualized-auto-sizer\\\":\\\"^1.0.6\\\",\\\"readable-stream\\\":\\\"^3.6.0\\\",\\\"request\\\":\\\"^2.88.2\\\",\\\"request-promise-native\\\":\\\"^1.0.9\\\",\\\"rfc6902\\\":\\\"^4.0.2\\\",\\\"semver\\\":\\\"^7.3.2\\\",\\\"shell-env\\\":\\\"^3.0.1\\\",\\\"spdy\\\":\\\"^4.0.2\\\",\\\"tar\\\":\\\"^6.1.11\\\",\\\"tcp-port-used\\\":\\\"^1.0.2\\\",\\\"tempy\\\":\\\"1.0.1\\\",\\\"url-parse\\\":\\\"^1.5.3\\\",\\\"uuid\\\":\\\"^8.3.2\\\",\\\"win-ca\\\":\\\"^3.4.5\\\",\\\"winston\\\":\\\"^3.3.3\\\",\\\"winston-console-format\\\":\\\"^1.0.8\\\",\\\"winston-transport-browserconsole\\\":\\\"^1.0.5\\\",\\\"ws\\\":\\\"^7.5.5\\\"},\\\"devDependencies\\\":{\\\"@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.4.3\\\",\\\"@sentry/types\\\":\\\"^6.14.1\\\",\\\"@testing-library/jest-dom\\\":\\\"^5.15.0\\\",\\\"@testing-library/react\\\":\\\"^11.2.7\\\",\\\"@testing-library/user-event\\\":\\\"^13.5.0\\\",\\\"@types/byline\\\":\\\"^4.2.33\\\",\\\"@types/chart.js\\\":\\\"^2.9.34\\\",\\\"@types/color\\\":\\\"^3.0.2\\\",\\\"@types/crypto-js\\\":\\\"^3.1.47\\\",\\\"@types/dompurify\\\":\\\"^2.3.1\\\",\\\"@types/electron-devtools-installer\\\":\\\"^2.2.0\\\",\\\"@types/fs-extra\\\":\\\"^9.0.1\\\",\\\"@types/glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"@types/hoist-non-react-statics\\\":\\\"^3.3.1\\\",\\\"@types/html-webpack-plugin\\\":\\\"^3.2.6\\\",\\\"@types/http-proxy\\\":\\\"^1.17.7\\\",\\\"@types/jest\\\":\\\"^26.0.24\\\",\\\"@types/js-yaml\\\":\\\"^4.0.4\\\",\\\"@types/jsdom\\\":\\\"^16.2.13\\\",\\\"@types/jsonpath\\\":\\\"^0.2.0\\\",\\\"@types/lodash\\\":\\\"^4.14.176\\\",\\\"@types/marked\\\":\\\"^2.0.5\\\",\\\"@types/md5-file\\\":\\\"^4.0.2\\\",\\\"@types/mini-css-extract-plugin\\\":\\\"^0.9.1\\\",\\\"@types/mock-fs\\\":\\\"^4.13.1\\\",\\\"@types/node\\\":\\\"14.17.33\\\",\\\"@types/node-fetch\\\":\\\"^2.5.12\\\",\\\"@types/npm\\\":\\\"^2.0.32\\\",\\\"@types/progress-bar-webpack-plugin\\\":\\\"^2.1.2\\\",\\\"@types/proper-lockfile\\\":\\\"^4.1.2\\\",\\\"@types/randomcolor\\\":\\\"^0.5.6\\\",\\\"@types/react\\\":\\\"^17.0.34\\\",\\\"@types/react-beautiful-dnd\\\":\\\"^13.1.2\\\",\\\"@types/react-dom\\\":\\\"^17.0.11\\\",\\\"@types/react-router-dom\\\":\\\"^5.3.2\\\",\\\"@types/react-select\\\":\\\"3.1.2\\\",\\\"@types/react-table\\\":\\\"^7.7.7\\\",\\\"@types/react-virtualized-auto-sizer\\\":\\\"^1.0.1\\\",\\\"@types/react-window\\\":\\\"^1.8.5\\\",\\\"@types/readable-stream\\\":\\\"^2.3.11\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/request-promise-native\\\":\\\"^1.0.18\\\",\\\"@types/semver\\\":\\\"^7.3.9\\\",\\\"@types/sharp\\\":\\\"^0.29.2\\\",\\\"@types/spdy\\\":\\\"^3.4.5\\\",\\\"@types/tar\\\":\\\"^4.0.5\\\",\\\"@types/tcp-port-used\\\":\\\"^1.0.0\\\",\\\"@types/tempy\\\":\\\"^0.3.0\\\",\\\"@types/triple-beam\\\":\\\"^1.3.2\\\",\\\"@types/url-parse\\\":\\\"^1.4.4\\\",\\\"@types/uuid\\\":\\\"^8.3.1\\\",\\\"@types/webpack\\\":\\\"^4.41.31\\\",\\\"@types/webpack-dev-server\\\":\\\"^3.11.6\\\",\\\"@types/webpack-env\\\":\\\"^1.16.3\\\",\\\"@types/webpack-node-externals\\\":\\\"^1.7.1\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^4.33.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^4.33.0\\\",\\\"ansi_up\\\":\\\"^5.1.0\\\",\\\"chart.js\\\":\\\"^2.9.4\\\",\\\"circular-dependency-plugin\\\":\\\"^5.2.2\\\",\\\"color\\\":\\\"^3.2.1\\\",\\\"concurrently\\\":\\\"^5.3.0\\\",\\\"css-loader\\\":\\\"^5.2.7\\\",\\\"deepdash\\\":\\\"^5.3.9\\\",\\\"dompurify\\\":\\\"^2.3.3\\\",\\\"electron\\\":\\\"^13.6.1\\\",\\\"electron-builder\\\":\\\"^22.11.11\\\",\\\"electron-notarize\\\":\\\"^0.3.0\\\",\\\"esbuild\\\":\\\"^0.13.15\\\",\\\"esbuild-loader\\\":\\\"^2.16.0\\\",\\\"eslint\\\":\\\"^7.32.0\\\",\\\"eslint-plugin-header\\\":\\\"^3.1.1\\\",\\\"eslint-plugin-react\\\":\\\"^7.26.1\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.2.0\\\",\\\"eslint-plugin-unused-imports\\\":\\\"^1.1.5\\\",\\\"file-loader\\\":\\\"^6.2.0\\\",\\\"flex.box\\\":\\\"^3.4.4\\\",\\\"fork-ts-checker-webpack-plugin\\\":\\\"^5.2.1\\\",\\\"hoist-non-react-statics\\\":\\\"^3.3.2\\\",\\\"html-webpack-plugin\\\":\\\"^4.5.2\\\",\\\"include-media\\\":\\\"^1.4.9\\\",\\\"jest\\\":\\\"26.6.3\\\",\\\"jest-canvas-mock\\\":\\\"^2.3.1\\\",\\\"jest-fetch-mock\\\":\\\"^3.0.3\\\",\\\"jest-mock-extended\\\":\\\"^1.0.18\\\",\\\"make-plural\\\":\\\"^6.2.2\\\",\\\"mini-css-extract-plugin\\\":\\\"^1.6.2\\\",\\\"node-gyp\\\":\\\"7.1.2\\\",\\\"node-loader\\\":\\\"^1.0.3\\\",\\\"nodemon\\\":\\\"^2.0.14\\\",\\\"playwright\\\":\\\"^1.15.2\\\",\\\"postcss\\\":\\\"^8.3.11\\\",\\\"postcss-loader\\\":\\\"4.3.0\\\",\\\"postinstall-postinstall\\\":\\\"^2.1.0\\\",\\\"progress-bar-webpack-plugin\\\":\\\"^2.1.0\\\",\\\"randomcolor\\\":\\\"^0.6.2\\\",\\\"raw-loader\\\":\\\"^4.0.2\\\",\\\"react-beautiful-dnd\\\":\\\"^13.1.0\\\",\\\"react-refresh\\\":\\\"^0.9.0\\\",\\\"react-router-dom\\\":\\\"^5.3.0\\\",\\\"react-select\\\":\\\"3.2.0\\\",\\\"react-select-event\\\":\\\"^5.1.0\\\",\\\"react-table\\\":\\\"^7.7.0\\\",\\\"react-window\\\":\\\"^1.8.6\\\",\\\"sass\\\":\\\"^1.43.4\\\",\\\"sass-loader\\\":\\\"^8.0.2\\\",\\\"sharp\\\":\\\"^0.29.2\\\",\\\"style-loader\\\":\\\"^2.0.0\\\",\\\"tailwindcss\\\":\\\"^2.2.19\\\",\\\"ts-jest\\\":\\\"26.5.6\\\",\\\"ts-loader\\\":\\\"^7.0.5\\\",\\\"ts-node\\\":\\\"^10.4.0\\\",\\\"type-fest\\\":\\\"^1.0.2\\\",\\\"typed-emitter\\\":\\\"^1.4.0\\\",\\\"typedoc\\\":\\\"0.22.7\\\",\\\"typedoc-plugin-markdown\\\":\\\"^3.11.3\\\",\\\"typeface-roboto\\\":\\\"^1.1.13\\\",\\\"typescript\\\":\\\"^4.5.2\\\",\\\"typescript-plugin-css-modules\\\":\\\"^3.4.0\\\",\\\"url-loader\\\":\\\"^4.1.1\\\",\\\"webpack\\\":\\\"^4.46.0\\\",\\\"webpack-cli\\\":\\\"^3.3.12\\\",\\\"webpack-dev-server\\\":\\\"^3.11.2\\\",\\\"webpack-node-externals\\\":\\\"^1.7.2\\\",\\\"what-input\\\":\\\"^5.2.10\\\",\\\"xterm\\\":\\\"^4.14.1\\\",\\\"xterm-addon-fit\\\":\\\"^0.5.0\\\"}}\");\n\n//# sourceURL=webpack:///./package.json?");
38333
+ eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"open-lens\\\",\\\"productName\\\":\\\"OpenLens\\\",\\\"description\\\":\\\"OpenLens - Open Source IDE for Kubernetes\\\",\\\"homepage\\\":\\\"https://github.com/lensapp/lens\\\",\\\"version\\\":\\\"5.3.0\\\",\\\"main\\\":\\\"static/build/main.js\\\",\\\"copyright\\\":\\\"© 2021 OpenLens Authors\\\",\\\"license\\\":\\\"MIT\\\",\\\"author\\\":{\\\"name\\\":\\\"OpenLens Authors\\\",\\\"email\\\":\\\"info@k8slens.dev\\\"},\\\"scripts\\\":{\\\"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\\\",\\\"dev:renderer\\\":\\\"yarn run webpack-dev-server --config webpack.renderer.ts\\\",\\\"dev:extension-types\\\":\\\"yarn run compile:extension-types --watch\\\",\\\"compile\\\":\\\"env NODE_ENV=production concurrently yarn:compile:*\\\",\\\"compile:main\\\":\\\"yarn run webpack --config webpack.main.ts\\\",\\\"compile:renderer\\\":\\\"yarn run webpack --config webpack.renderer.ts\\\",\\\"compile:extension-types\\\":\\\"yarn run webpack --config webpack.extensions.ts\\\",\\\"npm:fix-build-version\\\":\\\"yarn run ts-node build/set_build_version.ts\\\",\\\"npm:fix-package-version\\\":\\\"yarn run ts-node build/set_npm_version.ts\\\",\\\"build:linux\\\":\\\"yarn run compile && electron-builder --linux --dir\\\",\\\"build:mac\\\":\\\"yarn run compile && electron-builder --mac --dir\\\",\\\"build:win\\\":\\\"yarn run compile && electron-builder --win --dir\\\",\\\"integration\\\":\\\"jest --runInBand --detectOpenHandles --forceExit integration\\\",\\\"dist\\\":\\\"yarn run compile && electron-builder --publish onTag\\\",\\\"dist:dir\\\":\\\"yarn run dist --dir -c.compression=store -c.mac.identity=null\\\",\\\"download-bins\\\":\\\"concurrently yarn:download:*\\\",\\\"download:kubectl\\\":\\\"yarn run ts-node build/download_kubectl.ts\\\",\\\"download:helm\\\":\\\"yarn run ts-node build/download_helm.ts\\\",\\\"build:tray-icons\\\":\\\"yarn run ts-node build/build_tray_icon.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\\\"},\\\"config\\\":{\\\"bundledKubectlVersion\\\":\\\"1.21.2\\\",\\\"bundledHelmVersion\\\":\\\"3.6.3\\\",\\\"sentryDsn\\\":\\\"\\\"},\\\"engines\\\":{\\\"node\\\":\\\">=14 <15\\\"},\\\"jest\\\":{\\\"collectCoverage\\\":false,\\\"verbose\\\":true,\\\"transform\\\":{\\\"^.+\\\\\\\\.tsx?$\\\":\\\"ts-jest\\\"},\\\"moduleNameMapper\\\":{\\\"\\\\\\\\.(css|scss)$\\\":\\\"<rootDir>/__mocks__/styleMock.ts\\\",\\\"\\\\\\\\.(svg)$\\\":\\\"<rootDir>/__mocks__/imageMock.ts\\\",\\\"src/(.*)\\\":\\\"<rootDir>/__mocks__/windowMock.ts\\\"},\\\"modulePathIgnorePatterns\\\":[\\\"<rootDir>/dist\\\",\\\"<rootDir>/src/extensions/npm\\\"],\\\"setupFiles\\\":[\\\"<rootDir>/src/jest.setup.ts\\\",\\\"jest-canvas-mock\\\"]},\\\"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/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"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/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"win\\\":{\\\"target\\\":[\\\"nsis\\\"],\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/windows/x64/kubectl.exe\\\",\\\"to\\\":\\\"./x64/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/windows/ia32/kubectl.exe\\\",\\\"to\\\":\\\"./ia32/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/x64/helm3/helm3.exe\\\",\\\"to\\\":\\\"./helm3/helm3.exe\\\"}]},\\\"nsis\\\":{\\\"include\\\":\\\"build/installer.nsh\\\",\\\"oneClick\\\":false,\\\"allowElevation\\\":true,\\\"createStartMenuShortcut\\\":true,\\\"allowToChangeInstallationDirectory\\\":true},\\\"protocols\\\":{\\\"name\\\":\\\"Lens Protocol Handler\\\",\\\"schemes\\\":[\\\"lens\\\"],\\\"role\\\":\\\"Viewer\\\"}},\\\"dependencies\\\":{\\\"@electron/remote\\\":\\\"^1.2.2\\\",\\\"@hapi/call\\\":\\\"^8.0.1\\\",\\\"@hapi/subtext\\\":\\\"^7.0.3\\\",\\\"@kubernetes/client-node\\\":\\\"^0.16.1\\\",\\\"@sentry/electron\\\":\\\"^2.5.4\\\",\\\"@sentry/integrations\\\":\\\"^6.15.0\\\",\\\"@ogre-tools/injectable\\\":\\\"^1.2.1\\\",\\\"@ogre-tools/injectable-react\\\":\\\"^1.2.1\\\",\\\"abort-controller\\\":\\\"^3.0.0\\\",\\\"auto-bind\\\":\\\"^4.0.0\\\",\\\"autobind-decorator\\\":\\\"^2.4.0\\\",\\\"await-lock\\\":\\\"^2.1.0\\\",\\\"byline\\\":\\\"^5.0.0\\\",\\\"chokidar\\\":\\\"^3.4.3\\\",\\\"conf\\\":\\\"^7.1.2\\\",\\\"crypto-js\\\":\\\"^4.1.1\\\",\\\"electron-devtools-installer\\\":\\\"^3.2.0\\\",\\\"electron-updater\\\":\\\"^4.6.1\\\",\\\"electron-window-state\\\":\\\"^5.0.3\\\",\\\"filehound\\\":\\\"^1.17.5\\\",\\\"fs-extra\\\":\\\"^9.0.1\\\",\\\"glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"got\\\":\\\"^11.8.2\\\",\\\"grapheme-splitter\\\":\\\"^1.0.4\\\",\\\"handlebars\\\":\\\"^4.7.7\\\",\\\"http-proxy\\\":\\\"^1.18.1\\\",\\\"immer\\\":\\\"^9.0.6\\\",\\\"joi\\\":\\\"^17.4.2\\\",\\\"js-yaml\\\":\\\"^4.1.0\\\",\\\"jsdom\\\":\\\"^16.7.0\\\",\\\"jsonpath\\\":\\\"^1.1.1\\\",\\\"lodash\\\":\\\"^4.17.15\\\",\\\"mac-ca\\\":\\\"^1.0.6\\\",\\\"marked\\\":\\\"^2.1.3\\\",\\\"md5-file\\\":\\\"^5.0.0\\\",\\\"mobx\\\":\\\"^6.3.7\\\",\\\"mobx-observable-history\\\":\\\"^2.0.3\\\",\\\"mobx-react\\\":\\\"^7.2.1\\\",\\\"mock-fs\\\":\\\"^4.14.0\\\",\\\"moment\\\":\\\"^2.29.1\\\",\\\"moment-timezone\\\":\\\"^0.5.33\\\",\\\"monaco-editor\\\":\\\"^0.29.1\\\",\\\"monaco-editor-webpack-plugin\\\":\\\"^5.0.0\\\",\\\"node-fetch\\\":\\\"lensapp/node-fetch#2.x\\\",\\\"node-pty\\\":\\\"^0.10.1\\\",\\\"npm\\\":\\\"^6.14.15\\\",\\\"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.5\\\",\\\"react-router\\\":\\\"^5.2.0\\\",\\\"react-virtualized-auto-sizer\\\":\\\"^1.0.6\\\",\\\"readable-stream\\\":\\\"^3.6.0\\\",\\\"request\\\":\\\"^2.88.2\\\",\\\"request-promise-native\\\":\\\"^1.0.9\\\",\\\"rfc6902\\\":\\\"^4.0.2\\\",\\\"semver\\\":\\\"^7.3.2\\\",\\\"shell-env\\\":\\\"^3.0.1\\\",\\\"spdy\\\":\\\"^4.0.2\\\",\\\"tar\\\":\\\"^6.1.11\\\",\\\"tcp-port-used\\\":\\\"^1.0.2\\\",\\\"tempy\\\":\\\"1.0.1\\\",\\\"url-parse\\\":\\\"^1.5.3\\\",\\\"uuid\\\":\\\"^8.3.2\\\",\\\"win-ca\\\":\\\"^3.4.5\\\",\\\"winston\\\":\\\"^3.3.3\\\",\\\"winston-console-format\\\":\\\"^1.0.8\\\",\\\"winston-transport-browserconsole\\\":\\\"^1.0.5\\\",\\\"ws\\\":\\\"^7.5.5\\\"},\\\"devDependencies\\\":{\\\"@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.4.3\\\",\\\"@sentry/types\\\":\\\"^6.14.1\\\",\\\"@testing-library/jest-dom\\\":\\\"^5.15.0\\\",\\\"@testing-library/react\\\":\\\"^11.2.7\\\",\\\"@testing-library/user-event\\\":\\\"^13.5.0\\\",\\\"@types/byline\\\":\\\"^4.2.33\\\",\\\"@types/chart.js\\\":\\\"^2.9.34\\\",\\\"@types/color\\\":\\\"^3.0.2\\\",\\\"@types/crypto-js\\\":\\\"^3.1.47\\\",\\\"@types/dompurify\\\":\\\"^2.3.1\\\",\\\"@types/electron-devtools-installer\\\":\\\"^2.2.0\\\",\\\"@types/fs-extra\\\":\\\"^9.0.1\\\",\\\"@types/glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"@types/hoist-non-react-statics\\\":\\\"^3.3.1\\\",\\\"@types/html-webpack-plugin\\\":\\\"^3.2.6\\\",\\\"@types/http-proxy\\\":\\\"^1.17.7\\\",\\\"@types/jest\\\":\\\"^26.0.24\\\",\\\"@types/js-yaml\\\":\\\"^4.0.4\\\",\\\"@types/jsdom\\\":\\\"^16.2.13\\\",\\\"@types/jsonpath\\\":\\\"^0.2.0\\\",\\\"@types/lodash\\\":\\\"^4.14.176\\\",\\\"@types/marked\\\":\\\"^2.0.5\\\",\\\"@types/md5-file\\\":\\\"^4.0.2\\\",\\\"@types/mini-css-extract-plugin\\\":\\\"^0.9.1\\\",\\\"@types/mock-fs\\\":\\\"^4.13.1\\\",\\\"@types/node\\\":\\\"14.17.33\\\",\\\"@types/node-fetch\\\":\\\"^2.5.12\\\",\\\"@types/npm\\\":\\\"^2.0.32\\\",\\\"@types/progress-bar-webpack-plugin\\\":\\\"^2.1.2\\\",\\\"@types/proper-lockfile\\\":\\\"^4.1.2\\\",\\\"@types/randomcolor\\\":\\\"^0.5.6\\\",\\\"@types/react\\\":\\\"^17.0.34\\\",\\\"@types/react-beautiful-dnd\\\":\\\"^13.1.2\\\",\\\"@types/react-dom\\\":\\\"^17.0.11\\\",\\\"@types/react-router-dom\\\":\\\"^5.3.2\\\",\\\"@types/react-select\\\":\\\"3.1.2\\\",\\\"@types/react-table\\\":\\\"^7.7.7\\\",\\\"@types/react-virtualized-auto-sizer\\\":\\\"^1.0.1\\\",\\\"@types/react-window\\\":\\\"^1.8.5\\\",\\\"@types/readable-stream\\\":\\\"^2.3.11\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/request-promise-native\\\":\\\"^1.0.18\\\",\\\"@types/semver\\\":\\\"^7.3.9\\\",\\\"@types/sharp\\\":\\\"^0.29.2\\\",\\\"@types/spdy\\\":\\\"^3.4.5\\\",\\\"@types/tar\\\":\\\"^4.0.5\\\",\\\"@types/tcp-port-used\\\":\\\"^1.0.0\\\",\\\"@types/tempy\\\":\\\"^0.3.0\\\",\\\"@types/triple-beam\\\":\\\"^1.3.2\\\",\\\"@types/url-parse\\\":\\\"^1.4.4\\\",\\\"@types/uuid\\\":\\\"^8.3.3\\\",\\\"@types/webpack\\\":\\\"^4.41.31\\\",\\\"@types/webpack-dev-server\\\":\\\"^3.11.6\\\",\\\"@types/webpack-env\\\":\\\"^1.16.3\\\",\\\"@types/webpack-node-externals\\\":\\\"^1.7.1\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^4.33.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^4.33.0\\\",\\\"ansi_up\\\":\\\"^5.1.0\\\",\\\"chart.js\\\":\\\"^2.9.4\\\",\\\"circular-dependency-plugin\\\":\\\"^5.2.2\\\",\\\"color\\\":\\\"^3.2.1\\\",\\\"concurrently\\\":\\\"^5.3.0\\\",\\\"css-loader\\\":\\\"^5.2.7\\\",\\\"deepdash\\\":\\\"^5.3.9\\\",\\\"dompurify\\\":\\\"^2.3.3\\\",\\\"electron\\\":\\\"^13.6.1\\\",\\\"electron-builder\\\":\\\"^22.11.11\\\",\\\"electron-notarize\\\":\\\"^0.3.0\\\",\\\"esbuild\\\":\\\"^0.13.15\\\",\\\"esbuild-loader\\\":\\\"^2.16.0\\\",\\\"eslint\\\":\\\"^7.32.0\\\",\\\"eslint-plugin-header\\\":\\\"^3.1.1\\\",\\\"eslint-plugin-react\\\":\\\"^7.26.1\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.2.0\\\",\\\"eslint-plugin-unused-imports\\\":\\\"^1.1.5\\\",\\\"file-loader\\\":\\\"^6.2.0\\\",\\\"flex.box\\\":\\\"^3.4.4\\\",\\\"fork-ts-checker-webpack-plugin\\\":\\\"^5.2.1\\\",\\\"hoist-non-react-statics\\\":\\\"^3.3.2\\\",\\\"html-webpack-plugin\\\":\\\"^4.5.2\\\",\\\"include-media\\\":\\\"^1.4.9\\\",\\\"jest\\\":\\\"26.6.3\\\",\\\"jest-canvas-mock\\\":\\\"^2.3.1\\\",\\\"jest-fetch-mock\\\":\\\"^3.0.3\\\",\\\"jest-mock-extended\\\":\\\"^1.0.18\\\",\\\"make-plural\\\":\\\"^6.2.2\\\",\\\"mini-css-extract-plugin\\\":\\\"^1.6.2\\\",\\\"node-gyp\\\":\\\"7.1.2\\\",\\\"node-loader\\\":\\\"^1.0.3\\\",\\\"nodemon\\\":\\\"^2.0.14\\\",\\\"playwright\\\":\\\"^1.15.2\\\",\\\"postcss\\\":\\\"^8.3.11\\\",\\\"postcss-loader\\\":\\\"4.3.0\\\",\\\"postinstall-postinstall\\\":\\\"^2.1.0\\\",\\\"progress-bar-webpack-plugin\\\":\\\"^2.1.0\\\",\\\"randomcolor\\\":\\\"^0.6.2\\\",\\\"raw-loader\\\":\\\"^4.0.2\\\",\\\"react-beautiful-dnd\\\":\\\"^13.1.0\\\",\\\"react-refresh\\\":\\\"^0.9.0\\\",\\\"react-router-dom\\\":\\\"^5.3.0\\\",\\\"react-select\\\":\\\"3.2.0\\\",\\\"react-select-event\\\":\\\"^5.1.0\\\",\\\"react-table\\\":\\\"^7.7.0\\\",\\\"react-window\\\":\\\"^1.8.6\\\",\\\"sass\\\":\\\"^1.43.4\\\",\\\"sass-loader\\\":\\\"^8.0.2\\\",\\\"sharp\\\":\\\"^0.29.2\\\",\\\"style-loader\\\":\\\"^2.0.0\\\",\\\"tailwindcss\\\":\\\"^2.2.19\\\",\\\"ts-jest\\\":\\\"26.5.6\\\",\\\"ts-loader\\\":\\\"^7.0.5\\\",\\\"ts-node\\\":\\\"^10.4.0\\\",\\\"type-fest\\\":\\\"^1.0.2\\\",\\\"typed-emitter\\\":\\\"^1.4.0\\\",\\\"typedoc\\\":\\\"0.22.7\\\",\\\"typedoc-plugin-markdown\\\":\\\"^3.11.3\\\",\\\"typeface-roboto\\\":\\\"^1.1.13\\\",\\\"typescript\\\":\\\"^4.5.2\\\",\\\"typescript-plugin-css-modules\\\":\\\"^3.4.0\\\",\\\"url-loader\\\":\\\"^4.1.1\\\",\\\"webpack\\\":\\\"^4.46.0\\\",\\\"webpack-cli\\\":\\\"^3.3.12\\\",\\\"webpack-dev-server\\\":\\\"^3.11.2\\\",\\\"webpack-node-externals\\\":\\\"^1.7.2\\\",\\\"what-input\\\":\\\"^5.2.10\\\",\\\"xterm\\\":\\\"^4.14.1\\\",\\\"xterm-addon-fit\\\":\\\"^0.5.0\\\"}}\");\n\n//# sourceURL=webpack:///./package.json?");
38334
38334
 
38335
38335
  /***/ }),
38336
38336
 
@@ -39134,7 +39134,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
39134
39134
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
39135
39135
 
39136
39136
  "use strict";
39137
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeObjectStore\", function() { return KubeObjectStore; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _item_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../item.store */ \"./src/common/item.store.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(abort_controller__WEBPACK_IMPORTED_MODULE_6__);\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\nclass KubeObjectStore extends _item_store__WEBPACK_IMPORTED_MODULE_3__[\"ItemStore\"] {\n constructor(api) {\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: 50000\n });\n Object.defineProperty(this, \"loadedNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\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_0__[\"observable\"].array([], { deep: false })\n });\n if (api)\n this.api = api;\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"autoBind\"])(this);\n this.bindWatchEventsUpdater();\n }\n get contextReady() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"when\"])(() => Boolean(this.context));\n }\n get namespacesReady() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"when\"])(() => Boolean(this.loadedNamespaces));\n }\n get context() {\n return KubeObjectStore.defaultContext.get();\n }\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 = [].concat(namespace);\n if (namespaces.length) {\n return this.items.filter(item => namespaces.includes(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 Object.entries(labels)\n .every(([key, value]) => itemLabels[key] === value);\n });\n }\n }\n async loadItems({ namespaces, api, reqInit, onLoadFailure }) {\n var _a, _b;\n if (!((_a = this.context) === null || _a === void 0 ? void 0 : _a.cluster.isAllowedResource(api.kind))) {\n return [];\n }\n const isLoadingAll = ((_b = this.context.allNamespaces) === null || _b === void 0 ? void 0 : _b.length) > 1\n && this.context.cluster.accessibleNamespaces.length === 0\n && this.context.allNamespaces.every(ns => namespaces.includes(ns));\n if (!api.isNamespaced || isLoadingAll) {\n if (api.isNamespaced) {\n this.loadedNamespaces = [];\n }\n const res = api.list({ reqInit }, this.query);\n if (onLoadFailure) {\n try {\n return await res;\n }\n catch (error) {\n onLoadFailure((error === null || error === void 0 ? void 0 : error.message) || (error === null || error === void 0 ? void 0 : error.toString()) || \"Unknown 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 res;\n }\n this.loadedNamespaces = namespaces;\n const results = await Promise.allSettled(namespaces.map(namespace => 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(...result.value);\n break;\n case \"rejected\":\n if (onLoadFailure) {\n onLoadFailure(result.reason.message);\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(options = {}) {\n await this.contextReady;\n this.isLoading = true;\n const { namespaces = this.context.allNamespaces, // load all namespaces by default\n merge = true, // merge loaded items or return as result\n reqInit, onLoadFailure, } = options;\n try {\n const items = await this.loadItems({ namespaces, api: this.api, reqInit, onLoadFailure });\n if (merge) {\n this.mergeItems(items, { replace: false });\n }\n else {\n this.mergeItems(items, { replace: true });\n }\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 }\n async reloadAll(opts = {}) {\n const { force = false } = opts, loadingOptions = __rest(opts, [\"force\"]);\n if (this.isLoading || (this.isLoaded && !force)) {\n return;\n }\n return this.loadAll(loadingOptions);\n }\n mergeItems(partialItems, { replace = false, updateStore = true, sort = true, filter = true } = {}) {\n let items = partialItems;\n // update existing items\n if (!replace) {\n const namespaces = partialItems.map(item => item.getNs());\n items = [\n ...this.items.filter(existingItem => !namespaces.includes(existingItem.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 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 } = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_5__[\"parseKubeApi\"])(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 const items = this.sortItems([...this.items, newItem]);\n this.items.replace(items);\n return newItem;\n }\n postUpdate(rawItem) {\n const newItem = new this.api.objectConstructor(rawItem);\n const index = this.items.findIndex(item => item.getId() === newItem.getId());\n Object(_kube_api__WEBPACK_IMPORTED_MODULE_4__[\"ensureObjectSelfLink\"])(this.api, newItem);\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 return this.postUpdate(await this.api.patch({\n name: item.getName(), namespace: item.getNs(),\n }, patch, \"json\"));\n }\n async update(item, data) {\n return this.postUpdate(await this.api.update({\n name: item.getName(), namespace: item.getNs(),\n }, data));\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 return Promise.all(this.selectedItems.map(this.remove));\n }\n bindWatchEventsUpdater(delay = 1000) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"reaction\"])(() => this.eventsBuffer.length, this.updateFromEventsBuffer, {\n delay,\n });\n }\n subscribe(opts = {}) {\n const abortController = new abort_controller__WEBPACK_IMPORTED_MODULE_6___default.a();\n if (this.api.isNamespaced) {\n Promise.race([Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"rejectPromiseBy\"])(abortController.signal), Promise.all([this.contextReady, this.namespacesReady])])\n .then(() => {\n if (this.context.cluster.isGlobalWatchEnabled && this.loadedNamespaces.length === 0) {\n return this.watchNamespace(\"\", abortController, opts);\n }\n for (const namespace of this.loadedNamespaces) {\n this.watchNamespace(namespace, abortController, opts);\n }\n })\n .catch(_utils__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]); // ignore DOMExceptions\n }\n else {\n this.watchNamespace(\"\", abortController, opts);\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;\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_2__[\"KubeStatus\"] && error.code === 410) {\n clearTimeout(timedRetry);\n // resourceVersion has gone, let's try to reload\n timedRetry = setTimeout(() => {\n (namespace\n ? this.loadAll(Object.assign({ namespaces: [namespace], reqInit: { signal } }, opts))\n : this.loadAll(Object.assign({ 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 const items = this.getItems();\n for (const { type, object } of this.eventsBuffer.clear()) {\n const index = items.findIndex(item => { var _a; return item.getId() === ((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.uid); });\n const item = items[index];\n switch (type) {\n case \"ADDED\":\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 case \"DELETED\":\n if (item) {\n items.splice(index, 1);\n }\n break;\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_0__[\"observable\"].box()\n}); // TODO: support multiple cluster contexts\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", Array)\n], KubeObjectStore.prototype, \"loadedNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], KubeObjectStore.prototype, \"contextItems\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"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_0__[\"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_0__[\"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_0__[\"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_0__[\"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_0__[\"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:///./src/common/k8s-api/kube-object.store.ts?");
39137
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeObjectStore\", function() { return KubeObjectStore; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _item_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../item.store */ \"./src/common/item.store.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(abort_controller__WEBPACK_IMPORTED_MODULE_6__);\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\nclass KubeObjectStore extends _item_store__WEBPACK_IMPORTED_MODULE_3__[\"ItemStore\"] {\n constructor(api) {\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: 50000\n });\n Object.defineProperty(this, \"loadedNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\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_0__[\"observable\"].array([], { deep: false })\n });\n if (api)\n this.api = api;\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"autoBind\"])(this);\n this.bindWatchEventsUpdater();\n }\n get contextReady() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"when\"])(() => Boolean(this.context));\n }\n get namespacesReady() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"when\"])(() => Boolean(this.loadedNamespaces));\n }\n get context() {\n return KubeObjectStore.defaultContext.get();\n }\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 = [].concat(namespace);\n if (namespaces.length) {\n return this.items.filter(item => namespaces.includes(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 Object.entries(labels)\n .every(([key, value]) => itemLabels[key] === value);\n });\n }\n }\n async loadItems({ namespaces, reqInit, onLoadFailure }) {\n var _a, _b;\n if (!((_a = this.context) === null || _a === void 0 ? void 0 : _a.cluster.isAllowedResource(this.api.kind))) {\n return [];\n }\n const isLoadingAll = ((_b = this.context.allNamespaces) === null || _b === void 0 ? void 0 : _b.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 await res;\n }\n catch (error) {\n onLoadFailure((error === null || error === void 0 ? void 0 : error.message) || (error === null || error === void 0 ? void 0 : error.toString()) || \"Unknown 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 res;\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(...result.value);\n break;\n case \"rejected\":\n if (onLoadFailure) {\n onLoadFailure(result.reason.message);\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 = this.context.contextNamespaces, merge = true, reqInit, onLoadFailure } = {}) {\n await this.contextReady;\n this.isLoading = true;\n try {\n const items = await this.loadItems({ namespaces, reqInit, onLoadFailure });\n this.mergeItems(items, { merge });\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 }\n async reloadAll(opts = {}) {\n const { force = false } = opts, loadingOptions = __rest(opts, [\"force\"]);\n if (this.isLoading || (this.isLoaded && !force)) {\n return;\n }\n return this.loadAll(loadingOptions);\n }\n mergeItems(partialItems, { merge = true, updateStore = true, sort = true, filter = true } = {}) {\n let items = partialItems;\n // update existing items\n if (merge) {\n const namespaces = partialItems.map(item => item.getNs());\n items = [\n ...this.items.filter(existingItem => !namespaces.includes(existingItem.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 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 } = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_5__[\"parseKubeApi\"])(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 const items = this.sortItems([...this.items, newItem]);\n this.items.replace(items);\n return newItem;\n }\n postUpdate(rawItem) {\n const newItem = new this.api.objectConstructor(rawItem);\n const index = this.items.findIndex(item => item.getId() === newItem.getId());\n Object(_kube_api__WEBPACK_IMPORTED_MODULE_4__[\"ensureObjectSelfLink\"])(this.api, newItem);\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 return this.postUpdate(await this.api.patch({\n name: item.getName(), namespace: item.getNs(),\n }, patch, \"json\"));\n }\n async update(item, data) {\n return this.postUpdate(await this.api.update({\n name: item.getName(), namespace: item.getNs(),\n }, data));\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 return Promise.all(this.selectedItems.map(this.remove));\n }\n bindWatchEventsUpdater(delay = 1000) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"reaction\"])(() => this.eventsBuffer.length, this.updateFromEventsBuffer, {\n delay,\n });\n }\n subscribe({ onLoadFailure, abortController = new abort_controller__WEBPACK_IMPORTED_MODULE_6___default.a() } = {}) {\n if (this.api.isNamespaced) {\n Promise.race([Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"rejectPromiseBy\"])(abortController.signal), Promise.all([this.contextReady, this.namespacesReady])])\n .then(() => {\n if (this.context.cluster.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_1__[\"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;\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_2__[\"KubeStatus\"] && error.code === 410) {\n clearTimeout(timedRetry);\n // resourceVersion has gone, let's try to reload\n timedRetry = setTimeout(() => {\n (namespace\n ? this.loadAll(Object.assign({ namespaces: [namespace], reqInit: { signal } }, opts))\n : this.loadAll(Object.assign({ 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 const items = this.getItems();\n for (const { type, object } of this.eventsBuffer.clear()) {\n const index = items.findIndex(item => { var _a; return item.getId() === ((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.uid); });\n const item = items[index];\n switch (type) {\n case \"ADDED\":\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 case \"DELETED\":\n if (item) {\n items.splice(index, 1);\n }\n break;\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_0__[\"observable\"].box()\n}); // TODO: support multiple cluster contexts\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", Array)\n], KubeObjectStore.prototype, \"loadedNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], KubeObjectStore.prototype, \"contextItems\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"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_0__[\"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_0__[\"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_0__[\"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_0__[\"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_0__[\"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:///./src/common/k8s-api/kube-object.store.ts?");
39138
39138
 
39139
39139
  /***/ }),
39140
39140
 
@@ -39158,7 +39158,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
39158
39158
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
39159
39159
 
39160
39160
  "use strict";
39161
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeWatchApi\", function() { return KubeWatchApi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kubeWatchApi\", function() { return kubeWatchApi; });\n/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! p-limit */ \"./node_modules/p-limit/index.js\");\n/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(p_limit__WEBPACK_IMPORTED_MODULE_0__);\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_2__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _vars__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\nclass KubeWatchApi {\n constructor() {\n Object.defineProperty(this, \"context\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"makeObservable\"])(this);\n Object(_utils__WEBPACK_IMPORTED_MODULE_2__[\"autoBind\"])(this);\n }\n isAllowedApi(api) {\n var _a;\n return Boolean((_a = this.context) === null || _a === void 0 ? void 0 : _a.cluster.isAllowedResource(api.kind));\n }\n preloadStores(stores, { loadOnce, namespaces, onLoadFailure } = {}) {\n const limitRequests = p_limit__WEBPACK_IMPORTED_MODULE_0___default()(1); // load stores one by one to allow quick skipping when fast clicking btw pages\n const preloading = [];\n for (const store of stores) {\n preloading.push(limitRequests(async () => {\n if (store.isLoaded && loadOnce)\n return; // skip\n return store.loadAll({ namespaces, onLoadFailure });\n }));\n }\n return {\n loading: Promise.allSettled(preloading),\n cancelLoading: () => limitRequests.clearQueue(),\n };\n }\n subscribeStores(stores, opts = {}) {\n var _a, _b, _c;\n const { preload = true, waitUntilLoaded = true, loadOnce = false, onLoadFailure } = opts;\n const subscribingNamespaces = (_c = (_a = opts.namespaces) !== null && _a !== void 0 ? _a : (_b = this.context) === null || _b === void 0 ? void 0 : _b.allNamespaces) !== null && _c !== void 0 ? _c : [];\n const unsubscribeStores = Object(_utils__WEBPACK_IMPORTED_MODULE_2__[\"disposer\"])();\n let isUnsubscribed = false;\n const load = (namespaces = subscribingNamespaces) => this.preloadStores(stores, { namespaces, loadOnce, onLoadFailure });\n let preloading = preload && load();\n let cancelReloading = _utils__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n const subscribe = () => {\n if (isUnsubscribed) {\n return;\n }\n unsubscribeStores.push(...stores.map(store => store.subscribe({ onLoadFailure })));\n };\n if (preloading) {\n if (waitUntilLoaded) {\n preloading.loading.then(subscribe, error => {\n this.log({\n message: new Error(\"Loading stores has failed\"),\n meta: { stores, error, options: opts },\n });\n });\n }\n else {\n subscribe();\n }\n // reload stores only for context namespaces change\n cancelReloading = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"reaction\"])(() => { var _a; return (_a = this.context) === null || _a === void 0 ? void 0 : _a.contextNamespaces; }, namespaces => {\n preloading === null || preloading === void 0 ? void 0 : preloading.cancelLoading();\n unsubscribeStores();\n preloading = load(namespaces);\n preloading.loading.then(subscribe);\n }, {\n equals: mobx__WEBPACK_IMPORTED_MODULE_1__[\"comparer\"].shallow,\n });\n }\n // unsubscribe\n return () => {\n if (isUnsubscribed)\n return;\n isUnsubscribed = true;\n cancelReloading();\n preloading === null || preloading === void 0 ? void 0 : preloading.cancelLoading();\n unsubscribeStores();\n };\n }\n log({ message, cssStyle = \"\", meta = {} }) {\n if (_vars__WEBPACK_IMPORTED_MODULE_3__[\"isProduction\"] && !_vars__WEBPACK_IMPORTED_MODULE_3__[\"isDebugging\"]) {\n return;\n }\n const logInfo = [`%c[KUBE-WATCH-API]:`, `font-weight: bold; ${cssStyle}`, message].flat().map(String);\n const logMeta = Object.assign({ time: new Date().toLocaleString() }, meta);\n if (message instanceof Error) {\n console.error(...logInfo, logMeta);\n }\n else {\n console.info(...logInfo, logMeta);\n }\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_1__[\"observable\"],\n __metadata(\"design:type\", Object)\n], KubeWatchApi.prototype, \"context\", void 0);\nconst kubeWatchApi = new KubeWatchApi();\n\n\n//# sourceURL=webpack:///./src/common/k8s-api/kube-watch-api.ts?");
39161
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeWatchApi\", function() { return KubeWatchApi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kubeWatchApi\", function() { return kubeWatchApi; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\");\n/* harmony import */ var abort_controller__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(abort_controller__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 _WatchCount_data, _KubeWatchApi_watch;\n\n\n\n\n\nclass WrappedAbortController extends abort_controller__WEBPACK_IMPORTED_MODULE_2___default.a {\n constructor(parent) {\n super();\n Object.defineProperty(this, \"parent\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: parent\n });\n parent.signal.addEventListener(\"abort\", () => {\n this.abort();\n });\n }\n}\nclass WatchCount {\n constructor() {\n _WatchCount_data.set(this, new Map());\n }\n inc(store) {\n if (!__classPrivateFieldGet(this, _WatchCount_data, \"f\").has(store)) {\n __classPrivateFieldGet(this, _WatchCount_data, \"f\").set(store, 0);\n }\n const newCount = __classPrivateFieldGet(this, _WatchCount_data, \"f\").get(store) + 1;\n _logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"].info(`[KUBE-WATCH-API]: inc() count for ${store.api.objectConstructor.apiBase} is now ${newCount}`);\n __classPrivateFieldGet(this, _WatchCount_data, \"f\").set(store, newCount);\n return newCount;\n }\n dec(store) {\n if (!__classPrivateFieldGet(this, _WatchCount_data, \"f\").has(store)) {\n throw new Error(`Cannot dec count for store that has never been inc: ${store.api.objectConstructor.kind}`);\n }\n const newCount = __classPrivateFieldGet(this, _WatchCount_data, \"f\").get(store) - 1;\n if (newCount < 0) {\n throw new Error(`Cannot dec count more times than it has been inc: ${store.api.objectConstructor.kind}`);\n }\n _logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"].debug(`[KUBE-WATCH-API]: dec() count for ${store.api.objectConstructor.apiBase} is now ${newCount}`);\n __classPrivateFieldGet(this, _WatchCount_data, \"f\").set(store, newCount);\n return newCount;\n }\n}\n_WatchCount_data = new WeakMap();\nclass KubeWatchApi {\n constructor() {\n _KubeWatchApi_watch.set(this, new WatchCount());\n }\n subscribeStore({ store, parent, watchChanges, namespaces, onLoadFailure }) {\n if (__classPrivateFieldGet(this, _KubeWatchApi_watch, \"f\").inc(store) > 1) {\n // don't load or subscribe to a store more than once\n return () => __classPrivateFieldGet(this, _KubeWatchApi_watch, \"f\").dec(store);\n }\n let childController = new WrappedAbortController(parent);\n const unsubscribe = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"disposer\"])();\n const loadThenSubscribe = async (namespaces) => {\n try {\n await store.loadAll({ namespaces, reqInit: { signal: childController.signal }, onLoadFailure });\n unsubscribe.push(store.subscribe({ onLoadFailure, abortController: childController }));\n }\n catch (error) {\n if (!(error instanceof DOMException)) {\n this.log(Object.assign(new Error(\"Loading stores has failed\"), { cause: error }), {\n meta: { store, namespaces },\n });\n }\n }\n };\n /**\n * We don't want to wait because we want to start reacting to namespace\n * selection changes ASAP\n */\n loadThenSubscribe(namespaces).catch(_utils__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]);\n const cancelReloading = watchChanges\n ? Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"reaction\"])(\n // Note: must slice because reaction won't fire if it isn't there\n () => [KubeWatchApi.context.contextNamespaces.slice(), KubeWatchApi.context.hasSelectedAll], ([namespaces, curSelectedAll], [prevNamespaces, prevSelectedAll]) => {\n if (curSelectedAll && prevSelectedAll) {\n const action = namespaces.length > prevNamespaces.length ? \"created\" : \"deleted\";\n return console.debug(`[KUBE-WATCH-API]: Not changing watch for ${store.api.apiBase} because a new namespace was ${action} but all namespaces are selected`);\n }\n console.log(`[KUBE-WATCH-API]: changing watch ${store.api.apiBase}`, namespaces);\n childController.abort();\n unsubscribe();\n childController = new WrappedAbortController(parent);\n loadThenSubscribe(namespaces).catch(_utils__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]);\n }, {\n equals: mobx__WEBPACK_IMPORTED_MODULE_0__[\"comparer\"].shallow,\n })\n : _utils__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]; // don't watch namespaces if namespaces were provided\n return () => {\n if (__classPrivateFieldGet(this, _KubeWatchApi_watch, \"f\").dec(store) === 0) {\n // only stop the subcribe if this is the last one\n cancelReloading();\n childController.abort();\n unsubscribe();\n }\n };\n }\n subscribeStores(stores, { namespaces, onLoadFailure } = {}) {\n const parent = new abort_controller__WEBPACK_IMPORTED_MODULE_2___default.a();\n const unsubscribe = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"disposer\"])(...stores.map(store => {\n var _a, _b;\n return this.subscribeStore({\n store,\n parent,\n watchChanges: !namespaces && store.api.isNamespaced,\n namespaces: (_b = namespaces !== null && namespaces !== void 0 ? namespaces : (_a = KubeWatchApi.context) === null || _a === void 0 ? void 0 : _a.contextNamespaces) !== null && _b !== void 0 ? _b : [],\n onLoadFailure,\n });\n }));\n // unsubscribe\n return Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"once\"])(() => {\n parent.abort();\n unsubscribe();\n });\n }\n log(message, meta) {\n const log = message instanceof Error\n ? console.error\n : console.debug;\n log(\"[KUBE-WATCH-API]:\", message, Object.assign({ time: new Date().toLocaleString() }, meta));\n }\n}\n_KubeWatchApi_watch = new WeakMap();\nObject.defineProperty(KubeWatchApi, \"context\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n});\nconst kubeWatchApi = new KubeWatchApi();\n\n\n//# sourceURL=webpack:///./src/common/k8s-api/kube-watch-api.ts?");
39162
39162
 
39163
39163
  /***/ }),
39164
39164
 
@@ -41474,7 +41474,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
41474
41474
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
41475
41475
 
41476
41476
  "use strict";
41477
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeEventDetails\", function() { return KubeEventDetails; });\n/* harmony import */ var _kube_event_details_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kube-event-details.scss */ \"./src/renderer/components/+events/kube-event-details.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/k8s-api/kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _drawer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../drawer */ \"./src/renderer/components/drawer/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _locale_date__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../locale-date */ \"./src/renderer/components/locale-date/index.ts\");\n/* harmony import */ var _event_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./event.store */ \"./src/renderer/components/+events/event.store.ts\");\n/* harmony import */ var _common_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../common/logger */ \"./src/common/logger.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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};\n\n\n\n\n\n\n\n\n\nlet KubeEventDetails = class KubeEventDetails extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n async componentDidMount() {\n _event_store__WEBPACK_IMPORTED_MODULE_7__[\"eventStore\"].reloadAll();\n }\n render() {\n const { object } = this.props;\n if (!object) {\n return null;\n }\n if (!(object instanceof _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_3__[\"KubeObject\"])) {\n _common_logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(\"[KubeEventDetails]: passed object that is not an instanceof KubeObject\", object);\n return null;\n }\n const events = _event_store__WEBPACK_IMPORTED_MODULE_7__[\"eventStore\"].getEventsByObject(object);\n if (!events.length) {\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerTitle\"], { className: \"flex gaps align-center\" },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"span\", null, \"Events\")));\n }\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerTitle\"], { className: \"flex gaps align-center\" },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"span\", null, \"Events\")),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: \"KubeEventDetails\" }, events.map(evt => {\n const { message, count, lastTimestamp, involvedObject } = evt;\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: \"event\", key: evt.getId() },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"cssNames\"])(\"title\", { warning: evt.isWarning() }) }, message),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Source\" }, evt.getSource()),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Count\" }, count),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Sub-object\" }, involvedObject.fieldPath),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Last seen\" },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_locale_date__WEBPACK_IMPORTED_MODULE_6__[\"LocaleDate\"], { date: lastTimestamp }))));\n }))));\n }\n};\nKubeEventDetails = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_2__[\"observer\"]\n], KubeEventDetails);\n\n\n\n//# sourceURL=webpack:///./src/renderer/components/+events/kube-event-details.tsx?");
41477
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeEventDetails\", function() { return KubeEventDetails; });\n/* harmony import */ var _kube_event_details_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kube-event-details.scss */ \"./src/renderer/components/+events/kube-event-details.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/k8s-api/kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _drawer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../drawer */ \"./src/renderer/components/drawer/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _locale_date__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../locale-date */ \"./src/renderer/components/locale-date/index.ts\");\n/* harmony import */ var _event_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./event.store */ \"./src/renderer/components/+events/event.store.ts\");\n/* harmony import */ var _common_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../common/logger */ \"./src/common/logger.ts\");\n/* harmony import */ var _common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../common/k8s-api/kube-watch-api */ \"./src/common/k8s-api/kube-watch-api.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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};\n\n\n\n\n\n\n\n\n\n\nlet KubeEventDetails = class KubeEventDetails extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n componentDidMount() {\n Object(mobx_react__WEBPACK_IMPORTED_MODULE_2__[\"disposeOnUnmount\"])(this, [\n _common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_9__[\"kubeWatchApi\"].subscribeStores([\n _event_store__WEBPACK_IMPORTED_MODULE_7__[\"eventStore\"],\n ]),\n ]);\n }\n render() {\n const { object } = this.props;\n if (!object) {\n return null;\n }\n if (!(object instanceof _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_3__[\"KubeObject\"])) {\n _common_logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(\"[KubeEventDetails]: passed object that is not an instanceof KubeObject\", object);\n return null;\n }\n const events = _event_store__WEBPACK_IMPORTED_MODULE_7__[\"eventStore\"].getEventsByObject(object);\n if (!events.length) {\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerTitle\"], { className: \"flex gaps align-center\" },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"span\", null, \"Events\")));\n }\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerTitle\"], { className: \"flex gaps align-center\" },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"span\", null, \"Events\")),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: \"KubeEventDetails\" }, events.map(evt => {\n const { message, count, lastTimestamp, involvedObject } = evt;\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: \"event\", key: evt.getId() },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"cssNames\"])(\"title\", { warning: evt.isWarning() }) }, message),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Source\" }, evt.getSource()),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Count\" }, count),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Sub-object\" }, involvedObject.fieldPath),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_drawer__WEBPACK_IMPORTED_MODULE_4__[\"DrawerItem\"], { name: \"Last seen\" },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_locale_date__WEBPACK_IMPORTED_MODULE_6__[\"LocaleDate\"], { date: lastTimestamp }))));\n }))));\n }\n};\nKubeEventDetails = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_2__[\"observer\"]\n], KubeEventDetails);\n\n\n\n//# sourceURL=webpack:///./src/renderer/components/+events/kube-event-details.tsx?");
41478
41478
 
41479
41479
  /***/ }),
41480
41480
 
@@ -41522,7 +41522,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
41522
41522
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
41523
41523
 
41524
41524
  "use strict";
41525
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NamespaceSelect\", function() { return NamespaceSelect; });\n/* harmony import */ var _namespace_select_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespace-select.scss */ \"./src/renderer/components/+namespaces/namespace-select.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../select */ \"./src/renderer/components/select/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var _namespace_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./namespace.store */ \"./src/renderer/components/+namespaces/namespace.store.ts\");\n/* harmony import */ var _common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../common/k8s-api/kube-watch-api */ \"./src/common/k8s-api/kube-watch-api.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\nconst defaultProps = {\n showIcons: true,\n};\nlet NamespaceSelect = class NamespaceSelect extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"formatOptionLabel\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (option) => {\n const { showIcons } = this.props;\n const { value, label } = option;\n return label || (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null,\n showIcons && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_icon__WEBPACK_IMPORTED_MODULE_6__[\"Icon\"], { small: true, material: \"layers\" }),\n value));\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n }\n componentDidMount() {\n Object(mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"disposeOnUnmount\"])(this, [\n _common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_8__[\"kubeWatchApi\"].subscribeStores([_namespace_store__WEBPACK_IMPORTED_MODULE_7__[\"namespaceStore\"]], {\n preload: true,\n loadOnce: true, // skip reloading namespaces on every render / page visit\n }),\n ]);\n }\n get options() {\n const { customizeOptions, showAllNamespacesOption, sort } = this.props;\n let options = _namespace_store__WEBPACK_IMPORTED_MODULE_7__[\"namespaceStore\"].items.map(ns => ({ value: ns.getName() }));\n if (sort) {\n options.sort(sort);\n }\n if (showAllNamespacesOption) {\n options.unshift({ label: \"All Namespaces\", value: \"\" });\n }\n if (customizeOptions) {\n options = customizeOptions(options);\n }\n return options;\n }\n render() {\n const _a = this.props, { className, showIcons, customizeOptions, components = {} } = _a, selectProps = __rest(_a, [\"className\", \"showIcons\", \"customizeOptions\", \"components\"]);\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_select__WEBPACK_IMPORTED_MODULE_4__[\"Select\"], Object.assign({ className: Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"cssNames\"])(\"NamespaceSelect\", className), menuClass: \"NamespaceSelectMenu\", formatOptionLabel: this.formatOptionLabel, options: this.options, components: components }, selectProps)));\n }\n};\nObject.defineProperty(NamespaceSelect, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"].struct,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], NamespaceSelect.prototype, \"options\", null);\nNamespaceSelect = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"observer\"],\n __metadata(\"design:paramtypes\", [Object])\n], NamespaceSelect);\n\n\n\n//# sourceURL=webpack:///./src/renderer/components/+namespaces/namespace-select.tsx?");
41525
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NamespaceSelect\", function() { return NamespaceSelect; });\n/* harmony import */ var _namespace_select_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespace-select.scss */ \"./src/renderer/components/+namespaces/namespace-select.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../select */ \"./src/renderer/components/select/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var _namespace_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./namespace.store */ \"./src/renderer/components/+namespaces/namespace.store.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\nconst defaultProps = {\n showIcons: true,\n};\nlet NamespaceSelect = class NamespaceSelect extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"formatOptionLabel\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (option) => {\n const { showIcons } = this.props;\n const { value, label } = option;\n return label || (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null,\n showIcons && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_icon__WEBPACK_IMPORTED_MODULE_6__[\"Icon\"], { small: true, material: \"layers\" }),\n value));\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n }\n // No subscribe here because the subscribe is in <App /> (the cluster frame root component)\n get options() {\n const { customizeOptions, showAllNamespacesOption, sort } = this.props;\n let options = _namespace_store__WEBPACK_IMPORTED_MODULE_7__[\"namespaceStore\"].items.map(ns => ({ value: ns.getName() }));\n if (sort) {\n options.sort(sort);\n }\n if (showAllNamespacesOption) {\n options.unshift({ label: \"All Namespaces\", value: \"\" });\n }\n if (customizeOptions) {\n options = customizeOptions(options);\n }\n return options;\n }\n render() {\n const _a = this.props, { className, showIcons, customizeOptions, components = {} } = _a, selectProps = __rest(_a, [\"className\", \"showIcons\", \"customizeOptions\", \"components\"]);\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_select__WEBPACK_IMPORTED_MODULE_4__[\"Select\"], Object.assign({ className: Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"cssNames\"])(\"NamespaceSelect\", className), menuClass: \"NamespaceSelectMenu\", formatOptionLabel: this.formatOptionLabel, options: this.options, components: components }, selectProps)));\n }\n};\nObject.defineProperty(NamespaceSelect, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"].struct,\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], NamespaceSelect.prototype, \"options\", null);\nNamespaceSelect = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"observer\"],\n __metadata(\"design:paramtypes\", [Object])\n], NamespaceSelect);\n\n\n\n//# sourceURL=webpack:///./src/renderer/components/+namespaces/namespace-select.tsx?");
41526
41526
 
41527
41527
  /***/ }),
41528
41528
 
@@ -41922,18 +41922,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _con
41922
41922
 
41923
41923
  /***/ }),
41924
41924
 
41925
- /***/ "./src/renderer/components/context.ts":
41926
- /*!********************************************!*\
41927
- !*** ./src/renderer/components/context.ts ***!
41928
- \********************************************/
41929
- /*! exports provided: clusterContext */
41930
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
41931
-
41932
- "use strict";
41933
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clusterContext\", function() { return clusterContext; });\n/* harmony import */ var _common_cluster_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/cluster-store */ \"./src/common/cluster-store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _namespaces_namespace_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./+namespaces/namespace.store */ \"./src/renderer/components/+namespaces/namespace.store.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n\n\nconst clusterContext = {\n get cluster() {\n return _common_cluster_store__WEBPACK_IMPORTED_MODULE_0__[\"ClusterStore\"].getInstance().getById(Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"getHostedClusterId\"])());\n },\n get allNamespaces() {\n var _a;\n if (!this.cluster) {\n return [];\n }\n // user given list of namespaces\n if ((_a = this.cluster) === null || _a === void 0 ? void 0 : _a.accessibleNamespaces.length) {\n return this.cluster.accessibleNamespaces;\n }\n if (_namespaces_namespace_store__WEBPACK_IMPORTED_MODULE_2__[\"namespaceStore\"].items.length > 0) {\n // namespaces from kubernetes api\n return _namespaces_namespace_store__WEBPACK_IMPORTED_MODULE_2__[\"namespaceStore\"].items.map((namespace) => namespace.getName());\n }\n else {\n // fallback to cluster resolved namespaces because we could not load list\n return this.cluster.allowedNamespaces || [];\n }\n },\n get contextNamespaces() {\n var _a;\n return (_a = _namespaces_namespace_store__WEBPACK_IMPORTED_MODULE_2__[\"namespaceStore\"].contextNamespaces) !== null && _a !== void 0 ? _a : [];\n },\n};\n\n\n//# sourceURL=webpack:///./src/renderer/components/context.ts?");
41934
-
41935
- /***/ }),
41936
-
41937
41925
  /***/ "./src/renderer/components/dialog/dialog.scss":
41938
41926
  /*!****************************************************!*\
41939
41927
  !*** ./src/renderer/components/dialog/dialog.scss ***!
@@ -42541,7 +42529,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
42541
42529
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
42542
42530
 
42543
42531
  "use strict";
42544
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeObjectListLayout\", function() { return KubeObjectListLayout; });\n/* harmony import */ var _kube_object_list_layout_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kube-object-list-layout.scss */ \"./src/renderer/components/kube-object-list-layout/kube-object-list-layout.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _item_object_list_item_list_layout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../item-object-list/item-list-layout */ \"./src/renderer/components/item-object-list/item-list-layout.tsx\");\n/* harmony import */ var _kube_object_menu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../kube-object-menu */ \"./src/renderer/components/kube-object-menu/index.ts\");\n/* harmony import */ var _common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../common/k8s-api/kube-watch-api */ \"./src/common/k8s-api/kube-watch-api.ts\");\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../context */ \"./src/renderer/components/context.ts\");\n/* harmony import */ var _namespaces_namespace_select_filter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../+namespaces/namespace-select-filter */ \"./src/renderer/components/+namespaces/namespace-select-filter.tsx\");\n/* harmony import */ var _utils_rbac__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils/rbac */ \"./src/renderer/utils/rbac.ts\");\n/* harmony import */ var _kube_detail_params__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../kube-detail-params */ \"./src/renderer/components/kube-detail-params/index.ts\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../tooltip */ \"./src/renderer/components/tooltip/index.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultProps = {\n onDetails: (item) => Object(_kube_detail_params__WEBPACK_IMPORTED_MODULE_11__[\"toggleDetails\"])(item.selfLink),\n subscribeStores: true,\n};\nlet KubeObjectListLayout = class KubeObjectListLayout extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"loadErrors\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n }\n get selectedItem() {\n return this.props.store.getByPath(_kube_detail_params__WEBPACK_IMPORTED_MODULE_11__[\"kubeSelectedUrlParam\"].get());\n }\n componentDidMount() {\n const { store, dependentStores = [], subscribeStores } = this.props;\n const stores = Array.from(new Set([store, ...dependentStores]));\n const reactions = [\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => _context__WEBPACK_IMPORTED_MODULE_8__[\"clusterContext\"].contextNamespaces.slice(), () => {\n // clear load errors\n this.loadErrors.length = 0;\n }),\n ];\n if (subscribeStores) {\n reactions.push(_common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_7__[\"kubeWatchApi\"].subscribeStores(stores, {\n preload: true,\n namespaces: _context__WEBPACK_IMPORTED_MODULE_8__[\"clusterContext\"].contextNamespaces,\n onLoadFailure: error => this.loadErrors.push(String(error)),\n }));\n }\n Object(mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"disposeOnUnmount\"])(this, reactions);\n }\n renderLoadErrors() {\n if (this.loadErrors.length === 0) {\n return null;\n }\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_icon__WEBPACK_IMPORTED_MODULE_12__[\"Icon\"], { material: \"warning\", className: \"load-error\", tooltip: {\n children: (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null, this.loadErrors.map((error, index) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"p\", { key: index }, error)))),\n preferredPositions: _tooltip__WEBPACK_IMPORTED_MODULE_13__[\"TooltipPosition\"].BOTTOM,\n } }));\n }\n render() {\n const _a = this.props, { className, customizeHeader, store, items = store.contextItems } = _a, layoutProps = __rest(_a, [\"className\", \"customizeHeader\", \"store\", \"items\"]);\n const placeholderString = _utils_rbac__WEBPACK_IMPORTED_MODULE_10__[\"ResourceNames\"][_utils_rbac__WEBPACK_IMPORTED_MODULE_10__[\"ResourceKindMap\"][store.api.kind]] || store.api.kind;\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_item_object_list_item_list_layout__WEBPACK_IMPORTED_MODULE_5__[\"ItemListLayout\"], Object.assign({}, layoutProps, { className: Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"cssNames\"])(\"KubeObjectListLayout\", className), store: store, items: items, preloadStores: false, detailsItem: this.selectedItem, customizeHeader: [\n (_a) => {\n var { filters, searchProps, info } = _a, headerPlaceHolders = __rest(_a, [\"filters\", \"searchProps\", \"info\"]);\n return (Object.assign({ filters: (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null,\n filters,\n store.api.isNamespaced && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_namespaces_namespace_select_filter__WEBPACK_IMPORTED_MODULE_9__[\"NamespaceSelectFilter\"], null))), searchProps: Object.assign(Object.assign({}, searchProps), { placeholder: `Search ${placeholderString}...` }), info: (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null,\n info,\n this.renderLoadErrors())) }, headerPlaceHolders));\n },\n ...[customizeHeader].flat(),\n ], renderItemMenu: item => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_kube_object_menu__WEBPACK_IMPORTED_MODULE_6__[\"KubeObjectMenu\"], { object: item }) })));\n }\n};\nObject.defineProperty(KubeObjectListLayout, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Array)\n], KubeObjectListLayout.prototype, \"loadErrors\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], KubeObjectListLayout.prototype, \"selectedItem\", null);\nKubeObjectListLayout = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"observer\"],\n __metadata(\"design:paramtypes\", [Object])\n], KubeObjectListLayout);\n\n\n\n//# sourceURL=webpack:///./src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx?");
42532
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeObjectListLayout\", function() { return KubeObjectListLayout; });\n/* harmony import */ var _kube_object_list_layout_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./kube-object-list-layout.scss */ \"./src/renderer/components/kube-object-list-layout/kube-object-list-layout.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _item_object_list_item_list_layout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../item-object-list/item-list-layout */ \"./src/renderer/components/item-object-list/item-list-layout.tsx\");\n/* harmony import */ var _kube_object_menu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../kube-object-menu */ \"./src/renderer/components/kube-object-menu/index.ts\");\n/* harmony import */ var _common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../common/k8s-api/kube-watch-api */ \"./src/common/k8s-api/kube-watch-api.ts\");\n/* harmony import */ var _namespaces_namespace_select_filter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../+namespaces/namespace-select-filter */ \"./src/renderer/components/+namespaces/namespace-select-filter.tsx\");\n/* harmony import */ var _utils_rbac__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/rbac */ \"./src/renderer/utils/rbac.ts\");\n/* harmony import */ var _kube_detail_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../kube-detail-params */ \"./src/renderer/components/kube-detail-params/index.ts\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../tooltip */ \"./src/renderer/components/tooltip/index.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\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 __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar KubeObjectListLayout_1;\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultProps = {\n onDetails: (item) => Object(_kube_detail_params__WEBPACK_IMPORTED_MODULE_10__[\"toggleDetails\"])(item.selfLink),\n subscribeStores: true,\n};\nlet KubeObjectListLayout = KubeObjectListLayout_1 = class KubeObjectListLayout extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"loadErrors\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n }\n get selectedItem() {\n return this.props.store.getByPath(_kube_detail_params__WEBPACK_IMPORTED_MODULE_10__[\"kubeSelectedUrlParam\"].get());\n }\n componentDidMount() {\n const { store, dependentStores = [], subscribeStores } = this.props;\n const stores = Array.from(new Set([store, ...dependentStores]));\n const reactions = [\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => KubeObjectListLayout_1.clusterContext.contextNamespaces.slice(), () => {\n // clear load errors\n this.loadErrors.length = 0;\n }),\n ];\n if (subscribeStores) {\n reactions.push(_common_k8s_api_kube_watch_api__WEBPACK_IMPORTED_MODULE_7__[\"kubeWatchApi\"].subscribeStores(stores, {\n onLoadFailure: error => this.loadErrors.push(String(error)),\n }));\n }\n Object(mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"disposeOnUnmount\"])(this, reactions);\n }\n renderLoadErrors() {\n if (this.loadErrors.length === 0) {\n return null;\n }\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_icon__WEBPACK_IMPORTED_MODULE_11__[\"Icon\"], { material: \"warning\", className: \"load-error\", tooltip: {\n children: (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null, this.loadErrors.map((error, index) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"p\", { key: index }, error)))),\n preferredPositions: _tooltip__WEBPACK_IMPORTED_MODULE_12__[\"TooltipPosition\"].BOTTOM,\n } }));\n }\n render() {\n const _a = this.props, { className, customizeHeader, store, items = store.contextItems } = _a, layoutProps = __rest(_a, [\"className\", \"customizeHeader\", \"store\", \"items\"]);\n const placeholderString = _utils_rbac__WEBPACK_IMPORTED_MODULE_9__[\"ResourceNames\"][_utils_rbac__WEBPACK_IMPORTED_MODULE_9__[\"ResourceKindMap\"][store.api.kind]] || store.api.kind;\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_item_object_list_item_list_layout__WEBPACK_IMPORTED_MODULE_5__[\"ItemListLayout\"], Object.assign({}, layoutProps, { className: Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"cssNames\"])(\"KubeObjectListLayout\", className), store: store, items: items, preloadStores: false, detailsItem: this.selectedItem, customizeHeader: [\n (_a) => {\n var { filters, searchProps, info } = _a, headerPlaceHolders = __rest(_a, [\"filters\", \"searchProps\", \"info\"]);\n return (Object.assign({ filters: (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null,\n filters,\n store.api.isNamespaced && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_namespaces_namespace_select_filter__WEBPACK_IMPORTED_MODULE_8__[\"NamespaceSelectFilter\"], null))), searchProps: Object.assign(Object.assign({}, searchProps), { placeholder: `Search ${placeholderString}...` }), info: (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null,\n info,\n this.renderLoadErrors())) }, headerPlaceHolders));\n },\n ...[customizeHeader].flat(),\n ], renderItemMenu: item => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_kube_object_menu__WEBPACK_IMPORTED_MODULE_6__[\"KubeObjectMenu\"], { object: item }) })));\n }\n};\nObject.defineProperty(KubeObjectListLayout, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Array)\n], KubeObjectListLayout.prototype, \"loadErrors\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], KubeObjectListLayout.prototype, \"selectedItem\", null);\nKubeObjectListLayout = KubeObjectListLayout_1 = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_3__[\"observer\"],\n __metadata(\"design:paramtypes\", [Object])\n], KubeObjectListLayout);\n\n\n\n//# sourceURL=webpack:///./src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx?");
42545
42533
 
42546
42534
  /***/ }),
42547
42535
 
@@ -25,6 +25,6 @@ export interface KubeEventDetailsProps {
25
25
  object: KubeObject;
26
26
  }
27
27
  export declare class KubeEventDetails extends React.Component<KubeEventDetailsProps> {
28
- componentDidMount(): Promise<void>;
28
+ componentDidMount(): void;
29
29
  render(): JSX.Element;
30
30
  }
@@ -27,7 +27,6 @@ interface Props extends KubeObjectDetailsProps<Namespace> {
27
27
  export declare class NamespaceDetails extends React.Component<Props> {
28
28
  metrics: IPodMetrics;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
31
30
  componentDidMount(): void;
32
31
  get quotas(): import("../../../common/k8s-api/endpoints").ResourceQuota[];
33
32
  get limitranges(): import("../../../common/k8s-api/endpoints").LimitRange[];
@@ -30,7 +30,6 @@ interface Props extends SelectProps {
30
30
  export declare class NamespaceSelect extends React.Component<Props> {
31
31
  static defaultProps: object;
32
32
  constructor(props: Props);
33
- componentDidMount(): void;
34
33
  get options(): SelectOption[];
35
34
  formatOptionLabel: (option: SelectOption) => {};
36
35
  render(): JSX.Element;
@@ -54,7 +54,7 @@ export declare class NamespaceStore extends KubeObjectStore<Namespace> {
54
54
  */
55
55
  get areAllSelectedImplicitly(): boolean;
56
56
  subscribe(): typeof noop;
57
- protected loadItems(params: KubeObjectStoreLoadingParams<Namespace>): Promise<Namespace[]>;
57
+ protected loadItems(params: KubeObjectStoreLoadingParams): Promise<Namespace[]>;
58
58
  selectNamespaces(namespace: string | string[]): void;
59
59
  clearSelected(namespaces?: string | string[]): void;
60
60
  /**
@@ -28,7 +28,7 @@ interface Props extends KubeObjectDetailsProps<Ingress> {
28
28
  export declare class IngressDetails extends React.Component<Props> {
29
29
  metrics: IIngressMetrics;
30
30
  constructor(props: Props);
31
- clean: import("mobx").IReactionDisposer;
31
+ componentDidMount(): void;
32
32
  loadMetrics(): Promise<void>;
33
33
  renderPaths(ingress: Ingress): JSX.Element[];
34
34
  renderIngressPoints(ingressPoints: ILoadBalancerIngress[]): JSX.Element;
@@ -27,8 +27,7 @@ interface Props extends KubeObjectDetailsProps<Node> {
27
27
  export declare class NodeDetails extends React.Component<Props> {
28
28
  metrics: Partial<IClusterMetrics>;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
31
- componentDidMount(): Promise<void>;
30
+ componentDidMount(): void;
32
31
  loadMetrics(): Promise<void>;
33
32
  render(): JSX.Element;
34
33
  }
@@ -25,7 +25,7 @@ import { StorageClass } from "../../../common/k8s-api/endpoints";
25
25
  interface Props extends KubeObjectDetailsProps<StorageClass> {
26
26
  }
27
27
  export declare class StorageClassDetails extends React.Component<Props> {
28
- componentDidMount(): Promise<void>;
28
+ componentDidMount(): void;
29
29
  render(): JSX.Element;
30
30
  }
31
31
  export {};
@@ -27,7 +27,7 @@ interface Props extends KubeObjectDetailsProps<PersistentVolumeClaim> {
27
27
  export declare class PersistentVolumeClaimDetails extends React.Component<Props> {
28
28
  metrics: IPvcMetrics;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
30
+ componentDidMount(): void;
31
31
  loadMetrics(): Promise<void>;
32
32
  render(): JSX.Element;
33
33
  }
@@ -25,7 +25,7 @@ import { CronJob } from "../../../common/k8s-api/endpoints";
25
25
  interface Props extends KubeObjectDetailsProps<CronJob> {
26
26
  }
27
27
  export declare class CronJobDetails extends React.Component<Props> {
28
- componentDidMount(): Promise<void>;
28
+ componentDidMount(): void;
29
29
  render(): JSX.Element;
30
30
  }
31
31
  export {};
@@ -27,7 +27,6 @@ interface Props extends KubeObjectDetailsProps<DaemonSet> {
27
27
  export declare class DaemonSetDetails extends React.Component<Props> {
28
28
  metrics: IPodMetrics;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
31
30
  componentDidMount(): void;
32
31
  loadMetrics(): Promise<void>;
33
32
  render(): JSX.Element;
@@ -27,7 +27,6 @@ interface Props extends KubeObjectDetailsProps<Deployment> {
27
27
  export declare class DeploymentDetails extends React.Component<Props> {
28
28
  metrics: IPodMetrics;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
31
30
  componentDidMount(): void;
32
31
  loadMetrics(): Promise<void>;
33
32
  render(): JSX.Element;
@@ -27,7 +27,7 @@ interface Props extends KubeObjectDetailsProps<Job> {
27
27
  export declare class JobDetails extends React.Component<Props> {
28
28
  metrics: IPodMetrics;
29
29
  constructor(props: Props);
30
- componentDidMount(): Promise<void>;
30
+ componentDidMount(): void;
31
31
  loadMetrics(): Promise<void>;
32
32
  render(): JSX.Element;
33
33
  }
@@ -22,9 +22,11 @@ import "./overview.scss";
22
22
  import React from "react";
23
23
  import type { RouteComponentProps } from "react-router";
24
24
  import type { WorkloadsOverviewRouteParams } from "../../../common/routes";
25
+ import type { ClusterContext } from "../../../common/k8s-api/cluster-context";
25
26
  interface Props extends RouteComponentProps<WorkloadsOverviewRouteParams> {
26
27
  }
27
28
  export declare class WorkloadsOverview extends React.Component<Props> {
29
+ static clusterContext: ClusterContext;
28
30
  loadErrors: string[];
29
31
  constructor(props: Props);
30
32
  componentDidMount(): void;
@@ -27,8 +27,7 @@ interface Props extends KubeObjectDetailsProps<ReplicaSet> {
27
27
  export declare class ReplicaSetDetails extends React.Component<Props> {
28
28
  metrics: IPodMetrics;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
31
- componentDidMount(): Promise<void>;
30
+ componentDidMount(): void;
32
31
  loadMetrics(): Promise<void>;
33
32
  render(): JSX.Element;
34
33
  }
@@ -27,7 +27,6 @@ interface Props extends KubeObjectDetailsProps<StatefulSet> {
27
27
  export declare class StatefulSetDetails extends React.Component<Props> {
28
28
  metrics: IPodMetrics;
29
29
  constructor(props: Props);
30
- clean: import("mobx").IReactionDisposer;
31
30
  componentDidMount(): void;
32
31
  loadMetrics(): Promise<void>;
33
32
  render(): JSX.Element;
@@ -18,5 +18,12 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
+ import type { Cluster } from "../../main/cluster";
21
22
  import type { ClusterContext } from "../../common/k8s-api/cluster-context";
22
- export declare const clusterContext: ClusterContext;
23
+ export declare class FrameContext implements ClusterContext {
24
+ cluster: Cluster;
25
+ constructor(cluster: Cluster);
26
+ get allNamespaces(): string[];
27
+ get contextNamespaces(): string[];
28
+ get hasSelectedAll(): boolean;
29
+ }
@@ -28,8 +28,11 @@ interface Props {
28
28
  className?: IClassName;
29
29
  }
30
30
  export declare class HotbarMenu extends React.Component<Props> {
31
+ draggingOver: boolean;
32
+ constructor(props: Props);
31
33
  get hotbar(): Required<import("../../../common/hotbar-types").HotbarCreateOptions>;
32
34
  getEntity(item: HotbarItem): CatalogEntity<import("../../../common/catalog").CatalogEntityMetadata, import("../../../common/catalog").CatalogEntityStatus, import("../../../common/catalog").CatalogEntitySpec>;
35
+ onDragStart(): void;
33
36
  onDragEnd(result: DropResult): void;
34
37
  removeItem(uid: string): void;
35
38
  addItem(entity: CatalogEntity, index?: number): void;
@@ -23,6 +23,7 @@ import React from "react";
23
23
  import type { KubeObject } from "../../../common/k8s-api/kube-object";
24
24
  import { ItemListLayoutProps } from "../item-object-list/item-list-layout";
25
25
  import type { KubeObjectStore } from "../../../common/k8s-api/kube-object.store";
26
+ import type { ClusterContext } from "../../../common/k8s-api/cluster-context";
26
27
  export interface KubeObjectListLayoutProps<K extends KubeObject> extends ItemListLayoutProps<K> {
27
28
  store: KubeObjectStore<K>;
28
29
  dependentStores?: KubeObjectStore<KubeObject>[];
@@ -30,6 +31,7 @@ export interface KubeObjectListLayoutProps<K extends KubeObject> extends ItemLis
30
31
  }
31
32
  export declare class KubeObjectListLayout<K extends KubeObject> extends React.Component<KubeObjectListLayoutProps<K>> {
32
33
  static defaultProps: object;
34
+ static clusterContext: ClusterContext;
33
35
  constructor(props: KubeObjectListLayoutProps<K>);
34
36
  loadErrors: string[];
35
37
  get selectedItem(): K;
@@ -35,5 +35,5 @@ export declare function addPortForward(portForward: ForwardedPort): Promise<numb
35
35
  export declare function getPortForward(portForward: ForwardedPort): Promise<number>;
36
36
  export declare function modifyPortForward(portForward: ForwardedPort, desiredPort: number): Promise<number>;
37
37
  export declare function removePortForward(portForward: ForwardedPort): Promise<void>;
38
- export declare function getPortForwards(): Promise<ForwardedPort[]>;
38
+ export declare function getPortForwards(clusterId?: string): Promise<ForwardedPort[]>;
39
39
  export declare const portForwardStore: PortForwardStore;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@k8slens/extensions",
3
3
  "productName": "OpenLens extensions",
4
4
  "description": "OpenLens - Open Source Kubernetes IDE: extensions",
5
- "version": "5.3.1-git.b3723de3ec.0",
5
+ "version": "5.3.1-git.bb30bdc750.0",
6
6
  "copyright": "© 2021 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",