@k8slens/extensions 5.4.0-git.81e6dc5d8e.0 → 5.4.0-git.9c604dcfa1.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/catalog/catalog-category-registry.d.ts +2 -2
  2. package/dist/src/common/user-store/user-store.d.ts +1 -1
  3. package/dist/src/common/utils/collection-functions.d.ts +18 -4
  4. package/dist/src/common/utils/index.d.ts +1 -2
  5. package/dist/src/common/utils/objects.d.ts +2 -3
  6. package/dist/src/common/utils/openBrowser.d.ts +17 -0
  7. package/dist/src/extensions/common-api/registrations.d.ts +1 -0
  8. package/dist/src/extensions/common-api/utils.d.ts +1 -1
  9. package/dist/src/extensions/extension-api.js +27 -39
  10. package/dist/src/extensions/lens-extension.d.ts +1 -1
  11. package/dist/src/extensions/lens-main-extension.d.ts +15 -0
  12. package/dist/src/main/helm/helm-repo-manager.d.ts +8 -9
  13. package/dist/src/main/shell-session/local-shell-session/local-shell-session.d.ts +6 -0
  14. package/dist/src/main/shell-session/shell-env-modifier/shell-env-modifier-registration.d.ts +9 -0
  15. package/dist/src/main/shell-session/shell-env-modifier/terminal-shell-env-modifiers.d.ts +12 -0
  16. package/dist/src/main/shell-session/shell-env-modifier/terminal-shell-env-modify.injectable.d.ts +7 -0
  17. package/dist/src/renderer/api/websocket-api.d.ts +1 -1
  18. package/dist/src/renderer/components/+config-secrets/secret-details.d.ts +1 -1
  19. package/dist/src/renderer/components/+preferences/add-helm-repo-dialog.d.ts +0 -1
  20. package/dist/src/renderer/components/+preferences/helm-charts.d.ts +4 -2
  21. package/dist/src/renderer/components/item-object-list/list-layout.d.ts +1 -2
  22. package/dist/src/renderer/components/kube-object-list-layout/kube-object-list-layout.d.ts +5 -1
  23. package/package.json +1 -1
  24. package/dist/src/common/utils/extended-map.d.ts +0 -30
  25. package/dist/src/common/utils/openExternal.d.ts +0 -5
@@ -38508,7 +38508,7 @@ eval("class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthi
38508
38508
  /*! exports provided: name, productName, description, homepage, version, main, copyright, license, author, scripts, config, engines, jest, build, dependencies, devDependencies, default */
38509
38509
  /***/ (function(module) {
38510
38510
 
38511
- 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.4.0-beta.1\\\",\\\"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.23.3\\\",\\\"bundledHelmVersion\\\":\\\"3.7.2\\\",\\\"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\\\"},\\\"modulePathIgnorePatterns\\\":[\\\"<rootDir>/dist\\\",\\\"<rootDir>/src/extensions/npm\\\"],\\\"setupFiles\\\":[\\\"<rootDir>/src/jest.setup.ts\\\",\\\"jest-canvas-mock\\\"],\\\"globals\\\":{\\\"ts-jest\\\":{\\\"isolatedModules\\\":true}}},\\\"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\\\"}]},\\\"rpm\\\":{\\\"fpm\\\":[\\\"--rpm-rpmbuild-define=%define _build_id_links none\\\"]},\\\"mac\\\":{\\\"hardenedRuntime\\\":true,\\\"gatekeeperAssess\\\":false,\\\"entitlements\\\":\\\"build/entitlements.mac.plist\\\",\\\"entitlementsInherit\\\":\\\"build/entitlements.mac.plist\\\",\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/darwin/${arch}/kubectl\\\",\\\"to\\\":\\\"./${arch}/kubectl\\\"},{\\\"from\\\":\\\"binaries/client/${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\\\":{\\\"@hapi/call\\\":\\\"^8.0.1\\\",\\\"@hapi/subtext\\\":\\\"^7.0.3\\\",\\\"@kubernetes/client-node\\\":\\\"^0.16.1\\\",\\\"@ogre-tools/injectable\\\":\\\"3.2.1\\\",\\\"@ogre-tools/injectable-react\\\":\\\"3.2.1\\\",\\\"@sentry/electron\\\":\\\"^2.5.4\\\",\\\"@sentry/integrations\\\":\\\"^6.15.0\\\",\\\"@types/circular-dependency-plugin\\\":\\\"5.0.4\\\",\\\"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.3\\\",\\\"grapheme-splitter\\\":\\\"^1.0.4\\\",\\\"handlebars\\\":\\\"^4.7.7\\\",\\\"http-proxy\\\":\\\"^1.18.1\\\",\\\"immer\\\":\\\"^9.0.6\\\",\\\"joi\\\":\\\"^17.5.0\\\",\\\"js-yaml\\\":\\\"^4.1.0\\\",\\\"jsdom\\\":\\\"^16.7.0\\\",\\\"jsonpath\\\":\\\"^1.1.1\\\",\\\"lodash\\\":\\\"^4.17.15\\\",\\\"mac-ca\\\":\\\"^1.0.6\\\",\\\"marked\\\":\\\"^4.0.10\\\",\\\"md5-file\\\":\\\"^5.0.0\\\",\\\"mobx\\\":\\\"^6.3.7\\\",\\\"mobx-observable-history\\\":\\\"^2.0.3\\\",\\\"mobx-react\\\":\\\"^7.2.1\\\",\\\"mock-fs\\\":\\\"^5.1.2\\\",\\\"moment\\\":\\\"^2.29.1\\\",\\\"moment-timezone\\\":\\\"^0.5.34\\\",\\\"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.8\\\",\\\"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\\\":{\\\"@async-fn/jest\\\":\\\"1.5.3\\\",\\\"@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.16.1\\\",\\\"@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.13\\\",\\\"@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.5\\\",\\\"@types/jsdom\\\":\\\"^16.2.13\\\",\\\"@types/jsonpath\\\":\\\"^0.2.0\\\",\\\"@types/lodash\\\":\\\"^4.14.177\\\",\\\"@types/marked\\\":\\\"^4.0.1\\\",\\\"@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.9\\\",\\\"@types/react-virtualized-auto-sizer\\\":\\\"^1.0.1\\\",\\\"@types/react-window\\\":\\\"^1.8.5\\\",\\\"@types/readable-stream\\\":\\\"^2.3.12\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/request-promise-native\\\":\\\"^1.0.18\\\",\\\"@types/semver\\\":\\\"^7.3.9\\\",\\\"@types/sharp\\\":\\\"^0.29.4\\\",\\\"@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.5\\\",\\\"@types/uuid\\\":\\\"^8.3.3\\\",\\\"@types/webpack\\\":\\\"^4.41.32\\\",\\\"@types/webpack-dev-server\\\":\\\"^3.11.6\\\",\\\"@types/webpack-env\\\":\\\"^1.16.3\\\",\\\"@types/webpack-node-externals\\\":\\\"^1.7.1\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^5.10.1\\\",\\\"@typescript-eslint/parser\\\":\\\"^5.10.1\\\",\\\"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.4\\\",\\\"electron\\\":\\\"^14.2.4\\\",\\\"electron-builder\\\":\\\"^22.14.5\\\",\\\"electron-notarize\\\":\\\"^0.3.0\\\",\\\"esbuild\\\":\\\"^0.13.15\\\",\\\"esbuild-loader\\\":\\\"^2.16.0\\\",\\\"eslint\\\":\\\"^8.7.0\\\",\\\"eslint-plugin-header\\\":\\\"^3.1.1\\\",\\\"eslint-plugin-import\\\":\\\"^2.25.4\\\",\\\"eslint-plugin-react\\\":\\\"^7.28.0\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.3.0\\\",\\\"eslint-plugin-unused-imports\\\":\\\"^2.0.0\\\",\\\"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\\\",\\\"ignore-loader\\\":\\\"^0.1.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.15\\\",\\\"playwright\\\":\\\"^1.17.1\\\",\\\"postcss\\\":\\\"^8.4.5\\\",\\\"postcss-loader\\\":\\\"^4.3.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.45.1\\\",\\\"sass-loader\\\":\\\"^10.2.0\\\",\\\"sharp\\\":\\\"^0.29.3\\\",\\\"style-loader\\\":\\\"^2.0.0\\\",\\\"tailwindcss\\\":\\\"^3.0.7\\\",\\\"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.10\\\",\\\"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.3\\\",\\\"webpack-node-externals\\\":\\\"^1.7.2\\\",\\\"xterm\\\":\\\"^4.15.0\\\",\\\"xterm-addon-fit\\\":\\\"^0.5.0\\\"}}\");\n\n//# sourceURL=webpack:///./package.json?");
38511
+ 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.4.0-beta.3\\\",\\\"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.23.3\\\",\\\"bundledHelmVersion\\\":\\\"3.7.2\\\",\\\"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\\\"},\\\"modulePathIgnorePatterns\\\":[\\\"<rootDir>/dist\\\",\\\"<rootDir>/src/extensions/npm\\\"],\\\"setupFiles\\\":[\\\"<rootDir>/src/jest.setup.ts\\\",\\\"jest-canvas-mock\\\"],\\\"globals\\\":{\\\"ts-jest\\\":{\\\"isolatedModules\\\":true}}},\\\"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\\\"}]},\\\"rpm\\\":{\\\"fpm\\\":[\\\"--rpm-rpmbuild-define=%define _build_id_links none\\\"]},\\\"mac\\\":{\\\"hardenedRuntime\\\":true,\\\"gatekeeperAssess\\\":false,\\\"entitlements\\\":\\\"build/entitlements.mac.plist\\\",\\\"entitlementsInherit\\\":\\\"build/entitlements.mac.plist\\\",\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/darwin/${arch}/kubectl\\\",\\\"to\\\":\\\"./${arch}/kubectl\\\"},{\\\"from\\\":\\\"binaries/client/${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\\\":{\\\"@hapi/call\\\":\\\"^8.0.1\\\",\\\"@hapi/subtext\\\":\\\"^7.0.3\\\",\\\"@kubernetes/client-node\\\":\\\"^0.16.1\\\",\\\"@ogre-tools/injectable\\\":\\\"3.2.1\\\",\\\"@ogre-tools/injectable-react\\\":\\\"3.2.1\\\",\\\"@sentry/electron\\\":\\\"^2.5.4\\\",\\\"@sentry/integrations\\\":\\\"^6.15.0\\\",\\\"@types/circular-dependency-plugin\\\":\\\"5.0.4\\\",\\\"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.3\\\",\\\"grapheme-splitter\\\":\\\"^1.0.4\\\",\\\"handlebars\\\":\\\"^4.7.7\\\",\\\"http-proxy\\\":\\\"^1.18.1\\\",\\\"immer\\\":\\\"^9.0.6\\\",\\\"joi\\\":\\\"^17.5.0\\\",\\\"js-yaml\\\":\\\"^4.1.0\\\",\\\"jsdom\\\":\\\"^16.7.0\\\",\\\"jsonpath\\\":\\\"^1.1.1\\\",\\\"lodash\\\":\\\"^4.17.15\\\",\\\"mac-ca\\\":\\\"^1.0.6\\\",\\\"marked\\\":\\\"^4.0.10\\\",\\\"md5-file\\\":\\\"^5.0.0\\\",\\\"mobx\\\":\\\"^6.3.7\\\",\\\"mobx-observable-history\\\":\\\"^2.0.3\\\",\\\"mobx-react\\\":\\\"^7.2.1\\\",\\\"mock-fs\\\":\\\"^5.1.2\\\",\\\"moment\\\":\\\"^2.29.1\\\",\\\"moment-timezone\\\":\\\"^0.5.34\\\",\\\"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.8\\\",\\\"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\\\":{\\\"@async-fn/jest\\\":\\\"1.5.3\\\",\\\"@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.16.1\\\",\\\"@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.13\\\",\\\"@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.5\\\",\\\"@types/jsdom\\\":\\\"^16.2.13\\\",\\\"@types/jsonpath\\\":\\\"^0.2.0\\\",\\\"@types/lodash\\\":\\\"^4.14.177\\\",\\\"@types/marked\\\":\\\"^4.0.1\\\",\\\"@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.9\\\",\\\"@types/react-virtualized-auto-sizer\\\":\\\"^1.0.1\\\",\\\"@types/react-window\\\":\\\"^1.8.5\\\",\\\"@types/readable-stream\\\":\\\"^2.3.12\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/request-promise-native\\\":\\\"^1.0.18\\\",\\\"@types/semver\\\":\\\"^7.3.9\\\",\\\"@types/sharp\\\":\\\"^0.29.4\\\",\\\"@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.5\\\",\\\"@types/uuid\\\":\\\"^8.3.3\\\",\\\"@types/webpack\\\":\\\"^4.41.32\\\",\\\"@types/webpack-dev-server\\\":\\\"^3.11.6\\\",\\\"@types/webpack-env\\\":\\\"^1.16.3\\\",\\\"@types/webpack-node-externals\\\":\\\"^1.7.1\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^5.10.1\\\",\\\"@typescript-eslint/parser\\\":\\\"^5.10.1\\\",\\\"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.4\\\",\\\"electron\\\":\\\"^14.2.4\\\",\\\"electron-builder\\\":\\\"^22.14.5\\\",\\\"electron-notarize\\\":\\\"^0.3.0\\\",\\\"esbuild\\\":\\\"^0.13.15\\\",\\\"esbuild-loader\\\":\\\"^2.16.0\\\",\\\"eslint\\\":\\\"^8.7.0\\\",\\\"eslint-plugin-header\\\":\\\"^3.1.1\\\",\\\"eslint-plugin-import\\\":\\\"^2.25.4\\\",\\\"eslint-plugin-react\\\":\\\"^7.28.0\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.3.0\\\",\\\"eslint-plugin-unused-imports\\\":\\\"^2.0.0\\\",\\\"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\\\",\\\"ignore-loader\\\":\\\"^0.1.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.15\\\",\\\"playwright\\\":\\\"^1.17.1\\\",\\\"postcss\\\":\\\"^8.4.5\\\",\\\"postcss-loader\\\":\\\"^4.3.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.45.1\\\",\\\"sass-loader\\\":\\\"^10.2.0\\\",\\\"sharp\\\":\\\"^0.29.3\\\",\\\"style-loader\\\":\\\"^2.0.0\\\",\\\"tailwindcss\\\":\\\"^3.0.7\\\",\\\"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.10\\\",\\\"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.3\\\",\\\"webpack-node-externals\\\":\\\"^1.7.2\\\",\\\"xterm\\\":\\\"^4.15.0\\\",\\\"xterm-addon-fit\\\":\\\"^0.5.0\\\"}}\");\n\n//# sourceURL=webpack:///./package.json?");
38512
38512
 
38513
38513
  /***/ }),
38514
38514
 
@@ -38640,7 +38640,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
38640
38640
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
38641
38641
 
38642
38642
  "use strict";
38643
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CatalogCategoryRegistry\", function() { return CatalogCategoryRegistry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"catalogCategoryRegistry\", function() { return catalogCategoryRegistry; });\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 _catalog_entity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./catalog-entity */ \"./src/common/catalog/catalog-entity.ts\");\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/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\nclass CatalogCategoryRegistry {\n constructor() {\n Object.defineProperty(this, \"categories\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"].set()\n });\n Object.defineProperty(this, \"groupKinds\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new _utils__WEBPACK_IMPORTED_MODULE_1__[\"ExtendedMap\"]()\n });\n Object.defineProperty(this, \"filters\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"].set([], {\n deep: false,\n })\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n }\n add(category) {\n this.categories.add(category);\n this.groupKinds\n .getOrInsert(category.spec.group, _utils__WEBPACK_IMPORTED_MODULE_1__[\"ExtendedMap\"].new)\n .strictSet(category.spec.names.kind, category);\n return () => {\n this.categories.delete(category);\n this.groupKinds.get(category.spec.group).delete(category.spec.names.kind);\n };\n }\n get items() {\n return Array.from(this.categories);\n }\n get filteredItems() {\n return Array.from(_utils__WEBPACK_IMPORTED_MODULE_1__[\"iter\"].reduce(this.filters, _utils__WEBPACK_IMPORTED_MODULE_1__[\"iter\"].filter, this.items.values()));\n }\n getForGroupKind(group, kind) {\n var _a;\n return (_a = this.groupKinds.get(group)) === null || _a === void 0 ? void 0 : _a.get(kind);\n }\n getEntityForData(data) {\n const category = this.getCategoryForEntity(data);\n if (!category) {\n return null;\n }\n const splitApiVersion = data.apiVersion.split(\"/\");\n const version = splitApiVersion[1];\n const specVersion = category.spec.versions.find((v) => v.name === version);\n if (!specVersion) {\n return null;\n }\n return new specVersion.entityClass(data);\n }\n getCategoryForEntity(data) {\n const splitApiVersion = data.apiVersion.split(\"/\");\n const group = splitApiVersion[0];\n return this.getForGroupKind(group, data.kind);\n }\n getByName(name) {\n return this.items.find(category => { var _a; return ((_a = category.metadata) === null || _a === void 0 ? void 0 : _a.name) == name; });\n }\n /**\n * Add a new filter to the set of category filters\n * @param fn The function that should return a truthy value if that category should be displayed\n * @returns A function to remove that filter\n */\n addCatalogCategoryFilter(fn) {\n this.filters.add(fn);\n return Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"once\"])(() => void this.filters.delete(fn));\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [_catalog_entity__WEBPACK_IMPORTED_MODULE_2__[\"CatalogCategory\"]]),\n __metadata(\"design:returntype\", Function)\n], CatalogCategoryRegistry.prototype, \"add\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], CatalogCategoryRegistry.prototype, \"items\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], CatalogCategoryRegistry.prototype, \"filteredItems\", null);\nconst catalogCategoryRegistry = new CatalogCategoryRegistry();\n\n\n//# sourceURL=webpack:///./src/common/catalog/catalog-category-registry.ts?");
38643
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CatalogCategoryRegistry\", function() { return CatalogCategoryRegistry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"catalogCategoryRegistry\", function() { return catalogCategoryRegistry; });\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 lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _catalog_entity__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./catalog-entity */ \"./src/common/catalog/catalog-entity.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\nclass CatalogCategoryRegistry {\n constructor() {\n Object.defineProperty(this, \"categories\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"].set()\n });\n Object.defineProperty(this, \"groupKinds\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"filters\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"].set([], {\n deep: false,\n })\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n }\n add(category) {\n const byGroup = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"getOrInsertMap\"])(this.groupKinds, category.spec.group);\n this.categories.add(category);\n Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"strictSet\"])(byGroup, category.spec.names.kind, category);\n return () => {\n this.categories.delete(category);\n byGroup.delete(category.spec.names.kind);\n };\n }\n get items() {\n return Array.from(this.categories);\n }\n get filteredItems() {\n return Array.from(_utils__WEBPACK_IMPORTED_MODULE_1__[\"iter\"].reduce(this.filters, _utils__WEBPACK_IMPORTED_MODULE_1__[\"iter\"].filter, this.items.values()));\n }\n getForGroupKind(group, kind) {\n var _a;\n return (_a = this.groupKinds.get(group)) === null || _a === void 0 ? void 0 : _a.get(kind);\n }\n getEntityForData(data) {\n const category = this.getCategoryForEntity(data);\n if (!category) {\n return null;\n }\n const splitApiVersion = data.apiVersion.split(\"/\");\n const version = splitApiVersion[1];\n const specVersion = category.spec.versions.find((v) => v.name === version);\n if (!specVersion) {\n return null;\n }\n return new specVersion.entityClass(data);\n }\n getCategoryForEntity(data) {\n const splitApiVersion = data.apiVersion.split(\"/\");\n const group = splitApiVersion[0];\n return this.getForGroupKind(group, data.kind);\n }\n getByName(name) {\n return this.items.find(category => { var _a; return ((_a = category.metadata) === null || _a === void 0 ? void 0 : _a.name) == name; });\n }\n /**\n * Add a new filter to the set of category filters\n * @param fn The function that should return a truthy value if that category should be displayed\n * @returns A function to remove that filter\n */\n addCatalogCategoryFilter(fn) {\n this.filters.add(fn);\n return Object(lodash__WEBPACK_IMPORTED_MODULE_2__[\"once\"])(() => void this.filters.delete(fn));\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [_catalog_entity__WEBPACK_IMPORTED_MODULE_3__[\"CatalogCategory\"]]),\n __metadata(\"design:returntype\", Function)\n], CatalogCategoryRegistry.prototype, \"add\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], CatalogCategoryRegistry.prototype, \"items\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], CatalogCategoryRegistry.prototype, \"filteredItems\", null);\nconst catalogCategoryRegistry = new CatalogCategoryRegistry();\n\n\n//# sourceURL=webpack:///./src/common/catalog/catalog-category-registry.ts?");
38644
38644
 
38645
38645
  /***/ }),
38646
38646
 
@@ -39492,7 +39492,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
39492
39492
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
39493
39493
 
39494
39494
  "use strict";
