@k8slens/extensions 5.3.0-git.a3765211de.0 → 5.3.0-git.cbb9f918a7.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.
@@ -20,6 +20,7 @@
20
20
  */
21
21
  import { KubeObject } from "../kube-object";
22
22
  import { KubeApi } from "../kube-api";
23
+ import type { KubeJsonApiData } from "../kube-json-api";
23
24
  declare type AdditionalPrinterColumnsCommon = {
24
25
  name: string;
25
26
  type: "integer" | "number" | "string" | "boolean" | "date";
@@ -32,9 +33,19 @@ export declare type AdditionalPrinterColumnsV1 = AdditionalPrinterColumnsCommon
32
33
  declare type AdditionalPrinterColumnsV1Beta = AdditionalPrinterColumnsCommon & {
33
34
  JSONPath: string;
34
35
  };
36
+ export interface CRDVersion {
37
+ name: string;
38
+ served: boolean;
39
+ storage: boolean;
40
+ schema?: object;
41
+ additionalPrinterColumns?: AdditionalPrinterColumnsV1[];
42
+ }
35
43
  export interface CustomResourceDefinition {
36
44
  spec: {
37
45
  group: string;
46
+ /**
47
+ * @deprecated for apiextensions.k8s.io/v1 but used previously
48
+ */
38
49
  version?: string;
39
50
  names: {
40
51
  plural: string;
@@ -43,18 +54,18 @@ export interface CustomResourceDefinition {
43
54
  listKind: string;
44
55
  };
45
56
  scope: "Namespaced" | "Cluster" | string;
46
- validation?: any;
47
- versions?: {
48
- name: string;
49
- served: boolean;
50
- storage: boolean;
51
- schema?: unknown;
52
- additionalPrinterColumns?: AdditionalPrinterColumnsV1[];
53
- }[];
57
+ /**
58
+ * @deprecated for apiextensions.k8s.io/v1 but used previously
59
+ */
60
+ validation?: object;
61
+ versions?: CRDVersion[];
54
62
  conversion: {
55
63
  strategy?: string;
56
64
  webhook?: any;
57
65
  };
66
+ /**
67
+ * @deprecated for apiextensions.k8s.io/v1 but used previously
68
+ */
58
69
  additionalPrinterColumns?: AdditionalPrinterColumnsV1Beta[];
59
70
  };
60
71
  status: {
@@ -75,10 +86,14 @@ export interface CustomResourceDefinition {
75
86
  storedVersions: string[];
76
87
  };
77
88
  }
89
+ export interface CRDApiData extends KubeJsonApiData {
90
+ spec: object;
91
+ }
78
92
  export declare class CustomResourceDefinition extends KubeObject {
79
93
  static kind: string;
80
94
  static namespaced: boolean;
81
95
  static apiBase: string;
96
+ constructor(data: CRDApiData);
82
97
  getResourceUrl(): string;
83
98
  getResourceApiBase(): string;
84
99
  getPluralName(): string;
@@ -86,6 +101,7 @@ export declare class CustomResourceDefinition extends KubeObject {
86
101
  getResourceTitle(): string;
87
102
  getGroup(): string;
88
103
  getScope(): string;
104
+ getPreferedVersion(): CRDVersion;
89
105
  getVersion(): string;
90
106
  isNamespaced(): boolean;
91
107
  getStoredVersions(): string;
@@ -60,5 +60,12 @@ export declare const DESCRIPTORS: {
60
60
  syncKubeconfigEntries: PreferenceDescription<KubeconfigSyncEntry[], Map<string, KubeconfigSyncValue>>;
61
61
  editorConfiguration: PreferenceDescription<EditorConfiguration, EditorConfiguration>;
62
62
  terminalCopyOnSelect: PreferenceDescription<boolean, boolean>;
63
+ updateChannel: PreferenceDescription<string, string>;
64
+ };
65
+ export declare const CONSTANTS: {
66
+ defaultUpdateChannel: string;
67
+ updateChannels: Map<string, {
68
+ label: string;
69
+ }>;
63
70
  };
64
71
  export {};
@@ -46,6 +46,7 @@ export declare class UserStore extends BaseStore<UserStoreModel> {
46
46
  downloadBinariesPath?: string;
47
47
  kubectlBinariesPath?: string;
48
48
  terminalCopyOnSelect: boolean;
49
+ updateChannel?: string;
49
50
  /**
50
51
  * Download kubectl binaries matching cluster version
51
52
  */
@@ -66,6 +67,7 @@ export declare class UserStore extends BaseStore<UserStoreModel> {
66
67
  syncKubeconfigEntries: import("mobx").ObservableMap<string, KubeconfigSyncValue>;
67
68
  get isNewVersion(): boolean;
68
69
  get resolvedShell(): string | undefined;
70
+ get isAllowedToDowngrade(): boolean;
69
71
  startMainReactions(): void;
70
72
  getEditorOptions(): monaco.editor.IStandaloneEditorConstructionOptions;
71
73
  setEditorLineNumbers(lineNumbers: monaco.editor.LineNumbersType): void;
@@ -9702,7 +9702,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexport
9702
9702
  /***/ (function(module, exports, __webpack_require__) {
9703
9703
 
9704
9704
  "use strict";
9705
- eval("\nconst path = __webpack_require__(/*! path */ \"path\");\nconst childProcess = __webpack_require__(/*! child_process */ \"child_process\");\nconst crossSpawn = __webpack_require__(/*! cross-spawn */ \"./node_modules/cross-spawn/index.js\");\nconst stripFinalNewline = __webpack_require__(/*! strip-final-newline */ \"./node_modules/strip-final-newline/index.js\");\nconst npmRunPath = __webpack_require__(/*! npm-run-path */ \"./node_modules/@kubernetes/client-node/node_modules/npm-run-path/index.js\");\nconst onetime = __webpack_require__(/*! onetime */ \"./node_modules/@kubernetes/client-node/node_modules/onetime/index.js\");\nconst makeError = __webpack_require__(/*! ./lib/error */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/error.js\");\nconst normalizeStdio = __webpack_require__(/*! ./lib/stdio */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/stdio.js\");\nconst {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(/*! ./lib/kill */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/kill.js\");\nconst {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(/*! ./lib/stream.js */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/stream.js\");\nconst {mergePromise, getSpawnedPromise} = __webpack_require__(/*! ./lib/promise.js */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/promise.js\");\nconst {joinCommand, parseCommand} = __webpack_require__(/*! ./lib/command.js */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/command.js\");\n\nconst DEFAULT_MAX_BUFFER = 1000 * 1000 * 100;\n\nconst getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => {\n\tconst env = extendEnv ? {...process.env, ...envOption} : envOption;\n\n\tif (preferLocal) {\n\t\treturn npmRunPath.env({env, cwd: localDir, execPath});\n\t}\n\n\treturn env;\n};\n\nconst handleArguments = (file, args, options = {}) => {\n\tconst parsed = crossSpawn._parse(file, args, options);\n\tfile = parsed.command;\n\targs = parsed.args;\n\toptions = parsed.options;\n\n\toptions = {\n\t\tmaxBuffer: DEFAULT_MAX_BUFFER,\n\t\tbuffer: true,\n\t\tstripFinalNewline: true,\n\t\textendEnv: true,\n\t\tpreferLocal: false,\n\t\tlocalDir: options.cwd || process.cwd(),\n\t\texecPath: process.execPath,\n\t\tencoding: 'utf8',\n\t\treject: true,\n\t\tcleanup: true,\n\t\tall: false,\n\t\twindowsHide: true,\n\t\t...options\n\t};\n\n\toptions.env = getEnv(options);\n\n\toptions.stdio = normalizeStdio(options);\n\n\tif (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') {\n\t\t// #116\n\t\targs.unshift('/q');\n\t}\n\n\treturn {file, args, options, parsed};\n};\n\nconst handleOutput = (options, value, error) => {\n\tif (typeof value !== 'string' && !Buffer.isBuffer(value)) {\n\t\t// When `execa.sync()` errors, we normalize it to '' to mimic `execa()`\n\t\treturn error === undefined ? undefined : '';\n\t}\n\n\tif (options.stripFinalNewline) {\n\t\treturn stripFinalNewline(value);\n\t}\n\n\treturn value;\n};\n\nconst execa = (file, args, options) => {\n\tconst parsed = handleArguments(file, args, options);\n\tconst command = joinCommand(file, args);\n\n\tlet spawned;\n\ttry {\n\t\tspawned = childProcess.spawn(parsed.file, parsed.args, parsed.options);\n\t} catch (error) {\n\t\t// Ensure the returned error is always both a promise and a child process\n\t\tconst dummySpawned = new childProcess.ChildProcess();\n\t\tconst errorPromise = Promise.reject(makeError({\n\t\t\terror,\n\t\t\tstdout: '',\n\t\t\tstderr: '',\n\t\t\tall: '',\n\t\t\tcommand,\n\t\t\tparsed,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t}));\n\t\treturn mergePromise(dummySpawned, errorPromise);\n\t}\n\n\tconst spawnedPromise = getSpawnedPromise(spawned);\n\tconst timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise);\n\tconst processDone = setExitHandler(spawned, parsed.options, timedPromise);\n\n\tconst context = {isCanceled: false};\n\n\tspawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned));\n\tspawned.cancel = spawnedCancel.bind(null, spawned, context);\n\n\tconst handlePromise = async () => {\n\t\tconst [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone);\n\t\tconst stdout = handleOutput(parsed.options, stdoutResult);\n\t\tconst stderr = handleOutput(parsed.options, stderrResult);\n\t\tconst all = handleOutput(parsed.options, allResult);\n\n\t\tif (error || exitCode !== 0 || signal !== null) {\n\t\t\tconst returnedError = makeError({\n\t\t\t\terror,\n\t\t\t\texitCode,\n\t\t\t\tsignal,\n\t\t\t\tstdout,\n\t\t\t\tstderr,\n\t\t\t\tall,\n\t\t\t\tcommand,\n\t\t\t\tparsed,\n\t\t\t\ttimedOut,\n\t\t\t\tisCanceled: context.isCanceled,\n\t\t\t\tkilled: spawned.killed\n\t\t\t});\n\n\t\t\tif (!parsed.options.reject) {\n\t\t\t\treturn returnedError;\n\t\t\t}\n\n\t\t\tthrow returnedError;\n\t\t}\n\n\t\treturn {\n\t\t\tcommand,\n\t\t\texitCode: 0,\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t\tall,\n\t\t\tfailed: false,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t};\n\t};\n\n\tconst handlePromiseOnce = onetime(handlePromise);\n\n\thandleInput(spawned, parsed.options.input);\n\n\tspawned.all = makeAllStream(spawned, parsed.options);\n\n\treturn mergePromise(spawned, handlePromiseOnce);\n};\n\nmodule.exports = execa;\n\nmodule.exports.sync = (file, args, options) => {\n\tconst parsed = handleArguments(file, args, options);\n\tconst command = joinCommand(file, args);\n\n\tvalidateInputSync(parsed.options);\n\n\tlet result;\n\ttry {\n\t\tresult = childProcess.spawnSync(parsed.file, parsed.args, parsed.options);\n\t} catch (error) {\n\t\tthrow makeError({\n\t\t\terror,\n\t\t\tstdout: '',\n\t\t\tstderr: '',\n\t\t\tall: '',\n\t\t\tcommand,\n\t\t\tparsed,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t});\n\t}\n\n\tconst stdout = handleOutput(parsed.options, result.stdout, result.error);\n\tconst stderr = handleOutput(parsed.options, result.stderr, result.error);\n\n\tif (result.error || result.status !== 0 || result.signal !== null) {\n\t\tconst error = makeError({\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t\terror: result.error,\n\t\t\tsignal: result.signal,\n\t\t\texitCode: result.status,\n\t\t\tcommand,\n\t\t\tparsed,\n\t\t\ttimedOut: result.error && result.error.code === 'ETIMEDOUT',\n\t\t\tisCanceled: false,\n\t\t\tkilled: result.signal !== null\n\t\t});\n\n\t\tif (!parsed.options.reject) {\n\t\t\treturn error;\n\t\t}\n\n\t\tthrow error;\n\t}\n\n\treturn {\n\t\tcommand,\n\t\texitCode: 0,\n\t\tstdout,\n\t\tstderr,\n\t\tfailed: false,\n\t\ttimedOut: false,\n\t\tisCanceled: false,\n\t\tkilled: false\n\t};\n};\n\nmodule.exports.command = (command, options) => {\n\tconst [file, ...args] = parseCommand(command);\n\treturn execa(file, args, options);\n};\n\nmodule.exports.commandSync = (command, options) => {\n\tconst [file, ...args] = parseCommand(command);\n\treturn execa.sync(file, args, options);\n};\n\nmodule.exports.node = (scriptPath, args, options = {}) => {\n\tif (args && !Array.isArray(args) && typeof args === 'object') {\n\t\toptions = args;\n\t\targs = [];\n\t}\n\n\tconst stdio = normalizeStdio.node(options);\n\tconst defaultExecArgv = process.execArgv.filter(arg => !arg.startsWith('--inspect'));\n\n\tconst {\n\t\tnodePath = process.execPath,\n\t\tnodeOptions = defaultExecArgv\n\t} = options;\n\n\treturn execa(\n\t\tnodePath,\n\t\t[\n\t\t\t...nodeOptions,\n\t\t\tscriptPath,\n\t\t\t...(Array.isArray(args) ? args : [])\n\t\t],\n\t\t{\n\t\t\t...options,\n\t\t\tstdin: undefined,\n\t\t\tstdout: undefined,\n\t\t\tstderr: undefined,\n\t\t\tstdio,\n\t\t\tshell: false\n\t\t}\n\t);\n};\n\n\n//# sourceURL=webpack:///./node_modules/@kubernetes/client-node/node_modules/execa/index.js?");
9705
+ eval("\nconst path = __webpack_require__(/*! path */ \"path\");\nconst childProcess = __webpack_require__(/*! child_process */ \"child_process\");\nconst crossSpawn = __webpack_require__(/*! cross-spawn */ \"./node_modules/cross-spawn/index.js\");\nconst stripFinalNewline = __webpack_require__(/*! strip-final-newline */ \"./node_modules/strip-final-newline/index.js\");\nconst npmRunPath = __webpack_require__(/*! npm-run-path */ \"./node_modules/@kubernetes/client-node/node_modules/npm-run-path/index.js\");\nconst onetime = __webpack_require__(/*! onetime */ \"./node_modules/onetime/index.js\");\nconst makeError = __webpack_require__(/*! ./lib/error */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/error.js\");\nconst normalizeStdio = __webpack_require__(/*! ./lib/stdio */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/stdio.js\");\nconst {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(/*! ./lib/kill */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/kill.js\");\nconst {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(/*! ./lib/stream.js */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/stream.js\");\nconst {mergePromise, getSpawnedPromise} = __webpack_require__(/*! ./lib/promise.js */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/promise.js\");\nconst {joinCommand, parseCommand} = __webpack_require__(/*! ./lib/command.js */ \"./node_modules/@kubernetes/client-node/node_modules/execa/lib/command.js\");\n\nconst DEFAULT_MAX_BUFFER = 1000 * 1000 * 100;\n\nconst getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => {\n\tconst env = extendEnv ? {...process.env, ...envOption} : envOption;\n\n\tif (preferLocal) {\n\t\treturn npmRunPath.env({env, cwd: localDir, execPath});\n\t}\n\n\treturn env;\n};\n\nconst handleArguments = (file, args, options = {}) => {\n\tconst parsed = crossSpawn._parse(file, args, options);\n\tfile = parsed.command;\n\targs = parsed.args;\n\toptions = parsed.options;\n\n\toptions = {\n\t\tmaxBuffer: DEFAULT_MAX_BUFFER,\n\t\tbuffer: true,\n\t\tstripFinalNewline: true,\n\t\textendEnv: true,\n\t\tpreferLocal: false,\n\t\tlocalDir: options.cwd || process.cwd(),\n\t\texecPath: process.execPath,\n\t\tencoding: 'utf8',\n\t\treject: true,\n\t\tcleanup: true,\n\t\tall: false,\n\t\twindowsHide: true,\n\t\t...options\n\t};\n\n\toptions.env = getEnv(options);\n\n\toptions.stdio = normalizeStdio(options);\n\n\tif (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') {\n\t\t// #116\n\t\targs.unshift('/q');\n\t}\n\n\treturn {file, args, options, parsed};\n};\n\nconst handleOutput = (options, value, error) => {\n\tif (typeof value !== 'string' && !Buffer.isBuffer(value)) {\n\t\t// When `execa.sync()` errors, we normalize it to '' to mimic `execa()`\n\t\treturn error === undefined ? undefined : '';\n\t}\n\n\tif (options.stripFinalNewline) {\n\t\treturn stripFinalNewline(value);\n\t}\n\n\treturn value;\n};\n\nconst execa = (file, args, options) => {\n\tconst parsed = handleArguments(file, args, options);\n\tconst command = joinCommand(file, args);\n\n\tlet spawned;\n\ttry {\n\t\tspawned = childProcess.spawn(parsed.file, parsed.args, parsed.options);\n\t} catch (error) {\n\t\t// Ensure the returned error is always both a promise and a child process\n\t\tconst dummySpawned = new childProcess.ChildProcess();\n\t\tconst errorPromise = Promise.reject(makeError({\n\t\t\terror,\n\t\t\tstdout: '',\n\t\t\tstderr: '',\n\t\t\tall: '',\n\t\t\tcommand,\n\t\t\tparsed,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t}));\n\t\treturn mergePromise(dummySpawned, errorPromise);\n\t}\n\n\tconst spawnedPromise = getSpawnedPromise(spawned);\n\tconst timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise);\n\tconst processDone = setExitHandler(spawned, parsed.options, timedPromise);\n\n\tconst context = {isCanceled: false};\n\n\tspawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned));\n\tspawned.cancel = spawnedCancel.bind(null, spawned, context);\n\n\tconst handlePromise = async () => {\n\t\tconst [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone);\n\t\tconst stdout = handleOutput(parsed.options, stdoutResult);\n\t\tconst stderr = handleOutput(parsed.options, stderrResult);\n\t\tconst all = handleOutput(parsed.options, allResult);\n\n\t\tif (error || exitCode !== 0 || signal !== null) {\n\t\t\tconst returnedError = makeError({\n\t\t\t\terror,\n\t\t\t\texitCode,\n\t\t\t\tsignal,\n\t\t\t\tstdout,\n\t\t\t\tstderr,\n\t\t\t\tall,\n\t\t\t\tcommand,\n\t\t\t\tparsed,\n\t\t\t\ttimedOut,\n\t\t\t\tisCanceled: context.isCanceled,\n\t\t\t\tkilled: spawned.killed\n\t\t\t});\n\n\t\t\tif (!parsed.options.reject) {\n\t\t\t\treturn returnedError;\n\t\t\t}\n\n\t\t\tthrow returnedError;\n\t\t}\n\n\t\treturn {\n\t\t\tcommand,\n\t\t\texitCode: 0,\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t\tall,\n\t\t\tfailed: false,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t};\n\t};\n\n\tconst handlePromiseOnce = onetime(handlePromise);\n\n\thandleInput(spawned, parsed.options.input);\n\n\tspawned.all = makeAllStream(spawned, parsed.options);\n\n\treturn mergePromise(spawned, handlePromiseOnce);\n};\n\nmodule.exports = execa;\n\nmodule.exports.sync = (file, args, options) => {\n\tconst parsed = handleArguments(file, args, options);\n\tconst command = joinCommand(file, args);\n\n\tvalidateInputSync(parsed.options);\n\n\tlet result;\n\ttry {\n\t\tresult = childProcess.spawnSync(parsed.file, parsed.args, parsed.options);\n\t} catch (error) {\n\t\tthrow makeError({\n\t\t\terror,\n\t\t\tstdout: '',\n\t\t\tstderr: '',\n\t\t\tall: '',\n\t\t\tcommand,\n\t\t\tparsed,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t});\n\t}\n\n\tconst stdout = handleOutput(parsed.options, result.stdout, result.error);\n\tconst stderr = handleOutput(parsed.options, result.stderr, result.error);\n\n\tif (result.error || result.status !== 0 || result.signal !== null) {\n\t\tconst error = makeError({\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t\terror: result.error,\n\t\t\tsignal: result.signal,\n\t\t\texitCode: result.status,\n\t\t\tcommand,\n\t\t\tparsed,\n\t\t\ttimedOut: result.error && result.error.code === 'ETIMEDOUT',\n\t\t\tisCanceled: false,\n\t\t\tkilled: result.signal !== null\n\t\t});\n\n\t\tif (!parsed.options.reject) {\n\t\t\treturn error;\n\t\t}\n\n\t\tthrow error;\n\t}\n\n\treturn {\n\t\tcommand,\n\t\texitCode: 0,\n\t\tstdout,\n\t\tstderr,\n\t\tfailed: false,\n\t\ttimedOut: false,\n\t\tisCanceled: false,\n\t\tkilled: false\n\t};\n};\n\nmodule.exports.command = (command, options) => {\n\tconst [file, ...args] = parseCommand(command);\n\treturn execa(file, args, options);\n};\n\nmodule.exports.commandSync = (command, options) => {\n\tconst [file, ...args] = parseCommand(command);\n\treturn execa.sync(file, args, options);\n};\n\nmodule.exports.node = (scriptPath, args, options = {}) => {\n\tif (args && !Array.isArray(args) && typeof args === 'object') {\n\t\toptions = args;\n\t\targs = [];\n\t}\n\n\tconst stdio = normalizeStdio.node(options);\n\tconst defaultExecArgv = process.execArgv.filter(arg => !arg.startsWith('--inspect'));\n\n\tconst {\n\t\tnodePath = process.execPath,\n\t\tnodeOptions = defaultExecArgv\n\t} = options;\n\n\treturn execa(\n\t\tnodePath,\n\t\t[\n\t\t\t...nodeOptions,\n\t\t\tscriptPath,\n\t\t\t...(Array.isArray(args) ? args : [])\n\t\t],\n\t\t{\n\t\t\t...options,\n\t\t\tstdin: undefined,\n\t\t\tstdout: undefined,\n\t\t\tstderr: undefined,\n\t\t\tstdio,\n\t\t\tshell: false\n\t\t}\n\t);\n};\n\n\n//# sourceURL=webpack:///./node_modules/@kubernetes/client-node/node_modules/execa/index.js?");
9706
9706
 
9707
9707
  /***/ }),
9708
9708
 
@@ -9826,18 +9826,6 @@ eval("\nconst path = __webpack_require__(/*! path */ \"path\");\nconst pathKey =
9826
9826
 
9827
9827
  /***/ }),
9828
9828
 
9829
- /***/ "./node_modules/@kubernetes/client-node/node_modules/onetime/index.js":
9830
- /*!****************************************************************************!*\
9831
- !*** ./node_modules/@kubernetes/client-node/node_modules/onetime/index.js ***!
9832
- \****************************************************************************/
9833
- /*! no static exports found */
9834
- /***/ (function(module, exports, __webpack_require__) {
9835
-
9836
- "use strict";
9837
- eval("\nconst mimicFn = __webpack_require__(/*! mimic-fn */ \"./node_modules/mimic-fn/index.js\");\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = null;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFn(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nmodule.exports = onetime;\n// TODO: Remove this for the next major release\nmodule.exports.default = onetime;\n\nmodule.exports.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\n\n//# sourceURL=webpack:///./node_modules/@kubernetes/client-node/node_modules/onetime/index.js?");
9838
-
9839
- /***/ }),
9840
-
9841
9829
  /***/ "./node_modules/@kubernetes/client-node/node_modules/path-key/index.js":
9842
9830
  /*!*****************************************************************************!*\
9843
9831
  !*** ./node_modules/@kubernetes/client-node/node_modules/path-key/index.js ***!
@@ -13533,6 +13521,126 @@ eval("module.exports = r => {\n const n = process.versions.node.split('.').map(
13533
13521
 
13534
13522
  /***/ }),
13535
13523
 
13524
+ /***/ "./node_modules/atomically/dist/consts.js":
13525
+ /*!************************************************!*\
13526
+ !*** ./node_modules/atomically/dist/consts.js ***!
13527
+ \************************************************/
13528
+ /*! no static exports found */
13529
+ /***/ (function(module, exports, __webpack_require__) {
13530
+
13531
+ "use strict";
13532
+ eval("\n/* CONSTS */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP = exports.LIMIT_FILES_DESCRIPTORS = exports.LIMIT_BASENAME_LENGTH = exports.IS_USER_ROOT = exports.IS_POSIX = exports.DEFAULT_TIMEOUT_SYNC = exports.DEFAULT_TIMEOUT_ASYNC = exports.DEFAULT_WRITE_OPTIONS = exports.DEFAULT_READ_OPTIONS = exports.DEFAULT_FOLDER_MODE = exports.DEFAULT_FILE_MODE = exports.DEFAULT_ENCODING = void 0;\nconst DEFAULT_ENCODING = 'utf8';\nexports.DEFAULT_ENCODING = DEFAULT_ENCODING;\nconst DEFAULT_FILE_MODE = 0o666;\nexports.DEFAULT_FILE_MODE = DEFAULT_FILE_MODE;\nconst DEFAULT_FOLDER_MODE = 0o777;\nexports.DEFAULT_FOLDER_MODE = DEFAULT_FOLDER_MODE;\nconst DEFAULT_READ_OPTIONS = {};\nexports.DEFAULT_READ_OPTIONS = DEFAULT_READ_OPTIONS;\nconst DEFAULT_WRITE_OPTIONS = {};\nexports.DEFAULT_WRITE_OPTIONS = DEFAULT_WRITE_OPTIONS;\nconst DEFAULT_TIMEOUT_ASYNC = 5000;\nexports.DEFAULT_TIMEOUT_ASYNC = DEFAULT_TIMEOUT_ASYNC;\nconst DEFAULT_TIMEOUT_SYNC = 100;\nexports.DEFAULT_TIMEOUT_SYNC = DEFAULT_TIMEOUT_SYNC;\nconst IS_POSIX = !!process.getuid;\nexports.IS_POSIX = IS_POSIX;\nconst IS_USER_ROOT = process.getuid ? !process.getuid() : false;\nexports.IS_USER_ROOT = IS_USER_ROOT;\nconst LIMIT_BASENAME_LENGTH = 128; //TODO: fetch the real limit from the filesystem //TODO: fetch the whole-path length limit too\nexports.LIMIT_BASENAME_LENGTH = LIMIT_BASENAME_LENGTH;\nconst LIMIT_FILES_DESCRIPTORS = 10000; //TODO: fetch the real limit from the filesystem\nexports.LIMIT_FILES_DESCRIPTORS = LIMIT_FILES_DESCRIPTORS;\nconst NOOP = () => { };\nexports.NOOP = NOOP;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/consts.js?");
13533
+
13534
+ /***/ }),
13535
+
13536
+ /***/ "./node_modules/atomically/dist/index.js":
13537
+ /*!***********************************************!*\
13538
+ !*** ./node_modules/atomically/dist/index.js ***!
13539
+ \***********************************************/
13540
+ /*! no static exports found */
13541
+ /***/ (function(module, exports, __webpack_require__) {
13542
+
13543
+ "use strict";
13544
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeFileSync = exports.writeFile = exports.readFileSync = exports.readFile = void 0;\nconst path = __webpack_require__(/*! path */ \"path\");\nconst consts_1 = __webpack_require__(/*! ./consts */ \"./node_modules/atomically/dist/consts.js\");\nconst fs_1 = __webpack_require__(/*! ./utils/fs */ \"./node_modules/atomically/dist/utils/fs.js\");\nconst lang_1 = __webpack_require__(/*! ./utils/lang */ \"./node_modules/atomically/dist/utils/lang.js\");\nconst scheduler_1 = __webpack_require__(/*! ./utils/scheduler */ \"./node_modules/atomically/dist/utils/scheduler.js\");\nconst temp_1 = __webpack_require__(/*! ./utils/temp */ \"./node_modules/atomically/dist/utils/temp.js\");\nfunction readFile(filePath, options = consts_1.DEFAULT_READ_OPTIONS) {\n var _a;\n if (lang_1.default.isString(options))\n return readFile(filePath, { encoding: options });\n const timeout = Date.now() + ((_a = options.timeout) !== null && _a !== void 0 ? _a : consts_1.DEFAULT_TIMEOUT_ASYNC);\n return fs_1.default.readFileRetry(timeout)(filePath, options);\n}\nexports.readFile = readFile;\n;\nfunction readFileSync(filePath, options = consts_1.DEFAULT_READ_OPTIONS) {\n var _a;\n if (lang_1.default.isString(options))\n return readFileSync(filePath, { encoding: options });\n const timeout = Date.now() + ((_a = options.timeout) !== null && _a !== void 0 ? _a : consts_1.DEFAULT_TIMEOUT_SYNC);\n return fs_1.default.readFileSyncRetry(timeout)(filePath, options);\n}\nexports.readFileSync = readFileSync;\n;\nconst writeFile = (filePath, data, options, callback) => {\n if (lang_1.default.isFunction(options))\n return writeFile(filePath, data, consts_1.DEFAULT_WRITE_OPTIONS, options);\n const promise = writeFileAsync(filePath, data, options);\n if (callback)\n promise.then(callback, callback);\n return promise;\n};\nexports.writeFile = writeFile;\nconst writeFileAsync = async (filePath, data, options = consts_1.DEFAULT_WRITE_OPTIONS) => {\n var _a;\n if (lang_1.default.isString(options))\n return writeFileAsync(filePath, data, { encoding: options });\n const timeout = Date.now() + ((_a = options.timeout) !== null && _a !== void 0 ? _a : consts_1.DEFAULT_TIMEOUT_ASYNC);\n let schedulerCustomDisposer = null, schedulerDisposer = null, tempDisposer = null, tempPath = null, fd = null;\n try {\n if (options.schedule)\n schedulerCustomDisposer = await options.schedule(filePath);\n schedulerDisposer = await scheduler_1.default.schedule(filePath);\n filePath = await fs_1.default.realpathAttempt(filePath) || filePath;\n [tempPath, tempDisposer] = temp_1.default.get(filePath, options.tmpCreate || temp_1.default.create, !(options.tmpPurge === false));\n const useStatChown = consts_1.IS_POSIX && lang_1.default.isUndefined(options.chown), useStatMode = lang_1.default.isUndefined(options.mode);\n if (useStatChown || useStatMode) {\n const stat = await fs_1.default.statAttempt(filePath);\n if (stat) {\n options = { ...options };\n if (useStatChown)\n options.chown = { uid: stat.uid, gid: stat.gid };\n if (useStatMode)\n options.mode = stat.mode;\n }\n }\n const parentPath = path.dirname(filePath);\n await fs_1.default.mkdirAttempt(parentPath, {\n mode: consts_1.DEFAULT_FOLDER_MODE,\n recursive: true\n });\n fd = await fs_1.default.openRetry(timeout)(tempPath, 'w', options.mode || consts_1.DEFAULT_FILE_MODE);\n if (options.tmpCreated)\n options.tmpCreated(tempPath);\n if (lang_1.default.isString(data)) {\n await fs_1.default.writeRetry(timeout)(fd, data, 0, options.encoding || consts_1.DEFAULT_ENCODING);\n }\n else if (!lang_1.default.isUndefined(data)) {\n await fs_1.default.writeRetry(timeout)(fd, data, 0, data.length, 0);\n }\n if (options.fsync !== false) {\n if (options.fsyncWait !== false) {\n await fs_1.default.fsyncRetry(timeout)(fd);\n }\n else {\n fs_1.default.fsyncAttempt(fd);\n }\n }\n await fs_1.default.closeRetry(timeout)(fd);\n fd = null;\n if (options.chown)\n await fs_1.default.chownAttempt(tempPath, options.chown.uid, options.chown.gid);\n if (options.mode)\n await fs_1.default.chmodAttempt(tempPath, options.mode);\n try {\n await fs_1.default.renameRetry(timeout)(tempPath, filePath);\n }\n catch (error) {\n if (error.code !== 'ENAMETOOLONG')\n throw error;\n await fs_1.default.renameRetry(timeout)(tempPath, temp_1.default.truncate(filePath));\n }\n tempDisposer();\n tempPath = null;\n }\n finally {\n if (fd)\n await fs_1.default.closeAttempt(fd);\n if (tempPath)\n temp_1.default.purge(tempPath);\n if (schedulerCustomDisposer)\n schedulerCustomDisposer();\n if (schedulerDisposer)\n schedulerDisposer();\n }\n};\nconst writeFileSync = (filePath, data, options = consts_1.DEFAULT_WRITE_OPTIONS) => {\n var _a;\n if (lang_1.default.isString(options))\n return writeFileSync(filePath, data, { encoding: options });\n const timeout = Date.now() + ((_a = options.timeout) !== null && _a !== void 0 ? _a : consts_1.DEFAULT_TIMEOUT_SYNC);\n let tempDisposer = null, tempPath = null, fd = null;\n try {\n filePath = fs_1.default.realpathSyncAttempt(filePath) || filePath;\n [tempPath, tempDisposer] = temp_1.default.get(filePath, options.tmpCreate || temp_1.default.create, !(options.tmpPurge === false));\n const useStatChown = consts_1.IS_POSIX && lang_1.default.isUndefined(options.chown), useStatMode = lang_1.default.isUndefined(options.mode);\n if (useStatChown || useStatMode) {\n const stat = fs_1.default.statSyncAttempt(filePath);\n if (stat) {\n options = { ...options };\n if (useStatChown)\n options.chown = { uid: stat.uid, gid: stat.gid };\n if (useStatMode)\n options.mode = stat.mode;\n }\n }\n const parentPath = path.dirname(filePath);\n fs_1.default.mkdirSyncAttempt(parentPath, {\n mode: consts_1.DEFAULT_FOLDER_MODE,\n recursive: true\n });\n fd = fs_1.default.openSyncRetry(timeout)(tempPath, 'w', options.mode || consts_1.DEFAULT_FILE_MODE);\n if (options.tmpCreated)\n options.tmpCreated(tempPath);\n if (lang_1.default.isString(data)) {\n fs_1.default.writeSyncRetry(timeout)(fd, data, 0, options.encoding || consts_1.DEFAULT_ENCODING);\n }\n else if (!lang_1.default.isUndefined(data)) {\n fs_1.default.writeSyncRetry(timeout)(fd, data, 0, data.length, 0);\n }\n if (options.fsync !== false) {\n if (options.fsyncWait !== false) {\n fs_1.default.fsyncSyncRetry(timeout)(fd);\n }\n else {\n fs_1.default.fsyncAttempt(fd);\n }\n }\n fs_1.default.closeSyncRetry(timeout)(fd);\n fd = null;\n if (options.chown)\n fs_1.default.chownSyncAttempt(tempPath, options.chown.uid, options.chown.gid);\n if (options.mode)\n fs_1.default.chmodSyncAttempt(tempPath, options.mode);\n try {\n fs_1.default.renameSyncRetry(timeout)(tempPath, filePath);\n }\n catch (error) {\n if (error.code !== 'ENAMETOOLONG')\n throw error;\n fs_1.default.renameSyncRetry(timeout)(tempPath, temp_1.default.truncate(filePath));\n }\n tempDisposer();\n tempPath = null;\n }\n finally {\n if (fd)\n fs_1.default.closeSyncAttempt(fd);\n if (tempPath)\n temp_1.default.purge(tempPath);\n }\n};\nexports.writeFileSync = writeFileSync;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/index.js?");
13545
+
13546
+ /***/ }),
13547
+
13548
+ /***/ "./node_modules/atomically/dist/utils/attemptify.js":
13549
+ /*!**********************************************************!*\
13550
+ !*** ./node_modules/atomically/dist/utils/attemptify.js ***!
13551
+ \**********************************************************/
13552
+ /*! no static exports found */
13553
+ /***/ (function(module, exports, __webpack_require__) {
13554
+
13555
+ "use strict";
13556
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attemptifySync = exports.attemptifyAsync = void 0;\nconst consts_1 = __webpack_require__(/*! ../consts */ \"./node_modules/atomically/dist/consts.js\");\n/* ATTEMPTIFY */\n//TODO: Maybe publish this as a standalone package\n//FIXME: The type castings here aren't exactly correct\nconst attemptifyAsync = (fn, onError = consts_1.NOOP) => {\n return function () {\n return fn.apply(undefined, arguments).catch(onError);\n };\n};\nexports.attemptifyAsync = attemptifyAsync;\nconst attemptifySync = (fn, onError = consts_1.NOOP) => {\n return function () {\n try {\n return fn.apply(undefined, arguments);\n }\n catch (error) {\n return onError(error);\n }\n };\n};\nexports.attemptifySync = attemptifySync;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/attemptify.js?");
13557
+
13558
+ /***/ }),
13559
+
13560
+ /***/ "./node_modules/atomically/dist/utils/fs.js":
13561
+ /*!**************************************************!*\
13562
+ !*** ./node_modules/atomically/dist/utils/fs.js ***!
13563
+ \**************************************************/
13564
+ /*! no static exports found */
13565
+ /***/ (function(module, exports, __webpack_require__) {
13566
+
13567
+ "use strict";
13568
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = __webpack_require__(/*! fs */ \"fs\");\nconst util_1 = __webpack_require__(/*! util */ \"util\");\nconst attemptify_1 = __webpack_require__(/*! ./attemptify */ \"./node_modules/atomically/dist/utils/attemptify.js\");\nconst fs_handlers_1 = __webpack_require__(/*! ./fs_handlers */ \"./node_modules/atomically/dist/utils/fs_handlers.js\");\nconst retryify_1 = __webpack_require__(/*! ./retryify */ \"./node_modules/atomically/dist/utils/retryify.js\");\n/* FS */\nconst FS = {\n chmodAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.chmod), fs_handlers_1.default.onChangeError),\n chownAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.chown), fs_handlers_1.default.onChangeError),\n closeAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.close)),\n fsyncAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.fsync)),\n mkdirAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.mkdir)),\n realpathAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.realpath)),\n statAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.stat)),\n unlinkAttempt: attemptify_1.attemptifyAsync(util_1.promisify(fs.unlink)),\n closeRetry: retryify_1.retryifyAsync(util_1.promisify(fs.close), fs_handlers_1.default.isRetriableError),\n fsyncRetry: retryify_1.retryifyAsync(util_1.promisify(fs.fsync), fs_handlers_1.default.isRetriableError),\n openRetry: retryify_1.retryifyAsync(util_1.promisify(fs.open), fs_handlers_1.default.isRetriableError),\n readFileRetry: retryify_1.retryifyAsync(util_1.promisify(fs.readFile), fs_handlers_1.default.isRetriableError),\n renameRetry: retryify_1.retryifyAsync(util_1.promisify(fs.rename), fs_handlers_1.default.isRetriableError),\n statRetry: retryify_1.retryifyAsync(util_1.promisify(fs.stat), fs_handlers_1.default.isRetriableError),\n writeRetry: retryify_1.retryifyAsync(util_1.promisify(fs.write), fs_handlers_1.default.isRetriableError),\n chmodSyncAttempt: attemptify_1.attemptifySync(fs.chmodSync, fs_handlers_1.default.onChangeError),\n chownSyncAttempt: attemptify_1.attemptifySync(fs.chownSync, fs_handlers_1.default.onChangeError),\n closeSyncAttempt: attemptify_1.attemptifySync(fs.closeSync),\n mkdirSyncAttempt: attemptify_1.attemptifySync(fs.mkdirSync),\n realpathSyncAttempt: attemptify_1.attemptifySync(fs.realpathSync),\n statSyncAttempt: attemptify_1.attemptifySync(fs.statSync),\n unlinkSyncAttempt: attemptify_1.attemptifySync(fs.unlinkSync),\n closeSyncRetry: retryify_1.retryifySync(fs.closeSync, fs_handlers_1.default.isRetriableError),\n fsyncSyncRetry: retryify_1.retryifySync(fs.fsyncSync, fs_handlers_1.default.isRetriableError),\n openSyncRetry: retryify_1.retryifySync(fs.openSync, fs_handlers_1.default.isRetriableError),\n readFileSyncRetry: retryify_1.retryifySync(fs.readFileSync, fs_handlers_1.default.isRetriableError),\n renameSyncRetry: retryify_1.retryifySync(fs.renameSync, fs_handlers_1.default.isRetriableError),\n statSyncRetry: retryify_1.retryifySync(fs.statSync, fs_handlers_1.default.isRetriableError),\n writeSyncRetry: retryify_1.retryifySync(fs.writeSync, fs_handlers_1.default.isRetriableError)\n};\n/* EXPORT */\nexports.default = FS;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/fs.js?");
13569
+
13570
+ /***/ }),
13571
+
13572
+ /***/ "./node_modules/atomically/dist/utils/fs_handlers.js":
13573
+ /*!***********************************************************!*\
13574
+ !*** ./node_modules/atomically/dist/utils/fs_handlers.js ***!
13575
+ \***********************************************************/
13576
+ /*! no static exports found */
13577
+ /***/ (function(module, exports, __webpack_require__) {
13578
+
13579
+ "use strict";
13580
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst consts_1 = __webpack_require__(/*! ../consts */ \"./node_modules/atomically/dist/consts.js\");\n/* FS HANDLERS */\nconst Handlers = {\n isChangeErrorOk: (error) => {\n const { code } = error;\n if (code === 'ENOSYS')\n return true;\n if (!consts_1.IS_USER_ROOT && (code === 'EINVAL' || code === 'EPERM'))\n return true;\n return false;\n },\n isRetriableError: (error) => {\n const { code } = error;\n if (code === 'EMFILE' || code === 'ENFILE' || code === 'EAGAIN' || code === 'EBUSY' || code === 'EACCESS' || code === 'EACCS' || code === 'EPERM')\n return true;\n return false;\n },\n onChangeError: (error) => {\n if (Handlers.isChangeErrorOk(error))\n return;\n throw error;\n }\n};\n/* EXPORT */\nexports.default = Handlers;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/fs_handlers.js?");
13581
+
13582
+ /***/ }),
13583
+
13584
+ /***/ "./node_modules/atomically/dist/utils/lang.js":
13585
+ /*!****************************************************!*\
13586
+ !*** ./node_modules/atomically/dist/utils/lang.js ***!
13587
+ \****************************************************/
13588
+ /*! no static exports found */
13589
+ /***/ (function(module, exports, __webpack_require__) {
13590
+
13591
+ "use strict";
13592
+ eval("\n/* LANG */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Lang = {\n isFunction: (x) => {\n return typeof x === 'function';\n },\n isString: (x) => {\n return typeof x === 'string';\n },\n isUndefined: (x) => {\n return typeof x === 'undefined';\n }\n};\n/* EXPORT */\nexports.default = Lang;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/lang.js?");
13593
+
13594
+ /***/ }),
13595
+
13596
+ /***/ "./node_modules/atomically/dist/utils/retryify.js":
13597
+ /*!********************************************************!*\
13598
+ !*** ./node_modules/atomically/dist/utils/retryify.js ***!
13599
+ \********************************************************/
13600
+ /*! no static exports found */
13601
+ /***/ (function(module, exports, __webpack_require__) {
13602
+
13603
+ "use strict";
13604
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryifySync = exports.retryifyAsync = void 0;\nconst retryify_queue_1 = __webpack_require__(/*! ./retryify_queue */ \"./node_modules/atomically/dist/utils/retryify_queue.js\");\n/* RETRYIFY */\nconst retryifyAsync = (fn, isRetriableError) => {\n return function (timestamp) {\n return function attempt() {\n return retryify_queue_1.default.schedule().then(cleanup => {\n return fn.apply(undefined, arguments).then(result => {\n cleanup();\n return result;\n }, error => {\n cleanup();\n if (Date.now() >= timestamp)\n throw error;\n if (isRetriableError(error)) {\n const delay = Math.round(100 + (400 * Math.random())), delayPromise = new Promise(resolve => setTimeout(resolve, delay));\n return delayPromise.then(() => attempt.apply(undefined, arguments));\n }\n throw error;\n });\n });\n };\n };\n};\nexports.retryifyAsync = retryifyAsync;\nconst retryifySync = (fn, isRetriableError) => {\n return function (timestamp) {\n return function attempt() {\n try {\n return fn.apply(undefined, arguments);\n }\n catch (error) {\n if (Date.now() > timestamp)\n throw error;\n if (isRetriableError(error))\n return attempt.apply(undefined, arguments);\n throw error;\n }\n };\n };\n};\nexports.retryifySync = retryifySync;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/retryify.js?");
13605
+
13606
+ /***/ }),
13607
+
13608
+ /***/ "./node_modules/atomically/dist/utils/retryify_queue.js":
13609
+ /*!**************************************************************!*\
13610
+ !*** ./node_modules/atomically/dist/utils/retryify_queue.js ***!
13611
+ \**************************************************************/
13612
+ /*! no static exports found */
13613
+ /***/ (function(module, exports, __webpack_require__) {
13614
+
13615
+ "use strict";
13616
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst consts_1 = __webpack_require__(/*! ../consts */ \"./node_modules/atomically/dist/consts.js\");\n/* RETRYIFY QUEUE */\nconst RetryfyQueue = {\n interval: 25,\n intervalId: undefined,\n limit: consts_1.LIMIT_FILES_DESCRIPTORS,\n queueActive: new Set(),\n queueWaiting: new Set(),\n init: () => {\n if (RetryfyQueue.intervalId)\n return;\n RetryfyQueue.intervalId = setInterval(RetryfyQueue.tick, RetryfyQueue.interval);\n },\n reset: () => {\n if (!RetryfyQueue.intervalId)\n return;\n clearInterval(RetryfyQueue.intervalId);\n delete RetryfyQueue.intervalId;\n },\n add: (fn) => {\n RetryfyQueue.queueWaiting.add(fn);\n if (RetryfyQueue.queueActive.size < (RetryfyQueue.limit / 2)) { // Active queue not under preassure, executing immediately\n RetryfyQueue.tick();\n }\n else {\n RetryfyQueue.init();\n }\n },\n remove: (fn) => {\n RetryfyQueue.queueWaiting.delete(fn);\n RetryfyQueue.queueActive.delete(fn);\n },\n schedule: () => {\n return new Promise(resolve => {\n const cleanup = () => RetryfyQueue.remove(resolver);\n const resolver = () => resolve(cleanup);\n RetryfyQueue.add(resolver);\n });\n },\n tick: () => {\n if (RetryfyQueue.queueActive.size >= RetryfyQueue.limit)\n return;\n if (!RetryfyQueue.queueWaiting.size)\n return RetryfyQueue.reset();\n for (const fn of RetryfyQueue.queueWaiting) {\n if (RetryfyQueue.queueActive.size >= RetryfyQueue.limit)\n break;\n RetryfyQueue.queueWaiting.delete(fn);\n RetryfyQueue.queueActive.add(fn);\n fn();\n }\n }\n};\n/* EXPORT */\nexports.default = RetryfyQueue;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/retryify_queue.js?");
13617
+
13618
+ /***/ }),
13619
+
13620
+ /***/ "./node_modules/atomically/dist/utils/scheduler.js":
13621
+ /*!*********************************************************!*\
13622
+ !*** ./node_modules/atomically/dist/utils/scheduler.js ***!
13623
+ \*********************************************************/
13624
+ /*! no static exports found */
13625
+ /***/ (function(module, exports, __webpack_require__) {
13626
+
13627
+ "use strict";
13628
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* VARIABLES */\nconst Queues = {};\n/* SCHEDULER */\n//TODO: Maybe publish this as a standalone package\nconst Scheduler = {\n next: (id) => {\n const queue = Queues[id];\n if (!queue)\n return;\n queue.shift();\n const job = queue[0];\n if (job) {\n job(() => Scheduler.next(id));\n }\n else {\n delete Queues[id];\n }\n },\n schedule: (id) => {\n return new Promise(resolve => {\n let queue = Queues[id];\n if (!queue)\n queue = Queues[id] = [];\n queue.push(resolve);\n if (queue.length > 1)\n return;\n resolve(() => Scheduler.next(id));\n });\n }\n};\n/* EXPORT */\nexports.default = Scheduler;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/scheduler.js?");
13629
+
13630
+ /***/ }),
13631
+
13632
+ /***/ "./node_modules/atomically/dist/utils/temp.js":
13633
+ /*!****************************************************!*\
13634
+ !*** ./node_modules/atomically/dist/utils/temp.js ***!
13635
+ \****************************************************/
13636
+ /*! no static exports found */
13637
+ /***/ (function(module, exports, __webpack_require__) {
13638
+
13639
+ "use strict";
13640
+ eval("\n/* IMPORT */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = __webpack_require__(/*! path */ \"path\");\nconst consts_1 = __webpack_require__(/*! ../consts */ \"./node_modules/atomically/dist/consts.js\");\nconst fs_1 = __webpack_require__(/*! ./fs */ \"./node_modules/atomically/dist/utils/fs.js\");\n/* TEMP */\n//TODO: Maybe publish this as a standalone package\nconst Temp = {\n store: {},\n create: (filePath) => {\n const randomness = `000000${Math.floor(Math.random() * 16777215).toString(16)}`.slice(-6), // 6 random-enough hex characters\n timestamp = Date.now().toString().slice(-10), // 10 precise timestamp digits\n prefix = 'tmp-', suffix = `.${prefix}${timestamp}${randomness}`, tempPath = `${filePath}${suffix}`;\n return tempPath;\n },\n get: (filePath, creator, purge = true) => {\n const tempPath = Temp.truncate(creator(filePath));\n if (tempPath in Temp.store)\n return Temp.get(filePath, creator, purge); // Collision found, try again\n Temp.store[tempPath] = purge;\n const disposer = () => delete Temp.store[tempPath];\n return [tempPath, disposer];\n },\n purge: (filePath) => {\n if (!Temp.store[filePath])\n return;\n delete Temp.store[filePath];\n fs_1.default.unlinkAttempt(filePath);\n },\n purgeSync: (filePath) => {\n if (!Temp.store[filePath])\n return;\n delete Temp.store[filePath];\n fs_1.default.unlinkSyncAttempt(filePath);\n },\n purgeSyncAll: () => {\n for (const filePath in Temp.store) {\n Temp.purgeSync(filePath);\n }\n },\n truncate: (filePath) => {\n const basename = path.basename(filePath);\n if (basename.length <= consts_1.LIMIT_BASENAME_LENGTH)\n return filePath; //FIXME: Rough and quick attempt at detecting ok lengths\n const truncable = /^(\\.?)(.*?)((?:\\.[^.]+)?(?:\\.tmp-\\d{10}[a-f0-9]{6})?)$/.exec(basename);\n if (!truncable)\n return filePath; //FIXME: No truncable part detected, can't really do much without also changing the parent path, which is unsafe, hoping for the best here\n const truncationLength = basename.length - consts_1.LIMIT_BASENAME_LENGTH;\n return `${filePath.slice(0, -basename.length)}${truncable[1]}${truncable[2].slice(0, -truncationLength)}${truncable[3]}`; //FIXME: The truncable part might be shorter than needed here\n }\n};\n/* INIT */\nprocess.on('exit', Temp.purgeSyncAll); // Ensuring purgeable temp files are purged on exit\n/* EXPORT */\nexports.default = Temp;\n\n\n//# sourceURL=webpack:///./node_modules/atomically/dist/utils/temp.js?");
13641
+
13642
+ /***/ }),
13643
+
13536
13644
  /***/ "./node_modules/auto-bind/index.js":
13537
13645
  /*!*****************************************!*\
13538
13646
  !*** ./node_modules/auto-bind/index.js ***!
@@ -14045,19 +14153,7 @@ eval("module.exports = function (xs, fn) {\n var res = [];\n for (var i =
14045
14153
  /***/ (function(module, exports, __webpack_require__) {
14046
14154
 
14047
14155
  "use strict";
14048
- eval("/* WEBPACK VAR INJECTION */(function(__filename, module) {\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n privateMap.set(receiver, value);\n return value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return privateMap.get(receiver);\n};\nvar _a, _b;\nvar _validator, _encryptionKey, _options, _defaultValues;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = __webpack_require__(/*! fs */ \"fs\");\nconst path = __webpack_require__(/*! path */ \"path\");\nconst crypto = __webpack_require__(/*! crypto */ \"crypto\");\nconst assert = __webpack_require__(/*! assert */ \"assert\");\nconst events_1 = __webpack_require__(/*! events */ \"events\");\nconst dotProp = __webpack_require__(/*! dot-prop */ \"./node_modules/dot-prop/index.js\");\nconst makeDir = __webpack_require__(/*! make-dir */ \"./node_modules/make-dir/index.js\");\nconst pkgUp = __webpack_require__(/*! pkg-up */ \"./node_modules/pkg-up/index.js\");\nconst envPaths = __webpack_require__(/*! env-paths */ \"./node_modules/env-paths/index.js\");\nconst writeFileAtomic = __webpack_require__(/*! write-file-atomic */ \"./node_modules/conf/node_modules/write-file-atomic/index.js\");\nconst Ajv = __webpack_require__(/*! ajv */ \"./node_modules/ajv/lib/ajv.js\");\nconst debounceFn = __webpack_require__(/*! debounce-fn */ \"./node_modules/debounce-fn/index.js\");\nconst semver = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\nconst onetime = __webpack_require__(/*! onetime */ \"./node_modules/onetime/index.js\");\nconst encryptionAlgorithm = 'aes-256-cbc';\nconst createPlainObject = () => {\n return Object.create(null);\n};\n// Prevent caching of this module so module.parent is always accurate\n// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\ndelete __webpack_require__.c[__filename];\nconst parentDir = path.dirname((_b = (_a = module.parent) === null || _a === void 0 ? void 0 : _a.filename) !== null && _b !== void 0 ? _b : '.');\nconst checkValueType = (key, value) => {\n const nonJsonTypes = new Set([\n 'undefined',\n 'symbol',\n 'function'\n ]);\n const type = typeof value;\n if (nonJsonTypes.has(type)) {\n throw new TypeError(`Setting a value of type \\`${type}\\` for key \\`${key}\\` is not allowed as it's not supported by JSON`);\n }\n};\nconst INTERNAL_KEY = '__internal__';\nconst MIGRATION_KEY = `${INTERNAL_KEY}.migrations.version`;\nclass Conf {\n constructor(partialOptions = {}) {\n var _a;\n _validator.set(this, void 0);\n _encryptionKey.set(this, void 0);\n _options.set(this, void 0);\n _defaultValues.set(this, {});\n this._deserialize = value => JSON.parse(value);\n this._serialize = value => JSON.stringify(value, null, '\\t');\n const options = {\n configName: 'config',\n fileExtension: 'json',\n projectSuffix: 'nodejs',\n clearInvalidConfig: true,\n accessPropertiesByDotNotation: true,\n ...partialOptions\n };\n const getPackageData = onetime(() => {\n const packagePath = pkgUp.sync({ cwd: parentDir });\n // Can't use `require` because of Webpack being annoying:\n // https://github.com/webpack/webpack/issues/196\n const packageData = packagePath && JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageData !== null && packageData !== void 0 ? packageData : {};\n });\n if (!options.cwd) {\n if (!options.projectName) {\n options.projectName = getPackageData().name;\n }\n if (!options.projectName) {\n throw new Error('Project name could not be inferred. Please specify the `projectName` option.');\n }\n options.cwd = envPaths(options.projectName, { suffix: options.projectSuffix }).config;\n }\n __classPrivateFieldSet(this, _options, options);\n if (options.schema) {\n if (typeof options.schema !== 'object') {\n throw new TypeError('The `schema` option must be an object.');\n }\n const ajv = new Ajv({\n allErrors: true,\n format: 'full',\n useDefaults: true,\n errorDataPath: 'property'\n });\n const schema = {\n type: 'object',\n properties: options.schema\n };\n __classPrivateFieldSet(this, _validator, ajv.compile(schema));\n for (const [key, value] of Object.entries(options.schema)) {\n if (value === null || value === void 0 ? void 0 : value.default) {\n __classPrivateFieldGet(this, _defaultValues)[key] = value.default;\n }\n }\n }\n if (options.defaults) {\n __classPrivateFieldSet(this, _defaultValues, {\n ...__classPrivateFieldGet(this, _defaultValues),\n ...options.defaults\n });\n }\n if (options.serialize) {\n this._serialize = options.serialize;\n }\n if (options.deserialize) {\n this._deserialize = options.deserialize;\n }\n this.events = new events_1.EventEmitter();\n __classPrivateFieldSet(this, _encryptionKey, options.encryptionKey);\n const fileExtension = options.fileExtension ? `.${options.fileExtension}` : '';\n this.path = path.resolve(options.cwd, `${(_a = options.configName) !== null && _a !== void 0 ? _a : 'config'}${fileExtension}`);\n const fileStore = this.store;\n const store = Object.assign(createPlainObject(), options.defaults, fileStore);\n this._validate(store);\n try {\n assert.deepEqual(fileStore, store);\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) {\n this.store = store;\n }\n if (options.watch) {\n this._watch();\n }\n if (options.migrations) {\n if (!options.projectVersion) {\n options.projectVersion = getPackageData().version;\n }\n if (!options.projectVersion) {\n throw new Error('Project version could not be inferred. Please specify the `projectVersion` option.');\n }\n this._migrate(options.migrations, options.projectVersion);\n }\n }\n get(key, defaultValue) {\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n return this._get(key, defaultValue);\n }\n return key in this.store ? this.store[key] : defaultValue;\n }\n set(key, value) {\n if (typeof key !== 'string' && typeof key !== 'object') {\n throw new TypeError(`Expected \\`key\\` to be of type \\`string\\` or \\`object\\`, got ${typeof key}`);\n }\n if (typeof key !== 'object' && value === undefined) {\n throw new TypeError('Use `delete()` to clear values');\n }\n if (this._containsReservedKey(key)) {\n throw new TypeError(`Please don't use the ${INTERNAL_KEY} key, as it's used to manage this module internal operations.`);\n }\n const { store } = this;\n const set = (key, value) => {\n checkValueType(key, value);\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n dotProp.set(store, key, value);\n }\n else {\n store[key] = value;\n }\n };\n if (typeof key === 'object') {\n const object = key;\n for (const [key, value] of Object.entries(object)) {\n set(key, value);\n }\n }\n else {\n set(key, value);\n }\n this.store = store;\n }\n /**\n Check if an item exists.\n\n @param key - The key of the item to check.\n */\n has(key) {\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n return dotProp.has(this.store, key);\n }\n return key in this.store;\n }\n /**\n Reset items to their default values, as defined by the `defaults` or `schema` option.\n\n @param keys - The keys of the items to reset.\n */\n reset(...keys) {\n for (const key of keys) {\n if (__classPrivateFieldGet(this, _defaultValues)[key]) {\n this.set(key, __classPrivateFieldGet(this, _defaultValues)[key]);\n }\n }\n }\n /**\n Delete an item.\n\n @param key - The key of the item to delete.\n */\n delete(key) {\n const { store } = this;\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n dotProp.delete(store, key);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete store[key];\n }\n this.store = store;\n }\n /**\n Delete all items.\n */\n clear() {\n this.store = createPlainObject();\n }\n /**\n Watches the given `key`, calling `callback` on any changes.\n\n @param key - The key wo watch.\n @param callback - A callback function that is called on any changes. When a `key` is first set `oldValue` will be `undefined`, and when a key is deleted `newValue` will be `undefined`.\n @returns A function, that when called, will unsubscribe.\n */\n onDidChange(key, callback) {\n if (typeof key !== 'string') {\n throw new TypeError(`Expected \\`key\\` to be of type \\`string\\`, got ${typeof key}`);\n }\n if (typeof callback !== 'function') {\n throw new TypeError(`Expected \\`callback\\` to be of type \\`function\\`, got ${typeof callback}`);\n }\n return this._handleChange(() => this.get(key), callback);\n }\n /**\n Watches the whole config object, calling `callback` on any changes.\n\n @param callback - A callback function that is called on any changes. When a `key` is first set `oldValue` will be `undefined`, and when a key is deleted `newValue` will be `undefined`.\n @returns A function, that when called, will unsubscribe.\n */\n onDidAnyChange(callback) {\n if (typeof callback !== 'function') {\n throw new TypeError(`Expected \\`callback\\` to be of type \\`function\\`, got ${typeof callback}`);\n }\n return this._handleChange(() => this.store, callback);\n }\n get size() {\n return Object.keys(this.store).length;\n }\n get store() {\n try {\n const data = fs.readFileSync(this.path, __classPrivateFieldGet(this, _encryptionKey) ? null : 'utf8');\n const dataString = this._encryptData(data);\n const deserializedData = this._deserialize(dataString);\n this._validate(deserializedData);\n return Object.assign(createPlainObject(), deserializedData);\n }\n catch (error) {\n if (error.code === 'ENOENT') {\n this._ensureDirectory();\n return createPlainObject();\n }\n if (__classPrivateFieldGet(this, _options).clearInvalidConfig && error.name === 'SyntaxError') {\n return createPlainObject();\n }\n throw error;\n }\n }\n set store(value) {\n this._ensureDirectory();\n this._validate(value);\n this._write(value);\n this.events.emit('change');\n }\n *[(_validator = new WeakMap(), _encryptionKey = new WeakMap(), _options = new WeakMap(), _defaultValues = new WeakMap(), Symbol.iterator)]() {\n for (const [key, value] of Object.entries(this.store)) {\n yield [key, value];\n }\n }\n _encryptData(data) {\n if (!__classPrivateFieldGet(this, _encryptionKey)) {\n return data.toString();\n }\n try {\n // Check if an initialization vector has been used to encrypt the data\n if (__classPrivateFieldGet(this, _encryptionKey)) {\n try {\n if (data.slice(16, 17).toString() === ':') {\n const initializationVector = data.slice(0, 16);\n const password = crypto.pbkdf2Sync(__classPrivateFieldGet(this, _encryptionKey), initializationVector.toString(), 10000, 32, 'sha512');\n const decipher = crypto.createDecipheriv(encryptionAlgorithm, password, initializationVector);\n data = Buffer.concat([decipher.update(Buffer.from(data.slice(17))), decipher.final()]).toString('utf8');\n }\n else {\n const decipher = crypto.createDecipher(encryptionAlgorithm, __classPrivateFieldGet(this, _encryptionKey));\n data = Buffer.concat([decipher.update(Buffer.from(data)), decipher.final()]).toString('utf8');\n }\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) { }\n }\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) {\n }\n return data.toString();\n }\n _handleChange(getter, callback) {\n let currentValue = getter();\n const onChange = () => {\n const oldValue = currentValue;\n const newValue = getter();\n try {\n // TODO: Use `util.isDeepStrictEqual` when targeting Node.js 10\n assert.deepEqual(newValue, oldValue);\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) {\n currentValue = newValue;\n callback.call(this, newValue, oldValue);\n }\n };\n this.events.on('change', onChange);\n return () => this.events.removeListener('change', onChange);\n }\n _validate(data) {\n if (!__classPrivateFieldGet(this, _validator)) {\n return;\n }\n const valid = __classPrivateFieldGet(this, _validator).call(this, data);\n if (valid || !__classPrivateFieldGet(this, _validator).errors) {\n return;\n }\n // eslint-disable-next-line unicorn/no-reduce\n const errors = __classPrivateFieldGet(this, _validator).errors.reduce((error, { dataPath, message = '' }) => error + ` \\`${dataPath.slice(1)}\\` ${message};`, '');\n throw new Error('Config schema violation:' + errors.slice(0, -1));\n }\n _ensureDirectory() {\n // TODO: Use `fs.mkdirSync` `recursive` option when targeting Node.js 12.\n // Ensure the directory exists as it could have been deleted in the meantime.\n makeDir.sync(path.dirname(this.path));\n }\n _write(value) {\n let data = this._serialize(value);\n if (__classPrivateFieldGet(this, _encryptionKey)) {\n const initializationVector = crypto.randomBytes(16);\n const password = crypto.pbkdf2Sync(__classPrivateFieldGet(this, _encryptionKey), initializationVector.toString(), 10000, 32, 'sha512');\n const cipher = crypto.createCipheriv(encryptionAlgorithm, password, initializationVector);\n data = Buffer.concat([initializationVector, Buffer.from(':'), cipher.update(Buffer.from(data)), cipher.final()]);\n }\n // Temporary workaround for Conf being packaged in a Ubuntu Snap app.\n // See https://github.com/sindresorhus/conf/pull/82\n if (process.env.SNAP) {\n fs.writeFileSync(this.path, data);\n }\n else {\n try {\n writeFileAtomic.sync(this.path, data);\n }\n catch (error) {\n // Fix for https://github.com/sindresorhus/electron-store/issues/106\n // Sometimes on Windows, we will get an EXDEV error when atomic writing\n // (even though to the same directory), so we fall back to non atomic write\n if (error.code === 'EXDEV') {\n fs.writeFileSync(this.path, data);\n return;\n }\n throw error;\n }\n }\n }\n _watch() {\n this._ensureDirectory();\n if (!fs.existsSync(this.path)) {\n this._write(createPlainObject());\n }\n fs.watch(this.path, { persistent: false }, debounceFn(() => {\n // On Linux and Windows, writing to the config file emits a `rename` event, so we skip checking the event type.\n this.events.emit('change');\n }, { wait: 100 }));\n }\n _migrate(migrations, versionToMigrate) {\n let previousMigratedVersion = this._get(MIGRATION_KEY, '0.0.0');\n const newerVersions = Object.keys(migrations)\n .filter(candidateVersion => this._shouldPerformMigration(candidateVersion, previousMigratedVersion, versionToMigrate));\n let storeBackup = { ...this.store };\n for (const version of newerVersions) {\n try {\n const migration = migrations[version];\n migration(this);\n this._set(MIGRATION_KEY, version);\n previousMigratedVersion = version;\n storeBackup = { ...this.store };\n }\n catch (error) {\n this.store = storeBackup;\n throw new Error(`Something went wrong during the migration! Changes applied to the store until this failed migration will be restored. ${error}`);\n }\n }\n if (this._isVersionInRangeFormat(previousMigratedVersion) || !semver.eq(previousMigratedVersion, versionToMigrate)) {\n this._set(MIGRATION_KEY, versionToMigrate);\n }\n }\n _containsReservedKey(key) {\n if (typeof key === 'object') {\n const firsKey = Object.keys(key)[0];\n if (firsKey === INTERNAL_KEY) {\n return true;\n }\n }\n if (typeof key !== 'string') {\n return false;\n }\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n if (key.startsWith(`${INTERNAL_KEY}.`)) {\n return true;\n }\n return false;\n }\n return false;\n }\n _isVersionInRangeFormat(version) {\n return semver.clean(version) === null;\n }\n _shouldPerformMigration(candidateVersion, previousMigratedVersion, versionToMigrate) {\n if (this._isVersionInRangeFormat(candidateVersion)) {\n if (previousMigratedVersion !== '0.0.0' && semver.satisfies(previousMigratedVersion, candidateVersion)) {\n return false;\n }\n return semver.satisfies(versionToMigrate, candidateVersion);\n }\n if (semver.lte(candidateVersion, previousMigratedVersion)) {\n return false;\n }\n if (semver.gt(candidateVersion, versionToMigrate)) {\n return false;\n }\n return true;\n }\n _get(key, defaultValue) {\n return dotProp.get(this.store, key, defaultValue);\n }\n _set(key, value) {\n const { store } = this;\n dotProp.set(store, key, value);\n this.store = store;\n }\n}\nexports.default = Conf;\n// For CommonJS default export support\nmodule.exports = Conf;\nmodule.exports.default = Conf;\n\n/* WEBPACK VAR INJECTION */}.call(this, \"/index.js\", __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/conf/dist/source/index.js?");
14049
-
14050
- /***/ }),
14051
-
14052
- /***/ "./node_modules/conf/node_modules/write-file-atomic/index.js":
14053
- /*!*******************************************************************!*\
14054
- !*** ./node_modules/conf/node_modules/write-file-atomic/index.js ***!
14055
- \*******************************************************************/
14056
- /*! no static exports found */
14057
- /***/ (function(module, exports, __webpack_require__) {
14058
-
14059
- "use strict";
14060
- eval("/* WEBPACK VAR INJECTION */(function(__filename) {\nmodule.exports = writeFile\nmodule.exports.sync = writeFileSync\nmodule.exports._getTmpname = getTmpname // for testing\nmodule.exports._cleanupOnExit = cleanupOnExit\n\nconst fs = __webpack_require__(/*! fs */ \"fs\")\nconst MurmurHash3 = __webpack_require__(/*! imurmurhash */ \"./node_modules/imurmurhash/imurmurhash.js\")\nconst onExit = __webpack_require__(/*! signal-exit */ \"./node_modules/signal-exit/index.js\")\nconst path = __webpack_require__(/*! path */ \"path\")\nconst isTypedArray = __webpack_require__(/*! is-typedarray */ \"./node_modules/is-typedarray/index.js\")\nconst typedArrayToBuffer = __webpack_require__(/*! typedarray-to-buffer */ \"./node_modules/typedarray-to-buffer/index.js\")\nconst { promisify } = __webpack_require__(/*! util */ \"util\")\nconst activeFiles = {}\n\n// if we run inside of a worker_thread, `process.pid` is not unique\n/* istanbul ignore next */\nconst threadId = (function getId () {\n try {\n const workerThreads = __webpack_require__(/*! worker_threads */ \"worker_threads\")\n\n /// if we are in main thread, this is set to `0`\n return workerThreads.threadId\n } catch (e) {\n // worker_threads are not available, fallback to 0\n return 0\n }\n})()\n\nlet invocations = 0\nfunction getTmpname (filename) {\n return filename + '.' +\n MurmurHash3(__filename)\n .hash(String(process.pid))\n .hash(String(threadId))\n .hash(String(++invocations))\n .result()\n}\n\nfunction cleanupOnExit (tmpfile) {\n return () => {\n try {\n fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile)\n } catch (_) {}\n }\n}\n\nfunction serializeActiveFile (absoluteName) {\n return new Promise(resolve => {\n // make a queue if it doesn't already exist\n if (!activeFiles[absoluteName]) activeFiles[absoluteName] = []\n\n activeFiles[absoluteName].push(resolve) // add this job to the queue\n if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one\n })\n}\n\n// https://github.com/isaacs/node-graceful-fs/blob/master/polyfills.js#L315-L342\nfunction isChownErrOk (err) {\n if (err.code === 'ENOSYS') {\n return true\n }\n\n const nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (err.code === 'EINVAL' || err.code === 'EPERM') {\n return true\n }\n }\n\n return false\n}\n\nasync function writeFileAsync (filename, data, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n let fd\n let tmpfile\n /* istanbul ignore next -- The closure only gets called when onExit triggers */\n const removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile))\n const absoluteName = path.resolve(filename)\n\n try {\n await serializeActiveFile(absoluteName)\n const truename = await promisify(fs.realpath)(filename).catch(() => filename)\n tmpfile = getTmpname(truename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n const stats = await promisify(fs.stat)(truename).catch(() => {})\n if (stats) {\n if (options.mode == null) {\n options.mode = stats.mode\n }\n\n if (options.chown == null && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n }\n }\n\n fd = await promisify(fs.open)(tmpfile, 'w', options.mode)\n if (options.tmpfileCreated) {\n await options.tmpfileCreated(tmpfile)\n }\n if (isTypedArray(data)) {\n data = typedArrayToBuffer(data)\n }\n if (Buffer.isBuffer(data)) {\n await promisify(fs.write)(fd, data, 0, data.length, 0)\n } else if (data != null) {\n await promisify(fs.write)(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n\n if (options.fsync !== false) {\n await promisify(fs.fsync)(fd)\n }\n\n await promisify(fs.close)(fd)\n fd = null\n\n if (options.chown) {\n await promisify(fs.chown)(tmpfile, options.chown.uid, options.chown.gid).catch(err => {\n if (!isChownErrOk(err)) {\n throw err\n }\n })\n }\n\n if (options.mode) {\n await promisify(fs.chmod)(tmpfile, options.mode).catch(err => {\n if (!isChownErrOk(err)) {\n throw err\n }\n })\n }\n\n await promisify(fs.rename)(tmpfile, truename)\n } finally {\n if (fd) {\n await promisify(fs.close)(fd).catch(\n /* istanbul ignore next */\n () => {}\n )\n }\n removeOnExitHandler()\n await promisify(fs.unlink)(tmpfile).catch(() => {})\n activeFiles[absoluteName].shift() // remove the element added by serializeSameFile\n if (activeFiles[absoluteName].length > 0) {\n activeFiles[absoluteName][0]() // start next job if one is pending\n } else delete activeFiles[absoluteName]\n }\n}\n\nfunction writeFile (filename, data, options, callback) {\n if (options instanceof Function) {\n callback = options\n options = {}\n }\n\n const promise = writeFileAsync(filename, data, options)\n if (callback) {\n promise.then(callback, callback)\n }\n\n return promise\n}\n\nfunction writeFileSync (filename, data, options) {\n if (typeof options === 'string') options = { encoding: options }\n else if (!options) options = {}\n try {\n filename = fs.realpathSync(filename)\n } catch (ex) {\n // it's ok, it'll happen on a not yet existing file\n }\n const tmpfile = getTmpname(filename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n try {\n const stats = fs.statSync(filename)\n options = Object.assign({}, options)\n if (!options.mode) {\n options.mode = stats.mode\n }\n if (!options.chown && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n } catch (ex) {\n // ignore stat errors\n }\n }\n\n let fd\n const cleanup = cleanupOnExit(tmpfile)\n const removeOnExitHandler = onExit(cleanup)\n\n let threw = true\n try {\n fd = fs.openSync(tmpfile, 'w', options.mode || 0o666)\n if (options.tmpfileCreated) {\n options.tmpfileCreated(tmpfile)\n }\n if (isTypedArray(data)) {\n data = typedArrayToBuffer(data)\n }\n if (Buffer.isBuffer(data)) {\n fs.writeSync(fd, data, 0, data.length, 0)\n } else if (data != null) {\n fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n if (options.fsync !== false) {\n fs.fsyncSync(fd)\n }\n\n fs.closeSync(fd)\n fd = null\n\n if (options.chown) {\n try {\n fs.chownSync(tmpfile, options.chown.uid, options.chown.gid)\n } catch (err) {\n if (!isChownErrOk(err)) {\n throw err\n }\n }\n }\n\n if (options.mode) {\n try {\n fs.chmodSync(tmpfile, options.mode)\n } catch (err) {\n if (!isChownErrOk(err)) {\n throw err\n }\n }\n }\n\n fs.renameSync(tmpfile, filename)\n threw = false\n } finally {\n if (fd) {\n try {\n fs.closeSync(fd)\n } catch (ex) {\n // ignore close errors at this stage, error may have closed fd already.\n }\n }\n removeOnExitHandler()\n if (threw) {\n cleanup()\n }\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, \"/index.js\"))\n\n//# sourceURL=webpack:///./node_modules/conf/node_modules/write-file-atomic/index.js?");
14156
+ eval("/* WEBPACK VAR INJECTION */(function(__filename, module) {\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n privateMap.set(receiver, value);\n return value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return privateMap.get(receiver);\n};\nvar _a, _b;\nvar _validator, _encryptionKey, _options, _defaultValues;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = __webpack_require__(/*! fs */ \"fs\");\nconst path = __webpack_require__(/*! path */ \"path\");\nconst crypto = __webpack_require__(/*! crypto */ \"crypto\");\nconst assert = __webpack_require__(/*! assert */ \"assert\");\nconst events_1 = __webpack_require__(/*! events */ \"events\");\nconst dotProp = __webpack_require__(/*! dot-prop */ \"./node_modules/dot-prop/index.js\");\nconst makeDir = __webpack_require__(/*! make-dir */ \"./node_modules/make-dir/index.js\");\nconst pkgUp = __webpack_require__(/*! pkg-up */ \"./node_modules/pkg-up/index.js\");\nconst envPaths = __webpack_require__(/*! env-paths */ \"./node_modules/env-paths/index.js\");\nconst atomically = __webpack_require__(/*! atomically */ \"./node_modules/atomically/dist/index.js\");\nconst Ajv = __webpack_require__(/*! ajv */ \"./node_modules/ajv/lib/ajv.js\");\nconst debounceFn = __webpack_require__(/*! debounce-fn */ \"./node_modules/debounce-fn/index.js\");\nconst semver = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\nconst onetime = __webpack_require__(/*! onetime */ \"./node_modules/onetime/index.js\");\nconst encryptionAlgorithm = 'aes-256-cbc';\nconst createPlainObject = () => {\n return Object.create(null);\n};\n// Prevent caching of this module so module.parent is always accurate\n// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\ndelete __webpack_require__.c[__filename];\nconst parentDir = path.dirname((_b = (_a = module.parent) === null || _a === void 0 ? void 0 : _a.filename) !== null && _b !== void 0 ? _b : '.');\nconst checkValueType = (key, value) => {\n const nonJsonTypes = new Set([\n 'undefined',\n 'symbol',\n 'function'\n ]);\n const type = typeof value;\n if (nonJsonTypes.has(type)) {\n throw new TypeError(`Setting a value of type \\`${type}\\` for key \\`${key}\\` is not allowed as it's not supported by JSON`);\n }\n};\nconst INTERNAL_KEY = '__internal__';\nconst MIGRATION_KEY = `${INTERNAL_KEY}.migrations.version`;\nclass Conf {\n constructor(partialOptions = {}) {\n var _a;\n _validator.set(this, void 0);\n _encryptionKey.set(this, void 0);\n _options.set(this, void 0);\n _defaultValues.set(this, {});\n this._deserialize = value => JSON.parse(value);\n this._serialize = value => JSON.stringify(value, null, '\\t');\n const options = {\n configName: 'config',\n fileExtension: 'json',\n projectSuffix: 'nodejs',\n clearInvalidConfig: true,\n accessPropertiesByDotNotation: true,\n ...partialOptions\n };\n const getPackageData = onetime(() => {\n const packagePath = pkgUp.sync({ cwd: parentDir });\n // Can't use `require` because of Webpack being annoying:\n // https://github.com/webpack/webpack/issues/196\n const packageData = packagePath && JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageData !== null && packageData !== void 0 ? packageData : {};\n });\n if (!options.cwd) {\n if (!options.projectName) {\n options.projectName = getPackageData().name;\n }\n if (!options.projectName) {\n throw new Error('Project name could not be inferred. Please specify the `projectName` option.');\n }\n options.cwd = envPaths(options.projectName, { suffix: options.projectSuffix }).config;\n }\n __classPrivateFieldSet(this, _options, options);\n if (options.schema) {\n if (typeof options.schema !== 'object') {\n throw new TypeError('The `schema` option must be an object.');\n }\n const ajv = new Ajv({\n allErrors: true,\n format: 'full',\n useDefaults: true,\n errorDataPath: 'property'\n });\n const schema = {\n type: 'object',\n properties: options.schema\n };\n __classPrivateFieldSet(this, _validator, ajv.compile(schema));\n for (const [key, value] of Object.entries(options.schema)) {\n if (value === null || value === void 0 ? void 0 : value.default) {\n __classPrivateFieldGet(this, _defaultValues)[key] = value.default;\n }\n }\n }\n if (options.defaults) {\n __classPrivateFieldSet(this, _defaultValues, {\n ...__classPrivateFieldGet(this, _defaultValues),\n ...options.defaults\n });\n }\n if (options.serialize) {\n this._serialize = options.serialize;\n }\n if (options.deserialize) {\n this._deserialize = options.deserialize;\n }\n this.events = new events_1.EventEmitter();\n __classPrivateFieldSet(this, _encryptionKey, options.encryptionKey);\n const fileExtension = options.fileExtension ? `.${options.fileExtension}` : '';\n this.path = path.resolve(options.cwd, `${(_a = options.configName) !== null && _a !== void 0 ? _a : 'config'}${fileExtension}`);\n const fileStore = this.store;\n const store = Object.assign(createPlainObject(), options.defaults, fileStore);\n this._validate(store);\n try {\n assert.deepEqual(fileStore, store);\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) {\n this.store = store;\n }\n if (options.watch) {\n this._watch();\n }\n if (options.migrations) {\n if (!options.projectVersion) {\n options.projectVersion = getPackageData().version;\n }\n if (!options.projectVersion) {\n throw new Error('Project version could not be inferred. Please specify the `projectVersion` option.');\n }\n this._migrate(options.migrations, options.projectVersion);\n }\n }\n get(key, defaultValue) {\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n return this._get(key, defaultValue);\n }\n return key in this.store ? this.store[key] : defaultValue;\n }\n set(key, value) {\n if (typeof key !== 'string' && typeof key !== 'object') {\n throw new TypeError(`Expected \\`key\\` to be of type \\`string\\` or \\`object\\`, got ${typeof key}`);\n }\n if (typeof key !== 'object' && value === undefined) {\n throw new TypeError('Use `delete()` to clear values');\n }\n if (this._containsReservedKey(key)) {\n throw new TypeError(`Please don't use the ${INTERNAL_KEY} key, as it's used to manage this module internal operations.`);\n }\n const { store } = this;\n const set = (key, value) => {\n checkValueType(key, value);\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n dotProp.set(store, key, value);\n }\n else {\n store[key] = value;\n }\n };\n if (typeof key === 'object') {\n const object = key;\n for (const [key, value] of Object.entries(object)) {\n set(key, value);\n }\n }\n else {\n set(key, value);\n }\n this.store = store;\n }\n /**\n Check if an item exists.\n\n @param key - The key of the item to check.\n */\n has(key) {\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n return dotProp.has(this.store, key);\n }\n return key in this.store;\n }\n /**\n Reset items to their default values, as defined by the `defaults` or `schema` option.\n\n @param keys - The keys of the items to reset.\n */\n reset(...keys) {\n for (const key of keys) {\n if (__classPrivateFieldGet(this, _defaultValues)[key]) {\n this.set(key, __classPrivateFieldGet(this, _defaultValues)[key]);\n }\n }\n }\n /**\n Delete an item.\n\n @param key - The key of the item to delete.\n */\n delete(key) {\n const { store } = this;\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n dotProp.delete(store, key);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete store[key];\n }\n this.store = store;\n }\n /**\n Delete all items.\n */\n clear() {\n this.store = createPlainObject();\n }\n /**\n Watches the given `key`, calling `callback` on any changes.\n\n @param key - The key wo watch.\n @param callback - A callback function that is called on any changes. When a `key` is first set `oldValue` will be `undefined`, and when a key is deleted `newValue` will be `undefined`.\n @returns A function, that when called, will unsubscribe.\n */\n onDidChange(key, callback) {\n if (typeof key !== 'string') {\n throw new TypeError(`Expected \\`key\\` to be of type \\`string\\`, got ${typeof key}`);\n }\n if (typeof callback !== 'function') {\n throw new TypeError(`Expected \\`callback\\` to be of type \\`function\\`, got ${typeof callback}`);\n }\n return this._handleChange(() => this.get(key), callback);\n }\n /**\n Watches the whole config object, calling `callback` on any changes.\n\n @param callback - A callback function that is called on any changes. When a `key` is first set `oldValue` will be `undefined`, and when a key is deleted `newValue` will be `undefined`.\n @returns A function, that when called, will unsubscribe.\n */\n onDidAnyChange(callback) {\n if (typeof callback !== 'function') {\n throw new TypeError(`Expected \\`callback\\` to be of type \\`function\\`, got ${typeof callback}`);\n }\n return this._handleChange(() => this.store, callback);\n }\n get size() {\n return Object.keys(this.store).length;\n }\n get store() {\n try {\n const data = fs.readFileSync(this.path, __classPrivateFieldGet(this, _encryptionKey) ? null : 'utf8');\n const dataString = this._encryptData(data);\n const deserializedData = this._deserialize(dataString);\n this._validate(deserializedData);\n return Object.assign(createPlainObject(), deserializedData);\n }\n catch (error) {\n if (error.code === 'ENOENT') {\n this._ensureDirectory();\n return createPlainObject();\n }\n if (__classPrivateFieldGet(this, _options).clearInvalidConfig && error.name === 'SyntaxError') {\n return createPlainObject();\n }\n throw error;\n }\n }\n set store(value) {\n this._ensureDirectory();\n this._validate(value);\n this._write(value);\n this.events.emit('change');\n }\n *[(_validator = new WeakMap(), _encryptionKey = new WeakMap(), _options = new WeakMap(), _defaultValues = new WeakMap(), Symbol.iterator)]() {\n for (const [key, value] of Object.entries(this.store)) {\n yield [key, value];\n }\n }\n _encryptData(data) {\n if (!__classPrivateFieldGet(this, _encryptionKey)) {\n return data.toString();\n }\n try {\n // Check if an initialization vector has been used to encrypt the data\n if (__classPrivateFieldGet(this, _encryptionKey)) {\n try {\n if (data.slice(16, 17).toString() === ':') {\n const initializationVector = data.slice(0, 16);\n const password = crypto.pbkdf2Sync(__classPrivateFieldGet(this, _encryptionKey), initializationVector.toString(), 10000, 32, 'sha512');\n const decipher = crypto.createDecipheriv(encryptionAlgorithm, password, initializationVector);\n data = Buffer.concat([decipher.update(Buffer.from(data.slice(17))), decipher.final()]).toString('utf8');\n }\n else {\n const decipher = crypto.createDecipher(encryptionAlgorithm, __classPrivateFieldGet(this, _encryptionKey));\n data = Buffer.concat([decipher.update(Buffer.from(data)), decipher.final()]).toString('utf8');\n }\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) { }\n }\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) {\n }\n return data.toString();\n }\n _handleChange(getter, callback) {\n let currentValue = getter();\n const onChange = () => {\n const oldValue = currentValue;\n const newValue = getter();\n try {\n // TODO: Use `util.isDeepStrictEqual` when targeting Node.js 10\n assert.deepEqual(newValue, oldValue);\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding\n }\n catch (_) {\n currentValue = newValue;\n callback.call(this, newValue, oldValue);\n }\n };\n this.events.on('change', onChange);\n return () => this.events.removeListener('change', onChange);\n }\n _validate(data) {\n if (!__classPrivateFieldGet(this, _validator)) {\n return;\n }\n const valid = __classPrivateFieldGet(this, _validator).call(this, data);\n if (valid || !__classPrivateFieldGet(this, _validator).errors) {\n return;\n }\n // eslint-disable-next-line unicorn/no-reduce\n const errors = __classPrivateFieldGet(this, _validator).errors.reduce((error, { dataPath, message = '' }) => error + ` \\`${dataPath.slice(1)}\\` ${message};`, '');\n throw new Error('Config schema violation:' + errors.slice(0, -1));\n }\n _ensureDirectory() {\n // TODO: Use `fs.mkdirSync` `recursive` option when targeting Node.js 12.\n // Ensure the directory exists as it could have been deleted in the meantime.\n makeDir.sync(path.dirname(this.path));\n }\n _write(value) {\n let data = this._serialize(value);\n if (__classPrivateFieldGet(this, _encryptionKey)) {\n const initializationVector = crypto.randomBytes(16);\n const password = crypto.pbkdf2Sync(__classPrivateFieldGet(this, _encryptionKey), initializationVector.toString(), 10000, 32, 'sha512');\n const cipher = crypto.createCipheriv(encryptionAlgorithm, password, initializationVector);\n data = Buffer.concat([initializationVector, Buffer.from(':'), cipher.update(Buffer.from(data)), cipher.final()]);\n }\n // Temporary workaround for Conf being packaged in a Ubuntu Snap app.\n // See https://github.com/sindresorhus/conf/pull/82\n if (process.env.SNAP) {\n fs.writeFileSync(this.path, data);\n }\n else {\n try {\n atomically.writeFileSync(this.path, data);\n }\n catch (error) {\n // Fix for https://github.com/sindresorhus/electron-store/issues/106\n // Sometimes on Windows, we will get an EXDEV error when atomic writing\n // (even though to the same directory), so we fall back to non atomic write\n if (error.code === 'EXDEV') {\n fs.writeFileSync(this.path, data);\n return;\n }\n throw error;\n }\n }\n }\n _watch() {\n this._ensureDirectory();\n if (!fs.existsSync(this.path)) {\n this._write(createPlainObject());\n }\n fs.watch(this.path, { persistent: false }, debounceFn(() => {\n // On Linux and Windows, writing to the config file emits a `rename` event, so we skip checking the event type.\n this.events.emit('change');\n }, { wait: 100 }));\n }\n _migrate(migrations, versionToMigrate) {\n let previousMigratedVersion = this._get(MIGRATION_KEY, '0.0.0');\n const newerVersions = Object.keys(migrations)\n .filter(candidateVersion => this._shouldPerformMigration(candidateVersion, previousMigratedVersion, versionToMigrate));\n let storeBackup = { ...this.store };\n for (const version of newerVersions) {\n try {\n const migration = migrations[version];\n migration(this);\n this._set(MIGRATION_KEY, version);\n previousMigratedVersion = version;\n storeBackup = { ...this.store };\n }\n catch (error) {\n this.store = storeBackup;\n throw new Error(`Something went wrong during the migration! Changes applied to the store until this failed migration will be restored. ${error}`);\n }\n }\n if (this._isVersionInRangeFormat(previousMigratedVersion) || !semver.eq(previousMigratedVersion, versionToMigrate)) {\n this._set(MIGRATION_KEY, versionToMigrate);\n }\n }\n _containsReservedKey(key) {\n if (typeof key === 'object') {\n const firsKey = Object.keys(key)[0];\n if (firsKey === INTERNAL_KEY) {\n return true;\n }\n }\n if (typeof key !== 'string') {\n return false;\n }\n if (__classPrivateFieldGet(this, _options).accessPropertiesByDotNotation) {\n if (key.startsWith(`${INTERNAL_KEY}.`)) {\n return true;\n }\n return false;\n }\n return false;\n }\n _isVersionInRangeFormat(version) {\n return semver.clean(version) === null;\n }\n _shouldPerformMigration(candidateVersion, previousMigratedVersion, versionToMigrate) {\n if (this._isVersionInRangeFormat(candidateVersion)) {\n if (previousMigratedVersion !== '0.0.0' && semver.satisfies(previousMigratedVersion, candidateVersion)) {\n return false;\n }\n return semver.satisfies(versionToMigrate, candidateVersion);\n }\n if (semver.lte(candidateVersion, previousMigratedVersion)) {\n return false;\n }\n if (semver.gt(candidateVersion, versionToMigrate)) {\n return false;\n }\n return true;\n }\n _get(key, defaultValue) {\n return dotProp.get(this.store, key, defaultValue);\n }\n _set(key, value) {\n const { store } = this;\n dotProp.set(store, key, value);\n this.store = store;\n }\n}\nexports.default = Conf;\n// For CommonJS default export support\nmodule.exports = Conf;\nmodule.exports.default = Conf;\n\n/* WEBPACK VAR INJECTION */}.call(this, \"/index.js\", __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/conf/dist/source/index.js?");
14061
14157
 
14062
14158
  /***/ }),
14063
14159
 
@@ -18618,17 +18714,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
18618
18714
 
18619
18715
  /***/ }),
18620
18716
 
18621
- /***/ "./node_modules/imurmurhash/imurmurhash.js":
18622
- /*!*************************************************!*\
18623
- !*** ./node_modules/imurmurhash/imurmurhash.js ***!
18624
- \*************************************************/
18625
- /*! no static exports found */
18626
- /***/ (function(module, exports, __webpack_require__) {
18627
-
18628
- eval("/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author <a href=\"mailto:jensyt@gmail.com\">Jens Taylor</a>\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/murmurhash-js\n * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n var cache;\n\n // Call this function without `new` to use the cached object (good for\n // single-threaded environments), or with `new` to create a new object.\n //\n // @param {string} key A UTF-16 or ASCII string\n // @param {number} seed An optional positive integer\n // @return {object} A MurmurHash3 object for incremental hashing\n function MurmurHash3(key, seed) {\n var m = this instanceof MurmurHash3 ? this : cache;\n m.reset(seed)\n if (typeof key === 'string' && key.length > 0) {\n m.hash(key);\n }\n\n if (m !== this) {\n return m;\n }\n };\n\n // Incrementally add a string to this hash\n //\n // @param {string} key A UTF-16 or ASCII string\n // @return {object} this\n MurmurHash3.prototype.hash = function(key) {\n var h1, k1, i, top, len;\n\n len = key.length;\n this.len += len;\n\n k1 = this.k1;\n i = 0;\n switch (this.rem) {\n case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n case 3:\n k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n }\n\n this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n len -= this.rem;\n if (len > 0) {\n h1 = this.h1;\n while (1) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n if (i >= len) {\n break;\n }\n\n k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n ((key.charCodeAt(i++) & 0xffff) << 8) ^\n ((key.charCodeAt(i++) & 0xffff) << 16);\n top = key.charCodeAt(i++);\n k1 ^= ((top & 0xff) << 24) ^\n ((top & 0xff00) >> 8);\n }\n\n k1 = 0;\n switch (this.rem) {\n case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n }\n\n this.h1 = h1;\n }\n\n this.k1 = k1;\n return this;\n };\n\n // Get the result of this hash\n //\n // @return {number} The 32-bit hash\n MurmurHash3.prototype.result = function() {\n var k1, h1;\n \n k1 = this.k1;\n h1 = this.h1;\n\n if (k1 > 0) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= this.len;\n\n h1 ^= h1 >>> 16;\n h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n };\n\n // Reset the hash object for reuse\n //\n // @param {number} seed An optional positive integer\n MurmurHash3.prototype.reset = function(seed) {\n this.h1 = typeof seed === 'number' ? seed : 0;\n this.rem = this.k1 = this.len = 0;\n return this;\n };\n\n // A cached object to use. This can be safely used if you're in a single-\n // threaded environment, otherwise you need to create new hashes to use.\n cache = new MurmurHash3();\n\n if (true) {\n module.exports = MurmurHash3;\n } else {}\n}());\n\n\n//# sourceURL=webpack:///./node_modules/imurmurhash/imurmurhash.js?");
18629
-
18630
- /***/ }),
18631
-
18632
18717
  /***/ "./node_modules/indent-string/index.js":
18633
18718
  /*!*********************************************!*\
18634
18719
  !*** ./node_modules/indent-string/index.js ***!
@@ -29700,7 +29785,7 @@ eval("\n\nvar name = __webpack_require__(/*! fn.name */ \"./node_modules/fn.name
29700
29785
  /***/ (function(module, exports, __webpack_require__) {
29701
29786
 
29702
29787
  "use strict";
29703
- eval("\nconst mimicFn = __webpack_require__(/*! mimic-fn */ \"./node_modules/mimic-fn/index.js\");\n\nconst calledFunctions = new WeakMap();\n\nconst oneTime = (fn, options = {}) => {\n\tif (typeof fn !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet ret;\n\tlet isCalled = false;\n\tlet callCount = 0;\n\tconst functionName = fn.displayName || fn.name || '<anonymous>';\n\n\tconst onetime = function (...args) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (isCalled) {\n\t\t\tif (options.throw === true) {\n\t\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t}\n\n\t\tisCalled = true;\n\t\tret = fn.apply(this, args);\n\t\tfn = null;\n\n\t\treturn ret;\n\t};\n\n\tmimicFn(onetime, fn);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nmodule.exports = oneTime;\n// TODO: Remove this for the next major release\nmodule.exports.default = oneTime;\n\nmodule.exports.callCount = fn => {\n\tif (!calledFunctions.has(fn)) {\n\t\tthrow new Error(`The given function \\`${fn.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(fn);\n};\n\n\n//# sourceURL=webpack:///./node_modules/onetime/index.js?");
29788
+ eval("\nconst mimicFn = __webpack_require__(/*! mimic-fn */ \"./node_modules/mimic-fn/index.js\");\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = null;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFn(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nmodule.exports = onetime;\n// TODO: Remove this for the next major release\nmodule.exports.default = onetime;\n\nmodule.exports.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\n\n//# sourceURL=webpack:///./node_modules/onetime/index.js?");
29704
29789
 
29705
29790
  /***/ }),
29706
29791
 
@@ -34130,17 +34215,6 @@ eval("(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh
34130
34215
 
34131
34216
  /***/ }),
34132
34217
 
34133
- /***/ "./node_modules/typedarray-to-buffer/index.js":
34134
- /*!****************************************************!*\
34135
- !*** ./node_modules/typedarray-to-buffer/index.js ***!
34136
- \****************************************************/
34137
- /*! no static exports found */
34138
- /***/ (function(module, exports, __webpack_require__) {
34139
-
34140
- eval("/**\n * Convert a typed array to a Buffer without a copy\n *\n * Author: Feross Aboukhadijeh <https://feross.org>\n * License: MIT\n *\n * `npm install typedarray-to-buffer`\n */\n\nvar isTypedArray = __webpack_require__(/*! is-typedarray */ \"./node_modules/is-typedarray/index.js\").strict\n\nmodule.exports = function typedarrayToBuffer (arr) {\n if (isTypedArray(arr)) {\n // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer\n var buf = Buffer.from(arr.buffer)\n if (arr.byteLength !== arr.buffer.byteLength) {\n // Respect the \"view\", i.e. byteOffset and byteLength, without doing a copy\n buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)\n }\n return buf\n } else {\n // Pass through all other types to `Buffer.from`\n return Buffer.from(arr)\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/typedarray-to-buffer/index.js?");
34141
-
34142
- /***/ }),
34143
-
34144
34218
  /***/ "./node_modules/underscore/modules/_baseCreate.js":
34145
34219
  /*!********************************************************!*\
34146
34220
  !*** ./node_modules/underscore/modules/_baseCreate.js ***!
@@ -36832,7 +36906,7 @@ eval("class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthi
36832
36906
  /*! exports provided: name, productName, description, homepage, version, main, copyright, license, author, scripts, config, engines, jest, build, dependencies, devDependencies, default */
36833
36907
  /***/ (function(module) {
36834
36908
 
36835
- eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"open-lens\\\",\\\"productName\\\":\\\"OpenLens\\\",\\\"description\\\":\\\"OpenLens - Open Source IDE for Kubernetes\\\",\\\"homepage\\\":\\\"https://github.com/lensapp/lens\\\",\\\"version\\\":\\\"5.3.0-alpha.0\\\",\\\"main\\\":\\\"static/build/main.js\\\",\\\"copyright\\\":\\\"© 2021 OpenLens Authors\\\",\\\"license\\\":\\\"MIT\\\",\\\"author\\\":{\\\"name\\\":\\\"OpenLens Authors\\\",\\\"email\\\":\\\"info@k8slens.dev\\\"},\\\"scripts\\\":{\\\"dev\\\":\\\"concurrently -i -k \\\\\\\"yarn run dev-run -C\\\\\\\" yarn:dev:*\\\",\\\"dev-build\\\":\\\"concurrently yarn:compile:*\\\",\\\"debug-build\\\":\\\"concurrently yarn:compile:main yarn:compile:extension-types\\\",\\\"dev-run\\\":\\\"nodemon --watch static/build/main.js --exec \\\\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\\\"\\\",\\\"dev:main\\\":\\\"yarn run compile:main --watch\\\",\\\"dev:renderer\\\":\\\"yarn run webpack-dev-server --config webpack.renderer.ts\\\",\\\"dev:extension-types\\\":\\\"yarn run compile:extension-types --watch\\\",\\\"compile\\\":\\\"env NODE_ENV=production concurrently yarn:compile:*\\\",\\\"compile:main\\\":\\\"yarn run webpack --config webpack.main.ts\\\",\\\"compile:renderer\\\":\\\"yarn run webpack --config webpack.renderer.ts\\\",\\\"compile:extension-types\\\":\\\"yarn run webpack --config webpack.extensions.ts\\\",\\\"npm:fix-build-version\\\":\\\"yarn run ts-node build/set_build_version.ts\\\",\\\"npm:fix-package-version\\\":\\\"yarn run ts-node build/set_npm_version.ts\\\",\\\"build:linux\\\":\\\"yarn run compile && electron-builder --linux --dir\\\",\\\"build:mac\\\":\\\"yarn run compile && electron-builder --mac --dir\\\",\\\"build:win\\\":\\\"yarn run compile && electron-builder --win --dir\\\",\\\"integration\\\":\\\"jest --runInBand --detectOpenHandles --forceExit integration\\\",\\\"dist\\\":\\\"yarn run compile && electron-builder --publish onTag\\\",\\\"dist:dir\\\":\\\"yarn run dist --dir -c.compression=store -c.mac.identity=null\\\",\\\"download-bins\\\":\\\"concurrently yarn:download:*\\\",\\\"download:kubectl\\\":\\\"yarn run ts-node build/download_kubectl.ts\\\",\\\"download:helm\\\":\\\"yarn run ts-node build/download_helm.ts\\\",\\\"build:tray-icons\\\":\\\"yarn run ts-node build/build_tray_icon.ts\\\",\\\"lint\\\":\\\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\\\",\\\"lint:fix\\\":\\\"yarn run lint --fix\\\",\\\"mkdocs-serve-local\\\":\\\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\\\",\\\"verify-docs\\\":\\\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\\\",\\\"typedocs-extensions-api\\\":\\\"yarn run typedoc src/extensions/extension-api.ts\\\",\\\"version-checkout\\\":\\\"cat package.json | jq '.version' -r | xargs printf \\\\\\\"release/v%s\\\\\\\" | xargs git checkout -b\\\",\\\"version-commit\\\":\\\"cat package.json | jq '.version' -r | xargs printf \\\\\\\"release v%s\\\\\\\" | git commit --no-edit -s -F -\\\",\\\"version\\\":\\\"yarn run version-checkout && git add package.json && yarn run version-commit\\\",\\\"postversion\\\":\\\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\\\"},\\\"config\\\":{\\\"bundledKubectlVersion\\\":\\\"1.21.2\\\",\\\"bundledHelmVersion\\\":\\\"3.6.3\\\",\\\"sentryDsn\\\":\\\"\\\"},\\\"engines\\\":{\\\"node\\\":\\\">=14 <15\\\"},\\\"jest\\\":{\\\"collectCoverage\\\":false,\\\"verbose\\\":true,\\\"transform\\\":{\\\"^.+\\\\\\\\.tsx?$\\\":\\\"ts-jest\\\"},\\\"moduleNameMapper\\\":{\\\"\\\\\\\\.(css|scss)$\\\":\\\"<rootDir>/__mocks__/styleMock.ts\\\",\\\"\\\\\\\\.(svg)$\\\":\\\"<rootDir>/__mocks__/imageMock.ts\\\",\\\"src/(.*)\\\":\\\"<rootDir>/__mocks__/windowMock.ts\\\"},\\\"modulePathIgnorePatterns\\\":[\\\"<rootDir>/dist\\\",\\\"<rootDir>/src/extensions/npm\\\"],\\\"setupFiles\\\":[\\\"<rootDir>/src/jest.setup.ts\\\",\\\"jest-canvas-mock\\\"]},\\\"build\\\":{\\\"generateUpdatesFilesForAllChannels\\\":true,\\\"files\\\":[\\\"static/build/main.js\\\"],\\\"afterSign\\\":\\\"build/notarize.js\\\",\\\"extraResources\\\":[{\\\"from\\\":\\\"locales/\\\",\\\"to\\\":\\\"locales/\\\",\\\"filter\\\":\\\"**/*.js\\\"},{\\\"from\\\":\\\"static/\\\",\\\"to\\\":\\\"static/\\\",\\\"filter\\\":\\\"!**/main.js\\\"},{\\\"from\\\":\\\"build/tray\\\",\\\"to\\\":\\\"static/icons\\\",\\\"filter\\\":\\\"*.png\\\"},{\\\"from\\\":\\\"extensions/\\\",\\\"to\\\":\\\"./extensions/\\\",\\\"filter\\\":[\\\"**/*.tgz\\\",\\\"**/package.json\\\",\\\"!**/node_modules\\\"]},{\\\"from\\\":\\\"templates/\\\",\\\"to\\\":\\\"./templates/\\\",\\\"filter\\\":\\\"**/*.yaml\\\"},\\\"LICENSE\\\"],\\\"linux\\\":{\\\"category\\\":\\\"Network\\\",\\\"artifactName\\\":\\\"${productName}-${version}.${arch}.${ext}\\\",\\\"target\\\":[\\\"deb\\\",\\\"rpm\\\",\\\"AppImage\\\"],\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/linux/${arch}/kubectl\\\",\\\"to\\\":\\\"./${arch}/kubectl\\\"},{\\\"from\\\":\\\"binaries/client/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"mac\\\":{\\\"hardenedRuntime\\\":true,\\\"gatekeeperAssess\\\":false,\\\"entitlements\\\":\\\"build/entitlements.mac.plist\\\",\\\"entitlementsInherit\\\":\\\"build/entitlements.mac.plist\\\",\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/darwin/${arch}/kubectl\\\",\\\"to\\\":\\\"./${arch}/kubectl\\\"},{\\\"from\\\":\\\"binaries/client/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"win\\\":{\\\"target\\\":[\\\"nsis\\\"],\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/windows/x64/kubectl.exe\\\",\\\"to\\\":\\\"./x64/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/windows/ia32/kubectl.exe\\\",\\\"to\\\":\\\"./ia32/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/x64/helm3/helm3.exe\\\",\\\"to\\\":\\\"./helm3/helm3.exe\\\"}]},\\\"nsis\\\":{\\\"include\\\":\\\"build/installer.nsh\\\",\\\"oneClick\\\":false,\\\"allowToChangeInstallationDirectory\\\":true},\\\"protocols\\\":{\\\"name\\\":\\\"Lens Protocol Handler\\\",\\\"schemes\\\":[\\\"lens\\\"],\\\"role\\\":\\\"Viewer\\\"}},\\\"dependencies\\\":{\\\"@electron/remote\\\":\\\"^1.2.1\\\",\\\"@hapi/call\\\":\\\"^8.0.1\\\",\\\"@hapi/subtext\\\":\\\"^7.0.3\\\",\\\"@kubernetes/client-node\\\":\\\"^0.15.1\\\",\\\"@sentry/electron\\\":\\\"^2.5.0\\\",\\\"@sentry/integrations\\\":\\\"^6.10.0\\\",\\\"abort-controller\\\":\\\"^3.0.0\\\",\\\"array-move\\\":\\\"^3.0.1\\\",\\\"auto-bind\\\":\\\"^4.0.0\\\",\\\"autobind-decorator\\\":\\\"^2.4.0\\\",\\\"await-lock\\\":\\\"^2.1.0\\\",\\\"byline\\\":\\\"^5.0.0\\\",\\\"chalk\\\":\\\"^4.1.0\\\",\\\"chokidar\\\":\\\"^3.4.3\\\",\\\"command-exists\\\":\\\"1.2.9\\\",\\\"conf\\\":\\\"^7.0.1\\\",\\\"crypto-js\\\":\\\"^4.1.1\\\",\\\"electron-devtools-installer\\\":\\\"^3.2.0\\\",\\\"electron-updater\\\":\\\"^4.6.0\\\",\\\"electron-window-state\\\":\\\"^5.0.3\\\",\\\"filehound\\\":\\\"^1.17.4\\\",\\\"fs-extra\\\":\\\"^9.0.1\\\",\\\"glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"got\\\":\\\"^11.8.2\\\",\\\"grapheme-splitter\\\":\\\"^1.0.4\\\",\\\"handlebars\\\":\\\"^4.7.7\\\",\\\"http-proxy\\\":\\\"^1.18.1\\\",\\\"immer\\\":\\\"^8.0.4\\\",\\\"joi\\\":\\\"^17.4.2\\\",\\\"js-yaml\\\":\\\"^3.14.0\\\",\\\"jsdom\\\":\\\"^16.7.0\\\",\\\"jsonpath\\\":\\\"^1.1.1\\\",\\\"lodash\\\":\\\"^4.17.15\\\",\\\"mac-ca\\\":\\\"^1.0.6\\\",\\\"marked\\\":\\\"^2.0.3\\\",\\\"md5-file\\\":\\\"^5.0.0\\\",\\\"mobx\\\":\\\"^6.3.0\\\",\\\"mobx-observable-history\\\":\\\"^2.0.1\\\",\\\"mobx-react\\\":\\\"^7.2.0\\\",\\\"mock-fs\\\":\\\"^4.14.0\\\",\\\"moment\\\":\\\"^2.29.1\\\",\\\"moment-timezone\\\":\\\"^0.5.33\\\",\\\"monaco-editor\\\":\\\"^0.26.1\\\",\\\"node-fetch\\\":\\\"^2.6.1\\\",\\\"node-pty\\\":\\\"^0.10.1\\\",\\\"npm\\\":\\\"^6.14.15\\\",\\\"p-limit\\\":\\\"^3.1.0\\\",\\\"path-to-regexp\\\":\\\"^6.2.0\\\",\\\"proper-lockfile\\\":\\\"^4.1.2\\\",\\\"react\\\":\\\"^17.0.2\\\",\\\"react-dom\\\":\\\"^17.0.2\\\",\\\"react-material-ui-carousel\\\":\\\"^2.3.1\\\",\\\"react-monaco-editor\\\":\\\"^0.44.0\\\",\\\"react-router\\\":\\\"^5.2.0\\\",\\\"react-virtualized-auto-sizer\\\":\\\"^1.0.6\\\",\\\"readable-stream\\\":\\\"^3.6.0\\\",\\\"request\\\":\\\"^2.88.2\\\",\\\"request-promise-native\\\":\\\"^1.0.9\\\",\\\"rfc6902\\\":\\\"^4.0.2\\\",\\\"semver\\\":\\\"^7.3.2\\\",\\\"serializr\\\":\\\"^2.0.5\\\",\\\"shell-env\\\":\\\"^3.0.1\\\",\\\"spdy\\\":\\\"^4.0.2\\\",\\\"tar\\\":\\\"^6.1.10\\\",\\\"tcp-port-used\\\":\\\"^1.0.2\\\",\\\"tempy\\\":\\\"1.0.1\\\",\\\"url-parse\\\":\\\"^1.5.3\\\",\\\"uuid\\\":\\\"^8.3.2\\\",\\\"win-ca\\\":\\\"^3.4.5\\\",\\\"winston\\\":\\\"^3.3.3\\\",\\\"winston-console-format\\\":\\\"^1.0.8\\\",\\\"winston-transport-browserconsole\\\":\\\"^1.0.5\\\",\\\"ws\\\":\\\"^7.4.6\\\"},\\\"devDependencies\\\":{\\\"@emeraldpay/hashicon-react\\\":\\\"^0.4.0\\\",\\\"@material-ui/core\\\":\\\"^4.12.3\\\",\\\"@material-ui/icons\\\":\\\"^4.11.2\\\",\\\"@material-ui/lab\\\":\\\"^4.0.0-alpha.60\\\",\\\"@pmmmwh/react-refresh-webpack-plugin\\\":\\\"^0.4.3\\\",\\\"@sentry/react\\\":\\\"^6.8.0\\\",\\\"@sentry/types\\\":\\\"^6.8.0\\\",\\\"@testing-library/dom\\\":\\\"^8.2.0\\\",\\\"@testing-library/jest-dom\\\":\\\"^5.14.1\\\",\\\"@testing-library/react\\\":\\\"^11.2.6\\\",\\\"@testing-library/user-event\\\":\\\"^13.2.1\\\",\\\"@types/byline\\\":\\\"^4.2.32\\\",\\\"@types/chart.js\\\":\\\"^2.9.34\\\",\\\"@types/color\\\":\\\"^3.0.2\\\",\\\"@types/crypto-js\\\":\\\"^3.1.47\\\",\\\"@types/dompurify\\\":\\\"^2.0.2\\\",\\\"@types/electron-devtools-installer\\\":\\\"^2.2.0\\\",\\\"@types/fs-extra\\\":\\\"^9.0.1\\\",\\\"@types/glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"@types/hapi\\\":\\\"^18.0.6\\\",\\\"@types/hoist-non-react-statics\\\":\\\"^3.3.1\\\",\\\"@types/html-webpack-plugin\\\":\\\"^3.2.6\\\",\\\"@types/http-proxy\\\":\\\"^1.17.7\\\",\\\"@types/jest\\\":\\\"^26.0.24\\\",\\\"@types/js-yaml\\\":\\\"^3.12.4\\\",\\\"@types/jsdom\\\":\\\"^16.2.4\\\",\\\"@types/jsonpath\\\":\\\"^0.2.0\\\",\\\"@types/lodash\\\":\\\"^4.14.155\\\",\\\"@types/marked\\\":\\\"^2.0.4\\\",\\\"@types/md5-file\\\":\\\"^4.0.2\\\",\\\"@types/mini-css-extract-plugin\\\":\\\"^0.9.1\\\",\\\"@types/mock-fs\\\":\\\"^4.13.1\\\",\\\"@types/module-alias\\\":\\\"^2.0.1\\\",\\\"@types/node\\\":\\\"14.17.14\\\",\\\"@types/node-fetch\\\":\\\"^2.5.12\\\",\\\"@types/npm\\\":\\\"^2.0.32\\\",\\\"@types/progress-bar-webpack-plugin\\\":\\\"^2.1.2\\\",\\\"@types/proper-lockfile\\\":\\\"^4.1.2\\\",\\\"@types/randomcolor\\\":\\\"^0.5.6\\\",\\\"@types/react\\\":\\\"^17.0.0\\\",\\\"@types/react-beautiful-dnd\\\":\\\"^13.1.1\\\",\\\"@types/react-dom\\\":\\\"^17.0.9\\\",\\\"@types/react-router-dom\\\":\\\"^5.3.1\\\",\\\"@types/react-select\\\":\\\"3.1.2\\\",\\\"@types/react-table\\\":\\\"^7.7.6\\\",\\\"@types/react-virtualized-auto-sizer\\\":\\\"^1.0.1\\\",\\\"@types/react-window\\\":\\\"^1.8.5\\\",\\\"@types/readable-stream\\\":\\\"^2.3.9\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/request-promise-native\\\":\\\"^1.0.18\\\",\\\"@types/semver\\\":\\\"^7.2.0\\\",\\\"@types/sharp\\\":\\\"^0.28.3\\\",\\\"@types/spdy\\\":\\\"^3.4.4\\\",\\\"@types/tar\\\":\\\"^4.0.5\\\",\\\"@types/tcp-port-used\\\":\\\"^1.0.0\\\",\\\"@types/tempy\\\":\\\"^0.3.0\\\",\\\"@types/triple-beam\\\":\\\"^1.3.2\\\",\\\"@types/url-parse\\\":\\\"^1.4.3\\\",\\\"@types/uuid\\\":\\\"^8.3.1\\\",\\\"@types/webdriverio\\\":\\\"^4.13.0\\\",\\\"@types/webpack\\\":\\\"^4.41.31\\\",\\\"@types/webpack-dev-server\\\":\\\"^3.11.6\\\",\\\"@types/webpack-env\\\":\\\"^1.16.2\\\",\\\"@types/webpack-node-externals\\\":\\\"^1.7.1\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^4.33.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^4.29.1\\\",\\\"ansi_up\\\":\\\"^5.0.1\\\",\\\"chart.js\\\":\\\"^2.9.4\\\",\\\"circular-dependency-plugin\\\":\\\"^5.2.2\\\",\\\"color\\\":\\\"^3.1.2\\\",\\\"concurrently\\\":\\\"^5.2.0\\\",\\\"css-loader\\\":\\\"^5.2.7\\\",\\\"deepdash\\\":\\\"^5.3.9\\\",\\\"dompurify\\\":\\\"^2.3.1\\\",\\\"electron\\\":\\\"^13.5.1\\\",\\\"electron-builder\\\":\\\"^22.11.11\\\",\\\"electron-notarize\\\":\\\"^0.3.0\\\",\\\"esbuild\\\":\\\"^0.12.24\\\",\\\"esbuild-loader\\\":\\\"^2.15.1\\\",\\\"eslint\\\":\\\"^7.32.0\\\",\\\"eslint-plugin-header\\\":\\\"^3.1.1\\\",\\\"eslint-plugin-react\\\":\\\"^7.24.0\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.2.0\\\",\\\"eslint-plugin-unused-imports\\\":\\\"^1.0.1\\\",\\\"file-loader\\\":\\\"^6.2.0\\\",\\\"flex.box\\\":\\\"^3.4.4\\\",\\\"fork-ts-checker-webpack-plugin\\\":\\\"^5.2.1\\\",\\\"hoist-non-react-statics\\\":\\\"^3.3.2\\\",\\\"html-webpack-plugin\\\":\\\"^4.5.2\\\",\\\"identity-obj-proxy\\\":\\\"^3.0.0\\\",\\\"include-media\\\":\\\"^1.4.9\\\",\\\"jest\\\":\\\"26.6.3\\\",\\\"jest-canvas-mock\\\":\\\"^2.3.1\\\",\\\"jest-fetch-mock\\\":\\\"^3.0.3\\\",\\\"jest-mock-extended\\\":\\\"^1.0.16\\\",\\\"make-plural\\\":\\\"^6.2.2\\\",\\\"mini-css-extract-plugin\\\":\\\"^1.6.2\\\",\\\"node-gyp\\\":\\\"7.1.2\\\",\\\"node-loader\\\":\\\"^1.0.3\\\",\\\"nodemon\\\":\\\"^2.0.12\\\",\\\"playwright\\\":\\\"^1.14.0\\\",\\\"postcss\\\":\\\"^8.3.6\\\",\\\"postcss-loader\\\":\\\"4.3.0\\\",\\\"postinstall-postinstall\\\":\\\"^2.1.0\\\",\\\"prettier\\\":\\\"^2.4.1\\\",\\\"progress-bar-webpack-plugin\\\":\\\"^2.1.0\\\",\\\"randomcolor\\\":\\\"^0.6.2\\\",\\\"raw-loader\\\":\\\"^4.0.2\\\",\\\"react-beautiful-dnd\\\":\\\"^13.1.0\\\",\\\"react-refresh\\\":\\\"^0.9.0\\\",\\\"react-router-dom\\\":\\\"^5.2.0\\\",\\\"react-select\\\":\\\"3.2.0\\\",\\\"react-select-event\\\":\\\"^5.1.0\\\",\\\"react-table\\\":\\\"^7.7.0\\\",\\\"react-window\\\":\\\"^1.8.5\\\",\\\"sass\\\":\\\"^1.41.1\\\",\\\"sass-loader\\\":\\\"^8.0.2\\\",\\\"sharp\\\":\\\"^0.29.1\\\",\\\"style-loader\\\":\\\"^2.0.0\\\",\\\"tailwindcss\\\":\\\"^2.2.4\\\",\\\"ts-jest\\\":\\\"26.5.6\\\",\\\"ts-loader\\\":\\\"^7.0.5\\\",\\\"ts-node\\\":\\\"^10.2.1\\\",\\\"type-fest\\\":\\\"^1.0.2\\\",\\\"typed-emitter\\\":\\\"^1.3.1\\\",\\\"typedoc\\\":\\\"0.22.5\\\",\\\"typedoc-plugin-markdown\\\":\\\"^3.9.0\\\",\\\"typeface-roboto\\\":\\\"^1.1.13\\\",\\\"typescript\\\":\\\"^4.4.3\\\",\\\"typescript-plugin-css-modules\\\":\\\"^3.4.0\\\",\\\"url-loader\\\":\\\"^4.1.1\\\",\\\"webpack\\\":\\\"^4.46.0\\\",\\\"webpack-cli\\\":\\\"^3.3.12\\\",\\\"webpack-dev-server\\\":\\\"^3.11.2\\\",\\\"webpack-node-externals\\\":\\\"^1.7.2\\\",\\\"what-input\\\":\\\"^5.2.10\\\",\\\"xterm\\\":\\\"^4.12.0\\\",\\\"xterm-addon-fit\\\":\\\"^0.5.0\\\"}}\");\n\n//# sourceURL=webpack:///./package.json?");
36909
+ eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"open-lens\\\",\\\"productName\\\":\\\"OpenLens\\\",\\\"description\\\":\\\"OpenLens - Open Source IDE for Kubernetes\\\",\\\"homepage\\\":\\\"https://github.com/lensapp/lens\\\",\\\"version\\\":\\\"5.3.0-alpha.0\\\",\\\"main\\\":\\\"static/build/main.js\\\",\\\"copyright\\\":\\\"© 2021 OpenLens Authors\\\",\\\"license\\\":\\\"MIT\\\",\\\"author\\\":{\\\"name\\\":\\\"OpenLens Authors\\\",\\\"email\\\":\\\"info@k8slens.dev\\\"},\\\"scripts\\\":{\\\"dev\\\":\\\"concurrently -i -k \\\\\\\"yarn run dev-run -C\\\\\\\" yarn:dev:*\\\",\\\"dev-build\\\":\\\"concurrently yarn:compile:*\\\",\\\"debug-build\\\":\\\"concurrently yarn:compile:main yarn:compile:extension-types\\\",\\\"dev-run\\\":\\\"nodemon --watch static/build/main.js --exec \\\\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\\\"\\\",\\\"dev:main\\\":\\\"yarn run compile:main --watch\\\",\\\"dev:renderer\\\":\\\"yarn run webpack-dev-server --config webpack.renderer.ts\\\",\\\"dev:extension-types\\\":\\\"yarn run compile:extension-types --watch\\\",\\\"compile\\\":\\\"env NODE_ENV=production concurrently yarn:compile:*\\\",\\\"compile:main\\\":\\\"yarn run webpack --config webpack.main.ts\\\",\\\"compile:renderer\\\":\\\"yarn run webpack --config webpack.renderer.ts\\\",\\\"compile:extension-types\\\":\\\"yarn run webpack --config webpack.extensions.ts\\\",\\\"npm:fix-build-version\\\":\\\"yarn run ts-node build/set_build_version.ts\\\",\\\"npm:fix-package-version\\\":\\\"yarn run ts-node build/set_npm_version.ts\\\",\\\"build:linux\\\":\\\"yarn run compile && electron-builder --linux --dir\\\",\\\"build:mac\\\":\\\"yarn run compile && electron-builder --mac --dir\\\",\\\"build:win\\\":\\\"yarn run compile && electron-builder --win --dir\\\",\\\"integration\\\":\\\"jest --runInBand --detectOpenHandles --forceExit integration\\\",\\\"dist\\\":\\\"yarn run compile && electron-builder --publish onTag\\\",\\\"dist:dir\\\":\\\"yarn run dist --dir -c.compression=store -c.mac.identity=null\\\",\\\"download-bins\\\":\\\"concurrently yarn:download:*\\\",\\\"download:kubectl\\\":\\\"yarn run ts-node build/download_kubectl.ts\\\",\\\"download:helm\\\":\\\"yarn run ts-node build/download_helm.ts\\\",\\\"build:tray-icons\\\":\\\"yarn run ts-node build/build_tray_icon.ts\\\",\\\"lint\\\":\\\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\\\",\\\"lint:fix\\\":\\\"yarn run lint --fix\\\",\\\"mkdocs-serve-local\\\":\\\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\\\",\\\"verify-docs\\\":\\\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\\\",\\\"typedocs-extensions-api\\\":\\\"yarn run typedoc src/extensions/extension-api.ts\\\",\\\"version-checkout\\\":\\\"cat package.json | jq '.version' -r | xargs printf \\\\\\\"release/v%s\\\\\\\" | xargs git checkout -b\\\",\\\"version-commit\\\":\\\"cat package.json | jq '.version' -r | xargs printf \\\\\\\"release v%s\\\\\\\" | git commit --no-edit -s -F -\\\",\\\"version\\\":\\\"yarn run version-checkout && git add package.json && yarn run version-commit\\\",\\\"postversion\\\":\\\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\\\"},\\\"config\\\":{\\\"bundledKubectlVersion\\\":\\\"1.21.2\\\",\\\"bundledHelmVersion\\\":\\\"3.6.3\\\",\\\"sentryDsn\\\":\\\"\\\"},\\\"engines\\\":{\\\"node\\\":\\\">=14 <15\\\"},\\\"jest\\\":{\\\"collectCoverage\\\":false,\\\"verbose\\\":true,\\\"transform\\\":{\\\"^.+\\\\\\\\.tsx?$\\\":\\\"ts-jest\\\"},\\\"moduleNameMapper\\\":{\\\"\\\\\\\\.(css|scss)$\\\":\\\"<rootDir>/__mocks__/styleMock.ts\\\",\\\"\\\\\\\\.(svg)$\\\":\\\"<rootDir>/__mocks__/imageMock.ts\\\",\\\"src/(.*)\\\":\\\"<rootDir>/__mocks__/windowMock.ts\\\"},\\\"modulePathIgnorePatterns\\\":[\\\"<rootDir>/dist\\\",\\\"<rootDir>/src/extensions/npm\\\"],\\\"setupFiles\\\":[\\\"<rootDir>/src/jest.setup.ts\\\",\\\"jest-canvas-mock\\\"]},\\\"build\\\":{\\\"generateUpdatesFilesForAllChannels\\\":true,\\\"files\\\":[\\\"static/build/main.js\\\"],\\\"afterSign\\\":\\\"build/notarize.js\\\",\\\"extraResources\\\":[{\\\"from\\\":\\\"locales/\\\",\\\"to\\\":\\\"locales/\\\",\\\"filter\\\":\\\"**/*.js\\\"},{\\\"from\\\":\\\"static/\\\",\\\"to\\\":\\\"static/\\\",\\\"filter\\\":\\\"!**/main.js\\\"},{\\\"from\\\":\\\"build/tray\\\",\\\"to\\\":\\\"static/icons\\\",\\\"filter\\\":\\\"*.png\\\"},{\\\"from\\\":\\\"extensions/\\\",\\\"to\\\":\\\"./extensions/\\\",\\\"filter\\\":[\\\"**/*.tgz\\\",\\\"**/package.json\\\",\\\"!**/node_modules\\\"]},{\\\"from\\\":\\\"templates/\\\",\\\"to\\\":\\\"./templates/\\\",\\\"filter\\\":\\\"**/*.yaml\\\"},\\\"LICENSE\\\"],\\\"linux\\\":{\\\"category\\\":\\\"Network\\\",\\\"artifactName\\\":\\\"${productName}-${version}.${arch}.${ext}\\\",\\\"target\\\":[\\\"deb\\\",\\\"rpm\\\",\\\"AppImage\\\"],\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/linux/${arch}/kubectl\\\",\\\"to\\\":\\\"./${arch}/kubectl\\\"},{\\\"from\\\":\\\"binaries/client/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"mac\\\":{\\\"hardenedRuntime\\\":true,\\\"gatekeeperAssess\\\":false,\\\"entitlements\\\":\\\"build/entitlements.mac.plist\\\",\\\"entitlementsInherit\\\":\\\"build/entitlements.mac.plist\\\",\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/darwin/${arch}/kubectl\\\",\\\"to\\\":\\\"./${arch}/kubectl\\\"},{\\\"from\\\":\\\"binaries/client/${arch}/helm3/helm3\\\",\\\"to\\\":\\\"./helm3/helm3\\\"}]},\\\"win\\\":{\\\"target\\\":[\\\"nsis\\\"],\\\"extraResources\\\":[{\\\"from\\\":\\\"binaries/client/windows/x64/kubectl.exe\\\",\\\"to\\\":\\\"./x64/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/windows/ia32/kubectl.exe\\\",\\\"to\\\":\\\"./ia32/kubectl.exe\\\"},{\\\"from\\\":\\\"binaries/client/x64/helm3/helm3.exe\\\",\\\"to\\\":\\\"./helm3/helm3.exe\\\"}]},\\\"nsis\\\":{\\\"include\\\":\\\"build/installer.nsh\\\",\\\"oneClick\\\":false,\\\"allowToChangeInstallationDirectory\\\":true},\\\"protocols\\\":{\\\"name\\\":\\\"Lens Protocol Handler\\\",\\\"schemes\\\":[\\\"lens\\\"],\\\"role\\\":\\\"Viewer\\\"}},\\\"dependencies\\\":{\\\"@electron/remote\\\":\\\"^1.2.1\\\",\\\"@hapi/call\\\":\\\"^8.0.1\\\",\\\"@hapi/subtext\\\":\\\"^7.0.3\\\",\\\"@kubernetes/client-node\\\":\\\"^0.15.1\\\",\\\"@sentry/electron\\\":\\\"^2.5.0\\\",\\\"@sentry/integrations\\\":\\\"^6.10.0\\\",\\\"abort-controller\\\":\\\"^3.0.0\\\",\\\"array-move\\\":\\\"^3.0.1\\\",\\\"auto-bind\\\":\\\"^4.0.0\\\",\\\"autobind-decorator\\\":\\\"^2.4.0\\\",\\\"await-lock\\\":\\\"^2.1.0\\\",\\\"byline\\\":\\\"^5.0.0\\\",\\\"chalk\\\":\\\"^4.1.0\\\",\\\"chokidar\\\":\\\"^3.4.3\\\",\\\"command-exists\\\":\\\"1.2.9\\\",\\\"conf\\\":\\\"^7.1.2\\\",\\\"crypto-js\\\":\\\"^4.1.1\\\",\\\"electron-devtools-installer\\\":\\\"^3.2.0\\\",\\\"electron-updater\\\":\\\"^4.6.0\\\",\\\"electron-window-state\\\":\\\"^5.0.3\\\",\\\"filehound\\\":\\\"^1.17.4\\\",\\\"fs-extra\\\":\\\"^9.0.1\\\",\\\"glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"got\\\":\\\"^11.8.2\\\",\\\"grapheme-splitter\\\":\\\"^1.0.4\\\",\\\"handlebars\\\":\\\"^4.7.7\\\",\\\"http-proxy\\\":\\\"^1.18.1\\\",\\\"immer\\\":\\\"^8.0.4\\\",\\\"joi\\\":\\\"^17.4.2\\\",\\\"js-yaml\\\":\\\"^3.14.0\\\",\\\"jsdom\\\":\\\"^16.7.0\\\",\\\"jsonpath\\\":\\\"^1.1.1\\\",\\\"lodash\\\":\\\"^4.17.15\\\",\\\"mac-ca\\\":\\\"^1.0.6\\\",\\\"marked\\\":\\\"^2.0.3\\\",\\\"md5-file\\\":\\\"^5.0.0\\\",\\\"mobx\\\":\\\"^6.3.0\\\",\\\"mobx-observable-history\\\":\\\"^2.0.1\\\",\\\"mobx-react\\\":\\\"^7.2.0\\\",\\\"mock-fs\\\":\\\"^4.14.0\\\",\\\"moment\\\":\\\"^2.29.1\\\",\\\"moment-timezone\\\":\\\"^0.5.33\\\",\\\"monaco-editor\\\":\\\"^0.26.1\\\",\\\"node-fetch\\\":\\\"^2.6.1\\\",\\\"node-pty\\\":\\\"^0.10.1\\\",\\\"npm\\\":\\\"^6.14.15\\\",\\\"p-limit\\\":\\\"^3.1.0\\\",\\\"path-to-regexp\\\":\\\"^6.2.0\\\",\\\"proper-lockfile\\\":\\\"^4.1.2\\\",\\\"react\\\":\\\"^17.0.2\\\",\\\"react-dom\\\":\\\"^17.0.2\\\",\\\"react-material-ui-carousel\\\":\\\"^2.3.1\\\",\\\"react-monaco-editor\\\":\\\"^0.44.0\\\",\\\"react-router\\\":\\\"^5.2.0\\\",\\\"react-virtualized-auto-sizer\\\":\\\"^1.0.6\\\",\\\"readable-stream\\\":\\\"^3.6.0\\\",\\\"request\\\":\\\"^2.88.2\\\",\\\"request-promise-native\\\":\\\"^1.0.9\\\",\\\"rfc6902\\\":\\\"^4.0.2\\\",\\\"semver\\\":\\\"^7.3.2\\\",\\\"serializr\\\":\\\"^2.0.5\\\",\\\"shell-env\\\":\\\"^3.0.1\\\",\\\"spdy\\\":\\\"^4.0.2\\\",\\\"tar\\\":\\\"^6.1.10\\\",\\\"tcp-port-used\\\":\\\"^1.0.2\\\",\\\"tempy\\\":\\\"1.0.1\\\",\\\"url-parse\\\":\\\"^1.5.3\\\",\\\"uuid\\\":\\\"^8.3.2\\\",\\\"win-ca\\\":\\\"^3.4.5\\\",\\\"winston\\\":\\\"^3.3.3\\\",\\\"winston-console-format\\\":\\\"^1.0.8\\\",\\\"winston-transport-browserconsole\\\":\\\"^1.0.5\\\",\\\"ws\\\":\\\"^7.4.6\\\"},\\\"devDependencies\\\":{\\\"@emeraldpay/hashicon-react\\\":\\\"^0.4.0\\\",\\\"@material-ui/core\\\":\\\"^4.12.3\\\",\\\"@material-ui/icons\\\":\\\"^4.11.2\\\",\\\"@material-ui/lab\\\":\\\"^4.0.0-alpha.60\\\",\\\"@pmmmwh/react-refresh-webpack-plugin\\\":\\\"^0.4.3\\\",\\\"@sentry/react\\\":\\\"^6.8.0\\\",\\\"@sentry/types\\\":\\\"^6.8.0\\\",\\\"@testing-library/dom\\\":\\\"^8.2.0\\\",\\\"@testing-library/jest-dom\\\":\\\"^5.14.1\\\",\\\"@testing-library/react\\\":\\\"^11.2.6\\\",\\\"@testing-library/user-event\\\":\\\"^13.2.1\\\",\\\"@types/byline\\\":\\\"^4.2.32\\\",\\\"@types/chart.js\\\":\\\"^2.9.34\\\",\\\"@types/color\\\":\\\"^3.0.2\\\",\\\"@types/crypto-js\\\":\\\"^3.1.47\\\",\\\"@types/dompurify\\\":\\\"^2.0.2\\\",\\\"@types/electron-devtools-installer\\\":\\\"^2.2.0\\\",\\\"@types/fs-extra\\\":\\\"^9.0.1\\\",\\\"@types/glob-to-regexp\\\":\\\"^0.4.1\\\",\\\"@types/hapi\\\":\\\"^18.0.6\\\",\\\"@types/hoist-non-react-statics\\\":\\\"^3.3.1\\\",\\\"@types/html-webpack-plugin\\\":\\\"^3.2.6\\\",\\\"@types/http-proxy\\\":\\\"^1.17.7\\\",\\\"@types/jest\\\":\\\"^26.0.24\\\",\\\"@types/js-yaml\\\":\\\"^3.12.4\\\",\\\"@types/jsdom\\\":\\\"^16.2.4\\\",\\\"@types/jsonpath\\\":\\\"^0.2.0\\\",\\\"@types/lodash\\\":\\\"^4.14.155\\\",\\\"@types/marked\\\":\\\"^2.0.4\\\",\\\"@types/md5-file\\\":\\\"^4.0.2\\\",\\\"@types/mini-css-extract-plugin\\\":\\\"^0.9.1\\\",\\\"@types/mock-fs\\\":\\\"^4.13.1\\\",\\\"@types/module-alias\\\":\\\"^2.0.1\\\",\\\"@types/node\\\":\\\"14.17.14\\\",\\\"@types/node-fetch\\\":\\\"^2.5.12\\\",\\\"@types/npm\\\":\\\"^2.0.32\\\",\\\"@types/progress-bar-webpack-plugin\\\":\\\"^2.1.2\\\",\\\"@types/proper-lockfile\\\":\\\"^4.1.2\\\",\\\"@types/randomcolor\\\":\\\"^0.5.6\\\",\\\"@types/react\\\":\\\"^17.0.0\\\",\\\"@types/react-beautiful-dnd\\\":\\\"^13.1.1\\\",\\\"@types/react-dom\\\":\\\"^17.0.9\\\",\\\"@types/react-router-dom\\\":\\\"^5.3.1\\\",\\\"@types/react-select\\\":\\\"3.1.2\\\",\\\"@types/react-table\\\":\\\"^7.7.6\\\",\\\"@types/react-virtualized-auto-sizer\\\":\\\"^1.0.1\\\",\\\"@types/react-window\\\":\\\"^1.8.5\\\",\\\"@types/readable-stream\\\":\\\"^2.3.9\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/request-promise-native\\\":\\\"^1.0.18\\\",\\\"@types/semver\\\":\\\"^7.2.0\\\",\\\"@types/sharp\\\":\\\"^0.28.3\\\",\\\"@types/spdy\\\":\\\"^3.4.4\\\",\\\"@types/tar\\\":\\\"^4.0.5\\\",\\\"@types/tcp-port-used\\\":\\\"^1.0.0\\\",\\\"@types/tempy\\\":\\\"^0.3.0\\\",\\\"@types/triple-beam\\\":\\\"^1.3.2\\\",\\\"@types/url-parse\\\":\\\"^1.4.3\\\",\\\"@types/uuid\\\":\\\"^8.3.1\\\",\\\"@types/webdriverio\\\":\\\"^4.13.0\\\",\\\"@types/webpack\\\":\\\"^4.41.31\\\",\\\"@types/webpack-dev-server\\\":\\\"^3.11.6\\\",\\\"@types/webpack-env\\\":\\\"^1.16.2\\\",\\\"@types/webpack-node-externals\\\":\\\"^1.7.1\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^4.33.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^4.29.1\\\",\\\"ansi_up\\\":\\\"^5.0.1\\\",\\\"chart.js\\\":\\\"^2.9.4\\\",\\\"circular-dependency-plugin\\\":\\\"^5.2.2\\\",\\\"color\\\":\\\"^3.1.2\\\",\\\"concurrently\\\":\\\"^5.2.0\\\",\\\"css-loader\\\":\\\"^5.2.7\\\",\\\"deepdash\\\":\\\"^5.3.9\\\",\\\"dompurify\\\":\\\"^2.3.1\\\",\\\"electron\\\":\\\"^13.5.1\\\",\\\"electron-builder\\\":\\\"^22.11.11\\\",\\\"electron-notarize\\\":\\\"^0.3.0\\\",\\\"esbuild\\\":\\\"^0.12.24\\\",\\\"esbuild-loader\\\":\\\"^2.15.1\\\",\\\"eslint\\\":\\\"^7.32.0\\\",\\\"eslint-plugin-header\\\":\\\"^3.1.1\\\",\\\"eslint-plugin-react\\\":\\\"^7.24.0\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.2.0\\\",\\\"eslint-plugin-unused-imports\\\":\\\"^1.0.1\\\",\\\"file-loader\\\":\\\"^6.2.0\\\",\\\"flex.box\\\":\\\"^3.4.4\\\",\\\"fork-ts-checker-webpack-plugin\\\":\\\"^5.2.1\\\",\\\"hoist-non-react-statics\\\":\\\"^3.3.2\\\",\\\"html-webpack-plugin\\\":\\\"^4.5.2\\\",\\\"identity-obj-proxy\\\":\\\"^3.0.0\\\",\\\"include-media\\\":\\\"^1.4.9\\\",\\\"jest\\\":\\\"26.6.3\\\",\\\"jest-canvas-mock\\\":\\\"^2.3.1\\\",\\\"jest-fetch-mock\\\":\\\"^3.0.3\\\",\\\"jest-mock-extended\\\":\\\"^1.0.16\\\",\\\"make-plural\\\":\\\"^6.2.2\\\",\\\"mini-css-extract-plugin\\\":\\\"^1.6.2\\\",\\\"node-gyp\\\":\\\"7.1.2\\\",\\\"node-loader\\\":\\\"^1.0.3\\\",\\\"nodemon\\\":\\\"^2.0.12\\\",\\\"playwright\\\":\\\"^1.14.0\\\",\\\"postcss\\\":\\\"^8.3.6\\\",\\\"postcss-loader\\\":\\\"4.3.0\\\",\\\"postinstall-postinstall\\\":\\\"^2.1.0\\\",\\\"prettier\\\":\\\"^2.4.1\\\",\\\"progress-bar-webpack-plugin\\\":\\\"^2.1.0\\\",\\\"randomcolor\\\":\\\"^0.6.2\\\",\\\"raw-loader\\\":\\\"^4.0.2\\\",\\\"react-beautiful-dnd\\\":\\\"^13.1.0\\\",\\\"react-refresh\\\":\\\"^0.9.0\\\",\\\"react-router-dom\\\":\\\"^5.2.0\\\",\\\"react-select\\\":\\\"3.2.0\\\",\\\"react-select-event\\\":\\\"^5.1.0\\\",\\\"react-table\\\":\\\"^7.7.0\\\",\\\"react-window\\\":\\\"^1.8.5\\\",\\\"sass\\\":\\\"^1.41.1\\\",\\\"sass-loader\\\":\\\"^8.0.2\\\",\\\"sharp\\\":\\\"^0.29.1\\\",\\\"style-loader\\\":\\\"^2.0.0\\\",\\\"tailwindcss\\\":\\\"^2.2.4\\\",\\\"ts-jest\\\":\\\"26.5.6\\\",\\\"ts-loader\\\":\\\"^7.0.5\\\",\\\"ts-node\\\":\\\"^10.2.1\\\",\\\"type-fest\\\":\\\"^1.0.2\\\",\\\"typed-emitter\\\":\\\"^1.3.1\\\",\\\"typedoc\\\":\\\"0.22.5\\\",\\\"typedoc-plugin-markdown\\\":\\\"^3.9.0\\\",\\\"typeface-roboto\\\":\\\"^1.1.13\\\",\\\"typescript\\\":\\\"^4.4.3\\\",\\\"typescript-plugin-css-modules\\\":\\\"^3.4.0\\\",\\\"url-loader\\\":\\\"^4.1.1\\\",\\\"webpack\\\":\\\"^4.46.0\\\",\\\"webpack-cli\\\":\\\"^3.3.12\\\",\\\"webpack-dev-server\\\":\\\"^3.11.2\\\",\\\"webpack-node-externals\\\":\\\"^1.7.2\\\",\\\"what-input\\\":\\\"^5.2.10\\\",\\\"xterm\\\":\\\"^4.12.0\\\",\\\"xterm-addon-fit\\\":\\\"^0.5.0\\\"}}\");\n\n//# sourceURL=webpack:///./package.json?");
36836
36910
 
36837
36911
  /***/ }),
