@k8slens/extensions 5.5.0-git.d1ae30a562.0 → 5.5.0-git.dbe45a2b40.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.
@@ -25,6 +25,10 @@ export declare function getOrInsertSet<K, SK>(map: Map<K, Set<SK>>, key: K): Set
25
25
  * if it is very expensive to create the initial value.
26
26
  */
27
27
  export declare function getOrInsertWith<K, V>(map: Map<K, V>, key: K, builder: () => V): V;
28
+ /**
29
+ * Like {@link getOrInsertWith} but the builder is async and will be awaited before inserting into the map
30
+ */
31
+ export declare function getOrInsertWithAsync<K, V>(map: Map<K, V>, key: K, asyncBuilder: () => Promise<V>): Promise<V>;
28
32
  /**
29
33
  * Set the value associated with `key` iff there was not a previous value
30
34
  * @param map The map to interact with
@@ -13751,6 +13751,26 @@ eval("\n\nconst copyProperty = (to, from, property, ignoreNonConfigurable) => {\
13751
13751
 
13752
13752
  /***/ }),
13753
13753
 
13754
+ /***/ "./node_modules/debug/src/browser.js":
13755
+ /*!*******************************************!*\
13756
+ !*** ./node_modules/debug/src/browser.js ***!
13757
+ \*******************************************/
13758
+ /***/ ((module, exports, __webpack_require__) => {
13759
+
13760
+ eval("/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/debug/src/common.js\")(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n\n\n//# sourceURL=webpack://open-lens/./node_modules/debug/src/browser.js?");
13761
+
13762
+ /***/ }),
13763
+
13764
+ /***/ "./node_modules/debug/src/common.js":
13765
+ /*!******************************************!*\
13766
+ !*** ./node_modules/debug/src/common.js ***!
13767
+ \******************************************/
13768
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13769
+
13770
+ eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/debug/src/common.js?");
13771
+
13772
+ /***/ }),
13773
+
13754
13774
  /***/ "./node_modules/decompress-response/index.js":
13755
13775
  /*!***************************************************!*\
13756
13776
  !*** ./node_modules/decompress-response/index.js ***!
@@ -31406,7 +31426,7 @@ eval("\n\nvar transport = exports\n\n// Exports utils\ntransport.utils = __webpa
31406
31426
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
31407
31427
 
31408
31428
  "use strict";
31409
- eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar transport = __webpack_require__(/*! ../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\n\nvar debug = {\n server: __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:connection:server'),\n client: __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:connection:client')\n}\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\n\nvar Stream = transport.Stream\n\nfunction Connection (socket, options) {\n EventEmitter.call(this)\n\n var state = {}\n this._spdyState = state\n\n // NOTE: There's a big trick here. Connection is used as a `this` argument\n // to the wrapped `connection` event listener.\n // socket end doesn't necessarly mean connection drop\n this.httpAllowHalfOpen = true\n\n state.timeout = new transport.utils.Timeout(this)\n\n // Protocol info\n state.protocol = transport.protocol[options.protocol]\n state.version = null\n state.constants = state.protocol.constants\n state.pair = null\n state.isServer = options.isServer\n\n // Root of priority tree (i.e. stream id = 0)\n state.priorityRoot = new transport.Priority({\n defaultWeight: state.constants.DEFAULT_WEIGHT,\n maxCount: transport.protocol.base.constants.MAX_PRIORITY_STREAMS\n })\n\n // Defaults\n state.maxStreams = options.maxStreams ||\n state.constants.MAX_CONCURRENT_STREAMS\n\n state.autoSpdy31 = options.protocol.name !== 'h2' && options.autoSpdy31\n state.acceptPush = options.acceptPush === undefined\n ? !state.isServer\n : options.acceptPush\n\n if (options.maxChunk === false) { state.maxChunk = Infinity } else if (options.maxChunk === undefined) { state.maxChunk = transport.protocol.base.constants.DEFAULT_MAX_CHUNK } else {\n state.maxChunk = options.maxChunk\n }\n\n // Connection-level flow control\n var windowSize = options.windowSize || 1 << 20\n state.window = new transport.Window({\n id: 0,\n isServer: state.isServer,\n recv: {\n size: state.constants.DEFAULT_WINDOW,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n },\n send: {\n size: state.constants.DEFAULT_WINDOW,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n }\n })\n\n // It starts with DEFAULT_WINDOW, update must be sent to change it on client\n state.window.recv.setMax(windowSize)\n\n // Boilerplate for Stream constructor\n state.streamWindow = new transport.Window({\n id: -1,\n isServer: state.isServer,\n recv: {\n size: windowSize,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n },\n send: {\n size: state.constants.DEFAULT_WINDOW,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n }\n })\n\n // Various state info\n state.pool = state.protocol.compressionPool.create(options.headerCompression)\n state.counters = {\n push: 0,\n stream: 0\n }\n\n // Init streams list\n state.stream = {\n map: {},\n count: 0,\n nextId: state.isServer ? 2 : 1,\n lastId: {\n both: 0,\n received: 0\n }\n }\n state.ping = {\n nextId: state.isServer ? 2 : 1,\n map: {}\n }\n state.goaway = false\n\n // Debug\n state.debug = state.isServer ? debug.server : debug.client\n\n // X-Forwarded feature\n state.xForward = null\n\n // Create parser and hole for framer\n state.parser = state.protocol.parser.create({\n // NOTE: needed to distinguish ping from ping ACK in SPDY\n isServer: state.isServer,\n window: state.window\n })\n state.framer = state.protocol.framer.create({\n window: state.window,\n timeout: state.timeout\n })\n\n // SPDY has PUSH enabled on servers\n if (state.protocol.name === 'spdy') {\n state.framer.enablePush(state.isServer)\n }\n\n if (!state.isServer) { state.parser.skipPreface() }\n\n this.socket = socket\n\n this._init()\n}\nutil.inherits(Connection, EventEmitter)\nexports.Connection = Connection\n\nConnection.create = function create (socket, options) {\n return new Connection(socket, options)\n}\n\nConnection.prototype._init = function init () {\n var self = this\n var state = this._spdyState\n var pool = state.pool\n\n // Initialize session window\n state.window.recv.on('drain', function () {\n self._onSessionWindowDrain()\n })\n\n // Initialize parser\n state.parser.on('data', function (frame) {\n self._handleFrame(frame)\n })\n state.parser.once('version', function (version) {\n self._onVersion(version)\n })\n\n // Propagate parser errors\n state.parser.on('error', function (err) {\n self._onParserError(err)\n })\n\n // Propagate framer errors\n state.framer.on('error', function (err) {\n self.emit('error', err)\n })\n\n this.socket.pipe(state.parser)\n state.framer.pipe(this.socket)\n\n // Allow high-level api to catch socket errors\n this.socket.on('error', function onSocketError (e) {\n self.emit('error', e)\n })\n\n this.socket.once('close', function onclose (hadError) {\n var err\n if (hadError) {\n err = new Error('socket hang up')\n err.code = 'ECONNRESET'\n }\n\n self.destroyStreams(err)\n self.emit('close')\n\n if (state.pair) {\n pool.put(state.pair)\n }\n\n state.framer.resume()\n })\n\n // Reset timeout on close\n this.once('close', function () {\n self.setTimeout(0)\n })\n\n function _onWindowOverflow () {\n self._onWindowOverflow()\n }\n\n state.window.recv.on('overflow', _onWindowOverflow)\n state.window.send.on('overflow', _onWindowOverflow)\n\n // Do not allow half-open connections\n this.socket.allowHalfOpen = false\n}\n\nConnection.prototype._onVersion = function _onVersion (version) {\n var state = this._spdyState\n var prev = state.version\n var parser = state.parser\n var framer = state.framer\n var pool = state.pool\n\n state.version = version\n state.debug('id=0 version=%d', version)\n\n // Ignore transition to 3.1\n if (!prev) {\n state.pair = pool.get(version)\n parser.setCompression(state.pair)\n framer.setCompression(state.pair)\n }\n framer.setVersion(version)\n\n if (!state.isServer) {\n framer.prefaceFrame()\n if (state.xForward !== null) {\n framer.xForwardedFor({ host: state.xForward })\n }\n }\n\n // Send preface+settings frame (once)\n framer.settingsFrame({\n max_header_list_size: state.constants.DEFAULT_MAX_HEADER_LIST_SIZE,\n max_concurrent_streams: state.maxStreams,\n enable_push: state.acceptPush ? 1 : 0,\n initial_window_size: state.window.recv.max\n })\n\n // Update session window\n if (state.version >= 3.1 || (state.isServer && state.autoSpdy31)) { this._onSessionWindowDrain() }\n\n this.emit('version', version)\n}\n\nConnection.prototype._onParserError = function _onParserError (err) {\n var state = this._spdyState\n\n // Prevent further errors\n state.parser.kill()\n\n // Send GOAWAY\n if (err instanceof transport.protocol.base.utils.ProtocolError) {\n this._goaway({\n lastId: state.stream.lastId.both,\n code: err.code,\n extra: err.message,\n send: true\n })\n }\n\n this.emit('error', err)\n}\n\nConnection.prototype._handleFrame = function _handleFrame (frame) {\n var state = this._spdyState\n\n state.debug('id=0 frame', frame)\n state.timeout.reset()\n\n // For testing purposes\n this.emit('frame', frame)\n\n var stream\n\n // Session window update\n if (frame.type === 'WINDOW_UPDATE' && frame.id === 0) {\n if (state.version < 3.1 && state.autoSpdy31) {\n state.debug('id=0 switch version to 3.1')\n state.version = 3.1\n this.emit('version', 3.1)\n }\n state.window.send.update(frame.delta)\n return\n }\n\n if (state.isServer && frame.type === 'PUSH_PROMISE') {\n state.debug('id=0 server PUSH_PROMISE')\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'PROTOCOL_ERROR',\n send: true\n })\n return\n }\n\n if (!stream && frame.id !== undefined) {\n // Load created one\n stream = state.stream.map[frame.id]\n\n // Fail if not found\n if (!stream &&\n frame.type !== 'HEADERS' &&\n frame.type !== 'PRIORITY' &&\n frame.type !== 'RST') {\n // Other side should destroy the stream upon receiving GOAWAY\n if (this._isGoaway(frame.id)) { return }\n\n state.debug('id=0 stream=%d not found', frame.id)\n state.framer.rstFrame({ id: frame.id, code: 'INVALID_STREAM' })\n return\n }\n }\n\n // Create new stream\n if (!stream && frame.type === 'HEADERS') {\n this._handleHeaders(frame)\n return\n }\n\n if (stream) {\n stream._handleFrame(frame)\n } else if (frame.type === 'SETTINGS') {\n this._handleSettings(frame.settings)\n } else if (frame.type === 'ACK_SETTINGS') {\n // TODO(indutny): handle it one day\n } else if (frame.type === 'PING') {\n this._handlePing(frame)\n } else if (frame.type === 'GOAWAY') {\n this._handleGoaway(frame)\n } else if (frame.type === 'X_FORWARDED_FOR') {\n // Set X-Forwarded-For only once\n if (state.xForward === null) {\n state.xForward = frame.host\n }\n } else if (frame.type === 'PRIORITY') {\n // TODO(indutny): handle this\n } else {\n state.debug('id=0 unknown frame type: %s', frame.type)\n }\n}\n\nConnection.prototype._onWindowOverflow = function _onWindowOverflow () {\n var state = this._spdyState\n state.debug('id=0 window overflow')\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'FLOW_CONTROL_ERROR',\n send: true\n })\n}\n\nConnection.prototype._isGoaway = function _isGoaway (id) {\n var state = this._spdyState\n if (state.goaway !== false && state.goaway < id) { return true }\n return false\n}\n\nConnection.prototype._getId = function _getId () {\n var state = this._spdyState\n\n var id = state.stream.nextId\n state.stream.nextId += 2\n return id\n}\n\nConnection.prototype._createStream = function _createStream (uri) {\n var state = this._spdyState\n var id = uri.id\n if (id === undefined) { id = this._getId() }\n\n var isGoaway = this._isGoaway(id)\n\n if (uri.push && !state.acceptPush) {\n state.debug('id=0 push disabled promisedId=%d', id)\n\n // Fatal error\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'PROTOCOL_ERROR',\n send: true\n })\n isGoaway = true\n }\n\n var stream = new Stream(this, {\n id: id,\n request: uri.request !== false,\n method: uri.method,\n path: uri.path,\n host: uri.host,\n priority: uri.priority,\n headers: uri.headers,\n parent: uri.parent,\n readable: !isGoaway && uri.readable,\n writable: !isGoaway && uri.writable\n })\n var self = this\n\n // Just an empty stream for API consistency\n if (isGoaway) {\n return stream\n }\n\n state.stream.lastId.both = Math.max(state.stream.lastId.both, id)\n\n state.debug('id=0 add stream=%d', stream.id)\n state.stream.map[stream.id] = stream\n state.stream.count++\n state.counters.stream++\n if (stream.parent !== null) {\n state.counters.push++\n }\n\n stream.once('close', function () {\n self._removeStream(stream)\n })\n\n return stream\n}\n\nConnection.prototype._handleHeaders = function _handleHeaders (frame) {\n var state = this._spdyState\n\n // Must be HEADERS frame after stream close\n if (frame.id <= state.stream.lastId.received) { return }\n\n // Someone is using our ids!\n if ((frame.id + state.stream.nextId) % 2 === 0) {\n state.framer.rstFrame({ id: frame.id, code: 'PROTOCOL_ERROR' })\n return\n }\n\n var stream = this._createStream({\n id: frame.id,\n request: false,\n method: frame.headers[':method'],\n path: frame.headers[':path'],\n host: frame.headers[':authority'],\n priority: frame.priority,\n headers: frame.headers,\n writable: frame.writable\n })\n\n // GOAWAY\n if (this._isGoaway(stream.id)) {\n return\n }\n\n state.stream.lastId.received = Math.max(\n state.stream.lastId.received,\n stream.id\n )\n\n // TODO(indutny) handle stream limit\n if (!this.emit('stream', stream)) {\n // No listeners was set - abort the stream\n stream.abort()\n return\n }\n\n // Create fake frame to simulate end of the data\n if (frame.fin) {\n stream._handleFrame({ type: 'FIN', fin: true })\n }\n\n return stream\n}\n\nConnection.prototype._onSessionWindowDrain = function _onSessionWindowDrain () {\n var state = this._spdyState\n if (state.version < 3.1 && !(state.isServer && state.autoSpdy31)) {\n return\n }\n\n var delta = state.window.recv.getDelta()\n if (delta === 0) {\n return\n }\n\n state.debug('id=0 session window drain, update by %d', delta)\n\n state.framer.windowUpdateFrame({\n id: 0,\n delta: delta\n })\n state.window.recv.update(delta)\n}\n\nConnection.prototype.start = function start (version) {\n this._spdyState.parser.setVersion(version)\n}\n\n// Mostly for testing\nConnection.prototype.getVersion = function getVersion () {\n return this._spdyState.version\n}\n\nConnection.prototype._handleSettings = function _handleSettings (settings) {\n var state = this._spdyState\n\n state.framer.ackSettingsFrame()\n\n this._setDefaultWindow(settings)\n if (settings.max_frame_size) { state.framer.setMaxFrameSize(settings.max_frame_size) }\n\n // TODO(indutny): handle max_header_list_size\n if (settings.header_table_size) {\n try {\n state.pair.compress.updateTableSize(settings.header_table_size)\n } catch (e) {\n this._goaway({\n lastId: 0,\n code: 'PROTOCOL_ERROR',\n send: true\n })\n return\n }\n }\n\n // HTTP2 clients needs to enable PUSH streams explicitly\n if (state.protocol.name !== 'spdy') {\n if (settings.enable_push === undefined) {\n state.framer.enablePush(state.isServer)\n } else {\n state.framer.enablePush(settings.enable_push === 1)\n }\n }\n\n // TODO(indutny): handle max_concurrent_streams\n}\n\nConnection.prototype._setDefaultWindow = function _setDefaultWindow (settings) {\n if (settings.initial_window_size === undefined) {\n return\n }\n\n var state = this._spdyState\n\n // Update defaults\n var window = state.streamWindow\n window.send.setMax(settings.initial_window_size)\n\n // Update existing streams\n Object.keys(state.stream.map).forEach(function (id) {\n var stream = state.stream.map[id]\n var window = stream._spdyState.window\n\n window.send.updateMax(settings.initial_window_size)\n })\n}\n\nConnection.prototype._handlePing = function handlePing (frame) {\n var self = this\n var state = this._spdyState\n\n // Handle incoming PING\n if (!frame.ack) {\n state.framer.pingFrame({\n opaque: frame.opaque,\n ack: true\n })\n\n self.emit('ping', frame.opaque)\n return\n }\n\n // Handle reply PING\n var hex = frame.opaque.toString('hex')\n if (!state.ping.map[hex]) {\n return\n }\n var ping = state.ping.map[hex]\n delete state.ping.map[hex]\n\n if (ping.cb) {\n ping.cb(null)\n }\n}\n\nConnection.prototype._handleGoaway = function handleGoaway (frame) {\n this._goaway({\n lastId: frame.lastId,\n code: frame.code,\n send: false\n })\n}\n\nConnection.prototype.ping = function ping (callback) {\n var state = this._spdyState\n\n // HTTP2 is using 8-byte opaque\n var opaque = Buffer.alloc(state.constants.PING_OPAQUE_SIZE)\n opaque.fill(0)\n opaque.writeUInt32BE(state.ping.nextId, opaque.length - 4)\n state.ping.nextId += 2\n\n state.ping.map[opaque.toString('hex')] = { cb: callback }\n state.framer.pingFrame({\n opaque: opaque,\n ack: false\n })\n}\n\nConnection.prototype.getCounter = function getCounter (name) {\n return this._spdyState.counters[name]\n}\n\nConnection.prototype.reserveStream = function reserveStream (uri, callback) {\n var stream = this._createStream(uri)\n\n // GOAWAY\n if (this._isGoaway(stream.id)) {\n var err = new Error('Can\\'t send request after GOAWAY')\n process.nextTick(function () {\n if (callback) { callback(err) } else {\n stream.emit('error', err)\n }\n })\n return stream\n }\n\n if (callback) {\n process.nextTick(function () {\n callback(null, stream)\n })\n }\n\n return stream\n}\n\nConnection.prototype.request = function request (uri, callback) {\n var stream = this.reserveStream(uri, function (err) {\n if (err) {\n if (callback) {\n callback(err)\n } else {\n stream.emit('error', err)\n }\n return\n }\n\n if (stream._wasSent()) {\n if (callback) {\n callback(null, stream)\n }\n return\n }\n\n stream.send(function (err) {\n if (err) {\n if (callback) { return callback(err) } else { return stream.emit('error', err) }\n }\n\n if (callback) {\n callback(null, stream)\n }\n })\n })\n\n return stream\n}\n\nConnection.prototype._removeStream = function _removeStream (stream) {\n var state = this._spdyState\n\n state.debug('id=0 remove stream=%d', stream.id)\n delete state.stream.map[stream.id]\n state.stream.count--\n\n if (state.stream.count === 0) {\n this.emit('_streamDrain')\n }\n}\n\nConnection.prototype._goaway = function _goaway (params) {\n var state = this._spdyState\n var self = this\n\n state.goaway = params.lastId\n state.debug('id=0 goaway from=%d', state.goaway)\n\n Object.keys(state.stream.map).forEach(function (id) {\n var stream = state.stream.map[id]\n\n // Abort every stream started after GOAWAY\n if (stream.id <= params.lastId) {\n return\n }\n\n stream.abort()\n stream.emit('error', new Error('New stream after GOAWAY'))\n })\n\n function finish () {\n // Destroy socket if there are no streams\n if (state.stream.count === 0 || params.code !== 'OK') {\n // No further frames should be processed\n state.parser.kill()\n\n process.nextTick(function () {\n var err = new Error('Fatal error: ' + params.code)\n self._onStreamDrain(err)\n })\n return\n }\n\n self.on('_streamDrain', self._onStreamDrain)\n }\n\n if (params.send) {\n // Make sure that GOAWAY frame is sent before dumping framer\n state.framer.goawayFrame({\n lastId: params.lastId,\n code: params.code,\n extra: params.extra\n }, finish)\n } else {\n finish()\n }\n}\n\nConnection.prototype._onStreamDrain = function _onStreamDrain (error) {\n var state = this._spdyState\n\n state.debug('id=0 _onStreamDrain')\n\n state.framer.dump()\n state.framer.unpipe(this.socket)\n state.framer.resume()\n\n if (this.socket.destroySoon) {\n this.socket.destroySoon()\n }\n this.emit('close', error)\n}\n\nConnection.prototype.end = function end (callback) {\n var state = this._spdyState\n\n if (callback) {\n this.once('close', callback)\n }\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'OK',\n send: true\n })\n}\n\nConnection.prototype.destroyStreams = function destroyStreams (err) {\n var state = this._spdyState\n Object.keys(state.stream.map).forEach(function (id) {\n var stream = state.stream.map[id]\n\n stream.destroy()\n if (err) {\n stream.emit('error', err)\n }\n })\n}\n\nConnection.prototype.isServer = function isServer () {\n return this._spdyState.isServer\n}\n\nConnection.prototype.getXForwardedFor = function getXForwardFor () {\n return this._spdyState.xForward\n}\n\nConnection.prototype.sendXForwardedFor = function sendXForwardedFor (host) {\n var state = this._spdyState\n if (state.version !== null) {\n state.framer.xForwardedFor({ host: host })\n } else {\n state.xForward = host\n }\n}\n\nConnection.prototype.pushPromise = function pushPromise (parent, uri, callback) {\n var state = this._spdyState\n\n var stream = this._createStream({\n request: false,\n parent: parent,\n method: uri.method,\n path: uri.path,\n host: uri.host,\n priority: uri.priority,\n headers: uri.headers,\n readable: false\n })\n\n var err\n\n // TODO(indutny): deduplicate this logic somehow\n if (this._isGoaway(stream.id)) {\n err = new Error('Can\\'t send PUSH_PROMISE after GOAWAY')\n\n process.nextTick(function () {\n if (callback) {\n callback(err)\n } else {\n stream.emit('error', err)\n }\n })\n return stream\n }\n\n if (uri.push && !state.acceptPush) {\n err = new Error(\n 'Can\\'t send PUSH_PROMISE, other side won\\'t accept it')\n process.nextTick(function () {\n if (callback) { callback(err) } else {\n stream.emit('error', err)\n }\n })\n return stream\n }\n\n stream._sendPush(uri.status, uri.response, function (err) {\n if (!callback) {\n if (err) {\n stream.emit('error', err)\n }\n return\n }\n\n if (err) { return callback(err) }\n callback(null, stream)\n })\n\n return stream\n}\n\nConnection.prototype.setTimeout = function setTimeout (delay, callback) {\n var state = this._spdyState\n\n state.timeout.set(delay, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/connection.js?");
31429
+ eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar transport = __webpack_require__(/*! ../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\n\nvar debug = {\n server: __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:connection:server'),\n client: __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:connection:client')\n}\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\n\nvar Stream = transport.Stream\n\nfunction Connection (socket, options) {\n EventEmitter.call(this)\n\n var state = {}\n this._spdyState = state\n\n // NOTE: There's a big trick here. Connection is used as a `this` argument\n // to the wrapped `connection` event listener.\n // socket end doesn't necessarly mean connection drop\n this.httpAllowHalfOpen = true\n\n state.timeout = new transport.utils.Timeout(this)\n\n // Protocol info\n state.protocol = transport.protocol[options.protocol]\n state.version = null\n state.constants = state.protocol.constants\n state.pair = null\n state.isServer = options.isServer\n\n // Root of priority tree (i.e. stream id = 0)\n state.priorityRoot = new transport.Priority({\n defaultWeight: state.constants.DEFAULT_WEIGHT,\n maxCount: transport.protocol.base.constants.MAX_PRIORITY_STREAMS\n })\n\n // Defaults\n state.maxStreams = options.maxStreams ||\n state.constants.MAX_CONCURRENT_STREAMS\n\n state.autoSpdy31 = options.protocol.name !== 'h2' && options.autoSpdy31\n state.acceptPush = options.acceptPush === undefined\n ? !state.isServer\n : options.acceptPush\n\n if (options.maxChunk === false) { state.maxChunk = Infinity } else if (options.maxChunk === undefined) { state.maxChunk = transport.protocol.base.constants.DEFAULT_MAX_CHUNK } else {\n state.maxChunk = options.maxChunk\n }\n\n // Connection-level flow control\n var windowSize = options.windowSize || 1 << 20\n state.window = new transport.Window({\n id: 0,\n isServer: state.isServer,\n recv: {\n size: state.constants.DEFAULT_WINDOW,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n },\n send: {\n size: state.constants.DEFAULT_WINDOW,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n }\n })\n\n // It starts with DEFAULT_WINDOW, update must be sent to change it on client\n state.window.recv.setMax(windowSize)\n\n // Boilerplate for Stream constructor\n state.streamWindow = new transport.Window({\n id: -1,\n isServer: state.isServer,\n recv: {\n size: windowSize,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n },\n send: {\n size: state.constants.DEFAULT_WINDOW,\n max: state.constants.MAX_INITIAL_WINDOW_SIZE\n }\n })\n\n // Various state info\n state.pool = state.protocol.compressionPool.create(options.headerCompression)\n state.counters = {\n push: 0,\n stream: 0\n }\n\n // Init streams list\n state.stream = {\n map: {},\n count: 0,\n nextId: state.isServer ? 2 : 1,\n lastId: {\n both: 0,\n received: 0\n }\n }\n state.ping = {\n nextId: state.isServer ? 2 : 1,\n map: {}\n }\n state.goaway = false\n\n // Debug\n state.debug = state.isServer ? debug.server : debug.client\n\n // X-Forwarded feature\n state.xForward = null\n\n // Create parser and hole for framer\n state.parser = state.protocol.parser.create({\n // NOTE: needed to distinguish ping from ping ACK in SPDY\n isServer: state.isServer,\n window: state.window\n })\n state.framer = state.protocol.framer.create({\n window: state.window,\n timeout: state.timeout\n })\n\n // SPDY has PUSH enabled on servers\n if (state.protocol.name === 'spdy') {\n state.framer.enablePush(state.isServer)\n }\n\n if (!state.isServer) { state.parser.skipPreface() }\n\n this.socket = socket\n\n this._init()\n}\nutil.inherits(Connection, EventEmitter)\nexports.Connection = Connection\n\nConnection.create = function create (socket, options) {\n return new Connection(socket, options)\n}\n\nConnection.prototype._init = function init () {\n var self = this\n var state = this._spdyState\n var pool = state.pool\n\n // Initialize session window\n state.window.recv.on('drain', function () {\n self._onSessionWindowDrain()\n })\n\n // Initialize parser\n state.parser.on('data', function (frame) {\n self._handleFrame(frame)\n })\n state.parser.once('version', function (version) {\n self._onVersion(version)\n })\n\n // Propagate parser errors\n state.parser.on('error', function (err) {\n self._onParserError(err)\n })\n\n // Propagate framer errors\n state.framer.on('error', function (err) {\n self.emit('error', err)\n })\n\n this.socket.pipe(state.parser)\n state.framer.pipe(this.socket)\n\n // Allow high-level api to catch socket errors\n this.socket.on('error', function onSocketError (e) {\n self.emit('error', e)\n })\n\n this.socket.once('close', function onclose (hadError) {\n var err\n if (hadError) {\n err = new Error('socket hang up')\n err.code = 'ECONNRESET'\n }\n\n self.destroyStreams(err)\n self.emit('close')\n\n if (state.pair) {\n pool.put(state.pair)\n }\n\n state.framer.resume()\n })\n\n // Reset timeout on close\n this.once('close', function () {\n self.setTimeout(0)\n })\n\n function _onWindowOverflow () {\n self._onWindowOverflow()\n }\n\n state.window.recv.on('overflow', _onWindowOverflow)\n state.window.send.on('overflow', _onWindowOverflow)\n\n // Do not allow half-open connections\n this.socket.allowHalfOpen = false\n}\n\nConnection.prototype._onVersion = function _onVersion (version) {\n var state = this._spdyState\n var prev = state.version\n var parser = state.parser\n var framer = state.framer\n var pool = state.pool\n\n state.version = version\n state.debug('id=0 version=%d', version)\n\n // Ignore transition to 3.1\n if (!prev) {\n state.pair = pool.get(version)\n parser.setCompression(state.pair)\n framer.setCompression(state.pair)\n }\n framer.setVersion(version)\n\n if (!state.isServer) {\n framer.prefaceFrame()\n if (state.xForward !== null) {\n framer.xForwardedFor({ host: state.xForward })\n }\n }\n\n // Send preface+settings frame (once)\n framer.settingsFrame({\n max_header_list_size: state.constants.DEFAULT_MAX_HEADER_LIST_SIZE,\n max_concurrent_streams: state.maxStreams,\n enable_push: state.acceptPush ? 1 : 0,\n initial_window_size: state.window.recv.max\n })\n\n // Update session window\n if (state.version >= 3.1 || (state.isServer && state.autoSpdy31)) { this._onSessionWindowDrain() }\n\n this.emit('version', version)\n}\n\nConnection.prototype._onParserError = function _onParserError (err) {\n var state = this._spdyState\n\n // Prevent further errors\n state.parser.kill()\n\n // Send GOAWAY\n if (err instanceof transport.protocol.base.utils.ProtocolError) {\n this._goaway({\n lastId: state.stream.lastId.both,\n code: err.code,\n extra: err.message,\n send: true\n })\n }\n\n this.emit('error', err)\n}\n\nConnection.prototype._handleFrame = function _handleFrame (frame) {\n var state = this._spdyState\n\n state.debug('id=0 frame', frame)\n state.timeout.reset()\n\n // For testing purposes\n this.emit('frame', frame)\n\n var stream\n\n // Session window update\n if (frame.type === 'WINDOW_UPDATE' && frame.id === 0) {\n if (state.version < 3.1 && state.autoSpdy31) {\n state.debug('id=0 switch version to 3.1')\n state.version = 3.1\n this.emit('version', 3.1)\n }\n state.window.send.update(frame.delta)\n return\n }\n\n if (state.isServer && frame.type === 'PUSH_PROMISE') {\n state.debug('id=0 server PUSH_PROMISE')\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'PROTOCOL_ERROR',\n send: true\n })\n return\n }\n\n if (!stream && frame.id !== undefined) {\n // Load created one\n stream = state.stream.map[frame.id]\n\n // Fail if not found\n if (!stream &&\n frame.type !== 'HEADERS' &&\n frame.type !== 'PRIORITY' &&\n frame.type !== 'RST') {\n // Other side should destroy the stream upon receiving GOAWAY\n if (this._isGoaway(frame.id)) { return }\n\n state.debug('id=0 stream=%d not found', frame.id)\n state.framer.rstFrame({ id: frame.id, code: 'INVALID_STREAM' })\n return\n }\n }\n\n // Create new stream\n if (!stream && frame.type === 'HEADERS') {\n this._handleHeaders(frame)\n return\n }\n\n if (stream) {\n stream._handleFrame(frame)\n } else if (frame.type === 'SETTINGS') {\n this._handleSettings(frame.settings)\n } else if (frame.type === 'ACK_SETTINGS') {\n // TODO(indutny): handle it one day\n } else if (frame.type === 'PING') {\n this._handlePing(frame)\n } else if (frame.type === 'GOAWAY') {\n this._handleGoaway(frame)\n } else if (frame.type === 'X_FORWARDED_FOR') {\n // Set X-Forwarded-For only once\n if (state.xForward === null) {\n state.xForward = frame.host\n }\n } else if (frame.type === 'PRIORITY') {\n // TODO(indutny): handle this\n } else {\n state.debug('id=0 unknown frame type: %s', frame.type)\n }\n}\n\nConnection.prototype._onWindowOverflow = function _onWindowOverflow () {\n var state = this._spdyState\n state.debug('id=0 window overflow')\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'FLOW_CONTROL_ERROR',\n send: true\n })\n}\n\nConnection.prototype._isGoaway = function _isGoaway (id) {\n var state = this._spdyState\n if (state.goaway !== false && state.goaway < id) { return true }\n return false\n}\n\nConnection.prototype._getId = function _getId () {\n var state = this._spdyState\n\n var id = state.stream.nextId\n state.stream.nextId += 2\n return id\n}\n\nConnection.prototype._createStream = function _createStream (uri) {\n var state = this._spdyState\n var id = uri.id\n if (id === undefined) { id = this._getId() }\n\n var isGoaway = this._isGoaway(id)\n\n if (uri.push && !state.acceptPush) {\n state.debug('id=0 push disabled promisedId=%d', id)\n\n // Fatal error\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'PROTOCOL_ERROR',\n send: true\n })\n isGoaway = true\n }\n\n var stream = new Stream(this, {\n id: id,\n request: uri.request !== false,\n method: uri.method,\n path: uri.path,\n host: uri.host,\n priority: uri.priority,\n headers: uri.headers,\n parent: uri.parent,\n readable: !isGoaway && uri.readable,\n writable: !isGoaway && uri.writable\n })\n var self = this\n\n // Just an empty stream for API consistency\n if (isGoaway) {\n return stream\n }\n\n state.stream.lastId.both = Math.max(state.stream.lastId.both, id)\n\n state.debug('id=0 add stream=%d', stream.id)\n state.stream.map[stream.id] = stream\n state.stream.count++\n state.counters.stream++\n if (stream.parent !== null) {\n state.counters.push++\n }\n\n stream.once('close', function () {\n self._removeStream(stream)\n })\n\n return stream\n}\n\nConnection.prototype._handleHeaders = function _handleHeaders (frame) {\n var state = this._spdyState\n\n // Must be HEADERS frame after stream close\n if (frame.id <= state.stream.lastId.received) { return }\n\n // Someone is using our ids!\n if ((frame.id + state.stream.nextId) % 2 === 0) {\n state.framer.rstFrame({ id: frame.id, code: 'PROTOCOL_ERROR' })\n return\n }\n\n var stream = this._createStream({\n id: frame.id,\n request: false,\n method: frame.headers[':method'],\n path: frame.headers[':path'],\n host: frame.headers[':authority'],\n priority: frame.priority,\n headers: frame.headers,\n writable: frame.writable\n })\n\n // GOAWAY\n if (this._isGoaway(stream.id)) {\n return\n }\n\n state.stream.lastId.received = Math.max(\n state.stream.lastId.received,\n stream.id\n )\n\n // TODO(indutny) handle stream limit\n if (!this.emit('stream', stream)) {\n // No listeners was set - abort the stream\n stream.abort()\n return\n }\n\n // Create fake frame to simulate end of the data\n if (frame.fin) {\n stream._handleFrame({ type: 'FIN', fin: true })\n }\n\n return stream\n}\n\nConnection.prototype._onSessionWindowDrain = function _onSessionWindowDrain () {\n var state = this._spdyState\n if (state.version < 3.1 && !(state.isServer && state.autoSpdy31)) {\n return\n }\n\n var delta = state.window.recv.getDelta()\n if (delta === 0) {\n return\n }\n\n state.debug('id=0 session window drain, update by %d', delta)\n\n state.framer.windowUpdateFrame({\n id: 0,\n delta: delta\n })\n state.window.recv.update(delta)\n}\n\nConnection.prototype.start = function start (version) {\n this._spdyState.parser.setVersion(version)\n}\n\n// Mostly for testing\nConnection.prototype.getVersion = function getVersion () {\n return this._spdyState.version\n}\n\nConnection.prototype._handleSettings = function _handleSettings (settings) {\n var state = this._spdyState\n\n state.framer.ackSettingsFrame()\n\n this._setDefaultWindow(settings)\n if (settings.max_frame_size) { state.framer.setMaxFrameSize(settings.max_frame_size) }\n\n // TODO(indutny): handle max_header_list_size\n if (settings.header_table_size) {\n try {\n state.pair.compress.updateTableSize(settings.header_table_size)\n } catch (e) {\n this._goaway({\n lastId: 0,\n code: 'PROTOCOL_ERROR',\n send: true\n })\n return\n }\n }\n\n // HTTP2 clients needs to enable PUSH streams explicitly\n if (state.protocol.name !== 'spdy') {\n if (settings.enable_push === undefined) {\n state.framer.enablePush(state.isServer)\n } else {\n state.framer.enablePush(settings.enable_push === 1)\n }\n }\n\n // TODO(indutny): handle max_concurrent_streams\n}\n\nConnection.prototype._setDefaultWindow = function _setDefaultWindow (settings) {\n if (settings.initial_window_size === undefined) {\n return\n }\n\n var state = this._spdyState\n\n // Update defaults\n var window = state.streamWindow\n window.send.setMax(settings.initial_window_size)\n\n // Update existing streams\n Object.keys(state.stream.map).forEach(function (id) {\n var stream = state.stream.map[id]\n var window = stream._spdyState.window\n\n window.send.updateMax(settings.initial_window_size)\n })\n}\n\nConnection.prototype._handlePing = function handlePing (frame) {\n var self = this\n var state = this._spdyState\n\n // Handle incoming PING\n if (!frame.ack) {\n state.framer.pingFrame({\n opaque: frame.opaque,\n ack: true\n })\n\n self.emit('ping', frame.opaque)\n return\n }\n\n // Handle reply PING\n var hex = frame.opaque.toString('hex')\n if (!state.ping.map[hex]) {\n return\n }\n var ping = state.ping.map[hex]\n delete state.ping.map[hex]\n\n if (ping.cb) {\n ping.cb(null)\n }\n}\n\nConnection.prototype._handleGoaway = function handleGoaway (frame) {\n this._goaway({\n lastId: frame.lastId,\n code: frame.code,\n send: false\n })\n}\n\nConnection.prototype.ping = function ping (callback) {\n var state = this._spdyState\n\n // HTTP2 is using 8-byte opaque\n var opaque = Buffer.alloc(state.constants.PING_OPAQUE_SIZE)\n opaque.fill(0)\n opaque.writeUInt32BE(state.ping.nextId, opaque.length - 4)\n state.ping.nextId += 2\n\n state.ping.map[opaque.toString('hex')] = { cb: callback }\n state.framer.pingFrame({\n opaque: opaque,\n ack: false\n })\n}\n\nConnection.prototype.getCounter = function getCounter (name) {\n return this._spdyState.counters[name]\n}\n\nConnection.prototype.reserveStream = function reserveStream (uri, callback) {\n var stream = this._createStream(uri)\n\n // GOAWAY\n if (this._isGoaway(stream.id)) {\n var err = new Error('Can\\'t send request after GOAWAY')\n process.nextTick(function () {\n if (callback) { callback(err) } else {\n stream.emit('error', err)\n }\n })\n return stream\n }\n\n if (callback) {\n process.nextTick(function () {\n callback(null, stream)\n })\n }\n\n return stream\n}\n\nConnection.prototype.request = function request (uri, callback) {\n var stream = this.reserveStream(uri, function (err) {\n if (err) {\n if (callback) {\n callback(err)\n } else {\n stream.emit('error', err)\n }\n return\n }\n\n if (stream._wasSent()) {\n if (callback) {\n callback(null, stream)\n }\n return\n }\n\n stream.send(function (err) {\n if (err) {\n if (callback) { return callback(err) } else { return stream.emit('error', err) }\n }\n\n if (callback) {\n callback(null, stream)\n }\n })\n })\n\n return stream\n}\n\nConnection.prototype._removeStream = function _removeStream (stream) {\n var state = this._spdyState\n\n state.debug('id=0 remove stream=%d', stream.id)\n delete state.stream.map[stream.id]\n state.stream.count--\n\n if (state.stream.count === 0) {\n this.emit('_streamDrain')\n }\n}\n\nConnection.prototype._goaway = function _goaway (params) {\n var state = this._spdyState\n var self = this\n\n state.goaway = params.lastId\n state.debug('id=0 goaway from=%d', state.goaway)\n\n Object.keys(state.stream.map).forEach(function (id) {\n var stream = state.stream.map[id]\n\n // Abort every stream started after GOAWAY\n if (stream.id <= params.lastId) {\n return\n }\n\n stream.abort()\n stream.emit('error', new Error('New stream after GOAWAY'))\n })\n\n function finish () {\n // Destroy socket if there are no streams\n if (state.stream.count === 0 || params.code !== 'OK') {\n // No further frames should be processed\n state.parser.kill()\n\n process.nextTick(function () {\n var err = new Error('Fatal error: ' + params.code)\n self._onStreamDrain(err)\n })\n return\n }\n\n self.on('_streamDrain', self._onStreamDrain)\n }\n\n if (params.send) {\n // Make sure that GOAWAY frame is sent before dumping framer\n state.framer.goawayFrame({\n lastId: params.lastId,\n code: params.code,\n extra: params.extra\n }, finish)\n } else {\n finish()\n }\n}\n\nConnection.prototype._onStreamDrain = function _onStreamDrain (error) {\n var state = this._spdyState\n\n state.debug('id=0 _onStreamDrain')\n\n state.framer.dump()\n state.framer.unpipe(this.socket)\n state.framer.resume()\n\n if (this.socket.destroySoon) {\n this.socket.destroySoon()\n }\n this.emit('close', error)\n}\n\nConnection.prototype.end = function end (callback) {\n var state = this._spdyState\n\n if (callback) {\n this.once('close', callback)\n }\n this._goaway({\n lastId: state.stream.lastId.both,\n code: 'OK',\n send: true\n })\n}\n\nConnection.prototype.destroyStreams = function destroyStreams (err) {\n var state = this._spdyState\n Object.keys(state.stream.map).forEach(function (id) {\n var stream = state.stream.map[id]\n\n stream.destroy()\n if (err) {\n stream.emit('error', err)\n }\n })\n}\n\nConnection.prototype.isServer = function isServer () {\n return this._spdyState.isServer\n}\n\nConnection.prototype.getXForwardedFor = function getXForwardFor () {\n return this._spdyState.xForward\n}\n\nConnection.prototype.sendXForwardedFor = function sendXForwardedFor (host) {\n var state = this._spdyState\n if (state.version !== null) {\n state.framer.xForwardedFor({ host: host })\n } else {\n state.xForward = host\n }\n}\n\nConnection.prototype.pushPromise = function pushPromise (parent, uri, callback) {\n var state = this._spdyState\n\n var stream = this._createStream({\n request: false,\n parent: parent,\n method: uri.method,\n path: uri.path,\n host: uri.host,\n priority: uri.priority,\n headers: uri.headers,\n readable: false\n })\n\n var err\n\n // TODO(indutny): deduplicate this logic somehow\n if (this._isGoaway(stream.id)) {\n err = new Error('Can\\'t send PUSH_PROMISE after GOAWAY')\n\n process.nextTick(function () {\n if (callback) {\n callback(err)\n } else {\n stream.emit('error', err)\n }\n })\n return stream\n }\n\n if (uri.push && !state.acceptPush) {\n err = new Error(\n 'Can\\'t send PUSH_PROMISE, other side won\\'t accept it')\n process.nextTick(function () {\n if (callback) { callback(err) } else {\n stream.emit('error', err)\n }\n })\n return stream\n }\n\n stream._sendPush(uri.status, uri.response, function (err) {\n if (!callback) {\n if (err) {\n stream.emit('error', err)\n }\n return\n }\n\n if (err) { return callback(err) }\n callback(null, stream)\n })\n\n return stream\n}\n\nConnection.prototype.setTimeout = function setTimeout (delay, callback) {\n var state = this._spdyState\n\n state.timeout.set(delay, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/connection.js?");
31410
31430
 
31411
31431
  /***/ }),
