@qsocket/core
Version:
Powerful inter-process communication library for browser and Node.js environments, with flexible transport support including WebSocket, TCP, Unix Sockets, and Windows Pipes. Delivers high-performance data exchange through byte-stream buffers and automatic
1 lines • 108 kB
Source Map (JSON)
{"version":3,"sources":["../src/core/QSocketHelpers.ts","../src/core/QSocketEventEmetter.ts","../src/core/QSocketConnection.ts","../src/core/QSocketNamespace.ts","../src/core/QSocketDebuger.ts","../src/core/QSocketUniqueGenerator.ts","../src/core/QSocketInteraction.ts","../src/interfaces/QSocketBase.ts","../src/interfaces/QSocketClient.ts","../src/interfaces/QSocketServer.ts"],"names":["EQSocketProtocolContentType","EQSocketProtocolMessageType","from","to","error","transport"],"mappings":"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","file":"index.cjs","sourcesContent":["import { TQSocketContentType } from '@/@types/interface';\nimport {\n\tEQSocketProtocolContentType,\n\tEQSocketProtocolMessageType,\n\tIQSocketProtocolChunk,\n\tIQSocketProtocolMessageMetaAck,\n\tIQSocketProtocolMessageMetaControl,\n\tIQSocketProtocolMessageMetaData,\n\tTQSocketProtocolPayloadData,\n} from '@qsocket/protocol';\n\n/** Маппинг типов контента */\nexport const contentTypeMap = new Map<EQSocketProtocolContentType, TQSocketContentType>([\n\t[EQSocketProtocolContentType.UNDEFINED, 'undefined'],\n\t[EQSocketProtocolContentType.NULL, 'null'],\n\t[EQSocketProtocolContentType.BOOLEAN, 'boolean'],\n\t[EQSocketProtocolContentType.NUMBER, 'number'],\n\t[EQSocketProtocolContentType.STRING, 'string'],\n\t[EQSocketProtocolContentType.JSON, 'json'],\n\t[EQSocketProtocolContentType.BUFFER, 'buffer'],\n]);\n\n/** Обратный маппинг типов контента */\nexport const reverseContentTypeMap = new Map<TQSocketContentType, EQSocketProtocolContentType>([\n\t['undefined', EQSocketProtocolContentType.UNDEFINED],\n\t['null', EQSocketProtocolContentType.NULL],\n\t['boolean', EQSocketProtocolContentType.BOOLEAN],\n\t['number', EQSocketProtocolContentType.NUMBER],\n\t['string', EQSocketProtocolContentType.STRING],\n\t['json', EQSocketProtocolContentType.JSON],\n\t['buffer', EQSocketProtocolContentType.BUFFER],\n]);\n\n//#region Логирование\n\n/**\n * Определяет тип контента на основе переданного значения.\n * @param {TQSocketProtocolPayloadData} data - Данные для проверки.\n * @param {TQSocketContentType} [contentType] - Явно указанный тип контента.\n * @returns {EQSocketProtocolContentType} Соответствующий тип контента.\n */\nexport function determineContentType(data: TQSocketProtocolPayloadData, contentType?: TQSocketContentType): EQSocketProtocolContentType {\n\tif (contentType) {\n\t\tconst type = reverseContentTypeMap.get(contentType);\n\t\tif (type !== undefined) return type;\n\t}\n\n\tswitch (typeof data) {\n\t\tcase 'undefined':\n\t\t\treturn EQSocketProtocolContentType.UNDEFINED;\n\t\tcase 'boolean':\n\t\t\treturn EQSocketProtocolContentType.BOOLEAN;\n\t\tcase 'number':\n\t\t\treturn EQSocketProtocolContentType.NUMBER;\n\t\tcase 'string':\n\t\t\treturn EQSocketProtocolContentType.STRING;\n\t\tcase 'symbol':\n\t\t\treturn EQSocketProtocolContentType.UNDEFINED;\n\t\tcase 'object':\n\t\t\tif (data === null) return EQSocketProtocolContentType.NULL;\n\t\t\tif (Buffer.isBuffer(data)) return EQSocketProtocolContentType.BUFFER;\n\t\t\treturn EQSocketProtocolContentType.JSON;\n\t\tdefault:\n\t\t\treturn EQSocketProtocolContentType.UNDEFINED;\n\t}\n}\n\n/**\n * Возвращает строковое представление типа контента.\n * @param {EQSocketProtocolContentType} contentType - Тип контента.\n * @returns {TQSocketContentType} Строковое представление типа контента.\n */\nexport function getContentTypeString(contentType?: EQSocketProtocolContentType): TQSocketContentType {\n\tif (contentType === undefined) return 'undefined';\n\treturn contentTypeMap.get(contentType) ?? 'undefined';\n}\n\nexport function createConfirmAckChunk(\n\tchunk: IQSocketProtocolChunk,\n\tresult: TQSocketProtocolPayloadData\n): IQSocketProtocolChunk<IQSocketProtocolMessageMetaAck> {\n\treturn {\n\t\tmeta: {\n\t\t\ttype: EQSocketProtocolMessageType.ACK,\n\t\t\tuuid: chunk.meta.uuid,\n\t\t},\n\t\tpayload: {\n\t\t\tdata: result,\n\t\t\t'Content-Type': EQSocketProtocolContentType.BOOLEAN,\n\t\t},\n\t};\n}\n\nexport function createHandshakeAckChunk(\n\tchunk: IQSocketProtocolChunk,\n\tresult: TQSocketProtocolPayloadData\n): IQSocketProtocolChunk<IQSocketProtocolMessageMetaAck> {\n\treturn {\n\t\tmeta: {\n\t\t\ttype: EQSocketProtocolMessageType.ACK,\n\t\t\tuuid: chunk.meta.uuid,\n\t\t},\n\t\tpayload: {\n\t\t\tdata: result,\n\t\t\t'Content-Type': EQSocketProtocolContentType.STRING,\n\t\t},\n\t};\n}\n\nexport function createErrorAckChunk(\n\tsourceChunk: IQSocketProtocolChunk<IQSocketProtocolMessageMetaData> | IQSocketProtocolChunk<IQSocketProtocolMessageMetaControl>,\n\terror: Error\n): IQSocketProtocolChunk<IQSocketProtocolMessageMetaAck> {\n\treturn {\n\t\tmeta: {\n\t\t\ttype: EQSocketProtocolMessageType.ACK,\n\t\t\tuuid: sourceChunk.meta.uuid,\n\t\t},\n\t\tpayload: {\n\t\t\tdata: {\n\t\t\t\ttype: 'error',\n\t\t\t\tvalue: error.message,\n\t\t\t},\n\t\t\t'Content-Type': EQSocketProtocolContentType.STRING,\n\t\t},\n\t};\n}\n\nexport function createDataAckChunk(\n\tchunk: IQSocketProtocolChunk,\n\tdata: TQSocketProtocolPayloadData,\n\tcontentType?: TQSocketContentType\n): IQSocketProtocolChunk<IQSocketProtocolMessageMetaAck> {\n\treturn {\n\t\tmeta: {\n\t\t\ttype: EQSocketProtocolMessageType.ACK,\n\t\t\tuuid: chunk.meta.uuid,\n\t\t},\n\t\tpayload: {\n\t\t\tdata: data,\n\t\t\t'Content-Type': determineContentType(data, contentType),\n\t\t},\n\t};\n}\n\nexport function createDataChunk(\n\tuuid: string,\n\tevent: string,\n\tnamespace: string,\n\tdata: TQSocketProtocolPayloadData,\n\tcontentType?: TQSocketContentType\n): IQSocketProtocolChunk<IQSocketProtocolMessageMetaData> {\n\treturn {\n\t\tmeta: {\n\t\t\ttype: EQSocketProtocolMessageType.DATA,\n\t\t\tuuid: uuid,\n\t\t\tevent: event,\n\t\t\tnamespace: namespace,\n\t\t},\n\t\tpayload: {\n\t\t\tdata: data,\n\t\t\t'Content-Type': determineContentType(data, contentType),\n\t\t},\n\t};\n}\n\n//#region Преобразователи данных\nexport function uint8ArrayToBase64(uint8Array: Uint8Array) {\n\tif (typeof window === 'undefined') {\n\t\t// Node.js\n\t\treturn Buffer.from(uint8Array).toString('base64');\n\t} else {\n\t\t// Браузер\n\t\tlet binaryString = '';\n\t\tfor (let i = 0; i < uint8Array.length; i++) {\n\t\t\tbinaryString += String.fromCharCode(uint8Array[i]);\n\t\t}\n\t\treturn btoa(binaryString);\n\t}\n}\n\nexport function base64ToUint8Array(base64String: string) {\n\tif (typeof window === 'undefined') {\n\t\t// Node.js\n\t\tconst buffer = Buffer.from(base64String, 'base64');\n\t\treturn new Uint8Array(buffer);\n\t} else {\n\t\t// Браузер\n\t\tconst binaryString = atob(base64String);\n\t\tconst len = binaryString.length;\n\t\tconst uint8Array = new Uint8Array(len);\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tuint8Array[i] = binaryString.charCodeAt(i);\n\t\t}\n\t\treturn uint8Array;\n\t}\n}\n//#endregion\n","import { EQSocketListenerType, IQSocketListener, TQSocketContentType, TQSocketListenerCallback } from '@/@types/interface';\nimport QSocketConnection from './QSocketConnection';\nimport {\n\tIQSocketProtocolChunk,\n\tIQSocketProtocolMessage,\n\tIQSocketProtocolMessageMetaAck,\n\tIQSocketProtocolMessageMetaData,\n\tTQSocketProtocolPayloadData,\n} from '@qsocket/protocol';\nimport { createDataAckChunk, getContentTypeString } from './QSocketHelpers';\n\nclass QSocketEventEmetterBase {\n\t/**\n\t * Map of all event listeners, supporting multiple listeners for each event type.\n\t * @private\n\t * @type {Map<string, IQSocketListener<any, any>[]>}\n\t */\n\tprotected readonly listeners: Map<string, IQSocketListener<any, any>[]> = new Map();\n\n\t/**\n\t * Listeners for the \"connection\" event, triggered upon establishing a new connection.\n\t * @private\n\t * @type {((connection: QSocketConnection) => void)[]}\n\t */\n\tprotected readonly connectionListeners: ((connection: QSocketConnection) => void)[] = [];\n\n\t/**\n\t * Listeners for the \"disconnection\" event, triggered when a connection is terminated.\n\t * @private\n\t * @type {(() => void)[]}\n\t */\n\tprotected readonly disconnectionListeners: (() => void)[] = [];\n\n\tprotected addEventListener<I extends TQSocketProtocolPayloadData, O extends TQSocketProtocolPayloadData>(\n\t\tevent: string,\n\t\tlistener: TQSocketListenerCallback<I, O>,\n\t\ttype: EQSocketListenerType,\n\t\tcontentType?: TQSocketContentType\n\t) {\n\t\tlet listeners = this.listeners.get(event);\n\t\tif (!listeners) {\n\t\t\tlisteners = [];\n\t\t\tthis.listeners.set(event, listeners);\n\t\t}\n\n\t\tlisteners.push({\n\t\t\ttype,\n\t\t\tlistener,\n\t\t\tcontentType,\n\t\t});\n\t}\n\n\tprotected removeEventListener<I extends TQSocketProtocolPayloadData, O extends TQSocketProtocolPayloadData>(\n\t\tevent: string,\n\t\tlistener: TQSocketListenerCallback<I, O> | ((connection: QSocketConnection) => void)\n\t) {\n\t\tconst listeners = this.listeners.get(event);\n\t\tif (!listeners) return;\n\n\t\tconst index = listeners.findIndex((item) => item.listener === listener);\n\t\tif (index !== -1) listeners.splice(index, 1);\n\t}\n\n\tprotected async executor(chunk: IQSocketProtocolChunk<IQSocketProtocolMessageMetaData>): Promise<IQSocketProtocolMessage<IQSocketProtocolMessageMetaAck>> {\n\t\tconst event = chunk.meta.event;\n\t\tconst listeners = this.listeners.get(event);\n\t\tif (!listeners) return [];\n\t\tconst payload = chunk.payload;\n\n\t\t// Очистка одноразовых событий из массива слушателей\n\t\tthis.listeners.set(\n\t\t\tevent,\n\t\t\tlisteners.filter(({ type }) => type === EQSocketListenerType.ON)\n\t\t);\n\n\t\t// Выполнение всех обработчиков и сбор результата\n\t\tconst results = await Promise.allSettled(\n\t\t\tlisteners.map(async (eventInstance) => {\n\t\t\t\tconst data = await Promise.resolve(eventInstance.listener(payload.data, getContentTypeString(payload['Content-Type'])));\n\t\t\t\treturn createDataAckChunk(chunk, data, eventInstance.contentType);\n\t\t\t})\n\t\t);\n\n\t\treturn results.reduce<IQSocketProtocolMessage<IQSocketProtocolMessageMetaAck>>((acc, cur) => {\n\t\t\tif (cur.status === 'fulfilled' && cur.value) acc.push(cur.value);\n\t\t\treturn acc;\n\t\t}, []);\n\t}\n}\n\nexport class QSocketConnectionEventEmitter extends QSocketEventEmetterBase {\n\t/**\n\t * Registers a persistent listener for the disconnection event.\n\t * @example\n\t * ```typescript\n\t * emitter.on('disconnection', () => { console.log('Disconnected'); });\n\t * ```\n\t * @param {string} event - Event name: 'disconnection'\n\t * @param {() => void} listener - Callback function executed on disconnection.\n\t */\n\tpublic on(event: 'disconnection', listener: () => void): void;\n\n\t/**\n\t * Registers a persistent listener for a custom event.\n\t * @example\n\t * ```typescript\n\t * emitter.on('customEvent', (data) => { console.log('Received data:', data); }, 'application/json', 'utf-8');\n\t * ```\n\t * @param {string} event - Custom event name.\n\t * @param {TQSocketListenerCallback<I, O>} listener - Callback function for the custom event.\n\t * @param {TQSocketContentType} [contentType] - Optional content type (e.g., 'application/json').\n\t */\n\tpublic on<I extends TQSocketProtocolPayloadData, O extends TQSocketProtocolPayloadData>(\n\t\tevent: string,\n\t\tlistener: TQSocketListenerCallback<I, O>,\n\t\tcontentType?: TQSocketContentType\n\t): void;\n\n\t/**\n\t * Main implementation of the `on` method, determining which handler to add.\n\t * @param {string} event - Event name.\n\t * @param {Function} listener - Callback function for the event.\n\t * @param {TQSocketContentType} [contentType] - Optional content type.\n\t */\n\tpublic on<I extends TQSocketProtocolPayloadData, O extends TQSocketProtocolPayloadData>(\n\t\tevent: string,\n\t\tlistener: TQSocketListenerCallback<I, O> | ((connection: QSocketConnection) => void) | (() => void),\n\t\tcontentType?: TQSocketContentType\n\t) {\n\t\tif (event === 'disconnection') {\n\t\t\tthis.disconnectionListeners.push(listener as () => void);\n\t\t} else {\n\t\t\tthis.addEventListener(event, listener as TQSocketListenerCallback<I, O>, EQSocketListenerType.ON, contentType);\n\t\t}\n\t}\n\n\t/**\n\t * Registers a one-time listener for the disconnection event.\n\t * @example\n\t * ```typescript\n\t * emitter.once('disconnection', () => { console.log('One-time disconnection'); });\n\t * ```\n\t * @param {string} event - Event name: 'disconnection'\n\t * @param {() => void} listener - Callback function executed on disconnection.\n\t */\n\tpublic once(event: 'disconnection', listener: () => void): void;\n\n\t/**\n\t * Regi