@duffel/api 1.7.0 → 1.7.4
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/dist/booking/Offers/Offers.d.ts +5 -7
- package/dist/booking/Orders/OrdersTypes.d.ts +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/ClientType.d.ts +0 -3
- package/dist/types/index.d.ts +8 -12
- package/package.json +8 -8
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/node-fetch/lib/index.mjs","../node_modules/isomorphic-unfetch/index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError };\n","function r(m){return m && m.default || m;}\nmodule.exports = global.fetch = global.fetch || (\n\ttypeof process=='undefined' ? r(require('unfetch')) : (function(url, opts) {\n\t\treturn r(require('node-fetch'))(String(url).replace(/^\\/\\//g,'https://'), opts);\n\t})\n);\n"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","apply","__await","v","this","__asyncGenerator","Symbol","asyncIterator","TypeError","g","q","verb","n","a","b","push","resume","r","fulfill","settle","f","shift","XMLHttpRequest","o","u","ok","status","statusText","url","responseURL","text","responseText","json","JSON","parse","blob","Blob","response","clone","headers","keys","entries","get","toLowerCase","has","l","open","method","onload","getAllResponseHeaders","replace","onerror","withCredentials","credentials","setRequestHeader","send","body","Readable","Stream","BUFFER","TYPE","[object Object]","blobParts","arguments","options","buffers","size","Number","element","buffer","Buffer","ArrayBuffer","isView","from","byteOffset","byteLength","String","concat","type","undefined","test","toString","buf","ab","slice","readable","_read","start","end","relativeStart","relativeEnd","Math","max","min","span","slicedBuffer","FetchError","message","systemError","Error","code","errno","captureStackTrace","constructor","convert","defineProperties","enumerable","defineProperty","toStringTag","writable","configurable","create","name","require","INTERNALS","PassThrough","Body","_this","_ref","_ref$size","_ref$timeout","timeout","isURLSearchParams","isBlob","isBuffer","disturbed","error","on","err","consumeBody","_this4","alloc","stream","accum","accumBytes","abort","resTimeout","setTimeout","chunk","clearTimeout","obj","append","delete","getAll","set","sort","arrayBuffer","instance","p1","p2","bodyUsed","getBoundary","pipe","extractContentType","getTotalBytes","getLengthSync","_lengthRetrievers","hasKnownLength","ct","assign","_this2","_this3","res","str","charset","exec","pop","convertBody","mixIn","proto","getOwnPropertyNames","desc","getOwnPropertyDescriptor","global","invalidTokenRegex","invalidHeaderCharRegex","validateName","validateValue","find","map","key","MAP","Headers","init","rawHeaders","raw","headerNames","headerName","iterator","pairs","pair","Array","join","callback","getHeaders","_pairs$i","createHeadersIterator","kind","k","forEach","values","INTERNAL","target","HeadersIteratorPrototype","index","setPrototypeOf","getPrototypeOf","_INTERNAL","exportNodeCompatibleHeaders","__proto__","hostHeaderKey","INTERNALS$1","STATUS_CODES","http","Response","opts","contentType","counter","redirected","INTERNALS$2","parse_url","Url","format_url","format","streamDestructionSupported","isRequest","input","Request","parsedURL","href","toUpperCase","inputBody","signal","isAbortSignal","redirect","follow","compress","agent","AbortError","PassThrough$1","resolve_url","fetch","request","protocol","hostname","contentLengthValue","totalBytes","getNodeRequestOptions","https","destroy","emit","aborted","abortAndFinalize","finalize","req","reqTimeout","removeEventListener","addEventListener","once","socket","isArray","val","createHeadersLenient","isRedirect","statusCode","location","locationURL","requestOpts","response_options","statusMessage","codings","zlibOptions","flush","zlib","Z_SYNC_FLUSH","finishFlush","createGunzip","createBrotliDecompress","createInflate","createInflateRaw","dest","write","writeToStream","m","default","isomorphicUnfetch","process","require$$0","require$$1"],"mappings":"qIAwCO,SAASA,EAAOC,EAAGC,GACtB,IAAIC,EAAI,GACR,IAAK,IAAIC,KAAKH,EAAOI,OAAOC,UAAUC,eAAeC,KAAKP,EAAGG,IAAMF,EAAEO,QAAQL,GAAK,IAC9ED,EAAEC,GAAKH,EAAEG,IACb,GAAS,MAALH,GAAqD,mBAAjCI,OAAOK,sBACtB,CAAA,IAAIC,EAAI,EAAb,IAAgBP,EAAIC,OAAOK,sBAAsBT,GAAIU,EAAIP,EAAEQ,OAAQD,IAC3DT,EAAEO,QAAQL,EAAEO,IAAM,GAAKN,OAAOC,UAAUO,qBAAqBL,KAAKP,EAAGG,EAAEO,MACvER,EAAEC,EAAEO,IAAMV,EAAEG,EAAEO,KAE1B,OAAOR,EAkBJ,SAASW,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKS,WAoF/D,SAASM,EAAQC,GACpB,OAAOC,gBAAgBF,GAAWE,KAAKD,EAAIA,EAAGC,MAAQ,IAAIF,EAAQC,GAG/D,SAASE,EAAiBnB,EAASC,EAAYE,GAClD,IAAKiB,OAAOC,cAAe,MAAM,IAAIC,UAAU,wCAC/C,IAAoD1B,EAAhD2B,EAAIpB,EAAUY,MAAMf,EAASC,GAAc,IAAQuB,EAAI,GAC3D,OAAO5B,EAAI,GAAI6B,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW7B,EAAEwB,OAAOC,eAAiB,WAAc,OAAOH,MAAStB,EACpH,SAAS6B,EAAKC,GAASH,EAAEG,KAAI9B,EAAE8B,GAAK,SAAUT,GAAK,OAAO,IAAIb,SAAQ,SAAUuB,EAAGC,GAAKJ,EAAEK,KAAK,CAACH,EAAGT,EAAGU,EAAGC,IAAM,GAAKE,EAAOJ,EAAGT,QAC9H,SAASa,EAAOJ,EAAGT,GAAK,KACxB,SAAcc,GAAKA,EAAEvB,iBAAiBQ,EAAUZ,QAAQC,QAAQ0B,EAAEvB,MAAMS,GAAGH,KAAKkB,EAAS1B,GAAU2B,EAAOT,EAAE,GAAG,GAAIO,GADrFtB,CAAKc,EAAEG,GAAGT,IAAO,MAAO9B,GAAK8C,EAAOT,EAAE,GAAG,GAAIrC,IAE3E,SAAS6C,EAAQxB,GAASsB,EAAO,OAAQtB,GACzC,SAASF,EAAOE,GAASsB,EAAO,QAAStB,GACzC,SAASyB,EAAOC,EAAGjB,GAASiB,EAAEjB,GAAIO,EAAEW,QAASX,EAAE3B,QAAQiC,EAAON,EAAE,GAAG,GAAIA,EAAE,GAAG,83KC1KjE,SAASrC,EAAEuC,GAAG,OAAOA,EAAEA,GAAG,GAAG,IAAItB,SAAQ,SAAShB,EAAE2C,GAAG,IAAI7C,EAAE,IAAIkD,eAAeC,EAAE,GAAGC,EAAE,GAAG1C,EAAE,GAAG+B,EAAE,WAAW,MAAM,CAACY,GAAG,IAAIrD,EAAEsD,OAAO,IAAI,GAAGC,WAAWvD,EAAEuD,WAAWD,OAAOtD,EAAEsD,OAAOE,IAAIxD,EAAEyD,YAAYC,KAAK,WAAW,OAAOxC,QAAQC,QAAQnB,EAAE2D,eAAeC,KAAK,WAAW,OAAO1C,QAAQC,QAAQnB,EAAE2D,cAAc/B,KAAKiC,KAAKC,QAAQC,KAAK,WAAW,OAAO7C,QAAQC,QAAQ,IAAI6C,KAAK,CAAChE,EAAEiE,aAAaC,MAAMzB,EAAE0B,QAAQ,CAACC,KAAK,WAAW,OAAOjB,GAAGkB,QAAQ,WAAW,OAAOjB,GAAGkB,IAAI,SAASrE,GAAG,OAAOS,EAAET,EAAEsE,gBAAgBC,IAAI,SAASvE,GAAG,OAAOA,EAAEsE,gBAAgB7D,MAAM,IAAI,IAAI+D,KAAKzE,EAAE0E,KAAKlC,EAAEmC,QAAQ,MAAM1E,GAAE,GAAID,EAAE4E,OAAO,WAAW5E,EAAE6E,wBAAwBC,QAAQ,gCAA+B,SAAS7E,EAAEuC,EAAEtC,GAAGiD,EAAER,KAAKH,EAAEA,EAAE+B,eAAenB,EAAET,KAAK,CAACH,EAAEtC,IAAIQ,EAAE8B,GAAG9B,EAAE8B,GAAG9B,EAAE8B,GAAG,IAAItC,EAAEA,KAAIA,EAAEuC,MAAMzC,EAAE+E,QAAQlC,EAAE7C,EAAEgF,gBAAgB,WAAWxC,EAAEyC,YAAYzC,EAAE2B,QAAQnE,EAAEkF,iBAAiBT,EAAEjC,EAAE2B,QAAQM,IAAIzE,EAAEmF,KAAK3C,EAAE4C,MAAM,aCSj4B,MAAMC,EAAWC,EAAOD,SAElBE,EAASrD,OAAO,UAChBsD,EAAOtD,OAAO,QAEpB,MAAM8B,EACLyB,cACCzD,KAAKwD,GAAQ,GAEb,MAAME,EAAYC,UAAU,GACtBC,EAAUD,UAAU,GAEpBE,EAAU,GAChB,IAAIC,EAAO,EAEX,GAAIJ,EAAW,CACd,MAAMjD,EAAIiD,EACJ/E,EAASoF,OAAOtD,EAAE9B,QACxB,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAQD,IAAK,CAChC,MAAMsF,EAAUvD,EAAE/B,GAClB,IAAIuF,EAEHA,EADGD,aAAmBE,OACbF,EACCG,YAAYC,OAAOJ,GACpBE,OAAOG,KAAKL,EAAQC,OAAQD,EAAQM,WAAYN,EAAQO,YACvDP,aAAmBG,YACpBD,OAAOG,KAAKL,GACXA,aAAmBhC,EACpBgC,EAAQT,GAERW,OAAOG,KAAwB,iBAAZL,EAAuBA,EAAUQ,OAAOR,IAErEF,GAAQG,EAAOtF,OACfkF,EAAQlD,KAAKsD,IAIfjE,KAAKuD,GAAUW,OAAOO,OAAOZ,GAE7B,IAAIa,EAAOd,QAA4Be,IAAjBf,EAAQc,MAAsBF,OAAOZ,EAAQc,MAAMnC,cACrEmC,IAAS,mBAAmBE,KAAKF,KACpC1E,KAAKwD,GAAQkB,GAGfZ,WACC,OAAO9D,KAAKuD,GAAQ5E,OAErB+F,WACC,OAAO1E,KAAKwD,GAEbC,OACC,OAAOvE,QAAQC,QAAQa,KAAKuD,GAAQsB,YAErCpB,cACC,MAAMqB,EAAM9E,KAAKuD,GACXwB,EAAKD,EAAIb,OAAOe,MAAMF,EAAIR,WAAYQ,EAAIR,WAAaQ,EAAIP,YACjE,OAAOrF,QAAQC,QAAQ4F,GAExBtB,SACC,MAAMwB,EAAW,IAAI5B,EAIrB,OAHA4B,EAASC,MAAQ,aACjBD,EAAStE,KAAKX,KAAKuD,IACnB0B,EAAStE,KAAK,MACPsE,EAERxB,WACC,MAAO,gBAERA,QACC,MAAMK,EAAO9D,KAAK8D,KAEZqB,EAAQxB,UAAU,GAClByB,EAAMzB,UAAU,GACtB,IAAI0B,EAAeC,EAElBD,OADaV,IAAVQ,EACa,EACNA,EAAQ,EACFI,KAAKC,IAAI1B,EAAOqB,EAAO,GAEvBI,KAAKE,IAAIN,EAAOrB,GAGhCwB,OADWX,IAARS,EACWtB,EACJsB,EAAM,EACFG,KAAKC,IAAI1B,EAAOsB,EAAK,GAErBG,KAAKE,IAAIL,EAAKtB,GAE7B,MAAM4B,EAAOH,KAAKC,IAAIF,EAAcD,EAAe,GAG7CM,EADS3F,KAAKuD,GACQyB,MAAMK,EAAeA,EAAgBK,GAC3D3D,EAAO,IAAIC,EAAK,GAAI,CAAE0C,KAAMf,UAAU,KAE5C,OADA5B,EAAKwB,GAAUoC,EACR5D,GA+BT,SAAS6D,EAAWC,EAASnB,EAAMoB,GACjCC,MAAMxH,KAAKyB,KAAM6F,GAEjB7F,KAAK6F,QAAUA,EACf7F,KAAK0E,KAAOA,EAGRoB,IACF9F,KAAKgG,KAAOhG,KAAKiG,MAAQH,EAAYE,MAIvCD,MAAMG,kBAAkBlG,KAAMA,KAAKmG,aAOrC,IAAIC,EA9CJhI,OAAOiI,iBAAiBrE,EAAK3D,UAAW,CACvCyF,KAAM,CAAEwC,YAAY,GACpB5B,KAAM,CAAE4B,YAAY,GACpBtB,MAAO,CAAEsB,YAAY,KAGtBlI,OAAOmI,eAAevE,EAAK3D,UAAW6B,OAAOsG,YAAa,CACzDlH,MAAO,OACPmH,UAAU,EACVH,YAAY,EACZI,cAAc,IAgCfd,EAAWvH,UAAYD,OAAOuI,OAAOZ,MAAM1H,WAC3CuH,EAAWvH,UAAU8H,YAAcP,EACnCA,EAAWvH,UAAUuI,KAAO,aAG5B,IACCR,EAAUS,QAAQ,YAAYT,QAC7B,MAAOnI,IAET,MAAM6I,EAAY5G,OAAO,kBAGnB6G,EAAczD,EAAOyD,YAW3B,SAASC,EAAK5D,GACb,IAAI6D,EAAQjH,KAERkH,EAAOvD,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,GAAK,GAC3EwD,EAAYD,EAAKpD,KAErB,IAAIA,OAAqBa,IAAdwC,EAA0B,EAAIA,EACzC,IAAIC,EAAeF,EAAKG,QACxB,IAAIA,OAA2B1C,IAAjByC,EAA6B,EAAIA,EAEnC,MAARhE,EAEHA,EAAO,KACGkE,EAAkBlE,GAE5BA,EAAOc,OAAOG,KAAKjB,EAAKyB,YACd0C,EAAOnE,IAAkBc,OAAOsD,SAASpE,KAA2D,yBAAzChF,OAAOC,UAAUwG,SAAStG,KAAK6E,GAEpGA,EAAOc,OAAOG,KAAKjB,GACTe,YAAYC,OAAOhB,GAE7BA,EAAOc,OAAOG,KAAKjB,EAAKa,OAAQb,EAAKkB,WAAYlB,EAAKmB,YAC5CnB,aAAgBE,IAG1BF,EAAOc,OAAOG,KAAKG,OAAOpB,MAE3BpD,KAAK8G,GAAa,CACjB1D,KAAAA,EACAqE,WAAW,EACXC,MAAO,MAER1H,KAAK8D,KAAOA,EACZ9D,KAAKqH,QAAUA,EAEXjE,aAAgBE,GACnBF,EAAKuE,GAAG,SAAS,SAAUC,GAC1B,MAAMF,EAAqB,eAAbE,EAAIhB,KAAwBgB,EAAM,IAAIhC,EAAW,+CAA+CqB,EAAMzF,QAAQoG,EAAI/B,UAAW,SAAU+B,GACrJX,EAAMH,GAAWY,MAAQA,KA0H5B,SAASG,IACR,IAAIC,EAAS9H,KAEb,GAAIA,KAAK8G,GAAWW,UACnB,OAAOT,EAAK9H,QAAQE,OAAO,IAAIgB,UAAU,0BAA0BJ,KAAKwB,QAKzE,GAFAxB,KAAK8G,GAAWW,WAAY,EAExBzH,KAAK8G,GAAWY,MACnB,OAAOV,EAAK9H,QAAQE,OAAOY,KAAK8G,GAAWY,OAG5C,IAAItE,EAAOpD,KAAKoD,KAGhB,GAAa,OAATA,EACH,OAAO4D,EAAK9H,QAAQC,QAAQ+E,OAAO6D,MAAM,IAS1C,GALIR,EAAOnE,KACVA,EAAOA,EAAK4E,UAIT9D,OAAOsD,SAASpE,GACnB,OAAO4D,EAAK9H,QAAQC,QAAQiE,GAI7B,KAAMA,aAAgBE,GACrB,OAAO0D,EAAK9H,QAAQC,QAAQ+E,OAAO6D,MAAM,IAK1C,IAAIE,EAAQ,GACRC,EAAa,EACbC,GAAQ,EAEZ,OAAO,IAAInB,EAAK9H,SAAQ,SAAUC,EAASC,GAC1C,IAAIgJ,EAGAN,EAAOT,UACVe,EAAaC,YAAW,WACvBF,GAAQ,EACR/I,EAAO,IAAIwG,EAAW,0CAA0CkC,EAAOtG,aAAasG,EAAOT,aAAc,mBACvGS,EAAOT,UAIXjE,EAAKuE,GAAG,SAAS,SAAUC,GACT,eAAbA,EAAIhB,MAEPuB,GAAQ,EACR/I,EAAOwI,IAGPxI,EAAO,IAAIwG,EAAW,+CAA+CkC,EAAOtG,QAAQoG,EAAI/B,UAAW,SAAU+B,OAI/GxE,EAAKuE,GAAG,QAAQ,SAAUW,GACzB,IAAIH,GAAmB,OAAVG,EAAb,CAIA,GAAIR,EAAOhE,MAAQoE,EAAaI,EAAM3J,OAASmJ,EAAOhE,KAGrD,OAFAqE,GAAQ,OACR/I,EAAO,IAAIwG,EAAW,mBAAmBkC,EAAOtG,mBAAmBsG,EAAOhE,OAAQ,aAInFoE,GAAcI,EAAM3J,OACpBsJ,EAAMtH,KAAK2H,OAGZlF,EAAKuE,GAAG,OAAO,WACd,IAAIQ,EAAJ,CAIAI,aAAaH,GAEb,IACCjJ,EAAQ+E,OAAOO,OAAOwD,EAAOC,IAC5B,MAAON,GAERxI,EAAO,IAAIwG,EAAW,kDAAkDkC,EAAOtG,QAAQoG,EAAI/B,UAAW,SAAU+B,YA8EpH,SAASN,EAAkBkB,GAE1B,MAAmB,iBAARA,GAA0C,mBAAfA,EAAIC,QAA+C,mBAAfD,EAAIE,QAA4C,mBAAZF,EAAIlG,KAA4C,mBAAfkG,EAAIG,QAA4C,mBAAZH,EAAIhG,KAAyC,mBAAZgG,EAAII,MAKxL,oBAAzBJ,EAAIrC,YAAYS,MAAsE,6BAAxCxI,OAAOC,UAAUwG,SAAStG,KAAKiK,IAA2D,mBAAbA,EAAIK,MAQvI,SAAStB,EAAOiB,GACf,MAAsB,iBAARA,GAA+C,mBAApBA,EAAIM,aAAkD,iBAAbN,EAAI9D,MAA2C,mBAAf8D,EAAIR,QAAoD,mBAApBQ,EAAIrC,aAA8D,iBAAzBqC,EAAIrC,YAAYS,MAAqB,gBAAgBhC,KAAK4D,EAAIrC,YAAYS,OAAS,gBAAgBhC,KAAK4D,EAAItI,OAAOsG,cASnT,SAAStE,EAAM6G,GACd,IAAIC,EAAIC,EACJ7F,EAAO2F,EAAS3F,KAGpB,GAAI2F,EAASG,SACZ,MAAM,IAAInD,MAAM,sCAgBjB,OAXI3C,aAAgBE,GAAsC,mBAArBF,EAAK+F,cAEzCH,EAAK,IAAIjC,EACTkC,EAAK,IAAIlC,EACT3D,EAAKgG,KAAKJ,GACV5F,EAAKgG,KAAKH,GAEVF,EAASjC,GAAW1D,KAAO4F,EAC3B5F,EAAO6F,GAGD7F,EAYR,SAASiG,EAAmBjG,GAC3B,OAAa,OAATA,EAEI,KACmB,iBAATA,EAEV,2BACGkE,EAAkBlE,GAErB,kDACGmE,EAAOnE,GAEVA,EAAKsB,MAAQ,KACVR,OAAOsD,SAASpE,IAGyB,yBAAzChF,OAAOC,UAAUwG,SAAStG,KAAK6E,IAG/Be,YAAYC,OAAOhB,GAJtB,KAO+B,mBAArBA,EAAK+F,YAEf,gCAAgC/F,EAAK+F,gBAClC/F,aAAgBE,EAGnB,KAGA,2BAaT,SAASgG,EAAcP,GACtB,MAAM3F,EAAO2F,EAAS3F,KAGtB,OAAa,OAATA,EAEI,EACGmE,EAAOnE,GACVA,EAAKU,KACFI,OAAOsD,SAASpE,GAEnBA,EAAKzE,OACFyE,GAAsC,mBAAvBA,EAAKmG,gBAE1BnG,EAAKoG,mBAAsD,GAAjCpG,EAAKoG,kBAAkB7K,QACrDyE,EAAKqG,gBAAkBrG,EAAKqG,kBAEpBrG,EAAKmG,gBAKN,KA1ZTvC,EAAK3I,UAAY,CAChB+E,WACC,OAAOpD,KAAK8G,GAAW1D,MAGxB8F,eACC,OAAOlJ,KAAK8G,GAAWW,WAQxBhE,cACC,OAAOoE,EAAYtJ,KAAKyB,MAAMJ,MAAK,SAAUkF,GAC5C,OAAOA,EAAIb,OAAOe,MAAMF,EAAIR,WAAYQ,EAAIR,WAAaQ,EAAIP,gBAS/Dd,OACC,IAAIiG,EAAK1J,KAAKmC,SAAWnC,KAAKmC,QAAQG,IAAI,iBAAmB,GAC7D,OAAOuF,EAAYtJ,KAAKyB,MAAMJ,MAAK,SAAUkF,GAC5C,OAAO1G,OAAOuL,OAEd,IAAI3H,EAAK,GAAI,CACZ0C,KAAMgF,EAAGnH,gBACN,CACHkB,CAACF,GAASuB,QAUbrB,OACC,IAAImG,EAAS5J,KAEb,OAAO6H,EAAYtJ,KAAKyB,MAAMJ,MAAK,SAAUqE,GAC5C,IACC,OAAOpC,KAAKC,MAAMmC,EAAOY,YACxB,MAAO+C,GACR,OAAOZ,EAAK9H,QAAQE,OAAO,IAAIwG,EAAW,iCAAiCgE,EAAOpI,eAAeoG,EAAI/B,UAAW,sBAUnHpC,OACC,OAAOoE,EAAYtJ,KAAKyB,MAAMJ,MAAK,SAAUqE,GAC5C,OAAOA,EAAOY,eAShBpB,SACC,OAAOoE,EAAYtJ,KAAKyB,OASzByD,gBACC,IAAIoG,EAAS7J,KAEb,OAAO6H,EAAYtJ,KAAKyB,MAAMJ,MAAK,SAAUqE,GAC5C,OAwIH,SAAqBA,EAAQ9B,GAC5B,GAAuB,mBAAZiE,EACV,MAAM,IAAIL,MAAM,gFAGjB,MAAM2D,EAAKvH,EAAQG,IAAI,gBACvB,IACIwH,EAAKC,EADLC,EAAU,QAIVN,IACHI,EAAM,mBAAmBG,KAAKP,IAI/BK,EAAM9F,EAAOe,MAAM,EAAG,MAAMH,YAGvBiF,GAAOC,IACXD,EAAM,iCAAiCG,KAAKF,KAIxCD,GAAOC,IACXD,EAAM,yEAAyEG,KAAKF,GAC/ED,IACJA,EAAM,yEAAyEG,KAAKF,GAChFD,GACHA,EAAII,OAIFJ,IACHA,EAAM,gBAAgBG,KAAKH,EAAII,UAK5BJ,GAAOC,IACXD,EAAM,mCAAmCG,KAAKF,IAI3CD,IACHE,EAAUF,EAAII,MAIE,WAAZF,GAAoC,QAAZA,IAC3BA,EAAU,YAKZ,OAAO5D,EAAQnC,EAAQ,QAAS+F,GAASnF,WA9LhCsF,CAAYlG,EAAQ4F,EAAO1H,cAMrC/D,OAAOiI,iBAAiBW,EAAK3I,UAAW,CACvC+E,KAAM,CAAEkD,YAAY,GACpB4C,SAAU,CAAE5C,YAAY,GACxBwC,YAAa,CAAExC,YAAY,GAC3BvE,KAAM,CAAEuE,YAAY,GACpB1E,KAAM,CAAE0E,YAAY,GACpB5E,KAAM,CAAE4E,YAAY,KAGrBU,EAAKoD,MAAQ,SAAUC,GACtB,IAAK,MAAMzD,KAAQxI,OAAOkM,oBAAoBtD,EAAK3I,WAElD,KAAMuI,KAAQyD,GAAQ,CACrB,MAAME,EAAOnM,OAAOoM,yBAAyBxD,EAAK3I,UAAWuI,GAC7DxI,OAAOmI,eAAe8D,EAAOzD,EAAM2D,KA+UtCvD,EAAK9H,QAAUuL,OAAOvL,QAQtB,MAAMwL,EAAoB,gCACpBC,EAAyB,0BAE/B,SAASC,EAAahE,GAErB,GADAA,EAAO,GAAGA,IACN8D,EAAkB9F,KAAKgC,IAAkB,KAATA,EACnC,MAAM,IAAIxG,UAAU,GAAGwG,qCAIzB,SAASiE,EAAcvL,GAEtB,GADAA,EAAQ,GAAGA,IACPqL,EAAuB/F,KAAKtF,GAC/B,MAAM,IAAIc,UAAU,GAAGd,sCAYzB,SAASwL,EAAKC,EAAKnE,GAClBA,EAAOA,EAAKrE,cACZ,IAAK,MAAMyI,KAAOD,EACjB,GAAIC,EAAIzI,gBAAkBqE,EACzB,OAAOoE,EAMV,MAAMC,EAAM/K,OAAO,OACnB,MAAMgL,EAOLzH,cACC,IAAI0H,EAAOxH,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,QAAKgB,EAI/E,GAFA3E,KAAKiL,GAAO7M,OAAOuI,OAAO,MAEtBwE,aAAgBD,EAApB,CACC,MAAME,EAAaD,EAAKE,MAClBC,EAAclN,OAAOgE,KAAKgJ,GAEhC,IAAK,MAAMG,KAAcD,EACxB,IAAK,MAAMhM,KAAS8L,EAAWG,GAC9BvL,KAAKyI,OAAO8C,EAAYjM,QAS3B,GAAY,MAAR6L,OAAqB,CAAA,GAAoB,iBAATA,EA+BnC,MAAM,IAAI/K,UAAU,0CA/BkC,CACtD,MAAMuC,EAASwI,EAAKjL,OAAOsL,UAC3B,GAAc,MAAV7I,EAAgB,CACnB,GAAsB,mBAAXA,EACV,MAAM,IAAIvC,UAAU,iCAKrB,MAAMqL,EAAQ,GACd,IAAK,MAAMC,KAAQP,EAAM,CACxB,GAAoB,iBAATO,GAAsD,mBAA1BA,EAAKxL,OAAOsL,UAClD,MAAM,IAAIpL,UAAU,qCAErBqL,EAAM9K,KAAKgL,MAAMtH,KAAKqH,IAGvB,IAAK,MAAMA,KAAQD,EAAO,CACzB,GAAoB,IAAhBC,EAAK/M,OACR,MAAM,IAAIyB,UAAU,+CAErBJ,KAAKyI,OAAOiD,EAAK,GAAIA,EAAK,UAI3B,IAAK,MAAMV,KAAO5M,OAAOgE,KAAK+I,GAAO,CACpC,MAAM7L,EAAQ6L,EAAKH,GACnBhL,KAAKyI,OAAOuC,EAAK1L,MAcrBmE,IAAImD,GAEHgE,EADAhE,EAAO,GAAGA,KAEV,MAAMoE,EAAMF,EAAK9K,KAAKiL,GAAMrE,GAC5B,YAAYjC,IAARqG,EACI,KAGDhL,KAAKiL,GAAKD,GAAKY,KAAK,MAU5BnI,QAAQoI,GACP,IAAI/M,EAAU6E,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,QAAKgB,EAE9E8G,EAAQK,EAAW9L,MACnBtB,EAAI,EACR,KAAOA,EAAI+M,EAAM9M,QAAQ,CACxB,IAAIoN,EAAWN,EAAM/M,GACrB,MAAMkI,EAAOmF,EAAS,GAChBzM,EAAQyM,EAAS,GAEvBF,EAAStN,KAAKO,EAASQ,EAAOsH,EAAM5G,MACpCyL,EAAQK,EAAW9L,MACnBtB,KAWF+E,IAAImD,EAAMtH,GAETA,EAAQ,GAAGA,IACXsL,EAFAhE,EAAO,GAAGA,KAGViE,EAAcvL,GACd,MAAM0L,EAAMF,EAAK9K,KAAKiL,GAAMrE,GAC5B5G,KAAKiL,QAAatG,IAARqG,EAAoBA,EAAMpE,GAAQ,CAACtH,GAU9CmE,OAAOmD,EAAMtH,GAEZA,EAAQ,GAAGA,IACXsL,EAFAhE,EAAO,GAAGA,KAGViE,EAAcvL,GACd,MAAM0L,EAAMF,EAAK9K,KAAKiL,GAAMrE,QAChBjC,IAARqG,EACHhL,KAAKiL,GAAKD,GAAKrK,KAAKrB,GAEpBU,KAAKiL,GAAKrE,GAAQ,CAACtH,GAUrBmE,IAAImD,GAGH,OADAgE,EADAhE,EAAO,GAAGA,UAEuBjC,IAA1BmG,EAAK9K,KAAKiL,GAAMrE,GASxBnD,OAAOmD,GAENgE,EADAhE,EAAO,GAAGA,KAEV,MAAMoE,EAAMF,EAAK9K,KAAKiL,GAAMrE,QAChBjC,IAARqG,UACIhL,KAAKiL,GAAKD,GASnBvH,MACC,OAAOzD,KAAKiL,GAQbxH,OACC,OAAOuI,EAAsBhM,KAAM,OAQpCyD,SACC,OAAOuI,EAAsBhM,KAAM,SAUpCyD,CAACvD,OAAOsL,YACP,OAAOQ,EAAsBhM,KAAM,cAwBrC,SAAS8L,EAAW3J,GACnB,IAAI8J,EAAOtI,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,GAAK,YAE/E,MAAMvB,EAAOhE,OAAOgE,KAAKD,EAAQ8I,IAAMpC,OACvC,OAAOzG,EAAK2I,IAAa,QAATkB,EAAiB,SAAUC,GAC1C,OAAOA,EAAE3J,eACG,UAAT0J,EAAmB,SAAUC,GAChC,OAAO/J,EAAQ8I,GAAKiB,GAAGN,KAAK,OACzB,SAAUM,GACb,MAAO,CAACA,EAAE3J,cAAeJ,EAAQ8I,GAAKiB,GAAGN,KAAK,SA9BhDV,EAAQ7M,UAAUgE,QAAU6I,EAAQ7M,UAAU6B,OAAOsL,UAErDpN,OAAOmI,eAAe2E,EAAQ7M,UAAW6B,OAAOsG,YAAa,CAC5DlH,MAAO,UACPmH,UAAU,EACVH,YAAY,EACZI,cAAc,IAGftI,OAAOiI,iBAAiB6E,EAAQ7M,UAAW,CAC1CiE,IAAK,CAAEgE,YAAY,GACnB6F,QAAS,CAAE7F,YAAY,GACvBsC,IAAK,CAAEtC,YAAY,GACnBmC,OAAQ,CAAEnC,YAAY,GACtB9D,IAAK,CAAE8D,YAAY,GACnBoC,OAAQ,CAAEpC,YAAY,GACtBlE,KAAM,CAAEkE,YAAY,GACpB8F,OAAQ,CAAE9F,YAAY,GACtBjE,QAAS,CAAEiE,YAAY,KAgBxB,MAAM+F,EAAWnM,OAAO,YAExB,SAAS8L,EAAsBM,EAAQL,GACtC,MAAMT,EAAWpN,OAAOuI,OAAO4F,GAM/B,OALAf,EAASa,GAAY,CACpBC,OAAAA,EACAL,KAAAA,EACAO,MAAO,GAEDhB,EAGR,MAAMe,EAA2BnO,OAAOqO,eAAe,CACtDhJ,OAEC,IAAKzD,MAAQ5B,OAAOsO,eAAe1M,QAAUuM,EAC5C,MAAM,IAAInM,UAAU,4CAGrB,IAAIuM,EAAY3M,KAAKqM,GACrB,MAAMC,EAASK,EAAUL,OACnBL,EAAOU,EAAUV,KACjBO,EAAQG,EAAUH,MAElBJ,EAASN,EAAWQ,EAAQL,GAElC,OAAIO,GADQJ,EAAOzN,OAEX,CACNW,WAAOqF,EACPhF,MAAM,IAIRK,KAAKqM,GAAUG,MAAQA,EAAQ,EAExB,CACNlN,MAAO8M,EAAOI,GACd7M,MAAM,MAGNvB,OAAOsO,eAAetO,OAAOsO,eAAe,GAAGxM,OAAOsL,eAezD,SAASoB,EAA4BzK,GACpC,MAAMqG,EAAMpK,OAAOuL,OAAO,CAAEkD,UAAW,MAAQ1K,EAAQ8I,IAIjD6B,EAAgBhC,EAAK3I,EAAQ8I,GAAM,QAKzC,YAJsBtG,IAAlBmI,IACHtE,EAAIsE,GAAiBtE,EAAIsE,GAAe,IAGlCtE,EAvBRpK,OAAOmI,eAAegG,EAA0BrM,OAAOsG,YAAa,CACnElH,MAAO,kBACPmH,UAAU,EACVH,YAAY,EACZI,cAAc,IAqDf,MAAMqG,GAAc7M,OAAO,sBAGrB8M,GAAeC,EAAKD,aAS1B,MAAME,GACLzJ,cACC,IAAIL,EAAOO,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,GAAK,KAC3EwJ,EAAOxJ,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,GAAK,GAE/EqD,EAAKzI,KAAKyB,KAAMoD,EAAM+J,GAEtB,MAAM7L,EAAS6L,EAAK7L,QAAU,IACxBa,EAAU,IAAI+I,EAAQiC,EAAKhL,SAEjC,GAAY,MAARiB,IAAiBjB,EAAQK,IAAI,gBAAiB,CACjD,MAAM4K,EAAc/D,EAAmBjG,GACnCgK,GACHjL,EAAQsG,OAAO,eAAgB2E,GAIjCpN,KAAK+M,IAAe,CACnBvL,IAAK2L,EAAK3L,IACVF,OAAAA,EACAC,WAAY4L,EAAK5L,YAAcyL,GAAa1L,GAC5Ca,QAAAA,EACAkL,QAASF,EAAKE,SAIhB7L,UACC,OAAOxB,KAAK+M,IAAavL,KAAO,GAGjCF,aACC,OAAOtB,KAAK+M,IAAazL,OAM1BD,SACC,OAAOrB,KAAK+M,IAAazL,QAAU,KAAOtB,KAAK+M,IAAazL,OAAS,IAGtEgM,iBACC,OAAOtN,KAAK+M,IAAaM,QAAU,EAGpC9L,iBACC,OAAOvB,KAAK+M,IAAaxL,WAG1BY,cACC,OAAOnC,KAAK+M,IAAa5K,QAQ1BsB,QACC,OAAO,IAAIyJ,GAAShL,EAAMlC,MAAO,CAChCwB,IAAKxB,KAAKwB,IACVF,OAAQtB,KAAKsB,OACbC,WAAYvB,KAAKuB,WACjBY,QAASnC,KAAKmC,QACdd,GAAIrB,KAAKqB,GACTiM,WAAYtN,KAAKsN,cAKpBtG,EAAKoD,MAAM8C,GAAS7O,WAEpBD,OAAOiI,iBAAiB6G,GAAS7O,UAAW,CAC3CmD,IAAK,CAAE8E,YAAY,GACnBhF,OAAQ,CAAEgF,YAAY,GACtBjF,GAAI,CAAEiF,YAAY,GAClBgH,WAAY,CAAEhH,YAAY,GAC1B/E,WAAY,CAAE+E,YAAY,GAC1BnE,QAAS,CAAEmE,YAAY,GACvBpE,MAAO,CAAEoE,YAAY,KAGtBlI,OAAOmI,eAAe2G,GAAS7O,UAAW6B,OAAOsG,YAAa,CAC7DlH,MAAO,WACPmH,UAAU,EACVH,YAAY,EACZI,cAAc,IAGf,MAAM6G,GAAcrN,OAAO,qBAGrBsN,GAAYC,EAAI3L,MAChB4L,GAAaD,EAAIE,OAEjBC,GAA6B,YAAatK,EAAOD,SAAShF,UAQhE,SAASwP,GAAUC,GAClB,MAAwB,iBAAVA,GAAoD,iBAAvBA,EAAMP,IAelD,MAAMQ,GACLtK,YAAYqK,GACX,IAEIE,EAFA7C,EAAOxH,UAAUhF,OAAS,QAAsBgG,IAAjBhB,UAAU,GAAmBA,UAAU,GAAK,GAK1EkK,GAAUC,GAYdE,EAAYR,GAAUM,EAAMtM,MAP3BwM,EAJGF,GAASA,EAAMG,KAINT,GAAUM,EAAMG,MAGhBT,GAAU,GAAGM,KAE1BA,EAAQ,IAKT,IAAInL,EAASwI,EAAKxI,QAAUmL,EAAMnL,QAAU,MAG5C,GAFAA,EAASA,EAAOuL,eAEE,MAAb/C,EAAK/H,MAAgByK,GAAUC,IAAyB,OAAfA,EAAM1K,QAA8B,QAAXT,GAA+B,SAAXA,GAC1F,MAAM,IAAIvC,UAAU,iDAGrB,IAAI+N,EAAyB,MAAbhD,EAAK/H,KAAe+H,EAAK/H,KAAOyK,GAAUC,IAAyB,OAAfA,EAAM1K,KAAgBlB,EAAM4L,GAAS,KAEzG9G,EAAKzI,KAAKyB,KAAMmO,EAAW,CAC1B9G,QAAS8D,EAAK9D,SAAWyG,EAAMzG,SAAW,EAC1CvD,KAAMqH,EAAKrH,MAAQgK,EAAMhK,MAAQ,IAGlC,MAAM3B,EAAU,IAAI+I,EAAQC,EAAKhJ,SAAW2L,EAAM3L,SAAW,IAE7D,GAAiB,MAAbgM,IAAsBhM,EAAQK,IAAI,gBAAiB,CACtD,MAAM4K,EAAc/D,EAAmB8E,GACnCf,GACHjL,EAAQsG,OAAO,eAAgB2E,GAIjC,IAAIgB,EAASP,GAAUC,GAASA,EAAMM,OAAS,KAG/C,GAFI,WAAYjD,IAAMiD,EAASjD,EAAKiD,QAEtB,MAAVA,IA5DN,SAAuBA,GACtB,MAAM/D,EAAQ+D,GAA4B,iBAAXA,GAAuBhQ,OAAOsO,eAAe0B,GAC5E,SAAU/D,GAAoC,gBAA3BA,EAAMlE,YAAYS,MA0DbyH,CAAcD,GACpC,MAAM,IAAIhO,UAAU,mDAGrBJ,KAAKuN,IAAe,CACnB5K,OAAAA,EACA2L,SAAUnD,EAAKmD,UAAYR,EAAMQ,UAAY,SAC7CnM,QAAAA,EACA6L,UAAAA,EACAI,OAAAA,GAIDpO,KAAKuO,YAAyB5J,IAAhBwG,EAAKoD,OAAuBpD,EAAKoD,YAA0B5J,IAAjBmJ,EAAMS,OAAuBT,EAAMS,OAAS,GACpGvO,KAAKwO,cAA6B7J,IAAlBwG,EAAKqD,SAAyBrD,EAAKqD,cAA8B7J,IAAnBmJ,EAAMU,UAAyBV,EAAMU,SACnGxO,KAAKqN,QAAUlC,EAAKkC,SAAWS,EAAMT,SAAW,EAChDrN,KAAKyO,MAAQtD,EAAKsD,OAASX,EAAMW,MAGlC9L,aACC,OAAO3C,KAAKuN,IAAa5K,OAG1BnB,UACC,OAAOkM,GAAW1N,KAAKuN,IAAaS,WAGrC7L,cACC,OAAOnC,KAAKuN,IAAapL,QAG1BmM,eACC,OAAOtO,KAAKuN,IAAae,SAG1BF,aACC,OAAOpO,KAAKuN,IAAaa,OAQ1B3K,QACC,OAAO,IAAIsK,GAAQ/N,OA0GrB,SAAS0O,GAAW7I,GAClBE,MAAMxH,KAAKyB,KAAM6F,GAEjB7F,KAAK0E,KAAO,UACZ1E,KAAK6F,QAAUA,EAGfE,MAAMG,kBAAkBlG,KAAMA,KAAKmG,aA7GrCa,EAAKoD,MAAM2D,GAAQ1P,WAEnBD,OAAOmI,eAAewH,GAAQ1P,UAAW6B,OAAOsG,YAAa,CAC5DlH,MAAO,UACPmH,UAAU,EACVH,YAAY,EACZI,cAAc,IAGftI,OAAOiI,iBAAiB0H,GAAQ1P,UAAW,CAC1CsE,OAAQ,CAAE2D,YAAY,GACtB9E,IAAK,CAAE8E,YAAY,GACnBnE,QAAS,CAAEmE,YAAY,GACvBgI,SAAU,CAAEhI,YAAY,GACxBpE,MAAO,CAAEoE,YAAY,GACrB8H,OAAQ,CAAE9H,YAAY,KAiGvBoI,GAAWrQ,UAAYD,OAAOuI,OAAOZ,MAAM1H,WAC3CqQ,GAAWrQ,UAAU8H,YAAcuI,GACnCA,GAAWrQ,UAAUuI,KAAO,aAG5B,MAAM+H,GAAgBrL,EAAOyD,YACvB6H,GAAcnB,EAAItO,QASxB,SAAS0P,GAAMrN,EAAK2L,GAGnB,IAAK0B,GAAM3P,QACV,MAAM,IAAI6G,MAAM,0EAMjB,OAHAiB,EAAK9H,QAAU2P,GAAM3P,QAGd,IAAI2P,GAAM3P,SAAQ,SAAUC,EAASC,GAE3C,MAAM0P,EAAU,IAAIf,GAAQvM,EAAK2L,GAC3BvJ,EApHR,SAA+BkL,GAC9B,MAAMd,EAAYc,EAAQvB,IAAaS,UACjC7L,EAAU,IAAI+I,EAAQ4D,EAAQvB,IAAapL,SAQjD,GALKA,EAAQK,IAAI,WAChBL,EAAQyG,IAAI,SAAU,QAIlBoF,EAAUe,WAAaf,EAAUgB,SACrC,MAAM,IAAI5O,UAAU,oCAGrB,IAAK,YAAYwE,KAAKoJ,EAAUe,UAC/B,MAAM,IAAI3O,UAAU,wCAGrB,GAAI0O,EAAQV,QAAUU,EAAQ1L,gBAAgBE,EAAOD,WAAauK,GACjE,MAAM,IAAI7H,MAAM,mFAIjB,IAAIkJ,EAAqB,KAIzB,GAHoB,MAAhBH,EAAQ1L,MAAgB,gBAAgBwB,KAAKkK,EAAQnM,UACxDsM,EAAqB,KAEF,MAAhBH,EAAQ1L,KAAc,CACzB,MAAM8L,EAAa5F,EAAcwF,GACP,iBAAfI,IACVD,EAAqBzK,OAAO0K,IAG1BD,GACH9M,EAAQyG,IAAI,iBAAkBqG,GAI1B9M,EAAQK,IAAI,eAChBL,EAAQyG,IAAI,aAAc,0DAIvBkG,EAAQN,WAAarM,EAAQK,IAAI,oBACpCL,EAAQyG,IAAI,kBAAmB,gBAGhC,IAAI6F,EAAQK,EAAQL,MAYpB,MAXqB,mBAAVA,IACVA,EAAQA,EAAMT,IAGV7L,EAAQK,IAAI,eAAkBiM,GAClCtM,EAAQyG,IAAI,aAAc,SAMpBxK,OAAOuL,OAAO,GAAIqE,EAAW,CACnCrL,OAAQmM,EAAQnM,OAChBR,QAASyK,EAA4BzK,GACrCsM,MAAAA,IAsDgBU,CAAsBL,GAEhC3L,GAA6B,WAArBS,EAAQmL,SAAwBK,EAAQnC,GAAM6B,QACtDV,EAASU,EAAQV,OAEvB,IAAInM,EAAW,KAEf,MAAMkG,EAAQ,WACb,IAAIT,EAAQ,IAAIgH,GAAW,+BAC3BtP,EAAOsI,GACHoH,EAAQ1L,MAAQ0L,EAAQ1L,gBAAgBE,EAAOD,UAClDyL,EAAQ1L,KAAKiM,QAAQ3H,GAEjBzF,GAAaA,EAASmB,MAC3BnB,EAASmB,KAAKkM,KAAK,QAAS5H,IAG7B,GAAI0G,GAAUA,EAAOmB,QAEpB,YADApH,IAID,MAAMqH,EAAmB,WACxBrH,IACAsH,KAIKC,EAAMvM,EAAKS,GACjB,IAAI+L,EAMJ,SAASF,IACRC,EAAIvH,QACAiG,GAAQA,EAAOwB,oBAAoB,QAASJ,GAChDjH,aAAaoH,GAPVvB,GACHA,EAAOyB,iBAAiB,QAASL,GAS9BV,EAAQzH,SACXqI,EAAII,KAAK,UAAU,SAAUC,GAC5BJ,EAAatH,YAAW,WACvBjJ,EAAO,IAAIwG,EAAW,uBAAuBkJ,EAAQtN,MAAO,oBAC5DiO,MACEX,EAAQzH,YAIbqI,EAAI/H,GAAG,SAAS,SAAUC,GACzBxI,EAAO,IAAIwG,EAAW,cAAckJ,EAAQtN,uBAAuBoG,EAAI/B,UAAW,SAAU+B,IAC5F6H,OAGDC,EAAI/H,GAAG,YAAY,SAAUmC,GAC5BvB,aAAaoH,GAEb,MAAMxN,EAlcT,SAA8BqG,GAC7B,MAAMrG,EAAU,IAAI+I,EACpB,IAAK,MAAMtE,KAAQxI,OAAOgE,KAAKoG,GAC9B,IAAIkC,EAAkB9F,KAAKgC,GAG3B,GAAI+E,MAAMqE,QAAQxH,EAAI5B,IACrB,IAAK,MAAMqJ,KAAOzH,EAAI5B,GACjB+D,EAAuB/F,KAAKqL,UAGLtL,IAAvBxC,EAAQ8I,GAAKrE,GAChBzE,EAAQ8I,GAAKrE,GAAQ,CAACqJ,GAEtB9N,EAAQ8I,GAAKrE,GAAMjG,KAAKsP,SAGftF,EAAuB/F,KAAK4D,EAAI5B,MAC3CzE,EAAQ8I,GAAKrE,GAAQ,CAAC4B,EAAI5B,KAG5B,OAAOzE,EA6aW+N,CAAqBpG,EAAI3H,SAGzC,GAAI0M,GAAMsB,WAAWrG,EAAIsG,YAAa,CAErC,MAAMC,EAAWlO,EAAQG,IAAI,YAGvBgO,EAA2B,OAAbD,EAAoB,KAAOzB,GAAYE,EAAQtN,IAAK6O,GAGxE,OAAQvB,EAAQR,UACf,IAAK,QAGJ,OAFAlP,EAAO,IAAIwG,EAAW,0EAA0EkJ,EAAQtN,MAAO,qBAC/GiO,IAED,IAAK,SAEJ,GAAoB,OAAhBa,EAEH,IACCnO,EAAQyG,IAAI,WAAY0H,GACvB,MAAO1I,GAERxI,EAAOwI,GAGT,MACD,IAAK,SAEJ,GAAoB,OAAhB0I,EACH,MAID,GAAIxB,EAAQzB,SAAWyB,EAAQP,OAG9B,OAFAnP,EAAO,IAAIwG,EAAW,gCAAgCkJ,EAAQtN,MAAO,sBACrEiO,IAMD,MAAMc,EAAc,CACnBpO,QAAS,IAAI+I,EAAQ4D,EAAQ3M,SAC7BoM,OAAQO,EAAQP,OAChBlB,QAASyB,EAAQzB,QAAU,EAC3BoB,MAAOK,EAAQL,MACfD,SAAUM,EAAQN,SAClB7L,OAAQmM,EAAQnM,OAChBS,KAAM0L,EAAQ1L,KACdgL,OAAQU,EAAQV,OAChB/G,QAASyH,EAAQzH,QACjBvD,KAAMgL,EAAQhL,MAIf,OAAuB,MAAnBgG,EAAIsG,YAAsBtB,EAAQ1L,MAAmC,OAA3BkG,EAAcwF,IAC3D1P,EAAO,IAAIwG,EAAW,2DAA4D,8BAClF6J,MAKsB,MAAnB3F,EAAIsG,aAA0C,MAAnBtG,EAAIsG,YAAyC,MAAnBtG,EAAIsG,YAA0C,SAAnBtB,EAAQnM,UAC3F4N,EAAY5N,OAAS,MACrB4N,EAAYnN,UAAOuB,EACnB4L,EAAYpO,QAAQuG,OAAO,mBAI5BvJ,EAAQ0P,GAAM,IAAId,GAAQuC,EAAaC,UACvCd,MAMH3F,EAAIgG,KAAK,OAAO,WACX1B,GAAQA,EAAOwB,oBAAoB,QAASJ,MAEjD,IAAIpM,EAAO0G,EAAIV,KAAK,IAAIuF,IAExB,MAAM6B,EAAmB,CACxBhP,IAAKsN,EAAQtN,IACbF,OAAQwI,EAAIsG,WACZ7O,WAAYuI,EAAI2G,cAChBtO,QAASA,EACT2B,KAAMgL,EAAQhL,KACduD,QAASyH,EAAQzH,QACjBgG,QAASyB,EAAQzB,SAIZqD,EAAUvO,EAAQG,IAAI,oBAU5B,IAAKwM,EAAQN,UAA+B,SAAnBM,EAAQnM,QAAiC,OAAZ+N,GAAuC,MAAnB5G,EAAIsG,YAAyC,MAAnBtG,EAAIsG,WAGvG,OAFAnO,EAAW,IAAIiL,GAAS9J,EAAMoN,QAC9BrR,EAAQ8C,GAST,MAAM0O,EAAc,CACnBC,MAAOC,EAAKC,aACZC,YAAaF,EAAKC,cAInB,GAAe,QAAXJ,GAAgC,UAAXA,EAIxB,OAHAtN,EAAOA,EAAKgG,KAAKyH,EAAKG,aAAaL,IACnC1O,EAAW,IAAIiL,GAAS9J,EAAMoN,QAC9BrR,EAAQ8C,GAKT,GAAe,WAAXyO,GAAmC,aAAXA,EAA5B,CAkBA,GAAe,MAAXA,GAA0D,mBAAhCG,EAAKI,uBAIlC,OAHA7N,EAAOA,EAAKgG,KAAKyH,EAAKI,0BACtBhP,EAAW,IAAIiL,GAAS9J,EAAMoN,QAC9BrR,EAAQ8C,GAKTA,EAAW,IAAIiL,GAAS9J,EAAMoN,GAC9BrR,EAAQ8C,OA3BR,CAGa6H,EAAIV,KAAK,IAAIuF,IACrBmB,KAAK,QAAQ,SAAUxH,GAGzBlF,EADyB,IAAV,GAAXkF,EAAM,IACHlF,EAAKgG,KAAKyH,EAAKK,iBAEf9N,EAAKgG,KAAKyH,EAAKM,oBAEvBlP,EAAW,IAAIiL,GAAS9J,EAAMoN,GAC9BrR,EAAQ8C,UAv8Bb,SAAuBmP,EAAMrI,GAC5B,MAAM3F,EAAO2F,EAAS3F,KAGT,OAATA,EAEHgO,EAAKhM,MACKmC,EAAOnE,GACjBA,EAAK4E,SAASoB,KAAKgI,GACTlN,OAAOsD,SAASpE,IAE1BgO,EAAKC,MAAMjO,GACXgO,EAAKhM,OAGLhC,EAAKgG,KAAKgI,GA08BVE,CAAc5B,EAAKZ,MASrBD,GAAMsB,WAAa,SAAUnK,GAC5B,OAAgB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAIxE6I,GAAM3P,QAAUuL,OAAOvL,2GClmDvB,SAAS2B,GAAE0Q,GAAG,OAAOA,GAAKA,EAAEC,SAAWD,MACvCE,GAAiBhH,EAAOoE,MAAQpE,EAAOoE,QACtB,oBAAT6C,QAAuB7Q,GAAE8Q,YAAgCnQ,EAAK2L,GACpE,OAAOtM,GAAE+Q,GAAF/Q,CAAyB2D,OAAOhD,GAAKsB,QAAQ,SAAS,YAAaqK"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/unfetch/dist/unfetch.module.js","../node_modules/node-fetch/lib/index.mjs","../node_modules/isomorphic-unfetch/index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError };\n","function r(m){return m && m.default || m;}\nmodule.exports = global.fetch = global.fetch || (\n\ttypeof process=='undefined' ? r(require('unfetch')) : (function(url, opts) {\n\t\treturn r(require('node-fetch'))(String(url).replace(/^\\/\\//g,'https://'), opts);\n\t})\n);\n"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","apply","__await","v","this","__asyncGenerator","Symbol","asyncIterator","TypeError","g","q","verb","n","a","b","push","resume","r","fulfill","settle","f","shift","XMLHttpRequest","o","u","ok","status","statusText","url","responseURL","text","responseText","json","JSON","parse","blob","Blob","response","clone","headers","keys","entries","get","toLowerCase","has","l","open","method","onload","getAllResponseHeaders","replace","onerror","withCredentials","credentials","setRequestHeader","send","body","Readable","Stream","BUFFER","TYPE","[object Object]","blobParts","arguments","options","buffers","size","Number","element","buffer","Buffer","ArrayBuffer","isView","from","byteOffset","byteLength","String","concat","type","undefined","test","toString","buf","ab","slice","readable","_read","start","end","relativeStart","relativeEnd","Math","max","min","span","slicedBuffer","FetchError","message","systemError","Error","code","errno","captureStackTrace","constructor","convert","defineProperties","enumerable","defineProperty","toStringTag","writable","configurable","create","name","require","INTERNALS","PassThrough","Body","_this","_ref","_ref$size","_ref$timeout","timeout","isURLSearchParams","isBlob","isBuffer","disturbed","error","on","err","consumeBody","_this4","alloc","stream","accum","accumBytes","abort","resTimeout","setTimeout","chunk","clearTimeout","obj","append","delete","getAll","set","sort","arrayBuffer","instance","p1","p2","bodyUsed","getBoundary","pipe","extractContentType","getTotalBytes","getLengthSync","_lengthRetrievers","hasKnownLength","ct","assign","_this2","_this3","res","str","charset","exec","pop","convertBody","mixIn","proto","getOwnPropertyNames","desc","getOwnPropertyDescriptor","global","invalidTokenRegex","invalidHeaderCharRegex","validateName","validateValue","find","map","key","MAP","Headers","init","rawHeaders","raw","headerNames","headerName","iterator","pairs","pair","Array","join","callback","getHeaders","_pairs$i","createHeadersIterator","kind","k","forEach","values","INTERNAL","target","HeadersIteratorPrototype","index","setPrototypeOf","getPrototypeOf","_INTERNAL","exportNodeCompatibleHeaders","__proto__","hostHeaderKey","INTERNALS$1","STATUS_CODES","http","Response","opts","contentType","counter","redirected","INTERNALS$2","parse_url","Url","format_url","format","streamDestructionSupported","isRequest","input","Request","parsedURL","href","toUpperCase","inputBody","signal","isAbortSignal","redirect","follow","compress","agent","AbortError","PassThrough$1","resolve_url","fetch","request","protocol","hostname","contentLengthValue","totalBytes","getNodeRequestOptions","https","destroy","emit","aborted","abortAndFinalize","finalize","req","reqTimeout","removeEventListener","addEventListener","once","socket","isArray","val","createHeadersLenient","isRedirect","statusCode","location","locationURL","requestOpts","response_options","statusMessage","codings","zlibOptions","flush","zlib","Z_SYNC_FLUSH","finishFlush","createGunzip","createBrotliDecompress","createInflate","createInflateRaw","dest","write","writeToStream","m","default","isomorphicUnfetch","process","require$$0","require$$1"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("stream"),e=require("http"),r=require("url"),o=require("https"),n=require("zlib");function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=s(t),a=s(e),u=s(r),h=s(o),c=s(n);function l(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n])&&(r[o[n]]=t[o[n]])}return r}function f(t,e,r,o){return new(r||(r=Promise))((function(n,s){function i(t){try{u(o.next(t))}catch(t){s(t)}}function a(t){try{u(o.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,a)}u((o=o.apply(t,e||[])).next())}))}function d(t){return this instanceof d?(this.v=t,this):new d(t)}function p(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(t,e||[]),s=[];return o={},i("next"),i("throw"),i("return"),o[Symbol.asyncIterator]=function(){return this},o;function i(t){n[t]&&(o[t]=function(e){return new Promise((function(r,o){s.push([t,e,r,o])>1||a(t,e)}))})}function a(t,e){try{!function(t){t.value instanceof d?Promise.resolve(t.value.v).then(u,h):c(s[0][2],t)}(n[t](e))}catch(t){c(s[0][3],t)}}function u(t){a("next",t)}function h(t){a("throw",t)}function c(t,e){t(e),s.shift(),s.length&&a(s[0][0],s[0][1])}}!function(){const t={npm_package_version:"1.6.0"};try{if(process)return process.env=Object.assign({},process.env),void Object.assign(process.env,t)}catch(t){}globalThis.process={env:t}}();class m{constructor(t){this.request=({method:t,path:e,data:r,params:o})=>f(this,void 0,void 0,(function*(){return this.client.request({method:t,path:e,data:r,params:o})})),this.paginatedRequest=({path:t,params:e})=>this.client.paginatedRequest({path:t,params:e}),this.client=t}}class y extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.confirm=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})})),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/payments/payment_intents"}}class b extends Error{constructor({meta:t,errors:e}){super(),this.meta=t,this.errors=e}}class g extends Error{constructor(t){super("Invalid data: "+t),this.name="ValidationError"}}class v extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.create=t=>f(this,void 0,void 0,(function*(){const{return_offers:e}=t,r=l(t,["return_offers"]);return r.passengers&&r.passengers.forEach((t=>{if(t.loyalty_programme_accounts&&t.loyalty_programme_accounts.length>0&&(!t.given_name||!t.family_name))throw new g("loyalty programme requires family_name and given_name parameters")})),this.request({method:"POST",path:`${this.path}/`,data:r,params:Object.assign({},null!=e&&{return_offers:e})})})),this.path="air/offer_requests"}}class w extends m{constructor(t){super(t),this.get=(t,e)=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`,params:e})})),this.list=t=>{var{offer_request_id:e}=t,r=l(t,["offer_request_id"]);return this.request({method:"GET",path:this.path,params:Object.assign(Object.assign({},r),{offer_request_id:e})})},this.listWithGenerator=t=>{var{offer_request_id:e}=t,r=l(t,["offer_request_id"]);return this.paginatedRequest({path:this.path,params:Object.assign(Object.assign({},r),{offer_request_id:e})})},this.update=(t,e,r)=>f(this,void 0,void 0,(function*(){return this.request(Object.assign({method:"PATCH",path:`${this.path}/${t}/passengers/${e}`},r&&{data:r}))})),this.path="air/offers"}}class T extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.confirm=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})})),this.path="air/order_cancellations"}}class O extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:t})})),this.listWithGenerator=t=>this.paginatedRequest({path:"air/orders",params:t}),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.update=(t,e)=>f(this,void 0,void 0,(function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{options:e}})})),this.path="air/orders"}}class j extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/order_change_requests"}}class S extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/order_change_offers"}}class P extends m{constructor(t){super(t),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.confirm=(t,e)=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`,data:e})})),this.path="air/order_changes"}}class q extends m{constructor(t){super(t),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/payments"}}class E extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}`,params:t})})),this.path="air/seat_maps"}}var $="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function x(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(r){var o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:function(){return t[r]}})})),e}var _=x(Object.freeze({__proto__:null,default:function(t,e){return e=e||{},new Promise((function(r,o){var n=new XMLHttpRequest,s=[],i=[],a={},u=function(){return{ok:2==(n.status/100|0),statusText:n.statusText,status:n.status,url:n.responseURL,text:function(){return Promise.resolve(n.responseText)},json:function(){return Promise.resolve(n.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([n.response]))},clone:u,headers:{keys:function(){return s},entries:function(){return i},get:function(t){return a[t.toLowerCase()]},has:function(t){return t.toLowerCase()in a}}}};for(var h in n.open(e.method||"get",t,!0),n.onload=function(){n.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(t,e,r){s.push(e=e.toLowerCase()),i.push([e,r]),a[e]=a[e]?a[e]+","+r:r})),r(u())},n.onerror=o,n.withCredentials="include"==e.credentials,e.headers)n.setRequestHeader(h,e.headers[h]);n.send(e.body||null)}))}}));const B=i.default.Readable,C=Symbol("buffer"),R=Symbol("type");class L{constructor(){this[R]="";const t=arguments[0],e=arguments[1],r=[];let o=0;if(t){const e=t,n=Number(e.length);for(let t=0;t<n;t++){const n=e[t];let s;s=n instanceof Buffer?n:ArrayBuffer.isView(n)?Buffer.from(n.buffer,n.byteOffset,n.byteLength):n instanceof ArrayBuffer?Buffer.from(n):n instanceof L?n[C]:Buffer.from("string"==typeof n?n:String(n)),o+=s.length,r.push(s)}}this[C]=Buffer.concat(r);let n=e&&void 0!==e.type&&String(e.type).toLowerCase();n&&!/[^\u0020-\u007E]/.test(n)&&(this[R]=n)}get size(){return this[C].length}get type(){return this[R]}text(){return Promise.resolve(this[C].toString())}arrayBuffer(){const t=this[C],e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return Promise.resolve(e)}stream(){const t=new B;return t._read=function(){},t.push(this[C]),t.push(null),t}toString(){return"[object Blob]"}slice(){const t=this.size,e=arguments[0],r=arguments[1];let o,n;o=void 0===e?0:e<0?Math.max(t+e,0):Math.min(e,t),n=void 0===r?t:r<0?Math.max(t+r,0):Math.min(r,t);const s=Math.max(n-o,0),i=this[C].slice(o,o+s),a=new L([],{type:arguments[2]});return a[C]=i,a}}function A(t,e,r){Error.call(this,t),this.message=t,this.type=e,r&&(this.code=this.errno=r.code),Error.captureStackTrace(this,this.constructor)}let k;Object.defineProperties(L.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}}),Object.defineProperty(L.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0}),A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A.prototype.name="FetchError";try{k=require("encoding").convert}catch(t){}const G=Symbol("Body internals"),z=i.default.PassThrough;function U(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.size;let n=void 0===o?0:o;var s=r.timeout;let a=void 0===s?0:s;null==t?t=null:I(t)?t=Buffer.from(t.toString()):M(t)||Buffer.isBuffer(t)||("[object ArrayBuffer]"===Object.prototype.toString.call(t)?t=Buffer.from(t):ArrayBuffer.isView(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):t instanceof i.default||(t=Buffer.from(String(t)))),this[G]={body:t,disturbed:!1,error:null},this.size=n,this.timeout=a,t instanceof i.default&&t.on("error",(function(t){const r="AbortError"===t.name?t:new A(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t);e[G].error=r}))}function H(){var t=this;if(this[G].disturbed)return U.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[G].disturbed=!0,this[G].error)return U.Promise.reject(this[G].error);let e=this.body;if(null===e)return U.Promise.resolve(Buffer.alloc(0));if(M(e)&&(e=e.stream()),Buffer.isBuffer(e))return U.Promise.resolve(e);if(!(e instanceof i.default))return U.Promise.resolve(Buffer.alloc(0));let r=[],o=0,n=!1;return new U.Promise((function(s,i){let a;t.timeout&&(a=setTimeout((function(){n=!0,i(new A(`Response timeout while trying to fetch ${t.url} (over ${t.timeout}ms)`,"body-timeout"))}),t.timeout)),e.on("error",(function(e){"AbortError"===e.name?(n=!0,i(e)):i(new A(`Invalid response body while trying to fetch ${t.url}: ${e.message}`,"system",e))})),e.on("data",(function(e){if(!n&&null!==e){if(t.size&&o+e.length>t.size)return n=!0,void i(new A(`content size at ${t.url} over limit: ${t.size}`,"max-size"));o+=e.length,r.push(e)}})),e.on("end",(function(){if(!n){clearTimeout(a);try{s(Buffer.concat(r,o))}catch(e){i(new A(`Could not create Buffer from response body for ${t.url}: ${e.message}`,"system",e))}}}))}))}function I(t){return"object"==typeof t&&"function"==typeof t.append&&"function"==typeof t.delete&&"function"==typeof t.get&&"function"==typeof t.getAll&&"function"==typeof t.has&&"function"==typeof t.set&&("URLSearchParams"===t.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(t)||"function"==typeof t.sort)}function M(t){return"object"==typeof t&&"function"==typeof t.arrayBuffer&&"string"==typeof t.type&&"function"==typeof t.stream&&"function"==typeof t.constructor&&"string"==typeof t.constructor.name&&/^(Blob|File)$/.test(t.constructor.name)&&/^(Blob|File)$/.test(t[Symbol.toStringTag])}function D(t){let e,r,o=t.body;if(t.bodyUsed)throw new Error("cannot clone body after it is used");return o instanceof i.default&&"function"!=typeof o.getBoundary&&(e=new z,r=new z,o.pipe(e),o.pipe(r),t[G].body=e,o=r),o}function F(t){return null===t?null:"string"==typeof t?"text/plain;charset=UTF-8":I(t)?"application/x-www-form-urlencoded;charset=UTF-8":M(t)?t.type||null:Buffer.isBuffer(t)||"[object ArrayBuffer]"===Object.prototype.toString.call(t)||ArrayBuffer.isView(t)?null:"function"==typeof t.getBoundary?`multipart/form-data;boundary=${t.getBoundary()}`:t instanceof i.default?null:"text/plain;charset=UTF-8"}function V(t){const e=t.body;return null===e?0:M(e)?e.size:Buffer.isBuffer(e)?e.length:e&&"function"==typeof e.getLengthSync&&(e._lengthRetrievers&&0==e._lengthRetrievers.length||e.hasKnownLength&&e.hasKnownLength())?e.getLengthSync():null}U.prototype={get body(){return this[G].body},get bodyUsed(){return this[G].disturbed},arrayBuffer(){return H.call(this).then((function(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}))},blob(){let t=this.headers&&this.headers.get("content-type")||"";return H.call(this).then((function(e){return Object.assign(new L([],{type:t.toLowerCase()}),{[C]:e})}))},json(){var t=this;return H.call(this).then((function(e){try{return JSON.parse(e.toString())}catch(e){return U.Promise.reject(new A(`invalid json response body at ${t.url} reason: ${e.message}`,"invalid-json"))}}))},text(){return H.call(this).then((function(t){return t.toString()}))},buffer(){return H.call(this)},textConverted(){var t=this;return H.call(this).then((function(e){return function(t,e){if("function"!=typeof k)throw new Error("The package `encoding` must be installed to use the textConverted() function");const r=e.get("content-type");let o,n,s="utf-8";r&&(o=/charset=([^;]*)/i.exec(r));n=t.slice(0,1024).toString(),!o&&n&&(o=/<meta.+?charset=(['"])(.+?)\1/i.exec(n));!o&&n&&(o=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(n),o||(o=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(n),o&&o.pop()),o&&(o=/charset=(.*)/i.exec(o.pop())));!o&&n&&(o=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(n));o&&(s=o.pop(),"gb2312"!==s&&"gbk"!==s||(s="gb18030"));return k(t,"UTF-8",s).toString()}(e,t.headers)}))}},Object.defineProperties(U.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}}),U.mixIn=function(t){for(const e of Object.getOwnPropertyNames(U.prototype))if(!(e in t)){const r=Object.getOwnPropertyDescriptor(U.prototype,e);Object.defineProperty(t,e,r)}},U.Promise=global.Promise;const N=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,W=/[^\t\x20-\x7e\x80-\xff]/;function J(t){if(t=`${t}`,N.test(t)||""===t)throw new TypeError(`${t} is not a legal HTTP header name`)}function Z(t){if(t=`${t}`,W.test(t))throw new TypeError(`${t} is not a legal HTTP header value`)}function K(t,e){e=e.toLowerCase();for(const r in t)if(r.toLowerCase()===e)return r}const Y=Symbol("map");class Q{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[Y]=Object.create(null),t instanceof Q){const e=t.raw(),r=Object.keys(e);for(const t of r)for(const r of e[t])this.append(t,r)}else if(null==t);else{if("object"!=typeof t)throw new TypeError("Provided initializer must be an object");{const e=t[Symbol.iterator];if(null!=e){if("function"!=typeof e)throw new TypeError("Header pairs must be iterable");const r=[];for(const e of t){if("object"!=typeof e||"function"!=typeof e[Symbol.iterator])throw new TypeError("Each header pair must be iterable");r.push(Array.from(e))}for(const t of r){if(2!==t.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(t[0],t[1])}}else for(const e of Object.keys(t)){const r=t[e];this.append(e,r)}}}}get(t){J(t=`${t}`);const e=K(this[Y],t);return void 0===e?null:this[Y][e].join(", ")}forEach(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=X(this),o=0;for(;o<r.length;){var n=r[o];const s=n[0],i=n[1];t.call(e,i,s,this),r=X(this),o++}}set(t,e){e=`${e}`,J(t=`${t}`),Z(e);const r=K(this[Y],t);this[Y][void 0!==r?r:t]=[e]}append(t,e){e=`${e}`,J(t=`${t}`),Z(e);const r=K(this[Y],t);void 0!==r?this[Y][r].push(e):this[Y][t]=[e]}has(t){return J(t=`${t}`),void 0!==K(this[Y],t)}delete(t){J(t=`${t}`);const e=K(this[Y],t);void 0!==e&&delete this[Y][e]}raw(){return this[Y]}keys(){return et(this,"key")}values(){return et(this,"value")}[Symbol.iterator](){return et(this,"key+value")}}function X(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"key+value";const r=Object.keys(t[Y]).sort();return r.map("key"===e?function(t){return t.toLowerCase()}:"value"===e?function(e){return t[Y][e].join(", ")}:function(e){return[e.toLowerCase(),t[Y][e].join(", ")]})}Q.prototype.entries=Q.prototype[Symbol.iterator],Object.defineProperty(Q.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Q.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const tt=Symbol("internal");function et(t,e){const r=Object.create(rt);return r[tt]={target:t,kind:e,index:0},r}const rt=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==rt)throw new TypeError("Value of `this` is not a HeadersIterator");var t=this[tt];const e=t.target,r=t.kind,o=t.index,n=X(e,r);return o>=n.length?{value:void 0,done:!0}:(this[tt].index=o+1,{value:n[o],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function ot(t){const e=Object.assign({__proto__:null},t[Y]),r=K(t[Y],"Host");return void 0!==r&&(e[r]=e[r][0]),e}Object.defineProperty(rt,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const nt=Symbol("Response internals"),st=a.default.STATUS_CODES;class it{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};U.call(this,t,e);const r=e.status||200,o=new Q(e.headers);if(null!=t&&!o.has("Content-Type")){const e=F(t);e&&o.append("Content-Type",e)}this[nt]={url:e.url,status:r,statusText:e.statusText||st[r],headers:o,counter:e.counter}}get url(){return this[nt].url||""}get status(){return this[nt].status}get ok(){return this[nt].status>=200&&this[nt].status<300}get redirected(){return this[nt].counter>0}get statusText(){return this[nt].statusText}get headers(){return this[nt].headers}clone(){return new it(D(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}U.mixIn(it.prototype),Object.defineProperties(it.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(it.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const at=Symbol("Request internals"),ut=u.default.parse,ht=u.default.format,ct="destroy"in i.default.Readable.prototype;function lt(t){return"object"==typeof t&&"object"==typeof t[at]}class ft{constructor(t){let e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};lt(t)?e=ut(t.url):(e=t&&t.href?ut(t.href):ut(`${t}`),t={});let o=r.method||t.method||"GET";if(o=o.toUpperCase(),(null!=r.body||lt(t)&&null!==t.body)&&("GET"===o||"HEAD"===o))throw new TypeError("Request with GET/HEAD method cannot have body");let n=null!=r.body?r.body:lt(t)&&null!==t.body?D(t):null;U.call(this,n,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});const s=new Q(r.headers||t.headers||{});if(null!=n&&!s.has("Content-Type")){const t=F(n);t&&s.append("Content-Type",t)}let i=lt(t)?t.signal:null;if("signal"in r&&(i=r.signal),null!=i&&!function(t){const e=t&&"object"==typeof t&&Object.getPrototypeOf(t);return!(!e||"AbortSignal"!==e.constructor.name)}(i))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[at]={method:o,redirect:r.redirect||t.redirect||"follow",headers:s,parsedURL:e,signal:i},this.follow=void 0!==r.follow?r.follow:void 0!==t.follow?t.follow:20,this.compress=void 0!==r.compress?r.compress:void 0===t.compress||t.compress,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[at].method}get url(){return ht(this[at].parsedURL)}get headers(){return this[at].headers}get redirect(){return this[at].redirect}get signal(){return this[at].signal}clone(){return new ft(this)}}function dt(t){Error.call(this,t),this.type="aborted",this.message=t,Error.captureStackTrace(this,this.constructor)}U.mixIn(ft.prototype),Object.defineProperty(ft.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(ft.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),dt.prototype=Object.create(Error.prototype),dt.prototype.constructor=dt,dt.prototype.name="AbortError";const pt=i.default.PassThrough,mt=u.default.resolve;function yt(t,e){if(!yt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return U.Promise=yt.Promise,new yt.Promise((function(r,o){const n=new ft(t,e),s=function(t){const e=t[at].parsedURL,r=new Q(t[at].headers);if(r.has("Accept")||r.set("Accept","*/*"),!e.protocol||!e.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(e.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&t.body instanceof i.default.Readable&&!ct)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let o=null;if(null==t.body&&/^(POST|PUT)$/i.test(t.method)&&(o="0"),null!=t.body){const e=V(t);"number"==typeof e&&(o=String(e))}o&&r.set("Content-Length",o),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),t.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let n=t.agent;return"function"==typeof n&&(n=n(e)),r.has("Connection")||n||r.set("Connection","close"),Object.assign({},e,{method:t.method,headers:ot(r),agent:n})}(n),u=("https:"===s.protocol?h.default:a.default).request,l=n.signal;let f=null;const d=function(){let t=new dt("The user aborted a request.");o(t),n.body&&n.body instanceof i.default.Readable&&n.body.destroy(t),f&&f.body&&f.body.emit("error",t)};if(l&&l.aborted)return void d();const p=function(){d(),b()},m=u(s);let y;function b(){m.abort(),l&&l.removeEventListener("abort",p),clearTimeout(y)}l&&l.addEventListener("abort",p),n.timeout&&m.once("socket",(function(t){y=setTimeout((function(){o(new A(`network timeout at: ${n.url}`,"request-timeout")),b()}),n.timeout)})),m.on("error",(function(t){o(new A(`request to ${n.url} failed, reason: ${t.message}`,"system",t)),b()})),m.on("response",(function(t){clearTimeout(y);const e=function(t){const e=new Q;for(const r of Object.keys(t))if(!N.test(r))if(Array.isArray(t[r]))for(const o of t[r])W.test(o)||(void 0===e[Y][r]?e[Y][r]=[o]:e[Y][r].push(o));else W.test(t[r])||(e[Y][r]=[t[r]]);return e}(t.headers);if(yt.isRedirect(t.statusCode)){const s=e.get("Location"),i=null===s?null:mt(n.url,s);switch(n.redirect){case"error":return o(new A(`uri requested responds with a redirect, redirect mode is set to error: ${n.url}`,"no-redirect")),void b();case"manual":if(null!==i)try{e.set("Location",i)}catch(t){o(t)}break;case"follow":if(null===i)break;if(n.counter>=n.follow)return o(new A(`maximum redirect reached at: ${n.url}`,"max-redirect")),void b();const s={headers:new Q(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:n.body,signal:n.signal,timeout:n.timeout,size:n.size};return 303!==t.statusCode&&n.body&&null===V(n)?(o(new A("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void b()):(303!==t.statusCode&&(301!==t.statusCode&&302!==t.statusCode||"POST"!==n.method)||(s.method="GET",s.body=void 0,s.headers.delete("content-length")),r(yt(new ft(i,s))),void b())}}t.once("end",(function(){l&&l.removeEventListener("abort",p)}));let s=t.pipe(new pt);const i={url:n.url,status:t.statusCode,statusText:t.statusMessage,headers:e,size:n.size,timeout:n.timeout,counter:n.counter},a=e.get("Content-Encoding");if(!n.compress||"HEAD"===n.method||null===a||204===t.statusCode||304===t.statusCode)return f=new it(s,i),void r(f);const u={flush:c.default.Z_SYNC_FLUSH,finishFlush:c.default.Z_SYNC_FLUSH};if("gzip"==a||"x-gzip"==a)return s=s.pipe(c.default.createGunzip(u)),f=new it(s,i),void r(f);if("deflate"!=a&&"x-deflate"!=a){if("br"==a&&"function"==typeof c.default.createBrotliDecompress)return s=s.pipe(c.default.createBrotliDecompress()),f=new it(s,i),void r(f);f=new it(s,i),r(f)}else{t.pipe(new pt).once("data",(function(t){s=8==(15&t[0])?s.pipe(c.default.createInflate()):s.pipe(c.default.createInflateRaw()),f=new it(s,i),r(f)}))}})),function(t,e){const r=e.body;null===r?t.end():M(r)?r.stream().pipe(t):Buffer.isBuffer(r)?(t.write(r),t.end()):r.pipe(t)}(m,n)}))}yt.isRedirect=function(t){return 301===t||302===t||303===t||307===t||308===t},yt.Promise=global.Promise;var bt=x(Object.freeze({__proto__:null,default:yt,Headers:Q,Request:ft,Response:it,FetchError:A}));function gt(t){return t&&t.default||t}var vt=$.fetch=$.fetch||("undefined"==typeof process?gt(_):function(t,e){return gt(bt)(String(t).replace(/^\/\//g,"https://"),e)});class wt{constructor({token:t,basePath:e,apiVersion:o,debug:n}){this.request=({method:t,path:e,data:o,params:n,compress:s=!0})=>f(this,void 0,void 0,(function*(){var i;let a,u;const h=new r.URL(e,this.basePath),c={"User-Agent":`Duffel/${this.apiVersion} duffel_api_javascript/${process.env.npm_package_version}`,Accept:"application/json","Accept-Encoding":"gzip","Content-Type":"application/json","Duffel-Version":this.apiVersion,Authorization:`Bearer ${this.token}`};if(n){const t=Object.entries(n).sort().filter((t=>null!==t[0]));h.search=new r.URLSearchParams(t).toString()}o&&(a=JSON.stringify({data:Object.assign({},o)})),(null===(i=this.debug)||void 0===i?void 0:i.verbose)&&(console.info("Endpoint: ",h.href),console.info("Method: ",t),o&&console.info("Body Parameters: ",o),n&&console.info("Query Parameters: ",n));const l=yield vt(h.href,{method:t,headers:c,body:a,compress:s}),f=l.headers.get("content-type");if(u=f&&f.includes("json")?yield l.json():yield l.text(),!l.ok||"errors"in u&&u.errors)throw new b(u);return u})),this.token=t,this.basePath=e||"https://api.duffel.com",this.apiVersion=o||"beta",this.debug=n}paginatedRequest({path:t,params:e}){return p(this,arguments,(function*(){let r=yield d(this.request({method:"GET",path:t,params:e}));for(const t of r.data)yield yield d({data:t});for(;r.meta&&"after"in r.meta&&r.meta.after;){r=yield d(this.request({method:"GET",path:t,params:{limit:r.meta.limit,after:r.meta.after}}));for(const t of r.data)yield yield d({data:t})}}))}}class Tt extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/aircraft"}}class Ot extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airlines"}}class jt extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airports"}}exports.Duffel=class{constructor(t){this.client=new wt(t),this.aircraft=new Tt(this.client),this.airlines=new Ot(this.client),this.airports=new jt(this.client),this.offerRequests=new v(this.client),this.offers=new w(this.client),this.orders=new O(this.client),this.orderChangeRequests=new j(this.client),this.orderChangeOffers=new S(this.client),this.orderChanges=new P(this.client),this.orderCancellations=new T(this.client),this.payments=new q(this.client),this.seatMaps=new E(this.client),this.paymentIntents=new y(this.client)}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("stream"),e=require("http"),r=require("url"),o=require("https"),n=require("zlib");function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=s(t),a=s(e),u=s(r),h=s(o),c=s(n);function l(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n])&&(r[o[n]]=t[o[n]])}return r}function f(t,e,r,o){return new(r||(r=Promise))((function(n,s){function i(t){try{u(o.next(t))}catch(t){s(t)}}function a(t){try{u(o.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,a)}u((o=o.apply(t,e||[])).next())}))}function d(t){return this instanceof d?(this.v=t,this):new d(t)}function p(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(t,e||[]),s=[];return o={},i("next"),i("throw"),i("return"),o[Symbol.asyncIterator]=function(){return this},o;function i(t){n[t]&&(o[t]=function(e){return new Promise((function(r,o){s.push([t,e,r,o])>1||a(t,e)}))})}function a(t,e){try{!function(t){t.value instanceof d?Promise.resolve(t.value.v).then(u,h):c(s[0][2],t)}(n[t](e))}catch(t){c(s[0][3],t)}}function u(t){a("next",t)}function h(t){a("throw",t)}function c(t,e){t(e),s.shift(),s.length&&a(s[0][0],s[0][1])}}!function(){const t={npm_package_version:"1.7.3"};try{if(process)return process.env=Object.assign({},process.env),void Object.assign(process.env,t)}catch(t){}globalThis.process={env:t}}();class m{constructor(t){this.request=({method:t,path:e,data:r,params:o})=>f(this,void 0,void 0,(function*(){return this.client.request({method:t,path:e,data:r,params:o})})),this.paginatedRequest=({path:t,params:e})=>this.client.paginatedRequest({path:t,params:e}),this.client=t}}class y extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.confirm=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})})),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="payments/payment_intents"}}class b extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.create=t=>f(this,void 0,void 0,(function*(){const{return_offers:e}=t,r=l(t,["return_offers"]);return this.request({method:"POST",path:`${this.path}/`,data:r,params:Object.assign({},null!=e&&{return_offers:e})})})),this.path="air/offer_requests"}}class g extends m{constructor(t){super(t),this.get=(t,e)=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`,params:e})})),this.list=t=>{var{offer_request_id:e}=t,r=l(t,["offer_request_id"]);return this.request({method:"GET",path:this.path,params:Object.assign(Object.assign({},r),{offer_request_id:e})})},this.listWithGenerator=t=>{var{offer_request_id:e}=t,r=l(t,["offer_request_id"]);return this.paginatedRequest({path:this.path,params:Object.assign(Object.assign({},r),{offer_request_id:e})})},this.update=(t,e,r)=>f(this,void 0,void 0,(function*(){return this.request(Object.assign({method:"PATCH",path:`${this.path}/${t}/passengers/${e}`},r&&{data:r}))})),this.path="air/offers"}}class v extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.confirm=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})})),this.path="air/order_cancellations"}}class w extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:t})})),this.listWithGenerator=t=>this.paginatedRequest({path:"air/orders",params:t}),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.update=(t,e)=>f(this,void 0,void 0,(function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{options:e}})})),this.path="air/orders"}}class T extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/order_change_requests"}}class O extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/order_change_offers"}}class j extends m{constructor(t){super(t),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.confirm=(t,e)=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`,data:e})})),this.path="air/order_changes"}}class S extends m{constructor(t){super(t),this.create=t=>f(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/payments"}}class P extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}`,params:t})})),this.path="air/seat_maps"}}var q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function $(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(r){var o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:function(){return t[r]}})})),e}var E=$(Object.freeze({__proto__:null,default:function(t,e){return e=e||{},new Promise((function(r,o){var n=new XMLHttpRequest,s=[],i=[],a={},u=function(){return{ok:2==(n.status/100|0),statusText:n.statusText,status:n.status,url:n.responseURL,text:function(){return Promise.resolve(n.responseText)},json:function(){return Promise.resolve(n.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([n.response]))},clone:u,headers:{keys:function(){return s},entries:function(){return i},get:function(t){return a[t.toLowerCase()]},has:function(t){return t.toLowerCase()in a}}}};for(var h in n.open(e.method||"get",t,!0),n.onload=function(){n.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(t,e,r){s.push(e=e.toLowerCase()),i.push([e,r]),a[e]=a[e]?a[e]+","+r:r})),r(u())},n.onerror=o,n.withCredentials="include"==e.credentials,e.headers)n.setRequestHeader(h,e.headers[h]);n.send(e.body||null)}))}}));const x=i.default.Readable,_=Symbol("buffer"),B=Symbol("type");class C{constructor(){this[B]="";const t=arguments[0],e=arguments[1],r=[];let o=0;if(t){const e=t,n=Number(e.length);for(let t=0;t<n;t++){const n=e[t];let s;s=n instanceof Buffer?n:ArrayBuffer.isView(n)?Buffer.from(n.buffer,n.byteOffset,n.byteLength):n instanceof ArrayBuffer?Buffer.from(n):n instanceof C?n[_]:Buffer.from("string"==typeof n?n:String(n)),o+=s.length,r.push(s)}}this[_]=Buffer.concat(r);let n=e&&void 0!==e.type&&String(e.type).toLowerCase();n&&!/[^\u0020-\u007E]/.test(n)&&(this[B]=n)}get size(){return this[_].length}get type(){return this[B]}text(){return Promise.resolve(this[_].toString())}arrayBuffer(){const t=this[_],e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return Promise.resolve(e)}stream(){const t=new x;return t._read=function(){},t.push(this[_]),t.push(null),t}toString(){return"[object Blob]"}slice(){const t=this.size,e=arguments[0],r=arguments[1];let o,n;o=void 0===e?0:e<0?Math.max(t+e,0):Math.min(e,t),n=void 0===r?t:r<0?Math.max(t+r,0):Math.min(r,t);const s=Math.max(n-o,0),i=this[_].slice(o,o+s),a=new C([],{type:arguments[2]});return a[_]=i,a}}function R(t,e,r){Error.call(this,t),this.message=t,this.type=e,r&&(this.code=this.errno=r.code),Error.captureStackTrace(this,this.constructor)}let L;Object.defineProperties(C.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}}),Object.defineProperty(C.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0}),R.prototype=Object.create(Error.prototype),R.prototype.constructor=R,R.prototype.name="FetchError";try{L=require("encoding").convert}catch(t){}const A=Symbol("Body internals"),k=i.default.PassThrough;function G(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.size;let n=void 0===o?0:o;var s=r.timeout;let a=void 0===s?0:s;null==t?t=null:U(t)?t=Buffer.from(t.toString()):H(t)||Buffer.isBuffer(t)||("[object ArrayBuffer]"===Object.prototype.toString.call(t)?t=Buffer.from(t):ArrayBuffer.isView(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):t instanceof i.default||(t=Buffer.from(String(t)))),this[A]={body:t,disturbed:!1,error:null},this.size=n,this.timeout=a,t instanceof i.default&&t.on("error",(function(t){const r="AbortError"===t.name?t:new R(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t);e[A].error=r}))}function z(){var t=this;if(this[A].disturbed)return G.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[A].disturbed=!0,this[A].error)return G.Promise.reject(this[A].error);let e=this.body;if(null===e)return G.Promise.resolve(Buffer.alloc(0));if(H(e)&&(e=e.stream()),Buffer.isBuffer(e))return G.Promise.resolve(e);if(!(e instanceof i.default))return G.Promise.resolve(Buffer.alloc(0));let r=[],o=0,n=!1;return new G.Promise((function(s,i){let a;t.timeout&&(a=setTimeout((function(){n=!0,i(new R(`Response timeout while trying to fetch ${t.url} (over ${t.timeout}ms)`,"body-timeout"))}),t.timeout)),e.on("error",(function(e){"AbortError"===e.name?(n=!0,i(e)):i(new R(`Invalid response body while trying to fetch ${t.url}: ${e.message}`,"system",e))})),e.on("data",(function(e){if(!n&&null!==e){if(t.size&&o+e.length>t.size)return n=!0,void i(new R(`content size at ${t.url} over limit: ${t.size}`,"max-size"));o+=e.length,r.push(e)}})),e.on("end",(function(){if(!n){clearTimeout(a);try{s(Buffer.concat(r,o))}catch(e){i(new R(`Could not create Buffer from response body for ${t.url}: ${e.message}`,"system",e))}}}))}))}function U(t){return"object"==typeof t&&"function"==typeof t.append&&"function"==typeof t.delete&&"function"==typeof t.get&&"function"==typeof t.getAll&&"function"==typeof t.has&&"function"==typeof t.set&&("URLSearchParams"===t.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(t)||"function"==typeof t.sort)}function H(t){return"object"==typeof t&&"function"==typeof t.arrayBuffer&&"string"==typeof t.type&&"function"==typeof t.stream&&"function"==typeof t.constructor&&"string"==typeof t.constructor.name&&/^(Blob|File)$/.test(t.constructor.name)&&/^(Blob|File)$/.test(t[Symbol.toStringTag])}function I(t){let e,r,o=t.body;if(t.bodyUsed)throw new Error("cannot clone body after it is used");return o instanceof i.default&&"function"!=typeof o.getBoundary&&(e=new k,r=new k,o.pipe(e),o.pipe(r),t[A].body=e,o=r),o}function M(t){return null===t?null:"string"==typeof t?"text/plain;charset=UTF-8":U(t)?"application/x-www-form-urlencoded;charset=UTF-8":H(t)?t.type||null:Buffer.isBuffer(t)||"[object ArrayBuffer]"===Object.prototype.toString.call(t)||ArrayBuffer.isView(t)?null:"function"==typeof t.getBoundary?`multipart/form-data;boundary=${t.getBoundary()}`:t instanceof i.default?null:"text/plain;charset=UTF-8"}function D(t){const e=t.body;return null===e?0:H(e)?e.size:Buffer.isBuffer(e)?e.length:e&&"function"==typeof e.getLengthSync&&(e._lengthRetrievers&&0==e._lengthRetrievers.length||e.hasKnownLength&&e.hasKnownLength())?e.getLengthSync():null}G.prototype={get body(){return this[A].body},get bodyUsed(){return this[A].disturbed},arrayBuffer(){return z.call(this).then((function(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}))},blob(){let t=this.headers&&this.headers.get("content-type")||"";return z.call(this).then((function(e){return Object.assign(new C([],{type:t.toLowerCase()}),{[_]:e})}))},json(){var t=this;return z.call(this).then((function(e){try{return JSON.parse(e.toString())}catch(e){return G.Promise.reject(new R(`invalid json response body at ${t.url} reason: ${e.message}`,"invalid-json"))}}))},text(){return z.call(this).then((function(t){return t.toString()}))},buffer(){return z.call(this)},textConverted(){var t=this;return z.call(this).then((function(e){return function(t,e){if("function"!=typeof L)throw new Error("The package `encoding` must be installed to use the textConverted() function");const r=e.get("content-type");let o,n,s="utf-8";r&&(o=/charset=([^;]*)/i.exec(r));n=t.slice(0,1024).toString(),!o&&n&&(o=/<meta.+?charset=(['"])(.+?)\1/i.exec(n));!o&&n&&(o=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(n),o||(o=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(n),o&&o.pop()),o&&(o=/charset=(.*)/i.exec(o.pop())));!o&&n&&(o=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(n));o&&(s=o.pop(),"gb2312"!==s&&"gbk"!==s||(s="gb18030"));return L(t,"UTF-8",s).toString()}(e,t.headers)}))}},Object.defineProperties(G.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}}),G.mixIn=function(t){for(const e of Object.getOwnPropertyNames(G.prototype))if(!(e in t)){const r=Object.getOwnPropertyDescriptor(G.prototype,e);Object.defineProperty(t,e,r)}},G.Promise=global.Promise;const F=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,V=/[^\t\x20-\x7e\x80-\xff]/;function N(t){if(t=`${t}`,F.test(t)||""===t)throw new TypeError(`${t} is not a legal HTTP header name`)}function W(t){if(t=`${t}`,V.test(t))throw new TypeError(`${t} is not a legal HTTP header value`)}function J(t,e){e=e.toLowerCase();for(const r in t)if(r.toLowerCase()===e)return r}const Z=Symbol("map");class K{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[Z]=Object.create(null),t instanceof K){const e=t.raw(),r=Object.keys(e);for(const t of r)for(const r of e[t])this.append(t,r)}else if(null==t);else{if("object"!=typeof t)throw new TypeError("Provided initializer must be an object");{const e=t[Symbol.iterator];if(null!=e){if("function"!=typeof e)throw new TypeError("Header pairs must be iterable");const r=[];for(const e of t){if("object"!=typeof e||"function"!=typeof e[Symbol.iterator])throw new TypeError("Each header pair must be iterable");r.push(Array.from(e))}for(const t of r){if(2!==t.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(t[0],t[1])}}else for(const e of Object.keys(t)){const r=t[e];this.append(e,r)}}}}get(t){N(t=`${t}`);const e=J(this[Z],t);return void 0===e?null:this[Z][e].join(", ")}forEach(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=Y(this),o=0;for(;o<r.length;){var n=r[o];const s=n[0],i=n[1];t.call(e,i,s,this),r=Y(this),o++}}set(t,e){e=`${e}`,N(t=`${t}`),W(e);const r=J(this[Z],t);this[Z][void 0!==r?r:t]=[e]}append(t,e){e=`${e}`,N(t=`${t}`),W(e);const r=J(this[Z],t);void 0!==r?this[Z][r].push(e):this[Z][t]=[e]}has(t){return N(t=`${t}`),void 0!==J(this[Z],t)}delete(t){N(t=`${t}`);const e=J(this[Z],t);void 0!==e&&delete this[Z][e]}raw(){return this[Z]}keys(){return X(this,"key")}values(){return X(this,"value")}[Symbol.iterator](){return X(this,"key+value")}}function Y(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"key+value";const r=Object.keys(t[Z]).sort();return r.map("key"===e?function(t){return t.toLowerCase()}:"value"===e?function(e){return t[Z][e].join(", ")}:function(e){return[e.toLowerCase(),t[Z][e].join(", ")]})}K.prototype.entries=K.prototype[Symbol.iterator],Object.defineProperty(K.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(K.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const Q=Symbol("internal");function X(t,e){const r=Object.create(tt);return r[Q]={target:t,kind:e,index:0},r}const tt=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==tt)throw new TypeError("Value of `this` is not a HeadersIterator");var t=this[Q];const e=t.target,r=t.kind,o=t.index,n=Y(e,r);return o>=n.length?{value:void 0,done:!0}:(this[Q].index=o+1,{value:n[o],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function et(t){const e=Object.assign({__proto__:null},t[Z]),r=J(t[Z],"Host");return void 0!==r&&(e[r]=e[r][0]),e}Object.defineProperty(tt,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const rt=Symbol("Response internals"),ot=a.default.STATUS_CODES;class nt{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};G.call(this,t,e);const r=e.status||200,o=new K(e.headers);if(null!=t&&!o.has("Content-Type")){const e=M(t);e&&o.append("Content-Type",e)}this[rt]={url:e.url,status:r,statusText:e.statusText||ot[r],headers:o,counter:e.counter}}get url(){return this[rt].url||""}get status(){return this[rt].status}get ok(){return this[rt].status>=200&&this[rt].status<300}get redirected(){return this[rt].counter>0}get statusText(){return this[rt].statusText}get headers(){return this[rt].headers}clone(){return new nt(I(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}G.mixIn(nt.prototype),Object.defineProperties(nt.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(nt.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const st=Symbol("Request internals"),it=u.default.parse,at=u.default.format,ut="destroy"in i.default.Readable.prototype;function ht(t){return"object"==typeof t&&"object"==typeof t[st]}class ct{constructor(t){let e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ht(t)?e=it(t.url):(e=t&&t.href?it(t.href):it(`${t}`),t={});let o=r.method||t.method||"GET";if(o=o.toUpperCase(),(null!=r.body||ht(t)&&null!==t.body)&&("GET"===o||"HEAD"===o))throw new TypeError("Request with GET/HEAD method cannot have body");let n=null!=r.body?r.body:ht(t)&&null!==t.body?I(t):null;G.call(this,n,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});const s=new K(r.headers||t.headers||{});if(null!=n&&!s.has("Content-Type")){const t=M(n);t&&s.append("Content-Type",t)}let i=ht(t)?t.signal:null;if("signal"in r&&(i=r.signal),null!=i&&!function(t){const e=t&&"object"==typeof t&&Object.getPrototypeOf(t);return!(!e||"AbortSignal"!==e.constructor.name)}(i))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[st]={method:o,redirect:r.redirect||t.redirect||"follow",headers:s,parsedURL:e,signal:i},this.follow=void 0!==r.follow?r.follow:void 0!==t.follow?t.follow:20,this.compress=void 0!==r.compress?r.compress:void 0===t.compress||t.compress,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[st].method}get url(){return at(this[st].parsedURL)}get headers(){return this[st].headers}get redirect(){return this[st].redirect}get signal(){return this[st].signal}clone(){return new ct(this)}}function lt(t){Error.call(this,t),this.type="aborted",this.message=t,Error.captureStackTrace(this,this.constructor)}G.mixIn(ct.prototype),Object.defineProperty(ct.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(ct.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),lt.prototype=Object.create(Error.prototype),lt.prototype.constructor=lt,lt.prototype.name="AbortError";const ft=i.default.PassThrough,dt=u.default.resolve;function pt(t,e){if(!pt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return G.Promise=pt.Promise,new pt.Promise((function(r,o){const n=new ct(t,e),s=function(t){const e=t[st].parsedURL,r=new K(t[st].headers);if(r.has("Accept")||r.set("Accept","*/*"),!e.protocol||!e.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(e.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&t.body instanceof i.default.Readable&&!ut)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let o=null;if(null==t.body&&/^(POST|PUT)$/i.test(t.method)&&(o="0"),null!=t.body){const e=D(t);"number"==typeof e&&(o=String(e))}o&&r.set("Content-Length",o),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),t.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let n=t.agent;return"function"==typeof n&&(n=n(e)),r.has("Connection")||n||r.set("Connection","close"),Object.assign({},e,{method:t.method,headers:et(r),agent:n})}(n),u=("https:"===s.protocol?h.default:a.default).request,l=n.signal;let f=null;const d=function(){let t=new lt("The user aborted a request.");o(t),n.body&&n.body instanceof i.default.Readable&&n.body.destroy(t),f&&f.body&&f.body.emit("error",t)};if(l&&l.aborted)return void d();const p=function(){d(),b()},m=u(s);let y;function b(){m.abort(),l&&l.removeEventListener("abort",p),clearTimeout(y)}l&&l.addEventListener("abort",p),n.timeout&&m.once("socket",(function(t){y=setTimeout((function(){o(new R(`network timeout at: ${n.url}`,"request-timeout")),b()}),n.timeout)})),m.on("error",(function(t){o(new R(`request to ${n.url} failed, reason: ${t.message}`,"system",t)),b()})),m.on("response",(function(t){clearTimeout(y);const e=function(t){const e=new K;for(const r of Object.keys(t))if(!F.test(r))if(Array.isArray(t[r]))for(const o of t[r])V.test(o)||(void 0===e[Z][r]?e[Z][r]=[o]:e[Z][r].push(o));else V.test(t[r])||(e[Z][r]=[t[r]]);return e}(t.headers);if(pt.isRedirect(t.statusCode)){const s=e.get("Location"),i=null===s?null:dt(n.url,s);switch(n.redirect){case"error":return o(new R(`uri requested responds with a redirect, redirect mode is set to error: ${n.url}`,"no-redirect")),void b();case"manual":if(null!==i)try{e.set("Location",i)}catch(t){o(t)}break;case"follow":if(null===i)break;if(n.counter>=n.follow)return o(new R(`maximum redirect reached at: ${n.url}`,"max-redirect")),void b();const s={headers:new K(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:n.body,signal:n.signal,timeout:n.timeout,size:n.size};return 303!==t.statusCode&&n.body&&null===D(n)?(o(new R("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void b()):(303!==t.statusCode&&(301!==t.statusCode&&302!==t.statusCode||"POST"!==n.method)||(s.method="GET",s.body=void 0,s.headers.delete("content-length")),r(pt(new ct(i,s))),void b())}}t.once("end",(function(){l&&l.removeEventListener("abort",p)}));let s=t.pipe(new ft);const i={url:n.url,status:t.statusCode,statusText:t.statusMessage,headers:e,size:n.size,timeout:n.timeout,counter:n.counter},a=e.get("Content-Encoding");if(!n.compress||"HEAD"===n.method||null===a||204===t.statusCode||304===t.statusCode)return f=new nt(s,i),void r(f);const u={flush:c.default.Z_SYNC_FLUSH,finishFlush:c.default.Z_SYNC_FLUSH};if("gzip"==a||"x-gzip"==a)return s=s.pipe(c.default.createGunzip(u)),f=new nt(s,i),void r(f);if("deflate"!=a&&"x-deflate"!=a){if("br"==a&&"function"==typeof c.default.createBrotliDecompress)return s=s.pipe(c.default.createBrotliDecompress()),f=new nt(s,i),void r(f);f=new nt(s,i),r(f)}else{t.pipe(new ft).once("data",(function(t){s=8==(15&t[0])?s.pipe(c.default.createInflate()):s.pipe(c.default.createInflateRaw()),f=new nt(s,i),r(f)}))}})),function(t,e){const r=e.body;null===r?t.end():H(r)?r.stream().pipe(t):Buffer.isBuffer(r)?(t.write(r),t.end()):r.pipe(t)}(m,n)}))}pt.isRedirect=function(t){return 301===t||302===t||303===t||307===t||308===t},pt.Promise=global.Promise;var mt=$(Object.freeze({__proto__:null,default:pt,Headers:K,Request:ct,Response:nt,FetchError:R}));function yt(t){return t&&t.default||t}var bt=q.fetch=q.fetch||("undefined"==typeof process?yt(E):function(t,e){return yt(mt)(String(t).replace(/^\/\//g,"https://"),e)});class gt extends Error{constructor({meta:t,errors:e}){super(),this.meta=t,this.errors=e}}class vt{constructor({token:t,basePath:e,apiVersion:o,debug:n}){this.request=({method:t,path:e,data:o,params:n,compress:s=!0})=>f(this,void 0,void 0,(function*(){var i;let a,u;const h=new r.URL(e,this.basePath),c={"User-Agent":`Duffel/${this.apiVersion} duffel_api_javascript/${process.env.npm_package_version}`,Accept:"application/json","Accept-Encoding":"gzip","Content-Type":"application/json","Duffel-Version":this.apiVersion,Authorization:`Bearer ${this.token}`};if(n){const t=Object.entries(n).sort().filter((t=>null!==t[0]));h.search=new r.URLSearchParams(t).toString()}o&&(a=JSON.stringify({data:Object.assign({},o)})),(null===(i=this.debug)||void 0===i?void 0:i.verbose)&&(console.info("Endpoint: ",h.href),console.info("Method: ",t),o&&console.info("Body Parameters: ",o),n&&console.info("Query Parameters: ",n));const l=yield bt(h.href,{method:t,headers:c,body:a,compress:s}),f=l.headers.get("content-type");if(u=f&&f.includes("json")?yield l.json():yield l.text(),!l.ok||"errors"in u&&u.errors)throw new gt(u);return u})),this.token=t,this.basePath=e||"https://api.duffel.com",this.apiVersion=o||"beta",this.debug=n}paginatedRequest({path:t,params:e}){return p(this,arguments,(function*(){let r=yield d(this.request({method:"GET",path:t,params:e}));for(const t of r.data)yield yield d({data:t});for(;r.meta&&"after"in r.meta&&r.meta.after;){r=yield d(this.request({method:"GET",path:t,params:{limit:r.meta.limit,after:r.meta.after}}));for(const t of r.data)yield yield d({data:t})}}))}}class wt extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/aircraft"}}class Tt extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airlines"}}class Ot extends m{constructor(t){super(t),this.get=t=>f(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airports"}}exports.Duffel=class{constructor(t){this.client=new vt(t),this.aircraft=new wt(this.client),this.airlines=new Tt(this.client),this.airports=new Ot(this.client),this.offerRequests=new b(this.client),this.offers=new g(this.client),this.orders=new w(this.client),this.orderChangeRequests=new T(this.client),this.orderChangeOffers=new O(this.client),this.orderChanges=new j(this.client),this.orderCancellations=new v(this.client),this.payments=new S(this.client),this.seatMaps=new P(this.client),this.paymentIntents=new y(this.client)}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|