@dioxide-js/silas
Version:
RPC utility for Silas
1 lines • 39.4 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../node_modules/follow-redirects/index.js"],"sourcesContent":["var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n"],"names":["require$$1","require$$2","require$$3","require$$5","followRedirectsModule"],"mappings":"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","x_google_ignoreList":[0]}