@k8slens/extensions 5.5.0-git.1e77217772.0 → 5.5.0-git.239c7f959f.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.
@@ -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 ***!
@@ -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\"],\"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.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\",\"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.11\",\"@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
 
@@ -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" | "color" | "hidden" | "ref" | "form" | "slot" | "style" | "className" | "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" | "resource" | "type" | "role" | "color" | "ref" | "form" | "slot" | "style" | "className" | "action" | "autoFocus" | "checked" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "placeholder" | "readOnly" | "required" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "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.1e77217772.0",
5
+ "version": "5.5.0-git.239c7f959f.0",
6
6
  "copyright": "© 2021 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",