31412
31432
 
@@ -31417,7 +31437,7 @@ eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar transport =
31417
31437
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31418
31438
 
31419
31439
  "use strict";
31420
- eval("\n\nvar transport = __webpack_require__(/*! ../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar utils = transport.utils\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:priority')\n\nfunction PriorityNode (tree, options) {\n this.tree = tree\n\n this.id = options.id\n this.parent = options.parent\n this.weight = options.weight\n\n // To be calculated in `addChild`\n this.priorityFrom = 0\n this.priorityTo = 1\n this.priority = 1\n\n this.children = {\n list: [],\n weight: 0\n }\n\n if (this.parent !== null) {\n this.parent.addChild(this)\n }\n}\n\nfunction compareChildren (a, b) {\n return a.weight === b.weight ? a.id - b.id : a.weight - b.weight\n}\n\nPriorityNode.prototype.toJSON = function toJSON () {\n return {\n parent: this.parent,\n weight: this.weight,\n exclusive: this.exclusive\n }\n}\n\nPriorityNode.prototype.getPriority = function getPriority () {\n return this.priority\n}\n\nPriorityNode.prototype.getPriorityRange = function getPriorityRange () {\n return { from: this.priorityFrom, to: this.priorityTo }\n}\n\nPriorityNode.prototype.addChild = function addChild (child) {\n child.parent = this\n utils.binaryInsert(this.children.list, child, compareChildren)\n this.children.weight += child.weight\n\n this._updatePriority(this.priorityFrom, this.priorityTo)\n}\n\nPriorityNode.prototype.remove = function remove () {\n assert(this.parent, 'Can\\'t remove root node')\n\n this.parent.removeChild(this)\n this.tree._removeNode(this)\n\n // Move all children to the parent\n for (var i = 0; i < this.children.list.length; i++) {\n this.parent.addChild(this.children.list[i])\n }\n}\n\nPriorityNode.prototype.removeChild = function removeChild (child) {\n this.children.weight -= child.weight\n var index = utils.binarySearch(this.children.list, child, compareChildren)\n if (index !== -1 && this.children.list.length >= index) {\n this.children.list.splice(index, 1)\n }\n}\n\nPriorityNode.prototype.removeChildren = function removeChildren () {\n var children = this.children.list\n this.children.list = []\n this.children.weight = 0\n return children\n}\n\nPriorityNode.prototype._updatePriority = function _updatePriority (from, to) {\n this.priority = to - from\n this.priorityFrom = from\n this.priorityTo = to\n\n var weight = 0\n for (var i = 0; i < this.children.list.length; i++) {\n var node = this.children.list[i]\n var nextWeight = weight + node.weight\n\n node._updatePriority(\n from + this.priority * (weight / this.children.weight),\n from + this.priority * (nextWeight / this.children.weight)\n )\n weight = nextWeight\n }\n}\n\nfunction PriorityTree (options) {\n this.map = {}\n this.list = []\n this.defaultWeight = options.defaultWeight || 16\n\n this.count = 0\n this.maxCount = options.maxCount\n\n // Root\n this.root = this.add({\n id: 0,\n parent: null,\n weight: 1\n })\n}\nmodule.exports = PriorityTree\n\nPriorityTree.create = function create (options) {\n return new PriorityTree(options)\n}\n\nPriorityTree.prototype.add = function add (options) {\n if (options.id === options.parent) {\n return this.addDefault(options.id)\n }\n\n var parent = options.parent === null ? null : this.map[options.parent]\n if (parent === undefined) {\n return this.addDefault(options.id)\n }\n\n debug('add node=%d parent=%d weight=%d exclusive=%d',\n options.id,\n options.parent === null ? -1 : options.parent,\n options.weight || this.defaultWeight,\n options.exclusive ? 1 : 0)\n\n var children\n if (options.exclusive) {\n children = parent.removeChildren()\n }\n\n var node = new PriorityNode(this, {\n id: options.id,\n parent: parent,\n weight: options.weight || this.defaultWeight\n })\n this.map[options.id] = node\n\n if (options.exclusive) {\n for (var i = 0; i < children.length; i++) {\n node.addChild(children[i])\n }\n }\n\n this.count++\n if (this.count > this.maxCount) {\n debug('hit maximum remove id=%d', this.list[0].id)\n this.list.shift().remove()\n }\n\n // Root node is not subject to removal\n if (node.parent !== null) {\n this.list.push(node)\n }\n\n return node\n}\n\n// Only for testing, should use `node`'s methods\nPriorityTree.prototype.get = function get (id) {\n return this.map[id]\n}\n\nPriorityTree.prototype.addDefault = function addDefault (id) {\n debug('creating default node')\n return this.add({ id: id, parent: 0, weight: this.defaultWeight })\n}\n\nPriorityTree.prototype._removeNode = function _removeNode (node) {\n delete this.map[node.id]\n var index = utils.binarySearch(this.list, node, compareChildren)\n this.list.splice(index, 1)\n this.count--\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/priority.js?");
31440
+ eval("\n\nvar transport = __webpack_require__(/*! ../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar utils = transport.utils\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:priority')\n\nfunction PriorityNode (tree, options) {\n this.tree = tree\n\n this.id = options.id\n this.parent = options.parent\n this.weight = options.weight\n\n // To be calculated in `addChild`\n this.priorityFrom = 0\n this.priorityTo = 1\n this.priority = 1\n\n this.children = {\n list: [],\n weight: 0\n }\n\n if (this.parent !== null) {\n this.parent.addChild(this)\n }\n}\n\nfunction compareChildren (a, b) {\n return a.weight === b.weight ? a.id - b.id : a.weight - b.weight\n}\n\nPriorityNode.prototype.toJSON = function toJSON () {\n return {\n parent: this.parent,\n weight: this.weight,\n exclusive: this.exclusive\n }\n}\n\nPriorityNode.prototype.getPriority = function getPriority () {\n return this.priority\n}\n\nPriorityNode.prototype.getPriorityRange = function getPriorityRange () {\n return { from: this.priorityFrom, to: this.priorityTo }\n}\n\nPriorityNode.prototype.addChild = function addChild (child) {\n child.parent = this\n utils.binaryInsert(this.children.list, child, compareChildren)\n this.children.weight += child.weight\n\n this._updatePriority(this.priorityFrom, this.priorityTo)\n}\n\nPriorityNode.prototype.remove = function remove () {\n assert(this.parent, 'Can\\'t remove root node')\n\n this.parent.removeChild(this)\n this.tree._removeNode(this)\n\n // Move all children to the parent\n for (var i = 0; i < this.children.list.length; i++) {\n this.parent.addChild(this.children.list[i])\n }\n}\n\nPriorityNode.prototype.removeChild = function removeChild (child) {\n this.children.weight -= child.weight\n var index = utils.binarySearch(this.children.list, child, compareChildren)\n if (index !== -1 && this.children.list.length >= index) {\n this.children.list.splice(index, 1)\n }\n}\n\nPriorityNode.prototype.removeChildren = function removeChildren () {\n var children = this.children.list\n this.children.list = []\n this.children.weight = 0\n return children\n}\n\nPriorityNode.prototype._updatePriority = function _updatePriority (from, to) {\n this.priority = to - from\n this.priorityFrom = from\n this.priorityTo = to\n\n var weight = 0\n for (var i = 0; i < this.children.list.length; i++) {\n var node = this.children.list[i]\n var nextWeight = weight + node.weight\n\n node._updatePriority(\n from + this.priority * (weight / this.children.weight),\n from + this.priority * (nextWeight / this.children.weight)\n )\n weight = nextWeight\n }\n}\n\nfunction PriorityTree (options) {\n this.map = {}\n this.list = []\n this.defaultWeight = options.defaultWeight || 16\n\n this.count = 0\n this.maxCount = options.maxCount\n\n // Root\n this.root = this.add({\n id: 0,\n parent: null,\n weight: 1\n })\n}\nmodule.exports = PriorityTree\n\nPriorityTree.create = function create (options) {\n return new PriorityTree(options)\n}\n\nPriorityTree.prototype.add = function add (options) {\n if (options.id === options.parent) {\n return this.addDefault(options.id)\n }\n\n var parent = options.parent === null ? null : this.map[options.parent]\n if (parent === undefined) {\n return this.addDefault(options.id)\n }\n\n debug('add node=%d parent=%d weight=%d exclusive=%d',\n options.id,\n options.parent === null ? -1 : options.parent,\n options.weight || this.defaultWeight,\n options.exclusive ? 1 : 0)\n\n var children\n if (options.exclusive) {\n children = parent.removeChildren()\n }\n\n var node = new PriorityNode(this, {\n id: options.id,\n parent: parent,\n weight: options.weight || this.defaultWeight\n })\n this.map[options.id] = node\n\n if (options.exclusive) {\n for (var i = 0; i < children.length; i++) {\n node.addChild(children[i])\n }\n }\n\n this.count++\n if (this.count > this.maxCount) {\n debug('hit maximum remove id=%d', this.list[0].id)\n this.list.shift().remove()\n }\n\n // Root node is not subject to removal\n if (node.parent !== null) {\n this.list.push(node)\n }\n\n return node\n}\n\n// Only for testing, should use `node`'s methods\nPriorityTree.prototype.get = function get (id) {\n return this.map[id]\n}\n\nPriorityTree.prototype.addDefault = function addDefault (id) {\n debug('creating default node')\n return this.add({ id: id, parent: 0, weight: this.defaultWeight })\n}\n\nPriorityTree.prototype._removeNode = function _removeNode (node) {\n delete this.map[node.id]\n var index = utils.binarySearch(this.list, node, compareChildren)\n this.list.splice(index, 1)\n this.count--\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/priority.js?");
31421
31441
 
31422
31442
  /***/ }),
31423
31443
 
@@ -31471,7 +31491,7 @@ eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \".
31471
31491
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31472
31492
 
31473
31493
  "use strict";
31474
- eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar utils = transport.utils\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:scheduler')\nvar Readable = (__webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\").Readable)\n\n/*\n * We create following structure in `pending`:\n * [ [ id = 0 ], [ id = 1 ], [ id = 2 ], [ id = 0 ] ]\n * chunks chunks chunks chunks\n * chunks chunks\n * chunks\n *\n * Then on the `.tick()` pass we pick one chunks from each item and remove the\n * item if it is empty:\n *\n * [ [ id = 0 ], [ id = 2 ] ]\n * chunks chunks\n * chunks\n *\n * Writing out: chunks for 0, chunks for 1, chunks for 2, chunks for 0\n *\n * This way data is interleaved between the different streams.\n */\n\nfunction Scheduler (options) {\n Readable.call(this)\n\n // Pretty big window by default\n this.window = 0.25\n\n if (options && options.window) { this.window = options.window }\n\n this.sync = []\n this.list = []\n this.count = 0\n this.pendingTick = false\n}\nutil.inherits(Scheduler, Readable)\nmodule.exports = Scheduler\n\n// Just for testing, really\nScheduler.create = function create (options) {\n return new Scheduler(options)\n}\n\nfunction insertCompare (a, b) {\n return a.priority === b.priority\n ? a.stream - b.stream\n : b.priority - a.priority\n}\n\nScheduler.prototype.schedule = function schedule (data) {\n var priority = data.priority\n var stream = data.stream\n var chunks = data.chunks\n\n // Synchronous frames should not be interleaved\n if (priority === false) {\n debug('queue sync', chunks)\n this.sync.push(data)\n this.count += chunks.length\n\n this._read()\n return\n }\n\n debug('queue async priority=%d stream=%d', priority, stream, chunks)\n var item = new SchedulerItem(stream, priority)\n var index = utils.binaryLookup(this.list, item, insertCompare)\n\n // Push new item\n if (index >= this.list.length || insertCompare(this.list[index], item) !== 0) {\n this.list.splice(index, 0, item)\n } else { // Coalesce\n item = this.list[index]\n }\n\n item.push(data)\n\n this.count += chunks.length\n\n this._read()\n}\n\nScheduler.prototype._read = function _read () {\n if (this.count === 0) {\n return\n }\n\n if (this.pendingTick) {\n return\n }\n this.pendingTick = true\n\n var self = this\n process.nextTick(function () {\n self.pendingTick = false\n self.tick()\n })\n}\n\nScheduler.prototype.tick = function tick () {\n // No luck for async frames\n if (!this.tickSync()) { return false }\n\n return this.tickAsync()\n}\n\nScheduler.prototype.tickSync = function tickSync () {\n // Empty sync queue first\n var sync = this.sync\n var res = true\n this.sync = []\n for (var i = 0; i < sync.length; i++) {\n var item = sync[i]\n debug('tick sync pending=%d', this.count, item.chunks)\n for (var j = 0; j < item.chunks.length; j++) {\n this.count--\n // TODO: handle stream backoff properly\n try {\n res = this.push(item.chunks[j])\n } catch (err) {\n this.emit('error', err)\n return false\n }\n }\n debug('after tick sync pending=%d', this.count)\n\n // TODO(indutny): figure out the way to invoke callback on actual write\n if (item.callback) {\n item.callback(null)\n }\n }\n return res\n}\n\nScheduler.prototype.tickAsync = function tickAsync () {\n var res = true\n var list = this.list\n if (list.length === 0) {\n return res\n }\n\n var startPriority = list[0].priority\n for (var index = 0; list.length > 0; index++) {\n // Loop index\n index %= list.length\n if (startPriority - list[index].priority > this.window) { index = 0 }\n debug('tick async index=%d start=%d', index, startPriority)\n\n var current = list[index]\n var item = current.shift()\n\n if (current.isEmpty()) {\n list.splice(index, 1)\n if (index === 0 && list.length > 0) {\n startPriority = list[0].priority\n }\n index--\n }\n\n debug('tick async pending=%d', this.count, item.chunks)\n for (var i = 0; i < item.chunks.length; i++) {\n this.count--\n // TODO: handle stream backoff properly\n try {\n res = this.push(item.chunks[i])\n } catch (err) {\n this.emit('error', err)\n return false\n }\n }\n debug('after tick pending=%d', this.count)\n\n // TODO(indutny): figure out the way to invoke callback on actual write\n if (item.callback) {\n item.callback(null)\n }\n if (!res) { break }\n }\n\n return res\n}\n\nScheduler.prototype.dump = function dump () {\n this.tickSync()\n\n // Write everything out\n while (!this.tickAsync()) {\n // Intentional no-op\n }\n assert.strictEqual(this.count, 0)\n}\n\nfunction SchedulerItem (stream, priority) {\n this.stream = stream\n this.priority = priority\n this.queue = []\n}\n\nSchedulerItem.prototype.push = function push (chunks) {\n this.queue.push(chunks)\n}\n\nSchedulerItem.prototype.shift = function shift () {\n return this.queue.shift()\n}\n\nSchedulerItem.prototype.isEmpty = function isEmpty () {\n return this.queue.length === 0\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js?");
31494
+ eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar utils = transport.utils\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:scheduler')\nvar Readable = (__webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\").Readable)\n\n/*\n * We create following structure in `pending`:\n * [ [ id = 0 ], [ id = 1 ], [ id = 2 ], [ id = 0 ] ]\n * chunks chunks chunks chunks\n * chunks chunks\n * chunks\n *\n * Then on the `.tick()` pass we pick one chunks from each item and remove the\n * item if it is empty:\n *\n * [ [ id = 0 ], [ id = 2 ] ]\n * chunks chunks\n * chunks\n *\n * Writing out: chunks for 0, chunks for 1, chunks for 2, chunks for 0\n *\n * This way data is interleaved between the different streams.\n */\n\nfunction Scheduler (options) {\n Readable.call(this)\n\n // Pretty big window by default\n this.window = 0.25\n\n if (options && options.window) { this.window = options.window }\n\n this.sync = []\n this.list = []\n this.count = 0\n this.pendingTick = false\n}\nutil.inherits(Scheduler, Readable)\nmodule.exports = Scheduler\n\n// Just for testing, really\nScheduler.create = function create (options) {\n return new Scheduler(options)\n}\n\nfunction insertCompare (a, b) {\n return a.priority === b.priority\n ? a.stream - b.stream\n : b.priority - a.priority\n}\n\nScheduler.prototype.schedule = function schedule (data) {\n var priority = data.priority\n var stream = data.stream\n var chunks = data.chunks\n\n // Synchronous frames should not be interleaved\n if (priority === false) {\n debug('queue sync', chunks)\n this.sync.push(data)\n this.count += chunks.length\n\n this._read()\n return\n }\n\n debug('queue async priority=%d stream=%d', priority, stream, chunks)\n var item = new SchedulerItem(stream, priority)\n var index = utils.binaryLookup(this.list, item, insertCompare)\n\n // Push new item\n if (index >= this.list.length || insertCompare(this.list[index], item) !== 0) {\n this.list.splice(index, 0, item)\n } else { // Coalesce\n item = this.list[index]\n }\n\n item.push(data)\n\n this.count += chunks.length\n\n this._read()\n}\n\nScheduler.prototype._read = function _read () {\n if (this.count === 0) {\n return\n }\n\n if (this.pendingTick) {\n return\n }\n this.pendingTick = true\n\n var self = this\n process.nextTick(function () {\n self.pendingTick = false\n self.tick()\n })\n}\n\nScheduler.prototype.tick = function tick () {\n // No luck for async frames\n if (!this.tickSync()) { return false }\n\n return this.tickAsync()\n}\n\nScheduler.prototype.tickSync = function tickSync () {\n // Empty sync queue first\n var sync = this.sync\n var res = true\n this.sync = []\n for (var i = 0; i < sync.length; i++) {\n var item = sync[i]\n debug('tick sync pending=%d', this.count, item.chunks)\n for (var j = 0; j < item.chunks.length; j++) {\n this.count--\n // TODO: handle stream backoff properly\n try {\n res = this.push(item.chunks[j])\n } catch (err) {\n this.emit('error', err)\n return false\n }\n }\n debug('after tick sync pending=%d', this.count)\n\n // TODO(indutny): figure out the way to invoke callback on actual write\n if (item.callback) {\n item.callback(null)\n }\n }\n return res\n}\n\nScheduler.prototype.tickAsync = function tickAsync () {\n var res = true\n var list = this.list\n if (list.length === 0) {\n return res\n }\n\n var startPriority = list[0].priority\n for (var index = 0; list.length > 0; index++) {\n // Loop index\n index %= list.length\n if (startPriority - list[index].priority > this.window) { index = 0 }\n debug('tick async index=%d start=%d', index, startPriority)\n\n var current = list[index]\n var item = current.shift()\n\n if (current.isEmpty()) {\n list.splice(index, 1)\n if (index === 0 && list.length > 0) {\n startPriority = list[0].priority\n }\n index--\n }\n\n debug('tick async pending=%d', this.count, item.chunks)\n for (var i = 0; i < item.chunks.length; i++) {\n this.count--\n // TODO: handle stream backoff properly\n try {\n res = this.push(item.chunks[i])\n } catch (err) {\n this.emit('error', err)\n return false\n }\n }\n debug('after tick pending=%d', this.count)\n\n // TODO(indutny): figure out the way to invoke callback on actual write\n if (item.callback) {\n item.callback(null)\n }\n if (!res) { break }\n }\n\n return res\n}\n\nScheduler.prototype.dump = function dump () {\n this.tickSync()\n\n // Write everything out\n while (!this.tickAsync()) {\n // Intentional no-op\n }\n assert.strictEqual(this.count, 0)\n}\n\nfunction SchedulerItem (stream, priority) {\n this.stream = stream\n this.priority = priority\n this.queue = []\n}\n\nSchedulerItem.prototype.push = function push (chunks) {\n this.queue.push(chunks)\n}\n\nSchedulerItem.prototype.shift = function shift () {\n return this.queue.shift()\n}\n\nSchedulerItem.prototype.isEmpty = function isEmpty () {\n return this.queue.length === 0\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js?");
31475
31495
 