39495
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forCluster\", function() { return forCluster; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forRemoteCluster\", function() { return forRemoteCluster; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ensureObjectSelfLink\", function() { return ensureObjectSelfLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeApi\", function() { return KubeApi; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! querystring */ \"querystring\");\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _api_manager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./api-manager */ \"./src/common/k8s-api/api-manager.ts\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index */ \"./src/common/k8s-api/index.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! byline */ \"./node_modules/byline/lib/byline.js\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(byline__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _kube_json_api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./kube-json-api */ \"./src/common/k8s-api/kube-json-api.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_11__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\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// Base class for building all kubernetes apis\n\n\n\n\n\n\n\n\n\n\n\n\nfunction forCluster(cluster, kubeClass, apiClass = null) {\n const url = new URL(_index__WEBPACK_IMPORTED_MODULE_5__[\"apiBase\"].config.serverAddress);\n const request = new _kube_json_api__WEBPACK_IMPORTED_MODULE_9__[\"KubeJsonApi\"]({\n serverAddress: _index__WEBPACK_IMPORTED_MODULE_5__[\"apiBase\"].config.serverAddress,\n apiBase: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"apiKubePrefix\"],\n debug: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"isDevelopment\"],\n }, {\n headers: {\n \"Host\": `${cluster.metadata.uid}.localhost:${url.port}`,\n },\n });\n if (!apiClass) {\n apiClass = KubeApi;\n }\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n}\nfunction forRemoteCluster(config, kubeClass, apiClass = null) {\n const reqInit = {};\n const agentOptions = {};\n if (config.cluster.skipTLSVerify === true) {\n agentOptions.rejectUnauthorized = false;\n }\n if (config.user.clientCertificateData) {\n agentOptions.cert = config.user.clientCertificateData;\n }\n if (config.user.clientKeyData) {\n agentOptions.key = config.user.clientKeyData;\n }\n if (config.cluster.caData) {\n agentOptions.ca = config.cluster.caData;\n }\n if (Object.keys(agentOptions).length > 0) {\n reqInit.agent = new https__WEBPACK_IMPORTED_MODULE_11__[\"Agent\"](agentOptions);\n }\n const token = config.user.token;\n const request = new _kube_json_api__WEBPACK_IMPORTED_MODULE_9__[\"KubeJsonApi\"](Object.assign({ serverAddress: config.cluster.server, apiBase: \"\", debug: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"isDevelopment\"] }, (token ? {\n getRequestOptions: async () => ({\n headers: {\n \"Authorization\": `Bearer ${Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(token) ? await token() : token}`,\n },\n }),\n } : {})), reqInit);\n if (!apiClass) {\n apiClass = KubeApi;\n }\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n}\nfunction ensureObjectSelfLink(api, object) {\n if (!object.metadata.selfLink) {\n object.metadata.selfLink = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"createKubeApiURL\"])({\n apiPrefix: api.apiPrefix,\n apiVersion: api.apiVersionWithGroup,\n resource: api.apiResource,\n namespace: api.isNamespaced ? object.metadata.namespace : undefined,\n name: object.metadata.name,\n });\n }\n}\nconst patchTypeHeaders = {\n \"merge\": \"application/merge-patch+json\",\n \"json\": \"application/json-patch+json\",\n \"strategic\": \"application/strategic-merge-patch+json\",\n};\nclass KubeApi {\n constructor(options) {\n var _a;\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: options\n });\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiPrefix\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiGroup\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersionPreferred\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiResource\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isNamespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"objectConstructor\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"resourceVersions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"watchDisposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"watchId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n const { objectConstructor, request, kind, isNamespaced } = options;\n const { apiBase, apiPrefix, apiGroup, apiVersion, resource } = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"parseKubeApi\"])(options.apiBase || objectConstructor.apiBase);\n this.options = options;\n this.kind = kind !== null && kind !== void 0 ? kind : objectConstructor.kind;\n this.isNamespaced = (_a = isNamespaced !== null && isNamespaced !== void 0 ? isNamespaced : objectConstructor.namespaced) !== null && _a !== void 0 ? _a : false;\n this.apiBase = apiBase;\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n this.apiVersion = apiVersion;\n this.apiResource = resource;\n this.request = request !== null && request !== void 0 ? request : _index__WEBPACK_IMPORTED_MODULE_5__[\"apiKube\"];\n this.objectConstructor = objectConstructor;\n this.parseResponse = this.parseResponse.bind(this);\n _api_manager__WEBPACK_IMPORTED_MODULE_4__[\"apiManager\"].registerApi(apiBase, this);\n }\n get apiVersionWithGroup() {\n var _a;\n return [this.apiGroup, (_a = this.apiVersionPreferred) !== null && _a !== void 0 ? _a : this.apiVersion]\n .filter(Boolean)\n .join(\"/\");\n }\n /**\n * Returns the latest API prefix/group that contains the required resource.\n * First tries options.apiBase, then urls in order from options.fallbackApiBases.\n */\n async getLatestApiPrefixGroup() {\n var _a;\n // Note that this.options.apiBase is the \"full\" url, whereas this.apiBase is parsed\n const apiBases = [this.options.apiBase, this.objectConstructor.apiBase, ...this.options.fallbackApiBases];\n for (const apiUrl of apiBases) {\n if (!apiUrl) {\n continue;\n }\n try {\n // Split e.g. \"/apis/extensions/v1beta1/ingresses\" to parts\n const { apiPrefix, apiGroup, apiVersionWithGroup, resource } = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"parseKubeApi\"])(apiUrl);\n // Request available resources\n const response = await this.request.get(`${apiPrefix}/${apiVersionWithGroup}`);\n // If the resource is found in the group, use this apiUrl\n if ((_a = response.resources) === null || _a === void 0 ? void 0 : _a.find(kubeResource => kubeResource.name === resource)) {\n return { apiPrefix, apiGroup };\n }\n }\n catch (error) {\n // Exception is ignored as we can try the next url\n }\n }\n throw new Error(`Can't find working API for the Kubernetes resource ${this.apiResource}`);\n }\n /**\n * Get the apiPrefix and apiGroup to be used for fetching the preferred version.\n */\n async getPreferredVersionPrefixGroup() {\n if (this.options.fallbackApiBases) {\n try {\n return await this.getLatestApiPrefixGroup();\n }\n catch (error) {\n // If valid API wasn't found, log the error and return defaults below\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[KUBE-API]: ${error}`);\n }\n }\n return {\n apiPrefix: this.apiPrefix,\n apiGroup: this.apiGroup,\n };\n }\n async checkPreferredVersion() {\n var _a, _b;\n if (this.options.fallbackApiBases && !this.options.checkPreferredVersion) {\n throw new Error(\"checkPreferredVersion must be enabled if fallbackApiBases is set in KubeApi\");\n }\n if (this.options.checkPreferredVersion && this.apiVersionPreferred === undefined) {\n const { apiPrefix, apiGroup } = await this.getPreferredVersionPrefixGroup();\n // The apiPrefix and apiGroup might change due to fallbackApiBases, so we must override them\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n const url = [apiPrefix, apiGroup].filter(Boolean).join(\"/\");\n const res = await this.request.get(url);\n this.apiVersionPreferred = (_b = (_a = res === null || res === void 0 ? void 0 : res.preferredVersion) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : null;\n if (this.apiVersionPreferred) {\n this.apiBase = this.computeApiBase();\n _api_manager__WEBPACK_IMPORTED_MODULE_4__[\"apiManager\"].registerApi(this.apiBase, this);\n }\n }\n }\n setResourceVersion(namespace = \"\", newVersion) {\n this.resourceVersions.set(namespace, newVersion);\n }\n getResourceVersion(namespace = \"\") {\n return this.resourceVersions.get(namespace);\n }\n async refreshResourceVersion(params) {\n return this.list(params, { limit: 1 });\n }\n computeApiBase() {\n return Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"createKubeApiURL\"])({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n });\n }\n getUrl({ name, namespace } = {}, query) {\n const resourcePath = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"createKubeApiURL\"])({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: this.isNamespaced ? namespace !== null && namespace !== void 0 ? namespace : \"default\" : undefined,\n name,\n });\n return resourcePath + (query ? `?${Object(querystring__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(this.normalizeQuery(query))}` : \"\");\n }\n normalizeQuery(query = {}) {\n if (query.labelSelector) {\n query.labelSelector = [query.labelSelector].flat().join(\",\");\n }\n if (query.fieldSelector) {\n query.fieldSelector = [query.fieldSelector].flat().join(\",\");\n }\n return query;\n }\n parseResponse(data, namespace) {\n if (!data)\n return null;\n const KubeObjectConstructor = this.objectConstructor;\n // process items list response, check before single item since there is overlap\n if (_kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeObject\"].isJsonApiDataList(data, _kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeObject\"].isPartialJsonApiData)) {\n const { apiVersion, items, metadata } = data;\n this.setResourceVersion(namespace, metadata.resourceVersion);\n this.setResourceVersion(\"\", metadata.resourceVersion);\n return items.map((item) => {\n const object = new KubeObjectConstructor(Object.assign({ kind: this.kind, apiVersion }, item));\n ensureObjectSelfLink(this, object);\n return object;\n });\n }\n // process a single item\n if (_kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeObject\"].isJsonApiData(data)) {\n const object = new KubeObjectConstructor(data);\n ensureObjectSelfLink(this, object);\n return object;\n }\n // custom apis might return array for list response, e.g. users, groups, etc.\n if (Array.isArray(data)) {\n return data.map(data => new KubeObjectConstructor(data));\n }\n return null;\n }\n async list({ namespace = \"\", reqInit } = {}, query) {\n await this.checkPreferredVersion();\n const url = this.getUrl({ namespace });\n const res = await this.request.get(url, { query }, reqInit);\n const parsed = this.parseResponse(res, namespace);\n if (Array.isArray(parsed)) {\n return parsed;\n }\n if (!parsed) {\n return null;\n }\n throw new Error(`GET multiple request to ${url} returned not an array: ${JSON.stringify(parsed)}`);\n }\n async get(desc, query) {\n await this.checkPreferredVersion();\n const url = this.getUrl(desc);\n const res = await this.request.get(url, { query });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`GET single request to ${url} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async create({ name, namespace }, data) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl({ namespace });\n const res = await this.request.post(apiUrl, {\n data: Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(data, {\n kind: this.kind,\n apiVersion: this.apiVersionWithGroup,\n metadata: {\n name,\n namespace,\n },\n }),\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`POST request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async update({ name, namespace }, data) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl({ namespace, name });\n const res = await this.request.put(apiUrl, {\n data: Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(data, {\n metadata: {\n name,\n namespace,\n },\n }),\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PUT request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async patch(desc, data, strategy = \"strategic\") {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl(desc);\n const res = await this.request.patch(apiUrl, { data }, {\n headers: {\n \"content-type\": patchTypeHeaders[strategy],\n },\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PATCH request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async delete(_a) {\n var { propagationPolicy = \"Background\" } = _a, desc = __rest(_a, [\"propagationPolicy\"]);\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl(desc);\n return this.request.del(apiUrl, {\n query: {\n propagationPolicy,\n },\n });\n }\n getWatchUrl(namespace = \"\", query = {}) {\n return this.getUrl({ namespace }, Object.assign({ watch: 1, resourceVersion: this.getResourceVersion(namespace) }, query));\n }\n watch(opts = { namespace: \"\", retry: false }) {\n let errorReceived = false;\n let timedRetry;\n const { namespace, callback = _utils__WEBPACK_IMPORTED_MODULE_10__[\"noop\"], retry, timeout } = opts;\n const { watchId = `${this.kind.toLowerCase()}-${this.watchId++}` } = opts;\n // Create AbortController for this request\n const abortController = new _utils__WEBPACK_IMPORTED_MODULE_10__[\"WrappedAbortController\"](opts.abortController);\n abortController.signal.addEventListener(\"abort\", () => {\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] watch (${watchId}) aborted ${watchUrl}`);\n clearTimeout(timedRetry);\n });\n const requestParams = timeout ? { query: { timeoutSeconds: timeout } } : {};\n const watchUrl = this.getWatchUrl(namespace);\n const responsePromise = this.request.getResponse(watchUrl, requestParams, {\n signal: abortController.signal,\n timeout: 600000,\n });\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${retry === true ? \"retried\" : \"started\"} ${watchUrl}`);\n responsePromise\n .then(response => {\n // True if the current watch request was retried\n let requestRetried = false;\n if (!response.ok) {\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].warn(`[KUBE-API] watch (${watchId}) error response ${watchUrl}`, { status: response.status });\n return callback(null, response);\n }\n // Add mechanism to retry in case timeoutSeconds is set but the watch wasn't timed out.\n // This can happen if e.g. network is offline and AWS NLB is used.\n if (timeout) {\n setTimeout(() => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n // Close current request\n abortController.abort();\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] Watch timeout set, but not retried, retrying now`);\n requestRetried = true;\n // Clearing out any possible timeout, although we don't expect this to be set\n clearTimeout(timedRetry);\n this.watch(Object.assign(Object.assign({}, opts), { namespace, callback, watchId, retry: true }));\n // We wait longer than the timeout, as we expect the request to be retried with timeoutSeconds\n }, timeout * 1000 * 1.1);\n }\n [\"end\", \"close\", \"error\"].forEach((eventName) => {\n response.body.on(eventName, () => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n // kubernetes errors (=errorReceived set) should be handled in a callback\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${eventName} ${watchUrl}`);\n requestRetried = true;\n clearTimeout(timedRetry);\n timedRetry = setTimeout(() => {\n this.watch(Object.assign(Object.assign({}, opts), { namespace, callback, watchId, retry: true }));\n }, 1000);\n });\n });\n byline__WEBPACK_IMPORTED_MODULE_8___default()(response.body).on(\"data\", (line) => {\n try {\n const event = JSON.parse(line);\n if (event.type === \"ERROR\" && event.object.kind === \"Status\") {\n errorReceived = true;\n return callback(null, new _kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeStatus\"](event.object));\n }\n this.modifyWatchEvent(event);\n callback(event, null);\n }\n catch (ignore) {\n // ignore parse errors\n }\n });\n })\n .catch(error => {\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[KUBE-API] watch (${watchId}) throwed ${watchUrl}`, error);\n callback(null, error);\n });\n return abortController.abort;\n }\n modifyWatchEvent(event) {\n if (event.type === \"ERROR\") {\n return;\n }\n ensureObjectSelfLink(this, event.object);\n const { namespace, resourceVersion } = event.object.metadata;\n this.setResourceVersion(namespace, resourceVersion);\n this.setResourceVersion(\"\", resourceVersion);\n }\n}\n\n\n//# sourceURL=webpack:///./src/common/k8s-api/kube-api.ts?");
39495
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forCluster\", function() { return forCluster; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forRemoteCluster\", function() { return forRemoteCluster; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ensureObjectSelfLink\", function() { return ensureObjectSelfLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KubeApi\", function() { return KubeApi; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! querystring */ \"querystring\");\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _api_manager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./api-manager */ \"./src/common/k8s-api/api-manager.ts\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index */ \"./src/common/k8s-api/index.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! byline */ \"./node_modules/byline/lib/byline.js\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(byline__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _kube_json_api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./kube-json-api */ \"./src/common/k8s-api/kube-json-api.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_11__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\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// Base class for building all kubernetes apis\n\n\n\n\n\n\n\n\n\n\n\n\nfunction forCluster(cluster, kubeClass, apiClass = null) {\n const url = new URL(_index__WEBPACK_IMPORTED_MODULE_5__[\"apiBase\"].config.serverAddress);\n const request = new _kube_json_api__WEBPACK_IMPORTED_MODULE_9__[\"KubeJsonApi\"]({\n serverAddress: _index__WEBPACK_IMPORTED_MODULE_5__[\"apiBase\"].config.serverAddress,\n apiBase: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"apiKubePrefix\"],\n debug: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"isDevelopment\"],\n }, {\n headers: {\n \"Host\": `${cluster.metadata.uid}.localhost:${url.port}`,\n },\n });\n if (!apiClass) {\n apiClass = KubeApi;\n }\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n}\nfunction forRemoteCluster(config, kubeClass, apiClass = null) {\n const reqInit = {};\n const agentOptions = {};\n if (config.cluster.skipTLSVerify === true) {\n agentOptions.rejectUnauthorized = false;\n }\n if (config.user.clientCertificateData) {\n agentOptions.cert = config.user.clientCertificateData;\n }\n if (config.user.clientKeyData) {\n agentOptions.key = config.user.clientKeyData;\n }\n if (config.cluster.caData) {\n agentOptions.ca = config.cluster.caData;\n }\n if (Object.keys(agentOptions).length > 0) {\n reqInit.agent = new https__WEBPACK_IMPORTED_MODULE_11__[\"Agent\"](agentOptions);\n }\n const token = config.user.token;\n const request = new _kube_json_api__WEBPACK_IMPORTED_MODULE_9__[\"KubeJsonApi\"](Object.assign({ serverAddress: config.cluster.server, apiBase: \"\", debug: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"isDevelopment\"] }, (token ? {\n getRequestOptions: async () => ({\n headers: {\n \"Authorization\": `Bearer ${Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(token) ? await token() : token}`,\n },\n }),\n } : {})), reqInit);\n if (!apiClass) {\n apiClass = KubeApi;\n }\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n}\nfunction ensureObjectSelfLink(api, object) {\n if (!object.metadata.selfLink) {\n object.metadata.selfLink = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"createKubeApiURL\"])({\n apiPrefix: api.apiPrefix,\n apiVersion: api.apiVersionWithGroup,\n resource: api.apiResource,\n namespace: api.isNamespaced ? object.metadata.namespace : undefined,\n name: object.metadata.name,\n });\n }\n}\nconst patchTypeHeaders = {\n \"merge\": \"application/merge-patch+json\",\n \"json\": \"application/json-patch+json\",\n \"strategic\": \"application/strategic-merge-patch+json\",\n};\nclass KubeApi {\n constructor(options) {\n var _a;\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: options\n });\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiPrefix\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiGroup\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersionPreferred\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiResource\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isNamespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"objectConstructor\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"resourceVersions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"watchDisposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"watchId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n const { objectConstructor, request, kind, isNamespaced } = options;\n const { apiBase, apiPrefix, apiGroup, apiVersion, resource } = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"parseKubeApi\"])(options.apiBase || objectConstructor.apiBase);\n this.options = options;\n this.kind = kind !== null && kind !== void 0 ? kind : objectConstructor.kind;\n this.isNamespaced = (_a = isNamespaced !== null && isNamespaced !== void 0 ? isNamespaced : objectConstructor.namespaced) !== null && _a !== void 0 ? _a : false;\n this.apiBase = apiBase;\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n this.apiVersion = apiVersion;\n this.apiResource = resource;\n this.request = request !== null && request !== void 0 ? request : _index__WEBPACK_IMPORTED_MODULE_5__[\"apiKube\"];\n this.objectConstructor = objectConstructor;\n this.parseResponse = this.parseResponse.bind(this);\n _api_manager__WEBPACK_IMPORTED_MODULE_4__[\"apiManager\"].registerApi(apiBase, this);\n }\n get apiVersionWithGroup() {\n var _a;\n return [this.apiGroup, (_a = this.apiVersionPreferred) !== null && _a !== void 0 ? _a : this.apiVersion]\n .filter(Boolean)\n .join(\"/\");\n }\n /**\n * Returns the latest API prefix/group that contains the required resource.\n * First tries options.apiBase, then urls in order from options.fallbackApiBases.\n */\n async getLatestApiPrefixGroup() {\n var _a;\n // Note that this.options.apiBase is the \"full\" url, whereas this.apiBase is parsed\n const apiBases = [this.options.apiBase, this.objectConstructor.apiBase, ...this.options.fallbackApiBases];\n for (const apiUrl of apiBases) {\n if (!apiUrl) {\n continue;\n }\n try {\n // Split e.g. \"/apis/extensions/v1beta1/ingresses\" to parts\n const { apiPrefix, apiGroup, apiVersionWithGroup, resource } = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"parseKubeApi\"])(apiUrl);\n // Request available resources\n const response = await this.request.get(`${apiPrefix}/${apiVersionWithGroup}`);\n // If the resource is found in the group, use this apiUrl\n if ((_a = response.resources) === null || _a === void 0 ? void 0 : _a.find(kubeResource => kubeResource.name === resource)) {\n return { apiPrefix, apiGroup };\n }\n }\n catch (error) {\n // Exception is ignored as we can try the next url\n }\n }\n throw new Error(`Can't find working API for the Kubernetes resource ${this.apiResource}`);\n }\n /**\n * Get the apiPrefix and apiGroup to be used for fetching the preferred version.\n */\n async getPreferredVersionPrefixGroup() {\n if (this.options.fallbackApiBases) {\n try {\n return await this.getLatestApiPrefixGroup();\n }\n catch (error) {\n // If valid API wasn't found, log the error and return defaults below\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[KUBE-API]: ${error}`);\n }\n }\n return {\n apiPrefix: this.apiPrefix,\n apiGroup: this.apiGroup,\n };\n }\n async checkPreferredVersion() {\n var _a, _b;\n if (this.options.fallbackApiBases && !this.options.checkPreferredVersion) {\n throw new Error(\"checkPreferredVersion must be enabled if fallbackApiBases is set in KubeApi\");\n }\n if (this.options.checkPreferredVersion && this.apiVersionPreferred === undefined) {\n const { apiPrefix, apiGroup } = await this.getPreferredVersionPrefixGroup();\n // The apiPrefix and apiGroup might change due to fallbackApiBases, so we must override them\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n const url = [apiPrefix, apiGroup].filter(Boolean).join(\"/\");\n const res = await this.request.get(url);\n this.apiVersionPreferred = (_b = (_a = res === null || res === void 0 ? void 0 : res.preferredVersion) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : null;\n if (this.apiVersionPreferred) {\n this.apiBase = this.computeApiBase();\n _api_manager__WEBPACK_IMPORTED_MODULE_4__[\"apiManager\"].registerApi(this.apiBase, this);\n }\n }\n }\n setResourceVersion(namespace = \"\", newVersion) {\n this.resourceVersions.set(namespace, newVersion);\n }\n getResourceVersion(namespace = \"\") {\n return this.resourceVersions.get(namespace);\n }\n async refreshResourceVersion(params) {\n return this.list(params, { limit: 1 });\n }\n computeApiBase() {\n return Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"createKubeApiURL\"])({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n });\n }\n getUrl({ name, namespace } = {}, query) {\n const resourcePath = Object(_kube_api_parse__WEBPACK_IMPORTED_MODULE_6__[\"createKubeApiURL\"])({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: this.isNamespaced ? namespace !== null && namespace !== void 0 ? namespace : \"default\" : undefined,\n name,\n });\n return resourcePath + (query ? `?${Object(querystring__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(this.normalizeQuery(query))}` : \"\");\n }\n normalizeQuery(query = {}) {\n if (query.labelSelector) {\n query.labelSelector = [query.labelSelector].flat().join(\",\");\n }\n if (query.fieldSelector) {\n query.fieldSelector = [query.fieldSelector].flat().join(\",\");\n }\n return query;\n }\n parseResponse(data, namespace) {\n if (!data)\n return null;\n const KubeObjectConstructor = this.objectConstructor;\n // process items list response, check before single item since there is overlap\n if (_kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeObject\"].isJsonApiDataList(data, _kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeObject\"].isPartialJsonApiData)) {\n const { apiVersion, items, metadata } = data;\n this.setResourceVersion(namespace, metadata.resourceVersion);\n this.setResourceVersion(\"\", metadata.resourceVersion);\n return items.map((item) => {\n const object = new KubeObjectConstructor(Object.assign({ kind: this.kind, apiVersion }, item));\n ensureObjectSelfLink(this, object);\n return object;\n });\n }\n // process a single item\n if (_kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeObject\"].isJsonApiData(data)) {\n const object = new KubeObjectConstructor(data);\n ensureObjectSelfLink(this, object);\n return object;\n }\n // custom apis might return array for list response, e.g. users, groups, etc.\n if (Array.isArray(data)) {\n return data.map(data => new KubeObjectConstructor(data));\n }\n return null;\n }\n async list({ namespace = \"\", reqInit } = {}, query) {\n await this.checkPreferredVersion();\n const url = this.getUrl({ namespace });\n const res = await this.request.get(url, { query }, reqInit);\n const parsed = this.parseResponse(res, namespace);\n if (Array.isArray(parsed)) {\n return parsed;\n }\n if (!parsed) {\n return null;\n }\n throw new Error(`GET multiple request to ${url} returned not an array: ${JSON.stringify(parsed)}`);\n }\n async get(desc, query) {\n await this.checkPreferredVersion();\n const url = this.getUrl(desc);\n const res = await this.request.get(url, { query });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`GET single request to ${url} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async create({ name, namespace }, data) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl({ namespace });\n const res = await this.request.post(apiUrl, {\n data: Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(data, {\n kind: this.kind,\n apiVersion: this.apiVersionWithGroup,\n metadata: {\n name,\n namespace,\n },\n }),\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`POST request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async update({ name, namespace }, data) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl({ namespace, name });\n const res = await this.request.put(apiUrl, {\n data: Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(data, {\n metadata: {\n name,\n namespace,\n },\n }),\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PUT request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async patch(desc, data, strategy = \"strategic\") {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl(desc);\n const res = await this.request.patch(apiUrl, { data }, {\n headers: {\n \"content-type\": patchTypeHeaders[strategy],\n },\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PATCH request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async delete(_a) {\n var { propagationPolicy = \"Background\" } = _a, desc = __rest(_a, [\"propagationPolicy\"]);\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl(desc);\n return this.request.del(apiUrl, {\n query: {\n propagationPolicy,\n },\n });\n }\n getWatchUrl(namespace = \"\", query = {}) {\n return this.getUrl({ namespace }, Object.assign({ watch: 1, resourceVersion: this.getResourceVersion(namespace) }, query));\n }\n watch(opts = { namespace: \"\", retry: false }) {\n let errorReceived = false;\n let timedRetry;\n const { namespace, callback = _utils__WEBPACK_IMPORTED_MODULE_10__[\"noop\"], retry, timeout } = opts;\n const { watchId = `${this.kind.toLowerCase()}-${this.watchId++}` } = opts;\n // Create AbortController for this request\n const abortController = new _utils__WEBPACK_IMPORTED_MODULE_10__[\"WrappedAbortController\"](opts.abortController);\n abortController.signal.addEventListener(\"abort\", () => {\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] watch (${watchId}) aborted ${watchUrl}`);\n clearTimeout(timedRetry);\n });\n const requestParams = timeout ? { query: { timeoutSeconds: timeout } } : {};\n const watchUrl = this.getWatchUrl(namespace);\n const responsePromise = this.request.getResponse(watchUrl, requestParams, {\n signal: abortController.signal,\n timeout: 600000,\n });\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${retry === true ? \"retried\" : \"started\"} ${watchUrl}`);\n responsePromise\n .then(response => {\n // True if the current watch request was retried\n let requestRetried = false;\n if (!response.ok) {\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].warn(`[KUBE-API] watch (${watchId}) error response ${watchUrl}`, { status: response.status });\n return callback(null, response);\n }\n // Add mechanism to retry in case timeoutSeconds is set but the watch wasn't timed out.\n // This can happen if e.g. network is offline and AWS NLB is used.\n if (timeout) {\n setTimeout(() => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n // Close current request\n abortController.abort();\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] Watch timeout set, but not retried, retrying now`);\n requestRetried = true;\n // Clearing out any possible timeout, although we don't expect this to be set\n clearTimeout(timedRetry);\n this.watch(Object.assign(Object.assign({}, opts), { namespace, callback, watchId, retry: true }));\n // We wait longer than the timeout, as we expect the request to be retried with timeoutSeconds\n }, timeout * 1000 * 1.1);\n }\n [\"end\", \"close\", \"error\"].forEach((eventName) => {\n response.body.on(eventName, () => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n // kubernetes errors (=errorReceived set) should be handled in a callback\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${eventName} ${watchUrl}`);\n requestRetried = true;\n clearTimeout(timedRetry);\n timedRetry = setTimeout(() => {\n this.watch(Object.assign(Object.assign({}, opts), { namespace, callback, watchId, retry: true }));\n }, 1000);\n });\n });\n byline__WEBPACK_IMPORTED_MODULE_8___default()(response.body).on(\"data\", (line) => {\n try {\n const event = JSON.parse(line);\n if (event.type === \"ERROR\" && event.object.kind === \"Status\") {\n errorReceived = true;\n return callback(null, new _kube_object__WEBPACK_IMPORTED_MODULE_7__[\"KubeStatus\"](event.object));\n }\n this.modifyWatchEvent(event);\n callback(event, null);\n }\n catch (ignore) {\n // ignore parse errors\n }\n });\n })\n .catch(error => {\n _main_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[KUBE-API] watch (${watchId}) throwed ${watchUrl}`, error);\n callback(null, error);\n });\n return () => {\n abortController.abort();\n };\n }\n modifyWatchEvent(event) {\n if (event.type === \"ERROR\") {\n return;\n }\n ensureObjectSelfLink(this, event.object);\n const { namespace, resourceVersion } = event.object.metadata;\n this.setResourceVersion(namespace, resourceVersion);\n this.setResourceVersion(\"\", resourceVersion);\n }\n}\n\n\n//# sourceURL=webpack:///./src/common/k8s-api/kube-api.ts?");
39496
39496
 
