@grizzlee/react 0.3.0 → 0.4.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.
- package/CHANGELOG.md +8 -0
- package/README.md +1 -1
- package/embed.cjs +1 -1
- package/embed.cjs.map +1 -1
- package/embed.js +1 -1
- package/embed.js.map +1 -1
- package/index.cjs +2 -2
- package/index.cjs.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/native.cjs +22 -4544
- package/native.cjs.map +4 -4
- package/native.js +8 -4548
- package/native.js.map +4 -4
- package/package.json +4 -1
package/native.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["\"use strict\";\n\nfunction _(message, opts) {\n return `${opts && opts.context ? opts.context : \"Value\"} ${message}.`;\n}\n\nfunction type(V) {\n if (V === null) {\n return \"Null\";\n }\n switch (typeof V) {\n case \"undefined\":\n return \"Undefined\";\n case \"boolean\":\n return \"Boolean\";\n case \"number\":\n return \"Number\";\n case \"string\":\n return \"String\";\n case \"symbol\":\n return \"Symbol\";\n case \"object\":\n // Falls through\n case \"function\":\n // Falls through\n default:\n // Per ES spec, typeof returns an implemention-defined value that is not any of the existing ones for\n // uncallable non-standard exotic objects. Yet Type() which the Web IDL spec depends on returns Object for\n // such cases. So treat the default case as an object.\n return \"Object\";\n }\n}\n\n// Round x to the nearest integer, choosing the even integer if it lies halfway between two.\nfunction evenRound(x) {\n // There are four cases for numbers with fractional part being .5:\n //\n // case | x | floor(x) | round(x) | expected | x <> 0 | x % 1 | x & 1 | example\n // 1 | 2n + 0.5 | 2n | 2n + 1 | 2n | > | 0.5 | 0 | 0.5 -> 0\n // 2 | 2n + 1.5 | 2n + 1 | 2n + 2 | 2n + 2 | > | 0.5 | 1 | 1.5 -> 2\n // 3 | -2n - 0.5 | -2n - 1 | -2n | -2n | < | -0.5 | 0 | -0.5 -> 0\n // 4 | -2n - 1.5 | -2n - 2 | -2n - 1 | -2n - 2 | < | -0.5 | 1 | -1.5 -> -2\n // (where n is a non-negative integer)\n //\n // Branch here for cases 1 and 4\n if ((x > 0 && (x % 1) === +0.5 && (x & 1) === 0) ||\n (x < 0 && (x % 1) === -0.5 && (x & 1) === 1)) {\n return censorNegativeZero(Math.floor(x));\n }\n\n return censorNegativeZero(Math.round(x));\n}\n\nfunction integerPart(n) {\n return censorNegativeZero(Math.trunc(n));\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction modulo(x, y) {\n // https://tc39.github.io/ecma262/#eqn-modulo\n // Note that http://stackoverflow.com/a/4467559/3191 does NOT work for large modulos\n const signMightNotMatch = x % y;\n if (sign(y) !== sign(signMightNotMatch)) {\n return signMightNotMatch + y;\n }\n return signMightNotMatch;\n}\n\nfunction censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n}\n\nfunction createIntegerConversion(bitLength, typeOpts) {\n const isSigned = !typeOpts.unsigned;\n\n let lowerBound;\n let upperBound;\n if (bitLength === 64) {\n upperBound = Math.pow(2, 53) - 1;\n lowerBound = !isSigned ? 0 : -Math.pow(2, 53) + 1;\n } else if (!isSigned) {\n lowerBound = 0;\n upperBound = Math.pow(2, bitLength) - 1;\n } else {\n lowerBound = -Math.pow(2, bitLength - 1);\n upperBound = Math.pow(2, bitLength - 1) - 1;\n }\n\n const twoToTheBitLength = Math.pow(2, bitLength);\n const twoToOneLessThanTheBitLength = Math.pow(2, bitLength - 1);\n\n return (V, opts) => {\n if (opts === undefined) {\n opts = {};\n }\n\n let x = +V;\n x = censorNegativeZero(x); // Spec discussion ongoing: https://github.com/heycam/webidl/issues/306\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite number\", opts));\n }\n\n x = integerPart(x);\n\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(_(\n `is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`, opts));\n }\n\n return x;\n }\n\n if (!Number.isNaN(x) && opts.clamp) {\n x = Math.min(Math.max(x, lowerBound), upperBound);\n x = evenRound(x);\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n x = integerPart(x);\n\n // Math.pow(2, 64) is not accurately representable in JavaScript, so try to avoid these per-spec operations if\n // possible. Hopefully it's an optimization for the non-64-bitLength cases too.\n if (x >= lowerBound && x <= upperBound) {\n return x;\n }\n\n // These will not work great for bitLength of 64, but oh well. See the README for more details.\n x = modulo(x, twoToTheBitLength);\n if (isSigned && x >= twoToOneLessThanTheBitLength) {\n return x - twoToTheBitLength;\n }\n return x;\n };\n}\n\nexports.any = V => {\n return V;\n};\n\nexports.void = function () {\n return undefined;\n};\n\nexports.boolean = function (val) {\n return !!val;\n};\n\nexports.byte = createIntegerConversion(8, { unsigned: false });\nexports.octet = createIntegerConversion(8, { unsigned: true });\n\nexports.short = createIntegerConversion(16, { unsigned: false });\nexports[\"unsigned short\"] = createIntegerConversion(16, { unsigned: true });\n\nexports.long = createIntegerConversion(32, { unsigned: false });\nexports[\"unsigned long\"] = createIntegerConversion(32, { unsigned: true });\n\nexports[\"long long\"] = createIntegerConversion(64, { unsigned: false });\nexports[\"unsigned long long\"] = createIntegerConversion(64, { unsigned: true });\n\nexports.double = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n return x;\n};\n\nexports[\"unrestricted double\"] = V => {\n const x = +V;\n\n return x;\n};\n\nexports.float = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n const y = Math.fround(x);\n\n if (!Number.isFinite(y)) {\n throw new TypeError(_(\"is outside the range of a single-precision floating-point value\", opts));\n }\n\n return y;\n};\n\nexports[\"unrestricted float\"] = V => {\n const x = +V;\n\n if (isNaN(x)) {\n return x;\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n return Math.fround(x);\n};\n\nexports.DOMString = function (V, opts) {\n if (opts === undefined) {\n opts = {};\n }\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n if (typeof V === \"symbol\") {\n throw new TypeError(_(\"is a symbol, which cannot be converted to a string\", opts));\n }\n\n return String(V);\n};\n\nexports.ByteString = (V, opts) => {\n const x = exports.DOMString(V, opts);\n let c;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(_(\"is not a valid ByteString\", opts));\n }\n }\n\n return x;\n};\n\nexports.USVString = (V, opts) => {\n const S = exports.DOMString(V, opts);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + ((2 << 9) * a) + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n\n return U.join(\"\");\n};\n\nexports.object = (V, opts) => {\n if (type(V) !== \"Object\") {\n throw new TypeError(_(\"is not an object\", opts));\n }\n\n return V;\n};\n\n// Not exported, but used in Function and VoidFunction.\n\n// Neither Function nor VoidFunction is defined with [TreatNonObjectAsNull], so\n// handling for that is omitted.\nfunction convertCallbackFunction(V, opts) {\n if (typeof V !== \"function\") {\n throw new TypeError(_(\"is not a function\", opts));\n }\n return V;\n}\n\nconst abByteLengthGetter =\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, \"byteLength\").get;\n\nfunction isArrayBuffer(V) {\n try {\n abByteLengthGetter.call(V);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// I don't think we can reliably detect detached ArrayBuffers.\nexports.ArrayBuffer = (V, opts) => {\n if (!isArrayBuffer(V)) {\n throw new TypeError(_(\"is not a view on an ArrayBuffer object\", opts));\n }\n return V;\n};\n\nconst dvByteLengthGetter =\n Object.getOwnPropertyDescriptor(DataView.prototype, \"byteLength\").get;\nexports.DataView = (V, opts) => {\n try {\n dvByteLengthGetter.call(V);\n return V;\n } catch (e) {\n throw new TypeError(_(\"is not a view on an DataView object\", opts));\n }\n};\n\n[\n Int8Array, Int16Array, Int32Array, Uint8Array,\n Uint16Array, Uint32Array, Uint8ClampedArray, Float32Array, Float64Array\n].forEach(func => {\n const name = func.name;\n const article = /^[AEIOU]/.test(name) ? \"an\" : \"a\";\n exports[name] = (V, opts) => {\n if (!ArrayBuffer.isView(V) || V.constructor.name !== name) {\n throw new TypeError(_(`is not ${article} ${name} object`, opts));\n }\n\n return V;\n };\n});\n\n// Common definitions\n\nexports.ArrayBufferView = (V, opts) => {\n if (!ArrayBuffer.isView(V)) {\n throw new TypeError(_(\"is not a view on an ArrayBuffer object\", opts));\n }\n\n return V;\n};\n\nexports.BufferSource = (V, opts) => {\n if (!ArrayBuffer.isView(V) && !isArrayBuffer(V)) {\n throw new TypeError(_(\"is not an ArrayBuffer object or a view on one\", opts));\n }\n\n return V;\n};\n\nexports.DOMTimeStamp = exports[\"unsigned long long\"];\n\nexports.Function = convertCallbackFunction;\n\nexports.VoidFunction = convertCallbackFunction;\n", "\"use strict\";\n\n// Returns \"Type(value) is Object\" in ES terminology.\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null || typeof value === \"function\";\n}\n\nfunction hasOwn(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nconst wrapperSymbol = Symbol(\"wrapper\");\nconst implSymbol = Symbol(\"impl\");\nconst sameObjectCaches = Symbol(\"SameObject caches\");\nconst ctorRegistrySymbol = Symbol.for(\"[webidl2js] constructor registry\");\n\nfunction getSameObject(wrapper, prop, creator) {\n if (!wrapper[sameObjectCaches]) {\n wrapper[sameObjectCaches] = Object.create(null);\n }\n\n if (prop in wrapper[sameObjectCaches]) {\n return wrapper[sameObjectCaches][prop];\n }\n\n wrapper[sameObjectCaches][prop] = creator();\n return wrapper[sameObjectCaches][prop];\n}\n\nfunction wrapperForImpl(impl) {\n return impl ? impl[wrapperSymbol] : null;\n}\n\nfunction implForWrapper(wrapper) {\n return wrapper ? wrapper[implSymbol] : null;\n}\n\nfunction tryWrapperForImpl(impl) {\n const wrapper = wrapperForImpl(impl);\n return wrapper ? wrapper : impl;\n}\n\nfunction tryImplForWrapper(wrapper) {\n const impl = implForWrapper(wrapper);\n return impl ? impl : wrapper;\n}\n\nconst iterInternalSymbol = Symbol(\"internal\");\nconst IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\nfunction isArrayIndexPropName(P) {\n if (typeof P !== \"string\") {\n return false;\n }\n const i = P >>> 0;\n if (i === Math.pow(2, 32) - 1) {\n return false;\n }\n const s = `${i}`;\n if (P !== s) {\n return false;\n }\n return true;\n}\n\nconst byteLengthGetter =\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, \"byteLength\").get;\nfunction isArrayBuffer(value) {\n try {\n byteLengthGetter.call(value);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst supportsPropertyIndex = Symbol(\"supports property index\");\nconst supportedPropertyIndices = Symbol(\"supported property indices\");\nconst supportsPropertyName = Symbol(\"supports property name\");\nconst supportedPropertyNames = Symbol(\"supported property names\");\nconst indexedGet = Symbol(\"indexed property get\");\nconst indexedSetNew = Symbol(\"indexed property set new\");\nconst indexedSetExisting = Symbol(\"indexed property set existing\");\nconst namedGet = Symbol(\"named property get\");\nconst namedSetNew = Symbol(\"named property set new\");\nconst namedSetExisting = Symbol(\"named property set existing\");\nconst namedDelete = Symbol(\"named property delete\");\n\nmodule.exports = exports = {\n isObject,\n hasOwn,\n wrapperSymbol,\n implSymbol,\n getSameObject,\n ctorRegistrySymbol,\n wrapperForImpl,\n implForWrapper,\n tryWrapperForImpl,\n tryImplForWrapper,\n iterInternalSymbol,\n IteratorPrototype,\n isArrayBuffer,\n isArrayIndexPropName,\n supportsPropertyIndex,\n supportedPropertyIndices,\n supportsPropertyName,\n supportedPropertyNames,\n indexedGet,\n indexedSetNew,\n indexedSetExisting,\n namedGet,\n namedSetNew,\n namedSetExisting,\n namedDelete\n};\n", "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.3.1',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n", "\"use strict\";\n\nfunction isASCIIDigit(c) {\n return c >= 0x30 && c <= 0x39;\n}\n\nfunction isASCIIAlpha(c) {\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\n}\n\nfunction isASCIIAlphanumeric(c) {\n return isASCIIAlpha(c) || isASCIIDigit(c);\n}\n\nfunction isASCIIHex(c) {\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\n}\n\nmodule.exports = {\n isASCIIDigit,\n isASCIIAlpha,\n isASCIIAlphanumeric,\n isASCIIHex\n};\n", "\"use strict\";\nconst { Buffer } = require(\"buffer/\");\n\nconst { isASCIIHex } = require(\"./infra\");\n\nfunction strictlySplitByteSequence(buf, cp) {\n const list = [];\n let last = 0;\n let i = buf.indexOf(cp);\n while (i >= 0) {\n list.push(buf.slice(last, i));\n last = i + 1;\n i = buf.indexOf(cp, last);\n }\n if (last !== buf.length) {\n list.push(buf.slice(last));\n }\n return list;\n}\n\nfunction replaceByteInByteSequence(buf, from, to) {\n let i = buf.indexOf(from);\n while (i >= 0) {\n buf[i] = to;\n i = buf.indexOf(from, i + 1);\n }\n return buf;\n}\n\nfunction percentEncode(c) {\n let hex = c.toString(16).toUpperCase();\n if (hex.length === 1) {\n hex = \"0\" + hex;\n }\n\n return \"%\" + hex;\n}\n\nfunction percentDecode(input) {\n const output = Buffer.alloc(input.byteLength);\n let ptr = 0;\n for (let i = 0; i < input.length; ++i) {\n if (input[i] !== 37 || !isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2])) {\n output[ptr++] = input[i];\n } else {\n output[ptr++] = parseInt(input.slice(i + 1, i + 3).toString(), 16);\n i += 2;\n }\n }\n return output.slice(0, ptr);\n}\n\nfunction parseUrlencoded(input) {\n const sequences = strictlySplitByteSequence(input, 38);\n const output = [];\n for (const bytes of sequences) {\n if (bytes.length === 0) {\n continue;\n }\n\n let name;\n let value;\n const indexOfEqual = bytes.indexOf(61);\n\n if (indexOfEqual >= 0) {\n name = bytes.slice(0, indexOfEqual);\n value = bytes.slice(indexOfEqual + 1);\n } else {\n name = bytes;\n value = Buffer.alloc(0);\n }\n\n name = replaceByteInByteSequence(Buffer.from(name), 43, 32);\n value = replaceByteInByteSequence(Buffer.from(value), 43, 32);\n\n output.push([percentDecode(name).toString(), percentDecode(value).toString()]);\n }\n return output;\n}\n\nfunction serializeUrlencodedByte(input) {\n let output = \"\";\n for (const byte of input) {\n if (byte === 32) {\n output += \"+\";\n } else if (byte === 42 ||\n byte === 45 ||\n byte === 46 ||\n (byte >= 48 && byte <= 57) ||\n (byte >= 65 && byte <= 90) ||\n byte === 95 ||\n (byte >= 97 && byte <= 122)) {\n output += String.fromCodePoint(byte);\n } else {\n output += percentEncode(byte);\n }\n }\n return output;\n}\n\nfunction serializeUrlencoded(tuples, encodingOverride = undefined) {\n let encoding = \"utf-8\";\n if (encodingOverride !== undefined) {\n encoding = encodingOverride;\n }\n\n let output = \"\";\n for (const [i, tuple] of tuples.entries()) {\n // TODO: handle encoding override\n const name = serializeUrlencodedByte(Buffer.from(tuple[0]));\n let value = tuple[1];\n if (tuple.length > 2 && tuple[2] !== undefined) {\n if (tuple[2] === \"hidden\" && name === \"_charset_\") {\n value = encoding;\n } else if (tuple[2] === \"file\") {\n // value is a File object\n value = value.name;\n }\n }\n value = serializeUrlencodedByte(Buffer.from(value));\n if (i !== 0) {\n output += \"&\";\n }\n output += `${name}=${value}`;\n }\n return output;\n}\n\nmodule.exports = {\n percentEncode,\n percentDecode,\n\n // application/x-www-form-urlencoded string parser\n parseUrlencoded(input) {\n return parseUrlencoded(Buffer.from(input));\n },\n\n // application/x-www-form-urlencoded serializer\n serializeUrlencoded\n};\n", "\"use strict\";\nconst { Buffer } = require(\"buffer/\");\nconst punycode = require(\"punycode\");\n\nconst infra = require(\"./infra\");\nconst { percentEncode, percentDecode } = require(\"./urlencoded\");\n\nconst specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nconst failure = Symbol(\"failure\");\n\nfunction countSymbols(str) {\n return punycode.ucs2.decode(str).length;\n}\n\nfunction at(input, idx) {\n const c = input[idx];\n return isNaN(c) ? undefined : String.fromCodePoint(c);\n}\n\nfunction isSingleDot(buffer) {\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\n}\n\nfunction isDoubleDot(buffer) {\n buffer = buffer.toLowerCase();\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\n}\n\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\n return infra.isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\n}\n\nfunction isWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\n}\n\nfunction isNormalizedWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\n}\n\nfunction containsForbiddenHostCodePoint(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction isSpecialScheme(scheme) {\n return specialSchemes[scheme] !== undefined;\n}\n\nfunction isSpecial(url) {\n return isSpecialScheme(url.scheme);\n}\n\nfunction isNotSpecial(url) {\n return !isSpecialScheme(url.scheme);\n}\n\nfunction defaultPort(scheme) {\n return specialSchemes[scheme];\n}\n\nfunction utf8PercentEncode(c) {\n const buf = Buffer.from(c);\n\n let str = \"\";\n\n for (let i = 0; i < buf.length; ++i) {\n str += percentEncode(buf[i]);\n }\n\n return str;\n}\n\nfunction isC0ControlPercentEncode(c) {\n return c <= 0x1F || c > 0x7E;\n}\n\nconst extraUserinfoPercentEncodeSet =\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\nfunction isUserinfoPercentEncode(c) {\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\n}\n\nconst extraFragmentPercentEncodeSet = new Set([32, 34, 60, 62, 96]);\nfunction isFragmentPercentEncode(c) {\n return isC0ControlPercentEncode(c) || extraFragmentPercentEncodeSet.has(c);\n}\n\nconst extraPathPercentEncodeSet = new Set([35, 63, 123, 125]);\nfunction isPathPercentEncode(c) {\n return isFragmentPercentEncode(c) || extraPathPercentEncodeSet.has(c);\n}\n\nfunction percentEncodeChar(c, encodeSetPredicate) {\n const cStr = String.fromCodePoint(c);\n\n if (encodeSetPredicate(c)) {\n return utf8PercentEncode(cStr);\n }\n\n return cStr;\n}\n\nfunction parseIPv4Number(input) {\n let R = 10;\n\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\n input = input.substring(2);\n R = 16;\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\n input = input.substring(1);\n R = 8;\n }\n\n if (input === \"\") {\n return 0;\n }\n\n let regex = /[^0-7]/;\n if (R === 10) {\n regex = /[^0-9]/;\n }\n if (R === 16) {\n regex = /[^0-9A-Fa-f]/;\n }\n\n if (regex.test(input)) {\n return failure;\n }\n\n return parseInt(input, R);\n}\n\nfunction parseIPv4(input) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length > 1) {\n parts.pop();\n }\n }\n\n if (parts.length > 4) {\n return input;\n }\n\n const numbers = [];\n for (const part of parts) {\n if (part === \"\") {\n return input;\n }\n const n = parseIPv4Number(part);\n if (n === failure) {\n return input;\n }\n\n numbers.push(n);\n }\n\n for (let i = 0; i < numbers.length - 1; ++i) {\n if (numbers[i] > 255) {\n return failure;\n }\n }\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\n return failure;\n }\n\n let ipv4 = numbers.pop();\n let counter = 0;\n\n for (const n of numbers) {\n ipv4 += n * Math.pow(256, 3 - counter);\n ++counter;\n }\n\n return ipv4;\n}\n\nfunction serializeIPv4(address) {\n let output = \"\";\n let n = address;\n\n for (let i = 1; i <= 4; ++i) {\n output = String(n % 256) + output;\n if (i !== 4) {\n output = \".\" + output;\n }\n n = Math.floor(n / 256);\n }\n\n return output;\n}\n\nfunction parseIPv6(input) {\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\n let pieceIndex = 0;\n let compress = null;\n let pointer = 0;\n\n input = punycode.ucs2.decode(input);\n\n if (input[pointer] === 58) {\n if (input[pointer + 1] !== 58) {\n return failure;\n }\n\n pointer += 2;\n ++pieceIndex;\n compress = pieceIndex;\n }\n\n while (pointer < input.length) {\n if (pieceIndex === 8) {\n return failure;\n }\n\n if (input[pointer] === 58) {\n if (compress !== null) {\n return failure;\n }\n ++pointer;\n ++pieceIndex;\n compress = pieceIndex;\n continue;\n }\n\n let value = 0;\n let length = 0;\n\n while (length < 4 && infra.isASCIIHex(input[pointer])) {\n value = value * 0x10 + parseInt(at(input, pointer), 16);\n ++pointer;\n ++length;\n }\n\n if (input[pointer] === 46) {\n if (length === 0) {\n return failure;\n }\n\n pointer -= length;\n\n if (pieceIndex > 6) {\n return failure;\n }\n\n let numbersSeen = 0;\n\n while (input[pointer] !== undefined) {\n let ipv4Piece = null;\n\n if (numbersSeen > 0) {\n if (input[pointer] === 46 && numbersSeen < 4) {\n ++pointer;\n } else {\n return failure;\n }\n }\n\n if (!infra.isASCIIDigit(input[pointer])) {\n return failure;\n }\n\n while (infra.isASCIIDigit(input[pointer])) {\n const number = parseInt(at(input, pointer));\n if (ipv4Piece === null) {\n ipv4Piece = number;\n } else if (ipv4Piece === 0) {\n return failure;\n } else {\n ipv4Piece = ipv4Piece * 10 + number;\n }\n if (ipv4Piece > 255) {\n return failure;\n }\n ++pointer;\n }\n\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\n\n ++numbersSeen;\n\n if (numbersSeen === 2 || numbersSeen === 4) {\n ++pieceIndex;\n }\n }\n\n if (numbersSeen !== 4) {\n return failure;\n }\n\n break;\n } else if (input[pointer] === 58) {\n ++pointer;\n if (input[pointer] === undefined) {\n return failure;\n }\n } else if (input[pointer] !== undefined) {\n return failure;\n }\n\n address[pieceIndex] = value;\n ++pieceIndex;\n }\n\n if (compress !== null) {\n let swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n const temp = address[compress + swaps - 1];\n address[compress + swaps - 1] = address[pieceIndex];\n address[pieceIndex] = temp;\n --pieceIndex;\n --swaps;\n }\n } else if (compress === null && pieceIndex !== 8) {\n return failure;\n }\n\n return address;\n}\n\nfunction serializeIPv6(address) {\n let output = \"\";\n const seqResult = findLongestZeroSequence(address);\n const compress = seqResult.idx;\n let ignore0 = false;\n\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\n if (ignore0 && address[pieceIndex] === 0) {\n continue;\n } else if (ignore0) {\n ignore0 = false;\n }\n\n if (compress === pieceIndex) {\n const separator = pieceIndex === 0 ? \"::\" : \":\";\n output += separator;\n ignore0 = true;\n continue;\n }\n\n output += address[pieceIndex].toString(16);\n\n if (pieceIndex !== 7) {\n output += \":\";\n }\n }\n\n return output;\n}\n\nfunction parseHost(input, isNotSpecialArg = false) {\n if (input[0] === \"[\") {\n if (input[input.length - 1] !== \"]\") {\n return failure;\n }\n\n return parseIPv6(input.substring(1, input.length - 1));\n }\n\n if (isNotSpecialArg) {\n return parseOpaqueHost(input);\n }\n\n const domain = percentDecode(Buffer.from(input)).toString();\n const asciiDomain = domainToASCII(domain);\n if (asciiDomain === failure) {\n return failure;\n }\n\n if (containsForbiddenHostCodePoint(asciiDomain)) {\n return failure;\n }\n\n const ipv4Host = parseIPv4(asciiDomain);\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\n return ipv4Host;\n }\n\n return asciiDomain;\n}\n\nfunction parseOpaqueHost(input) {\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\n return failure;\n }\n\n let output = \"\";\n const decoded = punycode.ucs2.decode(input);\n for (let i = 0; i < decoded.length; ++i) {\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\n }\n return output;\n}\n\nfunction findLongestZeroSequence(arr) {\n let maxIdx = null;\n let maxLen = 1; // only find elements > 1\n let currStart = null;\n let currLen = 0;\n\n for (let i = 0; i < arr.length; ++i) {\n if (arr[i] !== 0) {\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n currStart = null;\n currLen = 0;\n } else {\n if (currStart === null) {\n currStart = i;\n }\n ++currLen;\n }\n }\n\n // if trailing zeros\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n return {\n idx: maxIdx,\n len: maxLen\n };\n}\n\nfunction serializeHost(host) {\n if (typeof host === \"number\") {\n return serializeIPv4(host);\n }\n\n // IPv6 serializer\n if (host instanceof Array) {\n return \"[\" + serializeIPv6(host) + \"]\";\n }\n\n return host;\n}\n\nfunction domainToASCII(domain) {\n const result = domain;\n\n if (result === null) {\n return failure;\n }\n return result;\n}\n\nfunction trimControlChars(url) {\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\n}\n\nfunction trimTabAndNewline(url) {\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\n}\n\nfunction shortenPath(url) {\n const { path } = url;\n if (path.length === 0) {\n return;\n }\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\n return;\n }\n\n path.pop();\n}\n\nfunction includesCredentials(url) {\n return url.username !== \"\" || url.password !== \"\";\n}\n\nfunction cannotHaveAUsernamePasswordPort(url) {\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\n}\n\nfunction isNormalizedWindowsDriveLetter(string) {\n return /^[A-Za-z]:$/.test(string);\n}\n\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\n this.pointer = 0;\n this.input = input;\n this.base = base || null;\n this.encodingOverride = encodingOverride || \"utf-8\";\n this.stateOverride = stateOverride;\n this.url = url;\n this.failure = false;\n this.parseError = false;\n\n if (!this.url) {\n this.url = {\n scheme: \"\",\n username: \"\",\n password: \"\",\n host: null,\n port: null,\n path: [],\n query: null,\n fragment: null,\n\n cannotBeABaseURL: false\n };\n\n const res = trimControlChars(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n }\n\n const res = trimTabAndNewline(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n\n this.state = stateOverride || \"scheme start\";\n\n this.buffer = \"\";\n this.atFlag = false;\n this.arrFlag = false;\n this.passwordTokenSeenFlag = false;\n\n this.input = punycode.ucs2.decode(this.input);\n\n for (; this.pointer <= this.input.length; ++this.pointer) {\n const c = this.input[this.pointer];\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\n\n // exec state machine\n const ret = this[\"parse \" + this.state](c, cStr);\n if (!ret) {\n break; // terminate algorithm\n } else if (ret === failure) {\n this.failure = true;\n break;\n }\n }\n}\n\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\n if (infra.isASCIIAlpha(c)) {\n this.buffer += cStr.toLowerCase();\n this.state = \"scheme\";\n } else if (!this.stateOverride) {\n this.state = \"no scheme\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\n if (infra.isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\n this.buffer += cStr.toLowerCase();\n } else if (c === 58) {\n if (this.stateOverride) {\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\n return false;\n }\n\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\n return false;\n }\n }\n this.url.scheme = this.buffer;\n if (this.stateOverride) {\n if (this.url.port === defaultPort(this.url.scheme)) {\n this.url.port = null;\n }\n return false;\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\") {\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\n this.parseError = true;\n }\n this.state = \"file\";\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\n this.state = \"special relative or authority\";\n } else if (isSpecial(this.url)) {\n this.state = \"special authority slashes\";\n } else if (this.input[this.pointer + 1] === 47) {\n this.state = \"path or authority\";\n ++this.pointer;\n } else {\n this.url.cannotBeABaseURL = true;\n this.url.path.push(\"\");\n this.state = \"cannot-be-a-base-URL path\";\n }\n } else if (!this.stateOverride) {\n this.buffer = \"\";\n this.state = \"no scheme\";\n this.pointer = -1;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\n return failure;\n } else if (this.base.cannotBeABaseURL && c === 35) {\n this.url.scheme = this.base.scheme;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.url.cannotBeABaseURL = true;\n this.state = \"fragment\";\n } else if (this.base.scheme === \"file\") {\n this.state = \"file\";\n --this.pointer;\n } else {\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\n if (c === 47) {\n this.state = \"authority\";\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\n this.url.scheme = this.base.scheme;\n if (isNaN(c)) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 47) {\n this.state = \"relative slash\";\n } else if (c === 63) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n this.state = \"relative slash\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\n\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"special authority ignore slashes\";\n } else if (c === 47) {\n this.state = \"authority\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"special authority ignore slashes\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\n if (c !== 47 && c !== 92) {\n this.state = \"authority\";\n --this.pointer;\n } else {\n this.parseError = true;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\n if (c === 64) {\n this.parseError = true;\n if (this.atFlag) {\n this.buffer = \"%40\" + this.buffer;\n }\n this.atFlag = true;\n\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\n const len = countSymbols(this.buffer);\n for (let pointer = 0; pointer < len; ++pointer) {\n const codePoint = this.buffer.codePointAt(pointer);\n\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\n this.passwordTokenSeenFlag = true;\n continue;\n }\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\n if (this.passwordTokenSeenFlag) {\n this.url.password += encodedCodePoints;\n } else {\n this.url.username += encodedCodePoints;\n }\n }\n this.buffer = \"\";\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n if (this.atFlag && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n this.pointer -= countSymbols(this.buffer) + 1;\n this.buffer = \"\";\n this.state = \"host\";\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse hostname\"] =\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\n if (this.stateOverride && this.url.scheme === \"file\") {\n --this.pointer;\n this.state = \"file host\";\n } else if (c === 58 && !this.arrFlag) {\n if (this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"port\";\n if (this.stateOverride === \"hostname\") {\n return false;\n }\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n --this.pointer;\n if (isSpecial(this.url) && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n } else if (this.stateOverride && this.buffer === \"\" &&\n (includesCredentials(this.url) || this.url.port !== null)) {\n this.parseError = true;\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"path start\";\n if (this.stateOverride) {\n return false;\n }\n } else {\n if (c === 91) {\n this.arrFlag = true;\n } else if (c === 93) {\n this.arrFlag = false;\n }\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\n if (infra.isASCIIDigit(c)) {\n this.buffer += cStr;\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92) ||\n this.stateOverride) {\n if (this.buffer !== \"\") {\n const port = parseInt(this.buffer);\n if (port > Math.pow(2, 16) - 1) {\n this.parseError = true;\n return failure;\n }\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\n this.buffer = \"\";\n }\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\n\nfunction startsWithWindowsDriveLetter(input, pointer) {\n const length = input.length - pointer;\n return length >= 2 &&\n isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) &&\n (length === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]));\n}\n\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\n this.url.scheme = \"file\";\n\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file slash\";\n } else if (this.base !== null && this.base.scheme === \"file\") {\n if (isNaN(c)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 63) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n shortenPath(this.url);\n } else {\n this.parseError = true;\n }\n\n this.state = \"path\";\n --this.pointer;\n }\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file host\";\n } else {\n if (this.base !== null && this.base.scheme === \"file\" &&\n !startsWithWindowsDriveLetter(this.input, this.pointer)) {\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\n this.url.path.push(this.base.path[0]);\n } else {\n this.url.host = this.base.host;\n }\n }\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\n --this.pointer;\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\n this.parseError = true;\n this.state = \"path\";\n } else if (this.buffer === \"\") {\n this.url.host = \"\";\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n } else {\n let host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n if (host === \"localhost\") {\n host = \"\";\n }\n this.url.host = host;\n\n if (this.stateOverride) {\n return false;\n }\n\n this.buffer = \"\";\n this.state = \"path start\";\n }\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\n if (isSpecial(this.url)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"path\";\n\n if (c !== 47 && c !== 92) {\n --this.pointer;\n }\n } else if (!this.stateOverride && c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (!this.stateOverride && c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (c !== undefined) {\n this.state = \"path\";\n if (c !== 47) {\n --this.pointer;\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\n (!this.stateOverride && (c === 63 || c === 35))) {\n if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n }\n\n if (isDoubleDot(this.buffer)) {\n shortenPath(this.url);\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n }\n } else if (isSingleDot(this.buffer) && c !== 47 &&\n !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n } else if (!isSingleDot(this.buffer)) {\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\n if (this.url.host !== \"\" && this.url.host !== null) {\n this.parseError = true;\n this.url.host = \"\";\n }\n this.buffer = this.buffer[0] + \":\";\n }\n this.url.path.push(this.buffer);\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\n this.parseError = true;\n this.url.path.shift();\n }\n }\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n }\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n // TODO: Add: not a URL code point\n if (!isNaN(c) && c !== 37) {\n this.parseError = true;\n }\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n if (!isNaN(c)) {\n this.url.path[0] += percentEncodeChar(c, isC0ControlPercentEncode);\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\n this.encodingOverride = \"utf-8\";\n }\n\n const buffer = Buffer.from(this.buffer); // TODO: Use encoding override instead\n for (let i = 0; i < buffer.length; ++i) {\n if (buffer[i] < 0x21 ||\n buffer[i] > 0x7E ||\n buffer[i] === 0x22 || buffer[i] === 0x23 || buffer[i] === 0x3C || buffer[i] === 0x3E ||\n (buffer[i] === 0x27 && isSpecial(this.url))) {\n this.url.query += percentEncode(buffer[i]);\n } else {\n this.url.query += String.fromCodePoint(buffer[i]);\n }\n }\n\n this.buffer = \"\";\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\n if (isNaN(c)) { // do nothing\n } else if (c === 0x0) {\n this.parseError = true;\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.url.fragment += percentEncodeChar(c, isFragmentPercentEncode);\n }\n\n return true;\n};\n\nfunction serializeURL(url, excludeFragment) {\n let output = url.scheme + \":\";\n if (url.host !== null) {\n output += \"//\";\n\n if (url.username !== \"\" || url.password !== \"\") {\n output += url.username;\n if (url.password !== \"\") {\n output += \":\" + url.password;\n }\n output += \"@\";\n }\n\n output += serializeHost(url.host);\n\n if (url.port !== null) {\n output += \":\" + url.port;\n }\n } else if (url.host === null && url.scheme === \"file\") {\n output += \"//\";\n }\n\n if (url.cannotBeABaseURL) {\n output += url.path[0];\n } else {\n for (const string of url.path) {\n output += \"/\" + string;\n }\n }\n\n if (url.query !== null) {\n output += \"?\" + url.query;\n }\n\n if (!excludeFragment && url.fragment !== null) {\n output += \"#\" + url.fragment;\n }\n\n return output;\n}\n\nfunction serializeOrigin(tuple) {\n let result = tuple.scheme + \"://\";\n result += serializeHost(tuple.host);\n\n if (tuple.port !== null) {\n result += \":\" + tuple.port;\n }\n\n return result;\n}\n\nmodule.exports.serializeURL = serializeURL;\n\nmodule.exports.serializeURLOrigin = function (url) {\n // https://url.spec.whatwg.org/#concept-url-origin\n switch (url.scheme) {\n case \"blob\":\n try {\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\n } catch (e) {\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n case \"ftp\":\n case \"http\":\n case \"https\":\n case \"ws\":\n case \"wss\":\n return serializeOrigin({\n scheme: url.scheme,\n host: url.host,\n port: url.port\n });\n case \"file\":\n // The spec says:\n // > Unfortunate as it is, this is left as an exercise to the reader. When in doubt, return a new opaque origin.\n // Browsers tested so far:\n // - Chrome says \"file://\", but treats file: URLs as cross-origin for most (all?) purposes; see e.g.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=37586\n // - Firefox says \"null\", but treats file: URLs as same-origin sometimes based on directory stuff; see\n // https://developer.mozilla.org/en-US/docs/Archive/Misc_top_level/Same-origin_policy_for_file:_URIs\n return \"null\";\n default:\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n};\n\nmodule.exports.basicURLParse = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\n if (usm.failure) {\n return null;\n }\n\n return usm.url;\n};\n\nmodule.exports.setTheUsername = function (url, username) {\n url.username = \"\";\n const decoded = punycode.ucs2.decode(username);\n for (let i = 0; i < decoded.length; ++i) {\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.setThePassword = function (url, password) {\n url.password = \"\";\n const decoded = punycode.ucs2.decode(password);\n for (let i = 0; i < decoded.length; ++i) {\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.serializeHost = serializeHost;\n\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\n\nmodule.exports.serializeInteger = function (integer) {\n return String(integer);\n};\n\nmodule.exports.parseURL = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n // We don't handle blobs, so this just delegates:\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\n};\n", "\"use strict\";\nconst urlencoded = require(\"./urlencoded\");\n\nfunction stableSortBy(arr, compare) {\n return arr\n .map((item, index) => ({ item, index }))\n .sort((a, b) => compare(a.item, b.item) || a.index - b.index)\n .map(({ item }) => item);\n}\n\nexports.implementation = class URLSearchParamsImpl {\n constructor(globalObject, constructorArgs, { doNotStripQMark = false }) {\n let init = constructorArgs[0];\n this._list = [];\n this._url = null;\n\n if (!doNotStripQMark && typeof init === \"string\" && init[0] === \"?\") {\n init = init.slice(1);\n }\n\n if (Array.isArray(init)) {\n for (const pair of init) {\n if (pair.length !== 2) {\n throw new TypeError(\"Failed to construct 'URLSearchParams': parameter 1 sequence's element does not \" +\n \"contain exactly two elements.\");\n }\n this._list.push([pair[0], pair[1]]);\n }\n } else if (typeof init === \"object\" && Object.getPrototypeOf(init) === null) {\n for (const name of Object.keys(init)) {\n const value = init[name];\n this._list.push([name, value]);\n }\n } else {\n this._list = urlencoded.parseUrlencoded(init);\n }\n }\n\n _updateSteps() {\n if (this._url !== null) {\n let query = urlencoded.serializeUrlencoded(this._list);\n if (query === \"\") {\n query = null;\n }\n this._url._url.query = query;\n }\n }\n\n append(name, value) {\n this._list.push([name, value]);\n this._updateSteps();\n }\n\n delete(name) {\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n this._list.splice(i, 1);\n } else {\n i++;\n }\n }\n this._updateSteps();\n }\n\n get(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return tuple[1];\n }\n }\n return null;\n }\n\n getAll(name) {\n const output = [];\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n output.push(tuple[1]);\n }\n }\n return output;\n }\n\n has(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name, value) {\n let found = false;\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n if (found) {\n this._list.splice(i, 1);\n } else {\n found = true;\n this._list[i][1] = value;\n i++;\n }\n } else {\n i++;\n }\n }\n if (!found) {\n this._list.push([name, value]);\n }\n this._updateSteps();\n }\n\n sort() {\n this._list = stableSortBy(this._list, (a, b) => a[0] > b[0]);\n this._updateSteps();\n }\n\n [Symbol.iterator]() {\n return this._list[Symbol.iterator]();\n }\n\n toString() {\n return urlencoded.serializeUrlencoded(this._list);\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\nconst ctorRegistry = utils.ctorRegistrySymbol;\n\nconst IteratorPrototype = Object.create(utils.IteratorPrototype, {\n next: {\n value: function next() {\n const internal = this[utils.iterInternalSymbol];\n const { target, kind, index } = internal;\n const values = Array.from(target[impl]);\n const len = values.length;\n if (index >= len) {\n return { value: undefined, done: true };\n }\n\n const pair = values[index];\n internal.index = index + 1;\n const [key, value] = pair.map(utils.tryWrapperForImpl);\n\n let result;\n switch (kind) {\n case \"key\":\n result = key;\n break;\n case \"value\":\n result = value;\n break;\n case \"key+value\":\n result = [key, value];\n break;}\n\n return { value: result, done: false };\n },\n writable: true,\n enumerable: true,\n configurable: true },\n\n [Symbol.toStringTag]: {\n value: \"URLSearchParams Iterator\",\n configurable: true } });\n\n\n\nconst iface = {\n // When an interface-module that implements this interface as a mixin is loaded, it will append its own `.is()`\n // method into this array. It allows objects that directly implements *those* interfaces to be recognized as\n // implementing this mixin interface.\n _mixedIntoPredicates: [],\n is(obj) {\n if (obj) {\n if (utils.hasOwn(obj, impl) && obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(obj)) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(wrapper)) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URLSearchParams'.`);\n },\n\n createDefaultIterator(target, kind) {\n const iterator = Object.create(IteratorPrototype);\n Object.defineProperty(iterator, utils.iterInternalSymbol, {\n value: { target, kind, index: 0 },\n configurable: true });\n\n return iterator;\n },\n\n create(globalObject, constructorArgs, privateData) {\n if (globalObject[ctorRegistry] === undefined) {\n throw new Error(\"Internal error: invalid global object\");\n }\n\n const ctor = globalObject[ctorRegistry][\"URLSearchParams\"];\n if (ctor === undefined) {\n throw new Error(\"Internal error: constructor URLSearchParams is not installed on the passed global object\");\n }\n\n let obj = Object.create(ctor.prototype);\n obj = iface.setup(obj, globalObject, constructorArgs, privateData);\n return obj;\n },\n createImpl(globalObject, constructorArgs, privateData) {\n const obj = iface.create(globalObject, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, globalObject, constructorArgs = [], privateData = {}) {\n privateData.wrapper = obj;\n\n iface._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(globalObject, constructorArgs, privateData),\n configurable: true });\n\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n\n install(globalObject) {\n class URLSearchParams {\n constructor() {\n const args = [];\n {\n let curArg = arguments[0];\n if (curArg !== undefined) {\n if (utils.isObject(curArg)) {\n if (curArg[Symbol.iterator] !== undefined) {\n if (!utils.isObject(curArg)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" sequence\" + \" is not an iterable object.\");\n\n } else {\n const V = [];\n const tmp = curArg;\n for (let nextItem of tmp) {\n if (!utils.isObject(nextItem)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" +\n \" sequence\" +\n \"'s element\" +\n \" is not an iterable object.\");\n\n } else {\n const V = [];\n const tmp = nextItem;\n for (let nextItem of tmp) {\n nextItem = conversions[\"USVString\"](nextItem, {\n context:\n \"Failed to construct 'URLSearchParams': parameter 1\" +\n \" sequence\" +\n \"'s element\" +\n \"'s element\" });\n\n\n V.push(nextItem);\n }\n nextItem = V;\n }\n\n V.push(nextItem);\n }\n curArg = V;\n }\n } else {\n if (!utils.isObject(curArg)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \" is not an object.\");\n\n } else {\n const result = Object.create(null);\n for (const key of Reflect.ownKeys(curArg)) {\n const desc = Object.getOwnPropertyDescriptor(curArg, key);\n if (desc && desc.enumerable) {\n let typedKey = key;\n\n typedKey = conversions[\"USVString\"](typedKey, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s key\" });\n\n\n let typedValue = curArg[key];\n\n typedValue = conversions[\"USVString\"](typedValue, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s value\" });\n\n\n result[typedKey] = typedValue;\n }\n }\n curArg = result;\n }\n }\n } else {\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" });\n\n }\n } else {\n curArg = \"\";\n }\n args.push(curArg);\n }\n return iface.setup(Object.create(this.constructor.prototype), globalObject, args);\n }\n\n append(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'append' on 'URLSearchParams': 2 arguments required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n {\n let curArg = arguments[1];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 2\" });\n\n args.push(curArg);\n }\n return this[impl].append(...args);\n }\n\n delete(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'delete' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'delete' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return this[impl].delete(...args);\n }\n\n get(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'get' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'get' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return this[impl].get(...args);\n }\n\n getAll(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'getAll' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'getAll' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return utils.tryWrapperForImpl(this[impl].getAll(...args));\n }\n\n has(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'has' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'has' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return this[impl].has(...args);\n }\n\n set(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'set' on 'URLSearchParams': 2 arguments required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'set' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n {\n let curArg = arguments[1];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'set' on 'URLSearchParams': parameter 2\" });\n\n args.push(curArg);\n }\n return this[impl].set(...args);\n }\n\n sort() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].sort();\n }\n\n toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toString();\n }\n\n keys() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key\");\n }\n\n values() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"value\");\n }\n\n entries() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key+value\");\n }\n\n forEach(callback) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'iterable': 1 argument required, \" + \"but only 0 present.\");\n\n }\n if (typeof callback !== \"function\") {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'iterable': The callback provided \" + \"as parameter 1 is not a function.\");\n\n }\n const thisArg = arguments[1];\n let pairs = Array.from(this[impl]);\n let i = 0;\n while (i < pairs.length) {\n const [key, value] = pairs[i].map(utils.tryWrapperForImpl);\n callback.call(thisArg, value, key, this);\n pairs = Array.from(this[impl]);\n i++;\n }\n }}\n\n Object.defineProperties(URLSearchParams.prototype, {\n append: { enumerable: true },\n delete: { enumerable: true },\n get: { enumerable: true },\n getAll: { enumerable: true },\n has: { enumerable: true },\n set: { enumerable: true },\n sort: { enumerable: true },\n toString: { enumerable: true },\n keys: { enumerable: true },\n values: { enumerable: true },\n entries: { enumerable: true },\n forEach: { enumerable: true },\n [Symbol.toStringTag]: { value: \"URLSearchParams\", configurable: true },\n [Symbol.iterator]: { value: URLSearchParams.prototype.entries, configurable: true, writable: true } });\n\n if (globalObject[ctorRegistry] === undefined) {\n globalObject[ctorRegistry] = Object.create(null);\n }\n globalObject[ctorRegistry][\"URLSearchParams\"] = URLSearchParams;\n\n Object.defineProperty(globalObject, \"URLSearchParams\", {\n configurable: true,\n writable: true,\n value: URLSearchParams });\n\n } };\n// iface\nmodule.exports = iface;\n\nconst Impl = require(\"./URLSearchParams-impl.js\");", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\nconst urlencoded = require(\"./urlencoded\");\nconst URLSearchParams = require(\"./URLSearchParams\");\n\nexports.implementation = class URLImpl {\n constructor(globalObject, constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === null) {\n throw new TypeError(`Invalid base URL: ${base}`);\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${url}`);\n }\n\n const query = parsedURL.query !== null ? parsedURL.query : \"\";\n\n this._url = parsedURL;\n\n // We cannot invoke the \"new URLSearchParams object\" algorithm without going through the constructor, which strips\n // question mark by default. Therefore the doNotStripQMark hack is used.\n this._query = URLSearchParams.createImpl(globalObject, [query], { doNotStripQMark: true });\n this._query._url = this;\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${v}`);\n }\n\n this._url = parsedURL;\n\n this._query._list.splice(0);\n const { query } = parsedURL;\n if (query !== null) {\n this._query._list = urlencoded.parseUrlencoded(query);\n }\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n this._query._list = [];\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n this._query._list = urlencoded.parseUrlencoded(input);\n }\n\n get searchParams() {\n return this._query;\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\nconst ctorRegistry = utils.ctorRegistrySymbol;\n\nconst iface = {\n // When an interface-module that implements this interface as a mixin is loaded, it will append its own `.is()`\n // method into this array. It allows objects that directly implements *those* interfaces to be recognized as\n // implementing this mixin interface.\n _mixedIntoPredicates: [],\n is(obj) {\n if (obj) {\n if (utils.hasOwn(obj, impl) && obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(obj)) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(wrapper)) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URL'.`);\n },\n\n create(globalObject, constructorArgs, privateData) {\n if (globalObject[ctorRegistry] === undefined) {\n throw new Error(\"Internal error: invalid global object\");\n }\n\n const ctor = globalObject[ctorRegistry][\"URL\"];\n if (ctor === undefined) {\n throw new Error(\"Internal error: constructor URL is not installed on the passed global object\");\n }\n\n let obj = Object.create(ctor.prototype);\n obj = iface.setup(obj, globalObject, constructorArgs, privateData);\n return obj;\n },\n createImpl(globalObject, constructorArgs, privateData) {\n const obj = iface.create(globalObject, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, globalObject, constructorArgs = [], privateData = {}) {\n privateData.wrapper = obj;\n\n iface._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(globalObject, constructorArgs, privateData),\n configurable: true });\n\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n\n install(globalObject) {\n class URL {\n constructor(url) {\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, { context: \"Failed to construct 'URL': parameter 1\" });\n args.push(curArg);\n }\n {\n let curArg = arguments[1];\n if (curArg !== undefined) {\n curArg = conversions[\"USVString\"](curArg, { context: \"Failed to construct 'URL': parameter 2\" });\n }\n args.push(curArg);\n }\n return iface.setup(Object.create(this.constructor.prototype), globalObject, args);\n }\n\n toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toJSON();\n }\n\n get href() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"href\"];\n }\n\n set href(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'href' property on 'URL': The provided value\" });\n\n this[impl][\"href\"] = V;\n }\n\n toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this[impl][\"href\"];\n }\n\n get origin() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"origin\"];\n }\n\n get protocol() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"protocol\"];\n }\n\n set protocol(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'protocol' property on 'URL': The provided value\" });\n\n\n this[impl][\"protocol\"] = V;\n }\n\n get username() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"username\"];\n }\n\n set username(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'username' property on 'URL': The provided value\" });\n\n\n this[impl][\"username\"] = V;\n }\n\n get password() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"password\"];\n }\n\n set password(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'password' property on 'URL': The provided value\" });\n\n\n this[impl][\"password\"] = V;\n }\n\n get host() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"host\"];\n }\n\n set host(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'host' property on 'URL': The provided value\" });\n\n this[impl][\"host\"] = V;\n }\n\n get hostname() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hostname\"];\n }\n\n set hostname(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'hostname' property on 'URL': The provided value\" });\n\n\n this[impl][\"hostname\"] = V;\n }\n\n get port() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"port\"];\n }\n\n set port(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'port' property on 'URL': The provided value\" });\n\n this[impl][\"port\"] = V;\n }\n\n get pathname() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"pathname\"];\n }\n\n set pathname(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'pathname' property on 'URL': The provided value\" });\n\n\n this[impl][\"pathname\"] = V;\n }\n\n get search() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"search\"];\n }\n\n set search(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'search' property on 'URL': The provided value\" });\n\n\n this[impl][\"search\"] = V;\n }\n\n get searchParams() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return utils.getSameObject(this, \"searchParams\", () => {\n return utils.tryWrapperForImpl(this[impl][\"searchParams\"]);\n });\n }\n\n get hash() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hash\"];\n }\n\n set hash(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'hash' property on 'URL': The provided value\" });\n\n this[impl][\"hash\"] = V;\n }}\n\n Object.defineProperties(URL.prototype, {\n toJSON: { enumerable: true },\n href: { enumerable: true },\n toString: { enumerable: true },\n origin: { enumerable: true },\n protocol: { enumerable: true },\n username: { enumerable: true },\n password: { enumerable: true },\n host: { enumerable: true },\n hostname: { enumerable: true },\n port: { enumerable: true },\n pathname: { enumerable: true },\n search: { enumerable: true },\n searchParams: { enumerable: true },\n hash: { enumerable: true },\n [Symbol.toStringTag]: { value: \"URL\", configurable: true } });\n\n if (globalObject[ctorRegistry] === undefined) {\n globalObject[ctorRegistry] = Object.create(null);\n }\n globalObject[ctorRegistry][\"URL\"] = URL;\n\n Object.defineProperty(globalObject, \"URL\", {\n configurable: true,\n writable: true,\n value: URL });\n\n } };\n// iface\nmodule.exports = iface;\n\nconst Impl = require(\"./URL-impl.js\");", "\"use strict\";\n\nconst URL = require(\"./lib/URL\");\nconst URLSearchParams = require(\"./lib/URLSearchParams\");\n\nexports.URL = URL;\nexports.URLSearchParams = URLSearchParams;\n", "\"use strict\";\n\nconst { URL, URLSearchParams } = require(\"./webidl2js-wrapper\");\nconst urlStateMachine = require(\"./lib/url-state-machine\");\nconst urlEncoded = require(\"./lib/urlencoded\");\n\nconst sharedGlobalObject = {};\nURL.install(sharedGlobalObject);\nURLSearchParams.install(sharedGlobalObject);\n\nexports.URL = sharedGlobalObject.URL;\nexports.URLSearchParams = sharedGlobalObject.URLSearchParams;\n\nexports.parseURL = urlStateMachine.parseURL;\nexports.basicURLParse = urlStateMachine.basicURLParse;\nexports.serializeURL = urlStateMachine.serializeURL;\nexports.serializeHost = urlStateMachine.serializeHost;\nexports.serializeInteger = urlStateMachine.serializeInteger;\nexports.serializeURLOrigin = urlStateMachine.serializeURLOrigin;\nexports.setTheUsername = urlStateMachine.setTheUsername;\nexports.setThePassword = urlStateMachine.setThePassword;\nexports.cannotHaveAUsernamePasswordPort = urlStateMachine.cannotHaveAUsernamePasswordPort;\n\nexports.percentDecode = urlEncoded.percentDecode;\n", "import {NativeModules} from 'react-native';\nimport {URL as whatwgUrl} from 'whatwg-url-without-unicode';\n\nlet BLOB_URL_PREFIX = null;\n\nconst {BlobModule} = NativeModules;\n\nif (BlobModule && typeof BlobModule.BLOB_URI_SCHEME === 'string') {\n BLOB_URL_PREFIX = BlobModule.BLOB_URI_SCHEME + ':';\n if (typeof BlobModule.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${BlobModule.BLOB_URI_HOST}/`;\n }\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * <manifest>\n * <application>\n * <provider\n * android:name=\"com.facebook.react.modules.blob.BlobProvider\"\n * android:authorities=\"@string/blob_provider_authority\"\n * android:exported=\"false\"\n * />\n * </application>\n * </manifest>\n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * <resources>\n * <string name=\"blob_provider_authority\">your.app.package.blobs</string>\n * </resources>\n * ```\n */\n\nwhatwgUrl.createObjectURL = function createObjectURL(blob) {\n if (BLOB_URL_PREFIX === null) {\n throw new Error('Cannot create URL for blob!');\n }\n return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`;\n};\n\nwhatwgUrl.revokeObjectURL = function revokeObjectURL(url) {\n // Do nothing.\n};\n\nexport const URL = whatwgUrl;\n", "export {URLSearchParams} from 'whatwg-url-without-unicode';\n", "import {\n createElement,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { Share, type StyleProp, type ViewStyle } from \"react-native\";\nimport { WebView, type WebViewMessageEvent } from \"react-native-webview\";\nimport { URL as NativeURL } from \"react-native-url-polyfill\";\nimport { embedUrl, parseShare, type GrizzleeShare } from \"./protocol\";\n\nexport type { GrizzleeShare } from \"./protocol\";\n\nexport interface GrizzleeNativeEmbedProps {\n /** A one-use /embed/start URL minted by the merchant's server. */\n startUrl: string;\n /** Return a fresh start URL, or update startUrl in your app. */\n onExpired?: () => string | void | Promise<string | void>;\n onReady?: () => void;\n /** Without this callback, the component opens React Native's share sheet. */\n onShare?: (share: GrizzleeShare) => void | Promise<void>;\n /** Loading, renewal and sharing errors. */\n onError?: (error: Error) => void;\n style?: StyleProp<ViewStyle>;\n}\n\n// Older React Native releases do not implement URL.origin or URL.protocol.\nconst nativeUrl = (value: string) => embedUrl(value, NativeURL);\n\nfunction startUrl(value: string): URL {\n const url = nativeUrl(value);\n if (url.pathname !== \"/embed/start\" || !url.searchParams.get(\"session\"))\n throw new Error(\"Use the /embed/start URL returned by createEmbedSession\");\n return url;\n}\n\n/** Render the dashboard directly in a WebView. No merchant wrapper page is needed. */\nexport function GrizzleeNativeEmbed(\n props: GrizzleeNativeEmbedProps,\n): ReactElement {\n const url = startUrl(props.startUrl).href;\n return createElement(NativeSession, { ...props, startUrl: url, key: url });\n}\n\nfunction NativeSession(props: GrizzleeNativeEmbedProps): ReactElement {\n const frame = useRef<WebView>(null);\n const current = useRef(props);\n const active = useRef(true);\n const renewing = useRef(false);\n const [url, setUrl] = useState(props.startUrl);\n const currentUrl = useRef(url);\n const source = startUrl(url);\n\n useEffect(() => {\n current.current = props;\n });\n useEffect(() => {\n active.current = true;\n return () => {\n active.current = false;\n };\n }, []);\n\n function isCurrentOrigin(value: string): boolean {\n if (!active.current || url !== currentUrl.current) return false;\n try {\n return nativeUrl(value).origin === source.origin;\n } catch {\n return false;\n }\n }\n\n function isCurrentDocument(value: string): boolean {\n if (!isCurrentOrigin(value)) return false;\n const sender = nativeUrl(value);\n return (\n sender.pathname === source.pathname && sender.search === source.search\n );\n }\n\n function reportError(error: unknown) {\n if (active.current && url === currentUrl.current)\n current.current.onError?.(\n error instanceof Error ? error : new Error(\"Partner dashboard failed\"),\n );\n }\n\n async function renew() {\n if (!active.current || url !== currentUrl.current || renewing.current)\n return;\n const callback = current.current.onExpired;\n if (!callback) return;\n renewing.current = true;\n try {\n const value = await callback();\n if (!active.current || url !== currentUrl.current || !value) return;\n const next = startUrl(value);\n if (next.href === url)\n throw new Error(\"Session renewal must return a fresh start URL\");\n currentUrl.current = next.href;\n setUrl(next.href);\n } catch (error) {\n reportError(error);\n } finally {\n renewing.current = false;\n }\n }\n\n async function share(value: GrizzleeShare) {\n try {\n if (current.current.onShare) await current.current.onShare(value);\n else await Share.share({ message: `${value.text} ${value.url}` });\n } catch (error) {\n reportError(error);\n }\n }\n\n function receive(event: WebViewMessageEvent) {\n if (!isCurrentOrigin(event.nativeEvent.url)) return;\n let message: unknown;\n try {\n message = JSON.parse(event.nativeEvent.data);\n } catch {\n return;\n }\n if (!message || typeof message !== \"object\" || !(\"type\" in message)) return;\n switch (message.type) {\n case \"grizzlee:ready\":\n frame.current?.injectJavaScript(\n `window.postMessage({ type: \"grizzlee:configure\", share: true }, ${JSON.stringify(source.origin)}); true;`,\n );\n current.current.onReady?.();\n break;\n case \"grizzlee:share\": {\n const value = parseShare(message, nativeUrl);\n if (value) void share(value);\n break;\n }\n case \"grizzlee:session_expired\":\n void renew();\n break;\n // The WebView scrolls the document and keeps the size set by its native parent.\n case \"grizzlee:resize\":\n break;\n }\n }\n\n return createElement(WebView, {\n ref: frame,\n key: url,\n source: { uri: url },\n style: [{ flex: 1 }, props.style],\n // Route every navigation through our check instead of WebView's automatic OS handoff.\n originWhitelist: [\"*\"],\n onShouldStartLoadWithRequest: (request) => isCurrentDocument(request.url),\n onOpenWindow: () => {},\n javaScriptEnabled: true,\n javaScriptCanOpenWindowsAutomatically: false,\n incognito: true,\n cacheEnabled: false,\n sharedCookiesEnabled: false,\n thirdPartyCookiesEnabled: false,\n onMessage: receive,\n onError: (event) => {\n if (isCurrentDocument(event.nativeEvent.url))\n reportError(new Error(\"Partner dashboard could not load\"));\n },\n onHttpError: (event) => {\n if (isCurrentDocument(event.nativeEvent.url))\n reportError(\n new Error(\n `Partner dashboard returned HTTP ${event.nativeEvent.statusCode}`,\n ),\n );\n },\n onContentProcessDidTerminate: () => {\n void renew();\n },\n onRenderProcessGone: () => {\n void renew();\n },\n });\n}\n", "/**\n * There's a bug happening on iOS 10 where `ArrayBuffer.prototype.byteLength`\n * is not defined, but present on the object returned by the function/constructor\n * See https://github.com/charpeni/react-native-url-polyfill/issues/190\n * */\n\nimport {Platform} from 'react-native';\n\nconst majorVersionIOS = parseInt(Platform.Version, 10);\n\nif (Platform.OS === 'ios' && majorVersionIOS === 10) {\n if (\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength') == null\n ) {\n // eslint-disable-next-line no-extend-native\n Object.defineProperty(ArrayBuffer.prototype, 'byteLength', {\n configurable: true,\n enumerable: false,\n get() {\n return null;\n },\n });\n }\n}\n", "import './js/ios10Fix';\n\nimport packageJson from './package.json';\n\nexport * from './js/URL';\nexport * from './js/URLSearchParams';\n\nexport function setupURLPolyfill() {\n globalThis.REACT_NATIVE_URL_POLYFILL = `${packageJson.name}@${packageJson.version}`;\n\n globalThis.URL = require('./js/URL').URL;\n globalThis.URLSearchParams = require('./js/URLSearchParams').URLSearchParams;\n}\n", "export interface GrizzleeShare {\n programId: string;\n url: string;\n text: string;\n}\n\nexport function embedUrl(\n url: string,\n Url: new (value: string) => URL = URL,\n): URL {\n const parsed = new Url(url);\n if (\n ![\"https:\", \"http:\"].includes(parsed.protocol) ||\n parsed.username ||\n parsed.password\n )\n throw new Error(\n \"Use an absolute HTTP or HTTPS embed URL without credentials\",\n );\n return parsed;\n}\n\nexport function parseShare(\n message: object,\n validateUrl: (value: string) => unknown = embedUrl,\n): GrizzleeShare | null {\n if (\n !(\"programId\" in message) ||\n typeof message.programId !== \"string\" ||\n !message.programId ||\n !(\"url\" in message) ||\n typeof message.url !== \"string\" ||\n !(\"text\" in message) ||\n typeof message.text !== \"string\"\n )\n return null;\n try {\n validateUrl(message.url);\n } catch {\n return null;\n }\n return { programId: message.programId, url: message.url, text: message.text };\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../src/native.ts", "../src/protocol.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n createElement,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { Share, type StyleProp, type ViewStyle } from \"react-native\";\nimport { WebView, type WebViewMessageEvent } from \"react-native-webview\";\nimport { URL as NativeURL } from \"react-native-url-polyfill\";\nimport { embedUrl, parseShare, type GrizzleeShare } from \"./protocol\";\n\nexport type { GrizzleeShare } from \"./protocol\";\n\nexport interface GrizzleeNativeEmbedProps {\n /** A one-use /embed/start URL minted by the merchant's server. */\n startUrl: string;\n /** Return a fresh start URL, or update startUrl in your app. */\n onExpired?: () => string | void | Promise<string | void>;\n onReady?: () => void;\n /** Without this callback, the component opens React Native's share sheet. */\n onShare?: (share: GrizzleeShare) => void | Promise<void>;\n /** Loading, renewal and sharing errors. */\n onError?: (error: Error) => void;\n style?: StyleProp<ViewStyle>;\n}\n\n// Older React Native releases do not implement URL.origin or URL.protocol.\nconst nativeUrl = (value: string) => embedUrl(value, NativeURL);\n\nfunction startUrl(value: string): URL {\n const url = nativeUrl(value);\n if (url.pathname !== \"/embed/start\" || !url.searchParams.get(\"session\"))\n throw new Error(\"Use the /embed/start URL returned by createEmbedSession\");\n return url;\n}\n\n/** Render the dashboard directly in a WebView. No merchant wrapper page is needed. */\nexport function GrizzleeNativeEmbed(\n props: GrizzleeNativeEmbedProps,\n): ReactElement {\n const url = startUrl(props.startUrl).href;\n return createElement(NativeSession, { ...props, startUrl: url, key: url });\n}\n\nfunction NativeSession(props: GrizzleeNativeEmbedProps): ReactElement {\n const frame = useRef<WebView>(null);\n const current = useRef(props);\n const active = useRef(true);\n const renewing = useRef(false);\n const [url, setUrl] = useState(props.startUrl);\n const currentUrl = useRef(url);\n const source = startUrl(url);\n\n useEffect(() => {\n current.current = props;\n });\n useEffect(() => {\n active.current = true;\n return () => {\n active.current = false;\n };\n }, []);\n\n function isCurrentOrigin(value: string): boolean {\n if (!active.current || url !== currentUrl.current) return false;\n try {\n return nativeUrl(value).origin === source.origin;\n } catch {\n return false;\n }\n }\n\n function isCurrentDocument(value: string): boolean {\n if (!isCurrentOrigin(value)) return false;\n const sender = nativeUrl(value);\n return (\n sender.pathname === source.pathname && sender.search === source.search\n );\n }\n\n function reportError(error: unknown) {\n if (active.current && url === currentUrl.current)\n current.current.onError?.(\n error instanceof Error ? error : new Error(\"Partner dashboard failed\"),\n );\n }\n\n async function renew() {\n if (!active.current || url !== currentUrl.current || renewing.current)\n return;\n const callback = current.current.onExpired;\n if (!callback) return;\n renewing.current = true;\n try {\n const value = await callback();\n if (!active.current || url !== currentUrl.current || !value) return;\n const next = startUrl(value);\n if (next.href === url)\n throw new Error(\"Session renewal must return a fresh start URL\");\n currentUrl.current = next.href;\n setUrl(next.href);\n } catch (error) {\n reportError(error);\n } finally {\n renewing.current = false;\n }\n }\n\n async function share(value: GrizzleeShare) {\n try {\n if (current.current.onShare) await current.current.onShare(value);\n else await Share.share({ message: `${value.text} ${value.url}` });\n } catch (error) {\n reportError(error);\n }\n }\n\n function receive(event: WebViewMessageEvent) {\n if (!isCurrentOrigin(event.nativeEvent.url)) return;\n let message: unknown;\n try {\n message = JSON.parse(event.nativeEvent.data);\n } catch {\n return;\n }\n if (!message || typeof message !== \"object\" || !(\"type\" in message)) return;\n switch (message.type) {\n case \"grizzlee:ready\":\n frame.current?.injectJavaScript(\n `window.postMessage({ type: \"grizzlee:configure\", share: true }, ${JSON.stringify(source.origin)}); true;`,\n );\n current.current.onReady?.();\n break;\n case \"grizzlee:share\": {\n const value = parseShare(message, nativeUrl);\n if (value) void share(value);\n break;\n }\n case \"grizzlee:session_expired\":\n void renew();\n break;\n // The WebView scrolls the document and keeps the size set by its native parent.\n case \"grizzlee:resize\":\n break;\n }\n }\n\n return createElement(WebView, {\n ref: frame,\n key: url,\n source: { uri: url },\n style: [{ flex: 1 }, props.style],\n // Route every navigation through our check instead of WebView's automatic OS handoff.\n originWhitelist: [\"*\"],\n onShouldStartLoadWithRequest: (request) => isCurrentDocument(request.url),\n onOpenWindow: () => {},\n javaScriptEnabled: true,\n javaScriptCanOpenWindowsAutomatically: false,\n incognito: true,\n cacheEnabled: false,\n sharedCookiesEnabled: false,\n thirdPartyCookiesEnabled: false,\n onMessage: receive,\n onError: (event) => {\n if (isCurrentDocument(event.nativeEvent.url))\n reportError(new Error(\"Partner dashboard could not load\"));\n },\n onHttpError: (event) => {\n if (isCurrentDocument(event.nativeEvent.url))\n reportError(\n new Error(\n `Partner dashboard returned HTTP ${event.nativeEvent.statusCode}`,\n ),\n );\n },\n onContentProcessDidTerminate: () => {\n void renew();\n },\n onRenderProcessGone: () => {\n void renew();\n },\n });\n}\n", "export interface GrizzleeShare {\n programId: string;\n url: string;\n text: string;\n}\n\nexport function embedUrl(\n url: string,\n Url: new (value: string) => URL = URL,\n): URL {\n const parsed = new Url(url);\n if (\n ![\"https:\", \"http:\"].includes(parsed.protocol) ||\n parsed.username ||\n parsed.password\n )\n throw new Error(\n \"Use an absolute HTTP or HTTPS embed URL without credentials\",\n );\n return parsed;\n}\n\nexport function parseShare(\n message: object,\n validateUrl: (value: string) => unknown = embedUrl,\n): GrizzleeShare | null {\n if (\n !(\"programId\" in message) ||\n typeof message.programId !== \"string\" ||\n !message.programId ||\n !(\"url\" in message) ||\n typeof message.url !== \"string\" ||\n !(\"text\" in message) ||\n typeof message.text !== \"string\"\n )\n return null;\n try {\n validateUrl(message.url);\n } catch {\n return null;\n }\n return { programId: message.programId, url: message.url, text: message.text };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAMO;AACP,0BAAsD;AACtD,kCAAkD;AAClD,uCAAiC;;;ACH1B,SAAS,SACd,KACA,MAAkC,KAC7B;AACL,QAAM,SAAS,IAAI,IAAI,GAAG;AAC1B,MACE,CAAC,CAAC,UAAU,OAAO,EAAE,SAAS,OAAO,QAAQ,KAC7C,OAAO,YACP,OAAO;AAEP,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;AAEO,SAAS,WACd,SACA,cAA0C,UACpB;AACtB,MACE,EAAE,eAAe,YACjB,OAAO,QAAQ,cAAc,YAC7B,CAAC,QAAQ,aACT,EAAE,SAAS,YACX,OAAO,QAAQ,QAAQ,YACvB,EAAE,UAAU,YACZ,OAAO,QAAQ,SAAS;AAExB,WAAO;AACT,MAAI;AACF,gBAAY,QAAQ,GAAG;AAAA,EACzB,QAAQ;AACN,WAAO;AAAA,EACT;AACA,SAAO,EAAE,WAAW,QAAQ,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ,KAAK;AAC9E;;;ADdA,IAAM,YAAY,CAAC,UAAkB,SAAS,OAAO,iCAAAA,GAAS;AAE9D,SAAS,SAAS,OAAoB;AACpC,QAAM,MAAM,UAAU,KAAK;AAC3B,MAAI,IAAI,aAAa,kBAAkB,CAAC,IAAI,aAAa,IAAI,SAAS;AACpE,UAAM,IAAI,MAAM,yDAAyD;AAC3E,SAAO;AACT;AAGO,SAAS,oBACd,OACc;AACd,QAAM,MAAM,SAAS,MAAM,QAAQ,EAAE;AACrC,aAAO,4BAAc,eAAe,EAAE,GAAG,OAAO,UAAU,KAAK,KAAK,IAAI,CAAC;AAC3E;AAEA,SAAS,cAAc,OAA+C;AACpE,QAAM,YAAQ,qBAAgB,IAAI;AAClC,QAAM,cAAU,qBAAO,KAAK;AAC5B,QAAM,aAAS,qBAAO,IAAI;AAC1B,QAAM,eAAW,qBAAO,KAAK;AAC7B,QAAM,CAAC,KAAK,MAAM,QAAI,uBAAS,MAAM,QAAQ;AAC7C,QAAM,iBAAa,qBAAO,GAAG;AAC7B,QAAM,SAAS,SAAS,GAAG;AAE3B,8BAAU,MAAM;AACd,YAAQ,UAAU;AAAA,EACpB,CAAC;AACD,8BAAU,MAAM;AACd,WAAO,UAAU;AACjB,WAAO,MAAM;AACX,aAAO,UAAU;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,WAAS,gBAAgB,OAAwB;AAC/C,QAAI,CAAC,OAAO,WAAW,QAAQ,WAAW,QAAS,QAAO;AAC1D,QAAI;AACF,aAAO,UAAU,KAAK,EAAE,WAAW,OAAO;AAAA,IAC5C,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAEA,WAAS,kBAAkB,OAAwB;AACjD,QAAI,CAAC,gBAAgB,KAAK,EAAG,QAAO;AACpC,UAAM,SAAS,UAAU,KAAK;AAC9B,WACE,OAAO,aAAa,OAAO,YAAY,OAAO,WAAW,OAAO;AAAA,EAEpE;AAEA,WAAS,YAAY,OAAgB;AACnC,QAAI,OAAO,WAAW,QAAQ,WAAW;AACvC,cAAQ,QAAQ;AAAA,QACd,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,0BAA0B;AAAA,MACvE;AAAA,EACJ;AAEA,iBAAe,QAAQ;AACrB,QAAI,CAAC,OAAO,WAAW,QAAQ,WAAW,WAAW,SAAS;AAC5D;AACF,UAAM,WAAW,QAAQ,QAAQ;AACjC,QAAI,CAAC,SAAU;AACf,aAAS,UAAU;AACnB,QAAI;AACF,YAAM,QAAQ,MAAM,SAAS;AAC7B,UAAI,CAAC,OAAO,WAAW,QAAQ,WAAW,WAAW,CAAC,MAAO;AAC7D,YAAM,OAAO,SAAS,KAAK;AAC3B,UAAI,KAAK,SAAS;AAChB,cAAM,IAAI,MAAM,+CAA+C;AACjE,iBAAW,UAAU,KAAK;AAC1B,aAAO,KAAK,IAAI;AAAA,IAClB,SAAS,OAAO;AACd,kBAAY,KAAK;AAAA,IACnB,UAAE;AACA,eAAS,UAAU;AAAA,IACrB;AAAA,EACF;AAEA,iBAAe,MAAM,OAAsB;AACzC,QAAI;AACF,UAAI,QAAQ,QAAQ,QAAS,OAAM,QAAQ,QAAQ,QAAQ,KAAK;AAAA,UAC3D,OAAM,0BAAM,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC;AAAA,IAClE,SAAS,OAAO;AACd,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,WAAS,QAAQ,OAA4B;AAC3C,QAAI,CAAC,gBAAgB,MAAM,YAAY,GAAG,EAAG;AAC7C,QAAI;AACJ,QAAI;AACF,gBAAU,KAAK,MAAM,MAAM,YAAY,IAAI;AAAA,IAC7C,QAAQ;AACN;AAAA,IACF;AACA,QAAI,CAAC,WAAW,OAAO,YAAY,YAAY,EAAE,UAAU,SAAU;AACrE,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK;AACH,cAAM,SAAS;AAAA,UACb,mEAAmE,KAAK,UAAU,OAAO,MAAM,CAAC;AAAA,QAClG;AACA,gBAAQ,QAAQ,UAAU;AAC1B;AAAA,MACF,KAAK,kBAAkB;AACrB,cAAM,QAAQ,WAAW,SAAS,SAAS;AAC3C,YAAI,MAAO,MAAK,MAAM,KAAK;AAC3B;AAAA,MACF;AAAA,MACA,KAAK;AACH,aAAK,MAAM;AACX;AAAA;AAAA,MAEF,KAAK;AACH;AAAA,IACJ;AAAA,EACF;AAEA,aAAO,4BAAc,qCAAS;AAAA,IAC5B,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ,EAAE,KAAK,IAAI;AAAA,IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK;AAAA;AAAA,IAEhC,iBAAiB,CAAC,GAAG;AAAA,IACrB,8BAA8B,CAAC,YAAY,kBAAkB,QAAQ,GAAG;AAAA,IACxE,cAAc,MAAM;AAAA,IAAC;AAAA,IACrB,mBAAmB;AAAA,IACnB,uCAAuC;AAAA,IACvC,WAAW;AAAA,IACX,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,0BAA0B;AAAA,IAC1B,WAAW;AAAA,IACX,SAAS,CAAC,UAAU;AAClB,UAAI,kBAAkB,MAAM,YAAY,GAAG;AACzC,oBAAY,IAAI,MAAM,kCAAkC,CAAC;AAAA,IAC7D;AAAA,IACA,aAAa,CAAC,UAAU;AACtB,UAAI,kBAAkB,MAAM,YAAY,GAAG;AACzC;AAAA,UACE,IAAI;AAAA,YACF,mCAAmC,MAAM,YAAY,UAAU;AAAA,UACjE;AAAA,QACF;AAAA,IACJ;AAAA,IACA,8BAA8B,MAAM;AAClC,WAAK,MAAM;AAAA,IACb;AAAA,IACA,qBAAqB,MAAM;AACzB,WAAK,MAAM;AAAA,IACb;AAAA,EACF,CAAC;AACH;",
|
|
6
|
+
"names": ["NativeURL"]
|
|
7
7
|
}
|