31476
31496
  /***/ }),
31477
31497
 
@@ -31504,7 +31524,7 @@ eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \".
31504
31524
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31505
31525
 
31506
31526
  "use strict";
31507
- eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar base = transport.protocol.base\nvar constants = (__webpack_require__(/*! ./ */ \"./node_modules/spdy-transport/lib/spdy-transport/protocol/http2/index.js\").constants)\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar WriteBuffer = __webpack_require__(/*! wbuf */ \"./node_modules/wbuf/index.js\")\nvar OffsetBuffer = __webpack_require__(/*! obuf */ \"./node_modules/obuf/index.js\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:framer')\nvar debugExtra = __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:framer:extra')\n\nfunction Framer (options) {\n base.Framer.call(this, options)\n\n this.maxFrameSize = constants.INITIAL_MAX_FRAME_SIZE\n}\nutil.inherits(Framer, base.Framer)\nmodule.exports = Framer\n\nFramer.create = function create (options) {\n return new Framer(options)\n}\n\nFramer.prototype.setMaxFrameSize = function setMaxFrameSize (size) {\n this.maxFrameSize = size\n}\n\nFramer.prototype._frame = function _frame (frame, body, callback) {\n debug('id=%d type=%s', frame.id, frame.type)\n\n var buffer = new WriteBuffer()\n\n buffer.reserve(constants.FRAME_HEADER_SIZE)\n var len = buffer.skip(3)\n buffer.writeUInt8(constants.frameType[frame.type])\n buffer.writeUInt8(frame.flags)\n buffer.writeUInt32BE(frame.id & 0x7fffffff)\n\n body(buffer)\n\n var frameSize = buffer.size - constants.FRAME_HEADER_SIZE\n len.writeUInt24BE(frameSize)\n\n var chunks = buffer.render()\n var toWrite = {\n stream: frame.id,\n priority: frame.priority === undefined ? false : frame.priority,\n chunks: chunks,\n callback: callback\n }\n\n if (this.window && frame.type === 'DATA') {\n var self = this\n this._resetTimeout()\n this.window.send.update(-frameSize, function () {\n self._resetTimeout()\n self.schedule(toWrite)\n })\n } else {\n this._resetTimeout()\n this.schedule(toWrite)\n }\n\n return chunks\n}\n\nFramer.prototype._split = function _split (frame) {\n var buf = new OffsetBuffer()\n for (var i = 0; i < frame.chunks.length; i++) { buf.push(frame.chunks[i]) }\n\n var frames = []\n while (!buf.isEmpty()) {\n // First frame may have reserved bytes in it\n var size = this.maxFrameSize\n if (frames.length === 0) {\n size -= frame.reserve\n }\n size = Math.min(size, buf.size)\n\n var frameBuf = buf.clone(size)\n buf.skip(size)\n\n frames.push({\n size: frameBuf.size,\n chunks: frameBuf.toChunks()\n })\n }\n\n return frames\n}\n\nFramer.prototype._continuationFrame = function _continuationFrame (frame,\n body,\n callback) {\n var frames = this._split(frame)\n\n frames.forEach(function (subFrame, i) {\n var isFirst = i === 0\n var isLast = i === frames.length - 1\n\n var flags = isLast ? constants.flags.END_HEADERS : 0\n\n // PRIORITY and friends\n if (isFirst) {\n flags |= frame.flags\n }\n\n this._frame({\n id: frame.id,\n priority: false,\n type: isFirst ? frame.type : 'CONTINUATION',\n flags: flags\n }, function (buf) {\n // Fill those reserved bytes\n if (isFirst && body) { body(buf) }\n\n buf.reserve(subFrame.size)\n for (var i = 0; i < subFrame.chunks.length; i++) { buf.copyFrom(subFrame.chunks[i]) }\n }, isLast ? callback : null)\n }, this)\n\n if (frames.length === 0) {\n this._frame({\n id: frame.id,\n priority: false,\n type: frame.type,\n flags: frame.flags | constants.flags.END_HEADERS\n }, function (buf) {\n if (body) { body(buf) }\n }, callback)\n }\n}\n\nFramer.prototype._compressHeaders = function _compressHeaders (headers,\n pairs,\n callback) {\n Object.keys(headers || {}).forEach(function (name) {\n var lowName = name.toLowerCase()\n\n // Not allowed in HTTP2\n switch (lowName) {\n case 'host':\n case 'connection':\n case 'keep-alive':\n case 'proxy-connection':\n case 'transfer-encoding':\n case 'upgrade':\n return\n }\n\n // Should be in `pairs`\n if (/^:/.test(lowName)) {\n return\n }\n\n // Do not compress, or index Cookie field (for security reasons)\n var neverIndex = lowName === 'cookie' || lowName === 'set-cookie'\n\n var value = headers[name]\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n pairs.push({\n name: lowName,\n value: value[i] + '',\n neverIndex: neverIndex,\n huffman: !neverIndex\n })\n }\n } else {\n pairs.push({\n name: lowName,\n value: value + '',\n neverIndex: neverIndex,\n huffman: !neverIndex\n })\n }\n })\n\n assert(this.compress !== null, 'Framer version not initialized')\n debugExtra('compressing headers=%j', pairs)\n this.compress.write([ pairs ], callback)\n}\n\nFramer.prototype._isDefaultPriority = function _isDefaultPriority (priority) {\n if (!priority) { return true }\n\n return !priority.parent &&\n priority.weight === constants.DEFAULT &&\n !priority.exclusive\n}\n\nFramer.prototype._defaultHeaders = function _defaultHeaders (frame, pairs) {\n if (!frame.path) {\n throw new Error('`path` is required frame argument')\n }\n\n pairs.push({\n name: ':method',\n value: frame.method || base.constants.DEFAULT_METHOD\n })\n pairs.push({ name: ':path', value: frame.path })\n pairs.push({ name: ':scheme', value: frame.scheme || 'https' })\n pairs.push({\n name: ':authority',\n value: frame.host ||\n (frame.headers && frame.headers.host) ||\n base.constants.DEFAULT_HOST\n })\n}\n\nFramer.prototype._headersFrame = function _headersFrame (kind, frame, callback) {\n var pairs = []\n\n if (kind === 'request') {\n this._defaultHeaders(frame, pairs)\n } else if (kind === 'response') {\n pairs.push({ name: ':status', value: (frame.status || 200) + '' })\n }\n\n var self = this\n this._compressHeaders(frame.headers, pairs, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n var reserve = 0\n\n // If priority info is present, and the values are not default ones\n // reserve space for the priority info and add PRIORITY flag\n var priority = frame.priority\n if (!self._isDefaultPriority(priority)) { reserve = 5 }\n\n var flags = reserve === 0 ? 0 : constants.flags.PRIORITY\n\n // Mostly for testing\n if (frame.fin) {\n flags |= constants.flags.END_STREAM\n }\n\n self._continuationFrame({\n id: frame.id,\n type: 'HEADERS',\n flags: flags,\n reserve: reserve,\n chunks: chunks\n }, function (buf) {\n if (reserve === 0) {\n return\n }\n\n buf.writeUInt32BE(((priority.exclusive ? 0x80000000 : 0) |\n priority.parent) >>> 0)\n buf.writeUInt8((priority.weight | 0) - 1)\n }, callback)\n })\n}\n\nFramer.prototype.requestFrame = function requestFrame (frame, callback) {\n return this._headersFrame('request', frame, callback)\n}\n\nFramer.prototype.responseFrame = function responseFrame (frame, callback) {\n return this._headersFrame('response', frame, callback)\n}\n\nFramer.prototype.headersFrame = function headersFrame (frame, callback) {\n return this._headersFrame('headers', frame, callback)\n}\n\nFramer.prototype.pushFrame = function pushFrame (frame, callback) {\n var self = this\n\n function compress (headers, pairs, callback) {\n self._compressHeaders(headers, pairs, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n callback(chunks)\n })\n }\n\n function sendPromise (chunks) {\n self._continuationFrame({\n id: frame.id,\n type: 'PUSH_PROMISE',\n reserve: 4,\n chunks: chunks\n }, function (buf) {\n buf.writeUInt32BE(frame.promisedId)\n })\n }\n\n function sendResponse (chunks, callback) {\n var priority = frame.priority\n var isDefaultPriority = self._isDefaultPriority(priority)\n var flags = isDefaultPriority ? 0 : constants.flags.PRIORITY\n\n // Mostly for testing\n if (frame.fin) {\n flags |= constants.flags.END_STREAM\n }\n\n self._continuationFrame({\n id: frame.promisedId,\n type: 'HEADERS',\n flags: flags,\n reserve: isDefaultPriority ? 0 : 5,\n chunks: chunks\n }, function (buf) {\n if (isDefaultPriority) {\n return\n }\n\n buf.writeUInt32BE((priority.exclusive ? 0x80000000 : 0) |\n priority.parent)\n buf.writeUInt8((priority.weight | 0) - 1)\n }, callback)\n }\n\n this._checkPush(function (err) {\n if (err) {\n return callback(err)\n }\n\n var pairs = {\n promise: [],\n response: []\n }\n\n self._defaultHeaders(frame, pairs.promise)\n pairs.response.push({ name: ':status', value: (frame.status || 200) + '' })\n\n compress(frame.headers, pairs.promise, function (promiseChunks) {\n sendPromise(promiseChunks)\n if (frame.response === false) {\n return callback(null)\n }\n compress(frame.response, pairs.response, function (responseChunks) {\n sendResponse(responseChunks, callback)\n })\n })\n })\n}\n\nFramer.prototype.priorityFrame = function priorityFrame (frame, callback) {\n this._frame({\n id: frame.id,\n priority: false,\n type: 'PRIORITY',\n flags: 0\n }, function (buf) {\n var priority = frame.priority\n buf.writeUInt32BE((priority.exclusive ? 0x80000000 : 0) |\n priority.parent)\n buf.writeUInt8((priority.weight | 0) - 1)\n }, callback)\n}\n\nFramer.prototype.dataFrame = function dataFrame (frame, callback) {\n var frames = this._split({\n reserve: 0,\n chunks: [ frame.data ]\n })\n\n var fin = frame.fin ? constants.flags.END_STREAM : 0\n\n var self = this\n frames.forEach(function (subFrame, i) {\n var isLast = i === frames.length - 1\n var flags = 0\n if (isLast) {\n flags |= fin\n }\n\n self._frame({\n id: frame.id,\n priority: frame.priority,\n type: 'DATA',\n flags: flags\n }, function (buf) {\n buf.reserve(subFrame.size)\n for (var i = 0; i < subFrame.chunks.length; i++) { buf.copyFrom(subFrame.chunks[i]) }\n }, isLast ? callback : null)\n })\n\n // Empty DATA\n if (frames.length === 0) {\n this._frame({\n id: frame.id,\n priority: frame.priority,\n type: 'DATA',\n flags: fin\n }, function (buf) {\n // No-op\n }, callback)\n }\n}\n\nFramer.prototype.pingFrame = function pingFrame (frame, callback) {\n this._frame({\n id: 0,\n type: 'PING',\n flags: frame.ack ? constants.flags.ACK : 0\n }, function (buf) {\n buf.copyFrom(frame.opaque)\n }, callback)\n}\n\nFramer.prototype.rstFrame = function rstFrame (frame, callback) {\n this._frame({\n id: frame.id,\n type: 'RST_STREAM',\n flags: 0\n }, function (buf) {\n buf.writeUInt32BE(constants.error[frame.code])\n }, callback)\n}\n\nFramer.prototype.prefaceFrame = function prefaceFrame (callback) {\n debug('preface')\n this._resetTimeout()\n this.schedule({\n stream: 0,\n priority: false,\n chunks: [ constants.PREFACE_BUFFER ],\n callback: callback\n })\n}\n\nFramer.prototype.settingsFrame = function settingsFrame (options, callback) {\n var key = JSON.stringify(options)\n\n var settings = Framer.settingsCache[key]\n if (settings) {\n debug('cached settings')\n this._resetTimeout()\n this.schedule({\n id: 0,\n priority: false,\n chunks: settings,\n callback: callback\n })\n return\n }\n\n var params = []\n for (var i = 0; i < constants.settingsIndex.length; i++) {\n var name = constants.settingsIndex[i]\n if (!name) {\n continue\n }\n\n // value: Infinity\n if (!isFinite(options[name])) {\n continue\n }\n\n if (options[name] !== undefined) {\n params.push({ key: i, value: options[name] })\n }\n }\n\n var bodySize = params.length * 6\n\n var chunks = this._frame({\n id: 0,\n type: 'SETTINGS',\n flags: 0\n }, function (buffer) {\n buffer.reserve(bodySize)\n for (var i = 0; i < params.length; i++) {\n var param = params[i]\n\n buffer.writeUInt16BE(param.key)\n buffer.writeUInt32BE(param.value)\n }\n }, callback)\n\n Framer.settingsCache[key] = chunks\n}\nFramer.settingsCache = {}\n\nFramer.prototype.ackSettingsFrame = function ackSettingsFrame (callback) {\n /* var chunks = */ this._frame({\n id: 0,\n type: 'SETTINGS',\n flags: constants.flags.ACK\n }, function (buffer) {\n // No-op\n }, callback)\n}\n\nFramer.prototype.windowUpdateFrame = function windowUpdateFrame (frame,\n callback) {\n this._frame({\n id: frame.id,\n type: 'WINDOW_UPDATE',\n flags: 0\n }, function (buffer) {\n buffer.reserve(4)\n buffer.writeInt32BE(frame.delta)\n }, callback)\n}\n\nFramer.prototype.goawayFrame = function goawayFrame (frame, callback) {\n this._frame({\n type: 'GOAWAY',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // Last-good-stream-ID\n buf.writeUInt32BE(frame.lastId & 0x7fffffff)\n // Code\n buf.writeUInt32BE(constants.goaway[frame.code])\n\n // Extra debugging information\n if (frame.extra) { buf.write(frame.extra) }\n }, callback)\n}\n\nFramer.prototype.xForwardedFor = function xForwardedFor (frame, callback) {\n this._frame({\n type: 'X_FORWARDED_FOR',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.write(frame.host)\n }, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/protocol/http2/framer.js?");
31527
+ eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar base = transport.protocol.base\nvar constants = (__webpack_require__(/*! ./ */ \"./node_modules/spdy-transport/lib/spdy-transport/protocol/http2/index.js\").constants)\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar WriteBuffer = __webpack_require__(/*! wbuf */ \"./node_modules/wbuf/index.js\")\nvar OffsetBuffer = __webpack_require__(/*! obuf */ \"./node_modules/obuf/index.js\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:framer')\nvar debugExtra = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:framer:extra')\n\nfunction Framer (options) {\n base.Framer.call(this, options)\n\n this.maxFrameSize = constants.INITIAL_MAX_FRAME_SIZE\n}\nutil.inherits(Framer, base.Framer)\nmodule.exports = Framer\n\nFramer.create = function create (options) {\n return new Framer(options)\n}\n\nFramer.prototype.setMaxFrameSize = function setMaxFrameSize (size) {\n this.maxFrameSize = size\n}\n\nFramer.prototype._frame = function _frame (frame, body, callback) {\n debug('id=%d type=%s', frame.id, frame.type)\n\n var buffer = new WriteBuffer()\n\n buffer.reserve(constants.FRAME_HEADER_SIZE)\n var len = buffer.skip(3)\n buffer.writeUInt8(constants.frameType[frame.type])\n buffer.writeUInt8(frame.flags)\n buffer.writeUInt32BE(frame.id & 0x7fffffff)\n\n body(buffer)\n\n var frameSize = buffer.size - constants.FRAME_HEADER_SIZE\n len.writeUInt24BE(frameSize)\n\n var chunks = buffer.render()\n var toWrite = {\n stream: frame.id,\n priority: frame.priority === undefined ? false : frame.priority,\n chunks: chunks,\n callback: callback\n }\n\n if (this.window && frame.type === 'DATA') {\n var self = this\n this._resetTimeout()\n this.window.send.update(-frameSize, function () {\n self._resetTimeout()\n self.schedule(toWrite)\n })\n } else {\n this._resetTimeout()\n this.schedule(toWrite)\n }\n\n return chunks\n}\n\nFramer.prototype._split = function _split (frame) {\n var buf = new OffsetBuffer()\n for (var i = 0; i < frame.chunks.length; i++) { buf.push(frame.chunks[i]) }\n\n var frames = []\n while (!buf.isEmpty()) {\n // First frame may have reserved bytes in it\n var size = this.maxFrameSize\n if (frames.length === 0) {\n size -= frame.reserve\n }\n size = Math.min(size, buf.size)\n\n var frameBuf = buf.clone(size)\n buf.skip(size)\n\n frames.push({\n size: frameBuf.size,\n chunks: frameBuf.toChunks()\n })\n }\n\n return frames\n}\n\nFramer.prototype._continuationFrame = function _continuationFrame (frame,\n body,\n callback) {\n var frames = this._split(frame)\n\n frames.forEach(function (subFrame, i) {\n var isFirst = i === 0\n var isLast = i === frames.length - 1\n\n var flags = isLast ? constants.flags.END_HEADERS : 0\n\n // PRIORITY and friends\n if (isFirst) {\n flags |= frame.flags\n }\n\n this._frame({\n id: frame.id,\n priority: false,\n type: isFirst ? frame.type : 'CONTINUATION',\n flags: flags\n }, function (buf) {\n // Fill those reserved bytes\n if (isFirst && body) { body(buf) }\n\n buf.reserve(subFrame.size)\n for (var i = 0; i < subFrame.chunks.length; i++) { buf.copyFrom(subFrame.chunks[i]) }\n }, isLast ? callback : null)\n }, this)\n\n if (frames.length === 0) {\n this._frame({\n id: frame.id,\n priority: false,\n type: frame.type,\n flags: frame.flags | constants.flags.END_HEADERS\n }, function (buf) {\n if (body) { body(buf) }\n }, callback)\n }\n}\n\nFramer.prototype._compressHeaders = function _compressHeaders (headers,\n pairs,\n callback) {\n Object.keys(headers || {}).forEach(function (name) {\n var lowName = name.toLowerCase()\n\n // Not allowed in HTTP2\n switch (lowName) {\n case 'host':\n case 'connection':\n case 'keep-alive':\n case 'proxy-connection':\n case 'transfer-encoding':\n case 'upgrade':\n return\n }\n\n // Should be in `pairs`\n if (/^:/.test(lowName)) {\n return\n }\n\n // Do not compress, or index Cookie field (for security reasons)\n var neverIndex = lowName === 'cookie' || lowName === 'set-cookie'\n\n var value = headers[name]\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n pairs.push({\n name: lowName,\n value: value[i] + '',\n neverIndex: neverIndex,\n huffman: !neverIndex\n })\n }\n } else {\n pairs.push({\n name: lowName,\n value: value + '',\n neverIndex: neverIndex,\n huffman: !neverIndex\n })\n }\n })\n\n assert(this.compress !== null, 'Framer version not initialized')\n debugExtra('compressing headers=%j', pairs)\n this.compress.write([ pairs ], callback)\n}\n\nFramer.prototype._isDefaultPriority = function _isDefaultPriority (priority) {\n if (!priority) { return true }\n\n return !priority.parent &&\n priority.weight === constants.DEFAULT &&\n !priority.exclusive\n}\n\nFramer.prototype._defaultHeaders = function _defaultHeaders (frame, pairs) {\n if (!frame.path) {\n throw new Error('`path` is required frame argument')\n }\n\n pairs.push({\n name: ':method',\n value: frame.method || base.constants.DEFAULT_METHOD\n })\n pairs.push({ name: ':path', value: frame.path })\n pairs.push({ name: ':scheme', value: frame.scheme || 'https' })\n pairs.push({\n name: ':authority',\n value: frame.host ||\n (frame.headers && frame.headers.host) ||\n base.constants.DEFAULT_HOST\n })\n}\n\nFramer.prototype._headersFrame = function _headersFrame (kind, frame, callback) {\n var pairs = []\n\n if (kind === 'request') {\n this._defaultHeaders(frame, pairs)\n } else if (kind === 'response') {\n pairs.push({ name: ':status', value: (frame.status || 200) + '' })\n }\n\n var self = this\n this._compressHeaders(frame.headers, pairs, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n var reserve = 0\n\n // If priority info is present, and the values are not default ones\n // reserve space for the priority info and add PRIORITY flag\n var priority = frame.priority\n if (!self._isDefaultPriority(priority)) { reserve = 5 }\n\n var flags = reserve === 0 ? 0 : constants.flags.PRIORITY\n\n // Mostly for testing\n if (frame.fin) {\n flags |= constants.flags.END_STREAM\n }\n\n self._continuationFrame({\n id: frame.id,\n type: 'HEADERS',\n flags: flags,\n reserve: reserve,\n chunks: chunks\n }, function (buf) {\n if (reserve === 0) {\n return\n }\n\n buf.writeUInt32BE(((priority.exclusive ? 0x80000000 : 0) |\n priority.parent) >>> 0)\n buf.writeUInt8((priority.weight | 0) - 1)\n }, callback)\n })\n}\n\nFramer.prototype.requestFrame = function requestFrame (frame, callback) {\n return this._headersFrame('request', frame, callback)\n}\n\nFramer.prototype.responseFrame = function responseFrame (frame, callback) {\n return this._headersFrame('response', frame, callback)\n}\n\nFramer.prototype.headersFrame = function headersFrame (frame, callback) {\n return this._headersFrame('headers', frame, callback)\n}\n\nFramer.prototype.pushFrame = function pushFrame (frame, callback) {\n var self = this\n\n function compress (headers, pairs, callback) {\n self._compressHeaders(headers, pairs, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n callback(chunks)\n })\n }\n\n function sendPromise (chunks) {\n self._continuationFrame({\n id: frame.id,\n type: 'PUSH_PROMISE',\n reserve: 4,\n chunks: chunks\n }, function (buf) {\n buf.writeUInt32BE(frame.promisedId)\n })\n }\n\n function sendResponse (chunks, callback) {\n var priority = frame.priority\n var isDefaultPriority = self._isDefaultPriority(priority)\n var flags = isDefaultPriority ? 0 : constants.flags.PRIORITY\n\n // Mostly for testing\n if (frame.fin) {\n flags |= constants.flags.END_STREAM\n }\n\n self._continuationFrame({\n id: frame.promisedId,\n type: 'HEADERS',\n flags: flags,\n reserve: isDefaultPriority ? 0 : 5,\n chunks: chunks\n }, function (buf) {\n if (isDefaultPriority) {\n return\n }\n\n buf.writeUInt32BE((priority.exclusive ? 0x80000000 : 0) |\n priority.parent)\n buf.writeUInt8((priority.weight | 0) - 1)\n }, callback)\n }\n\n this._checkPush(function (err) {\n if (err) {\n return callback(err)\n }\n\n var pairs = {\n promise: [],\n response: []\n }\n\n self._defaultHeaders(frame, pairs.promise)\n pairs.response.push({ name: ':status', value: (frame.status || 200) + '' })\n\n compress(frame.headers, pairs.promise, function (promiseChunks) {\n sendPromise(promiseChunks)\n if (frame.response === false) {\n return callback(null)\n }\n compress(frame.response, pairs.response, function (responseChunks) {\n sendResponse(responseChunks, callback)\n })\n })\n })\n}\n\nFramer.prototype.priorityFrame = function priorityFrame (frame, callback) {\n this._frame({\n id: frame.id,\n priority: false,\n type: 'PRIORITY',\n flags: 0\n }, function (buf) {\n var priority = frame.priority\n buf.writeUInt32BE((priority.exclusive ? 0x80000000 : 0) |\n priority.parent)\n buf.writeUInt8((priority.weight | 0) - 1)\n }, callback)\n}\n\nFramer.prototype.dataFrame = function dataFrame (frame, callback) {\n var frames = this._split({\n reserve: 0,\n chunks: [ frame.data ]\n })\n\n var fin = frame.fin ? constants.flags.END_STREAM : 0\n\n var self = this\n frames.forEach(function (subFrame, i) {\n var isLast = i === frames.length - 1\n var flags = 0\n if (isLast) {\n flags |= fin\n }\n\n self._frame({\n id: frame.id,\n priority: frame.priority,\n type: 'DATA',\n flags: flags\n }, function (buf) {\n buf.reserve(subFrame.size)\n for (var i = 0; i < subFrame.chunks.length; i++) { buf.copyFrom(subFrame.chunks[i]) }\n }, isLast ? callback : null)\n })\n\n // Empty DATA\n if (frames.length === 0) {\n this._frame({\n id: frame.id,\n priority: frame.priority,\n type: 'DATA',\n flags: fin\n }, function (buf) {\n // No-op\n }, callback)\n }\n}\n\nFramer.prototype.pingFrame = function pingFrame (frame, callback) {\n this._frame({\n id: 0,\n type: 'PING',\n flags: frame.ack ? constants.flags.ACK : 0\n }, function (buf) {\n buf.copyFrom(frame.opaque)\n }, callback)\n}\n\nFramer.prototype.rstFrame = function rstFrame (frame, callback) {\n this._frame({\n id: frame.id,\n type: 'RST_STREAM',\n flags: 0\n }, function (buf) {\n buf.writeUInt32BE(constants.error[frame.code])\n }, callback)\n}\n\nFramer.prototype.prefaceFrame = function prefaceFrame (callback) {\n debug('preface')\n this._resetTimeout()\n this.schedule({\n stream: 0,\n priority: false,\n chunks: [ constants.PREFACE_BUFFER ],\n callback: callback\n })\n}\n\nFramer.prototype.settingsFrame = function settingsFrame (options, callback) {\n var key = JSON.stringify(options)\n\n var settings = Framer.settingsCache[key]\n if (settings) {\n debug('cached settings')\n this._resetTimeout()\n this.schedule({\n id: 0,\n priority: false,\n chunks: settings,\n callback: callback\n })\n return\n }\n\n var params = []\n for (var i = 0; i < constants.settingsIndex.length; i++) {\n var name = constants.settingsIndex[i]\n if (!name) {\n continue\n }\n\n // value: Infinity\n if (!isFinite(options[name])) {\n continue\n }\n\n if (options[name] !== undefined) {\n params.push({ key: i, value: options[name] })\n }\n }\n\n var bodySize = params.length * 6\n\n var chunks = this._frame({\n id: 0,\n type: 'SETTINGS',\n flags: 0\n }, function (buffer) {\n buffer.reserve(bodySize)\n for (var i = 0; i < params.length; i++) {\n var param = params[i]\n\n buffer.writeUInt16BE(param.key)\n buffer.writeUInt32BE(param.value)\n }\n }, callback)\n\n Framer.settingsCache[key] = chunks\n}\nFramer.settingsCache = {}\n\nFramer.prototype.ackSettingsFrame = function ackSettingsFrame (callback) {\n /* var chunks = */ this._frame({\n id: 0,\n type: 'SETTINGS',\n flags: constants.flags.ACK\n }, function (buffer) {\n // No-op\n }, callback)\n}\n\nFramer.prototype.windowUpdateFrame = function windowUpdateFrame (frame,\n callback) {\n this._frame({\n id: frame.id,\n type: 'WINDOW_UPDATE',\n flags: 0\n }, function (buffer) {\n buffer.reserve(4)\n buffer.writeInt32BE(frame.delta)\n }, callback)\n}\n\nFramer.prototype.goawayFrame = function goawayFrame (frame, callback) {\n this._frame({\n type: 'GOAWAY',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // Last-good-stream-ID\n buf.writeUInt32BE(frame.lastId & 0x7fffffff)\n // Code\n buf.writeUInt32BE(constants.goaway[frame.code])\n\n // Extra debugging information\n if (frame.extra) { buf.write(frame.extra) }\n }, callback)\n}\n\nFramer.prototype.xForwardedFor = function xForwardedFor (frame, callback) {\n this._frame({\n type: 'X_FORWARDED_FOR',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.write(frame.host)\n }, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/protocol/http2/framer.js?");
31508
31528
 
31509
31529
  /***/ }),
31510
31530
 
