403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/pull/jsonrpc/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/pull/jsonrpc/dist/pull.jsonrpc.bundle.js.map
{"version":3,"file":"pull.jsonrpc.bundle.js","sources":["../../util/src/util.js","../src/errors/notconnected.js","../src/errors/timeout.js","../src/jsonrpc.js"],"sourcesContent":["/* eslint-disable @bitrix24/bitrix24-rules/no-typeof */\n\nexport const browser = {\n\tIsChrome(): boolean\n\t{\n\t\treturn navigator.userAgent.toLowerCase().includes('chrome');\n\t},\n\n\tIsFirefox(): boolean\n\t{\n\t\treturn navigator.userAgent.toLowerCase().includes('firefox');\n\t},\n\n\tIsIe(): boolean\n\t{\n\t\treturn navigator.userAgent.match(/(Trident\\/|MSIE\\/)/) !== null;\n\t},\n};\n\nexport function getTimestamp(): number\n{\n\treturn Date.now();\n}\n\n/**\n * Reduces errors array to single string.\n * @param {array} errors\n * @return {string}\n */\nexport function errorsToString(errors): string\n{\n\tif (!isArray(errors))\n\t{\n\t\treturn '';\n\t}\n\n\treturn errors.reduce((accum, currentValue) => {\n\t\tconst result = accum === '' ? accum : `${accum}; `;\n\n\t\treturn `${result + currentValue.code}: ${currentValue.message}`;\n\t}, '');\n}\n\nexport function isString(item): boolean\n{\n\treturn item === '' ? true : (item ? (typeof (item) === 'string' || item instanceof String) : false);\n}\n\nexport function isArray(item): boolean\n{\n\treturn item && Object.prototype.toString.call(item) === '[object Array]';\n}\n\nexport function isFunction(item): boolean\n{\n\treturn item === null ? false : (typeof (item) === 'function' || item instanceof Function);\n}\n\nexport function getFunction(f: Function): Function\n{\n\treturn isFunction(f) ? f : function() {};\n}\n\nexport function isDomNode(item): boolean\n{\n\treturn item && typeof (item) === 'object' && 'nodeType' in item;\n}\n\nexport function isDate(item): boolean\n{\n\treturn item && Object.prototype.toString.call(item) === '[object Date]';\n}\n\nexport function isNumber(item): boolean\n{\n\treturn typeof item === 'number' && Number.isFinite(item);\n}\n\nexport function isObject(item): boolean\n{\n\treturn Boolean(item) && typeof item === 'object';\n}\n\nexport function isPlainObject(item): boolean\n{\n\treturn Boolean(item) && typeof item === 'object' && item.constructor === Object;\n}\n\nexport function isNotEmptyString(item): boolean\n{\n\treturn isString(item) ? item.length > 0 : false;\n}\n\nexport function isJsonRpcRequest(item): boolean\n{\n\treturn (\n\t\ttypeof (item) === 'object'\n\t\t&& item\n\t\t&& 'jsonrpc' in item\n\t\t&& isNotEmptyString(item.jsonrpc)\n\t\t&& 'method' in item\n\t\t&& isNotEmptyString(item.method)\n\t);\n}\n\nexport function isJsonRpcResponse(item): boolean\n{\n\treturn (\n\t\ttypeof (item) === 'object'\n\t\t&& item\n\t\t&& 'jsonrpc' in item\n\t\t&& isNotEmptyString(item.jsonrpc)\n\t\t&& 'id' in item\n\t\t&& (\n\t\t\t'result' in item\n\t\t\t|| 'error' in item\n\t\t)\n\t);\n}\n\nexport function buildQueryString(params: Object): string\n{\n\tlet result = '';\n\tfor (const key of Object.keys(params))\n\t{\n\t\tconst value = params[key];\n\t\tif (isArray(value))\n\t\t{\n\t\t\tfor (const [index, valueElement] of value.entries())\n\t\t\t{\n\t\t\t\tconst left = encodeURIComponent(`${key}[${index}]`);\n\t\t\t\tconst right = `${encodeURIComponent(valueElement)}&`;\n\t\t\t\tresult += `${left}=${right}`;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tresult += `${encodeURIComponent(key)}=${encodeURIComponent(value)}&`;\n\t\t}\n\t}\n\n\tif (result.length > 0)\n\t{\n\t\tresult = result.slice(0, Math.max(0, result.length - 1));\n\t}\n\n\treturn result;\n}\n\nexport function clone(obj: any, bCopyObj = true): any\n{\n\tlet _obj, i, l;\n\n\tif (obj === null)\n\t{\n\t\treturn null;\n\t}\n\n\tif (isDomNode(obj))\n\t{\n\t\t_obj = obj.cloneNode(bCopyObj);\n\t}\n\telse if (typeof obj === 'object')\n\t{\n\t\tif (isArray(obj))\n\t\t{\n\t\t\t_obj = [];\n\t\t\tfor (i = 0, l = obj.length; i < l; i++)\n\t\t\t{\n\t\t\t\tif (typeof obj[i] === 'object' && bCopyObj)\n\t\t\t\t{\n\t\t\t\t\t_obj[i] = clone(obj[i], bCopyObj);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t_obj[i] = obj[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_obj = {};\n\t\t\tif (obj.constructor)\n\t\t\t{\n\t\t\t\tif (isDate(obj))\n\t\t\t\t{\n\t\t\t\t\t_obj = new Date(obj);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t_obj = new obj.constructor();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (i in obj)\n\t\t\t{\n\t\t\t\tif (!obj.hasOwnProperty(i))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (typeof obj[i] === 'object' && bCopyObj)\n\t\t\t\t{\n\t\t\t\t\t_obj[i] = clone(obj[i], bCopyObj);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t_obj[i] = obj[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\telse\n\t{\n\t\t_obj = obj;\n\t}\n\n\treturn _obj;\n}\n\nexport function getDateForLog(): string\n{\n\tconst d = new Date();\n\n\treturn `${d.getFullYear()}-${lpad(d.getMonth(), 2, '0')}-${lpad(d.getDate(), 2, '0')} ${lpad(d.getHours(), 2, '0')}:${lpad(d.getMinutes(), 2, '0')}`;\n}\n\nexport function lpad(str: string, length, chr = ' '): string\n{\n\tif (str.length > length)\n\t{\n\t\treturn str;\n\t}\n\n\tlet result = '';\n\tfor (let i = 0; i < length - result.length; i++)\n\t{\n\t\tresult += chr;\n\t}\n\n\treturn result + str;\n}\n\nexport function isWebSocketSupported(): boolean\n{\n\treturn typeof 'WebSocket' !== 'undefined';\n}\n\nexport class CircularBuffer<T>\n{\n\tstorage: T[];\n\tcapacity: number;\n\tpointer = 0;\n\n\tconstructor(capacity: number)\n\t{\n\t\tif (capacity <= 0)\n\t\t{\n\t\t\tthrow new Error('capacity must be > 0');\n\t\t}\n\n\t\tthis.capacity = capacity;\n\t\tthis.storage = [];\n\t}\n\n\tpush(element: T)\n\t{\n\t\tthis.storage[this.pointer] = element;\n\t\tthis.pointer++;\n\t\tif (this.pointer >= this.capacity)\n\t\t{\n\t\t\tthis.pointer = 0;\n\t\t}\n\t}\n\n\tgetAll(): T[]\n\t{\n\t\tif (this.pointer === 0)\n\t\t{\n\t\t\treturn this.storage;\n\t\t}\n\n\t\treturn [...this.storage.slice(this.pointer), ...this.storage.slice(0, this.pointer)];\n\t}\n}\n","export class ErrorNotConnected extends Error\n{\n\tconstructor(message)\n\t{\n\t\tsuper(message);\n\t\tthis.name = 'ErrorNotConnected';\n\t}\n}\n","export class ErrorTimeout extends Error\n{\n\tconstructor(message)\n\t{\n\t\tsuper(message);\n\t\tthis.name = 'ErrorTimeout';\n\t}\n}\n","import * as Utils from '../../util/src/util';\nimport { ErrorNotConnected } from './errors/notconnected';\nimport { ErrorTimeout } from './errors/timeout';\n\nconst JSON_RPC_VERSION = '2.0';\n\nexport interface JsonRpcRequest\n{\n\tjsonrpc: '2.0',\n\tid?: string | number | null,\n\tmethod: string,\n\tparams?: any,\n}\n\ntype RpcResponseError = {\n\tcode: number,\n\tmessage: string,\n\tdata?: any,\n}\n\nexport interface JsonRpcResponse\n{\n\tjsonrpc: '2.0',\n\tid?: string | number | null,\n\tresult?: any;\n\terror?: RpcResponseError;\n}\n\nexport const RpcError: { [string]: RpcResponseError } = {\n\tParse: { code: -32700, message: 'Parse error' },\n\tInvalidRequest: { code: -32600, message: 'Invalid Request' },\n\tMethodNotFound: { code: -32601, message: 'Method not found' },\n\tInvalidParams: { code: -32602, message: 'Invalid params' },\n\tInternal: { code: -32603, message: 'Internal error' },\n};\n\ninterface ResponseAwaiter\n{\n\tresolve: () => void,\n\treject: (Error) => void,\n\ttimeout: number,\n}\n\nexport interface Sender\n{\n\tsend(string): boolean\n}\n\ntype JsonRpcOptions = {\n\tsender: Sender,\n\thandlers: { [string]: Function },\n\tevents: { [string]: Function },\n}\n\nexport class JsonRpc extends EventTarget\n{\n\tidCounter = 0;\n\n\thandlers = {};\n\trpcResponseAwaiters: Map<number, ResponseAwaiter> = new Map();\n\n\tconstructor(options: JsonRpcOptions)\n\t{\n\t\tsuper();\n\n\t\tthis.sender = options.sender;\n\t\tfor (const method of Object.keys(options.handlers || {}))\n\t\t{\n\t\t\tthis.handle(method, options.handlers[method]);\n\t\t}\n\n\t\tfor (const eventType of Object.keys(options.events || {}))\n\t\t{\n\t\t\t// eslint-disable-next-line @bitrix24/bitrix24-rules/no-native-events-binding\n\t\t\tthis.addEventListener(eventType, options.events[eventType]);\n\t\t}\n\t}\n\n\t/**\n\t * @param {string} method\n\t * @param {function} handler\n\t */\n\thandle(method, handler)\n\t{\n\t\tthis.handlers[method] = handler;\n\t}\n\n\t/**\n\t * Sends RPC command to the server.\n\t *\n\t * @param {string} method Method name\n\t * @param {object} params\n\t * @param {int} timeout\n\t * @returns {Promise}\n\t */\n\texecuteOutgoingRpcCommand(method, params, timeout = 5): Promise<JsonRpcResponse>\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst request = this.createRequest(method, params);\n\n\t\t\tif (this.sender.send(JSON.stringify(request)) === false)\n\t\t\t{\n\t\t\t\treject(new ErrorNotConnected('send failed'));\n\t\t\t}\n\n\t\t\tif (timeout > 0)\n\t\t\t{\n\t\t\t\tconst t = setTimeout(() => {\n\t\t\t\t\tthis.rpcResponseAwaiters.delete(request.id);\n\t\t\t\t\treject(new ErrorTimeout('no response'));\n\t\t\t\t}, timeout * 1000);\n\t\t\t\tthis.rpcResponseAwaiters.set(request.id, { resolve, reject, timeout: t });\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Executes array or rpc commands. Returns array of promises, each promise will be resolved individually.\n\t *\n\t * @param {JsonRpcRequest[]} batch\n\t * @returns {Promise[]}\n\t */\n\texecuteOutgoingRpcBatch(batch: JsonRpcRequest[]): Promise<JsonRpcResponse>[]\n\t{\n\t\tconst requests = [];\n\t\tconst promises = [];\n\t\tbatch.forEach(({ method, params, id }) => {\n\t\t\tconst request = this.createRequest(method, params, id);\n\t\t\trequests.push(request);\n\t\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\t\tthis.rpcResponseAwaiters.set(request.id, {\n\t\t\t\t\tresolve,\n\t\t\t\t\treject,\n\t\t\t\t});\n\t\t\t}));\n\t\t});\n\n\t\tthis.sender.send(JSON.stringify(requests));\n\n\t\treturn promises;\n\t}\n\n\tprocessRpcResponse(response)\n\t{\n\t\tif ('id' in response && this.rpcResponseAwaiters.has(response.id))\n\t\t{\n\t\t\tconst awaiter = this.rpcResponseAwaiters.get(response.id);\n\t\t\tif ('result' in response)\n\t\t\t{\n\t\t\t\tawaiter.resolve(response.result);\n\t\t\t}\n\t\t\telse if ('error' in response)\n\t\t\t{\n\t\t\t\tawaiter.reject(response.error);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tawaiter.reject(new Error('wrong response structure'));\n\t\t\t}\n\n\t\t\tclearTimeout(awaiter.timeout);\n\t\t\tthis.rpcResponseAwaiters.delete(response.id);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.dispatchEvent(new CustomEvent('error', { error: new Error(`received rpc response with unknown id ${response}`) }));\n\t\t}\n\t}\n\n\tasync handleIncomingMessage(message): void\n\t{\n\t\tlet decoded = {};\n\t\ttry\n\t\t{\n\t\t\tdecoded = JSON.parse(message);\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\tthrow new Error(`could not decode json rpc message: ${e}`);\n\t\t}\n\n\t\tif (Utils.isArray(decoded))\n\t\t{\n\t\t\tthis.executeIncomingRpcBatch(decoded);\n\t\t}\n\t\telse if (Utils.isJsonRpcRequest(decoded))\n\t\t{\n\t\t\tconst commandResult = await this.executeIncomingRpcCommand(decoded);\n\t\t\tif (commandResult !== null && commandResult !== undefined)\n\t\t\t{\n\t\t\t\tconst response = commandResult.error\n\t\t\t\t\t? this.createErrorResponse(decoded.id, commandResult.error)\n\t\t\t\t\t: this.createResponse(decoded.id, commandResult)\n\t\t\t\t;\n\t\t\t\tthis.sender.send(JSON.stringify(response));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.sender.send(JSON.stringify(this.createResponse(decoded.id, null)));\n\t\t\t}\n\t\t}\n\t\telse if (Utils.isJsonRpcResponse(decoded))\n\t\t{\n\t\t\tthis.processRpcResponse(decoded);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(`unknown rpc packet: ${decoded}`);\n\t\t}\n\t}\n\n\t/**\n\t * Executes RPC command, received from the server\n\t *\n\t * @param {string} method\n\t * @param {object} params\n\t * @returns {object}\n\t */\n\tasync executeIncomingRpcCommand({ method, params }): JsonRpcResponse\n\t{\n\t\tif (method in this.handlers)\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\treturn this.handlers[method].call(this, params);\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tjsonrpc: '2.0',\n\t\t\t\t\terror: e.toString(),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\terror: RpcError.MethodNotFound,\n\t\t};\n\t}\n\n\tasync executeIncomingRpcBatch(batch): JsonRpcResponse[]\n\t{\n\t\tconst result = [];\n\t\tfor (const command of batch)\n\t\t{\n\t\t\tif ('jsonrpc' in command)\n\t\t\t{\n\t\t\t\tif ('method' in command)\n\t\t\t\t{\n\t\t\t\t\tconst commandResult = this.executeIncomingRpcCommand(command);\n\t\t\t\t\tif (commandResult)\n\t\t\t\t\t{\n\t\t\t\t\t\tcommandResult.jsonrpc = JSON_RPC_VERSION;\n\t\t\t\t\t\tcommandResult.id = command.id;\n\n\t\t\t\t\t\tresult.push(commandResult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.processRpcResponse(command);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.dispatchEvent(new CustomEvent('error', { error: new Error(`unknown rpc command in batch: ${command}`) }));\n\t\t\t\tresult.push({\n\t\t\t\t\tjsonrpc: '2.0',\n\t\t\t\t\terror: RpcError.InvalidRequest,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tnextId(): number\n\t{\n\t\tthis.idCounter++;\n\n\t\treturn this.idCounter;\n\t}\n\n\tcreatePublishRequest(messageBatch): JsonRpcRequest\n\t{\n\t\tconst result = messageBatch.map((message) => this.createRequest('publish', message));\n\n\t\tif (result.length === 0)\n\t\t{\n\t\t\treturn result[0];\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tcreateRequest(method, params, id): JsonRpcRequest\n\t{\n\t\treturn {\n\t\t\tjsonrpc: JSON_RPC_VERSION,\n\t\t\tmethod,\n\t\t\tparams,\n\t\t\tid: id ?? this.nextId(),\n\t\t};\n\t}\n\n\tcreateResponse(id, result): JsonRpcResponse\n\t{\n\t\treturn {\n\t\t\tjsonrpc: JSON_RPC_VERSION,\n\t\t\tid,\n\t\t\tresult,\n\t\t};\n\t}\n\n\tcreateErrorResponse(id, error): JsonRpcResponse\n\t{\n\t\treturn {\n\t\t\tjsonrpc: JSON_RPC_VERSION,\n\t\t\tid,\n\t\t\terror,\n\t\t};\n\t}\n}\n"],"names":["isString","item","String","isArray","Object","prototype","toString","call","isNotEmptyString","length","isJsonRpcRequest","jsonrpc","method","isJsonRpcResponse","ErrorNotConnected","Error","constructor","message","name","ErrorTimeout","JSON_RPC_VERSION","RpcError","Parse","code","InvalidRequest","MethodNotFound","InvalidParams","Internal","JsonRpc","EventTarget","options","idCounter","handlers","rpcResponseAwaiters","Map","sender","keys","handle","eventType","events","addEventListener","handler","executeOutgoingRpcCommand","params","timeout","Promise","resolve","reject","request","createRequest","send","JSON","stringify","t","setTimeout","delete","id","set","executeOutgoingRpcBatch","batch","requests","promises","forEach","push","processRpcResponse","response","has","awaiter","get","result","error","clearTimeout","dispatchEvent","CustomEvent","handleIncomingMessage","decoded","parse","e","Utils","executeIncomingRpcBatch","commandResult","executeIncomingRpcCommand","undefined","createErrorResponse","createResponse","command","nextId","createPublishRequest","messageBatch","map"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit