{"version":3,"file":"websockets.node.mjs","sources":["../lib/utils/stream_transform.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Frames.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Codecs.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Common.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Deferred.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Errors.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RSocket.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/ClientServerMultiplexerDemultiplexer.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Fragmenter.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Reassembler.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RequestChannelStream.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RequestFnFStream.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RequestResponseStream.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RequestStreamStream.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RSocketSupport.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Resume.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RSocketConnector.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/RSocketServer.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/Transport.js","../../../node_modules/.pnpm/rsocket-core@1.0.0-alpha.3/node_modules/rsocket-core/dist/index.js","../../../node_modules/.pnpm/rsocket-websocket-client@1.0.0-alpha.3/node_modules/rsocket-websocket-client/dist/WebsocketDuplexConnection.js","../../../node_modules/.pnpm/rsocket-websocket-client@1.0.0-alpha.3/node_modules/rsocket-websocket-client/dist/WebsocketClientTransport.js","../../../node_modules/.pnpm/rsocket-websocket-client@1.0.0-alpha.3/node_modules/rsocket-websocket-client/dist/index.js","../lib/client/sync/stream/WebSocketSupport.js"],"sourcesContent":["export const doneResult = { done: true, value: undefined };\nexport function valueResult(value) {\n    return { done: false, value };\n}\n/**\n * A variant of {@link Array.map} for async iterators.\n */\nexport function map(source, map) {\n    return {\n        next: async () => {\n            const value = await source.next();\n            if (value.done) {\n                return value;\n            }\n            else {\n                return { value: map(value.value) };\n            }\n        }\n    };\n}\n/**\n * Expands a source async iterator by allowing to inject events asynchronously.\n *\n * The resulting iterator will emit all events from its source. Additionally though, events can be injected. These\n * events are dropped once the main iterator completes, but are otherwise forwarded.\n *\n * The iterator completes when its source completes, and it supports backpressure by only calling `next()` on the source\n * in response to a `next()` call from downstream if no pending injected events can be dispatched.\n */\nexport function injectable(source) {\n    let sourceIsDone = false;\n    let waiter = undefined; // An active, waiting next() call.\n    // A pending upstream event that couldn't be dispatched because inject() has been called before it was resolved.\n    let pendingSourceEvent = null;\n    let sourceFetchInFlight = false;\n    let pendingInjectedEvents = [];\n    const consumeWaiter = () => {\n        const pending = waiter;\n        waiter = undefined;\n        return pending;\n    };\n    const fetchFromSource = () => {\n        const resolveWaiter = (propagate) => {\n            sourceFetchInFlight = false;\n            const active = consumeWaiter();\n            if (active) {\n                propagate(active);\n            }\n            else {\n                pendingSourceEvent = propagate;\n            }\n        };\n        sourceFetchInFlight = true;\n        const nextFromSource = source.next();\n        nextFromSource.then((value) => {\n            sourceIsDone = value.done == true;\n            resolveWaiter((w) => w.resolve(value));\n        }, (error) => {\n            resolveWaiter((w) => w.reject(error));\n        });\n    };\n    return {\n        next: () => {\n            return new Promise((resolve, reject) => {\n                // First priority: Dispatch ready upstream events.\n                if (sourceIsDone) {\n                    return resolve(doneResult);\n                }\n                if (pendingSourceEvent) {\n                    pendingSourceEvent({ resolve, reject });\n                    pendingSourceEvent = null;\n                    return;\n                }\n                // Second priority: Dispatch injected events\n                if (pendingInjectedEvents.length) {\n                    return resolve(valueResult(pendingInjectedEvents.shift()));\n                }\n                // Nothing pending? Fetch from source\n                waiter = { resolve, reject };\n                if (!sourceFetchInFlight) {\n                    fetchFromSource();\n                }\n            });\n        },\n        inject: (event) => {\n            const pending = consumeWaiter();\n            if (pending != null) {\n                pending.resolve(valueResult(event));\n            }\n            else {\n                pendingInjectedEvents.push(event);\n            }\n        }\n    };\n}\n/**\n * Splits a byte stream at line endings, emitting each line as a string.\n */\nexport function extractJsonLines(source, decoder) {\n    let buffer = '';\n    const pendingLines = [];\n    let isFinalEvent = false;\n    return {\n        next: async () => {\n            while (true) {\n                if (isFinalEvent) {\n                    return doneResult;\n                }\n                {\n                    const first = pendingLines.shift();\n                    if (first) {\n                        return { done: false, value: first };\n                    }\n                }\n                const { done, value } = await source.next();\n                if (done) {\n                    const remaining = buffer.trim();\n                    if (remaining.length != 0) {\n                        isFinalEvent = true;\n                        return { done: false, value: remaining };\n                    }\n                    return doneResult;\n                }\n                const data = decoder.decode(value, { stream: true });\n                buffer += data;\n                const lines = buffer.split('\\n');\n                for (let i = 0; i < lines.length - 1; i++) {\n                    const l = lines[i].trim();\n                    if (l.length > 0) {\n                        pendingLines.push(l);\n                    }\n                }\n                buffer = lines[lines.length - 1];\n            }\n        }\n    };\n}\n/**\n * Splits a concatenated stream of BSON objects by emitting individual objects.\n */\nexport function extractBsonObjects(source) {\n    // Fully read but not emitted yet.\n    const completedObjects = [];\n    // Whether source has returned { done: true }. We do the same once completed objects have been emitted.\n    let isDone = false;\n    const lengthBuffer = new DataView(new ArrayBuffer(4));\n    let objectBody = null;\n    // If we're parsing the length field, a number between 1 and 4 (inclusive) describing remaining bytes in the header.\n    // If we're consuming a document, the bytes remaining.\n    let remainingLength = 4;\n    return {\n        async next() {\n            while (true) {\n                // Before fetching new data from upstream, return completed objects.\n                if (completedObjects.length) {\n                    return valueResult(completedObjects.shift());\n                }\n                if (isDone) {\n                    return doneResult;\n                }\n                const upstreamEvent = await source.next();\n                if (upstreamEvent.done) {\n                    isDone = true;\n                    if (objectBody || remainingLength != 4) {\n                        throw new Error('illegal end of stream in BSON object');\n                    }\n                    return doneResult;\n                }\n                const chunk = upstreamEvent.value;\n                for (let i = 0; i < chunk.length;) {\n                    const availableInData = chunk.length - i;\n                    if (objectBody) {\n                        // We're in the middle of reading a BSON document.\n                        const bytesToRead = Math.min(availableInData, remainingLength);\n                        const copySource = new Uint8Array(chunk.buffer, chunk.byteOffset + i, bytesToRead);\n                        objectBody.set(copySource, objectBody.length - remainingLength);\n                        i += bytesToRead;\n                        remainingLength -= bytesToRead;\n                        if (remainingLength == 0) {\n                            completedObjects.push(objectBody);\n                            // Prepare to read another document, starting with its length\n                            objectBody = null;\n                            remainingLength = 4;\n                        }\n                    }\n                    else {\n                        // Copy up to 4 bytes into lengthBuffer, depending on how many we still need.\n                        const bytesToRead = Math.min(availableInData, remainingLength);\n                        for (let j = 0; j < bytesToRead; j++) {\n                            lengthBuffer.setUint8(4 - remainingLength + j, chunk[i + j]);\n                        }\n                        i += bytesToRead;\n                        remainingLength -= bytesToRead;\n                        if (remainingLength == 0) {\n                            // Transition from reading length header to reading document. Subtracting 4 because the length of the\n                            // header is included in length.\n                            const length = lengthBuffer.getInt32(0, true /* little endian */);\n                            remainingLength = length - 4;\n                            if (remainingLength < 1) {\n                                throw new Error(`invalid length for bson: ${length}`);\n                            }\n                            objectBody = new Uint8Array(length);\n                            new DataView(objectBody.buffer).setInt32(0, length, true);\n                        }\n                    }\n                }\n            }\n        }\n    };\n}\n//# sourceMappingURL=stream_transform.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Frame = exports.Lengths = exports.Flags = exports.FrameTypes = void 0;\nvar FrameTypes;\n(function (FrameTypes) {\n    FrameTypes[FrameTypes[\"RESERVED\"] = 0] = \"RESERVED\";\n    FrameTypes[FrameTypes[\"SETUP\"] = 1] = \"SETUP\";\n    FrameTypes[FrameTypes[\"LEASE\"] = 2] = \"LEASE\";\n    FrameTypes[FrameTypes[\"KEEPALIVE\"] = 3] = \"KEEPALIVE\";\n    FrameTypes[FrameTypes[\"REQUEST_RESPONSE\"] = 4] = \"REQUEST_RESPONSE\";\n    FrameTypes[FrameTypes[\"REQUEST_FNF\"] = 5] = \"REQUEST_FNF\";\n    FrameTypes[FrameTypes[\"REQUEST_STREAM\"] = 6] = \"REQUEST_STREAM\";\n    FrameTypes[FrameTypes[\"REQUEST_CHANNEL\"] = 7] = \"REQUEST_CHANNEL\";\n    FrameTypes[FrameTypes[\"REQUEST_N\"] = 8] = \"REQUEST_N\";\n    FrameTypes[FrameTypes[\"CANCEL\"] = 9] = \"CANCEL\";\n    FrameTypes[FrameTypes[\"PAYLOAD\"] = 10] = \"PAYLOAD\";\n    FrameTypes[FrameTypes[\"ERROR\"] = 11] = \"ERROR\";\n    FrameTypes[FrameTypes[\"METADATA_PUSH\"] = 12] = \"METADATA_PUSH\";\n    FrameTypes[FrameTypes[\"RESUME\"] = 13] = \"RESUME\";\n    FrameTypes[FrameTypes[\"RESUME_OK\"] = 14] = \"RESUME_OK\";\n    FrameTypes[FrameTypes[\"EXT\"] = 63] = \"EXT\";\n})(FrameTypes = exports.FrameTypes || (exports.FrameTypes = {}));\nvar Flags;\n(function (Flags) {\n    Flags[Flags[\"NONE\"] = 0] = \"NONE\";\n    Flags[Flags[\"COMPLETE\"] = 64] = \"COMPLETE\";\n    Flags[Flags[\"FOLLOWS\"] = 128] = \"FOLLOWS\";\n    Flags[Flags[\"IGNORE\"] = 512] = \"IGNORE\";\n    Flags[Flags[\"LEASE\"] = 64] = \"LEASE\";\n    Flags[Flags[\"METADATA\"] = 256] = \"METADATA\";\n    Flags[Flags[\"NEXT\"] = 32] = \"NEXT\";\n    Flags[Flags[\"RESPOND\"] = 128] = \"RESPOND\";\n    Flags[Flags[\"RESUME_ENABLE\"] = 128] = \"RESUME_ENABLE\";\n})(Flags = exports.Flags || (exports.Flags = {}));\n(function (Flags) {\n    function hasMetadata(flags) {\n        return (flags & Flags.METADATA) === Flags.METADATA;\n    }\n    Flags.hasMetadata = hasMetadata;\n    function hasComplete(flags) {\n        return (flags & Flags.COMPLETE) === Flags.COMPLETE;\n    }\n    Flags.hasComplete = hasComplete;\n    function hasNext(flags) {\n        return (flags & Flags.NEXT) === Flags.NEXT;\n    }\n    Flags.hasNext = hasNext;\n    function hasFollows(flags) {\n        return (flags & Flags.FOLLOWS) === Flags.FOLLOWS;\n    }\n    Flags.hasFollows = hasFollows;\n    function hasIgnore(flags) {\n        return (flags & Flags.IGNORE) === Flags.IGNORE;\n    }\n    Flags.hasIgnore = hasIgnore;\n    function hasRespond(flags) {\n        return (flags & Flags.RESPOND) === Flags.RESPOND;\n    }\n    Flags.hasRespond = hasRespond;\n    function hasLease(flags) {\n        return (flags & Flags.LEASE) === Flags.LEASE;\n    }\n    Flags.hasLease = hasLease;\n    function hasResume(flags) {\n        return (flags & Flags.RESUME_ENABLE) === Flags.RESUME_ENABLE;\n    }\n    Flags.hasResume = hasResume;\n})(Flags = exports.Flags || (exports.Flags = {}));\nvar Lengths;\n(function (Lengths) {\n    Lengths[Lengths[\"FRAME\"] = 3] = \"FRAME\";\n    Lengths[Lengths[\"HEADER\"] = 6] = \"HEADER\";\n    Lengths[Lengths[\"METADATA\"] = 3] = \"METADATA\";\n    Lengths[Lengths[\"REQUEST\"] = 3] = \"REQUEST\";\n})(Lengths = exports.Lengths || (exports.Lengths = {}));\nvar Frame;\n(function (Frame) {\n    function isConnection(frame) {\n        return frame.streamId === 0;\n    }\n    Frame.isConnection = isConnection;\n    function isRequest(frame) {\n        return (FrameTypes.REQUEST_RESPONSE <= frame.type &&\n            frame.type <= FrameTypes.REQUEST_CHANNEL);\n    }\n    Frame.isRequest = isRequest;\n})(Frame = exports.Frame || (exports.Frame = {}));\n//# sourceMappingURL=Frames.js.map","/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\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;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deserializer = exports.sizeOfFrame = exports.serializeFrame = exports.deserializeFrame = exports.serializeFrameWithLength = exports.deserializeFrames = exports.deserializeFrameWithLength = exports.writeUInt64BE = exports.readUInt64BE = exports.writeUInt24BE = exports.readUInt24BE = exports.MAX_VERSION = exports.MAX_TTL = exports.MAX_STREAM_ID = exports.MAX_RESUME_LENGTH = exports.MAX_REQUEST_N = exports.MAX_REQUEST_COUNT = exports.MAX_MIME_LENGTH = exports.MAX_METADATA_LENGTH = exports.MAX_LIFETIME = exports.MAX_KEEPALIVE = exports.MAX_CODE = exports.FRAME_TYPE_OFFFSET = exports.FLAGS_MASK = void 0;\nvar Frames_1 = require(\"./Frames\");\nexports.FLAGS_MASK = 0x3ff; // low 10 bits\nexports.FRAME_TYPE_OFFFSET = 10; // frame type is offset 10 bytes within the uint16 containing type + flags\nexports.MAX_CODE = 0x7fffffff; // uint31\nexports.MAX_KEEPALIVE = 0x7fffffff; // uint31\nexports.MAX_LIFETIME = 0x7fffffff; // uint31\nexports.MAX_METADATA_LENGTH = 0xffffff; // uint24\nexports.MAX_MIME_LENGTH = 0xff; // int8\nexports.MAX_REQUEST_COUNT = 0x7fffffff; // uint31\nexports.MAX_REQUEST_N = 0x7fffffff; // uint31\nexports.MAX_RESUME_LENGTH = 0xffff; // uint16\nexports.MAX_STREAM_ID = 0x7fffffff; // uint31\nexports.MAX_TTL = 0x7fffffff; // uint31\nexports.MAX_VERSION = 0xffff; // uint16\n/**\n * Mimimum value that would overflow bitwise operators (2^32).\n */\nvar BITWISE_OVERFLOW = 0x100000000;\n/**\n * Read a uint24 from a buffer starting at the given offset.\n */\nfunction readUInt24BE(buffer, offset) {\n    var val1 = buffer.readUInt8(offset) << 16;\n    var val2 = buffer.readUInt8(offset + 1) << 8;\n    var val3 = buffer.readUInt8(offset + 2);\n    return val1 | val2 | val3;\n}\nexports.readUInt24BE = readUInt24BE;\n/**\n * Writes a uint24 to a buffer starting at the given offset, returning the\n * offset of the next byte.\n */\nfunction writeUInt24BE(buffer, value, offset) {\n    offset = buffer.writeUInt8(value >>> 16, offset); // 3rd byte\n    offset = buffer.writeUInt8((value >>> 8) & 0xff, offset); // 2nd byte\n    return buffer.writeUInt8(value & 0xff, offset); // 1st byte\n}\nexports.writeUInt24BE = writeUInt24BE;\n/**\n * Read a uint64 (technically supports up to 53 bits per JS number\n * representation).\n */\nfunction readUInt64BE(buffer, offset) {\n    var high = buffer.readUInt32BE(offset);\n    var low = buffer.readUInt32BE(offset + 4);\n    return high * BITWISE_OVERFLOW + low;\n}\nexports.readUInt64BE = readUInt64BE;\n/**\n * Write a uint64 (technically supports up to 53 bits per JS number\n * representation).\n */\nfunction writeUInt64BE(buffer, value, offset) {\n    var high = (value / BITWISE_OVERFLOW) | 0;\n    var low = value % BITWISE_OVERFLOW;\n    offset = buffer.writeUInt32BE(high, offset); // first half of uint64\n    return buffer.writeUInt32BE(low, offset); // second half of uint64\n}\nexports.writeUInt64BE = writeUInt64BE;\n/**\n * Frame header is:\n * - stream id (uint32 = 4)\n * - type + flags (uint 16 = 2)\n */\nvar FRAME_HEADER_SIZE = 6;\n/**\n * Size of frame length and metadata length fields.\n */\nvar UINT24_SIZE = 3;\n/**\n * Reads a frame from a buffer that is prefixed with the frame length.\n */\nfunction deserializeFrameWithLength(buffer) {\n    var frameLength = readUInt24BE(buffer, 0);\n    return deserializeFrame(buffer.slice(UINT24_SIZE, UINT24_SIZE + frameLength));\n}\nexports.deserializeFrameWithLength = deserializeFrameWithLength;\n/**\n * Given a buffer that may contain zero or more length-prefixed frames followed\n * by zero or more bytes of a (partial) subsequent frame, returns an array of\n * the frames and an int representing the buffer offset.\n */\nfunction deserializeFrames(buffer) {\n    var offset, frameLength, frameStart, frameEnd, frameBuffer, frame;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                offset = 0;\n                _a.label = 1;\n            case 1:\n                if (!(offset + UINT24_SIZE < buffer.length)) return [3 /*break*/, 3];\n                frameLength = readUInt24BE(buffer, offset);\n                frameStart = offset + UINT24_SIZE;\n                frameEnd = frameStart + frameLength;\n                if (frameEnd > buffer.length) {\n                    // not all bytes of next frame received\n                    return [3 /*break*/, 3];\n                }\n                frameBuffer = buffer.slice(frameStart, frameEnd);\n                frame = deserializeFrame(frameBuffer);\n                offset = frameEnd;\n                return [4 /*yield*/, [frame, offset]];\n            case 2:\n                _a.sent();\n                return [3 /*break*/, 1];\n            case 3: return [2 /*return*/];\n        }\n    });\n}\nexports.deserializeFrames = deserializeFrames;\n/**\n * Writes a frame to a buffer with a length prefix.\n */\nfunction serializeFrameWithLength(frame) {\n    var buffer = serializeFrame(frame);\n    var lengthPrefixed = Buffer.allocUnsafe(buffer.length + UINT24_SIZE);\n    writeUInt24BE(lengthPrefixed, buffer.length, 0);\n    buffer.copy(lengthPrefixed, UINT24_SIZE);\n    return lengthPrefixed;\n}\nexports.serializeFrameWithLength = serializeFrameWithLength;\n/**\n * Read a frame from the buffer.\n */\nfunction deserializeFrame(buffer) {\n    var offset = 0;\n    var streamId = buffer.readInt32BE(offset);\n    offset += 4;\n    // invariant(\n    //   streamId >= 0,\n    //   'RSocketBinaryFraming: Invalid frame, expected a positive stream id, got `%s.',\n    //   streamId,\n    // );\n    var typeAndFlags = buffer.readUInt16BE(offset);\n    offset += 2;\n    var type = typeAndFlags >>> exports.FRAME_TYPE_OFFFSET; // keep highest 6 bits\n    var flags = typeAndFlags & exports.FLAGS_MASK; // keep lowest 10 bits\n    switch (type) {\n        case Frames_1.FrameTypes.SETUP:\n            return deserializeSetupFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.PAYLOAD:\n            return deserializePayloadFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.ERROR:\n            return deserializeErrorFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.KEEPALIVE:\n            return deserializeKeepAliveFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.REQUEST_FNF:\n            return deserializeRequestFnfFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.REQUEST_RESPONSE:\n            return deserializeRequestResponseFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.REQUEST_STREAM:\n            return deserializeRequestStreamFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.REQUEST_CHANNEL:\n            return deserializeRequestChannelFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.METADATA_PUSH:\n            return deserializeMetadataPushFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.REQUEST_N:\n            return deserializeRequestNFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.RESUME:\n            return deserializeResumeFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.RESUME_OK:\n            return deserializeResumeOkFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.CANCEL:\n            return deserializeCancelFrame(buffer, streamId, flags);\n        case Frames_1.FrameTypes.LEASE:\n            return deserializeLeaseFrame(buffer, streamId, flags);\n        default:\n        // invariant(\n        //   false,\n        //   \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n        //   getFrameTypeName(type)\n        // );\n    }\n}\nexports.deserializeFrame = deserializeFrame;\n/**\n * Convert the frame to a (binary) buffer.\n */\nfunction serializeFrame(frame) {\n    switch (frame.type) {\n        case Frames_1.FrameTypes.SETUP:\n            return serializeSetupFrame(frame);\n        case Frames_1.FrameTypes.PAYLOAD:\n            return serializePayloadFrame(frame);\n        case Frames_1.FrameTypes.ERROR:\n            return serializeErrorFrame(frame);\n        case Frames_1.FrameTypes.KEEPALIVE:\n            return serializeKeepAliveFrame(frame);\n        case Frames_1.FrameTypes.REQUEST_FNF:\n        case Frames_1.FrameTypes.REQUEST_RESPONSE:\n            return serializeRequestFrame(frame);\n        case Frames_1.FrameTypes.REQUEST_STREAM:\n        case Frames_1.FrameTypes.REQUEST_CHANNEL:\n            return serializeRequestManyFrame(frame);\n        case Frames_1.FrameTypes.METADATA_PUSH:\n            return serializeMetadataPushFrame(frame);\n        case Frames_1.FrameTypes.REQUEST_N:\n            return serializeRequestNFrame(frame);\n        case Frames_1.FrameTypes.RESUME:\n            return serializeResumeFrame(frame);\n        case Frames_1.FrameTypes.RESUME_OK:\n            return serializeResumeOkFrame(frame);\n        case Frames_1.FrameTypes.CANCEL:\n            return serializeCancelFrame(frame);\n        case Frames_1.FrameTypes.LEASE:\n            return serializeLeaseFrame(frame);\n        default:\n        // invariant(\n        //   false,\n        //   \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n        //   getFrameTypeName(frame.type)\n        // );\n    }\n}\nexports.serializeFrame = serializeFrame;\n/**\n * Byte size of frame without size prefix\n */\nfunction sizeOfFrame(frame) {\n    switch (frame.type) {\n        case Frames_1.FrameTypes.SETUP:\n            return sizeOfSetupFrame(frame);\n        case Frames_1.FrameTypes.PAYLOAD:\n            return sizeOfPayloadFrame(frame);\n        case Frames_1.FrameTypes.ERROR:\n            return sizeOfErrorFrame(frame);\n        case Frames_1.FrameTypes.KEEPALIVE:\n            return sizeOfKeepAliveFrame(frame);\n        case Frames_1.FrameTypes.REQUEST_FNF:\n        case Frames_1.FrameTypes.REQUEST_RESPONSE:\n            return sizeOfRequestFrame(frame);\n        case Frames_1.FrameTypes.REQUEST_STREAM:\n        case Frames_1.FrameTypes.REQUEST_CHANNEL:\n            return sizeOfRequestManyFrame(frame);\n        case Frames_1.FrameTypes.METADATA_PUSH:\n            return sizeOfMetadataPushFrame(frame);\n        case Frames_1.FrameTypes.REQUEST_N:\n            return sizeOfRequestNFrame(frame);\n        case Frames_1.FrameTypes.RESUME:\n            return sizeOfResumeFrame(frame);\n        case Frames_1.FrameTypes.RESUME_OK:\n            return sizeOfResumeOkFrame(frame);\n        case Frames_1.FrameTypes.CANCEL:\n            return sizeOfCancelFrame(frame);\n        case Frames_1.FrameTypes.LEASE:\n            return sizeOfLeaseFrame(frame);\n        default:\n        // invariant(\n        //   false,\n        //   \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n        //   getFrameTypeName(frame.type)\n        // );\n    }\n}\nexports.sizeOfFrame = sizeOfFrame;\n/**\n * Writes a SETUP frame into a new buffer and returns it.\n *\n * Prefix size is:\n * - version (2x uint16 = 4)\n * - keepalive (uint32 = 4)\n * - lifetime (uint32 = 4)\n * - mime lengths (2x uint8 = 2)\n */\nvar SETUP_FIXED_SIZE = 14;\nvar RESUME_TOKEN_LENGTH_SIZE = 2;\nfunction serializeSetupFrame(frame) {\n    var resumeTokenLength = frame.resumeToken != null ? frame.resumeToken.byteLength : 0;\n    var metadataMimeTypeLength = frame.metadataMimeType != null\n        ? Buffer.byteLength(frame.metadataMimeType, \"ascii\")\n        : 0;\n    var dataMimeTypeLength = frame.dataMimeType != null\n        ? Buffer.byteLength(frame.dataMimeType, \"ascii\")\n        : 0;\n    var payloadLength = getPayloadLength(frame);\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE +\n        SETUP_FIXED_SIZE + //\n        (resumeTokenLength ? RESUME_TOKEN_LENGTH_SIZE + resumeTokenLength : 0) +\n        metadataMimeTypeLength +\n        dataMimeTypeLength +\n        payloadLength);\n    var offset = writeHeader(frame, buffer);\n    offset = buffer.writeUInt16BE(frame.majorVersion, offset);\n    offset = buffer.writeUInt16BE(frame.minorVersion, offset);\n    offset = buffer.writeUInt32BE(frame.keepAlive, offset);\n    offset = buffer.writeUInt32BE(frame.lifetime, offset);\n    if (frame.flags & Frames_1.Flags.RESUME_ENABLE) {\n        offset = buffer.writeUInt16BE(resumeTokenLength, offset);\n        if (frame.resumeToken != null) {\n            offset += frame.resumeToken.copy(buffer, offset);\n        }\n    }\n    offset = buffer.writeUInt8(metadataMimeTypeLength, offset);\n    if (frame.metadataMimeType != null) {\n        offset += buffer.write(frame.metadataMimeType, offset, offset + metadataMimeTypeLength, \"ascii\");\n    }\n    offset = buffer.writeUInt8(dataMimeTypeLength, offset);\n    if (frame.dataMimeType != null) {\n        offset += buffer.write(frame.dataMimeType, offset, offset + dataMimeTypeLength, \"ascii\");\n    }\n    writePayload(frame, buffer, offset);\n    return buffer;\n}\nfunction sizeOfSetupFrame(frame) {\n    var resumeTokenLength = frame.resumeToken != null ? frame.resumeToken.byteLength : 0;\n    var metadataMimeTypeLength = frame.metadataMimeType != null\n        ? Buffer.byteLength(frame.metadataMimeType, \"ascii\")\n        : 0;\n    var dataMimeTypeLength = frame.dataMimeType != null\n        ? Buffer.byteLength(frame.dataMimeType, \"ascii\")\n        : 0;\n    var payloadLength = getPayloadLength(frame);\n    return (FRAME_HEADER_SIZE +\n        SETUP_FIXED_SIZE + //\n        (resumeTokenLength ? RESUME_TOKEN_LENGTH_SIZE + resumeTokenLength : 0) +\n        metadataMimeTypeLength +\n        dataMimeTypeLength +\n        payloadLength);\n}\n/**\n * Reads a SETUP frame from the buffer and returns it.\n */\nfunction deserializeSetupFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId === 0,\n    //   'RSocketBinaryFraming: Invalid SETUP frame, expected stream id to be 0.',\n    // );\n    var length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var majorVersion = buffer.readUInt16BE(offset);\n    offset += 2;\n    var minorVersion = buffer.readUInt16BE(offset);\n    offset += 2;\n    var keepAlive = buffer.readInt32BE(offset);\n    offset += 4;\n    // invariant(\n    //   keepAlive >= 0 && keepAlive <= MAX_KEEPALIVE,\n    //   'RSocketBinaryFraming: Invalid SETUP frame, expected keepAlive to be ' +\n    //     '>= 0 and <= %s. Got `%s`.',\n    //   MAX_KEEPALIVE,\n    //   keepAlive,\n    // );\n    var lifetime = buffer.readInt32BE(offset);\n    offset += 4;\n    // invariant(\n    //   lifetime >= 0 && lifetime <= MAX_LIFETIME,\n    //   'RSocketBinaryFraming: Invalid SETUP frame, expected lifetime to be ' +\n    //     '>= 0 and <= %s. Got `%s`.',\n    //   MAX_LIFETIME,\n    //   lifetime,\n    // );\n    var resumeToken = null;\n    if (flags & Frames_1.Flags.RESUME_ENABLE) {\n        var resumeTokenLength = buffer.readInt16BE(offset);\n        offset += 2;\n        // invariant(\n        //   resumeTokenLength >= 0 && resumeTokenLength <= MAX_RESUME_LENGTH,\n        //   'RSocketBinaryFraming: Invalid SETUP frame, expected resumeToken length ' +\n        //     'to be >= 0 and <= %s. Got `%s`.',\n        //   MAX_RESUME_LENGTH,\n        //   resumeTokenLength,\n        // );\n        resumeToken = buffer.slice(offset, offset + resumeTokenLength);\n        offset += resumeTokenLength;\n    }\n    var metadataMimeTypeLength = buffer.readUInt8(offset);\n    offset += 1;\n    var metadataMimeType = buffer.toString(\"ascii\", offset, offset + metadataMimeTypeLength);\n    offset += metadataMimeTypeLength;\n    var dataMimeTypeLength = buffer.readUInt8(offset);\n    offset += 1;\n    var dataMimeType = buffer.toString(\"ascii\", offset, offset + dataMimeTypeLength);\n    offset += dataMimeTypeLength;\n    var frame = {\n        data: null,\n        dataMimeType: dataMimeType,\n        flags: flags,\n        keepAlive: keepAlive,\n        lifetime: lifetime,\n        majorVersion: majorVersion,\n        metadata: null,\n        metadataMimeType: metadataMimeType,\n        minorVersion: minorVersion,\n        resumeToken: resumeToken,\n        // streamId,\n        streamId: 0,\n        type: Frames_1.FrameTypes.SETUP,\n    };\n    readPayload(buffer, frame, offset);\n    return frame;\n}\n/**\n * Writes an ERROR frame into a new buffer and returns it.\n *\n * Prefix size is for the error code (uint32 = 4).\n */\nvar ERROR_FIXED_SIZE = 4;\nfunction serializeErrorFrame(frame) {\n    var messageLength = frame.message != null ? Buffer.byteLength(frame.message, \"utf8\") : 0;\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + ERROR_FIXED_SIZE + messageLength);\n    var offset = writeHeader(frame, buffer);\n    offset = buffer.writeUInt32BE(frame.code, offset);\n    if (frame.message != null) {\n        buffer.write(frame.message, offset, offset + messageLength, \"utf8\");\n    }\n    return buffer;\n}\nfunction sizeOfErrorFrame(frame) {\n    var messageLength = frame.message != null ? Buffer.byteLength(frame.message, \"utf8\") : 0;\n    return FRAME_HEADER_SIZE + ERROR_FIXED_SIZE + messageLength;\n}\n/**\n * Reads an ERROR frame from the buffer and returns it.\n */\nfunction deserializeErrorFrame(buffer, streamId, flags) {\n    var length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var code = buffer.readInt32BE(offset);\n    offset += 4;\n    // invariant(\n    //   code >= 0 && code <= MAX_CODE,\n    //   \"RSocketBinaryFraming: Invalid ERROR frame, expected code to be >= 0 and <= %s. Got `%s`.\",\n    //   MAX_CODE,\n    //   code\n    // );\n    var messageLength = buffer.length - offset;\n    var message = \"\";\n    if (messageLength > 0) {\n        message = buffer.toString(\"utf8\", offset, offset + messageLength);\n        offset += messageLength;\n    }\n    return {\n        code: code,\n        flags: flags,\n        message: message,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.ERROR,\n    };\n}\n/**\n * Writes a KEEPALIVE frame into a new buffer and returns it.\n *\n * Prefix size is for the last received position (uint64 = 8).\n */\nvar KEEPALIVE_FIXED_SIZE = 8;\nfunction serializeKeepAliveFrame(frame) {\n    var dataLength = frame.data != null ? frame.data.byteLength : 0;\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + KEEPALIVE_FIXED_SIZE + dataLength);\n    var offset = writeHeader(frame, buffer);\n    offset = writeUInt64BE(buffer, frame.lastReceivedPosition, offset);\n    if (frame.data != null) {\n        frame.data.copy(buffer, offset);\n    }\n    return buffer;\n}\nfunction sizeOfKeepAliveFrame(frame) {\n    var dataLength = frame.data != null ? frame.data.byteLength : 0;\n    return FRAME_HEADER_SIZE + KEEPALIVE_FIXED_SIZE + dataLength;\n}\n/**\n * Reads a KEEPALIVE frame from the buffer and returns it.\n */\nfunction deserializeKeepAliveFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId === 0,\n    //   \"RSocketBinaryFraming: Invalid KEEPALIVE frame, expected stream id to be 0.\"\n    // );\n    var length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var lastReceivedPosition = readUInt64BE(buffer, offset);\n    offset += 8;\n    var data = null;\n    if (offset < buffer.length) {\n        data = buffer.slice(offset, buffer.length);\n    }\n    return {\n        data: data,\n        flags: flags,\n        lastReceivedPosition: lastReceivedPosition,\n        // streamId,\n        streamId: 0,\n        type: Frames_1.FrameTypes.KEEPALIVE,\n    };\n}\n/**\n * Writes a LEASE frame into a new buffer and returns it.\n *\n * Prefix size is for the ttl (uint32) and requestcount (uint32).\n */\nvar LEASE_FIXED_SIZE = 8;\nfunction serializeLeaseFrame(frame) {\n    var metaLength = frame.metadata != null ? frame.metadata.byteLength : 0;\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + LEASE_FIXED_SIZE + metaLength);\n    var offset = writeHeader(frame, buffer);\n    offset = buffer.writeUInt32BE(frame.ttl, offset);\n    offset = buffer.writeUInt32BE(frame.requestCount, offset);\n    if (frame.metadata != null) {\n        frame.metadata.copy(buffer, offset);\n    }\n    return buffer;\n}\nfunction sizeOfLeaseFrame(frame) {\n    var metaLength = frame.metadata != null ? frame.metadata.byteLength : 0;\n    return FRAME_HEADER_SIZE + LEASE_FIXED_SIZE + metaLength;\n}\n/**\n * Reads a LEASE frame from the buffer and returns it.\n */\nfunction deserializeLeaseFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId === 0,\n    //   \"RSocketBinaryFraming: Invalid LEASE frame, expected stream id to be 0.\"\n    // );\n    // const length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var ttl = buffer.readUInt32BE(offset);\n    offset += 4;\n    var requestCount = buffer.readUInt32BE(offset);\n    offset += 4;\n    var metadata = null;\n    if (offset < buffer.length) {\n        metadata = buffer.slice(offset, buffer.length);\n    }\n    return {\n        flags: flags,\n        metadata: metadata,\n        requestCount: requestCount,\n        // streamId,\n        streamId: 0,\n        ttl: ttl,\n        type: Frames_1.FrameTypes.LEASE,\n    };\n}\n/**\n * Writes a REQUEST_FNF or REQUEST_RESPONSE frame to a new buffer and returns\n * it.\n *\n * Note that these frames have the same shape and only differ in their type.\n */\nfunction serializeRequestFrame(frame) {\n    var payloadLength = getPayloadLength(frame);\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + payloadLength);\n    var offset = writeHeader(frame, buffer);\n    writePayload(frame, buffer, offset);\n    return buffer;\n}\nfunction sizeOfRequestFrame(frame) {\n    var payloadLength = getPayloadLength(frame);\n    return FRAME_HEADER_SIZE + payloadLength;\n}\n/**\n * Writes a METADATA_PUSH frame to a new buffer and returns\n * it.\n */\nfunction serializeMetadataPushFrame(frame) {\n    var metadata = frame.metadata;\n    if (metadata != null) {\n        var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + metadata.byteLength);\n        var offset = writeHeader(frame, buffer);\n        metadata.copy(buffer, offset);\n        return buffer;\n    }\n    else {\n        var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE);\n        writeHeader(frame, buffer);\n        return buffer;\n    }\n}\nfunction sizeOfMetadataPushFrame(frame) {\n    return (FRAME_HEADER_SIZE + (frame.metadata != null ? frame.metadata.byteLength : 0));\n}\nfunction deserializeRequestFnfFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_FNF frame, expected stream id to be > 0.\"\n    // );\n    var length = buffer.length;\n    var frame = {\n        data: null,\n        flags: flags,\n        // length,\n        metadata: null,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.REQUEST_FNF,\n    };\n    readPayload(buffer, frame, FRAME_HEADER_SIZE);\n    return frame;\n}\nfunction deserializeRequestResponseFrame(buffer, streamId, flags) {\n    // invariant(\n    // streamId > 0,\n    // \"RSocketBinaryFraming: Invalid REQUEST_RESPONSE frame, expected stream id to be > 0.\"\n    // );\n    // const length = buffer.length;\n    var frame = {\n        data: null,\n        flags: flags,\n        // length,\n        metadata: null,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.REQUEST_RESPONSE,\n    };\n    readPayload(buffer, frame, FRAME_HEADER_SIZE);\n    return frame;\n}\nfunction deserializeMetadataPushFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId === 0,\n    //   \"RSocketBinaryFraming: Invalid METADATA_PUSH frame, expected stream id to be 0.\"\n    // );\n    // const length = buffer.length;\n    return {\n        flags: flags,\n        // length,\n        metadata: length === FRAME_HEADER_SIZE\n            ? null\n            : buffer.slice(FRAME_HEADER_SIZE, length),\n        // streamId,\n        streamId: 0,\n        type: Frames_1.FrameTypes.METADATA_PUSH,\n    };\n}\n/**\n * Writes a REQUEST_STREAM or REQUEST_CHANNEL frame to a new buffer and returns\n * it.\n *\n * Note that these frames have the same shape and only differ in their type.\n *\n * Prefix size is for requestN (uint32 = 4).\n */\nvar REQUEST_MANY_HEADER = 4;\nfunction serializeRequestManyFrame(frame) {\n    var payloadLength = getPayloadLength(frame);\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + REQUEST_MANY_HEADER + payloadLength);\n    var offset = writeHeader(frame, buffer);\n    offset = buffer.writeUInt32BE(frame.requestN, offset);\n    writePayload(frame, buffer, offset);\n    return buffer;\n}\nfunction sizeOfRequestManyFrame(frame) {\n    var payloadLength = getPayloadLength(frame);\n    return FRAME_HEADER_SIZE + REQUEST_MANY_HEADER + payloadLength;\n}\nfunction deserializeRequestStreamFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected stream id to be > 0.\"\n    // );\n    var length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var requestN = buffer.readInt32BE(offset);\n    offset += 4;\n    // invariant(\n    //   requestN > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n    //   requestN\n    // );\n    var frame = {\n        data: null,\n        flags: flags,\n        // length,\n        metadata: null,\n        requestN: requestN,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.REQUEST_STREAM,\n    };\n    readPayload(buffer, frame, offset);\n    return frame;\n}\nfunction deserializeRequestChannelFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_CHANNEL frame, expected stream id to be > 0.\"\n    // );\n    var length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var requestN = buffer.readInt32BE(offset);\n    offset += 4;\n    // invariant(\n    //   requestN > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n    //   requestN\n    // );\n    var frame = {\n        data: null,\n        flags: flags,\n        // length,\n        metadata: null,\n        requestN: requestN,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.REQUEST_CHANNEL,\n    };\n    readPayload(buffer, frame, offset);\n    return frame;\n}\n/**\n * Writes a REQUEST_N frame to a new buffer and returns it.\n *\n * Prefix size is for requestN (uint32 = 4).\n */\nvar REQUEST_N_HEADER = 4;\nfunction serializeRequestNFrame(frame) {\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + REQUEST_N_HEADER);\n    var offset = writeHeader(frame, buffer);\n    buffer.writeUInt32BE(frame.requestN, offset);\n    return buffer;\n}\nfunction sizeOfRequestNFrame(frame) {\n    return FRAME_HEADER_SIZE + REQUEST_N_HEADER;\n}\nfunction deserializeRequestNFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_N frame, expected stream id to be > 0.\"\n    // );\n    var length = buffer.length;\n    var requestN = buffer.readInt32BE(FRAME_HEADER_SIZE);\n    // invariant(\n    //   requestN > 0,\n    //   \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n    //   requestN\n    // );\n    return {\n        flags: flags,\n        // length,\n        requestN: requestN,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.REQUEST_N,\n    };\n}\n/**\n * Writes a CANCEL frame to a new buffer and returns it.\n */\nfunction serializeCancelFrame(frame) {\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE);\n    writeHeader(frame, buffer);\n    return buffer;\n}\nfunction sizeOfCancelFrame(frame) {\n    return FRAME_HEADER_SIZE;\n}\nfunction deserializeCancelFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId > 0,\n    //   \"RSocketBinaryFraming: Invalid CANCEL frame, expected stream id to be > 0.\"\n    // );\n    var length = buffer.length;\n    return {\n        flags: flags,\n        // length,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.CANCEL,\n    };\n}\n/**\n * Writes a PAYLOAD frame to a new buffer and returns it.\n */\nfunction serializePayloadFrame(frame) {\n    var payloadLength = getPayloadLength(frame);\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + payloadLength);\n    var offset = writeHeader(frame, buffer);\n    writePayload(frame, buffer, offset);\n    return buffer;\n}\nfunction sizeOfPayloadFrame(frame) {\n    var payloadLength = getPayloadLength(frame);\n    return FRAME_HEADER_SIZE + payloadLength;\n}\nfunction deserializePayloadFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId > 0,\n    //   \"RSocketBinaryFraming: Invalid PAYLOAD frame, expected stream id to be > 0.\"\n    // );\n    var length = buffer.length;\n    var frame = {\n        data: null,\n        flags: flags,\n        // length,\n        metadata: null,\n        streamId: streamId,\n        type: Frames_1.FrameTypes.PAYLOAD,\n    };\n    readPayload(buffer, frame, FRAME_HEADER_SIZE);\n    return frame;\n}\n/**\n * Writes a RESUME frame into a new buffer and returns it.\n *\n * Fixed size is:\n * - major version (uint16 = 2)\n * - minor version (uint16 = 2)\n * - token length (uint16 = 2)\n * - client position (uint64 = 8)\n * - server position (uint64 = 8)\n */\nvar RESUME_FIXED_SIZE = 22;\nfunction serializeResumeFrame(frame) {\n    var resumeTokenLength = frame.resumeToken.byteLength;\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + RESUME_FIXED_SIZE + resumeTokenLength);\n    var offset = writeHeader(frame, buffer);\n    offset = buffer.writeUInt16BE(frame.majorVersion, offset);\n    offset = buffer.writeUInt16BE(frame.minorVersion, offset);\n    offset = buffer.writeUInt16BE(resumeTokenLength, offset);\n    offset += frame.resumeToken.copy(buffer, offset);\n    offset = writeUInt64BE(buffer, frame.serverPosition, offset);\n    writeUInt64BE(buffer, frame.clientPosition, offset);\n    return buffer;\n}\nfunction sizeOfResumeFrame(frame) {\n    var resumeTokenLength = frame.resumeToken.byteLength;\n    return FRAME_HEADER_SIZE + RESUME_FIXED_SIZE + resumeTokenLength;\n}\nfunction deserializeResumeFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId === 0,\n    //   \"RSocketBinaryFraming: Invalid RESUME frame, expected stream id to be 0.\"\n    // );\n    var length = buffer.length;\n    var offset = FRAME_HEADER_SIZE;\n    var majorVersion = buffer.readUInt16BE(offset);\n    offset += 2;\n    var minorVersion = buffer.readUInt16BE(offset);\n    offset += 2;\n    var resumeTokenLength = buffer.readInt16BE(offset);\n    offset += 2;\n    // invariant(\n    //   resumeTokenLength >= 0 && resumeTokenLength <= MAX_RESUME_LENGTH,\n    //   \"RSocketBinaryFraming: Invalid SETUP frame, expected resumeToken length \" +\n    //     \"to be >= 0 and <= %s. Got `%s`.\",\n    //   MAX_RESUME_LENGTH,\n    //   resumeTokenLength\n    // );\n    var resumeToken = buffer.slice(offset, offset + resumeTokenLength);\n    offset += resumeTokenLength;\n    var serverPosition = readUInt64BE(buffer, offset);\n    offset += 8;\n    var clientPosition = readUInt64BE(buffer, offset);\n    offset += 8;\n    return {\n        clientPosition: clientPosition,\n        flags: flags,\n        // length,\n        majorVersion: majorVersion,\n        minorVersion: minorVersion,\n        resumeToken: resumeToken,\n        serverPosition: serverPosition,\n        // streamId,\n        streamId: 0,\n        type: Frames_1.FrameTypes.RESUME,\n    };\n}\n/**\n * Writes a RESUME_OK frame into a new buffer and returns it.\n *\n * Fixed size is:\n * - client position (uint64 = 8)\n */\nvar RESUME_OK_FIXED_SIZE = 8;\nfunction serializeResumeOkFrame(frame) {\n    var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + RESUME_OK_FIXED_SIZE);\n    var offset = writeHeader(frame, buffer);\n    writeUInt64BE(buffer, frame.clientPosition, offset);\n    return buffer;\n}\nfunction sizeOfResumeOkFrame(frame) {\n    return FRAME_HEADER_SIZE + RESUME_OK_FIXED_SIZE;\n}\nfunction deserializeResumeOkFrame(buffer, streamId, flags) {\n    // invariant(\n    //   streamId === 0,\n    //   \"RSocketBinaryFraming: Invalid RESUME frame, expected stream id to be 0.\"\n    // );\n    var length = buffer.length;\n    var clientPosition = readUInt64BE(buffer, FRAME_HEADER_SIZE);\n    return {\n        clientPosition: clientPosition,\n        flags: flags,\n        // length,\n        // streamId,\n        streamId: 0,\n        type: Frames_1.FrameTypes.RESUME_OK,\n    };\n}\n/**\n * Write the header of the frame into the buffer.\n */\nfunction writeHeader(frame, buffer) {\n    var offset = buffer.writeInt32BE(frame.streamId, 0);\n    // shift frame to high 6 bits, extract lowest 10 bits from flags\n    return buffer.writeUInt16BE((frame.type << exports.FRAME_TYPE_OFFFSET) | (frame.flags & exports.FLAGS_MASK), offset);\n}\n/**\n * Determine the length of the payload section of a frame. Only applies to\n * frame types that MAY have both metadata and data.\n */\nfunction getPayloadLength(frame) {\n    var payloadLength = 0;\n    if (frame.data != null) {\n        payloadLength += frame.data.byteLength;\n    }\n    if (Frames_1.Flags.hasMetadata(frame.flags)) {\n        payloadLength += UINT24_SIZE;\n        if (frame.metadata != null) {\n            payloadLength += frame.metadata.byteLength;\n        }\n    }\n    return payloadLength;\n}\n/**\n * Write the payload of a frame into the given buffer. Only applies to frame\n * types that MAY have both metadata and data.\n */\nfunction writePayload(frame, buffer, offset) {\n    if (Frames_1.Flags.hasMetadata(frame.flags)) {\n        if (frame.metadata != null) {\n            var metaLength = frame.metadata.byteLength;\n            offset = writeUInt24BE(buffer, metaLength, offset);\n            offset += frame.metadata.copy(buffer, offset);\n        }\n        else {\n            offset = writeUInt24BE(buffer, 0, offset);\n        }\n    }\n    if (frame.data != null) {\n        frame.data.copy(buffer, offset);\n    }\n}\n/**\n * Read the payload from a buffer and write it into the frame. Only applies to\n * frame types that MAY have both metadata and data.\n */\nfunction readPayload(buffer, frame, offset) {\n    if (Frames_1.Flags.hasMetadata(frame.flags)) {\n        var metaLength = readUInt24BE(buffer, offset);\n        offset += UINT24_SIZE;\n        if (metaLength > 0) {\n            frame.metadata = buffer.slice(offset, offset + metaLength);\n            offset += metaLength;\n        }\n    }\n    if (offset < buffer.length) {\n        frame.data = buffer.slice(offset, buffer.length);\n    }\n}\n// exported as class to facilitate testing\nvar Deserializer = /** @class */ (function () {\n    function Deserializer() {\n    }\n    /**\n     * Read a frame from the buffer.\n     */\n    Deserializer.prototype.deserializeFrame = function (buffer) {\n        return deserializeFrame(buffer);\n    };\n    /**\n     * Reads a frame from a buffer that is prefixed with the frame length.\n     */\n    Deserializer.prototype.deserializeFrameWithLength = function (buffer) {\n        return deserializeFrameWithLength(buffer);\n    };\n    /**\n     * Given a buffer that may contain zero or more length-prefixed frames followed\n     * by zero or more bytes of a (partial) subsequent frame, returns an array of\n     * the frames and a int representing the buffer offset.\n     */\n    Deserializer.prototype.deserializeFrames = function (buffer) {\n        return deserializeFrames(buffer);\n    };\n    return Deserializer;\n}());\nexports.Deserializer = Deserializer;\n//# sourceMappingURL=Codecs.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Common.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deferred = void 0;\nvar Deferred = /** @class */ (function () {\n    function Deferred() {\n        this._done = false;\n        this.onCloseCallbacks = [];\n    }\n    Object.defineProperty(Deferred.prototype, \"done\", {\n        get: function () {\n            return this._done;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Signals to an observer that the Deferred operation has been closed, which invokes\n     * the provided `onClose` callback.\n     */\n    Deferred.prototype.close = function (error) {\n        var e_1, _a, e_2, _b;\n        if (this.done) {\n            console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        this._done = true;\n        this._error = error;\n        if (error) {\n            try {\n                for (var _c = __values(this.onCloseCallbacks), _d = _c.next(); !_d.done; _d = _c.next()) {\n                    var callback = _d.value;\n                    callback(error);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            return;\n        }\n        try {\n            for (var _e = __values(this.onCloseCallbacks), _f = _e.next(); !_f.done; _f = _e.next()) {\n                var callback = _f.value;\n                callback();\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n    };\n    /**\n     * Registers a callback to be called when the Closeable is closed. optionally with an Error.\n     */\n    Deferred.prototype.onClose = function (callback) {\n        if (this._done) {\n            callback(this._error);\n            return;\n        }\n        this.onCloseCallbacks.push(callback);\n    };\n    return Deferred;\n}());\nexports.Deferred = Deferred;\n//# sourceMappingURL=Deferred.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorCodes = exports.RSocketError = void 0;\nvar RSocketError = /** @class */ (function (_super) {\n    __extends(RSocketError, _super);\n    function RSocketError(code, message) {\n        var _this = _super.call(this, message) || this;\n        _this.code = code;\n        return _this;\n    }\n    return RSocketError;\n}(Error));\nexports.RSocketError = RSocketError;\nvar ErrorCodes;\n(function (ErrorCodes) {\n    ErrorCodes[ErrorCodes[\"RESERVED\"] = 0] = \"RESERVED\";\n    ErrorCodes[ErrorCodes[\"INVALID_SETUP\"] = 1] = \"INVALID_SETUP\";\n    ErrorCodes[ErrorCodes[\"UNSUPPORTED_SETUP\"] = 2] = \"UNSUPPORTED_SETUP\";\n    ErrorCodes[ErrorCodes[\"REJECTED_SETUP\"] = 3] = \"REJECTED_SETUP\";\n    ErrorCodes[ErrorCodes[\"REJECTED_RESUME\"] = 4] = \"REJECTED_RESUME\";\n    ErrorCodes[ErrorCodes[\"CONNECTION_CLOSE\"] = 258] = \"CONNECTION_CLOSE\";\n    ErrorCodes[ErrorCodes[\"CONNECTION_ERROR\"] = 257] = \"CONNECTION_ERROR\";\n    ErrorCodes[ErrorCodes[\"APPLICATION_ERROR\"] = 513] = \"APPLICATION_ERROR\";\n    ErrorCodes[ErrorCodes[\"REJECTED\"] = 514] = \"REJECTED\";\n    ErrorCodes[ErrorCodes[\"CANCELED\"] = 515] = \"CANCELED\";\n    ErrorCodes[ErrorCodes[\"INVALID\"] = 516] = \"INVALID\";\n    ErrorCodes[ErrorCodes[\"RESERVED_EXTENSION\"] = 4294967295] = \"RESERVED_EXTENSION\";\n})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {}));\n//# sourceMappingURL=Errors.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=RSocket.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\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;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = exports.ResumableClientServerInputMultiplexerDemultiplexer = exports.ClientServerInputMultiplexerDemultiplexer = exports.StreamIdGenerator = void 0;\nvar _1 = require(\".\");\nvar Deferred_1 = require(\"./Deferred\");\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar StreamIdGenerator;\n(function (StreamIdGenerator) {\n    function create(seedId) {\n        return new StreamIdGeneratorImpl(seedId);\n    }\n    StreamIdGenerator.create = create;\n    var StreamIdGeneratorImpl = /** @class */ (function () {\n        function StreamIdGeneratorImpl(currentId) {\n            this.currentId = currentId;\n        }\n        StreamIdGeneratorImpl.prototype.next = function (handler) {\n            var nextId = this.currentId + 2;\n            if (!handler(nextId)) {\n                return;\n            }\n            this.currentId = nextId;\n        };\n        return StreamIdGeneratorImpl;\n    }());\n})(StreamIdGenerator = exports.StreamIdGenerator || (exports.StreamIdGenerator = {}));\nvar ClientServerInputMultiplexerDemultiplexer = /** @class */ (function (_super) {\n    __extends(ClientServerInputMultiplexerDemultiplexer, _super);\n    function ClientServerInputMultiplexerDemultiplexer(streamIdSupplier, outbound, closeable) {\n        var _this = _super.call(this) || this;\n        _this.streamIdSupplier = streamIdSupplier;\n        _this.outbound = outbound;\n        _this.closeable = closeable;\n        _this.registry = {};\n        closeable.onClose(_this.close.bind(_this));\n        return _this;\n    }\n    ClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n        if (Frames_1.Frame.isConnection(frame)) {\n            if (frame.type === _1.FrameTypes.RESERVED) {\n                // TODO: throw\n                return;\n            }\n            this.connectionFramesHandler.handle(frame);\n            // TODO: Connection Handler\n        }\n        else if (Frames_1.Frame.isRequest(frame)) {\n            if (this.registry[frame.streamId]) {\n                // TODO: Send error and close connection\n                return;\n            }\n            this.requestFramesHandler.handle(frame, this);\n        }\n        else {\n            var handler = this.registry[frame.streamId];\n            if (!handler) {\n                // TODO: add validation\n                return;\n            }\n            handler.handle(frame);\n        }\n        // TODO: add extensions support\n    };\n    ClientServerInputMultiplexerDemultiplexer.prototype.connectionInbound = function (handler) {\n        if (this.connectionFramesHandler) {\n            throw new Error(\"Connection frame handler has already been installed\");\n        }\n        this.connectionFramesHandler = handler;\n    };\n    ClientServerInputMultiplexerDemultiplexer.prototype.handleRequestStream = function (handler) {\n        if (this.requestFramesHandler) {\n            throw new Error(\"Stream handler has already been installed\");\n        }\n        this.requestFramesHandler = handler;\n    };\n    ClientServerInputMultiplexerDemultiplexer.prototype.send = function (frame) {\n        this.outbound.send(frame);\n    };\n    Object.defineProperty(ClientServerInputMultiplexerDemultiplexer.prototype, \"connectionOutbound\", {\n        get: function () {\n            return this;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ClientServerInputMultiplexerDemultiplexer.prototype.createRequestStream = function (streamHandler) {\n        var _this = this;\n        // handle requester side stream registration\n        if (this.done) {\n            streamHandler.handleReject(new Error(\"Already closed\"));\n            return;\n        }\n        var registry = this.registry;\n        this.streamIdSupplier.next(function (streamId) { return streamHandler.handleReady(streamId, _this); }, Object.keys(registry));\n    };\n    ClientServerInputMultiplexerDemultiplexer.prototype.connect = function (handler) {\n        this.registry[handler.streamId] = handler;\n    };\n    ClientServerInputMultiplexerDemultiplexer.prototype.disconnect = function (stream) {\n        delete this.registry[stream.streamId];\n    };\n    ClientServerInputMultiplexerDemultiplexer.prototype.close = function (error) {\n        if (this.done) {\n            _super.prototype.close.call(this, error);\n            return;\n        }\n        for (var streamId in this.registry) {\n            var stream = this.registry[streamId];\n            stream.close(new Error(\"Closed. \".concat(error ? \"Original cause [\".concat(error, \"].\") : \"\")));\n        }\n        _super.prototype.close.call(this, error);\n    };\n    return ClientServerInputMultiplexerDemultiplexer;\n}(Deferred_1.Deferred));\nexports.ClientServerInputMultiplexerDemultiplexer = ClientServerInputMultiplexerDemultiplexer;\nvar ResumableClientServerInputMultiplexerDemultiplexer = /** @class */ (function (_super) {\n    __extends(ResumableClientServerInputMultiplexerDemultiplexer, _super);\n    function ResumableClientServerInputMultiplexerDemultiplexer(streamIdSupplier, outbound, closeable, frameStore, token, sessionStoreOrReconnector, sessionTimeout) {\n        var _this = _super.call(this, streamIdSupplier, outbound, new Deferred_1.Deferred()) || this;\n        _this.frameStore = frameStore;\n        _this.token = token;\n        _this.sessionTimeout = sessionTimeout;\n        if (sessionStoreOrReconnector instanceof Function) {\n            _this.reconnector = sessionStoreOrReconnector;\n        }\n        else {\n            _this.sessionStore = sessionStoreOrReconnector;\n        }\n        closeable.onClose(_this.handleConnectionClose.bind(_this));\n        return _this;\n    }\n    ResumableClientServerInputMultiplexerDemultiplexer.prototype.send = function (frame) {\n        if (Frames_1.Frame.isConnection(frame)) {\n            if (frame.type === _1.FrameTypes.KEEPALIVE) {\n                frame.lastReceivedPosition = this.frameStore.lastReceivedFramePosition;\n            }\n            else if (frame.type === _1.FrameTypes.ERROR) {\n                this.outbound.send(frame);\n                if (this.sessionStore) {\n                    delete this.sessionStore[this.token];\n                }\n                _super.prototype.close.call(this, new Errors_1.RSocketError(frame.code, frame.message));\n                return;\n            }\n        }\n        else {\n            this.frameStore.store(frame);\n        }\n        this.outbound.send(frame);\n    };\n    ResumableClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n        if (Frames_1.Frame.isConnection(frame)) {\n            if (frame.type === _1.FrameTypes.KEEPALIVE) {\n                try {\n                    this.frameStore.dropTo(frame.lastReceivedPosition);\n                }\n                catch (re) {\n                    this.outbound.send({\n                        type: _1.FrameTypes.ERROR,\n                        streamId: 0,\n                        flags: _1.Flags.NONE,\n                        code: re.code,\n                        message: re.message,\n                    });\n                    this.close(re);\n                }\n            }\n            else if (frame.type === _1.FrameTypes.ERROR) {\n                _super.prototype.handle.call(this, frame);\n                if (this.sessionStore) {\n                    delete this.sessionStore[this.token];\n                }\n                _super.prototype.close.call(this, new Errors_1.RSocketError(frame.code, frame.message));\n                return;\n            }\n        }\n        else {\n            this.frameStore.record(frame);\n        }\n        _super.prototype.handle.call(this, frame);\n    };\n    ResumableClientServerInputMultiplexerDemultiplexer.prototype.resume = function (frame, outbound, closeable) {\n        this.outbound = outbound;\n        switch (frame.type) {\n            case _1.FrameTypes.RESUME: {\n                clearTimeout(this.timeoutId);\n                if (this.frameStore.lastReceivedFramePosition < frame.clientPosition) {\n                    var e = new Errors_1.RSocketError(_1.ErrorCodes.REJECTED_RESUME, \"Impossible to resume since first available client frame position is greater than last received server frame position\");\n                    this.outbound.send({\n                        type: _1.FrameTypes.ERROR,\n                        streamId: 0,\n                        flags: _1.Flags.NONE,\n                        code: e.code,\n                        message: e.message,\n                    });\n                    this.close(e);\n                    return;\n                }\n                try {\n                    this.frameStore.dropTo(frame.serverPosition);\n                }\n                catch (re) {\n                    this.outbound.send({\n                        type: _1.FrameTypes.ERROR,\n                        streamId: 0,\n                        flags: _1.Flags.NONE,\n                        code: re.code,\n                        message: re.message,\n                    });\n                    this.close(re);\n                    return;\n                }\n                this.outbound.send({\n                    type: _1.FrameTypes.RESUME_OK,\n                    streamId: 0,\n                    flags: _1.Flags.NONE,\n                    clientPosition: this.frameStore.lastReceivedFramePosition,\n                });\n                break;\n            }\n            case _1.FrameTypes.RESUME_OK: {\n                try {\n                    this.frameStore.dropTo(frame.clientPosition);\n                }\n                catch (re) {\n                    this.outbound.send({\n                        type: _1.FrameTypes.ERROR,\n                        streamId: 0,\n                        flags: _1.Flags.NONE,\n                        code: re.code,\n                        message: re.message,\n                    });\n                    this.close(re);\n                }\n                break;\n            }\n        }\n        this.frameStore.drain(this.outbound.send.bind(this.outbound));\n        closeable.onClose(this.handleConnectionClose.bind(this));\n        this.connectionFramesHandler.resume();\n    };\n    ResumableClientServerInputMultiplexerDemultiplexer.prototype.handleConnectionClose = function (_error) {\n        return __awaiter(this, void 0, void 0, function () {\n            var e_1;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        this.connectionFramesHandler.pause();\n                        if (!this.reconnector) return [3 /*break*/, 5];\n                        _a.label = 1;\n                    case 1:\n                        _a.trys.push([1, 3, , 4]);\n                        return [4 /*yield*/, this.reconnector(this, this.frameStore)];\n                    case 2:\n                        _a.sent();\n                        return [3 /*break*/, 4];\n                    case 3:\n                        e_1 = _a.sent();\n                        this.close(e_1);\n                        return [3 /*break*/, 4];\n                    case 4: return [3 /*break*/, 6];\n                    case 5:\n                        this.timeoutId = setTimeout(this.close.bind(this), this.sessionTimeout);\n                        _a.label = 6;\n                    case 6: return [2 /*return*/];\n                }\n            });\n        });\n    };\n    return ResumableClientServerInputMultiplexerDemultiplexer;\n}(ClientServerInputMultiplexerDemultiplexer));\nexports.ResumableClientServerInputMultiplexerDemultiplexer = ResumableClientServerInputMultiplexerDemultiplexer;\nvar ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = /** @class */ (function () {\n    function ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(outbound, closeable, delegate) {\n        this.outbound = outbound;\n        this.closeable = closeable;\n        this.delegate = delegate;\n        this.resumed = false;\n    }\n    ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.close = function () {\n        this.delegate.close();\n    };\n    ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.onClose = function (callback) {\n        this.delegate.onClose(callback);\n    };\n    Object.defineProperty(ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype, \"connectionOutbound\", {\n        get: function () {\n            return this.delegate.connectionOutbound;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.createRequestStream = function (streamHandler) {\n        this.delegate.createRequestStream(streamHandler);\n    };\n    ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.connectionInbound = function (handler) {\n        this.delegate.connectionInbound(handler);\n    };\n    ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.handleRequestStream = function (handler) {\n        this.delegate.handleRequestStream(handler);\n    };\n    ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n        var _this = this;\n        if (!this.resumed) {\n            if (frame.type === _1.FrameTypes.RESUME_OK) {\n                this.resumed = true;\n                this.delegate.resume(frame, this.outbound, this.closeable);\n                return;\n            }\n            else {\n                this.outbound.send({\n                    type: _1.FrameTypes.ERROR,\n                    streamId: 0,\n                    code: _1.ErrorCodes.CONNECTION_ERROR,\n                    message: \"Incomplete RESUME handshake. Unexpected frame \".concat(frame.type, \" received\"),\n                    flags: _1.Flags.NONE,\n                });\n                this.closeable.close();\n                this.closeable.onClose(function () {\n                    return _this.delegate.close(new Errors_1.RSocketError(_1.ErrorCodes.CONNECTION_ERROR, \"Incomplete RESUME handshake. Unexpected frame \".concat(frame.type, \" received\")));\n                });\n            }\n            return;\n        }\n        this.delegate.handle(frame);\n    };\n    return ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer;\n}());\nexports.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer;\n//# sourceMappingURL=ClientServerMultiplexerDemultiplexer.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\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;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fragmentWithRequestN = exports.fragment = exports.isFragmentable = void 0;\nvar Frames_1 = require(\"./Frames\");\nfunction isFragmentable(payload, fragmentSize, frameType) {\n    if (fragmentSize === 0) {\n        return false;\n    }\n    return (payload.data.byteLength +\n        (payload.metadata ? payload.metadata.byteLength + Frames_1.Lengths.METADATA : 0) +\n        (frameType == Frames_1.FrameTypes.REQUEST_STREAM ||\n            frameType == Frames_1.FrameTypes.REQUEST_CHANNEL\n            ? Frames_1.Lengths.REQUEST\n            : 0) >\n        fragmentSize);\n}\nexports.isFragmentable = isFragmentable;\nfunction fragment(streamId, payload, fragmentSize, frameType, isComplete) {\n    var dataLength, firstFrame, remaining, metadata, metadataLength, metadataPosition, nextMetadataPosition, nextMetadataPosition, dataPosition, data, nextDataPosition, nextDataPosition;\n    var _a, _b;\n    if (isComplete === void 0) { isComplete = false; }\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                dataLength = (_b = (_a = payload.data) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0;\n                firstFrame = frameType !== Frames_1.FrameTypes.PAYLOAD;\n                remaining = fragmentSize;\n                if (!payload.metadata) return [3 /*break*/, 6];\n                metadataLength = payload.metadata.byteLength;\n                if (!(metadataLength === 0)) return [3 /*break*/, 1];\n                remaining -= Frames_1.Lengths.METADATA;\n                metadata = Buffer.allocUnsafe(0);\n                return [3 /*break*/, 6];\n            case 1:\n                metadataPosition = 0;\n                if (!firstFrame) return [3 /*break*/, 3];\n                remaining -= Frames_1.Lengths.METADATA;\n                nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n                metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n                remaining -= metadata.byteLength;\n                metadataPosition = nextMetadataPosition;\n                if (!(remaining === 0)) return [3 /*break*/, 3];\n                firstFrame = false;\n                return [4 /*yield*/, {\n                        type: frameType,\n                        flags: Frames_1.Flags.FOLLOWS | Frames_1.Flags.METADATA,\n                        data: undefined,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 2:\n                _c.sent();\n                metadata = undefined;\n                remaining = fragmentSize;\n                _c.label = 3;\n            case 3:\n                if (!(metadataPosition < metadataLength)) return [3 /*break*/, 6];\n                remaining -= Frames_1.Lengths.METADATA;\n                nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n                metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n                remaining -= metadata.byteLength;\n                metadataPosition = nextMetadataPosition;\n                if (!(remaining === 0 || dataLength === 0)) return [3 /*break*/, 5];\n                return [4 /*yield*/, {\n                        type: Frames_1.FrameTypes.PAYLOAD,\n                        flags: Frames_1.Flags.NEXT |\n                            Frames_1.Flags.METADATA |\n                            (metadataPosition === metadataLength &&\n                                isComplete &&\n                                dataLength === 0\n                                ? Frames_1.Flags.COMPLETE\n                                : Frames_1.Flags.FOLLOWS),\n                        data: undefined,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 4:\n                _c.sent();\n                metadata = undefined;\n                remaining = fragmentSize;\n                _c.label = 5;\n            case 5: return [3 /*break*/, 3];\n            case 6:\n                dataPosition = 0;\n                if (!firstFrame) return [3 /*break*/, 8];\n                nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n                data = payload.data.slice(dataPosition, nextDataPosition);\n                remaining -= data.byteLength;\n                dataPosition = nextDataPosition;\n                return [4 /*yield*/, {\n                        type: frameType,\n                        flags: Frames_1.Flags.FOLLOWS | (metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n                        data: data,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 7:\n                _c.sent();\n                metadata = undefined;\n                data = undefined;\n                remaining = fragmentSize;\n                _c.label = 8;\n            case 8:\n                if (!(dataPosition < dataLength)) return [3 /*break*/, 10];\n                nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n                data = payload.data.slice(dataPosition, nextDataPosition);\n                remaining -= data.byteLength;\n                dataPosition = nextDataPosition;\n                return [4 /*yield*/, {\n                        type: Frames_1.FrameTypes.PAYLOAD,\n                        flags: dataPosition === dataLength\n                            ? (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n                                Frames_1.Flags.NEXT |\n                                (metadata ? Frames_1.Flags.METADATA : 0)\n                            : Frames_1.Flags.FOLLOWS | Frames_1.Flags.NEXT | (metadata ? Frames_1.Flags.METADATA : 0),\n                        data: data,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 9:\n                _c.sent();\n                metadata = undefined;\n                data = undefined;\n                remaining = fragmentSize;\n                return [3 /*break*/, 8];\n            case 10: return [2 /*return*/];\n        }\n    });\n}\nexports.fragment = fragment;\nfunction fragmentWithRequestN(streamId, payload, fragmentSize, frameType, requestN, isComplete) {\n    var dataLength, firstFrame, remaining, metadata, metadataLength, metadataPosition, nextMetadataPosition, nextMetadataPosition, dataPosition, data, nextDataPosition, nextDataPosition;\n    var _a, _b;\n    if (isComplete === void 0) { isComplete = false; }\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                dataLength = (_b = (_a = payload.data) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0;\n                firstFrame = true;\n                remaining = fragmentSize;\n                if (!payload.metadata) return [3 /*break*/, 6];\n                metadataLength = payload.metadata.byteLength;\n                if (!(metadataLength === 0)) return [3 /*break*/, 1];\n                remaining -= Frames_1.Lengths.METADATA;\n                metadata = Buffer.allocUnsafe(0);\n                return [3 /*break*/, 6];\n            case 1:\n                metadataPosition = 0;\n                if (!firstFrame) return [3 /*break*/, 3];\n                remaining -= Frames_1.Lengths.METADATA + Frames_1.Lengths.REQUEST;\n                nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n                metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n                remaining -= metadata.byteLength;\n                metadataPosition = nextMetadataPosition;\n                if (!(remaining === 0)) return [3 /*break*/, 3];\n                firstFrame = false;\n                return [4 /*yield*/, {\n                        type: frameType,\n                        flags: Frames_1.Flags.FOLLOWS | Frames_1.Flags.METADATA,\n                        data: undefined,\n                        requestN: requestN,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 2:\n                _c.sent();\n                metadata = undefined;\n                remaining = fragmentSize;\n                _c.label = 3;\n            case 3:\n                if (!(metadataPosition < metadataLength)) return [3 /*break*/, 6];\n                remaining -= Frames_1.Lengths.METADATA;\n                nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n                metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n                remaining -= metadata.byteLength;\n                metadataPosition = nextMetadataPosition;\n                if (!(remaining === 0 || dataLength === 0)) return [3 /*break*/, 5];\n                return [4 /*yield*/, {\n                        type: Frames_1.FrameTypes.PAYLOAD,\n                        flags: Frames_1.Flags.NEXT |\n                            Frames_1.Flags.METADATA |\n                            (metadataPosition === metadataLength &&\n                                isComplete &&\n                                dataLength === 0\n                                ? Frames_1.Flags.COMPLETE\n                                : Frames_1.Flags.FOLLOWS),\n                        data: undefined,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 4:\n                _c.sent();\n                metadata = undefined;\n                remaining = fragmentSize;\n                _c.label = 5;\n            case 5: return [3 /*break*/, 3];\n            case 6:\n                dataPosition = 0;\n                if (!firstFrame) return [3 /*break*/, 8];\n                remaining -= Frames_1.Lengths.REQUEST;\n                nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n                data = payload.data.slice(dataPosition, nextDataPosition);\n                remaining -= data.byteLength;\n                dataPosition = nextDataPosition;\n                return [4 /*yield*/, {\n                        type: frameType,\n                        flags: Frames_1.Flags.FOLLOWS | (metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n                        data: data,\n                        requestN: requestN,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 7:\n                _c.sent();\n                metadata = undefined;\n                data = undefined;\n                remaining = fragmentSize;\n                _c.label = 8;\n            case 8:\n                if (!(dataPosition < dataLength)) return [3 /*break*/, 10];\n                nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n                data = payload.data.slice(dataPosition, nextDataPosition);\n                remaining -= data.byteLength;\n                dataPosition = nextDataPosition;\n                return [4 /*yield*/, {\n                        type: Frames_1.FrameTypes.PAYLOAD,\n                        flags: dataPosition === dataLength\n                            ? (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n                                Frames_1.Flags.NEXT |\n                                (metadata ? Frames_1.Flags.METADATA : 0)\n                            : Frames_1.Flags.FOLLOWS | Frames_1.Flags.NEXT | (metadata ? Frames_1.Flags.METADATA : 0),\n                        data: data,\n                        metadata: metadata,\n                        streamId: streamId,\n                    }];\n            case 9:\n                _c.sent();\n                metadata = undefined;\n                data = undefined;\n                remaining = fragmentSize;\n                return [3 /*break*/, 8];\n            case 10: return [2 /*return*/];\n        }\n    });\n}\nexports.fragmentWithRequestN = fragmentWithRequestN;\n//# sourceMappingURL=Fragmenter.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cancel = exports.reassemble = exports.add = void 0;\nfunction add(holder, dataFragment, metadataFragment) {\n    if (!holder.hasFragments) {\n        holder.hasFragments = true;\n        holder.data = dataFragment;\n        if (metadataFragment) {\n            holder.metadata = metadataFragment;\n        }\n        return true;\n    }\n    // TODO: add validation\n    holder.data = holder.data\n        ? Buffer.concat([holder.data, dataFragment])\n        : dataFragment;\n    if (holder.metadata && metadataFragment) {\n        holder.metadata = Buffer.concat([holder.metadata, metadataFragment]);\n    }\n    return true;\n}\nexports.add = add;\nfunction reassemble(holder, dataFragment, metadataFragment) {\n    // TODO: add validation\n    holder.hasFragments = false;\n    var data = holder.data\n        ? Buffer.concat([holder.data, dataFragment])\n        : dataFragment;\n    holder.data = undefined;\n    if (holder.metadata) {\n        var metadata = metadataFragment\n            ? Buffer.concat([holder.metadata, metadataFragment])\n            : holder.metadata;\n        holder.metadata = undefined;\n        return {\n            data: data,\n            metadata: metadata,\n        };\n    }\n    return {\n        data: data,\n    };\n}\nexports.reassemble = reassemble;\nfunction cancel(holder) {\n    holder.hasFragments = false;\n    holder.data = undefined;\n    holder.metadata = undefined;\n}\nexports.cancel = cancel;\n//# sourceMappingURL=Reassembler.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestChannelResponderStream = exports.RequestChannelRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestChannelRequesterStream = /** @class */ (function () {\n    function RequestChannelRequesterStream(payload, isComplete, receiver, fragmentSize, initialRequestN, leaseManager) {\n        this.payload = payload;\n        this.isComplete = isComplete;\n        this.receiver = receiver;\n        this.fragmentSize = fragmentSize;\n        this.initialRequestN = initialRequestN;\n        this.leaseManager = leaseManager;\n        this.streamType = Frames_1.FrameTypes.REQUEST_CHANNEL;\n        // TODO: add payload size validation\n    }\n    RequestChannelRequesterStream.prototype.handleReady = function (streamId, stream) {\n        var e_1, _a;\n        if (this.outboundDone) {\n            return false;\n        }\n        this.streamId = streamId;\n        this.stream = stream;\n        stream.connect(this);\n        var isCompleted = this.isComplete;\n        if (isCompleted) {\n            this.outboundDone = isCompleted;\n        }\n        if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_CHANNEL)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragmentWithRequestN)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_CHANNEL, this.initialRequestN, isCompleted)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.REQUEST_CHANNEL,\n                data: this.payload.data,\n                metadata: this.payload.metadata,\n                requestN: this.initialRequestN,\n                flags: (this.payload.metadata !== undefined ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n                    (isCompleted ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE),\n                streamId: streamId,\n            });\n        }\n        if (this.hasExtension) {\n            this.stream.send({\n                type: Frames_1.FrameTypes.EXT,\n                streamId: streamId,\n                extendedContent: this.extendedContent,\n                extendedType: this.extendedType,\n                flags: this.flags,\n            });\n        }\n        return true;\n    };\n    RequestChannelRequesterStream.prototype.handleReject = function (error) {\n        if (this.inboundDone) {\n            return;\n        }\n        this.inboundDone = true;\n        this.outboundDone = true;\n        this.receiver.onError(error);\n    };\n    RequestChannelRequesterStream.prototype.handle = function (frame) {\n        var errorMessage;\n        var frameType = frame.type;\n        switch (frameType) {\n            case Frames_1.FrameTypes.PAYLOAD: {\n                var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n                var hasNext = Frames_1.Flags.hasNext(frame.flags);\n                if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n                    if (hasComplete) {\n                        this.inboundDone = true;\n                        if (this.outboundDone) {\n                            this.stream.disconnect(this);\n                        }\n                        if (!hasNext) {\n                            // TODO: add validation no frame in reassembly\n                            this.receiver.onComplete();\n                            return;\n                        }\n                    }\n                    var payload = this.hasFragments\n                        ? Reassembler.reassemble(this, frame.data, frame.metadata)\n                        : {\n                            data: frame.data,\n                            metadata: frame.metadata,\n                        };\n                    this.receiver.onNext(payload, hasComplete);\n                    return;\n                }\n                if (Reassembler.add(this, frame.data, frame.metadata)) {\n                    return;\n                }\n                errorMessage = \"Unexpected frame size\";\n                break;\n            }\n            case Frames_1.FrameTypes.CANCEL: {\n                if (this.outboundDone) {\n                    return;\n                }\n                this.outboundDone = true;\n                if (this.inboundDone) {\n                    this.stream.disconnect(this);\n                }\n                this.receiver.cancel();\n                return;\n            }\n            case Frames_1.FrameTypes.REQUEST_N: {\n                if (this.outboundDone) {\n                    return;\n                }\n                if (this.hasFragments) {\n                    errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n                    break;\n                }\n                this.receiver.request(frame.requestN);\n                return;\n            }\n            case Frames_1.FrameTypes.ERROR: {\n                var outboundDone = this.outboundDone;\n                this.inboundDone = true;\n                this.outboundDone = true;\n                this.stream.disconnect(this);\n                Reassembler.cancel(this);\n                if (!outboundDone) {\n                    this.receiver.cancel();\n                }\n                this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n                return;\n            }\n            case Frames_1.FrameTypes.EXT:\n                this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n                return;\n            default: {\n                errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n            }\n        }\n        this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n        this.stream.send({\n            type: Frames_1.FrameTypes.CANCEL,\n            streamId: this.streamId,\n            flags: Frames_1.Flags.NONE,\n        });\n        this.stream.disconnect(this);\n    };\n    RequestChannelRequesterStream.prototype.request = function (n) {\n        if (this.inboundDone) {\n            return;\n        }\n        if (!this.streamId) {\n            this.initialRequestN += n;\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.REQUEST_N,\n            flags: Frames_1.Flags.NONE,\n            requestN: n,\n            streamId: this.streamId,\n        });\n    };\n    RequestChannelRequesterStream.prototype.cancel = function () {\n        var _a;\n        var inboundDone = this.inboundDone;\n        var outboundDone = this.outboundDone;\n        if (inboundDone && outboundDone) {\n            return;\n        }\n        this.inboundDone = true;\n        this.outboundDone = true;\n        if (!outboundDone) {\n            this.receiver.cancel();\n        }\n        if (!this.streamId) {\n            (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n            return;\n        }\n        this.stream.send({\n            type: inboundDone ? Frames_1.FrameTypes.ERROR : Frames_1.FrameTypes.CANCEL,\n            flags: Frames_1.Flags.NONE,\n            streamId: this.streamId,\n            code: Errors_1.ErrorCodes.CANCELED,\n            message: \"Cancelled\",\n        });\n        this.stream.disconnect(this);\n        Reassembler.cancel(this);\n    };\n    RequestChannelRequesterStream.prototype.onNext = function (payload, isComplete) {\n        var e_2, _a;\n        if (this.outboundDone) {\n            return;\n        }\n        if (isComplete) {\n            this.outboundDone = true;\n            if (this.inboundDone) {\n                this.stream.disconnect(this);\n            }\n        }\n        if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isComplete)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_2_1) { e_2 = { error: e_2_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_2) throw e_2.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.PAYLOAD,\n                streamId: this.streamId,\n                flags: Frames_1.Flags.NEXT |\n                    (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n                    (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE),\n                data: payload.data,\n                metadata: payload.metadata,\n            });\n        }\n    };\n    RequestChannelRequesterStream.prototype.onComplete = function () {\n        if (!this.streamId) {\n            this.isComplete = true;\n            return;\n        }\n        if (this.outboundDone) {\n            return;\n        }\n        this.outboundDone = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.PAYLOAD,\n            streamId: this.streamId,\n            flags: Frames_1.Flags.COMPLETE,\n            data: null,\n            metadata: null,\n        });\n        if (this.inboundDone) {\n            this.stream.disconnect(this);\n        }\n    };\n    RequestChannelRequesterStream.prototype.onError = function (error) {\n        if (this.outboundDone) {\n            return;\n        }\n        var inboundDone = this.inboundDone;\n        this.outboundDone = true;\n        this.inboundDone = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.ERROR,\n            streamId: this.streamId,\n            flags: Frames_1.Flags.NONE,\n            code: error instanceof Errors_1.RSocketError\n                ? error.code\n                : Errors_1.ErrorCodes.APPLICATION_ERROR,\n            message: error.message,\n        });\n        this.stream.disconnect(this);\n        if (!inboundDone) {\n            this.receiver.onError(error);\n        }\n    };\n    RequestChannelRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n        if (this.outboundDone) {\n            return;\n        }\n        if (!this.streamId) {\n            this.hasExtension = true;\n            this.extendedType = extendedType;\n            this.extendedContent = content;\n            this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n            return;\n        }\n        this.stream.send({\n            streamId: this.streamId,\n            type: Frames_1.FrameTypes.EXT,\n            extendedType: extendedType,\n            extendedContent: content,\n            flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n        });\n    };\n    RequestChannelRequesterStream.prototype.close = function (error) {\n        if (this.inboundDone && this.outboundDone) {\n            return;\n        }\n        var inboundDone = this.inboundDone;\n        var outboundDone = this.outboundDone;\n        this.inboundDone = true;\n        this.outboundDone = true;\n        Reassembler.cancel(this);\n        if (!outboundDone) {\n            this.receiver.cancel();\n        }\n        if (!inboundDone) {\n            if (error) {\n                this.receiver.onError(error);\n            }\n            else {\n                this.receiver.onComplete();\n            }\n        }\n    };\n    return RequestChannelRequesterStream;\n}());\nexports.RequestChannelRequesterStream = RequestChannelRequesterStream;\nvar RequestChannelResponderStream = /** @class */ (function () {\n    function RequestChannelResponderStream(streamId, stream, fragmentSize, handler, frame) {\n        this.streamId = streamId;\n        this.stream = stream;\n        this.fragmentSize = fragmentSize;\n        this.handler = handler;\n        this.streamType = Frames_1.FrameTypes.REQUEST_CHANNEL;\n        stream.connect(this);\n        if (Frames_1.Flags.hasFollows(frame.flags)) {\n            Reassembler.add(this, frame.data, frame.metadata);\n            this.initialRequestN = frame.requestN;\n            this.isComplete = Frames_1.Flags.hasComplete(frame.flags);\n            return;\n        }\n        var payload = {\n            data: frame.data,\n            metadata: frame.metadata,\n        };\n        var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n        this.inboundDone = hasComplete;\n        try {\n            this.receiver = handler(payload, frame.requestN, hasComplete, this);\n            if (this.outboundDone && this.defferedError) {\n                this.receiver.onError(this.defferedError);\n            }\n        }\n        catch (error) {\n            if (this.outboundDone && !this.inboundDone) {\n                this.cancel();\n            }\n            else {\n                this.inboundDone = true;\n            }\n            this.onError(error);\n        }\n    }\n    RequestChannelResponderStream.prototype.handle = function (frame) {\n        var errorMessage;\n        var frameType = frame.type;\n        switch (frameType) {\n            case Frames_1.FrameTypes.PAYLOAD: {\n                if (Frames_1.Flags.hasFollows(frame.flags)) {\n                    if (Reassembler.add(this, frame.data, frame.metadata)) {\n                        return;\n                    }\n                    errorMessage = \"Unexpected frame size\";\n                    break;\n                }\n                var payload = this.hasFragments\n                    ? Reassembler.reassemble(this, frame.data, frame.metadata)\n                    : {\n                        data: frame.data,\n                        metadata: frame.metadata,\n                    };\n                var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n                if (!this.receiver) {\n                    var inboundDone = this.isComplete || hasComplete;\n                    if (inboundDone) {\n                        this.inboundDone = true;\n                        if (this.outboundDone) {\n                            this.stream.disconnect(this);\n                        }\n                    }\n                    try {\n                        this.receiver = this.handler(payload, this.initialRequestN, inboundDone, this);\n                        if (this.outboundDone && this.defferedError) {\n                        }\n                    }\n                    catch (error) {\n                        if (this.outboundDone && !this.inboundDone) {\n                            this.cancel();\n                        }\n                        else {\n                            this.inboundDone = true;\n                        }\n                        this.onError(error);\n                    }\n                }\n                else {\n                    if (hasComplete) {\n                        this.inboundDone = true;\n                        if (this.outboundDone) {\n                            this.stream.disconnect(this);\n                        }\n                        if (!Frames_1.Flags.hasNext(frame.flags)) {\n                            this.receiver.onComplete();\n                            return;\n                        }\n                    }\n                    this.receiver.onNext(payload, hasComplete);\n                }\n                return;\n            }\n            case Frames_1.FrameTypes.REQUEST_N: {\n                if (!this.receiver || this.hasFragments) {\n                    errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n                    break;\n                }\n                this.receiver.request(frame.requestN);\n                return;\n            }\n            case Frames_1.FrameTypes.ERROR:\n            case Frames_1.FrameTypes.CANCEL: {\n                var inboundDone = this.inboundDone;\n                var outboundDone = this.outboundDone;\n                this.inboundDone = true;\n                this.outboundDone = true;\n                this.stream.disconnect(this);\n                Reassembler.cancel(this);\n                if (!this.receiver) {\n                    return;\n                }\n                if (!outboundDone) {\n                    this.receiver.cancel();\n                }\n                if (!inboundDone) {\n                    var error = frameType === Frames_1.FrameTypes.CANCEL\n                        ? new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, \"Cancelled\")\n                        : new Errors_1.RSocketError(frame.code, frame.message);\n                    this.receiver.onError(error);\n                }\n                return;\n            }\n            case Frames_1.FrameTypes.EXT: {\n                if (!this.receiver || this.hasFragments) {\n                    errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n                    break;\n                }\n                this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n                return;\n            }\n            default: {\n                errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n                // TODO: throws if strict\n            }\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.ERROR,\n            flags: Frames_1.Flags.NONE,\n            code: Errors_1.ErrorCodes.CANCELED,\n            message: errorMessage,\n            streamId: this.streamId,\n        });\n        this.stream.disconnect(this);\n        this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n    };\n    RequestChannelResponderStream.prototype.onError = function (error) {\n        if (this.outboundDone) {\n            console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        var inboundDone = this.inboundDone;\n        this.outboundDone = true;\n        this.inboundDone = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.ERROR,\n            flags: Frames_1.Flags.NONE,\n            code: error instanceof Errors_1.RSocketError\n                ? error.code\n                : Errors_1.ErrorCodes.APPLICATION_ERROR,\n            message: error.message,\n            streamId: this.streamId,\n        });\n        this.stream.disconnect(this);\n        if (!inboundDone) {\n            if (this.receiver) {\n                this.receiver.onError(error);\n            }\n            else {\n                this.defferedError = error;\n            }\n        }\n    };\n    RequestChannelResponderStream.prototype.onNext = function (payload, isCompletion) {\n        var e_3, _a;\n        if (this.outboundDone) {\n            return;\n        }\n        if (isCompletion) {\n            this.outboundDone = true;\n        }\n        // TODO: add payload size validation\n        if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isCompletion)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_3_1) { e_3 = { error: e_3_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_3) throw e_3.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.PAYLOAD,\n                flags: Frames_1.Flags.NEXT |\n                    (isCompletion ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n                    (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n                data: payload.data,\n                metadata: payload.metadata,\n                streamId: this.streamId,\n            });\n        }\n        if (isCompletion && this.inboundDone) {\n            this.stream.disconnect(this);\n        }\n    };\n    RequestChannelResponderStream.prototype.onComplete = function () {\n        if (this.outboundDone) {\n            return;\n        }\n        this.outboundDone = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.PAYLOAD,\n            flags: Frames_1.Flags.COMPLETE,\n            streamId: this.streamId,\n            data: null,\n            metadata: null,\n        });\n        if (this.inboundDone) {\n            this.stream.disconnect(this);\n        }\n    };\n    RequestChannelResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n        if (this.outboundDone && this.inboundDone) {\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.EXT,\n            streamId: this.streamId,\n            flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n            extendedType: extendedType,\n            extendedContent: content,\n        });\n    };\n    RequestChannelResponderStream.prototype.request = function (n) {\n        if (this.inboundDone) {\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.REQUEST_N,\n            flags: Frames_1.Flags.NONE,\n            streamId: this.streamId,\n            requestN: n,\n        });\n    };\n    RequestChannelResponderStream.prototype.cancel = function () {\n        if (this.inboundDone) {\n            return;\n        }\n        this.inboundDone = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.CANCEL,\n            flags: Frames_1.Flags.NONE,\n            streamId: this.streamId,\n        });\n        if (this.outboundDone) {\n            this.stream.disconnect(this);\n        }\n    };\n    RequestChannelResponderStream.prototype.close = function (error) {\n        if (this.inboundDone && this.outboundDone) {\n            console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        var inboundDone = this.inboundDone;\n        var outboundDone = this.outboundDone;\n        this.inboundDone = true;\n        this.outboundDone = true;\n        Reassembler.cancel(this);\n        var receiver = this.receiver;\n        if (!receiver) {\n            return;\n        }\n        if (!outboundDone) {\n            receiver.cancel();\n        }\n        if (!inboundDone) {\n            if (error) {\n                receiver.onError(error);\n            }\n            else {\n                receiver.onComplete();\n            }\n        }\n    };\n    return RequestChannelResponderStream;\n}());\nexports.RequestChannelResponderStream = RequestChannelResponderStream;\n//# sourceMappingURL=RequestChannelStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestFnfResponderStream = exports.RequestFnFRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestFnFRequesterStream = /** @class */ (function () {\n    function RequestFnFRequesterStream(payload, receiver, fragmentSize, leaseManager) {\n        this.payload = payload;\n        this.receiver = receiver;\n        this.fragmentSize = fragmentSize;\n        this.leaseManager = leaseManager;\n        this.streamType = Frames_1.FrameTypes.REQUEST_FNF;\n    }\n    RequestFnFRequesterStream.prototype.handleReady = function (streamId, stream) {\n        var e_1, _a;\n        if (this.done) {\n            return false;\n        }\n        this.streamId = streamId;\n        if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_FNF)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragment)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_FNF)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    stream.send(frame);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        else {\n            stream.send({\n                type: Frames_1.FrameTypes.REQUEST_FNF,\n                data: this.payload.data,\n                metadata: this.payload.metadata,\n                flags: this.payload.metadata ? Frames_1.Flags.METADATA : 0,\n                streamId: streamId,\n            });\n        }\n        this.done = true;\n        this.receiver.onComplete();\n        return true;\n    };\n    RequestFnFRequesterStream.prototype.handleReject = function (error) {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        this.receiver.onError(error);\n    };\n    RequestFnFRequesterStream.prototype.cancel = function () {\n        var _a;\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n    };\n    RequestFnFRequesterStream.prototype.handle = function (frame) {\n        if (frame.type == Frames_1.FrameTypes.ERROR) {\n            this.close(new Errors_1.RSocketError(frame.code, frame.message));\n            return;\n        }\n        this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, \"Received invalid frame\"));\n    };\n    RequestFnFRequesterStream.prototype.close = function (error) {\n        if (this.done) {\n            console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        if (error) {\n            this.receiver.onError(error);\n        }\n        else {\n            this.receiver.onComplete();\n        }\n    };\n    return RequestFnFRequesterStream;\n}());\nexports.RequestFnFRequesterStream = RequestFnFRequesterStream;\nvar RequestFnfResponderStream = /** @class */ (function () {\n    function RequestFnfResponderStream(streamId, stream, handler, frame) {\n        this.streamId = streamId;\n        this.stream = stream;\n        this.handler = handler;\n        this.streamType = Frames_1.FrameTypes.REQUEST_FNF;\n        if (Frames_1.Flags.hasFollows(frame.flags)) {\n            Reassembler.add(this, frame.data, frame.metadata);\n            stream.connect(this);\n            return;\n        }\n        var payload = {\n            data: frame.data,\n            metadata: frame.metadata,\n        };\n        try {\n            this.cancellable = handler(payload, this);\n        }\n        catch (e) {\n            // do nothing\n        }\n    }\n    RequestFnfResponderStream.prototype.handle = function (frame) {\n        var errorMessage;\n        if (frame.type == Frames_1.FrameTypes.PAYLOAD) {\n            if (Frames_1.Flags.hasFollows(frame.flags)) {\n                if (Reassembler.add(this, frame.data, frame.metadata)) {\n                    return;\n                }\n                errorMessage = \"Unexpected fragment size\";\n            }\n            else {\n                this.stream.disconnect(this);\n                var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n                try {\n                    this.cancellable = this.handler(payload, this);\n                }\n                catch (e) {\n                    // do nothing\n                }\n                return;\n            }\n        }\n        else {\n            errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n        }\n        this.done = true;\n        if (frame.type != Frames_1.FrameTypes.CANCEL && frame.type != Frames_1.FrameTypes.ERROR) {\n            this.stream.send({\n                type: Frames_1.FrameTypes.ERROR,\n                streamId: this.streamId,\n                flags: Frames_1.Flags.NONE,\n                code: Errors_1.ErrorCodes.CANCELED,\n                message: errorMessage,\n            });\n        }\n        this.stream.disconnect(this);\n        Reassembler.cancel(this);\n        // TODO: throws if strict\n    };\n    RequestFnfResponderStream.prototype.close = function (error) {\n        var _a;\n        if (this.done) {\n            console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        this.done = true;\n        Reassembler.cancel(this);\n        (_a = this.cancellable) === null || _a === void 0 ? void 0 : _a.cancel();\n    };\n    RequestFnfResponderStream.prototype.onError = function (error) { };\n    RequestFnfResponderStream.prototype.onComplete = function () { };\n    return RequestFnfResponderStream;\n}());\nexports.RequestFnfResponderStream = RequestFnfResponderStream;\n/*\nexport function request(\n  payload: Payload,\n  responderStream: UnidirectionalStream\n): Handler<Cancellable> {\n  return {\n    create: (r) => {\n      const response = new RequestFnFRequesterHandler(\n        payload,\n        responderStream,\n        r\n      );\n\n      r.add(response);\n\n      return response;\n    },\n  };\n}\n\nexport function response(\n  handler: (payload: Payload, responderStream: UnidirectionalStream,) => void\n): Handler<void> {\n  return {\n    create: (r) => new RequestFnfResponderHandler(),\n  };\n} */\n//# sourceMappingURL=RequestFnFStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestResponseResponderStream = exports.RequestResponseRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestResponseRequesterStream = /** @class */ (function () {\n    function RequestResponseRequesterStream(payload, receiver, fragmentSize, leaseManager) {\n        this.payload = payload;\n        this.receiver = receiver;\n        this.fragmentSize = fragmentSize;\n        this.leaseManager = leaseManager;\n        this.streamType = Frames_1.FrameTypes.REQUEST_RESPONSE;\n    }\n    RequestResponseRequesterStream.prototype.handleReady = function (streamId, stream) {\n        var e_1, _a;\n        if (this.done) {\n            return false;\n        }\n        this.streamId = streamId;\n        this.stream = stream;\n        stream.connect(this);\n        if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_RESPONSE)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragment)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_RESPONSE)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.REQUEST_RESPONSE,\n                data: this.payload.data,\n                metadata: this.payload.metadata,\n                flags: this.payload.metadata ? Frames_1.Flags.METADATA : 0,\n                streamId: streamId,\n            });\n        }\n        if (this.hasExtension) {\n            this.stream.send({\n                type: Frames_1.FrameTypes.EXT,\n                streamId: streamId,\n                extendedContent: this.extendedContent,\n                extendedType: this.extendedType,\n                flags: this.flags,\n            });\n        }\n        return true;\n    };\n    RequestResponseRequesterStream.prototype.handleReject = function (error) {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        this.receiver.onError(error);\n    };\n    RequestResponseRequesterStream.prototype.handle = function (frame) {\n        var errorMessage;\n        var frameType = frame.type;\n        switch (frameType) {\n            case Frames_1.FrameTypes.PAYLOAD: {\n                var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n                var hasPayload = Frames_1.Flags.hasNext(frame.flags);\n                if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n                    this.done = true;\n                    this.stream.disconnect(this);\n                    if (!hasPayload) {\n                        // TODO: add validation no frame in reassembly\n                        this.receiver.onComplete();\n                        return;\n                    }\n                    var payload = this.hasFragments\n                        ? Reassembler.reassemble(this, frame.data, frame.metadata)\n                        : {\n                            data: frame.data,\n                            metadata: frame.metadata,\n                        };\n                    this.receiver.onNext(payload, true);\n                    return;\n                }\n                if (!Reassembler.add(this, frame.data, frame.metadata)) {\n                    errorMessage = \"Unexpected fragment size\";\n                    break;\n                }\n                return;\n            }\n            case Frames_1.FrameTypes.ERROR: {\n                this.done = true;\n                this.stream.disconnect(this);\n                Reassembler.cancel(this);\n                this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n                return;\n            }\n            case Frames_1.FrameTypes.EXT: {\n                if (this.hasFragments) {\n                    errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n                    break;\n                }\n                this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n                return;\n            }\n            default: {\n                errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n            }\n        }\n        this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n        this.stream.send({\n            type: Frames_1.FrameTypes.CANCEL,\n            streamId: this.streamId,\n            flags: Frames_1.Flags.NONE,\n        });\n        this.stream.disconnect(this);\n        // TODO: throw an exception if strict frame handling mode\n    };\n    RequestResponseRequesterStream.prototype.cancel = function () {\n        var _a;\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        if (!this.streamId) {\n            (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.CANCEL,\n            flags: Frames_1.Flags.NONE,\n            streamId: this.streamId,\n        });\n        this.stream.disconnect(this);\n        Reassembler.cancel(this);\n    };\n    RequestResponseRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n        if (this.done) {\n            return;\n        }\n        if (!this.streamId) {\n            this.hasExtension = true;\n            this.extendedType = extendedType;\n            this.extendedContent = content;\n            this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n            return;\n        }\n        this.stream.send({\n            streamId: this.streamId,\n            type: Frames_1.FrameTypes.EXT,\n            extendedType: extendedType,\n            extendedContent: content,\n            flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n        });\n    };\n    RequestResponseRequesterStream.prototype.close = function (error) {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        Reassembler.cancel(this);\n        if (error) {\n            this.receiver.onError(error);\n        }\n        else {\n            this.receiver.onComplete();\n        }\n    };\n    return RequestResponseRequesterStream;\n}());\nexports.RequestResponseRequesterStream = RequestResponseRequesterStream;\nvar RequestResponseResponderStream = /** @class */ (function () {\n    function RequestResponseResponderStream(streamId, stream, fragmentSize, handler, frame) {\n        this.streamId = streamId;\n        this.stream = stream;\n        this.fragmentSize = fragmentSize;\n        this.handler = handler;\n        this.streamType = Frames_1.FrameTypes.REQUEST_RESPONSE;\n        stream.connect(this);\n        if (Frames_1.Flags.hasFollows(frame.flags)) {\n            Reassembler.add(this, frame.data, frame.metadata);\n            return;\n        }\n        var payload = {\n            data: frame.data,\n            metadata: frame.metadata,\n        };\n        try {\n            this.receiver = handler(payload, this);\n        }\n        catch (error) {\n            this.onError(error);\n        }\n    }\n    RequestResponseResponderStream.prototype.handle = function (frame) {\n        var _a;\n        var errorMessage;\n        if (!this.receiver || this.hasFragments) {\n            if (frame.type === Frames_1.FrameTypes.PAYLOAD) {\n                if (Frames_1.Flags.hasFollows(frame.flags)) {\n                    if (Reassembler.add(this, frame.data, frame.metadata)) {\n                        return;\n                    }\n                    errorMessage = \"Unexpected fragment size\";\n                }\n                else {\n                    var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n                    try {\n                        this.receiver = this.handler(payload, this);\n                    }\n                    catch (error) {\n                        this.onError(error);\n                    }\n                    return;\n                }\n            }\n            else {\n                errorMessage = \"Unexpected frame type [\".concat(frame.type, \"] during reassembly\");\n            }\n        }\n        else if (frame.type === Frames_1.FrameTypes.EXT) {\n            this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n            return;\n        }\n        else {\n            errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n        }\n        this.done = true;\n        (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n        if (frame.type !== Frames_1.FrameTypes.CANCEL && frame.type !== Frames_1.FrameTypes.ERROR) {\n            this.stream.send({\n                type: Frames_1.FrameTypes.ERROR,\n                flags: Frames_1.Flags.NONE,\n                code: Errors_1.ErrorCodes.CANCELED,\n                message: errorMessage,\n                streamId: this.streamId,\n            });\n        }\n        this.stream.disconnect(this);\n        Reassembler.cancel(this);\n        // TODO: throws if strict\n    };\n    RequestResponseResponderStream.prototype.onError = function (error) {\n        if (this.done) {\n            console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        this.done = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.ERROR,\n            flags: Frames_1.Flags.NONE,\n            code: error instanceof Errors_1.RSocketError\n                ? error.code\n                : Errors_1.ErrorCodes.APPLICATION_ERROR,\n            message: error.message,\n            streamId: this.streamId,\n        });\n        this.stream.disconnect(this);\n    };\n    RequestResponseResponderStream.prototype.onNext = function (payload, isCompletion) {\n        var e_2, _a;\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        // TODO: add payload size validation\n        if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, true)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_2_1) { e_2 = { error: e_2_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_2) throw e_2.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.PAYLOAD,\n                flags: Frames_1.Flags.NEXT | Frames_1.Flags.COMPLETE | (payload.metadata ? Frames_1.Flags.METADATA : 0),\n                data: payload.data,\n                metadata: payload.metadata,\n                streamId: this.streamId,\n            });\n        }\n        this.stream.disconnect(this);\n    };\n    RequestResponseResponderStream.prototype.onComplete = function () {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.PAYLOAD,\n            flags: Frames_1.Flags.COMPLETE,\n            streamId: this.streamId,\n            data: null,\n            metadata: null,\n        });\n        this.stream.disconnect(this);\n    };\n    RequestResponseResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n        if (this.done) {\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.EXT,\n            streamId: this.streamId,\n            flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n            extendedType: extendedType,\n            extendedContent: content,\n        });\n    };\n    RequestResponseResponderStream.prototype.close = function (error) {\n        var _a;\n        if (this.done) {\n            console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        Reassembler.cancel(this);\n        (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n    };\n    return RequestResponseResponderStream;\n}());\nexports.RequestResponseResponderStream = RequestResponseResponderStream;\n//# sourceMappingURL=RequestResponseStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestStreamResponderStream = exports.RequestStreamRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestStreamRequesterStream = /** @class */ (function () {\n    function RequestStreamRequesterStream(payload, receiver, fragmentSize, initialRequestN, leaseManager) {\n        this.payload = payload;\n        this.receiver = receiver;\n        this.fragmentSize = fragmentSize;\n        this.initialRequestN = initialRequestN;\n        this.leaseManager = leaseManager;\n        this.streamType = Frames_1.FrameTypes.REQUEST_STREAM;\n        // TODO: add payload size validation\n    }\n    RequestStreamRequesterStream.prototype.handleReady = function (streamId, stream) {\n        var e_1, _a;\n        if (this.done) {\n            return false;\n        }\n        this.streamId = streamId;\n        this.stream = stream;\n        stream.connect(this);\n        if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_STREAM)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragmentWithRequestN)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_STREAM, this.initialRequestN)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.REQUEST_STREAM,\n                data: this.payload.data,\n                metadata: this.payload.metadata,\n                requestN: this.initialRequestN,\n                flags: this.payload.metadata !== undefined ? Frames_1.Flags.METADATA : 0,\n                streamId: streamId,\n            });\n        }\n        if (this.hasExtension) {\n            this.stream.send({\n                type: Frames_1.FrameTypes.EXT,\n                streamId: streamId,\n                extendedContent: this.extendedContent,\n                extendedType: this.extendedType,\n                flags: this.flags,\n            });\n        }\n        return true;\n    };\n    RequestStreamRequesterStream.prototype.handleReject = function (error) {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        this.receiver.onError(error);\n    };\n    RequestStreamRequesterStream.prototype.handle = function (frame) {\n        var errorMessage;\n        var frameType = frame.type;\n        switch (frameType) {\n            case Frames_1.FrameTypes.PAYLOAD: {\n                var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n                var hasNext = Frames_1.Flags.hasNext(frame.flags);\n                if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n                    if (hasComplete) {\n                        this.done = true;\n                        this.stream.disconnect(this);\n                        if (!hasNext) {\n                            // TODO: add validation no frame in reassembly\n                            this.receiver.onComplete();\n                            return;\n                        }\n                    }\n                    var payload = this.hasFragments\n                        ? Reassembler.reassemble(this, frame.data, frame.metadata)\n                        : {\n                            data: frame.data,\n                            metadata: frame.metadata,\n                        };\n                    this.receiver.onNext(payload, hasComplete);\n                    return;\n                }\n                if (!Reassembler.add(this, frame.data, frame.metadata)) {\n                    errorMessage = \"Unexpected fragment size\";\n                    break;\n                }\n                return;\n            }\n            case Frames_1.FrameTypes.ERROR: {\n                this.done = true;\n                this.stream.disconnect(this);\n                Reassembler.cancel(this);\n                this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n                return;\n            }\n            case Frames_1.FrameTypes.EXT: {\n                if (this.hasFragments) {\n                    errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n                    break;\n                }\n                this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n                return;\n            }\n            default: {\n                errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n            }\n        }\n        this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n        this.stream.send({\n            type: Frames_1.FrameTypes.CANCEL,\n            streamId: this.streamId,\n            flags: Frames_1.Flags.NONE,\n        });\n        this.stream.disconnect(this);\n        // TODO: throw an exception if strict frame handling mode\n    };\n    RequestStreamRequesterStream.prototype.request = function (n) {\n        if (this.done) {\n            return;\n        }\n        if (!this.streamId) {\n            this.initialRequestN += n;\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.REQUEST_N,\n            flags: Frames_1.Flags.NONE,\n            requestN: n,\n            streamId: this.streamId,\n        });\n    };\n    RequestStreamRequesterStream.prototype.cancel = function () {\n        var _a;\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        if (!this.streamId) {\n            (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.CANCEL,\n            flags: Frames_1.Flags.NONE,\n            streamId: this.streamId,\n        });\n        this.stream.disconnect(this);\n        Reassembler.cancel(this);\n    };\n    RequestStreamRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n        if (this.done) {\n            return;\n        }\n        if (!this.streamId) {\n            this.hasExtension = true;\n            this.extendedType = extendedType;\n            this.extendedContent = content;\n            this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n            return;\n        }\n        this.stream.send({\n            streamId: this.streamId,\n            type: Frames_1.FrameTypes.EXT,\n            extendedType: extendedType,\n            extendedContent: content,\n            flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n        });\n    };\n    RequestStreamRequesterStream.prototype.close = function (error) {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        Reassembler.cancel(this);\n        if (error) {\n            this.receiver.onError(error);\n        }\n        else {\n            this.receiver.onComplete();\n        }\n    };\n    return RequestStreamRequesterStream;\n}());\nexports.RequestStreamRequesterStream = RequestStreamRequesterStream;\nvar RequestStreamResponderStream = /** @class */ (function () {\n    function RequestStreamResponderStream(streamId, stream, fragmentSize, handler, frame) {\n        this.streamId = streamId;\n        this.stream = stream;\n        this.fragmentSize = fragmentSize;\n        this.handler = handler;\n        this.streamType = Frames_1.FrameTypes.REQUEST_STREAM;\n        stream.connect(this);\n        if (Frames_1.Flags.hasFollows(frame.flags)) {\n            this.initialRequestN = frame.requestN;\n            Reassembler.add(this, frame.data, frame.metadata);\n            return;\n        }\n        var payload = {\n            data: frame.data,\n            metadata: frame.metadata,\n        };\n        try {\n            this.receiver = handler(payload, frame.requestN, this);\n        }\n        catch (error) {\n            this.onError(error);\n        }\n    }\n    RequestStreamResponderStream.prototype.handle = function (frame) {\n        var _a;\n        var errorMessage;\n        if (!this.receiver || this.hasFragments) {\n            if (frame.type === Frames_1.FrameTypes.PAYLOAD) {\n                if (Frames_1.Flags.hasFollows(frame.flags)) {\n                    if (Reassembler.add(this, frame.data, frame.metadata)) {\n                        return;\n                    }\n                    errorMessage = \"Unexpected frame size\";\n                }\n                else {\n                    var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n                    try {\n                        this.receiver = this.handler(payload, this.initialRequestN, this);\n                    }\n                    catch (error) {\n                        this.onError(error);\n                    }\n                    return;\n                }\n            }\n            else {\n                errorMessage = \"Unexpected frame type [\".concat(frame.type, \"] during reassembly\");\n            }\n        }\n        else if (frame.type === Frames_1.FrameTypes.REQUEST_N) {\n            this.receiver.request(frame.requestN);\n            return;\n        }\n        else if (frame.type === Frames_1.FrameTypes.EXT) {\n            this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n            return;\n        }\n        else {\n            errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n        }\n        this.done = true;\n        Reassembler.cancel(this);\n        (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n        if (frame.type !== Frames_1.FrameTypes.CANCEL && frame.type !== Frames_1.FrameTypes.ERROR) {\n            this.stream.send({\n                type: Frames_1.FrameTypes.ERROR,\n                flags: Frames_1.Flags.NONE,\n                code: Errors_1.ErrorCodes.CANCELED,\n                message: errorMessage,\n                streamId: this.streamId,\n            });\n        }\n        this.stream.disconnect(this);\n        // TODO: throws if strict\n    };\n    RequestStreamResponderStream.prototype.onError = function (error) {\n        if (this.done) {\n            console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        this.done = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.ERROR,\n            flags: Frames_1.Flags.NONE,\n            code: error instanceof Errors_1.RSocketError\n                ? error.code\n                : Errors_1.ErrorCodes.APPLICATION_ERROR,\n            message: error.message,\n            streamId: this.streamId,\n        });\n        this.stream.disconnect(this);\n    };\n    RequestStreamResponderStream.prototype.onNext = function (payload, isCompletion) {\n        var e_2, _a;\n        if (this.done) {\n            return;\n        }\n        if (isCompletion) {\n            this.done = true;\n        }\n        // TODO: add payload size validation\n        if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n            try {\n                for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isCompletion)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var frame = _c.value;\n                    this.stream.send(frame);\n                }\n            }\n            catch (e_2_1) { e_2 = { error: e_2_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_2) throw e_2.error; }\n            }\n        }\n        else {\n            this.stream.send({\n                type: Frames_1.FrameTypes.PAYLOAD,\n                flags: Frames_1.Flags.NEXT |\n                    (isCompletion ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n                    (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n                data: payload.data,\n                metadata: payload.metadata,\n                streamId: this.streamId,\n            });\n        }\n        if (isCompletion) {\n            this.stream.disconnect(this);\n        }\n    };\n    RequestStreamResponderStream.prototype.onComplete = function () {\n        if (this.done) {\n            return;\n        }\n        this.done = true;\n        this.stream.send({\n            type: Frames_1.FrameTypes.PAYLOAD,\n            flags: Frames_1.Flags.COMPLETE,\n            streamId: this.streamId,\n            data: null,\n            metadata: null,\n        });\n        this.stream.disconnect(this);\n    };\n    RequestStreamResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n        if (this.done) {\n            return;\n        }\n        this.stream.send({\n            type: Frames_1.FrameTypes.EXT,\n            streamId: this.streamId,\n            flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n            extendedType: extendedType,\n            extendedContent: content,\n        });\n    };\n    RequestStreamResponderStream.prototype.close = function (error) {\n        var _a;\n        if (this.done) {\n            console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n            return;\n        }\n        Reassembler.cancel(this);\n        (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n    };\n    return RequestStreamResponderStream;\n}());\nexports.RequestStreamResponderStream = RequestStreamResponderStream;\n//# sourceMappingURL=RequestStreamStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeepAliveSender = exports.KeepAliveHandler = exports.DefaultConnectionFrameHandler = exports.DefaultStreamRequestHandler = exports.LeaseHandler = exports.RSocketRequester = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar RequestChannelStream_1 = require(\"./RequestChannelStream\");\nvar RequestFnFStream_1 = require(\"./RequestFnFStream\");\nvar RequestResponseStream_1 = require(\"./RequestResponseStream\");\nvar RequestStreamStream_1 = require(\"./RequestStreamStream\");\nvar RSocketRequester = /** @class */ (function () {\n    function RSocketRequester(connection, fragmentSize, leaseManager) {\n        this.connection = connection;\n        this.fragmentSize = fragmentSize;\n        this.leaseManager = leaseManager;\n    }\n    RSocketRequester.prototype.fireAndForget = function (payload, responderStream) {\n        var handler = new RequestFnFStream_1.RequestFnFRequesterStream(payload, responderStream, this.fragmentSize, this.leaseManager);\n        if (this.leaseManager) {\n            this.leaseManager.requestLease(handler);\n        }\n        else {\n            this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n        }\n        return handler;\n    };\n    RSocketRequester.prototype.requestResponse = function (payload, responderStream) {\n        var handler = new RequestResponseStream_1.RequestResponseRequesterStream(payload, responderStream, this.fragmentSize, this.leaseManager);\n        if (this.leaseManager) {\n            this.leaseManager.requestLease(handler);\n        }\n        else {\n            this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n        }\n        return handler;\n    };\n    RSocketRequester.prototype.requestStream = function (payload, initialRequestN, responderStream) {\n        var handler = new RequestStreamStream_1.RequestStreamRequesterStream(payload, responderStream, this.fragmentSize, initialRequestN, this.leaseManager);\n        if (this.leaseManager) {\n            this.leaseManager.requestLease(handler);\n        }\n        else {\n            this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n        }\n        return handler;\n    };\n    RSocketRequester.prototype.requestChannel = function (payload, initialRequestN, isCompleted, responderStream) {\n        var handler = new RequestChannelStream_1.RequestChannelRequesterStream(payload, isCompleted, responderStream, this.fragmentSize, initialRequestN, this.leaseManager);\n        if (this.leaseManager) {\n            this.leaseManager.requestLease(handler);\n        }\n        else {\n            this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n        }\n        return handler;\n    };\n    RSocketRequester.prototype.metadataPush = function (metadata, responderStream) {\n        throw new Error(\"Method not implemented.\");\n    };\n    RSocketRequester.prototype.close = function (error) {\n        this.connection.close(error);\n    };\n    RSocketRequester.prototype.onClose = function (callback) {\n        this.connection.onClose(callback);\n    };\n    return RSocketRequester;\n}());\nexports.RSocketRequester = RSocketRequester;\nvar LeaseHandler = /** @class */ (function () {\n    function LeaseHandler(maxPendingRequests, multiplexer) {\n        this.maxPendingRequests = maxPendingRequests;\n        this.multiplexer = multiplexer;\n        this.pendingRequests = [];\n        this.expirationTime = 0;\n        this.availableLease = 0;\n    }\n    LeaseHandler.prototype.handle = function (frame) {\n        this.expirationTime = frame.ttl + Date.now();\n        this.availableLease = frame.requestCount;\n        while (this.availableLease > 0 && this.pendingRequests.length > 0) {\n            var handler = this.pendingRequests.shift();\n            this.availableLease--;\n            this.multiplexer.createRequestStream(handler);\n        }\n    };\n    LeaseHandler.prototype.requestLease = function (handler) {\n        var availableLease = this.availableLease;\n        if (availableLease > 0 && Date.now() < this.expirationTime) {\n            this.availableLease = availableLease - 1;\n            this.multiplexer.createRequestStream(handler);\n            return;\n        }\n        if (this.pendingRequests.length >= this.maxPendingRequests) {\n            handler.handleReject(new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED, \"No available lease given\"));\n            return;\n        }\n        this.pendingRequests.push(handler);\n    };\n    LeaseHandler.prototype.cancelRequest = function (handler) {\n        var index = this.pendingRequests.indexOf(handler);\n        if (index > -1) {\n            this.pendingRequests.splice(index, 1);\n        }\n    };\n    return LeaseHandler;\n}());\nexports.LeaseHandler = LeaseHandler;\nvar DefaultStreamRequestHandler = /** @class */ (function () {\n    function DefaultStreamRequestHandler(rsocket, fragmentSize) {\n        this.rsocket = rsocket;\n        this.fragmentSize = fragmentSize;\n    }\n    DefaultStreamRequestHandler.prototype.handle = function (frame, stream) {\n        switch (frame.type) {\n            case Frames_1.FrameTypes.REQUEST_FNF:\n                if (this.rsocket.fireAndForget) {\n                    new RequestFnFStream_1.RequestFnfResponderStream(frame.streamId, stream, this.rsocket.fireAndForget.bind(this.rsocket), frame);\n                }\n                return;\n            case Frames_1.FrameTypes.REQUEST_RESPONSE:\n                if (this.rsocket.requestResponse) {\n                    new RequestResponseStream_1.RequestResponseResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestResponse.bind(this.rsocket), frame);\n                    return;\n                }\n                this.rejectRequest(frame.streamId, stream);\n                return;\n            case Frames_1.FrameTypes.REQUEST_STREAM:\n                if (this.rsocket.requestStream) {\n                    new RequestStreamStream_1.RequestStreamResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestStream.bind(this.rsocket), frame);\n                    return;\n                }\n                this.rejectRequest(frame.streamId, stream);\n                return;\n            case Frames_1.FrameTypes.REQUEST_CHANNEL:\n                if (this.rsocket.requestChannel) {\n                    new RequestChannelStream_1.RequestChannelResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestChannel.bind(this.rsocket), frame);\n                    return;\n                }\n                this.rejectRequest(frame.streamId, stream);\n                return;\n        }\n    };\n    DefaultStreamRequestHandler.prototype.rejectRequest = function (streamId, stream) {\n        stream.send({\n            type: Frames_1.FrameTypes.ERROR,\n            streamId: streamId,\n            flags: Frames_1.Flags.NONE,\n            code: Errors_1.ErrorCodes.REJECTED,\n            message: \"No available handler found\",\n        });\n    };\n    DefaultStreamRequestHandler.prototype.close = function () { };\n    return DefaultStreamRequestHandler;\n}());\nexports.DefaultStreamRequestHandler = DefaultStreamRequestHandler;\nvar DefaultConnectionFrameHandler = /** @class */ (function () {\n    function DefaultConnectionFrameHandler(connection, keepAliveHandler, keepAliveSender, leaseHandler, rsocket) {\n        this.connection = connection;\n        this.keepAliveHandler = keepAliveHandler;\n        this.keepAliveSender = keepAliveSender;\n        this.leaseHandler = leaseHandler;\n        this.rsocket = rsocket;\n    }\n    DefaultConnectionFrameHandler.prototype.handle = function (frame) {\n        switch (frame.type) {\n            case Frames_1.FrameTypes.KEEPALIVE:\n                this.keepAliveHandler.handle(frame);\n                return;\n            case Frames_1.FrameTypes.LEASE:\n                if (this.leaseHandler) {\n                    this.leaseHandler.handle(frame);\n                    return;\n                }\n                // TODO throw exception and close connection\n                return;\n            case Frames_1.FrameTypes.ERROR:\n                // TODO: add code validation\n                this.connection.close(new Errors_1.RSocketError(frame.code, frame.message));\n                return;\n            case Frames_1.FrameTypes.METADATA_PUSH:\n                if (this.rsocket.metadataPush) {\n                    // this.rsocket.metadataPush()\n                }\n                return;\n            default:\n                this.connection.multiplexerDemultiplexer.connectionOutbound.send({\n                    type: Frames_1.FrameTypes.ERROR,\n                    streamId: 0,\n                    flags: Frames_1.Flags.NONE,\n                    message: \"Received unknown frame type\",\n                    code: Errors_1.ErrorCodes.CONNECTION_ERROR,\n                });\n            // TODO: throw an exception and close connection\n        }\n    };\n    DefaultConnectionFrameHandler.prototype.pause = function () {\n        var _a;\n        this.keepAliveHandler.pause();\n        (_a = this.keepAliveSender) === null || _a === void 0 ? void 0 : _a.pause();\n    };\n    DefaultConnectionFrameHandler.prototype.resume = function () {\n        var _a;\n        this.keepAliveHandler.start();\n        (_a = this.keepAliveSender) === null || _a === void 0 ? void 0 : _a.start();\n    };\n    DefaultConnectionFrameHandler.prototype.close = function (error) {\n        var _a;\n        this.keepAliveHandler.close();\n        (_a = this.rsocket.close) === null || _a === void 0 ? void 0 : _a.call(this.rsocket, error);\n    };\n    return DefaultConnectionFrameHandler;\n}());\nexports.DefaultConnectionFrameHandler = DefaultConnectionFrameHandler;\nvar KeepAliveHandlerStates;\n(function (KeepAliveHandlerStates) {\n    KeepAliveHandlerStates[KeepAliveHandlerStates[\"Paused\"] = 0] = \"Paused\";\n    KeepAliveHandlerStates[KeepAliveHandlerStates[\"Running\"] = 1] = \"Running\";\n    KeepAliveHandlerStates[KeepAliveHandlerStates[\"Closed\"] = 2] = \"Closed\";\n})(KeepAliveHandlerStates || (KeepAliveHandlerStates = {}));\nvar KeepAliveHandler = /** @class */ (function () {\n    function KeepAliveHandler(connection, keepAliveTimeoutDuration) {\n        this.connection = connection;\n        this.keepAliveTimeoutDuration = keepAliveTimeoutDuration;\n        this.state = KeepAliveHandlerStates.Paused;\n        this.outbound = connection.multiplexerDemultiplexer.connectionOutbound;\n    }\n    KeepAliveHandler.prototype.handle = function (frame) {\n        this.keepAliveLastReceivedMillis = Date.now();\n        if (Frames_1.Flags.hasRespond(frame.flags)) {\n            this.outbound.send({\n                type: Frames_1.FrameTypes.KEEPALIVE,\n                streamId: 0,\n                data: frame.data,\n                flags: frame.flags ^ Frames_1.Flags.RESPOND,\n                lastReceivedPosition: 0,\n            });\n        }\n    };\n    KeepAliveHandler.prototype.start = function () {\n        if (this.state !== KeepAliveHandlerStates.Paused) {\n            return;\n        }\n        this.keepAliveLastReceivedMillis = Date.now();\n        this.state = KeepAliveHandlerStates.Running;\n        this.activeTimeout = setTimeout(this.timeoutCheck.bind(this), this.keepAliveTimeoutDuration);\n    };\n    KeepAliveHandler.prototype.pause = function () {\n        if (this.state !== KeepAliveHandlerStates.Running) {\n            return;\n        }\n        this.state = KeepAliveHandlerStates.Paused;\n        clearTimeout(this.activeTimeout);\n    };\n    KeepAliveHandler.prototype.close = function () {\n        this.state = KeepAliveHandlerStates.Closed;\n        clearTimeout(this.activeTimeout);\n    };\n    KeepAliveHandler.prototype.timeoutCheck = function () {\n        var now = Date.now();\n        var noKeepAliveDuration = now - this.keepAliveLastReceivedMillis;\n        if (noKeepAliveDuration >= this.keepAliveTimeoutDuration) {\n            this.connection.close(new Error(\"No keep-alive acks for \".concat(this.keepAliveTimeoutDuration, \" millis\")));\n        }\n        else {\n            this.activeTimeout = setTimeout(this.timeoutCheck.bind(this), Math.max(100, this.keepAliveTimeoutDuration - noKeepAliveDuration));\n        }\n    };\n    return KeepAliveHandler;\n}());\nexports.KeepAliveHandler = KeepAliveHandler;\nvar KeepAliveSenderStates;\n(function (KeepAliveSenderStates) {\n    KeepAliveSenderStates[KeepAliveSenderStates[\"Paused\"] = 0] = \"Paused\";\n    KeepAliveSenderStates[KeepAliveSenderStates[\"Running\"] = 1] = \"Running\";\n    KeepAliveSenderStates[KeepAliveSenderStates[\"Closed\"] = 2] = \"Closed\";\n})(KeepAliveSenderStates || (KeepAliveSenderStates = {}));\nvar KeepAliveSender = /** @class */ (function () {\n    function KeepAliveSender(outbound, keepAlivePeriodDuration) {\n        this.outbound = outbound;\n        this.keepAlivePeriodDuration = keepAlivePeriodDuration;\n        this.state = KeepAliveSenderStates.Paused;\n    }\n    KeepAliveSender.prototype.sendKeepAlive = function () {\n        this.outbound.send({\n            type: Frames_1.FrameTypes.KEEPALIVE,\n            streamId: 0,\n            data: undefined,\n            flags: Frames_1.Flags.RESPOND,\n            lastReceivedPosition: 0,\n        });\n    };\n    KeepAliveSender.prototype.start = function () {\n        if (this.state !== KeepAliveSenderStates.Paused) {\n            return;\n        }\n        this.state = KeepAliveSenderStates.Running;\n        this.activeInterval = setInterval(this.sendKeepAlive.bind(this), this.keepAlivePeriodDuration);\n    };\n    KeepAliveSender.prototype.pause = function () {\n        if (this.state !== KeepAliveSenderStates.Running) {\n            return;\n        }\n        this.state = KeepAliveSenderStates.Paused;\n        clearInterval(this.activeInterval);\n    };\n    KeepAliveSender.prototype.close = function () {\n        this.state = KeepAliveSenderStates.Closed;\n        clearInterval(this.activeInterval);\n    };\n    return KeepAliveSender;\n}());\nexports.KeepAliveSender = KeepAliveSender;\n//# sourceMappingURL=RSocketSupport.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrameStore = void 0;\nvar _1 = require(\".\");\nvar Codecs_1 = require(\"./Codecs\");\nvar FrameStore = /** @class */ (function () {\n    function FrameStore() {\n        this.storedFrames = [];\n        this._lastReceivedFramePosition = 0;\n        this._firstAvailableFramePosition = 0;\n        this._lastSentFramePosition = 0;\n    }\n    Object.defineProperty(FrameStore.prototype, \"lastReceivedFramePosition\", {\n        get: function () {\n            return this._lastReceivedFramePosition;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(FrameStore.prototype, \"firstAvailableFramePosition\", {\n        get: function () {\n            return this._firstAvailableFramePosition;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(FrameStore.prototype, \"lastSentFramePosition\", {\n        get: function () {\n            return this._lastSentFramePosition;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    FrameStore.prototype.store = function (frame) {\n        this._lastSentFramePosition += (0, Codecs_1.sizeOfFrame)(frame);\n        this.storedFrames.push(frame);\n    };\n    FrameStore.prototype.record = function (frame) {\n        this._lastReceivedFramePosition += (0, Codecs_1.sizeOfFrame)(frame);\n    };\n    FrameStore.prototype.dropTo = function (lastReceivedPosition) {\n        var bytesToDrop = lastReceivedPosition - this._firstAvailableFramePosition;\n        while (bytesToDrop > 0 && this.storedFrames.length > 0) {\n            var storedFrame = this.storedFrames.shift();\n            bytesToDrop -= (0, Codecs_1.sizeOfFrame)(storedFrame);\n        }\n        if (bytesToDrop !== 0) {\n            throw new _1.RSocketError(_1.ErrorCodes.CONNECTION_ERROR, \"State inconsistency. Expected bytes to drop \".concat(lastReceivedPosition - this._firstAvailableFramePosition, \" but actual \").concat(bytesToDrop));\n        }\n        this._firstAvailableFramePosition = lastReceivedPosition;\n    };\n    FrameStore.prototype.drain = function (consumer) {\n        var e_1, _a;\n        try {\n            for (var _b = __values(this.storedFrames), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var frame = _c.value;\n                consumer(frame);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    return FrameStore;\n}());\nexports.FrameStore = FrameStore;\n//# sourceMappingURL=Resume.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\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;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RSocketConnector = void 0;\nvar ClientServerMultiplexerDemultiplexer_1 = require(\"./ClientServerMultiplexerDemultiplexer\");\nvar Frames_1 = require(\"./Frames\");\nvar RSocketSupport_1 = require(\"./RSocketSupport\");\nvar Resume_1 = require(\"./Resume\");\nvar RSocketConnector = /** @class */ (function () {\n    function RSocketConnector(config) {\n        this.config = config;\n    }\n    RSocketConnector.prototype.connect = function () {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;\n        return __awaiter(this, void 0, void 0, function () {\n            var config, setupFrame, connection, keepAliveSender, keepAliveHandler, leaseHandler, responder, connectionFrameHandler, streamsHandler;\n            var _this = this;\n            return __generator(this, function (_w) {\n                switch (_w.label) {\n                    case 0:\n                        config = this.config;\n                        setupFrame = {\n                            type: Frames_1.FrameTypes.SETUP,\n                            dataMimeType: (_b = (_a = config.setup) === null || _a === void 0 ? void 0 : _a.dataMimeType) !== null && _b !== void 0 ? _b : \"application/octet-stream\",\n                            metadataMimeType: (_d = (_c = config.setup) === null || _c === void 0 ? void 0 : _c.metadataMimeType) !== null && _d !== void 0 ? _d : \"application/octet-stream\",\n                            keepAlive: (_f = (_e = config.setup) === null || _e === void 0 ? void 0 : _e.keepAlive) !== null && _f !== void 0 ? _f : 60000,\n                            lifetime: (_h = (_g = config.setup) === null || _g === void 0 ? void 0 : _g.lifetime) !== null && _h !== void 0 ? _h : 300000,\n                            metadata: (_k = (_j = config.setup) === null || _j === void 0 ? void 0 : _j.payload) === null || _k === void 0 ? void 0 : _k.metadata,\n                            data: (_m = (_l = config.setup) === null || _l === void 0 ? void 0 : _l.payload) === null || _m === void 0 ? void 0 : _m.data,\n                            resumeToken: (_p = (_o = config.resume) === null || _o === void 0 ? void 0 : _o.tokenGenerator()) !== null && _p !== void 0 ? _p : null,\n                            streamId: 0,\n                            majorVersion: 1,\n                            minorVersion: 0,\n                            flags: (((_r = (_q = config.setup) === null || _q === void 0 ? void 0 : _q.payload) === null || _r === void 0 ? void 0 : _r.metadata) ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n                                (config.lease ? Frames_1.Flags.LEASE : Frames_1.Flags.NONE) |\n                                (config.resume ? Frames_1.Flags.RESUME_ENABLE : Frames_1.Flags.NONE),\n                        };\n                        return [4 /*yield*/, config.transport.connect(function (outbound) {\n                                return config.resume\n                                    ? new ClientServerMultiplexerDemultiplexer_1.ResumableClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(-1), outbound, outbound, new Resume_1.FrameStore(), // TODO: add size control\n                                    setupFrame.resumeToken.toString(), function (self, frameStore) { return __awaiter(_this, void 0, void 0, function () {\n                                        var multiplexerDemultiplexerProvider, reconnectionAttempts, reconnector;\n                                        return __generator(this, function (_a) {\n                                            switch (_a.label) {\n                                                case 0:\n                                                    multiplexerDemultiplexerProvider = function (outbound) {\n                                                        outbound.send({\n                                                            type: Frames_1.FrameTypes.RESUME,\n                                                            streamId: 0,\n                                                            flags: Frames_1.Flags.NONE,\n                                                            clientPosition: frameStore.firstAvailableFramePosition,\n                                                            serverPosition: frameStore.lastReceivedFramePosition,\n                                                            majorVersion: setupFrame.minorVersion,\n                                                            minorVersion: setupFrame.majorVersion,\n                                                            resumeToken: setupFrame.resumeToken,\n                                                        });\n                                                        return new ClientServerMultiplexerDemultiplexer_1.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(outbound, outbound, self);\n                                                    };\n                                                    reconnectionAttempts = -1;\n                                                    reconnector = function () {\n                                                        reconnectionAttempts++;\n                                                        return config.resume\n                                                            .reconnectFunction(reconnectionAttempts)\n                                                            .then(function () {\n                                                            return config.transport\n                                                                .connect(multiplexerDemultiplexerProvider)\n                                                                .catch(reconnector);\n                                                        });\n                                                    };\n                                                    return [4 /*yield*/, reconnector()];\n                                                case 1:\n                                                    _a.sent();\n                                                    return [2 /*return*/];\n                                            }\n                                        });\n                                    }); })\n                                    : new ClientServerMultiplexerDemultiplexer_1.ClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(-1), outbound, outbound);\n                            })];\n                    case 1:\n                        connection = _w.sent();\n                        keepAliveSender = new RSocketSupport_1.KeepAliveSender(connection.multiplexerDemultiplexer.connectionOutbound, setupFrame.keepAlive);\n                        keepAliveHandler = new RSocketSupport_1.KeepAliveHandler(connection, setupFrame.lifetime);\n                        leaseHandler = config.lease\n                            ? new RSocketSupport_1.LeaseHandler((_s = config.lease.maxPendingRequests) !== null && _s !== void 0 ? _s : 256, connection.multiplexerDemultiplexer)\n                            : undefined;\n                        responder = (_t = config.responder) !== null && _t !== void 0 ? _t : {};\n                        connectionFrameHandler = new RSocketSupport_1.DefaultConnectionFrameHandler(connection, keepAliveHandler, keepAliveSender, leaseHandler, responder);\n                        streamsHandler = new RSocketSupport_1.DefaultStreamRequestHandler(responder, 0);\n                        connection.onClose(function (e) {\n                            keepAliveSender.close();\n                            keepAliveHandler.close();\n                            connectionFrameHandler.close(e);\n                        });\n                        connection.multiplexerDemultiplexer.connectionInbound(connectionFrameHandler);\n                        connection.multiplexerDemultiplexer.handleRequestStream(streamsHandler);\n                        connection.multiplexerDemultiplexer.connectionOutbound.send(setupFrame);\n                        keepAliveHandler.start();\n                        keepAliveSender.start();\n                        return [2 /*return*/, new RSocketSupport_1.RSocketRequester(connection, (_v = (_u = config.fragmentation) === null || _u === void 0 ? void 0 : _u.maxOutboundFragmentSize) !== null && _v !== void 0 ? _v : 0, leaseHandler)];\n                }\n            });\n        });\n    };\n    return RSocketConnector;\n}());\nexports.RSocketConnector = RSocketConnector;\n//# sourceMappingURL=RSocketConnector.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\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;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RSocketServer = void 0;\nvar ClientServerMultiplexerDemultiplexer_1 = require(\"./ClientServerMultiplexerDemultiplexer\");\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar RSocketSupport_1 = require(\"./RSocketSupport\");\nvar Resume_1 = require(\"./Resume\");\nvar RSocketServer = /** @class */ (function () {\n    function RSocketServer(config) {\n        var _a, _b;\n        this.acceptor = config.acceptor;\n        this.transport = config.transport;\n        this.lease = config.lease;\n        this.serverSideKeepAlive = config.serverSideKeepAlive;\n        this.sessionStore = config.resume ? {} : undefined;\n        this.sessionTimeout = (_b = (_a = config.resume) === null || _a === void 0 ? void 0 : _a.sessionTimeout) !== null && _b !== void 0 ? _b : undefined;\n    }\n    RSocketServer.prototype.bind = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, this.transport.bind(function (frame, connection) { return __awaiter(_this, void 0, void 0, function () {\n                            var _a, error, error, leaseHandler, requester, responder, keepAliveHandler_1, keepAliveSender_1, connectionFrameHandler_1, streamsHandler, e_1;\n                            var _b, _c, _d, _e;\n                            return __generator(this, function (_f) {\n                                switch (_f.label) {\n                                    case 0:\n                                        _a = frame.type;\n                                        switch (_a) {\n                                            case Frames_1.FrameTypes.SETUP: return [3 /*break*/, 1];\n                                            case Frames_1.FrameTypes.RESUME: return [3 /*break*/, 5];\n                                        }\n                                        return [3 /*break*/, 6];\n                                    case 1:\n                                        _f.trys.push([1, 3, , 4]);\n                                        if (this.lease && !Frames_1.Flags.hasLease(frame.flags)) {\n                                            error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"Lease has to be enabled\");\n                                            connection.multiplexerDemultiplexer.connectionOutbound.send({\n                                                type: Frames_1.FrameTypes.ERROR,\n                                                streamId: 0,\n                                                flags: Frames_1.Flags.NONE,\n                                                code: error.code,\n                                                message: error.message,\n                                            });\n                                            connection.close(error);\n                                            return [2 /*return*/];\n                                        }\n                                        if (Frames_1.Flags.hasLease(frame.flags) && !this.lease) {\n                                            error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"Lease has to be disabled\");\n                                            connection.multiplexerDemultiplexer.connectionOutbound.send({\n                                                type: Frames_1.FrameTypes.ERROR,\n                                                streamId: 0,\n                                                flags: Frames_1.Flags.NONE,\n                                                code: error.code,\n                                                message: error.message,\n                                            });\n                                            connection.close(error);\n                                            return [2 /*return*/];\n                                        }\n                                        leaseHandler = Frames_1.Flags.hasLease(frame.flags)\n                                            ? new RSocketSupport_1.LeaseHandler((_b = this.lease.maxPendingRequests) !== null && _b !== void 0 ? _b : 256, connection.multiplexerDemultiplexer)\n                                            : undefined;\n                                        requester = new RSocketSupport_1.RSocketRequester(connection, (_d = (_c = this.fragmentation) === null || _c === void 0 ? void 0 : _c.maxOutboundFragmentSize) !== null && _d !== void 0 ? _d : 0, leaseHandler);\n                                        return [4 /*yield*/, this.acceptor.accept({\n                                                data: frame.data,\n                                                dataMimeType: frame.dataMimeType,\n                                                metadata: frame.metadata,\n                                                metadataMimeType: frame.metadataMimeType,\n                                                flags: frame.flags,\n                                                keepAliveMaxLifetime: frame.lifetime,\n                                                keepAliveInterval: frame.keepAlive,\n                                                resumeToken: frame.resumeToken,\n                                            }, requester)];\n                                    case 2:\n                                        responder = _f.sent();\n                                        keepAliveHandler_1 = new RSocketSupport_1.KeepAliveHandler(connection, frame.lifetime);\n                                        keepAliveSender_1 = this.serverSideKeepAlive\n                                            ? new RSocketSupport_1.KeepAliveSender(connection.multiplexerDemultiplexer.connectionOutbound, frame.keepAlive)\n                                            : undefined;\n                                        connectionFrameHandler_1 = new RSocketSupport_1.DefaultConnectionFrameHandler(connection, keepAliveHandler_1, keepAliveSender_1, leaseHandler, responder);\n                                        streamsHandler = new RSocketSupport_1.DefaultStreamRequestHandler(responder, 0);\n                                        connection.onClose(function (e) {\n                                            keepAliveSender_1 === null || keepAliveSender_1 === void 0 ? void 0 : keepAliveSender_1.close();\n                                            keepAliveHandler_1.close();\n                                            connectionFrameHandler_1.close(e);\n                                        });\n                                        connection.multiplexerDemultiplexer.connectionInbound(connectionFrameHandler_1);\n                                        connection.multiplexerDemultiplexer.handleRequestStream(streamsHandler);\n                                        keepAliveHandler_1.start();\n                                        keepAliveSender_1 === null || keepAliveSender_1 === void 0 ? void 0 : keepAliveSender_1.start();\n                                        return [3 /*break*/, 4];\n                                    case 3:\n                                        e_1 = _f.sent();\n                                        connection.multiplexerDemultiplexer.connectionOutbound.send({\n                                            type: Frames_1.FrameTypes.ERROR,\n                                            streamId: 0,\n                                            code: Errors_1.ErrorCodes.REJECTED_SETUP,\n                                            message: (_e = e_1.message) !== null && _e !== void 0 ? _e : \"\",\n                                            flags: Frames_1.Flags.NONE,\n                                        });\n                                        connection.close(e_1 instanceof Errors_1.RSocketError\n                                            ? e_1\n                                            : new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, e_1.message));\n                                        return [3 /*break*/, 4];\n                                    case 4: return [2 /*return*/];\n                                    case 5:\n                                        {\n                                            // frame should be handled earlier\n                                            return [2 /*return*/];\n                                        }\n                                        _f.label = 6;\n                                    case 6:\n                                        {\n                                            connection.multiplexerDemultiplexer.connectionOutbound.send({\n                                                type: Frames_1.FrameTypes.ERROR,\n                                                streamId: 0,\n                                                code: Errors_1.ErrorCodes.UNSUPPORTED_SETUP,\n                                                message: \"Unsupported setup\",\n                                                flags: Frames_1.Flags.NONE,\n                                            });\n                                            connection.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.UNSUPPORTED_SETUP));\n                                        }\n                                        _f.label = 7;\n                                    case 7: return [2 /*return*/];\n                                }\n                            });\n                        }); }, function (frame, outbound) {\n                            if (frame.type === Frames_1.FrameTypes.RESUME) {\n                                if (_this.sessionStore) {\n                                    var multiplexerDemultiplexer = _this.sessionStore[frame.resumeToken.toString()];\n                                    if (!multiplexerDemultiplexer) {\n                                        outbound.send({\n                                            type: Frames_1.FrameTypes.ERROR,\n                                            streamId: 0,\n                                            code: Errors_1.ErrorCodes.REJECTED_RESUME,\n                                            message: \"No session found for the given resume token\",\n                                            flags: Frames_1.Flags.NONE,\n                                        });\n                                        outbound.close();\n                                        return;\n                                    }\n                                    multiplexerDemultiplexer.resume(frame, outbound, outbound);\n                                    return multiplexerDemultiplexer;\n                                }\n                                outbound.send({\n                                    type: Frames_1.FrameTypes.ERROR,\n                                    streamId: 0,\n                                    code: Errors_1.ErrorCodes.REJECTED_RESUME,\n                                    message: \"Resume is not enabled\",\n                                    flags: Frames_1.Flags.NONE,\n                                });\n                                outbound.close();\n                                return;\n                            }\n                            else if (frame.type === Frames_1.FrameTypes.SETUP) {\n                                if (Frames_1.Flags.hasResume(frame.flags)) {\n                                    if (!_this.sessionStore) {\n                                        var error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"No resume support\");\n                                        outbound.send({\n                                            type: Frames_1.FrameTypes.ERROR,\n                                            streamId: 0,\n                                            flags: Frames_1.Flags.NONE,\n                                            code: error.code,\n                                            message: error.message,\n                                        });\n                                        outbound.close(error);\n                                        return;\n                                    }\n                                    var multiplexerDumiltiplexer = new ClientServerMultiplexerDemultiplexer_1.ResumableClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(0), outbound, outbound, new Resume_1.FrameStore(), // TODO: add size parameter\n                                    frame.resumeToken.toString(), _this.sessionStore, _this.sessionTimeout);\n                                    _this.sessionStore[frame.resumeToken.toString()] =\n                                        multiplexerDumiltiplexer;\n                                    return multiplexerDumiltiplexer;\n                                }\n                            }\n                            return new ClientServerMultiplexerDemultiplexer_1.ClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(0), outbound, outbound);\n                        })];\n                    case 1: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    return RSocketServer;\n}());\nexports.RSocketServer = RSocketServer;\n//# sourceMappingURL=RSocketServer.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Transport.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Codecs\"), exports);\n__exportStar(require(\"./Common\"), exports);\n__exportStar(require(\"./Deferred\"), exports);\n__exportStar(require(\"./Errors\"), exports);\n__exportStar(require(\"./Frames\"), exports);\n__exportStar(require(\"./RSocket\"), exports);\n__exportStar(require(\"./RSocketConnector\"), exports);\n__exportStar(require(\"./RSocketServer\"), exports);\n__exportStar(require(\"./Transport\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketDuplexConnection = void 0;\nvar rsocket_core_1 = require(\"rsocket-core\");\nvar WebsocketDuplexConnection = /** @class */ (function (_super) {\n    __extends(WebsocketDuplexConnection, _super);\n    function WebsocketDuplexConnection(websocket, deserializer, multiplexerDemultiplexerFactory) {\n        var _this = _super.call(this) || this;\n        _this.websocket = websocket;\n        _this.deserializer = deserializer;\n        _this.handleClosed = function (e) {\n            _this.close(new Error(e.reason || \"WebsocketDuplexConnection: Socket closed unexpectedly.\"));\n        };\n        _this.handleError = function (e) {\n            _this.close(e.error);\n        };\n        _this.handleMessage = function (message) {\n            try {\n                var buffer = Buffer.from(message.data);\n                var frame = _this.deserializer.deserializeFrame(buffer);\n                _this.multiplexerDemultiplexer.handle(frame);\n            }\n            catch (error) {\n                _this.close(error);\n            }\n        };\n        websocket.addEventListener(\"close\", _this.handleClosed);\n        websocket.addEventListener(\"error\", _this.handleError);\n        websocket.addEventListener(\"message\", _this.handleMessage);\n        _this.multiplexerDemultiplexer = multiplexerDemultiplexerFactory(_this);\n        return _this;\n    }\n    Object.defineProperty(WebsocketDuplexConnection.prototype, \"availability\", {\n        get: function () {\n            return this.done ? 0 : 1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    WebsocketDuplexConnection.prototype.close = function (error) {\n        if (this.done) {\n            _super.prototype.close.call(this, error);\n            return;\n        }\n        this.websocket.removeEventListener(\"close\", this.handleClosed);\n        this.websocket.removeEventListener(\"error\", this.handleError);\n        this.websocket.removeEventListener(\"message\", this.handleMessage);\n        this.websocket.close();\n        delete this.websocket;\n        _super.prototype.close.call(this, error);\n    };\n    WebsocketDuplexConnection.prototype.send = function (frame) {\n        if (this.done) {\n            return;\n        }\n        var buffer = (0, rsocket_core_1.serializeFrame)(frame);\n        this.websocket.send(buffer);\n    };\n    return WebsocketDuplexConnection;\n}(rsocket_core_1.Deferred));\nexports.WebsocketDuplexConnection = WebsocketDuplexConnection;\n//# sourceMappingURL=WebsocketDuplexConnection.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClientTransport = void 0;\nvar rsocket_core_1 = require(\"rsocket-core\");\nvar WebsocketDuplexConnection_1 = require(\"./WebsocketDuplexConnection\");\nvar WebsocketClientTransport = /** @class */ (function () {\n    function WebsocketClientTransport(options) {\n        var _a;\n        this.url = options.url;\n        this.factory = (_a = options.wsCreator) !== null && _a !== void 0 ? _a : (function (url) { return new WebSocket(url); });\n    }\n    WebsocketClientTransport.prototype.connect = function (multiplexerDemultiplexerFactory) {\n        var _this = this;\n        return new Promise(function (resolve, reject) {\n            var websocket = _this.factory(_this.url);\n            websocket.binaryType = \"arraybuffer\";\n            var openListener = function () {\n                websocket.removeEventListener(\"open\", openListener);\n                websocket.removeEventListener(\"error\", errorListener);\n                resolve(new WebsocketDuplexConnection_1.WebsocketDuplexConnection(websocket, new rsocket_core_1.Deserializer(), multiplexerDemultiplexerFactory));\n            };\n            var errorListener = function (ev) {\n                websocket.removeEventListener(\"open\", openListener);\n                websocket.removeEventListener(\"error\", errorListener);\n                reject(ev.error);\n            };\n            websocket.addEventListener(\"open\", openListener);\n            websocket.addEventListener(\"error\", errorListener);\n        });\n    };\n    return WebsocketClientTransport;\n}());\nexports.WebsocketClientTransport = WebsocketClientTransport;\n//# sourceMappingURL=WebsocketClientTransport.js.map","/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./WebsocketClientTransport\"), exports);\n//# sourceMappingURL=index.js.map","// doneResult and valueResult are tiny definitions we can afford to duplicate.\nimport { doneResult, valueResult } from '../../../utils/stream_transform.js';\nimport { RSocketConnector } from 'rsocket-core';\nimport { WebsocketClientTransport } from 'rsocket-websocket-client';\nconst SYNC_QUEUE_REQUEST_HIGH_WATER = 10;\nconst SYNC_QUEUE_REQUEST_LOW_WATER = 5;\n// Keep alive message is sent every period\nconst KEEP_ALIVE_MS = 20_000;\n// One message of any type must be received in this period.\nconst SOCKET_TIMEOUT_MS = 30_000;\n// One keepalive message must be received in this period.\n// If there is a backlog of messages (for example on slow connections), keepalive messages could be delayed\n// significantly. Therefore this is longer than the socket timeout.\nconst KEEP_ALIVE_LIFETIME_MS = 90_000;\nexport class WebSocketSupport {\n    #platform;\n    constructor(platform) {\n        this.#platform = platform;\n    }\n    async webSocketSyncStream({ remote, buffered, request, abortSignal, requestPayload }) {\n        const mimeType = 'application/json';\n        const userAgent = request.userAgent;\n        function toBuffer(js) {\n            return Buffer.from(JSON.stringify(js));\n        }\n        const syncQueueRequestSize = buffered ? 10 : 1;\n        // While we're connecting (a process that can't be aborted in RSocket), the WebSocket instance to close if we wanted\n        // to abort the connection.\n        let pendingSocket = null;\n        let keepAliveTimeout;\n        let rsocket = null;\n        let paused = false;\n        const queue = new this.#platform.EventQueue({\n            eventDelivered: () => {\n                if (queue.countOutstandingEvents <= SYNC_QUEUE_REQUEST_LOW_WATER) {\n                    paused = false;\n                    requestMore();\n                }\n            }\n        });\n        let didClose = false;\n        let connectionEstablished = false;\n        let pendingEventsCount = syncQueueRequestSize;\n        let res = null;\n        const abortRequest = () => {\n            if (didClose) {\n                return;\n            }\n            didClose = true;\n            clearTimeout(keepAliveTimeout);\n            if (pendingSocket) {\n                pendingSocket.close();\n            }\n            if (rsocket) {\n                rsocket.close();\n            }\n            // Send a bogus event to the queue to ensure a pending listener gets woken up. We check for didClose and would\n            // return a doneEvent.\n            queue.notify(null);\n        };\n        function push(event) {\n            queue.notify(event);\n            if (queue.countOutstandingEvents >= SYNC_QUEUE_REQUEST_HIGH_WATER) {\n                paused = true;\n            }\n        }\n        function requestMore() {\n            const delta = syncQueueRequestSize - pendingEventsCount;\n            if (!paused && delta > 0) {\n                res?.request(delta);\n                pendingEventsCount = syncQueueRequestSize;\n            }\n        }\n        // Handle upstream abort\n        if (abortSignal.aborted) {\n            throw new this.#platform.AbortOperation('Connection request aborted');\n        }\n        else {\n            abortSignal.addEventListener('abort', abortRequest);\n        }\n        const resetTimeout = () => {\n            clearTimeout(keepAliveTimeout);\n            keepAliveTimeout = setTimeout(() => {\n                remote.logger.log({\n                    level: this.#platform.LogLevels.error,\n                    message: `No data received on WebSocket in ${SOCKET_TIMEOUT_MS}ms, closing connection.`\n                });\n                abortRequest();\n            }, SOCKET_TIMEOUT_MS);\n        };\n        resetTimeout();\n        const connector = new RSocketConnector({\n            transport: new WebsocketClientTransport({\n                url: request.url,\n                wsCreator: (url) => {\n                    const socket = (pendingSocket = remote.createSocket(url));\n                    socket.addEventListener('message', () => {\n                        resetTimeout();\n                    });\n                    return socket;\n                }\n            }),\n            setup: {\n                keepAlive: KEEP_ALIVE_MS,\n                lifetime: KEEP_ALIVE_LIFETIME_MS,\n                dataMimeType: mimeType,\n                metadataMimeType: mimeType,\n                payload: {\n                    data: null,\n                    metadata: toBuffer({\n                        token: request.headers.Authorization,\n                        user_agent: userAgent\n                    })\n                }\n            }\n        });\n        try {\n            rsocket = await connector.connect();\n            // The connection is established, we no longer need to monitor the initial timeout\n            pendingSocket = null;\n        }\n        catch (ex) {\n            remote.logger.log({ level: this.#platform.LogLevels.error, message: `Failed to connect WebSocket`, error: ex });\n            abortRequest();\n            throw ex;\n        }\n        resetTimeout();\n        // Helps to prevent double close scenarios\n        rsocket.onClose(() => (rsocket = null));\n        return await new Promise((resolve, reject) => {\n            const queueAsIterator = {\n                next: async () => {\n                    if (didClose)\n                        return doneResult;\n                    const notification = await queue.waitForEvent(abortSignal);\n                    if (didClose) {\n                        return doneResult;\n                    }\n                    else {\n                        return valueResult(notification);\n                    }\n                }\n            };\n            res = rsocket.requestStream({\n                data: toBuffer(requestPayload),\n                metadata: toBuffer({\n                    path: request.path\n                })\n            }, syncQueueRequestSize, // The initial N amount\n            {\n                onError: (e) => {\n                    if (e.message.includes('PSYNC_')) {\n                        if (e.message.includes('PSYNC_S21')) {\n                            remote.invalidateCredentials();\n                        }\n                    }\n                    else {\n                        // Possible that connection is with an older service, always invalidate to be safe\n                        if (e.message !== 'Closed. ') {\n                            remote.invalidateCredentials();\n                        }\n                    }\n                    // Don't log closed as an error\n                    if (e.message !== 'Closed. ') {\n                        remote.logger.log({ level: this.#platform.LogLevels.error, message: 'RSocket error', error: e });\n                    }\n                    // RSocket will close the RSocket stream automatically\n                    // Close the downstream stream as well - this will close the RSocket connection and WebSocket\n                    abortRequest();\n                    // Handles cases where the connection failed e.g. auth error or connection error\n                    if (!connectionEstablished) {\n                        reject(e);\n                    }\n                },\n                onNext: (payload) => {\n                    // The connection is active\n                    if (!connectionEstablished) {\n                        connectionEstablished = true;\n                        resolve(queueAsIterator);\n                    }\n                    const { data } = payload;\n                    if (data) {\n                        push(data);\n                    }\n                    // Less events are now pending\n                    pendingEventsCount--;\n                    // Request another event (unless the downstream consumer is paused).\n                    requestMore();\n                },\n                onComplete: () => {\n                    abortRequest(); // this will also emit a done event\n                },\n                onExtension: () => { }\n            });\n        });\n    }\n}\n//# sourceMappingURL=WebSocketSupport.js.map"],"names":["exports","this","require$$0","Deferred_1","Deferred","require$$1","require$$2","require$$3","require$$4","require$$5","RSocketConnector_1","RSocketConnector","RSocketServer_1","RSocketServer","require$$6","require$$7","require$$8","WebsocketDuplexConnection_1","WebsocketDuplexConnection","WebsocketClientTransport_1","WebsocketClientTransport"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}