39497
39497
  /***/ }),
39498
39498
 
@@ -40044,7 +40044,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40044
40044
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40045
40045
 
40046
40046
  "use strict";
40047
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserStore\", function() { return UserStore; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semver__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 _base_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base-store */ \"./src/common/base-store.ts\");\n/* harmony import */ var _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../migrations/user-store */ \"./src/migrations/user-store/index.ts\");\n/* harmony import */ var _utils_app_version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _kube_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./preferences-helpers */ \"./src/common/user-store/preferences-helpers.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nclass UserStore extends _base_store__WEBPACK_IMPORTED_MODULE_3__[\"BaseStore\"] /* implements UserStoreFlatModel (when strict null is enabled) */ {\n constructor() {\n super({\n configName: \"lens-user-store\",\n migrations: _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n });\n Object.defineProperty(this, \"displayName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"UserStore\"\n });\n Object.defineProperty(this, \"lastSeenAppVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"0.0.0\"\n });\n /**\n * used in add-cluster page for providing context\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: _kube_helpers__WEBPACK_IMPORTED_MODULE_6__[\"kubeConfigDefaultPath\"]\n });\n Object.defineProperty(this, \"seenContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"newContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"allowTelemetry\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowErrorReporting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowUntrustedCAs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"colorTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"localeTimezone\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadMirror\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"httpsProxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shell\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubectlBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalCopyOnSelect\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalConfig\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"updateChannel\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"extensionRegistryUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Download kubectl binaries matching cluster version\n */\n Object.defineProperty(this, \"downloadKubectlBinaries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"openAtLogin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The column IDs under each configurable table ID that have been configured\n * to not be shown\n */\n Object.defineProperty(this, \"hiddenTableColumns\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n /**\n * Monaco editor configs\n */\n Object.defineProperty(this, \"editorConfiguration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The set of file/folder paths to be synced\n */\n Object.defineProperty(this, \"syncKubeconfigEntries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcMain\"]) {\n Object(_migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"fileNameMigration\"])();\n }\n this.load();\n }\n get isNewVersion() {\n return semver__WEBPACK_IMPORTED_MODULE_1___default.a.gt(Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])(), this.lastSeenAppVersion);\n }\n get resolvedShell() {\n return this.shell || process.env.SHELL || process.env.PTYSHELL;\n }\n get isAllowedToDowngrade() {\n return new semver__WEBPACK_IMPORTED_MODULE_1__[\"SemVer\"](Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])()).prerelease[0] !== this.updateChannel;\n }\n startMainReactions() {\n // track telemetry availability\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.allowTelemetry, allowed => {\n _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"telemetry\", action: allowed ? \"enabled\" : \"disabled\" });\n });\n // open at system start-up\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.openAtLogin, openAtLogin => {\n electron__WEBPACK_IMPORTED_MODULE_0__[\"app\"].setLoginItemSettings({\n openAtLogin,\n openAsHidden: true,\n args: [\"--hidden\"],\n });\n }, {\n fireImmediately: true,\n });\n }\n /**\n * Checks if a column (by ID) for a table (by ID) is configured to be hidden\n * @param tableId The ID of the table to be checked against\n * @param columnIds The list of IDs the check if one is hidden\n * @returns true if at least one column under the table is set to hidden\n */\n isTableColumnHidden(tableId, ...columnIds) {\n if (columnIds.length === 0) {\n return false;\n }\n const config = this.hiddenTableColumns.get(tableId);\n if (!config) {\n return false;\n }\n return columnIds.some(columnId => config.has(columnId));\n }\n /**\n * Toggles the hidden configuration of a table's column\n */\n toggleTableColumnVisibility(tableId, columnId) {\n Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"toggle\"])(Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"getOrInsertSet\"])(this.hiddenTableColumns, tableId), columnId);\n }\n resetTheme() {\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].colorTheme.fromStore(undefined);\n }\n saveLastSeenAppVersion() {\n _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"app\", action: \"whats-new-seen\" });\n this.lastSeenAppVersion = Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])();\n }\n setLocaleTimezone(tz) {\n this.localeTimezone = tz;\n }\n fromStore({ lastSeenAppVersion, preferences } = {}) {\n _main_logger__WEBPACK_IMPORTED_MODULE_10__[\"default\"].debug(\"UserStore.fromStore()\", { lastSeenAppVersion, preferences });\n if (lastSeenAppVersion) {\n this.lastSeenAppVersion = lastSeenAppVersion;\n }\n this.httpsProxy = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].httpsProxy.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.httpsProxy);\n this.shell = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].shell.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.shell);\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].colorTheme.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.colorTheme);\n this.terminalTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].terminalTheme.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.terminalTheme);\n this.localeTimezone = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].localeTimezone.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.localeTimezone);\n this.allowUntrustedCAs = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].allowUntrustedCAs.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowUntrustedCAs);\n this.allowTelemetry = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].allowTelemetry.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowTelemetry);\n this.allowErrorReporting = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].allowErrorReporting.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowErrorReporting);\n this.downloadMirror = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].downloadMirror.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadMirror);\n this.downloadKubectlBinaries = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].downloadKubectlBinaries.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadKubectlBinaries);\n this.downloadBinariesPath = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].downloadBinariesPath.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadBinariesPath);\n this.kubectlBinariesPath = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].kubectlBinariesPath.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.kubectlBinariesPath);\n this.openAtLogin = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].openAtLogin.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.openAtLogin);\n this.hiddenTableColumns.replace(_preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].hiddenTableColumns.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.hiddenTableColumns));\n this.syncKubeconfigEntries.replace(_preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].syncKubeconfigEntries.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.syncKubeconfigEntries));\n this.editorConfiguration = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].editorConfiguration.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.editorConfiguration);\n this.terminalCopyOnSelect = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].terminalCopyOnSelect.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.terminalCopyOnSelect);\n this.terminalConfig = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].terminalConfig.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.terminalConfig);\n this.updateChannel = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].updateChannel.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.updateChannel);\n this.extensionRegistryUrl = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].extensionRegistryUrl.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.extensionRegistryUrl);\n }\n toJSON() {\n const model = {\n lastSeenAppVersion: this.lastSeenAppVersion,\n preferences: {\n httpsProxy: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].httpsProxy.toStore(this.httpsProxy),\n shell: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].shell.toStore(this.shell),\n colorTheme: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].colorTheme.toStore(this.colorTheme),\n terminalTheme: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].terminalTheme.toStore(this.terminalTheme),\n localeTimezone: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].localeTimezone.toStore(this.localeTimezone),\n allowUntrustedCAs: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].allowUntrustedCAs.toStore(this.allowUntrustedCAs),\n allowTelemetry: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].allowTelemetry.toStore(this.allowTelemetry),\n allowErrorReporting: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].allowErrorReporting.toStore(this.allowErrorReporting),\n downloadMirror: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].downloadMirror.toStore(this.downloadMirror),\n downloadKubectlBinaries: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].downloadKubectlBinaries.toStore(this.downloadKubectlBinaries),\n downloadBinariesPath: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].downloadBinariesPath.toStore(this.downloadBinariesPath),\n kubectlBinariesPath: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].kubectlBinariesPath.toStore(this.kubectlBinariesPath),\n openAtLogin: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].openAtLogin.toStore(this.openAtLogin),\n hiddenTableColumns: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].hiddenTableColumns.toStore(this.hiddenTableColumns),\n syncKubeconfigEntries: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].syncKubeconfigEntries.toStore(this.syncKubeconfigEntries),\n editorConfiguration: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].editorConfiguration.toStore(this.editorConfiguration),\n terminalCopyOnSelect: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].terminalCopyOnSelect.toStore(this.terminalCopyOnSelect),\n terminalConfig: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].terminalConfig.toStore(this.terminalConfig),\n updateChannel: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].updateChannel.toStore(this.updateChannel),\n extensionRegistryUrl: _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].extensionRegistryUrl.toStore(this.extensionRegistryUrl),\n },\n };\n return Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"toJS\"])(model);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"lastSeenAppVersion\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"seenContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"newContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowTelemetry\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowErrorReporting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowUntrustedCAs\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"colorTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"terminalTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"localeTimezone\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadMirror\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"httpsProxy\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"shell\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"kubectlBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"terminalCopyOnSelect\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalConfig\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"updateChannel\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"extensionRegistryUrl\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"downloadKubectlBinaries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"openAtLogin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"editorConfiguration\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isNewVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"resolvedShell\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isAllowedToDowngrade\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"resetTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"saveLastSeenAppVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"setLocaleTimezone\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"fromStore\", null);\n\n\n//# sourceURL=webpack:///./src/common/user-store/user-store.ts?");
40047
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserStore\", function() { return UserStore; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semver__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 _base_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base-store */ \"./src/common/base-store.ts\");\n/* harmony import */ var _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../migrations/user-store */ \"./src/migrations/user-store/index.ts\");\n/* harmony import */ var _utils_app_version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _kube_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./preferences-helpers */ \"./src/common/user-store/preferences-helpers.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nclass UserStore extends _base_store__WEBPACK_IMPORTED_MODULE_3__[\"BaseStore\"] /* implements UserStoreFlatModel (when strict null is enabled) */ {\n constructor() {\n super({\n configName: \"lens-user-store\",\n migrations: _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n });\n Object.defineProperty(this, \"displayName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"UserStore\"\n });\n Object.defineProperty(this, \"lastSeenAppVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"0.0.0\"\n });\n /**\n * used in add-cluster page for providing context\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: _kube_helpers__WEBPACK_IMPORTED_MODULE_6__[\"kubeConfigDefaultPath\"]\n });\n Object.defineProperty(this, \"seenContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"newContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"allowTelemetry\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowErrorReporting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowUntrustedCAs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"colorTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"localeTimezone\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadMirror\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"httpsProxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shell\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubectlBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalCopyOnSelect\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalConfig\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"updateChannel\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"extensionRegistryUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Download kubectl binaries matching cluster version\n */\n Object.defineProperty(this, \"downloadKubectlBinaries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"openAtLogin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The column IDs under each configurable table ID that have been configured\n * to not be shown\n */\n Object.defineProperty(this, \"hiddenTableColumns\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n /**\n * Monaco editor configs\n */\n Object.defineProperty(this, \"editorConfiguration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The set of file/folder paths to be synced\n */\n Object.defineProperty(this, \"syncKubeconfigEntries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcMain\"]) {\n Object(_migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"fileNameMigration\"])();\n }\n this.load();\n }\n get isNewVersion() {\n return semver__WEBPACK_IMPORTED_MODULE_1___default.a.gt(Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])(), this.lastSeenAppVersion);\n }\n get resolvedShell() {\n return this.shell || process.env.SHELL || process.env.PTYSHELL;\n }\n get isAllowedToDowngrade() {\n return new semver__WEBPACK_IMPORTED_MODULE_1__[\"SemVer\"](Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])()).prerelease[0] !== this.updateChannel;\n }\n startMainReactions() {\n // track telemetry availability\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.allowTelemetry, allowed => {\n _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"telemetry\", action: allowed ? \"enabled\" : \"disabled\" });\n });\n // open at system start-up\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.openAtLogin, openAtLogin => {\n electron__WEBPACK_IMPORTED_MODULE_0__[\"app\"].setLoginItemSettings({\n openAtLogin,\n openAsHidden: true,\n args: [\"--hidden\"],\n });\n }, {\n fireImmediately: true,\n });\n }\n /**\n * Checks if a column (by ID) for a table (by ID) is configured to be hidden\n * @param tableId The ID of the table to be checked against\n * @param columnIds The list of IDs the check if one is hidden\n * @returns true if at least one column under the table is set to hidden\n */\n isTableColumnHidden(tableId, ...columnIds) {\n if (columnIds.length === 0) {\n return false;\n }\n const config = this.hiddenTableColumns.get(tableId);\n if (!config) {\n return false;\n }\n return columnIds.some(columnId => config.has(columnId));\n }\n /**\n * Toggles the hidden configuration of a table's column\n */\n toggleTableColumnVisibility(tableId, columnId) {\n Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"toggle\"])(Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"getOrInsertSet\"])(this.hiddenTableColumns, tableId), columnId);\n }\n resetTheme() {\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"].colorTheme.fromStore(undefined);\n }\n saveLastSeenAppVersion() {\n _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"app\", action: \"whats-new-seen\" });\n this.lastSeenAppVersion = Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])();\n }\n setLocaleTimezone(tz) {\n this.localeTimezone = tz;\n }\n fromStore({ lastSeenAppVersion, preferences } = {}) {\n var _a;\n _main_logger__WEBPACK_IMPORTED_MODULE_10__[\"default\"].debug(\"UserStore.fromStore()\", { lastSeenAppVersion, preferences });\n if (lastSeenAppVersion) {\n this.lastSeenAppVersion = lastSeenAppVersion;\n }\n for (const [key, { fromStore }] of Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"entries\"])(_preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"])) {\n const curVal = this[key];\n const newVal = fromStore((_a = (preferences)) === null || _a === void 0 ? void 0 : _a[key]);\n if (Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"isObservableArray\"])(curVal)\n || Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"isObservableSet\"])(curVal)\n || Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"isObservableMap\"])(curVal)) {\n curVal.replace(newVal);\n }\n else {\n this[key] = newVal;\n }\n }\n }\n toJSON() {\n const preferences = Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"fromEntries\"])(Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"entries\"])(_preferences_helpers__WEBPACK_IMPORTED_MODULE_9__[\"DESCRIPTORS\"])\n .map(([key, { toStore }]) => [key, toStore(this[key])]));\n return Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_8__[\"toJS\"])({\n lastSeenAppVersion: this.lastSeenAppVersion,\n preferences,\n });\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"lastSeenAppVersion\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"seenContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"newContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowTelemetry\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowErrorReporting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowUntrustedCAs\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"colorTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"terminalTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"localeTimezone\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadMirror\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"httpsProxy\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"shell\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"kubectlBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"terminalCopyOnSelect\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalConfig\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"updateChannel\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"extensionRegistryUrl\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"downloadKubectlBinaries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"openAtLogin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"editorConfiguration\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isNewVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"resolvedShell\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isAllowedToDowngrade\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"resetTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"saveLastSeenAppVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"setLocaleTimezone\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"fromStore\", null);\n\n\n//# sourceURL=webpack:///./src/common/user-store/user-store.ts?");
40048
40048
 
40049
40049
  /***/ }),
40050
40050
 
@@ -40160,11 +40160,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40160
40160
  /*!**************************************************!*\
40161
40161
  !*** ./src/common/utils/collection-functions.ts ***!
40162
40162
  \**************************************************/
40163
- /*! exports provided: getOrInsert, getOrInsertMap, getOrInsertSet, getOrInsertWith, toggle */
40163
+ /*! exports provided: getOrInsert, getOrInsertMap, getOrInsertSet, getOrInsertWith, strictSet, strictGet, toggle */
40164
40164
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40165
40165
 
40166
40166
  "use strict";
40167
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsert\", function() { return getOrInsert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertMap\", function() { return getOrInsertMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertSet\", function() { return getOrInsertSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertWith\", function() { return getOrInsertWith; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toggle\", function() { return toggle; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n/**\n * Get the value behind `key`. If it was not present, first insert `value`\n * @param map The map to interact with\n * @param key The key to insert into the map with\n * @param value The value to optional add to the map\n * @returns The value in the map\n */\nfunction getOrInsert(map, key, value) {\n if (!map.has(key)) {\n map.set(key, value);\n }\n return map.get(key);\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Map<any, any>` so that\n * the typings are inferred.\n */\nfunction getOrInsertMap(map, key) {\n return getOrInsert(map, key, new Map());\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Set<any>` so that\n * the typings are inferred.\n */\nfunction getOrInsertSet(map, key) {\n return getOrInsert(map, key, new Set());\n}\n/**\n * Like `getOrInsert` but with delayed creation of the item\n */\nfunction getOrInsertWith(map, key, value) {\n if (!map.has(key)) {\n map.set(key, value());\n }\n return map.get(key);\n}\n/**\n * If `key` is in `set`, remove it otherwise add it.\n * @param set The set to manipulate\n * @param key The key to toggle the \"is in\"-ness of\n */\nfunction toggle(set, key) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"runInAction\"])(() => {\n // Returns true if value was already in Set; otherwise false.\n if (!set.delete(key)) {\n set.add(key);\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/common/utils/collection-functions.ts?");
40167
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsert\", function() { return getOrInsert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertMap\", function() { return getOrInsertMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertSet\", function() { return getOrInsertSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertWith\", function() { return getOrInsertWith; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"strictSet\", function() { return strictSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"strictGet\", function() { return strictGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toggle\", function() { return toggle; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n/**\n * Get the value behind `key`. If it was not present, first insert `value`\n * @param map The map to interact with\n * @param key The key to insert into the map with\n * @param value The value to optional add to the map\n * @returns The value in the map\n */\nfunction getOrInsert(map, key, value) {\n if (!map.has(key)) {\n map.set(key, value);\n }\n return map.get(key);\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Map<MK, MV>` so that\n * the typings are inferred correctly.\n */\nfunction getOrInsertMap(map, key) {\n return getOrInsert(map, key, new Map());\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Set<any>` so that\n * the typings are inferred.\n */\nfunction getOrInsertSet(map, key) {\n return getOrInsert(map, key, new Set());\n}\n/**\n * Like `getOrInsert` but with delayed creation of the item. Which is useful\n * if it is very expensive to create the initial value.\n */\nfunction getOrInsertWith(map, key, builder) {\n if (!map.has(key)) {\n map.set(key, builder());\n }\n return map.get(key);\n}\n/**\n * Set the value associated with `key` iff there was not a previous value\n * @param map The map to interact with\n * @throws if `key` already in map\n * @returns `this` so that `strictSet` can be chained\n */\nfunction strictSet(map, key, val) {\n if (map.has(key)) {\n throw new TypeError(\"Duplicate key in map\");\n }\n return map.set(key, val);\n}\n/**\n * Get the value associated with `key`\n * @param map The map to interact with\n * @throws if `key` did not a value associated with it\n */\nfunction strictGet(map, key) {\n if (!map.has(key)) {\n throw new TypeError(\"key not in map\");\n }\n return map.get(key);\n}\n/**\n * If `key` is in `set`, remove it otherwise add it.\n * @param set The set to manipulate\n * @param key The key to toggle the \"is in\"-ness of\n */\nfunction toggle(set, key) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"runInAction\"])(() => {\n // Returns true if value was already in Set; otherwise false.\n if (!set.delete(key)) {\n set.add(key);\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/common/utils/collection-functions.ts?");
40168
40168
 
40169
40169
  /***/ }),
40170
40170
 
@@ -40264,18 +40264,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40264
40264
 
40265
40265
  /***/ }),
40266
40266
 
40267
- /***/ "./src/common/utils/extended-map.ts":
40268
- /*!******************************************!*\
40269
- !*** ./src/common/utils/extended-map.ts ***!
40270
- \******************************************/
40271
- /*! exports provided: multiSet, ExtendedMap, ExtendedObservableMap */
40272
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
40273
-
40274
- "use strict";
40275
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multiSet\", function() { return multiSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExtendedMap\", function() { return ExtendedMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExtendedObservableMap\", function() { return ExtendedObservableMap; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\nfunction multiSet(map, newEntries) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"runInAction\"])(() => {\n for (const [key, val] of newEntries) {\n map.set(key, val);\n }\n });\n}\nclass ExtendedMap extends Map {\n static new(entries) {\n return new ExtendedMap(entries);\n }\n /**\n * Get the value behind `key`. If it was not present, first insert the value returned by `getVal`\n * @param key The key to insert into the map with\n * @param getVal A function that returns a new instance of `V`.\n * @returns The value in the map\n */\n getOrInsert(key, getVal) {\n if (this.has(key)) {\n return this.get(key);\n }\n return this.set(key, getVal()).get(key);\n }\n /**\n * Set the value associated with `key` iff there was not a previous value\n * @throws if `key` already in map\n * @returns `this` so that `strictSet` can be chained\n */\n strictSet(key, val) {\n if (this.has(key)) {\n throw new TypeError(\"Duplicate key in map\");\n }\n return this.set(key, val);\n }\n /**\n * Get the value associated with `key`\n * @throws if `key` did not a value associated with it\n */\n strictGet(key) {\n if (!this.has(key)) {\n throw new TypeError(\"key not in map\");\n }\n return this.get(key);\n }\n}\nclass ExtendedObservableMap extends mobx__WEBPACK_IMPORTED_MODULE_0__[\"ObservableMap\"] {\n getOrInsert(key, getVal) {\n if (this.has(key)) {\n return this.get(key);\n }\n return this.set(key, getVal()).get(key);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Function]),\n __metadata(\"design:returntype\", Object)\n], ExtendedObservableMap.prototype, \"getOrInsert\", null);\n\n\n//# sourceURL=webpack:///./src/common/utils/extended-map.ts?");
40276
-
40277
- /***/ }),
40278
-
40279
40267
  /***/ "./src/common/utils/formatDuration.ts":
