@k8slens/extensions 6.1.1-git.8c49ea8148.0 → 6.1.1-git.a6cdf2c3f0.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 (35) hide show
  1. package/dist/src/common/utils/objects.d.ts +1 -0
  2. package/dist/src/extensions/extension-api.js +17 -28
  3. package/dist/src/extensions/extension-loader/extension-registrator-injection-token.d.ts +2 -1
  4. package/dist/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.d.ts +2 -2
  5. package/dist/src/main/helm/helm-service/get-helm-release-resources/get-helm-release-resources.injectable.d.ts +3 -2
  6. package/dist/src/main/helm/helm-service/get-helm-release.global-override-for-injectable.d.ts +6 -2
  7. package/dist/src/main/helm/helm-service/get-helm-release.injectable.d.ts +3 -1
  8. package/dist/src/main/helm/helm-service/update-helm-release.global-override-for-injectable.d.ts +6 -2
  9. package/dist/src/main/helm/helm-service/update-helm-release.injectable.d.ts +3 -1
  10. package/dist/src/main/router/create-handler-for-route.injectable.d.ts +7 -0
  11. package/dist/src/main/router/router.d.ts +6 -4
  12. package/dist/src/main/routes/helm/releases/get-release-route.injectable.d.ts +5 -1
  13. package/dist/src/main/routes/helm/releases/update-release-route.injectable.d.ts +6 -2
  14. package/dist/src/main/tray/tray-menu-item/tray-menu-item-registrator.injectable.d.ts +1 -1
  15. package/dist/src/main/utils/shell-env.d.ts +1 -3
  16. package/dist/src/renderer/components/+catalog/columns/custom-token.d.ts +11 -0
  17. package/dist/src/renderer/components/+catalog/columns/extensions-registrator.injectable.d.ts +3 -0
  18. package/dist/src/renderer/components/+catalog/columns/kubernetes-api-version.injectable.d.ts +13 -0
  19. package/dist/src/renderer/components/+catalog/columns/kubernetes-distribution.injectable.d.ts +13 -0
  20. package/dist/src/renderer/components/+catalog/custom-category-columns.injectable.d.ts +1 -2
  21. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.d.ts +0 -1
  22. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.d.ts +1 -1
  23. package/dist/src/renderer/components/+preferences/extension-telemetry-preference-item-registrator.injectable.d.ts +1 -1
  24. package/dist/src/renderer/components/+preferences/preferences-navigation/extension-tab-preferences-navigation-item.injectable.d.ts +1 -1
  25. package/dist/src/renderer/components/+preferences/preferences-navigation/extensions-preferences-navigation-item-registrator.injectable.d.ts +1 -1
  26. package/dist/src/renderer/components/+workloads-pods/details/volumes/variant-helpers.d.ts +1 -1
  27. package/dist/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.d.ts +1 -1
  28. package/dist/src/renderer/components/kube-object-menu/kube-object-menu-item-registrator.injectable.d.ts +1 -1
  29. package/dist/src/renderer/components/kube-object-status-icon/kube-object-status-text-registrator.injectable.d.ts +1 -1
  30. package/dist/src/renderer/components/layout/extension-sidebar-item-registrator.injectable.d.ts +1 -1
  31. package/dist/src/renderer/components/status-bar/status-bar-item-registrator.injectable.d.ts +1 -1
  32. package/dist/src/renderer/routes/extension-route-registrator.injectable.d.ts +1 -1
  33. package/package.json +1 -1
  34. package/dist/src/common/logger-transports/index.d.ts +0 -5
  35. package/dist/src/common/logger-transports/sentry.d.ts +0 -21
@@ -8,5 +8,6 @@
8
8
  */
9
9
  export declare function fromEntries<T, Key extends string>(entries: Iterable<readonly [Key, T]>): Record<Key, T>;
10
10
  export declare function keys<K extends keyof any>(obj: Partial<Record<K, any>>): K[];
11
+ export declare function entries<K extends string, V>(obj: Partial<Record<K, V>> | null | undefined): [K, V][];
11
12
  export declare function entries<K extends string | number | symbol, V>(obj: Partial<Record<K, V>> | null | undefined): [K, V][];
12
13
  export declare function entries<K extends string | number | symbol, V>(obj: Record<K, V> | null | undefined): [K, V][];
@@ -10066,18 +10066,7 @@ eval("\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\nconst shebangComman
10066
10066
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10067
10067
 
10068
10068
  "use strict";
10069
- eval("\n\nconst path = __webpack_require__(/*! path */ \"path\");\nconst which = __webpack_require__(/*! which */ \"./node_modules/which/which.js\");\nconst getPathKey = __webpack_require__(/*! path-key */ \"./node_modules/cross-spawn/node_modules/path-key/index.js\");\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/cross-spawn/lib/util/resolveCommand.js?");
10070
-
10071
- /***/ }),
10072
-
10073
- /***/ "./node_modules/cross-spawn/node_modules/path-key/index.js":
10074
- /*!*****************************************************************!*\
10075
- !*** ./node_modules/cross-spawn/node_modules/path-key/index.js ***!
10076
- \*****************************************************************/
10077
- /***/ ((module) => {
10078
-
10079
- "use strict";
10080
- eval("\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports[\"default\"] = pathKey;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/cross-spawn/node_modules/path-key/index.js?");
10069
+ eval("\n\nconst path = __webpack_require__(/*! path */ \"path\");\nconst which = __webpack_require__(/*! which */ \"./node_modules/which/which.js\");\nconst getPathKey = __webpack_require__(/*! path-key */ \"./node_modules/path-key/index.js\");\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/cross-spawn/lib/util/resolveCommand.js?");
10081
10070
 
10082
10071
  /***/ }),
10083
10072
 
@@ -24767,18 +24756,7 @@ eval("/*!\n * normalize-path <https://github.com/jonschlinkert/normalize-path>\n
24767
24756
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24768
24757
 
24769
24758
  "use strict";
24770
- eval("\nconst path = __webpack_require__(/*! path */ \"path\");\nconst pathKey = __webpack_require__(/*! path-key */ \"./node_modules/npm-run-path/node_modules/path-key/index.js\");\n\nconst npmRunPath = options => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tpath: process.env[pathKey()],\n\t\texecPath: process.execPath,\n\t\t...options\n\t};\n\n\tlet previous;\n\tlet cwdPath = path.resolve(options.cwd);\n\tconst result = [];\n\n\twhile (previous !== cwdPath) {\n\t\tresult.push(path.join(cwdPath, 'node_modules/.bin'));\n\t\tprevious = cwdPath;\n\t\tcwdPath = path.resolve(cwdPath, '..');\n\t}\n\n\t// Ensure the running `node` binary is used\n\tconst execPathDir = path.resolve(options.cwd, options.execPath, '..');\n\tresult.push(execPathDir);\n\n\treturn result.concat(options.path).join(path.delimiter);\n};\n\nmodule.exports = npmRunPath;\n// TODO: Remove this for the next major release\nmodule.exports[\"default\"] = npmRunPath;\n\nmodule.exports.env = options => {\n\toptions = {\n\t\tenv: process.env,\n\t\t...options\n\t};\n\n\tconst env = {...options.env};\n\tconst path = pathKey({env});\n\n\toptions.path = env[path];\n\tenv[path] = module.exports(options);\n\n\treturn env;\n};\n\n\n//# sourceURL=webpack://open-lens/./node_modules/npm-run-path/index.js?");
24771
-
24772
- /***/ }),
24773
-
24774
- /***/ "./node_modules/npm-run-path/node_modules/path-key/index.js":
24775
- /*!******************************************************************!*\
24776
- !*** ./node_modules/npm-run-path/node_modules/path-key/index.js ***!
24777
- \******************************************************************/
24778
- /***/ ((module) => {
24779
-
24780
- "use strict";
24781
- eval("\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports[\"default\"] = pathKey;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/npm-run-path/node_modules/path-key/index.js?");
24759
+ eval("\nconst path = __webpack_require__(/*! path */ \"path\");\nconst pathKey = __webpack_require__(/*! path-key */ \"./node_modules/path-key/index.js\");\n\nconst npmRunPath = options => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tpath: process.env[pathKey()],\n\t\texecPath: process.execPath,\n\t\t...options\n\t};\n\n\tlet previous;\n\tlet cwdPath = path.resolve(options.cwd);\n\tconst result = [];\n\n\twhile (previous !== cwdPath) {\n\t\tresult.push(path.join(cwdPath, 'node_modules/.bin'));\n\t\tprevious = cwdPath;\n\t\tcwdPath = path.resolve(cwdPath, '..');\n\t}\n\n\t// Ensure the running `node` binary is used\n\tconst execPathDir = path.resolve(options.cwd, options.execPath, '..');\n\tresult.push(execPathDir);\n\n\treturn result.concat(options.path).join(path.delimiter);\n};\n\nmodule.exports = npmRunPath;\n// TODO: Remove this for the next major release\nmodule.exports[\"default\"] = npmRunPath;\n\nmodule.exports.env = options => {\n\toptions = {\n\t\tenv: process.env,\n\t\t...options\n\t};\n\n\tconst env = {...options.env};\n\tconst path = pathKey({env});\n\n\toptions.path = env[path];\n\tenv[path] = module.exports(options);\n\n\treturn env;\n};\n\n\n//# sourceURL=webpack://open-lens/./node_modules/npm-run-path/index.js?");
24782
24760
 
24783
24761
  /***/ }),
24784
24762
 
@@ -25200,6 +25178,17 @@ eval("\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunctio
25200
25178
 
25201
25179
  /***/ }),