36838
36912
 
@@ -37192,7 +37266,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
37192
37266
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
37193
37267
 
37194
37268
  "use strict";
37195
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomResourceDefinition\", function() { return CustomResourceDefinition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"crdApi\", function() { return crdApi; });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _routes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../routes */ \"./src/common/routes/index.ts\");\n/* harmony import */ var _utils_cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\nclass CustomResourceDefinition extends _kube_object__WEBPACK_IMPORTED_MODULE_0__[\"KubeObject\"] {\n getResourceUrl() {\n return Object(_routes__WEBPACK_IMPORTED_MODULE_2__[\"crdResourcesURL\"])({\n params: {\n group: this.getGroup(),\n name: this.getPluralName(),\n }\n });\n }\n getResourceApiBase() {\n const { group } = this.spec;\n return `/apis/${group}/${this.getVersion()}/${this.getPluralName()}`;\n }\n getPluralName() {\n return this.getNames().plural;\n }\n getResourceKind() {\n return this.spec.names.kind;\n }\n getResourceTitle() {\n const name = this.getPluralName();\n return name[0].toUpperCase() + name.substr(1);\n }\n getGroup() {\n return this.spec.group;\n }\n getScope() {\n return this.spec.scope;\n }\n getVersion() {\n var _a, _b, _c;\n // v1 has removed the spec.version property, if it is present it must match the first version\n return (_c = (_b = (_a = this.spec.versions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : this.spec.version;\n }\n isNamespaced() {\n return this.getScope() === \"Namespaced\";\n }\n getStoredVersions() {\n return this.status.storedVersions.join(\", \");\n }\n getNames() {\n return this.spec.names;\n }\n getConversion() {\n return JSON.stringify(this.spec.conversion);\n }\n getPrinterColumns(ignorePriority = true) {\n var _a, _b, _c, _d, _e;\n const columns = (_e = (_c = (_b = (_a = this.spec.versions) === null || _a === void 0 ? void 0 : _a.find(a => this.getVersion() == a.name)) === null || _b === void 0 ? void 0 : _b.additionalPrinterColumns) !== null && _c !== void 0 ? _c : (_d = this.spec.additionalPrinterColumns) === null || _d === void 0 ? void 0 : _d.map((_a) => {\n var { JSONPath } = _a, rest = __rest(_a, [\"JSONPath\"]);\n return (Object.assign(Object.assign({}, rest), { jsonPath: JSONPath }));\n }) // map to V1 shape\n ) !== null && _e !== void 0 ? _e : [];\n return columns\n .filter(column => column.name != \"Age\")\n .filter(column => ignorePriority ? true : !column.priority);\n }\n getValidation() {\n var _a, _b, _c;\n return JSON.stringify((_a = this.spec.validation) !== null && _a !== void 0 ? _a : (_c = (_b = this.spec.versions) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.schema, null, 2);\n }\n getConditions() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions))\n return [];\n return this.status.conditions.map(condition => {\n const { message, reason, lastTransitionTime, status } = condition;\n return Object.assign(Object.assign({}, condition), { isReady: status === \"True\", tooltip: `${message || reason} (${lastTransitionTime})` });\n });\n }\n}\nObject.defineProperty(CustomResourceDefinition, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"CustomResourceDefinition\"\n});\nObject.defineProperty(CustomResourceDefinition, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(CustomResourceDefinition, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apiextensions.k8s.io/v1/customresourcedefinitions\"\n});\n/**\n * Only available within kubernetes cluster pages\n */\nlet crdApi;\nif (Object(_utils_cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_3__[\"isClusterPageContext\"])()) {\n crdApi = new _kube_api__WEBPACK_IMPORTED_MODULE_1__[\"KubeApi\"]({\n objectConstructor: CustomResourceDefinition,\n checkPreferredVersion: true,\n });\n}\n\n\n\n//# sourceURL=webpack:///./src/common/k8s-api/endpoints/crd.api.ts?");
37269
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomResourceDefinition\", function() { return CustomResourceDefinition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"crdApi\", function() { return crdApi; });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _routes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../routes */ \"./src/common/routes/index.ts\");\n/* harmony import */ var _utils_cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\nclass CustomResourceDefinition extends _kube_object__WEBPACK_IMPORTED_MODULE_0__[\"KubeObject\"] {\n constructor(data) {\n super(data);\n if (!data.spec || typeof data.spec !== \"object\") {\n throw new _kube_object__WEBPACK_IMPORTED_MODULE_0__[\"KubeCreationError\"](\"Cannot create a CustomResourceDefinition from an object without spec\", data);\n }\n }\n getResourceUrl() {\n return Object(_routes__WEBPACK_IMPORTED_MODULE_2__[\"crdResourcesURL\"])({\n params: {\n group: this.getGroup(),\n name: this.getPluralName(),\n }\n });\n }\n getResourceApiBase() {\n const { group } = this.spec;\n return `/apis/${group}/${this.getVersion()}/${this.getPluralName()}`;\n }\n getPluralName() {\n return this.getNames().plural;\n }\n getResourceKind() {\n return this.spec.names.kind;\n }\n getResourceTitle() {\n const name = this.getPluralName();\n return name[0].toUpperCase() + name.substr(1);\n }\n getGroup() {\n return this.spec.group;\n }\n getScope() {\n return this.spec.scope;\n }\n getPreferedVersion() {\n // Prefer the modern `versions` over the legacy `version`\n if (this.spec.versions) {\n for (const version of this.spec.versions) {\n /**\n * If the version is not served then 404 errors will occur\n * We should also prefer the storage version\n */\n if (version.served && version.storage) {\n return version;\n }\n }\n }\n else if (this.spec.version) {\n const { additionalPrinterColumns: apc } = this.spec;\n const additionalPrinterColumns = apc === null || apc === void 0 ? void 0 : apc.map((_a) => {\n var { JSONPath } = _a, apc = __rest(_a, [\"JSONPath\"]);\n return (Object.assign(Object.assign({}, apc), { jsonPath: JSONPath }));\n });\n return {\n name: this.spec.version,\n served: true,\n storage: true,\n schema: this.spec.validation,\n additionalPrinterColumns,\n };\n }\n throw new Error(`Failed to find a version for CustomResourceDefinition ${this.metadata.name}`);\n }\n getVersion() {\n return this.getPreferedVersion().name;\n }\n isNamespaced() {\n return this.getScope() === \"Namespaced\";\n }\n getStoredVersions() {\n return this.status.storedVersions.join(\", \");\n }\n getNames() {\n return this.spec.names;\n }\n getConversion() {\n return JSON.stringify(this.spec.conversion);\n }\n getPrinterColumns(ignorePriority = true) {\n var _a;\n const columns = (_a = this.getPreferedVersion().additionalPrinterColumns) !== null && _a !== void 0 ? _a : [];\n return columns\n .filter(column => column.name != \"Age\" && (ignorePriority || !column.priority));\n }\n getValidation() {\n return JSON.stringify(this.getPreferedVersion().schema, null, 2);\n }\n getConditions() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions))\n return [];\n return this.status.conditions.map(condition => {\n const { message, reason, lastTransitionTime, status } = condition;\n return Object.assign(Object.assign({}, condition), { isReady: status === \"True\", tooltip: `${message || reason} (${lastTransitionTime})` });\n });\n }\n}\nObject.defineProperty(CustomResourceDefinition, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"CustomResourceDefinition\"\n});\nObject.defineProperty(CustomResourceDefinition, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(CustomResourceDefinition, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apiextensions.k8s.io/v1/customresourcedefinitions\"\n});\n/**\n * Only available within kubernetes cluster pages\n */\nlet crdApi;\nif (Object(_utils_cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_3__[\"isClusterPageContext\"])()) {\n crdApi = new _kube_api__WEBPACK_IMPORTED_MODULE_1__[\"KubeApi\"]({\n objectConstructor: CustomResourceDefinition,\n checkPreferredVersion: true,\n });\n}\n\n\n\n//# sourceURL=webpack:///./src/common/k8s-api/endpoints/crd.api.ts?");
37196
37270
 