40280
40268
  /*!********************************************!*\
40281
40269
  !*** ./src/common/utils/formatDuration.ts ***!
@@ -40316,11 +40304,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40316
40304
  /*!***********************************!*\
40317
40305
  !*** ./src/common/utils/index.ts ***!
40318
40306
  \***********************************/
40319
- /*! exports provided: noop, WrappedAbortController, getAppVersion, getBundledKubectlVersion, getAppVersionFromProxyServer, autoBind, boundClass, boundMethod, toCamelCase, cloneJsonObject, getClusterIdFromHost, getClusterFrameUrl, getHostedClusterId, isClusterPageContext, getOrInsert, getOrInsertMap, getOrInsertSet, getOrInsertWith, toggle, cpuUnitsToNumber, unitsToBytes, bytesToUnits, debouncePromise, defineGlobal, delay, disposer, downloadFile, downloadJson, escapeRegExp, multiSet, ExtendedMap, ExtendedObservableMap, formatDuration, getRandId, makeIterableIterator, HashSet, ObservableHashSet, nFircate, fromEntries, openExternal, resolveTilde, resolvePath, isLogicalChildPath, promiseExecFile, rejectPromiseBy, Singleton, Ordering, rectifyOrdering, sortCompare, sortCompareChartVersions, sortCharts, splitArray, bifurcateArray, readFileFromTar, listTarEntries, extractTar, toJS, hasOwnProperty, hasOwnProperties, hasTypedProperty, hasOptionalProperty, isRecord, isTypedArray, isString, isObject, bindPredicate, waitForPath, iter, array, tuple, base64 */
40307
+ /*! exports provided: noop, WrappedAbortController, getAppVersion, getBundledKubectlVersion, getAppVersionFromProxyServer, autoBind, boundClass, boundMethod, toCamelCase, cloneJsonObject, getClusterIdFromHost, getClusterFrameUrl, getHostedClusterId, isClusterPageContext, getOrInsert, getOrInsertMap, getOrInsertSet, getOrInsertWith, strictSet, strictGet, toggle, cpuUnitsToNumber, unitsToBytes, bytesToUnits, debouncePromise, defineGlobal, delay, disposer, downloadFile, downloadJson, escapeRegExp, formatDuration, getRandId, makeIterableIterator, HashSet, ObservableHashSet, nFircate, fromEntries, entries, openBrowser, openExternal, resolveTilde, resolvePath, isLogicalChildPath, promiseExecFile, rejectPromiseBy, Singleton, Ordering, rectifyOrdering, sortCompare, sortCompareChartVersions, sortCharts, splitArray, bifurcateArray, readFileFromTar, listTarEntries, extractTar, toJS, hasOwnProperty, hasOwnProperties, hasTypedProperty, hasOptionalProperty, isRecord, isTypedArray, isString, isObject, bindPredicate, waitForPath, iter, array, tuple, base64 */
40320
40308
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40321
40309
 
40322
40310
  "use strict";
40323
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return noop; });\n/* harmony import */ var _abort_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort-controller */ \"./src/common/utils/abort-controller.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WrappedAbortController\", function() { return _abort_controller__WEBPACK_IMPORTED_MODULE_0__[\"WrappedAbortController\"]; });\n\n/* harmony import */ var _app_version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersion\", function() { return _app_version__WEBPACK_IMPORTED_MODULE_1__[\"getAppVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getBundledKubectlVersion\", function() { return _app_version__WEBPACK_IMPORTED_MODULE_1__[\"getBundledKubectlVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersionFromProxyServer\", function() { return _app_version__WEBPACK_IMPORTED_MODULE_1__[\"getAppVersionFromProxyServer\"]; });\n\n/* harmony import */ var _autobind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autobind */ \"./src/common/utils/autobind.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoBind\", function() { return _autobind__WEBPACK_IMPORTED_MODULE_2__[\"autoBind\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundClass\", function() { return _autobind__WEBPACK_IMPORTED_MODULE_2__[\"boundClass\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundMethod\", function() { return _autobind__WEBPACK_IMPORTED_MODULE_2__[\"boundMethod\"]; });\n\n/* harmony import */ var _camelCase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camelCase */ \"./src/common/utils/camelCase.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toCamelCase\", function() { return _camelCase__WEBPACK_IMPORTED_MODULE_3__[\"toCamelCase\"]; });\n\n/* harmony import */ var _cloneJson__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cloneJson */ \"./src/common/utils/cloneJson.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cloneJsonObject\", function() { return _cloneJson__WEBPACK_IMPORTED_MODULE_4__[\"cloneJsonObject\"]; });\n\n/* harmony import */ var _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterIdFromHost\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"getClusterIdFromHost\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterFrameUrl\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"getClusterFrameUrl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getHostedClusterId\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"getHostedClusterId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isClusterPageContext\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"isClusterPageContext\"]; });\n\n/* harmony import */ var _collection_functions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./collection-functions */ \"./src/common/utils/collection-functions.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsert\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsert\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertMap\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsertMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertSet\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsertSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertWith\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsertWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toggle\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"toggle\"]; });\n\n/* harmony import */ var _convertCpu__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convertCpu */ \"./src/common/utils/convertCpu.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cpuUnitsToNumber\", function() { return _convertCpu__WEBPACK_IMPORTED_MODULE_7__[\"cpuUnitsToNumber\"]; });\n\n/* harmony import */ var _convertMemory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./convertMemory */ \"./src/common/utils/convertMemory.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unitsToBytes\", function() { return _convertMemory__WEBPACK_IMPORTED_MODULE_8__[\"unitsToBytes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bytesToUnits\", function() { return _convertMemory__WEBPACK_IMPORTED_MODULE_8__[\"bytesToUnits\"]; });\n\n/* harmony import */ var _debouncePromise__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./debouncePromise */ \"./src/common/utils/debouncePromise.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debouncePromise\", function() { return _debouncePromise__WEBPACK_IMPORTED_MODULE_9__[\"debouncePromise\"]; });\n\n/* harmony import */ var _defineGlobal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./defineGlobal */ \"./src/common/utils/defineGlobal.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defineGlobal\", function() { return _defineGlobal__WEBPACK_IMPORTED_MODULE_10__[\"defineGlobal\"]; });\n\n/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./delay */ \"./src/common/utils/delay.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _delay__WEBPACK_IMPORTED_MODULE_11__[\"delay\"]; });\n\n/* harmony import */ var _disposer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./disposer */ \"./src/common/utils/disposer.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"disposer\", function() { return _disposer__WEBPACK_IMPORTED_MODULE_12__[\"disposer\"]; });\n\n/* harmony import */ var _downloadFile__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./downloadFile */ \"./src/common/utils/downloadFile.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadFile\", function() { return _downloadFile__WEBPACK_IMPORTED_MODULE_13__[\"downloadFile\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadJson\", function() { return _downloadFile__WEBPACK_IMPORTED_MODULE_13__[\"downloadJson\"]; });\n\n/* harmony import */ var _escapeRegExp__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./escapeRegExp */ \"./src/common/utils/escapeRegExp.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"escapeRegExp\", function() { return _escapeRegExp__WEBPACK_IMPORTED_MODULE_14__[\"escapeRegExp\"]; });\n\n/* harmony import */ var _extended_map__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./extended-map */ \"./src/common/utils/extended-map.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multiSet\", function() { return _extended_map__WEBPACK_IMPORTED_MODULE_15__[\"multiSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExtendedMap\", function() { return _extended_map__WEBPACK_IMPORTED_MODULE_15__[\"ExtendedMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExtendedObservableMap\", function() { return _extended_map__WEBPACK_IMPORTED_MODULE_15__[\"ExtendedObservableMap\"]; });\n\n/* harmony import */ var _formatDuration__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./formatDuration */ \"./src/common/utils/formatDuration.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatDuration\", function() { return _formatDuration__WEBPACK_IMPORTED_MODULE_16__[\"formatDuration\"]; });\n\n/* harmony import */ var _getRandId__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./getRandId */ \"./src/common/utils/getRandId.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRandId\", function() { return _getRandId__WEBPACK_IMPORTED_MODULE_17__[\"getRandId\"]; });\n\n/* harmony import */ var _hash_set__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./hash-set */ \"./src/common/utils/hash-set.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeIterableIterator\", function() { return _hash_set__WEBPACK_IMPORTED_MODULE_18__[\"makeIterableIterator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HashSet\", function() { return _hash_set__WEBPACK_IMPORTED_MODULE_18__[\"HashSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObservableHashSet\", function() { return _hash_set__WEBPACK_IMPORTED_MODULE_18__[\"ObservableHashSet\"]; });\n\n/* harmony import */ var _n_fircate__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./n-fircate */ \"./src/common/utils/n-fircate.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nFircate\", function() { return _n_fircate__WEBPACK_IMPORTED_MODULE_19__[\"nFircate\"]; });\n\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./objects */ \"./src/common/utils/objects.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEntries\", function() { return _objects__WEBPACK_IMPORTED_MODULE_20__[\"fromEntries\"]; });\n\n/* harmony import */ var _openExternal__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./openExternal */ \"./src/common/utils/openExternal.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return _openExternal__WEBPACK_IMPORTED_MODULE_21__[\"openExternal\"]; });\n\n/* harmony import */ var _paths__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./paths */ \"./src/common/utils/paths.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolveTilde\", function() { return _paths__WEBPACK_IMPORTED_MODULE_22__[\"resolveTilde\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolvePath\", function() { return _paths__WEBPACK_IMPORTED_MODULE_22__[\"resolvePath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLogicalChildPath\", function() { return _paths__WEBPACK_IMPORTED_MODULE_22__[\"isLogicalChildPath\"]; });\n\n/* harmony import */ var _promise_exec__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"promiseExecFile\", function() { return _promise_exec__WEBPACK_IMPORTED_MODULE_23__[\"promiseExecFile\"]; });\n\n/* harmony import */ var _reject_promise__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./reject-promise */ \"./src/common/utils/reject-promise.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rejectPromiseBy\", function() { return _reject_promise__WEBPACK_IMPORTED_MODULE_24__[\"rejectPromiseBy\"]; });\n\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./singleton */ \"./src/common/utils/singleton.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Singleton\", function() { return _singleton__WEBPACK_IMPORTED_MODULE_25__[\"Singleton\"]; });\n\n/* harmony import */ var _sort_compare__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./sort-compare */ \"./src/common/utils/sort-compare.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Ordering\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_26__[\"Ordering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectifyOrdering\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_26__[\"rectifyOrdering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompare\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_26__[\"sortCompare\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompareChartVersions\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_26__[\"sortCompareChartVersions\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCharts\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_26__[\"sortCharts\"]; });\n\n/* harmony import */ var _splitArray__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./splitArray */ \"./src/common/utils/splitArray.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitArray\", function() { return _splitArray__WEBPACK_IMPORTED_MODULE_27__[\"splitArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bifurcateArray\", function() { return _splitArray__WEBPACK_IMPORTED_MODULE_27__[\"bifurcateArray\"]; });\n\n/* harmony import */ var _tar__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./tar */ \"./src/common/utils/tar.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"readFileFromTar\", function() { return _tar__WEBPACK_IMPORTED_MODULE_28__[\"readFileFromTar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"listTarEntries\", function() { return _tar__WEBPACK_IMPORTED_MODULE_28__[\"listTarEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extractTar\", function() { return _tar__WEBPACK_IMPORTED_MODULE_28__[\"extractTar\"]; });\n\n/* harmony import */ var _toJS__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./toJS */ \"./src/common/utils/toJS.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return _toJS__WEBPACK_IMPORTED_MODULE_29__[\"toJS\"]; });\n\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"hasOwnProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperties\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"hasOwnProperties\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasTypedProperty\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"hasTypedProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOptionalProperty\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"hasOptionalProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isRecord\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"isRecord\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isTypedArray\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"isTypedArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"isString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"isObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindPredicate\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_30__[\"bindPredicate\"]; });\n\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./types */ \"./src/common/utils/types.ts\");\n/* empty/unused harmony star reexport *//* harmony import */ var _wait_for_path__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./wait-for-path */ \"./src/common/utils/wait-for-path.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"waitForPath\", function() { return _wait_for_path__WEBPACK_IMPORTED_MODULE_32__[\"waitForPath\"]; });\n\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"iter\", function() { return _iter__WEBPACK_IMPORTED_MODULE_33__; });\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./array */ \"./src/common/utils/array.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return _array__WEBPACK_IMPORTED_MODULE_34__; });\n/* harmony import */ var _tuple__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./tuple */ \"./src/common/utils/tuple.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"tuple\", function() { return _tuple__WEBPACK_IMPORTED_MODULE_35__; });\n/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./base64 */ \"./src/common/utils/base64.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"base64\", function() { return _base64__WEBPACK_IMPORTED_MODULE_36__; });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * A function that does nothing\n */\nfunction noop(...args) {\n return void args;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/common/utils/index.ts?");
40311
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return noop; });\n/* harmony import */ var _abort_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort-controller */ \"./src/common/utils/abort-controller.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WrappedAbortController\", function() { return _abort_controller__WEBPACK_IMPORTED_MODULE_0__[\"WrappedAbortController\"]; });\n\n/* harmony import */ var _app_version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersion\", function() { return _app_version__WEBPACK_IMPORTED_MODULE_1__[\"getAppVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getBundledKubectlVersion\", function() { return _app_version__WEBPACK_IMPORTED_MODULE_1__[\"getBundledKubectlVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersionFromProxyServer\", function() { return _app_version__WEBPACK_IMPORTED_MODULE_1__[\"getAppVersionFromProxyServer\"]; });\n\n/* harmony import */ var _autobind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autobind */ \"./src/common/utils/autobind.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoBind\", function() { return _autobind__WEBPACK_IMPORTED_MODULE_2__[\"autoBind\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundClass\", function() { return _autobind__WEBPACK_IMPORTED_MODULE_2__[\"boundClass\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundMethod\", function() { return _autobind__WEBPACK_IMPORTED_MODULE_2__[\"boundMethod\"]; });\n\n/* harmony import */ var _camelCase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camelCase */ \"./src/common/utils/camelCase.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toCamelCase\", function() { return _camelCase__WEBPACK_IMPORTED_MODULE_3__[\"toCamelCase\"]; });\n\n/* harmony import */ var _cloneJson__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cloneJson */ \"./src/common/utils/cloneJson.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cloneJsonObject\", function() { return _cloneJson__WEBPACK_IMPORTED_MODULE_4__[\"cloneJsonObject\"]; });\n\n/* harmony import */ var _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterIdFromHost\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"getClusterIdFromHost\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterFrameUrl\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"getClusterFrameUrl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getHostedClusterId\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"getHostedClusterId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isClusterPageContext\", function() { return _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__[\"isClusterPageContext\"]; });\n\n/* harmony import */ var _collection_functions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./collection-functions */ \"./src/common/utils/collection-functions.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsert\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsert\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertMap\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsertMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertSet\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsertSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertWith\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"getOrInsertWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"strictSet\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"strictSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"strictGet\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"strictGet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toggle\", function() { return _collection_functions__WEBPACK_IMPORTED_MODULE_6__[\"toggle\"]; });\n\n/* harmony import */ var _convertCpu__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convertCpu */ \"./src/common/utils/convertCpu.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cpuUnitsToNumber\", function() { return _convertCpu__WEBPACK_IMPORTED_MODULE_7__[\"cpuUnitsToNumber\"]; });\n\n/* harmony import */ var _convertMemory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./convertMemory */ \"./src/common/utils/convertMemory.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unitsToBytes\", function() { return _convertMemory__WEBPACK_IMPORTED_MODULE_8__[\"unitsToBytes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bytesToUnits\", function() { return _convertMemory__WEBPACK_IMPORTED_MODULE_8__[\"bytesToUnits\"]; });\n\n/* harmony import */ var _debouncePromise__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./debouncePromise */ \"./src/common/utils/debouncePromise.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debouncePromise\", function() { return _debouncePromise__WEBPACK_IMPORTED_MODULE_9__[\"debouncePromise\"]; });\n\n/* harmony import */ var _defineGlobal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./defineGlobal */ \"./src/common/utils/defineGlobal.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defineGlobal\", function() { return _defineGlobal__WEBPACK_IMPORTED_MODULE_10__[\"defineGlobal\"]; });\n\n/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./delay */ \"./src/common/utils/delay.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _delay__WEBPACK_IMPORTED_MODULE_11__[\"delay\"]; });\n\n/* harmony import */ var _disposer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./disposer */ \"./src/common/utils/disposer.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"disposer\", function() { return _disposer__WEBPACK_IMPORTED_MODULE_12__[\"disposer\"]; });\n\n/* harmony import */ var _downloadFile__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./downloadFile */ \"./src/common/utils/downloadFile.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadFile\", function() { return _downloadFile__WEBPACK_IMPORTED_MODULE_13__[\"downloadFile\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadJson\", function() { return _downloadFile__WEBPACK_IMPORTED_MODULE_13__[\"downloadJson\"]; });\n\n/* harmony import */ var _escapeRegExp__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./escapeRegExp */ \"./src/common/utils/escapeRegExp.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"escapeRegExp\", function() { return _escapeRegExp__WEBPACK_IMPORTED_MODULE_14__[\"escapeRegExp\"]; });\n\n/* harmony import */ var _formatDuration__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./formatDuration */ \"./src/common/utils/formatDuration.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatDuration\", function() { return _formatDuration__WEBPACK_IMPORTED_MODULE_15__[\"formatDuration\"]; });\n\n/* harmony import */ var _getRandId__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./getRandId */ \"./src/common/utils/getRandId.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRandId\", function() { return _getRandId__WEBPACK_IMPORTED_MODULE_16__[\"getRandId\"]; });\n\n/* harmony import */ var _hash_set__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hash-set */ \"./src/common/utils/hash-set.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeIterableIterator\", function() { return _hash_set__WEBPACK_IMPORTED_MODULE_17__[\"makeIterableIterator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HashSet\", function() { return _hash_set__WEBPACK_IMPORTED_MODULE_17__[\"HashSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObservableHashSet\", function() { return _hash_set__WEBPACK_IMPORTED_MODULE_17__[\"ObservableHashSet\"]; });\n\n/* harmony import */ var _n_fircate__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./n-fircate */ \"./src/common/utils/n-fircate.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nFircate\", function() { return _n_fircate__WEBPACK_IMPORTED_MODULE_18__[\"nFircate\"]; });\n\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./objects */ \"./src/common/utils/objects.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEntries\", function() { return _objects__WEBPACK_IMPORTED_MODULE_19__[\"fromEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return _objects__WEBPACK_IMPORTED_MODULE_19__[\"entries\"]; });\n\n/* harmony import */ var _openBrowser__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./openBrowser */ \"./src/common/utils/openBrowser.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openBrowser\", function() { return _openBrowser__WEBPACK_IMPORTED_MODULE_20__[\"openBrowser\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return _openBrowser__WEBPACK_IMPORTED_MODULE_20__[\"openExternal\"]; });\n\n/* harmony import */ var _paths__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./paths */ \"./src/common/utils/paths.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolveTilde\", function() { return _paths__WEBPACK_IMPORTED_MODULE_21__[\"resolveTilde\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolvePath\", function() { return _paths__WEBPACK_IMPORTED_MODULE_21__[\"resolvePath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLogicalChildPath\", function() { return _paths__WEBPACK_IMPORTED_MODULE_21__[\"isLogicalChildPath\"]; });\n\n/* harmony import */ var _promise_exec__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"promiseExecFile\", function() { return _promise_exec__WEBPACK_IMPORTED_MODULE_22__[\"promiseExecFile\"]; });\n\n/* harmony import */ var _reject_promise__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./reject-promise */ \"./src/common/utils/reject-promise.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rejectPromiseBy\", function() { return _reject_promise__WEBPACK_IMPORTED_MODULE_23__[\"rejectPromiseBy\"]; });\n\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./singleton */ \"./src/common/utils/singleton.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Singleton\", function() { return _singleton__WEBPACK_IMPORTED_MODULE_24__[\"Singleton\"]; });\n\n/* harmony import */ var _sort_compare__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./sort-compare */ \"./src/common/utils/sort-compare.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Ordering\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_25__[\"Ordering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectifyOrdering\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_25__[\"rectifyOrdering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompare\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_25__[\"sortCompare\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompareChartVersions\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_25__[\"sortCompareChartVersions\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCharts\", function() { return _sort_compare__WEBPACK_IMPORTED_MODULE_25__[\"sortCharts\"]; });\n\n/* harmony import */ var _splitArray__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./splitArray */ \"./src/common/utils/splitArray.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitArray\", function() { return _splitArray__WEBPACK_IMPORTED_MODULE_26__[\"splitArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bifurcateArray\", function() { return _splitArray__WEBPACK_IMPORTED_MODULE_26__[\"bifurcateArray\"]; });\n\n/* harmony import */ var _tar__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./tar */ \"./src/common/utils/tar.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"readFileFromTar\", function() { return _tar__WEBPACK_IMPORTED_MODULE_27__[\"readFileFromTar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"listTarEntries\", function() { return _tar__WEBPACK_IMPORTED_MODULE_27__[\"listTarEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extractTar\", function() { return _tar__WEBPACK_IMPORTED_MODULE_27__[\"extractTar\"]; });\n\n/* harmony import */ var _toJS__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./toJS */ \"./src/common/utils/toJS.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return _toJS__WEBPACK_IMPORTED_MODULE_28__[\"toJS\"]; });\n\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"hasOwnProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperties\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"hasOwnProperties\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasTypedProperty\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"hasTypedProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOptionalProperty\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"hasOptionalProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isRecord\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"isRecord\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isTypedArray\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"isTypedArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"isString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"isObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindPredicate\", function() { return _type_narrowing__WEBPACK_IMPORTED_MODULE_29__[\"bindPredicate\"]; });\n\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./types */ \"./src/common/utils/types.ts\");\n/* empty/unused harmony star reexport *//* harmony import */ var _wait_for_path__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./wait-for-path */ \"./src/common/utils/wait-for-path.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"waitForPath\", function() { return _wait_for_path__WEBPACK_IMPORTED_MODULE_31__[\"waitForPath\"]; });\n\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"iter\", function() { return _iter__WEBPACK_IMPORTED_MODULE_32__; });\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./array */ \"./src/common/utils/array.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return _array__WEBPACK_IMPORTED_MODULE_33__; });\n/* harmony import */ var _tuple__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./tuple */ \"./src/common/utils/tuple.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"tuple\", function() { return _tuple__WEBPACK_IMPORTED_MODULE_34__; });\n/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./base64 */ \"./src/common/utils/base64.ts\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"base64\", function() { return _base64__WEBPACK_IMPORTED_MODULE_35__; });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * A function that does nothing\n */\nfunction noop(...args) {\n return void args;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/common/utils/index.ts?");
40324
40312
 
40325
40313
  /***/ }),
40326
40314
 
@@ -40364,23 +40352,23 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40364
40352
  /*!*************************************!*\
40365
40353
  !*** ./src/common/utils/objects.ts ***!
40366
40354
  \*************************************/
40367
- /*! exports provided: fromEntries */
40355
+ /*! exports provided: fromEntries, entries */
40368
40356
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40369
40357
 
40370
40358
  "use strict";
40371
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEntries\", function() { return fromEntries; });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * A better typed version of `Object.fromEntries` where the keys are known to\n * be a specific subset\n */\nfunction fromEntries(entries) {\n return Object.fromEntries(entries);\n}\n\n\n//# sourceURL=webpack:///./src/common/utils/objects.ts?");
40359
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEntries\", function() { return fromEntries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * A better typed version of `Object.fromEntries` where the keys are known to\n * be a specific subset\n */\nfunction fromEntries(entries) {\n return Object.fromEntries(entries);\n}\nfunction entries(obj) {\n return Object.entries(obj);\n}\n\n\n//# sourceURL=webpack:///./src/common/utils/objects.ts?");
40372
40360
 