25202
25180
 
25181
+ /***/ "./node_modules/path-key/index.js":
25182
+ /*!****************************************!*\
25183
+ !*** ./node_modules/path-key/index.js ***!
25184
+ \****************************************/
25185
+ /***/ ((module) => {
25186
+
25187
+ "use strict";
25188
+ eval("\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports[\"default\"] = pathKey;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/path-key/index.js?");
25189
+
25190
+ /***/ }),
25191
+
25203
25192
  /***/ "./node_modules/path-to-regexp/dist.es2015/index.js":
25204
25193
  /*!**********************************************************!*\
25205
25194
  !*** ./node_modules/path-to-regexp/dist.es2015/index.js ***!
@@ -26245,7 +26234,7 @@ eval("const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\n
26245
26234
  \**********************************************/
26246
26235
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
26247
26236
 
26248
- eval("// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = __webpack_require__(/*! lru-cache */ \"./node_modules/lru-cache/index.js\")\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = __webpack_require__(/*! ../internal/parse-options */ \"./node_modules/semver/internal/parse-options.js\")\nconst Comparator = __webpack_require__(/*! ./comparator */ \"./node_modules/semver/classes/comparator.js\")\nconst debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/semver/internal/debug.js\")\nconst SemVer = __webpack_require__(/*! ./semver */ \"./node_modules/semver/classes/semver.js\")\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = __webpack_require__(/*! ../internal/re */ \"./node_modules/semver/internal/re.js\")\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/semver/classes/range.js?");
26237
+ eval("// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = __webpack_require__(/*! lru-cache */ \"./node_modules/lru-cache/index.js\")\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = __webpack_require__(/*! ../internal/parse-options */ \"./node_modules/semver/internal/parse-options.js\")\nconst Comparator = __webpack_require__(/*! ./comparator */ \"./node_modules/semver/classes/comparator.js\")\nconst debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/semver/internal/debug.js\")\nconst SemVer = __webpack_require__(/*! ./semver */ \"./node_modules/semver/classes/semver.js\")\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = __webpack_require__(/*! ../internal/re */ \"./node_modules/semver/internal/re.js\")\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/semver/classes/range.js?");
26249
26238
 
26250
26239
  /***/ }),
26251
26240
 
@@ -26505,7 +26494,7 @@ eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/semver/f
26505
26494
  \**************************************/
26506
26495
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
26507
26496
 
26508
- eval("// just pre-load all the stuff that index.js lazily exports\nconst internalRe = __webpack_require__(/*! ./internal/re */ \"./node_modules/semver/internal/re.js\")\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: (__webpack_require__(/*! ./internal/constants */ \"./node_modules/semver/internal/constants.js\").SEMVER_SPEC_VERSION),\n SemVer: __webpack_require__(/*! ./classes/semver */ \"./node_modules/semver/classes/semver.js\"),\n compareIdentifiers: (__webpack_require__(/*! ./internal/identifiers */ \"./node_modules/semver/internal/identifiers.js\").compareIdentifiers),\n rcompareIdentifiers: (__webpack_require__(/*! ./internal/identifiers */ \"./node_modules/semver/internal/identifiers.js\").rcompareIdentifiers),\n parse: __webpack_require__(/*! ./functions/parse */ \"./node_modules/semver/functions/parse.js\"),\n valid: __webpack_require__(/*! ./functions/valid */ \"./node_modules/semver/functions/valid.js\"),\n clean: __webpack_require__(/*! ./functions/clean */ \"./node_modules/semver/functions/clean.js\"),\n inc: __webpack_require__(/*! ./functions/inc */ \"./node_modules/semver/functions/inc.js\"),\n diff: __webpack_require__(/*! ./functions/diff */ \"./node_modules/semver/functions/diff.js\"),\n major: __webpack_require__(/*! ./functions/major */ \"./node_modules/semver/functions/major.js\"),\n minor: __webpack_require__(/*! ./functions/minor */ \"./node_modules/semver/functions/minor.js\"),\n patch: __webpack_require__(/*! ./functions/patch */ \"./node_modules/semver/functions/patch.js\"),\n prerelease: __webpack_require__(/*! ./functions/prerelease */ \"./node_modules/semver/functions/prerelease.js\"),\n compare: __webpack_require__(/*! ./functions/compare */ \"./node_modules/semver/functions/compare.js\"),\n rcompare: __webpack_require__(/*! ./functions/rcompare */ \"./node_modules/semver/functions/rcompare.js\"),\n compareLoose: __webpack_require__(/*! ./functions/compare-loose */ \"./node_modules/semver/functions/compare-loose.js\"),\n compareBuild: __webpack_require__(/*! ./functions/compare-build */ \"./node_modules/semver/functions/compare-build.js\"),\n sort: __webpack_require__(/*! ./functions/sort */ \"./node_modules/semver/functions/sort.js\"),\n rsort: __webpack_require__(/*! ./functions/rsort */ \"./node_modules/semver/functions/rsort.js\"),\n gt: __webpack_require__(/*! ./functions/gt */ \"./node_modules/semver/functions/gt.js\"),\n lt: __webpack_require__(/*! ./functions/lt */ \"./node_modules/semver/functions/lt.js\"),\n eq: __webpack_require__(/*! ./functions/eq */ \"./node_modules/semver/functions/eq.js\"),\n neq: __webpack_require__(/*! ./functions/neq */ \"./node_modules/semver/functions/neq.js\"),\n gte: __webpack_require__(/*! ./functions/gte */ \"./node_modules/semver/functions/gte.js\"),\n lte: __webpack_require__(/*! ./functions/lte */ \"./node_modules/semver/functions/lte.js\"),\n cmp: __webpack_require__(/*! ./functions/cmp */ \"./node_modules/semver/functions/cmp.js\"),\n coerce: __webpack_require__(/*! ./functions/coerce */ \"./node_modules/semver/functions/coerce.js\"),\n Comparator: __webpack_require__(/*! ./classes/comparator */ \"./node_modules/semver/classes/comparator.js\"),\n Range: __webpack_require__(/*! ./classes/range */ \"./node_modules/semver/classes/range.js\"),\n satisfies: __webpack_require__(/*! ./functions/satisfies */ \"./node_modules/semver/functions/satisfies.js\"),\n toComparators: __webpack_require__(/*! ./ranges/to-comparators */ \"./node_modules/semver/ranges/to-comparators.js\"),\n maxSatisfying: __webpack_require__(/*! ./ranges/max-satisfying */ \"./node_modules/semver/ranges/max-satisfying.js\"),\n minSatisfying: __webpack_require__(/*! ./ranges/min-satisfying */ \"./node_modules/semver/ranges/min-satisfying.js\"),\n minVersion: __webpack_require__(/*! ./ranges/min-version */ \"./node_modules/semver/ranges/min-version.js\"),\n validRange: __webpack_require__(/*! ./ranges/valid */ \"./node_modules/semver/ranges/valid.js\"),\n outside: __webpack_require__(/*! ./ranges/outside */ \"./node_modules/semver/ranges/outside.js\"),\n gtr: __webpack_require__(/*! ./ranges/gtr */ \"./node_modules/semver/ranges/gtr.js\"),\n ltr: __webpack_require__(/*! ./ranges/ltr */ \"./node_modules/semver/ranges/ltr.js\"),\n intersects: __webpack_require__(/*! ./ranges/intersects */ \"./node_modules/semver/ranges/intersects.js\"),\n simplifyRange: __webpack_require__(/*! ./ranges/simplify */ \"./node_modules/semver/ranges/simplify.js\"),\n subset: __webpack_require__(/*! ./ranges/subset */ \"./node_modules/semver/ranges/subset.js\"),\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/semver/index.js?");
26497
+ eval("// just pre-load all the stuff that index.js lazily exports\nconst internalRe = __webpack_require__(/*! ./internal/re */ \"./node_modules/semver/internal/re.js\")\nconst constants = __webpack_require__(/*! ./internal/constants */ \"./node_modules/semver/internal/constants.js\")\nconst SemVer = __webpack_require__(/*! ./classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst identifiers = __webpack_require__(/*! ./internal/identifiers */ \"./node_modules/semver/internal/identifiers.js\")\nconst parse = __webpack_require__(/*! ./functions/parse */ \"./node_modules/semver/functions/parse.js\")\nconst valid = __webpack_require__(/*! ./functions/valid */ \"./node_modules/semver/functions/valid.js\")\nconst clean = __webpack_require__(/*! ./functions/clean */ \"./node_modules/semver/functions/clean.js\")\nconst inc = __webpack_require__(/*! ./functions/inc */ \"./node_modules/semver/functions/inc.js\")\nconst diff = __webpack_require__(/*! ./functions/diff */ \"./node_modules/semver/functions/diff.js\")\nconst major = __webpack_require__(/*! ./functions/major */ \"./node_modules/semver/functions/major.js\")\nconst minor = __webpack_require__(/*! ./functions/minor */ \"./node_modules/semver/functions/minor.js\")\nconst patch = __webpack_require__(/*! ./functions/patch */ \"./node_modules/semver/functions/patch.js\")\nconst prerelease = __webpack_require__(/*! ./functions/prerelease */ \"./node_modules/semver/functions/prerelease.js\")\nconst compare = __webpack_require__(/*! ./functions/compare */ \"./node_modules/semver/functions/compare.js\")\nconst rcompare = __webpack_require__(/*! ./functions/rcompare */ \"./node_modules/semver/functions/rcompare.js\")\nconst compareLoose = __webpack_require__(/*! ./functions/compare-loose */ \"./node_modules/semver/functions/compare-loose.js\")\nconst compareBuild = __webpack_require__(/*! ./functions/compare-build */ \"./node_modules/semver/functions/compare-build.js\")\nconst sort = __webpack_require__(/*! ./functions/sort */ \"./node_modules/semver/functions/sort.js\")\nconst rsort = __webpack_require__(/*! ./functions/rsort */ \"./node_modules/semver/functions/rsort.js\")\nconst gt = __webpack_require__(/*! ./functions/gt */ \"./node_modules/semver/functions/gt.js\")\nconst lt = __webpack_require__(/*! ./functions/lt */ \"./node_modules/semver/functions/lt.js\")\nconst eq = __webpack_require__(/*! ./functions/eq */ \"./node_modules/semver/functions/eq.js\")\nconst neq = __webpack_require__(/*! ./functions/neq */ \"./node_modules/semver/functions/neq.js\")\nconst gte = __webpack_require__(/*! ./functions/gte */ \"./node_modules/semver/functions/gte.js\")\nconst lte = __webpack_require__(/*! ./functions/lte */ \"./node_modules/semver/functions/lte.js\")\nconst cmp = __webpack_require__(/*! ./functions/cmp */ \"./node_modules/semver/functions/cmp.js\")\nconst coerce = __webpack_require__(/*! ./functions/coerce */ \"./node_modules/semver/functions/coerce.js\")\nconst Comparator = __webpack_require__(/*! ./classes/comparator */ \"./node_modules/semver/classes/comparator.js\")\nconst Range = __webpack_require__(/*! ./classes/range */ \"./node_modules/semver/classes/range.js\")\nconst satisfies = __webpack_require__(/*! ./functions/satisfies */ \"./node_modules/semver/functions/satisfies.js\")\nconst toComparators = __webpack_require__(/*! ./ranges/to-comparators */ \"./node_modules/semver/ranges/to-comparators.js\")\nconst maxSatisfying = __webpack_require__(/*! ./ranges/max-satisfying */ \"./node_modules/semver/ranges/max-satisfying.js\")\nconst minSatisfying = __webpack_require__(/*! ./ranges/min-satisfying */ \"./node_modules/semver/ranges/min-satisfying.js\")\nconst minVersion = __webpack_require__(/*! ./ranges/min-version */ \"./node_modules/semver/ranges/min-version.js\")\nconst validRange = __webpack_require__(/*! ./ranges/valid */ \"./node_modules/semver/ranges/valid.js\")\nconst outside = __webpack_require__(/*! ./ranges/outside */ \"./node_modules/semver/ranges/outside.js\")\nconst gtr = __webpack_require__(/*! ./ranges/gtr */ \"./node_modules/semver/ranges/gtr.js\")\nconst ltr = __webpack_require__(/*! ./ranges/ltr */ \"./node_modules/semver/ranges/ltr.js\")\nconst intersects = __webpack_require__(/*! ./ranges/intersects */ \"./node_modules/semver/ranges/intersects.js\")\nconst simplifyRange = __webpack_require__(/*! ./ranges/simplify */ \"./node_modules/semver/ranges/simplify.js\")\nconst subset = __webpack_require__(/*! ./ranges/subset */ \"./node_modules/semver/ranges/subset.js\")\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/semver/index.js?");
26509
26498
 