@@ -31570,7 +31590,7 @@ eval("\n\nvar dictionary = {}\nmodule.exports = dictionary\n\ndictionary[2] = Bu
31570
31590
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31571
31591
 
31572
31592
  "use strict";
31573
- eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar constants = (__webpack_require__(/*! ./ */ \"./node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/index.js\").constants)\nvar base = transport.protocol.base\nvar utils = base.utils\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar Buffer = (__webpack_require__(/*! buffer */ \"buffer\").Buffer)\nvar WriteBuffer = __webpack_require__(/*! wbuf */ \"./node_modules/wbuf/index.js\")\n\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:framer')\n\nfunction Framer (options) {\n base.Framer.call(this, options)\n}\nutil.inherits(Framer, base.Framer)\nmodule.exports = Framer\n\nFramer.create = function create (options) {\n return new Framer(options)\n}\n\nFramer.prototype.setMaxFrameSize = function setMaxFrameSize (size) {\n // http2-only\n}\n\nFramer.prototype.headersToDict = function headersToDict (headers,\n preprocess,\n callback) {\n function stringify (value) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n return value.join('\\x00')\n } else if (typeof value === 'string') {\n return value\n } else {\n return value.toString()\n }\n } else {\n return ''\n }\n }\n\n // Lower case of all headers keys\n var loweredHeaders = {}\n Object.keys(headers || {}).map(function (key) {\n loweredHeaders[key.toLowerCase()] = headers[key]\n })\n\n // Allow outer code to add custom headers or remove something\n if (preprocess) { preprocess(loweredHeaders) }\n\n // Transform object into kv pairs\n var size = this.version === 2 ? 2 : 4\n var len = size\n var pairs = Object.keys(loweredHeaders).filter(function (key) {\n var lkey = key.toLowerCase()\n\n // Will be in `:host`\n if (lkey === 'host' && this.version >= 3) {\n return false\n }\n\n return lkey !== 'connection' && lkey !== 'keep-alive' &&\n lkey !== 'proxy-connection' && lkey !== 'transfer-encoding'\n }, this).map(function (key) {\n var klen = Buffer.byteLength(key)\n var value = stringify(loweredHeaders[key])\n var vlen = Buffer.byteLength(value)\n\n len += size * 2 + klen + vlen\n return [klen, key, vlen, value]\n })\n\n var block = new WriteBuffer()\n block.reserve(len)\n\n if (this.version === 2) {\n block.writeUInt16BE(pairs.length)\n } else {\n block.writeUInt32BE(pairs.length)\n }\n\n pairs.forEach(function (pair) {\n // Write key length\n if (this.version === 2) {\n block.writeUInt16BE(pair[0])\n } else {\n block.writeUInt32BE(pair[0])\n }\n\n // Write key\n block.write(pair[1])\n\n // Write value length\n if (this.version === 2) {\n block.writeUInt16BE(pair[2])\n } else {\n block.writeUInt32BE(pair[2])\n }\n // Write value\n block.write(pair[3])\n }, this)\n\n assert(this.compress !== null, 'Framer version not initialized')\n this.compress.write(block.render(), callback)\n}\n\nFramer.prototype._frame = function _frame (frame, body, callback) {\n if (!this.version) {\n this.on('version', function () {\n this._frame(frame, body, callback)\n })\n return\n }\n\n debug('id=%d type=%s', frame.id, frame.type)\n\n var buffer = new WriteBuffer()\n\n buffer.writeUInt16BE(0x8000 | this.version)\n buffer.writeUInt16BE(constants.frameType[frame.type])\n buffer.writeUInt8(frame.flags)\n var len = buffer.skip(3)\n\n body(buffer)\n\n var frameSize = buffer.size - constants.FRAME_HEADER_SIZE\n len.writeUInt24BE(frameSize)\n\n var chunks = buffer.render()\n var toWrite = {\n stream: frame.id,\n priority: false,\n chunks: chunks,\n callback: callback\n }\n\n this._resetTimeout()\n this.schedule(toWrite)\n\n return chunks\n}\n\nFramer.prototype._synFrame = function _synFrame (frame, callback) {\n var self = this\n\n if (!frame.path) {\n throw new Error('`path` is required frame argument')\n }\n\n function preprocess (headers) {\n var method = frame.method || base.constants.DEFAULT_METHOD\n var version = frame.version || 'HTTP/1.1'\n var scheme = frame.scheme || 'https'\n var host = frame.host ||\n (frame.headers && frame.headers.host) ||\n base.constants.DEFAULT_HOST\n\n if (self.version === 2) {\n headers.method = method\n headers.version = version\n headers.url = frame.path\n headers.scheme = scheme\n headers.host = host\n if (frame.status) {\n headers.status = frame.status\n }\n } else {\n headers[':method'] = method\n headers[':version'] = version\n headers[':path'] = frame.path\n headers[':scheme'] = scheme\n headers[':host'] = host\n if (frame.status) { headers[':status'] = frame.status }\n }\n }\n\n this.headersToDict(frame.headers, preprocess, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n self._frame({\n type: 'SYN_STREAM',\n id: frame.id,\n flags: frame.fin ? constants.flags.FLAG_FIN : 0\n }, function (buf) {\n buf.reserve(10)\n\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n buf.writeUInt32BE(frame.associated & 0x7fffffff)\n\n var weight = (frame.priority && frame.priority.weight) ||\n constants.DEFAULT_WEIGHT\n\n // We only have 3 bits for priority in SPDY, try to fit it into this\n var priority = utils.weightToPriority(weight)\n buf.writeUInt8(priority << 5)\n\n // CREDENTIALS slot\n buf.writeUInt8(0)\n\n for (var i = 0; i < chunks.length; i++) {\n buf.copyFrom(chunks[i])\n }\n }, callback)\n })\n}\n\nFramer.prototype.requestFrame = function requestFrame (frame, callback) {\n this._synFrame({\n id: frame.id,\n fin: frame.fin,\n associated: 0,\n method: frame.method,\n version: frame.version,\n scheme: frame.scheme,\n host: frame.host,\n path: frame.path,\n priority: frame.priority,\n headers: frame.headers\n }, callback)\n}\n\nFramer.prototype.responseFrame = function responseFrame (frame, callback) {\n var self = this\n\n var reason = frame.reason\n if (!reason) {\n reason = constants.statusReason[frame.status]\n }\n\n function preprocess (headers) {\n if (self.version === 2) {\n headers.status = frame.status + ' ' + reason\n headers.version = 'HTTP/1.1'\n } else {\n headers[':status'] = frame.status + ' ' + reason\n headers[':version'] = 'HTTP/1.1'\n }\n }\n\n this.headersToDict(frame.headers, preprocess, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n self._frame({\n type: 'SYN_REPLY',\n id: frame.id,\n flags: 0\n }, function (buf) {\n buf.reserve(self.version === 2 ? 6 : 4)\n\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n\n // Unused data\n if (self.version === 2) {\n buf.writeUInt16BE(0)\n }\n\n for (var i = 0; i < chunks.length; i++) {\n buf.copyFrom(chunks[i])\n }\n }, callback)\n })\n}\n\nFramer.prototype.pushFrame = function pushFrame (frame, callback) {\n var self = this\n\n this._checkPush(function (err) {\n if (err) { return callback(err) }\n\n self._synFrame({\n id: frame.promisedId,\n associated: frame.id,\n method: frame.method,\n status: frame.status || 200,\n version: frame.version,\n scheme: frame.scheme,\n host: frame.host,\n path: frame.path,\n priority: frame.priority,\n\n // Merge everything together, there is no difference in SPDY protocol\n headers: Object.assign(Object.assign({}, frame.headers), frame.response)\n }, callback)\n })\n}\n\nFramer.prototype.headersFrame = function headersFrame (frame, callback) {\n var self = this\n\n this.headersToDict(frame.headers, null, function (err, chunks) {\n if (err) {\n if (callback) { return callback(err) } else {\n return self.emit('error', err)\n }\n }\n\n self._frame({\n type: 'HEADERS',\n id: frame.id,\n priority: false,\n flags: 0\n }, function (buf) {\n buf.reserve(4 + (self.version === 2 ? 2 : 0))\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n\n // Unused data\n if (self.version === 2) { buf.writeUInt16BE(0) }\n\n for (var i = 0; i < chunks.length; i++) {\n buf.copyFrom(chunks[i])\n }\n }, callback)\n })\n}\n\nFramer.prototype.dataFrame = function dataFrame (frame, callback) {\n if (!this.version) {\n return this.on('version', function () {\n this.dataFrame(frame, callback)\n })\n }\n\n debug('id=%d type=DATA', frame.id)\n\n var buffer = new WriteBuffer()\n buffer.reserve(8 + frame.data.length)\n\n buffer.writeUInt32BE(frame.id & 0x7fffffff)\n buffer.writeUInt8(frame.fin ? 0x01 : 0x0)\n buffer.writeUInt24BE(frame.data.length)\n buffer.copyFrom(frame.data)\n\n var chunks = buffer.render()\n var toWrite = {\n stream: frame.id,\n priority: frame.priority,\n chunks: chunks,\n callback: callback\n }\n\n var self = this\n this._resetTimeout()\n\n var bypass = this.version < 3.1\n this.window.send.update(-frame.data.length, bypass ? undefined : function () {\n self._resetTimeout()\n self.schedule(toWrite)\n })\n\n if (bypass) {\n this._resetTimeout()\n this.schedule(toWrite)\n }\n}\n\nFramer.prototype.pingFrame = function pingFrame (frame, callback) {\n this._frame({\n type: 'PING',\n id: 0,\n flags: 0\n }, function (buf, callback) {\n buf.reserve(4)\n\n var opaque = frame.opaque\n buf.writeUInt32BE(opaque.readUInt32BE(opaque.length - 4, true))\n }, callback)\n}\n\nFramer.prototype.rstFrame = function rstFrame (frame, callback) {\n this._frame({\n type: 'RST_STREAM',\n id: frame.id,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // Stream ID\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n // Status Code\n buf.writeUInt32BE(constants.error[frame.code])\n\n // Extra debugging information\n if (frame.extra) {\n buf.write(frame.extra)\n }\n }, callback)\n}\n\nFramer.prototype.prefaceFrame = function prefaceFrame () {\n}\n\nFramer.prototype.settingsFrame = function settingsFrame (options, callback) {\n var self = this\n\n var key = this.version + '/' + JSON.stringify(options)\n\n var settings = Framer.settingsCache[key]\n if (settings) {\n debug('cached settings')\n this._resetTimeout()\n this.schedule({\n stream: 0,\n priority: false,\n chunks: settings,\n callback: callback\n })\n return\n }\n\n var params = []\n for (var i = 0; i < constants.settingsIndex.length; i++) {\n var name = constants.settingsIndex[i]\n if (!name) { continue }\n\n // value: Infinity\n if (!isFinite(options[name])) {\n continue\n }\n\n if (options[name] !== undefined) {\n params.push({ key: i, value: options[name] })\n }\n }\n\n var frame = this._frame({\n type: 'SETTINGS',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.reserve(4 + 8 * params.length)\n\n // Count of entries\n buf.writeUInt32BE(params.length)\n\n params.forEach(function (param) {\n var flag = constants.settings.FLAG_SETTINGS_PERSIST_VALUE << 24\n\n if (self.version === 2) {\n buf.writeUInt32LE(flag | param.key)\n } else { buf.writeUInt32BE(flag | param.key) }\n buf.writeUInt32BE(param.value & 0x7fffffff)\n })\n }, callback)\n\n Framer.settingsCache[key] = frame\n}\nFramer.settingsCache = {}\n\nFramer.prototype.ackSettingsFrame = function ackSettingsFrame (callback) {\n if (callback) {\n process.nextTick(callback)\n }\n}\n\nFramer.prototype.windowUpdateFrame = function windowUpdateFrame (frame,\n callback) {\n this._frame({\n type: 'WINDOW_UPDATE',\n id: frame.id,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // ID\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n\n // Delta\n buf.writeInt32BE(frame.delta)\n }, callback)\n}\n\nFramer.prototype.goawayFrame = function goawayFrame (frame, callback) {\n this._frame({\n type: 'GOAWAY',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // Last-good-stream-ID\n buf.writeUInt32BE(frame.lastId & 0x7fffffff)\n // Status\n buf.writeUInt32BE(constants.goaway[frame.code])\n }, callback)\n}\n\nFramer.prototype.priorityFrame = function priorityFrame (frame, callback) {\n // No such thing in SPDY\n if (callback) {\n process.nextTick(callback)\n }\n}\n\nFramer.prototype.xForwardedFor = function xForwardedFor (frame, callback) {\n this._frame({\n type: 'X_FORWARDED_FOR',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.writeUInt32BE(Buffer.byteLength(frame.host))\n buf.write(frame.host)\n }, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/framer.js?");
31593
+ eval("\n\nvar transport = __webpack_require__(/*! ../../../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar constants = (__webpack_require__(/*! ./ */ \"./node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/index.js\").constants)\nvar base = transport.protocol.base\nvar utils = base.utils\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar Buffer = (__webpack_require__(/*! buffer */ \"buffer\").Buffer)\nvar WriteBuffer = __webpack_require__(/*! wbuf */ \"./node_modules/wbuf/index.js\")\n\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:framer')\n\nfunction Framer (options) {\n base.Framer.call(this, options)\n}\nutil.inherits(Framer, base.Framer)\nmodule.exports = Framer\n\nFramer.create = function create (options) {\n return new Framer(options)\n}\n\nFramer.prototype.setMaxFrameSize = function setMaxFrameSize (size) {\n // http2-only\n}\n\nFramer.prototype.headersToDict = function headersToDict (headers,\n preprocess,\n callback) {\n function stringify (value) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n return value.join('\\x00')\n } else if (typeof value === 'string') {\n return value\n } else {\n return value.toString()\n }\n } else {\n return ''\n }\n }\n\n // Lower case of all headers keys\n var loweredHeaders = {}\n Object.keys(headers || {}).map(function (key) {\n loweredHeaders[key.toLowerCase()] = headers[key]\n })\n\n // Allow outer code to add custom headers or remove something\n if (preprocess) { preprocess(loweredHeaders) }\n\n // Transform object into kv pairs\n var size = this.version === 2 ? 2 : 4\n var len = size\n var pairs = Object.keys(loweredHeaders).filter(function (key) {\n var lkey = key.toLowerCase()\n\n // Will be in `:host`\n if (lkey === 'host' && this.version >= 3) {\n return false\n }\n\n return lkey !== 'connection' && lkey !== 'keep-alive' &&\n lkey !== 'proxy-connection' && lkey !== 'transfer-encoding'\n }, this).map(function (key) {\n var klen = Buffer.byteLength(key)\n var value = stringify(loweredHeaders[key])\n var vlen = Buffer.byteLength(value)\n\n len += size * 2 + klen + vlen\n return [klen, key, vlen, value]\n })\n\n var block = new WriteBuffer()\n block.reserve(len)\n\n if (this.version === 2) {\n block.writeUInt16BE(pairs.length)\n } else {\n block.writeUInt32BE(pairs.length)\n }\n\n pairs.forEach(function (pair) {\n // Write key length\n if (this.version === 2) {\n block.writeUInt16BE(pair[0])\n } else {\n block.writeUInt32BE(pair[0])\n }\n\n // Write key\n block.write(pair[1])\n\n // Write value length\n if (this.version === 2) {\n block.writeUInt16BE(pair[2])\n } else {\n block.writeUInt32BE(pair[2])\n }\n // Write value\n block.write(pair[3])\n }, this)\n\n assert(this.compress !== null, 'Framer version not initialized')\n this.compress.write(block.render(), callback)\n}\n\nFramer.prototype._frame = function _frame (frame, body, callback) {\n if (!this.version) {\n this.on('version', function () {\n this._frame(frame, body, callback)\n })\n return\n }\n\n debug('id=%d type=%s', frame.id, frame.type)\n\n var buffer = new WriteBuffer()\n\n buffer.writeUInt16BE(0x8000 | this.version)\n buffer.writeUInt16BE(constants.frameType[frame.type])\n buffer.writeUInt8(frame.flags)\n var len = buffer.skip(3)\n\n body(buffer)\n\n var frameSize = buffer.size - constants.FRAME_HEADER_SIZE\n len.writeUInt24BE(frameSize)\n\n var chunks = buffer.render()\n var toWrite = {\n stream: frame.id,\n priority: false,\n chunks: chunks,\n callback: callback\n }\n\n this._resetTimeout()\n this.schedule(toWrite)\n\n return chunks\n}\n\nFramer.prototype._synFrame = function _synFrame (frame, callback) {\n var self = this\n\n if (!frame.path) {\n throw new Error('`path` is required frame argument')\n }\n\n function preprocess (headers) {\n var method = frame.method || base.constants.DEFAULT_METHOD\n var version = frame.version || 'HTTP/1.1'\n var scheme = frame.scheme || 'https'\n var host = frame.host ||\n (frame.headers && frame.headers.host) ||\n base.constants.DEFAULT_HOST\n\n if (self.version === 2) {\n headers.method = method\n headers.version = version\n headers.url = frame.path\n headers.scheme = scheme\n headers.host = host\n if (frame.status) {\n headers.status = frame.status\n }\n } else {\n headers[':method'] = method\n headers[':version'] = version\n headers[':path'] = frame.path\n headers[':scheme'] = scheme\n headers[':host'] = host\n if (frame.status) { headers[':status'] = frame.status }\n }\n }\n\n this.headersToDict(frame.headers, preprocess, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n self._frame({\n type: 'SYN_STREAM',\n id: frame.id,\n flags: frame.fin ? constants.flags.FLAG_FIN : 0\n }, function (buf) {\n buf.reserve(10)\n\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n buf.writeUInt32BE(frame.associated & 0x7fffffff)\n\n var weight = (frame.priority && frame.priority.weight) ||\n constants.DEFAULT_WEIGHT\n\n // We only have 3 bits for priority in SPDY, try to fit it into this\n var priority = utils.weightToPriority(weight)\n buf.writeUInt8(priority << 5)\n\n // CREDENTIALS slot\n buf.writeUInt8(0)\n\n for (var i = 0; i < chunks.length; i++) {\n buf.copyFrom(chunks[i])\n }\n }, callback)\n })\n}\n\nFramer.prototype.requestFrame = function requestFrame (frame, callback) {\n this._synFrame({\n id: frame.id,\n fin: frame.fin,\n associated: 0,\n method: frame.method,\n version: frame.version,\n scheme: frame.scheme,\n host: frame.host,\n path: frame.path,\n priority: frame.priority,\n headers: frame.headers\n }, callback)\n}\n\nFramer.prototype.responseFrame = function responseFrame (frame, callback) {\n var self = this\n\n var reason = frame.reason\n if (!reason) {\n reason = constants.statusReason[frame.status]\n }\n\n function preprocess (headers) {\n if (self.version === 2) {\n headers.status = frame.status + ' ' + reason\n headers.version = 'HTTP/1.1'\n } else {\n headers[':status'] = frame.status + ' ' + reason\n headers[':version'] = 'HTTP/1.1'\n }\n }\n\n this.headersToDict(frame.headers, preprocess, function (err, chunks) {\n if (err) {\n if (callback) {\n return callback(err)\n } else {\n return self.emit('error', err)\n }\n }\n\n self._frame({\n type: 'SYN_REPLY',\n id: frame.id,\n flags: 0\n }, function (buf) {\n buf.reserve(self.version === 2 ? 6 : 4)\n\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n\n // Unused data\n if (self.version === 2) {\n buf.writeUInt16BE(0)\n }\n\n for (var i = 0; i < chunks.length; i++) {\n buf.copyFrom(chunks[i])\n }\n }, callback)\n })\n}\n\nFramer.prototype.pushFrame = function pushFrame (frame, callback) {\n var self = this\n\n this._checkPush(function (err) {\n if (err) { return callback(err) }\n\n self._synFrame({\n id: frame.promisedId,\n associated: frame.id,\n method: frame.method,\n status: frame.status || 200,\n version: frame.version,\n scheme: frame.scheme,\n host: frame.host,\n path: frame.path,\n priority: frame.priority,\n\n // Merge everything together, there is no difference in SPDY protocol\n headers: Object.assign(Object.assign({}, frame.headers), frame.response)\n }, callback)\n })\n}\n\nFramer.prototype.headersFrame = function headersFrame (frame, callback) {\n var self = this\n\n this.headersToDict(frame.headers, null, function (err, chunks) {\n if (err) {\n if (callback) { return callback(err) } else {\n return self.emit('error', err)\n }\n }\n\n self._frame({\n type: 'HEADERS',\n id: frame.id,\n priority: false,\n flags: 0\n }, function (buf) {\n buf.reserve(4 + (self.version === 2 ? 2 : 0))\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n\n // Unused data\n if (self.version === 2) { buf.writeUInt16BE(0) }\n\n for (var i = 0; i < chunks.length; i++) {\n buf.copyFrom(chunks[i])\n }\n }, callback)\n })\n}\n\nFramer.prototype.dataFrame = function dataFrame (frame, callback) {\n if (!this.version) {\n return this.on('version', function () {\n this.dataFrame(frame, callback)\n })\n }\n\n debug('id=%d type=DATA', frame.id)\n\n var buffer = new WriteBuffer()\n buffer.reserve(8 + frame.data.length)\n\n buffer.writeUInt32BE(frame.id & 0x7fffffff)\n buffer.writeUInt8(frame.fin ? 0x01 : 0x0)\n buffer.writeUInt24BE(frame.data.length)\n buffer.copyFrom(frame.data)\n\n var chunks = buffer.render()\n var toWrite = {\n stream: frame.id,\n priority: frame.priority,\n chunks: chunks,\n callback: callback\n }\n\n var self = this\n this._resetTimeout()\n\n var bypass = this.version < 3.1\n this.window.send.update(-frame.data.length, bypass ? undefined : function () {\n self._resetTimeout()\n self.schedule(toWrite)\n })\n\n if (bypass) {\n this._resetTimeout()\n this.schedule(toWrite)\n }\n}\n\nFramer.prototype.pingFrame = function pingFrame (frame, callback) {\n this._frame({\n type: 'PING',\n id: 0,\n flags: 0\n }, function (buf, callback) {\n buf.reserve(4)\n\n var opaque = frame.opaque\n buf.writeUInt32BE(opaque.readUInt32BE(opaque.length - 4, true))\n }, callback)\n}\n\nFramer.prototype.rstFrame = function rstFrame (frame, callback) {\n this._frame({\n type: 'RST_STREAM',\n id: frame.id,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // Stream ID\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n // Status Code\n buf.writeUInt32BE(constants.error[frame.code])\n\n // Extra debugging information\n if (frame.extra) {\n buf.write(frame.extra)\n }\n }, callback)\n}\n\nFramer.prototype.prefaceFrame = function prefaceFrame () {\n}\n\nFramer.prototype.settingsFrame = function settingsFrame (options, callback) {\n var self = this\n\n var key = this.version + '/' + JSON.stringify(options)\n\n var settings = Framer.settingsCache[key]\n if (settings) {\n debug('cached settings')\n this._resetTimeout()\n this.schedule({\n stream: 0,\n priority: false,\n chunks: settings,\n callback: callback\n })\n return\n }\n\n var params = []\n for (var i = 0; i < constants.settingsIndex.length; i++) {\n var name = constants.settingsIndex[i]\n if (!name) { continue }\n\n // value: Infinity\n if (!isFinite(options[name])) {\n continue\n }\n\n if (options[name] !== undefined) {\n params.push({ key: i, value: options[name] })\n }\n }\n\n var frame = this._frame({\n type: 'SETTINGS',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.reserve(4 + 8 * params.length)\n\n // Count of entries\n buf.writeUInt32BE(params.length)\n\n params.forEach(function (param) {\n var flag = constants.settings.FLAG_SETTINGS_PERSIST_VALUE << 24\n\n if (self.version === 2) {\n buf.writeUInt32LE(flag | param.key)\n } else { buf.writeUInt32BE(flag | param.key) }\n buf.writeUInt32BE(param.value & 0x7fffffff)\n })\n }, callback)\n\n Framer.settingsCache[key] = frame\n}\nFramer.settingsCache = {}\n\nFramer.prototype.ackSettingsFrame = function ackSettingsFrame (callback) {\n if (callback) {\n process.nextTick(callback)\n }\n}\n\nFramer.prototype.windowUpdateFrame = function windowUpdateFrame (frame,\n callback) {\n this._frame({\n type: 'WINDOW_UPDATE',\n id: frame.id,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // ID\n buf.writeUInt32BE(frame.id & 0x7fffffff)\n\n // Delta\n buf.writeInt32BE(frame.delta)\n }, callback)\n}\n\nFramer.prototype.goawayFrame = function goawayFrame (frame, callback) {\n this._frame({\n type: 'GOAWAY',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.reserve(8)\n\n // Last-good-stream-ID\n buf.writeUInt32BE(frame.lastId & 0x7fffffff)\n // Status\n buf.writeUInt32BE(constants.goaway[frame.code])\n }, callback)\n}\n\nFramer.prototype.priorityFrame = function priorityFrame (frame, callback) {\n // No such thing in SPDY\n if (callback) {\n process.nextTick(callback)\n }\n}\n\nFramer.prototype.xForwardedFor = function xForwardedFor (frame, callback) {\n this._frame({\n type: 'X_FORWARDED_FOR',\n id: 0,\n flags: 0\n }, function (buf) {\n buf.writeUInt32BE(Buffer.byteLength(frame.host))\n buf.write(frame.host)\n }, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/framer.js?");
31574
31594
 
31575
31595
  /***/ }),
31576
31596
 