37197
37271
  /***/ }),
37198
37272
 
@@ -38172,11 +38246,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _use
38172
38246
  /*!******************************************************!*\
38173
38247
  !*** ./src/common/user-store/preferences-helpers.ts ***!
38174
38248
  \******************************************************/
38175
- /*! exports provided: defaultEditorConfig, DESCRIPTORS */
38249
+ /*! exports provided: defaultEditorConfig, DESCRIPTORS, CONSTANTS */
38176
38250
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
38177
38251
 
38178
38252
  "use strict";
38179
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultEditorConfig\", function() { return defaultEditorConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DESCRIPTORS\", function() { return DESCRIPTORS; });\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\");\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _renderer_theme_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../renderer/theme.store */ \"./src/renderer/theme.store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/merge */ \"./node_modules/lodash/merge.js\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_5__);\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\nconst defaultEditorConfig = {\n lineNumbers: \"on\",\n miniMap: {\n enabled: true\n },\n tabSize: 2\n};\nconst httpsProxy = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n return val || undefined;\n },\n};\nconst shell = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n return val || undefined;\n },\n};\nconst colorTheme = {\n fromStore(val) {\n return val || _renderer_theme_store__WEBPACK_IMPORTED_MODULE_3__[\"ThemeStore\"].defaultTheme;\n },\n toStore(val) {\n if (!val || val === _renderer_theme_store__WEBPACK_IMPORTED_MODULE_3__[\"ThemeStore\"].defaultTheme) {\n return undefined;\n }\n return val;\n },\n};\nconst localeTimezone = {\n fromStore(val) {\n return val || moment_timezone__WEBPACK_IMPORTED_MODULE_0___default.a.tz.guess(true) || \"UTC\";\n },\n toStore(val) {\n if (!val || val === moment_timezone__WEBPACK_IMPORTED_MODULE_0___default.a.tz.guess(true) || val === \"UTC\") {\n return undefined;\n }\n return val;\n },\n};\nconst allowUntrustedCAs = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : false;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst allowTelemetry = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : true;\n },\n toStore(val) {\n if (val === true) {\n return undefined;\n }\n return val;\n },\n};\nconst allowErrorReporting = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : true;\n },\n toStore(val) {\n if (val === true) {\n return undefined;\n }\n return val;\n },\n};\nconst downloadMirror = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : \"default\";\n },\n toStore(val) {\n if (!val || val === \"default\") {\n return undefined;\n }\n return val;\n },\n};\nconst downloadKubectlBinaries = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : true;\n },\n toStore(val) {\n if (val === true) {\n return undefined;\n }\n return val;\n },\n};\nconst downloadBinariesPath = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst kubectlBinariesPath = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst openAtLogin = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : false;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst terminalCopyOnSelect = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : false;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst hiddenTableColumns = {\n fromStore(val) {\n return new Map((val !== null && val !== void 0 ? val : []).map(([tableId, columnIds]) => [tableId, new _utils__WEBPACK_IMPORTED_MODULE_4__[\"ObservableToggleSet\"](columnIds)]));\n },\n toStore(val) {\n const res = [];\n for (const [table, columns] of val) {\n if (columns.size) {\n res.push([table, Array.from(columns)]);\n }\n }\n return res.length ? res : undefined;\n },\n};\nconst mainKubeFolder = path__WEBPACK_IMPORTED_MODULE_1___default.a.join(os__WEBPACK_IMPORTED_MODULE_2___default.a.homedir(), \".kube\");\nconst syncKubeconfigEntries = {\n fromStore(val) {\n var _a;\n return new Map((_a = val === null || val === void 0 ? void 0 : val.map((_a) => {\n var { filePath } = _a, rest = __rest(_a, [\"filePath\"]);\n return [filePath, rest];\n })) !== null && _a !== void 0 ? _a : [[mainKubeFolder, {}]]);\n },\n toStore(val) {\n if (val.size === 1 && val.has(mainKubeFolder)) {\n return undefined;\n }\n return Array.from(val, ([filePath, rest]) => (Object.assign({ filePath }, rest)));\n },\n};\nconst editorConfiguration = {\n fromStore(val) {\n return lodash_merge__WEBPACK_IMPORTED_MODULE_5___default()(defaultEditorConfig, val);\n },\n toStore(val) {\n return val;\n },\n};\nconst DESCRIPTORS = {\n httpsProxy,\n shell,\n colorTheme,\n localeTimezone,\n allowUntrustedCAs,\n allowTelemetry,\n allowErrorReporting,\n downloadMirror,\n downloadKubectlBinaries,\n downloadBinariesPath,\n kubectlBinariesPath,\n openAtLogin,\n hiddenTableColumns,\n syncKubeconfigEntries,\n editorConfiguration,\n terminalCopyOnSelect,\n};\n\n\n//# sourceURL=webpack:///./src/common/user-store/preferences-helpers.ts?");
38253
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultEditorConfig\", function() { return defaultEditorConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DESCRIPTORS\", function() { return DESCRIPTORS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() { return CONSTANTS; });\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\");\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _renderer_theme_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../renderer/theme.store */ \"./src/renderer/theme.store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/merge */ \"./node_modules/lodash/merge.js\");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_5__);\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\nconst defaultEditorConfig = {\n lineNumbers: \"on\",\n miniMap: {\n enabled: true\n },\n tabSize: 2\n};\nconst httpsProxy = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n return val || undefined;\n },\n};\nconst shell = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n return val || undefined;\n },\n};\nconst colorTheme = {\n fromStore(val) {\n return val || _renderer_theme_store__WEBPACK_IMPORTED_MODULE_3__[\"ThemeStore\"].defaultTheme;\n },\n toStore(val) {\n if (!val || val === _renderer_theme_store__WEBPACK_IMPORTED_MODULE_3__[\"ThemeStore\"].defaultTheme) {\n return undefined;\n }\n return val;\n },\n};\nconst localeTimezone = {\n fromStore(val) {\n return val || moment_timezone__WEBPACK_IMPORTED_MODULE_0___default.a.tz.guess(true) || \"UTC\";\n },\n toStore(val) {\n if (!val || val === moment_timezone__WEBPACK_IMPORTED_MODULE_0___default.a.tz.guess(true) || val === \"UTC\") {\n return undefined;\n }\n return val;\n },\n};\nconst allowUntrustedCAs = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : false;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst allowTelemetry = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : true;\n },\n toStore(val) {\n if (val === true) {\n return undefined;\n }\n return val;\n },\n};\nconst allowErrorReporting = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : true;\n },\n toStore(val) {\n if (val === true) {\n return undefined;\n }\n return val;\n },\n};\nconst downloadMirror = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : \"default\";\n },\n toStore(val) {\n if (!val || val === \"default\") {\n return undefined;\n }\n return val;\n },\n};\nconst downloadKubectlBinaries = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : true;\n },\n toStore(val) {\n if (val === true) {\n return undefined;\n }\n return val;\n },\n};\nconst downloadBinariesPath = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst kubectlBinariesPath = {\n fromStore(val) {\n return val;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst openAtLogin = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : false;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst terminalCopyOnSelect = {\n fromStore(val) {\n return val !== null && val !== void 0 ? val : false;\n },\n toStore(val) {\n if (!val) {\n return undefined;\n }\n return val;\n },\n};\nconst hiddenTableColumns = {\n fromStore(val) {\n return new Map((val !== null && val !== void 0 ? val : []).map(([tableId, columnIds]) => [tableId, new _utils__WEBPACK_IMPORTED_MODULE_4__[\"ObservableToggleSet\"](columnIds)]));\n },\n toStore(val) {\n const res = [];\n for (const [table, columns] of val) {\n if (columns.size) {\n res.push([table, Array.from(columns)]);\n }\n }\n return res.length ? res : undefined;\n },\n};\nconst mainKubeFolder = path__WEBPACK_IMPORTED_MODULE_1___default.a.join(os__WEBPACK_IMPORTED_MODULE_2___default.a.homedir(), \".kube\");\nconst syncKubeconfigEntries = {\n fromStore(val) {\n var _a;\n return new Map((_a = val === null || val === void 0 ? void 0 : val.map((_a) => {\n var { filePath } = _a, rest = __rest(_a, [\"filePath\"]);\n return [filePath, rest];\n })) !== null && _a !== void 0 ? _a : [[mainKubeFolder, {}]]);\n },\n toStore(val) {\n if (val.size === 1 && val.has(mainKubeFolder)) {\n return undefined;\n }\n return Array.from(val, ([filePath, rest]) => (Object.assign({ filePath }, rest)));\n },\n};\nconst editorConfiguration = {\n fromStore(val) {\n return lodash_merge__WEBPACK_IMPORTED_MODULE_5___default()(defaultEditorConfig, val);\n },\n toStore(val) {\n return val;\n },\n};\nconst defaultUpdateChannel = \"latest\";\nconst updateChannels = new Map([\n [defaultUpdateChannel, {\n label: \"Stable\"\n }],\n [\"beta\", {\n label: \"Beta\"\n }],\n [\"alpha\", {\n label: \"Alpha\"\n }],\n]);\nconst updateChannel = {\n fromStore(val) {\n return updateChannels.has(val) ? val : defaultUpdateChannel;\n },\n toStore(val) {\n if (!updateChannels.has(val) || val === defaultUpdateChannel) {\n return undefined;\n }\n return val;\n }\n};\nconst DESCRIPTORS = {\n httpsProxy,\n shell,\n colorTheme,\n localeTimezone,\n allowUntrustedCAs,\n allowTelemetry,\n allowErrorReporting,\n downloadMirror,\n downloadKubectlBinaries,\n downloadBinariesPath,\n kubectlBinariesPath,\n openAtLogin,\n hiddenTableColumns,\n syncKubeconfigEntries,\n editorConfiguration,\n terminalCopyOnSelect,\n updateChannel,\n};\nconst CONSTANTS = {\n defaultUpdateChannel,\n updateChannels,\n};\n\n\n//# sourceURL=webpack:///./src/common/user-store/preferences-helpers.ts?");
38180
38254
 