26510
26499
  /***/ }),
26511
26500
 
@@ -34566,7 +34555,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
34566
34555
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34567
34556
 
34568
34557
  "use strict";
34569
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ItemListLayoutContent\": () => (/* binding */ ItemListLayoutContent)\n/* harmony export */ });\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 mobx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react-lite/es/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table */ \"./src/renderer/components/table/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../add-remove-buttons */ \"./src/renderer/components/add-remove-buttons/index.ts\");\n/* harmony import */ var _no_items__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../no-items */ \"./src/renderer/components/no-items/index.ts\");\n/* harmony import */ var _spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../spinner */ \"./src/renderer/components/spinner/index.ts\");\n/* harmony import */ var _menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../menu/menu-actions */ \"./src/renderer/components/menu/menu-actions.tsx\");\n/* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../menu */ \"./src/renderer/components/menu/index.ts\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../checkbox */ \"./src/renderer/components/checkbox/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__ = __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_10___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../common/user-store/user-store.injectable */ \"./src/common/user-store/user-store.injectable.ts\");\n/* harmony import */ var _page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./page-filters/store.injectable */ \"./src/renderer/components/item-object-list/page-filters/store.injectable.ts\");\n/* harmony import */ var _confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../confirm-dialog/open.injectable */ \"./src/renderer/components/confirm-dialog/open.injectable.ts\");\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet NonInjectedItemListLayoutContent = class NonInjectedItemListLayoutContent extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n (0,mobx__WEBPACK_IMPORTED_MODULE_15__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get failedToLoad() {\n return this.props.store.failedLoading;\n }\n renderRow(item) {\n return this.getTableRow(item);\n }\n getTableRow(item) {\n const { isSelectable, renderTableHeader, renderTableContents, renderItemMenu, store, hasDetailsView, onDetails, copyClassNameFromHeadCells, customizeTableRowProps = () => ({}), detailsItem, } = this.props;\n const { isSelected } = store;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, { nowrap: true, searchItem: item, sortItem: item, selected: detailsItem && detailsItem.getId() === item.getId(), onClick: hasDetailsView ? (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => onDetails === null || onDetails === void 0 ? void 0 : onDetails(item)) : undefined, ...customizeTableRowProps(item) },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: isSelected(item), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelection(item)) })),\n renderTableContents(item).map((content, index) => {\n const cellProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isReactNode)(content)\n ? { children: content }\n : content;\n const headCell = renderTableHeader === null || renderTableHeader === void 0 ? void 0 : renderTableHeader[index];\n if (copyClassNameFromHeadCells && headCell) {\n cellProps.className = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(cellProps.className, headCell.className);\n }\n if (!headCell || this.showColumn(headCell)) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: index, ...cellProps });\n }\n return null;\n }),\n renderItemMenu && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { onClick: _utils__WEBPACK_IMPORTED_MODULE_3__.stopPropagation }, renderItemMenu(item, store))))));\n }\n getRow(uid) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { key: uid },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => {\n const item = this.props.getItems().find(item => item.getId() === uid);\n if (!item)\n return null;\n return this.getTableRow(item);\n })));\n }\n removeItemsDialog(selectedItems) {\n const { customizeRemoveDialog, store, openConfirmDialog } = this.props;\n const visibleMaxNamesCount = 5;\n const selectedNames = selectedItems.map(ns => ns.getName()).slice(0, visibleMaxNamesCount).join(\", \");\n const dialogCustomProps = customizeRemoveDialog ? customizeRemoveDialog(selectedItems) : {};\n const selectedCount = selectedItems.length;\n const tailCount = selectedCount > visibleMaxNamesCount\n ? selectedCount - visibleMaxNamesCount\n : 0;\n const tail = tailCount > 0\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n \", and \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, tailCount),\n \" more\"))\n : null;\n const message = selectedCount <= 1\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove item \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n \"?\"))\n : (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedCount),\n \" items \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n tail,\n \"?\"));\n const { removeSelectedItems, removeItems } = store;\n const onConfirm = typeof removeItems === \"function\"\n ? () => removeItems.apply(store, [selectedItems])\n : typeof removeSelectedItems === \"function\"\n ? removeSelectedItems.bind(store)\n : _utils__WEBPACK_IMPORTED_MODULE_3__.noop;\n openConfirmDialog({\n ok: onConfirm,\n labelOk: \"Remove\",\n message,\n ...dialogCustomProps,\n });\n }\n renderNoItems() {\n if (this.failedToLoad) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null, this.props.failedToLoadMessage);\n }\n if (!this.props.getIsReady()) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_spinner__WEBPACK_IMPORTED_MODULE_6__.Spinner, { center: true, \"data-testid\": this.props.spinnerTestId });\n }\n if (this.props.getFilters().length > 0) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null,\n \"No items found.\",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { onClick: () => this.props.pageFiltersStore.reset(), className: \"contrast\" }, \"Reset filters?\"))));\n }\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null);\n }\n renderItems() {\n if (this.props.virtual) {\n return null;\n }\n return this.props.getItems().map(item => this.getRow(item.getId()));\n }\n renderTableHeader() {\n const { customizeTableRowProps, renderTableHeader, isSelectable, isConfigurable, store } = this.props;\n if (!renderTableHeader) {\n return null;\n }\n const enabledItems = this.props.getItems().filter(item => !(customizeTableRowProps === null || customizeTableRowProps === void 0 ? void 0 : customizeTableRowProps(item).disabled));\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, { showTopLine: true, nowrap: true },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: store.isSelectedAll(enabledItems), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelectionAll(enabledItems)) })))),\n renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (this.showColumn(cellProps) && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: (_a = cellProps.id) !== null && _a !== void 0 ? _a : index, ...cellProps })));\n }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" }, isConfigurable && this.renderColumnVisibilityMenu())));\n }\n render() {\n const { store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks, detailsItem, className, tableProps = {}, tableId, getItems, activeTheme, } = this.props;\n const selectedItemId = detailsItem && detailsItem.getId();\n const classNames = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(className, \"box\", \"grow\", activeTheme.get().type);\n const items = getItems();\n const selectedItems = store.pickOnlySelected(items);\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"items box grow flex column\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.Table, { tableId: tableId, virtual: virtual, selectable: hasDetailsView, sortable: sortingCallbacks, getTableRow: this.getRow, renderRow: virtual ? undefined : this.renderRow, items: items, selectedItemId: selectedItemId, noItems: this.renderNoItems(), className: classNames, ...tableProps },\n this.renderTableHeader(),\n this.renderItems()),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__.AddRemoveButtons, { onRemove: (store.removeItems || store.removeSelectedItems) && selectedItems.length > 0\n ? () => this.removeItemsDialog(selectedItems)\n : undefined, removeTooltip: `Remove selected items (${selectedItems.length})`, ...addRemoveButtons })))));\n }\n showColumn({ id: columnId, showWithColumn }) {\n const { tableId, isConfigurable } = this.props;\n return !isConfigurable || !tableId || !this.props.userStore.isTableColumnHidden(tableId, columnId, showWithColumn);\n }\n renderColumnVisibilityMenu() {\n const { renderTableHeader = [], tableId } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__.MenuActions, { id: \"menu-actions-for-item-object-list-content\", className: \"ItemListLayoutVisibilityMenu\", toolbar: false, autoCloseOnSelect: false }, renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (!cellProps.showWithColumn && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu__WEBPACK_IMPORTED_MODULE_8__.MenuItem, { key: index, className: \"input\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_checkbox__WEBPACK_IMPORTED_MODULE_9__.Checkbox, { label: (_a = cellProps.title) !== null && _a !== void 0 ? _a : `<${cellProps.className}>`, value: this.showColumn(cellProps), onChange: (tableId\n ? (() => cellProps.id && this.props.userStore.toggleTableColumnVisibility(tableId, cellProps.id))\n : undefined) }))));\n })));\n }\n};\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_15__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayoutContent.prototype, \"failedToLoad\", null);\nNonInjectedItemListLayoutContent = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_17__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedItemListLayoutContent);\nconst ItemListLayoutContent = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__.withInjectables)(NonInjectedItemListLayoutContent, {\n getProps: (di, props) => ({\n ...props,\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_14__[\"default\"]),\n userStore: di.inject(_common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n pageFiltersStore: di.inject(_page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_12__[\"default\"]),\n openConfirmDialog: di.inject(_confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_13__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/item-object-list/content.tsx?");
34558
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ItemListLayoutContent\": () => (/* binding */ ItemListLayoutContent)\n/* harmony export */ });\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 mobx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react-lite/es/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table */ \"./src/renderer/components/table/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../add-remove-buttons */ \"./src/renderer/components/add-remove-buttons/index.ts\");\n/* harmony import */ var _no_items__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../no-items */ \"./src/renderer/components/no-items/index.ts\");\n/* harmony import */ var _spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../spinner */ \"./src/renderer/components/spinner/index.ts\");\n/* harmony import */ var _menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../menu/menu-actions */ \"./src/renderer/components/menu/menu-actions.tsx\");\n/* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../menu */ \"./src/renderer/components/menu/index.ts\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../checkbox */ \"./src/renderer/components/checkbox/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__ = __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_10___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../common/user-store/user-store.injectable */ \"./src/common/user-store/user-store.injectable.ts\");\n/* harmony import */ var _page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./page-filters/store.injectable */ \"./src/renderer/components/item-object-list/page-filters/store.injectable.ts\");\n/* harmony import */ var _confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../confirm-dialog/open.injectable */ \"./src/renderer/components/confirm-dialog/open.injectable.ts\");\n/* harmony import */ var _themes_active_injectable__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../themes/active.injectable */ \"./src/renderer/themes/active.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet NonInjectedItemListLayoutContent = class NonInjectedItemListLayoutContent extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n (0,mobx__WEBPACK_IMPORTED_MODULE_15__.makeObservable)(this);\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get failedToLoad() {\n return this.props.store.failedLoading;\n }\n renderRow(item) {\n return this.getTableRow(item);\n }\n getTableRow(item) {\n const { isSelectable, renderTableHeader, renderTableContents, renderItemMenu, store, hasDetailsView, onDetails, copyClassNameFromHeadCells, customizeTableRowProps = () => ({}), detailsItem, } = this.props;\n const { isSelected } = store;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableRow, { nowrap: true, searchItem: item, sortItem: item, selected: detailsItem && detailsItem.getId() === item.getId(), onClick: hasDetailsView ? (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => onDetails === null || onDetails === void 0 ? void 0 : onDetails(item)) : undefined, ...customizeTableRowProps(item) },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: isSelected(item), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelection(item)) })),\n renderTableContents(item).map((content, index) => {\n const cellProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isReactNode)(content)\n ? { children: content }\n : content;\n const headCell = renderTableHeader === null || renderTableHeader === void 0 ? void 0 : renderTableHeader[index];\n if (copyClassNameFromHeadCells && headCell) {\n cellProps.className = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(cellProps.className, headCell.className);\n }\n if (!headCell || this.showColumn(headCell)) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: index, ...cellProps });\n }\n return null;\n }),\n renderItemMenu && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { onClick: _utils__WEBPACK_IMPORTED_MODULE_3__.stopPropagation }, renderItemMenu(item, store))))));\n }\n getRow(uid) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { key: uid },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => {\n const item = this.props.getItems().find(item => item.getId() === uid);\n if (!item)\n return null;\n return this.getTableRow(item);\n })));\n }\n removeItemsDialog(selectedItems) {\n const { customizeRemoveDialog, store, openConfirmDialog } = this.props;\n const visibleMaxNamesCount = 5;\n const selectedNames = selectedItems.map(ns => ns.getName()).slice(0, visibleMaxNamesCount).join(\", \");\n const dialogCustomProps = customizeRemoveDialog ? customizeRemoveDialog(selectedItems) : {};\n const selectedCount = selectedItems.length;\n const tailCount = selectedCount > visibleMaxNamesCount\n ? selectedCount - visibleMaxNamesCount\n : 0;\n const tail = tailCount > 0\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n \", and \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, tailCount),\n \" more\"))\n : null;\n const message = selectedCount <= 1\n ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove item \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n \"?\"))\n : (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n \"Remove \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedCount),\n \" items \",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"b\", null, selectedNames),\n tail,\n \"?\"));\n const { removeSelectedItems, removeItems } = store;\n const onConfirm = typeof removeItems === \"function\"\n ? () => removeItems.apply(store, [selectedItems])\n : typeof removeSelectedItems === \"function\"\n ? removeSelectedItems.bind(store)\n : _utils__WEBPACK_IMPORTED_MODULE_3__.noop;\n openConfirmDialog({\n ok: onConfirm,\n labelOk: \"Remove\",\n message,\n ...dialogCustomProps,\n });\n }\n renderNoItems() {\n if (this.failedToLoad) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null, this.props.failedToLoadMessage);\n }\n if (!this.props.getIsReady()) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_spinner__WEBPACK_IMPORTED_MODULE_6__.Spinner, { center: true, \"data-testid\": this.props.spinnerTestId });\n }\n if (this.props.getFilters().length > 0) {\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null,\n \"No items found.\",\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"p\", null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { onClick: () => this.props.pageFiltersStore.reset(), className: \"contrast\" }, \"Reset filters?\"))));\n }\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(_no_items__WEBPACK_IMPORTED_MODULE_5__.NoItems, null);\n }\n renderItems() {\n if (this.props.virtual) {\n return null;\n }\n return this.props.getItems().map(item => this.getRow(item.getId()));\n }\n renderTableHeader() {\n const { customizeTableRowProps, renderTableHeader, isSelectable, isConfigurable, store, tableId } = this.props;\n if (!renderTableHeader) {\n return null;\n }\n const enabledItems = this.props.getItems().filter(item => !(customizeTableRowProps === null || customizeTableRowProps === void 0 ? void 0 : customizeTableRowProps(item).disabled));\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableHead, { showTopLine: true, nowrap: true },\n isSelectable && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { checkbox: true, isChecked: store.isSelectedAll(enabledItems), onClick: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.prevDefault)(() => store.toggleSelectionAll(enabledItems)) })))),\n renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .map((cellProps, index) => {\n var _a;\n return (this.showColumn(cellProps) && (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { key: (_a = cellProps.id) !== null && _a !== void 0 ? _a : index, ...cellProps })));\n }),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.TableCell, { className: \"menu\" }, (isConfigurable && tableId)\n ? this.renderColumnVisibilityMenu(tableId)\n : undefined)));\n }\n render() {\n const { store, hasDetailsView, addRemoveButtons = {}, virtual, sortingCallbacks, detailsItem, className, tableProps = {}, tableId, getItems, activeTheme, } = this.props;\n const selectedItemId = detailsItem && detailsItem.getId();\n const classNames = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(className, \"box\", \"grow\", activeTheme.get().type);\n const items = getItems();\n const selectedItems = store.pickOnlySelected(items);\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"items box grow flex column\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_table__WEBPACK_IMPORTED_MODULE_2__.Table, { tableId: tableId, virtual: virtual, selectable: hasDetailsView, sortable: sortingCallbacks, getTableRow: this.getRow, renderRow: virtual ? undefined : this.renderRow, items: items, selectedItemId: selectedItemId, noItems: this.renderNoItems(), className: classNames, ...tableProps },\n this.renderTableHeader(),\n this.renderItems()),\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_16__.Observer, null, () => (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_add_remove_buttons__WEBPACK_IMPORTED_MODULE_4__.AddRemoveButtons, { onRemove: (store.removeItems || store.removeSelectedItems) && selectedItems.length > 0\n ? () => this.removeItemsDialog(selectedItems)\n : undefined, removeTooltip: `Remove selected items (${selectedItems.length})`, ...addRemoveButtons })))));\n }\n showColumn({ id: columnId, showWithColumn }) {\n const { tableId, isConfigurable } = this.props;\n return !isConfigurable || !tableId || !this.props.userStore.isTableColumnHidden(tableId, columnId, showWithColumn);\n }\n renderColumnVisibilityMenu(tableId) {\n const { renderTableHeader = [] } = this.props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu_menu_actions__WEBPACK_IMPORTED_MODULE_7__.MenuActions, { id: \"menu-actions-for-item-object-list-content\", className: \"ItemListLayoutVisibilityMenu\", toolbar: false, autoCloseOnSelect: false }, renderTableHeader\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined)\n .filter((props) => !!props.id)\n .filter(props => !props.showWithColumn)\n .map((cellProps) => {\n var _a;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_menu__WEBPACK_IMPORTED_MODULE_8__.MenuItem, { key: cellProps.id, className: \"input\" },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_checkbox__WEBPACK_IMPORTED_MODULE_9__.Checkbox, { label: (_a = cellProps.title) !== null && _a !== void 0 ? _a : `<${cellProps.className}>`, value: this.showColumn(cellProps), onChange: () => this.props.userStore.toggleTableColumnVisibility(tableId, cellProps.id) })));\n })));\n }\n};\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_15__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], NonInjectedItemListLayoutContent.prototype, \"failedToLoad\", null);\nNonInjectedItemListLayoutContent = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_17__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], NonInjectedItemListLayoutContent);\nconst ItemListLayoutContent = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_10__.withInjectables)(NonInjectedItemListLayoutContent, {\n getProps: (di, props) => ({\n ...props,\n activeTheme: di.inject(_themes_active_injectable__WEBPACK_IMPORTED_MODULE_14__[\"default\"]),\n userStore: di.inject(_common_user_store_user_store_injectable__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n pageFiltersStore: di.inject(_page_filters_store_injectable__WEBPACK_IMPORTED_MODULE_12__[\"default\"]),\n openConfirmDialog: di.inject(_confirm_dialog_open_injectable__WEBPACK_IMPORTED_MODULE_13__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/item-object-list/content.tsx?");
34570
34559
 
34571
34560
  /***/ }),