40373
40361
  /***/ }),
40374
40362
 
40375
- /***/ "./src/common/utils/openExternal.ts":
40376
- /*!******************************************!*\
40377
- !*** ./src/common/utils/openExternal.ts ***!
40378
- \******************************************/
40379
- /*! exports provided: openExternal */
40363
+ /***/ "./src/common/utils/openBrowser.ts":
40364
+ /*!*****************************************!*\
40365
+ !*** ./src/common/utils/openBrowser.ts ***!
40366
+ \*****************************************/
40367
+ /*! exports provided: openBrowser, openExternal */
40380
40368
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40381
40369
 
40382
40370
  "use strict";
40383
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return openExternal; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Opens a link in external browser\n\nfunction openExternal(url) {\n return electron__WEBPACK_IMPORTED_MODULE_0__[\"shell\"].openExternal(url);\n}\n\n\n//# sourceURL=webpack:///./src/common/utils/openExternal.ts?");
40371
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"openBrowser\", function() { return openBrowser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return openExternal; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst allowedProtocols = new Set([\"http:\", \"https:\"]);\n/**\n * Opens a link using the program configured as the default browser\n * on the target platform. Will reject URLs with a scheme other than\n * http or https to prevent programs other than the default browser\n * running.\n *\n * @param url The URL to open\n */\nfunction openBrowser(url) {\n if (allowedProtocols.has(new URL(url).protocol)) {\n return electron__WEBPACK_IMPORTED_MODULE_0__[\"shell\"].openExternal(url);\n }\n return Promise.reject(new TypeError(\"not an http(s) URL\"));\n}\n/**\n * @deprecated use openBrowser\n */\nconst openExternal = openBrowser;\n\n\n//# sourceURL=webpack:///./src/common/utils/openBrowser.ts?");
40384
40372
 
40385
40373
  /***/ }),
40386
40374
 
@@ -40712,11 +40700,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40712
40700
  /*!********************************************!*\
40713
40701
  !*** ./src/extensions/common-api/utils.ts ***!
40714
40702
  \********************************************/
40715
- /*! exports provided: Singleton, openExternal, prevDefault, stopPropagation, cssNames */
40703
+ /*! exports provided: Singleton, openExternal, openBrowser, prevDefault, stopPropagation, cssNames */
40716
40704
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40717
40705
 
40718
40706
  "use strict";
40719
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Singleton\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"Singleton\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"openExternal\"]; });\n\n/* harmony import */ var _renderer_utils_prevDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderer/utils/prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prevDefault\", function() { return _renderer_utils_prevDefault__WEBPACK_IMPORTED_MODULE_1__[\"prevDefault\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stopPropagation\", function() { return _renderer_utils_prevDefault__WEBPACK_IMPORTED_MODULE_1__[\"stopPropagation\"]; });\n\n/* harmony import */ var _renderer_utils_cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../renderer/utils/cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cssNames\", function() { return _renderer_utils_cssNames__WEBPACK_IMPORTED_MODULE_2__[\"cssNames\"]; });\n\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/extensions/common-api/utils.ts?");
40707
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Singleton\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"Singleton\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"openExternal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openBrowser\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"openBrowser\"]; });\n\n/* harmony import */ var _renderer_utils_prevDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderer/utils/prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prevDefault\", function() { return _renderer_utils_prevDefault__WEBPACK_IMPORTED_MODULE_1__[\"prevDefault\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stopPropagation\", function() { return _renderer_utils_prevDefault__WEBPACK_IMPORTED_MODULE_1__[\"stopPropagation\"]; });\n\n/* harmony import */ var _renderer_utils_cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../renderer/utils/cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cssNames\", function() { return _renderer_utils_cssNames__WEBPACK_IMPORTED_MODULE_2__[\"cssNames\"]; });\n\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/extensions/common-api/utils.ts?");
40720
40708
 
40721
40709
  /***/ }),
40722
40710
 
@@ -40812,7 +40800,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ogr
40812
40800
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40813
40801
 
40814
40802
  "use strict";
40815
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExtensionLoader\", function() { return ExtensionLoader; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"events\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _common_ipc__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/ipc */ \"./src/common/ipc/index.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _registries__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../registries */ \"./src/extensions/registries/index.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/* harmony import */ var _renderer_ipc__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../renderer/ipc */ \"./src/renderer/ipc/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nconst logModule = \"[EXTENSIONS-LOADER]\";\n/**\n * Loads installed extensions to the Lens application\n */\nclass ExtensionLoader {\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"extensions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].map()\n });\n Object.defineProperty(this, \"instances\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].map()\n });\n /**\n * This is the set of extensions that don't come with either\n * - Main.LensExtension when running in the main process\n * - Renderer.LensExtension when running in the renderer process\n */\n Object.defineProperty(this, \"nonInstancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].set()\n });\n /**\n * This is updated by the `observe` in the constructor. DO NOT write directly to it\n */\n Object.defineProperty(this, \"instancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].map()\n });\n // emits event \"remove\" of type LensExtension when the extension is removed\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new events__WEBPACK_IMPORTED_MODULE_1__[\"EventEmitter\"]()\n });\n Object.defineProperty(this, \"isLoaded\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"loadOnClusterManagerRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].debug(`${logModule}: load on main renderer (cluster manager)`);\n return this.autoInitExtensions(async (extension) => {\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"GlobalPageRegistry\"].getInstance().add(extension.globalPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"EntitySettingRegistry\"].getInstance().add(extension.entitySettings),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"CatalogEntityDetailRegistry\"].getInstance().add(extension.catalogEntityDetailItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n Object.defineProperty(this, \"loadOnClusterRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (getCluster) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].debug(`${logModule}: load on cluster renderer (dashboard)`);\n this.autoInitExtensions(async (extension) => {\n // getCluster must be a callback, as the entity might be available only after an extension has been loaded\n if ((await extension.isEnabledForCluster(getCluster())) === false) {\n return [];\n }\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"ClusterPageRegistry\"].getInstance().add(extension.clusterPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"ClusterPageMenuRegistry\"].getInstance().add(extension.clusterPageMenus, extension),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"KubeObjectDetailRegistry\"].getInstance().add(extension.kubeObjectDetailItems),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"KubeObjectStatusRegistry\"].getInstance().add(extension.kubeObjectStatusTexts),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"WorkloadsOverviewDetailRegistry\"].getInstance().add(extension.kubeWorkloadsOverviewItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"makeObservable\"])(this);\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"observe\"])(this.instances, change => {\n switch (change.type) {\n case \"add\":\n if (this.instancesByName.has(change.newValue.name)) {\n throw new TypeError(\"Extension names must be unique\");\n }\n this.instancesByName.set(change.newValue.name, change.newValue);\n break;\n case \"delete\":\n this.instancesByName.delete(change.oldValue.name);\n break;\n case \"update\":\n throw new Error(\"Extension instances shouldn't be updated\");\n }\n });\n }\n get whenLoaded() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"when\"])(() => this.isLoaded);\n }\n get enabledExtensionInstances() {\n return [...this.instances.values()].filter(extension => extension.isEnabled);\n }\n get userExtensions() {\n const extensions = this.toJSON();\n extensions.forEach((ext, extId) => {\n if (ext.isBundled) {\n extensions.delete(extId);\n }\n });\n return extensions;\n }\n /**\n * Get the extension instance by its manifest name\n * @param name The name of the extension\n * @returns one of the following:\n * - the instance of `Main.LensExtension` on the main process if created\n * - the instance of `Renderer.LensExtension` on the renderer process if created\n * - `null` if no class definition is provided for the current process\n * - `undefined` if the name is not known about\n */\n getInstanceByName(name) {\n if (this.nonInstancesByName.has(name)) {\n return null;\n }\n return this.instancesByName.get(name);\n }\n // Transform userExtensions to a state object for storing into ExtensionsStore\n get storeState() {\n return Object.fromEntries(Array.from(this.userExtensions)\n .map(([extId, extension]) => [extId, {\n enabled: extension.isEnabled,\n name: extension.manifest.name,\n }]));\n }\n async init() {\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"]) {\n await this.initRenderer();\n }\n else {\n await this.initMain();\n }\n await Promise.all([this.whenLoaded]);\n // broadcasting extensions between main/renderer processes\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"reaction\"])(() => this.toJSON(), () => this.broadcastExtensions(), {\n fireImmediately: true,\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"reaction\"])(() => this.storeState, (state) => {\n this.dependencies.updateExtensionsState(state);\n });\n }\n initExtensions(extensions) {\n this.extensions.replace(extensions);\n }\n addExtension(extension) {\n this.extensions.set(extension.id, extension);\n }\n removeInstance(lensExtensionId) {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].info(`${logModule} deleting extension instance ${lensExtensionId}`);\n const instance = this.instances.get(lensExtensionId);\n if (!instance) {\n return;\n }\n try {\n instance.disable();\n this.events.emit(\"remove\", instance);\n this.instances.delete(lensExtensionId);\n this.nonInstancesByName.delete(instance.name);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: deactivation extension error`, { lensExtensionId, error });\n }\n }\n removeExtension(lensExtensionId) {\n this.removeInstance(lensExtensionId);\n if (!this.extensions.delete(lensExtensionId)) {\n throw new Error(`Can't remove extension ${lensExtensionId}, doesn't exist.`);\n }\n }\n setIsEnabled(lensExtensionId, isEnabled) {\n this.extensions.get(lensExtensionId).isEnabled = isEnabled;\n }\n async initMain() {\n this.isLoaded = true;\n this.loadOnMain();\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"ipcMainHandle\"])(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromMainChannel\"], () => {\n return Array.from(this.toJSON());\n });\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"ipcMainOn\"])(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromRendererChannel\"], (event, extensions) => {\n this.syncExtensions(extensions);\n });\n }\n async initRenderer() {\n const extensionListHandler = (extensions) => {\n this.isLoaded = true;\n this.syncExtensions(extensions);\n const receivedExtensionIds = extensions.map(([lensExtensionId]) => lensExtensionId);\n // Remove deleted extensions in renderer side only\n this.extensions.forEach((_, lensExtensionId) => {\n if (!receivedExtensionIds.includes(lensExtensionId)) {\n this.removeExtension(lensExtensionId);\n }\n });\n };\n Object(_renderer_ipc__WEBPACK_IMPORTED_MODULE_10__[\"requestExtensionLoaderInitialState\"])().then(extensionListHandler);\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"ipcRendererOn\"])(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromMainChannel\"], (event, extensions) => {\n extensionListHandler(extensions);\n });\n }\n broadcastExtensions() {\n const channel = electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"]\n ? _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromRendererChannel\"]\n : _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromMainChannel\"];\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"broadcastMessage\"])(channel, Array.from(this.extensions));\n }\n syncExtensions(extensions) {\n extensions.forEach(([lensExtensionId, extension]) => {\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_2__[\"isEqual\"])(this.extensions.get(lensExtensionId), extension)) {\n this.extensions.set(lensExtensionId, extension);\n }\n });\n }\n loadOnMain() {\n this.autoInitExtensions(() => Promise.resolve([]));\n }\n async loadExtensions(installedExtensions, register) {\n // Steps of the function:\n // 1. require and call .activate for each Extension\n // 2. Wait until every extension's onActivate has been resolved\n // 3. Call .enable for each extension\n // 4. Return ExtensionLoading[]\n const extensions = [...installedExtensions.entries()]\n .map(([extId, extension]) => {\n const alreadyInit = this.instances.has(extId) || this.nonInstancesByName.has(extension.manifest.name);\n if (extension.isCompatible && extension.isEnabled && !alreadyInit) {\n try {\n const LensExtensionClass = this.requireExtension(extension);\n if (!LensExtensionClass) {\n this.nonInstancesByName.add(extension.manifest.name);\n return null;\n }\n const instance = this.dependencies.createExtensionInstance(LensExtensionClass, extension);\n this.instances.set(extId, instance);\n return {\n extId,\n instance,\n isBundled: extension.isBundled,\n activated: instance.activate(),\n };\n }\n catch (err) {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: activation extension error`, { ext: extension, err });\n }\n }\n else if (!extension.isEnabled && alreadyInit) {\n this.removeInstance(extId);\n }\n return null;\n })\n // Remove null values\n .filter(extension => Boolean(extension));\n // We first need to wait until each extension's `onActivate` is resolved,\n // as this might register new catalog categories. Afterwards we can safely .enable the extension.\n await Promise.all(extensions.map(extension => extension.activated));\n // Return ExtensionLoading[]\n return extensions.map(extension => {\n const loaded = extension.instance.enable(register).catch((err) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: failed to enable`, { ext: extension, err });\n });\n return {\n isBundled: extension.isBundled,\n loaded,\n };\n });\n }\n autoInitExtensions(register) {\n // Setup reaction to load extensions on JSON changes\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"reaction\"])(() => this.toJSON(), installedExtensions => this.loadExtensions(installedExtensions, register));\n // Load initial extensions\n return this.loadExtensions(this.toJSON(), register);\n }\n requireExtension(extension) {\n const entryPointName = electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"] ? \"renderer\" : \"main\";\n const extRelativePath = extension.manifest[entryPointName];\n if (!extRelativePath) {\n return null;\n }\n const extAbsolutePath = path__WEBPACK_IMPORTED_MODULE_4___default.a.resolve(path__WEBPACK_IMPORTED_MODULE_4___default.a.join(path__WEBPACK_IMPORTED_MODULE_4___default.a.dirname(extension.manifestPath), extRelativePath));\n try {\n return require(extAbsolutePath).default;\n }\n catch (error) {\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"]) {\n console.error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error.stack || error}`, extension);\n }\n else {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error}`, { extension });\n }\n }\n return null;\n }\n getExtension(extId) {\n return this.extensions.get(extId);\n }\n getInstanceById(extId) {\n return this.instances.get(extId);\n }\n toJSON() {\n return Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"toJS\"])(this.extensions);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"],\n __metadata(\"design:type\", Object)\n], ExtensionLoader.prototype, \"isLoaded\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"computed\"],\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"enabledExtensionInstances\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"computed\"],\n __metadata(\"design:type\", Map),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"userExtensions\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"storeState\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], ExtensionLoader.prototype, \"init\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], ExtensionLoader.prototype, \"removeInstance\", null);\n\n\n//# sourceURL=webpack:///./src/extensions/extension-loader/extension-loader.ts?");
40803
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExtensionLoader\", function() { return ExtensionLoader; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"events\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _common_ipc__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/ipc */ \"./src/common/ipc/index.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _registries__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../registries */ \"./src/extensions/registries/index.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/* harmony import */ var _renderer_ipc__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../renderer/ipc */ \"./src/renderer/ipc/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nconst logModule = \"[EXTENSIONS-LOADER]\";\n/**\n * Loads installed extensions to the Lens application\n */\nclass ExtensionLoader {\n constructor(dependencies) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"extensions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].map()\n });\n Object.defineProperty(this, \"instances\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].map()\n });\n /**\n * This is the set of extensions that don't come with either\n * - Main.LensExtension when running in the main process\n * - Renderer.LensExtension when running in the renderer process\n */\n Object.defineProperty(this, \"nonInstancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].set()\n });\n /**\n * This is updated by the `observe` in the constructor. DO NOT write directly to it\n */\n Object.defineProperty(this, \"instancesByName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"].map()\n });\n // emits event \"remove\" of type LensExtension when the extension is removed\n Object.defineProperty(this, \"events\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new events__WEBPACK_IMPORTED_MODULE_1__[\"EventEmitter\"]()\n });\n Object.defineProperty(this, \"isLoaded\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"loadOnClusterManagerRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].debug(`${logModule}: load on main renderer (cluster manager)`);\n return this.autoInitExtensions(async (extension) => {\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"GlobalPageRegistry\"].getInstance().add(extension.globalPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"EntitySettingRegistry\"].getInstance().add(extension.entitySettings),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"CatalogEntityDetailRegistry\"].getInstance().add(extension.catalogEntityDetailItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n Object.defineProperty(this, \"loadOnClusterRenderer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (getCluster) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].debug(`${logModule}: load on cluster renderer (dashboard)`);\n this.autoInitExtensions(async (extension) => {\n // getCluster must be a callback, as the entity might be available only after an extension has been loaded\n if ((await extension.isEnabledForCluster(getCluster())) === false) {\n return [];\n }\n const removeItems = [\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"ClusterPageRegistry\"].getInstance().add(extension.clusterPages, extension),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"ClusterPageMenuRegistry\"].getInstance().add(extension.clusterPageMenus, extension),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"KubeObjectDetailRegistry\"].getInstance().add(extension.kubeObjectDetailItems),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"KubeObjectStatusRegistry\"].getInstance().add(extension.kubeObjectStatusTexts),\n _registries__WEBPACK_IMPORTED_MODULE_8__[\"WorkloadsOverviewDetailRegistry\"].getInstance().add(extension.kubeWorkloadsOverviewItems),\n ];\n this.events.on(\"remove\", (removedExtension) => {\n if (removedExtension.id === extension.id) {\n removeItems.forEach(remove => {\n remove();\n });\n }\n });\n return removeItems;\n });\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"makeObservable\"])(this);\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"observe\"])(this.instances, change => {\n switch (change.type) {\n case \"add\":\n if (this.instancesByName.has(change.newValue.name)) {\n throw new TypeError(\"Extension names must be unique\");\n }\n this.instancesByName.set(change.newValue.name, change.newValue);\n break;\n case \"delete\":\n this.instancesByName.delete(change.oldValue.name);\n break;\n case \"update\":\n throw new Error(\"Extension instances shouldn't be updated\");\n }\n });\n }\n get whenLoaded() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"when\"])(() => this.isLoaded);\n }\n get enabledExtensionInstances() {\n return [...this.instances.values()].filter(extension => extension.isEnabled);\n }\n get userExtensions() {\n const extensions = this.toJSON();\n extensions.forEach((ext, extId) => {\n if (ext.isBundled) {\n extensions.delete(extId);\n }\n });\n return extensions;\n }\n /**\n * Get the extension instance by its manifest name\n * @param name The name of the extension\n * @returns one of the following:\n * - the instance of `Main.LensExtension` on the main process if created\n * - the instance of `Renderer.LensExtension` on the renderer process if created\n * - `null` if no class definition is provided for the current process\n * - `undefined` if the name is not known about\n */\n getInstanceByName(name) {\n if (this.nonInstancesByName.has(name)) {\n return null;\n }\n return this.instancesByName.get(name);\n }\n // Transform userExtensions to a state object for storing into ExtensionsStore\n get storeState() {\n return Object.fromEntries(Array.from(this.userExtensions)\n .map(([extId, extension]) => [extId, {\n enabled: extension.isEnabled,\n name: extension.manifest.name,\n }]));\n }\n async init() {\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"]) {\n await this.initRenderer();\n }\n else {\n await this.initMain();\n }\n await Promise.all([this.whenLoaded]);\n // broadcasting extensions between main/renderer processes\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"reaction\"])(() => this.toJSON(), () => this.broadcastExtensions(), {\n fireImmediately: true,\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"reaction\"])(() => this.storeState, (state) => {\n this.dependencies.updateExtensionsState(state);\n });\n }\n initExtensions(extensions) {\n this.extensions.replace(extensions);\n }\n addExtension(extension) {\n this.extensions.set(extension.id, extension);\n }\n removeInstance(lensExtensionId) {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].info(`${logModule} deleting extension instance ${lensExtensionId}`);\n const instance = this.instances.get(lensExtensionId);\n if (!instance) {\n return;\n }\n try {\n instance.disable();\n this.events.emit(\"remove\", instance);\n this.instances.delete(lensExtensionId);\n this.nonInstancesByName.delete(instance.name);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: deactivation extension error`, { lensExtensionId, error });\n }\n }\n removeExtension(lensExtensionId) {\n this.removeInstance(lensExtensionId);\n if (!this.extensions.delete(lensExtensionId)) {\n throw new Error(`Can't remove extension ${lensExtensionId}, doesn't exist.`);\n }\n }\n setIsEnabled(lensExtensionId, isEnabled) {\n this.extensions.get(lensExtensionId).isEnabled = isEnabled;\n }\n async initMain() {\n this.isLoaded = true;\n this.loadOnMain();\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"ipcMainHandle\"])(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromMainChannel\"], () => {\n return Array.from(this.toJSON());\n });\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"ipcMainOn\"])(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromRendererChannel\"], (event, extensions) => {\n this.syncExtensions(extensions);\n });\n }\n async initRenderer() {\n const extensionListHandler = (extensions) => {\n this.isLoaded = true;\n this.syncExtensions(extensions);\n const receivedExtensionIds = extensions.map(([lensExtensionId]) => lensExtensionId);\n // Remove deleted extensions in renderer side only\n this.extensions.forEach((_, lensExtensionId) => {\n if (!receivedExtensionIds.includes(lensExtensionId)) {\n this.removeExtension(lensExtensionId);\n }\n });\n };\n Object(_renderer_ipc__WEBPACK_IMPORTED_MODULE_10__[\"requestExtensionLoaderInitialState\"])().then(extensionListHandler);\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"ipcRendererOn\"])(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromMainChannel\"], (event, extensions) => {\n extensionListHandler(extensions);\n });\n }\n broadcastExtensions() {\n const channel = electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"]\n ? _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromRendererChannel\"]\n : _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_9__[\"extensionLoaderFromMainChannel\"];\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_5__[\"broadcastMessage\"])(channel, Array.from(this.extensions));\n }\n syncExtensions(extensions) {\n extensions.forEach(([lensExtensionId, extension]) => {\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_2__[\"isEqual\"])(this.extensions.get(lensExtensionId), extension)) {\n this.extensions.set(lensExtensionId, extension);\n }\n });\n }\n loadOnMain() {\n this.autoInitExtensions(() => Promise.resolve([]));\n }\n async loadExtensions(installedExtensions, register) {\n // Steps of the function:\n // 1. require and call .activate for each Extension\n // 2. Wait until every extension's onActivate has been resolved\n // 3. Call .enable for each extension\n // 4. Return ExtensionLoading[]\n const extensions = [...installedExtensions.entries()]\n .map(([extId, extension]) => {\n const alreadyInit = this.instances.has(extId) || this.nonInstancesByName.has(extension.manifest.name);\n if (extension.isCompatible && extension.isEnabled && !alreadyInit) {\n try {\n const LensExtensionClass = this.requireExtension(extension);\n if (!LensExtensionClass) {\n this.nonInstancesByName.add(extension.manifest.name);\n return null;\n }\n const instance = this.dependencies.createExtensionInstance(LensExtensionClass, extension);\n this.instances.set(extId, instance);\n return {\n instance,\n installedExtension: extension,\n activated: instance.activate(),\n };\n }\n catch (err) {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: error loading extension`, { ext: extension, err });\n }\n }\n else if (!extension.isEnabled && alreadyInit) {\n this.removeInstance(extId);\n }\n return null;\n })\n // Remove null values\n .filter(extension => Boolean(extension));\n // We first need to wait until each extension's `onActivate` is resolved or rejected,\n // as this might register new catalog categories. Afterwards we can safely .enable the extension.\n await Promise.all(extensions.map(extension => \n // If extension activation fails, log error\n extension.activated.catch((error) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: activation extension error`, { ext: extension.installedExtension, error });\n })));\n // Return ExtensionLoading[]\n return extensions.map(extension => {\n const loaded = extension.instance.enable(register).catch((err) => {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: failed to enable`, { ext: extension, err });\n });\n return {\n isBundled: extension.installedExtension.isBundled,\n loaded,\n };\n });\n }\n autoInitExtensions(register) {\n // Setup reaction to load extensions on JSON changes\n Object(mobx__WEBPACK_IMPORTED_MODULE_3__[\"reaction\"])(() => this.toJSON(), installedExtensions => this.loadExtensions(installedExtensions, register));\n // Load initial extensions\n return this.loadExtensions(this.toJSON(), register);\n }\n requireExtension(extension) {\n const entryPointName = electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"] ? \"renderer\" : \"main\";\n const extRelativePath = extension.manifest[entryPointName];\n if (!extRelativePath) {\n return null;\n }\n const extAbsolutePath = path__WEBPACK_IMPORTED_MODULE_4___default.a.resolve(path__WEBPACK_IMPORTED_MODULE_4___default.a.join(path__WEBPACK_IMPORTED_MODULE_4___default.a.dirname(extension.manifestPath), extRelativePath));\n try {\n return require(extAbsolutePath).default;\n }\n catch (error) {\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcRenderer\"]) {\n console.error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error.stack || error}`, extension);\n }\n else {\n _main_logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${logModule}: can't load ${entryPointName} for \"${extension.manifest.name}\": ${error}`, { extension });\n }\n }\n return null;\n }\n getExtension(extId) {\n return this.extensions.get(extId);\n }\n getInstanceById(extId) {\n return this.instances.get(extId);\n }\n toJSON() {\n return Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"toJS\"])(this.extensions);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"observable\"],\n __metadata(\"design:type\", Object)\n], ExtensionLoader.prototype, \"isLoaded\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"computed\"],\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"enabledExtensionInstances\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"computed\"],\n __metadata(\"design:type\", Map),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"userExtensions\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ExtensionLoader.prototype, \"storeState\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], ExtensionLoader.prototype, \"init\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], ExtensionLoader.prototype, \"removeInstance\", null);\n\n\n//# sourceURL=webpack:///./src/extensions/extension-loader/extension-loader.ts?");
40816
40804
 
