{"code":"import * as tslib_1 from \"tslib\";\r\nimport { ContentTypes, Headers, Response, handleRequestError } from \"mongodb-stitch-core-sdk\";\r\nimport ReaderEventStream from \"./ReaderEventStream\";\r\nimport EventSourceEventStream from \"./EventSourceEventStream\";\r\nimport fetch from \"fetch-everywhere\";\r\nvar FetchStreamTransport = (function () {\r\n    function FetchStreamTransport() {\r\n    }\r\n    FetchStreamTransport.prototype.roundTrip = function (request) {\r\n        var responsePromise = fetch(request.url, {\r\n            body: request.body,\r\n            headers: request.headers,\r\n            method: request.method,\r\n            mode: 'cors'\r\n        });\r\n        var responseTextPromise = responsePromise.then(function (response) {\r\n            return response.text();\r\n        });\r\n        return Promise.all([responsePromise, responseTextPromise]).then(function (values) {\r\n            var response = values[0];\r\n            var body = values[1];\r\n            var headers = {};\r\n            response.headers.forEach(function (value, key) {\r\n                headers[key] = value;\r\n            });\r\n            return new Response(headers, response.status, body);\r\n        });\r\n    };\r\n    FetchStreamTransport.prototype.stream = function (request, open, retryRequest) {\r\n        if (open === void 0) { open = true; }\r\n        var rsSupported;\r\n        try {\r\n            new ReadableStream();\r\n            rsSupported = true;\r\n        }\r\n        catch (err) {\r\n            rsSupported = false;\r\n        }\r\n        var headers = tslib_1.__assign({}, request.headers);\r\n        headers[Headers.ACCEPT] = ContentTypes.TEXT_EVENT_STREAM;\r\n        headers[Headers.CONTENT_TYPE] = ContentTypes.TEXT_EVENT_STREAM;\r\n        if (!rsSupported) {\r\n            return fetch(request.url + \"&stitch_validate=true\", {\r\n                body: request.body,\r\n                headers: headers,\r\n                method: request.method,\r\n                mode: 'cors'\r\n            }).then(function (response) {\r\n                var headers = {};\r\n                response.headers.forEach(function (value, key) {\r\n                    headers[key] = value;\r\n                });\r\n                if (response.status < 200 || response.status >= 300) {\r\n                    return response.text()\r\n                        .then(function (body) { return handleRequestError(new Response(headers, response.status, body)); });\r\n                }\r\n                return new Promise(function (resolve, reject) {\r\n                    new EventSourceEventStream(new EventSource(request.url), function (stream) { return resolve(stream); }, function (error) { return reject(error); }, retryRequest ?\r\n                        function () { return retryRequest().then(function (es) { return es; }); }\r\n                        : undefined);\r\n                });\r\n            });\r\n        }\r\n        return fetch(request.url, {\r\n            body: request.body,\r\n            headers: headers,\r\n            method: request.method,\r\n            mode: 'cors'\r\n        }).then(function (response) {\r\n            var headers = {};\r\n            response.headers.forEach(function (value, key) {\r\n                headers[key] = value;\r\n            });\r\n            if (response.status < 200 || response.status >= 300) {\r\n                return response.text()\r\n                    .then(function (body) { return handleRequestError(new Response(headers, response.status, body)); });\r\n            }\r\n            return new ReaderEventStream(response.body, open, retryRequest ? function () {\r\n                return retryRequest().then(function (es) { return es; });\r\n            }\r\n                : undefined);\r\n        });\r\n    };\r\n    return FetchStreamTransport;\r\n}());\r\nexport default FetchStreamTransport;\r\n//# sourceMappingURL=FetchStreamTransport.js.map","map":"{\"version\":3,\"file\":\"FetchStreamTransport.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../../../src/core/internal/net/FetchStreamTransport.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/eric/stitch/stitch-js-sdk/packages/browser/core/.rpt2_cache/placeholder/core/internal/net/FetchStreamTransport.d.ts","text":"import { BasicRequest, EventStream, Response, Transport } from \"mongodb-stitch-core-sdk\";\r\nexport default class FetchStreamTransport implements Transport {\r\n    roundTrip(request: BasicRequest): Promise<Response>;\r\n    stream(request: BasicRequest, open?: boolean, retryRequest?: () => Promise<EventStream>): Promise<EventStream>;\r\n}\r\n"}}