38181
38255
  /***/ }),
38182
38256
 
@@ -38188,7 +38262,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
38188
38262
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
38189
38263
 
38190
38264
  "use strict";
38191
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserStore\", function() { return UserStore; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDefaultKubectlDownloadPath\", function() { return getDefaultKubectlDownloadPath; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _base_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base-store */ \"./src/common/base-store.ts\");\n/* harmony import */ var _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../migrations/user-store */ \"./src/migrations/user-store/index.ts\");\n/* harmony import */ var _utils_app_version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _kube_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _event_bus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../event-bus */ \"./src/common/event-bus.ts\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./preferences-helpers */ \"./src/common/user-store/preferences-helpers.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _utils_getPath__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/getPath */ \"./src/common/utils/getPath.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass UserStore extends _base_store__WEBPACK_IMPORTED_MODULE_3__[\"BaseStore\"] /* implements UserStoreFlatModel (when strict null is enabled) */ {\n constructor() {\n super({\n configName: \"lens-user-store\",\n migrations: _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n });\n Object.defineProperty(this, \"lastSeenAppVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"0.0.0\"\n });\n /**\n * used in add-cluster page for providing context\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: _kube_helpers__WEBPACK_IMPORTED_MODULE_6__[\"kubeConfigDefaultPath\"]\n });\n Object.defineProperty(this, \"seenContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"newContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"allowTelemetry\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowErrorReporting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowUntrustedCAs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"colorTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"localeTimezone\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadMirror\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"httpsProxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shell\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubectlBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalCopyOnSelect\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Download kubectl binaries matching cluster version\n */\n Object.defineProperty(this, \"downloadKubectlBinaries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"openAtLogin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The column IDs under each configurable table ID that have been configured\n * to not be shown\n */\n Object.defineProperty(this, \"hiddenTableColumns\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n /**\n * Monaco editor configs\n */\n Object.defineProperty(this, \"editorConfiguration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: { tabSize: null, miniMap: null, lineNumbers: null }\n });\n /**\n * The set of file/folder paths to be synced\n */\n Object.defineProperty(this, \"syncKubeconfigEntries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcMain\"]) {\n Object(_migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"fileNameMigration\"])();\n }\n this.load();\n }\n get isNewVersion() {\n return semver__WEBPACK_IMPORTED_MODULE_1___default.a.gt(Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])(), this.lastSeenAppVersion);\n }\n get resolvedShell() {\n return this.shell || process.env.SHELL || process.env.PTYSHELL;\n }\n startMainReactions() {\n // track telemetry availability\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.allowTelemetry, allowed => {\n _event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"telemetry\", action: allowed ? \"enabled\" : \"disabled\" });\n });\n // open at system start-up\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.openAtLogin, openAtLogin => {\n electron__WEBPACK_IMPORTED_MODULE_0__[\"app\"].setLoginItemSettings({\n openAtLogin,\n openAsHidden: true,\n args: [\"--hidden\"]\n });\n }, {\n fireImmediately: true,\n });\n }\n // Returns monaco editor options for selected editor type (the place, where a particular instance of the editor is mounted)\n getEditorOptions() {\n return {\n automaticLayout: true,\n tabSize: this.editorConfiguration.tabSize,\n minimap: this.editorConfiguration.miniMap,\n lineNumbers: this.editorConfiguration.lineNumbers\n };\n }\n setEditorLineNumbers(lineNumbers) {\n this.editorConfiguration.lineNumbers = lineNumbers;\n }\n setEditorTabSize(tabSize) {\n this.editorConfiguration.tabSize = tabSize;\n }\n enableEditorMinimap(miniMap) {\n this.editorConfiguration.miniMap.enabled = miniMap;\n }\n /**\n * Checks if a column (by ID) for a table (by ID) is configured to be hidden\n * @param tableId The ID of the table to be checked against\n * @param columnIds The list of IDs the check if one is hidden\n * @returns true if at least one column under the table is set to hidden\n */\n isTableColumnHidden(tableId, ...columnIds) {\n if (columnIds.length === 0) {\n return false;\n }\n const config = this.hiddenTableColumns.get(tableId);\n if (!config) {\n return false;\n }\n return columnIds.some(columnId => config.has(columnId));\n }\n /**\n * Toggles the hidden configuration of a table's column\n */\n toggleTableColumnVisibility(tableId, columnId) {\n if (!this.hiddenTableColumns.get(tableId)) {\n this.hiddenTableColumns.set(tableId, new _renderer_utils__WEBPACK_IMPORTED_MODULE_9__[\"ObservableToggleSet\"]());\n }\n this.hiddenTableColumns.get(tableId).toggle(columnId);\n }\n resetTheme() {\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].colorTheme.fromStore(undefined);\n }\n saveLastSeenAppVersion() {\n _event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"app\", action: \"whats-new-seen\" });\n this.lastSeenAppVersion = Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])();\n }\n setLocaleTimezone(tz) {\n this.localeTimezone = tz;\n }\n fromStore({ lastSeenAppVersion, preferences } = {}) {\n _main_logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].debug(\"UserStore.fromStore()\", { lastSeenAppVersion, preferences });\n if (lastSeenAppVersion) {\n this.lastSeenAppVersion = lastSeenAppVersion;\n }\n this.httpsProxy = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].httpsProxy.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.httpsProxy);\n this.shell = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].shell.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.shell);\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].colorTheme.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.colorTheme);\n this.localeTimezone = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].localeTimezone.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.localeTimezone);\n this.allowUntrustedCAs = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowUntrustedCAs.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowUntrustedCAs);\n this.allowTelemetry = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowTelemetry.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowTelemetry);\n this.allowErrorReporting = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowErrorReporting.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowErrorReporting);\n this.downloadMirror = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadMirror.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadMirror);\n this.downloadKubectlBinaries = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadKubectlBinaries.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadKubectlBinaries);\n this.downloadBinariesPath = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadBinariesPath.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadBinariesPath);\n this.kubectlBinariesPath = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].kubectlBinariesPath.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.kubectlBinariesPath);\n this.openAtLogin = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].openAtLogin.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.openAtLogin);\n this.hiddenTableColumns.replace(_preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].hiddenTableColumns.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.hiddenTableColumns));\n this.syncKubeconfigEntries.replace(_preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].syncKubeconfigEntries.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.syncKubeconfigEntries));\n this.editorConfiguration = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].editorConfiguration.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.editorConfiguration);\n this.terminalCopyOnSelect = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].terminalCopyOnSelect.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.terminalCopyOnSelect);\n }\n toJSON() {\n const model = {\n lastSeenAppVersion: this.lastSeenAppVersion,\n preferences: {\n httpsProxy: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].httpsProxy.toStore(this.httpsProxy),\n shell: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].shell.toStore(this.shell),\n colorTheme: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].colorTheme.toStore(this.colorTheme),\n localeTimezone: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].localeTimezone.toStore(this.localeTimezone),\n allowUntrustedCAs: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowUntrustedCAs.toStore(this.allowUntrustedCAs),\n allowTelemetry: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowTelemetry.toStore(this.allowTelemetry),\n allowErrorReporting: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowErrorReporting.toStore(this.allowErrorReporting),\n downloadMirror: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadMirror.toStore(this.downloadMirror),\n downloadKubectlBinaries: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadKubectlBinaries.toStore(this.downloadKubectlBinaries),\n downloadBinariesPath: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadBinariesPath.toStore(this.downloadBinariesPath),\n kubectlBinariesPath: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].kubectlBinariesPath.toStore(this.kubectlBinariesPath),\n openAtLogin: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].openAtLogin.toStore(this.openAtLogin),\n hiddenTableColumns: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].hiddenTableColumns.toStore(this.hiddenTableColumns),\n syncKubeconfigEntries: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].syncKubeconfigEntries.toStore(this.syncKubeconfigEntries),\n editorConfiguration: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].editorConfiguration.toStore(this.editorConfiguration),\n terminalCopyOnSelect: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].terminalCopyOnSelect.toStore(this.terminalCopyOnSelect),\n },\n };\n return Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_9__[\"toJS\"])(model);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"lastSeenAppVersion\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"seenContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"newContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowTelemetry\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowErrorReporting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowUntrustedCAs\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"colorTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"localeTimezone\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadMirror\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"httpsProxy\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"shell\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"kubectlBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"terminalCopyOnSelect\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"downloadKubectlBinaries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"openAtLogin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"editorConfiguration\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isNewVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"resolvedShell\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String, String]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"toggleTableColumnVisibility\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"resetTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"saveLastSeenAppVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"setLocaleTimezone\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"fromStore\", null);\n/**\n * Getting default directory to download kubectl binaries\n * @returns string\n */\nfunction getDefaultKubectlDownloadPath() {\n return path__WEBPACK_IMPORTED_MODULE_8___default.a.join(Object(_utils_getPath__WEBPACK_IMPORTED_MODULE_12__[\"getPath\"])(\"userData\"), \"binaries\");\n}\n\n\n//# sourceURL=webpack:///./src/common/user-store/user-store.ts?");
38265
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserStore\", function() { return UserStore; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDefaultKubectlDownloadPath\", function() { return getDefaultKubectlDownloadPath; });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _base_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base-store */ \"./src/common/base-store.ts\");\n/* harmony import */ var _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../migrations/user-store */ \"./src/migrations/user-store/index.ts\");\n/* harmony import */ var _utils_app_version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _kube_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _event_bus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../event-bus */ \"./src/common/event-bus.ts\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./preferences-helpers */ \"./src/common/user-store/preferences-helpers.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _utils_getPath__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/getPath */ \"./src/common/utils/getPath.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass UserStore extends _base_store__WEBPACK_IMPORTED_MODULE_3__[\"BaseStore\"] /* implements UserStoreFlatModel (when strict null is enabled) */ {\n constructor() {\n super({\n configName: \"lens-user-store\",\n migrations: _migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n });\n Object.defineProperty(this, \"lastSeenAppVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"0.0.0\"\n });\n /**\n * used in add-cluster page for providing context\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: _kube_helpers__WEBPACK_IMPORTED_MODULE_6__[\"kubeConfigDefaultPath\"]\n });\n Object.defineProperty(this, \"seenContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"newContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].set()\n });\n Object.defineProperty(this, \"allowTelemetry\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowErrorReporting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowUntrustedCAs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"colorTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"localeTimezone\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadMirror\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"httpsProxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shell\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubectlBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalCopyOnSelect\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"updateChannel\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Download kubectl binaries matching cluster version\n */\n Object.defineProperty(this, \"downloadKubectlBinaries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"openAtLogin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The column IDs under each configurable table ID that have been configured\n * to not be shown\n */\n Object.defineProperty(this, \"hiddenTableColumns\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n /**\n * Monaco editor configs\n */\n Object.defineProperty(this, \"editorConfiguration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: { tabSize: null, miniMap: null, lineNumbers: null }\n });\n /**\n * The set of file/folder paths to be synced\n */\n Object.defineProperty(this, \"syncKubeconfigEntries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"].map()\n });\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"makeObservable\"])(this);\n if (electron__WEBPACK_IMPORTED_MODULE_0__[\"ipcMain\"]) {\n Object(_migrations_user_store__WEBPACK_IMPORTED_MODULE_4__[\"fileNameMigration\"])();\n }\n this.load();\n }\n get isNewVersion() {\n return semver__WEBPACK_IMPORTED_MODULE_1___default.a.gt(Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])(), this.lastSeenAppVersion);\n }\n get resolvedShell() {\n return this.shell || process.env.SHELL || process.env.PTYSHELL;\n }\n get isAllowedToDowngrade() {\n return this.updateChannel !== _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"CONSTANTS\"].defaultUpdateChannel;\n }\n startMainReactions() {\n // track telemetry availability\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.allowTelemetry, allowed => {\n _event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"telemetry\", action: allowed ? \"enabled\" : \"disabled\" });\n });\n // open at system start-up\n Object(mobx__WEBPACK_IMPORTED_MODULE_2__[\"reaction\"])(() => this.openAtLogin, openAtLogin => {\n electron__WEBPACK_IMPORTED_MODULE_0__[\"app\"].setLoginItemSettings({\n openAtLogin,\n openAsHidden: true,\n args: [\"--hidden\"]\n });\n }, {\n fireImmediately: true,\n });\n }\n // Returns monaco editor options for selected editor type (the place, where a particular instance of the editor is mounted)\n getEditorOptions() {\n return {\n automaticLayout: true,\n tabSize: this.editorConfiguration.tabSize,\n minimap: this.editorConfiguration.miniMap,\n lineNumbers: this.editorConfiguration.lineNumbers\n };\n }\n setEditorLineNumbers(lineNumbers) {\n this.editorConfiguration.lineNumbers = lineNumbers;\n }\n setEditorTabSize(tabSize) {\n this.editorConfiguration.tabSize = tabSize;\n }\n enableEditorMinimap(miniMap) {\n this.editorConfiguration.miniMap.enabled = miniMap;\n }\n /**\n * Checks if a column (by ID) for a table (by ID) is configured to be hidden\n * @param tableId The ID of the table to be checked against\n * @param columnIds The list of IDs the check if one is hidden\n * @returns true if at least one column under the table is set to hidden\n */\n isTableColumnHidden(tableId, ...columnIds) {\n if (columnIds.length === 0) {\n return false;\n }\n const config = this.hiddenTableColumns.get(tableId);\n if (!config) {\n return false;\n }\n return columnIds.some(columnId => config.has(columnId));\n }\n /**\n * Toggles the hidden configuration of a table's column\n */\n toggleTableColumnVisibility(tableId, columnId) {\n if (!this.hiddenTableColumns.get(tableId)) {\n this.hiddenTableColumns.set(tableId, new _renderer_utils__WEBPACK_IMPORTED_MODULE_9__[\"ObservableToggleSet\"]());\n }\n this.hiddenTableColumns.get(tableId).toggle(columnId);\n }\n resetTheme() {\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].colorTheme.fromStore(undefined);\n }\n saveLastSeenAppVersion() {\n _event_bus__WEBPACK_IMPORTED_MODULE_7__[\"appEventBus\"].emit({ name: \"app\", action: \"whats-new-seen\" });\n this.lastSeenAppVersion = Object(_utils_app_version__WEBPACK_IMPORTED_MODULE_5__[\"getAppVersion\"])();\n }\n setLocaleTimezone(tz) {\n this.localeTimezone = tz;\n }\n fromStore({ lastSeenAppVersion, preferences } = {}) {\n _main_logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].debug(\"UserStore.fromStore()\", { lastSeenAppVersion, preferences });\n if (lastSeenAppVersion) {\n this.lastSeenAppVersion = lastSeenAppVersion;\n }\n this.httpsProxy = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].httpsProxy.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.httpsProxy);\n this.shell = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].shell.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.shell);\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].colorTheme.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.colorTheme);\n this.localeTimezone = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].localeTimezone.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.localeTimezone);\n this.allowUntrustedCAs = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowUntrustedCAs.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowUntrustedCAs);\n this.allowTelemetry = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowTelemetry.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowTelemetry);\n this.allowErrorReporting = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowErrorReporting.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.allowErrorReporting);\n this.downloadMirror = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadMirror.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadMirror);\n this.downloadKubectlBinaries = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadKubectlBinaries.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadKubectlBinaries);\n this.downloadBinariesPath = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadBinariesPath.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.downloadBinariesPath);\n this.kubectlBinariesPath = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].kubectlBinariesPath.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.kubectlBinariesPath);\n this.openAtLogin = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].openAtLogin.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.openAtLogin);\n this.hiddenTableColumns.replace(_preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].hiddenTableColumns.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.hiddenTableColumns));\n this.syncKubeconfigEntries.replace(_preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].syncKubeconfigEntries.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.syncKubeconfigEntries));\n this.editorConfiguration = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].editorConfiguration.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.editorConfiguration);\n this.terminalCopyOnSelect = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].terminalCopyOnSelect.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.terminalCopyOnSelect);\n this.updateChannel = _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].updateChannel.fromStore(preferences === null || preferences === void 0 ? void 0 : preferences.updateChannel);\n }\n toJSON() {\n const model = {\n lastSeenAppVersion: this.lastSeenAppVersion,\n preferences: {\n httpsProxy: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].httpsProxy.toStore(this.httpsProxy),\n shell: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].shell.toStore(this.shell),\n colorTheme: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].colorTheme.toStore(this.colorTheme),\n localeTimezone: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].localeTimezone.toStore(this.localeTimezone),\n allowUntrustedCAs: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowUntrustedCAs.toStore(this.allowUntrustedCAs),\n allowTelemetry: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowTelemetry.toStore(this.allowTelemetry),\n allowErrorReporting: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].allowErrorReporting.toStore(this.allowErrorReporting),\n downloadMirror: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadMirror.toStore(this.downloadMirror),\n downloadKubectlBinaries: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadKubectlBinaries.toStore(this.downloadKubectlBinaries),\n downloadBinariesPath: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].downloadBinariesPath.toStore(this.downloadBinariesPath),\n kubectlBinariesPath: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].kubectlBinariesPath.toStore(this.kubectlBinariesPath),\n openAtLogin: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].openAtLogin.toStore(this.openAtLogin),\n hiddenTableColumns: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].hiddenTableColumns.toStore(this.hiddenTableColumns),\n syncKubeconfigEntries: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].syncKubeconfigEntries.toStore(this.syncKubeconfigEntries),\n editorConfiguration: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].editorConfiguration.toStore(this.editorConfiguration),\n terminalCopyOnSelect: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].terminalCopyOnSelect.toStore(this.terminalCopyOnSelect),\n updateChannel: _preferences_helpers__WEBPACK_IMPORTED_MODULE_10__[\"DESCRIPTORS\"].updateChannel.toStore(this.updateChannel),\n },\n };\n return Object(_renderer_utils__WEBPACK_IMPORTED_MODULE_9__[\"toJS\"])(model);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"lastSeenAppVersion\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"seenContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"newContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowTelemetry\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowErrorReporting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"allowUntrustedCAs\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"colorTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"localeTimezone\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadMirror\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"httpsProxy\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"shell\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"downloadBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"kubectlBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"terminalCopyOnSelect\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", String)\n], UserStore.prototype, \"updateChannel\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"downloadKubectlBinaries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Boolean)\n], UserStore.prototype, \"openAtLogin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"observable\"],\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"editorConfiguration\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isNewVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"resolvedShell\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"computed\"],\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"isAllowedToDowngrade\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String, String]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"toggleTableColumnVisibility\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"resetTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"saveLastSeenAppVersion\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"setLocaleTimezone\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_2__[\"action\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"fromStore\", null);\n/**\n * Getting default directory to download kubectl binaries\n * @returns string\n */\nfunction getDefaultKubectlDownloadPath() {\n return path__WEBPACK_IMPORTED_MODULE_8___default.a.join(Object(_utils_getPath__WEBPACK_IMPORTED_MODULE_12__[\"getPath\"])(\"userData\"), \"binaries\");\n}\n\n\n//# sourceURL=webpack:///./src/common/user-store/user-store.ts?");
38192
38266
 
