{"version":3,"file":"rx-crud.mjs","sources":["../node_modules/rsocket-core/dist/Frames.js","../node_modules/rsocket-core/dist/Codecs.js","../node_modules/rsocket-core/dist/Common.js","../node_modules/rsocket-core/dist/Deferred.js","../node_modules/rsocket-core/dist/Errors.js","../node_modules/rsocket-core/dist/RSocket.js","../node_modules/rsocket-core/dist/ClientServerMultiplexerDemultiplexer.js","../node_modules/rsocket-core/dist/Fragmenter.js","../node_modules/rsocket-core/dist/Reassembler.js","../node_modules/rsocket-core/dist/RequestChannelStream.js","../node_modules/rsocket-core/dist/RequestFnFStream.js","../node_modules/rsocket-core/dist/RequestResponseStream.js","../node_modules/rsocket-core/dist/RequestStreamStream.js","../node_modules/rsocket-core/dist/RSocketSupport.js","../node_modules/rsocket-core/dist/Resume.js","../node_modules/rsocket-core/dist/RSocketConnector.js","../node_modules/rsocket-core/dist/RSocketServer.js","../node_modules/rsocket-core/dist/Transport.js","../node_modules/rsocket-core/dist/index.js","../node_modules/rsocket-composite-metadata/dist/WellKnownMimeType.js","../node_modules/rsocket-composite-metadata/dist/CompositeMetadata.js","../node_modules/rsocket-composite-metadata/dist/WellKnownAuthType.js","../node_modules/rsocket-composite-metadata/dist/AuthMetadata.js","../node_modules/rsocket-composite-metadata/dist/RoutingMetadata.js","../node_modules/rsocket-composite-metadata/dist/index.js","../src/rsocket/util/BufferUtil.ts","../src/rsocket/model/rsocketTypes.ts","../node_modules/rsocket-websocket-client/dist/WebsocketDuplexConnection.js","../node_modules/rsocket-websocket-client/dist/WebsocketClientTransport.js","../node_modules/rsocket-websocket-client/dist/index.js","../src/globalException.ts","../src/rsocket/util/connector.ts","../src/rsocket/service/requestResponse.ts","../src/rsocket/service/requestStream.ts","../src/rsocket/service/fireAndForget.ts","../src/rsocket/model/RSocketConfig.ts","../src/crud/model/DiffDetail.ts","../src/crud/model/OperationType.ts","../src/crud/service/baseModel/model/BaseType.ts","../src/crud/service/baseModel/model/BaseModel.ts","../src/crud/model/CustomException.ts","../src/crud/service/baseModel/encode/toBaseType.ts","../src/crud/service/baseModel/encode/toBaseModel.ts","../src/crud/service/diff/isCollectionEquals.ts","../src/crud/service/baseModel/decode/decodeBaseModel.ts","../src/crud/service/baseModel/decode/toDetail.ts","../src/crud/service/diff/index.ts","../src/crud/model/ThrottleConfig.ts","../src/crud/service/throttle.ts","../src/crud/service/baseModel/isEmpty.ts","../src/crud/model/cacheData/LastSubmittedData.ts","../src/crud/model/cacheData/ContainsInitData.ts","../src/crud/components/Create.ts","../src/crud/components/Read.ts","../src/crud/service/diff/diffObject.ts","../src/crud/service/diff/DiffUpdate.ts","../src/crud/components/Update.ts","../src/crud/components/Delete.ts"],"sourcesContent":["\"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 __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.WellKnownMimeType = void 0;\nvar WellKnownMimeType = /** @class */ (function () {\n    function WellKnownMimeType(string, identifier) {\n        this.string = string;\n        this.identifier = identifier;\n    }\n    /**\n     * Find the {@link WellKnownMimeType} for the given identifier (as an {@code int}). Valid\n     * identifiers are defined to be integers between 0 and 127, inclusive. Identifiers outside of\n     * this range will produce the {@link #UNPARSEABLE_MIME_TYPE}. Additionally, some identifiers in\n     * that range are still only reserved and don't have a type associated yet: this method returns\n     * the {@link #UNKNOWN_RESERVED_MIME_TYPE} when passing such an identifier, which lets call sites\n     * potentially detect this and keep the original representation when transmitting the associated\n     * metadata buffer.\n     *\n     * @param id the looked up identifier\n     * @return the {@link WellKnownMimeType}, or {@link #UNKNOWN_RESERVED_MIME_TYPE} if the id is out\n     *     of the specification's range, or {@link #UNKNOWN_RESERVED_MIME_TYPE} if the id is one that\n     *     is merely reserved but unknown to this implementation.\n     */\n    WellKnownMimeType.fromIdentifier = function (id) {\n        if (id < 0x00 || id > 0x7f) {\n            return WellKnownMimeType.UNPARSEABLE_MIME_TYPE;\n        }\n        return WellKnownMimeType.TYPES_BY_MIME_ID[id];\n    };\n    /**\n     * Find the {@link WellKnownMimeType} for the given {@link String} representation. If the\n     * representation is {@code null} or doesn't match a {@link WellKnownMimeType}, the {@link\n     * #UNPARSEABLE_MIME_TYPE} is returned.\n     *\n     * @param mimeType the looked up mime type\n     * @return the matching {@link WellKnownMimeType}, or {@link #UNPARSEABLE_MIME_TYPE} if none\n     *     matches\n     */\n    WellKnownMimeType.fromString = function (mimeType) {\n        if (!mimeType) {\n            throw new Error(\"type must be non-null\");\n        }\n        // force UNPARSEABLE if by chance UNKNOWN_RESERVED_MIME_TYPE's text has been used\n        if (mimeType === WellKnownMimeType.UNKNOWN_RESERVED_MIME_TYPE.string) {\n            return WellKnownMimeType.UNPARSEABLE_MIME_TYPE;\n        }\n        return (WellKnownMimeType.TYPES_BY_MIME_STRING.get(mimeType) ||\n            WellKnownMimeType.UNPARSEABLE_MIME_TYPE);\n    };\n    WellKnownMimeType.prototype.toString = function () {\n        return this.string;\n    };\n    return WellKnownMimeType;\n}());\nexports.WellKnownMimeType = WellKnownMimeType;\n(function (WellKnownMimeType) {\n    var e_1, _a;\n    WellKnownMimeType.UNPARSEABLE_MIME_TYPE = new WellKnownMimeType(\"UNPARSEABLE_MIME_TYPE_DO_NOT_USE\", -2);\n    WellKnownMimeType.UNKNOWN_RESERVED_MIME_TYPE = new WellKnownMimeType(\"UNKNOWN_YET_RESERVED_DO_NOT_USE\", -1);\n    WellKnownMimeType.APPLICATION_AVRO = new WellKnownMimeType(\"application/avro\", 0x00);\n    WellKnownMimeType.APPLICATION_CBOR = new WellKnownMimeType(\"application/cbor\", 0x01);\n    WellKnownMimeType.APPLICATION_GRAPHQL = new WellKnownMimeType(\"application/graphql\", 0x02);\n    WellKnownMimeType.APPLICATION_GZIP = new WellKnownMimeType(\"application/gzip\", 0x03);\n    WellKnownMimeType.APPLICATION_JAVASCRIPT = new WellKnownMimeType(\"application/javascript\", 0x04);\n    WellKnownMimeType.APPLICATION_JSON = new WellKnownMimeType(\"application/json\", 0x05);\n    WellKnownMimeType.APPLICATION_OCTET_STREAM = new WellKnownMimeType(\"application/octet-stream\", 0x06);\n    WellKnownMimeType.APPLICATION_PDF = new WellKnownMimeType(\"application/pdf\", 0x07);\n    WellKnownMimeType.APPLICATION_THRIFT = new WellKnownMimeType(\"application/vnd.apache.thrift.binary\", 0x08);\n    WellKnownMimeType.APPLICATION_PROTOBUF = new WellKnownMimeType(\"application/vnd.google.protobuf\", 0x09);\n    WellKnownMimeType.APPLICATION_XML = new WellKnownMimeType(\"application/xml\", 0x0a);\n    WellKnownMimeType.APPLICATION_ZIP = new WellKnownMimeType(\"application/zip\", 0x0b);\n    WellKnownMimeType.AUDIO_AAC = new WellKnownMimeType(\"audio/aac\", 0x0c);\n    WellKnownMimeType.AUDIO_MP3 = new WellKnownMimeType(\"audio/mp3\", 0x0d);\n    WellKnownMimeType.AUDIO_MP4 = new WellKnownMimeType(\"audio/mp4\", 0x0e);\n    WellKnownMimeType.AUDIO_MPEG3 = new WellKnownMimeType(\"audio/mpeg3\", 0x0f);\n    WellKnownMimeType.AUDIO_MPEG = new WellKnownMimeType(\"audio/mpeg\", 0x10);\n    WellKnownMimeType.AUDIO_OGG = new WellKnownMimeType(\"audio/ogg\", 0x11);\n    WellKnownMimeType.AUDIO_OPUS = new WellKnownMimeType(\"audio/opus\", 0x12);\n    WellKnownMimeType.AUDIO_VORBIS = new WellKnownMimeType(\"audio/vorbis\", 0x13);\n    WellKnownMimeType.IMAGE_BMP = new WellKnownMimeType(\"image/bmp\", 0x14);\n    WellKnownMimeType.IMAGE_GIG = new WellKnownMimeType(\"image/gif\", 0x15);\n    WellKnownMimeType.IMAGE_HEIC_SEQUENCE = new WellKnownMimeType(\"image/heic-sequence\", 0x16);\n    WellKnownMimeType.IMAGE_HEIC = new WellKnownMimeType(\"image/heic\", 0x17);\n    WellKnownMimeType.IMAGE_HEIF_SEQUENCE = new WellKnownMimeType(\"image/heif-sequence\", 0x18);\n    WellKnownMimeType.IMAGE_HEIF = new WellKnownMimeType(\"image/heif\", 0x19);\n    WellKnownMimeType.IMAGE_JPEG = new WellKnownMimeType(\"image/jpeg\", 0x1a);\n    WellKnownMimeType.IMAGE_PNG = new WellKnownMimeType(\"image/png\", 0x1b);\n    WellKnownMimeType.IMAGE_TIFF = new WellKnownMimeType(\"image/tiff\", 0x1c);\n    WellKnownMimeType.MULTIPART_MIXED = new WellKnownMimeType(\"multipart/mixed\", 0x1d);\n    WellKnownMimeType.TEXT_CSS = new WellKnownMimeType(\"text/css\", 0x1e);\n    WellKnownMimeType.TEXT_CSV = new WellKnownMimeType(\"text/csv\", 0x1f);\n    WellKnownMimeType.TEXT_HTML = new WellKnownMimeType(\"text/html\", 0x20);\n    WellKnownMimeType.TEXT_PLAIN = new WellKnownMimeType(\"text/plain\", 0x21);\n    WellKnownMimeType.TEXT_XML = new WellKnownMimeType(\"text/xml\", 0x22);\n    WellKnownMimeType.VIDEO_H264 = new WellKnownMimeType(\"video/H264\", 0x23);\n    WellKnownMimeType.VIDEO_H265 = new WellKnownMimeType(\"video/H265\", 0x24);\n    WellKnownMimeType.VIDEO_VP8 = new WellKnownMimeType(\"video/VP8\", 0x25);\n    WellKnownMimeType.APPLICATION_HESSIAN = new WellKnownMimeType(\"application/x-hessian\", 0x26);\n    WellKnownMimeType.APPLICATION_JAVA_OBJECT = new WellKnownMimeType(\"application/x-java-object\", 0x27);\n    WellKnownMimeType.APPLICATION_CLOUDEVENTS_JSON = new WellKnownMimeType(\"application/cloudevents+json\", 0x28);\n    // ... reserved for future use ...\n    WellKnownMimeType.MESSAGE_RSOCKET_MIMETYPE = new WellKnownMimeType(\"message/x.rsocket.mime-type.v0\", 0x7a);\n    WellKnownMimeType.MESSAGE_RSOCKET_ACCEPT_MIMETYPES = new WellKnownMimeType(\"message/x.rsocket.accept-mime-types.v0\", 0x7b);\n    WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION = new WellKnownMimeType(\"message/x.rsocket.authentication.v0\", 0x7c);\n    WellKnownMimeType.MESSAGE_RSOCKET_TRACING_ZIPKIN = new WellKnownMimeType(\"message/x.rsocket.tracing-zipkin.v0\", 0x7d);\n    WellKnownMimeType.MESSAGE_RSOCKET_ROUTING = new WellKnownMimeType(\"message/x.rsocket.routing.v0\", 0x7e);\n    WellKnownMimeType.MESSAGE_RSOCKET_COMPOSITE_METADATA = new WellKnownMimeType(\"message/x.rsocket.composite-metadata.v0\", 0x7f);\n    WellKnownMimeType.TYPES_BY_MIME_ID = new Array(128);\n    WellKnownMimeType.TYPES_BY_MIME_STRING = new Map();\n    var ALL_MIME_TYPES = [\n        WellKnownMimeType.UNPARSEABLE_MIME_TYPE,\n        WellKnownMimeType.UNKNOWN_RESERVED_MIME_TYPE,\n        WellKnownMimeType.APPLICATION_AVRO,\n        WellKnownMimeType.APPLICATION_CBOR,\n        WellKnownMimeType.APPLICATION_GRAPHQL,\n        WellKnownMimeType.APPLICATION_GZIP,\n        WellKnownMimeType.APPLICATION_JAVASCRIPT,\n        WellKnownMimeType.APPLICATION_JSON,\n        WellKnownMimeType.APPLICATION_OCTET_STREAM,\n        WellKnownMimeType.APPLICATION_PDF,\n        WellKnownMimeType.APPLICATION_THRIFT,\n        WellKnownMimeType.APPLICATION_PROTOBUF,\n        WellKnownMimeType.APPLICATION_XML,\n        WellKnownMimeType.APPLICATION_ZIP,\n        WellKnownMimeType.AUDIO_AAC,\n        WellKnownMimeType.AUDIO_MP3,\n        WellKnownMimeType.AUDIO_MP4,\n        WellKnownMimeType.AUDIO_MPEG3,\n        WellKnownMimeType.AUDIO_MPEG,\n        WellKnownMimeType.AUDIO_OGG,\n        WellKnownMimeType.AUDIO_OPUS,\n        WellKnownMimeType.AUDIO_VORBIS,\n        WellKnownMimeType.IMAGE_BMP,\n        WellKnownMimeType.IMAGE_GIG,\n        WellKnownMimeType.IMAGE_HEIC_SEQUENCE,\n        WellKnownMimeType.IMAGE_HEIC,\n        WellKnownMimeType.IMAGE_HEIF_SEQUENCE,\n        WellKnownMimeType.IMAGE_HEIF,\n        WellKnownMimeType.IMAGE_JPEG,\n        WellKnownMimeType.IMAGE_PNG,\n        WellKnownMimeType.IMAGE_TIFF,\n        WellKnownMimeType.MULTIPART_MIXED,\n        WellKnownMimeType.TEXT_CSS,\n        WellKnownMimeType.TEXT_CSV,\n        WellKnownMimeType.TEXT_HTML,\n        WellKnownMimeType.TEXT_PLAIN,\n        WellKnownMimeType.TEXT_XML,\n        WellKnownMimeType.VIDEO_H264,\n        WellKnownMimeType.VIDEO_H265,\n        WellKnownMimeType.VIDEO_VP8,\n        WellKnownMimeType.APPLICATION_HESSIAN,\n        WellKnownMimeType.APPLICATION_JAVA_OBJECT,\n        WellKnownMimeType.APPLICATION_CLOUDEVENTS_JSON,\n        WellKnownMimeType.MESSAGE_RSOCKET_MIMETYPE,\n        WellKnownMimeType.MESSAGE_RSOCKET_ACCEPT_MIMETYPES,\n        WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION,\n        WellKnownMimeType.MESSAGE_RSOCKET_TRACING_ZIPKIN,\n        WellKnownMimeType.MESSAGE_RSOCKET_ROUTING,\n        WellKnownMimeType.MESSAGE_RSOCKET_COMPOSITE_METADATA,\n    ];\n    WellKnownMimeType.TYPES_BY_MIME_ID.fill(WellKnownMimeType.UNKNOWN_RESERVED_MIME_TYPE);\n    try {\n        for (var ALL_MIME_TYPES_1 = __values(ALL_MIME_TYPES), ALL_MIME_TYPES_1_1 = ALL_MIME_TYPES_1.next(); !ALL_MIME_TYPES_1_1.done; ALL_MIME_TYPES_1_1 = ALL_MIME_TYPES_1.next()) {\n            var value = ALL_MIME_TYPES_1_1.value;\n            if (value.identifier >= 0) {\n                WellKnownMimeType.TYPES_BY_MIME_ID[value.identifier] = value;\n                WellKnownMimeType.TYPES_BY_MIME_STRING.set(value.string, value);\n            }\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (ALL_MIME_TYPES_1_1 && !ALL_MIME_TYPES_1_1.done && (_a = ALL_MIME_TYPES_1.return)) _a.call(ALL_MIME_TYPES_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n    if (Object.seal) {\n        Object.seal(WellKnownMimeType.TYPES_BY_MIME_ID);\n    }\n})(WellKnownMimeType = exports.WellKnownMimeType || (exports.WellKnownMimeType = {}));\nexports.WellKnownMimeType = WellKnownMimeType;\n//# sourceMappingURL=WellKnownMimeType.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};\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};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WellKnownMimeTypeEntry = exports.ReservedMimeTypeEntry = exports.ExplicitMimeTimeEntry = exports.decodeCompositeMetadata = exports.encodeWellKnownMetadataHeader = exports.encodeCustomMetadataHeader = exports.decodeMimeTypeFromMimeBuffer = exports.decodeMimeAndContentBuffersSlices = exports.encodeAndAddWellKnownMetadata = exports.encodeAndAddCustomMetadata = exports.encodeCompositeMetadata = exports.CompositeMetadata = void 0;\nvar rsocket_core_1 = require(\"rsocket-core\");\nvar WellKnownMimeType_1 = require(\"./WellKnownMimeType\");\nvar CompositeMetadata = /** @class */ (function () {\n    function CompositeMetadata(buffer) {\n        this._buffer = buffer;\n    }\n    CompositeMetadata.prototype.iterator = function () {\n        return decodeCompositeMetadata(this._buffer);\n    };\n    CompositeMetadata.prototype[Symbol.iterator] = function () {\n        return decodeCompositeMetadata(this._buffer);\n    };\n    return CompositeMetadata;\n}());\nexports.CompositeMetadata = CompositeMetadata;\nfunction encodeCompositeMetadata(metadata) {\n    var e_1, _a;\n    var encodedCompositeMetadata = Buffer.allocUnsafe(0);\n    try {\n        for (var metadata_1 = __values(metadata), metadata_1_1 = metadata_1.next(); !metadata_1_1.done; metadata_1_1 = metadata_1.next()) {\n            var _b = __read(metadata_1_1.value, 2), metadataKey = _b[0], metadataValue = _b[1];\n            var metadataRealValue = typeof metadataValue === \"function\" ? metadataValue() : metadataValue;\n            if (metadataKey instanceof WellKnownMimeType_1.WellKnownMimeType ||\n                typeof metadataKey === \"number\" ||\n                metadataKey.constructor.name === \"WellKnownMimeType\") {\n                encodedCompositeMetadata = encodeAndAddWellKnownMetadata(encodedCompositeMetadata, metadataKey, metadataRealValue);\n            }\n            else {\n                encodedCompositeMetadata = encodeAndAddCustomMetadata(encodedCompositeMetadata, metadataKey, metadataRealValue);\n            }\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (metadata_1_1 && !metadata_1_1.done && (_a = metadata_1.return)) _a.call(metadata_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n    return encodedCompositeMetadata;\n}\nexports.encodeCompositeMetadata = encodeCompositeMetadata;\n// see #encodeMetadataHeader(ByteBufAllocator, String, int)\nfunction encodeAndAddCustomMetadata(compositeMetaData, customMimeType, metadata) {\n    return Buffer.concat([\n        compositeMetaData,\n        encodeCustomMetadataHeader(customMimeType, metadata.byteLength),\n        metadata,\n    ]);\n}\nexports.encodeAndAddCustomMetadata = encodeAndAddCustomMetadata;\n// see #encodeMetadataHeader(ByteBufAllocator, byte, int)\nfunction encodeAndAddWellKnownMetadata(compositeMetadata, knownMimeType, metadata) {\n    var mimeTypeId;\n    if (Number.isInteger(knownMimeType)) {\n        mimeTypeId = knownMimeType;\n    }\n    else {\n        mimeTypeId = knownMimeType.identifier;\n    }\n    return Buffer.concat([\n        compositeMetadata,\n        encodeWellKnownMetadataHeader(mimeTypeId, metadata.byteLength),\n        metadata,\n    ]);\n}\nexports.encodeAndAddWellKnownMetadata = encodeAndAddWellKnownMetadata;\nfunction decodeMimeAndContentBuffersSlices(compositeMetadata, entryIndex) {\n    var mimeIdOrLength = compositeMetadata.readInt8(entryIndex);\n    var mime;\n    var toSkip = entryIndex;\n    if ((mimeIdOrLength & STREAM_METADATA_KNOWN_MASK) ===\n        STREAM_METADATA_KNOWN_MASK) {\n        mime = compositeMetadata.slice(toSkip, toSkip + 1);\n        toSkip += 1;\n    }\n    else {\n        // M flag unset, remaining 7 bits are the length of the mime\n        var mimeLength = (mimeIdOrLength & 0xff) + 1;\n        if (compositeMetadata.byteLength > toSkip + mimeLength) {\n            // need to be able to read an extra mimeLength bytes (we have already read one so byteLength should be strictly more)\n            // here we need a way for the returned ByteBuf to differentiate between a\n            // 1-byte length mime type and a 1 byte encoded mime id, preferably without\n            // re-applying the byte mask. The easiest way is to include the initial byte\n            // and have further decoding ignore the first byte. 1 byte buffer == id, 2+ byte\n            // buffer == full mime string.\n            mime = compositeMetadata.slice(toSkip, toSkip + mimeLength + 1);\n            // we thus need to skip the bytes we just sliced, but not the flag/length byte\n            // which was already skipped in initial read\n            toSkip += mimeLength + 1;\n        }\n        else {\n            throw new Error(\"Metadata is malformed. Inappropriately formed Mime Length\");\n        }\n    }\n    if (compositeMetadata.byteLength >= toSkip + 3) {\n        // ensures the length medium can be read\n        var metadataLength = (0, rsocket_core_1.readUInt24BE)(compositeMetadata, toSkip);\n        toSkip += 3;\n        if (compositeMetadata.byteLength >= metadataLength + toSkip) {\n            var metadata = compositeMetadata.slice(toSkip, toSkip + metadataLength);\n            return [mime, metadata];\n        }\n        else {\n            throw new Error(\"Metadata is malformed. Inappropriately formed Metadata Length or malformed content\");\n        }\n    }\n    else {\n        throw new Error(\"Metadata is malformed. Metadata Length is absent or malformed\");\n    }\n}\nexports.decodeMimeAndContentBuffersSlices = decodeMimeAndContentBuffersSlices;\nfunction decodeMimeTypeFromMimeBuffer(flyweightMimeBuffer) {\n    if (flyweightMimeBuffer.length < 2) {\n        throw new Error(\"Unable to decode explicit MIME type\");\n    }\n    // the encoded length is assumed to be kept at the start of the buffer\n    // but also assumed to be irrelevant because the rest of the slice length\n    // actually already matches _decoded_length\n    return flyweightMimeBuffer.toString(\"ascii\", 1);\n}\nexports.decodeMimeTypeFromMimeBuffer = decodeMimeTypeFromMimeBuffer;\nfunction encodeCustomMetadataHeader(customMime, metadataLength) {\n    // allocate one byte + the length of the mimetype\n    var metadataHeader = Buffer.allocUnsafe(4 + customMime.length);\n    // fill the buffer to clear previous memory\n    metadataHeader.fill(0);\n    // write the custom mime in UTF8 but validate it is all ASCII-compatible\n    // (which produces the correct result since ASCII chars are still encoded on 1 byte in UTF8)\n    var customMimeLength = metadataHeader.write(customMime, 1);\n    if (!isAscii(metadataHeader, 1)) {\n        throw new Error(\"Custom mime type must be US_ASCII characters only\");\n    }\n    if (customMimeLength < 1 || customMimeLength > 128) {\n        throw new Error(\"Custom mime type must have a strictly positive length that fits on 7 unsigned bits, ie 1-128\");\n    }\n    // encoded length is one less than actual length, since 0 is never a valid length, which gives\n    // wider representation range\n    metadataHeader.writeUInt8(customMimeLength - 1);\n    (0, rsocket_core_1.writeUInt24BE)(metadataHeader, metadataLength, customMimeLength + 1);\n    return metadataHeader;\n}\nexports.encodeCustomMetadataHeader = encodeCustomMetadataHeader;\nfunction encodeWellKnownMetadataHeader(mimeType, metadataLength) {\n    var buffer = Buffer.allocUnsafe(4);\n    buffer.writeUInt8(mimeType | STREAM_METADATA_KNOWN_MASK);\n    (0, rsocket_core_1.writeUInt24BE)(buffer, metadataLength, 1);\n    return buffer;\n}\nexports.encodeWellKnownMetadataHeader = encodeWellKnownMetadataHeader;\nfunction decodeCompositeMetadata(buffer) {\n    var length, entryIndex, headerAndData, header, data, typeString, id, type;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                length = buffer.byteLength;\n                entryIndex = 0;\n                _a.label = 1;\n            case 1:\n                if (!(entryIndex < length)) return [3 /*break*/, 7];\n                headerAndData = decodeMimeAndContentBuffersSlices(buffer, entryIndex);\n                header = headerAndData[0];\n                data = headerAndData[1];\n                entryIndex = computeNextEntryIndex(entryIndex, header, data);\n                if (!!isWellKnownMimeType(header)) return [3 /*break*/, 3];\n                typeString = decodeMimeTypeFromMimeBuffer(header);\n                if (!typeString) {\n                    throw new Error(\"MIME type cannot be null\");\n                }\n                return [4 /*yield*/, new ExplicitMimeTimeEntry(data, typeString)];\n            case 2:\n                _a.sent();\n                return [3 /*break*/, 1];\n            case 3:\n                id = decodeMimeIdFromMimeBuffer(header);\n                type = WellKnownMimeType_1.WellKnownMimeType.fromIdentifier(id);\n                if (!(WellKnownMimeType_1.WellKnownMimeType.UNKNOWN_RESERVED_MIME_TYPE === type)) return [3 /*break*/, 5];\n                return [4 /*yield*/, new ReservedMimeTypeEntry(data, id)];\n            case 4:\n                _a.sent();\n                return [3 /*break*/, 1];\n            case 5: return [4 /*yield*/, new WellKnownMimeTypeEntry(data, type)];\n            case 6:\n                _a.sent();\n                return [3 /*break*/, 1];\n            case 7: return [2 /*return*/];\n        }\n    });\n}\nexports.decodeCompositeMetadata = decodeCompositeMetadata;\nvar ExplicitMimeTimeEntry = /** @class */ (function () {\n    function ExplicitMimeTimeEntry(content, type) {\n        this.content = content;\n        this.type = type;\n    }\n    return ExplicitMimeTimeEntry;\n}());\nexports.ExplicitMimeTimeEntry = ExplicitMimeTimeEntry;\nvar ReservedMimeTypeEntry = /** @class */ (function () {\n    function ReservedMimeTypeEntry(content, type) {\n        this.content = content;\n        this.type = type;\n    }\n    Object.defineProperty(ReservedMimeTypeEntry.prototype, \"mimeType\", {\n        /**\n         * Since this entry represents a compressed id that couldn't be decoded, this is\n         * always {@code null}.\n         */\n        get: function () {\n            return undefined;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return ReservedMimeTypeEntry;\n}());\nexports.ReservedMimeTypeEntry = ReservedMimeTypeEntry;\nvar WellKnownMimeTypeEntry = /** @class */ (function () {\n    function WellKnownMimeTypeEntry(content, type) {\n        this.content = content;\n        this.type = type;\n    }\n    Object.defineProperty(WellKnownMimeTypeEntry.prototype, \"mimeType\", {\n        get: function () {\n            return this.type.string;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return WellKnownMimeTypeEntry;\n}());\nexports.WellKnownMimeTypeEntry = WellKnownMimeTypeEntry;\nfunction decodeMimeIdFromMimeBuffer(mimeBuffer) {\n    if (!isWellKnownMimeType(mimeBuffer)) {\n        return WellKnownMimeType_1.WellKnownMimeType.UNPARSEABLE_MIME_TYPE.identifier;\n    }\n    return mimeBuffer.readInt8() & STREAM_METADATA_LENGTH_MASK;\n}\nfunction computeNextEntryIndex(currentEntryIndex, headerSlice, contentSlice) {\n    return (currentEntryIndex +\n        headerSlice.byteLength + // this includes the mime length byte\n        3 + // 3 bytes of the content length, which are excluded from the slice\n        contentSlice.byteLength);\n}\nfunction isWellKnownMimeType(header) {\n    return header.byteLength === 1;\n}\nvar STREAM_METADATA_KNOWN_MASK = 0x80; // 1000 0000\nvar STREAM_METADATA_LENGTH_MASK = 0x7f; // 0111 1111\nfunction isAscii(buffer, offset) {\n    var isAscii = true;\n    for (var i = offset, length_1 = buffer.length; i < length_1; i++) {\n        if (buffer[i] > 127) {\n            isAscii = false;\n            break;\n        }\n    }\n    return isAscii;\n}\n//# sourceMappingURL=CompositeMetadata.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.WellKnownAuthType = void 0;\nvar WellKnownAuthType = /** @class */ (function () {\n    function WellKnownAuthType(string, identifier) {\n        this.string = string;\n        this.identifier = identifier;\n    }\n    /**\n     * Find the {@link WellKnownAuthType} for the given identifier (as an {@link number}). Valid\n     * identifiers are defined to be integers between 0 and 127, inclusive. Identifiers outside of\n     * this range will produce the {@link #UNPARSEABLE_AUTH_TYPE}. Additionally, some identifiers in\n     * that range are still only reserved and don't have a type associated yet: this method returns\n     * the {@link #UNKNOWN_RESERVED_AUTH_TYPE} when passing such an identifier, which lets call sites\n     * potentially detect this and keep the original representation when transmitting the associated\n     * metadata buffer.\n     *\n     * @param id the looked up identifier\n     * @return the {@link WellKnownAuthType}, or {@link #UNKNOWN_RESERVED_AUTH_TYPE} if the id is out\n     *     of the specification's range, or {@link #UNKNOWN_RESERVED_AUTH_TYPE} if the id is one that\n     *     is merely reserved but unknown to this implementation.\n     */\n    WellKnownAuthType.fromIdentifier = function (id) {\n        if (id < 0x00 || id > 0x7f) {\n            return WellKnownAuthType.UNPARSEABLE_AUTH_TYPE;\n        }\n        return WellKnownAuthType.TYPES_BY_AUTH_ID[id];\n    };\n    /**\n     * Find the {@link WellKnownAuthType} for the given {@link String} representation. If the\n     * representation is {@code null} or doesn't match a {@link WellKnownAuthType}, the {@link\n     * #UNPARSEABLE_AUTH_TYPE} is returned.\n     *\n     * @param authTypeString the looked up mime type\n     * @return the matching {@link WellKnownAuthType}, or {@link #UNPARSEABLE_AUTH_TYPE} if none\n     *     matches\n     */\n    WellKnownAuthType.fromString = function (authTypeString) {\n        if (!authTypeString) {\n            throw new Error(\"type must be non-null\");\n        }\n        // force UNPARSEABLE if by chance UNKNOWN_RESERVED_MIME_TYPE's text has been used\n        if (authTypeString === WellKnownAuthType.UNKNOWN_RESERVED_AUTH_TYPE.string) {\n            return WellKnownAuthType.UNPARSEABLE_AUTH_TYPE;\n        }\n        return (WellKnownAuthType.TYPES_BY_AUTH_STRING.get(authTypeString) ||\n            WellKnownAuthType.UNPARSEABLE_AUTH_TYPE);\n    };\n    /** @see #string() */\n    WellKnownAuthType.prototype.toString = function () {\n        return this.string;\n    };\n    return WellKnownAuthType;\n}());\nexports.WellKnownAuthType = WellKnownAuthType;\n(function (WellKnownAuthType) {\n    var e_1, _a;\n    WellKnownAuthType.UNPARSEABLE_AUTH_TYPE = new WellKnownAuthType(\"UNPARSEABLE_AUTH_TYPE_DO_NOT_USE\", -2);\n    WellKnownAuthType.UNKNOWN_RESERVED_AUTH_TYPE = new WellKnownAuthType(\"UNKNOWN_YET_RESERVED_DO_NOT_USE\", -1);\n    WellKnownAuthType.SIMPLE = new WellKnownAuthType(\"simple\", 0x00);\n    WellKnownAuthType.BEARER = new WellKnownAuthType(\"bearer\", 0x01);\n    WellKnownAuthType.TYPES_BY_AUTH_ID = new Array(128);\n    WellKnownAuthType.TYPES_BY_AUTH_STRING = new Map();\n    var ALL_MIME_TYPES = [\n        WellKnownAuthType.UNPARSEABLE_AUTH_TYPE,\n        WellKnownAuthType.UNKNOWN_RESERVED_AUTH_TYPE,\n        WellKnownAuthType.SIMPLE,\n        WellKnownAuthType.BEARER,\n    ];\n    WellKnownAuthType.TYPES_BY_AUTH_ID.fill(WellKnownAuthType.UNKNOWN_RESERVED_AUTH_TYPE);\n    try {\n        for (var ALL_MIME_TYPES_1 = __values(ALL_MIME_TYPES), ALL_MIME_TYPES_1_1 = ALL_MIME_TYPES_1.next(); !ALL_MIME_TYPES_1_1.done; ALL_MIME_TYPES_1_1 = ALL_MIME_TYPES_1.next()) {\n            var value = ALL_MIME_TYPES_1_1.value;\n            if (value.identifier >= 0) {\n                WellKnownAuthType.TYPES_BY_AUTH_ID[value.identifier] = value;\n                WellKnownAuthType.TYPES_BY_AUTH_STRING.set(value.string, value);\n            }\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (ALL_MIME_TYPES_1_1 && !ALL_MIME_TYPES_1_1.done && (_a = ALL_MIME_TYPES_1.return)) _a.call(ALL_MIME_TYPES_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n    if (Object.seal) {\n        Object.seal(WellKnownAuthType.TYPES_BY_AUTH_ID);\n    }\n})(WellKnownAuthType = exports.WellKnownAuthType || (exports.WellKnownAuthType = {}));\nexports.WellKnownAuthType = WellKnownAuthType;\n//# sourceMappingURL=WellKnownAuthType.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.decodeSimpleAuthPayload = exports.decodeAuthMetadata = exports.encodeBearerAuthMetadata = exports.encodeSimpleAuthMetadata = exports.encodeCustomAuthMetadata = exports.encodeWellKnownAuthMetadata = void 0;\nvar WellKnownAuthType_1 = require(\"./WellKnownAuthType\");\nvar authTypeIdBytesLength = 1;\nvar customAuthTypeBytesLength = 1;\nvar usernameLengthBytesLength = 2;\nvar streamMetadataKnownMask = 0x80; // 1000 0000\nvar streamMetadataLengthMask = 0x7f; // 0111 1111\n/**\n * Encode Auth metadata with the given {@link WellKnownAuthType} and auth payload {@link Buffer}\n *\n * @param authType well known auth type\n * @param authPayloadBuffer auth payload buffer\n * @returns encoded {@link WellKnownAuthType} and payload {@link Buffer}\n */\nfunction encodeWellKnownAuthMetadata(authType, authPayloadBuffer) {\n    if (authType === WellKnownAuthType_1.WellKnownAuthType.UNPARSEABLE_AUTH_TYPE ||\n        authType === WellKnownAuthType_1.WellKnownAuthType.UNKNOWN_RESERVED_AUTH_TYPE) {\n        throw new Error(\"Illegal WellKnownAuthType[\".concat(authType.toString(), \"]. Only allowed AuthType should be used\"));\n    }\n    var buffer = Buffer.allocUnsafe(authTypeIdBytesLength);\n    // eslint-disable-next-line no-bitwise\n    buffer.writeUInt8(authType.identifier | streamMetadataKnownMask);\n    return Buffer.concat([buffer, authPayloadBuffer]);\n}\nexports.encodeWellKnownAuthMetadata = encodeWellKnownAuthMetadata;\n/**\n * Encode Auth metadata with the given custom auth type {@link string} and auth payload {@link Buffer}\n *\n * @param customAuthType custom auth type\n * @param authPayloadBuffer auth payload buffer\n * @returns encoded {@link WellKnownAuthType} and payload {@link Buffer}\n */\nfunction encodeCustomAuthMetadata(customAuthType, authPayloadBuffer) {\n    var customAuthTypeBuffer = Buffer.from(customAuthType);\n    if (customAuthTypeBuffer.byteLength !== customAuthType.length) {\n        throw new Error(\"Custom auth type must be US_ASCII characters only\");\n    }\n    if (customAuthTypeBuffer.byteLength < 1 ||\n        customAuthTypeBuffer.byteLength > 128) {\n        throw new Error(\"Custom auth type must have a strictly positive length that fits on 7 unsigned bits, ie 1-128\");\n    }\n    var buffer = Buffer.allocUnsafe(customAuthTypeBytesLength + customAuthTypeBuffer.byteLength);\n    // encoded length is one less than actual length, since 0 is never a valid length, which gives\n    // wider representation range\n    buffer.writeUInt8(customAuthTypeBuffer.byteLength - 1);\n    buffer.write(customAuthType, customAuthTypeBytesLength);\n    return Buffer.concat([buffer, authPayloadBuffer]);\n}\nexports.encodeCustomAuthMetadata = encodeCustomAuthMetadata;\n/**\n * Encode Simple Auth metadata with the given username and password\n *\n * @param username username\n * @param password password\n * @returns encoded {@link SIMPLE} and given username and password as auth payload {@link Buffer}\n */\nfunction encodeSimpleAuthMetadata(username, password) {\n    var usernameBuffer = Buffer.from(username);\n    var passwordBuffer = Buffer.from(password);\n    var usernameLength = usernameBuffer.byteLength;\n    if (usernameLength > 65535) {\n        throw new Error(\"Username should be shorter than or equal to 65535 bytes length in UTF-8 encoding but the given was \".concat(usernameLength));\n    }\n    var capacity = authTypeIdBytesLength + usernameLengthBytesLength;\n    var buffer = Buffer.allocUnsafe(capacity);\n    // eslint-disable-next-line no-bitwise\n    buffer.writeUInt8(WellKnownAuthType_1.WellKnownAuthType.SIMPLE.identifier | streamMetadataKnownMask);\n    buffer.writeUInt16BE(usernameLength, 1);\n    return Buffer.concat([buffer, usernameBuffer, passwordBuffer]);\n}\nexports.encodeSimpleAuthMetadata = encodeSimpleAuthMetadata;\n/**\n * Encode Bearer Auth metadata with the given token\n *\n * @param token token\n * @returns encoded {@link BEARER} and given token as auth payload {@link Buffer}\n */\nfunction encodeBearerAuthMetadata(token) {\n    var tokenBuffer = Buffer.from(token);\n    var buffer = Buffer.allocUnsafe(authTypeIdBytesLength);\n    // eslint-disable-next-line no-bitwise\n    buffer.writeUInt8(WellKnownAuthType_1.WellKnownAuthType.BEARER.identifier | streamMetadataKnownMask);\n    return Buffer.concat([buffer, tokenBuffer]);\n}\nexports.encodeBearerAuthMetadata = encodeBearerAuthMetadata;\n/**\n * Decode auth metadata {@link Buffer} into {@link AuthMetadata} object\n *\n * @param metadata auth metadata {@link Buffer}\n * @returns decoded {@link AuthMetadata}\n */\nfunction decodeAuthMetadata(metadata) {\n    if (metadata.byteLength < 1) {\n        throw new Error(\"Unable to decode Auth metadata. Not enough readable bytes\");\n    }\n    var lengthOrId = metadata.readUInt8();\n    // eslint-disable-next-line no-bitwise\n    var normalizedId = lengthOrId & streamMetadataLengthMask;\n    if (normalizedId !== lengthOrId) {\n        var authType = WellKnownAuthType_1.WellKnownAuthType.fromIdentifier(normalizedId);\n        return {\n            payload: metadata.slice(1),\n            type: {\n                identifier: authType.identifier,\n                string: authType.string,\n            },\n        };\n    }\n    else {\n        // encoded length is realLength - 1 in order to avoid intersection with 0x00 authtype\n        var realLength = lengthOrId + 1;\n        if (metadata.byteLength < realLength + customAuthTypeBytesLength) {\n            throw new Error(\"Unable to decode custom Auth type. Malformed length or auth type string\");\n        }\n        var customAuthTypeString = metadata.toString(\"utf8\", customAuthTypeBytesLength, customAuthTypeBytesLength + realLength);\n        var payload = metadata.slice(realLength + customAuthTypeBytesLength);\n        return {\n            payload: payload,\n            type: {\n                identifier: WellKnownAuthType_1.WellKnownAuthType.UNPARSEABLE_AUTH_TYPE.identifier,\n                string: customAuthTypeString,\n            },\n        };\n    }\n}\nexports.decodeAuthMetadata = decodeAuthMetadata;\n/**\n * Read up to 129 bytes from the given metadata in order to get the custom Auth Type\n *\n * @param authPayload\n * @return sliced username and password buffers\n */\nfunction decodeSimpleAuthPayload(authPayload) {\n    if (authPayload.byteLength < usernameLengthBytesLength) {\n        throw new Error(\"Unable to decode Simple Auth Payload. Not enough readable bytes\");\n    }\n    var usernameLength = authPayload.readUInt16BE();\n    if (authPayload.byteLength < usernameLength + usernameLengthBytesLength) {\n        throw new Error(\"Unable to decode Simple Auth Payload. Not enough readable bytes\");\n    }\n    var username = authPayload.slice(usernameLengthBytesLength, usernameLengthBytesLength + usernameLength);\n    var password = authPayload.slice(usernameLengthBytesLength + usernameLength);\n    return { password: password, username: username };\n}\nexports.decodeSimpleAuthPayload = decodeSimpleAuthPayload;\n//# sourceMappingURL=AuthMetadata.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.decodeRoutes = exports.encodeRoute = exports.encodeRoutes = exports.RoutingMetadata = void 0;\nvar RoutingMetadata = /** @class */ (function () {\n    function RoutingMetadata(buffer) {\n        this._buffer = buffer;\n    }\n    RoutingMetadata.prototype.iterator = function () {\n        return decodeRoutes(this._buffer);\n    };\n    RoutingMetadata.prototype[Symbol.iterator] = function () {\n        return decodeRoutes(this._buffer);\n    };\n    return RoutingMetadata;\n}());\nexports.RoutingMetadata = RoutingMetadata;\n/**\n * Encode given set of routes into {@link Buffer} following the <a href=\"https://github.com/rsocket/rsocket/blob/master/Extensions/Routing.md\">Routing Metadata Layout</a>\n *\n * @param routes non-empty set of routes\n * @returns {Buffer} with encoded content\n */\nfunction encodeRoutes() {\n    var routes = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        routes[_i] = arguments[_i];\n    }\n    if (routes.length < 1) {\n        throw new Error(\"routes should be non empty array\");\n    }\n    return Buffer.concat(routes.map(function (route) { return encodeRoute(route); }));\n}\nexports.encodeRoutes = encodeRoutes;\nfunction encodeRoute(route) {\n    var encodedRoute = Buffer.from(route, \"utf8\");\n    if (encodedRoute.length > 255) {\n        throw new Error(\"route length should fit into unsigned byte length but the given one is \".concat(encodedRoute.length));\n    }\n    var encodedLength = Buffer.allocUnsafe(1);\n    encodedLength.writeUInt8(encodedRoute.length);\n    return Buffer.concat([encodedLength, encodedRoute]);\n}\nexports.encodeRoute = encodeRoute;\nfunction decodeRoutes(routeMetadataBuffer) {\n    var length, offset, routeLength, route;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                length = routeMetadataBuffer.byteLength;\n                offset = 0;\n                _a.label = 1;\n            case 1:\n                if (!(offset < length)) return [3 /*break*/, 3];\n                routeLength = routeMetadataBuffer.readUInt8(offset++);\n                if (offset + routeLength > length) {\n                    throw new Error(\"Malformed RouteMetadata. Offset(\".concat(offset, \") + RouteLength(\").concat(routeLength, \") is greater than TotalLength\"));\n                }\n                route = routeMetadataBuffer.toString(\"utf8\", offset, offset + routeLength);\n                offset += routeLength;\n                return [4 /*yield*/, route];\n            case 2:\n                _a.sent();\n                return [3 /*break*/, 1];\n            case 3: return [2 /*return*/];\n        }\n    });\n}\nexports.decodeRoutes = decodeRoutes;\n//# sourceMappingURL=RoutingMetadata.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(\"./CompositeMetadata\"), exports);\n__exportStar(require(\"./WellKnownMimeType\"), exports);\n__exportStar(require(\"./AuthMetadata\"), exports);\n__exportStar(require(\"./RoutingMetadata\"), exports);\n__exportStar(require(\"./WellKnownAuthType\"), exports);\n//# sourceMappingURL=index.js.map","import {\n    encodeAndAddWellKnownMetadata,\n    encodeBearerAuthMetadata,\n    encodeCompositeMetadata,\n    encodeRoute,\n    WellKnownMimeType\n} from \"rsocket-composite-metadata\"\nimport type { Payload, } from \"rsocket-core/dist/RSocket\"\n\nfunction isEmpty(value: unknown): boolean {\n    if (value === undefined || value === null ||\n        Number.isNaN(value) || value === Infinity ||\n        value === \"Invalid Date\" ||\n        (typeof value === \"string\" && (value as string).trim().length === 0)) {\n        return true\n    }\n    return Array.isArray(value) && (value as Array<unknown>).length === 0\n}\nfunction buildMetadata(route: string) {\n    const routeMetadata = encodeRoute(route)\n    if(route.startsWith(\"anonymous.\")){\n        return encodeAndAddWellKnownMetadata(\n            Buffer.alloc(0),\n            WellKnownMimeType.MESSAGE_RSOCKET_ROUTING,\n            routeMetadata\n        )\n    }\n    const token = localStorage.getItem(\"token\")!\n    return encodeCompositeMetadata([\n        [WellKnownMimeType.MESSAGE_RSOCKET_ROUTING, routeMetadata],\n        [WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION, encodeBearerAuthMetadata(token)],\n        // [\"x.rsocket.authentication.bearer.v0\", encodeBearerAuthMetadata(\"\")],\n    ])\n}\nfunction buildData(data: any | null) {\n    if (isEmpty(data)) {\n        return null\n    }\n    return Buffer.from(JSON.stringify(data), \"utf8\")\n}\n\nfunction buildPayload(route: string, data: any | null){\n    return {\n        data: buildData(data),\n        metadata: buildMetadata(route),\n    } as Payload\n}\nexport {\n    buildPayload\n}","import type {\n    Requestable,\n    Cancellable,\n    OnExtensionSubscriber,\n    OnNextSubscriber,\n    Payload\n} from \"rsocket-core/dist/RSocket\"\n\nfunction requestResponseEvent<R>(resolve: (value: (PromiseLike<R> | R)) => void, reject: (reason?: any) => void) {\n    return {\n        onNext(payload: Payload, isComplete: boolean): void {\n            console.log(`payload[data: ${payload.data}; metadata: ${payload.metadata}] | ${isComplete}`)\n            resolve(payload.data as R)\n        },\n        onError(error: Error): void {\n            reject(error)\n        },\n        onComplete(): void {\n        },\n        onExtension(): void {\n            console.log(\"------onExtension------\")\n        },\n    }\n}\nfunction fireAndForgetEvent(resolve: (value: (PromiseLike<null> | null)) => void, reject: (reason?: any) => void){\n    return {\n        onError(error: Error): void {\n            reject(error)\n        },\n        onComplete(): void {\n            resolve(null)\n        },\n    }\n}\nexport interface OnCompleteSubscriber {\n    onComplete(): void;\n}\n\nexport type StreamResponse = Requestable & Cancellable & OnExtensionSubscriber\nexport type StreamResponseEvent = OnCompleteSubscriber & OnNextSubscriber\n\nexport {\n    requestResponseEvent,\n    fireAndForgetEvent,\n}","\"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","enum Reason {\n    ValidationException = 0x00000301,\n    BusinessException = 0x00000302,\n    ErrorCodeException = 0x00000303,\n    UnknownException = 0x00000304\n}\n\nclass BusinessException extends Error {\n    reason: Reason\n\n    constructor(_message: string) {\n        super(_message)\n        this.name = this.constructor.name\n        this.reason = Reason.BusinessException\n    }\n\n    toString() {\n        return `{\"reason\":${this.reason.valueOf()},\"name\":\"${this.name}\",\"message\":\"${this.message}\"}`\n    }\n\n    toError() {\n        return {name: this.name, message: this.toString()} as Error\n    }\n}\n\nclass ErrorCodeException extends Error {\n    reason: Reason\n    code: string\n\n    constructor(_code: string, _message: string) {\n        super(_message)\n        this.code = _code\n        this.name = this.constructor.name\n        this.reason = Reason.ErrorCodeException\n    }\n\n    toString(): string {\n        return `{\"reason\":${this.reason.valueOf()},\"name\":\"${this.name}\",\"code\":\"${this.code}\",\"message\":\"${this.message}\"}`\n    }\n\n    toError() {\n        return {name: this.name, message: this.toString()} as Error\n    }\n}\n\nclass UnknownException extends Error {\n    reason: Reason\n\n    constructor(cause: Error) {\n        super(cause.message)\n        this.name = this.constructor.name\n        this.reason = Reason.UnknownException\n    }\n\n    toString(): string {\n        return `{\"reason\":${this.reason.valueOf()},\"name\":\"${this.name}\",\"message\":\"Unknown\"}`\n    }\n\n    toError() {\n        return {name: this.name, message: this.toString()} as Error\n    }\n}\n\nclass ValidationException extends Error {\n    reason: Reason\n    fieldName: string\n\n    constructor(_fieldName: string, _message: string) {\n        super(_message)\n        this.fieldName = _fieldName\n        this.name = this.constructor.name\n        this.reason = Reason.ValidationException\n    }\n\n    toString() {\n        return `{\"reason\":${this.reason.valueOf()},\"name\":\"${this.name}\",\"fieldName\":\"${this.fieldName}\",\"message\":\"${this.message}\"}`\n    }\n\n    toError() {\n        return {name: this.name, message: this.toString()} as Error\n    }\n}\n\nexport {\n    Reason,\n    BusinessException,\n    ErrorCodeException,\n    UnknownException,\n    ValidationException,\n}","// noinspection JSUnresolvedReference\n\nimport { WellKnownMimeType } from \"rsocket-composite-metadata\"\nimport { WebsocketClientTransport } from \"rsocket-websocket-client\"\nimport { RSocketConnector } from \"rsocket-core\"\nimport { ErrorCodeException } from \"@/globalException\"\nimport type { RSocket } from \"rsocket-core/dist/RSocket\"\nimport type { RSocketConfig } from \"@/rsocket/model/RSocketConfig\"\n\nclass SingletonClient {\n    rSocket: RSocket | undefined\n    private static instance: SingletonClient\n\n    private async buildRSocket() {\n        this.rSocket = await createClient()\n    }\n\n    public static async getInstance() {\n        if (!SingletonClient.instance) {\n            SingletonClient.instance = new SingletonClient()\n            await SingletonClient.instance.buildRSocket()\n        }\n\n        return SingletonClient.instance\n    }\n}\n\nasync function createClient() {\n    const setupOptions = {\n        keepAlive: 120000,\n        lifetime: 60000,\n        dataMimeType: \"application/json\",\n        metadataMimeType: WellKnownMimeType.MESSAGE_RSOCKET_COMPOSITE_METADATA.string,\n    }\n    const config = JSON.parse(sessionStorage.getItem(\"RSocketConfig\")!) as RSocketConfig\n    const url = `${config.protocol}://${config.host}:${config.port}/${config.mappingPath}`\n    const transport = new WebsocketClientTransport({\n        url,\n        wsCreator: (_url) => {\n            const ws = new WebSocket(_url)\n            ws.onopen = () => {\n                console.log(\"创建链接\")\n            }\n            ws.onerror = () => {\n                throw new ErrorCodeException(\"ConnectException\", `RSocket connection to ${url} failed`)\n            }\n            return ws\n        }\n    })\n    const connector = new RSocketConnector({setup: setupOptions, transport})\n    return await connector.connect()\n}\n\nexport {\n    SingletonClient,\n}","import { buildPayload } from \"@/rsocket/util/BufferUtil\"\nimport { requestResponseEvent } from \"@/rsocket/model/rsocketTypes\"\nimport { SingletonClient } from \"@/rsocket/util/connector\"\n\nfunction requestResponse<R>(route: string, data: any | null = null) {\n    return new Promise<R>(async (resolve, reject) => {\n            const instance = await SingletonClient.getInstance()\n            instance.rSocket!.requestResponse(buildPayload(route, data), requestResponseEvent(resolve, reject))\n        }\n    )\n}\n\nexport { requestResponse }","import type { Payload, } from \"rsocket-core/dist/RSocket\"\nimport type {\n    StreamResponse,\n    StreamResponseEvent\n} from \"@/rsocket/model/rsocketTypes\"\nimport { buildPayload } from \"@/rsocket/util/BufferUtil\"\nimport { SingletonClient } from \"@/rsocket/util/connector\"\n\nasync function requestStream(route: string, data: any | null, initialRequestN: number, responderStream: StreamResponseEvent) {\n    return new Promise<StreamResponse>(async (resolve, reject) => {\n            const instance = await SingletonClient.getInstance()\n\n            resolve(instance.rSocket!.requestStream(\n                buildPayload(route, data),\n                initialRequestN,\n                {\n                    onNext(payload: Payload, isComplete: boolean) {\n                        responderStream.onNext(payload, isComplete)\n                    },\n                    onComplete() {\n                        responderStream.onComplete()\n                    },\n                    onError(error: Error): void {\n                        reject(error)\n                    },\n                    onExtension(): void {\n                        console.log(\"------onExtension------\")\n                    },\n                }))\n        }\n    )\n}\n\nexport { requestStream }","import { buildPayload } from \"@/rsocket/util/BufferUtil\"\nimport { fireAndForgetEvent } from \"@/rsocket/model/rsocketTypes\"\nimport { SingletonClient } from \"@/rsocket/util/connector\"\n\nfunction fireAndForget(route: string, data: any | null = null) {\n    return new Promise<null>(async (resolve, reject) => {\n            const instance = await SingletonClient.getInstance()\n            instance.rSocket!.fireAndForget(buildPayload(route, data), fireAndForgetEvent(resolve, reject))\n        }\n    )\n}\n\nexport { fireAndForget }","/**\n * 示例: {\"protocol\": \"ws\", \"host\": \"localhost\", \"port\": 7001, \"mappingPath\": \"demo\"}\n */\nclass RSocketConfig {\n    protocol: \"ws\" | \"wss\" | undefined\n    host: string | undefined\n    port: number | undefined\n    mappingPath: string | undefined\n\n    public constructor(init?: Partial<RSocketConfig>) {\n        Object.assign(this, init)\n    }\n}\n\nexport { RSocketConfig }","class DiffDetail<T> {\n    added?: Partial<T>\n    deleted?: Partial<T>\n    updated?: Partial<T>\n    unchanged?: Partial<T>\n\n    public constructor(init?: Partial<DiffDetail<T>>) {\n        Object.assign(this, init)\n    }\n}\n\nfunction decodeDiffDetail<T>(detail: DiffDetail<T>): T {\n    let model: T\n    if (detail.unchanged) {\n        // @ts-ignore\n        model = detail.unchanged\n    }\n    if (detail.added) {\n        // @ts-ignore\n        model = detail.added\n    }\n    if (detail.updated) {\n        // @ts-ignore\n        model = detail.updated\n    }\n    return model!\n}\n\nexport {\n    DiffDetail,\n    decodeDiffDetail,\n}","import { BusinessException } from \"@/globalException\"\n\nclass OperationType {\n    public static readonly Create = new OperationType(\"Create\", \"新增\")\n    public static readonly Read = new OperationType(\"Read\", \"查询\")\n    // public static readonly Update = new OperationType(\"Update\", \"更新\")\n    public static readonly Delete = new OperationType(\"Delete\", \"删除\")\n\n    public readonly name: string\n    public readonly description: string\n\n    private constructor(_name: string, _description: string) {\n        this.name = _name\n        this.description = _description\n    }\n\n    static values(): OperationType[] {\n        return [this.Create, this.Read, this.Delete]\n    }\n\n    static valueOf(_name: string): OperationType {\n        if (_name == OperationType.Create.name) {\n            return OperationType.Create\n        } else if (_name == OperationType.Read.name) {\n            return OperationType.Read\n        } else if (_name == OperationType.Delete.name) {\n            return OperationType.Delete\n        }\n        throw new BusinessException(`${_name}，错误的操作类型`)\n    }\n}\n\nexport { OperationType }","//强化后的类型\nexport enum BaseType {\n    Empty = \"Empty\",\n    //基本类型\n    Int = \"Int\",\n    Decimal = \"Decimal\",\n    String = \"String\",\n    Date = \"Date\",\n    Boolean = \"Boolean\",\n    //数组\n    Array = \"Array\",\n    //对象\n    Object = \"Object\",\n}\nexport namespace BaseType {\n    export function isEmpty(baseType: BaseType) {\n        return baseType === BaseType.Empty\n    }\n    export function isPrimitive(baseType: BaseType) {\n        return [BaseType.Int, BaseType.Decimal, BaseType.String, BaseType.Date, BaseType.Boolean].includes(baseType)\n    }\n\n    export function isArray(baseType: BaseType) {\n        return baseType === BaseType.Array\n    }\n}","import { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\n\n//封装解析结果\nclass BaseModel {\n    key?: string | number\n    value?: string | number | boolean | null | BaseModel[]\n    valueType: BaseType = BaseType.Empty\n    /**\n     * 数组和对象可能嵌套多层，为了提高比对效率：\n     * - 解析时，判断所有子元素是否基本类型\n     * - 比对时，可以直接判断\n     */\n    isAllPrimitives?:true\n\n    public constructor(init?: Partial<BaseModel>) {\n        Object.assign(this, init)\n    }\n}\n\nexport { BaseModel }","import {\n    BusinessException,\n    ErrorCodeException\n} from \"@/globalException\"\n\nclass CustomException {\n    public static readonly Not_Supported_Map = new ErrorCodeException(\"Not_Supported_Map\", \"不支持Map类型\")\n    public static readonly Not_Supported_Set = new ErrorCodeException(\"Not_Supported_Set\", \"不支持Set类型\")\n    public static readonly Not_Supported_BigInt = new ErrorCodeException(\"Not_Supported_BigInt\", \"不支持BigInt类型\")\n    public static readonly Not_Supported_Symbol = new ErrorCodeException(\"Not_Supported_Symbol\", \"不支持BigInt类型\")\n    public static readonly Unexpected_Data_Type = new BusinessException(\"未知的数据类型\")\n\n    public static readonly Required_Cache_Key = new BusinessException(\"请设置cache key\")\n    public static readonly Load_Data_Exception = new BusinessException(\"网络异常，加载数据失败\")\n\n    public static readonly Forbidden_Empty_Form_Data = new BusinessException(\"新增的数据不能为空\")\n    public static readonly Forbidden_Unchanged_Value = new BusinessException(\"数据没有变化，禁止提交\")\n}\n\nexport { CustomException }","import { BaseType, } from \"@/crud/service/baseModel/model/BaseType\"\nimport isPrimitive = BaseType.isPrimitive\nimport isArray = BaseType.isArray\nimport { CustomException } from \"@/crud/model/CustomException\"\n\nfunction toBaseType(value?: unknown): BaseType {\n    //1. 排除容易判断是否为空的类型\n    if (isEmptyPrimitive(value)) {\n        return BaseType.Empty\n    }\n    //数组、对象（需要递归判断），可能所有子元素都是空的，也认定为空\n    const basic = checkInstance(value)\n    //2. 是否基本类型\n    if(isPrimitive(basic)){\n        return basic\n    }\n    //3. 是否数组\n    if(isArray(basic)){\n        if(isEmptyArray(value as Array<unknown>)){\n            return BaseType.Empty\n        }\n        return BaseType.Array\n    }\n    //4. 是否对象\n    if (isEmptyObject(value as object)) {\n        return BaseType.Empty\n    }\n    return BaseType.Object\n}\nfunction isEmptyArray(value: Array<unknown>){\n    return value.every(v => toBaseType(v) === BaseType.Empty) || value.length === 0\n}\nfunction isEmptyObject(value: object) {\n    return Object.values(value).every(v => toBaseType(v) === BaseType.Empty) || Object.keys(value).length === 0\n}\nfunction isEmptyPrimitive(value: unknown): boolean {\n    if (value === undefined || value === null ||\n        Number.isNaN(value) || value === Infinity ||\n        value === \"Invalid Date\" ||\n        (typeof value === \"string\" && (value as string).trim().length === 0)) {\n        return true\n    }\n    if (value instanceof Map) {\n        throw CustomException.Not_Supported_Map\n    }\n    if (value instanceof Set) {\n        throw CustomException.Not_Supported_Set\n    }\n    return Array.isArray(value) && (value as Array<unknown>).length === 0\n}\n\nfunction checkInstance(value: unknown): BaseType {\n    if (isDate(value)) {\n        return BaseType.Date\n    }\n    if (isBoolean(value)) {\n        return BaseType.Boolean\n    }\n    if (isString(value)) {\n        return BaseType.String\n    }\n    if (isNumber(value)) {\n        if (Number.isInteger(value)) {\n            return BaseType.Int\n        }\n        return BaseType.Decimal\n    }\n    if (isArrayValue(value)) {\n        return BaseType.Array\n    }\n\n    return BaseType.Object\n}\nfunction isDate(value: unknown){\n    return value instanceof Date && Object.prototype.toString.call(value) === \"[object Date]\"  && !isNaN(value as any)\n}\n\nfunction isArrayValue(value: unknown) {\n    return Array.isArray(value) && (value as Array<unknown>).length !== 0\n}\n\nfunction isString(value: unknown) {\n    if(typeof value === \"symbol\"){\n        throw CustomException.Not_Supported_Symbol\n    }\n    return typeof value === \"string\" && (value as string).trim().length !== 0\n}\n\nfunction isBoolean(value: unknown) {\n    return typeof value === \"boolean\" && (value || !value)\n}\n\nfunction isNumber(value: unknown) {\n    if(typeof value === \"bigint\"){\n        throw CustomException.Not_Supported_BigInt\n    }\n    return typeof value === \"number\"\n}\nexport { toBaseType, isEmptyPrimitive, isDate,isBoolean,isString,isNumber,isArrayValue,isEmptyObject,}","import { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport {\n    isArrayValue as isArray,\n    isBoolean,\n    isDate,\n    isEmptyPrimitive,\n    isNumber,\n    isString,\n    isEmptyObject,\n} from \"@/crud/service/baseModel/encode/toBaseType\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\nimport isPrimitive = BaseType.isPrimitive\n\nfunction toBaseModel(value: unknown): BaseModel {\n    const model = _toBaseModel(undefined, value)\n    if (model.valueType === BaseType.Object) {\n        model.value = (model.value as BaseModel[]).filter(x => x.valueType !== BaseType.Empty)\n        if (_isEmptyArray(model.value)) {\n            return new BaseModel()\n        }\n    }\n    return model\n}\n\nfunction _toBaseModel(key: string | number | undefined, value: unknown): BaseModel {\n    if (isEmptyPrimitive(value)) {\n        return new BaseModel({key})\n    }\n    return _toPrimitive(key, value)\n}\n\nfunction _toPrimitive(key: string | number | undefined, value: unknown): BaseModel {\n    if (isDate(value)) {\n        return new BaseModel({key, value: (value as Date).toISOString(), valueType: BaseType.Date})\n    }\n    if (isBoolean(value)) {\n        return new BaseModel({key, value: value as boolean, valueType: BaseType.Boolean})\n    }\n    if (isString(value)) {\n        return new BaseModel({key, value: value as string, valueType: BaseType.String})\n    }\n    if (isNumber(value)) {\n        if (Number.isInteger(value)) {\n            return new BaseModel({key, value: value as number, valueType: BaseType.Int})\n        }\n        return new BaseModel({key, value: value as number, valueType: BaseType.Decimal})\n    }\n    if (isArray(value)) {\n        return _toArray(key, value as Array<any>)\n    }\n    if (isEmptyObject(value as object)) {\n        return new BaseModel({key})\n    }\n    return _toObject(key, value as object)\n}\n\nfunction _toObject(key: string | number | undefined, value: object) {\n    const array = Object.entries(value).map(([__key, __value]) => _toBaseModel(__key, __value)).filter(x => x.valueType !== BaseType.Empty)\n    return new BaseModel({\n        key: key,\n        value: array,\n        valueType: BaseType.Object,\n        isAllPrimitives: _isAllPrimitives(array.every(x => isPrimitive(x.valueType!))),\n    })\n}\n\nfunction _toArray(key: string | number | undefined, value: Array<any>) {\n    const array: BaseModel[] = []\n    value.forEach((_value: any) => {\n        _buildArrayItem(_value, array)\n    })\n    if (_isEmptyArray(array)) {\n        return new BaseModel({key})\n    }\n    return new BaseModel({\n        key: key,\n        value: array,\n        valueType: BaseType.Array,\n        isAllPrimitives: _isAllPrimitives(array.every(x => isPrimitive(x.valueType!)))\n    })\n}\n\nfunction _buildArrayItem(_value: any, array: BaseModel[]) {\n    const temp = _toBaseModel(undefined, _value)\n    if (temp.valueType !== BaseType.Empty) {\n        array.push(temp)\n    }\n}\n\nfunction _isEmptyArray(array: BaseModel[]) {\n    return array.length === 0 || array.filter(x => x.valueType !== BaseType.Empty).length === 0\n}\n\nfunction _isAllPrimitives(flag: boolean) {\n    if (!flag) {\n        return undefined\n    }\n    return true\n}\n\nexport { toBaseModel }","import type { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\n\nfunction isCollectionEquals(_cache: BaseModel, _formData: BaseModel): boolean {\n    if (_cache.isAllPrimitives && !_formData.isAllPrimitives) {\n        return false\n    }\n    if (_cache.key !== _formData.key) {\n        return false\n    }\n    if (_cache.valueType !== _formData.valueType) {\n        return false\n    }\n    if (BaseType.isPrimitive(_cache.valueType!)) {\n        return _cache.value === _formData.value\n    }\n    const cache = _cache.value as BaseModel[]\n    const formData = _formData.value as BaseModel[]\n    if (_cache.isAllPrimitives) {\n        if (cache.length !== formData.length) {\n            return false\n        }\n        if (cache.filter(x => formData.some(y => x.key === y.key && x.valueType === y.valueType && x.value === y.value)).length !== cache.length) {\n            return false\n        }\n        // noinspection RedundantIfStatementJS\n        if (formData.filter(x => cache.some(y => x.key === y.key && x.valueType === y.valueType && x.value === y.value)).length !== formData.length) {\n            return false\n        }\n        return true\n    }\n\n    return isAllCollectionEquals(cache, formData)\n}\n\nfunction isAllCollectionEquals(_cache: BaseModel[], _formData: BaseModel[]) {\n    if (_cache.filter(x => _formData.some(y => isCollectionEquals(x, y))).length !== _cache.length) {\n        return false\n    }\n    // noinspection RedundantIfStatementJS\n    if (_formData.filter(x => _cache.some(y => isCollectionEquals(x, y))).length !== _formData.length) {\n        return false\n    }\n    return true\n}\n\nexport { isCollectionEquals,isAllCollectionEquals, }","import type { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\n\nfunction decodeBaseModel<T>(param: BaseModel | Partial<BaseModel>): T | null {\n    if (BaseType.isEmpty(param.valueType!)) {\n        return null\n    }\n    if (BaseType.isPrimitive(param.valueType!)) {\n        return _primitive(param)\n    }\n    if (param.valueType! === BaseType.Array) {\n        return _collection(param)\n    }\n    return _object(param)\n}\n\nfunction _object<T>(param: BaseModel | Partial<BaseModel>): T {\n    const obj = {}\n    const arr: BaseModel[] = param.value as BaseModel[]\n    // @ts-ignore\n    arr.forEach(x => obj[x.key! as string] = decodeBaseModel(x))\n    return obj as T\n}\n\nfunction _primitive<T>(param: BaseModel | Partial<BaseModel>): T {\n    if (param.valueType === BaseType.Date) {\n        return new Date(param.value as string) as T\n    }\n    return param.value as T\n}\n\nfunction _collection<T>(param: BaseModel | Partial<BaseModel>): T {\n    if (param.isAllPrimitives) {\n        return (param.value as BaseModel[]).map(x => _primitive(x)) as T\n    }\n    return (param.value as BaseModel[]).map(x => decodeBaseModel(x)) as T\n}\n\nexport { decodeBaseModel }","import { DiffDetail } from \"@/crud/model/DiffDetail\"\nimport type { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport { decodeBaseModel } from \"@/crud/service/baseModel/decode/decodeBaseModel\"\n\nfunction toDetail<T>(param: DiffDetail<BaseModel>): DiffDetail<T> {\n    const model = new DiffDetail<T>()\n    if (param.added) {\n        model.added = decodeBaseModel<T>(param.added!)!\n    }\n    if (param.deleted) {\n        model.deleted = decodeBaseModel<T>(param.deleted!)!\n    }\n    if (param.updated) {\n        model.updated = decodeBaseModel<T>(param.updated!)!\n    }\n    if (param.unchanged) {\n        model.unchanged = decodeBaseModel<T>(param.unchanged!)!\n    }\n    return model\n}\n\nexport { toDetail }","import type { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport { OperationType } from \"@/crud/model/OperationType\"\nimport { toBaseModel } from \"@/crud/service/baseModel/encode/toBaseModel\"\nimport { DiffDetail } from \"@/crud/model/DiffDetail\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\nimport { CustomException } from \"@/crud/model/CustomException\"\nimport {\n    isAllCollectionEquals,\n    isCollectionEquals\n} from \"@/crud/service/diff/isCollectionEquals\"\nimport { toDetail } from \"@/crud/service/baseModel/decode/toDetail\"\n\nclass Diff<T> {\n    private readonly cache: BaseModel\n    private readonly formData: BaseModel\n    private readonly operationType: OperationType\n    readonly detail: DiffDetail<T> | null\n    private readonly allowDuplicate: boolean\n\n    constructor(_cache: T | null, _formData: T, _operationType: OperationType, _allowDuplicate: boolean) {\n        this.cache = toBaseModel(_cache)\n        this.formData = toBaseModel(_formData)\n        this.operationType = _operationType\n        this.allowDuplicate = _allowDuplicate\n        this.detail = this._action()\n    }\n\n    private _action = (): DiffDetail<T> | null => {\n        const baseModel = this._diffBaseModel()\n        if (baseModel === null) {\n            return null\n        }\n\n        return toDetail(baseModel)\n    }\n    private _diffBaseModel = (): DiffDetail<BaseModel> | null => {\n        if (this.cache.valueType === BaseType.Empty || this.formData.valueType === BaseType.Empty) {\n            return this._empty()\n        }\n        if (this.cache.valueType !== this.formData.valueType) {\n            throw CustomException.Unexpected_Data_Type\n        }\n        if (this.formData.valueType !== BaseType.Object) {\n            if (BaseType.isPrimitive(this.formData.valueType)) {\n                return this._buildDiffDetail(this.cache.value === this.formData.value)\n            }\n            if (BaseType.isArray(this.formData.valueType)) {\n                return this._buildDiffDetail(isCollectionEquals(this.cache, this.formData))\n            }\n        }\n\n        return this._object()\n    }\n    private _object = (): DiffDetail<BaseModel> => {\n        if (isAllCollectionEquals(this.cache.value as BaseModel[], this.formData.value as BaseModel[])) {\n            if(this.allowDuplicate){\n                return new DiffDetail<BaseModel>({unchanged: this.formData})\n            }\n            throw CustomException.Forbidden_Unchanged_Value\n        } else {\n            return new DiffDetail<BaseModel>({updated: this.formData})\n        }\n    }\n    private _buildDiffDetail = (_isEquals: boolean): DiffDetail<BaseModel> => {\n        if (_isEquals) {\n            if(this.allowDuplicate){\n                return new DiffDetail<BaseModel>({unchanged: this.formData})\n            }\n            throw CustomException.Forbidden_Unchanged_Value\n        }\n        return new DiffDetail<BaseModel>({updated: this.formData})\n    }\n    private _empty = (): DiffDetail<BaseModel> | null => {\n        if (BaseType.isEmpty(this.cache.valueType) &&  BaseType.isEmpty(this.formData.valueType)) {\n            if (this.operationType === OperationType.Create) {\n                throw CustomException.Forbidden_Empty_Form_Data\n            }\n            if (this.operationType === OperationType.Read || this.operationType === OperationType.Delete) {\n                return null\n            }\n            //Update，会先从后台加载数据，此时，cache为空，说明，加载数据失败\n            throw CustomException.Load_Data_Exception\n        }\n        if (!BaseType.isEmpty(this.cache.valueType) && BaseType.isEmpty(this.formData.valueType)) {\n            if (this.operationType === OperationType.Create) {\n                throw CustomException.Forbidden_Empty_Form_Data\n            }\n            if (this.operationType === OperationType.Read || this.operationType === OperationType.Delete) {\n                return null\n            }\n            return new DiffDetail<BaseModel>({deleted: this.cache})\n        }\n\n        return new DiffDetail<BaseModel>({added: this.formData})\n    }\n}\n\nexport { Diff }","class ThrottleConfig {\n    delay: number\n    before: () => void\n    after: () => void\n\n    constructor(_delay: number, _before: () => void, _after: () => void) {\n        this.delay = _delay\n        this.before = _before\n        this.after = _after\n    }\n}\n\nexport { ThrottleConfig }","import { ThrottleConfig } from \"@/crud/model/ThrottleConfig\"\n\nfunction throttle<R, A extends any[]>(\n    fn: (...args: A) => R | Promise<R>,\n    throttleConfig: ThrottleConfig): (...args: A) => R | Promise<R> | undefined {\n    let flag = false\n\n    return (...args: A) => {\n        if (flag) return undefined\n        const _fn = fn(...args)\n        flag = true\n        throttleConfig.before()\n        setTimeout(() => {\n            flag = false\n            throttleConfig.after()\n        }, throttleConfig.delay)\n        return _fn\n    }\n}\n\nexport { throttle }","import { toBaseType } from \"@/crud/service/baseModel/encode/toBaseType\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\nimport isEmptyValue = BaseType.isEmpty\n\nfunction isEmpty(value?: unknown): boolean {\n    return isEmptyValue(toBaseType(value))\n}\n\nexport { isEmpty }","import { CustomException } from \"@/crud/model/CustomException\"\nimport { isEmpty } from \"@/crud/service/baseModel/isEmpty\"\n\nenum StorageType {\n    Session = \"Session\",\n    Local = \"Local\",\n}\n\n/**\n * 缓存上一次提交的数据\n */\nclass LastSubmittedData<T> {\n    readonly cacheKey: string\n    readonly storageType: StorageType\n\n    constructor(_cacheKey: string, _storageType: StorageType) {\n        if (isEmpty(_cacheKey)) {\n            throw CustomException.Required_Cache_Key\n        }\n        this.cacheKey = _cacheKey\n        this.storageType = _storageType\n    }\n\n    public getData(): T | null {\n        const _data = this.read()\n        if (isEmpty(_data)) {\n            return null\n        } else {\n            return JSON.parse(_data!) as T\n        }\n    }\n\n    public clearCache() {\n        if (this.storageType === StorageType.Local) {\n            localStorage.removeItem(this.cacheKey)\n        } else {\n            sessionStorage.removeItem(this.cacheKey)\n        }\n    }\n\n    private read() {\n        if (this.storageType === StorageType.Local) {\n            return localStorage.getItem(this.cacheKey)\n        } else {\n            return sessionStorage.getItem(this.cacheKey)\n        }\n    }\n\n    public setData(_data: T | null) {\n        const _json = this.toJson(_data)\n        if (_json !== null) {\n            if (this.storageType === StorageType.Local) {\n                localStorage.setItem(this.cacheKey, _json)\n            } else {\n                sessionStorage.setItem(this.cacheKey, _json)\n            }\n        }\n    }\n\n    private toJson(_data: T | null) {\n        if (isEmpty(_data)) {\n            return null\n        } else {\n            return JSON.stringify(_data)\n        }\n    }\n}\n\nexport {\n    LastSubmittedData,\n    StorageType,\n}","import {\n    LastSubmittedData,\n    StorageType\n} from \"@/crud/model/cacheData/LastSubmittedData\"\n\n/**\n * 缓存上一次提交的数据，且，设置初始值\n */\nclass ContainsInitData<T> extends LastSubmittedData<T> {\n    constructor(_initData: T, _cacheKey: string, _storageType: StorageType) {\n        super(_cacheKey, _storageType)\n        this.setData(_initData)\n    }\n}\n\nexport { ContainsInitData }","import type { FormInstance } from \"element-plus\"\nimport { Diff } from \"@/crud/service/diff\"\nimport { OperationType } from \"@/crud/model/OperationType\"\nimport { decodeDiffDetail } from \"@/crud/model/DiffDetail\"\nimport { throttle } from \"@/crud/service/throttle\"\nimport { LastSubmittedData } from \"@/crud/model/cacheData/LastSubmittedData\"\nimport { ContainsInitData } from \"@/crud/model/cacheData/ContainsInitData\"\nimport { ThrottleConfig } from \"@/crud/model/ThrottleConfig\"\n\nfunction toRaw<T>(value: T | LastSubmittedData<T> | ContainsInitData<T>) {\n    if (value instanceof LastSubmittedData || value instanceof ContainsInitData) {\n        return value\n    } else {\n        return JSON.parse(JSON.stringify(value))\n    }\n}\n\nabstract class Operator<T> {\n    protected cache: T | LastSubmittedData<T> | ContainsInitData<T>\n    protected allowDuplicate: boolean\n\n    protected async validate(formRef: FormInstance) {\n        return await formRef.validate(() => {\n        })\n    }\n\n    public constructor(_cache: T | LastSubmittedData<T> | ContainsInitData<T>, throttleConfig: ThrottleConfig, _allowDuplicate: boolean = false) {\n        this.cache = toRaw(_cache)\n        this.allowDuplicate = _allowDuplicate\n        // @ts-ignore\n        this.validate = throttle(this.validate, throttleConfig)\n    }\n\n    public clearCache() {\n        if (this.cache instanceof LastSubmittedData) {\n            this.cache.clearCache()\n        }\n    }\n\n    protected _getCache = () => {\n        if (this.cache instanceof LastSubmittedData) {\n            return this.cache.getData()\n        }\n        return this.cache as T\n    }\n    protected _setCache = (model: T) => {\n        if (this.cache instanceof LastSubmittedData) {\n            this.cache.setData(model as any)\n        }\n    }\n}\n\nclass Create<T> extends Operator<T> {\n    onSubmit = async <R>(formRef: FormInstance, formData: T, action: (t: T) => Promise<R>) => {\n        const isValid = await this.validate(formRef)\n        if (isValid) {\n            return await action(this._compare(formData))\n        }\n    }\n\n    private _compare = (formData: T) => {\n        const diff = new Diff(this._getCache(), formData, OperationType.Create, this.allowDuplicate)\n        //新增操作，提交的数据不为空\n        const model = decodeDiffDetail(diff.detail!)!\n        this._setCache(model)\n        return model\n    }\n}\n\nexport {\n    Create,\n    Operator,\n    toRaw,\n}","import type { FormInstance } from \"element-plus\"\nimport { Diff } from \"@/crud/service/diff\"\nimport { OperationType } from \"@/crud/model/OperationType\"\nimport { decodeDiffDetail } from \"@/crud/model/DiffDetail\"\nimport { BusinessException } from \"@/globalException\"\nimport { Operator } from \"@/crud/components/Create\"\nimport type { LastSubmittedData } from \"@/crud/model/cacheData/LastSubmittedData\"\nimport type { ContainsInitData } from \"@/crud/model/cacheData/ContainsInitData\"\nimport { ThrottleConfig } from \"@/crud/model/ThrottleConfig\"\n\nclass Read<T> extends Operator<T> {\n    private readonly allowEmpty: boolean\n\n    constructor(_cache: T | LastSubmittedData<T> | ContainsInitData<T>, throttleConfig: ThrottleConfig, _allowDuplicate: boolean = false, _allowEmpty: boolean = false) {\n        super(_cache, throttleConfig, _allowDuplicate)\n        this.allowEmpty = _allowEmpty\n    }\n\n    onSubmit = async <R>(formRef: FormInstance, formData: T, action: (t: T | null) => Promise<R>) => {\n        const isValid = await this.validate(formRef)\n        if (isValid) {\n            return await action(this._compare(formData))\n        }\n    }\n\n    private _compare = (formData: T) => {\n        const diff = new Diff(this._getCache(), formData, OperationType.Read, this.allowDuplicate)\n        const detail = diff.detail\n        if (detail === null) {\n            if(this.allowEmpty){\n                return null\n            }\n            throw new BusinessException(\"禁止查询全部\")\n        }\n        const model = decodeDiffDetail(diff.detail!)!\n        this._setCache(model)\n        return model\n    }\n}\n\nexport {\n    Read\n}","import { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport { DiffDetail } from \"@/crud/model/DiffDetail\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\nimport { CustomException } from \"@/crud/model/CustomException\"\n\nfunction diffObject(_cache: BaseModel, _formData: BaseModel): DiffDetail<BaseModel> {\n    const model = _diffCollection(_cache.value as BaseModel[], _formData.value as BaseModel[])\n    if (model.added === undefined && model.deleted === undefined && model.updated === undefined) {\n        throw CustomException.Forbidden_Unchanged_Value\n    }\n    return model\n}\n\nfunction diffCollection(_cache: BaseModel[], _formData: BaseModel[]): DiffDetail<BaseModel> {\n    const model = _diffCollection(_cache, _formData)\n    if (model.added === undefined && model.deleted === undefined && model.updated === undefined) {\n        throw CustomException.Forbidden_Unchanged_Value\n    }\n    return model\n}\n\nfunction _buildElement(values: BaseModel[], x: BaseModel, result: BaseModel[]) {\n    if (result.length === 0) {\n        result.push(new BaseModel({key: x.key, valueType: x.valueType, value: [...values]}))\n    } else {\n        const _filteredArr = result.filter(s => s.key === x.key)\n        if (_filteredArr.length === 0) {\n            result.push(new BaseModel({key: x.key, valueType: x.valueType, value: [...values]}))\n        } else {\n            _filteredArr[0].value = [...values]\n        }\n    }\n}\n\nfunction _diffCollection(_cache: BaseModel[], _formData: BaseModel[]): DiffDetail<BaseModel> {\n    const [added, deleted, updated, unchanged]: [BaseModel[], BaseModel[], BaseModel[], BaseModel[]] = [[], [], [], []]\n\n    function _buildCollection(x: BaseModel, _diff: DiffDetail<BaseModel>) {\n        if (_diff.added) {\n            _buildElement(_diff.added.value as BaseModel[], x, added)\n        }\n        if (_diff.deleted) {\n            _buildElement(_diff.deleted.value as BaseModel[], x, deleted)\n        }\n        if (_diff.updated) {\n            _buildElement(_diff.updated.value as BaseModel[], x, updated)\n        }\n        if (_diff.unchanged) {\n            _buildElement(_diff.unchanged.value as BaseModel[], x, unchanged)\n        }\n    }\n\n    _cache.forEach(x => {\n        const property = _formData.filter(y => y.key === x.key && y.valueType === x.valueType)\n        if (property && property.length === 1) {\n            if (BaseType.isPrimitive(property[0].valueType!)) {\n                if (x.value === property[0].value) {\n                    unchanged!.push(property[0])\n                } else {\n                    updated!.push(property[0])\n                }\n            } else {\n                const _diff: DiffDetail<BaseModel> = _diffCollection(x.value as BaseModel[], property[0].value as BaseModel[])\n                _buildCollection(x, _diff)\n            }\n        } else {\n            deleted!.push(x)\n        }\n    })\n    _formData.forEach(x => {\n        const property = _cache.filter(y => y.key === x.key && y.valueType === x.valueType)\n        if (property && property.length === 0) {\n            added!.push(x)\n        }\n    })\n    return _buildDiffDetailForObject(added, deleted, updated, unchanged)\n}\n\nfunction _buildDiffDetailForObject(added: BaseModel[], deleted: BaseModel[], updated: BaseModel[], unchanged: BaseModel[]) {\n    const model = new DiffDetail<BaseModel>()\n    if (isNotEmpty(added)) {\n        model.added = new BaseModel({value: added, valueType: BaseType.Object})\n    }\n    if (isNotEmpty(deleted)) {\n        model.deleted = new BaseModel({value: deleted, valueType: BaseType.Object})\n    }\n    if (isNotEmpty(updated)) {\n        model.updated = new BaseModel({value: updated, valueType: BaseType.Object})\n    }\n    if (isNotEmpty(unchanged)) {\n        model.unchanged = new BaseModel({value: unchanged, valueType: BaseType.Object})\n    }\n    return model\n}\n\nfunction isNotEmpty(arr: BaseModel[]) {\n    return arr!.length > 0\n}\n\nexport {\n    diffObject,\n    diffCollection,\n}","import { BaseModel } from \"@/crud/service/baseModel/model/BaseModel\"\nimport { DiffDetail } from \"@/crud/model/DiffDetail\"\nimport { toBaseModel } from \"@/crud/service/baseModel/encode/toBaseModel\"\nimport { BaseType } from \"@/crud/service/baseModel/model/BaseType\"\nimport { CustomException } from \"@/crud/model/CustomException\"\nimport {\n    diffCollection,\n    diffObject\n} from \"@/crud/service/diff/diffObject\"\nimport { toDetail } from \"@/crud/service/baseModel/decode/toDetail\"\n\nclass DiffUpdate<T> {\n    private readonly cache: BaseModel\n    private readonly formData: BaseModel\n    readonly detail: DiffDetail<T> | null\n\n    constructor(_cache: T, _formData: T) {\n        this.cache = toBaseModel(_cache)\n        this.formData = toBaseModel(_formData)\n        this.detail = this._action()\n    }\n\n    private _action = (): DiffDetail<T> => toDetail(this._diffBaseModel())\n    private _diffBaseModel = (): DiffDetail<BaseModel> => {\n        this._isEmpty()\n        this._isSameType()\n        if (this.formData.valueType !== BaseType.Object) {\n            if (BaseType.isPrimitive(this.formData.valueType)) {\n                if(this.cache.value === this.formData.value){\n                    throw CustomException.Forbidden_Unchanged_Value\n                }\n                return new DiffDetail<BaseModel>({updated: this.formData})\n            }\n            if (BaseType.isArray(this.formData.valueType)) {\n                return diffCollection(this.cache.value as BaseModel[], this.formData.value as BaseModel[])\n            }\n        }\n        return diffObject(this.cache, this.formData)\n    }\n    private _isSameType = () => {\n        if (this.cache.valueType !== this.formData.valueType) {\n            throw CustomException.Unexpected_Data_Type\n        }\n    }\n    private _isEmpty = () =>{\n        if (BaseType.isEmpty(this.cache.valueType)) {\n            throw CustomException.Load_Data_Exception\n        }\n        if (BaseType.isEmpty(this.formData.valueType)) {\n            throw CustomException.Unexpected_Data_Type\n        }\n    }\n}\n\nexport { DiffUpdate }","import type { FormInstance } from \"element-plus\"\nimport type { DiffDetail } from \"@/crud/model/DiffDetail\"\nimport { DiffUpdate } from \"@/crud/service/diff/DiffUpdate\"\nimport { throttle } from \"@/crud/service/throttle\"\nimport { toRaw } from \"@/crud/components/Create\"\nimport { ThrottleConfig } from \"@/crud/model/ThrottleConfig\"\n\nclass Update<T> {\n    private readonly cache: T\n\n    constructor(_cache: T, throttleConfig: ThrottleConfig) {\n        this.cache = toRaw(_cache)\n        // @ts-ignore\n        this.validate = throttle(this.validate,throttleConfig)\n    }\n\n    private async validate(formRef: FormInstance) {\n        return await formRef.validate(() => {\n        })\n    }\n\n    onSubmit = async <R>(formRef: FormInstance, formData: T, action: (t: DiffDetail<T>) => Promise<R>) => {\n        const isValid = await this.validate(formRef)\n        if (isValid) {\n            return await action(this._compare(formData))\n        }\n    }\n\n    private _compare = (formData: T) => {\n        const diff = new DiffUpdate(this.cache, formData)\n        return diff.detail!\n    }\n}\n\nexport {\n    Update,\n}","import { Diff } from \"@/crud/service/diff\"\nimport { OperationType } from \"@/crud/model/OperationType\"\nimport { decodeDiffDetail } from \"@/crud/model/DiffDetail\"\nimport { throttle } from \"@/crud/service/throttle\"\nimport { BusinessException } from \"@/globalException\"\nimport { LastSubmittedData } from \"@/crud/model/cacheData/LastSubmittedData\"\nimport { toRaw } from \"@/crud/components/Create\"\nimport { ThrottleConfig } from \"@/crud/model/ThrottleConfig\"\n\nclass Delete<T> {\n    private readonly cache: T | T[] | LastSubmittedData<T | T[]>\n    private readonly allowDuplicate: boolean\n    private readonly allowEmpty: boolean\n\n    private validate(): void | undefined {\n    }\n\n    constructor(_cache: T | T[] | LastSubmittedData<T | T[]>, throttleConfig: ThrottleConfig, _allowDuplicate: boolean = false, _allowEmpty: boolean = false) {\n        this.cache = toRaw(_cache)\n        this.allowDuplicate = _allowDuplicate\n        this.allowEmpty = _allowEmpty\n        // @ts-ignore\n        this.validate = throttle(this.validate, throttleConfig)\n    }\n\n    onSubmit = async <R>(dto: T | T[] | null, action: (t: T | T[] | null) => Promise<R>) => {\n        const isValid = this.validate()\n        if (isValid !== undefined) {\n            return await action(this._compare(dto))\n        }\n    }\n\n    private _compare = (dto: T | T[] | null): T | T[] | null => {\n        const diff = new Diff(this._getCache(), dto, OperationType.Delete, this.allowDuplicate)\n        const detail = diff.detail\n        if (detail === null) {\n            if (this.allowEmpty) {\n                return null\n            }\n            throw new BusinessException(\"禁止删除全部\")\n        }\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        const model = decodeDiffDetail(diff.detail!)!\n        this._setCache(model)\n        return model\n    }\n    private _getCache = (): T | T[] => {\n        if (this.cache instanceof LastSubmittedData) {\n            return this.cache.getData()!\n        }\n        return this.cache\n    }\n    private _setCache = (model: T | T[]) => {\n        if (this.cache instanceof LastSubmittedData) {\n            this.cache.setData(model)\n        }\n    }\n}\n\nexport {\n    Delete\n}"],"names":["this","require$$0","__values","Deferred_1","require$$1","require$$2","require$$3","__generator","Frames_1","Reassembler","__createBinding","__setModuleDefault","__importStar","Errors_1","Fragmenter_1","require$$4","require$$5","RSocketConnector_1","RSocketConnector","RSocketServer_1","RSocketServer","require$$6","require$$7","require$$8","CompositeMetadata_1","rsocket_core_1","RoutingMetadata_1","isEmpty","encodeRoute","encodeAndAddWellKnownMetadata","WellKnownMimeType","encodeCompositeMetadata","encodeBearerAuthMetadata","WebsocketDuplexConnection_1","WebsocketClientTransport_1","Reason","WebsocketClientTransport","BaseType","isPrimitive","isArray","StorageType"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,28,29]}