@@ -31614,7 +31634,7 @@ eval("\n\nvar zlibpool = exports\nvar zlib = __webpack_require__(/*! zlib */ \"z
31614
31634
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
31615
31635
 
31616
31636
  "use strict";
31617
- eval("\n\nvar transport = __webpack_require__(/*! ../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\n\nvar debug = {\n client: __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:stream:client'),\n server: __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:stream:server')\n}\nvar Duplex = (__webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\").Duplex)\n\nfunction Stream (connection, options) {\n Duplex.call(this)\n\n var connectionState = connection._spdyState\n\n var state = {}\n this._spdyState = state\n\n this.id = options.id\n this.method = options.method\n this.path = options.path\n this.host = options.host\n this.headers = options.headers || {}\n this.connection = connection\n this.parent = options.parent || null\n\n state.socket = null\n state.protocol = connectionState.protocol\n state.constants = state.protocol.constants\n\n // See _initPriority()\n state.priority = null\n\n state.version = this.connection.getVersion()\n state.isServer = this.connection.isServer()\n state.debug = state.isServer ? debug.server : debug.client\n\n state.framer = connectionState.framer\n state.parser = connectionState.parser\n\n state.request = options.request\n state.needResponse = options.request\n state.window = connectionState.streamWindow.clone(options.id)\n state.sessionWindow = connectionState.window\n state.maxChunk = connectionState.maxChunk\n\n // Can't send incoming request\n // (See `.send()` method)\n state.sent = !state.request\n\n state.readable = options.readable !== false\n state.writable = options.writable !== false\n\n state.aborted = false\n\n state.corked = 0\n state.corkQueue = []\n\n state.timeout = new transport.utils.Timeout(this)\n\n this.on('finish', this._onFinish)\n this.on('end', this._onEnd)\n\n var self = this\n function _onWindowOverflow () {\n self._onWindowOverflow()\n }\n\n state.window.recv.on('overflow', _onWindowOverflow)\n state.window.send.on('overflow', _onWindowOverflow)\n\n this._initPriority(options.priority)\n\n if (!state.readable) { this.push(null) }\n if (!state.writable) {\n this._writableState.ended = true\n this._writableState.finished = true\n }\n}\nutil.inherits(Stream, Duplex)\nexports.Stream = Stream\n\nStream.prototype._init = function _init (socket) {\n this.socket = socket\n}\n\nStream.prototype._initPriority = function _initPriority (priority) {\n var state = this._spdyState\n var connectionState = this.connection._spdyState\n var root = connectionState.priorityRoot\n\n if (!priority) {\n state.priority = root.addDefault(this.id)\n return\n }\n\n state.priority = root.add({\n id: this.id,\n parent: priority.parent,\n weight: priority.weight,\n exclusive: priority.exclusive\n })\n}\n\nStream.prototype._handleFrame = function _handleFrame (frame) {\n var state = this._spdyState\n\n // Ignore any kind of data after abort\n if (state.aborted) {\n state.debug('id=%d ignoring frame=%s after abort', this.id, frame.type)\n return\n }\n\n // Restart the timer on incoming frames\n state.timeout.reset()\n\n if (frame.type === 'DATA') {\n this._handleData(frame)\n } else if (frame.type === 'HEADERS') {\n this._handleHeaders(frame)\n } else if (frame.type === 'RST') {\n this._handleRST(frame)\n } else if (frame.type === 'WINDOW_UPDATE') { this._handleWindowUpdate(frame) } else if (frame.type === 'PRIORITY') {\n this._handlePriority(frame)\n } else if (frame.type === 'PUSH_PROMISE') { this._handlePushPromise(frame) }\n\n if (frame.fin) {\n state.debug('id=%d end', this.id)\n this.push(null)\n }\n}\n\nfunction checkAborted (stream, state, callback) {\n if (state.aborted) {\n state.debug('id=%d abort write', stream.id)\n process.nextTick(function () {\n callback(new Error('Stream write aborted'))\n })\n return true\n }\n\n return false\n}\n\nfunction _send (stream, state, data, callback) {\n if (checkAborted(stream, state, callback)) {\n return\n }\n\n state.debug('id=%d presend=%d', stream.id, data.length)\n\n state.timeout.reset()\n\n state.window.send.update(-data.length, function () {\n if (checkAborted(stream, state, callback)) {\n return\n }\n\n state.debug('id=%d send=%d', stream.id, data.length)\n\n state.timeout.reset()\n\n state.framer.dataFrame({\n id: stream.id,\n priority: state.priority.getPriority(),\n fin: false,\n data: data\n }, function (err) {\n state.debug('id=%d postsend=%d', stream.id, data.length)\n callback(err)\n })\n })\n}\n\nStream.prototype._write = function _write (data, enc, callback) {\n var state = this._spdyState\n\n // Send the request if it wasn't sent\n if (!state.sent) { this.send() }\n\n // Writes should come after pending control frames (response and headers)\n if (state.corked !== 0) {\n var self = this\n state.corkQueue.push(function () {\n self._write(data, enc, callback)\n })\n return\n }\n\n // Split DATA in chunks to prevent window from going negative\n this._splitStart(data, _send, callback)\n}\n\nStream.prototype._splitStart = function _splitStart (data, onChunk, callback) {\n return this._split(data, 0, onChunk, callback)\n}\n\nStream.prototype._split = function _split (data, offset, onChunk, callback) {\n if (offset === data.length) {\n return process.nextTick(callback)\n }\n\n var state = this._spdyState\n var local = state.window.send\n var session = state.sessionWindow.send\n\n var availSession = Math.max(0, session.getCurrent())\n if (availSession === 0) {\n availSession = session.getMax()\n }\n var availLocal = Math.max(0, local.getCurrent())\n if (availLocal === 0) {\n availLocal = local.getMax()\n }\n\n var avail = Math.min(availSession, availLocal)\n avail = Math.min(avail, state.maxChunk)\n\n var self = this\n\n if (avail === 0) {\n state.window.send.update(0, function () {\n self._split(data, offset, onChunk, callback)\n })\n return\n }\n\n // Split data in chunks in a following way:\n var limit = avail\n var size = Math.min(data.length - offset, limit)\n\n var chunk = data.slice(offset, offset + size)\n\n onChunk(this, state, chunk, function (err) {\n if (err) { return callback(err) }\n\n // Get the next chunk\n self._split(data, offset + size, onChunk, callback)\n })\n}\n\nStream.prototype._read = function _read () {\n var state = this._spdyState\n\n if (!state.window.recv.isDraining()) {\n return\n }\n\n var delta = state.window.recv.getDelta()\n\n state.debug('id=%d window emptying, update by %d', this.id, delta)\n\n state.window.recv.update(delta)\n state.framer.windowUpdateFrame({\n id: this.id,\n delta: delta\n })\n}\n\nStream.prototype._handleData = function _handleData (frame) {\n var state = this._spdyState\n\n // DATA on ended or not readable stream!\n if (!state.readable || this._readableState.ended) {\n state.framer.rstFrame({ id: this.id, code: 'STREAM_CLOSED' })\n return\n }\n\n state.debug('id=%d recv=%d', this.id, frame.data.length)\n state.window.recv.update(-frame.data.length)\n\n this.push(frame.data)\n}\n\nStream.prototype._handleRST = function _handleRST (frame) {\n if (frame.code !== 'CANCEL') {\n this.emit('error', new Error('Got RST: ' + frame.code))\n }\n this.abort()\n}\n\nStream.prototype._handleWindowUpdate = function _handleWindowUpdate (frame) {\n var state = this._spdyState\n\n state.window.send.update(frame.delta)\n}\n\nStream.prototype._onWindowOverflow = function _onWindowOverflow () {\n var state = this._spdyState\n\n state.debug('id=%d window overflow', this.id)\n state.framer.rstFrame({ id: this.id, code: 'FLOW_CONTROL_ERROR' })\n\n this.aborted = true\n this.emit('error', new Error('HTTP2 window overflow'))\n}\n\nStream.prototype._handlePriority = function _handlePriority (frame) {\n var state = this._spdyState\n\n state.priority.remove()\n state.priority = null\n this._initPriority(frame.priority)\n\n // Mostly for testing purposes\n this.emit('priority', frame.priority)\n}\n\nStream.prototype._handleHeaders = function _handleHeaders (frame) {\n var state = this._spdyState\n\n if (!state.readable || this._readableState.ended) {\n state.framer.rstFrame({ id: this.id, code: 'STREAM_CLOSED' })\n return\n }\n\n if (state.needResponse) {\n return this._handleResponse(frame)\n }\n\n this.emit('headers', frame.headers)\n}\n\nStream.prototype._handleResponse = function _handleResponse (frame) {\n var state = this._spdyState\n\n if (frame.headers[':status'] === undefined) {\n state.framer.rstFrame({ id: this.id, code: 'PROTOCOL_ERROR' })\n return\n }\n\n state.needResponse = false\n this.emit('response', frame.headers[':status'] | 0, frame.headers)\n}\n\nStream.prototype._onFinish = function _onFinish () {\n var state = this._spdyState\n\n // Send the request if it wasn't sent\n if (!state.sent) {\n // NOTE: will send HEADERS with FIN flag\n this.send()\n } else {\n // Just an `.end()` without any writes will trigger immediate `finish` event\n // without any calls to `_write()`.\n if (state.corked !== 0) {\n var self = this\n state.corkQueue.push(function () {\n self._onFinish()\n })\n return\n }\n\n state.framer.dataFrame({\n id: this.id,\n priority: state.priority.getPriority(),\n fin: true,\n data: Buffer.alloc(0)\n })\n }\n\n this._maybeClose()\n}\n\nStream.prototype._onEnd = function _onEnd () {\n this._maybeClose()\n}\n\nStream.prototype._checkEnded = function _checkEnded (callback) {\n var state = this._spdyState\n\n var ended = false\n if (state.aborted) { ended = true }\n\n if (!state.writable || this._writableState.finished) { ended = true }\n\n if (!ended) {\n return true\n }\n\n if (!callback) {\n return false\n }\n\n var err = new Error('Ended stream can\\'t send frames')\n process.nextTick(function () {\n callback(err)\n })\n\n return false\n}\n\nStream.prototype._maybeClose = function _maybeClose () {\n var state = this._spdyState\n\n // .abort() emits `close`\n if (state.aborted) {\n return\n }\n\n if ((!state.readable || this._readableState.ended) &&\n this._writableState.finished) {\n // Clear timeout\n state.timeout.set(0)\n\n this.emit('close')\n }\n}\n\nStream.prototype._handlePushPromise = function _handlePushPromise (frame) {\n var push = this.connection._createStream({\n id: frame.promisedId,\n parent: this,\n push: true,\n request: true,\n method: frame.headers[':method'],\n path: frame.headers[':path'],\n host: frame.headers[':authority'],\n priority: frame.priority,\n headers: frame.headers,\n writable: false\n })\n\n // GOAWAY\n if (this.connection._isGoaway(push.id)) {\n return\n }\n\n if (!this.emit('pushPromise', push)) {\n push.abort()\n }\n}\n\nStream.prototype._hardCork = function _hardCork () {\n var state = this._spdyState\n\n this.cork()\n state.corked++\n}\n\nStream.prototype._hardUncork = function _hardUncork () {\n var state = this._spdyState\n\n this.uncork()\n state.corked--\n if (state.corked !== 0) {\n return\n }\n\n // Invoke callbacks\n var queue = state.corkQueue\n state.corkQueue = []\n for (var i = 0; i < queue.length; i++) {\n queue[i]()\n }\n}\n\nStream.prototype._sendPush = function _sendPush (status, response, callback) {\n var self = this\n var state = this._spdyState\n\n this._hardCork()\n state.framer.pushFrame({\n id: this.parent.id,\n promisedId: this.id,\n priority: state.priority.toJSON(),\n path: this.path,\n host: this.host,\n method: this.method,\n status: status,\n headers: this.headers,\n response: response\n }, function (err) {\n self._hardUncork()\n\n callback(err)\n })\n}\n\nStream.prototype._wasSent = function _wasSent () {\n var state = this._spdyState\n return state.sent\n}\n\n// Public API\n\nStream.prototype.send = function send (callback) {\n var state = this._spdyState\n\n if (state.sent) {\n var err = new Error('Stream was already sent')\n process.nextTick(function () {\n if (callback) {\n callback(err)\n }\n })\n return\n }\n\n state.sent = true\n state.timeout.reset()\n\n // GET requests should always be auto-finished\n if (this.method === 'GET') {\n this._writableState.ended = true\n this._writableState.finished = true\n }\n\n // TODO(indunty): ideally it should just take a stream object as an input\n var self = this\n this._hardCork()\n state.framer.requestFrame({\n id: this.id,\n method: this.method,\n path: this.path,\n host: this.host,\n priority: state.priority.toJSON(),\n headers: this.headers,\n fin: this._writableState.finished\n }, function (err) {\n self._hardUncork()\n\n if (!callback) {\n return\n }\n\n callback(err)\n })\n}\n\nStream.prototype.respond = function respond (status, headers, callback) {\n var self = this\n var state = this._spdyState\n assert(!state.request, 'Can\\'t respond on request')\n\n state.timeout.reset()\n\n if (!this._checkEnded(callback)) { return }\n\n var frame = {\n id: this.id,\n status: status,\n headers: headers\n }\n this._hardCork()\n state.framer.responseFrame(frame, function (err) {\n self._hardUncork()\n if (callback) { callback(err) }\n })\n}\n\nStream.prototype.setWindow = function setWindow (size) {\n var state = this._spdyState\n\n state.timeout.reset()\n\n if (!this._checkEnded()) {\n return\n }\n\n state.debug('id=%d force window max=%d', this.id, size)\n state.window.recv.setMax(size)\n\n var delta = state.window.recv.getDelta()\n if (delta === 0) { return }\n\n state.framer.windowUpdateFrame({\n id: this.id,\n delta: delta\n })\n state.window.recv.update(delta)\n}\n\nStream.prototype.sendHeaders = function sendHeaders (headers, callback) {\n var self = this\n var state = this._spdyState\n\n state.timeout.reset()\n\n if (!this._checkEnded(callback)) {\n return\n }\n\n // Request wasn't yet send, coalesce headers\n if (!state.sent) {\n this.headers = Object.assign({}, this.headers)\n Object.assign(this.headers, headers)\n process.nextTick(function () {\n if (callback) {\n callback(null)\n }\n })\n return\n }\n\n this._hardCork()\n state.framer.headersFrame({\n id: this.id,\n headers: headers\n }, function (err) {\n self._hardUncork()\n if (callback) { callback(err) }\n })\n}\n\nStream.prototype._destroy = function destroy () {\n this.abort()\n}\n\nStream.prototype.abort = function abort (code, callback) {\n var state = this._spdyState\n\n // .abort(callback)\n if (typeof code === 'function') {\n callback = code\n code = null\n }\n\n if (this._readableState.ended && this._writableState.finished) {\n state.debug('id=%d already closed', this.id)\n if (callback) {\n process.nextTick(callback)\n }\n return\n }\n\n if (state.aborted) {\n state.debug('id=%d already aborted', this.id)\n if (callback) { process.nextTick(callback) }\n return\n }\n\n state.aborted = true\n state.debug('id=%d abort', this.id)\n\n this.setTimeout(0)\n\n var abortCode = code || 'CANCEL'\n\n state.framer.rstFrame({\n id: this.id,\n code: abortCode\n })\n\n var self = this\n process.nextTick(function () {\n if (callback) {\n callback(null)\n }\n self.emit('close', new Error('Aborted, code: ' + abortCode))\n })\n}\n\nStream.prototype.setPriority = function setPriority (info) {\n var state = this._spdyState\n\n state.timeout.reset()\n\n if (!this._checkEnded()) {\n return\n }\n\n state.debug('id=%d priority change', this.id, info)\n\n var frame = { id: this.id, priority: info }\n\n // Change priority on this side\n this._handlePriority(frame)\n\n // And on the other too\n state.framer.priorityFrame(frame)\n}\n\nStream.prototype.pushPromise = function pushPromise (uri, callback) {\n if (!this._checkEnded(callback)) {\n return\n }\n\n var self = this\n this._hardCork()\n var push = this.connection.pushPromise(this, uri, function (err) {\n self._hardUncork()\n if (!err) {\n push._hardUncork()\n }\n\n if (callback) {\n return callback(err, push)\n }\n\n if (err) { push.emit('error', err) }\n })\n push._hardCork()\n\n return push\n}\n\nStream.prototype.setMaxChunk = function setMaxChunk (size) {\n var state = this._spdyState\n state.maxChunk = size\n}\n\nStream.prototype.setTimeout = function setTimeout (delay, callback) {\n var state = this._spdyState\n\n state.timeout.set(delay, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/stream.js?");
31637
+ eval("\n\nvar transport = __webpack_require__(/*! ../spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar util = __webpack_require__(/*! util */ \"util\")\n\nvar debug = {\n client: __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:stream:client'),\n server: __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:stream:server')\n}\nvar Duplex = (__webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\").Duplex)\n\nfunction Stream (connection, options) {\n Duplex.call(this)\n\n var connectionState = connection._spdyState\n\n var state = {}\n this._spdyState = state\n\n this.id = options.id\n this.method = options.method\n this.path = options.path\n this.host = options.host\n this.headers = options.headers || {}\n this.connection = connection\n this.parent = options.parent || null\n\n state.socket = null\n state.protocol = connectionState.protocol\n state.constants = state.protocol.constants\n\n // See _initPriority()\n state.priority = null\n\n state.version = this.connection.getVersion()\n state.isServer = this.connection.isServer()\n state.debug = state.isServer ? debug.server : debug.client\n\n state.framer = connectionState.framer\n state.parser = connectionState.parser\n\n state.request = options.request\n state.needResponse = options.request\n state.window = connectionState.streamWindow.clone(options.id)\n state.sessionWindow = connectionState.window\n state.maxChunk = connectionState.maxChunk\n\n // Can't send incoming request\n // (See `.send()` method)\n state.sent = !state.request\n\n state.readable = options.readable !== false\n state.writable = options.writable !== false\n\n state.aborted = false\n\n state.corked = 0\n state.corkQueue = []\n\n state.timeout = new transport.utils.Timeout(this)\n\n this.on('finish', this._onFinish)\n this.on('end', this._onEnd)\n\n var self = this\n function _onWindowOverflow () {\n self._onWindowOverflow()\n }\n\n state.window.recv.on('overflow', _onWindowOverflow)\n state.window.send.on('overflow', _onWindowOverflow)\n\n this._initPriority(options.priority)\n\n if (!state.readable) { this.push(null) }\n if (!state.writable) {\n this._writableState.ended = true\n this._writableState.finished = true\n }\n}\nutil.inherits(Stream, Duplex)\nexports.Stream = Stream\n\nStream.prototype._init = function _init (socket) {\n this.socket = socket\n}\n\nStream.prototype._initPriority = function _initPriority (priority) {\n var state = this._spdyState\n var connectionState = this.connection._spdyState\n var root = connectionState.priorityRoot\n\n if (!priority) {\n state.priority = root.addDefault(this.id)\n return\n }\n\n state.priority = root.add({\n id: this.id,\n parent: priority.parent,\n weight: priority.weight,\n exclusive: priority.exclusive\n })\n}\n\nStream.prototype._handleFrame = function _handleFrame (frame) {\n var state = this._spdyState\n\n // Ignore any kind of data after abort\n if (state.aborted) {\n state.debug('id=%d ignoring frame=%s after abort', this.id, frame.type)\n return\n }\n\n // Restart the timer on incoming frames\n state.timeout.reset()\n\n if (frame.type === 'DATA') {\n this._handleData(frame)\n } else if (frame.type === 'HEADERS') {\n this._handleHeaders(frame)\n } else if (frame.type === 'RST') {\n this._handleRST(frame)\n } else if (frame.type === 'WINDOW_UPDATE') { this._handleWindowUpdate(frame) } else if (frame.type === 'PRIORITY') {\n this._handlePriority(frame)\n } else if (frame.type === 'PUSH_PROMISE') { this._handlePushPromise(frame) }\n\n if (frame.fin) {\n state.debug('id=%d end', this.id)\n this.push(null)\n }\n}\n\nfunction checkAborted (stream, state, callback) {\n if (state.aborted) {\n state.debug('id=%d abort write', stream.id)\n process.nextTick(function () {\n callback(new Error('Stream write aborted'))\n })\n return true\n }\n\n return false\n}\n\nfunction _send (stream, state, data, callback) {\n if (checkAborted(stream, state, callback)) {\n return\n }\n\n state.debug('id=%d presend=%d', stream.id, data.length)\n\n state.timeout.reset()\n\n state.window.send.update(-data.length, function () {\n if (checkAborted(stream, state, callback)) {\n return\n }\n\n state.debug('id=%d send=%d', stream.id, data.length)\n\n state.timeout.reset()\n\n state.framer.dataFrame({\n id: stream.id,\n priority: state.priority.getPriority(),\n fin: false,\n data: data\n }, function (err) {\n state.debug('id=%d postsend=%d', stream.id, data.length)\n callback(err)\n })\n })\n}\n\nStream.prototype._write = function _write (data, enc, callback) {\n var state = this._spdyState\n\n // Send the request if it wasn't sent\n if (!state.sent) { this.send() }\n\n // Writes should come after pending control frames (response and headers)\n if (state.corked !== 0) {\n var self = this\n state.corkQueue.push(function () {\n self._write(data, enc, callback)\n })\n return\n }\n\n // Split DATA in chunks to prevent window from going negative\n this._splitStart(data, _send, callback)\n}\n\nStream.prototype._splitStart = function _splitStart (data, onChunk, callback) {\n return this._split(data, 0, onChunk, callback)\n}\n\nStream.prototype._split = function _split (data, offset, onChunk, callback) {\n if (offset === data.length) {\n return process.nextTick(callback)\n }\n\n var state = this._spdyState\n var local = state.window.send\n var session = state.sessionWindow.send\n\n var availSession = Math.max(0, session.getCurrent())\n if (availSession === 0) {\n availSession = session.getMax()\n }\n var availLocal = Math.max(0, local.getCurrent())\n if (availLocal === 0) {\n availLocal = local.getMax()\n }\n\n var avail = Math.min(availSession, availLocal)\n avail = Math.min(avail, state.maxChunk)\n\n var self = this\n\n if (avail === 0) {\n state.window.send.update(0, function () {\n self._split(data, offset, onChunk, callback)\n })\n return\n }\n\n // Split data in chunks in a following way:\n var limit = avail\n var size = Math.min(data.length - offset, limit)\n\n var chunk = data.slice(offset, offset + size)\n\n onChunk(this, state, chunk, function (err) {\n if (err) { return callback(err) }\n\n // Get the next chunk\n self._split(data, offset + size, onChunk, callback)\n })\n}\n\nStream.prototype._read = function _read () {\n var state = this._spdyState\n\n if (!state.window.recv.isDraining()) {\n return\n }\n\n var delta = state.window.recv.getDelta()\n\n state.debug('id=%d window emptying, update by %d', this.id, delta)\n\n state.window.recv.update(delta)\n state.framer.windowUpdateFrame({\n id: this.id,\n delta: delta\n })\n}\n\nStream.prototype._handleData = function _handleData (frame) {\n var state = this._spdyState\n\n // DATA on ended or not readable stream!\n if (!state.readable || this._readableState.ended) {\n state.framer.rstFrame({ id: this.id, code: 'STREAM_CLOSED' })\n return\n }\n\n state.debug('id=%d recv=%d', this.id, frame.data.length)\n state.window.recv.update(-frame.data.length)\n\n this.push(frame.data)\n}\n\nStream.prototype._handleRST = function _handleRST (frame) {\n if (frame.code !== 'CANCEL') {\n this.emit('error', new Error('Got RST: ' + frame.code))\n }\n this.abort()\n}\n\nStream.prototype._handleWindowUpdate = function _handleWindowUpdate (frame) {\n var state = this._spdyState\n\n state.window.send.update(frame.delta)\n}\n\nStream.prototype._onWindowOverflow = function _onWindowOverflow () {\n var state = this._spdyState\n\n state.debug('id=%d window overflow', this.id)\n state.framer.rstFrame({ id: this.id, code: 'FLOW_CONTROL_ERROR' })\n\n this.aborted = true\n this.emit('error', new Error('HTTP2 window overflow'))\n}\n\nStream.prototype._handlePriority = function _handlePriority (frame) {\n var state = this._spdyState\n\n state.priority.remove()\n state.priority = null\n this._initPriority(frame.priority)\n\n // Mostly for testing purposes\n this.emit('priority', frame.priority)\n}\n\nStream.prototype._handleHeaders = function _handleHeaders (frame) {\n var state = this._spdyState\n\n if (!state.readable || this._readableState.ended) {\n state.framer.rstFrame({ id: this.id, code: 'STREAM_CLOSED' })\n return\n }\n\n if (state.needResponse) {\n return this._handleResponse(frame)\n }\n\n this.emit('headers', frame.headers)\n}\n\nStream.prototype._handleResponse = function _handleResponse (frame) {\n var state = this._spdyState\n\n if (frame.headers[':status'] === undefined) {\n state.framer.rstFrame({ id: this.id, code: 'PROTOCOL_ERROR' })\n return\n }\n\n state.needResponse = false\n this.emit('response', frame.headers[':status'] | 0, frame.headers)\n}\n\nStream.prototype._onFinish = function _onFinish () {\n var state = this._spdyState\n\n // Send the request if it wasn't sent\n if (!state.sent) {\n // NOTE: will send HEADERS with FIN flag\n this.send()\n } else {\n // Just an `.end()` without any writes will trigger immediate `finish` event\n // without any calls to `_write()`.\n if (state.corked !== 0) {\n var self = this\n state.corkQueue.push(function () {\n self._onFinish()\n })\n return\n }\n\n state.framer.dataFrame({\n id: this.id,\n priority: state.priority.getPriority(),\n fin: true,\n data: Buffer.alloc(0)\n })\n }\n\n this._maybeClose()\n}\n\nStream.prototype._onEnd = function _onEnd () {\n this._maybeClose()\n}\n\nStream.prototype._checkEnded = function _checkEnded (callback) {\n var state = this._spdyState\n\n var ended = false\n if (state.aborted) { ended = true }\n\n if (!state.writable || this._writableState.finished) { ended = true }\n\n if (!ended) {\n return true\n }\n\n if (!callback) {\n return false\n }\n\n var err = new Error('Ended stream can\\'t send frames')\n process.nextTick(function () {\n callback(err)\n })\n\n return false\n}\n\nStream.prototype._maybeClose = function _maybeClose () {\n var state = this._spdyState\n\n // .abort() emits `close`\n if (state.aborted) {\n return\n }\n\n if ((!state.readable || this._readableState.ended) &&\n this._writableState.finished) {\n // Clear timeout\n state.timeout.set(0)\n\n this.emit('close')\n }\n}\n\nStream.prototype._handlePushPromise = function _handlePushPromise (frame) {\n var push = this.connection._createStream({\n id: frame.promisedId,\n parent: this,\n push: true,\n request: true,\n method: frame.headers[':method'],\n path: frame.headers[':path'],\n host: frame.headers[':authority'],\n priority: frame.priority,\n headers: frame.headers,\n writable: false\n })\n\n // GOAWAY\n if (this.connection._isGoaway(push.id)) {\n return\n }\n\n if (!this.emit('pushPromise', push)) {\n push.abort()\n }\n}\n\nStream.prototype._hardCork = function _hardCork () {\n var state = this._spdyState\n\n this.cork()\n state.corked++\n}\n\nStream.prototype._hardUncork = function _hardUncork () {\n var state = this._spdyState\n\n this.uncork()\n state.corked--\n if (state.corked !== 0) {\n return\n }\n\n // Invoke callbacks\n var queue = state.corkQueue\n state.corkQueue = []\n for (var i = 0; i < queue.length; i++) {\n queue[i]()\n }\n}\n\nStream.prototype._sendPush = function _sendPush (status, response, callback) {\n var self = this\n var state = this._spdyState\n\n this._hardCork()\n state.framer.pushFrame({\n id: this.parent.id,\n promisedId: this.id,\n priority: state.priority.toJSON(),\n path: this.path,\n host: this.host,\n method: this.method,\n status: status,\n headers: this.headers,\n response: response\n }, function (err) {\n self._hardUncork()\n\n callback(err)\n })\n}\n\nStream.prototype._wasSent = function _wasSent () {\n var state = this._spdyState\n return state.sent\n}\n\n// Public API\n\nStream.prototype.send = function send (callback) {\n var state = this._spdyState\n\n if (state.sent) {\n var err = new Error('Stream was already sent')\n process.nextTick(function () {\n if (callback) {\n callback(err)\n }\n })\n return\n }\n\n state.sent = true\n state.timeout.reset()\n\n // GET requests should always be auto-finished\n if (this.method === 'GET') {\n this._writableState.ended = true\n this._writableState.finished = true\n }\n\n // TODO(indunty): ideally it should just take a stream object as an input\n var self = this\n this._hardCork()\n state.framer.requestFrame({\n id: this.id,\n method: this.method,\n path: this.path,\n host: this.host,\n priority: state.priority.toJSON(),\n headers: this.headers,\n fin: this._writableState.finished\n }, function (err) {\n self._hardUncork()\n\n if (!callback) {\n return\n }\n\n callback(err)\n })\n}\n\nStream.prototype.respond = function respond (status, headers, callback) {\n var self = this\n var state = this._spdyState\n assert(!state.request, 'Can\\'t respond on request')\n\n state.timeout.reset()\n\n if (!this._checkEnded(callback)) { return }\n\n var frame = {\n id: this.id,\n status: status,\n headers: headers\n }\n this._hardCork()\n state.framer.responseFrame(frame, function (err) {\n self._hardUncork()\n if (callback) { callback(err) }\n })\n}\n\nStream.prototype.setWindow = function setWindow (size) {\n var state = this._spdyState\n\n state.timeout.reset()\n\n if (!this._checkEnded()) {\n return\n }\n\n state.debug('id=%d force window max=%d', this.id, size)\n state.window.recv.setMax(size)\n\n var delta = state.window.recv.getDelta()\n if (delta === 0) { return }\n\n state.framer.windowUpdateFrame({\n id: this.id,\n delta: delta\n })\n state.window.recv.update(delta)\n}\n\nStream.prototype.sendHeaders = function sendHeaders (headers, callback) {\n var self = this\n var state = this._spdyState\n\n state.timeout.reset()\n\n if (!this._checkEnded(callback)) {\n return\n }\n\n // Request wasn't yet send, coalesce headers\n if (!state.sent) {\n this.headers = Object.assign({}, this.headers)\n Object.assign(this.headers, headers)\n process.nextTick(function () {\n if (callback) {\n callback(null)\n }\n })\n return\n }\n\n this._hardCork()\n state.framer.headersFrame({\n id: this.id,\n headers: headers\n }, function (err) {\n self._hardUncork()\n if (callback) { callback(err) }\n })\n}\n\nStream.prototype._destroy = function destroy () {\n this.abort()\n}\n\nStream.prototype.abort = function abort (code, callback) {\n var state = this._spdyState\n\n // .abort(callback)\n if (typeof code === 'function') {\n callback = code\n code = null\n }\n\n if (this._readableState.ended && this._writableState.finished) {\n state.debug('id=%d already closed', this.id)\n if (callback) {\n process.nextTick(callback)\n }\n return\n }\n\n if (state.aborted) {\n state.debug('id=%d already aborted', this.id)\n if (callback) { process.nextTick(callback) }\n return\n }\n\n state.aborted = true\n state.debug('id=%d abort', this.id)\n\n this.setTimeout(0)\n\n var abortCode = code || 'CANCEL'\n\n state.framer.rstFrame({\n id: this.id,\n code: abortCode\n })\n\n var self = this\n process.nextTick(function () {\n if (callback) {\n callback(null)\n }\n self.emit('close', new Error('Aborted, code: ' + abortCode))\n })\n}\n\nStream.prototype.setPriority = function setPriority (info) {\n var state = this._spdyState\n\n state.timeout.reset()\n\n if (!this._checkEnded()) {\n return\n }\n\n state.debug('id=%d priority change', this.id, info)\n\n var frame = { id: this.id, priority: info }\n\n // Change priority on this side\n this._handlePriority(frame)\n\n // And on the other too\n state.framer.priorityFrame(frame)\n}\n\nStream.prototype.pushPromise = function pushPromise (uri, callback) {\n if (!this._checkEnded(callback)) {\n return\n }\n\n var self = this\n this._hardCork()\n var push = this.connection.pushPromise(this, uri, function (err) {\n self._hardUncork()\n if (!err) {\n push._hardUncork()\n }\n\n if (callback) {\n return callback(err, push)\n }\n\n if (err) { push.emit('error', err) }\n })\n push._hardCork()\n\n return push\n}\n\nStream.prototype.setMaxChunk = function setMaxChunk (size) {\n var state = this._spdyState\n state.maxChunk = size\n}\n\nStream.prototype.setTimeout = function setTimeout (delay, callback) {\n var state = this._spdyState\n\n state.timeout.set(delay, callback)\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/stream.js?");
31618
31638
 
31619
31639
  /***/ }),
31620
31640
 
@@ -31636,27 +31656,7 @@ eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar isNode = __w
31636
31656
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31637
31657
 
31638
31658
  "use strict";