38193
38267
  /***/ }),
38194
38268
 
@@ -40516,7 +40590,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
40516
40590
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
40517
40591
 
40518
40592
  "use strict";
40519
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Terminal\", function() { return Terminal; });\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xterm */ \"./node_modules/xterm/lib/xterm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(xterm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! xterm-addon-fit */ \"./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js\");\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dock_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dock.store */ \"./src/renderer/components/dock/dock.store.ts\");\n/* harmony import */ var _theme_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../theme.store */ \"./src/renderer/theme.store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _common_user_store__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../common/user-store */ \"./src/common/user-store/index.ts\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_10__);\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nclass Terminal {\n constructor(tabId, api) {\n Object.defineProperty(this, \"tabId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: tabId\n });\n Object.defineProperty(this, \"api\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: api\n });\n Object.defineProperty(this, \"xterm\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fitAddon\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"scrollPos\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"disposers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"fit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n // Since this function is debounced we need to read this value as late as possible\n if (!this.isActive)\n return;\n try {\n this.fitAddon.fit();\n const { cols, rows } = this.xterm;\n this.api.sendTerminalSize(cols, rows);\n }\n catch (error) {\n console.error(error);\n return; // see https://github.com/lensapp/lens/issues/1891\n }\n }\n });\n Object.defineProperty(this, \"fitLazy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default()(this.fit, 250)\n });\n Object.defineProperty(this, \"focus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.focus();\n }\n });\n Object.defineProperty(this, \"onApiData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n this.xterm.write(data);\n }\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n if (!this.api.isReady)\n return;\n this.api.sendCommand(data);\n }\n });\n Object.defineProperty(this, \"onScroll\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.scrollPos = this.viewport.scrollTop;\n }\n });\n Object.defineProperty(this, \"onClear\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.clear();\n }\n });\n Object.defineProperty(this, \"onResize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fitLazy();\n this.focus();\n }\n });\n Object.defineProperty(this, \"onActivate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fit();\n setTimeout(() => this.focus(), 250); // delay used to prevent focus on active tab\n this.viewport.scrollTop = this.scrollPos; // restore last scroll position\n }\n });\n Object.defineProperty(this, \"onClickLink\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt, link) => {\n window.open(link, \"_blank\");\n }\n });\n Object.defineProperty(this, \"onContextMenu\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n const { terminalCopyOnSelect } = _common_user_store__WEBPACK_IMPORTED_MODULE_9__[\"UserStore\"].getInstance();\n const textFromClipboard = electron__WEBPACK_IMPORTED_MODULE_10__[\"clipboard\"].readText();\n if (terminalCopyOnSelect) {\n this.xterm.paste(textFromClipboard);\n }\n }\n });\n Object.defineProperty(this, \"onSelectionChange\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n const { terminalCopyOnSelect } = _common_user_store__WEBPACK_IMPORTED_MODULE_9__[\"UserStore\"].getInstance();\n const selection = this.xterm.getSelection().trim();\n if (terminalCopyOnSelect && selection !== \"\") {\n electron__WEBPACK_IMPORTED_MODULE_10__[\"clipboard\"].writeText(selection);\n }\n }\n });\n Object.defineProperty(this, \"keyHandler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n const { code, ctrlKey, type, metaKey } = evt;\n // Handle custom hotkey bindings\n if (ctrlKey) {\n switch (code) {\n // Ctrl+C: prevent terminal exit on windows / linux (?)\n case \"KeyC\":\n if (this.xterm.hasSelection())\n return false;\n break;\n // Ctrl+W: prevent unexpected terminal tab closing, e.g. editing file in vim\n case \"KeyW\":\n evt.preventDefault();\n break;\n }\n }\n //Ctrl+K: clear the entire buffer, making the prompt line the new first line on mac os\n if (_common_vars__WEBPACK_IMPORTED_MODULE_7__[\"isMac\"] && metaKey) {\n switch (code) {\n case \"KeyK\":\n this.onClear();\n break;\n }\n }\n // Pass the event above in DOM for <Dock/> to handle common actions\n if (!evt.defaultPrevented) {\n this.elem.dispatchEvent(new KeyboardEvent(type, evt));\n }\n return true;\n }\n });\n this.init();\n }\n static init() {\n // terminal element must be in DOM before attaching via xterm.open(elem)\n // https://xtermjs.org/docs/api/terminal/classes/terminal/#open\n const pool = document.createElement(\"div\");\n pool.className = \"terminal-init\";\n pool.style.cssText = \"position: absolute; top: 0; left: 0; height: 0; visibility: hidden; overflow: hidden\";\n document.body.appendChild(pool);\n Terminal.spawningPool = pool;\n }\n static async preloadFonts() {\n const fontPath = __webpack_require__(/*! ../fonts/roboto-mono-nerd.ttf */ \"./src/renderer/components/fonts/roboto-mono-nerd.ttf\").default; // eslint-disable-line @typescript-eslint/no-var-requires\n const fontFace = new FontFace(\"RobotoMono\", `url(${fontPath})`);\n await fontFace.load();\n document.fonts.add(fontFace);\n }\n setTheme(colors) {\n // Replacing keys stored in styles to format accepted by terminal\n // E.g. terminalBrightBlack -> brightBlack\n const colorPrefix = \"terminal\";\n const terminalColorEntries = Object.entries(colors)\n .filter(([name]) => name.startsWith(colorPrefix))\n .map(([name, color]) => [Object(lodash__WEBPACK_IMPORTED_MODULE_8__[\"camelCase\"])(name.slice(colorPrefix.length)), color]);\n const terminalColors = Object.fromEntries(terminalColorEntries);\n this.xterm.setOption(\"theme\", terminalColors);\n }\n get elem() {\n return this.xterm.element;\n }\n get viewport() {\n return this.xterm.element.querySelector(\".xterm-viewport\");\n }\n get isActive() {\n const { isOpen, selectedTabId } = _dock_store__WEBPACK_IMPORTED_MODULE_4__[\"dockStore\"];\n return isOpen && selectedTabId === this.tabId;\n }\n attachTo(parentElem) {\n parentElem.appendChild(this.elem);\n this.onActivate();\n }\n detach() {\n Terminal.spawningPool.appendChild(this.elem);\n }\n async init() {\n if (this.xterm) {\n return;\n }\n this.xterm = new xterm__WEBPACK_IMPORTED_MODULE_2__[\"Terminal\"]({\n cursorBlink: true,\n cursorStyle: \"bar\",\n fontSize: 13,\n fontFamily: \"RobotoMono\"\n });\n // enable terminal addons\n this.fitAddon = new xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3__[\"FitAddon\"]();\n this.xterm.loadAddon(this.fitAddon);\n this.xterm.open(Terminal.spawningPool);\n this.xterm.registerLinkMatcher(/https?:\\/\\/[^\\s]+/i, this.onClickLink);\n this.xterm.attachCustomKeyEventHandler(this.keyHandler);\n this.xterm.onSelectionChange(this.onSelectionChange);\n // bind events\n const onDataHandler = this.xterm.onData(this.onData);\n this.viewport.addEventListener(\"scroll\", this.onScroll);\n this.elem.addEventListener(\"contextmenu\", this.onContextMenu);\n this.api.onReady.addListener(this.onClear, { once: true }); // clear status logs (connecting..)\n this.api.onData.addListener(this.onApiData);\n window.addEventListener(\"resize\", this.onResize);\n this.disposers.push(Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"reaction\"])(() => _theme_store__WEBPACK_IMPORTED_MODULE_5__[\"ThemeStore\"].getInstance().activeTheme.colors, this.setTheme, {\n fireImmediately: true\n }), _dock_store__WEBPACK_IMPORTED_MODULE_4__[\"dockStore\"].onResize(this.onResize), () => onDataHandler.dispose(), () => this.fitAddon.dispose(), () => this.api.removeAllListeners(), () => window.removeEventListener(\"resize\", this.onResize), () => this.elem.removeEventListener(\"contextmenu\", this.onContextMenu));\n }\n destroy() {\n if (!this.xterm)\n return;\n this.disposers.forEach(dispose => dispose());\n this.disposers = [];\n this.xterm.dispose();\n this.xterm = null;\n }\n}\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_6__[\"boundMethod\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Terminal.prototype, \"setTheme\", null);\nTerminal.init();\n\n\n//# sourceURL=webpack:///./src/renderer/components/dock/terminal.ts?");
40593
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Terminal\", function() { return Terminal; });\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xterm */ \"./node_modules/xterm/lib/xterm.js\");\n/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(xterm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! xterm-addon-fit */ \"./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js\");\n/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dock_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dock.store */ \"./src/renderer/components/dock/dock.store.ts\");\n/* harmony import */ var _theme_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../theme.store */ \"./src/renderer/theme.store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _common_user_store__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../common/user-store */ \"./src/common/user-store/index.ts\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_10__);\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n\n\nclass Terminal {\n constructor(tabId, api) {\n Object.defineProperty(this, \"tabId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: tabId\n });\n Object.defineProperty(this, \"api\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: api\n });\n Object.defineProperty(this, \"xterm\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fitAddon\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"scrollPos\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"disposers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n Object.defineProperty(this, \"fit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n // Since this function is debounced we need to read this value as late as possible\n if (!this.isActive)\n return;\n try {\n this.fitAddon.fit();\n const { cols, rows } = this.xterm;\n this.api.sendTerminalSize(cols, rows);\n }\n catch (error) {\n console.error(error);\n return; // see https://github.com/lensapp/lens/issues/1891\n }\n }\n });\n Object.defineProperty(this, \"fitLazy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default()(this.fit, 250)\n });\n Object.defineProperty(this, \"focus\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.focus();\n }\n });\n Object.defineProperty(this, \"onApiData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n this.xterm.write(data);\n }\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (data) => {\n if (!this.api.isReady)\n return;\n this.api.sendCommand(data);\n }\n });\n Object.defineProperty(this, \"onScroll\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.scrollPos = this.viewport.scrollTop;\n }\n });\n Object.defineProperty(this, \"onClear\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.xterm.clear();\n }\n });\n Object.defineProperty(this, \"onResize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fitLazy();\n this.focus();\n }\n });\n Object.defineProperty(this, \"onActivate\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n this.fit();\n setTimeout(() => this.focus(), 250); // delay used to prevent focus on active tab\n this.viewport.scrollTop = this.scrollPos; // restore last scroll position\n }\n });\n Object.defineProperty(this, \"onClickLink\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt, link) => {\n window.open(link, \"_blank\");\n }\n });\n Object.defineProperty(this, \"onContextMenu\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n const { terminalCopyOnSelect } = _common_user_store__WEBPACK_IMPORTED_MODULE_9__[\"UserStore\"].getInstance();\n const textFromClipboard = electron__WEBPACK_IMPORTED_MODULE_10__[\"clipboard\"].readText();\n if (terminalCopyOnSelect) {\n this.xterm.paste(textFromClipboard);\n }\n }\n });\n Object.defineProperty(this, \"onSelectionChange\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n const { terminalCopyOnSelect } = _common_user_store__WEBPACK_IMPORTED_MODULE_9__[\"UserStore\"].getInstance();\n const selection = this.xterm.getSelection().trim();\n if (terminalCopyOnSelect && selection !== \"\") {\n electron__WEBPACK_IMPORTED_MODULE_10__[\"clipboard\"].writeText(selection);\n }\n }\n });\n Object.defineProperty(this, \"keyHandler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n const { code, ctrlKey, metaKey } = evt;\n // Handle custom hotkey bindings\n if (ctrlKey) {\n switch (code) {\n // Ctrl+C: prevent terminal exit on windows / linux (?)\n case \"KeyC\":\n if (this.xterm.hasSelection())\n return false;\n break;\n // Ctrl+W: prevent unexpected terminal tab closing, e.g. editing file in vim\n case \"KeyW\":\n evt.preventDefault();\n break;\n }\n }\n //Ctrl+K: clear the entire buffer, making the prompt line the new first line on mac os\n if (_common_vars__WEBPACK_IMPORTED_MODULE_7__[\"isMac\"] && metaKey) {\n switch (code) {\n case \"KeyK\":\n this.onClear();\n break;\n }\n }\n return true;\n }\n });\n this.init();\n }\n static init() {\n // terminal element must be in DOM before attaching via xterm.open(elem)\n // https://xtermjs.org/docs/api/terminal/classes/terminal/#open\n const pool = document.createElement(\"div\");\n pool.className = \"terminal-init\";\n pool.style.cssText = \"position: absolute; top: 0; left: 0; height: 0; visibility: hidden; overflow: hidden\";\n document.body.appendChild(pool);\n Terminal.spawningPool = pool;\n }\n static async preloadFonts() {\n const fontPath = __webpack_require__(/*! ../fonts/roboto-mono-nerd.ttf */ \"./src/renderer/components/fonts/roboto-mono-nerd.ttf\").default; // eslint-disable-line @typescript-eslint/no-var-requires\n const fontFace = new FontFace(\"RobotoMono\", `url(${fontPath})`);\n await fontFace.load();\n document.fonts.add(fontFace);\n }\n setTheme(colors) {\n // Replacing keys stored in styles to format accepted by terminal\n // E.g. terminalBrightBlack -> brightBlack\n const colorPrefix = \"terminal\";\n const terminalColorEntries = Object.entries(colors)\n .filter(([name]) => name.startsWith(colorPrefix))\n .map(([name, color]) => [Object(lodash__WEBPACK_IMPORTED_MODULE_8__[\"camelCase\"])(name.slice(colorPrefix.length)), color]);\n const terminalColors = Object.fromEntries(terminalColorEntries);\n this.xterm.setOption(\"theme\", terminalColors);\n }\n get elem() {\n return this.xterm.element;\n }\n get viewport() {\n return this.xterm.element.querySelector(\".xterm-viewport\");\n }\n get isActive() {\n const { isOpen, selectedTabId } = _dock_store__WEBPACK_IMPORTED_MODULE_4__[\"dockStore\"];\n return isOpen && selectedTabId === this.tabId;\n }\n attachTo(parentElem) {\n parentElem.appendChild(this.elem);\n this.onActivate();\n }\n detach() {\n Terminal.spawningPool.appendChild(this.elem);\n }\n async init() {\n if (this.xterm) {\n return;\n }\n this.xterm = new xterm__WEBPACK_IMPORTED_MODULE_2__[\"Terminal\"]({\n cursorBlink: true,\n cursorStyle: \"bar\",\n fontSize: 13,\n fontFamily: \"RobotoMono\"\n });\n // enable terminal addons\n this.fitAddon = new xterm_addon_fit__WEBPACK_IMPORTED_MODULE_3__[\"FitAddon\"]();\n this.xterm.loadAddon(this.fitAddon);\n this.xterm.open(Terminal.spawningPool);\n this.xterm.registerLinkMatcher(/https?:\\/\\/[^\\s]+/i, this.onClickLink);\n this.xterm.attachCustomKeyEventHandler(this.keyHandler);\n this.xterm.onSelectionChange(this.onSelectionChange);\n // bind events\n const onDataHandler = this.xterm.onData(this.onData);\n this.viewport.addEventListener(\"scroll\", this.onScroll);\n this.elem.addEventListener(\"contextmenu\", this.onContextMenu);\n this.api.onReady.addListener(this.onClear, { once: true }); // clear status logs (connecting..)\n this.api.onData.addListener(this.onApiData);\n window.addEventListener(\"resize\", this.onResize);\n this.disposers.push(Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"reaction\"])(() => _theme_store__WEBPACK_IMPORTED_MODULE_5__[\"ThemeStore\"].getInstance().activeTheme.colors, this.setTheme, {\n fireImmediately: true\n }), _dock_store__WEBPACK_IMPORTED_MODULE_4__[\"dockStore\"].onResize(this.onResize), () => onDataHandler.dispose(), () => this.fitAddon.dispose(), () => this.api.removeAllListeners(), () => window.removeEventListener(\"resize\", this.onResize), () => this.elem.removeEventListener(\"contextmenu\", this.onContextMenu));\n }\n destroy() {\n if (!this.xterm)\n return;\n this.disposers.forEach(dispose => dispose());\n this.disposers = [];\n this.xterm.dispose();\n this.xterm = null;\n }\n}\n__decorate([\n _utils__WEBPACK_IMPORTED_MODULE_6__[\"boundMethod\"],\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Terminal.prototype, \"setTheme\", null);\nTerminal.init();\n\n\n//# sourceURL=webpack:///./src/renderer/components/dock/terminal.ts?");
40520
40594
 