40817
40805
  /***/ }),
40818
40806
 
@@ -40932,7 +40920,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40932
40920
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40933
40921
 
40934
40922
  "use strict";
40935
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Disposers\", function() { return Disposers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LensExtension\", function() { return LensExtension; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sanitizeExtensionName\", function() { return sanitizeExtensionName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extensionDisplayName\", function() { return extensionDisplayName; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _lens_extension_set_dependencies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lens-extension-set-dependencies */ \"./src/extensions/lens-extension-set-dependencies.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar _a, _b;\n\n\n\n\nconst Disposers = Symbol();\nclass LensExtension {\n constructor({ id, manifest, manifestPath, isBundled }) {\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifest\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifestPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isBundled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"protocolHandlers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"_isEnabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, _a, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__[\"disposer\"])()\n });\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _b, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (dependencies) => {\n this.dependencies = dependencies;\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n this.id = id;\n this.manifest = manifest;\n this.manifestPath = manifestPath;\n this.isBundled = !!isBundled;\n }\n get isEnabled() {\n return this._isEnabled;\n }\n get name() {\n return this.manifest.name;\n }\n get version() {\n return this.manifest.version;\n }\n get description() {\n return this.manifest.description;\n }\n /**\n * getExtensionFileFolder returns the path to an already created folder. This\n * folder is for the sole use of this extension.\n *\n * Note: there is no security done on this folder, only obfuscation of the\n * folder name.\n */\n async getExtensionFileFolder() {\n return this.dependencies.fileSystemProvisionerStore.requestDirectory(this.id);\n }\n async enable(register) {\n if (this._isEnabled) {\n return;\n }\n try {\n this._isEnabled = true;\n this[Disposers].push(...await register(this));\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].info(`[EXTENSION]: enabled ${this.name}@${this.version}`);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`[EXTENSION]: failed to activate ${this.name}@${this.version}: ${error}`);\n }\n }\n async disable() {\n if (!this._isEnabled) {\n return;\n }\n this._isEnabled = false;\n try {\n await this.onDeactivate();\n this[Disposers]();\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].info(`[EXTENSION]: disabled ${this.name}@${this.version}`);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`[EXTENSION]: disabling ${this.name}@${this.version} threw an error: ${error}`);\n }\n }\n activate() {\n return this.onActivate();\n }\n onActivate() {\n return;\n }\n onDeactivate() {\n return;\n }\n}\n_a = Disposers, _b = _lens_extension_set_dependencies__WEBPACK_IMPORTED_MODULE_3__[\"setLensExtensionDependencies\"];\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", Object)\n], LensExtension.prototype, \"_isEnabled\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], LensExtension.prototype, \"isEnabled\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function]),\n __metadata(\"design:returntype\", Promise)\n], LensExtension.prototype, \"enable\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], LensExtension.prototype, \"disable\", 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], LensExtension.prototype, \"activate\", null);\nfunction sanitizeExtensionName(name) {\n return name.replace(\"@\", \"\").replace(\"/\", \"--\");\n}\nfunction extensionDisplayName(name, version) {\n return `${name}@${version}`;\n}\n\n\n//# sourceURL=webpack:///./src/extensions/lens-extension.ts?");
40923
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Disposers\", function() { return Disposers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LensExtension\", function() { return LensExtension; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sanitizeExtensionName\", function() { return sanitizeExtensionName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extensionDisplayName\", function() { return extensionDisplayName; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _lens_extension_set_dependencies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lens-extension-set-dependencies */ \"./src/extensions/lens-extension-set-dependencies.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar _a, _b;\n\n\n\n\nconst Disposers = Symbol();\nclass LensExtension {\n constructor({ id, manifest, manifestPath, isBundled }) {\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifest\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"manifestPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isBundled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"protocolHandlers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"_isEnabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, _a, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__[\"disposer\"])()\n });\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _b, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (dependencies) => {\n this.dependencies = dependencies;\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n this.id = id;\n this.manifest = manifest;\n this.manifestPath = manifestPath;\n this.isBundled = !!isBundled;\n }\n get isEnabled() {\n return this._isEnabled;\n }\n get name() {\n return this.manifest.name;\n }\n get version() {\n return this.manifest.version;\n }\n get description() {\n return this.manifest.description;\n }\n /**\n * getExtensionFileFolder returns the path to an already created folder. This\n * folder is for the sole use of this extension.\n *\n * Note: there is no security done on this folder, only obfuscation of the\n * folder name.\n */\n async getExtensionFileFolder() {\n return this.dependencies.fileSystemProvisionerStore.requestDirectory(this.id);\n }\n async enable(register) {\n if (this._isEnabled) {\n return;\n }\n try {\n this._isEnabled = true;\n this[Disposers].push(...await register(this));\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].info(`[EXTENSION]: enabled ${this.name}@${this.version}`);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`[EXTENSION]: failed to activate ${this.name}@${this.version}: ${error}`);\n }\n }\n async disable() {\n if (!this._isEnabled) {\n return;\n }\n this._isEnabled = false;\n try {\n await this.onDeactivate();\n this[Disposers]();\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].info(`[EXTENSION]: disabled ${this.name}@${this.version}`);\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(`[EXTENSION]: disabling ${this.name}@${this.version} threw an error: ${error}`);\n }\n }\n async activate() {\n return this.onActivate();\n }\n onActivate() {\n return;\n }\n onDeactivate() {\n return;\n }\n}\n_a = Disposers, _b = _lens_extension_set_dependencies__WEBPACK_IMPORTED_MODULE_3__[\"setLensExtensionDependencies\"];\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", Object)\n], LensExtension.prototype, \"_isEnabled\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], LensExtension.prototype, \"isEnabled\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function]),\n __metadata(\"design:returntype\", Promise)\n], LensExtension.prototype, \"enable\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], LensExtension.prototype, \"disable\", null);\nfunction sanitizeExtensionName(name) {\n return name.replace(\"@\", \"\").replace(\"/\", \"--\");\n}\nfunction extensionDisplayName(name, version) {\n return `${name}@${version}`;\n}\n\n\n//# sourceURL=webpack:///./src/extensions/lens-extension.ts?");
40936
40924
 
40937
40925
  /***/ }),
40938
40926
 
@@ -40944,7 +40932,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40944
40932
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40945
40933
 
40946
40934
  "use strict";
40947
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LensMainExtension\", function() { return LensMainExtension; });\n/* harmony import */ var _lens_extension__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lens-extension */ \"./src/extensions/lens-extension.ts\");\n/* harmony import */ var _main_window_manager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../main/window-manager */ \"./src/main/window-manager.ts\");\n/* harmony import */ var _main_catalog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../main/catalog */ \"./src/main/catalog/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass LensMainExtension extends _lens_extension__WEBPACK_IMPORTED_MODULE_0__[\"LensExtension\"] {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"appMenus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"trayMenus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n async navigate(pageId, params, frameId) {\n return _main_window_manager__WEBPACK_IMPORTED_MODULE_1__[\"WindowManager\"].getInstance().navigateExtension(this.id, pageId, params, frameId);\n }\n addCatalogSource(id, source) {\n _main_catalog__WEBPACK_IMPORTED_MODULE_2__[\"catalogEntityRegistry\"].addObservableSource(`${this.name}:${id}`, source);\n }\n removeCatalogSource(id) {\n _main_catalog__WEBPACK_IMPORTED_MODULE_2__[\"catalogEntityRegistry\"].removeSource(`${this.name}:${id}`);\n }\n}\n\n\n//# sourceURL=webpack:///./src/extensions/lens-main-extension.ts?");
40935
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LensMainExtension\", function() { return LensMainExtension; });\n/* harmony import */ var _lens_extension__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lens-extension */ \"./src/extensions/lens-extension.ts\");\n/* harmony import */ var _main_window_manager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../main/window-manager */ \"./src/main/window-manager.ts\");\n/* harmony import */ var _main_catalog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../main/catalog */ \"./src/main/catalog/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass LensMainExtension extends _lens_extension__WEBPACK_IMPORTED_MODULE_0__[\"LensExtension\"] {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"appMenus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"trayMenus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * implement this to modify the shell environment that Lens terminals are opened with. The ShellEnvModifier type has the signature\n *\n * (ctx: ShellEnvContext, env: Record<string, string | undefined>) => Record<string, string | undefined>\n *\n * @param ctx the shell environment context, specifically the relevant catalog entity for the terminal. This can be used, for example, to get\n * cluster-specific information that can be made available in the shell environment by the implementation of terminalShellEnvModifier\n *\n * @param env the current shell environment that the terminal will be opened with. The implementation should modify this as desired.\n *\n * @returns the modified shell environment that the terminal will be opened with. The implementation must return env as passed in, if it\n * does not modify the shell environment\n */\n Object.defineProperty(this, \"terminalShellEnvModifier\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n async navigate(pageId, params, frameId) {\n return _main_window_manager__WEBPACK_IMPORTED_MODULE_1__[\"WindowManager\"].getInstance().navigateExtension(this.id, pageId, params, frameId);\n }\n addCatalogSource(id, source) {\n _main_catalog__WEBPACK_IMPORTED_MODULE_2__[\"catalogEntityRegistry\"].addObservableSource(`${this.name}:${id}`, source);\n }\n removeCatalogSource(id) {\n _main_catalog__WEBPACK_IMPORTED_MODULE_2__[\"catalogEntityRegistry\"].removeSource(`${this.name}:${id}`);\n }\n}\n\n\n//# sourceURL=webpack:///./src/extensions/lens-main-extension.ts?");
40948
40936
 
40949
40937
  /***/ }),
40950
40938
 
@@ -41364,7 +41352,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
41364
41352
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
41365
41353
 
41366
41354
  "use strict";
41367
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WindowManager\", function() { return WindowManager; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var electron_window_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! electron-window-state */ \"./node_modules/electron-window-state/index.js\");\n/* harmony import */ var electron_window_state__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(electron_window_state__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _common_ipc__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/ipc */ \"./src/common/ipc/index.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/cluster-frames */ \"./src/common/cluster-frames.ts\");\n/* harmony import */ var _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../renderer/navigation/events */ \"./src/renderer/navigation/events.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _lens_proxy__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./lens-proxy */ \"./src/main/lens-proxy.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\nfunction isHideable(window) {\n return Boolean(window && !window.isDestroyed());\n}\nclass WindowManager extends _common_utils__WEBPACK_IMPORTED_MODULE_5__[\"Singleton\"] {\n constructor() {\n super();\n Object.defineProperty(this, \"mainWindow\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"splashWindow\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"windowState\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"disposers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"activeClusterId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n this.bindEvents();\n }\n get mainUrl() {\n return `http://localhost:${_lens_proxy__WEBPACK_IMPORTED_MODULE_10__[\"LensProxy\"].getInstance().port}`;\n }\n async initMainWindow(showSplash) {\n var _a;\n // Manage main window size and position with state persistence\n if (!this.windowState) {\n this.windowState = electron_window_state__WEBPACK_IMPORTED_MODULE_2___default()({\n defaultHeight: 900,\n defaultWidth: 1440,\n });\n }\n if (!this.mainWindow) {\n // show icon in dock (mac-os only)\n (_a = electron__WEBPACK_IMPORTED_MODULE_1__[\"app\"].dock) === null || _a === void 0 ? void 0 : _a.show();\n const { width, height, x, y } = this.windowState;\n this.mainWindow = new electron__WEBPACK_IMPORTED_MODULE_1__[\"BrowserWindow\"]({\n x, y, width, height,\n title: _common_vars__WEBPACK_IMPORTED_MODULE_9__[\"productName\"],\n show: false,\n minWidth: 700,\n minHeight: 500,\n titleBarStyle: _common_vars__WEBPACK_IMPORTED_MODULE_9__[\"isMac\"] ? \"hiddenInset\" : \"hidden\",\n frame: _common_vars__WEBPACK_IMPORTED_MODULE_9__[\"isMac\"],\n backgroundColor: \"#1e2124\",\n webPreferences: {\n nodeIntegration: true,\n nodeIntegrationInSubFrames: true,\n webviewTag: true,\n contextIsolation: false,\n nativeWindowOpen: false,\n },\n });\n this.windowState.manage(this.mainWindow);\n // open external links in default browser (target=_blank, window.open)\n this.mainWindow\n .on(\"focus\", () => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"focus\" });\n })\n .on(\"blur\", () => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"blur\" });\n })\n .on(\"closed\", () => {\n var _a;\n // clean up\n this.windowState.unmanage();\n this.mainWindow = null;\n this.splashWindow = null;\n (_a = electron__WEBPACK_IMPORTED_MODULE_1__[\"app\"].dock) === null || _a === void 0 ? void 0 : _a.hide(); // hide icon in dock (mac-os)\n })\n .webContents\n .on(\"dom-ready\", () => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"dom-ready\" });\n })\n .on(\"did-fail-load\", (_event, code, desc) => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(`[WINDOW-MANAGER]: Failed to load Main window`, { code, desc });\n })\n .on(\"did-finish-load\", () => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].info(\"[WINDOW-MANAGER]: Main window loaded\");\n })\n .on(\"will-attach-webview\", (event, webPreferences, params) => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].debug(\"[WINDOW-MANAGER]: Attaching webview\");\n // Following is security recommendations because we allow webview tag (webviewTag: true)\n // suggested by https://www.electronjs.org/docs/tutorial/security#11-verify-webview-options-before-creation\n // and https://www.electronjs.org/docs/tutorial/security#10-do-not-use-allowpopups\n if (webPreferences.preload) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].warn(\"[WINDOW-MANAGER]: Strip away preload scripts of webview\");\n delete webPreferences.preload;\n }\n // @ts-expect-error some electron version uses webPreferences.preloadURL/webPreferences.preload\n if (webPreferences.preloadURL) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].warn(\"[WINDOW-MANAGER]: Strip away preload scripts of webview\");\n delete webPreferences.preload;\n }\n if (params.allowpopups) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].warn(\"[WINDOW-MANAGER]: We do not allow allowpopups props, stop webview from renderer\");\n // event.preventDefault() will destroy the guest page.\n event.preventDefault();\n return;\n }\n // Always disable Node.js integration for all webviews\n webPreferences.nodeIntegration = false;\n })\n .setWindowOpenHandler((details) => {\n electron__WEBPACK_IMPORTED_MODULE_1__[\"shell\"].openExternal(details.url);\n return { action: \"deny\" };\n });\n }\n try {\n if (showSplash)\n await this.showSplash();\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].info(`[WINDOW-MANAGER]: Loading Main window from url: ${this.mainUrl} ...`);\n await this.mainWindow.loadURL(this.mainUrl);\n }\n catch (error) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(\"Loading main window failed\", { error });\n electron__WEBPACK_IMPORTED_MODULE_1__[\"dialog\"].showErrorBox(\"ERROR!\", error.toString());\n }\n }\n bindEvents() {\n // track visible cluster from ui\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_4__[\"ipcMainOn\"])(_renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].CLUSTER_VIEW_CURRENT_ID, (event, clusterId) => {\n this.activeClusterId = clusterId;\n });\n }\n async ensureMainWindow(showSplash = true) {\n var _a;\n // This needs to be ready to hear the IPC message before the window is loaded\n let viewHasLoaded = Promise.resolve();\n if (!this.mainWindow) {\n viewHasLoaded = new Promise(resolve => {\n electron__WEBPACK_IMPORTED_MODULE_1__[\"ipcMain\"].once(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_11__[\"bundledExtensionsLoaded\"], () => resolve());\n });\n await this.initMainWindow(showSplash);\n }\n try {\n await viewHasLoaded;\n await Object(_common_utils__WEBPACK_IMPORTED_MODULE_5__[\"delay\"])(50); // wait just a bit longer to let the first round of rendering happen\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].info(\"[WINDOW-MANAGER]: Main window has reported that it has loaded\");\n this.mainWindow.show();\n (_a = this.splashWindow) === null || _a === void 0 ? void 0 : _a.close();\n this.splashWindow = undefined;\n setTimeout(() => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"start\" });\n }, 1000);\n }\n catch (error) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(`Showing main window failed: ${error.stack || error}`);\n electron__WEBPACK_IMPORTED_MODULE_1__[\"dialog\"].showErrorBox(\"ERROR!\", error.toString());\n }\n return this.mainWindow;\n }\n sendToView({ channel, frameInfo, data = [] }) {\n if (frameInfo) {\n this.mainWindow.webContents.sendToFrame([frameInfo.processId, frameInfo.frameId], channel, ...data);\n }\n else {\n this.mainWindow.webContents.send(channel, ...data);\n }\n }\n async navigateExtension(extId, pageId, params, frameId) {\n await this.ensureMainWindow();\n const frameInfo = _common_utils__WEBPACK_IMPORTED_MODULE_5__[\"iter\"].find(_common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__[\"clusterFrameMap\"].values(), frameInfo => frameInfo.frameId === frameId);\n this.sendToView({\n channel: \"extension:navigate\",\n frameInfo,\n data: [extId, pageId, params],\n });\n }\n async navigate(url, frameId) {\n await this.ensureMainWindow();\n const frameInfo = _common_utils__WEBPACK_IMPORTED_MODULE_5__[\"iter\"].find(_common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__[\"clusterFrameMap\"].values(), frameInfo => frameInfo.frameId === frameId);\n const channel = frameInfo\n ? _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].NAVIGATE_IN_CLUSTER\n : _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].NAVIGATE_IN_APP;\n this.sendToView({\n channel,\n frameInfo,\n data: [url],\n });\n }\n reload() {\n const frameInfo = _common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__[\"clusterFrameMap\"].get(this.activeClusterId);\n if (frameInfo) {\n this.sendToView({ channel: _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].RELOAD_PAGE, frameInfo });\n }\n else {\n electron__WEBPACK_IMPORTED_MODULE_1__[\"webContents\"].getAllWebContents().filter(wc => wc.getType() === \"window\").forEach(wc => {\n wc.reload();\n wc.clearHistory();\n });\n }\n }\n async showSplash() {\n if (!this.splashWindow) {\n this.splashWindow = new electron__WEBPACK_IMPORTED_MODULE_1__[\"BrowserWindow\"]({\n width: 500,\n height: 300,\n backgroundColor: \"#1e2124\",\n center: true,\n frame: false,\n resizable: false,\n show: false,\n webPreferences: {\n nodeIntegration: true,\n contextIsolation: false,\n nodeIntegrationInSubFrames: true,\n nativeWindowOpen: true,\n },\n });\n await this.splashWindow.loadURL(\"static://splash.html\");\n }\n this.splashWindow.show();\n }\n hide() {\n if (isHideable(this.mainWindow)) {\n this.mainWindow.hide();\n }\n if (isHideable(this.splashWindow)) {\n this.splashWindow.hide();\n }\n }\n destroy() {\n this.mainWindow.destroy();\n this.splashWindow.destroy();\n this.mainWindow = null;\n this.splashWindow = null;\n Object.entries(this.disposers).forEach(([name, dispose]) => {\n dispose();\n delete this.disposers[name];\n });\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", String)\n], WindowManager.prototype, \"activeClusterId\", void 0);\n\n\n//# sourceURL=webpack:///./src/main/window-manager.ts?");
41355
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WindowManager\", function() { return WindowManager; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var electron_window_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! electron-window-state */ \"./node_modules/electron-window-state/index.js\");\n/* harmony import */ var electron_window_state__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(electron_window_state__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _common_ipc__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/ipc */ \"./src/common/ipc/index.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/cluster-frames */ \"./src/common/cluster-frames.ts\");\n/* harmony import */ var _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../renderer/navigation/events */ \"./src/renderer/navigation/events.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _lens_proxy__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./lens-proxy */ \"./src/main/lens-proxy.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\nfunction isHideable(window) {\n return Boolean(window && !window.isDestroyed());\n}\nclass WindowManager extends _common_utils__WEBPACK_IMPORTED_MODULE_5__[\"Singleton\"] {\n constructor() {\n super();\n Object.defineProperty(this, \"mainWindow\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"splashWindow\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"windowState\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"disposers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"activeClusterId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n this.bindEvents();\n }\n get mainUrl() {\n return `http://localhost:${_lens_proxy__WEBPACK_IMPORTED_MODULE_10__[\"LensProxy\"].getInstance().port}`;\n }\n async initMainWindow(showSplash) {\n var _a;\n // Manage main window size and position with state persistence\n if (!this.windowState) {\n this.windowState = electron_window_state__WEBPACK_IMPORTED_MODULE_2___default()({\n defaultHeight: 900,\n defaultWidth: 1440,\n });\n }\n if (!this.mainWindow) {\n // show icon in dock (mac-os only)\n (_a = electron__WEBPACK_IMPORTED_MODULE_1__[\"app\"].dock) === null || _a === void 0 ? void 0 : _a.show();\n const { width, height, x, y } = this.windowState;\n this.mainWindow = new electron__WEBPACK_IMPORTED_MODULE_1__[\"BrowserWindow\"]({\n x, y, width, height,\n title: _common_vars__WEBPACK_IMPORTED_MODULE_9__[\"productName\"],\n show: false,\n minWidth: 700,\n minHeight: 500,\n titleBarStyle: _common_vars__WEBPACK_IMPORTED_MODULE_9__[\"isMac\"] ? \"hiddenInset\" : \"hidden\",\n frame: _common_vars__WEBPACK_IMPORTED_MODULE_9__[\"isMac\"],\n backgroundColor: \"#1e2124\",\n webPreferences: {\n nodeIntegration: true,\n nodeIntegrationInSubFrames: true,\n webviewTag: true,\n contextIsolation: false,\n nativeWindowOpen: false,\n },\n });\n this.windowState.manage(this.mainWindow);\n // open external links in default browser (target=_blank, window.open)\n this.mainWindow\n .on(\"focus\", () => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"focus\" });\n })\n .on(\"blur\", () => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"blur\" });\n })\n .on(\"closed\", () => {\n var _a;\n // clean up\n this.windowState.unmanage();\n this.mainWindow = null;\n this.splashWindow = null;\n (_a = electron__WEBPACK_IMPORTED_MODULE_1__[\"app\"].dock) === null || _a === void 0 ? void 0 : _a.hide(); // hide icon in dock (mac-os)\n })\n .webContents\n .on(\"dom-ready\", () => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"dom-ready\" });\n })\n .on(\"did-fail-load\", (_event, code, desc) => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(`[WINDOW-MANAGER]: Failed to load Main window`, { code, desc });\n })\n .on(\"did-finish-load\", () => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].info(\"[WINDOW-MANAGER]: Main window loaded\");\n })\n .on(\"will-attach-webview\", (event, webPreferences, params) => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].debug(\"[WINDOW-MANAGER]: Attaching webview\");\n // Following is security recommendations because we allow webview tag (webviewTag: true)\n // suggested by https://www.electronjs.org/docs/tutorial/security#11-verify-webview-options-before-creation\n // and https://www.electronjs.org/docs/tutorial/security#10-do-not-use-allowpopups\n if (webPreferences.preload) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].warn(\"[WINDOW-MANAGER]: Strip away preload scripts of webview\");\n delete webPreferences.preload;\n }\n // @ts-expect-error some electron version uses webPreferences.preloadURL/webPreferences.preload\n if (webPreferences.preloadURL) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].warn(\"[WINDOW-MANAGER]: Strip away preload scripts of webview\");\n delete webPreferences.preload;\n }\n if (params.allowpopups) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].warn(\"[WINDOW-MANAGER]: We do not allow allowpopups props, stop webview from renderer\");\n // event.preventDefault() will destroy the guest page.\n event.preventDefault();\n return;\n }\n // Always disable Node.js integration for all webviews\n webPreferences.nodeIntegration = false;\n })\n .setWindowOpenHandler((details) => {\n Object(_common_utils__WEBPACK_IMPORTED_MODULE_5__[\"openBrowser\"])(details.url).catch(error => {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(\"[WINDOW-MANAGER]: failed to open browser\", { error });\n });\n return { action: \"deny\" };\n });\n }\n try {\n if (showSplash)\n await this.showSplash();\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].info(`[WINDOW-MANAGER]: Loading Main window from url: ${this.mainUrl} ...`);\n await this.mainWindow.loadURL(this.mainUrl);\n }\n catch (error) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(\"Loading main window failed\", { error });\n electron__WEBPACK_IMPORTED_MODULE_1__[\"dialog\"].showErrorBox(\"ERROR!\", error.toString());\n }\n }\n bindEvents() {\n // track visible cluster from ui\n Object(_common_ipc__WEBPACK_IMPORTED_MODULE_4__[\"ipcMainOn\"])(_renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].CLUSTER_VIEW_CURRENT_ID, (event, clusterId) => {\n this.activeClusterId = clusterId;\n });\n }\n async ensureMainWindow(showSplash = true) {\n var _a;\n // This needs to be ready to hear the IPC message before the window is loaded\n let viewHasLoaded = Promise.resolve();\n if (!this.mainWindow) {\n viewHasLoaded = new Promise(resolve => {\n electron__WEBPACK_IMPORTED_MODULE_1__[\"ipcMain\"].once(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_11__[\"bundledExtensionsLoaded\"], () => resolve());\n });\n await this.initMainWindow(showSplash);\n }\n try {\n await viewHasLoaded;\n await Object(_common_utils__WEBPACK_IMPORTED_MODULE_5__[\"delay\"])(50); // wait just a bit longer to let the first round of rendering happen\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].info(\"[WINDOW-MANAGER]: Main window has reported that it has loaded\");\n this.mainWindow.show();\n (_a = this.splashWindow) === null || _a === void 0 ? void 0 : _a.close();\n this.splashWindow = undefined;\n setTimeout(() => {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_3__[\"appEventBus\"].emit({ name: \"app\", action: \"start\" });\n }, 1000);\n }\n catch (error) {\n _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].error(`Showing main window failed: ${error.stack || error}`);\n electron__WEBPACK_IMPORTED_MODULE_1__[\"dialog\"].showErrorBox(\"ERROR!\", error.toString());\n }\n return this.mainWindow;\n }\n sendToView({ channel, frameInfo, data = [] }) {\n if (frameInfo) {\n this.mainWindow.webContents.sendToFrame([frameInfo.processId, frameInfo.frameId], channel, ...data);\n }\n else {\n this.mainWindow.webContents.send(channel, ...data);\n }\n }\n async navigateExtension(extId, pageId, params, frameId) {\n await this.ensureMainWindow();\n const frameInfo = _common_utils__WEBPACK_IMPORTED_MODULE_5__[\"iter\"].find(_common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__[\"clusterFrameMap\"].values(), frameInfo => frameInfo.frameId === frameId);\n this.sendToView({\n channel: \"extension:navigate\",\n frameInfo,\n data: [extId, pageId, params],\n });\n }\n async navigate(url, frameId) {\n await this.ensureMainWindow();\n const frameInfo = _common_utils__WEBPACK_IMPORTED_MODULE_5__[\"iter\"].find(_common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__[\"clusterFrameMap\"].values(), frameInfo => frameInfo.frameId === frameId);\n const channel = frameInfo\n ? _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].NAVIGATE_IN_CLUSTER\n : _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].NAVIGATE_IN_APP;\n this.sendToView({\n channel,\n frameInfo,\n data: [url],\n });\n }\n reload() {\n const frameInfo = _common_cluster_frames__WEBPACK_IMPORTED_MODULE_6__[\"clusterFrameMap\"].get(this.activeClusterId);\n if (frameInfo) {\n this.sendToView({ channel: _renderer_navigation_events__WEBPACK_IMPORTED_MODULE_7__[\"IpcRendererNavigationEvents\"].RELOAD_PAGE, frameInfo });\n }\n else {\n electron__WEBPACK_IMPORTED_MODULE_1__[\"webContents\"].getAllWebContents().filter(wc => wc.getType() === \"window\").forEach(wc => {\n wc.reload();\n wc.clearHistory();\n });\n }\n }\n async showSplash() {\n if (!this.splashWindow) {\n this.splashWindow = new electron__WEBPACK_IMPORTED_MODULE_1__[\"BrowserWindow\"]({\n width: 500,\n height: 300,\n backgroundColor: \"#1e2124\",\n center: true,\n frame: false,\n resizable: false,\n show: false,\n webPreferences: {\n nodeIntegration: true,\n contextIsolation: false,\n nodeIntegrationInSubFrames: true,\n nativeWindowOpen: true,\n },\n });\n await this.splashWindow.loadURL(\"static://splash.html\");\n }\n this.splashWindow.show();\n }\n hide() {\n if (isHideable(this.mainWindow)) {\n this.mainWindow.hide();\n }\n if (isHideable(this.splashWindow)) {\n this.splashWindow.hide();\n }\n }\n destroy() {\n this.mainWindow.destroy();\n this.splashWindow.destroy();\n this.mainWindow = null;\n this.splashWindow = null;\n Object.entries(this.disposers).forEach(([name, dispose]) => {\n dispose();\n delete this.disposers[name];\n });\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", String)\n], WindowManager.prototype, \"activeClusterId\", void 0);\n\n\n//# sourceURL=webpack:///./src/main/window-manager.ts?");
41368
41356
 