31639
- eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\nvar debug = {\n server: __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:window:server'),\n client: __webpack_require__(/*! debug */ \"./node_modules/spdy-transport/node_modules/debug/src/browser.js\")('spdy:window:client')\n}\n\nfunction Side (window, name, options) {\n EventEmitter.call(this)\n\n this.name = name\n this.window = window\n this.current = options.size\n this.max = options.size\n this.limit = options.max\n this.lowWaterMark = options.lowWaterMark === undefined\n ? this.max / 2\n : options.lowWaterMark\n\n this._refilling = false\n this._refillQueue = []\n}\nutil.inherits(Side, EventEmitter)\n\nSide.prototype.setMax = function setMax (max) {\n this.window.debug('id=%d side=%s setMax=%d',\n this.window.id,\n this.name,\n max)\n this.max = max\n this.lowWaterMark = this.max / 2\n}\n\nSide.prototype.updateMax = function updateMax (max) {\n var delta = max - this.max\n this.window.debug('id=%d side=%s updateMax=%d delta=%d',\n this.window.id,\n this.name,\n max,\n delta)\n\n this.max = max\n this.lowWaterMark = max / 2\n\n this.update(delta)\n}\n\nSide.prototype.setLowWaterMark = function setLowWaterMark (lwm) {\n this.lowWaterMark = lwm\n}\n\nSide.prototype.update = function update (size, callback) {\n // Not enough space for the update, wait for refill\n if (size <= 0 && callback && this.isEmpty()) {\n this.window.debug('id=%d side=%s wait for refill=%d [%d/%d]',\n this.window.id,\n this.name,\n -size,\n this.current,\n this.max)\n this._refillQueue.push({\n size: size,\n callback: callback\n })\n return\n }\n\n this.current += size\n\n if (this.current > this.limit) {\n this.emit('overflow')\n return\n }\n\n this.window.debug('id=%d side=%s update by=%d [%d/%d]',\n this.window.id,\n this.name,\n size,\n this.current,\n this.max)\n\n // Time to send WINDOW_UPDATE\n if (size < 0 && this.isDraining()) {\n this.window.debug('id=%d side=%s drained', this.window.id, this.name)\n this.emit('drain')\n }\n\n // Time to write\n if (size > 0 && this.current > 0 && this.current <= size) {\n this.window.debug('id=%d side=%s full', this.window.id, this.name)\n this.emit('full')\n }\n\n this._processRefillQueue()\n\n if (callback) { process.nextTick(callback) }\n}\n\nSide.prototype.getCurrent = function getCurrent () {\n return this.current\n}\n\nSide.prototype.getMax = function getMax () {\n return this.max\n}\n\nSide.prototype.getDelta = function getDelta () {\n return this.max - this.current\n}\n\nSide.prototype.isDraining = function isDraining () {\n return this.current <= this.lowWaterMark\n}\n\nSide.prototype.isEmpty = function isEmpty () {\n return this.current <= 0\n}\n\n// Private\n\nSide.prototype._processRefillQueue = function _processRefillQueue () {\n // Prevent recursion\n if (this._refilling) {\n return\n }\n this._refilling = true\n\n while (this._refillQueue.length > 0) {\n var item = this._refillQueue[0]\n\n if (this.isEmpty()) {\n break\n }\n\n this.window.debug('id=%d side=%s refilled for size=%d',\n this.window.id,\n this.name,\n -item.size)\n\n this._refillQueue.shift()\n this.update(item.size, item.callback)\n }\n\n this._refilling = false\n}\n\nfunction Window (options) {\n this.id = options.id\n this.isServer = options.isServer\n this.debug = this.isServer ? debug.server : debug.client\n\n this.recv = new Side(this, 'recv', options.recv)\n this.send = new Side(this, 'send', options.send)\n}\nmodule.exports = Window\n\nWindow.prototype.clone = function clone (id) {\n return new Window({\n id: id,\n isServer: this.isServer,\n recv: {\n size: this.recv.max,\n max: this.recv.limit,\n lowWaterMark: this.recv.lowWaterMark\n },\n send: {\n size: this.send.max,\n max: this.send.limit,\n lowWaterMark: this.send.lowWaterMark\n }\n })\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/window.js?");
31640
-
31641
- /***/ }),
31642
-
31643
- /***/ "./node_modules/spdy-transport/node_modules/debug/src/browser.js":
31644
- /*!***********************************************************************!*\
31645
- !*** ./node_modules/spdy-transport/node_modules/debug/src/browser.js ***!
31646
- \***********************************************************************/
31647
- /***/ ((module, exports, __webpack_require__) => {
31648
-
31649
- eval("/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/spdy-transport/node_modules/debug/src/common.js\")(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/node_modules/debug/src/browser.js?");
31650
-
31651
- /***/ }),
31652
-
31653
- /***/ "./node_modules/spdy-transport/node_modules/debug/src/common.js":
31654
- /*!**********************************************************************!*\
31655
- !*** ./node_modules/spdy-transport/node_modules/debug/src/common.js ***!
31656
- \**********************************************************************/
31657
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31658
-
31659
- eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/node_modules/debug/src/common.js?");
31659
+ eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\nvar debug = {\n server: __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:window:server'),\n client: __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:window:client')\n}\n\nfunction Side (window, name, options) {\n EventEmitter.call(this)\n\n this.name = name\n this.window = window\n this.current = options.size\n this.max = options.size\n this.limit = options.max\n this.lowWaterMark = options.lowWaterMark === undefined\n ? this.max / 2\n : options.lowWaterMark\n\n this._refilling = false\n this._refillQueue = []\n}\nutil.inherits(Side, EventEmitter)\n\nSide.prototype.setMax = function setMax (max) {\n this.window.debug('id=%d side=%s setMax=%d',\n this.window.id,\n this.name,\n max)\n this.max = max\n this.lowWaterMark = this.max / 2\n}\n\nSide.prototype.updateMax = function updateMax (max) {\n var delta = max - this.max\n this.window.debug('id=%d side=%s updateMax=%d delta=%d',\n this.window.id,\n this.name,\n max,\n delta)\n\n this.max = max\n this.lowWaterMark = max / 2\n\n this.update(delta)\n}\n\nSide.prototype.setLowWaterMark = function setLowWaterMark (lwm) {\n this.lowWaterMark = lwm\n}\n\nSide.prototype.update = function update (size, callback) {\n // Not enough space for the update, wait for refill\n if (size <= 0 && callback && this.isEmpty()) {\n this.window.debug('id=%d side=%s wait for refill=%d [%d/%d]',\n this.window.id,\n this.name,\n -size,\n this.current,\n this.max)\n this._refillQueue.push({\n size: size,\n callback: callback\n })\n return\n }\n\n this.current += size\n\n if (this.current > this.limit) {\n this.emit('overflow')\n return\n }\n\n this.window.debug('id=%d side=%s update by=%d [%d/%d]',\n this.window.id,\n this.name,\n size,\n this.current,\n this.max)\n\n // Time to send WINDOW_UPDATE\n if (size < 0 && this.isDraining()) {\n this.window.debug('id=%d side=%s drained', this.window.id, this.name)\n this.emit('drain')\n }\n\n // Time to write\n if (size > 0 && this.current > 0 && this.current <= size) {\n this.window.debug('id=%d side=%s full', this.window.id, this.name)\n this.emit('full')\n }\n\n this._processRefillQueue()\n\n if (callback) { process.nextTick(callback) }\n}\n\nSide.prototype.getCurrent = function getCurrent () {\n return this.current\n}\n\nSide.prototype.getMax = function getMax () {\n return this.max\n}\n\nSide.prototype.getDelta = function getDelta () {\n return this.max - this.current\n}\n\nSide.prototype.isDraining = function isDraining () {\n return this.current <= this.lowWaterMark\n}\n\nSide.prototype.isEmpty = function isEmpty () {\n return this.current <= 0\n}\n\n// Private\n\nSide.prototype._processRefillQueue = function _processRefillQueue () {\n // Prevent recursion\n if (this._refilling) {\n return\n }\n this._refilling = true\n\n while (this._refillQueue.length > 0) {\n var item = this._refillQueue[0]\n\n if (this.isEmpty()) {\n break\n }\n\n this.window.debug('id=%d side=%s refilled for size=%d',\n this.window.id,\n this.name,\n -item.size)\n\n this._refillQueue.shift()\n this.update(item.size, item.callback)\n }\n\n this._refilling = false\n}\n\nfunction Window (options) {\n this.id = options.id\n this.isServer = options.isServer\n this.debug = this.isServer ? debug.server : debug.client\n\n this.recv = new Side(this, 'recv', options.recv)\n this.send = new Side(this, 'send', options.send)\n}\nmodule.exports = Window\n\nWindow.prototype.clone = function clone (id) {\n return new Window({\n id: id,\n isServer: this.isServer,\n recv: {\n size: this.recv.max,\n max: this.recv.limit,\n lowWaterMark: this.recv.lowWaterMark\n },\n send: {\n size: this.send.max,\n max: this.send.limit,\n lowWaterMark: this.send.lowWaterMark\n }\n })\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy-transport/lib/spdy-transport/window.js?");
31660
31660
 
31661
31661
  /***/ }),
31662
31662
 
@@ -31678,7 +31678,7 @@ eval("\n\nvar spdy = exports\n\n// Export tools\nspdy.handle = __webpack_require
31678
31678
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
31679
31679
 
31680
31680
  "use strict";
31681
- eval("\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar http = __webpack_require__(/*! http */ \"http\")\nvar https = __webpack_require__(/*! https */ \"https\")\nvar net = __webpack_require__(/*! net */ \"net\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar transport = __webpack_require__(/*! spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/spdy/node_modules/debug/src/browser.js\")('spdy:client')\n\n// Node.js 0.10 and 0.12 support\nObject.assign = process.versions.modules >= 46\n ? Object.assign // eslint-disable-next-line\n : util._extend\n\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\n\nvar spdy = __webpack_require__(/*! ../spdy */ \"./node_modules/spdy/lib/spdy.js\")\n\nvar mode = /^v0\\.8\\./.test(process.version)\n ? 'rusty'\n : /^v0\\.(9|10)\\./.test(process.version)\n ? 'old'\n : /^v0\\.12\\./.test(process.version)\n ? 'normal'\n : 'modern'\n\nvar proto = {}\n\nfunction instantiate (base) {\n function Agent (options) {\n this._init(base, options)\n }\n util.inherits(Agent, base)\n\n Agent.create = function create (options) {\n return new Agent(options)\n }\n\n Object.keys(proto).forEach(function (key) {\n Agent.prototype[key] = proto[key]\n })\n\n return Agent\n}\n\nproto._init = function _init (base, options) {\n base.call(this, options)\n\n var state = {}\n this._spdyState = state\n\n state.host = options.host\n state.options = options.spdy || {}\n state.secure = this instanceof https.Agent\n state.fallback = false\n state.createSocket = this._getCreateSocket()\n state.socket = null\n state.connection = null\n\n // No chunked encoding\n this.keepAlive = false\n\n var self = this\n this._connect(options, function (err, connection) {\n if (err) {\n return self.emit('error', err)\n }\n\n state.connection = connection\n self.emit('_connect')\n })\n}\n\nproto._getCreateSocket = function _getCreateSocket () {\n // Find super's `createSocket` method\n var createSocket\n var cons = this.constructor.super_\n do {\n createSocket = cons.prototype.createSocket\n\n if (cons.super_ === EventEmitter || !cons.super_) {\n break\n }\n cons = cons.super_\n } while (!createSocket)\n if (!createSocket) {\n createSocket = http.Agent.prototype.createSocket\n }\n\n assert(createSocket, '.createSocket() method not found')\n\n return createSocket\n}\n\nproto._connect = function _connect (options, callback) {\n var self = this\n var state = this._spdyState\n\n var protocols = state.options.protocols || [\n 'h2',\n 'spdy/3.1', 'spdy/3', 'spdy/2',\n 'http/1.1', 'http/1.0'\n ]\n\n // TODO(indutny): reconnect automatically?\n var socket = this.createConnection(Object.assign({\n NPNProtocols: protocols,\n ALPNProtocols: protocols,\n servername: options.servername || options.host\n }, options))\n state.socket = socket\n\n socket.setNoDelay(true)\n\n function onError (err) {\n return callback(err)\n }\n socket.on('error', onError)\n\n socket.on(state.secure ? 'secureConnect' : 'connect', function () {\n socket.removeListener('error', onError)\n\n var protocol\n if (state.secure) {\n protocol = socket.npnProtocol ||\n socket.alpnProtocol ||\n state.options.protocol\n } else {\n protocol = state.options.protocol\n }\n\n // HTTP server - kill socket and switch to the fallback mode\n if (!protocol || protocol === 'http/1.1' || protocol === 'http/1.0') {\n debug('activating fallback')\n socket.destroy()\n state.fallback = true\n return\n }\n\n debug('connected protocol=%j', protocol)\n var connection = transport.connection.create(socket, Object.assign({\n protocol: /spdy/.test(protocol) ? 'spdy' : 'http2',\n isServer: false\n }, state.options.connection || {}))\n\n // Pass connection level errors are passed to the agent.\n connection.on('error', function (err) {\n self.emit('error', err)\n })\n\n // Set version when we are certain\n if (protocol === 'h2') {\n connection.start(4)\n } else if (protocol === 'spdy/3.1') {\n connection.start(3.1)\n } else if (protocol === 'spdy/3') {\n connection.start(3)\n } else if (protocol === 'spdy/2') {\n connection.start(2)\n } else {\n socket.destroy()\n callback(new Error('Unexpected protocol: ' + protocol))\n return\n }\n\n if (state.options['x-forwarded-for'] !== undefined) {\n connection.sendXForwardedFor(state.options['x-forwarded-for'])\n }\n\n callback(null, connection)\n })\n}\n\nproto._createSocket = function _createSocket (req, options, callback) {\n var state = this._spdyState\n if (state.fallback) { return state.createSocket(req, options) }\n\n var handle = spdy.handle.create(null, null, state.socket)\n\n var socketOptions = {\n handle: handle,\n allowHalfOpen: true\n }\n\n var socket\n if (state.secure) {\n socket = new spdy.Socket(state.socket, socketOptions)\n } else {\n socket = new net.Socket(socketOptions)\n }\n\n handle.assignSocket(socket)\n handle.assignClientRequest(req)\n\n // Create stream only once `req.end()` is called\n var self = this\n handle.once('needStream', function () {\n if (state.connection === null) {\n self.once('_connect', function () {\n handle.setStream(self._createStream(req, handle))\n })\n } else {\n handle.setStream(self._createStream(req, handle))\n }\n })\n\n // Yes, it is in reverse\n req.on('response', function (res) {\n handle.assignRequest(res)\n })\n handle.assignResponse(req)\n\n // Handle PUSH\n req.addListener('newListener', spdy.request.onNewListener)\n\n // For v0.8\n socket.readable = true\n socket.writable = true\n\n if (callback) {\n return callback(null, socket)\n }\n\n return socket\n}\n\nif (mode === 'modern' || mode === 'normal') {\n proto.createSocket = proto._createSocket\n} else {\n proto.createSocket = function createSocket (name, host, port, addr, req) {\n var state = this._spdyState\n if (state.fallback) {\n return state.createSocket(name, host, port, addr, req)\n }\n\n return this._createSocket(req, {\n host: host,\n port: port\n })\n }\n}\n\nproto._createStream = function _createStream (req, handle) {\n var state = this._spdyState\n\n var self = this\n return state.connection.reserveStream({\n method: req.method,\n path: req.path,\n headers: req._headers,\n host: state.host\n }, function (err, stream) {\n if (err) {\n return self.emit('error', err)\n }\n\n stream.on('response', function (status, headers) {\n handle.emitResponse(status, headers)\n })\n })\n}\n\n// Public APIs\n\nproto.close = function close (callback) {\n var state = this._spdyState\n\n if (state.connection === null) {\n this.once('_connect', function () {\n this.close(callback)\n })\n return\n }\n\n state.connection.end(callback)\n}\n\nexports.Agent = instantiate(https.Agent)\nexports.PlainAgent = instantiate(http.Agent)\n\nexports.create = function create (base, options) {\n if (typeof base === 'object') {\n options = base\n base = null\n }\n\n if (base) {\n return instantiate(base).create(options)\n }\n\n if (options.spdy && options.spdy.plain) {\n return exports.PlainAgent.create(options)\n } else { return exports.Agent.create(options) }\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy/lib/spdy/agent.js?");
31681
+ eval("\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar http = __webpack_require__(/*! http */ \"http\")\nvar https = __webpack_require__(/*! https */ \"https\")\nvar net = __webpack_require__(/*! net */ \"net\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar transport = __webpack_require__(/*! spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:client')\n\n// Node.js 0.10 and 0.12 support\nObject.assign = process.versions.modules >= 46\n ? Object.assign // eslint-disable-next-line\n : util._extend\n\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\n\nvar spdy = __webpack_require__(/*! ../spdy */ \"./node_modules/spdy/lib/spdy.js\")\n\nvar mode = /^v0\\.8\\./.test(process.version)\n ? 'rusty'\n : /^v0\\.(9|10)\\./.test(process.version)\n ? 'old'\n : /^v0\\.12\\./.test(process.version)\n ? 'normal'\n : 'modern'\n\nvar proto = {}\n\nfunction instantiate (base) {\n function Agent (options) {\n this._init(base, options)\n }\n util.inherits(Agent, base)\n\n Agent.create = function create (options) {\n return new Agent(options)\n }\n\n Object.keys(proto).forEach(function (key) {\n Agent.prototype[key] = proto[key]\n })\n\n return Agent\n}\n\nproto._init = function _init (base, options) {\n base.call(this, options)\n\n var state = {}\n this._spdyState = state\n\n state.host = options.host\n state.options = options.spdy || {}\n state.secure = this instanceof https.Agent\n state.fallback = false\n state.createSocket = this._getCreateSocket()\n state.socket = null\n state.connection = null\n\n // No chunked encoding\n this.keepAlive = false\n\n var self = this\n this._connect(options, function (err, connection) {\n if (err) {\n return self.emit('error', err)\n }\n\n state.connection = connection\n self.emit('_connect')\n })\n}\n\nproto._getCreateSocket = function _getCreateSocket () {\n // Find super's `createSocket` method\n var createSocket\n var cons = this.constructor.super_\n do {\n createSocket = cons.prototype.createSocket\n\n if (cons.super_ === EventEmitter || !cons.super_) {\n break\n }\n cons = cons.super_\n } while (!createSocket)\n if (!createSocket) {\n createSocket = http.Agent.prototype.createSocket\n }\n\n assert(createSocket, '.createSocket() method not found')\n\n return createSocket\n}\n\nproto._connect = function _connect (options, callback) {\n var self = this\n var state = this._spdyState\n\n var protocols = state.options.protocols || [\n 'h2',\n 'spdy/3.1', 'spdy/3', 'spdy/2',\n 'http/1.1', 'http/1.0'\n ]\n\n // TODO(indutny): reconnect automatically?\n var socket = this.createConnection(Object.assign({\n NPNProtocols: protocols,\n ALPNProtocols: protocols,\n servername: options.servername || options.host\n }, options))\n state.socket = socket\n\n socket.setNoDelay(true)\n\n function onError (err) {\n return callback(err)\n }\n socket.on('error', onError)\n\n socket.on(state.secure ? 'secureConnect' : 'connect', function () {\n socket.removeListener('error', onError)\n\n var protocol\n if (state.secure) {\n protocol = socket.npnProtocol ||\n socket.alpnProtocol ||\n state.options.protocol\n } else {\n protocol = state.options.protocol\n }\n\n // HTTP server - kill socket and switch to the fallback mode\n if (!protocol || protocol === 'http/1.1' || protocol === 'http/1.0') {\n debug('activating fallback')\n socket.destroy()\n state.fallback = true\n return\n }\n\n debug('connected protocol=%j', protocol)\n var connection = transport.connection.create(socket, Object.assign({\n protocol: /spdy/.test(protocol) ? 'spdy' : 'http2',\n isServer: false\n }, state.options.connection || {}))\n\n // Pass connection level errors are passed to the agent.\n connection.on('error', function (err) {\n self.emit('error', err)\n })\n\n // Set version when we are certain\n if (protocol === 'h2') {\n connection.start(4)\n } else if (protocol === 'spdy/3.1') {\n connection.start(3.1)\n } else if (protocol === 'spdy/3') {\n connection.start(3)\n } else if (protocol === 'spdy/2') {\n connection.start(2)\n } else {\n socket.destroy()\n callback(new Error('Unexpected protocol: ' + protocol))\n return\n }\n\n if (state.options['x-forwarded-for'] !== undefined) {\n connection.sendXForwardedFor(state.options['x-forwarded-for'])\n }\n\n callback(null, connection)\n })\n}\n\nproto._createSocket = function _createSocket (req, options, callback) {\n var state = this._spdyState\n if (state.fallback) { return state.createSocket(req, options) }\n\n var handle = spdy.handle.create(null, null, state.socket)\n\n var socketOptions = {\n handle: handle,\n allowHalfOpen: true\n }\n\n var socket\n if (state.secure) {\n socket = new spdy.Socket(state.socket, socketOptions)\n } else {\n socket = new net.Socket(socketOptions)\n }\n\n handle.assignSocket(socket)\n handle.assignClientRequest(req)\n\n // Create stream only once `req.end()` is called\n var self = this\n handle.once('needStream', function () {\n if (state.connection === null) {\n self.once('_connect', function () {\n handle.setStream(self._createStream(req, handle))\n })\n } else {\n handle.setStream(self._createStream(req, handle))\n }\n })\n\n // Yes, it is in reverse\n req.on('response', function (res) {\n handle.assignRequest(res)\n })\n handle.assignResponse(req)\n\n // Handle PUSH\n req.addListener('newListener', spdy.request.onNewListener)\n\n // For v0.8\n socket.readable = true\n socket.writable = true\n\n if (callback) {\n return callback(null, socket)\n }\n\n return socket\n}\n\nif (mode === 'modern' || mode === 'normal') {\n proto.createSocket = proto._createSocket\n} else {\n proto.createSocket = function createSocket (name, host, port, addr, req) {\n var state = this._spdyState\n if (state.fallback) {\n return state.createSocket(name, host, port, addr, req)\n }\n\n return this._createSocket(req, {\n host: host,\n port: port\n })\n }\n}\n\nproto._createStream = function _createStream (req, handle) {\n var state = this._spdyState\n\n var self = this\n return state.connection.reserveStream({\n method: req.method,\n path: req.path,\n headers: req._headers,\n host: state.host\n }, function (err, stream) {\n if (err) {\n return self.emit('error', err)\n }\n\n stream.on('response', function (status, headers) {\n handle.emitResponse(status, headers)\n })\n })\n}\n\n// Public APIs\n\nproto.close = function close (callback) {\n var state = this._spdyState\n\n if (state.connection === null) {\n this.once('_connect', function () {\n this.close(callback)\n })\n return\n }\n\n state.connection.end(callback)\n}\n\nexports.Agent = instantiate(https.Agent)\nexports.PlainAgent = instantiate(http.Agent)\n\nexports.create = function create (base, options) {\n if (typeof base === 'object') {\n options = base\n base = null\n }\n\n if (base) {\n return instantiate(base).create(options)\n }\n\n if (options.spdy && options.spdy.plain) {\n return exports.PlainAgent.create(options)\n } else { return exports.Agent.create(options) }\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy/lib/spdy/agent.js?");
31682
31682
 
31683
31683
  /***/ }),
31684
31684
 
@@ -31722,7 +31722,7 @@ eval("\n\n// NOTE: Mostly copy paste from node\nexports.writeHead = function wri
31722
31722
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
31723
31723
 
31724
31724
  "use strict";
31725
- eval("\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar https = __webpack_require__(/*! https */ \"https\")\nvar http = __webpack_require__(/*! http */ \"http\")\nvar tls = __webpack_require__(/*! tls */ \"tls\")\nvar net = __webpack_require__(/*! net */ \"net\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar selectHose = __webpack_require__(/*! select-hose */ \"./node_modules/select-hose/lib/hose.js\")\nvar transport = __webpack_require__(/*! spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/spdy/node_modules/debug/src/browser.js\")('spdy:server')\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\n\n// Node.js 0.8, 0.10 and 0.12 support\nObject.assign = process.versions.modules >= 46\n ? Object.assign // eslint-disable-next-line\n : util._extend\n\nvar spdy = __webpack_require__(/*! ../spdy */ \"./node_modules/spdy/lib/spdy.js\")\n\nvar proto = {}\n\nfunction instantiate (base) {\n function Server (options, handler) {\n this._init(base, options, handler)\n }\n util.inherits(Server, base)\n\n Server.create = function create (options, handler) {\n return new Server(options, handler)\n }\n\n Object.keys(proto).forEach(function (key) {\n Server.prototype[key] = proto[key]\n })\n\n return Server\n}\n\nproto._init = function _init (base, options, handler) {\n var state = {}\n this._spdyState = state\n\n state.options = options.spdy || {}\n\n var protocols = state.options.protocols || [\n 'h2',\n 'spdy/3.1', 'spdy/3', 'spdy/2',\n 'http/1.1', 'http/1.0'\n ]\n\n var actualOptions = Object.assign({\n NPNProtocols: protocols,\n\n // Future-proof\n ALPNProtocols: protocols\n }, options)\n\n state.secure = this instanceof tls.Server\n\n if (state.secure) {\n base.call(this, actualOptions)\n } else {\n base.call(this)\n }\n\n // Support HEADERS+FIN\n this.httpAllowHalfOpen = true\n\n var event = state.secure ? 'secureConnection' : 'connection'\n\n state.listeners = this.listeners(event).slice()\n assert(state.listeners.length > 0, 'Server does not have default listeners')\n this.removeAllListeners(event)\n\n if (state.options.plain) {\n this.on(event, this._onPlainConnection)\n } else { this.on(event, this._onConnection) }\n\n if (handler) {\n this.on('request', handler)\n }\n\n debug('server init secure=%d', state.secure)\n}\n\nproto._onConnection = function _onConnection (socket) {\n var state = this._spdyState\n\n var protocol\n if (state.secure) {\n protocol = socket.npnProtocol || socket.alpnProtocol\n }\n\n this._handleConnection(socket, protocol)\n}\n\nproto._handleConnection = function _handleConnection (socket, protocol) {\n var state = this._spdyState\n\n if (!protocol) {\n protocol = state.options.protocol\n }\n\n debug('incoming socket protocol=%j', protocol)\n\n // No way we can do anything with the socket\n if (!protocol || protocol === 'http/1.1' || protocol === 'http/1.0') {\n debug('to default handler it goes')\n return this._invokeDefault(socket)\n }\n\n socket.setNoDelay(true)\n\n var connection = transport.connection.create(socket, Object.assign({\n protocol: /spdy/.test(protocol) ? 'spdy' : 'http2',\n isServer: true\n }, state.options.connection || {}))\n\n // Set version when we are certain\n if (protocol === 'http2') { connection.start(4) } else if (protocol === 'spdy/3.1') {\n connection.start(3.1)\n } else if (protocol === 'spdy/3') { connection.start(3) } else if (protocol === 'spdy/2') {\n connection.start(2)\n }\n\n connection.on('error', function () {\n socket.destroy()\n })\n\n var self = this\n connection.on('stream', function (stream) {\n self._onStream(stream)\n })\n}\n\n// HTTP2 preface\nvar PREFACE = 'PRI * HTTP/2.0\\r\\n\\r\\nSM\\r\\n\\r\\n'\nvar PREFACE_BUFFER = Buffer.from(PREFACE)\n\nfunction hoseFilter (data, callback) {\n if (data.length < 1) {\n return callback(null, null)\n }\n\n // SPDY!\n if (data[0] === 0x80) { return callback(null, 'spdy') }\n\n var avail = Math.min(data.length, PREFACE_BUFFER.length)\n for (var i = 0; i < avail; i++) {\n if (data[i] !== PREFACE_BUFFER[i]) { return callback(null, 'http/1.1') }\n }\n\n // Not enough bytes to be sure about HTTP2\n if (avail !== PREFACE_BUFFER.length) { return callback(null, null) }\n\n return callback(null, 'h2')\n}\n\nproto._onPlainConnection = function _onPlainConnection (socket) {\n var hose = selectHose.create(socket, {}, hoseFilter)\n\n var self = this\n hose.on('select', function (protocol, socket) {\n self._handleConnection(socket, protocol)\n })\n\n hose.on('error', function (err) {\n debug('hose error %j', err.message)\n socket.destroy()\n })\n}\n\nproto._invokeDefault = function _invokeDefault (socket) {\n var state = this._spdyState\n\n for (var i = 0; i < state.listeners.length; i++) { state.listeners[i].call(this, socket) }\n}\n\nproto._onStream = function _onStream (stream) {\n var state = this._spdyState\n\n var handle = spdy.handle.create(this._spdyState.options, stream)\n\n var socketOptions = {\n handle: handle,\n allowHalfOpen: true\n }\n\n var socket\n if (state.secure) {\n socket = new spdy.Socket(stream.connection.socket, socketOptions)\n } else {\n socket = new net.Socket(socketOptions)\n }\n\n // This is needed because the `error` listener, added by the default\n // `connection` listener, no longer has bound arguments. It relies instead\n // on the `server` property of the socket. See https://github.com/nodejs/node/pull/11926\n // for more details.\n // This is only done for Node.js >= 4 in order to not break compatibility\n // with older versions of the platform.\n if (process.versions.modules >= 46) { socket.server = this }\n\n handle.assignSocket(socket)\n\n // For v0.8\n socket.readable = true\n socket.writable = true\n\n this._invokeDefault(socket)\n\n // For v0.8, 0.10 and 0.12\n if (process.versions.modules < 46) {\n // eslint-disable-next-line\n this.listenerCount = EventEmitter.listenerCount.bind(this)\n }\n\n // Add lazy `checkContinue` listener, otherwise `res.writeContinue` will be\n // called before the response object was patched by us.\n if (stream.headers.expect !== undefined &&\n /100-continue/i.test(stream.headers.expect) &&\n this.listenerCount('checkContinue') === 0) {\n this.once('checkContinue', function (req, res) {\n res.writeContinue()\n\n this.emit('request', req, res)\n })\n }\n\n handle.emitRequest()\n}\n\nproto.emit = function emit (event, req, res) {\n if (event !== 'request' && event !== 'checkContinue') {\n return EventEmitter.prototype.emit.apply(this, arguments)\n }\n\n if (!(req.socket._handle instanceof spdy.handle)) {\n debug('not spdy req/res')\n req.isSpdy = false\n req.spdyVersion = 1\n res.isSpdy = false\n res.spdyVersion = 1\n return EventEmitter.prototype.emit.apply(this, arguments)\n }\n\n var handle = req.connection._handle\n\n req.isSpdy = true\n req.spdyVersion = handle.getStream().connection.getVersion()\n res.isSpdy = true\n res.spdyVersion = req.spdyVersion\n req.spdyStream = handle.getStream()\n\n debug('override req/res')\n res.writeHead = spdy.response.writeHead\n res.end = spdy.response.end\n res.push = spdy.response.push\n res.writeContinue = spdy.response.writeContinue\n res.spdyStream = handle.getStream()\n\n res._req = req\n\n handle.assignRequest(req)\n handle.assignResponse(res)\n\n return EventEmitter.prototype.emit.apply(this, arguments)\n}\n\nexports.Server = instantiate(https.Server)\nexports.PlainServer = instantiate(http.Server)\n\nexports.create = function create (base, options, handler) {\n if (typeof base === 'object') {\n handler = options\n options = base\n base = null\n }\n\n if (base) {\n return instantiate(base).create(options, handler)\n }\n\n if (options.spdy && options.spdy.plain) { return exports.PlainServer.create(options, handler) } else {\n return exports.Server.create(options, handler)\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy/lib/spdy/server.js?");
31725
+ eval("\n\nvar assert = __webpack_require__(/*! assert */ \"assert\")\nvar https = __webpack_require__(/*! https */ \"https\")\nvar http = __webpack_require__(/*! http */ \"http\")\nvar tls = __webpack_require__(/*! tls */ \"tls\")\nvar net = __webpack_require__(/*! net */ \"net\")\nvar util = __webpack_require__(/*! util */ \"util\")\nvar selectHose = __webpack_require__(/*! select-hose */ \"./node_modules/select-hose/lib/hose.js\")\nvar transport = __webpack_require__(/*! spdy-transport */ \"./node_modules/spdy-transport/lib/spdy-transport.js\")\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\")('spdy:server')\nvar EventEmitter = (__webpack_require__(/*! events */ \"events\").EventEmitter)\n\n// Node.js 0.8, 0.10 and 0.12 support\nObject.assign = process.versions.modules >= 46\n ? Object.assign // eslint-disable-next-line\n : util._extend\n\nvar spdy = __webpack_require__(/*! ../spdy */ \"./node_modules/spdy/lib/spdy.js\")\n\nvar proto = {}\n\nfunction instantiate (base) {\n function Server (options, handler) {\n this._init(base, options, handler)\n }\n util.inherits(Server, base)\n\n Server.create = function create (options, handler) {\n return new Server(options, handler)\n }\n\n Object.keys(proto).forEach(function (key) {\n Server.prototype[key] = proto[key]\n })\n\n return Server\n}\n\nproto._init = function _init (base, options, handler) {\n var state = {}\n this._spdyState = state\n\n state.options = options.spdy || {}\n\n var protocols = state.options.protocols || [\n 'h2',\n 'spdy/3.1', 'spdy/3', 'spdy/2',\n 'http/1.1', 'http/1.0'\n ]\n\n var actualOptions = Object.assign({\n NPNProtocols: protocols,\n\n // Future-proof\n ALPNProtocols: protocols\n }, options)\n\n state.secure = this instanceof tls.Server\n\n if (state.secure) {\n base.call(this, actualOptions)\n } else {\n base.call(this)\n }\n\n // Support HEADERS+FIN\n this.httpAllowHalfOpen = true\n\n var event = state.secure ? 'secureConnection' : 'connection'\n\n state.listeners = this.listeners(event).slice()\n assert(state.listeners.length > 0, 'Server does not have default listeners')\n this.removeAllListeners(event)\n\n if (state.options.plain) {\n this.on(event, this._onPlainConnection)\n } else { this.on(event, this._onConnection) }\n\n if (handler) {\n this.on('request', handler)\n }\n\n debug('server init secure=%d', state.secure)\n}\n\nproto._onConnection = function _onConnection (socket) {\n var state = this._spdyState\n\n var protocol\n if (state.secure) {\n protocol = socket.npnProtocol || socket.alpnProtocol\n }\n\n this._handleConnection(socket, protocol)\n}\n\nproto._handleConnection = function _handleConnection (socket, protocol) {\n var state = this._spdyState\n\n if (!protocol) {\n protocol = state.options.protocol\n }\n\n debug('incoming socket protocol=%j', protocol)\n\n // No way we can do anything with the socket\n if (!protocol || protocol === 'http/1.1' || protocol === 'http/1.0') {\n debug('to default handler it goes')\n return this._invokeDefault(socket)\n }\n\n socket.setNoDelay(true)\n\n var connection = transport.connection.create(socket, Object.assign({\n protocol: /spdy/.test(protocol) ? 'spdy' : 'http2',\n isServer: true\n }, state.options.connection || {}))\n\n // Set version when we are certain\n if (protocol === 'http2') { connection.start(4) } else if (protocol === 'spdy/3.1') {\n connection.start(3.1)\n } else if (protocol === 'spdy/3') { connection.start(3) } else if (protocol === 'spdy/2') {\n connection.start(2)\n }\n\n connection.on('error', function () {\n socket.destroy()\n })\n\n var self = this\n connection.on('stream', function (stream) {\n self._onStream(stream)\n })\n}\n\n// HTTP2 preface\nvar PREFACE = 'PRI * HTTP/2.0\\r\\n\\r\\nSM\\r\\n\\r\\n'\nvar PREFACE_BUFFER = Buffer.from(PREFACE)\n\nfunction hoseFilter (data, callback) {\n if (data.length < 1) {\n return callback(null, null)\n }\n\n // SPDY!\n if (data[0] === 0x80) { return callback(null, 'spdy') }\n\n var avail = Math.min(data.length, PREFACE_BUFFER.length)\n for (var i = 0; i < avail; i++) {\n if (data[i] !== PREFACE_BUFFER[i]) { return callback(null, 'http/1.1') }\n }\n\n // Not enough bytes to be sure about HTTP2\n if (avail !== PREFACE_BUFFER.length) { return callback(null, null) }\n\n return callback(null, 'h2')\n}\n\nproto._onPlainConnection = function _onPlainConnection (socket) {\n var hose = selectHose.create(socket, {}, hoseFilter)\n\n var self = this\n hose.on('select', function (protocol, socket) {\n self._handleConnection(socket, protocol)\n })\n\n hose.on('error', function (err) {\n debug('hose error %j', err.message)\n socket.destroy()\n })\n}\n\nproto._invokeDefault = function _invokeDefault (socket) {\n var state = this._spdyState\n\n for (var i = 0; i < state.listeners.length; i++) { state.listeners[i].call(this, socket) }\n}\n\nproto._onStream = function _onStream (stream) {\n var state = this._spdyState\n\n var handle = spdy.handle.create(this._spdyState.options, stream)\n\n var socketOptions = {\n handle: handle,\n allowHalfOpen: true\n }\n\n var socket\n if (state.secure) {\n socket = new spdy.Socket(stream.connection.socket, socketOptions)\n } else {\n socket = new net.Socket(socketOptions)\n }\n\n // This is needed because the `error` listener, added by the default\n // `connection` listener, no longer has bound arguments. It relies instead\n // on the `server` property of the socket. See https://github.com/nodejs/node/pull/11926\n // for more details.\n // This is only done for Node.js >= 4 in order to not break compatibility\n // with older versions of the platform.\n if (process.versions.modules >= 46) { socket.server = this }\n\n handle.assignSocket(socket)\n\n // For v0.8\n socket.readable = true\n socket.writable = true\n\n this._invokeDefault(socket)\n\n // For v0.8, 0.10 and 0.12\n if (process.versions.modules < 46) {\n // eslint-disable-next-line\n this.listenerCount = EventEmitter.listenerCount.bind(this)\n }\n\n // Add lazy `checkContinue` listener, otherwise `res.writeContinue` will be\n // called before the response object was patched by us.\n if (stream.headers.expect !== undefined &&\n /100-continue/i.test(stream.headers.expect) &&\n this.listenerCount('checkContinue') === 0) {\n this.once('checkContinue', function (req, res) {\n res.writeContinue()\n\n this.emit('request', req, res)\n })\n }\n\n handle.emitRequest()\n}\n\nproto.emit = function emit (event, req, res) {\n if (event !== 'request' && event !== 'checkContinue') {\n return EventEmitter.prototype.emit.apply(this, arguments)\n }\n\n if (!(req.socket._handle instanceof spdy.handle)) {\n debug('not spdy req/res')\n req.isSpdy = false\n req.spdyVersion = 1\n res.isSpdy = false\n res.spdyVersion = 1\n return EventEmitter.prototype.emit.apply(this, arguments)\n }\n\n var handle = req.connection._handle\n\n req.isSpdy = true\n req.spdyVersion = handle.getStream().connection.getVersion()\n res.isSpdy = true\n res.spdyVersion = req.spdyVersion\n req.spdyStream = handle.getStream()\n\n debug('override req/res')\n res.writeHead = spdy.response.writeHead\n res.end = spdy.response.end\n res.push = spdy.response.push\n res.writeContinue = spdy.response.writeContinue\n res.spdyStream = handle.getStream()\n\n res._req = req\n\n handle.assignRequest(req)\n handle.assignResponse(res)\n\n return EventEmitter.prototype.emit.apply(this, arguments)\n}\n\nexports.Server = instantiate(https.Server)\nexports.PlainServer = instantiate(http.Server)\n\nexports.create = function create (base, options, handler) {\n if (typeof base === 'object') {\n handler = options\n options = base\n base = null\n }\n\n if (base) {\n return instantiate(base).create(options, handler)\n }\n\n if (options.spdy && options.spdy.plain) { return exports.PlainServer.create(options, handler) } else {\n return exports.Server.create(options, handler)\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy/lib/spdy/server.js?");
31726
31726
 
31727
31727
  /***/ }),