34572
34561
 
@@ -40583,7 +40572,7 @@ eval("module.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A log
40583
40572
  /***/ ((module) => {
40584
40573
 
40585
40574
  "use strict";
40586
- eval("module.exports = JSON.parse('{\"name\":\"open-lens\",\"productName\":\"OpenLens\",\"description\":\"OpenLens - Open Source IDE for Kubernetes\",\"homepage\":\"https://github.com/lensapp/lens\",\"version\":\"6.1.0\",\"main\":\"static/build/main.js\",\"copyright\":\"© 2022 OpenLens Authors\",\"license\":\"MIT\",\"author\":{\"name\":\"OpenLens Authors\",\"email\":\"info@k8slens.dev\"},\"scripts\":{\"adr:create\":\"echo \\\\\"What is the title?\\\\\"; read title; adr new \\\\\"$title\\\\\"\",\"adr:change-status\":\"echo \\\\\"Decision number?:\\\\\"; read decision; adr status $decision\",\"adr:update-readme\":\"adr update\",\"adr:list\":\"adr list\",\"dev\":\"concurrently -i -k \\\\\"yarn run dev-run -C\\\\\" yarn:dev:*\",\"dev-build\":\"concurrently yarn:compile:*\",\"debug-build\":\"concurrently yarn:compile:main yarn:compile:extension-types\",\"dev-run\":\"nodemon --watch ./static/build/main.js --exec \\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\"\",\"dev:main\":\"yarn run compile:main --watch --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-package-version\":\"yarn run ts-node build/set_npm_version.ts\",\"build:linux\":\"yarn run compile && electron-builder --linux --dir\",\"build:mac\":\"yarn run compile && electron-builder --mac --dir\",\"build:win\":\"yarn run compile && electron-builder --win --dir\",\"integration\":\"jest --runInBand --detectOpenHandles --forceExit integration\",\"test:unit\":\"func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/generate-tray-icons.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\",\"precreate-release-pr\":\"npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs\",\"create-release-pr\":\"node ./scripts/create-release-pr.mjs\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\",\"contentSecurityPolicy\":\"script-src \\'unsafe-eval\\' \\'self\\'; frame-src http://*.localhost:*/; img-src * data:\",\"welcomeRoute\":\"/welcome\"},\"engines\":{\"node\":\">=16 <17\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.(t|j)sx?$\":[\"@swc/jest\"]},\"testEnvironment\":\"jsdom\",\"resolver\":\"<rootDir>/src/jest-28-resolver.js\",\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globalSetup\":\"<rootDir>/src/jest.timezone.ts\",\"setupFilesAfterEnv\":[\"<rootDir>/src/jest-after-env.setup.ts\"],\"runtime\":\"@side/jest-runtime\"},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"resolutions\":{\"@astronautlabs/jsonpath/underscore\":\"^1.12.1\"},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^9.0.0\",\"@hapi/subtext\":\"^7.0.4\",\"@kubernetes/client-node\":\"^0.17.1\",\"@material-ui/styles\":\"^4.11.5\",\"@ogre-tools/fp\":\"^11.0.0\",\"@ogre-tools/injectable\":\"^11.0.0\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"^11.0.0\",\"@ogre-tools/injectable-extension-for-mobx\":\"^11.0.0\",\"@ogre-tools/injectable-react\":\"^11.0.0\",\"@sentry/electron\":\"^3.0.8\",\"@sentry/integrations\":\"^6.19.3\",\"@side/jest-runtime\":\"^1.0.1\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.2.2\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.6\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.5\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"history\":\"^4.10.1\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.15\",\"joi\":\"^17.6.2\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.1.1\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.6.2\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.5.3\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.4\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.37\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^2.6.7\",\"node-pty\":\"0.10.1\",\"npm\":\"^8.19.2\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^17.0.2\",\"react-dom\":\"^17.0.2\",\"react-material-ui-carousel\":\"^2.3.11\",\"react-router\":\"^5.3.4\",\"react-virtualized-auto-sizer\":\"^1.0.7\",\"readable-stream\":\"^3.6.0\",\"request\":\"^2.88.2\",\"request-promise-native\":\"^1.0.9\",\"rfc6902\":\"^4.0.2\",\"selfsigned\":\"^2.1.1\",\"semver\":\"^7.3.7\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"typed-regex\":\"^0.0.8\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.8.2\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.9.0\",\"xterm-link-provider\":\"^1.3.1\"},\"devDependencies\":{\"@async-fn/jest\":\"1.6.4\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.7\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.3.4\",\"@swc/jest\":\"^0.2.22\",\"@testing-library/dom\":\"^7.31.2\",\"@testing-library/jest-dom\":\"^5.16.5\",\"@testing-library/react\":\"^12.1.5\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"@types/cli-progress\":\"^3.11.0\",\"@types/color\":\"^3.0.3\",\"@types/command-line-args\":\"^5.2.0\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.4\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hapi__call\":\"^9.0.0\",\"@types/hapi__subtext\":\"^7.0.0\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.9\",\"@types/jest\":\"^28.1.6\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.186\",\"@types/marked\":\"^4.0.7\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.11.63\",\"@types/node-fetch\":\"^2.6.2\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.45\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.16\",\"@types/react-router\":\"^5.1.19\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-table\":\"^7.7.12\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.12\",\"@types/sharp\":\"^0.31.0\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^6.1.2\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.18.0\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.37.0\",\"@typescript-eslint/parser\":\"^5.39.0\",\"adr\":\"^1.4.2\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.11.2\",\"color\":\"^3.2.1\",\"command-line-args\":\"^5.2.1\",\"concurrently\":\"^7.4.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.0\",\"electron\":\"^19.1.1\",\"electron-builder\":\"^23.3.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.10\",\"esbuild-loader\":\"^2.20.0\",\"eslint\":\"^8.23.1\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.31.8\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.2\",\"gunzip-maybe\":\"^1.4.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"^28.1.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-environment-jsdom\":\"^28.1.3\",\"jest-mock-extended\":\"^2.0.9\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.1\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.20\",\"playwright\":\"^1.26.1\",\"postcss\":\"^8.4.17\",\"postcss-loader\":\"^6.2.1\",\"query-string\":\"^7.1.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.1\",\"react-refresh\":\"^0.14.0\",\"react-refresh-typescript\":\"^2.0.7\",\"react-router-dom\":\"^5.3.4\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.55.0\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.31.1\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.1.8\",\"tar-stream\":\"^2.2.0\",\"ts-loader\":\"^9.4.1\",\"ts-node\":\"^10.9.1\",\"type-fest\":\"^2.14.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.23.15\",\"typedoc-plugin-markdown\":\"^3.13.6\",\"typescript\":\"^4.8.3\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.74.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.11.1\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.19.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
40575
+ eval("module.exports = JSON.parse('{\"name\":\"open-lens\",\"productName\":\"OpenLens\",\"description\":\"OpenLens - Open Source IDE for Kubernetes\",\"homepage\":\"https://github.com/lensapp/lens\",\"version\":\"6.1.0\",\"main\":\"static/build/main.js\",\"copyright\":\"© 2022 OpenLens Authors\",\"license\":\"MIT\",\"author\":{\"name\":\"OpenLens Authors\",\"email\":\"info@k8slens.dev\"},\"scripts\":{\"adr:create\":\"echo \\\\\"What is the title?\\\\\"; read title; adr new \\\\\"$title\\\\\"\",\"adr:change-status\":\"echo \\\\\"Decision number?:\\\\\"; read decision; adr status $decision\",\"adr:update-readme\":\"adr update\",\"adr:list\":\"adr list\",\"dev\":\"concurrently -i -k \\\\\"yarn run dev-run -C\\\\\" yarn:dev:*\",\"dev-build\":\"concurrently yarn:compile:*\",\"debug-build\":\"concurrently yarn:compile:main yarn:compile:extension-types\",\"dev-run\":\"nodemon --watch ./static/build/main.js --exec \\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\"\",\"dev:main\":\"yarn run compile:main --watch --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-package-version\":\"yarn run ts-node build/set_npm_version.ts\",\"build:linux\":\"yarn run compile && electron-builder --linux --dir\",\"build:mac\":\"yarn run compile && electron-builder --mac --dir\",\"build:win\":\"yarn run compile && electron-builder --win --dir\",\"integration\":\"jest --runInBand --detectOpenHandles --forceExit integration\",\"test:unit\":\"func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/generate-tray-icons.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\",\"precreate-release-pr\":\"npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs\",\"create-release-pr\":\"node ./scripts/create-release-pr.mjs\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\",\"contentSecurityPolicy\":\"script-src \\'unsafe-eval\\' \\'self\\'; frame-src http://*.localhost:*/; img-src * data:\",\"welcomeRoute\":\"/welcome\"},\"engines\":{\"node\":\">=16 <17\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.(t|j)sx?$\":[\"@swc/jest\"]},\"testEnvironment\":\"jsdom\",\"resolver\":\"<rootDir>/src/jest-28-resolver.js\",\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globalSetup\":\"<rootDir>/src/jest.timezone.ts\",\"setupFilesAfterEnv\":[\"<rootDir>/src/jest-after-env.setup.ts\"],\"runtime\":\"@side/jest-runtime\"},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"resolutions\":{\"@astronautlabs/jsonpath/underscore\":\"^1.12.1\"},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^9.0.0\",\"@hapi/subtext\":\"^7.0.4\",\"@kubernetes/client-node\":\"^0.17.1\",\"@material-ui/styles\":\"^4.11.5\",\"@ogre-tools/fp\":\"^11.0.0\",\"@ogre-tools/injectable\":\"^11.0.0\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"^11.0.0\",\"@ogre-tools/injectable-extension-for-mobx\":\"^11.0.0\",\"@ogre-tools/injectable-react\":\"^11.0.0\",\"@sentry/electron\":\"^3.0.8\",\"@sentry/integrations\":\"^6.19.3\",\"@side/jest-runtime\":\"^1.0.1\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.2.2\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.6\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.5\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"history\":\"^4.10.1\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.15\",\"joi\":\"^17.6.2\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.1.1\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.6.2\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.5.3\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.4\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.37\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^2.6.7\",\"node-pty\":\"0.10.1\",\"npm\":\"^8.19.2\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^17.0.2\",\"react-dom\":\"^17.0.2\",\"react-material-ui-carousel\":\"^2.3.11\",\"react-router\":\"^5.3.4\",\"react-virtualized-auto-sizer\":\"^1.0.7\",\"readable-stream\":\"^3.6.0\",\"request\":\"^2.88.2\",\"request-promise-native\":\"^1.0.9\",\"rfc6902\":\"^4.0.2\",\"selfsigned\":\"^2.1.1\",\"semver\":\"^7.3.8\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"typed-regex\":\"^0.0.8\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.8.2\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.9.0\",\"xterm-link-provider\":\"^1.3.1\"},\"devDependencies\":{\"@async-fn/jest\":\"1.6.4\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.7\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.3.5\",\"@swc/jest\":\"^0.2.23\",\"@testing-library/dom\":\"^7.31.2\",\"@testing-library/jest-dom\":\"^5.16.5\",\"@testing-library/react\":\"^12.1.5\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"@types/cli-progress\":\"^3.11.0\",\"@types/color\":\"^3.0.3\",\"@types/command-line-args\":\"^5.2.0\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.4\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hapi__call\":\"^9.0.0\",\"@types/hapi__subtext\":\"^7.0.0\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.9\",\"@types/jest\":\"^28.1.6\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.186\",\"@types/marked\":\"^4.0.7\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.11.64\",\"@types/node-fetch\":\"^2.6.2\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.45\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.16\",\"@types/react-router\":\"^5.1.19\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-table\":\"^7.7.12\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.12\",\"@types/sharp\":\"^0.31.0\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^6.1.2\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.18.0\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.39.0\",\"@typescript-eslint/parser\":\"^5.39.0\",\"adr\":\"^1.4.3\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.11.2\",\"color\":\"^3.2.1\",\"command-line-args\":\"^5.2.1\",\"concurrently\":\"^7.4.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.0\",\"electron\":\"^19.1.1\",\"electron-builder\":\"^23.3.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.10\",\"esbuild-loader\":\"^2.20.0\",\"eslint\":\"^8.24.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.31.8\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.2\",\"gunzip-maybe\":\"^1.4.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"^28.1.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-environment-jsdom\":\"^28.1.3\",\"jest-mock-extended\":\"^2.0.9\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.1\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.20\",\"playwright\":\"^1.26.1\",\"postcss\":\"^8.4.17\",\"postcss-loader\":\"^6.2.1\",\"query-string\":\"^7.1.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.1\",\"react-refresh\":\"^0.14.0\",\"react-refresh-typescript\":\"^2.0.7\",\"react-router-dom\":\"^5.3.4\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.55.0\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.31.1\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.1.8\",\"tar-stream\":\"^2.2.0\",\"ts-loader\":\"^9.4.1\",\"ts-node\":\"^10.9.1\",\"type-fest\":\"^2.14.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.23.15\",\"typedoc-plugin-markdown\":\"^3.13.6\",\"typescript\":\"^4.8.4\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.74.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.11.1\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.19.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
40587
40576
 
40588
40577
  /***/ }),
40589
40578
 
@@ -4,4 +4,5 @@
4
4
  */
5
5
  import type { Injectable } from "@ogre-tools/injectable";
6
6
  import type { LensExtension } from "../lens-extension";
7
- export declare const extensionRegistratorInjectionToken: import("@ogre-tools/injectable").InjectionToken<(extension: LensExtension) => Injectable<any, any, any>[], void>;
7
+ export declare type ExtensionRegistrator = (extension: LensExtension) => Injectable<any, any, any>[];
8
+ export declare const extensionRegistratorInjectionToken: import("@ogre-tools/injectable").InjectionToken<ExtensionRegistrator, void>;
@@ -1,4 +1,4 @@
1
1
  import type { AsyncResult } from "../../../../../common/utils/async-result";
2
- import type { KubeJsonApiData } from "../../../../../common/k8s-api/kube-json-api";
3
- declare const callForHelmManifestInjectable: import("@ogre-tools/injectable").Injectable<(name: string, namespace: string, kubeconfigPath: string) => Promise<AsyncResult<KubeJsonApiData[]>>, unknown, void>;
2
+ import type { KubeJsonApiData, KubeJsonApiDataList } from "../../../../../common/k8s-api/kube-json-api";
3
+ declare const callForHelmManifestInjectable: import("@ogre-tools/injectable").Injectable<(name: string, namespace: string, kubeconfigPath: string) => Promise<AsyncResult<(KubeJsonApiData | KubeJsonApiDataList)[]>>, unknown, void>;
4
4
  export default callForHelmManifestInjectable;
@@ -1,4 +1,5 @@
1
- import type { JsonObject } from "type-fest";
2
- export declare type GetHelmReleaseResources = (name: string, namespace: string, kubeconfigPath: string, kubectlPath: string) => Promise<JsonObject[]>;
1
+ import type { KubeJsonApiData } from "../../../../common/k8s-api/kube-json-api";
2
+ import type { AsyncResult } from "../../../../common/utils/async-result";
3
+ export declare type GetHelmReleaseResources = (name: string, namespace: string, kubeconfigPath: string) => Promise<AsyncResult<KubeJsonApiData[], string>>;
3
4
  declare const getHelmReleaseResourcesInjectable: import("@ogre-tools/injectable").Injectable<GetHelmReleaseResources, unknown, void>;
4
5
  export default getHelmReleaseResourcesInjectable;
@@ -1,5 +1,9 @@
1
1
  declare const _default: {
2
- injectable: import("@ogre-tools/injectable").Injectable<(cluster: import("../../../common/cluster/cluster").Cluster, releaseName: string, namespace: string) => Promise<import("type-fest").JsonObject | undefined>, unknown, void>;
3
- overridingInstantiate: import("@ogre-tools/injectable").Instantiate<(cluster: import("../../../common/cluster/cluster").Cluster, releaseName: string, namespace: string) => Promise<import("type-fest").JsonObject | undefined>, void>;
2
+ injectable: import("@ogre-tools/injectable").Injectable<(cluster: import("../../../common/cluster/cluster").Cluster, releaseName: string, namespace: string) => Promise<{
3
+ resources: import("../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
4
+ } | undefined>, unknown, void>;
5
+ overridingInstantiate: import("@ogre-tools/injectable").Instantiate<(cluster: import("../../../common/cluster/cluster").Cluster, releaseName: string, namespace: string) => Promise<{
6
+ resources: import("../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
7
+ } | undefined>, void>;
4
8
  };
5
9
  export default _default;
@@ -1,3 +1,5 @@
1
1
  import type { Cluster } from "../../../common/cluster/cluster";
2
- declare const getHelmReleaseInjectable: import("@ogre-tools/injectable").Injectable<(cluster: Cluster, releaseName: string, namespace: string) => Promise<import("type-fest").JsonObject | undefined>, unknown, void>;
2
+ declare const getHelmReleaseInjectable: import("@ogre-tools/injectable").Injectable<(cluster: Cluster, releaseName: string, namespace: string) => Promise<{
3
+ resources: import("../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
4
+ } | undefined>, unknown, void>;
3
5
  export default getHelmReleaseInjectable;
@@ -1,11 +1,15 @@
1
1
  declare const _default: {
2
2
  injectable: import("@ogre-tools/injectable").Injectable<(cluster: import("../../../common/cluster/cluster").Cluster, releaseName: string, namespace: string, data: import("./update-helm-release.injectable").UpdateChartArgs) => Promise<{
3
3
  log: string;
4
- release: import("type-fest").JsonObject | undefined;
4
+ release: {
5
+ resources: import("../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
6
+ } | undefined;
5
7
  }>, unknown, void>;
6
8
  overridingInstantiate: import("@ogre-tools/injectable").Instantiate<(cluster: import("../../../common/cluster/cluster").Cluster, releaseName: string, namespace: string, data: import("./update-helm-release.injectable").UpdateChartArgs) => Promise<{
7
9
  log: string;
8
- release: import("type-fest").JsonObject | undefined;
10
+ release: {
11
+ resources: import("../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
12
+ } | undefined;
9
13
  }>, void>;
10
14
  };
11
15
  export default _default;
@@ -7,6 +7,8 @@ export interface UpdateChartArgs {
7
7
  }
8
8
  declare const updateHelmReleaseInjectable: import("@ogre-tools/injectable").Injectable<(cluster: Cluster, releaseName: string, namespace: string, data: UpdateChartArgs) => Promise<{
9
9
  log: string;
10
- release: JsonObject | undefined;
10
+ release: {
11
+ resources: import("../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
12
+ } | undefined;
11
13
  }>, unknown, void>;
12
14
  export default updateHelmReleaseInjectable;
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import type { ServerResponse } from "http";
3
+ import type { LensApiRequest, Route } from "./route";
4
+ export declare type RouteHandler = (request: LensApiRequest<string>, response: ServerResponse) => Promise<void>;
5
+ export declare type CreateHandlerForRoute = (route: Route<unknown, string>) => RouteHandler;
6
+ declare const createHandlerForRouteInjectable: import("@ogre-tools/injectable").Injectable<CreateHandlerForRoute, unknown, void>;
7
+ export default createHandlerForRouteInjectable;
@@ -3,12 +3,12 @@
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
5
  /// <reference types="node" />
6
- import Call from "@hapi/call";
7
6
  import type http from "http";
8
7
  import type { Cluster } from "../../common/cluster/cluster";
9
8
  import type { LensApiRequest, Route } from "./route";
10
9
  import type { ServerIncomingMessage } from "../lens-proxy/lens-proxy";
11
10
  import type { ParseRequest } from "./parse-request.injectable";
11
+ import type { CreateHandlerForRoute } from "./create-handler-for-route.injectable";
12
12
  export interface RouterRequestOpts {
13
13
  req: http.IncomingMessage;
14
14
  res: http.ServerResponse;
@@ -18,11 +18,13 @@ export interface RouterRequestOpts {
18
18
  }
19
19
  interface Dependencies {
20
20
  parseRequest: ParseRequest;
21
+ createHandlerForRoute: CreateHandlerForRoute;
22
+ readonly routes: Route<unknown, string>[];
21
23
  }
22
24
  export declare class Router {
23
- private dependencies;
24
- protected router: Call.Router<(request: LensApiRequest<string>, response: http.ServerResponse<http.IncomingMessage>) => Promise<void>>;
25
- constructor(routes: Route<unknown, string>[], dependencies: Dependencies);
25
+ private readonly dependencies;
26
+ private readonly router;
27
+ constructor(dependencies: Dependencies);
26
28
  route(cluster: Cluster | undefined, req: ServerIncomingMessage, res: http.ServerResponse): Promise<boolean>;
27
29
  protected getRequest(opts: RouterRequestOpts): Promise<LensApiRequest<string>>;
28
30
  }
@@ -1,2 +1,6 @@
1
- declare const getReleaseRouteInjectable: import("@ogre-tools/injectable").Injectable<import("../../../router/route").Route<import("type-fest").JsonObject, "/api/v2/releases/{namespace}/{release}">, import("../../../router/route").Route<import("type-fest").JsonObject, "/api/v2/releases/{namespace}/{release}">, void>;
1
+ declare const getReleaseRouteInjectable: import("@ogre-tools/injectable").Injectable<import("../../../router/route").Route<{
2
+ resources: import("../../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
3
+ }, "/api/v2/releases/{namespace}/{release}">, import("../../../router/route").Route<{
4
+ resources: import("../../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
5
+ }, "/api/v2/releases/{namespace}/{release}">, void>;
2
6
  export default getReleaseRouteInjectable;
@@ -1,8 +1,12 @@
1
1
  declare const updateReleaseRouteInjectable: import("@ogre-tools/injectable").Injectable<import("../../../router/route").Route<{
2
2
  log: string;
3
- release: import("type-fest").JsonObject | undefined;
3
+ release: {
4
+ resources: import("../../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
5
+ } | undefined;
4
6
  }, "/api/v2/releases/{namespace}/{release}">, import("../../../router/route").Route<{
5
7
  log: string;
6
- release: import("type-fest").JsonObject | undefined;
8
+ release: {
9
+ resources: import("../../../../common/k8s-api/kube-json-api").KubeJsonApiData<import("../../../../common/k8s-api/kube-object").KubeJsonApiObjectMetadata<import("../../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>[];
10
+ } | undefined;
7
11
  }, "/api/v2/releases/{namespace}/{release}">, void>;
8
12
  export default updateReleaseRouteInjectable;
@@ -1,4 +1,4 @@
1
1
  import type { Injectable } from "@ogre-tools/injectable";
2
2
  import type { TrayMenuItem } from "./tray-menu-item-injection-token";
3
- declare const trayMenuItemRegistratorInjectable: Injectable<(extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => Injectable<TrayMenuItem, TrayMenuItem, void>[], (extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => Injectable<any, any, any>[], void>;
3
+ declare const trayMenuItemRegistratorInjectable: Injectable<(extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => Injectable<TrayMenuItem, TrayMenuItem, void>[], import("../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
4
4
  export default trayMenuItemRegistratorInjectable;
@@ -9,9 +9,7 @@ export declare type EnvironmentVariables = Partial<Record<string, string>>;
9
9
  * Subsequent calls after such a timeout simply log an error message without trying
10
10
  * to get the environment, unless forceRetry is true.
11
11
  * @param shell the shell to get the environment from
12
- * @param forceRetry if true will always try to get the environment, otherwise if
13
- * a previous call to this function failed then this call will fail too.
14
12
  * @returns object containing the shell's environment variables. An empty object is
15
13
  * returned if the call fails.
16
14
  */
17
- export declare function shellEnv(shell?: string, forceRetry?: boolean): Promise<EnvironmentVariables>;
15
+ export declare function shellEnv(shell: string): Promise<EnvironmentVariables>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ import type { RegisteredAdditionalCategoryColumn } from "../custom-category-columns";
6
+ export interface CustomCatalogCategoryRegistration {
7
+ kind: string;
8
+ group: string;
9
+ registration: RegisteredAdditionalCategoryColumn;
10
+ }
11
+ export declare const customCatalogCategoryColumnInjectionToken: import("@ogre-tools/injectable").InjectionToken<CustomCatalogCategoryRegistration, void>;
@@ -0,0 +1,3 @@
1
+ import type { ExtensionRegistrator } from "../../../../extensions/extension-loader/extension-registrator-injection-token";
2
+ declare const customCategoryColumnsRegistratorInjectable: import("@ogre-tools/injectable").Injectable<ExtensionRegistrator, ExtensionRegistrator, void>;
3
+ export default customCategoryColumnsRegistratorInjectable;
@@ -0,0 +1,13 @@
1
+ declare const kubernetesApiVersionColumnInjectable: import("@ogre-tools/injectable").Injectable<{
2
+ group: string;
3
+ kind: string;
4
+ registration: {
5
+ id: string;
6
+ priority: number;
7
+ renderCell: (entity: import("../../../api/catalog-entity").CatalogEntity<import("../../../../common/catalog").CatalogEntityMetadata, import("../../../../common/catalog").CatalogEntityStatus, import("../../../../common/catalog").CatalogEntitySpec>) => JSX.Element;
8
+ titleProps: {
9
+ title: string;
10
+ };
11
+ };
12
+ }, import("./custom-token").CustomCatalogCategoryRegistration, void>;
13
+ export default kubernetesApiVersionColumnInjectable;
@@ -0,0 +1,13 @@
1
+ declare const kubernetesDistributionColumnInjectable: import("@ogre-tools/injectable").Injectable<{
2
+ group: string;
3
+ kind: string;
4
+ registration: {
5
+ id: string;
6
+ priority: number;
7
+ renderCell: (entity: import("../../../api/catalog-entity").CatalogEntity<import("../../../../common/catalog").CatalogEntityMetadata, import("../../../../common/catalog").CatalogEntityStatus, import("../../../../common/catalog").CatalogEntitySpec>) => JSX.Element;
8
+ titleProps: {
9
+ title: string;
10
+ };
11
+ };
12
+ }, import("./custom-token").CustomCatalogCategoryRegistration, void>;
13
+ export default kubernetesDistributionColumnInjectable;
@@ -1,4 +1,3 @@
1
- import type { IComputedValue } from "mobx";
2
1
  import type { RegisteredAdditionalCategoryColumn } from "./custom-category-columns";
3
- declare const categoryColumnsInjectable: import("@ogre-tools/injectable").Injectable<IComputedValue<Map<string, Map<string, RegisteredAdditionalCategoryColumn[]>>>, unknown, void>;
2
+ declare const categoryColumnsInjectable: import("@ogre-tools/injectable").Injectable<import("mobx").IComputedValue<Map<string, Map<string, RegisteredAdditionalCategoryColumn[]>>>, unknown, void>;
4
3
  export default categoryColumnsInjectable;
@@ -64,5 +64,4 @@ export interface MinimalResource {
64
64
  name: string;
65
65
  namespace: string | undefined;
66
66
  detailsUrl: string | undefined;
67
- creationTimestamp: string | undefined;
68
67
  }
@@ -3,7 +3,7 @@ import type { HelmReleaseDetails } from "../../../../../common/k8s-api/endpoints
3
3
  import type { AsyncResult } from "../../../../../common/utils/async-result";
4
4
  export interface DetailedHelmRelease {
5
5
  release: HelmReleaseDto;
6
- details: HelmReleaseDetails;
6
+ details?: HelmReleaseDetails;
7
7
  }
8
8
  export declare type RequestDetailedHelmRelease = (name: string, namespace: string) => Promise<AsyncResult<DetailedHelmRelease>>;
9
9
  declare const requestDetailedHelmReleaseInjectable: import("@ogre-tools/injectable").Injectable<RequestDetailedHelmRelease, unknown, void>;
@@ -6,5 +6,5 @@ declare const extensionTelemetryPreferenceItemRegistratorInjectable: import("@og
6
6
  Hint: import("react").ComponentType<any>;
7
7
  Input: import("react").ComponentType<any>;
8
8
  };
9
- }, import("./app-preferences/app-preference-registration").AppPreferenceRegistration, void>[], (extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
9
+ }, import("./app-preferences/app-preference-registration").AppPreferenceRegistration, void>[], import("../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
10
10
  export default extensionTelemetryPreferenceItemRegistratorInjectable;
@@ -7,5 +7,5 @@ declare const extensionSpecificTabNavigationItemRegistratorInjectable: import("@
7
7
  navigate: () => void;
8
8
  isVisible: import("mobx").IComputedValue<boolean>;
9
9
  isActive: import("mobx").IComputedValue<boolean>;
10
- }, import("./preference-navigation-items.injectable").PreferenceNavigationItem, void>[], (extension: LensExtension<import("../../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
10
+ }, import("./preference-navigation-items.injectable").PreferenceNavigationItem, void>[], import("../../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
11
11
  export default extensionSpecificTabNavigationItemRegistratorInjectable;
@@ -6,5 +6,5 @@ declare const extensionPreferencesNavigationItemRegistratorInjectable: import("@
6
6
  isVisible: import("mobx").IComputedValue<boolean>;
7
7
  orderNumber: number;
8
8
  parent: string;
9
- }, import("./preference-navigation-items.injectable").PreferenceNavigationItem, void>[], (extension: import("../../../../extensions/lens-extension").LensExtension<import("../../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
9
+ }, import("./preference-navigation-items.injectable").PreferenceNavigationItem, void>[], import("../../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
10
10
  export default extensionPreferencesNavigationItemRegistratorInjectable;
@@ -21,4 +21,4 @@ export interface LocalRefProps {
21
21
  kubeRef: LocalObjectReference | SecretReference | undefined;
22
22
  api: LocalRefPropsApi;
23
23
  }
24
- export declare const LocalRef: ({ pod, title, kubeRef, api }: LocalRefProps) => JSX.Element | null;
24
+ export declare const LocalRef: ({ pod, title, kubeRef: ref, api }: LocalRefProps) => JSX.Element | null;
@@ -5,5 +5,5 @@ declare const kubeObjectDetailItemRegistratorInjectable: import("@ogre-tools/inj
5
5
  Component: import("react").ComponentType<import("..").KubeObjectDetailsProps<import("../../../../common/k8s-api/kube-object").KubeObject<import("../../../../common/k8s-api/kube-object").KubeObjectMetadata<import("../../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>>>;
6
6
  enabled: import("mobx").IComputedValue<boolean>;
7
7
  orderNumber: number;
8
- }, import("./kube-object-detail-item-injection-token").KubeObjectDetailItem, void>[], (extension: import("../../../../extensions/lens-extension").LensExtension<import("../../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
8
+ }, import("./kube-object-detail-item-injection-token").KubeObjectDetailItem, void>[], import("../../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
9
9
  export default kubeObjectDetailItemRegistratorInjectable;
@@ -5,5 +5,5 @@ declare const kubeObjectMenuItemRegistratorInjectable: import("@ogre-tools/injec
5
5
  Component: import("react").ComponentType<import("./kube-object-menu-registration").KubeObjectMenuItemProps>;
6
6
  enabled: import("mobx").IComputedValue<boolean>;
7
7
  orderNumber: number;
8
- }, import("./kube-object-menu-item-injection-token").KubeObjectMenuItem, void>[], (extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
8
+ }, import("./kube-object-menu-item-injection-token").KubeObjectMenuItem, void>[], import("../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
9
9
  export default kubeObjectMenuItemRegistratorInjectable;
@@ -4,5 +4,5 @@ declare const kubeObjectStatusTextRegistratorInjectable: import("@ogre-tools/inj
4
4
  apiVersions: string[];
5
5
  resolve: (object: import("../../../common/k8s-api/kube-object").KubeObject<import("../../../common/k8s-api/kube-object").KubeObjectMetadata<import("../../../common/k8s-api/kube-object").KubeObjectScope>, unknown, unknown>) => import("../../../common/k8s-api/kube-object-status").KubeObjectStatus;
6
6
  visible?: import("mobx").IComputedValue<boolean> | undefined;
7
- }, import("./kube-object-status-text-injection-token").KubeObjectStatusText, void>[], (extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
7
+ }, import("./kube-object-status-text-injection-token").KubeObjectStatusText, void>[], import("../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
8
8
  export default kubeObjectStatusTextRegistratorInjectable;
@@ -1,3 +1,3 @@
1
1
  import type { SidebarItemRegistration } from "./sidebar-items.injectable";
2
- declare const extensionSidebarItemRegistratorInjectable: import("@ogre-tools/injectable").Injectable<(ext: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<import("mobx").IComputedValue<SidebarItemRegistration[]>, import("mobx").IComputedValue<SidebarItemRegistration[]>, void>[], (extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
2
+ declare const extensionSidebarItemRegistratorInjectable: import("@ogre-tools/injectable").Injectable<(ext: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<import("mobx").IComputedValue<SidebarItemRegistration[]>, import("mobx").IComputedValue<SidebarItemRegistration[]>, void>[], import("../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
3
3
  export default extensionSidebarItemRegistratorInjectable;
@@ -4,5 +4,5 @@
4
4
  */
5
5
  import type { Injectable } from "@ogre-tools/injectable";
6
6
  import type { StatusBarItem } from "./status-bar-item-injection-token";
7
- declare const statusBarItemRegistratorInjectable: Injectable<(extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => Injectable<StatusBarItem, StatusBarItem, void>[], (extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => Injectable<any, any, any>[], void>;
7
+ declare const statusBarItemRegistratorInjectable: Injectable<(extension: import("../../../extensions/lens-extension").LensExtension<import("../../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => Injectable<StatusBarItem, StatusBarItem, void>[], import("../../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
8
8
  export default statusBarItemRegistratorInjectable;
@@ -17,5 +17,5 @@ declare const extensionRouteRegistratorInjectable: import("@ogre-tools/injectabl
17
17
  }, {
18
18
  route: import("../../common/front-end-routing/front-end-route-injection-token").Route<unknown>;
19
19
  Component: React.ElementType<any>;
20
- }, void>)[], (extension: import("../../extensions/lens-extension").LensExtension<import("../../extensions/lens-extension-set-dependencies").LensExtensionDependencies>) => import("@ogre-tools/injectable").Injectable<any, any, any>[], void>;
20
+ }, void>)[], import("../../extensions/extension-loader/extension-registrator-injection-token").ExtensionRegistrator, void>;
21
21
  export default extensionRouteRegistratorInjectable;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@k8slens/extensions",
3
3
  "productName": "OpenLens extensions",
4
4
  "description": "OpenLens - Open Source Kubernetes IDE: extensions",
5
- "version": "6.1.1-git.8c49ea8148.0",
5
+ "version": "6.1.1-git.a6cdf2c3f0.0",
6
6
  "copyright": "© 2022 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",
@@ -1,5 +0,0 @@
1
- /**
2
- * Copyright (c) OpenLens Authors. All rights reserved.
3
- * Licensed under MIT License. See LICENSE in root directory for more information.
4
- */
5
- export * from "./sentry";
@@ -1,21 +0,0 @@
1
- /**
2
- * Copyright (c) OpenLens Authors. All rights reserved.
3
- * Licensed under MIT License. See LICENSE in root directory for more information.
4
- */
5
- import Transport from "winston-transport";
6
- import { Severity } from "@sentry/browser";
7
- declare const SENTRY_LEVELS_MAP: {
8
- silly: Severity;
9
- verbose: Severity;
10
- debug: Severity;
11
- info: Severity;
12
- warn: Severity;
13
- error: Severity;
14
- };
15
- export declare type WinstonLevel = keyof typeof SENTRY_LEVELS_MAP;
16
- export declare class SentryTransport extends Transport {
17
- logLevels: Set<WinstonLevel>;
18
- constructor(minWinstonLevel: WinstonLevel);
19
- log(info: any, next: () => void): void;
20
- }
21
- export {};