41369
41357
  /***/ }),
41370
41358
 
@@ -41436,7 +41424,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _com
41436
41424
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
41437
41425
 
41438
41426
  "use strict";
41439
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"migrationLog\", function() { return migrationLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinMigrations\", function() { return joinMigrations; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nfunction migrationLog(...args) {\n if (!_common_vars__WEBPACK_IMPORTED_MODULE_1__[\"isTestEnv\"]) {\n console.log(...args);\n }\n}\nfunction joinMigrations(...declarations) {\n const migrations = new _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"ExtendedMap\"]();\n for (const decl of declarations) {\n migrations.getOrInsert(decl.version, () => []).push(decl.run);\n }\n return Object.fromEntries(_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"iter\"].map(migrations, ([v, fns]) => [v, (store) => {\n migrationLog(`Running ${v} migration for ${store.path}`);\n for (const fn of fns) {\n fn(store);\n }\n }]));\n}\n\n\n//# sourceURL=webpack:///./src/migrations/helpers.ts?");
41427
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"migrationLog\", function() { return migrationLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinMigrations\", function() { return joinMigrations; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nfunction migrationLog(...args) {\n if (!_common_vars__WEBPACK_IMPORTED_MODULE_1__[\"isTestEnv\"]) {\n console.log(...args);\n }\n}\nfunction joinMigrations(...declarations) {\n const migrations = new Map();\n for (const decl of declarations) {\n Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsert\"])(migrations, decl.version, []).push(decl.run);\n }\n return Object.fromEntries(_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"iter\"].map(migrations, ([v, fns]) => [v, (store) => {\n migrationLog(`Running ${v} migration for ${store.path}`);\n for (const fn of fns) {\n fn(store);\n }\n }]));\n}\n\n\n//# sourceURL=webpack:///./src/migrations/helpers.ts?");
41440
41428
 
41441
41429
  /***/ }),
41442
41430
 
@@ -41604,7 +41592,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
41604
41592
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
41605
41593
 
41606
41594
  "use strict";