40521
40595
  /***/ }),
40522
40596
 
@@ -42145,7 +42219,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
42145
42219
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
42146
42220
 
42147
42221
  "use strict";
42148
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createStorage\", function() { return createStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAppStorage\", function() { return createAppStorage; });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/* harmony import */ var _common_cluster_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/cluster-store */ \"./src/common/cluster-store.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n// Keeps window.localStorage state in external JSON-files.\n// Because app creates random port between restarts => storage session wiped out each time.\n\n\n\n\n\n\n\nconst storage = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"observable\"])({\n initialized: false,\n loaded: false,\n data: {}, // json-serializable\n});\n/**\n * Creates a helper for saving data under the \"key\" intended for window.localStorage\n * @param key\n * @param defaultValue\n */\nfunction createStorage(key, defaultValue) {\n return createAppStorage(key, defaultValue, Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"getHostedClusterId\"])());\n}\nfunction createAppStorage(key, defaultValue, clusterId) {\n const { logPrefix } = _storageHelper__WEBPACK_IMPORTED_MODULE_3__[\"StorageHelper\"];\n const folder = path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"getPath\"])(\"userData\"), \"lens-local-storage\");\n const fileName = `${clusterId !== null && clusterId !== void 0 ? clusterId : \"app\"}.json`;\n const filePath = path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(folder, fileName);\n if (!storage.initialized) {\n init(); // called once per cluster-view\n }\n function init() {\n storage.initialized = true;\n // read previously saved state (if any)\n fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.readJson(filePath)\n .then(data => storage.data = data)\n .catch(() => null) // ignore empty / non-existing / invalid json files\n .finally(() => {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].info(`${logPrefix} loading finished for ${filePath}`);\n storage.loaded = true;\n });\n // bind auto-saving data changes to %storage-file.json\n Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"reaction\"])(() => Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"toJS\"])(storage.data), saveFile, {\n delay: 250,\n equals: mobx__WEBPACK_IMPORTED_MODULE_1__[\"comparer\"].structural, // save only when something really changed\n });\n // remove json-file when cluster deleted\n if (clusterId !== undefined) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"when\"])(() => { var _a; return (_a = _common_cluster_store__WEBPACK_IMPORTED_MODULE_4__[\"ClusterStore\"].getInstance(false)) === null || _a === void 0 ? void 0 : _a.removedClusters.has(clusterId); }).then(removeFile);\n }\n async function saveFile(state = {}) {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].info(`${logPrefix} saving ${filePath}`);\n try {\n await fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.ensureDir(folder, { mode: 0o755 });\n await fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.writeJson(filePath, state, { spaces: 2 });\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].error(`${logPrefix} saving failed: ${error}`, {\n json: state, jsonFilePath: filePath\n });\n }\n }\n function removeFile() {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].debug(`${logPrefix} removing ${filePath}`);\n fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.unlink(filePath).catch(Function);\n }\n }\n return new _storageHelper__WEBPACK_IMPORTED_MODULE_3__[\"StorageHelper\"](key, {\n autoInit: true,\n defaultValue,\n storage: {\n async getItem(key) {\n await Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"when\"])(() => storage.loaded);\n return storage.data[key];\n },\n setItem(key, value) {\n storage.data[key] = value;\n },\n removeItem(key) {\n delete storage.data[key];\n }\n },\n });\n}\n\n\n//# sourceURL=webpack:///./src/renderer/utils/createStorage.ts?");
42222
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createStorage\", function() { return createStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createAppStorage\", function() { return createAppStorage; });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/* harmony import */ var _common_cluster_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/cluster-store */ \"./src/common/cluster-store.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) 2021 OpenLens Authors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n// Keeps window.localStorage state in external JSON-files.\n// Because app creates random port between restarts => storage session wiped out each time.\n\n\n\n\n\n\n\n\nconst storage = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"observable\"])({\n initialized: false,\n loaded: false,\n data: {}, // json-serializable\n});\n/**\n * Creates a helper for saving data under the \"key\" intended for window.localStorage\n * @param key\n * @param defaultValue\n */\nfunction createStorage(key, defaultValue) {\n return createAppStorage(key, defaultValue, Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"getHostedClusterId\"])());\n}\nfunction createAppStorage(key, defaultValue, clusterId) {\n const { logPrefix } = _storageHelper__WEBPACK_IMPORTED_MODULE_3__[\"StorageHelper\"];\n const folder = path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(Object(_common_utils__WEBPACK_IMPORTED_MODULE_6__[\"getPath\"])(\"userData\"), \"lens-local-storage\");\n const fileName = `${clusterId !== null && clusterId !== void 0 ? clusterId : \"app\"}.json`;\n const filePath = path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(folder, fileName);\n if (!storage.initialized) {\n init(); // called once per cluster-view\n }\n function init() {\n storage.initialized = true;\n // read previously saved state (if any)\n fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.readJson(filePath)\n .then(data => storage.data = data)\n .catch(() => null) // ignore empty / non-existing / invalid json files\n .finally(() => {\n if (!_common_vars__WEBPACK_IMPORTED_MODULE_7__[\"isTestEnv\"]) {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].info(`${logPrefix} loading finished for ${filePath}`);\n }\n storage.loaded = true;\n });\n // bind auto-saving data changes to %storage-file.json\n Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"reaction\"])(() => Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"toJS\"])(storage.data), saveFile, {\n delay: 250,\n equals: mobx__WEBPACK_IMPORTED_MODULE_1__[\"comparer\"].structural, // save only when something really changed\n });\n // remove json-file when cluster deleted\n if (clusterId !== undefined) {\n Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"when\"])(() => { var _a; return (_a = _common_cluster_store__WEBPACK_IMPORTED_MODULE_4__[\"ClusterStore\"].getInstance(false)) === null || _a === void 0 ? void 0 : _a.removedClusters.has(clusterId); }).then(removeFile);\n }\n async function saveFile(state = {}) {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].info(`${logPrefix} saving ${filePath}`);\n try {\n await fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.ensureDir(folder, { mode: 0o755 });\n await fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.writeJson(filePath, state, { spaces: 2 });\n }\n catch (error) {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].error(`${logPrefix} saving failed: ${error}`, {\n json: state, jsonFilePath: filePath\n });\n }\n }\n function removeFile() {\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].debug(`${logPrefix} removing ${filePath}`);\n fs_extra__WEBPACK_IMPORTED_MODULE_2___default.a.unlink(filePath).catch(Function);\n }\n }\n return new _storageHelper__WEBPACK_IMPORTED_MODULE_3__[\"StorageHelper\"](key, {\n autoInit: true,\n defaultValue,\n storage: {\n async getItem(key) {\n await Object(mobx__WEBPACK_IMPORTED_MODULE_1__[\"when\"])(() => storage.loaded);\n return storage.data[key];\n },\n setItem(key, value) {\n storage.data[key] = value;\n },\n removeItem(key) {\n delete storage.data[key];\n }\n },\n });\n}\n\n\n//# sourceURL=webpack:///./src/renderer/utils/createStorage.ts?");
42149
42223
 