31728
31728
 
@@ -31737,26 +31737,6 @@ eval("\n\nvar util = __webpack_require__(/*! util */ \"util\")\nvar net = __webp
31737
31737
 
31738
31738
  /***/ }),
31739
31739
 
31740
- /***/ "./node_modules/spdy/node_modules/debug/src/browser.js":
31741
- /*!*************************************************************!*\
31742
- !*** ./node_modules/spdy/node_modules/debug/src/browser.js ***!
31743
- \*************************************************************/
31744
- /***/ ((module, exports, __webpack_require__) => {
31745
-
31746
- eval("/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/spdy/node_modules/debug/src/common.js\")(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy/node_modules/debug/src/browser.js?");
31747
-
31748
- /***/ }),
31749
-
31750
- /***/ "./node_modules/spdy/node_modules/debug/src/common.js":
31751
- /*!************************************************************!*\
31752
- !*** ./node_modules/spdy/node_modules/debug/src/common.js ***!
31753
- \************************************************************/
31754
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
31755
-
31756
- eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n\n\n//# sourceURL=webpack://open-lens/./node_modules/spdy/node_modules/debug/src/common.js?");
31757
-
31758
- /***/ }),
31759
-
31760
31740
  /***/ "./node_modules/sshpk/lib/algs.js":
31761
31741
  /*!****************************************!*\
31762
31742
  !*** ./node_modules/sshpk/lib/algs.js ***!
@@ -35525,7 +35505,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35525
35505
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35526
35506
 
35527
35507
  "use strict";
35528
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getOrInsert\": () => (/* binding */ getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* binding */ getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* binding */ getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* binding */ getOrInsertWith),\n/* harmony export */ \"strictGet\": () => (/* binding */ strictGet),\n/* harmony export */ \"strictSet\": () => (/* binding */ strictSet),\n/* harmony export */ \"toggle\": () => (/* binding */ toggle)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n/**\n * Get the value behind `key`. If it was not present, first insert `value`\n * @param map The map to interact with\n * @param key The key to insert into the map with\n * @param value The value to optional add to the map\n * @returns The value in the map\n */\nfunction getOrInsert(map, key, value) {\n if (!map.has(key)) {\n map.set(key, value);\n }\n return map.get(key);\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Map<MK, MV>` so that\n * the typings are inferred correctly.\n */\nfunction getOrInsertMap(map, key) {\n return getOrInsert(map, key, new Map());\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Set<any>` so that\n * the typings are inferred.\n */\nfunction getOrInsertSet(map, key) {\n return getOrInsert(map, key, new Set());\n}\n/**\n * Like `getOrInsert` but with delayed creation of the item. Which is useful\n * if it is very expensive to create the initial value.\n */\nfunction getOrInsertWith(map, key, builder) {\n if (!map.has(key)) {\n map.set(key, builder());\n }\n return map.get(key);\n}\n/**\n * Set the value associated with `key` iff there was not a previous value\n * @param map The map to interact with\n * @throws if `key` already in map\n * @returns `this` so that `strictSet` can be chained\n */\nfunction strictSet(map, key, val) {\n if (map.has(key)) {\n throw new TypeError(\"Duplicate key in map\");\n }\n return map.set(key, val);\n}\n/**\n * Get the value associated with `key`\n * @param map The map to interact with\n * @throws if `key` did not a value associated with it\n */\nfunction strictGet(map, key) {\n if (!map.has(key)) {\n throw new TypeError(\"key not in map\");\n }\n return map.get(key);\n}\n/**\n * If `key` is in `set`, remove it otherwise add it.\n * @param set The set to manipulate\n * @param key The key to toggle the \"is in\"-ness of\n */\nfunction toggle(set, key) {\n (0,mobx__WEBPACK_IMPORTED_MODULE_0__.runInAction)(() => {\n // Returns true if value was already in Set; otherwise false.\n if (!set.delete(key)) {\n set.add(key);\n }\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/collection-functions.ts?");
35508
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getOrInsert\": () => (/* binding */ getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* binding */ getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* binding */ getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* binding */ getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* binding */ getOrInsertWithAsync),\n/* harmony export */ \"strictGet\": () => (/* binding */ strictGet),\n/* harmony export */ \"strictSet\": () => (/* binding */ strictSet),\n/* harmony export */ \"toggle\": () => (/* binding */ toggle)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n/**\n * Get the value behind `key`. If it was not present, first insert `value`\n * @param map The map to interact with\n * @param key The key to insert into the map with\n * @param value The value to optional add to the map\n * @returns The value in the map\n */\nfunction getOrInsert(map, key, value) {\n if (!map.has(key)) {\n map.set(key, value);\n }\n return map.get(key);\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Map<MK, MV>` so that\n * the typings are inferred correctly.\n */\nfunction getOrInsertMap(map, key) {\n return getOrInsert(map, key, new Map());\n}\n/**\n * Like `getOrInsert` but specifically for when `V` is `Set<any>` so that\n * the typings are inferred.\n */\nfunction getOrInsertSet(map, key) {\n return getOrInsert(map, key, new Set());\n}\n/**\n * Like `getOrInsert` but with delayed creation of the item. Which is useful\n * if it is very expensive to create the initial value.\n */\nfunction getOrInsertWith(map, key, builder) {\n if (!map.has(key)) {\n map.set(key, builder());\n }\n return map.get(key);\n}\n/**\n * Like {@link getOrInsertWith} but the builder is async and will be awaited before inserting into the map\n */\nasync function getOrInsertWithAsync(map, key, asyncBuilder) {\n if (!map.has(key)) {\n map.set(key, await asyncBuilder());\n }\n return map.get(key);\n}\n/**\n * Set the value associated with `key` iff there was not a previous value\n * @param map The map to interact with\n * @throws if `key` already in map\n * @returns `this` so that `strictSet` can be chained\n */\nfunction strictSet(map, key, val) {\n if (map.has(key)) {\n throw new TypeError(\"Duplicate key in map\");\n }\n return map.set(key, val);\n}\n/**\n * Get the value associated with `key`\n * @param map The map to interact with\n * @throws if `key` did not a value associated with it\n */\nfunction strictGet(map, key) {\n if (!map.has(key)) {\n throw new TypeError(\"key not in map\");\n }\n return map.get(key);\n}\n/**\n * If `key` is in `set`, remove it otherwise add it.\n * @param set The set to manipulate\n * @param key The key to toggle the \"is in\"-ness of\n */\nfunction toggle(set, key) {\n (0,mobx__WEBPACK_IMPORTED_MODULE_0__.runInAction)(() => {\n // Returns true if value was already in Set; otherwise false.\n if (!set.delete(key)) {\n set.add(key);\n }\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/collection-functions.ts?");
35529
35509
 
35530
35510
  /***/ }),
35531
35511
 
@@ -35646,7 +35626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35646
35626
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35647
35627
 
35648
35628
  "use strict";
35649
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_16__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_16__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_23__.Singleton),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _abort_controller__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport module object */ _array__WEBPACK_IMPORTED_MODULE_31__),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _autobind__WEBPACK_IMPORTED_MODULE_2__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport module object */ _base64__WEBPACK_IMPORTED_MODULE_33__),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_25__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_8__.bytesToUnits),\n/* harmony export */ \"cloneJsonObject\": () => (/* reexport safe */ _cloneJson__WEBPACK_IMPORTED_MODULE_4__.cloneJsonObject),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _convertCpu__WEBPACK_IMPORTED_MODULE_7__.cpuUnitsToNumber),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _debouncePromise__WEBPACK_IMPORTED_MODULE_9__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay__WEBPACK_IMPORTED_MODULE_10__.delay),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _disposer__WEBPACK_IMPORTED_MODULE_11__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_12__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_12__.downloadJson),\n/* harmony export */ \"entries\": () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_18__.entries),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _escapeRegExp__WEBPACK_IMPORTED_MODULE_13__.escapeRegExp),\n/* harmony export */ \"extractTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.extractTar),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _formatDuration__WEBPACK_IMPORTED_MODULE_14__.formatDuration),\n/* harmony export */ \"fromEntries\": () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_18__.fromEntries),\n/* harmony export */ \"getAppVersion\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getAppVersion),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getAppVersionFromProxyServer),\n/* harmony export */ \"getBundledKubectlVersion\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getBundledKubectlVersion),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.getClusterIdFromHost),\n/* harmony export */ \"getHostedClusterId\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.getHostedClusterId),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertWith),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _getRandId__WEBPACK_IMPORTED_MODULE_15__.getRandId),\n/* harmony export */ \"hasOptionalProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOptionalProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasTypedProperty),\n/* harmony export */ \"isClusterPageContext\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.isClusterPageContext),\n/* harmony export */ \"isLogicalChildPath\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_20__.isLogicalChildPath),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isObject),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isRecord),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport module object */ _iter__WEBPACK_IMPORTED_MODULE_30__),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_16__.makeIterableIterator),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _n_fircate__WEBPACK_IMPORTED_MODULE_17__.nFircate),\n/* harmony export */ \"noop\": () => (/* binding */ noop),\n/* harmony export */ \"openBrowser\": () => (/* reexport safe */ _openBrowser__WEBPACK_IMPORTED_MODULE_19__.openBrowser),\n/* harmony export */ \"openExternal\": () => (/* reexport safe */ _openBrowser__WEBPACK_IMPORTED_MODULE_19__.openExternal),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _promise_exec__WEBPACK_IMPORTED_MODULE_21__.promiseExecFile),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.readFileFromTar),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _reject_promise__WEBPACK_IMPORTED_MODULE_22__.rejectPromiseBy),\n/* harmony export */ \"resolvePath\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_20__.resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_20__.resolveTilde),\n/* harmony export */ \"sortCharts\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCompareChartVersions),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_25__.splitArray),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _camelCase__WEBPACK_IMPORTED_MODULE_3__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _toJS__WEBPACK_IMPORTED_MODULE_27__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport module object */ _tuple__WEBPACK_IMPORTED_MODULE_32__),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_8__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _wait_for_path__WEBPACK_IMPORTED_MODULE_29__.waitForPath)\n/* harmony export */ });\n/* harmony import */ var _abort_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort-controller */ \"./src/common/utils/abort-controller.ts\");\n/* harmony import */ var _app_version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _autobind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autobind */ \"./src/common/utils/autobind.ts\");\n/* harmony import */ var _camelCase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camelCase */ \"./src/common/utils/camelCase.ts\");\n/* harmony import */ var _cloneJson__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cloneJson */ \"./src/common/utils/cloneJson.ts\");\n/* harmony import */ var _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/* harmony import */ var _collection_functions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./collection-functions */ \"./src/common/utils/collection-functions.ts\");\n/* harmony import */ var _convertCpu__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convertCpu */ \"./src/common/utils/convertCpu.ts\");\n/* harmony import */ var _convertMemory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./convertMemory */ \"./src/common/utils/convertMemory.ts\");\n/* harmony import */ var _debouncePromise__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./debouncePromise */ \"./src/common/utils/debouncePromise.ts\");\n/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./delay */ \"./src/common/utils/delay.ts\");\n/* harmony import */ var _disposer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./disposer */ \"./src/common/utils/disposer.ts\");\n/* harmony import */ var _downloadFile__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./downloadFile */ \"./src/common/utils/downloadFile.ts\");\n/* harmony import */ var _escapeRegExp__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./escapeRegExp */ \"./src/common/utils/escapeRegExp.ts\");\n/* harmony import */ var _formatDuration__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./formatDuration */ \"./src/common/utils/formatDuration.ts\");\n/* harmony import */ var _getRandId__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./getRandId */ \"./src/common/utils/getRandId.ts\");\n/* harmony import */ var _hash_set__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./hash-set */ \"./src/common/utils/hash-set.ts\");\n/* harmony import */ var _n_fircate__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./n-fircate */ \"./src/common/utils/n-fircate.ts\");\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./objects */ \"./src/common/utils/objects.ts\");\n/* harmony import */ var _openBrowser__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./openBrowser */ \"./src/common/utils/openBrowser.ts\");\n/* harmony import */ var _paths__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./paths */ \"./src/common/utils/paths.ts\");\n/* harmony import */ var _promise_exec__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/* harmony import */ var _reject_promise__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./reject-promise */ \"./src/common/utils/reject-promise.ts\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./singleton */ \"./src/common/utils/singleton.ts\");\n/* harmony import */ var _sort_compare__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sort-compare */ \"./src/common/utils/sort-compare.ts\");\n/* harmony import */ var _splitArray__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./splitArray */ \"./src/common/utils/splitArray.ts\");\n/* harmony import */ var _tar__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./tar */ \"./src/common/utils/tar.ts\");\n/* harmony import */ var _toJS__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./toJS */ \"./src/common/utils/toJS.ts\");\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/* harmony import */ var _wait_for_path__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./wait-for-path */ \"./src/common/utils/wait-for-path.ts\");\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./array */ \"./src/common/utils/array.ts\");\n/* harmony import */ var _tuple__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./tuple */ \"./src/common/utils/tuple.ts\");\n/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./base64 */ \"./src/common/utils/base64.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * A function that does nothing\n */\nfunction noop(...args) {\n return void args;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/index.ts?");
35629
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_16__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_16__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_23__.Singleton),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _abort_controller__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport module object */ _array__WEBPACK_IMPORTED_MODULE_31__),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _autobind__WEBPACK_IMPORTED_MODULE_2__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport module object */ _base64__WEBPACK_IMPORTED_MODULE_33__),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_25__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_8__.bytesToUnits),\n/* harmony export */ \"cloneJsonObject\": () => (/* reexport safe */ _cloneJson__WEBPACK_IMPORTED_MODULE_4__.cloneJsonObject),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _convertCpu__WEBPACK_IMPORTED_MODULE_7__.cpuUnitsToNumber),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _debouncePromise__WEBPACK_IMPORTED_MODULE_9__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay__WEBPACK_IMPORTED_MODULE_10__.delay),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _disposer__WEBPACK_IMPORTED_MODULE_11__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_12__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_12__.downloadJson),\n/* harmony export */ \"entries\": () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_18__.entries),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _escapeRegExp__WEBPACK_IMPORTED_MODULE_13__.escapeRegExp),\n/* harmony export */ \"extractTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.extractTar),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _formatDuration__WEBPACK_IMPORTED_MODULE_14__.formatDuration),\n/* harmony export */ \"fromEntries\": () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_18__.fromEntries),\n/* harmony export */ \"getAppVersion\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getAppVersion),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getAppVersionFromProxyServer),\n/* harmony export */ \"getBundledKubectlVersion\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getBundledKubectlVersion),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.getClusterIdFromHost),\n/* harmony export */ \"getHostedClusterId\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.getHostedClusterId),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.getOrInsertWithAsync),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _getRandId__WEBPACK_IMPORTED_MODULE_15__.getRandId),\n/* harmony export */ \"hasOptionalProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOptionalProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasTypedProperty),\n/* harmony export */ \"isClusterPageContext\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__.isClusterPageContext),\n/* harmony export */ \"isLogicalChildPath\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_20__.isLogicalChildPath),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isObject),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isRecord),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport module object */ _iter__WEBPACK_IMPORTED_MODULE_30__),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_16__.makeIterableIterator),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _n_fircate__WEBPACK_IMPORTED_MODULE_17__.nFircate),\n/* harmony export */ \"noop\": () => (/* binding */ noop),\n/* harmony export */ \"openBrowser\": () => (/* reexport safe */ _openBrowser__WEBPACK_IMPORTED_MODULE_19__.openBrowser),\n/* harmony export */ \"openExternal\": () => (/* reexport safe */ _openBrowser__WEBPACK_IMPORTED_MODULE_19__.openExternal),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _promise_exec__WEBPACK_IMPORTED_MODULE_21__.promiseExecFile),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.readFileFromTar),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _reject_promise__WEBPACK_IMPORTED_MODULE_22__.rejectPromiseBy),\n/* harmony export */ \"resolvePath\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_20__.resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_20__.resolveTilde),\n/* harmony export */ \"sortCharts\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCompareChartVersions),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_25__.splitArray),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _camelCase__WEBPACK_IMPORTED_MODULE_3__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _toJS__WEBPACK_IMPORTED_MODULE_27__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_6__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport module object */ _tuple__WEBPACK_IMPORTED_MODULE_32__),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_8__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _wait_for_path__WEBPACK_IMPORTED_MODULE_29__.waitForPath)\n/* harmony export */ });\n/* harmony import */ var _abort_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort-controller */ \"./src/common/utils/abort-controller.ts\");\n/* harmony import */ var _app_version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _autobind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autobind */ \"./src/common/utils/autobind.ts\");\n/* harmony import */ var _camelCase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camelCase */ \"./src/common/utils/camelCase.ts\");\n/* harmony import */ var _cloneJson__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cloneJson */ \"./src/common/utils/cloneJson.ts\");\n/* harmony import */ var _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/* harmony import */ var _collection_functions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./collection-functions */ \"./src/common/utils/collection-functions.ts\");\n/* harmony import */ var _convertCpu__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convertCpu */ \"./src/common/utils/convertCpu.ts\");\n/* harmony import */ var _convertMemory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./convertMemory */ \"./src/common/utils/convertMemory.ts\");\n/* harmony import */ var _debouncePromise__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./debouncePromise */ \"./src/common/utils/debouncePromise.ts\");\n/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./delay */ \"./src/common/utils/delay.ts\");\n/* harmony import */ var _disposer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./disposer */ \"./src/common/utils/disposer.ts\");\n/* harmony import */ var _downloadFile__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./downloadFile */ \"./src/common/utils/downloadFile.ts\");\n/* harmony import */ var _escapeRegExp__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./escapeRegExp */ \"./src/common/utils/escapeRegExp.ts\");\n/* harmony import */ var _formatDuration__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./formatDuration */ \"./src/common/utils/formatDuration.ts\");\n/* harmony import */ var _getRandId__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./getRandId */ \"./src/common/utils/getRandId.ts\");\n/* harmony import */ var _hash_set__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./hash-set */ \"./src/common/utils/hash-set.ts\");\n/* harmony import */ var _n_fircate__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./n-fircate */ \"./src/common/utils/n-fircate.ts\");\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./objects */ \"./src/common/utils/objects.ts\");\n/* harmony import */ var _openBrowser__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./openBrowser */ \"./src/common/utils/openBrowser.ts\");\n/* harmony import */ var _paths__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./paths */ \"./src/common/utils/paths.ts\");\n/* harmony import */ var _promise_exec__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/* harmony import */ var _reject_promise__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./reject-promise */ \"./src/common/utils/reject-promise.ts\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./singleton */ \"./src/common/utils/singleton.ts\");\n/* harmony import */ var _sort_compare__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sort-compare */ \"./src/common/utils/sort-compare.ts\");\n/* harmony import */ var _splitArray__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./splitArray */ \"./src/common/utils/splitArray.ts\");\n/* harmony import */ var _tar__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./tar */ \"./src/common/utils/tar.ts\");\n/* harmony import */ var _toJS__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./toJS */ \"./src/common/utils/toJS.ts\");\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/* harmony import */ var _wait_for_path__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./wait-for-path */ \"./src/common/utils/wait-for-path.ts\");\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./array */ \"./src/common/utils/array.ts\");\n/* harmony import */ var _tuple__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./tuple */ \"./src/common/utils/tuple.ts\");\n/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./base64 */ \"./src/common/utils/base64.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * A function that does nothing\n */\nfunction noop(...args) {\n return void args;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/index.ts?");
35650
35630
 
35651
35631
  /***/ }),
35652
35632
 
@@ -36559,7 +36539,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
36559
36539
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36560
36540
 
36561
36541
  "use strict";