41607
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebSocketApiState\", function() { return WebSocketApiState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebSocketApi\", function() { return WebSocketApi; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"events\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\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\nvar WebSocketApiState;\n(function (WebSocketApiState) {\n WebSocketApiState[\"PENDING\"] = \"pending\";\n WebSocketApiState[\"OPEN\"] = \"open\";\n WebSocketApiState[\"CONNECTING\"] = \"connecting\";\n WebSocketApiState[\"RECONNECTING\"] = \"reconnecting\";\n WebSocketApiState[\"CLOSED\"] = \"closed\";\n})(WebSocketApiState || (WebSocketApiState = {}));\nclass WebSocketApi extends events__WEBPACK_IMPORTED_MODULE_1___default.a {\n constructor(params) {\n super();\n Object.defineProperty(this, \"socket\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pendingCommands\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"reconnectTimer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pingTimer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyState\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: WebSocketApiState.PENDING\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n this.params = Object.assign({}, WebSocketApi.defaultParams, params);\n const { pingInterval } = this.params;\n if (pingInterval) {\n this.pingTimer = setInterval(() => this.ping(), pingInterval * 1000);\n }\n }\n get isConnected() {\n var _a;\n return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN && this.isOnline;\n }\n get isOnline() {\n return navigator.onLine;\n }\n connect(url) {\n var _a;\n // close previous connection first\n (_a = this.socket) === null || _a === void 0 ? void 0 : _a.close();\n // start new connection\n this.socket = new WebSocket(url);\n this.socket.addEventListener(\"open\", ev => this._onOpen(ev));\n this.socket.addEventListener(\"message\", ev => this._onMessage(ev));\n this.socket.addEventListener(\"error\", ev => this._onError(ev));\n this.socket.addEventListener(\"close\", ev => this._onClose(ev));\n this.readyState = WebSocketApiState.CONNECTING;\n }\n ping() {\n if (this.isConnected) {\n this.send(this.params.pingMessage);\n }\n }\n reconnect() {\n if (!this.socket) {\n return void console.error(\"[WEBSOCKET-API]: cannot reconnect to a socket that is not connected\");\n }\n this.connect(this.socket.url);\n }\n destroy() {\n if (!this.socket)\n return;\n this.socket.close();\n this.socket = null;\n this.pendingCommands = [];\n this.clearAllListeners();\n clearTimeout(this.reconnectTimer);\n clearInterval(this.pingTimer);\n this.readyState = WebSocketApiState.PENDING;\n }\n clearAllListeners() {\n for (const name of this.eventNames()) {\n this.removeAllListeners(name);\n }\n }\n send(command) {\n if (this.isConnected) {\n this.socket.send(command);\n }\n else {\n this.pendingCommands.push(command);\n }\n }\n flush() {\n for (const command of this.pendingCommands) {\n this.send(command);\n }\n this.pendingCommands.length = 0;\n }\n _onOpen(evt) {\n this.emit(\"open\", ...[]);\n if (this.params.flushOnOpen)\n this.flush();\n this.readyState = WebSocketApiState.OPEN;\n this.writeLog(\"%cOPEN\", \"color:green;font-weight:bold;\", evt);\n }\n _onMessage({ data }) {\n this.emit(\"data\", ...[data]);\n this.writeLog(\"%cMESSAGE\", \"color:black;font-weight:bold;\", data);\n }\n _onError(evt) {\n this.writeLog(\"%cERROR\", \"color:red;font-weight:bold;\", evt);\n }\n _onClose(evt) {\n const error = evt.code !== 1000 || !evt.wasClean;\n if (error) {\n const { reconnectDelay } = this.params;\n if (reconnectDelay) {\n const url = this.socket.url;\n this.writeLog(\"will reconnect in\", `${reconnectDelay}s`);\n this.reconnectTimer = setTimeout(() => this.connect(url), reconnectDelay * 1000);\n this.readyState = WebSocketApiState.RECONNECTING;\n }\n }\n else {\n this.readyState = WebSocketApiState.CLOSED;\n this.emit(\"close\", ...[]);\n }\n this.writeLog(\"%cCLOSE\", `color:${error ? \"red\" : \"black\"};font-weight:bold;`, evt);\n }\n writeLog(...data) {\n if (this.params.logging) {\n console.debug(...data);\n }\n }\n}\nObject.defineProperty(WebSocketApi, \"defaultParams\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n logging: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"isDevelopment\"],\n reconnectDelay: 10,\n flushOnOpen: true,\n pingMessage: \"PING\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", Object)\n], WebSocketApi.prototype, \"readyState\", void 0);\n\n\n//# sourceURL=webpack:///./src/renderer/api/websocket-api.ts?");
41595
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebSocketApiState\", function() { return WebSocketApiState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebSocketApi\", function() { return WebSocketApi; });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"events\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\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\nvar WebSocketApiState;\n(function (WebSocketApiState) {\n WebSocketApiState[\"PENDING\"] = \"pending\";\n WebSocketApiState[\"OPEN\"] = \"open\";\n WebSocketApiState[\"CONNECTING\"] = \"connecting\";\n WebSocketApiState[\"RECONNECTING\"] = \"reconnecting\";\n WebSocketApiState[\"CLOSED\"] = \"closed\";\n})(WebSocketApiState || (WebSocketApiState = {}));\nclass WebSocketApi extends events__WEBPACK_IMPORTED_MODULE_1___default.a {\n constructor(params) {\n super();\n Object.defineProperty(this, \"socket\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pendingCommands\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"reconnectTimer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"pingTimer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"readyState\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: WebSocketApiState.PENDING\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_0__[\"makeObservable\"])(this);\n this.params = Object.assign({}, WebSocketApi.defaultParams, params);\n const { pingInterval } = this.params;\n if (pingInterval) {\n this.pingTimer = setInterval(() => this.ping(), pingInterval * 1000);\n }\n }\n get isConnected() {\n var _a;\n return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN && this.isOnline;\n }\n get isOnline() {\n return navigator.onLine;\n }\n connect(url) {\n var _a;\n // close previous connection first\n (_a = this.socket) === null || _a === void 0 ? void 0 : _a.close();\n // start new connection\n this.socket = new WebSocket(url);\n this.socket.addEventListener(\"open\", ev => this._onOpen(ev));\n this.socket.addEventListener(\"message\", ev => this._onMessage(ev));\n this.socket.addEventListener(\"error\", ev => this._onError(ev));\n this.socket.addEventListener(\"close\", ev => this._onClose(ev));\n this.readyState = WebSocketApiState.CONNECTING;\n }\n ping() {\n if (this.isConnected) {\n this.send(this.params.pingMessage);\n }\n }\n reconnect() {\n if (!this.socket) {\n return void console.error(\"[WEBSOCKET-API]: cannot reconnect to a socket that is not connected\");\n }\n this.connect(this.socket.url);\n }\n destroy() {\n if (!this.socket)\n return;\n this.socket.close();\n this.socket = null;\n this.pendingCommands = [];\n this.clearAllListeners();\n clearTimeout(this.reconnectTimer);\n clearInterval(this.pingTimer);\n this.readyState = WebSocketApiState.PENDING;\n }\n clearAllListeners() {\n for (const name of this.eventNames()) {\n this.removeAllListeners(name);\n }\n }\n send(command) {\n if (this.isConnected) {\n this.socket.send(command);\n }\n else {\n this.pendingCommands.push(command);\n }\n }\n flush() {\n for (const command of this.pendingCommands) {\n this.send(command);\n }\n this.pendingCommands.length = 0;\n }\n _onOpen(evt) {\n this.emit(\"open\", ...[]);\n if (this.params.flushOnOpen)\n this.flush();\n this.readyState = WebSocketApiState.OPEN;\n this.writeLog(\"%cOPEN\", \"color:green;font-weight:bold;\", evt);\n }\n _onMessage({ data }) {\n this.emit(\"data\", ...[data]);\n this.writeLog(\"%cMESSAGE\", \"color:black;font-weight:bold;\", data);\n }\n _onError(evt) {\n this.writeLog(\"%cERROR\", \"color:red;font-weight:bold;\", evt);\n }\n _onClose(evt) {\n const error = evt.code !== 1000 || !evt.wasClean;\n if (error) {\n const { reconnectDelay } = this.params;\n if (reconnectDelay && this.socket) {\n const url = this.socket.url;\n this.writeLog(\"will reconnect in\", `${reconnectDelay}s`);\n this.reconnectTimer = setTimeout(() => this.connect(url), reconnectDelay * 1000);\n this.readyState = WebSocketApiState.RECONNECTING;\n }\n }\n else {\n this.readyState = WebSocketApiState.CLOSED;\n this.emit(\"close\", ...[]);\n }\n this.writeLog(\"%cCLOSE\", `color:${error ? \"red\" : \"black\"};font-weight:bold;`, evt);\n }\n writeLog(...data) {\n if (this.params.logging) {\n console.debug(...data);\n }\n }\n}\nObject.defineProperty(WebSocketApi, \"defaultParams\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n logging: _common_vars__WEBPACK_IMPORTED_MODULE_2__[\"isDevelopment\"],\n reconnectDelay: 10,\n flushOnOpen: true,\n pingMessage: \"PING\",\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_0__[\"observable\"],\n __metadata(\"design:type\", Object)\n], WebSocketApi.prototype, \"readyState\", void 0);\n\n\n//# sourceURL=webpack:///./src/renderer/api/websocket-api.ts?");
41608
41596
 
41609
41597
  /***/ }),
41610
41598
 
@@ -43307,7 +43295,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
43307
43295
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
43308
43296
 
43309
43297
  "use strict";
43310
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ItemListLayout\", function() { return ItemListLayout; });\n/* harmony import */ var _item_list_layout_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./item-list-layout.scss */ \"./src/renderer/components/item-object-list/item-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 _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _page_filters_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./page-filters.store */ \"./src/renderer/components/item-object-list/page-filters.store.ts\");\n/* harmony import */ var _page_filters_list__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./page-filters-list */ \"./src/renderer/components/item-object-list/page-filters-list.tsx\");\n/* harmony import */ var _namespaces_namespace_store_namespace_store_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../+namespaces/namespace-store/namespace-store.injectable */ \"./src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _storage_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./storage.injectable */ \"./src/renderer/components/item-object-list/storage.injectable.ts\");\n/* harmony import */ var _content__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./content */ \"./src/renderer/components/item-object-list/content.tsx\");\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./header */ \"./src/renderer/components/item-object-list/header.tsx\");\n/* harmony import */ var lodash_groupBy__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lodash/groupBy */ \"./node_modules/lodash/groupBy.js\");\n/* harmony import */ var lodash_groupBy__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(lodash_groupBy__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _filters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./filters */ \"./src/renderer/components/item-object-list/filters.tsx\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultProps = {\n showHeader: true,\n isSelectable: true,\n isConfigurable: false,\n copyClassNameFromHeadCells: true,\n preloadStores: true,\n dependentStores: [],\n searchFilters: [],\n customizeHeader: [],\n filterItems: [],\n hasDetailsView: true,\n onDetails: _utils__WEBPACK_IMPORTED_MODULE_3__[\"noop\"],\n virtual: true,\n customizeTableRowProps: () => ({}),\n failedToLoadMessage: \"Failed to load items\",\n};\nlet NonInjectedItemListLayout = class NonInjectedItemListLayout extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"filterCallbacks\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n [_page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"FilterType\"].SEARCH]: items => {\n const { searchFilters } = this.props;\n const search = _page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"pageFilters\"].getValues(_page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"FilterType\"].SEARCH)[0] || \"\";\n if (search && searchFilters.length) {\n const normalizeText = (text) => String(text).toLowerCase();\n const searchTexts = [search].map(normalizeText);\n return items.filter(item => {\n return searchFilters.some(getTexts => {\n const sourceTexts = [getTexts(item)].flat().map(normalizeText);\n return sourceTexts.some(source => searchTexts.some(search => source.includes(search)));\n });\n });\n }\n return items;\n },\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n }\n async componentDidMount() {\n const { isConfigurable, tableId, preloadStores } = this.props;\n if (isConfigurable && !tableId) {\n throw new Error(\"[ItemListLayout]: configurable list require props.tableId to be specified\");\n }\n if (preloadStores) {\n this.loadStores();\n }\n }\n loadStores() {\n const { store, dependentStores } = this.props;\n const stores = Array.from(new Set([store, ...dependentStores]));\n stores.forEach(store => store.loadAll(this.props.namespaceStore.contextNamespaces));\n }\n get showFilters() {\n return this.props.itemListLayoutStorage.get().showFilters;\n }\n set showFilters(showFilters) {\n this.props.itemListLayoutStorage.merge({ showFilters });\n }\n get filters() {\n let { activeFilters } = _page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"pageFilters\"];\n const { searchFilters } = this.props;\n if (searchFilters.length === 0) {\n activeFilters = activeFilters.filter(({ type }) => type !== _page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"FilterType\"].SEARCH);\n }\n return activeFilters;\n }\n toggleFilters() {\n this.showFilters = !this.showFilters;\n }\n get isReady() {\n var _a;\n return (_a = this.props.isReady) !== null && _a !== void 0 ? _a : this.props.store.isLoaded;\n }\n renderFilters() {\n const { hideFilters } = this.props;\n const { isReady, filters } = this;\n if (!isReady || !filters.length || hideFilters || !this.showFilters) {\n return null;\n }\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_page_filters_list__WEBPACK_IMPORTED_MODULE_5__[\"PageFiltersList\"], { filters: filters });\n }\n get items() {\n var _a, _b, _c, _d, _e, _f;\n const filterGroups = lodash_groupBy__WEBPACK_IMPORTED_MODULE_11___default()(this.filters, ({ type }) => type);\n const filterItems = [];\n for (const [type, filtersGroup] of Object.entries(filterGroups)) {\n const filterCallback = (_a = this.filterCallbacks[type]) !== null && _a !== void 0 ? _a : (_b = this.props.filterCallbacks) === null || _b === void 0 ? void 0 : _b[type];\n if (filterCallback && filtersGroup.length > 0) {\n filterItems.push(filterCallback);\n }\n }\n const items = (_f = (_e = (_d = (_c = this.props).getItems) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : this.props.items) !== null && _f !== void 0 ? _f : this.props.store.items;\n return applyFilters(filterItems.concat(this.props.filterItems), items);\n }\n render() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"untracked\"])(() => {\n var _a, _b;\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: Object(_utils__WEBPACK_IMPORTED_MODULE_3__[\"cssNames\"])(\"ItemListLayout flex column\", this.props.className) },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_header__WEBPACK_IMPORTED_MODULE_10__[\"ItemListLayoutHeader\"], { getItems: () => this.items, getFilters: () => this.filters, toggleFilters: this.toggleFilters, store: this.props.store, searchFilters: this.props.searchFilters, showHeader: this.props.showHeader, headerClassName: this.props.headerClassName, renderHeaderTitle: this.props.renderHeaderTitle, customizeHeader: this.props.customizeHeader }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_filters__WEBPACK_IMPORTED_MODULE_12__[\"ItemListLayoutFilters\"], { getIsReady: () => this.isReady, getFilters: () => this.filters, getFiltersAreShown: () => this.showFilters, hideFilters: this.props.hideFilters }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_content__WEBPACK_IMPORTED_MODULE_9__[\"ItemListLayoutContent\"], { getItems: () => this.items, getFilters: () => this.filters, tableId: this.props.tableId, className: this.props.className, store: this.props.store, getIsReady: () => this.isReady, isSelectable: this.props.isSelectable, isConfigurable: this.props.isConfigurable, copyClassNameFromHeadCells: this.props.copyClassNameFromHeadCells, sortingCallbacks: this.props.sortingCallbacks, tableProps: this.props.tableProps, renderTableHeader: this.props.renderTableHeader, renderTableContents: this.props.renderTableContents, renderItemMenu: this.props.renderItemMenu, customizeTableRowProps: this.props.customizeTableRowProps, addRemoveButtons: this.props.addRemoveButtons, virtual: this.props.virtual, hasDetailsView: this.props.hasDetailsView, detailsItem: this.props.detailsItem, onDetails: this.props.onDetails, customizeRemoveDialog: this.props.customizeRemoveDialog, failedToLoadMessage: this.props.failedToLoadMessage }), (_b = (_a = this.props).renderFooter) === null || _b === void 0 ? void 0 :\n _b.call(_a, this)));\n });\n }\n};\nObject.defineProperty(NonInjectedItemListLayout, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayout.prototype, \"filters\", null);\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_3__[\"boundMethod\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], NonInjectedItemListLayout.prototype, \"toggleFilters\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayout.prototype, \"isReady\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayout.prototype, \"items\", null);\nNonInjectedItemListLayout = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_13__[\"observer\"],\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedItemListLayout);\nconst InjectedItemListLayout = Object(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__[\"withInjectables\"])(NonInjectedItemListLayout, {\n getProps: (di, props) => (Object.assign({ namespaceStore: di.inject(_namespaces_namespace_store_namespace_store_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]), itemListLayoutStorage: di.inject(_storage_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]) }, props)),\n});\nfunction ItemListLayout(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(InjectedItemListLayout, Object.assign({}, props));\n}\nfunction applyFilters(filters, items) {\n if (!filters || !filters.length) {\n return items;\n }\n return filters.reduce((items, filter) => filter(items), items);\n}\n\n\n//# sourceURL=webpack:///./src/renderer/components/item-object-list/list-layout.tsx?");
43298
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ItemListLayout\", function() { return ItemListLayout; });\n/* harmony import */ var _item_list_layout_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./item-list-layout.scss */ \"./src/renderer/components/item-object-list/item-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 _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _page_filters_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./page-filters.store */ \"./src/renderer/components/item-object-list/page-filters.store.ts\");\n/* harmony import */ var _page_filters_list__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./page-filters-list */ \"./src/renderer/components/item-object-list/page-filters-list.tsx\");\n/* harmony import */ var _namespaces_namespace_store_namespace_store_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../+namespaces/namespace-store/namespace-store.injectable */ \"./src/renderer/components/+namespaces/namespace-store/namespace-store.injectable.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _storage_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./storage.injectable */ \"./src/renderer/components/item-object-list/storage.injectable.ts\");\n/* harmony import */ var _content__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./content */ \"./src/renderer/components/item-object-list/content.tsx\");\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./header */ \"./src/renderer/components/item-object-list/header.tsx\");\n/* harmony import */ var lodash_groupBy__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lodash/groupBy */ \"./node_modules/lodash/groupBy.js\");\n/* harmony import */ var lodash_groupBy__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(lodash_groupBy__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _filters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./filters */ \"./src/renderer/components/item-object-list/filters.tsx\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultProps = {\n showHeader: true,\n isSelectable: true,\n isConfigurable: false,\n copyClassNameFromHeadCells: true,\n preloadStores: true,\n dependentStores: [],\n searchFilters: [],\n customizeHeader: [],\n filterItems: [],\n hasDetailsView: true,\n onDetails: _utils__WEBPACK_IMPORTED_MODULE_3__[\"noop\"],\n virtual: true,\n customizeTableRowProps: () => ({}),\n failedToLoadMessage: \"Failed to load items\",\n};\nlet NonInjectedItemListLayout = class NonInjectedItemListLayout extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"filterCallbacks\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n [_page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"FilterType\"].SEARCH]: items => {\n const { searchFilters } = this.props;\n const search = _page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"pageFilters\"].getValues(_page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"FilterType\"].SEARCH)[0] || \"\";\n if (search && searchFilters.length) {\n const normalizeText = (text) => String(text).toLowerCase();\n const searchTexts = [search].map(normalizeText);\n return items.filter(item => {\n return searchFilters.some(getTexts => {\n const sourceTexts = [getTexts(item)].flat().map(normalizeText);\n return sourceTexts.some(source => searchTexts.some(search => source.includes(search)));\n });\n });\n }\n return items;\n },\n }\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n }\n async componentDidMount() {\n const { isConfigurable, tableId, preloadStores } = this.props;\n if (isConfigurable && !tableId) {\n throw new Error(\"[ItemListLayout]: configurable list require props.tableId to be specified\");\n }\n if (preloadStores) {\n this.loadStores();\n }\n }\n loadStores() {\n const { store, dependentStores } = this.props;\n const stores = Array.from(new Set([store, ...dependentStores]));\n stores.forEach(store => store.loadAll(this.props.namespaceStore.contextNamespaces));\n }\n get showFilters() {\n return this.props.itemListLayoutStorage.get().showFilters;\n }\n set showFilters(showFilters) {\n this.props.itemListLayoutStorage.merge({ showFilters });\n }\n get filters() {\n let { activeFilters } = _page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"pageFilters\"];\n const { searchFilters } = this.props;\n if (searchFilters.length === 0) {\n activeFilters = activeFilters.filter(({ type }) => type !== _page_filters_store__WEBPACK_IMPORTED_MODULE_4__[\"FilterType\"].SEARCH);\n }\n return activeFilters;\n }\n toggleFilters() {\n this.showFilters = !this.showFilters;\n }\n get isReady() {\n var _a;\n return (_a = this.props.isReady) !== null && _a !== void 0 ? _a : this.props.store.isLoaded;\n }\n renderFilters() {\n const { hideFilters } = this.props;\n const { isReady, filters } = this;\n if (!isReady || !filters.length || hideFilters || !this.showFilters) {\n return null;\n }\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_page_filters_list__WEBPACK_IMPORTED_MODULE_5__[\"PageFiltersList\"], { filters: filters });\n }\n get items() {\n var _a, _b;\n const filterGroups = lodash_groupBy__WEBPACK_IMPORTED_MODULE_11___default()(this.filters, ({ type }) => type);\n const filterItems = [];\n for (const [type, filtersGroup] of Object.entries(filterGroups)) {\n const filterCallback = (_a = this.filterCallbacks[type]) !== null && _a !== void 0 ? _a : (_b = this.props.filterCallbacks) === null || _b === void 0 ? void 0 : _b[type];\n if (filterCallback && filtersGroup.length > 0) {\n filterItems.push(filterCallback);\n }\n }\n const items = this.props.getItems();\n return applyFilters(filterItems.concat(this.props.filterItems), items);\n }\n render() {\n return Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"untracked\"])(() => {\n var _a, _b;\n return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", { className: Object(_utils__WEBPACK_IMPORTED_MODULE_3__[\"cssNames\"])(\"ItemListLayout flex column\", this.props.className) },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_header__WEBPACK_IMPORTED_MODULE_10__[\"ItemListLayoutHeader\"], { getItems: () => this.items, getFilters: () => this.filters, toggleFilters: this.toggleFilters, store: this.props.store, searchFilters: this.props.searchFilters, showHeader: this.props.showHeader, headerClassName: this.props.headerClassName, renderHeaderTitle: this.props.renderHeaderTitle, customizeHeader: this.props.customizeHeader }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_filters__WEBPACK_IMPORTED_MODULE_12__[\"ItemListLayoutFilters\"], { getIsReady: () => this.isReady, getFilters: () => this.filters, getFiltersAreShown: () => this.showFilters, hideFilters: this.props.hideFilters }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_content__WEBPACK_IMPORTED_MODULE_9__[\"ItemListLayoutContent\"], { getItems: () => this.items, getFilters: () => this.filters, tableId: this.props.tableId, className: this.props.className, store: this.props.store, getIsReady: () => this.isReady, isSelectable: this.props.isSelectable, isConfigurable: this.props.isConfigurable, copyClassNameFromHeadCells: this.props.copyClassNameFromHeadCells, sortingCallbacks: this.props.sortingCallbacks, tableProps: this.props.tableProps, renderTableHeader: this.props.renderTableHeader, renderTableContents: this.props.renderTableContents, renderItemMenu: this.props.renderItemMenu, customizeTableRowProps: this.props.customizeTableRowProps, addRemoveButtons: this.props.addRemoveButtons, virtual: this.props.virtual, hasDetailsView: this.props.hasDetailsView, detailsItem: this.props.detailsItem, onDetails: this.props.onDetails, customizeRemoveDialog: this.props.customizeRemoveDialog, failedToLoadMessage: this.props.failedToLoadMessage }), (_b = (_a = this.props).renderFooter) === null || _b === void 0 ? void 0 :\n _b.call(_a, this)));\n });\n }\n};\nObject.defineProperty(NonInjectedItemListLayout, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultProps\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayout.prototype, \"filters\", null);\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_3__[\"boundMethod\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], NonInjectedItemListLayout.prototype, \"toggleFilters\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayout.prototype, \"isReady\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayout.prototype, \"items\", null);\nNonInjectedItemListLayout = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_13__[\"observer\"],\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedItemListLayout);\nconst InjectedItemListLayout = Object(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__[\"withInjectables\"])(NonInjectedItemListLayout, {\n getProps: (di, props) => (Object.assign({ namespaceStore: di.inject(_namespaces_namespace_store_namespace_store_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]), itemListLayoutStorage: di.inject(_storage_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]) }, props)),\n});\nfunction ItemListLayout(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(InjectedItemListLayout, Object.assign({}, props));\n}\nfunction applyFilters(filters, items) {\n if (!filters || !filters.length) {\n return items;\n }\n return filters.reduce((items, filter) => filter(items), items);\n}\n\n\n//# sourceURL=webpack:///./src/renderer/components/item-object-list/list-layout.tsx?");
43311
43299
 
43312
43300
  /***/ }),
43313
43301
 
@@ -44943,11 +44931,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
44943
44931
  /*!*************************************!*\
44944
44932
  !*** ./src/renderer/utils/index.ts ***!
44945
44933
  \*************************************/
44946
- /*! exports provided: noop, WrappedAbortController, getAppVersion, getBundledKubectlVersion, getAppVersionFromProxyServer, autoBind, boundClass, boundMethod, toCamelCase, cloneJsonObject, getClusterIdFromHost, getClusterFrameUrl, getHostedClusterId, isClusterPageContext, getOrInsert, getOrInsertMap, getOrInsertSet, getOrInsertWith, toggle, cpuUnitsToNumber, unitsToBytes, bytesToUnits, debouncePromise, defineGlobal, delay, disposer, downloadFile, downloadJson, escapeRegExp, multiSet, ExtendedMap, ExtendedObservableMap, formatDuration, getRandId, makeIterableIterator, HashSet, ObservableHashSet, nFircate, fromEntries, openExternal, resolveTilde, resolvePath, isLogicalChildPath, promiseExecFile, rejectPromiseBy, Singleton, Ordering, rectifyOrdering, sortCompare, sortCompareChartVersions, sortCharts, splitArray, bifurcateArray, readFileFromTar, listTarEntries, extractTar, toJS, hasOwnProperty, hasOwnProperties, hasTypedProperty, hasOptionalProperty, isRecord, isTypedArray, isString, isObject, bindPredicate, waitForPath, iter, array, tuple, base64, EventEmitter, cssNames, cssVar, displayBooleans, interval, isMiddleClick, isReactNode, metricUnitsToNumber, getConvertedParts, prevDefault, stopPropagation, saveFileDialog, StorageHelper */
44934
+ /*! exports provided: noop, WrappedAbortController, getAppVersion, getBundledKubectlVersion, getAppVersionFromProxyServer, autoBind, boundClass, boundMethod, toCamelCase, cloneJsonObject, getClusterIdFromHost, getClusterFrameUrl, getHostedClusterId, isClusterPageContext, getOrInsert, getOrInsertMap, getOrInsertSet, getOrInsertWith, strictSet, strictGet, toggle, cpuUnitsToNumber, unitsToBytes, bytesToUnits, debouncePromise, defineGlobal, delay, disposer, downloadFile, downloadJson, escapeRegExp, formatDuration, getRandId, makeIterableIterator, HashSet, ObservableHashSet, nFircate, fromEntries, entries, openBrowser, openExternal, resolveTilde, resolvePath, isLogicalChildPath, promiseExecFile, rejectPromiseBy, Singleton, Ordering, rectifyOrdering, sortCompare, sortCompareChartVersions, sortCharts, splitArray, bifurcateArray, readFileFromTar, listTarEntries, extractTar, toJS, hasOwnProperty, hasOwnProperties, hasTypedProperty, hasOptionalProperty, isRecord, isTypedArray, isString, isObject, bindPredicate, waitForPath, iter, array, tuple, base64, EventEmitter, cssNames, cssVar, displayBooleans, interval, isMiddleClick, isReactNode, metricUnitsToNumber, getConvertedParts, prevDefault, stopPropagation, saveFileDialog, StorageHelper */
44947
44935
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
44948
44936
 
44949
44937
  "use strict";
44950
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"noop\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WrappedAbortController\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"WrappedAbortController\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersion\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getAppVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getBundledKubectlVersion\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getBundledKubectlVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersionFromProxyServer\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getAppVersionFromProxyServer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoBind\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"autoBind\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundClass\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"boundClass\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundMethod\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"boundMethod\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toCamelCase\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"toCamelCase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cloneJsonObject\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"cloneJsonObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterIdFromHost\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getClusterIdFromHost\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterFrameUrl\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getClusterFrameUrl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getHostedClusterId\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getHostedClusterId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isClusterPageContext\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isClusterPageContext\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsert\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsert\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertMap\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsertMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsertSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertWith\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsertWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toggle\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"toggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cpuUnitsToNumber\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"cpuUnitsToNumber\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unitsToBytes\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"unitsToBytes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bytesToUnits\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"bytesToUnits\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debouncePromise\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"debouncePromise\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defineGlobal\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"defineGlobal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"delay\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"disposer\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"disposer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadFile\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"downloadFile\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadJson\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"downloadJson\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"escapeRegExp\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"escapeRegExp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multiSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"multiSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExtendedMap\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"ExtendedMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExtendedObservableMap\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"ExtendedObservableMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatDuration\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"formatDuration\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRandId\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getRandId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeIterableIterator\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"makeIterableIterator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HashSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"HashSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObservableHashSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"ObservableHashSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nFircate\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"nFircate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEntries\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"fromEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"openExternal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolveTilde\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"resolveTilde\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolvePath\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"resolvePath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLogicalChildPath\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isLogicalChildPath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"promiseExecFile\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"promiseExecFile\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rejectPromiseBy\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"rejectPromiseBy\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Singleton\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"Singleton\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Ordering\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"Ordering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectifyOrdering\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"rectifyOrdering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompare\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"sortCompare\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompareChartVersions\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"sortCompareChartVersions\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCharts\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"sortCharts\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitArray\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"splitArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bifurcateArray\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"bifurcateArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"readFileFromTar\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"readFileFromTar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"listTarEntries\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"listTarEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extractTar\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"extractTar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"toJS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperties\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperties\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasTypedProperty\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasTypedProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOptionalProperty\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasOptionalProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isRecord\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isRecord\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isTypedArray\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isTypedArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindPredicate\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"bindPredicate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"waitForPath\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"waitForPath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"iter\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"iter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"array\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tuple\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"tuple\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"base64\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"base64\"]; });\n\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EventEmitter\", function() { return _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__[\"EventEmitter\"]; });\n\n/* harmony import */ var _cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cssNames\", function() { return _cssNames__WEBPACK_IMPORTED_MODULE_2__[\"cssNames\"]; });\n\n/* harmony import */ var _cssVar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cssVar */ \"./src/renderer/utils/cssVar.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cssVar\", function() { return _cssVar__WEBPACK_IMPORTED_MODULE_3__[\"cssVar\"]; });\n\n/* harmony import */ var _display_booleans__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display-booleans */ \"./src/renderer/utils/display-booleans.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"displayBooleans\", function() { return _display_booleans__WEBPACK_IMPORTED_MODULE_4__[\"displayBooleans\"]; });\n\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./src/renderer/utils/interval.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return _interval__WEBPACK_IMPORTED_MODULE_5__[\"interval\"]; });\n\n/* harmony import */ var _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isMiddleClick */ \"./src/renderer/utils/isMiddleClick.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isMiddleClick\", function() { return _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__[\"isMiddleClick\"]; });\n\n/* harmony import */ var _isReactNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isReactNode */ \"./src/renderer/utils/isReactNode.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isReactNode\", function() { return _isReactNode__WEBPACK_IMPORTED_MODULE_7__[\"isReactNode\"]; });\n\n/* harmony import */ var _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./metricUnitsToNumber */ \"./src/renderer/utils/metricUnitsToNumber.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"metricUnitsToNumber\", function() { return _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__[\"metricUnitsToNumber\"]; });\n\n/* harmony import */ var _name_parts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./name-parts */ \"./src/renderer/utils/name-parts.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getConvertedParts\", function() { return _name_parts__WEBPACK_IMPORTED_MODULE_9__[\"getConvertedParts\"]; });\n\n/* harmony import */ var _prevDefault__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prevDefault\", function() { return _prevDefault__WEBPACK_IMPORTED_MODULE_10__[\"prevDefault\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stopPropagation\", function() { return _prevDefault__WEBPACK_IMPORTED_MODULE_10__[\"stopPropagation\"]; });\n\n/* harmony import */ var _saveFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saveFile */ \"./src/renderer/utils/saveFile.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveFileDialog\", function() { return _saveFile__WEBPACK_IMPORTED_MODULE_11__[\"saveFileDialog\"]; });\n\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StorageHelper\", function() { return _storageHelper__WEBPACK_IMPORTED_MODULE_12__[\"StorageHelper\"]; });\n\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Common usage utils & helpers\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/renderer/utils/index.ts?");
44938
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"noop\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WrappedAbortController\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"WrappedAbortController\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersion\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getAppVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getBundledKubectlVersion\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getBundledKubectlVersion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getAppVersionFromProxyServer\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getAppVersionFromProxyServer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoBind\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"autoBind\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundClass\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"boundClass\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundMethod\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"boundMethod\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toCamelCase\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"toCamelCase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cloneJsonObject\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"cloneJsonObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterIdFromHost\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getClusterIdFromHost\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getClusterFrameUrl\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getClusterFrameUrl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getHostedClusterId\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getHostedClusterId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isClusterPageContext\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isClusterPageContext\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsert\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsert\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertMap\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsertMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsertSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getOrInsertWith\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getOrInsertWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"strictSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"strictSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"strictGet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"strictGet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toggle\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"toggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cpuUnitsToNumber\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"cpuUnitsToNumber\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unitsToBytes\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"unitsToBytes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bytesToUnits\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"bytesToUnits\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debouncePromise\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"debouncePromise\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defineGlobal\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"defineGlobal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"delay\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"disposer\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"disposer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadFile\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"downloadFile\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"downloadJson\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"downloadJson\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"escapeRegExp\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"escapeRegExp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatDuration\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"formatDuration\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRandId\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"getRandId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeIterableIterator\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"makeIterableIterator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HashSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"HashSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObservableHashSet\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"ObservableHashSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nFircate\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"nFircate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEntries\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"fromEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"entries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openBrowser\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"openBrowser\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"openExternal\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"openExternal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolveTilde\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"resolveTilde\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resolvePath\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"resolvePath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLogicalChildPath\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isLogicalChildPath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"promiseExecFile\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"promiseExecFile\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rejectPromiseBy\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"rejectPromiseBy\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Singleton\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"Singleton\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Ordering\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"Ordering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectifyOrdering\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"rectifyOrdering\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompare\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"sortCompare\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCompareChartVersions\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"sortCompareChartVersions\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortCharts\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"sortCharts\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitArray\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"splitArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bifurcateArray\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"bifurcateArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"readFileFromTar\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"readFileFromTar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"listTarEntries\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"listTarEntries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extractTar\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"extractTar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toJS\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"toJS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperties\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperties\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasTypedProperty\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasTypedProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOptionalProperty\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"hasOptionalProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isRecord\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isRecord\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isTypedArray\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isTypedArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindPredicate\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"bindPredicate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"waitForPath\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"waitForPath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"iter\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"iter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"array\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tuple\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"tuple\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"base64\", function() { return _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"base64\"]; });\n\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EventEmitter\", function() { return _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__[\"EventEmitter\"]; });\n\n/* harmony import */ var _cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cssNames\", function() { return _cssNames__WEBPACK_IMPORTED_MODULE_2__[\"cssNames\"]; });\n\n/* harmony import */ var _cssVar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cssVar */ \"./src/renderer/utils/cssVar.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cssVar\", function() { return _cssVar__WEBPACK_IMPORTED_MODULE_3__[\"cssVar\"]; });\n\n/* harmony import */ var _display_booleans__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display-booleans */ \"./src/renderer/utils/display-booleans.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"displayBooleans\", function() { return _display_booleans__WEBPACK_IMPORTED_MODULE_4__[\"displayBooleans\"]; });\n\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./src/renderer/utils/interval.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return _interval__WEBPACK_IMPORTED_MODULE_5__[\"interval\"]; });\n\n/* harmony import */ var _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isMiddleClick */ \"./src/renderer/utils/isMiddleClick.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isMiddleClick\", function() { return _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__[\"isMiddleClick\"]; });\n\n/* harmony import */ var _isReactNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isReactNode */ \"./src/renderer/utils/isReactNode.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isReactNode\", function() { return _isReactNode__WEBPACK_IMPORTED_MODULE_7__[\"isReactNode\"]; });\n\n/* harmony import */ var _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./metricUnitsToNumber */ \"./src/renderer/utils/metricUnitsToNumber.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"metricUnitsToNumber\", function() { return _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__[\"metricUnitsToNumber\"]; });\n\n/* harmony import */ var _name_parts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./name-parts */ \"./src/renderer/utils/name-parts.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getConvertedParts\", function() { return _name_parts__WEBPACK_IMPORTED_MODULE_9__[\"getConvertedParts\"]; });\n\n/* harmony import */ var _prevDefault__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prevDefault\", function() { return _prevDefault__WEBPACK_IMPORTED_MODULE_10__[\"prevDefault\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stopPropagation\", function() { return _prevDefault__WEBPACK_IMPORTED_MODULE_10__[\"stopPropagation\"]; });\n\n/* harmony import */ var _saveFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saveFile */ \"./src/renderer/utils/saveFile.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveFileDialog\", function() { return _saveFile__WEBPACK_IMPORTED_MODULE_11__[\"saveFileDialog\"]; });\n\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StorageHelper\", function() { return _storageHelper__WEBPACK_IMPORTED_MODULE_12__[\"StorageHelper\"]; });\n\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Common usage utils & helpers\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/renderer/utils/index.ts?");
44951
44939
 
44952
44940
  /***/ }),
44953
44941