42150
42224
  /***/ }),
42151
42225
 
@@ -42569,17 +42643,6 @@ eval("module.exports = require(\"vm\");\n\n//# sourceURL=webpack:///external_%22
42569
42643
 
42570
42644
  /***/ }),
42571
42645
 
42572
- /***/ "worker_threads":
42573
- /*!*********************************!*\
42574
- !*** external "worker_threads" ***!
42575
- \*********************************/
42576
- /*! no static exports found */
42577
- /***/ (function(module, exports) {
42578
-
42579
- eval("module.exports = require(\"worker_threads\");\n\n//# sourceURL=webpack:///external_%22worker_threads%22?");
42580
-
42581
- /***/ }),
42582
-
42583
42646
  /***/ "zlib":
42584
42647
  /*!***********************!*\
42585
42648
  !*** external "zlib" ***!
@@ -34,7 +34,7 @@ export declare class HelmChartDetails extends Component<Props> {
34
34
  private abortController?;
35
35
  constructor(props: Props);
36
36
  componentWillUnmount(): void;
37
- chartUpdater: import("mobx").IReactionDisposer;
37
+ componentDidMount(): void;
38
38
  onVersionChange({ value: chart }: SelectOption<HelmChart>): Promise<void>;
39
39
  install(): void;
40
40
  renderIntroduction(): JSX.Element;
@@ -27,12 +27,13 @@ interface Props {
27
27
  hideDetails(): void;
28
28
  }
29
29
  export declare class ReleaseDetails extends Component<Props> {
30
- details: IReleaseDetails;
30
+ details: IReleaseDetails | null;
31
31
  values: string;
32
32
  valuesLoading: boolean;
33
33
  showOnlyUserSuppliedValues: boolean;
34
34
  saving: boolean;
35
35
  releaseSecret: Secret;
36
+ error?: string;
36
37
  componentDidMount(): void;
37
38
  constructor(props: Props);
38
39
  loadDetails(): Promise<void>;
@@ -25,7 +25,10 @@ interface Props {
25
25
  className?: string;
26
26
  }
27
27
  export declare class Dock extends React.Component<Props> {
28
- onKeydown: (evt: React.KeyboardEvent<HTMLElement>) => void;
28
+ private element;
29
+ componentDidMount(): void;
30
+ componentWillUnmount(): void;
31
+ onKeyDown: (evt: KeyboardEvent) => void;
29
32
  onChangeTab: (tab: DockTab) => void;
30
33
  renderTab(tab: DockTab): JSX.Element;
31
34
  renderTabContent(): JSX.Element;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@k8slens/extensions",
3
3
  "productName": "OpenLens extensions",
4
4
  "description": "OpenLens - Open Source Kubernetes IDE: extensions",
5
- "version": "5.3.0-git.a3765211de.0",
5
+ "version": "5.3.0-git.cbb9f918a7.0",
6
6
  "copyright": "© 2021 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",