36562
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LensProxy\": () => (/* binding */ LensProxy),\n/* harmony export */ \"isLongRunningRequest\": () => (/* binding */ isLongRunningRequest)\n/* harmony export */ });\n/* harmony import */ var net__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! net */ \"net\");\n/* harmony import */ var net__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(net__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var spdy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! spdy */ \"./node_modules/spdy/lib/spdy.js\");\n/* harmony import */ var spdy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(spdy__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _utils_parse_query__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/parse-query */ \"./src/main/utils/parse-query.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nconst watchParam = \"watch\";\nconst followParam = \"follow\";\nfunction isLongRunningRequest(reqUrl) {\n const url = new URL(reqUrl, \"http://localhost\");\n return (0,_utils_parse_query__WEBPACK_IMPORTED_MODULE_6__.getBoolean)(url.searchParams, watchParam) || (0,_utils_parse_query__WEBPACK_IMPORTED_MODULE_6__.getBoolean)(url.searchParams, followParam);\n}\n/**\n * This is the list of ports that chrome considers unsafe to allow HTTP\n * conntections to. Because they are the standard ports for processes that are\n * too forgiving in the connection types they accept.\n *\n * If we get one of these ports, the easiest thing to do is to just try again.\n *\n * Source: https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/net/base/port_util.cc\n */\nconst disallowedPorts = new Set([\n 1, 7, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 25, 37, 42, 43, 53, 69, 77, 79,\n 87, 95, 101, 102, 103, 104, 109, 110, 111, 113, 115, 117, 119, 123, 135, 137,\n 139, 143, 161, 179, 389, 427, 465, 512, 513, 514, 515, 526, 530, 531, 532,\n 540, 548, 554, 556, 563, 587, 601, 636, 989, 990, 993, 995, 1719, 1720, 1723,\n 2049, 3659, 4045, 5060, 5061, 6000, 6566, 6665, 6666, 6667, 6668, 6669, 6697,\n 10080,\n]);\nclass LensProxy extends _common_utils__WEBPACK_IMPORTED_MODULE_4__.Singleton {\n constructor(router, proxy, { shellApiRequest, kubeApiUpgradeRequest, getClusterForRequest }) {\n super();\n Object.defineProperty(this, \"router\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: router\n });\n Object.defineProperty(this, \"proxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: proxy\n });\n Object.defineProperty(this, \"origin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"proxyServer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"closed\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"retryCounters\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"getClusterForRequest\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"port\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.configureProxy(proxy);\n this.getClusterForRequest = getClusterForRequest;\n this.proxyServer = spdy__WEBPACK_IMPORTED_MODULE_1___default().createServer({\n spdy: {\n plain: true,\n protocols: [\"http/1.1\", \"spdy/3.1\"],\n },\n }, (req, res) => {\n this.handleRequest(req, res);\n });\n this.proxyServer\n .on(\"upgrade\", (req, socket, head) => {\n const cluster = getClusterForRequest(req);\n if (!cluster) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: Could not find cluster for upgrade request from url=${req.url}`);\n socket.destroy();\n }\n else {\n const isInternal = req.url.startsWith(`${_common_vars__WEBPACK_IMPORTED_MODULE_2__.apiPrefix}?`);\n const reqHandler = isInternal ? shellApiRequest : kubeApiUpgradeRequest;\n (async () => reqHandler({ req, socket, head, cluster }))()\n .catch(error => _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(\"[LENS-PROXY]: failed to handle proxy upgrade\", error));\n }\n });\n }\n /**\n * Starts to listen on an OS provided port. Will reject if the server throws\n * an error.\n *\n * Resolves with the port number that was picked\n */\n attemptToListen() {\n return new Promise((resolve, reject) => {\n this.proxyServer.listen(0, \"127.0.0.1\");\n this.proxyServer\n .once(\"listening\", () => {\n this.proxyServer.removeAllListeners(\"error\"); // don't reject the promise\n const { address, port } = this.proxyServer.address();\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[LENS-PROXY]: Proxy server has started at ${address}:${port}`);\n this.proxyServer.on(\"error\", (error) => {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[LENS-PROXY]: Subsequent error: ${error}`);\n });\n this.port = port;\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_5__.appEventBus.emit({ name: \"lens-proxy\", action: \"listen\", params: { port } });\n resolve(port);\n })\n .once(\"error\", (error) => {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[LENS-PROXY]: Proxy server failed to start: ${error}`);\n reject(error);\n });\n });\n }\n /**\n * Starts the lens proxy.\n * @resolves After the server is listening on a good port\n * @rejects if there is an error before that happens\n */\n async listen() {\n var _a;\n const seenPorts = new Set();\n while (true) {\n (_a = this.proxyServer) === null || _a === void 0 ? void 0 : _a.close();\n const port = await this.attemptToListen();\n if (!disallowedPorts.has(port)) {\n // We didn't get a port that would result in an ERR_UNSAFE_PORT error, use it\n return;\n }\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].warn(`[LENS-PROXY]: Proxy server has with port known to be considered unsafe to connect to by chrome, restarting...`);\n if (seenPorts.has(port)) {\n /**\n * Assume that if we have seen the port before, then the OS has looped\n * through all the ports possible and we will not be able to get a safe\n * port.\n */\n throw new Error(\"Failed to start LensProxy due to seeing too many unsafe ports. Please restart Lens.\");\n }\n else {\n seenPorts.add(port);\n }\n }\n }\n close() {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(\"[LENS-PROXY]: Closing server\");\n this.proxyServer.close();\n this.closed = true;\n }\n configureProxy(proxy) {\n proxy.on(\"proxyRes\", (proxyRes, req, res) => {\n const retryCounterId = this.getRequestId(req);\n if (this.retryCounters.has(retryCounterId)) {\n this.retryCounters.delete(retryCounterId);\n }\n if (!res.headersSent && req.url) {\n const url = new URL(req.url, \"http://localhost\");\n if (url.searchParams.has(\"watch\")) {\n res.statusCode = proxyRes.statusCode;\n res.flushHeaders();\n }\n }\n proxyRes.on(\"aborted\", () => {\n res.end();\n });\n });\n proxy.on(\"error\", (error, req, res, target) => {\n if (this.closed || res instanceof (net__WEBPACK_IMPORTED_MODULE_0___default().Socket)) {\n return;\n }\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: http proxy errored for cluster: ${error}`, { url: req.url });\n if (target) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].debug(`Failed proxy to target: ${JSON.stringify(target, null, 2)}`);\n if (req.method === \"GET\" && (!res.statusCode || res.statusCode >= 500)) {\n const reqId = this.getRequestId(req);\n const retryCount = this.retryCounters.get(reqId) || 0;\n const timeoutMs = retryCount * 250;\n if (retryCount < 20) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].debug(`Retrying proxy request to url: ${reqId}`);\n setTimeout(() => {\n this.retryCounters.set(reqId, retryCount + 1);\n this.handleRequest(req, res)\n .catch(error => _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: failed to handle request on proxy error: ${error}`));\n }, timeoutMs);\n }\n }\n }\n try {\n res.writeHead(500).end(`Oops, something went wrong.\\n${error}`);\n }\n catch (e) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: Failed to write headers: `, e);\n }\n });\n return proxy;\n }\n async getProxyTarget(req, contextHandler) {\n if (req.url.startsWith(_common_vars__WEBPACK_IMPORTED_MODULE_2__.apiKubePrefix)) {\n delete req.headers.authorization;\n req.url = req.url.replace(_common_vars__WEBPACK_IMPORTED_MODULE_2__.apiKubePrefix, \"\");\n return contextHandler.getApiTarget(isLongRunningRequest(req.url));\n }\n }\n getRequestId(req) {\n return req.headers.host + req.url;\n }\n async handleRequest(req, res) {\n const cluster = this.getClusterForRequest(req);\n if (cluster) {\n const proxyTarget = await this.getProxyTarget(req, cluster.contextHandler);\n if (proxyTarget) {\n return this.proxy.web(req, res, proxyTarget);\n }\n }\n this.router.route(cluster, req, res);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/main/lens-proxy.ts?");
36542
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LensProxy\": () => (/* binding */ LensProxy),\n/* harmony export */ \"isLongRunningRequest\": () => (/* binding */ isLongRunningRequest)\n/* harmony export */ });\n/* harmony import */ var net__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! net */ \"net\");\n/* harmony import */ var net__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(net__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var spdy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! spdy */ \"./node_modules/spdy/lib/spdy.js\");\n/* harmony import */ var spdy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(spdy__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _utils_parse_query__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/parse-query */ \"./src/main/utils/parse-query.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nconst watchParam = \"watch\";\nconst followParam = \"follow\";\nfunction isLongRunningRequest(reqUrl) {\n const url = new URL(reqUrl, \"http://localhost\");\n return (0,_utils_parse_query__WEBPACK_IMPORTED_MODULE_6__.getBoolean)(url.searchParams, watchParam) || (0,_utils_parse_query__WEBPACK_IMPORTED_MODULE_6__.getBoolean)(url.searchParams, followParam);\n}\n/**\n * This is the list of ports that chrome considers unsafe to allow HTTP\n * conntections to. Because they are the standard ports for processes that are\n * too forgiving in the connection types they accept.\n *\n * If we get one of these ports, the easiest thing to do is to just try again.\n *\n * Source: https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/net/base/port_util.cc\n */\nconst disallowedPorts = new Set([\n 1, 7, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 25, 37, 42, 43, 53, 69, 77, 79,\n 87, 95, 101, 102, 103, 104, 109, 110, 111, 113, 115, 117, 119, 123, 135, 137,\n 139, 143, 161, 179, 389, 427, 465, 512, 513, 514, 515, 526, 530, 531, 532,\n 540, 548, 554, 556, 563, 587, 601, 636, 989, 990, 993, 995, 1719, 1720, 1723,\n 2049, 3659, 4045, 5060, 5061, 6000, 6566, 6665, 6666, 6667, 6668, 6669, 6697,\n 10080,\n]);\nclass LensProxy extends _common_utils__WEBPACK_IMPORTED_MODULE_4__.Singleton {\n constructor(router, proxy, { shellApiRequest, kubeApiUpgradeRequest, getClusterForRequest }) {\n super();\n Object.defineProperty(this, \"router\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: router\n });\n Object.defineProperty(this, \"proxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: proxy\n });\n Object.defineProperty(this, \"origin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"proxyServer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"closed\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"retryCounters\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"getClusterForRequest\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"port\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.configureProxy(proxy);\n this.getClusterForRequest = getClusterForRequest;\n this.proxyServer = spdy__WEBPACK_IMPORTED_MODULE_1___default().createServer({\n spdy: {\n plain: true,\n protocols: [\"http/1.1\", \"spdy/3.1\"],\n },\n }, (req, res) => {\n this.handleRequest(req, res);\n });\n this.proxyServer\n .on(\"upgrade\", (req, socket, head) => {\n const cluster = getClusterForRequest(req);\n if (!cluster) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: Could not find cluster for upgrade request from url=${req.url}`);\n socket.destroy();\n }\n else {\n const isInternal = req.url.startsWith(`${_common_vars__WEBPACK_IMPORTED_MODULE_2__.apiPrefix}?`);\n const reqHandler = isInternal ? shellApiRequest : kubeApiUpgradeRequest;\n (async () => reqHandler({ req, socket, head, cluster }))()\n .catch(error => _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(\"[LENS-PROXY]: failed to handle proxy upgrade\", error));\n }\n });\n }\n /**\n * Starts to listen on an OS provided port. Will reject if the server throws\n * an error.\n *\n * Resolves with the port number that was picked\n */\n attemptToListen() {\n return new Promise((resolve, reject) => {\n this.proxyServer.listen(0, \"127.0.0.1\");\n this.proxyServer\n .once(\"listening\", () => {\n this.proxyServer.removeAllListeners(\"error\"); // don't reject the promise\n const { address, port } = this.proxyServer.address();\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[LENS-PROXY]: Proxy server has started at ${address}:${port}`);\n this.proxyServer.on(\"error\", (error) => {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[LENS-PROXY]: Subsequent error: ${error}`);\n });\n this.port = port;\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_5__.appEventBus.emit({ name: \"lens-proxy\", action: \"listen\", params: { port } });\n resolve(port);\n })\n .once(\"error\", (error) => {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(`[LENS-PROXY]: Proxy server failed to start: ${error}`);\n reject(error);\n });\n });\n }\n /**\n * Starts the lens proxy.\n * @resolves After the server is listening on a good port\n * @rejects if there is an error before that happens\n */\n async listen() {\n var _a;\n const seenPorts = new Set();\n while (true) {\n (_a = this.proxyServer) === null || _a === void 0 ? void 0 : _a.close();\n const port = await this.attemptToListen();\n if (!disallowedPorts.has(port)) {\n // We didn't get a port that would result in an ERR_UNSAFE_PORT error, use it\n return;\n }\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].warn(`[LENS-PROXY]: Proxy server has with port known to be considered unsafe to connect to by chrome, restarting...`);\n if (seenPorts.has(port)) {\n /**\n * Assume that if we have seen the port before, then the OS has looped\n * through all the ports possible and we will not be able to get a safe\n * port.\n */\n throw new Error(\"Failed to start LensProxy due to seeing too many unsafe ports. Please restart Lens.\");\n }\n else {\n seenPorts.add(port);\n }\n }\n }\n close() {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(\"[LENS-PROXY]: Closing server\");\n this.proxyServer.close();\n this.closed = true;\n }\n configureProxy(proxy) {\n proxy.on(\"proxyRes\", (proxyRes, req, res) => {\n const retryCounterId = this.getRequestId(req);\n if (this.retryCounters.has(retryCounterId)) {\n this.retryCounters.delete(retryCounterId);\n }\n proxyRes.on(\"aborted\", () => {\n res.end();\n });\n });\n proxy.on(\"error\", (error, req, res, target) => {\n if (this.closed || res instanceof (net__WEBPACK_IMPORTED_MODULE_0___default().Socket)) {\n return;\n }\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: http proxy errored for cluster: ${error}`, { url: req.url });\n if (target) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].debug(`Failed proxy to target: ${JSON.stringify(target, null, 2)}`);\n if (req.method === \"GET\" && (!res.statusCode || res.statusCode >= 500)) {\n const reqId = this.getRequestId(req);\n const retryCount = this.retryCounters.get(reqId) || 0;\n const timeoutMs = retryCount * 250;\n if (retryCount < 20) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].debug(`Retrying proxy request to url: ${reqId}`);\n setTimeout(() => {\n this.retryCounters.set(reqId, retryCount + 1);\n this.handleRequest(req, res)\n .catch(error => _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: failed to handle request on proxy error: ${error}`));\n }, timeoutMs);\n }\n }\n }\n try {\n res.writeHead(500).end(`Oops, something went wrong.\\n${error}`);\n }\n catch (e) {\n _logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"].error(`[LENS-PROXY]: Failed to write headers: `, e);\n }\n });\n return proxy;\n }\n async getProxyTarget(req, contextHandler) {\n if (req.url.startsWith(_common_vars__WEBPACK_IMPORTED_MODULE_2__.apiKubePrefix)) {\n delete req.headers.authorization;\n req.url = req.url.replace(_common_vars__WEBPACK_IMPORTED_MODULE_2__.apiKubePrefix, \"\");\n return contextHandler.getApiTarget(isLongRunningRequest(req.url));\n }\n }\n getRequestId(req) {\n return req.headers.host + req.url;\n }\n async handleRequest(req, res) {\n const cluster = this.getClusterForRequest(req);\n if (cluster) {\n const proxyTarget = await this.getProxyTarget(req, cluster.contextHandler);\n if (proxyTarget) {\n return this.proxy.web(req, res, proxyTarget);\n }\n }\n this.router.route(cluster, req, res);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/main/lens-proxy.ts?");
36563
36543
 
36564
36544
  /***/ }),
36565
36545
 
@@ -39331,7 +39311,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
39331
39311
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
39332
39312
 
39333
39313
  "use strict";
39334
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EventEmitter\": () => (/* reexport safe */ _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__.EventEmitter),\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Singleton),\n/* harmony export */ \"StorageHelper\": () => (/* reexport safe */ _storageHelper__WEBPACK_IMPORTED_MODULE_12__.StorageHelper),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.array),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.base64),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bytesToUnits),\n/* harmony export */ \"cloneJsonObject\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.cloneJsonObject),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.cpuUnitsToNumber),\n/* harmony export */ \"cssNames\": () => (/* reexport safe */ _cssNames__WEBPACK_IMPORTED_MODULE_2__.cssNames),\n/* harmony export */ \"cssVar\": () => (/* reexport safe */ _cssVar__WEBPACK_IMPORTED_MODULE_3__.cssVar),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.delay),\n/* harmony export */ \"displayBooleans\": () => (/* reexport safe */ _display_booleans__WEBPACK_IMPORTED_MODULE_4__.displayBooleans),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadJson),\n/* harmony export */ \"entries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.entries),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.escapeRegExp),\n/* harmony export */ \"extractTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.extractTar),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.formatDuration),\n/* harmony export */ \"fromEntries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.fromEntries),\n/* harmony export */ \"getAppVersion\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getAppVersion),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getAppVersionFromProxyServer),\n/* harmony export */ \"getBundledKubectlVersion\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getBundledKubectlVersion),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterIdFromHost),\n/* harmony export */ \"getConvertedParts\": () => (/* reexport safe */ _name_parts__WEBPACK_IMPORTED_MODULE_9__.getConvertedParts),\n/* harmony export */ \"getHostedClusterId\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getHostedClusterId),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWith),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getRandId),\n/* harmony export */ \"hasOptionalProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOptionalProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasTypedProperty),\n/* harmony export */ \"interval\": () => (/* reexport safe */ _interval__WEBPACK_IMPORTED_MODULE_5__.interval),\n/* harmony export */ \"isClusterPageContext\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isClusterPageContext),\n/* harmony export */ \"isLogicalChildPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isLogicalChildPath),\n/* harmony export */ \"isMiddleClick\": () => (/* reexport safe */ _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__.isMiddleClick),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isObject),\n/* harmony export */ \"isReactNode\": () => (/* reexport safe */ _isReactNode__WEBPACK_IMPORTED_MODULE_7__.isReactNode),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isRecord),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.iter),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.makeIterableIterator),\n/* harmony export */ \"metricUnitsToNumber\": () => (/* reexport safe */ _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__.metricUnitsToNumber),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.nFircate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.noop),\n/* harmony export */ \"openBrowser\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.openBrowser),\n/* harmony export */ \"openExternal\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.openExternal),\n/* harmony export */ \"prevDefault\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.prevDefault),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.promiseExecFile),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.readFileFromTar),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rejectPromiseBy),\n/* harmony export */ \"resolvePath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.resolveTilde),\n/* harmony export */ \"saveFileDialog\": () => (/* reexport safe */ _saveFile__WEBPACK_IMPORTED_MODULE_11__.saveFileDialog),\n/* harmony export */ \"sortCharts\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompareChartVersions),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.splitArray),\n/* harmony export */ \"stopPropagation\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.stopPropagation),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.tuple),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.waitForPath)\n/* harmony export */ });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony import */ var _cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony import */ var _cssVar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cssVar */ \"./src/renderer/utils/cssVar.ts\");\n/* harmony import */ var _display_booleans__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display-booleans */ \"./src/renderer/utils/display-booleans.ts\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./src/renderer/utils/interval.ts\");\n/* harmony import */ var _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isMiddleClick */ \"./src/renderer/utils/isMiddleClick.ts\");\n/* harmony import */ var _isReactNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isReactNode */ \"./src/renderer/utils/isReactNode.ts\");\n/* harmony import */ var _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./metricUnitsToNumber */ \"./src/renderer/utils/metricUnitsToNumber.ts\");\n/* harmony import */ var _name_parts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./name-parts */ \"./src/renderer/utils/name-parts.ts\");\n/* harmony import */ var _prevDefault__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony import */ var _saveFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saveFile */ \"./src/renderer/utils/saveFile.ts\");\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Common usage utils & helpers\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/index.ts?");
39314
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EventEmitter\": () => (/* reexport safe */ _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__.EventEmitter),\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Singleton),\n/* harmony export */ \"StorageHelper\": () => (/* reexport safe */ _storageHelper__WEBPACK_IMPORTED_MODULE_12__.StorageHelper),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.array),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.base64),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bytesToUnits),\n/* harmony export */ \"cloneJsonObject\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.cloneJsonObject),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.cpuUnitsToNumber),\n/* harmony export */ \"cssNames\": () => (/* reexport safe */ _cssNames__WEBPACK_IMPORTED_MODULE_2__.cssNames),\n/* harmony export */ \"cssVar\": () => (/* reexport safe */ _cssVar__WEBPACK_IMPORTED_MODULE_3__.cssVar),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.delay),\n/* harmony export */ \"displayBooleans\": () => (/* reexport safe */ _display_booleans__WEBPACK_IMPORTED_MODULE_4__.displayBooleans),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadJson),\n/* harmony export */ \"entries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.entries),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.escapeRegExp),\n/* harmony export */ \"extractTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.extractTar),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.formatDuration),\n/* harmony export */ \"fromEntries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.fromEntries),\n/* harmony export */ \"getAppVersion\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getAppVersion),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getAppVersionFromProxyServer),\n/* harmony export */ \"getBundledKubectlVersion\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getBundledKubectlVersion),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterIdFromHost),\n/* harmony export */ \"getConvertedParts\": () => (/* reexport safe */ _name_parts__WEBPACK_IMPORTED_MODULE_9__.getConvertedParts),\n/* harmony export */ \"getHostedClusterId\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getHostedClusterId),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWithAsync),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getRandId),\n/* harmony export */ \"hasOptionalProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOptionalProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasTypedProperty),\n/* harmony export */ \"interval\": () => (/* reexport safe */ _interval__WEBPACK_IMPORTED_MODULE_5__.interval),\n/* harmony export */ \"isClusterPageContext\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isClusterPageContext),\n/* harmony export */ \"isLogicalChildPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isLogicalChildPath),\n/* harmony export */ \"isMiddleClick\": () => (/* reexport safe */ _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__.isMiddleClick),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isObject),\n/* harmony export */ \"isReactNode\": () => (/* reexport safe */ _isReactNode__WEBPACK_IMPORTED_MODULE_7__.isReactNode),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isRecord),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.iter),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.makeIterableIterator),\n/* harmony export */ \"metricUnitsToNumber\": () => (/* reexport safe */ _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__.metricUnitsToNumber),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.nFircate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.noop),\n/* harmony export */ \"openBrowser\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.openBrowser),\n/* harmony export */ \"openExternal\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.openExternal),\n/* harmony export */ \"prevDefault\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.prevDefault),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.promiseExecFile),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.readFileFromTar),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rejectPromiseBy),\n/* harmony export */ \"resolvePath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.resolveTilde),\n/* harmony export */ \"saveFileDialog\": () => (/* reexport safe */ _saveFile__WEBPACK_IMPORTED_MODULE_11__.saveFileDialog),\n/* harmony export */ \"sortCharts\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompareChartVersions),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.splitArray),\n/* harmony export */ \"stopPropagation\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.stopPropagation),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.tuple),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.waitForPath)\n/* harmony export */ });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony import */ var _cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony import */ var _cssVar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cssVar */ \"./src/renderer/utils/cssVar.ts\");\n/* harmony import */ var _display_booleans__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display-booleans */ \"./src/renderer/utils/display-booleans.ts\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./src/renderer/utils/interval.ts\");\n/* harmony import */ var _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isMiddleClick */ \"./src/renderer/utils/isMiddleClick.ts\");\n/* harmony import */ var _isReactNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isReactNode */ \"./src/renderer/utils/isReactNode.ts\");\n/* harmony import */ var _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./metricUnitsToNumber */ \"./src/renderer/utils/metricUnitsToNumber.ts\");\n/* harmony import */ var _name_parts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./name-parts */ \"./src/renderer/utils/name-parts.ts\");\n/* harmony import */ var _prevDefault__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony import */ var _saveFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saveFile */ \"./src/renderer/utils/saveFile.ts\");\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Common usage utils & helpers\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/index.ts?");
39335
39315
 
39336
39316
  /***/ }),
39337
39317
 
@@ -41387,7 +41367,7 @@ eval("module.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A log
41387
41367
  /***/ ((module) => {
41388
41368
 
41389
41369
  "use strict";
41390
- 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.5.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 --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-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\",\"test:unit\":\"jest --watch --testPathIgnorePatterns integration\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/build_tray_icon.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\"},\"engines\":{\"node\":\">=14 <15\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.tsx?$\":\"ts-jest\"},\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globals\":{\"ts-jest\":{\"isolatedModules\":true}}},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^8.0.1\",\"@hapi/subtext\":\"^7.0.3\",\"@kubernetes/client-node\":\"^0.16.3\",\"@ogre-tools/fp\":\"5.2.0\",\"@ogre-tools/injectable\":\"5.2.0\",\"@ogre-tools/injectable-react\":\"5.2.0\",\"@sentry/electron\":\"^3.0.6\",\"@sentry/integrations\":\"^6.19.3\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.1.0\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.5\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.3\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.12\",\"joi\":\"^17.6.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.0.12\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.5.0\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.3.0\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.2\",\"moment\":\"^2.29.3\",\"moment-timezone\":\"^0.5.34\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"lensapp/node-fetch#2.x\",\"node-pty\":\"^0.10.1\",\"npm\":\"^6.14.16\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^18.0.0\",\"react-dom\":\"^18.0.0\",\"react-material-ui-carousel\":\"^2.3.11\",\"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\",\"selfsigned\":\"^2.0.1\",\"semver\":\"^7.3.7\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.6.0\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^7.5.7\"},\"devDependencies\":{\"@async-fn/jest\":\"1.5.3\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.5\",\"@sentry/types\":\"^6.19.3\",\"@testing-library/jest-dom\":\"^5.16.3\",\"@testing-library/react\":\"^12.1.4\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/cli-progress\":\"^3.9.2\",\"@types/color\":\"^3.0.3\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.3\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hoist-non-react-statics\":\"^3.3.1\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.8\",\"@types/jest\":\"^26.0.24\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.181\",\"@types/marked\":\"^4.0.3\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"14.18.12\",\"@types/node-fetch\":\"^2.6.1\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.43\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.14\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-select\":\"3.1.2\",\"@types/react-table\":\"^7.7.9\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.9\",\"@types/sharp\":\"^0.30.0\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^4.0.5\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.16.3\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.18.0\",\"@typescript-eslint/parser\":\"^5.17.0\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.10.0\",\"color\":\"^3.2.1\",\"concurrently\":\"^7.1.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.3.6\",\"electron\":\"^14.2.9\",\"electron-builder\":\"^23.0.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.14.38\",\"esbuild-loader\":\"^2.18.0\",\"eslint\":\"^8.11.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"^7.29.4\",\"eslint-plugin-react-hooks\":\"^4.4.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.0\",\"gunzip-maybe\":\"^1.4.2\",\"hoist-non-react-statics\":\"^3.3.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"26.6.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-fetch-mock\":\"^3.0.3\",\"jest-mock-extended\":\"^1.0.18\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.0\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"7.1.2\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.15\",\"playwright\":\"^1.20.2\",\"postcss\":\"^8.4.12\",\"postcss-loader\":\"^6.2.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.0\",\"react-refresh\":\"^0.12.0\",\"react-refresh-typescript\":\"^2.0.4\",\"react-router-dom\":\"^5.3.1\",\"react-select\":\"^5.3.0\",\"react-select-event\":\"^5.3.0\",\"react-table\":\"^7.7.0\",\"react-window\":\"^1.8.6\",\"sass\":\"^1.49.11\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.30.3\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.0.23\",\"tar-stream\":\"^2.2.0\",\"ts-jest\":\"26.5.6\",\"ts-loader\":\"^9.2.8\",\"ts-node\":\"^10.7.0\",\"type-fest\":\"^2.12.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.22.14\",\"typedoc-plugin-markdown\":\"^3.11.12\",\"typeface-roboto\":\"^1.1.13\",\"typescript\":\"^4.5.5\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.72.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.8.1\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.18.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
41370
+ 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.5.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 --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-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\",\"test:unit\":\"jest --watch --testPathIgnorePatterns integration\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/build_tray_icon.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\"},\"engines\":{\"node\":\">=14 <15\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.tsx?$\":\"ts-jest\"},\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globals\":{\"ts-jest\":{\"isolatedModules\":true}}},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"asarUnpack\":[\"**/node_modules/sharp/**\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^8.0.1\",\"@hapi/subtext\":\"^7.0.3\",\"@kubernetes/client-node\":\"^0.16.3\",\"@ogre-tools/fp\":\"5.2.0\",\"@ogre-tools/injectable\":\"5.2.0\",\"@ogre-tools/injectable-react\":\"5.2.0\",\"@sentry/electron\":\"^3.0.6\",\"@sentry/integrations\":\"^6.19.3\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.1.0\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.5\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.3\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.12\",\"joi\":\"^17.6.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.0.12\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.5.0\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.3.0\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.2\",\"moment\":\"^2.29.3\",\"moment-timezone\":\"^0.5.34\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"lensapp/node-fetch#2.x\",\"node-pty\":\"^0.10.1\",\"npm\":\"^6.14.16\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^18.0.0\",\"react-dom\":\"^18.0.0\",\"react-material-ui-carousel\":\"^2.3.11\",\"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\",\"selfsigned\":\"^2.0.1\",\"semver\":\"^7.3.7\",\"sharp\":\"^0.30.3\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.6.0\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^7.5.7\"},\"devDependencies\":{\"@async-fn/jest\":\"1.5.3\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.5\",\"@sentry/types\":\"^6.19.3\",\"@testing-library/jest-dom\":\"^5.16.3\",\"@testing-library/react\":\"^12.1.4\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/cli-progress\":\"^3.9.2\",\"@types/color\":\"^3.0.3\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.3\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hoist-non-react-statics\":\"^3.3.1\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.8\",\"@types/jest\":\"^26.0.24\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.181\",\"@types/marked\":\"^4.0.3\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"14.18.12\",\"@types/node-fetch\":\"^2.6.1\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.43\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.14\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-select\":\"3.1.2\",\"@types/react-table\":\"^7.7.9\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.9\",\"@types/sharp\":\"^0.30.0\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^4.0.5\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.16.3\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.21.0\",\"@typescript-eslint/parser\":\"^5.17.0\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.10.0\",\"color\":\"^3.2.1\",\"concurrently\":\"^7.1.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.3.6\",\"electron\":\"^14.2.9\",\"electron-builder\":\"^23.0.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.14.38\",\"esbuild-loader\":\"^2.18.0\",\"eslint\":\"^8.14.0\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"^7.29.4\",\"eslint-plugin-react-hooks\":\"^4.4.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.0\",\"gunzip-maybe\":\"^1.4.2\",\"hoist-non-react-statics\":\"^3.3.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"26.6.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-fetch-mock\":\"^3.0.3\",\"jest-mock-extended\":\"^1.0.18\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.0\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"7.1.2\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.15\",\"playwright\":\"^1.20.2\",\"postcss\":\"^8.4.12\",\"postcss-loader\":\"^6.2.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.0\",\"react-refresh\":\"^0.12.0\",\"react-refresh-typescript\":\"^2.0.4\",\"react-router-dom\":\"^5.3.1\",\"react-select\":\"^5.3.0\",\"react-select-event\":\"^5.5.0\",\"react-table\":\"^7.7.0\",\"react-window\":\"^1.8.6\",\"sass\":\"^1.49.11\",\"sass-loader\":\"^12.6.0\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.0.23\",\"tar-stream\":\"^2.2.0\",\"ts-jest\":\"26.5.6\",\"ts-loader\":\"^9.2.8\",\"ts-node\":\"^10.7.0\",\"type-fest\":\"^2.12.2\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.22.14\",\"typedoc-plugin-markdown\":\"^3.11.12\",\"typeface-roboto\":\"^1.1.13\",\"typescript\":\"^4.5.5\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.72.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.8.1\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.18.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
41391
41371
 
41392
41372
  /***/ }),
41393
41373
 
@@ -5,7 +5,7 @@
5
5
  import { Tray } from "electron";
6
6
  import type { IComputedValue } from "mobx";
7
7
  import type { WindowManager } from "../window-manager";
8
+ import type { Disposer } from "../../common/utils";
8
9
  import type { TrayMenuRegistration } from "./tray-menu-registration";
9
10
  export declare let tray: Tray;
10
- export declare function getTrayIcon(): string;
11
- export declare function initTray(windowManager: WindowManager, trayMenuItems: IComputedValue<TrayMenuRegistration[]>, navigateToPreferences: () => void): () => void;
11
+ export declare function initTray(windowManager: WindowManager, trayMenuItems: IComputedValue<TrayMenuRegistration[]>, navigateToPreferences: () => void): Promise<Disposer>;
@@ -13,5 +13,5 @@ export interface SwitcherProps extends SwitchProps {
13
13
  /**
14
14
  * @deprecated Use <Switch/> instead from "../switch.tsx".
15
15
  */
16
- export declare const Switcher: React.ComponentType<Pick<SwitcherProps, "id" | "name" | "prefix" | "defaultValue" | "key" | "value" | "title" | "size" | "hidden" | "color" | "className" | "ref" | "form" | "slot" | "style" | "action" | "autoFocus" | "checked" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "placeholder" | "readOnly" | "required" | "type" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "icon" | "inputProps" | "innerRef" | "checkedIcon" | "disableFocusRipple" | "edge" | "buttonRef" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "onFocusVisible" | "TouchRippleProps" | "inputRef"> & import("@material-ui/core/styles").StyledComponentProps<"track" | "checked" | "root" | "thumb" | "focusVisible" | "switchBase">>;
16
+ export declare const Switcher: React.ComponentType<Pick<SwitcherProps, "id" | "name" | "prefix" | "defaultValue" | "key" | "value" | "title" | "size" | "hidden" | "color" | "className" | "ref" | "form" | "slot" | "style" | "action" | "autoFocus" | "checked" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "placeholder" | "readOnly" | "required" | "type" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "icon" | "inputProps" | "innerRef" | "checkedIcon" | "disableFocusRipple" | "edge" | "buttonRef" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "onFocusVisible" | "TouchRippleProps" | "inputRef"> & import("@material-ui/core/styles").StyledComponentProps<"track" | "checked" | "root" | "switchBase" | "thumb" | "focusVisible">>;
17
17
  export {};
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.5.0-git.d1ae30a562.0",
5
+ "version": "5.5.0-git.dbe45a2b40.0",
6
6
  "copyright": "© 2021 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",