cmd-control-client-lib 3.0.362 → 3.0.363

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-control-client-lib.js","mappings":"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,OAAS,EAAA2C,OAAOsN,WAYzB,iBACS,KAAAjQ,OAAS,EAAA2C,OAAOuN,gBADZ,EAAAA,eAAAA,EAKb,+B,+CAMA,OAN6C,OAM7C,EANA,CAA6CA,GAAhC,EAAAC,wBAAAA,EAQb,iBACS,KAAAnQ,OAAS,EAAA2C,OAAOyN,eADZ,EAAAA,cAAAA,EAOb,+B,+CAIA,OAJ4C,OAI5C,EAJA,CAA4CA,GAA/B,EAAAC,uBAAAA,G,YClRb,IAAY1N,E,kEAAAA,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAChB,sBACA,0BACA,0BACA,4BACA,4BACA,8BACA,8BACA,gCACA,sCACA,sCACA,sCACA,4CACA,8CACA,4CACA,8CACA,sCACA,4CACA,8CACA,4CACA,sCACA,4CACA,4CACA,8BACA,oCACA,sCACA,wCACA,oCACA,sCACA,sCACA,wCACA,0CACA,8CACA,8CACA,oCACA,wBACA,oCACA,sBACA,kCACA,sCACA,4CACA,8CACA,0BAGA,wCACA,8CACA,kCACA,0CACA,0CACA,0CACA,4CACA,kDACA,oDACA,sDACA,wDACA,4BACA,kCACA,0BACA,wBACA,0CACA,gCACA,kCAIA,sCAEA,wBACA,wCACA,kCAEA,0BACA,gCACA,gCACA,4BACA,0BACA,gDACA,4CACA,kCACA,oCACA,sCACA,4CACA,4CACA,gCACA,kCACA,kCACA,4CACA,wCACA,0CACA,8CACA,8CACA,0CACA,oCACA,0CACA,oCACA,4CACA,4CACA,wCACA,kCACA,oCACA,8CACA,4CACA,wBACA,wBACA,8BAEA,4CACA,8CACA,kCACA,8CACA,8CACA,wCACA,sCACA,8BACA,oCACA,8CACA,8BACA,oCACA,8CACA,8BACA,0CACA,sCACA,gDACA,8CACA,4CACA,oCACA,sCACA,kDACA,0DACA,wCACA,8CACA,sCACA,sCACA,4CACA,0CACA,4BACA,0CACA,8CACA,gDACA,sDACA,sDACA,kDACA,4BACA,0CACA,wCACA,kCACA,wCACA,0BACA,wCACA,oCACA,kCACA,wCACA,kDACA,kDACA,oDACA,wDACA,sCACA,8CACA,kDACA,kDACA,gDACA,8CACA,gDACA,4CACA,sCACA,gCACA,sDACA,gEACA,sDACA,4CACA,8BACA,0BACA,wCACA,8BACA,oDACA,wCACA,4CACA,wDACA,wDACA,0DACA,0DACA,sCACA,oCACA,kDACA,4CACA,0CACA,gCACA,8CACA,oCACA,0CACA,0BACA,gDACA,kDACA,sCACA,8CACA,oDACA,sDACA,oDACA,oDACA,0CACA,wCACA,oCACA,oCACA,oCACA,8BACA,wBACA,kCACA,gCACA,sCACA,gDACA,oDACA,oDACA,sCACA,kDACA,oDACA,oDACA,oDACA,gDACA,+D,aCjNF,IAAY4D,EANA/K,EANAiN,E,iHAAAA,EAAA,EAAAA,oBAAA,EAAAA,kBAAiB,KAC3B,QACA,UACA,WAGUjN,EAAA,EAAAA,iBAAA,EAAAA,eAAc,KACxB,SACA,WAIU+K,EAAA,EAAAA,mBAAA,EAAAA,iBAAgB,KAC1B,YACA,iB,8EC4BW,EAAAzD,OAAb,c,aCvCA,IAAYX,E,sEAAAA,EAAA,EAAAA,aAAA,EAAAA,WAAU,KACpB,eACA,oEACA,wCACA,gDACA,sCACA,sCACA,wCACA,oDACA,gDACA,kDACA,kDACA,wDACA,gDACA,oDACA,kDACA,gDACA,4CACA,0CACA,8CACA,8CACA,gDACA,gDACA,wDACA,kCACA,4CACA,wCACA,sCACA,4BACA,wCAEA,mDACA,wCACA,gDACA,oDACA,gDACA,8CACA,gCACA,0DACA,8DACA,oDACA,+C,sFC9CF,aAMa,EAAA9C,cAAb,WACS,KAAAW,OAAS,EAAA2C,OAAOtD,gB,uxBCPzB,cASa,EAAAiR,iBAAb,WACS,KAAAtQ,OAAiB,EAAA2C,OAAO2N,kBAOjC,iBACS,KAAAtQ,OAAiB,EAAA2C,OAAO4N,qBADpB,EAAAA,oBAAAA,EASb,+B,+CAKA,OALkD,OAKlD,EALA,CAAkDA,GAArC,EAAAC,6BAAAA,EAUb,iBACS,KAAAxQ,OAAiB,EAAA2C,OAAO8N,qBADpB,EAAAA,oBAAAA,EAUb,+B,+CAKA,OALkD,OAKlD,EALA,CAAkDA,GAArC,EAAAC,6BAAAA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EAAAC,oBAAA,EAAAA,kBAAiB,KAEjBD,EAAA,EAAAA,mBAAA,EAAAA,iBAAgB,KAE1B,0CACA,8BACA,kCACA,kCAGA,0BACA,sBACA,oCACA,oCACA,4BACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,oCACA,0DACA,4CACA,gDACA,8CACA,wCACA,kDACA,8CACA,kCACA,8DACA,8CACA,gDACA,wCACA,sCACA,kCACA,oCACA,sCACA,wCACA,4BACA,0CACA,wCACA,0CACA,wCACA,gCACA,oDACA,kDACA,8CACA,4CACA,8CACA,0CACA,4CACA,kDACA,wEACA,sEACA,oDACA,oCACA,4CACA,0DACA,8CACA,wCACA,8CACA,oCACA,4CACA,4CACA,0DACA,4DACA,kDACA,gDACA,sDACA,kEACA,0CACA,sDACA,wDACA,wDACA,kEACA,8EACA,oEACA,wCACA,gCACA,0CACA,wCACA,8DACA,4CACA,wCACA,0CACA,4CACA,0CACA,sCACA,wDACA,oDACA,wCACA,4DACA,0CACA,kDACA,4CACA,4CACA,8CACA,8DACA,4CACA,0CACA,0CACA,kDACA,oDACA,4DACA,gDACA,4BACA,oDACA,sCACA,4DACA,wCACA,wCACA,8CACA,4CACA,0BACA,4CACA,oCACA,0CACA,0CACA,sCACA,0CACA,wDACA,0EACA,8CACA,sDACA,gFACA,oEACA,4CACA,gCACA,4BACA,4BACA,4BACA,4BACA,8CACA,0CACA,0CACA,sDACA,gDACA,wCACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,oCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wDACA,oCACA,kCACA,4CACA,8DACA,oDACA,8CACA,sDACA,wDACA,8BACA,4CACA,8DACA,oDACA,oCACA,oCACA,wDACA,0CACA,oCACA,8CACA,sDACA,8DACA,gEACA,4DACA,4DACA,4CACA,0CACA,oDACA,4CACA,8CACA,kDACA,oCACA,oDACA,kDACA,4DACA,oDACA,wDACA,wDACA,sDACA,gEACA,0DACA,oDACA,wDACA,sEACA,0DACA,gFACA,4DACA,0DACA,sEACA,gDACA,0DACA,wCACA,oDACA,wCACA,sCACA,kDACA,wDACA,sDACA,oDACA,sEACA,sEACA,0EACA,wEACA,0EACA,kEACA,wEACA,kDACA,oDACA,0DACA,sDACA,8DACA,gDACA,gDACA,0EACA,4CACA,0CACA,gDACA,8DACA,gEACA,kCACA,8CACA,sCACA,kDACA,kCACA,wCACA,8CACA,sCACA,sCACA,sBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,wBACA,oDACA,4DACA,wEACA,sDACA,4DACA,8EACA,8DACA,4CACA,kCACA,oCACA,wCACA,gEACA,kEACA,8DACA,8EACA,4DACA,2C,kNCxVF,IAcYE,EALAC,EALAC,EAJZ,UAIYA,EAAA,EAAAA,wBAAA,EAAAA,sBAAqB,KAC/B,wBACA,uBAGUD,EAAA,EAAAA,wBAAA,EAAAA,sBAAqB,KAC/B,kBACA,aAGUD,EAAA,EAAAA,iBAAA,EAAAA,eAAc,KACxB,cACA,cAqBW,EAAAG,gCAAkC,IAClC,EAAAC,wBAA0B,EAAAD,gCAAkC,IAI5D,EAAAhiB,YAAb,WACS,KAAAS,OAAiB,EAAA2C,OAAOpD,c,SC7CjCxF,EAAOD,QAAUO,ICCbonB,EAA2B,G,OAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/lB,IAAjBgmB,EACH,OAAOA,EAAa9nB,QAGrB,IAAIC,EAAS0nB,EAAyBE,GAAY,CAGjD7nB,QAAS,IAOV,OAHA+nB,EAAoBF,GAAUjhB,KAAK3G,EAAOD,QAASC,EAAQA,EAAOD,QAAS4nB,GAGpE3nB,EAAOD,QClBW4nB,CAAoB,O","sources":["webpack://cmdControlClientLib/webpack/universalModuleDefinition","webpack://cmdControlClientLib/./src/version.ts","webpack://cmdControlClientLib/./src/@types/enum-boolean-digitized.ts","webpack://cmdControlClientLib/./src/@types/enum-boolean-stringified-extended.ts","webpack://cmdControlClientLib/./src/@types/enum-boolean-stringified.ts","webpack://cmdControlClientLib/./src/@types/enum-channel-flags.ts","webpack://cmdControlClientLib/./src/@types/enum-currency.ts","webpack://cmdControlClientLib/./src/@types/enum-player-format.ts","webpack://cmdControlClientLib/./src/@types/enum-query-backend-subaction.ts","webpack://cmdControlClientLib/./src/@types/enum-status-type.ts","webpack://cmdControlClientLib/./src/@types/index.ts","webpack://cmdControlClientLib/./src/cmd-connection.ts","webpack://cmdControlClientLib/./src/cmd-control-client-lib.ts","webpack://cmdControlClientLib/./src/cmd-protocol.ts","webpack://cmdControlClientLib/./src/cmd-session.ts","webpack://cmdControlClientLib/./src/logger.ts","webpack://cmdControlClientLib/./src/protocol/b2b/b2bcontact.ts","webpack://cmdControlClientLib/./src/protocol/b2b/b2buserinfo.ts","webpack://cmdControlClientLib/./src/protocol/backend.ts","webpack://cmdControlClientLib/./src/protocol/channel.ts","webpack://cmdControlClientLib/./src/protocol/channelinfo.ts","webpack://cmdControlClientLib/./src/protocol/clivechat.ts","webpack://cmdControlClientLib/./src/protocol/command/action.ts","webpack://cmdControlClientLib/./src/protocol/command/baseparams.ts","webpack://cmdControlClientLib/./src/protocol/command/icommand.ts","webpack://cmdControlClientLib/./src/protocol/command/resultcode.ts","webpack://cmdControlClientLib/./src/protocol/connection.ts","webpack://cmdControlClientLib/./src/protocol/contactnote.ts","webpack://cmdControlClientLib/./src/protocol/exit-code.ts","webpack://cmdControlClientLib/./src/protocol/feedback.ts","webpack://cmdControlClientLib/./src/protocol/init.ts","webpack://cmdControlClientLib/./src/protocol/live/channelgroups.ts","webpack://cmdControlClientLib/./src/protocol/live/devicestatus.ts","webpack://cmdControlClientLib/./src/protocol/live/live-commands.ts","webpack://cmdControlClientLib/./src/protocol/live/livechat.ts","webpack://cmdControlClientLib/./src/protocol/live/login.ts","webpack://cmdControlClientLib/./src/protocol/live/msettings.ts","webpack://cmdControlClientLib/./src/protocol/live/products-config.ts","webpack://cmdControlClientLib/./src/protocol/live/streamstate.ts","webpack://cmdControlClientLib/./src/protocol/live/supdate.ts","webpack://cmdControlClientLib/./src/protocol/live/testchat.ts","webpack://cmdControlClientLib/./src/protocol/live/ticketshow.ts","webpack://cmdControlClientLib/./src/protocol/live/usersettings.ts","webpack://cmdControlClientLib/./src/protocol/lobby.ts","webpack://cmdControlClientLib/./src/protocol/login.ts","webpack://cmdControlClientLib/./src/protocol/logout.ts","webpack://cmdControlClientLib/./src/protocol/media-b2b.ts","webpack://cmdControlClientLib/./src/protocol/media.ts","webpack://cmdControlClientLib/./src/protocol/mediaoffer.ts","webpack://cmdControlClientLib/./src/protocol/mediapurchase.ts","webpack://cmdControlClientLib/./src/protocol/mediaupload.ts","webpack://cmdControlClientLib/./src/protocol/message.ts","webpack://cmdControlClientLib/./src/protocol/messenger/expo.ts","webpack://cmdControlClientLib/./src/protocol/messenger/mobile.ts","webpack://cmdControlClientLib/./src/protocol/messenger/mvcschedule.ts","webpack://cmdControlClientLib/./src/protocol/messenger/signup.ts","webpack://cmdControlClientLib/./src/protocol/msgtemplate.ts","webpack://cmdControlClientLib/./src/protocol/noop.ts","webpack://cmdControlClientLib/./src/protocol/onlinestate.ts","webpack://cmdControlClientLib/./src/protocol/sessionstate.ts","webpack://cmdControlClientLib/./src/protocol/status.ts","webpack://cmdControlClientLib/./src/protocol/systemmessagekey.ts","webpack://cmdControlClientLib/./src/protocol/update-state.ts","webpack://cmdControlClientLib/external umd {\"commonjs\":\"xmlentities\",\"commonjs2\":\"xmlentities\",\"amd\":\"xmlentities\",\"root\":\"xmlentities\"}","webpack://cmdControlClientLib/webpack/bootstrap","webpack://cmdControlClientLib/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"xmlentities\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"xmlentities\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cmdControlClientLib\"] = factory(require(\"xmlentities\"));\n\telse\n\t\troot[\"cmdControlClientLib\"] = factory(root[\"xmlentities\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__1994__) {\nreturn ","export const VERSION = \"__VERSION__\";\n","export enum EnumBooleanDigitized {\n FALSE = \"0\",\n TRUE = \"1\",\n}\n","export enum EnumBooleanStringifiedExtended {\n TRUE = \"true\",\n TRUTHY = \"1\",\n FALSE = \"false\",\n FALSY = \"0\",\n}\n","export enum EnumBooleanStringified {\n TRUE = \"true\",\n FALSE = \"false\",\n}\n","export enum EnumChannelFlags {\n ARCHIVED = \"archived\",\n REGULAR = \"regularCustomer\",\n ADVERTISED = \"advertised\",\n DELETED = \"deleted\",\n LOCKED = \"locked\",\n UNANSWERED = \"unanswered\",\n PINNED = \"pinned\",\n MUTED = \"muted\",\n BOUGHTMEDIA = \"boughtMedia\",\n FOLLOWME = \"followMe\",\n BANNED = \"banned\",\n BANNEDME = \"bannedMe\",\n ARCHIVEDME = \"archivedMe\",\n MUTEDME = \"mutedMe\",\n BLOCKEDOUTBOUND = \"blockedOutbound\",\n BLOCKEDINBOUND = \"blockedInbound\",\n VIDEOCHAT = \"videoChat\",\n GIFT = \"gift\",\n REACTION = \"reaction\",\n SHADOWBAN = \"shadowban\",\n}\n","export enum EnumCurrency {\n EURO = \"EUR\",\n US_DOLLAR = \"USD\",\n VOUCHER_CREDIT = \"VOC\",\n VX_COIN = \"VXC\",\n}\n","export enum EnumPlayerFormat {\n H5LIVE = \"h5live\",\n JPEG = \"jpeg\",\n MJPEG = \"mjpeg\",\n HLS = \"hls\",\n RTMP = \"rtmp\",\n WEBRTC = \"webrtc\",\n MP3 = \"mp3\",\n VORBIS = \"vorbis\",\n VIDEOSDK = \"videosdk\",\n}\n","export enum EnumQueryBackendSubAction {\n BUY_GIFT_BUNDLE = \"BUYGIFTBUNDLE\",\n START_VIDEOCHAT = \"STARTVIDEOCHAT\",\n START_FREE_CHAT = \"STARTFREECHAT\",\n START_LIVE_PREVIEW = \"STARTLIVEPREVIEW\",\n START_VOYEUR_CHAT = \"STARTVOYEURCHAT\",\n START_VOYEUR2S_CHAT = \"STARTVOYEUR2SCHAT\",\n START_PRIVATE_SHOW = \"STARTSINGLECAM2CAMCHAT\",\n START_MOBILECALL_CHAT = \"STARTMOBILECALLCHAT\",\n}\n","/**\n * @see CMDP_SSTATUS\n */\nexport enum EnumStreamStatusType {\n /**\n * @deprecated/obsolete\n */\n AUDIO_DEVICE_ERROR = \"AUDIO_DEVICE_ERROR\",\n /**\n * @deprecated/obsolete\n */\n AUDIO_DEVICE_FROZEN = \"AUDIO_DEVICE_FROZEN\",\n /**\n * @deprecated/ obsolete, ignored\n */\n AUDIO_DEVICE_MUTED = \"AUDIO_DEVICE_MUTED\",\n /**\n * @deprecated/ obsolete, ignored\n */\n AUDIO_DEVICE_UNMUTED = \"AUDIO_DEVICE_UNMUTED\",\n /**\n * @deprecated/ obsolete\n */\n BITRATE = \"BITRATE\",\n /**\n * @deprecated/ obsolete\n */\n CPU_OVERLOAD = \"CPU_OVERLOAD\",\n /**\n * @deprecated/ obsolete\n */\n DROPPED_AUDIO_FRAMES = \"DROPPED_AUDIO_FRAMES\",\n /**\n * @deprecated/ obsolete\n */\n DROPPED_VIDEO_FRAMES = \"DROPPED_VIDEO_FRAMES\",\n /**\n * @deprecated/ obsolete\n */\n VIDEO_DEVICE_ERROR = \"VIDEO_DEVICE_ERROR\",\n /**\n * @deprecated/ obsolete\n */\n VIDEO_DEVICE_FROZEN = \"VIDEO_DEVICE_FROZEN\",\n PROXY_STREAM_INFO = \"PROXY_STREAM_INFO\", // client provided info\n PROXY_STATE_INFO = \"PROXY_STATE_INFO\", // client provided info, JSON.stringify({isTyping: true})\n WEBRTC_STATS = \"WEBRTC_STATS\", // value is browser related JSON.stringify(RTCStatsReport()) return of RTCPeerConnection.getStats()\n}\n","export * from \"./enum-boolean-stringified\";\nexport * from \"./enum-boolean-digitized\";\nexport * from \"./enum-boolean-stringified-extended\";\nexport * from \"./enum-status-type\";\nexport * from \"./enum-channel-flags\";\nexport * from \"./enum-currency\";\nexport * from \"./enum-player-format\";\nexport * from \"./iemoji\";\nexport * from \"./ireaction\";\nexport * from \"./icurrency-description\";\nexport * from \"./json-stringified\";\nexport * from \"./reconnection-error-event\";\nexport * from \"./enum-query-backend-subaction\";\nexport * from \"./helpers\";\n","/* eslint-disable sonarjs/cognitive-complexity */\nimport { decode } from \"xmlentities\";\nimport { Logger, logger, setLogger } from \"./logger\";\nimport { VERSION } from \"./version\";\nimport * as cmdcontrol from \"./cmd-protocol\";\nimport { ReconnectionError } from \"./@types\";\n\nexport enum EnumInitDataFormat {\n /**\n * @deprecated/ obsolete\n */\n LIVE = \"live\",\n /** new translations */\n LIVE2 = \"live2\",\n MESSENGER = \"messenger\",\n AVS = \"avs\",\n mc = \"mc\",\n}\n\nfunction nothing(): void {\n /* do nothing */\n}\n\ninterface IQEntry {\n queued: boolean;\n command: cmdcontrol.ICOMMAND;\n timeoutId: number;\n\n callback(response: cmdcontrol.IRESPONSE): any;\n}\n\nconst INACTIVE_SESSION_TIMEOUT = 120; //seconds\n\nexport class ConnectionConfig {\n public useWS = true; // use websocket\n public host = \"\";\n public wssport = \"\";\n public wsspath = \"\";\n public https = true;\n public agent: cmdcontrol.CmdClientAgent = cmdcontrol.CmdClientAgent.WEB;\n public language: cmdcontrol.SupportedLanguage;\n public version = \"?\";\n public commandHandler: (response: cmdcontrol.IRESPONSE) => any;\n public logger: Logger = undefined;\n public webtoken = \"\";\n public clientID?: string = \"\";\n public jsonp = false; // Allow usage von JSONP for fallback from websocket\n public firstConnectionRetryInterval = 0;\n public connectionRetryInterval = 2000;\n public initdata: EnumInitDataFormat = EnumInitDataFormat.LIVE;\n public onError?: (error: ReconnectionError) => unknown;\n public onOpen?: (event: Event) => unknown;\n public deviceId?: string;\n\n public toString(): string {\n // tslint:disable-next-line:max-line-length\n return (\n \"[ useWS=\" +\n this.useWS +\n \" host=\" +\n this.host +\n \" wssport=\" +\n this.wssport +\n \" wsspath=\" +\n this.wsspath +\n \" agent=\" +\n this.agent +\n \" language=\" +\n this.language +\n \" version=\" +\n this.version +\n \" logger=\" +\n this.logger +\n \" commandHandler= \" +\n this.commandHandler +\n \" ]\"\n );\n }\n}\n\nexport class CmdConnection {\n // tslint:disable-next-line:member-ordering\n private static _commandTimeout = {\n CMDP_CLOGOUT: 4000,\n CMDP_LOGOUT: 4000,\n CMDP_NOOP: 30_000,\n };\n private _reConnectionTimeoutId?: ReturnType<typeof setTimeout>;\n private _isReConnectionPaused = false;\n\n private static _timeoutByAction(entry: IQEntry): number {\n return this._commandTimeout[entry.command.action] || 120_000;\n }\n\n private static _fetchJsonp(urlBase: string, entry: IQEntry, callback: (response: cmdcontrol.IRESPONSE) => any): void {\n let url = `${urlBase}?action=${entry.command.action}`;\n for (const key in entry.command.params) {\n if (\n Object.prototype.hasOwnProperty.call(entry.command.params, key) &&\n typeof entry.command.params[key] !== \"undefined\"\n ) {\n url += \"&\" + encodeURIComponent(key) + \"=\" + encodeURIComponent(entry.command.params[key].toString());\n }\n }\n url = url.replace(\"??\", \"?\");\n const callbackFn = `_jsonp_${Date.now()}_${Math.ceil(Math.random() * 0x1_00_00).toString(16)}`;\n const jsonpScript = document.createElement(\"script\");\n const parent = document.querySelectorAll(\"head\")[0];\n const cleanup = (): void => {\n if (entry.timeoutId) {\n clearTimeout(entry.timeoutId);\n entry.timeoutId = undefined;\n }\n jsonpScript.remove();\n try {\n delete window[callbackFn];\n } catch {\n logger.log(\"send over jsonp\", entry);\n window[callbackFn] = undefined;\n }\n };\n window[callbackFn] = (response: any): void => {\n cleanup();\n if (entry.command.params.format === \"json\") {\n callback(Object.assign(entry.command, response));\n } else {\n callback(Object.assign(entry.command, CmdConnection._parsePlainResponse(response)));\n }\n };\n jsonpScript.src = `${url}${url.includes(\"?\") ? \"&\" : \"?\"}callback=${callbackFn}`;\n jsonpScript.onerror = (e): void => {\n cleanup();\n callback(\n Object.assign(\n entry.command,\n CmdConnection._getErrorResponse(cmdcontrol.ResultCode.NETWORK_ERROR, (e as ErrorEvent).error),\n ),\n );\n };\n parent.append(jsonpScript);\n entry.timeoutId = window.setTimeout(() => {\n cleanup();\n window[callbackFn] = nothing;\n callback(Object.assign(entry.command, CmdConnection._getErrorResponse(cmdcontrol.ResultCode.TIMEOUT, \"timeout\")));\n }, this._timeoutByAction(entry));\n }\n\n private static _parsePlainResponse(responseStr: string): any {\n const response: cmdcontrol.IRESPONSE = {\n action: cmdcontrol.ACTION.CMDP_UNDEFINED,\n params: {},\n result: new cmdcontrol.RESULT(),\n commands: [],\n values: {},\n };\n\n const plusPattern = /\\+/g;\n const commandPattern = /^CMDC_(\\w+)/;\n const valuePattern = /(\\w+)=(\\S+)/g;\n\n let strings: string[];\n\n for (const line of responseStr.split(\"\\n\")) {\n // tslint:disable-next-line:no-conditional-assignment\n if (!(strings = commandPattern.exec(line))) {\n continue;\n }\n const cmdStr: string = strings[1];\n const values: any = {};\n valuePattern.lastIndex = 0;\n // tslint:disable-next-line:no-conditional-assignment\n while ((strings = valuePattern.exec(line))) {\n const key: string = strings[1];\n const value: string = decode(decodeURIComponent(strings[2]));\n values[key] =\n key === \"text\" && value.slice(0, 7) !== \"<a+href\" && cmdStr !== \"CQUERYUSER\" && !line.includes(\" from=system\")\n ? value\n : value.replace(plusPattern, \" \");\n }\n switch (cmdStr) {\n case \"RESULT\":\n response.result.code = Number.parseInt(values.code, 10);\n response.result.reason = values.reason;\n break;\n case \"VALUE\":\n for (const key in values) {\n if (Object.prototype.hasOwnProperty.call(values, key)) {\n response.values[key] = values[key];\n }\n }\n break;\n default:\n response.commands.push({\n action: cmdcontrol.ACTION[\"CMDC_\" + cmdStr],\n params: values,\n });\n }\n }\n return response;\n }\n\n private static _getErrorResponse(code: number, reason: string): any {\n return { result: { code, reason }, commands: undefined, values: undefined };\n }\n\n private readonly _version: string = VERSION;\n private _settings: ConnectionConfig;\n private readonly _instanceId: string;\n private _servletUrl: string;\n private _platformUrl: string; // from DS_RELOAD\n private _socket: WebSocket;\n private _closing = false;\n private _counter = 1;\n private _reConnectAttemptsCount = 0;\n private _initProcessed = false;\n private _noop = { active: false, lastId: undefined, lastTime: undefined };\n private _dsreload: boolean;\n private _queue: IQEntry[] = [];\n private readonly _jumpTable: {\n [key: string]: (command: cmdcontrol.ICOMMAND) => void;\n };\n private _sessionID = \"\";\n private _clientID = \"\";\n private _logPrefix = \"CMDP.\";\n\n public constructor(settings: ConnectionConfig) {\n this._instanceId = Math.ceil(Math.random() * 0x1_00_00_00).toString(16);\n while (this._instanceId.length < 6) {\n this._instanceId = \"0\" + this._instanceId;\n }\n this._settings = settings;\n if (settings.logger) {\n setLogger(settings.logger);\n }\n logger.log(this._logPrefix + \" version=\" + VERSION + \" settings: \" + settings);\n this._onopen = this._onopen.bind(this);\n this._onmessage = this._onmessage.bind(this);\n this._onclose = this._onclose.bind(this);\n this._onerror = this._onerror.bind(this);\n this.connect = this.connect.bind(this);\n window.onunload = this.close.bind(this);\n\n this._jumpTable = {\n CMDP_INIT: this._processCmpdInit.bind(this),\n CMDP_SINIT: this._processCmpdInit.bind(this),\n CMDP_CINIT: this._processCmdpCInit.bind(this),\n CMDP_SLOGIN: this._processCmdpLogin.bind(this),\n // tslint:disable-next-line:object-literal-sort-keys\n CMDP_LOGIN: this._processCmdpLogin.bind(this),\n CMDP_NOOP: this._processCmdpNoop.bind(this),\n CMDP_CLOGOUT: this._processCmdpCLogout.bind(this),\n CMDC_DSRELOAD: this._processCmdcDsReload.bind(this),\n CMDC_UPDATE: this._processCmdcUpdate.bind(this),\n CMDC_SLOGOUT: this._processLogout.bind(this),\n CMDP_LOGOUT: this._processLogout.bind(this),\n };\n }\n\n public connect(): void {\n // tslint:disable-next-line:max-line-length\n this._servletUrl = this._platformUrl\n ? this._platformUrl\n : `${this._settings.https ? \"https\" : \"http\"}://${this._settings.host}:${this._settings.wssport}${\n this._settings.wsspath\n }`;\n if (this._settings.useWS) {\n this._openSocket();\n }\n if (!this._initProcessed && !this._settings.clientID) {\n const command = Object.assign(new cmdcontrol.CMDP_INIT(), {\n params: { initData: this._settings.initdata },\n });\n this._send(command);\n }\n }\n\n public send(command: cmdcontrol.ICOMMAND): void {\n if (command.action === cmdcontrol.ACTION.CMDP_NOOP) {\n logger.error(this._logPrefix + \" dont send the CMDP_NOOP active \", command);\n throw new Error(\"don't send the CMDP_NOOP.\");\n }\n this._send(command);\n }\n\n public close(): void {\n this._closing = true;\n this._noop.active = false;\n if (this._socket) {\n this._socket.close();\n }\n }\n\n private _send(command: cmdcontrol.ICOMMAND): cmdcontrol.ICOMMAND {\n const isNoopCommand = command.action === cmdcontrol.ACTION.CMDP_NOOP;\n const isChatCommand =\n Object.prototype.hasOwnProperty.call(command, \"params\") &&\n Object.prototype.hasOwnProperty.call(command.params, \"clientID\");\n command = Object.assign(command, {\n params: Object.assign(this._getDefaultParams(isNoopCommand, isChatCommand), command.params),\n });\n logger.log(this._logPrefix + \"_enqueue\", command);\n const entry: IQEntry = {\n callback: this._processReply.bind(this),\n command,\n timeoutId: 0,\n queued: true,\n };\n this._queue.push(entry);\n this._dequeue();\n\n return command;\n }\n\n private _openSocket(): void {\n const url = `${this._settings.https ? \"wss\" : \"ws\"}://${this._settings.host}:${this._settings.wssport}${\n this._settings.wsspath\n }`;\n logger.log(this._logPrefix + \"_openSocket\", url);\n let socket: WebSocket;\n try {\n socket = new WebSocket(url);\n } catch (error) {\n // @MDN SECURITY_ERR The port to which the connection is being attempted is being blocked.\n logger.warn(this._logPrefix + \"_openSocket SECURITY_ERR\", error);\n this.reconnect();\n\n return;\n }\n\n socket.onopen = this._onopen;\n socket.onmessage = this._onmessage;\n socket.onerror = this._onerror;\n socket.onclose = this._onclose;\n\n this._socket = socket;\n }\n\n private _onopen(event: Event): void {\n logger.log(this._logPrefix + \"socket.onopen\", event);\n this._dequeue();\n\n if (this._socket?.readyState === WebSocket.OPEN) {\n this._reConnectAttemptsCount = 0;\n\n this._sendNoop();\n\n if (this._settings.onOpen) {\n this._settings.onOpen(event);\n }\n }\n }\n\n private _onmessage(event: MessageEvent): void {\n logger.log(this._logPrefix + \"socket.onmessage\", event);\n const data = JSON.parse(event.data);\n this._processReply(data);\n }\n\n private _onerror(event: Event): void {\n logger.warn(this._logPrefix + \"socket.onerror\", event);\n\n if (this._settings.onError) {\n const isFatal = this._reConnectAttemptsCount === 6;\n let event: ReconnectionError;\n\n if (isFatal) {\n event = { isFatal: true };\n } else {\n const reConnectionTimeout = this._getNextConnectionRetryTimeout(this._reConnectAttemptsCount);\n event = { reConnectionTimeout };\n }\n this._settings.onError(event);\n }\n }\n\n private _onclose(event: CloseEvent): void {\n logger.log(this._logPrefix + \"socket.onclose\", event);\n\n if (!this._closing && !this._dsreload && this._settings.useWS) {\n this.reconnect();\n }\n\n if (this._dsreload) {\n this._dsreload = false;\n }\n }\n\n private _getDefaultParams(isNoopCommand: boolean, isChatCommand: boolean): any {\n return {\n _uniq: (this._counter++).toString(),\n _iid: this._instanceId,\n strip: true,\n format: cmdcontrol.EnumFormatValues.JSON,\n agent: this._settings.agent,\n version: this._settings.version + \"/\" + this._version,\n language: this._settings.language,\n webtoken: this._settings.webtoken,\n deviceId: this._settings.deviceId,\n ...(isNoopCommand || !isChatCommand ? { sessionID: this._sessionID } : {}),\n ...(isNoopCommand && this._hasClientId ? { clientID: this._clientID } : {}),\n };\n }\n\n private _processReply(response: cmdcontrol.IRESPONSE): void {\n logger.log(this._logPrefix + \"_processReply\", response);\n const _uniq = response.params._uniq;\n let entry: IQEntry;\n for (let i = 0, l = this._queue.length; i < l; i++) {\n entry = this._queue[i];\n if (entry.command.params._uniq === _uniq) {\n if (entry.timeoutId) {\n clearTimeout(entry.timeoutId);\n }\n this._queue.splice(i, 1);\n break;\n }\n }\n if (!entry) {\n logger.warn(this._logPrefix + \"_processReply. Entry not found _uniq=\" + _uniq, response);\n return;\n }\n /*network issue*/\n let emit = true;\n if (response.result.code === cmdcontrol.ResultCode.NETWORK_ERROR) {\n const retry = Number.parseInt(entry.command.params._retry.toString() || \"0\", 10);\n if (retry < 10) {\n emit = false;\n setTimeout(() => {\n logger.log(this._logPrefix + \".re-enqueue \", entry.command);\n entry.command.params._retry = entry.command.params._retry ? (retry + 1).toString() : \"1\";\n this._send(entry.command);\n }, 3000);\n }\n }\n if (emit) {\n this._processCommand(response);\n if (response.commands && response.commands.length > 0) {\n response.commands.forEach(this._processCommand.bind(this));\n }\n this._settings.commandHandler(response);\n }\n this._dequeue();\n }\n\n private _dequeue(): void {\n if (!this._closing) {\n for (let i = 0, l = this._queue.length; i < l; i++) {\n const entry = this._queue[i];\n if (entry.queued) {\n this._sendEntry(entry);\n break;\n }\n }\n }\n }\n\n private _sendEntry(entry: IQEntry): void {\n if (this._settings.useWS) {\n if (this._socket?.readyState === WebSocket.OPEN) {\n entry.queued = false;\n const str = JSON.stringify(entry.command);\n this._socket.send(str);\n }\n } else if (this._settings.jsonp) {\n entry.queued = false;\n CmdConnection._fetchJsonp(this._servletUrl, entry, this._processReply.bind(this));\n }\n }\n\n private _getNextConnectionRetryTimeout(attempt: number): number {\n return this._settings.connectionRetryInterval * attempt || this._settings.firstConnectionRetryInterval;\n }\n\n public reconnect(): void {\n if (this._isReConnectionPaused) {\n return;\n }\n\n this._socket = undefined;\n this._markAllQueueEntriesAsQueued();\n\n if (this._settings.jsonp) {\n logger.warn(this._logPrefix + \". fallback to JSONP\");\n this._settings.useWS = false;\n this._dequeue();\n } else if (this._settings.useWS) {\n if (this._reConnectAttemptsCount <= 5) {\n if (this._reConnectionTimeoutId) {\n clearTimeout(this._reConnectionTimeoutId);\n this._reConnectionTimeoutId = undefined;\n }\n\n const reConnectionTimeout = this._getNextConnectionRetryTimeout(this._reConnectAttemptsCount);\n\n logger.log(this._logPrefix + \" retry connect in \" + reConnectionTimeout + \" ms\");\n this._reConnectAttemptsCount++;\n\n this._reConnectionTimeoutId = setTimeout(() => {\n this._openSocket();\n }, reConnectionTimeout);\n } else {\n this._reConnectAttemptsCount = 0;\n logger.log(this._logPrefix + \" maximum reconnect attempts count reached\");\n }\n }\n }\n\n public pause(isResumable = true): void {\n if (\n !this._settings.useWS ||\n this._socket?.readyState === WebSocket.CLOSED ||\n this._socket?.readyState === WebSocket.CLOSING\n ) {\n return;\n }\n\n this._isReConnectionPaused = true;\n if (this._reConnectionTimeoutId) {\n clearTimeout(this._reConnectionTimeoutId);\n this._reConnectionTimeoutId = undefined;\n }\n\n if (this._socket) {\n this._socket.onclose = undefined;\n this._socket.onerror = undefined;\n this._socket.close();\n }\n\n if (!isResumable) {\n this._closing = false;\n this._noop.active = true;\n this._noop.lastTime = undefined;\n this._isReConnectionPaused = false;\n this._reConnectAttemptsCount = 0;\n this.reconnect();\n }\n }\n\n public resume(): boolean {\n if (!(this._hasSessionId || this._hasClientId) || !this._settings.useWS || !this._isReConnectionPaused) {\n return false;\n }\n\n this._closing = false;\n this._noop.active = true;\n this._noop.lastTime = undefined;\n this._isReConnectionPaused = false;\n this._reConnectAttemptsCount = 0;\n this.reconnect();\n\n return true;\n }\n\n private _sendNoop(): void {\n if (!(this._hasSessionId || this._hasClientId)) {\n return;\n }\n\n const command = this._send(new cmdcontrol.CMDP_NOOP());\n this._noop.lastId = command.params._uniq;\n }\n\n private _processCommand(command: cmdcontrol.ICOMMAND): void {\n const func = this._jumpTable[command.action];\n if (func) {\n func(command);\n }\n }\n\n // noinspection JSUnusedLocalSymbols\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private _processCmpdInit(_response: cmdcontrol.CMDP_INIT_RESPONSE): void {\n this._initProcessed = true;\n }\n\n private _processCmdpCInit(response: cmdcontrol.CMDP_CINIT_RESPONSE): void {\n if (response.result.code === cmdcontrol.ResultCode.OK) {\n this._clientID = response.params.clientID;\n\n if (this._settings.clientID) {\n this._sendNoop();\n }\n }\n }\n\n private _processCmdpLogin(response: cmdcontrol.CMDP_LOGIN_RESPONSE): void {\n if (response.result.code === cmdcontrol.ResultCode.OK) {\n this._sessionID = response.values.sessionID;\n if (response.values.webtoken) {\n this._settings.webtoken = response.values.webtoken;\n }\n this._sendNoop();\n }\n }\n\n private _processCmdpNoop(response: cmdcontrol.CMDP_NOOP_RESPONSE): void {\n const currentTime = Math.floor(Date.now() / 1000);\n\n switch (response.result.code) {\n case cmdcontrol.ResultCode.SESSION_NOT_FOUND:\n case cmdcontrol.ResultCode.NETWORK_ERROR:\n logger.warn(this._logPrefix + \"NOOP stopped\");\n break;\n default:\n if (!this._noop.lastTime || currentTime - this._noop.lastTime < INACTIVE_SESSION_TIMEOUT) {\n this._noop.lastTime = currentTime;\n }\n\n if (this._noop.lastId === response.params._uniq) {\n this._sendNoop();\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private _processCmdpCLogout(_response: cmdcontrol.CMDP_CLOGOUT): void {\n this._clientID = \"\";\n }\n\n private _processLogout(): void {\n this._settings.webtoken = \"\";\n }\n\n private _processCmdcDsReload(command: cmdcontrol.CMDC_DSRELOAD): void {\n logger.warn(this._logPrefix + cmdcontrol.ACTION.CMDC_DSRELOAD, command);\n this._dsreload = true;\n if (this._socket) {\n this._socket.close();\n }\n\n this._markAllQueueEntriesAsQueued();\n\n this._platformUrl = command.params.PlatformUrl;\n this._settings.host = command.params.wsshost;\n this._settings.wssport = command.params.wssport;\n this._settings.wsspath = command.params.wsspath;\n this.connect();\n }\n\n private _processCmdcUpdate(command: cmdcontrol.CMDC_UPDATE): void {\n if (\n Object.prototype.hasOwnProperty.call(command.params, \"webtoken\") &&\n typeof command.params[\"webtoken\"] !== \"undefined\"\n ) {\n this._settings.webtoken = command.params[\"webtoken\"];\n }\n }\n\n private _markAllQueueEntriesAsQueued(): void {\n this._queue.forEach((entry) => {\n // do not re enqueue the NOOP because of duplicate\n if (!entry.queued && entry.command.action !== cmdcontrol.ACTION.CMDP_NOOP) {\n entry.queued = true;\n }\n });\n }\n\n public get isOpened(): boolean {\n return this._socket?.readyState === WebSocket.OPEN;\n }\n\n private get _hasSessionId(): boolean {\n return Boolean(this._sessionID);\n }\n\n private get _hasClientId(): boolean {\n return Boolean(this._clientID);\n }\n}\n","/*\n * Copyright (c) 2016-2020. campoint AG.\n * This file is licensed under the MIT License (https://opensource.org/licenses/MIT).\n */\n//\n\nexport * from \"./cmd-protocol\";\nexport * from \"./@types\";\n\nexport { setLogger, LogCollector, LogEntry } from \"./logger\";\nexport { ConnectionConfig, CmdConnection, EnumInitDataFormat } from \"./cmd-connection\";\nexport { CmdControlSession } from \"./cmd-session\";\n","export * from \"./protocol/command/icommand\";\nexport * from \"./protocol/command/action\";\nexport * from \"./protocol/command/resultcode\";\nexport * from \"./protocol/backend\";\nexport * from \"./protocol/channel\";\nexport * from \"./protocol/channelinfo\";\nexport * from \"./protocol/contactnote\";\nexport * from \"./protocol/chatstate\";\nexport * from \"./protocol/connection\";\nexport * from \"./protocol/b2b/b2buserinfo\";\nexport * from \"./protocol/b2b/b2bcontact\";\nexport * from \"./protocol/init\";\nexport * from \"./protocol/login\";\nexport * from \"./protocol/gifts\";\nexport * from \"./protocol/logout\";\nexport * from \"./protocol/message\";\nexport * from \"./protocol/noop\";\nexport * from \"./protocol/lobby\";\nexport * from \"./protocol/onlinestate\";\nexport * from \"./protocol/sessionstate\";\nexport * from \"./protocol/media-b2b\";\nexport * from \"./protocol/mediaupload\";\nexport * from \"./protocol/mediapurchase\";\nexport * from \"./protocol/media\";\nexport * from \"./protocol/mediaoffer\";\nexport * from \"./protocol/media-b2b\";\nexport * from \"./protocol/update-state\";\nexport * from \"./protocol/b2b/b2buserinfo\";\nexport * from \"./protocol/systemmessagekey\";\nexport * from \"./protocol/live/channelgroups\";\nexport * from \"./protocol/live/live-commands\";\nexport * from \"./protocol/live/login\";\nexport * from \"./protocol/live/devicestatus\";\nexport * from \"./protocol/live/supdate\";\nexport * from \"./protocol/live/products-config\";\nexport * from \"./protocol/live/streamstate\";\nexport * from \"./protocol/live/usersettings\";\nexport * from \"./protocol/live/testchat\";\nexport * from \"./protocol/live/msettings\";\nexport * from \"./protocol/live/livechat\";\nexport * from \"./protocol/live/ticketshow\";\nexport * from \"./protocol/messenger/expo\";\nexport * from \"./protocol/messenger/signup\";\nexport * from \"./protocol/messenger/mobile\";\nexport * from \"./protocol/status\";\nexport * from \"./protocol/exit-code\";\nexport * from \"./protocol/clivechat\";\nexport * from \"./protocol/feedback\";\nexport * from \"./protocol/messenger/videosdk\";\nexport * from \"./protocol/messenger/mvcschedule\";\nexport * from \"./protocol/msgtemplate\";\n\n// partial exports\nexport { SupportedLanguage, CmdClientAgent, EnumFormatValues, baseParamsType } from \"./protocol/command/baseparams\";\n","import * as cmdcontrol from \"./cmd-protocol\";\nimport { ConnectionConfig, CmdConnection } from \"./cmd-connection\";\n\n/**\n * this is minimal implementation of wraper for cmd-control-connection\n */\nexport class CmdControlSession {\n private readonly _connection: CmdConnection;\n\n public constructor(settings: ConnectionConfig) {\n this._connection = new CmdConnection(settings);\n this._connection.connect();\n }\n\n // noinspection JSUnusedGlobalSymbols\n public LoginWithUsernamePassword(login: string, password: string): void {\n const command = Object.assign(new cmdcontrol.CMDP_SLOGIN(), {\n params: { login, password, msn: true },\n });\n this._connection.send(command);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public LoginWithSession(foreignSID: string): void {\n const command = Object.assign(new cmdcontrol.CMDP_SLOGIN(), {\n params: { foreignSID, msn: true },\n });\n this._connection.send(command);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public LoginWithWebtoken(webtoken: string): void {\n const command = Object.assign(new cmdcontrol.CMDP_SLOGIN(), {\n params: { webtoken, msn: true },\n });\n this._connection.send(command);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public sendCommand(command: cmdcontrol.ICOMMAND): void {\n this._connection.send(command);\n }\n\n public logout(exitCode: number): void {\n const command = Object.assign(new cmdcontrol.CMDP_LOGOUT(), {\n params: { code: exitCode },\n });\n this._connection.send(command);\n }\n\n public close(): void {\n this._connection.close();\n }\n\n public reconnect(): void {\n this._connection.reconnect();\n }\n\n public pause(isResumable = true): void {\n this._connection.pause(isResumable);\n }\n\n public resume(): boolean {\n return this._connection.resume();\n }\n\n public get isOpened(): boolean {\n return this._connection.isOpened;\n }\n}\n","// tslint:disable-next-line:interface-name\nexport interface Logger {\n log: (message?: any, ...optionalParams: any[]) => void;\n warn: (message?: any, ...optionalParams: any[]) => void;\n error: (message?: any, ...optionalParams: any[]) => void;\n}\n\nexport let logger: Logger = {\n log: (message?: any, ...optionalParams: any[]) => {\n /**NOOP */\n },\n warn: (message?: any, ...optionalParams: any[]) => {\n /**NOOP */\n },\n // tslint:disable-next-line:object-literal-sort-keys\n error: (message?: any, ...optionalParams: any[]) => {\n /**NOOP */\n },\n};\n\nexport function setLogger(value: Logger): void {\n logger = value;\n}\n\n// tslint:disable-next-line:interface-name\nexport interface LogEntry {\n level: number;\n time: number;\n message: string;\n params: any[];\n}\n\nexport class LogCollector implements Logger {\n public static readonly LOG = 10;\n public static readonly WARN = 20;\n public static readonly ERROR = 30;\n\n // tslint:disable-next-line:variable-name\n private _logs: LogEntry[] = [];\n // tslint:disable-next-line:variable-name\n private _logger: Logger;\n\n // tslint:disable-next-line:no-shadowed-variable\n public constructor(logger?: Logger) {\n this._logger = logger;\n }\n\n public clear(): void {\n this._logs = [];\n }\n\n public get logs(): LogEntry[] {\n return this._logs;\n }\n\n public exportToStr(level = 0, entries = 0): string {\n let out = \"\";\n const len = this._logs.length;\n for (let i = entries === 0 ? 0 : Math.max(len - entries, 0); i < len; i++) {\n const entry = this._logs[i];\n if (entry.level < level) {\n continue;\n }\n const levelStr = entry.level >= LogCollector.ERROR ? \"ERROR\" : entry.level >= LogCollector.WARN ? \"WARN\" : \"INFO\";\n const d = new Date(entry.time);\n out +=\n (d.getHours() < 10 ? \"0\" : \"\") +\n d.getHours() +\n (d.getMinutes() < 10 ? \":0\" : \":\") +\n d.getMinutes() +\n (d.getSeconds() < 10 ? \":0\" : \":\") +\n d.getSeconds() +\n (d.getMilliseconds() < 100 ? (d.getMilliseconds() < 10 ? \".00\" : \".0\") : \".\") +\n d.getMilliseconds() +\n \" \" +\n levelStr +\n \" \" +\n entry.message +\n (entry.params ? \" \" + JSON.stringify(entry.params) : \"\") +\n \"\\n\";\n }\n return out;\n }\n\n public log(message?: any, ...params: any[]): void {\n this._push(LogCollector.LOG, message, params);\n }\n\n public warn(message?: any, ...params: any[]): void {\n this._push(LogCollector.WARN, message, params);\n }\n\n public error(message?: any, ...params: any[]): void {\n this._push(LogCollector.ERROR, message, params);\n }\n\n private _push(level: number, message: any, params: any[]): void {\n this._logs.push({ level, time: Date.now(), message, params });\n if (this._logger) {\n const method =\n level >= LogCollector.WARN\n ? this._logger.warn\n : level >= LogCollector.ERROR\n ? this._logger.error\n : this._logger.log;\n if (params) {\n const p = [message, ...params];\n try {\n // TODO edge-mobile doesn't like it\n method(...p);\n } catch {\n //\n }\n } else {\n method(message);\n }\n }\n }\n}\n","import { channelIdType, partnerIdKeyType } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\nimport { IB2BUserInfo } from \"./b2buserinfo\";\n\n// B2B only.\n\n/**\n * the information about partner user. overrides information set by partnter to his user and will be shown to your users.\n */\nexport type IB2BContactInfo = IB2BUserInfo;\n\n/**\n * Transport command for Contact Info\n */\n\nexport class CMDC_CONTACTINFO implements ICOMMAND {\n public action = ACTION.CMDC_CONTACTINFO;\n public params: partnerIdKeyType & IB2BContactInfo;\n}\n\n/**\n * Set the contact information.\n */\nexport class CMDP_SETCONTACTINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETCONTACTINFO;\n public params: baseParamsType & partnerIdKeyType & IB2BContactInfo;\n}\n\n/**\n * Response for CMDP_SETCONTACTINFO\n */\n\nexport class CMDP_SETCONTACTINFO_RESPONSE extends CMDP_SETCONTACTINFO implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * get the contact information\n */\nexport class CMDP_GETCONTACTINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETCONTACTINFO;\n public params: baseParamsType & (channelIdType | partnerIdKeyType);\n}\n\n/**\n * Response for CMDP_GETCONTACTINFO\n */\nexport class CMDP_GETCONTACTINFO_RESPONSE extends CMDP_GETCONTACTINFO implements IRESPONSE {\n public result: RESULT;\n /** ContactInfo */\n public commands: CMDC_CONTACTINFO[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCONTACTINFO extends CMDP_GETCONTACTINFO {\n public action: ACTION = ACTION.CMDP_SGETCONTACTINFO;\n}\n\n/**\n * @deprecated\n */\nexport class CMDP_SGETCONTACTINFO_RESPONSE extends CMDP_GETCONTACTINFO_RESPONSE {\n public action: ACTION = ACTION.CMDP_SGETCONTACTINFO;\n}\n","import { EnumBooleanStringified, JSONString } from \"../../@types\";\nimport { EnumProductId, usrKeyType } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\n/**\n * user information and abilities\n */\n\ninterface IUserInfo extends IKeyValue {\n /** product id readonly*/\n productId?: EnumProductId;\n /** user Login/Name to show */\n ualias?: string;\n /** user language, 2-symbol code lower case. \"de\", \"en\" */\n language?: string;\n /** avatar url */\n imgSrc?: string;\n /** avatar url sourceSet, ignored in SET-Commands */\n imgSrcSet?: string;\n /** any json encoded string for client software */\n payload?: JSONString<unknown>;\n /** age verification status */\n avs?: EnumBooleanStringified;\n /** abilities */\n canSendMessage?: EnumBooleanStringified;\n canReceiveMessage?: EnumBooleanStringified;\n /** deprecated */\n canSendImage?: EnumBooleanStringified;\n /** deprecated */\n canReceiveImage?: EnumBooleanStringified;\n /** deprecated */\n canSendAudio?: EnumBooleanStringified;\n /** deprecated */\n canReceiveAudio?: EnumBooleanStringified;\n /** deprecated */\n canSendVideo?: EnumBooleanStringified;\n /** deprecated */\n canReceiveVideo?: EnumBooleanStringified;\n canSendMedia?: EnumBooleanStringified;\n canReceiveMedia?: EnumBooleanStringified;\n /**\n * @deprecated/obsolete\n */\n canReceiveTicket?: EnumBooleanStringified;\n canOfferMedia?: EnumBooleanStringified;\n canPurchaseMedia?: EnumBooleanStringified;\n}\n\n/**\n * product \"VOne\" extra information and abilities\n */\nexport interface IUserInfoVOne extends IUserInfo {\n isVIP?: EnumBooleanStringified;\n canCall0900?: EnumBooleanStringified;\n canSingleSession?: EnumBooleanStringified;\n canBuyShopContent: EnumBooleanStringified;\n canBeDiscounted: EnumBooleanStringified;\n canSendGifts: EnumBooleanStringified;\n canControlToy: EnumBooleanStringified;\n canBeBan: EnumBooleanStringified;\n}\n\n/**\n * B2B basic user information\n */\nexport type IB2BUserInfo = IUserInfo;\n\n/**\n * B2B Vone user information\n */\nexport type IB2BUserInfoVOne = IUserInfoVOne;\n\n/**\n * user information transport object\n */\nexport class CMDC_USERINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_USERINFO;\n public params: {\n usrId: string;\n usrKey: string;\n } & (IB2BUserInfo | IB2BUserInfoVOne);\n}\n\n/**\n * B2B only\n * Create/Update user information in messenger system\n */\nexport class CMDP_SETUSERINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETUSERINFO;\n public params: baseParamsType & usrKeyType & (IUserInfo | IUserInfoVOne);\n}\n\n/**\n * Response for CMDP_SETUSERINFO\n */\nexport class CMDP_SETUSERINFO_RESPONSE extends CMDP_SETUSERINFO implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public values: IKeyMaybeValue;\n /** unused */\n public commands: ICOMMAND[];\n}\n\n/**\n * B2B only\n * Get user information in messenger system\n */\nexport class CMDP_GETUSERINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETUSERINFO;\n public params: baseParamsType & {\n /** userKey */\n usrKey: string;\n };\n}\n\n/**\n * Response CMDP_GETUSERINFO\n */\nexport class CMDP_GETUSERINFO_RESPONSE extends CMDP_GETUSERINFO implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public values: IKeyMaybeValue;\n /** user info */\n public commands: CMDC_USERINFO[];\n}\n","import { EnumQueryBackendSubAction, ExclusiveOR } from \"../@types\";\nimport { channelIdType, IMayHaveChannelId, usrKeyType } from \"./channel\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\n\nexport interface IBackEndPayload {\n type: any;\n data: any;\n}\n\nexport declare type TChatData = {\n chatId: number;\n clientId: string;\n server: string;\n width: string;\n height: string;\n};\n\nexport declare type TGuestData = {\n guestBalance?: number;\n bundleGifts?: TGiftQuantity[];\n};\n\nexport declare type TGiftQuantity = {\n id: number;\n quantity: number;\n};\n\nexport declare type TQueryBackendResponsePayload = ExclusiveOR<TChatData, TGuestData>;\n\n/**\n * payload for transport to backend and from backend to client\n */\nexport interface IBACKENDPAYLOAD {\n /* any object */\n payload?: unknown;\n}\n\ntype TSubActionParams = {\n subaction: EnumQueryBackendSubAction;\n};\n\n/**\n * common command for take a backend action\n */\nexport class CMDP_QUERYBACKEND implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_QUERYBACKEND;\n public params: TSubActionParams & baseParamsType & channelIdType;\n}\n\n/**\n * response CMDP_QUERYBACKEND\n */\nexport class CMDP_QUERYBACKEND_RESPONSE extends CMDP_QUERYBACKEND implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n /** if jwt-session, any json-payload for transport to to client */\n public payload?: TQueryBackendResponsePayload;\n}\n\n/**\n * the update commando from backend over B2B-connection to client for channel\n */\nexport class CMDC_BACKENDPAYLOAD implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDC_BACKENDPAYLOAD;\n public params: IMayHaveChannelId & usrKeyType & IKeyMaybeValue;\n public payload?: IBackEndPayload;\n}\n\n/** the b2b command for publish of CMDC_BACKENDPAYLOAD */\nexport class CMDP_BACKENDPAYLOAD implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_BACKENDPAYLOAD;\n public params: IMayHaveChannelId & usrKeyType & IKeyMaybeValue;\n public payload?: IBackEndPayload;\n}\n","import { ComaSeparatedValues } from \"./sessionstate\";\nimport { chatIdType } from \"./chatstate\";\nimport { EnumBooleanStringified, EnumBooleanStringifiedExtended, EnumChannelFlags } from \"../@types\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT, StringBasedType } from \"./command/icommand\";\nimport { CMDC_CMSG, EnumMediaType, EnumMessageDirection, EnumMessageType } from \"./message\";\nimport { IB2BUserInfo, IB2BUserInfoVOne } from \"./b2b/b2buserinfo\";\nimport { EnumBadge } from \"./channelinfo\";\nimport { ChannelMediaLinkState } from \"./media\";\n\n/**\n * channelId has Format \"usrId.usrKey-partnerId.partnerKey\"\n * userPoolId - business id in messenger system, number\\{10,0\\}\n * usrKey - key of your customer in your sytem, string(36 bytes), \".\" and \"-\" are not allowed\n * partnerId - userPoolId of your partner in messenger system, number\\{10,0\\}\n * partnerKey - key of partner customer, string(36 bytes), \".\" and \"-\" are not allowed\n */\n\n/**\n * Type that definitely has `channelId` field\n */\nexport type channelIdType = {\n channelId: string;\n};\n\n/**\n * Type that may or may not have `channelId` field\n * ONLY channel ID, not other fields!\n */\nexport interface IMayHaveChannelId {\n channelId?: string;\n}\n\nexport type usrKeyType = {\n /** key of your customer. obligatory param for b2b session */\n usrKey?: string;\n};\n\nexport type partnerIdKeyType = {\n /** id of your business partner in messenger system */\n partnerId: string;\n /** key of partners customer */\n partnerKey: string;\n};\n\n/** mind one of both, please */\nexport type channelIdOrChatId = channelIdType | chatIdType;\n\n/**\n * channel\n */\nexport class ChannelType implements IKeyValue {\n [key: string]: StringBasedType;\n /** channel id */\n public channelId: string;\n /** your business usrId in messenger system */\n public usrId: string; // your master id\n /** the key of your customer */\n public usrKey: string; // your customer id\n /** id of your business partner in messenger system */\n public partnerId: string; // the partner id\n /** key of partner customer */\n public partnerKey: string; // partner customer id\n /** time of last incoming message */\n public lastTimeIn: string;\n /** time of last outgoing message */\n public lastTimeOut: string;\n /** number of unseen messages */\n public unseen: string;\n /** update spam serial */\n public serial: string;\n /** @see EnumChannelFlags */\n public flags?: ComaSeparatedValues<EnumChannelFlags> | EnumChannelFlags;\n /** the weight of the channel*/\n public weight?: string;\n /*time for next possible outgoing message */\n public nextTimeOut?: string;\n}\n\n/**\n * the command for delivery channel info\n */\nexport class CMDC_CHANNEL implements ICOMMAND {\n public action = ACTION.CMDC_CHANNEL;\n public params: ChannelType;\n}\n\n/**\n * create new channel. the channel must be created before send of message\n */\nexport class CMDP_NEWCHANNEL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_NEWCHANNEL;\n public params: baseParamsType & usrKeyType & partnerIdKeyType & (IB2BUserInfo | IB2BUserInfoVOne);\n}\n\n/**\n * response for CMDP_NEWCHANNEL\n */\nexport class CMDP_NEWCHANNEL_RESPONSE extends CMDP_NEWCHANNEL implements IRESPONSE {\n public result: RESULT;\n /** the created channel */\n public commands: CMDC_CHANNEL[];\n /** deprecated. the created channel, values is ChannelType */\n public values: ChannelType;\n}\n\n/**\n * Get the ChannelInfo. this command works with channelId and will be reflected to backend.\n */\nexport class CMDP_GETCHANNEL implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_GETCHANNEL;\n public params: baseParamsType & channelIdType;\n public payload?: unknown;\n}\n\n/**\n * response for CMDP_GETCHANNEL\n */\nexport class CMDP_GETCHANNEL_RESPONSE extends CMDP_GETCHANNEL implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n /** the channel info */\n public commands: CMDC_CHANNEL[];\n /** unused, empty */\n public values: IKeyMaybeValue;\n /** the backend info to the channel */\n public payload?: unknown;\n}\n\n/**\n * 8320 only.\n */\nexport class CMDP_SGETCHANNEL extends CMDP_GETCHANNEL {\n public action: ACTION = ACTION.CMDP_SGETCHANNEL;\n}\n\n/**\n * 8320 only\n */\nexport class CMDP_SGETCHANNEL_RESPONSE extends CMDP_SGETCHANNEL {\n public action: ACTION = ACTION.CMDP_SGETCHANNEL;\n}\n\nexport enum EnumSortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n\nexport enum EnumChannelFilterValues {\n ANY = \"any\",\n ONLY = \"only\",\n EXCLUDE = \"exclude\",\n}\n\nexport enum EnumProductId {\n Default = \"1\",\n PAGES = \"2\",\n PARTNER = \"3\",\n TV = \"4\",\n}\n\n/** channel selector type */\nexport type channelIdSelector = {\n channelId?: ComaSeparatedValues<string> | string;\n selectActive?: EnumBooleanStringified;\n selectRegularCustomer?: EnumBooleanStringified;\n selectAdvertised?: EnumBooleanStringified;\n selectPinned?: EnumBooleanStringified;\n selectGroupId?: ComaSeparatedValues<string> | string;\n selectBadges?: ComaSeparatedValues<EnumBadge> | string;\n selectFollowMe?: EnumBooleanStringified;\n groupId?: ComaSeparatedValues<string> | string;\n /**\n * @deprecated/ignored\n */\n selectVip?: EnumBooleanStringified;\n};\n\nexport type channelIdFilter = {\n /** search for contact-name, default empty, any lenght */\n filterContactName?: string;\n /** filter channels without incoming messages, default any */\n filterEmptyIn?: EnumChannelFilterValues;\n /** filter channels without outgoing messages, default any */\n filterEmptyOut?: EnumChannelFilterValues;\n /** filter archived channels, default any */\n filterArchived?: EnumChannelFilterValues;\n /** 8320 only , default any */\n filterAdvertised?: EnumChannelFilterValues;\n /** filter by favorite flag, default any */\n filterRegularCustomer?: EnumChannelFilterValues;\n /** filter by favorite flag, default any */\n filterFollowMe?: EnumChannelFilterValues;\n /** filter by unseen, default any */\n filterUnseen?: EnumChannelFilterValues;\n /** filter by unanswered, default any */\n filterUnAnswered?: EnumChannelFilterValues;\n /** filter by pinned, default any */\n filterPinned?: EnumChannelFilterValues;\n /** filter by muted, default any */\n filterMuted?: EnumChannelFilterValues;\n /** filter by VIP status, default any */\n filterVIP?: EnumChannelFilterValues;\n /** has a video chat */\n filterVideoChat?: EnumChannelFilterValues;\n /** has a session */\n filterOnline?: EnumChannelFilterValues;\n /** cant sent message*/\n filterBlockedOutbound?: EnumChannelFilterValues;\n /** filter by product id, default empty*/\n filterProductId?: EnumProductId;\n /** filter by banned */\n filterBanned?: EnumChannelFilterValues;\n /** media filter */\n filterCanReceiveImage?: EnumChannelFilterValues;\n filterCanReceiveAudio?: EnumChannelFilterValues;\n filterCanReceiveVideo?: EnumChannelFilterValues;\n /** media purchasing filter */\n filterCanPurchaseMedia?: EnumChannelFilterValues;\n /** filter by group id, coma separated */\n filterGroupId?: string;\n /** filter by badges */\n selectBadges?: ComaSeparatedValues<EnumBadge> | string;\n /** filterActive */\n filterActive?: EnumChannelFilterValues;\n /** filter channels to exclude */\n filterExcludeChannelId?: ComaSeparatedValues<string> | string;\n /** filter by weight */\n filterMinWeight?: string;\n filterMaxWeight?: string;\n filterShadowban?: EnumChannelFilterValues;\n};\n\nexport type channelIdSelectOrFilter = channelIdSelector & channelIdFilter;\n\nexport type getChannelsParamsType = {\n /** from serial, default = 0 */\n serial?: string;\n /** query offset */\n skip?: string;\n /** limit, default is 1000 */\n limit?: string;\n /**\n * @deprecated/obsolete, ignored\n */\n sort?: EnumSortOrder;\n /** get CMDC_CONTACTNOTE in commands, default 0, deprecated */\n contactNote?: EnumBooleanStringifiedExtended;\n /** get CMDC_CONTACTINFO in commands, default 0, allowed for b2b session only */\n contactInfo?: EnumBooleanStringifiedExtended;\n /** get CMDC_CHANNELINFO in commands, default 0 */\n channelInfo?: EnumBooleanStringifiedExtended;\n /** get CMDC_ONLINESTATE in commands */\n onlineState?: EnumBooleanStringifiedExtended;\n /** get CMDC_CHANNELGROUP in commands */\n groupInfo?: EnumBooleanStringifiedExtended;\n /** search for contact-name, default empty */\n /**\n * @deprecated. obsolete\n */\n contactSearch?: string;\n};\n\n/**\n * Query for ChannelList\n */\nexport class CMDP_GETCHANNELS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETCHANNELS;\n public params: baseParamsType &\n getChannelsParamsType &\n channelIdSelectOrFilter & {\n countOnly?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_GETCHANNELS\n */\nexport class CMDP_GETCHANNELS_RESPONSE extends CMDP_GETCHANNELS implements IRESPONSE {\n public result: RESULT;\n /** channels & channel infos, if countOnly omited or \"false\" */\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & {\n channelCount?: string;\n channelTotal?: string;\n };\n}\n\n/** synonym, 8320 only */\nexport class CMDP_SGETCHANNELS extends CMDP_GETCHANNELS {\n public action: ACTION = ACTION.CMDP_SGETCHANNELS;\n}\n\n/** synonym, 8320 only */\nexport class CMDP_SGETCHANNELS_RESPONSE extends CMDP_GETCHANNELS_RESPONSE {\n public action: ACTION = ACTION.CMDP_SGETCHANNELS;\n}\n\n/** searchAfter must be used together */\nexport type IMayHaveSearchAfter = {\n /** filter for datetime, value like CMDC_CMSG.param.timeSent (unix time stamp in ms)*/\n searchAfterTime?: string;\n searchAfterId?: string;\n};\n\nexport type getHistoryParamsType = IMayHaveChannelId &\n IMayHaveSearchAfter & {\n /** filter for msgType. coma separated */\n filterMessageType?: EnumMessageType | string;\n filterSysMessageKey?: ComaSeparatedValues<string>;\n /** filter for isDeleted*/\n filterDeleted?: EnumChannelFilterValues;\n filterMediaType?: ComaSeparatedValues<EnumMediaType>;\n filterLinkState?: ComaSeparatedValues<ChannelMediaLinkState>;\n filterDirection?: EnumMessageDirection;\n /** number of messages, max & default is 100 */\n limit?: string;\n /** sort by sent, default is DESC */\n sort?: EnumSortOrder;\n /** deprecated */\n keys?: EnumBooleanStringifiedExtended;\n };\n\n/**\n * Get messages history for channel\n * Multichannel command\n */\nexport class CMDP_GETHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETHISTORY;\n public params: baseParamsType &\n getHistoryParamsType & {\n getUnseenButDeleted?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_GETHISTORY\n */\nexport class CMDP_GETHISTORY_RESPONSE extends CMDP_GETHISTORY implements IRESPONSE {\n public result: RESULT;\n /** found messages */\n public commands: CMDC_CMSG[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\nexport enum EnumLimitType {\n TOTAL = \"total\",\n separately = \"separately\",\n}\n\n/**\n * Get messages history for channel\n * Multichannel command\n */\nexport class CMDP_SGETMESSAGEHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMESSAGEHISTORY;\n public params: baseParamsType &\n getHistoryParamsType & {\n /** chat id list, coma separated */\n chatIDs?: string;\n /** limit type, default total */\n limitType?: EnumLimitType;\n /*fetch */\n fetchReactionsFirst?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_GETHISTORY\n */\nexport class CMDP_SGETMESSAGEHISTORY_RESPONSE extends CMDP_SGETMESSAGEHISTORY implements IRESPONSE {\n public result: RESULT;\n /** found messages */\n public commands: CMDC_CMSG[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\nexport type channelSeenParamsType = channelIdType & {\n /** last seen messageId, by default all messages marked as seen */\n messageId?: string;\n};\n\nexport class CMDP_SGETCHANNELMESSAGE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHANNELMESSAGE;\n public params: baseParamsType & {\n channelId: string;\n messageId: string;\n };\n}\n\nexport class CMDP_SGETCHANNELMESSAGE_RESPONSE extends CMDP_SGETCHANNELMESSAGE implements IRESPONSE {\n public result: RESULT;\n /** found message */\n public commands: CMDC_CMSG[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * Mark messages as seen\n */\nexport class CMDP_CHANNELSEEN implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CHANNELSEEN;\n public params: baseParamsType & channelSeenParamsType;\n}\n\n/** alias, 8320 only */\nexport class CMDP_SCHANNELSEEN extends CMDP_CHANNELSEEN {\n public action: ACTION = ACTION.CMDP_SCHANNELSEEN;\n}\n\n/** alias, 8320 only */\nexport class CMDP_CHANNELSEEN_RESPONSE extends CMDP_SCHANNELSEEN implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/** alias, 8320 only */\nexport class CMDP_SCHANNELSEEN_RESPONSE extends CMDP_CHANNELSEEN_RESPONSE {\n public action: ACTION = ACTION.CMDP_SCHANNELSEEN;\n}\n\nexport enum EnumUpdateChannelPropertyName {\n ARCHIVED = \"archived\",\n REGULAR_CUSTOMER = \"regularCustomer\",\n UNANSWERED = \"unanswered\",\n PINNED = \"pinned\",\n MUTED = \"muted\",\n BANNED = \"banned\",\n BLOCKED_INBOUND = \"blockedInbound\",\n BLOCKED_OUTBOUND = \"blockedOutbound\",\n}\n\nexport class updateChannelParamsType {\n /** flag name */\n public propertyName: EnumUpdateChannelPropertyName;\n /** flag value */\n public propertyValue: EnumBooleanStringified;\n}\n\n/**\n * Set Flag on Channel\n * @deprecated use CMDP_SETCHANNELINFO\n */\nexport class CMDP_UPDATECHANNEL implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_UPDATECHANNEL;\n public params: baseParamsType & updateChannelParamsType & IKeyMaybeValue;\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_UPDATECHANNEL\n */\nexport class CMDP_UPDATECHANNEL_RESPONSE extends CMDP_UPDATECHANNEL implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n public payload?: unknown;\n}\n\n/**\n * channel summary info\n */\nexport type channelSummaryInfo = {\n [key: string]: string;\n /** your business id */\n usrId: string;\n /** usrKey of your user */\n usrKey: string;\n /** number of channel */\n channels: string;\n /** number of unseen messages */\n unseen: string;\n /** number of unused CHANNELS*/\n unusedIn: string;\n unusedOut: string;\n unusedInOut: string;\n /** number of unseen messages */\n unseenWithoutArchived: string;\n /** number of unseen channels */\n unseenChannels: string;\n /** number of unseen channels without archived*/\n unseenChannelsWithoutArchived: string;\n /** number of unanswered channels */\n unanswered: string;\n /** number of unanswered channels */\n unansweredWithoutArchived: string;\n /** last time of incoming message */\n lastTimeIn: string;\n /** last time of outgoing message */\n lastTimeOut: string;\n /** number of archived channels */\n archived: string;\n /** number of advertised channels */\n advertised: string;\n /** number of regular channels */\n regular: string;\n /** number of pinned channels */\n pinned: string;\n /** number of muted channels */\n muted: string;\n /** number of banned channels */\n banned: string;\n /** number of vip channels */\n vip: string;\n /** number of online channels */\n online: string;\n /** number of active channels */\n active: string;\n /** number of follower*/\n followMe: string;\n};\n\n/**\n * channel summary\n */\nexport class CMDC_CHANNELSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CHANNELSSUMMARY;\n public params: channelSummaryInfo;\n}\n\n/**\n * Query the summary info about all channels\n */\nexport class CMDP_CHANNELSSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CHANNELSSUMMARY;\n public params: baseParamsType & usrKeyType;\n}\n\n/**\n * Response for CMDP_CHANNELSSUMMARY\n */\nexport class CMDP_CHANNELSSUMMARY_RESPONSE extends CMDP_CHANNELSSUMMARY implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** the summary info */\n public values: channelSummaryInfo;\n}\n","import { EnumBooleanStringified, EnumCurrency, JSONString } from \"../@types\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { channelIdType, EnumProductId } from \"./channel\";\nimport { IB2BUserInfo, IB2BUserInfoVOne } from \"./b2b/b2buserinfo\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\n\nexport enum EnumBadge {\n MSG = \"MSG\",\n TOY = \"TOY\",\n MEDIA = \"MEDIA\",\n GIFT = \"GIFT\",\n}\n/**\n * product code\n */\nexport interface IProduct {\n productId: EnumProductId;\n}\n\nexport interface IChannelInfoBackEndPayload {\n freeChatDuration: number;\n freeMessagesCount: number;\n currency: EnumCurrency;\n messagePrice: number;\n videoChatPrice: number;\n voyeurChatPrice: number;\n singleChatPrice: number;\n singleC2CChatPrice: number;\n}\n\n/**\n * channel information and abilities\n */\nexport interface IChanelInfo extends IKeyMaybeValue {\n canBeArchived?: EnumBooleanStringified;\n canBeBanned?: EnumBooleanStringified;\n}\n\n/**\n * User channel information and abilities\n */\nexport interface IChanelInfoV extends IKeyMaybeValue {\n /** the VOne channel(user) was advertised by user, readonly*/\n advertised?: EnumBooleanStringified;\n /** json-encoded string. discount information about video chat discount, readonly */\n discount?: JSONString<any>;\n /** the user follew me (mirrored regularCustomer), readonly */\n followMe?: EnumBooleanStringified;\n /** Customer value badges */\n badges?: ComaSeparatedValues<EnumBadge>;\n /** no messages can be sent, too many messages without answer. readonly*/\n blockedOutbound?: EnumBooleanStringified;\n /** no messages can come in*/\n blockedInbound?: EnumBooleanStringified;\n}\n\n/**\n * channel note\n */\nexport default interface IChannelNote extends IKeyValue {\n firstName?: string;\n lastName?: string;\n age?: string;\n city?: string;\n regularCustomer?: string;\n notes?: string; // Live\n note?: string; // Messenger\n}\n\nexport interface ChannelInfo\n extends channelIdType,\n Partial<IProduct>,\n IChanelInfo,\n IChanelInfoV,\n Partial<IB2BUserInfoVOne>,\n IChannelNote {}\n\nexport type ChannelInfoType = channelIdType &\n IProduct &\n IChanelInfo &\n IChanelInfoV &\n (IB2BUserInfo | IB2BUserInfoVOne) &\n IChannelNote;\n\n/**\n * transport command for channel information\n */\nexport class CMDC_CHANNELINFO implements ICOMMAND {\n public action = ACTION.CMDC_CHANNELINFO;\n public params: ChannelInfoType;\n}\n\n/**\n * get channel information\n */\nexport class CMDP_GETCHANNELINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETCHANNELINFO;\n public params: baseParamsType & channelIdType;\n}\n\n/**\n * Response for CMDP_CHANNELINFO\n */\nexport class CMDP_GETCHANNELINFO_RESPONSE extends CMDP_GETCHANNELINFO implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n /** ContactInfo */\n public commands: CMDC_CHANNELINFO[];\n /** unused */\n public values: IKeyMaybeValue;\n /** the backend info for the channel */\n public payload?: IChannelInfoBackEndPayload;\n}\n\n/**\n * set channel note.\n */\nexport class CMDP_SETCHANNELINFO implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_SETCHANNELINFO;\n public params: baseParamsType & channelIdType & IChannelNote;\n /** the backend info for the channel */\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_SETCHANNELINFO\n */\nexport class CMDP_SETCHANNELINFO_RESPONSE extends CMDP_SETCHANNELINFO implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n /** the backend info for the channel */\n public payload?: unknown;\n}\n","import { ACTION, chatIdType, ComaSeparatedValues, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport {\n EnumBooleanStringified,\n EnumBooleanStringifiedExtended,\n EnumCurrency,\n EnumPlayerFormat,\n JSONString,\n} from \"../@types\";\n\nexport type clientID = { clientID: string; _iid?: string };\n\nexport enum EnumClientStatusType {\n AUDIO_UNMUTED = \"11\",\n AUDIO_MUTED = \"12\",\n STREAM_STATS = \"15\",\n PLAYER_EVENT = \"16\",\n PAGE_HIDDEN = \"20\",\n PAGE_VISIBLE = \"21\",\n PROXY_STATE_INFO = \"22\",\n MEDIA_PLAYER_EVENT = \"23\",\n WEBRTC_STATS = \"24\",\n}\n\nexport class CMDP_CSTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CSTATUS;\n public params: clientID & {\n statusCode: EnumClientStatusType;\n text: string;\n };\n}\n\nexport class CMDP_CSTATUS_RESPONSE extends CMDP_CSTATUS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport type ChargeAmount = {\n value: number;\n caption1: string;\n caption2: string;\n};\n\nexport type ChargeInfo = {\n allowed: EnumBooleanStringifiedExtended;\n currency: EnumCurrency;\n autoCharge?: string;\n amounts?: ComaSeparatedValues<string>;\n chargeAmounts?: JSONString<ChargeAmount[]>;\n additionalCurrencies?: JSONString<{\n amounts: number[];\n currency: EnumCurrency;\n }>;\n};\n\nexport class CMDP_CQUERY_CHARGE implements ICOMMAND {\n public action = ACTION.CMDP_CQUERY_CHARGE;\n public params: clientID;\n}\n\nexport class CMDP_CQUERY_CHARGE_RESPONSE extends CMDP_CQUERY_CHARGE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: ChargeInfo;\n}\n\nexport type StreamSources = {\n dataURL: string;\n streamPriority: ComaSeparatedValues<EnumPlayerFormat>;\n width?: string;\n height?: string;\n fps?: string;\n quality?: string;\n mediaH5Live?: string;\n mediaHlsMobileUrl?: string;\n mediaHlsUrl?: string;\n mediaJpegUrl?: string;\n mediaJpegWsUrl?: string;\n mediaWebRtc?: string;\n mediaVideoSdk?: string;\n mediaRtmp?: string;\n mediaRtmpUrl?: string;\n};\n\nexport class CMDP_CSTARTVIDEOPULL implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTVIDEOPULL;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTVIDEOPULL_RESPONSE extends CMDP_CSTARTVIDEOPULL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: StreamSources;\n}\n\nexport class CMDC_CSTARTVIDEOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTARTVIDEOPULL;\n public params: StreamSources;\n}\n\nexport class CMDC_CSTOPVIDEOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPVIDEOPULL;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTAUDIOPULL implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTAUDIOPULL;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTAUDIOPULL_RESPONSE extends CMDP_CSTARTAUDIOPULL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: Pick<StreamSources, \"dataURL\" | \"streamPriority\">;\n}\n\nexport class CMDC_CSTARTAUDIOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTARTAUDIOPULL;\n public params: Pick<StreamSources, \"dataURL\" | \"streamPriority\">;\n}\n\nexport class CMDC_CSTOPAUDIOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPAUDIOPULL;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTPREVIEW implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTPREVIEW;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTPREVIEW_RESPONSE extends CMDP_CSTARTPREVIEW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: StreamSources;\n}\n\nexport class CMDC_CSTOPPREVIEW implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPPREVIEW;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTVIDEOPUSH implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTVIDEOPUSH;\n public params: clientID & {\n flashclient: boolean;\n };\n}\n\nexport class CMDP_CSTARTVIDEOPUSH_RESPONSE extends CMDP_CSTARTVIDEOPUSH implements ICOMMAND {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: Pick<\n StreamSources,\n \"dataURL\" | \"width\" | \"height\" | \"mediaJpegWsUrl\" | \"streamPriority\" | \"mediaWebRtc\" | \"fps\" | \"quality\"\n >;\n}\n\nexport class CMDP_CSTOPVIDEOPUSH implements ICOMMAND {\n public action = ACTION.CMDP_CSTOPVIDEOPUSH;\n public params: clientID;\n}\n\nexport class CMDP_CSTOPVIDEOPUSH_RESPONSE extends CMDP_CSTOPVIDEOPUSH implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_CSTOPTEXT implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPTEXT;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTTEXT implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTTEXT;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTTEXT_RESPONSE extends CMDP_CSTARTTEXT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_PUBLICCHAT implements ICOMMAND {\n public action = ACTION.CMDC_PUBLICCHAT;\n public params: clientID &\n chatIdType & {\n user: JSONString<{ userName: string }>;\n event: \"entered\" | \"left\";\n };\n}\n\nexport class CMDP_CTIP implements ICOMMAND {\n public action = ACTION.CMDP_CTIP;\n public params: clientID & {\n cent: string;\n gift: ComaSeparatedValues<string>;\n currency: EnumCurrency;\n };\n}\n\nexport class CMDP_CTIP_RESPONSE extends CMDP_CTIP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_CCHARGE implements ICOMMAND {\n public action = ACTION.CMDP_CCHARGE;\n public params: clientID & {\n amount: string;\n };\n}\n\nexport class CMDP_CCHARGE_RESPONSE extends CMDP_CCHARGE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n successfully: EnumBooleanStringified;\n };\n}\n\nexport type clipSnapshot = {\n time: number;\n imgSrc: string;\n};\n\nexport class CMDC_CLIP implements ICOMMAND {\n public action = ACTION.CMDC_CLIP;\n public params: clientID & {\n chatID: string;\n clipID: string;\n name: string;\n duration: string;\n price: string;\n currency: EnumCurrency;\n snapshots: JSONString<clipSnapshot[]>;\n };\n}\n\nexport class CMDP_CGETCLIPS implements ICOMMAND {\n public action = ACTION.CMDP_CGETCLIPS;\n public params: clientID;\n}\n\nexport class CMDP_CGETCLIPS_RESPONSE extends CMDP_CGETCLIPS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CLIP[];\n public values: {\n recordedSeconds?: \"string\";\n };\n}\n\nexport class CMDP_CBUYCLIP implements ICOMMAND {\n public action = ACTION.CMDP_CBUYCLIP;\n public params: clientID & {\n clipID: string;\n };\n}\n\nexport class CMDP_CBUYCLIP_RESPONSE extends CMDP_CBUYCLIP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","/**\n * command names that CmdControl can handle\n */\n\nexport enum ACTION {\n CMDP_INIT = \"CMDP_INIT\",\n CMDP_SINIT = \"CMDP_SINIT\",\n CMDP_LOGIN = \"CMDP_LOGIN\",\n CMDP_SLOGIN = \"CMDP_SLOGIN\",\n CMDP_LOGOUT = \"CMDP_LOGOUT\",\n CMDP_SLOGOUT = \"CMDP_SLOGOUT\",\n CMDP_CLOGOUT = \"CMDP_CLOGOUT\",\n CMDC_USERINFO = \"CMDC_USERINFO\",\n CMDP_SETUSERINFO = \"CMDP_SETUSERINFO\",\n CMDP_GETUSERINFO = \"CMDP_GETUSERINFO\",\n CMDC_CONTACTNOTE = \"CMDC_CONTACTNOTE\",\n CMDP_SETCONTACTNOTE = \"CMDP_SETCONTACTNOTE\",\n CMDP_SSETCONTACTNOTE = \"CMDP_SSETCONTACTNOTE\",\n CMDP_GETCONTACTNOTE = \"CMDP_GETCONTACTNOTE\",\n CMDP_SGETCONTACTNOTE = \"CMDP_SGETCONTACTNOTE\",\n CMDC_CONTACTINFO = \"CMDC_CONTACTINFO\",\n CMDP_SETCONTACTINFO = \"CMDP_SETCONTACTINFO\",\n CMDP_SGETCONTACTINFO = \"CMDP_SGETCONTACTINFO\",\n CMDP_GETCONTACTINFO = \"CMDP_GETCONTACTINFO\",\n CMDC_CHANNELINFO = \"CMDC_CHANNELINFO\",\n CMDP_GETCHANNELINFO = \"CMDP_GETCHANNELINFO\",\n CMDP_SETCHANNELINFO = \"CMDP_SETCHANNELINFO\",\n CMDC_CHANNEL = \"CMDC_CHANNEL\",\n CMDP_NEWCHANNEL = \"CMDP_NEWCHANNEL\",\n CMDP_GETCHANNELS = \"CMDP_GETCHANNELS\",\n CMDP_SGETCHANNELS = \"CMDP_SGETCHANNELS\",\n CMDP_GETCHANNEL = \"CMDP_GETCHANNEL\",\n CMDP_SGETCHANNEL = \"CMDP_SGETCHANNEL\",\n CMDP_CHANNELSEEN = \"CMDP_CHANNELSEEN\",\n CMDP_SCHANNELSEEN = \"CMDP_SCHANNELSEEN\",\n CMDP_UPDATECHANNEL = \"CMDP_UPDATECHANNEL\",\n CMDC_CHANNELSSUMMARY = \"CMDC_CHANNELSSUMMARY\",\n CMDP_CHANNELSSUMMARY = \"CMDP_CHANNELSSUMMARY\",\n CMDP_SUPLOADPIC = \"CMDP_SUPLOADPIC\",\n CMDC_CMSG = \"CMDC_CMSG\",\n CMDP_GETHISTORY = \"CMDP_GETHISTORY\",\n CMDP_MSG = \"CMDP_MSG\",\n CMDP_MSGDELETE = \"CMDP_MSGDELETE\",\n CMDC_ONLINESTATE = \"CMDC_ONLINESTATE\",\n CMDP_GETONLINESTATE = \"CMDP_GETONLINESTATE\",\n CMDP_GETONLINESTATES = \"CMDP_GETONLINESTATES\",\n CMDC_VALUE = \"CMDC_VALUE\",\n\n /* LIVE, VideoSession commandsv*/\n CMDP_SET_DISCOUNT = \"CMDP_SET_DISCOUNT\",\n CMDP_SQUERY_DISCOUNT = \"CMDP_SQUERY_DISCOUNT\",\n CMDP_QUERYUSER = \"CMDP_QUERYUSER\",\n CMDC_QUERYANSWERED = \"CMDC_QUERYANSWERED\",\n CMDP_SQUERY_FORMAT = \"CMDP_SQUERY_FORMAT\",\n CMDP_STOPLOOPBACK9 = \"CMDP_STOPLOOPBACK9\",\n CMDP_STARTLOOPBACK9 = \"CMDP_STARTLOOPBACK9\",\n CMDP_STOPBANDWIDTHTEST = \"CMDP_STOPBANDWIDTHTEST\",\n CMDP_STARTBANDWIDTHTEST = \"CMDP_STARTBANDWIDTHTEST\",\n CMDP_STOP_STREAM_PREVIEW = \"CMDP_STOP_STREAM_PREVIEW\",\n CMDP_START_STREAM_PREVIEW = \"CMDP_START_STREAM_PREVIEW\",\n CMDP_UPDATE = \"CMDP_UPDATE\",\n CMDP_SGETCHATS = \"CMDP_SGETCHATS\",\n CMDP_FSK16 = \"CMDP_FSK16\",\n CMDP_KICK = \"CMDP_KICK\",\n CMDP_TRACERT_REPLY = \"CMDP_TRACERT_REPLY\",\n CMDP_STOPSEND = \"CMDP_STOPSEND\",\n CMDP_STARTSEND = \"CMDP_STARTSEND\",\n /**\n * @deprecated/obsolete\n */\n CMDP_SERVICE0900 = \"CMDP_SERVICE0900\",\n /*special heartbeat command*/\n CMDP_NOOP = \"CMDP_NOOP\",\n CMDP_QUERYBACKEND = \"CMDP_QUERYBACKEND\",\n CMDP_UNDEFINED = \"CMDP_UNDEFINED\",\n /*VideoChat server commands*/\n CMDC_CINIT = \"CMDC_CINIT\",\n CMDC_FEEDBACK = \"CMDC_FEEDBACK\",\n CMDC_DSRELOAD = \"CMDC_DSRELOAD\",\n CMDC_UPDATE = \"CMDC_UPDATE\",\n CMDC_CEXIT = \"CMDC_CEXIT\",\n CMDC_CSTARTSTREAMPUSH = \"CMDC_CSTARTSTREAMPUSH\",\n CMDC_CSTOPVIDEOPUSH = \"CMDC_CSTOPVIDEOPUSH\",\n CMDC_QUERYUSER = \"CMDC_QUERYUSER\",\n CMDC_CQUERYUSER = \"CMDC_CQUERYUSER\",\n CMDC_UPDATE_CHAT = \"CMDC_UPDATE_CHAT\",\n CMDC_BACKENDPAYLOAD = \"CMDC_BACKENDPAYLOAD\",\n CMDP_BACKENDPAYLOAD = \"CMDP_BACKENDPAYLOAD\",\n CMDP_TOYSTATE = \"CMDP_TOYSTATE\",\n CMDP_TOYACTION = \"CMDP_TOYACTION\",\n CMDC_TOYACTION = \"CMDC_TOYACTION\",\n CMDC_CSTREAMRESTART = \"CMDC_CSTREAMRESTART\",\n CMDP_SUPLOADMEDIA = \"CMDP_SUPLOADMEDIA\",\n CMDP_CQUERY_CHARGE = \"CMDP_CQUERY_CHARGE\",\n CMDP_CSTARTVIDEOPULL = \"CMDP_CSTARTVIDEOPULL\",\n CMDP_CSTARTAUDIOPULL = \"CMDP_CSTARTAUDIOPULL\",\n CMDP_CSTARTPREVIEW = \"CMDP_CSTARTPREVIEW\",\n CMDP_CSTARTTEXT = \"CMDP_CSTARTTEXT\",\n CMDP_CQUERY_SINGLE = \"CMDP_CQUERY_SINGLE\",\n CMDP_CQUERYUSER = \"CMDP_CQUERYUSER\",\n CMDC_CSTOPVIDEOPULL = \"CMDC_CSTOPVIDEOPULL\",\n CMDC_CSTOPAUDIOPULL = \"CMDC_CSTOPAUDIOPULL\",\n CMDC_CSTOPPREVIEW = \"CMDC_CSTOPPREVIEW\",\n CMDC_CSTOPTEXT = \"CMDC_CSTOPTEXT\",\n CMDC_PUBLICCHAT = \"CMDC_PUBLICCHAT\",\n CMDP_CSTARTVIDEOPUSH = \"CMDP_CSTARTVIDEOPUSH\",\n CMDP_CSTOPVIDEOPUSH = \"CMDP_CSTOPVIDEOPUSH\",\n CMDP_CTIP = \"CMDP_CTIP\",\n CMDP_CMSG = \"CMDP_CMSG\",\n CMDP_CCHARGE = \"CMDP_CCHARGE\",\n /** Commands used on Live but not mentioned here **/\n CMDC_CSTOPAUDIOPUSH = \"CMDC_CSTOPAUDIOPUSH\",\n CMDC_CSTARTAUDIOPUSH = \"CMDC_CSTARTAUDIOPUSH\",\n CMDP_CSTOPTEXT = \"CMDP_CSTOPTEXT\",\n CMDC_CSTARTVIDEOPULL = \"CMDC_CSTARTVIDEOPULL\",\n CMDC_CSTARTAUDIOPULL = \"CMDC_CSTARTAUDIOPULL\",\n CMDC_CSTARTVOYEUR = \"CMDC_CSTARTVOYEUR\",\n CMDC_CSTOPVOYEUR = \"CMDC_CSTOPVOYEUR\",\n CMDP_SUPDATE = \"CMDP_SUPDATE\",\n CMDC_CSHOWADMIN = \"CMDC_CSHOWADMIN\",\n CMDC_CSTOPSTREAMPUSH = \"CMDC_CSTOPSTREAMPUSH\",\n CMDP_SSTATUS = \"CMDP_SSTATUS\",\n CMDC_CSTARTTEXT = \"CMDC_CSTARTTEXT\",\n CMDC_CSTARTVIDEOPUSH = \"CMDC_CSTARTVIDEOPUSH\",\n CMDC_SLOGOUT = \"CMDC_SLOGOUT\",\n CMDP_SDEVICESTATUS = \"CMDP_SDEVICESTATUS\",\n CMDC_STREAMSTATE = \"CMDC_STREAMSTATE\",\n CMDP_GETONLINESUMMARY = \"CMDP_GETONLINESUMMARY\",\n CMDP_SMEDIAGETPRICES = \"CMDP_SMEDIAGETPRICES\",\n CMDP_SMEDIAPURCHASE = \"CMDP_SMEDIAPURCHASE\",\n CMDP_OPEN_LOBBY = \"CMDP_OPEN_LOBBY\",\n CMDP_CLOSE_LOBBY = \"CMDP_CLOSE_LOBBY\",\n CMDP_SMEDIAOFFERCREATE = \"CMDP_SMEDIAOFFERCREATE\",\n CMDP_SINFORMMEDIAPURCHASED = \"CMDP_SINFORMMEDIAPURCHASED\",\n CMDP_SETEXPOTOKEN = \"CMDP_SETEXPOTOKEN\",\n CMDP_SGETCHATHISTORY = \"CMDP_SGETCHATHISTORY\",\n CMDP_SETSETTINGS = \"CMDP_SETSETTINGS\",\n CMDP_GETSETTINGS = \"CMDP_GETSETTINGS\",\n CMDC_MEDIAPURCHASED = \"CMDC_MEDIAPURCHASED\",\n CMDP_SGETMEDIAINFO = \"CMDP_SGETMEDIAINFO\",\n CMDP_SIGNUP = \"CMDP_SIGNUP\",\n CMDP_RESETPASSWORD = \"CMDP_RESETPASSWORD\",\n CMDP_SOPENMEDIAOFFER = \"CMDP_SOPENMEDIAOFFER\",\n CMDP_SCLOSEMEDIAOFFER = \"CMDP_SCLOSEMEDIAOFFER\",\n CMDP_SSTARTTESTVIDEOCHAT = \"CMDP_SSTARTTESTVIDEOCHAT\",\n CMDP_SCHECKUPLOADEDMEDIA = \"CMDP_SCHECKUPLOADEDMEDIA\",\n CMDP_SGETUPLOADEDMEDIA = \"CMDP_SGETUPLOADEDMEDIA\",\n CMDC_CMEDIA = \"CMDC_CMEDIA\",\n CMDP_SGETMSETTINGS = \"CMDP_SGETMSETTINGS\",\n CMDP_SSETMSETTING = \"CMDP_SSETMSETTING\",\n CMDC_MSETTINGS = \"CMDC_MSETTINGS\",\n CMDP_SDELETE_USER = \"CMDP_SDELETE_USER\",\n CMDC_GROUP = \"CMDC_GROUP\",\n CMDC_CHANNELGROUP = \"CMDC_CHANNELGROUP\",\n CMDP_SGETGROUPS = \"CMDP_SGETGROUPS\",\n CMDP_SADDGROUP = \"CMDP_SADDGROUP\",\n CMDP_SUPDATEGROUP = \"CMDP_SUPDATEGROUP\",\n CMDP_SGETGROUPCHANNELS = \"CMDP_SGETGROUPCHANNELS\",\n CMDP_SGETCHANNELGROUPS = \"CMDP_SGETCHANNELGROUPS\",\n CMDP_SADDCHANNELTOGROUP = \"CMDP_SADDCHANNELTOGROUP\",\n CMDP_SDELCHANNELFROMGROUP = \"CMDP_SDELCHANNELFROMGROUP\",\n CMDC_CTICKETSHOW = \"CMDC_CTICKETSHOW\",\n CMDP_SGETTICKETSHOWS = \"CMDP_SGETTICKETSHOWS\",\n CMDP_SUPSERTTICKETSHOW = \"CMDP_SUPSERTTICKETSHOW\",\n CMDP_SDELETETICKETSHOW = \"CMDP_SDELETETICKETSHOW\",\n CMDP_SSTARTTICKETSHOW = \"CMDP_SSTARTTICKETSHOW\",\n CMDP_SSTOPTICKETSHOW = \"CMDP_SSTOPTICKETSHOW\",\n CMDP_SGETCHATSSUMMARY = \"CMDP_SGETCHATSSUMMARY\",\n CMDP_GETLIVEHISTORY = \"CMDP_GETLIVEHISTORY\",\n CMDC_LIVESESSION = \"CMDC_LIVESESSION\",\n CMDC_LIVECHAT = \"CMDC_LIVECHAT\",\n CMDC_CHANNELMEDIASUMMARY = \"CMDC_CHANNELMEDIASUMMARY\",\n CMDP_SGETCHANNELDMEDIASUMMARY = \"CMDP_SGETCHANNELDMEDIASUMMARY\",\n CMDP_SGETSEDCARDPICTURES = \"CMDP_SGETSEDCARDPICTURES\",\n CMDC_SEDCARDPICTURE = \"CMDC_SEDCARDPICTURE\",\n CMDP_CSTATUS = \"CMDP_CSTATUS\",\n CMDP_CINIT = \"CMDP_CINIT\",\n CMDP_SMSGREACTION = \"CMDP_SMSGREACTION\",\n CMDC_SSTATUS = \"CMDC_SSTATUS\",\n CMDP_SGETMESSAGEHISTORY = \"CMDP_SGETMESSAGEHISTORY\",\n CMDP_SMSGESTIMATE = \"CMDP_SMSGESTIMATE\",\n CMDP_SETMOBILETOKEN = \"CMDP_SETMOBILETOKEN\",\n CMDP_STARTMOBILEVIDEOCALL = \"CMDP_STARTMOBILEVIDEOCALL\",\n CMDC_STARTMOBILEVIDEOCALL = \"CMDC_STARTMOBILEVIDEOCALL\",\n CMDP_UPDATEMOBILEVIDEOCALL = \"CMDP_UPDATEMOBILEVIDEOCALL\",\n CMDC_UPDATEMOBILEVIDEOCALL = \"CMDC_UPDATEMOBILEVIDEOCALL\",\n CMDC_STARTWEBSIP = \"CMDC_STARTWEBSIP\",\n CMDC_STOPWEBSIP = \"CMDC_STOPWEBSIP\",\n CMDP_WSA_ADDUPDATEUSER = \"CMDP_WSA_ADDUPDATEUSER\",\n CMDP_WSA_DELETEUSER = \"CMDP_WSA_DELETEUSER\",\n CMDP_WSA_GET_USERS = \"CMDP_WSA_GET_USERS\",\n CMDC_WSA_USER = \"CMDC_WSA_USER\",\n CMDP_WSA_GET_CLIENTS = \"CMDP_WSA_GET_CLIENTS\",\n CMDC_WSA_CLIENT = \"CMDC_WSA_CLIENT\",\n CMDP_WSA_HEARTBEAT = \"CMDP_WSA_HEARTBEAT\",\n CMDP_DEEPL = \"CMDP_DEEPL\",\n CMDP_SGETSTREAMPARAMS = \"CMDP_SGETSTREAMPARAMS\",\n CMDP_LOGOUTOTHERMOBILE = \"CMDP_LOGOUTOTHERMOBILE\",\n CMDC_MVCSCHEDULE = \"CMDC_MVCSCHEDULE\",\n CMDP_SGETMVCSCHEDULE = \"CMDP_SGETMVCSCHEDULE\",\n CMDP_SUPSERTMVCSCHEDULE = \"CMDP_SUPSERTMVCSCHEDULE\",\n CMDP_SUPSERTMVCSCHEDULES = \"CMDP_SUPSERTMVCSCHEDULES\",\n CMDP_SDELETEMVCSCHEDULE = \"CMDP_SDELETEMVCSCHEDULE\",\n CMDP_SGETUPLOADEDMEDIA2 = \"CMDP_SGETUPLOADEDMEDIA2\",\n CMDP_SSETMSETTINGS = \"CMDP_SSETMSETTINGS\",\n CMDP_GETTOYQRCODE = \"CMDP_GETTOYQRCODE\",\n CMDP_GETTOYLIST = \"CMDP_GETTOYLIST\",\n CMDP_TOYCOMMAND = \"CMDP_TOYCOMMAND\",\n CMDC_TOYCOMMAND = \"CMDC_TOYCOMMAND\",\n CMDC_TOYLIST = \"CMDC_TOYLIST\",\n CMDC_CLIP = \"CMDC_CLIP\",\n CMDP_CGETCLIPS = \"CMDP_CGETCLIPS\",\n CMDP_CBUYCLIP = \"CMDP_CBUYCLIP\",\n CMDC_MSGTEMPLATE = \"CMDC_MSGTEMPLATE\",\n CMDP_SGETMSGTEMPLATES = \"CMDP_SGETMSGTEMPLATES\",\n CMDP_SUPSERTMSGTEMPLATE = \"CMDP_SUPSERTMSGTEMPLATE\",\n CMDP_SDELETEMSGTEMPLATE = \"CMDP_SDELETEMSGTEMPLATE\",\n CMDC_TPLCATEGORY = \"CMDC_TPLCATEGORY\",\n CMDP_SGETTPLCATEGORIES = \"CMDP_SGETTPLCATEGORIES\",\n CMDP_SUPSERTTPLCATEGORY = \"CMDP_SUPSERTTPLCATEGORY\",\n CMDP_SDELETETPLCATEGORY = \"CMDP_SDELETETPLCATEGORY\",\n CMDP_SGETCHANNELMESSAGE = \"CMDP_SGETCHANNELMESSAGE\",\n CMDP_SGETMEDIAHISTORY = \"CMDP_SGETMEDIAHISTORY\",\n CMDP_SGETMEDIAHISTORYSUMMARY = \"CMDP_SGETMEDIAHISTORYSUMMARY\",\n}\n","import { EnumBooleanStringified } from \"../../@types\";\n\nexport enum SupportedLanguage {\n DE = \"de\",\n EN = \"en\",\n ES = \"es\",\n}\n\nexport enum CmdClientAgent {\n WEB = \"we\", // javascript browser app\n MC = \"mc\",\n}\n\n/** the format, use 'json', 'plain' is default, but depricated */\nexport enum EnumFormatValues {\n JSON = \"json\",\n PLAIN = \"plain\",\n}\nexport type deviceIdType = {\n /* device id*/\n deviceId?: string;\n};\n\nexport type baseParamsType = {\n /** your app instance id, internal */\n _iid?: string;\n /** unique command id, internal */\n _uniq?: string;\n /** your app type */\n agent?: CmdClientAgent;\n /** your sessionID from CMDP_LOGIN_RESPONSE, Ignored in CMDP_LOGIN, CMDP_INIT */\n sessionID?: string;\n /** the format, use 'json', 'plain' is default, but deprecated */\n format?: EnumFormatValues;\n /** short json, use '1' , default is '0' and force delivery of plain-text non-json format response */\n strip?: EnumBooleanStringified;\n /** version info */\n version?: string;\n /** language, CmdControl has only de and en implemented */\n language?: SupportedLanguage;\n /** webtoken for call into Backend\n * https://jwt.io/\n * \\{\n * usrId - your content partner usrId\n * usrKey - your customer key\n * \\}\n */\n webtoken?: string; // optional\n} & deviceIdType;\n","import { JSONString } from \"../../@types/json-stringified\";\nimport { ComaSeparatedValues } from \"../sessionstate\";\nimport { ResultCode } from \"./resultcode\";\nimport { ACTION } from \"./action\";\n\n/**\n * @remarks cmd-control socket by default returns only string values\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type StringBasedType = ComaSeparatedValues<string> | JSONString<Object> | string;\n\n/**\n * Base dictionary\\<strting,string\\> object used for params and values\n * @remarks might not have some of the values, e.g. value might be undefined\n */\nexport interface IKeyMaybeValue {\n [key: string]: StringBasedType | undefined;\n}\n\n/**\n * @remarks always has values\n */\nexport interface IKeyValue {\n [key: string]: StringBasedType;\n}\n\n/**\n * Base command interface\n */\nexport interface ICOMMAND {\n /**\n * action is the name of command\n */\n action: ACTION;\n /**\n * command parameters\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any;\n}\n\n/**\n * result object is the status of CMDP_XXXX_RESPONSE\n */\nexport class RESULT {\n public code: ResultCode;\n /**\n * infostring string to client\n */\n public reason: string;\n}\n\n/**\n * Response from CmdControl to client\n */\nexport interface IRESPONSE extends ICOMMAND {\n /**\n * Response status\n */\n result: RESULT;\n /**\n * command array to client\n */\n commands: ICOMMAND[];\n /**\n * response values\n */\n values: IKeyMaybeValue;\n}\n","/**\n * known values for RESULT.code\n *\n * for B2B : Use for your custom ERROR_CODE the range 6001-6999\n */\nexport enum ResultCode {\n OK = 2000, // successuful\n WRONG_USER_NAME_OR_PASSWORD = 4002,\n ACCESS_DENIED = 4003,\n SESSION_NOT_FOUND = 4004,\n LOGIN_FAILED = 4006,\n LOGIN_DOUBLE = 4007,\n SESSION_ERROR = 4008,\n PROFIL_NOT_COMPLETE = 4009,\n TOO_MANY_SESSIONS = 4010,\n TOO_MANY_SESSIONS2 = 4011,\n TOO_MANY_SESSIONS3 = 4012,\n VERSION_NOT_SUPPORTED = 4013,\n MAIL_NOT_VERYFIED = 4014,\n AUDIO_NOT_AVAILABLE = 4015,\n SINGLE_NOT_STARTED = 4016,\n GTC_NOT_CONFIRMED = 4017,\n CHAT_NOT_CLOSED = 4020,\n CHAT_NOT_FOUND = 4104,\n NOT_ENOUGH_MONEY = 4141,\n CANT_UPDATE_CHAT = 4150,\n CANT_UPDATE_CHAT2 = 4151,\n INVALID_PARAMETER = 5001,\n FEATURE_NOT_AVAILABLE = 5002,\n UNEXPECTED = 5004,\n NOT_IMPLEMENTED = 5005,\n NO_CONNECTION = 5096,\n SCRIPT_ERROR = 5097,\n TIMEOUT = 5098,\n NETWORK_ERROR = 5099,\n /** B2B error-codes start with 6000 */\n B2B_INTERFACE_ERROR = 6000,\n UNKNOWN_ERROR = 6001,\n INVALID_WEB_TOKEN = 6002,\n NO_CREDIT_VIDEOCHAT = 6106,\n ACCESS_DENIED_BAN = 6201,\n MODEL_IS_OFFLINE = 6403,\n SOFT_CHAT = 6601,\n PREVIEW_LIMIT_EXCEEDED = 6401,\n MODEL_IS_IN_PRIVATE_CHAT = 6906,\n MISSING_SHOW_TICKET = 6010,\n SHOW_NOT_STARTED = 6011,\n}\n","import { ACTION } from \"./command/action\";\nimport { ICOMMAND } from \"./command/icommand\";\n\n/**\n * internal commando used for maintenance of CmdControl-Server-Farm\n */\nexport class CMDC_DSRELOAD implements ICOMMAND {\n public action = ACTION.CMDC_DSRELOAD;\n public params: {\n id: string;\n host: string;\n PlatformUrl: string;\n wsshost: string;\n wssport: string;\n wsspath: string;\n };\n}\n","import { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { channelIdOrChatId } from \"./channel\";\nimport IChannelNote from \"./channelinfo\";\n\n/**\n * Transport for Contact note\n */\nexport class CMDC_CONTACTNOTE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CONTACTNOTE;\n public params: channelIdOrChatId & IChannelNote;\n}\n\n/**\n * Set Contact note\n */\nexport class CMDP_SETCONTACTNOTE implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_SETCONTACTNOTE;\n public params: baseParamsType & channelIdOrChatId & IChannelNote;\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_SETCONTACTNOTE\n */\nexport class CMDP_SETCONTACTNOTE_RESPONSE extends CMDP_SETCONTACTNOTE implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * Get Contact Note\n */\nexport class CMDP_GETCONTACTNOTE implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_GETCONTACTNOTE;\n // channelId may be CSV\n public params: baseParamsType & channelIdOrChatId;\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_GETCONTACTNOTE\n */\nexport class CMDP_GETCONTACTNOTE_RESPONSE extends CMDP_GETCONTACTNOTE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CONTACTNOTE[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SSETCONTACTNOTE extends CMDP_SETCONTACTNOTE {\n public action: ACTION = ACTION.CMDP_SSETCONTACTNOTE;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SSETCONTACTNOTE_RESPONSE extends CMDP_SETCONTACTNOTE_RESPONSE {\n public action: ACTION = ACTION.CMDP_SSETCONTACTNOTE;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SGETCONTACTNOTE extends CMDP_GETCONTACTNOTE {\n public action: ACTION = ACTION.CMDP_SGETCONTACTNOTE;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SGETCONTACTNOTE_RESPONSE extends CMDP_GETCONTACTNOTE_RESPONSE {\n public action: ACTION = ACTION.CMDP_SGETCONTACTNOTE;\n}\n","export enum ExitCode {\n /**\n * @description Client logged out. Chat gets closed before announced(unused)\n */\n CLIENTCEXIT = 100,\n /**\n * @description Client clicked logout button\n */\n CLIENTLOGOUT = 101,\n /**\n * @description Client forced exit (unused)\n */\n CLIENTDESTRUCT = 102,\n /**\n * @description ExitWindow or JS onbeforeunload event\n */\n CLIENTEXITWIN = 103,\n /**\n * @description Client wishes to upgrade chat (unused)\n */\n CLIENTUPGRADE = 104,\n /**\n * @description Client exits with an internal error\n */\n CLIENTERROR = 105,\n /**\n * @description Client exits to charge account.(unused)\n */\n CLIENTCHARGE = 106,\n /**\n * @description Used by old client when socket to server is closed (browser window closed)\n */\n CLIENTDISCONNECT = 107,\n /**\n * @description Client gets timeout when receiving video\n */\n TIMEOUT_ON_CLIENT_SIDE = 108,\n /**\n * @description Unknown code, must be checked manually\n */\n CLIENT_ERROR = 109,\n HOSTKICK = 201,\n HOSTSTOPSEND = 202,\n HOSTLOGOUT = 203,\n HOSTRELOGIN = 204,\n HOSTSENDFAIL = 205,\n HOSTDEVICEFAIL = 206,\n HOSTSTILLPICTURE = 207,\n HOSTCPUOVERLOAD = 208,\n HOSTMICRONOPEGEL = 209,\n HOSTSTREAMERROR = 210,\n HOSTSESSIONEXPIRED = 211,\n SERVER_ADMIN_OFF = 212,\n HOSTSTREAMRESTART = 213,\n HOSTSTREAMEXPIRED = 214,\n HOSTWAITSTREAMTIMEOUT = 215,\n HOSTSTREAMSTOP = 216,\n HOSTSTOPUNKNOWN = 217,\n ADMINKICK = 301,\n AVS_ACK_OK = 302,\n AVS_ACK_DENIED = 303,\n AVS_DENIED_NOPICTURE = 304,\n AVS_CANCELED_BY_GUEST = 305,\n AVS_FAILED = 306,\n PREVIEW_LIMIT_HOST = 401,\n PREVIEW_LIMIT_HOUR = 402,\n PREVIEW_OFFLINE = 403,\n PREVIEW_SINGLE = 404,\n PREVIEW_FSK_DENIED = 405,\n PREVIEW_ACCESS_DENIED = 406,\n PREVIEW_DISABLED = 407,\n VIDEOTIMELIMIT = 501,\n TEXTTIMELIMIT = 502,\n FREETIMELIMIT = 503,\n FSKDENIED = 601,\n AVSCONVERSION = 602,\n PREPAID_TIMEOUT = 901,\n CLIENTNEWCHAT = 902,\n VOICECALLHANGUP = 903,\n VOICECALLNEWCHAT = 904,\n GWKILL = 905,\n HOSTSINGLE = 906,\n VIDEOFAIL_HOST_PUSH = 907,\n HOSTLOBBY = 908,\n VIDEOFAIL_GUEST_PULL = 910,\n GWKILLSTOPMODE = 911,\n GWKILLCONVERT = 912,\n KILL_UNPAYED = 913,\n DDOS_DETECTED = 914,\n CLIENTLOCK = 920,\n HOSTLOCK = 921,\n TIMEOUT_ON_SERVER_SIDE = 990,\n PARTNERKICK = 991,\n PHPGENERAL = 995,\n VIDEOTIMEOUT_HOST = 996,\n VIDEOTIMEOUT_GUEST = 997,\n Ununsed = 998,\n SERVERDOWN = 999,\n}\n","import { ComaSeparatedValues } from \"./sessionstate\";\nimport { ICOMMAND } from \"./command/icommand\";\nimport { ACTION } from \"./command/action\";\n\nenum EnumFeedbackKey {\n HARASSMENT_THREATS = \"harassment-threats\",\n UNAUTHORIZED_CONTENT = \"unauthorized-content\",\n HACKED = \"hacked\",\n TECH = \"tech\",\n OTHER = \"other\",\n}\n\nexport type Feedback = {\n login: string;\n name: string;\n email: string;\n product?: string;\n version?: string;\n shortDescription?: string;\n longDescription?: string;\n channelID?: string;\n reasons?: ComaSeparatedValues<EnumFeedbackKey> | string;\n details?: string;\n};\n\nexport class CMDC_FEEDBACK implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_FEEDBACK;\n public params: {\n sessionID?: string;\n clientID?: string;\n uploadFeedbackUrl?: string;\n };\n}\n","import {\n EnumBooleanStringifiedExtended,\n EnumCurrency,\n EnumPlayerFormat,\n ICurrencyDescription,\n IEmoji,\n IReaction,\n JSONString,\n} from \"../@types\";\nimport { IGift } from \"./gifts\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType, SupportedLanguage } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { SChatInfo } from \"./live/livechat\";\nimport { ChatState } from \"./chatstate\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\nimport { clientID } from \"./clivechat\";\nimport { EnumInitDataFormat } from \"../cmd-connection\";\n\nexport interface IInitBackendPayload {\n giftBundles: any;\n giftCategories: any;\n gifts: any;\n emoticons: any;\n currency: any;\n toyControls: any;\n icons: any;\n}\n\nexport type UploadMediaTus = {\n authHeader: string;\n /**\n * @deprecated/obsolete\n */\n chunkSize?: number;\n chunksNumber: number;\n endPoint: string;\n maxChunkSize: number;\n minChunkSize: number;\n parallelUploads: number;\n};\n\n/**\n * the initial command\n */\nexport class CMDP_INIT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_INIT;\n public params: baseParamsType & {\n login?: string;\n initData?: EnumInitDataFormat;\n };\n}\n\n/**\n * Response for CMDP_INIT\n */\nexport class CMDP_INIT_RESPONSE extends CMDP_INIT implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n /** minimal version info */\n versionRequired?: string;\n /** version last */\n versionLast?: string;\n /** update url */\n versionUpdateUrl?: string;\n /** where to send message media */\n uploadMediaUrl?: string;\n speedTestUrl?: string;\n gtcUrl?: string;\n uploadFeedbackUrl?: string;\n translations?: JSONString<InitialTranslations>;\n gifts?: JSONString<IGift[]>;\n emojiList?: JSONString<IEmoji[]>;\n currency?: JSONString<InitialCurrencies>;\n currencyFormat?: JSONString<InitialCurrencies>;\n vxc_factor?: string;\n reactions?: JSONString<IReaction[]>;\n passwordResetUrl?: string;\n registrationUrl?: string;\n };\n /** backendpayload */\n public payload?: IInitBackendPayload;\n}\n\nexport type InitialTranslations = {\n [key in SupportedLanguage]?: IKeyValue;\n};\n\nexport type InitialCurrencies = {\n [key in EnumCurrency]?: ICurrencyDescription;\n};\n\n/**\n * the initial command, 8320 only\n */\nexport class CMDP_SINIT extends CMDP_INIT {\n public action: ACTION = ACTION.CMDP_SINIT;\n}\n\n/** Response for CMDP_SINIT, 8320 only */\nexport class CMDP_SINIT_RESPONSE extends CMDP_INIT_RESPONSE {\n public action: ACTION = ACTION.CMDP_SINIT;\n}\n\n/**\n * the initial chat command\n */\nexport class CMDP_CINIT implements ICOMMAND {\n public action = ACTION.CMDP_CINIT;\n public params: clientID & {\n version: string;\n initData: EnumInitDataFormat;\n messengerProperties: string;\n };\n}\n\n/**\n * Response for CMDP_CINIT\n */\nexport class CMDP_CINIT_RESPONSE extends CMDP_CINIT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: Omit<SChatInfo & ChatState, \"chatID\" | \"type\" | \"startTime\"> & {\n chatId: string;\n hostId: string;\n hostlogin: string;\n introVideoHls?: string;\n rechargeWarningThres?: string;\n rollbarKey?: string;\n server?: string;\n singlePrice?: string;\n timeStamp: string;\n fsk16?: EnumBooleanStringifiedExtended;\n /** where to send message media */\n uploadMediaUrl?: string;\n uploadFeedbackUrl?: string;\n formatsIncluded?: ComaSeparatedValues<EnumPlayerFormat>;\n formatsExcluded?: ComaSeparatedValues<EnumPlayerFormat>;\n translations?: JSONString<InitialTranslations>;\n emojiList?: JSONString<IEmoji[]>;\n currency: EnumCurrency;\n currencyFormat?: JSONString<InitialCurrencies>;\n reactions?: JSONString<IReaction[]>;\n publicUsers?: JSONString<{ userName: string }[]>;\n vxc_factor?: string;\n } & IKeyMaybeValue;\n}\n","import { EnumBooleanStringified, JSONString } from \"../../@types\";\nimport { channelIdType, CMDC_CHANNEL, EnumChannelFilterValues } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\nexport type groupIdType = {\n /** id */\n groupId: string;\n};\n\nexport type groupDataType = {\n key?: \"ticketShow\" | string;\n auto_generated?: boolean;\n};\n\nexport type groupType = groupIdType & {\n /** display name */\n groupName: string;\n /** create datetime */\n groupCreated: string;\n /** channel counter */\n groupChannels: string;\n /** status */\n groupActive?: \"0\" | \"1\" | string;\n /** JSON encoded GroupDataType*/\n groupData?: JSONString<groupDataType>;\n};\n\nexport class CMDC_GROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_GROUP;\n public params: groupType;\n}\n\nexport class CMDC_CHANNELGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CHANNELGROUP;\n public params: groupIdType &\n channelIdType & {\n /** inform deleted channel from group */\n isDeleted?: EnumBooleanStringified;\n };\n}\n\nexport class CMDP_SGETGROUPS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETGROUPS;\n public params: baseParamsType & { filterActive?: EnumChannelFilterValues | string };\n}\n\nexport class CMDP_SGETGROUPS_RESPONSE extends CMDP_SGETGROUPS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_GROUP[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SADDGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SADDGROUP;\n public params: baseParamsType & { groupName: string };\n}\n\nexport class CMDP_SADDGROUP_RESPONSE extends CMDP_SADDGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_GROUP[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPDATEGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPDATEGROUP;\n public params: baseParamsType &\n groupIdType & {\n /** set for change the display name */\n groupName?: string;\n /**set 0 to deactivate group, 1 to activate */\n groupActive?: \"0\" | \"1\" | string;\n };\n}\n\nexport class CMDP_SUPDATEGROUP_RESPONSE extends CMDP_SUPDATEGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETGROUPCHANNELS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETGROUPCHANNELS;\n public params: baseParamsType & groupIdType;\n}\n\nexport class CMDP_SGETGROUPCHANNELS_RESPONSE extends CMDP_SGETGROUPCHANNELS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CHANNEL[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCHANNELGROUPS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHANNELGROUPS;\n public params: baseParamsType & (channelIdType | groupIdType);\n}\n\nexport class CMDP_SGETCHANNELGROUPS_RESPONSE extends CMDP_SGETCHANNELGROUPS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CHANNELGROUP[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SADDCHANNELTOGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SADDCHANNELTOGROUP;\n public params: baseParamsType & channelIdType & groupIdType;\n}\n\nexport class CMDP_SADDCHANNELTOGROUP_RESPONSE extends CMDP_SADDCHANNELTOGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELCHANNELFROMGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDELCHANNELFROMGROUP;\n public params: baseParamsType & channelIdType & groupIdType;\n}\n\nexport class CMDP_SDELCHANNELFROMGROUP_RESPONSE extends CMDP_SDELCHANNELFROMGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType } from \"../command/baseparams\";\n\n/**\n * update media device infos\n */\nexport class CMDP_SDEVICESTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDEVICESTATUS;\n public params: baseParamsType & {\n camName?: string;\n width?: number;\n height?: number;\n fps?: number;\n microName?: string;\n muted?: boolean;\n volume?: number;\n channels?: number;\n sampleRate?: number;\n sampleSize?: number;\n bandWidth?: number;\n cpuLoad?: number;\n };\n}\n\n/**\n * reponse.\n */\nexport class CMDP_SDEVICESTATUS_RESPONSE extends CMDP_SDEVICESTATUS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { chatIdType } from \"../chatstate\";\nimport { IMayHaveChannelId } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\nimport { EnumBooleanDigitized, EnumBooleanStringified, EnumBooleanStringifiedExtended } from \"../../@types\";\nimport { clientID } from \"../clivechat\";\n\nexport enum EnumPowerEstimation {\n LOW = \"LOW\",\n MIDDLE = \"MIDDLE\",\n HIGH = \"HIGH\",\n}\nexport class CMDP_STARTSEND implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTSEND;\n public params: baseParamsType & {\n capabilities?: string;\n };\n}\n\nexport class CMDP_STARTSEND_RESPONSE extends CMDP_STARTSEND implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_STOPSEND implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOPSEND;\n public params: baseParamsType & {\n streamError?: EnumBooleanStringifiedExtended;\n errorCode?: string; // 2xx\n };\n}\n\nexport class CMDP_STOPSEND_RESPONSE extends CMDP_STOPSEND implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_TRACERT_REPLY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_TRACERT_REPLY;\n public params: baseParamsType & {\n tracertID: string;\n hopID: string;\n targetIP: string;\n replyHost: string;\n replyIP: string;\n replyTime: string;\n replyCode: string;\n replyString: string;\n };\n}\n\nexport class CMDP_TRACERT_REPLY_RESPONSE extends CMDP_TRACERT_REPLY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_FSK16 implements ICOMMAND {\n public action: ACTION.CMDP_FSK16;\n public params: baseParamsType & {\n fsk16: EnumBooleanStringifiedExtended;\n };\n}\n\nexport class CMDP_START_STREAM_PREVIEW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_START_STREAM_PREVIEW;\n public params: baseParamsType & {\n duration: string; // seconds\n };\n}\n\nexport class CMDP_START_STREAM_PREVIEW_RESPONSE extends CMDP_START_STREAM_PREVIEW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n dataURL: string;\n mediaJpegWsUrl: string;\n };\n}\n\nexport class CMDP_STOP_STREAM_PREVIEW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOP_STREAM_PREVIEW;\n public params: baseParamsType & {\n dataURL: string;\n dataID: string;\n };\n}\n\nexport class CMDP_STOP_STREAM_PREVIEW_RESPONSE extends CMDP_STOP_STREAM_PREVIEW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_STARTBANDWIDTHTEST implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTBANDWIDTHTEST;\n public params: baseParamsType;\n}\n\nexport class CMDP_STARTBANDWIDTHTEST_RESPONSE extends CMDP_STARTBANDWIDTHTEST implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n testID: string;\n seconds: string;\n dataURL: string;\n dataID: string;\n speedTestUrl?: string;\n };\n}\n\nexport class CMDP_STOPBANDWIDTHTEST implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOPBANDWIDTHTEST;\n public params: baseParamsType & {\n testID: string;\n seconds: string;\n dataID: string;\n bitrate: string;\n cpuUsage: string;\n };\n}\n\nexport class CMDP_STOPBANDWIDTHTEST_RESPONSE extends CMDP_STOPBANDWIDTHTEST implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n validated: EnumBooleanStringified;\n };\n}\n\nexport class CMDP_STARTLOOPBACK9 implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTLOOPBACK9;\n public params: baseParamsType;\n}\n\nexport class CMDP_STARTLOOPBACK9_RESPONSE extends CMDP_STARTLOOPBACK9 implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n testID: string;\n pushUrl: string;\n pullUrl: string;\n pushUrlAudio: string;\n pullUrlAudio: string;\n };\n}\n\nexport class CMDP_STOPLOOPBACK9 implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOPLOOPBACK9;\n public params: baseParamsType & {\n testID: string;\n VideoDevice: string;\n VideoDeviceWidth: string;\n VideoDeviceHeight: string;\n VideoDeviceFPS: string;\n VideoSendBitrate: string;\n VideoSendFPS: string;\n AudioDevice: string | \"-\"; // \"-\" for none\n AudioDeviceFPS: string;\n AudioSendFPS: string;\n AudioSendBitrate: string;\n CPU: string | \"-1\";\n localCode: string | \"0\";\n };\n}\n\nexport class CMDP_STOPLOOPBACK9_RESPONSE extends CMDP_STOPLOOPBACK9 implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n statusCode: string;\n statusText: string;\n };\n}\n\nexport class CMDP_SQUERY_FORMAT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SQUERY_FORMAT;\n public params: baseParamsType & {\n width: string;\n height: string;\n fps: string;\n bandWidth: string;\n cpuUsage: string;\n };\n}\n\nexport class CMDP_SQUERY_FORMAT_RESPONSE extends CMDP_SQUERY_FORMAT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n width: string;\n height: string;\n fps: string;\n ref_width: string;\n ref_height: string;\n ref_fps: string;\n rtmp?: EnumBooleanDigitized.TRUE;\n codec?: string;\n };\n}\n\nexport enum QueryUserKeyEnum {\n FSK = \"fsk\",\n SINGLE = \"single\",\n SINGLEC2C = \"singleC2C\",\n QUERY_SINGLE = \"querysingle\",\n}\n\nexport enum QueryUserButtons {\n btn0 = \"btn0\",\n btn1 = \"btn1\",\n}\n\nexport interface IQueryUserParams {\n queryId: string;\n key: QueryUserKeyEnum;\n caption: string;\n text: string;\n [QueryUserButtons.btn0]: string;\n [QueryUserButtons.btn1]: string;\n timeout: string;\n sound: string;\n btnDefault: EnumBooleanDigitized;\n btndef: QueryUserButtons;\n CMDP_QUERYUSER;\n recordSingleChat?: EnumBooleanDigitized;\n}\n\nexport class CMDC_QUERYUSER implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_QUERYUSER;\n public params: IMayHaveChannelId & IQueryUserParams;\n}\n\nexport class CMDC_CQUERYUSER implements ICOMMAND {\n public action = ACTION.CMDC_CQUERYUSER;\n public params: clientID &\n chatIdType &\n Omit<IQueryUserParams, \"btnDefault\" | \"sound\"> & {\n price?: string;\n default: string;\n };\n}\n\nexport class CMDP_QUERYUSER implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_QUERYUSER;\n public params: baseParamsType &\n chatIdType &\n IMayHaveChannelId & {\n key: QueryUserKeyEnum;\n button: EnumBooleanDigitized;\n queryId: string;\n /** if the answer sent by timeout */\n isTimeout?: EnumBooleanDigitized;\n /** if not set, default setting used */\n recordSingleChat?: EnumBooleanDigitized;\n };\n}\n\nexport class CMDP_QUERYUSER_RESPONSE extends CMDP_QUERYUSER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_CQUERYUSER implements ICOMMAND {\n public action = ACTION.CMDP_CQUERYUSER;\n public params: clientID & {\n key: QueryUserKeyEnum;\n response: IQueryUserParams[QueryUserButtons];\n };\n}\n\nexport class CMDP_CQUERYUSER_RESPONSE extends CMDP_CQUERYUSER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_QUERYANSWERED implements ICOMMAND {\n public action = ACTION.CMDC_QUERYANSWERED;\n public params: { queryId: string };\n}\n\nexport class CMDP_SGETSTREAMPARAMS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETSTREAMPARAMS;\n public params: baseParamsType & {\n powerEstimation: EnumPowerEstimation;\n };\n}\n\nexport type StreamParams = {\n rtmpURL: string;\n streamName: string;\n webRtc: string;\n powerEstimation: EnumPowerEstimation;\n lastStreamType?: \"webRTC\" | \"RTMP\" | string;\n};\n\nexport class CMDP_SGETSTREAMPARAMS_RESPONSE extends CMDP_SGETSTREAMPARAMS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & StreamParams;\n}\n\nexport class CMDC_CSTARTSTREAMPUSH implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CSTARTSTREAMPUSH;\n public params: baseParamsType & StreamParams;\n}\n\nexport class CMDP_CQUERY_SINGLE implements ICOMMAND {\n public action = ACTION.CMDP_CQUERY_SINGLE;\n public params: clientID;\n}\n\nexport class CMDP_CQUERY_SINGLE_RESPONSE extends CMDP_CQUERY_SINGLE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanDigitized, EnumBooleanStringified, JSONString } from \"../../@types\";\nimport {\n ACTION,\n baseParamsType,\n chatIdType,\n CMDC_CMSG,\n ComaSeparatedValues,\n EnumChannelFilterValues,\n EnumFsk,\n ICOMMAND,\n SessionFlag,\n} from \"../../cmd-protocol\";\nimport { IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\n/**\n * Chat flags\n * SELECT CHAT_FLAG_SHORT || ' = \"' || CHAT_FLAG_SHORT || '\",// ' || CHAT_FLAG_DESCRIPTION FROM CHAT_FLAGS order by CHAT_FLAG_VAL\n */\n\nexport enum ChatFlags {\n VIDEO = \"VIDEO\", // video\n VOYEUR = \"VOYEUR\", // Voyeurchat\n CAM2CAM = \"CAM2CAM\", // Cam2Cam used\n SINGLE = \"SINGLE\", // Singlechat applied\n DISCOUNT = \"DISCOUNT\", // Discount granted\n TEXT = \"TEXT\", // Textchat Intention, set on chat_init\n FSK16 = \"FSK16\", // Chat is in FSK16 Mode\n VOYEUR2S = \"VOYEUR2S\", // Voyer Chat for Single Session\n RECORD = \"RECORD\", // Record VideoChat on Server\n FREE = \"FREE\", // FreeChat, SexOle feature.\n HASUPLPICS = \"HASUPLPICS\", // User has picture upload\n PREVIEW = \"PREVIEW\", // User has used livePreview\n FSKACK = \"FSKACK\", // Host Acknowledged FSK16\n VOYSHOWN = \"VOYSHOWN\", // Voyerchat converted to Normalchat\n PARTY = \"PARTY\", // PartyChat, SexOle feature.\n FREECHAT = \"FREECHAT\", // Videochat is free, except for singleprice\n TOY = \"TOY\", // TOY is used\n CONVERSION = \"CONVERSION\", // Conversion chat, user without charges, host payout 0.15 EUR/Min\n TESTCHAT = \"TESTCHAT\", // Testchat with a test account\n SECONDARY = \"SECONDARY\", // Set if there are already chats with this host or related sessions\n AUDIO = \"AUDIO\", // Audio was used (since vxsoft 8.6.0.0)\n CONVERTED = \"CONVERTED\", // Chat is converted to payed. SexOle feature.\n TIP = \"TIP\", // TIP or MSN GIFT is used\n GUESTCHAT = \"GUESTCHAT\", // Chat with Guest-Model on VXPages\n MOBILE = \"MOBILE\", // 30 cent fixed payout for sender\n FLATRATE = \"FLATRATE\", // Flatrate VXpages chat. Single is chargeable.\n SINGLEC2C = \"SINGLEC2C\", // Private show (web-rtc cam2cam) chat\n}\n\nexport enum EnumIntentionString {\n TEXT = \"TEXT\",\n VOYEUR = \"VOYEUR\",\n VIDEO = \"VIDEO\",\n SINGLECAM2CAM = \"SINGLECAM2CAM\",\n}\n\nexport class SChatInfo {\n /** the unique chatId*/\n public chatID: string;\n /** the chat type, can be changed. 15 contentpartner, 16 prepaid, 13 - dialerchat*/\n public type: string;\n /** chat flags coma separated. see enum ChatFlags*/\n public flags: ComaSeparatedValues<SessionFlag> | SessionFlag;\n /** start timestamp */\n public startTime: string;\n /** stop timestamp */\n public stopTime?: string;\n /** the paid time */\n public paidTime?: string;\n /** exit code, see */\n public exitCode?: string;\n /** admin chat */\n public admin?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** you can kick and ban this user */\n public canBan?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** you can give a discount to this user*/\n public canDiscount?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** single ability */\n public canSingle?: EnumBooleanDigitized;\n /** c2c ability */\n public canCam2Cam?: EnumBooleanDigitized;\n /** the category */\n public ccl_cat2?: string;\n /** messenger channel id */\n public channelId?: string;\n /**\n * @deprecated. obsolete\n */\n // eslint-disable-next-line tsdoc/syntax\n public fixedPayout?: string;\n /** the soft/hard status */\n public fsk?: EnumFsk;\n /** the discount */\n public hasDiscount?: string;\n /** info message for this chat */\n public infoMessage?: string;\n /** the chat is public, others users in ther public chats can see your messages */\n public isPublicText?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** the chat is a mass lobby show, no system messages or CMDC_CHAT_UPDATE will be arrived */\n public isLobby?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** stats about this user*/\n public jsonStats?: string;\n /** language of user */\n public lang?: string;\n /** the user name */\n public login?: string;\n /** the admin is shown */\n public showAdmin?: string;\n /** internal, the usr_id of user for type 13 chat */\n public userKey?: string;\n /** the related tiked id*/\n public ticketId?: string;\n public imgSrc?: string;\n /** is voyeur to single */\n public voyeur2single?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** the intention of chat type from guest. this is not actual chat type, only intention */\n public chattype: EnumIntentionString | string;\n /** preview state: \"1\" if the preview is run, \"0\" if the preview is stopped */\n public previewRun?: \"1\" | \"0\" | string;\n public blurred?: \"1\" | \"0\" | string;\n}\n\nexport class CMDC_CINIT implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CINIT;\n public params: SChatInfo & IKeyMaybeValue;\n}\n\nexport type ChatOnlineStats = {\n /** the video time in seconds */\n videoTime?: string;\n /** the video time as string 00:33:22 */\n videoTimeString?: string;\n /* number of lobby customer online */\n lobbyUsers?: string;\n};\n\n/*update state of chat with partner*/\nexport class CMDC_UPDATE_CHAT implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_UPDATE_CHAT;\n public params: SChatInfo & ChatOnlineStats & IKeyMaybeValue;\n}\n\nexport enum EndChatType {\n PREPARED = \"PREPARED\",\n LOBBY = \"LOBBY\", // = ticket show\n ADMIN = \"ADMIN\",\n SINGLEC2C = \"SINGLEC2C\",\n SINGLE = \"SINGLE\",\n LIVE = \"LIVE\",\n VOYEUR = \"VOYEUR\",\n VOYEUR2S = \"VOYEUR2S\",\n PREVIEW = \"PREVIEW\",\n PREVIEW_VIP = \"PREVIEW_VIP\",\n PREVIEW_SHORT = \"PREVIEW_SHORT\",\n PREVIEW_VOUCHER = \"PREVIEW_VOUCHER\",\n MOBILEVIDEOCALL = \"MOBILEVIDEOCALL\",\n}\n\nexport class CMDC_CEXIT implements ICOMMAND {\n public action = ACTION.CMDC_CEXIT;\n public params: {\n [key: string]: string;\n chatID: string;\n exitCode: string;\n exitMessage?: string;\n endChatType?: EndChatType;\n };\n}\n\nexport class CMDP_SGETCHATS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHATS;\n // chatID can be coma delimited list\n public params: baseParamsType & { chatID?: string };\n}\n\nexport class CMDP_SGETCHATS_RESPONSE extends CMDP_SGETCHATS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CINIT[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCHATHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHATHISTORY;\n // chatID can be coma delimited list\n public params: baseParamsType & chatIdType & { skipChannelMessages: EnumBooleanStringified };\n}\n\nexport class CMDP_SGETCHATHISTORY_RESPONSE extends CMDP_SGETCHATHISTORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMSG[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SQUERY_DISCOUNT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SQUERY_DISCOUNT;\n public params: baseParamsType & chatIdType;\n}\n\nexport class CMDP_SQUERY_DISCOUNT_RESPONSE extends CMDP_SQUERY_DISCOUNT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n canDiscount?: EnumBooleanDigitized;\n reason?: string;\n hasDiscount: EnumBooleanDigitized;\n endDate?: string;\n };\n}\n\nexport class CMDP_SET_DISCOUNT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SET_DISCOUNT;\n public params: baseParamsType &\n chatIdType & {\n rate: string;\n time: string;\n };\n}\n\nexport class CMDP_SET_DISCOUNT_RESPONSE extends CMDP_SET_DISCOUNT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_KICK implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_KICK;\n public params: baseParamsType & chatIdType;\n}\n\nexport class CMDP_KICK_RESPONSE extends CMDP_KICK implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCHATSSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHATSSUMMARY;\n public params: baseParamsType & { channelId: string };\n}\n\nexport class CMDP_SGETCHATSSUMMARY_RESPONSE extends CMDP_SGETCHATSSUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n // \"summary\": \"{\\\"FIRST\\\":\\\"2013-11-20\\\",\\\"LAST\\\":\\\"2022-09-01\\\",\\\"CHATS\\\":1930}\",\n public values: IKeyMaybeValue & { summary?: string } & {\n first?: string;\n last?: string;\n chats?: string;\n };\n}\n\n/**\n * query online time summary for last 3 month\n */\nexport class CMDP_GETONLINESUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETONLINESUMMARY;\n public params: baseParamsType;\n}\n\n/**\n * Response for CMDP_GETONLINESUMMARY\n */\n\nexport class CMDP_GETONLINESUMMARY_RESPONSE extends CMDP_GETONLINESUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n // [{\"2023-07-07\":2726},{\"2023-07-19\":7663},{\"2023-08-02\":1479},{\"2023-07-04\":97},{\"2023-07-11\":4327},{\"2023-07-18\":1804},{\"2023-07-27\":3297}]\"\n summary: JSONString<any> | string;\n };\n}\n\nexport class CMDC_LIVESESSION implements ICOMMAND {\n public action: ACTION.CMDC_LIVESESSION;\n public params: {\n /** the Id on the session, not unique, but sesId + startTime is unique */\n sesID: string;\n /** start time */\n startTime: string;\n /** stop time */\n stopTime: string;\n /** live chats counter*/\n chats: string;\n };\n}\n\nexport class CMDC_LIVECHAT implements ICOMMAND {\n public action: ACTION.CMDC_LIVECHAT;\n public params: {\n /** the unique chat id */\n chatID: string;\n /** the id of live session */\n sesID: string;\n /** start time of live chat, is between startTime and stopTime of live session */\n startTime: string;\n /** last timestamp of live chat*/\n stopTime: string;\n /** the exit code, 0 -if chat is live */\n exitCode: string;\n /** VIDEO, VOYEUR, SINGLE */\n type: string;\n /** username (user alias) */\n login?: string;\n /** channelId, if given */\n channelId?: string;\n /** endChatType*/\n endChatType?: EndChatType;\n };\n}\n\n/**\n * query online time history for last 2 month max\n */\nexport class CMDP_GETLIVEHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETLIVEHISTORY;\n public params: baseParamsType & {\n /** json-encoded datetime, default now-6 month, will be adjusted if set to smaller than first known date */\n dateFrom?: string;\n /** json-encoded datetime, default now() +1 day */\n dateTo?: string;\n /** filter empty live sessions*/\n filterEmpty?: EnumChannelFilterValues;\n /** pagination */\n skip?: string;\n /** pagination */\n limit?: string;\n };\n}\n\n/**\n * Response for CMDP_GETLIVEHISTORY\n */\nexport class CMDP_GETLIVEHISTORY_RESPONSE extends CMDP_GETLIVEHISTORY implements IRESPONSE {\n public result: RESULT;\n /** array of CMDC_LIVESESSION[] + CMDC_LIVECHAT[] */\n public commands: ICOMMAND[];\n public values: {\n /** json-encoded datetime*/\n firstSession: string;\n /** json-encoded datetime*/\n lastSession: string;\n /** number of Sessions */\n totalSessions: string;\n };\n}\n","import { CMDP_LOGIN, CMDP_LOGIN_RESPONSE } from \"../login\";\nimport { ACTION } from \"../command/action\";\n\n/**\n * 8320 only\n */\nexport class CMDP_SLOGIN extends CMDP_LOGIN {\n public action = ACTION.CMDP_SLOGIN;\n}\n\n/**\n * response for CMDP_SLOGIN, 8320 only\n */\nexport class CMDP_SLOGIN_RESPONSE extends CMDP_LOGIN_RESPONSE {\n public action = ACTION.CMDP_SLOGIN;\n}\n","import { EnumCurrency, JSONString } from \"../../@types\";\nimport { ACTION, ICOMMAND, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType, SupportedLanguage } from \"../command/baseparams\";\n\nexport enum MSettingNameEnum {\n CONVERSION_CHAT = \"ConversionChat\",\n HEATMAP_ENABLED = \"HeatmapEnabled\",\n HEATMAP_DESCRIPTION = \"HeatmapDescription\",\n LIVE_CHAT_PREVIEW = \"LiveChatPreview\",\n LOVENSE_TOY_REQUEST = \"LovenseToyRequest\",\n TICKET_SHOW_REQUEST = \"TicketShowRequest\",\n MESSENGER_PRICE = \"MessengerPrice\",\n VIDEO_CHAT_PRICE = \"VideoChatPrice\",\n PRIVATE_CHAT_PRICE = \"PrivateChatPrice\",\n VOYEUR_CHAT_PRICE = \"VoyeurChatPrice\",\n PRIVATE_C2C_CHAT_PRICE = \"SingleC2CChatPrice\",\n SOFT_CHAT_ENABLED = \"SoftChatEnabled\",\n VOYEUR_CHAT_ENABLED = \"VoyeurChatEnabled\",\n VOYEUR_CHAT_PRIVATE_AUDIO = \"VoyeurChatPrivateAudio\",\n FREE_CHAT_ENABLED = \"FreeChatEnabled\",\n PARTY_CHAT_ENABLED = \"PartyChatEnabled\",\n SERVICE0900_ENABLED = \"Service0900Enabled\",\n SERCIVE0900WEBSIP_ENABLED = \"Service0900WebSipEnabled\",\n SERVICE0900WEBSIP_VISIBLE = \"Service0900WebSipVisible\",\n SERVICE0900PHONE_ENABLED = \"Service0900PhoneEnabled\",\n MESSAGETEMPLATES_ENABLED = \"MessageTemplatesEnabled\",\n}\n\nexport enum MSettingValueTypeEnum {\n FLOAT = \"float\",\n BOOL = \"bool\",\n ENUM = \"enum\",\n MULTILANGSTRING = \"multiLangString\",\n}\n\nexport class MSetting {\n public name: MSettingNameEnum;\n public type: MSettingValueTypeEnum;\n public isReadOnly: boolean;\n /**\n * @deprecated/obsolete\n */\n public isDisabled: boolean;\n /**\n * @deprecated/obsolete\n */\n public isOnlineChangeAllowed: boolean;\n}\n\nexport class MSettingFloat extends MSetting {\n public type: MSettingValueTypeEnum.FLOAT;\n public currency: EnumCurrency | string;\n public value: number;\n public minValue: number;\n public maxValue: number;\n public range: number[] | null;\n public step: number | null;\n}\n\nexport class MSettingBool extends MSetting {\n public type: MSettingValueTypeEnum.BOOL;\n public value: boolean;\n}\n\nexport enum RequestStateEnum {\n NOT_SET = \"notSet\",\n NOT_ALLOWED = \"notAllowed\",\n REQUESTED = \"requested\", // this is one writable, if old value == notSet\n ACCEPTED = \"accepted\",\n REJECTED = \"rejected\",\n}\n\nexport class MSettingFeatureRequest extends MSetting {\n public type: MSettingValueTypeEnum.ENUM;\n public value: RequestStateEnum;\n public requestDate: Date | null;\n public nextPossibleRequestDate: Date | null;\n}\n\nexport class LanguageText {\n public lang: SupportedLanguage;\n public text: string | null;\n}\n\nexport class MSettingMultiLangString extends MSetting {\n public type: MSettingValueTypeEnum.MULTILANGSTRING;\n public requiredLangs: SupportedLanguage[];\n public value: LanguageText[];\n public minLength: number | null;\n public maxLength: number | null;\n}\n\n/** if one of feilds is missing, so the Settig is not applicable to this account */\nexport class MSettings {\n public fields: {\n [MSettingNameEnum.CONVERSION_CHAT]?: MSettingBool;\n [MSettingNameEnum.HEATMAP_ENABLED]?: MSettingBool;\n [MSettingNameEnum.HEATMAP_DESCRIPTION]?: MSettingMultiLangString;\n [MSettingNameEnum.LIVE_CHAT_PREVIEW]?: MSettingBool;\n [MSettingNameEnum.LOVENSE_TOY_REQUEST]?: MSettingFeatureRequest;\n [MSettingNameEnum.TICKET_SHOW_REQUEST]?: MSettingFeatureRequest;\n [MSettingNameEnum.MESSENGER_PRICE]?: MSettingFloat;\n [MSettingNameEnum.VIDEO_CHAT_PRICE]?: MSettingFloat;\n [MSettingNameEnum.PRIVATE_CHAT_PRICE]?: MSettingFloat;\n [MSettingNameEnum.VOYEUR_CHAT_PRICE]?: MSettingFloat;\n [MSettingNameEnum.PRIVATE_C2C_CHAT_PRICE]?: MSettingFloat; // MOBILE_VIDEO_CALL\n [MSettingNameEnum.SOFT_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.VOYEUR_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.VOYEUR_CHAT_PRIVATE_AUDIO]?: MSettingBool;\n [MSettingNameEnum.FREE_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.PARTY_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERCIVE0900WEBSIP_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900WEBSIP_VISIBLE]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900PHONE_ENABLED]?: MSettingBool;\n [MSettingNameEnum.MESSAGETEMPLATES_ENABLED]?: MSettingBool;\n };\n}\n\n/**\n * Get command\n */\nexport class CMDP_SGETMSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMSETTINGS;\n public params: baseParamsType;\n}\n\n/**\n * Get command response\n */\nexport class CMDP_SGETMSETTINGS_RESPONSE extends CMDP_SGETMSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n mSettings: JSONString<MSettings>;\n };\n}\n\n/**\n * set command,\n * the settingValue is JSONString of value for settingName\n */\nexport class CMDP_SSETMSETTING implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSETMSETTING;\n public params: baseParamsType & { settingName: MSettingNameEnum; settingValue: string };\n}\n\n/**\n * Set command response\n */\nexport class CMDP_SSETMSETTING_RESPONSE extends CMDP_SSETMSETTING implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n mSettings: JSONString<MSettings>;\n };\n}\n\n/** NOOP update command */\nexport class CMDC_MSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_MSETTINGS;\n public params: {\n mSettings: JSONString<MSettings>;\n };\n}\n\nexport class CMDP_SSETMSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSETMSETTINGS;\n public params: baseParamsType & {\n mSettings: JSONString<MSettings>;\n };\n}\n\n/**\n * Set command response\n */\nexport class CMDP_SSETMSETTINGS_RESPONSE extends CMDP_SSETMSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n mSettings: JSONString<MSettings>;\n };\n}\n","export enum EnumProductLinks {\n MY_SHOW = \"ticketShow\",\n ALL_SHOWS = \"ticketShowAll\",\n CHAT_MOTTO = \"chatMotto\",\n CHAT_SETTINGS = \"chatSettings\",\n HELP = \"help\",\n HELP_TOY = \"helpToy\",\n HELP_LOVENSE = \"helpLovense\",\n HELP_SOFTWARE = \"helpSoftware\",\n MESSAGING = \"messaging\",\n PICTURE_TOOL = \"picturePool\",\n PICTURE_TOOL_SEDCARD12 = \"sedcardVX12\",\n PICTURE_TOOL_SEDCARD16 = \"sedcardVX16\",\n PICTURE_TOOL_SEDCARD18 = \"sedcardVX18\",\n PROFILE = \"profile\",\n PASSWORD_RESET = \"passwordReset\",\n SERVICE0900 = \"service0900\",\n FEATURE_REQUEST = \"featureRequest\",\n TOY_SHOP = \"toyShop\",\n}\n\nexport interface IProductConfig {\n key: string;\n links: {\n [key in EnumProductLinks]: string;\n };\n}\n","import { EnumBooleanStringifiedExtended } from \"../../@types\";\nimport { ACTION } from \"../command/action\";\nimport { ICOMMAND } from \"../command/icommand\";\n\nexport enum EnumStreamQuality {\n NONE = \"NONE\",\n EXCELLENT = \"EXCELLENT\",\n GOOD = \"GOOD\",\n BAD = \"BAD\",\n}\n\n/**\n * Update incoming stream state.\n * Server inform you about the state of incoming video audio stream.\n */\nexport class CMDC_STREAMSTATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_STREAMSTATE;\n public params: {\n /*json datetime */\n startTime?: string;\n bandWith?: string;\n quality?: EnumStreamQuality;\n videoWidth?: string;\n videoHeight?: string;\n videoFps?: string;\n hasAudio?: EnumBooleanStringifiedExtended;\n audioMuted?: EnumBooleanStringifiedExtended;\n /**\n * @deprecated/ obsolete\n */\n bandwith?: string;\n /**\n * @deprecated/ obsolete\n */\n videoHeigth?: string;\n };\n}\n","import { EnumBooleanStringified } from \"../../@types\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType, SupportedLanguage } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\nexport enum EnumService0900State {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n}\n\nexport enum EnumService0900Status {\n ACTIVE = \"active\", // = reachable\n INACTIVE = \"inactive\", // = unreachable\n BUSY = \"busy\", // = in call\n CONNECTING = \"connecting\", // = ringing\n}\n\nexport enum EnumService0900Operation {\n ENABLE = \"turnOn\",\n DISABLE = \"turnOff\",\n}\n\n/**\n * Update session state or control features\n */\nexport class CMDP_SUPDATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPDATE;\n public params: baseParamsType & {\n language?: SupportedLanguage;\n broadcastData?: string;\n permanentData?: string;\n service0900State?: EnumService0900State;\n livePreviewState?: EnumBooleanStringified;\n babeStation24State?: EnumBooleanStringified;\n mobileVideoCallState?: EnumBooleanStringified;\n webSIPState?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_UPDATE\n */\nexport class CMDP_SUPDATE_RESPONSE extends CMDP_SUPDATE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import {\n ACTION,\n baseParamsType,\n ComaSeparatedValues,\n ICOMMAND,\n IRESPONSE,\n RESULT,\n StringBasedType,\n} from \"../../cmd-protocol\";\nimport { EnumPlayerFormat } from \"../../@types\";\n\n/**\n * 8320 only\n */\nexport class CMDP_SSTARTTESTVIDEOCHAT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTARTTESTVIDEOCHAT;\n /** login params */\n public params: baseParamsType & {\n ualias?: string;\n tlimit?: string;\n lang?: string;\n userKey?: string;\n voyeur?: string;\n fsk?: string;\n canSingle?: string;\n canTip?: string;\n canCam2Cam?: string;\n tlimitNotify?: string;\n publicText?: string;\n guestAvatar?: string;\n modelAvatar?: string;\n formatsIncluded?: ComaSeparatedValues<EnumPlayerFormat>;\n formatsExcluded?: ComaSeparatedValues<EnumPlayerFormat>;\n formatsPriority?: ComaSeparatedValues<EnumPlayerFormat>;\n };\n}\n\n/**\n * response for CMDP_SSTARTTESTVIDEOCHAT\n */\nexport class CMDP_SSTARTTESTVIDEOCHAT_RESPONSE extends CMDP_SSTARTTESTVIDEOCHAT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n [key: string]: StringBasedType;\n clientID?: string;\n server?: string;\n };\n}\n","import { EnumCurrency } from \"../../@types\";\nimport { ACTION, baseParamsType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\n\nexport enum EnumTicketShowStatusType {\n OK = \"ok\",\n CANCELLED = \"cancelled\",\n DELETED = \"deleted\",\n}\n\nexport type ticketShow = {\n showId: string;\n /*json datetime */\n showStart: string;\n /** json datetime */\n showEnd: string;\n /** show Name, readonly*/\n showName: string;\n /**\n * @deprecated/ use pictureId\n */\n showImageUrl?: string;\n /** pictureId, the replacement for showImageUrl*/\n pictureId?: string;\n /** readonly const */\n showCurrency: EnumCurrency;\n /** float F2 */\n showPrice: string;\n /** long */\n showSales: string;\n titleDE: string;\n titleEN: string;\n titleES: string;\n descriptionDE: string;\n descriptionEN: string;\n descriptionES: string;\n status: EnumTicketShowStatusType | string;\n};\n\nexport class CMDC_CTICKETSHOW implements ICOMMAND {\n public action = ACTION.CMDC_CTICKETSHOW;\n public params: ticketShow;\n}\n\nexport class CMDP_SGETTICKETSHOWS implements ICOMMAND {\n public action = ACTION.CMDP_SGETTICKETSHOWS;\n public params: baseParamsType & {\n /**showId if know */\n showId?: string;\n /* optional */\n showStart?: string;\n /* optional */\n showEnd?: string;\n };\n}\n\nexport class CMDP_SGETTICKETSHOWS_RESPONSE extends CMDP_SGETTICKETSHOWS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CTICKETSHOW[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTTICKETSHOW implements ICOMMAND {\n public action = ACTION.CMDP_SUPSERTTICKETSHOW;\n public params: baseParamsType & ticketShow;\n}\n\nexport class CMDP_SUPSERTTICKETSHOW_RESPONSE extends CMDP_SUPSERTTICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CTICKETSHOW[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETETICKETSHOW implements ICOMMAND {\n public action = ACTION.CMDP_SDELETETICKETSHOW;\n public params: baseParamsType & { showId?: string };\n}\n\nexport class CMDP_SDELETETICKETSHOW_RESPONSE extends CMDP_SDELETETICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * start ticket show\n */\nexport class CMDP_SSTARTTICKETSHOW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTARTTICKETSHOW;\n public params: baseParamsType & {\n /** custom show name */\n ualias?: string;\n };\n}\n\nexport class CMDP_SSTARTTICKETSHOW_RESPONSE extends CMDP_SSTARTTICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & {\n /** the chat id */\n chatID: string;\n };\n}\n\n/**\n * stop ticket show\n */\nexport class CMDP_SSTOPTICKETSHOW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTOPTICKETSHOW;\n public params: baseParamsType;\n}\n\nexport class CMDP_SSTOPTICKETSHOW_RESPONSE extends CMDP_SSTOPTICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/** the sedcardpicrure */\nexport class CMDC_SEDCARDPICTURE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_SEDCARDPICTURE;\n public params: {\n /** picture id*/\n pictureId?: string;\n /** sedcards.fsk12, sedcards.fsk16 ununsed for mnow */\n type: string;\n /** sedcart, avatar, unused for now */\n subtype: string;\n /**use the imageSrc as value for showImageUrl */\n imgSrc: string;\n /** use imgSrcSet for UI only*/\n imgSrcSet: string;\n };\n}\n\n/** get bitmap urls that can be used for show.imageUrl */\nexport class CMDP_SGETSEDCARDPICTURES implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETSEDCARDPICTURES;\n public params: baseParamsType;\n}\n\n/** reponse */\nexport class CMDP_SGETSEDCARDPICTURES_RESPONSE extends CMDP_SGETSEDCARDPICTURES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_SEDCARDPICTURE[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringified } from \"../../@types\";\nimport { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType } from \"../command/baseparams\";\n\nexport enum EnumPushNotificationFilter {\n ALL = \"all\",\n REGULAR = \"regular\",\n NONE = \"none\",\n}\n\nexport type UserSettings = {\n pushNotificationFilter?: EnumPushNotificationFilter;\n readyForVideoCall?: EnumBooleanStringified;\n};\n\n/**\n * set user setting\n */\nexport class CMDP_GETSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETSETTINGS;\n public params: baseParamsType;\n}\n\n/**\n * set user setting response\n */\nexport class CMDP_GETSETTINGS_RESPONSE extends CMDP_GETSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & UserSettings;\n}\n\n/**\n * set user setting\n */\nexport class CMDP_SETSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETSETTINGS;\n public params: baseParamsType & UserSettings;\n}\n\n/**\n * set user setting response\n */\nexport class CMDP_SETSETTINGS_RESPONSE extends CMDP_SETSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import {\n CMDP_SSTARTTICKETSHOW,\n CMDP_SSTARTTICKETSHOW_RESPONSE,\n CMDP_SSTOPTICKETSHOW,\n CMDP_SSTOPTICKETSHOW_RESPONSE,\n} from \"./live/ticketshow\";\n\nexport class CMDP_OPEN_LOBBY extends CMDP_SSTARTTICKETSHOW {}\n\nexport class CMDP_OPEN_LOBBY_RESPONSE extends CMDP_SSTARTTICKETSHOW_RESPONSE {}\n\nexport class CMDP_CLOSE_LOBBY extends CMDP_SSTOPTICKETSHOW {}\n\nexport class CMDP_CLOSE_LOBBY_RESPONSE extends CMDP_SSTOPTICKETSHOW_RESPONSE {}\n","import { EnumBooleanDigitized, JSONString } from \"../@types\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { SessionState } from \"./sessionstate\";\nimport { UploadMediaTus } from \"./init\";\n\n/** web token format need for login with web token. obligatory fields in token-payload\n * \\{\n * userPoolId: number \\{10\\}, - the id of your user pool\n * usrKey: string \\{36 bytes\\} - the uniq user key in your pool\n * \\}\n */\nexport type loginWithWebtokenType = {\n webtoken: string;\n};\n\n/** login with user name & password */\nexport type loginWithUserNameType = {\n /** your bussines Id in CmdControl system, will be obligatory in future to check the password by your backend */\n usrId?: string;\n /** username. if usrId not set, your B2B username. if usrId is set the username of customer. LIVE: username of Model */\n login: string;\n /** password in plain MD5 or other format to check it by your backend */\n password: string;\n};\n\nexport type foreignSIDType = {\n /** upgrade from foreignSID, 8320 only */\n foreignSID?: string;\n};\n\n/** additional params */\nexport type otherLoginParamsType = {\n /** B2B: user key. Obligatory, If you want to create end-user-session and if not set already in webtoken. max 36 symbols */\n usrKey?: string;\n /** this is session with messenger functions, default is \"0\" */\n msn?: EnumBooleanDigitized;\n // /** unused */\n // jwtKey?: string;\n\n autoLogin?: EnumBooleanDigitized;\n};\n\n/** login union type */\nexport type loginParamType = loginWithWebtokenType | loginWithUserNameType | foreignSIDType;\n\nexport interface ILoginBackendPayload {\n guest: any;\n}\n\nexport class CMDP_LOGIN implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_LOGIN;\n /** login params */\n public params: baseParamsType & loginParamType & otherLoginParamsType;\n /** payload to sent it to backend */\n public payload?: unknown;\n}\n\n/**\n * response for Login\n */\nexport class CMDP_LOGIN_RESPONSE extends CMDP_LOGIN implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: SessionState & {\n uploadMediaTus?: JSONString<UploadMediaTus>;\n };\n /** payload from backend */\n public payload?: ILoginBackendPayload;\n}\n","import { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { EnumBooleanStringified } from \"../@types\";\nimport { ExitCode } from \"./exit-code\";\nimport { clientID } from \"./clivechat\";\nimport { EndChatType } from \"./live/livechat\";\n\nexport class CMDP_LOGOUT implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_LOGOUT;\n public params: baseParamsType & {\n code?: number;\n allDevices?: EnumBooleanStringified;\n };\n public payload?: unknown;\n}\n\nexport class CMDP_LOGOUT_RESPONSE extends CMDP_LOGOUT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n// alias to CMDP_LOGOUT\nexport class CMDP_SLOGOUT extends CMDP_LOGOUT {\n public action: ACTION = ACTION.CMDP_SLOGOUT;\n}\n\nexport class CMDP_SLOGOUT_RESPONSE extends CMDP_LOGOUT_RESPONSE {\n public action: ACTION = ACTION.CMDP_SLOGOUT;\n}\n\nexport class CMDP_CLOGOUT implements ICOMMAND {\n public action = ACTION.CMDP_CLOGOUT;\n public params: baseParamsType &\n clientID & {\n exitCode?: ExitCode;\n exitMessage?: string;\n };\n}\n\nexport class CMDP_CLOGOUT_RESPONSE extends CMDP_CLOGOUT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n endChatType: EndChatType;\n videoTime?: string;\n };\n}\n","import { ACTION, baseParamsType, IBACKENDPAYLOAD, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport { channelIdType } from \"./channel\";\nimport { MayHaveChannelId } from \"./media\";\nimport { Currency, EnumTicketType, MediaFile, MediaPrice, MessageId } from \"./message\";\n\nexport type PriceInstruction = {\n min: string;\n max: string;\n default: string;\n pick: string[];\n};\n\nexport type DurationInstruction = {\n min: string;\n max: string;\n default: string;\n pick: string[];\n};\n\nexport type TicketPriceDuration = {\n price: PriceInstruction;\n /**dauer in seconds */\n duration: DurationInstruction;\n};\n\nexport type MediaPrices = {\n imagePrices: PriceInstruction;\n audioPrices: PriceInstruction;\n videoPrices: PriceInstruction;\n ticketPrices?: Record<EnumTicketType, TicketPriceDuration>;\n};\n\n/**\n * Command for get prices for media. Will be forwarded to B2B backend.\n */\nexport class CMDP_SMEDIAGETPRICES implements ICOMMAND {\n public action = ACTION.CMDP_SMEDIAGETPRICES;\n public params: baseParamsType & MayHaveChannelId;\n}\n\n/**\n * Response command for CMDP_SMEDIAGETPRICES\n */\nexport class CMDP_SGETPRICESMEDIA_RESPONSE extends CMDP_SMEDIAGETPRICES implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n /** B2B Infos */\n public payload: Currency & MediaPrices;\n}\n\n//------------------------------------------------------------------------------------------------------\n/**\n * B2B Command for create of media offer\n */\nexport class CMDP_SMEDIAOFFERCREATE implements ICOMMAND {\n public action = ACTION.CMDP_SMEDIAOFFERCREATE;\n public params: baseParamsType &\n channelIdType &\n Currency &\n MediaPrice &\n MediaFile &\n MessageId & {\n userPoolId: string;\n usrKey: string;\n };\n}\n\n/**\n * B2B Response command for CMDP_SMEDIAOFFERCREATE\n */\nexport class CMDP_SMEDIAOFFERCREATE_RESPONSE extends CMDP_SMEDIAOFFERCREATE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * B2B command for inform partner about media purchase. Will be sent to partners B2B backend.\n */\nexport class CMDP_SINFORMMEDIAPURCHASED implements ICOMMAND {\n public action = ACTION.CMDP_SINFORMMEDIAPURCHASED;\n public params: baseParamsType &\n /** channel id */\n channelIdType &\n /** the message id of related media offer */\n MessageId & {\n billId?: string;\n };\n}\n\n/**\n * Response command for CMDP_SMEDIAPURCHASE.\n */\nexport class CMDP_SINFORMMEDIAPURCHASED_RESPONSE extends CMDP_SINFORMMEDIAPURCHASED implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringifiedExtended, JSONString } from \"../@types\";\nimport { channelIdType, EnumChannelFilterValues, EnumSortOrder } from \"./channel\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport {\n CMDC_CMSG,\n EnumMediaState,\n EnumMediaType,\n EnumMessageDirection,\n MediaFile,\n MediaMd5,\n MediaPrice,\n} from \"./message\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\n\nexport type MayHaveChannelId = {\n channelId?: string;\n};\n\nexport enum ChannelMediaLinkState {\n NONE = \"NONE\",\n FREE = \"FREE\",\n OFFER = \"OFFER\",\n PAID = \"PAID\",\n EXPIRED = \"EXPIRED\",\n CLOSED = \"CLOSED\",\n}\n\nexport enum UploadedMediaDirection {\n IN = \"in\",\n OUT = \"out\",\n ANY = \"any\",\n}\n\n/**\n * media info, may have a channel id\n */\nexport class CMDC_CMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CMEDIA;\n public params: MediaFile &\n MayHaveChannelId & {\n linkState?: ChannelMediaLinkState;\n linkDate?: string;\n direction?: UploadedMediaDirection;\n } & MediaPrice;\n}\n\n/**\n * check for media already was uploaded.\n * mediaMd5 - comaseparated media md5\n * channelId - comaseparated channelId\n */\nexport class CMDP_SCHECKUPLOADEDMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SCHECKUPLOADEDMEDIA;\n public params: baseParamsType & MediaMd5 & MayHaveChannelId;\n}\n\n/**\n * media infos, if any found in cache\n */\nexport class CMDP_SCHECKUPLOADEDMEDIA_RESPONSE extends CMDP_SCHECKUPLOADEDMEDIA implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMEDIA[];\n public values: IKeyMaybeValue;\n}\n\n/** get list of all uploaded media ordered by upliad date descending, may have comaseparated channel id for filter */\nexport class CMDP_SGETUPLOADEDMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETUPLOADEDMEDIA;\n public params: baseParamsType &\n MayHaveChannelId & {\n mediaState?: EnumMediaState;\n mediaType?: ComaSeparatedValues<EnumMediaType> | EnumMediaType;\n linkState?: ComaSeparatedValues<ChannelMediaLinkState> | ChannelMediaLinkState;\n skip?: string;\n limit?: string;\n direction?: UploadedMediaDirection;\n /** get only mediaMd5, channelId, linkState, linkDate, and cut off all mediaXXX fields, default is false */\n dropMediaFields?: EnumBooleanStringifiedExtended;\n countOnly?: EnumBooleanStringifiedExtended;\n };\n}\n\nexport class CMDP_SGETUPLOADEDMEDIA_RESPONSE extends CMDP_SGETUPLOADEDMEDIA implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMEDIA[];\n public values: IKeyMaybeValue;\n}\n\n/** get list of all uploaded media ordered by upliad date descending, may have one channel id for filter */\nexport class CMDP_SGETUPLOADEDMEDIA2 implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETUPLOADEDMEDIA2;\n public params: baseParamsType &\n MayHaveChannelId & {\n mediaState?: EnumMediaState;\n mediaType?: ComaSeparatedValues<EnumMediaType> | EnumMediaType;\n linkState?: ComaSeparatedValues<ChannelMediaLinkState> | ChannelMediaLinkState;\n skip?: string; // default 0\n limit?: string; // default 50\n direction?: UploadedMediaDirection;\n /** get only mediaMd5, channelId, linkState, linkDate and cut off all mediaXXX fields, default is false */\n dropMediaFields?: EnumBooleanStringifiedExtended;\n sortBy?: \"linkDate\" | \"mediaCreated\" | string;\n } & {\n /** B2B only */\n usrKey?: string;\n };\n}\n\nexport class CMDP_SGETUPLOADEDMEDIA2_RESPONSE extends CMDP_SGETUPLOADEDMEDIA2 implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMEDIA[];\n public values: IKeyMaybeValue;\n}\n\n//** summary channel media */\nexport class CMDC_CHANNELMEDIASUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CHANNELMEDIASUMMARY;\n public params: channelIdType & {\n outAll: string;\n outSold: string;\n outOffer: string;\n outVideo: string;\n outAudio: string;\n outBitmap: string;\n inAll: string;\n inSold: string;\n inOffer: string;\n inVideo: string;\n inAudio: string;\n inBitmap: string;\n };\n}\n\n/** query media summary for channels */\nexport class CMDP_SGETCHANNELDMEDIASUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHANNELDMEDIASUMMARY;\n public params: baseParamsType & channelIdType;\n}\n\nexport class CMDP_SGETCHANNELDMEDIASUMMARY_RESPONSE extends CMDP_SGETCHANNELDMEDIASUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CHANNELMEDIASUMMARY[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETMEDIAHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMEDIAHISTORY;\n public params: baseParamsType &\n channelIdType & {\n filterDeleted?: EnumChannelFilterValues;\n filterMediaType?: ComaSeparatedValues<EnumMediaType>;\n filterLinkState?: ComaSeparatedValues<ChannelMediaLinkState>;\n filterDirection?: EnumMessageDirection | \"any\";\n limit?: string;\n offset?: string;\n sort?: EnumSortOrder;\n };\n}\n\nexport class CMDP_SGETMEDIAHISTORY_RESPONSE extends CMDP_SGETMEDIAHISTORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMSG[];\n public values: {\n count: string;\n total: string;\n };\n}\n\nexport class CMDP_SGETMEDIAHISTORYSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMEDIAHISTORYSUMMARY;\n public params: baseParamsType &\n channelIdType & {\n filterDeleted?: EnumChannelFilterValues;\n filterMediaType?: ComaSeparatedValues<EnumMediaType>;\n filterLinkState?: ComaSeparatedValues<ChannelMediaLinkState>;\n filterDirection?: EnumMessageDirection | \"any\";\n };\n}\n\nexport type MediaCounterType = Map<EnumMediaType, number>;\n\nexport class CMDP_SGETMEDIAHISTORYSUMMARY_RESPONSE extends CMDP_SGETMEDIAHISTORYSUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n counts: JSONString<MediaCounterType>;\n };\n}\n","import { ACTION, baseParamsType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport { channelIdType } from \"./channel\";\nimport { MediaMd5, MediaOffer } from \"./message\";\n\n/**\n * Frontent command for offer media.\n */\nexport class CMDP_SOPENMEDIAOFFER implements ICOMMAND {\n public action = ACTION.CMDP_SOPENMEDIAOFFER;\n public params: baseParamsType & channelIdType & MediaMd5 & MediaOffer & { text?: string };\n}\n\n/**\n * Response command for CMDP_SOPENMEDIAOFFER.\n */\nexport class CMDP_SOPENMEDIAOFFER_RESPONSE extends CMDP_SOPENMEDIAOFFER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * Frontend command for close of offer.\n */\nexport class CMDP_SCLOSEMEDIAOFFER implements ICOMMAND {\n public action = ACTION.CMDP_SCLOSEMEDIAOFFER;\n public params: baseParamsType &\n channelIdType & {\n messageId?: string;\n };\n}\n\n/**\n * Response command for CMDP_SCLOSEMEDIAOFFER.\n */\nexport class CMDP_SCLOSEMEDIAOFFER_RESPONSE extends CMDP_SCLOSEMEDIAOFFER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import {\n ACTION,\n baseParamsType,\n ChannelMediaLinkState,\n ICOMMAND,\n IKeyMaybeValue,\n IRESPONSE,\n MayHaveChannelId,\n RESULT,\n} from \"../cmd-protocol\";\nimport { channelIdType } from \"./channel\";\nimport { CMDC_CMSG, MediaFile, MediaPrice, MessageId, MessageParams, MessageReadOnlyParams } from \"./message\";\n\n/**\n * Frontent command for media purchase. Will be forwarded to users pool B2B backend with additional infos\n */\nexport class CMDP_SMEDIAPURCHASE implements ICOMMAND {\n public action = ACTION.CMDP_SMEDIAPURCHASE;\n public params: baseParamsType &\n channelIdType &\n /** the message id of related media offer */\n MessageId &\n /** MediaPrice is added to proxy call from Cmdontrol to B2B backend */\n MediaPrice &\n /** MediaFile is added to proxy call from CmdControl to B2B backend */\n MediaFile;\n}\n\n/**\n * Response command for CMDP_SMEDIAPURCHASE.\n */\nexport class CMDP_SMEDIAPURCHASE_RESPONSE extends CMDP_SMEDIAPURCHASE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * Inform the Session about purchase\n */\nexport class CMDC_MEDIAPURCHASED extends CMDC_CMSG {\n public action = ACTION.CMDC_MEDIAPURCHASED;\n public params: MessageParams &\n MessageReadOnlyParams &\n MediaFile &\n MediaPrice &\n MayHaveChannelId & { linkState?: ChannelMediaLinkState } & IKeyMaybeValue;\n}\n","import { IBACKENDPAYLOAD } from \"./backend\";\nimport { channelIdSelectOrFilter } from \"./channel\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { EnumMediaType, MediaOffer, MessageParams } from \"./message\";\n\nexport enum UploadStep {\n earlyreject = \"earlyreject\",\n lateaccept = \"lateaccept\",\n informuploaded = \"informuploaded\",\n transcoded = \"transcoded\",\n transcodeerror = \"transcodeError\",\n error = \"error\",\n}\n\n/** internal use only, may be changed without announce*/\nexport type UploadServiceReadOnlyParams = {\n step?: UploadStep;\n fileformat?: EnumMediaType;\n\n md5?: string;\n transactionID?: string;\n\n origfilename?: string;\n\n imgSrc?: string;\n imgSrcSet?: string;\n height?: string;\n width?: string;\n\n audioMp3?: string;\n audioOgg?: string;\n audioM4a?: string;\n audioDuration?: string;\n\n videoPoster?: string;\n videoPosterPixelated?: string;\n videoHls?: string;\n videoHeight?: string;\n videoWidth?: string;\n videoDuration?: string;\n};\n\n/**\n * the upload command\n * usage POST to \\{uploadMediaUrl\\}?action=CMDP_SUPLOADMEDIA&sessionId=\\{\\}&channelId=\\{\\}.....\n */\nexport class CMDP_SUPLOADMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPLOADMEDIA;\n public params: baseParamsType & channelIdSelectOrFilter & MessageParams & MediaOffer;\n}\n\n/**\n * Response for CMDP_SUPLOADMEDIA\n */\nexport class CMDP_SUPLOADMEDIA_RESPONSE extends CMDP_SUPLOADMEDIA implements IRESPONSE, IBACKENDPAYLOAD {\n public params: baseParamsType & channelIdSelectOrFilter & MessageParams & MediaOffer & UploadServiceReadOnlyParams;\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & {\n /** channels skipped from upload if media already was purchased, and you try to make a new offer */\n skippedChannels?: string;\n };\n /** backendpayload */\n public payload?: unknown;\n}\n","import { channelIdSelectOrFilter, channelIdType, IMayHaveChannelId } from \"./channel\";\nimport { EnumBooleanStringified, EnumCurrency } from \"../@types\";\nimport { SystemMessageKey } from \"./systemmessagekey\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { ChannelMediaLinkState, MayHaveChannelId } from \"./media\";\nimport { clientID } from \"./clivechat\";\nimport { chatIdType } from \"./chatstate\";\n\nexport enum MessageFlags {\n \"canDeleted\",\n \"isDeleted\",\n}\n\nexport enum EnumMessageFlagValue {\n NO = \"0\",\n YES = \"1\",\n}\n\nexport enum EnumMessageType {\n MAIL = \"mail\",\n CHAT = \"chat\",\n MESSENGER = \"msn\",\n SYSTEM = \"sys\",\n}\n\nexport enum EnumMessageDirection {\n IN = \"in\",\n OUT = \"out\",\n}\n\nexport enum EnumMediaType {\n BITMAP = \"Bitmap\",\n AUDIO = \"Audio\",\n VIDEO = \"Video\",\n /**\n * @deprecated/obsolete\n */\n TICKET_SHOW = \"TicketShow\",\n}\n\nexport enum EnumMediaState {\n UPLOAD = \"uploaded\",\n OK = \"ok\",\n TRANSCODING = \"transcode\",\n ERROR = \"error\",\n TRANSCODING_ERROR = \"transcodeError\",\n}\n\nexport enum EnumTicketType {\n TicketShow = \"ticketShow\",\n}\n\nexport enum EnumMessageStyle {\n GUEST = \"g\" /** depretacted */,\n SYSTEM = \"s\" /** depretacted */,\n INFO = \"info\",\n WARN = \"warn\",\n ERROR = \"error\",\n INFO_HIGHLIGHT = \"InfoHighlight\",\n}\n\nexport type Currency = {\n currency?: EnumCurrency;\n};\n\nexport type Chargeable = {\n isChargeable?: EnumBooleanStringified;\n};\n\n/** message params */\nexport type MessageParams = IMayHaveChannelId & {\n messageId?: string;\n /** your uniq key for message */\n messageKey?: SystemMessageKey | string;\n /** chat id */\n chatID?: string;\n /** text-message */\n text?: string;\n /** tip, euro cent */\n tip?: string;\n /** gift ids, coma separated */\n gift?: string;\n /** currency, todo: */\n currency?: EnumCurrency;\n /* url */\n link?: string;\n clientData?: string;\n /* no channel out time update on bulk messages */\n isBulk?: EnumBooleanStringified;\n /** reaction */\n reaction?: string;\n reactionTime?: string;\n /** template*/\n templateId?: string;\n};\n\nexport type MediaMd5 = {\n // md5 of the media\n mediaMd5?: string;\n};\n\nexport type MediaInfo = MediaMd5 & {\n /** the media attached */\n mediaType?: EnumMediaType | string;\n /** state of media attached */\n mediaState?: EnumMediaState | string;\n /** datetime of media*/\n mediaCreated?: string;\n linkState?: ChannelMediaLinkState;\n linkDate?: string;\n};\n\nexport type MediaPrice = Currency & {\n mediaPrice?: string;\n};\n\nexport type MediaOffer = Chargeable & MediaPrice;\n\nexport type ImageFile = MediaInfo & {\n /** Bitmap media*/\n imgSrc?: string;\n imgSrcSet?: string;\n imgHeight?: string;\n imgWidth?: string;\n imgSrcBlurred?: string;\n imgSrcSetBlurred?: string;\n};\n\nexport type AudioFile = MediaInfo & {\n /** Audio media*/\n audioMp3?: string;\n audioM4a?: string;\n audioOgg?: string;\n audioDuration?: string;\n};\n\nexport type VideoFile = MediaInfo & {\n /**Video media */\n videoPoster?: string;\n videoPosterBlurred?: string;\n videoFileUrl?: string;\n videoHls?: string;\n videoHeight?: string;\n videoWidth?: string;\n videoDuration?: string;\n};\n\nexport type MediaFile = ImageFile | AudioFile | VideoFile;\n\n/** id of the message */\nexport type MessageId = {\n messageId: string;\n};\n\nexport type RelationId = {\n /** messageId of related message */\n relationId?: string;\n relationText?: string;\n relationMediaType?: string;\n};\n\n/** more message params, readonly (set by server, ignored if set by client) */\nexport type MessageReadOnlyParams = {\n /** the uniq message id */\n messageId?: string;\n /** source of the message IN CMDP_MSG, writable for B2B session */\n msgType?: EnumMessageType;\n /** sent time */\n time?: string;\n /** timeSeen */\n timeSeen?: string;\n /** direction */\n direction?: EnumMessageDirection;\n /** sound name */\n sound?: string;\n /** Will be present for paid message **/\n priceCode?: string;\n /** the message was bought by the opponent*/\n isPaid?: EnumBooleanStringified.TRUE;\n /**\n * coma separated MessageFlags, const flags = cmd.params.flags ? cmd.params.flags.split(',').map((flag: string) =\\> flag.trim()) : [];\n * ignored IN CMDP_MSG\n */\n flags?: string | \"\";\n /*only for preview chats, indicates the preview video is run */\n previewRun?: \"1\" | \"0\" | string;\n\n canDelete?: EnumBooleanStringified.TRUE;\n isDeleted?: EnumBooleanStringified.TRUE;\n\n /** message style/importance */\n style?: EnumMessageStyle;\n} & RelationId &\n MediaFile &\n MediaOffer;\n\n/**\n * Command for transport of MessageType\n */\nexport class CMDC_CMSG implements ICOMMAND {\n public action = ACTION.CMDC_CMSG;\n public params: MessageParams & MessageReadOnlyParams & MediaFile & MediaOffer & MayHaveChannelId & IKeyMaybeValue;\n}\n\n/**\n * send message\n */\nexport class CMDP_MSG implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_MSG;\n public params: baseParamsType & MessageParams & channelIdSelectOrFilter;\n /** if jwt-session, any json-payload for transport to backend */\n public payload?: unknown;\n}\n\n/**\n * Response command for CMDP_MSG\n */\nexport class CMDP_MSG_RESPONSE extends CMDP_MSG implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n /** if jwt-session, any json-payload for transport to client */\n public payload?: unknown;\n}\n\n/**\n * send chat message\n */\nexport class CMDP_CMSG implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CMSG;\n public params: baseParamsType & MessageParams & clientID & chatIdType;\n /** if jwt-session, any json-payload for transport to backend */\n public payload?: unknown;\n}\n\n/**\n * Response command for CMDP_CMSG\n */\nexport class CMDP_CMSG_RESPONSE extends CMDP_CMSG implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n /** if jwt-session, any json-payload for transport to client */\n public payload?: unknown;\n}\n\n/**\n * delete of message\n * your message will be deleted on your and partner side, partner message will be deleted only on your side\n */\nexport class CMDP_MSGDELETE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_MSGDELETE;\n public params: baseParamsType & channelIdType & Partial<MessageId>;\n}\n\n/**\n * Response for CMDP_MSGDELETE\n */\nexport class CMDP_MSGDELETE_RESPONSE extends CMDP_MSGDELETE implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * reaction to message. s. IReaction and CMDP_SINIT.values.reactions\n * CMDC_CMSG will be sent by backend to update the message\n */\nexport class CMDP_SMSGREACTION implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SMSGREACTION;\n public params: baseParamsType &\n channelIdType &\n MessageId & {\n text?: string;\n /** if the text is empty or not set, the code musst be set to one of CMDP_SINIT.values.reactions */\n code?: string;\n /** reset reaction, if true then text & code are ignored */\n reset?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_MSGDELETE\n */\nexport class CMDP_SMSGREACTION_RESPONSE extends CMDP_SMSGREACTION implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * Estimate sending message. get count of possible recipients\n */\nexport class CMDP_SMSGESTIMATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SMSGESTIMATE;\n public params: baseParamsType &\n channelIdSelectOrFilter & {\n withMedia?: EnumBooleanStringified;\n mediaMd5?: string;\n /* if true, no recipientChannels & skippedChannels is return*/\n countOnly?: EnumBooleanStringified;\n };\n}\n/**\n * Response for CMDP_SMSGESTIMATE\n */\nexport class CMDP_SMSGESTIMATE_RESPONSE extends CMDP_SMSGESTIMATE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n channelCount: string;\n canReceiveCount: string;\n canReceiveChannels: string;\n canPurchaseCount: string;\n canPurchaseChannels?: string;\n hasPurchasedCount: string;\n hasPurchasedChannels?: string;\n };\n}\n\n/**\n use https://www.deepl.com/de/docs-api/translate-text/translate-text/\n for sourceLanguage & targetLanguage values\n */\nexport class CMDP_DEEPL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_DEEPL;\n public params: baseParamsType & {\n text: string;\n sourceLanguage?: string;\n targetLanguage: string;\n deeplId?: string;\n };\n}\n\nexport class CMDP_DEEPL_RESPONSE extends CMDP_DEEPL implements IRESPONSE {\n public result: RESULT;\n\n public commands: ICOMMAND[];\n\n public values: IKeyMaybeValue & {\n text: string;\n detectedLanguage: string;\n };\n}\n","import { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType } from \"../command/baseparams\";\n\nexport class CMDP_SETEXPOTOKEN implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETEXPOTOKEN;\n public params: baseParamsType & {\n token?: string;\n };\n}\n\n/**\n * reponse.\n */\nexport class CMDP_SETEXPOTOKEN_RESPONSE extends CMDP_SETEXPOTOKEN implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION, channelIdType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType, deviceIdType } from \"../command/baseparams\";\nimport { VideoSdkConfig } from \"./videosdk\";\nimport { EnumBooleanStringified, JSONString } from \"../../@types\";\n\nexport enum EnumMobileTokenType {\n FCM = \"fcm\",\n APN = \"apn\",\n VOIP = \"voip\",\n}\n\nexport enum EnumMobileVideoCallState {\n // caller or receiver action\n Cancelled = \"CANCELLED\",\n // receiver action\n Answered = \"ANSWERED\",\n // receiver action\n Declined = \"DECLINED\",\n /* avs denied*/\n FskDenied = \"FSKDENIED\",\n // others\n Busy = \"BUSY\",\n NoAnswer = \"NOANSWER\",\n Failed = \"FAILED\",\n Unknown = \"UNKNOWN\",\n}\n\nexport class CMDP_SETMOBILETOKEN implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETMOBILETOKEN;\n public params: baseParamsType & {\n type: EnumMobileTokenType;\n token: string;\n bundleId?: string;\n };\n}\n\nexport class CMDP_SETMOBILETOKEN_RESPONSE extends CMDP_SETMOBILETOKEN implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_STARTMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTMOBILEVIDEOCALL;\n public params: baseParamsType & channelIdType;\n}\n\nexport class CMDP_STARTMOBILEVIDEOCALL_RESPONSE extends CMDP_STARTMOBILEVIDEOCALL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: { videoSdkConfig: JSONString<VideoSdkConfig> };\n}\n\nexport class CMDC_STARTMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_STARTMOBILEVIDEOCALL;\n public params: channelIdType & {\n sessionID: string;\n ualias: string;\n imgSrc: string;\n videoSdkConfig: JSONString<VideoSdkConfig>;\n isSoftChat: EnumBooleanStringified;\n chatID?: string;\n };\n}\n\nexport class CMDP_UPDATEMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_UPDATEMOBILEVIDEOCALL;\n public params: baseParamsType & {\n videoSdkConfig: string;\n state: EnumMobileVideoCallState;\n };\n}\n\nexport class CMDP_UPDATEMOBILEVIDEOCALL_RESPONSE extends CMDP_UPDATEMOBILEVIDEOCALL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_UPDATEMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_UPDATEMOBILEVIDEOCALL;\n public params: channelIdType &\n deviceIdType & {\n sessionID: string;\n videoSdkConfig: JSONString<VideoSdkConfig>;\n state: EnumMobileVideoCallState;\n };\n}\n\nexport class CMDP_LOGOUTOTHERMOBILE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_LOGOUTOTHERMOBILE;\n public params: baseParamsType;\n}\n\nexport class CMDP_LOGOUTOTHERMOBILE_RESPONSE extends CMDP_LOGOUTOTHERMOBILE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringified, JSONString } from \"../../@types\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\n\nexport type MobileVideoCallScheduleType = {\n /*empty on add, obligatory on update */\n scheduleId?: string;\n startMinute: string;\n stopMinute: string;\n /*use binary semantic, \"1010000\" = M+W on, other days off*/\n weekDays: string;\n /*default is true*/\n active?: EnumBooleanStringified;\n /*when update & deleted*/\n deleted?: EnumBooleanStringified;\n};\n\nexport type MobileVideoCallScheduleTypeCMDC = Omit<MobileVideoCallScheduleType, \"scheduleId\"> & {\n scheduleId: string;\n};\n\nexport class CMDC_MVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_MVCSCHEDULE;\n public params: MobileVideoCallScheduleTypeCMDC;\n}\n\nexport class CMDP_SGETMVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMVCSCHEDULE;\n public params: baseParamsType & {\n /*optional to get the one schedule*/\n scheduleId?: string;\n };\n}\nexport class CMDP_SGETMVCSCHEDULE_RESPONSE extends CMDP_SGETMVCSCHEDULE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MVCSCHEDULE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTMVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPSERTMVCSCHEDULE;\n public params: baseParamsType & MobileVideoCallScheduleType;\n}\nexport class CMDP_SUPSERTMVCSCHEDULE_RESPONSE extends CMDP_SUPSERTMVCSCHEDULE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MVCSCHEDULE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETEMVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDELETEMVCSCHEDULE;\n public params: baseParamsType & { scheduleId: string };\n}\nexport class CMDP_SDELETEMVCSCHEDULE_RESPONSE extends CMDP_SDELETEMVCSCHEDULE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTMVCSCHEDULES implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPSERTMVCSCHEDULES;\n public params: baseParamsType & {\n schedules: JSONString<MobileVideoCallScheduleType[]>;\n };\n}\nexport class CMDP_SUPSERTMVCSCHEDULES_RESPONSE extends CMDP_SUPSERTMVCSCHEDULES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MVCSCHEDULE[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\n/**\n * Create new user account\n */\nexport class CMDP_SIGNUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SIGNUP;\n public params: baseParamsType & {\n login: string;\n password: string;\n ualias: string;\n language: string;\n };\n}\n\n/**\n * reponse\n */\nexport class CMDP_SIGNUP_RESPONSE extends CMDP_SIGNUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * query password reset\n */\nexport class CMDP_RESETPASSWORD implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_RESETPASSWORD;\n public params: baseParamsType & {\n login: string;\n language: string;\n };\n}\n\n/**\n * reponse for CMDP_RESETPASSWORD\n */\nexport class CMDP_RESETPASSWORD_RESPONSE extends CMDP_RESETPASSWORD implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * delete account\n */\nexport class CMDP_SDELETE_USER implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDELETE_USER;\n public params: baseParamsType;\n}\n\n/**\n * reponse for CMDP_SDELETE_USER\n */\nexport class CMDP_SDELETE_USER_RESPONSE extends CMDP_SDELETE_USER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { ACTION } from \"./command/action\";\nimport { MediaFile, MediaOffer, MessageParams } from \"./message\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { EnumBooleanStringified } from \"../@types\";\n\nexport type templateCategoryType = {\n categoryId: string;\n categoryName: string;\n categoryDeleted?: EnumBooleanStringified;\n};\n\nexport class CMDC_TPLCATEGORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_TPLCATEGORY;\n public params: templateCategoryType;\n}\n\nexport class CMDP_SGETTPLCATEGORIES implements ICOMMAND {\n public action = ACTION.CMDP_SGETTPLCATEGORIES;\n public params: baseParamsType;\n}\nexport class CMDP_SGETTPLCATEGORIES_RESPONSE extends CMDP_SGETTPLCATEGORIES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_TPLCATEGORY[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTTPLCATEGORY implements ICOMMAND {\n public action = ACTION.CMDP_SUPSERTTPLCATEGORY;\n public params: baseParamsType & templateCategoryType;\n}\nexport class CMDP_SUPSERTTPLCATEGORY_RESPONSE extends CMDP_SUPSERTTPLCATEGORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_TPLCATEGORY[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETETPLCATEGORY implements ICOMMAND {\n public action = ACTION.CMDP_SDELETETPLCATEGORY;\n public params: baseParamsType & { categoryId: string };\n}\nexport class CMDP_SDELETETPLCATEGORY_RESPONSE extends CMDP_SDELETETPLCATEGORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_TPLCATEGORY[];\n public values: IKeyMaybeValue;\n}\n\nexport type messageTemplateType = MessageParams &\n MediaFile &\n MediaOffer & {\n templateId: string;\n templateName?: string;\n categoryId?: string;\n templateTags?: ComaSeparatedValues<string>;\n templateText?: string;\n templateCreated: string;\n templateChanged?: string;\n templateDeleted?: EnumBooleanStringified;\n templateSent?: string;\n templateBought?: string;\n favorite?: EnumBooleanStringified;\n } & {\n umaId?: string;\n };\n\nexport class CMDC_MSGTEMPLATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_MSGTEMPLATE;\n public params: messageTemplateType;\n}\n\nexport class CMDP_SGETMSGTEMPLATES implements ICOMMAND {\n public action = ACTION.CMDP_SGETMSGTEMPLATES;\n public params: baseParamsType & {\n categoryId?: string;\n };\n}\nexport class CMDP_SGETMSGTEMPLATES_RESPONSE extends CMDP_SGETMSGTEMPLATES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MSGTEMPLATE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTMSGTEMPLATE implements ICOMMAND {\n public action = ACTION.CMDP_SUPSERTMSGTEMPLATE;\n public params: baseParamsType & messageTemplateType;\n}\nexport class CMDP_SUPSERTMSGTEMPLATE_RESPONSE extends CMDP_SUPSERTMSGTEMPLATE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MSGTEMPLATE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETEMSGTEMPLATE implements ICOMMAND {\n public action = ACTION.CMDP_SDELETEMSGTEMPLATE;\n public params: baseParamsType & { msgTplId: string };\n}\nexport class CMDP_SDELETEMSGTEMPLATE_RESPONSE extends CMDP_SDELETEMSGTEMPLATE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MSGTEMPLATE[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\n\n/*noop is the heartbeat and the main delivery command from server side*/\nexport class CMDP_NOOP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_NOOP;\n public params: baseParamsType;\n}\n\n/*noop_response arrives soon as one command available for you.*/\nexport class CMDP_NOOP_RESPONSE extends CMDP_NOOP implements IRESPONSE {\n public result: RESULT;\n /** server commands for your session/user */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringified } from \"../@types\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { channelIdType, IMayHaveChannelId, partnerIdKeyType } from \"./channel\";\n\n/** online state of session */\nexport type OnlineStateType = {\n /* 8230 */\n partnerId: string;\n /** model id */\n partnerKey: string;\n /** is online */\n online: EnumBooleanStringified;\n /** normal video vchat available */\n multi: EnumBooleanStringified;\n /** messaging available */\n messenger: EnumBooleanStringified;\n /** single vchat available */\n single: EnumBooleanStringified;\n /** soft vchat available */\n soft: EnumBooleanStringified;\n /** text over vchat available */\n text: EnumBooleanStringified;\n /** preview vchat available */\n preview: EnumBooleanStringified;\n /** visbility for Content Partnter */\n visible: EnumBooleanStringified;\n /** voyeur vchat available */\n voyeur: EnumBooleanStringified;\n /** voyeur into single vchat available */\n voyeur2s: EnumBooleanStringified;\n /** lobby vchat available */\n lobby: EnumBooleanStringified;\n /** toy state */\n toy: EnumBooleanStringified;\n /** mobile video */\n mobileVideoCall?: EnumBooleanStringified;\n};\n\n/**\n * Transport command for online state\n */\nexport class CMDC_ONLINESTATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_ONLINESTATE;\n public params: OnlineStateType & channelIdType;\n}\n\n/**\n * Query online state of contact\n */\nexport class CMDP_GETONLINESTATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETONLINESTATE;\n public params: baseParamsType & (IMayHaveChannelId | partnerIdKeyType);\n}\n\n/**\n * Response CMDP_GETONLINESTATE\n */\nexport class CMDP_GETONLINESTATE_RESPONSE extends CMDP_GETONLINESTATE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_ONLINESTATE[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * get all onlilne 8320 users\n */\nexport class CMDP_GETONLINESTATES implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETONLINESTATES;\n // coma-separated channelIds\n public params: baseParamsType &\n IMayHaveChannelId & {\n onlineOnly?: EnumBooleanStringified;\n mobileVideoCallOnly?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for @see CMDP_GETONLINECONTACTS\n */\nexport class CMDP_GETONLINESTATES_RESPONSE extends CMDP_GETONLINESTATES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_ONLINESTATE[];\n public values: IKeyMaybeValue & {\n channelCount: string;\n };\n}\n","import { IProductConfig } from \"./live/products-config\";\nimport { EnumService0900State, EnumService0900Status } from \"./live/supdate\";\nimport { IKeyMaybeValue } from \"./command/icommand\";\nimport { SupportedLanguage } from \"./command/baseparams\";\nimport { EnumBooleanStringified, EnumBooleanStringifiedExtended, JSONString } from \"../@types\";\n\nexport enum EnumSetTp {\n OFFLINE = \"0\",\n ONLINE = \"1\",\n GOING_ONLINE = \"2\",\n}\n\nexport enum EnumFsk {\n SIXTEEN = \"16\",\n EIGHTEEN = \"18\",\n}\n\nexport enum SessionFlag {\n MASTER = \"MASTER\",\n B2B = \"B2B\",\n FSK16 = \"FSK16\",\n FSK18 = \"FSK18\",\n BLOCKFSK16 = \"BLOCKFSK16\",\n FSKMASK = \"FSKMASK\", // FSK16 | FSK18,\n JWT = \"JWT\",\n MSN = \"MSN\",\n SHARED = \"SHARED\",\n ADMIN = \"ADMIN\",\n HASFSK18CHAT = \"HASFSK18CHAT\",\n /**\n * used only for avs moderator sessions\n */\n WEBCAMAVS = \"WEBCAMAVS\",\n FREEMODE = \"FREEMODE\", // SEXOLE only feature\n PARTYMODE = \"PARTYMODE\", // SEXOLE only feature\n BBS24 = \"BBS24\", // Exclusive babestation24 modus\n LOBBY_OPENED = \"LOBBY_OPENED\", // when lobby is started\n MOBILEVIDEOCALL = \"MOBILEVIDEOCALL\", // mobile video call is enabled\n WEBSIP = \"WEBSIP\", // websip is enabled\n}\n\nexport enum InfoWizard {\n FIRSTTIME = \"FIRST_TIME\",\n CONTENTSELL = \"CONTENT_SELL\",\n CONTENTSELLMULTI = \"CONTENT_SELL_MULTI\",\n TICKETSHOW = \"TICKET_SHOW\",\n CUSTOMTAGS = \"CUSTOM_TAGS\",\n TOY_UPDATE = \"TOY_UPDATE\",\n MSG_TEMPLATES = \"MSG_TEMPLATES\",\n}\n/**\n * @remarks String having <T>'s separated by ','\n */\nexport type ComaSeparatedValues<T extends string> = T | string;\n\n/* session state */\nexport interface SessionState extends IKeyMaybeValue {\n /** the session mnumber */\n sessionID: string;\n /** loginname, deprecated, use CMDP_GETUSERINFO */\n login: string;\n /** start time */\n startTime: string;\n /* deprecated */\n online?: EnumBooleanStringified;\n /* 0 offline, 1 online, 2 going online */\n setTp?: EnumSetTp;\n flags?: ComaSeparatedValues<SessionFlag> | SessionFlag;\n /** en de */\n language?: SupportedLanguage;\n /** unused */\n broadcastData?: string;\n /** Used for client-side short-cuts (live) */\n permanentData?: string;\n /** avatar */\n imgSrc?: string;\n /** FSKSTATE */\n fsk?: EnumFsk;\n /** SoftChat */\n fsk16?: EnumBooleanStringifiedExtended;\n /** service 0900 state, if missing in LOGIN values, the service is not available */\n service0900State?: EnumService0900State;\n /** service 0900 status */\n service0900Status?: EnumService0900Status;\n /** the live preview*/\n livePreviewState?: EnumBooleanStringified;\n /** only exclusive stream available*/\n showBabeStation24Tab?: EnumBooleanStringified;\n babeStation24State?: EnumBooleanStringified;\n /* the mobile video calls*/\n showMobileVideoCallTab?: EnumBooleanStringified;\n mobileVideoCallState?: EnumBooleanStringified;\n mobileVideoCallRun?: EnumBooleanStringified;\n mobileVideoCallChannelId?: string;\n mobileVideoCallDuration?: string;\n /** ticket show allowed*/\n canOpenLobby?: EnumBooleanStringified;\n /** web sip allowed*/\n showWebSipTab?: EnumBooleanStringified;\n webSIPState?: EnumBooleanStringified;\n userLinks?: JSONString<IProductConfig[\"links\"]>;\n chatMotto?: string;\n showInfoWizards?: ComaSeparatedValues<InfoWizard> | string;\n /** last MomentumChat usage Date*/\n lastMomentumUsage?: string;\n showToyTab?: EnumBooleanStringified;\n /* session jwt*/\n webtoken?: string;\n showBumpTab?: EnumBooleanStringified;\n showTemplateTab?: EnumBooleanStringified;\n selfieChannelId?: string;\n}\n","import { EnumStreamStatusType } from \"../@types\";\nimport { ACTION, baseParamsType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\n\nexport enum EnumPlayerEventType {\n Play = \"Play\",\n Error = \"Error\",\n Warn = \"Warn\",\n Info = \"Info\",\n}\n\n/** */\nexport class CMDP_SSTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTATUS;\n public params: baseParamsType & {\n type: EnumStreamStatusType;\n value: string;\n } & {\n /**comaseparated list for PROXY_STATE_INFO*/\n channelId?: string;\n /**comaseparated list for PROXY_STATE_INFO*/\n chatIDs?: string;\n };\n}\n\nexport class CMDP_SSTATUS_RESPONSE extends CMDP_SSTATUS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_SSTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_SSTATUS;\n public params: { type: EnumStreamStatusType };\n}\n","/** messageKey for msgTyp=\"sys\" */\nexport enum _SystemMessageKey {}\n\nexport enum SystemMessageKey {\n // custom Keys\n bonusCodeRedemption = \"bonusCodeRedemption\", // triggered when guest uses model's bonus code on Visit-X\n h_vcall_code = \"h_vcall_code\", // manual vcall code\n feedPostBought = \"feedPostBought\",\n feedPostTipped = \"feedPostTipped\",\n\n // standart keys\n categories = \"categories\", //Categories\n category = \"category\", //Category\n error_code_6010 = \"error_code_6010\", //Missing ticket for show.\n error_code_6011 = \"error_code_6011\", //The show hasn't started yet.\n exit_code_1 = \"exit_code_1\", //\n exit_code_100 = \"exit_code_100\", //You have ended this chat.\n exit_code_101 = \"exit_code_101\", //You have ended this chat.\n exit_code_102 = \"exit_code_102\", //You have ended this chat.\n exit_code_103 = \"exit_code_103\", //You have ended this chat.\n exit_code_104 = \"exit_code_104\", //This chat has been closed to allow a chat software update.\n exit_code_105 = \"exit_code_105\", //This chat has been closed due to an internal error. Oops.\n exit_code_106 = \"exit_code_106\", //Not enough money!\n exit_code_107 = \"exit_code_107\", //\n exit_code_108 = \"exit_code_108\", //\n exit_code_201 = \"exit_code_201\", //You were kicked by the Model!\n exit_code_202 = \"exit_code_202\", //{modelname} just went offline. Please try again later.\n exit_code_203 = \"exit_code_203\", //{modelname} just went offline. Please try again later.\n exit_code_204 = \"exit_code_204\", //{modelname} just went offline. Please try again later.\n exit_code_205 = \"exit_code_205\", //{modelname} just went offline. Please try again later.\n exit_code_206 = \"exit_code_206\", //{modelname} just went offline. Please try again later.\n exit_code_207 = \"exit_code_207\", //{modelname} just went offline. Please try again later.\n exit_code_208 = \"exit_code_208\", //{modelname} just went offline. Please try again later.\n exit_code_210 = \"exit_code_210\", //{modelname} just went offline. Please try again later.\n exit_code_211 = \"exit_code_211\", //{modelname} just went offline. Please try again later.\n exit_code_212 = \"exit_code_212\", //{modelname} just went offline. Please try again later.\n exit_code_213 = \"exit_code_213\", //{modelname} just went offline. Please try again later.\n exit_code_214 = \"exit_code_214\", //{modelname} just went offline. Please try again later.\n exit_code_215 = \"exit_code_215\", //{modelname} just went offline. Please try again later.\n exit_code_216 = \"exit_code_216\", //{modelname} just went offline. Please try again later.\n exit_code_301 = \"exit_code_301\", //You were kicked by an admin!\n exit_code_302 = \"exit_code_302\", //Age verification is successful\n exit_code_303 = \"exit_code_303\", //Sorry, you are too young\n exit_code_304 = \"exit_code_304\", //Age verification was not successful. No picture\n exit_code_305 = \"exit_code_305\", //Webcam AVS process was canceled by guest\n exit_code_306 = \"exit_code_306\", //Webcam AVS process failed with technical reason\n exit_code_401 = \"exit_code_401\", //Sorry, you exceeded your preview limit!\n exit_code_402 = \"exit_code_402\", //Sorry, you exceeded your preview limit!\n exit_code_403 = \"exit_code_403\", //{modelname} is offline\n exit_code_404 = \"exit_code_404\", //The model is in a private chat\n exit_code_405 = \"exit_code_405\", //\n exit_code_406 = \"exit_code_406\", //\n exit_code_407 = \"exit_code_407\", //The model has preview disabled\n exit_code_501 = \"exit_code_501\", //You have exceeded your Videotime-Limit!\n exit_code_502 = \"exit_code_502\", //You have exceeded your Free-Preview-Limit!\n exit_code_503 = \"exit_code_503\", //This chat has been closed because the amateur has rejected the user's age status.\n exit_code_601 = \"exit_code_601\", //The model did not accept your Softchat request!\n exit_code_602 = \"exit_code_602\", //This chat has been closed because you have commenced an age verification check.\n exit_code_901 = \"exit_code_901\", //This chat has been closed because en error has occurred. Error code:\n exit_code_902 = \"exit_code_902\", //This chat has been closed because you have started a new chat.\n exit_code_903 = \"exit_code_903\", //This chat has been closed because Voice Call has been ended.\n exit_code_904 = \"exit_code_904\", //This chat has been closed because you have started a new chat.\n exit_code_905 = \"exit_code_905\", //This chat has been closed because en error has occurred. Error code:\n exit_code_906 = \"exit_code_906\", //The model entered a Singlechat!\n exit_code_907 = \"exit_code_907\", //{modelname} just went offline. Please try again later.\n exit_code_908 = \"exit_code_908\", //The model entered a Show!\n exit_code_910 = \"exit_code_910\", //The video connection was interrupted. Please try again later.\n exit_code_911 = \"exit_code_911\", //Free mode was cancelled.\n exit_code_913 = \"exit_code_913\", //Kicked by server\n exit_code_914 = \"exit_code_914\", //Chat was terminated due to a technical error.\n exit_code_920 = \"exit_code_920\", //This chat has been closed because the amateur has been blocked.\n exit_code_921 = \"exit_code_921\", //{modelname} just went offline. Please try again later.\n exit_code_990 = \"exit_code_990\", //This chat has been closed or could not proceed because a time-out has occurred.\n exit_code_991 = \"exit_code_991\", //This chat has been closed because an error has occurred. Error code:\n exit_code_995 = \"exit_code_995\", //This chat has been closed because an error has occurred. Error code:\n exit_code_996 = \"exit_code_996\", //This chat has been closed because an error has occurred. Error code:\n exit_code_997 = \"exit_code_997\", //This chat has been closed because an error has occurred. Error code:\n exit_code_998 = \"exit_code_998\", //This chat has been closed because an error has occurred. Error code:\n exit_code_999 = \"exit_code_999\", //This chat has been closed because the amateur has gone offline. This may have occurred unexpectedly.\n exit_code_lobby = \"exit_code_lobby\", //Show has ended. Thank you for participating.\n exit_code_private_show_end = \"exit_code_private_show_end\", //Show has ended. Thank you for participating.\n g_chat_auto_charged = \"g_chat_auto_charged\", //Your account was automatically charged.\n g_chat_host_micro_off = \"g_chat_host_micro_off\", //%s's microphone is OFF.\n g_chat_host_micro_on = \"g_chat_host_micro_on\", //%s's microphone is now ON.\n g_discount_client = \"g_discount_client\", //%s gives you discount of %s%% for this chat and for the next %s days\n g_discount_client_once = \"g_discount_client_once\", //%s gives you discount of %s%% for this chat\n g_single_not_started = \"g_single_not_started\", //Private Chat is not started.\n g_single_query = \"g_single_query\", //%s invites you to a Private chat and wants to give you a private-only pleasure without other observers. The new price for the Video-Chat will be: %s\n g_single_query_contenpartner = \"g_single_query_contenpartner\", //Do you want to start the private-chat with the adopted price?\n g_single_query_start = \"g_single_query_start\", //Invite %s to a Private chat? (Price %s per minute).\n g_single_query_start1 = \"g_single_query_start1\", //Woud you like to switch to Private Chat (%s per minute)?\n g_single_rejected = \"g_single_rejected\", //Private chat has been rejected by %s.\n g_single_started = \"g_single_started\", //Private chat started.\n g_video_cancel = \"g_video_cancel\", //video interrupted, billing stopped. you may try to restart video\n g_video_delayed = \"g_video_delayed\", //Your player is downloading components for high quality video chat. This is done only once for your computer and is free of charge.\n g_video_delerror = \"g_video_delerror\", //The high quality components could not be installed. The player will fall back to standard quality. You can contact support for help to install the failed components\n g_video_reconnect = \"g_video_reconnect\", //video interrupted, reconnecting (Important: video downtime is not billed)\n host_speaks = \"host_speaks\", //chats in\n h_chat_admin_start = \"h_chat_admin_start\", //A staff member of VISIT has entered your chat.\n h_chat_admin_stop = \"h_chat_admin_stop\", //A staff member of VISIT-X has left your chat.\n h_chat_audio_start = \"h_chat_audio_start\", //%s can listen to your voice, when he turns on the speakers.\n h_chat_ban_failed = \"h_chat_ban_failed\", //A ban is not available.\n h_chat_ban_ok = \"h_chat_ban_ok\", //A ban is successful.\n h_chat_button_yes_close = \"h_chat_button_yes_close\", //Yes, close the chat\n h_chat_cam2cam_running = \"h_chat_cam2cam_running\", //Cam2Cam active\n h_chat_cam2cam_start = \"h_chat_cam2cam_start\", //%s turned on his cam (cam2cam chat)\n h_chat_cam2cam_stop = \"h_chat_cam2cam_stop\", //%s turned off his cam\n h_chat_category_from = \"h_chat_category_from\", //started from your category: %s\n h_chat_chat_closed = \"h_chat_chat_closed\", //Live chat closed.\n h_chat_chat_created = \"h_chat_chat_created\", //%s starts\n h_chat_client_software = \"h_chat_client_software\", //Client Connection with %s\n h_chat_conversion_info_has_top_up = \"h_chat_conversion_info_has_top_up\", //%s did already top up money. Try to get him into your video chat.\n h_chat_conversion_info_no_top_up = \"h_chat_conversion_info_no_top_up\", //If %s tops up money in the chat or up to 30 minutes afterwards (phone access excluded), you will receive a conversion bonus.\n h_chat_conversion_start = \"h_chat_conversion_start\", //%s has entered your conversion chat. He can see you, write with you, but can't hear you.\n h_chat_duration = \"h_chat_duration\", //duration\n h_chat_freeuserconv = \"h_chat_freeuserconv\", //This guest can chat %s minutes with you for free, but you don't get commission on this. So, excite him and try to persuade him to recharge his prepaid account. We will reward you with a 10 EUR conversion bonus!\n h_chat_free_mode_converted = \"h_chat_free_mode_converted\", //Free Chat with %s converted.\n h_chat_fsk_attention = \"h_chat_fsk_attention\", //Attention Soft-Chat!. You can only make a flirt and soft erotic show.\n h_chat_fsk_denied = \"h_chat_fsk_denied\", //You have denied the Soft-Chat.\n h_chat_fsk_text_warn = \"h_chat_fsk_text_warn\", //You are in a softchat session, please watch your language (offending message not delivered)\n h_chat_fsk_wait = \"h_chat_fsk_wait\", //Please wait until your soft chat is accepted!\n h_chat_fsk_accepted = \"h_chat_fsk_accepted\",\n h_chat_guest_mobile = \"h_chat_guest_mobile\", //This Guest visits you via a mobile device. He cannot write as fast as usual.\n h_chat_guest_preview_start = \"h_chat_guest_preview_start\", //VIP Live Preview started\n h_chat_guest_preview_start2 = \"h_chat_guest_preview_start2\", //%s started\n h_chat_guest_sound_off = \"h_chat_guest_sound_off\", //%s cannot listen to your voice.\n h_chat_guest_sound_on = \"h_chat_guest_sound_on\", //%s can listen to your voice.\n h_chat_guest_video_start = \"h_chat_guest_video_start\", //Livechat started\n h_chat_guest_video_start_price = \"h_chat_guest_video_start_price\", //Livechat started (%s / min)\n h_chat_guest_visit = \"h_chat_guest_visit\", //This is the %d visit in your chat (first time: %s, last time: %s)\n h_chat_guest_visit_first = \"h_chat_guest_visit_first\", //This is the first visit in your chat\n h_chat_guest_voyeur_shown = \"h_chat_guest_voyeur_shown\", //You have left the Voyeurchat and in a regular video chat now.\n h_chat_guest_voyeur_start = \"h_chat_guest_voyeur_start\", //Voyeurcam started\n h_chat_guest_voyuer_start_info = \"h_chat_guest_voyuer_start_info\", //You are invisible until you start typing!\n h_chat_guest_voyuer_start_info_price = \"h_chat_guest_voyuer_start_info_price\", //You are invisible until you start typing for %s / min!\n h_chat_guest_voyuer_start_price = \"h_chat_guest_voyuer_start_price\", //Voyeurcam started (%s / min)\n h_chat_info_about = \"h_chat_info_about\", //Info about chat with %s\n h_chat_kicked = \"h_chat_kicked\", //You kicked %s from your chat.\n h_chat_lobby_start = \"h_chat_lobby_start\", //%s started\n h_chat_lobby_stop = \"h_chat_lobby_stop\", //%s has end.\n h_chat_lovense_not_available = \"h_chat_lovense_not_available\", //For this user the Toy Control function is not available - please do not mention it!\n h_chat_name_preview = \"h_chat_name_preview\", //Livechat Preview\n h_chat_name_video = \"h_chat_name_video\", //Livechat\n h_chat_name_voyeur = \"h_chat_name_voyeur\", //Voyeur Livechat\n h_chat_note_caption = \"h_chat_note_caption\", //Your notes\n h_chat_note_create = \"h_chat_note_create\", //Create a note\n h_chat_note_edit = \"h_chat_note_edit\", //Details/Edit\n h_chat_note_not_available = \"h_chat_note_not_available\", //No notes can be created for this guest\n h_chat_not_visitx_guest = \"h_chat_not_visitx_guest\", //This user is logged on a partner site, please never mention VISIT!\n h_chat_no_history = \"h_chat_no_history\", //No chat histoy found.\n h_chat_party_mode_converted = \"h_chat_party_mode_converted\", //Party Chat with %s converted.\n h_chat_paused_4107 = \"h_chat_paused_4107\", //%s credits are exhausted. He has the chance to refill some money immediately. Meanwhile he is not able to see you or to answer you. Encourage him to refill his credits.\n h_chat_please_micro_on = \"h_chat_please_micro_on\", //Please turn ON your microphone.\n h_chat_preview_chat = \"h_chat_preview_chat\", //Livechat\n h_chat_preview_live = \"h_chat_preview_live\", //Livechat Preview\n h_chat_preview_start = \"h_chat_preview_start\", //%s is watching your free live preview. You are able to chat.\n h_chat_preview_start_voucher = \"h_chat_preview_start_voucher\", //%s has entered a chat he already paid via voucher\n h_chat_preview_stop = \"h_chat_preview_stop\", //Free preview for %s is closed.\n h_chat_preview_vip = \"h_chat_preview_vip\", //VIP Live Preview\n h_chat_pseudo_user = \"h_chat_pseudo_user\", //No Mailbox (no VIP codes)\n h_chat_rectuited_guest = \"h_chat_rectuited_guest\", //Recruited guest:\n h_chat_single_available = \"h_chat_single_available\", //Private chat available, but inactive.\n h_chat_single_not_available = \"h_chat_single_not_available\", //Private chat not available\n h_chat_single_running = \"h_chat_single_running\", //Private chat active\n h_chat_stop = \"h_chat_stop\", //%s has left your chat\n h_chat_stop_guest_error = \"h_chat_stop_guest_error\", //%s has technical issues and left your chat\n h_chat_test_chat = \"h_chat_test_chat\", //This is a test chat with your test account.\n h_chat_text_chat_goal_video = \"h_chat_text_chat_goal_video\", //This user is in your Text-Chat and cannot see you. Goal: Win him for the video chat.\n h_chat_text_muted = \"h_chat_text_muted\", //You blocked %s from writing messages.\n h_chat_text_start = \"h_chat_text_start\", //%s has entered your Text-Chat.\n h_chat_text_to_video = \"h_chat_text_to_video\", //%s has switched to Video-Chat\n h_chat_text_unmuted = \"h_chat_text_unmuted\", //%s is allowed to write text messages again.\n h_chat_tip = \"h_chat_tip\", //You have just received a chat bonus from %s over %s Cent!\n h_chat_tip_no_price = \"h_chat_tip_no_price\", //You have just received a chat bonus from %s!\n h_chat_unban_ok = \"h_chat_unban_ok\", //The video chat block has been removed.\n h_chat_url_blocked = \"h_chat_url_blocked\", //X-URL-blocked-X\n h_chat_userisnovip = \"h_chat_userisnovip\", //VIP member.No\n h_chat_userisvip = \"h_chat_userisvip\", //VIP membership\n h_chat_video_start = \"h_chat_video_start\", //%s has entered your Video-Chat\n h_chat_video_start_voyeur = \"h_chat_video_start_voyeur\", //A voyeur is watching your cam. As long as he stays anonymous he can neither see what you are typing nor chat with you.\n h_chat_voyer2single_video_disabled = \"h_chat_voyer2single_video_disabled\", //Please remember that you do not have allowed voyeurs while private chat.\n h_chat_voyeur2single = \"h_chat_voyeur2single\", //%s is currently busy in a Private Chat. You cannot type at the moment!\n h_chat_voyeur2single_off = \"h_chat_voyeur2single_off\", //%s has left the Private Chat. You are now able to start the text chat!\n h_chat_voyeur2single_video_audio_warn = \"h_chat_voyeur2single_video_audio_warn\", //Please remember that you have allowed voyeurs while private chat. Those voyeurs are also able to hear you.\n h_chat_voyeur2single_video_warn = \"h_chat_voyeur2single_video_warn\", //Please remember that you have allowed voyeurs while private chat. Those voyeurs are not able to hear you.\n h_chat_voyeur_shown = \"h_chat_voyeur_shown\", //%s first watched you as voyeur and has now entered a regular Chat with you\n h_chat_voyuer = \"h_chat_voyuer\", //A voyeur\n h_code_4002 = \"h_code_4002\", //Wrong user name or password\n h_code_4003 = \"h_code_4003\", //Access denied\n h_code_4004 = \"h_code_4004\", //Session expiered. Please login again.\n h_code_4006 = \"h_code_4006\", //Login failed. Incorrect username or password.\n h_discount_available = \"h_discount_available\", //Discount available but not granted\n h_discount_current = \"h_discount_current\", //Current Discount is %s% (until %s GMT)\n h_discount_invalid = \"h_discount_invalid\", //It is not possible to set a discount that is less than the current discount or expires sooner.\n h_discount_not_available = \"h_discount_not_available\", //Discount is not available\n h_discount_setforinfo = \"h_discount_setforinfo\", //With this function you grant a %s discount on all videochats and private chats until a certain time.\n h_discount_set_ok = \"h_discount_set_ok\", //You gave %s a %s%% discount.\n h_error_2000 = \"h_error_2000\", //OK\n h_error_4002 = \"h_error_4002\", //Login failed. Incorrect username or password.\n h_error_4003 = \"h_error_4003\", //This login was locked and cannot currently be used for video chats. For further information please contact support team.\n h_error_4004 = \"h_error_4004\", //Your session has expired. Please log in.\n h_error_4006 = \"h_error_4006\", //Login failed. Incorrect username or password.\n h_error_4008 = \"h_error_4008\", //Too many login attempts\n h_error_4009 = \"h_error_4009\", //missing or incomplete session settings\n h_error_4010 = \"h_error_4010\", //account holder already online in this categorie with another profile\n h_error_4011 = \"h_error_4011\", //too many profiles of this account holder online.\n h_error_4012 = \"h_error_4012\", //maximum number of profiles for this categorie reached\n h_error_4013 = \"h_error_4013\", //ATTENTION: This software is outdated and can''t be used anymore. Please go to https://www.vxlive.net. If you need help, please contact your support.\n h_error_4014 = \"h_error_4014\", //Please confirm your email address in order to go online.\n h_error_4015 = \"h_error_4015\", //No Audio is available\n h_error_4016 = \"h_error_4016\", //\n h_error_4020 = \"h_error_4020\", //running chats, cannot stop sending\n h_error_4104 = \"h_error_4104\", //chat not found\n h_error_4141 = \"h_error_4141\", //Not enough credit.\n h_error_5001 = \"h_error_5001\", //Invalid Parameter\n h_error_5004 = \"h_error_5004\", //An unexpected error has occurred.\n h_error_5005 = \"h_error_5005\", //Not implemented\n h_error_dberror = \"h_error_dberror\", //An unexpected error has occurred.\n h_error_login4002 = \"h_error_login4002\", //Login failed. Incorrect username or password.\n h_error_login4003 = \"h_error_login4003\", //This login was locked and cannot currently be used for video chats. For further information please contact support team.\n h_error_login4006 = \"h_error_login4006\", //Login failed. Incorrect username or password.\n h_error_login4007 = \"h_error_login4007\", //duplicate session found, already logged in\n h_error_login4008 = \"h_error_login4008\", //force logout duplicate session failed\n h_error_video_send_failed = \"h_error_video_send_failed\", //The videoconnection was lost.\n h_instant_start = \"h_instant_start\", //A user is watching your Live Preview.\n h_instant_stop = \"h_instant_stop\", //A user is not watching your Live Preview anymore.\n h_media_audio_error = \"h_media_audio_error\", //Audio message could not be delivered\n h_media_audio_informuploaded = \"h_media_audio_informuploaded\", //Audio message is being recorded ....\n h_media_audio_purchased = \"h_media_audio_purchased\", //Your audio was bought by %s for %s %s.\n h_media_bitmap_error = \"h_media_bitmap_error\", //the upload is failed\n h_media_bitmap_purchased = \"h_media_bitmap_purchased\", //Your Picture was bought by %s for %s %s.\n h_media_cam2cam_purchased = \"h_media_cam2cam_purchased\", //Your private videocall was bought by %s for %s %s.\n h_media_sold = \"h_media_sold\", //Sold!\n h_media_video_error = \"h_media_video_error\", //Video message could not be delivered\n h_media_video_informuploaded = \"h_media_video_informuploaded\", //Video message is being recorded ....\n h_media_video_purchased = \"h_media_video_purchased\", //Your video was bought by %s for %s %s.\n h_queryfsk_btn0 = \"h_queryfsk_btn0\", //Refuse\n h_queryfsk_btn1 = \"h_queryfsk_btn1\", //Accept\n h_queryfsk_button_caption = \"h_queryfsk_button_caption\", //Deactivate Soft-Chat.\n h_queryfsk_caption = \"h_queryfsk_caption\", //Soft-Chat request.\n h_queryfsk_text = \"h_queryfsk_text\", //Soft-Chat request from %s. If you accept, you are not allowed to show more than topless. Accept?\n h_queryfsk_text_kick = \"h_queryfsk_text_kick\", //All current Soft-Chats will be terminated and all users will be kicked out immediately. Are you sure you want to disable the Softchat?\n h_session_appear_offline = \"h_session_appear_offline\", //Your stream is arrived and can be made available for guests. ATTENTION! You have to deactivate \"Appear offline\" in order to be displayed as ONLINE for guests!\n h_session_audio_device_error = \"h_session_audio_device_error\", //Your microphone doesn't properly work. Please check.\n h_session_audio_device_frozen = \"h_session_audio_device_frozen\", //The software detected, that the current Micro is mute. Please check that the micro device is properly positioned, switched on, connected to the pc and -if applicable- that required software is running.\n h_session_audio_loudness_ok = \"h_session_audio_loudness_ok\", //Your sound is working correctly again. Enjoy your live chat!\n h_session_audio_no_loudness = \"h_session_audio_no_loudness\", //The microphone is not reacting. Please check your settings to make sure that it has power and is turned on.\n h_session_audio_off = \"h_session_audio_off\", //Your Microphone is OFF.\n h_session_audio_on = \"h_session_audio_on\", //Your Microphone is ON\n h_session_button_cancel = \"h_session_button_cancel\", //Cancel\n h_session_button_no = \"h_session_button_no\", //No\n h_session_button_yes = \"h_session_button_yes\", //Yes\n h_session_cpu_overload = \"h_session_cpu_overload\", //Your computer is overloaded and can´t stream a live picture! Cancel running programs that affect the performance (CPU) of your computer.\n h_session_error = \"h_session_error\", //An unexpected error has occurred.\n h_session_free_mode_off = \"h_session_free_mode_off\", //==============ATENCIÓN: FREE CHAT DESACTIVADO================\n h_session_free_mode_on = \"h_session_free_mode_on\", //==========ATENCIÓN: EL MODO FREE CHAT ESTÁ ACTIVADO==========\n h_session_fsk_mixed_profile = \"h_session_fsk_mixed_profile\", //This profile is also available for guests without age verification. You will be asked for each chat if you´d like to allow this guest to enter your chat.\n h_session_guest_offline = \"h_session_guest_offline\", //%s is currently offline and cannot accept your invitation\n h_session_image_too_small = \"h_session_image_too_small\", //The image is too small\n h_session_livepreview_off = \"h_session_livepreview_off\", //The live chat preview is OFF\n h_session_livepreview_on = \"h_session_livepreview_on\", //The live chat preview is ON\n h_session_lobby_not_available = \"h_session_lobby_not_available\", //The ticket live show is not available or \"Appear offline\" is activated!\n h_session_lobby_not_planed = \"h_session_lobby_not_planed\", //No scheduled ticket show in upcoming 30 minutes\n h_session_logout_by_you = \"h_session_logout_by_you\", //You have logged off.\n h_session_media_purchased = \"h_session_media_purchased\", //The Media was purchased\n h_session_mixed_profile_auto_off = \"h_session_mixed_profile_auto_off\", //We just disabled your participation in softchats. When you participate in softchats you have to accept softchat-requests of users.\n h_session_mixed_profile_no = \"h_session_mixed_profile_no\", //You haven't been unlocked for soft chat yet. Please contact our support.\n h_session_mixed_profile_not_available = \"h_session_mixed_profile_not_available\", //Softchat is not possible in the category 'video'.\n h_session_mixed_profile_off = \"h_session_mixed_profile_off\", //Softchat is OFF. Turn it on again, if you have ended your hardcore show (in softchat you are not allowed to show more than topless).\n h_session_mixed_profile_on = \"h_session_mixed_profile_on\", //Soft-Chat is ON. VERY IMPORTANT: You are only allowed to accept a softchat user, If you are not showing more than topless in this moment.\n h_session_mixed_profile_reminder = \"h_session_mixed_profile_reminder\", //No users in chat? Activate the Soft-Chat and become available for more users.\n h_session_msg_blocked = \"h_session_msg_blocked\", //Your message could not be sent.\n h_session_no_video_allowed = \"h_session_no_video_allowed\", //You are offline now. Your cannot send just a vido anymore. This option is extinguished.\n h_session_offline = \"h_session_offline\", //You are now OFFLINE. See you soon!\n h_session_offline_title = \"h_session_offline_title\", //Your Videochat is offline.\n h_session_old_ssw = \"h_session_old_ssw\", //ATTENTION: In a few days it won’t be possible to go online with this version of VXsoftware. Please download the newest version of VXsoftware; this update does only take a few minutes. DOWNLOAD HERE.\n h_session_online = \"h_session_online\", //You are now ONLINE, have fun!\n h_session_online_today = \"h_session_online_today\", //Your total online time today: %s\n h_session_partner_blocked = \"h_session_partner_blocked\", //Your message could not be sent. Partner does not exist.\n h_session_party_mode_off = \"h_session_party_mode_off\", //========ATENCIÓN: EL MODO PARTY CHAT ESTÁ DESACTIVADO========\n h_session_party_mode_on = \"h_session_party_mode_on\", //==========ATENCIÓN: EL MODO PARTY CHAT ESTÁ ACTIVADO==========\n h_session_preview_picture_missed = \"h_session_preview_picture_missed\", //ATTENTION: YOU DO NOT HAVE A PREVIEW PICTURE IN YOUR PROFILE. WITHOUT A PREVIEW PICTURE YOUR PROFILE WONT BE DISPLAYED\n h_session_preview_picture_upload = \"h_session_preview_picture_upload\", //Upload a preview picture.\n h_session_service0900state_turnoff = \"h_session_service0900state_turnoff\", //Your service number is deactivated\n h_session_service0900state_turnon = \"h_session_service0900state_turnon\", //Your service number is now active\n h_session_singlec2c_query_declined = \"h_session_singlec2c_query_declined\", //The invitation to private video chat was declined from %s.\n h_session_singlec2c_query_sent = \"h_session_singlec2c_query_sent\", //The invitation to private video chat has been sent to %s.\n h_session_singlec2c_query_timeout = \"h_session_singlec2c_query_timeout\", //%s did not respond to your private video chat invitation.\n h_session_stream_error = \"h_session_stream_error\", //Your stream is corrupt. Please restart your streaming tool and check the settings.\n h_session_stream_missed = \"h_session_stream_missed\", //Your stream is not arriving. Please check the settings or restart the streamtool\n h_session_stream_not_found = \"h_session_stream_not_found\", //Your stream is not found. Please check the Software.\n h_session_stream_restart = \"h_session_stream_restart\", //Your video stream will restart...\n h_session_stream_server_down = \"h_session_stream_server_down\", //The videoconnection was lost. Please start your stream again.\n h_session_stream_stop = \"h_session_stream_stop\", //The videostream was lost.\n h_session_stream_wait = \"h_session_stream_wait\", //Please wait until your videostream is accepted...\n h_session_too_many_pinned_channels = \"h_session_too_many_pinned_channels\", //You have too many pinned contacts\n h_session_toy_start = \"h_session_toy_start\", //Lovense started\n h_session_toy_stop = \"h_session_toy_stop\", //Lovense finished\n h_session_user_locked = \"h_session_user_locked\", //Your account is temporarily locked. Please try again later or call our support.\n h_session_video_device_error = \"h_session_video_device_error\", //Sorry. You have been taken offline, because your Webcam transmitted a still picture.lease check your Webcam.\n h_session_video_device_frozen = \"h_session_video_device_frozen\", //ATTENTION: Please check your Webcam, you are sending a still picture.\n h_single_error = \"h_single_error\", //The Private chat could not be initiated due to an unexpected error\n h_single_init_failed = \"h_single_init_failed\", //The invitation for a Private chat could not be delivered.\n h_single_init_ok = \"h_single_init_ok\", //An invitation has been sent. Waiting for answer.\n h_single_not_available = \"h_single_not_available\", //Private chat are not available.\n h_single_query = \"h_single_query\", //%s invites you to a Private chat. Accept?\n h_single_rejected = \"h_single_rejected\", //Your guest actively denied your Private chat invitation\n h_single_request_90s = \"h_single_request_90s\", //Private chat can only be started after a minimum of 90 seconds. This is a security feature to prevent abuse.\n h_single_started = \"h_single_started\", //Private chat started.\n h_single_timeout = \"h_single_timeout\", //Your guest did not decide on the Request for a certain time, so the request was cancelled automatically\n h_test_0 = \"h_test_0\", //Test successful! Click <OK> to go online. Now you can start chatting.\n h_test_100 = \"h_test_100\", //An unknown error occured, please try later again. You can use the \"feedback\" button to contact our support.\n h_test_101 = \"h_test_101\", //Your webcam doesn´t broadcast any video. You only broadcast video to a guest if you can see your preview.\n h_test_102 = \"h_test_102\", //Your camera is broadcasting a freeze image right now, please check your webcam settings!\n h_test_103 = \"h_test_103\", //An error occured while using your microphone, please check it.\n h_test_104 = \"h_test_104\", //An error occured while using your microphone, please check it. Is it muted?\n h_test_105 = \"h_test_105\", //The connection to server failed.1. Please check your internet connection (are you online?) 2. Please check your firewall adjustment: Is VX-Software allowed to send data to the internet? Please ask your firewall provider regarding the settings you have to make to allow programs sending data to the internet.\n h_test_106 = \"h_test_106\", //encoder error. try later.\n h_test_107 = \"h_test_107\", //The connection to the video server has been interrupted. Please check your internet connection.\n h_test_109 = \"h_test_109\", //Your computer is overloaded.\n h_test_110 = \"h_test_110\", //Your camera resolution is too high. The maximum resolution for your bandwidth is %s. Please go back and set a smaller resolution.\n h_test_200 = \"h_test_200\", //This test is outdated. Please repeat it.\n h_test_201 = \"h_test_201\", //Your internet connection is too slow to broadcast sound and guests will receive just a defictive sound. Please click <back> and turn off the microphone.\n h_test_202 = \"h_test_202\", //Your internet connection is too slow for broadcasting video with a high resolution. Click <back> and choose the format \"320x240\".\n h_test_203 = \"h_test_203\", //Please check your camera settings and your internet connection because you are not broadcasting any video. Tip: If you are using a firewall, please allow VX-Software to broadcast the video to the internet.\n h_test_204 = \"h_test_204\", //Your CPU is too slow to encode video with a high resolution. Click <back> and choose the format max 848x360.\n h_test_205 = \"h_test_205\", //Bad aspect ratio. Please set another 16:9 or 4:3 Format(±10%).\n h_test_206 = \"h_test_206\", //Your Videoformat is too small.\n h_test_207 = \"h_test_207\", //The FPS is too small. Please set minimum 25 FPS.\n h_test_50 = \"h_test_50\", //Test successful, click <OK> to go online. Now you can start chatting. Attention: your computer is overloaded!\n h_ticket_show_cancelled = \"h_ticket_show_cancelled\", //Your show has been canceled, since no ticket was sold up to 10 minutes before showstart.\n h_ticket_show_query_caption = \"h_ticket_show_query_caption\", //Ticket show\n h_ticket_show_query_overtime_text = \"h_ticket_show_query_overtime_text\", //Tip: The time you defined for your ticket show has expired. Do you want to stop the show now?\n h_ticket_show_query_text = \"h_ticket_show_query_text\", //Your scheduled ticket show starts in %s mins, do you want to swith to showmode now?\n h_ticket_show_reminder_text = \"h_ticket_show_reminder_text\", //Your ticket show starts in %s minits.\n h_ticket_show_reminder_text_in_delay = \"h_ticket_show_reminder_text_in_delay\", //Your ticket show started %s minutes ago. Please come online, the guests are waiting for you!\n h_ticket_show_reminder_title = \"h_ticket_show_reminder_title\", //Ticket Show Remeinder\n h_ticket_show_start = \"h_ticket_show_start\", //Ticket Show start now!\n h_video_cancel = \"h_video_cancel\", //client lost video, chat continues as text-chat only\n h_video_delayed = \"h_video_delayed\", //Hint: client is preparing for videochat and currently downloading a component for high quality video chat.\n h_video_reconnect = \"h_video_reconnect\", //client lost video, trying to reconnect.\n h_chat_mobilevideocall_missed = \"h_chat_mobilevideocall_missed\",\n h_chat_mobilevideocall_started = \"h_chat_mobilevideocall_started\",\n h_chat_mobilevideocall_ended = \"h_chat_mobilevideocall_ended\",\n h_chat_mobilevideocall_started_price = \"h_chat_mobilevideocall_started_price\",\n h_chat_mobilevideocall_init = \"h_chat_mobilevideocall_init\",\n h_chat_clip_bought = \"h_chat_clip_bought\",\n}\n/*\nSELECT varName, ' = ', CONCAT('\"',varName, '\", //', replace(replace(translation, \"\\r\", \" \"), \"\\n\", \"\")) descr from (\nSELECT\n ll.l_name_short \"language\",\n lower(CASE IFNULL(v.v_array_index,'')\n WHEN '' THEN CONCAT(v.v_name)\n ELSE CONCAT(v.v_name, '_', v.v_array_index)\n END) \"varName\",\n t.t_text \"translation\"\n FROM LangMan_categories c\n JOIN LangMan_var_names v ON c.c_id = v.c_id AND v.p_id = '1'\n LEFT JOIN LangMan_translation t ON t.v_id = v.v_id and t.t_history_flag = 0\n LEFT JOIN LangMan_languages ll ON ll.l_id = t.t_language\n WHERE c.c_id IN (103, 128) AND ll.l_name_short IN ('EN')\n\n ORDER BY 2,3\n ) x where varName not like 'foo%'\norder BY 1\n */\n","import { ChatState } from \"./chatstate\";\nimport { SessionState } from \"./sessionstate\";\nimport { ACTION } from \"./command/action\";\nimport { ICOMMAND } from \"./command/icommand\";\nimport { JSONString } from \"../@types\";\n\nexport enum EnumStreamOrientation {\n HORIZONTAL = \"horizontal\",\n VERTICAL = \"vertical\",\n}\n\nexport enum EnumStreamingPlatform {\n ANDROID = \"android\",\n IOS = \"ios\",\n}\n\nexport enum EnumCameraType {\n FRONT = \"front\",\n BACK = \"back\",\n}\n\nexport type ProxyStreamInfo2Type = {\n orientation: EnumStreamOrientation;\n angle?: number;\n platform?: EnumStreamingPlatform;\n cameraType?: EnumCameraType;\n};\n\nexport type proxyStreamInfo = {\n proxyStreamInfo?: EnumStreamOrientation | string;\n proxyStreamInfo2?: JSONString<ProxyStreamInfo2Type>;\n};\n\nexport type proxyStateInfo = {\n proxyStateInfo?: string;\n channelId?: string;\n chatID?: string;\n};\n\nexport const IS_TYPING_NOTIFICATION_INTERVAL = 5 * 1000;\nexport const IS_TYPING_WAIT_INTERVAL = IS_TYPING_NOTIFICATION_INTERVAL + 1000;\n/**\n * Update command\n */\nexport class CMDC_UPDATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_UPDATE;\n public params: ChatState | SessionState | proxyStreamInfo | proxyStateInfo;\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1994__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4268);\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__1994__","VERSION","EnumBooleanDigitized","EnumBooleanStringifiedExtended","EnumBooleanStringified","EnumChannelFlags","EnumCurrency","EnumPlayerFormat","EnumQueryBackendSubAction","EnumStreamStatusType","EnumInitDataFormat","nothing","useWS","host","wssport","wsspath","https","agent","cmdcontrol","CmdClientAgent","WEB","version","logger","undefined","webtoken","clientID","jsonp","firstConnectionRetryInterval","connectionRetryInterval","initdata","LIVE","toString","language","commandHandler","ConnectionConfig","settings","_isReConnectionPaused","_version","_closing","_counter","_reConnectAttemptsCount","_initProcessed","_noop","active","lastId","lastTime","_queue","_sessionID","_clientID","_logPrefix","_instanceId","Math","ceil","random","length","_settings","setLogger","log","_onopen","bind","_onmessage","_onclose","_onerror","connect","window","onunload","close","_jumpTable","CMDP_INIT","_processCmpdInit","CMDP_SINIT","CMDP_CINIT","_processCmdpCInit","CMDP_SLOGIN","_processCmdpLogin","CMDP_LOGIN","CMDP_NOOP","_processCmdpNoop","CMDP_CLOGOUT","_processCmdpCLogout","CMDC_DSRELOAD","_processCmdcDsReload","CMDC_UPDATE","_processCmdcUpdate","CMDC_SLOGOUT","_processLogout","CMDP_LOGOUT","_timeoutByAction","entry","_commandTimeout","command","action","_fetchJsonp","urlBase","callback","url","key","params","Object","prototype","hasOwnProperty","call","encodeURIComponent","replace","callbackFn","Date","now","jsonpScript","document","createElement","parent","querySelectorAll","cleanup","timeoutId","clearTimeout","remove","response","format","assign","CmdConnection","_parsePlainResponse","src","includes","onerror","e","_getErrorResponse","ResultCode","NETWORK_ERROR","error","append","setTimeout","TIMEOUT","responseStr","strings","ACTION","CMDP_UNDEFINED","result","RESULT","commands","values","plusPattern","commandPattern","valuePattern","split","line","exec","cmdStr","lastIndex","value","decode","decodeURIComponent","slice","code","Number","parseInt","reason","push","_servletUrl","_platformUrl","_openSocket","initData","_send","send","Error","_socket","isNoopCommand","isChatCommand","_getDefaultParams","_processReply","queued","_dequeue","socket","WebSocket","warn","reconnect","onopen","onmessage","onclose","event","readyState","OPEN","_sendNoop","onOpen","data","JSON","parse","onError","isFatal","reConnectionTimeout","_getNextConnectionRetryTimeout","_dsreload","_uniq","_iid","strip","EnumFormatValues","deviceId","sessionID","_hasClientId","i","l","splice","emit","_retry","_processCommand","forEach","_sendEntry","str","stringify","attempt","_markAllQueueEntriesAsQueued","_reConnectionTimeoutId","pause","isResumable","CLOSED","CLOSING","resume","_hasSessionId","func","_response","OK","currentTime","floor","SESSION_NOT_FOUND","PlatformUrl","wsshost","Boolean","LogCollector","CmdControlSession","SupportedLanguage","_connection","LoginWithUsernamePassword","login","password","msn","LoginWithSession","foreignSID","LoginWithWebtoken","sendCommand","logout","exitCode","isOpened","message","_logs","_logger","clear","exportToStr","level","entries","out","len","max","levelStr","ERROR","WARN","d","time","getHours","getMinutes","getSeconds","getMilliseconds","_push","LOG","method","p","CMDC_CONTACTINFO","CMDP_SETCONTACTINFO","CMDP_SETCONTACTINFO_RESPONSE","CMDP_GETCONTACTINFO","CMDP_GETCONTACTINFO_RESPONSE","CMDP_SGETCONTACTINFO","CMDP_SGETCONTACTINFO_RESPONSE","CMDC_USERINFO","CMDP_SETUSERINFO","CMDP_SETUSERINFO_RESPONSE","CMDP_GETUSERINFO","CMDP_GETUSERINFO_RESPONSE","CMDP_QUERYBACKEND","CMDP_QUERYBACKEND_RESPONSE","CMDC_BACKENDPAYLOAD","CMDP_BACKENDPAYLOAD","ChannelType","CMDC_CHANNEL","CMDP_NEWCHANNEL","CMDP_NEWCHANNEL_RESPONSE","CMDP_GETCHANNEL","CMDP_GETCHANNEL_RESPONSE","CMDP_SGETCHANNEL","EnumProductId","EnumChannelFilterValues","EnumSortOrder","CMDP_SGETCHANNEL_RESPONSE","CMDP_GETCHANNELS","CMDP_GETCHANNELS_RESPONSE","CMDP_SGETCHANNELS","CMDP_SGETCHANNELS_RESPONSE","CMDP_GETHISTORY","EnumLimitType","CMDP_GETHISTORY_RESPONSE","CMDP_SGETMESSAGEHISTORY","CMDP_SGETMESSAGEHISTORY_RESPONSE","CMDP_SGETCHANNELMESSAGE","CMDP_SGETCHANNELMESSAGE_RESPONSE","CMDP_CHANNELSEEN","CMDP_SCHANNELSEEN","CMDP_CHANNELSEEN_RESPONSE","EnumUpdateChannelPropertyName","CMDP_SCHANNELSEEN_RESPONSE","updateChannelParamsType","CMDP_UPDATECHANNEL","CMDP_UPDATECHANNEL_RESPONSE","CMDC_CHANNELSUMMARY","CMDC_CHANNELSSUMMARY","CMDP_CHANNELSSUMMARY","CMDP_CHANNELSSUMMARY_RESPONSE","EnumBadge","CMDC_CHANNELINFO","CMDP_GETCHANNELINFO","CMDP_GETCHANNELINFO_RESPONSE","CMDP_SETCHANNELINFO","CMDP_SETCHANNELINFO_RESPONSE","EnumClientStatusType","CMDP_CSTATUS","CMDP_CSTATUS_RESPONSE","CMDP_CQUERY_CHARGE","CMDP_CQUERY_CHARGE_RESPONSE","CMDP_CSTARTVIDEOPULL","CMDP_CSTARTVIDEOPULL_RESPONSE","CMDC_CSTARTVIDEOPULL","CMDC_CSTOPVIDEOPULL","CMDP_CSTARTAUDIOPULL","CMDP_CSTARTAUDIOPULL_RESPONSE","CMDC_CSTARTAUDIOPULL","CMDC_CSTOPAUDIOPULL","CMDP_CSTARTPREVIEW","CMDP_CSTARTPREVIEW_RESPONSE","CMDC_CSTOPPREVIEW","CMDP_CSTARTVIDEOPUSH","CMDP_CSTARTVIDEOPUSH_RESPONSE","CMDP_CSTOPVIDEOPUSH","CMDP_CSTOPVIDEOPUSH_RESPONSE","CMDC_CSTOPTEXT","CMDP_CSTARTTEXT","CMDP_CSTARTTEXT_RESPONSE","CMDC_PUBLICCHAT","CMDP_CTIP","CMDP_CTIP_RESPONSE","CMDP_CCHARGE","CMDP_CCHARGE_RESPONSE","CMDC_CLIP","CMDP_CGETCLIPS","CMDP_CGETCLIPS_RESPONSE","CMDP_CBUYCLIP","CMDP_CBUYCLIP_RESPONSE","CMDC_CONTACTNOTE","CMDP_SETCONTACTNOTE","CMDP_SETCONTACTNOTE_RESPONSE","CMDP_GETCONTACTNOTE","CMDP_GETCONTACTNOTE_RESPONSE","CMDP_SSETCONTACTNOTE","CMDP_SSETCONTACTNOTE_RESPONSE","CMDP_SGETCONTACTNOTE","CMDP_SGETCONTACTNOTE_RESPONSE","ExitCode","EnumFeedbackKey","CMDC_FEEDBACK","CMDP_INIT_RESPONSE","CMDP_SINIT_RESPONSE","CMDP_CINIT_RESPONSE","CMDC_GROUP","CMDC_CHANNELGROUP","CMDP_SGETGROUPS","CMDP_SGETGROUPS_RESPONSE","CMDP_SADDGROUP","CMDP_SADDGROUP_RESPONSE","CMDP_SUPDATEGROUP","CMDP_SUPDATEGROUP_RESPONSE","CMDP_SGETGROUPCHANNELS","CMDP_SGETGROUPCHANNELS_RESPONSE","CMDP_SGETCHANNELGROUPS","CMDP_SGETCHANNELGROUPS_RESPONSE","CMDP_SADDCHANNELTOGROUP","CMDP_SADDCHANNELTOGROUP_RESPONSE","CMDP_SDELCHANNELFROMGROUP","CMDP_SDELCHANNELFROMGROUP_RESPONSE","CMDP_SDEVICESTATUS","CMDP_SDEVICESTATUS_RESPONSE","EnumPowerEstimation","CMDP_STARTSEND","CMDP_STARTSEND_RESPONSE","CMDP_STOPSEND","CMDP_STOPSEND_RESPONSE","CMDP_TRACERT_REPLY","CMDP_TRACERT_REPLY_RESPONSE","CMDP_FSK16","CMDP_START_STREAM_PREVIEW","CMDP_START_STREAM_PREVIEW_RESPONSE","CMDP_STOP_STREAM_PREVIEW","CMDP_STOP_STREAM_PREVIEW_RESPONSE","CMDP_STARTBANDWIDTHTEST","CMDP_STARTBANDWIDTHTEST_RESPONSE","CMDP_STOPBANDWIDTHTEST","CMDP_STOPBANDWIDTHTEST_RESPONSE","CMDP_STARTLOOPBACK9","CMDP_STARTLOOPBACK9_RESPONSE","CMDP_STOPLOOPBACK9","CMDP_STOPLOOPBACK9_RESPONSE","CMDP_SQUERY_FORMAT","QueryUserButtons","QueryUserKeyEnum","CMDP_SQUERY_FORMAT_RESPONSE","CMDC_QUERYUSER","CMDC_CQUERYUSER","CMDP_QUERYUSER","CMDP_QUERYUSER_RESPONSE","CMDP_CQUERYUSER","CMDP_CQUERYUSER_RESPONSE","CMDC_QUERYANSWERED","CMDP_SGETSTREAMPARAMS","CMDP_SGETSTREAMPARAMS_RESPONSE","CMDC_CSTARTSTREAMPUSH","CMDP_CQUERY_SINGLE","CMDP_CQUERY_SINGLE_RESPONSE","EnumIntentionString","ChatFlags","SChatInfo","admin","FALSE","canBan","canDiscount","isPublicText","isLobby","voyeur2single","CMDC_CINIT","EndChatType","CMDC_UPDATE_CHAT","CMDC_CEXIT","CMDP_SGETCHATS","CMDP_SGETCHATS_RESPONSE","CMDP_SGETCHATHISTORY","CMDP_SGETCHATHISTORY_RESPONSE","CMDP_SQUERY_DISCOUNT","CMDP_SQUERY_DISCOUNT_RESPONSE","CMDP_SET_DISCOUNT","CMDP_SET_DISCOUNT_RESPONSE","CMDP_KICK","CMDP_KICK_RESPONSE","CMDP_SGETCHATSSUMMARY","CMDP_SGETCHATSSUMMARY_RESPONSE","CMDP_GETONLINESUMMARY","CMDP_GETONLINESUMMARY_RESPONSE","CMDC_LIVESESSION","CMDC_LIVECHAT","CMDP_GETLIVEHISTORY","CMDP_GETLIVEHISTORY_RESPONSE","CMDP_LOGIN_RESPONSE","CMDP_SLOGIN_RESPONSE","MSettingValueTypeEnum","MSettingNameEnum","MSetting","MSettingFloat","RequestStateEnum","MSettingBool","MSettingFeatureRequest","LanguageText","MSettingMultiLangString","MSettings","CMDP_SGETMSETTINGS","CMDP_SGETMSETTINGS_RESPONSE","CMDP_SSETMSETTING","CMDP_SSETMSETTING_RESPONSE","CMDC_MSETTINGS","CMDP_SSETMSETTINGS","CMDP_SSETMSETTINGS_RESPONSE","EnumProductLinks","EnumStreamQuality","CMDC_STREAMSTATE","EnumService0900Operation","EnumService0900Status","EnumService0900State","CMDP_SUPDATE","CMDP_SUPDATE_RESPONSE","CMDP_SSTARTTESTVIDEOCHAT","CMDP_SSTARTTESTVIDEOCHAT_RESPONSE","EnumTicketShowStatusType","CMDC_CTICKETSHOW","CMDP_SGETTICKETSHOWS","CMDP_SGETTICKETSHOWS_RESPONSE","CMDP_SUPSERTTICKETSHOW","CMDP_SUPSERTTICKETSHOW_RESPONSE","CMDP_SDELETETICKETSHOW","CMDP_SDELETETICKETSHOW_RESPONSE","CMDP_SSTARTTICKETSHOW","CMDP_SSTARTTICKETSHOW_RESPONSE","CMDP_SSTOPTICKETSHOW","CMDP_SSTOPTICKETSHOW_RESPONSE","CMDC_SEDCARDPICTURE","CMDP_SGETSEDCARDPICTURES","CMDP_SGETSEDCARDPICTURES_RESPONSE","EnumPushNotificationFilter","CMDP_SETSETTINGS","CMDP_GETSETTINGS","CMDP_GETSETTINGS_RESPONSE","CMDP_SETSETTINGS_RESPONSE","CMDP_OPEN_LOBBY","CMDP_OPEN_LOBBY_RESPONSE","CMDP_CLOSE_LOBBY","CMDP_CLOSE_LOBBY_RESPONSE","CMDP_LOGOUT_RESPONSE","CMDP_SLOGOUT","CMDP_SLOGOUT_RESPONSE","CMDP_CLOGOUT_RESPONSE","CMDP_SMEDIAGETPRICES","CMDP_SGETPRICESMEDIA_RESPONSE","CMDP_SMEDIAOFFERCREATE","CMDP_SMEDIAOFFERCREATE_RESPONSE","CMDP_SINFORMMEDIAPURCHASED","CMDP_SINFORMMEDIAPURCHASED_RESPONSE","UploadedMediaDirection","ChannelMediaLinkState","CMDC_CMEDIA","CMDP_SCHECKUPLOADEDMEDIA","CMDP_SCHECKUPLOADEDMEDIA_RESPONSE","CMDP_SGETUPLOADEDMEDIA","CMDP_SGETUPLOADEDMEDIA_RESPONSE","CMDP_SGETUPLOADEDMEDIA2","CMDP_SGETUPLOADEDMEDIA2_RESPONSE","CMDC_CHANNELMEDIASUMMARY","CMDP_SGETCHANNELDMEDIASUMMARY","CMDP_SGETCHANNELDMEDIASUMMARY_RESPONSE","CMDP_SGETMEDIAHISTORY","CMDP_SGETMEDIAHISTORY_RESPONSE","CMDP_SGETMEDIAHISTORYSUMMARY","CMDP_SGETMEDIAHISTORYSUMMARY_RESPONSE","CMDP_SOPENMEDIAOFFER","CMDP_SOPENMEDIAOFFER_RESPONSE","CMDP_SCLOSEMEDIAOFFER","CMDP_SCLOSEMEDIAOFFER_RESPONSE","CMDP_SMEDIAPURCHASE","CMDP_SMEDIAPURCHASE_RESPONSE","CMDC_MEDIAPURCHASED","CMDC_CMSG","UploadStep","CMDP_SUPLOADMEDIA","CMDP_SUPLOADMEDIA_RESPONSE","EnumMessageStyle","EnumMediaState","EnumMediaType","EnumMessageDirection","EnumMessageType","EnumMessageFlagValue","MessageFlags","EnumTicketType","CMDP_MSG","CMDP_MSG_RESPONSE","CMDP_CMSG","CMDP_CMSG_RESPONSE","CMDP_MSGDELETE","CMDP_MSGDELETE_RESPONSE","CMDP_SMSGREACTION","CMDP_SMSGREACTION_RESPONSE","CMDP_SMSGESTIMATE","CMDP_SMSGESTIMATE_RESPONSE","CMDP_DEEPL","CMDP_DEEPL_RESPONSE","CMDP_SETEXPOTOKEN","CMDP_SETEXPOTOKEN_RESPONSE","EnumMobileVideoCallState","EnumMobileTokenType","CMDP_SETMOBILETOKEN","CMDP_SETMOBILETOKEN_RESPONSE","CMDP_STARTMOBILEVIDEOCALL","CMDP_STARTMOBILEVIDEOCALL_RESPONSE","CMDC_STARTMOBILEVIDEOCALL","CMDP_UPDATEMOBILEVIDEOCALL","CMDP_UPDATEMOBILEVIDEOCALL_RESPONSE","CMDC_UPDATEMOBILEVIDEOCALL","CMDP_LOGOUTOTHERMOBILE","CMDP_LOGOUTOTHERMOBILE_RESPONSE","CMDC_MVCSCHEDULE","CMDP_SGETMVCSCHEDULE","CMDP_SGETMVCSCHEDULE_RESPONSE","CMDP_SUPSERTMVCSCHEDULE","CMDP_SUPSERTMVCSCHEDULE_RESPONSE","CMDP_SDELETEMVCSCHEDULE","CMDP_SDELETEMVCSCHEDULE_RESPONSE","CMDP_SUPSERTMVCSCHEDULES","CMDP_SUPSERTMVCSCHEDULES_RESPONSE","CMDP_SIGNUP","CMDP_SIGNUP_RESPONSE","CMDP_RESETPASSWORD","CMDP_RESETPASSWORD_RESPONSE","CMDP_SDELETE_USER","CMDP_SDELETE_USER_RESPONSE","CMDC_TPLCATEGORY","CMDP_SGETTPLCATEGORIES","CMDP_SGETTPLCATEGORIES_RESPONSE","CMDP_SUPSERTTPLCATEGORY","CMDP_SUPSERTTPLCATEGORY_RESPONSE","CMDP_SDELETETPLCATEGORY","CMDP_SDELETETPLCATEGORY_RESPONSE","CMDC_MSGTEMPLATE","CMDP_SGETMSGTEMPLATES","CMDP_SGETMSGTEMPLATES_RESPONSE","CMDP_SUPSERTMSGTEMPLATE","CMDP_SUPSERTMSGTEMPLATE_RESPONSE","CMDP_SDELETEMSGTEMPLATE","CMDP_SDELETEMSGTEMPLATE_RESPONSE","CMDP_NOOP_RESPONSE","CMDC_ONLINESTATE","CMDP_GETONLINESTATE","CMDP_GETONLINESTATE_RESPONSE","CMDP_GETONLINESTATES","CMDP_GETONLINESTATES_RESPONSE","InfoWizard","SessionFlag","EnumFsk","EnumSetTp","EnumPlayerEventType","CMDP_SSTATUS","CMDP_SSTATUS_RESPONSE","CMDC_SSTATUS","SystemMessageKey","_SystemMessageKey","EnumCameraType","EnumStreamingPlatform","EnumStreamOrientation","IS_TYPING_NOTIFICATION_INTERVAL","IS_TYPING_WAIT_INTERVAL","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"cmd-control-client-lib.js","mappings":"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,OAAS,EAAA2C,OAAOsN,WAYzB,iBACS,KAAAjQ,OAAS,EAAA2C,OAAOuN,gBADZ,EAAAA,eAAAA,EAKb,+B,+CAMA,OAN6C,OAM7C,EANA,CAA6CA,GAAhC,EAAAC,wBAAAA,EAQb,iBACS,KAAAnQ,OAAS,EAAA2C,OAAOyN,eADZ,EAAAA,cAAAA,EAOb,+B,+CAIA,OAJ4C,OAI5C,EAJA,CAA4CA,GAA/B,EAAAC,uBAAAA,G,YClRb,IAAY1N,E,kEAAAA,EAAA,EAAAA,SAAA,EAAAA,OAAM,KAChB,sBACA,0BACA,0BACA,4BACA,4BACA,8BACA,8BACA,gCACA,sCACA,sCACA,sCACA,4CACA,8CACA,4CACA,8CACA,sCACA,4CACA,8CACA,4CACA,sCACA,4CACA,4CACA,8BACA,oCACA,sCACA,wCACA,oCACA,sCACA,sCACA,wCACA,0CACA,8CACA,8CACA,oCACA,wBACA,oCACA,sBACA,kCACA,sCACA,4CACA,8CACA,0BAGA,wCACA,8CACA,kCACA,0CACA,0CACA,0CACA,4CACA,kDACA,oDACA,sDACA,wDACA,4BACA,kCACA,0BACA,wBACA,0CACA,gCACA,kCAIA,sCAEA,wBACA,wCACA,kCAEA,0BACA,gCACA,gCACA,4BACA,0BACA,gDACA,4CACA,kCACA,oCACA,sCACA,4CACA,4CACA,gCACA,kCACA,kCACA,4CACA,wCACA,0CACA,8CACA,8CACA,0CACA,oCACA,0CACA,oCACA,4CACA,4CACA,wCACA,kCACA,oCACA,8CACA,4CACA,wBACA,wBACA,8BAEA,4CACA,8CACA,kCACA,8CACA,8CACA,wCACA,sCACA,8BACA,oCACA,8CACA,8BACA,oCACA,8CACA,8BACA,0CACA,sCACA,gDACA,8CACA,4CACA,oCACA,sCACA,kDACA,0DACA,wCACA,8CACA,sCACA,sCACA,4CACA,0CACA,4BACA,0CACA,8CACA,gDACA,sDACA,sDACA,kDACA,4BACA,0CACA,wCACA,kCACA,wCACA,0BACA,wCACA,oCACA,kCACA,wCACA,kDACA,kDACA,oDACA,wDACA,sCACA,8CACA,kDACA,kDACA,gDACA,8CACA,gDACA,4CACA,sCACA,gCACA,sDACA,gEACA,sDACA,4CACA,8BACA,0BACA,wCACA,8BACA,oDACA,wCACA,4CACA,wDACA,wDACA,0DACA,0DACA,sCACA,oCACA,kDACA,4CACA,0CACA,gCACA,8CACA,oCACA,0CACA,0BACA,gDACA,kDACA,sCACA,8CACA,oDACA,sDACA,oDACA,oDACA,0CACA,wCACA,oCACA,oCACA,oCACA,8BACA,wBACA,kCACA,gCACA,sCACA,gDACA,oDACA,oDACA,sCACA,kDACA,oDACA,oDACA,oDACA,gDACA,+D,aCjNF,IAAY4D,EANA/K,EANAiN,E,iHAAAA,EAAA,EAAAA,oBAAA,EAAAA,kBAAiB,KAC3B,QACA,UACA,WAGUjN,EAAA,EAAAA,iBAAA,EAAAA,eAAc,KACxB,SACA,WAIU+K,EAAA,EAAAA,mBAAA,EAAAA,iBAAgB,KAC1B,YACA,iB,8EC4BW,EAAAzD,OAAb,c,aCvCA,IAAYX,E,sEAAAA,EAAA,EAAAA,aAAA,EAAAA,WAAU,KACpB,eACA,oEACA,wCACA,gDACA,sCACA,sCACA,wCACA,oDACA,gDACA,kDACA,kDACA,wDACA,gDACA,oDACA,kDACA,gDACA,4CACA,0CACA,8CACA,8CACA,gDACA,gDACA,wDACA,kCACA,4CACA,wCACA,sCACA,4BACA,wCAEA,mDACA,wCACA,gDACA,oDACA,gDACA,8CACA,gCACA,0DACA,8DACA,oDACA,+C,sFC9CF,aAMa,EAAA9C,cAAb,WACS,KAAAW,OAAS,EAAA2C,OAAOtD,gB,uxBCPzB,cASa,EAAAiR,iBAAb,WACS,KAAAtQ,OAAiB,EAAA2C,OAAO2N,kBAOjC,iBACS,KAAAtQ,OAAiB,EAAA2C,OAAO4N,qBADpB,EAAAA,oBAAAA,EASb,+B,+CAKA,OALkD,OAKlD,EALA,CAAkDA,GAArC,EAAAC,6BAAAA,EAUb,iBACS,KAAAxQ,OAAiB,EAAA2C,OAAO8N,qBADpB,EAAAA,oBAAAA,EAUb,+B,+CAKA,OALkD,OAKlD,EALA,CAAkDA,GAArC,EAAAC,6BAAAA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AAA2C,OAAOse,e,aC5BjC,IAAYC,E,+FAFA,EAAAC,oBAAA,EAAAA,kBAAiB,KAEjBD,EAAA,EAAAA,mBAAA,EAAAA,iBAAgB,KAE1B,0CACA,8BACA,kCACA,kCAGA,0BACA,sBACA,oCACA,oCACA,4BACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,gCACA,oCACA,0DACA,4CACA,gDACA,8CACA,wCACA,kDACA,8CACA,kCACA,8DACA,8CACA,gDACA,wCACA,sCACA,kCACA,oCACA,sCACA,wCACA,4BACA,0CACA,wCACA,0CACA,wCACA,gCACA,oDACA,kDACA,8CACA,4CACA,8CACA,0CACA,4CACA,kDACA,wEACA,sEACA,oDACA,oCACA,4CACA,0DACA,8CACA,wCACA,8CACA,oCACA,4CACA,4CACA,0DACA,4DACA,kDACA,gDACA,sDACA,kEACA,0CACA,sDACA,wDACA,wDACA,kEACA,8EACA,oEACA,wCACA,gCACA,0CACA,wCACA,8DACA,4CACA,wCACA,0CACA,4CACA,0CACA,sCACA,wDACA,oDACA,wCACA,4DACA,0CACA,kDACA,4CACA,4CACA,8CACA,8DACA,4CACA,0CACA,0CACA,kDACA,oDACA,4DACA,gDACA,4BACA,oDACA,sCACA,4DACA,wCACA,wCACA,8CACA,4CACA,0BACA,4CACA,oCACA,0CACA,0CACA,sCACA,0CACA,wDACA,0EACA,8CACA,sDACA,gFACA,oEACA,4CACA,gCACA,4BACA,4BACA,4BACA,4BACA,8CACA,0CACA,0CACA,sDACA,gDACA,wCACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,oCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wDACA,oCACA,kCACA,4CACA,8DACA,oDACA,8CACA,sDACA,wDACA,8BACA,4CACA,8DACA,oDACA,oCACA,oCACA,wDACA,0CACA,oCACA,8CACA,sDACA,8DACA,gEACA,4DACA,4DACA,4CACA,0CACA,oDACA,4CACA,8CACA,kDACA,oCACA,oDACA,kDACA,4DACA,oDACA,wDACA,wDACA,sDACA,gEACA,0DACA,oDACA,wDACA,sEACA,0DACA,gFACA,4DACA,0DACA,sEACA,gDACA,0DACA,wCACA,oDACA,wCACA,sCACA,kDACA,wDACA,sDACA,oDACA,sEACA,sEACA,0EACA,wEACA,0EACA,kEACA,wEACA,kDACA,oDACA,0DACA,sDACA,8DACA,gDACA,gDACA,0EACA,4CACA,0CACA,gDACA,8DACA,gEACA,kCACA,8CACA,sCACA,kDACA,kCACA,wCACA,8CACA,sCACA,sCACA,sBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,wBACA,oDACA,4DACA,wEACA,sDACA,4DACA,8EACA,8DACA,4CACA,kCACA,oCACA,wCACA,gEACA,kEACA,8DACA,8EACA,4DACA,2C,kNCxVF,IAcYE,EALAC,EALAC,EAJZ,UAIYA,EAAA,EAAAA,wBAAA,EAAAA,sBAAqB,KAC/B,wBACA,uBAGUD,EAAA,EAAAA,wBAAA,EAAAA,sBAAqB,KAC/B,kBACA,aAGUD,EAAA,EAAAA,iBAAA,EAAAA,eAAc,KACxB,cACA,cAqBW,EAAAG,gCAAkC,IAClC,EAAAC,wBAA0B,EAAAD,gCAAkC,IAI5D,EAAAhiB,YAAb,WACS,KAAAS,OAAiB,EAAA2C,OAAOpD,c,SC7CjCxF,EAAOD,QAAUO,ICCbonB,EAA2B,G,OAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/lB,IAAjBgmB,EACH,OAAOA,EAAa9nB,QAGrB,IAAIC,EAAS0nB,EAAyBE,GAAY,CAGjD7nB,QAAS,IAOV,OAHA+nB,EAAoBF,GAAUjhB,KAAK3G,EAAOD,QAASC,EAAQA,EAAOD,QAAS4nB,GAGpE3nB,EAAOD,QClBW4nB,CAAoB,O","sources":["webpack://cmdControlClientLib/webpack/universalModuleDefinition","webpack://cmdControlClientLib/./src/version.ts","webpack://cmdControlClientLib/./src/@types/enum-boolean-digitized.ts","webpack://cmdControlClientLib/./src/@types/enum-boolean-stringified-extended.ts","webpack://cmdControlClientLib/./src/@types/enum-boolean-stringified.ts","webpack://cmdControlClientLib/./src/@types/enum-channel-flags.ts","webpack://cmdControlClientLib/./src/@types/enum-currency.ts","webpack://cmdControlClientLib/./src/@types/enum-player-format.ts","webpack://cmdControlClientLib/./src/@types/enum-query-backend-subaction.ts","webpack://cmdControlClientLib/./src/@types/enum-status-type.ts","webpack://cmdControlClientLib/./src/@types/index.ts","webpack://cmdControlClientLib/./src/cmd-connection.ts","webpack://cmdControlClientLib/./src/cmd-control-client-lib.ts","webpack://cmdControlClientLib/./src/cmd-protocol.ts","webpack://cmdControlClientLib/./src/cmd-session.ts","webpack://cmdControlClientLib/./src/logger.ts","webpack://cmdControlClientLib/./src/protocol/b2b/b2bcontact.ts","webpack://cmdControlClientLib/./src/protocol/b2b/b2buserinfo.ts","webpack://cmdControlClientLib/./src/protocol/backend.ts","webpack://cmdControlClientLib/./src/protocol/channel.ts","webpack://cmdControlClientLib/./src/protocol/channelinfo.ts","webpack://cmdControlClientLib/./src/protocol/clivechat.ts","webpack://cmdControlClientLib/./src/protocol/command/action.ts","webpack://cmdControlClientLib/./src/protocol/command/baseparams.ts","webpack://cmdControlClientLib/./src/protocol/command/icommand.ts","webpack://cmdControlClientLib/./src/protocol/command/resultcode.ts","webpack://cmdControlClientLib/./src/protocol/connection.ts","webpack://cmdControlClientLib/./src/protocol/contactnote.ts","webpack://cmdControlClientLib/./src/protocol/exit-code.ts","webpack://cmdControlClientLib/./src/protocol/feedback.ts","webpack://cmdControlClientLib/./src/protocol/init.ts","webpack://cmdControlClientLib/./src/protocol/live/channelgroups.ts","webpack://cmdControlClientLib/./src/protocol/live/devicestatus.ts","webpack://cmdControlClientLib/./src/protocol/live/live-commands.ts","webpack://cmdControlClientLib/./src/protocol/live/livechat.ts","webpack://cmdControlClientLib/./src/protocol/live/login.ts","webpack://cmdControlClientLib/./src/protocol/live/msettings.ts","webpack://cmdControlClientLib/./src/protocol/live/products-config.ts","webpack://cmdControlClientLib/./src/protocol/live/streamstate.ts","webpack://cmdControlClientLib/./src/protocol/live/supdate.ts","webpack://cmdControlClientLib/./src/protocol/live/testchat.ts","webpack://cmdControlClientLib/./src/protocol/live/ticketshow.ts","webpack://cmdControlClientLib/./src/protocol/live/usersettings.ts","webpack://cmdControlClientLib/./src/protocol/lobby.ts","webpack://cmdControlClientLib/./src/protocol/login.ts","webpack://cmdControlClientLib/./src/protocol/logout.ts","webpack://cmdControlClientLib/./src/protocol/media-b2b.ts","webpack://cmdControlClientLib/./src/protocol/media.ts","webpack://cmdControlClientLib/./src/protocol/mediaoffer.ts","webpack://cmdControlClientLib/./src/protocol/mediapurchase.ts","webpack://cmdControlClientLib/./src/protocol/mediaupload.ts","webpack://cmdControlClientLib/./src/protocol/message.ts","webpack://cmdControlClientLib/./src/protocol/messenger/expo.ts","webpack://cmdControlClientLib/./src/protocol/messenger/mobile.ts","webpack://cmdControlClientLib/./src/protocol/messenger/mvcschedule.ts","webpack://cmdControlClientLib/./src/protocol/messenger/signup.ts","webpack://cmdControlClientLib/./src/protocol/msgtemplate.ts","webpack://cmdControlClientLib/./src/protocol/noop.ts","webpack://cmdControlClientLib/./src/protocol/onlinestate.ts","webpack://cmdControlClientLib/./src/protocol/sessionstate.ts","webpack://cmdControlClientLib/./src/protocol/status.ts","webpack://cmdControlClientLib/./src/protocol/systemmessagekey.ts","webpack://cmdControlClientLib/./src/protocol/update-state.ts","webpack://cmdControlClientLib/external umd {\"commonjs\":\"xmlentities\",\"commonjs2\":\"xmlentities\",\"amd\":\"xmlentities\",\"root\":\"xmlentities\"}","webpack://cmdControlClientLib/webpack/bootstrap","webpack://cmdControlClientLib/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"xmlentities\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"xmlentities\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cmdControlClientLib\"] = factory(require(\"xmlentities\"));\n\telse\n\t\troot[\"cmdControlClientLib\"] = factory(root[\"xmlentities\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__1994__) {\nreturn ","export const VERSION = \"__VERSION__\";\n","export enum EnumBooleanDigitized {\n FALSE = \"0\",\n TRUE = \"1\",\n}\n","export enum EnumBooleanStringifiedExtended {\n TRUE = \"true\",\n TRUTHY = \"1\",\n FALSE = \"false\",\n FALSY = \"0\",\n}\n","export enum EnumBooleanStringified {\n TRUE = \"true\",\n FALSE = \"false\",\n}\n","export enum EnumChannelFlags {\n ARCHIVED = \"archived\",\n REGULAR = \"regularCustomer\",\n ADVERTISED = \"advertised\",\n DELETED = \"deleted\",\n LOCKED = \"locked\",\n UNANSWERED = \"unanswered\",\n PINNED = \"pinned\",\n MUTED = \"muted\",\n BOUGHTMEDIA = \"boughtMedia\",\n FOLLOWME = \"followMe\",\n BANNED = \"banned\",\n BANNEDME = \"bannedMe\",\n ARCHIVEDME = \"archivedMe\",\n MUTEDME = \"mutedMe\",\n BLOCKEDOUTBOUND = \"blockedOutbound\",\n BLOCKEDINBOUND = \"blockedInbound\",\n VIDEOCHAT = \"videoChat\",\n GIFT = \"gift\",\n REACTION = \"reaction\",\n SHADOWBAN = \"shadowban\",\n}\n","export enum EnumCurrency {\n EURO = \"EUR\",\n US_DOLLAR = \"USD\",\n VOUCHER_CREDIT = \"VOC\",\n VX_COIN = \"VXC\",\n}\n","export enum EnumPlayerFormat {\n H5LIVE = \"h5live\",\n JPEG = \"jpeg\",\n MJPEG = \"mjpeg\",\n HLS = \"hls\",\n RTMP = \"rtmp\",\n WEBRTC = \"webrtc\",\n MP3 = \"mp3\",\n VORBIS = \"vorbis\",\n VIDEOSDK = \"videosdk\",\n}\n","export enum EnumQueryBackendSubAction {\n BUY_GIFT_BUNDLE = \"BUYGIFTBUNDLE\",\n START_VIDEOCHAT = \"STARTVIDEOCHAT\",\n START_FREE_CHAT = \"STARTFREECHAT\",\n START_LIVE_PREVIEW = \"STARTLIVEPREVIEW\",\n START_VOYEUR_CHAT = \"STARTVOYEURCHAT\",\n START_VOYEUR2S_CHAT = \"STARTVOYEUR2SCHAT\",\n START_PRIVATE_SHOW = \"STARTSINGLECAM2CAMCHAT\",\n START_MOBILECALL_CHAT = \"STARTMOBILECALLCHAT\",\n}\n","/**\n * @see CMDP_SSTATUS\n */\nexport enum EnumStreamStatusType {\n /**\n * @deprecated/obsolete\n */\n AUDIO_DEVICE_ERROR = \"AUDIO_DEVICE_ERROR\",\n /**\n * @deprecated/obsolete\n */\n AUDIO_DEVICE_FROZEN = \"AUDIO_DEVICE_FROZEN\",\n /**\n * @deprecated/ obsolete, ignored\n */\n AUDIO_DEVICE_MUTED = \"AUDIO_DEVICE_MUTED\",\n /**\n * @deprecated/ obsolete, ignored\n */\n AUDIO_DEVICE_UNMUTED = \"AUDIO_DEVICE_UNMUTED\",\n /**\n * @deprecated/ obsolete\n */\n BITRATE = \"BITRATE\",\n /**\n * @deprecated/ obsolete\n */\n CPU_OVERLOAD = \"CPU_OVERLOAD\",\n /**\n * @deprecated/ obsolete\n */\n DROPPED_AUDIO_FRAMES = \"DROPPED_AUDIO_FRAMES\",\n /**\n * @deprecated/ obsolete\n */\n DROPPED_VIDEO_FRAMES = \"DROPPED_VIDEO_FRAMES\",\n /**\n * @deprecated/ obsolete\n */\n VIDEO_DEVICE_ERROR = \"VIDEO_DEVICE_ERROR\",\n /**\n * @deprecated/ obsolete\n */\n VIDEO_DEVICE_FROZEN = \"VIDEO_DEVICE_FROZEN\",\n PROXY_STREAM_INFO = \"PROXY_STREAM_INFO\", // client provided info\n PROXY_STATE_INFO = \"PROXY_STATE_INFO\", // client provided info, JSON.stringify({isTyping: true})\n WEBRTC_STATS = \"WEBRTC_STATS\", // value is browser related JSON.stringify(RTCStatsReport()) return of RTCPeerConnection.getStats()\n}\n","export * from \"./enum-boolean-stringified\";\nexport * from \"./enum-boolean-digitized\";\nexport * from \"./enum-boolean-stringified-extended\";\nexport * from \"./enum-status-type\";\nexport * from \"./enum-channel-flags\";\nexport * from \"./enum-currency\";\nexport * from \"./enum-player-format\";\nexport * from \"./iemoji\";\nexport * from \"./ireaction\";\nexport * from \"./icurrency-description\";\nexport * from \"./json-stringified\";\nexport * from \"./reconnection-error-event\";\nexport * from \"./enum-query-backend-subaction\";\nexport * from \"./helpers\";\n","/* eslint-disable sonarjs/cognitive-complexity */\nimport { decode } from \"xmlentities\";\nimport { Logger, logger, setLogger } from \"./logger\";\nimport { VERSION } from \"./version\";\nimport * as cmdcontrol from \"./cmd-protocol\";\nimport { ReconnectionError } from \"./@types\";\n\nexport enum EnumInitDataFormat {\n /**\n * @deprecated/ obsolete\n */\n LIVE = \"live\",\n /** new translations */\n LIVE2 = \"live2\",\n MESSENGER = \"messenger\",\n AVS = \"avs\",\n mc = \"mc\",\n}\n\nfunction nothing(): void {\n /* do nothing */\n}\n\ninterface IQEntry {\n queued: boolean;\n command: cmdcontrol.ICOMMAND;\n timeoutId: number;\n\n callback(response: cmdcontrol.IRESPONSE): any;\n}\n\nconst INACTIVE_SESSION_TIMEOUT = 120; //seconds\n\nexport class ConnectionConfig {\n public useWS = true; // use websocket\n public host = \"\";\n public wssport = \"\";\n public wsspath = \"\";\n public https = true;\n public agent: cmdcontrol.CmdClientAgent = cmdcontrol.CmdClientAgent.WEB;\n public language: cmdcontrol.SupportedLanguage;\n public version = \"?\";\n public commandHandler: (response: cmdcontrol.IRESPONSE) => any;\n public logger: Logger = undefined;\n public webtoken = \"\";\n public clientID?: string = \"\";\n public jsonp = false; // Allow usage von JSONP for fallback from websocket\n public firstConnectionRetryInterval = 0;\n public connectionRetryInterval = 2000;\n public initdata: EnumInitDataFormat = EnumInitDataFormat.LIVE;\n public onError?: (error: ReconnectionError) => unknown;\n public onOpen?: (event: Event) => unknown;\n public deviceId?: string;\n\n public toString(): string {\n // tslint:disable-next-line:max-line-length\n return (\n \"[ useWS=\" +\n this.useWS +\n \" host=\" +\n this.host +\n \" wssport=\" +\n this.wssport +\n \" wsspath=\" +\n this.wsspath +\n \" agent=\" +\n this.agent +\n \" language=\" +\n this.language +\n \" version=\" +\n this.version +\n \" logger=\" +\n this.logger +\n \" commandHandler= \" +\n this.commandHandler +\n \" ]\"\n );\n }\n}\n\nexport class CmdConnection {\n // tslint:disable-next-line:member-ordering\n private static _commandTimeout = {\n CMDP_CLOGOUT: 4000,\n CMDP_LOGOUT: 4000,\n CMDP_NOOP: 30_000,\n };\n private _reConnectionTimeoutId?: ReturnType<typeof setTimeout>;\n private _isReConnectionPaused = false;\n\n private static _timeoutByAction(entry: IQEntry): number {\n return this._commandTimeout[entry.command.action] || 120_000;\n }\n\n private static _fetchJsonp(urlBase: string, entry: IQEntry, callback: (response: cmdcontrol.IRESPONSE) => any): void {\n let url = `${urlBase}?action=${entry.command.action}`;\n for (const key in entry.command.params) {\n if (\n Object.prototype.hasOwnProperty.call(entry.command.params, key) &&\n typeof entry.command.params[key] !== \"undefined\"\n ) {\n url += \"&\" + encodeURIComponent(key) + \"=\" + encodeURIComponent(entry.command.params[key].toString());\n }\n }\n url = url.replace(\"??\", \"?\");\n const callbackFn = `_jsonp_${Date.now()}_${Math.ceil(Math.random() * 0x1_00_00).toString(16)}`;\n const jsonpScript = document.createElement(\"script\");\n const parent = document.querySelectorAll(\"head\")[0];\n const cleanup = (): void => {\n if (entry.timeoutId) {\n clearTimeout(entry.timeoutId);\n entry.timeoutId = undefined;\n }\n jsonpScript.remove();\n try {\n delete window[callbackFn];\n } catch {\n logger.log(\"send over jsonp\", entry);\n window[callbackFn] = undefined;\n }\n };\n window[callbackFn] = (response: any): void => {\n cleanup();\n if (entry.command.params.format === \"json\") {\n callback(Object.assign(entry.command, response));\n } else {\n callback(Object.assign(entry.command, CmdConnection._parsePlainResponse(response)));\n }\n };\n jsonpScript.src = `${url}${url.includes(\"?\") ? \"&\" : \"?\"}callback=${callbackFn}`;\n jsonpScript.onerror = (e): void => {\n cleanup();\n callback(\n Object.assign(\n entry.command,\n CmdConnection._getErrorResponse(cmdcontrol.ResultCode.NETWORK_ERROR, (e as ErrorEvent).error),\n ),\n );\n };\n parent.append(jsonpScript);\n entry.timeoutId = window.setTimeout(() => {\n cleanup();\n window[callbackFn] = nothing;\n callback(Object.assign(entry.command, CmdConnection._getErrorResponse(cmdcontrol.ResultCode.TIMEOUT, \"timeout\")));\n }, this._timeoutByAction(entry));\n }\n\n private static _parsePlainResponse(responseStr: string): any {\n const response: cmdcontrol.IRESPONSE = {\n action: cmdcontrol.ACTION.CMDP_UNDEFINED,\n params: {},\n result: new cmdcontrol.RESULT(),\n commands: [],\n values: {},\n };\n\n const plusPattern = /\\+/g;\n const commandPattern = /^CMDC_(\\w+)/;\n const valuePattern = /(\\w+)=(\\S+)/g;\n\n let strings: string[];\n\n for (const line of responseStr.split(\"\\n\")) {\n // tslint:disable-next-line:no-conditional-assignment\n if (!(strings = commandPattern.exec(line))) {\n continue;\n }\n const cmdStr: string = strings[1];\n const values: any = {};\n valuePattern.lastIndex = 0;\n // tslint:disable-next-line:no-conditional-assignment\n while ((strings = valuePattern.exec(line))) {\n const key: string = strings[1];\n const value: string = decode(decodeURIComponent(strings[2]));\n values[key] =\n key === \"text\" && value.slice(0, 7) !== \"<a+href\" && cmdStr !== \"CQUERYUSER\" && !line.includes(\" from=system\")\n ? value\n : value.replace(plusPattern, \" \");\n }\n switch (cmdStr) {\n case \"RESULT\":\n response.result.code = Number.parseInt(values.code, 10);\n response.result.reason = values.reason;\n break;\n case \"VALUE\":\n for (const key in values) {\n if (Object.prototype.hasOwnProperty.call(values, key)) {\n response.values[key] = values[key];\n }\n }\n break;\n default:\n response.commands.push({\n action: cmdcontrol.ACTION[\"CMDC_\" + cmdStr],\n params: values,\n });\n }\n }\n return response;\n }\n\n private static _getErrorResponse(code: number, reason: string): any {\n return { result: { code, reason }, commands: undefined, values: undefined };\n }\n\n private readonly _version: string = VERSION;\n private _settings: ConnectionConfig;\n private readonly _instanceId: string;\n private _servletUrl: string;\n private _platformUrl: string; // from DS_RELOAD\n private _socket: WebSocket;\n private _closing = false;\n private _counter = 1;\n private _reConnectAttemptsCount = 0;\n private _initProcessed = false;\n private _noop = { active: false, lastId: undefined, lastTime: undefined };\n private _dsreload: boolean;\n private _queue: IQEntry[] = [];\n private readonly _jumpTable: {\n [key: string]: (command: cmdcontrol.ICOMMAND) => void;\n };\n private _sessionID = \"\";\n private _clientID = \"\";\n private _logPrefix = \"CMDP.\";\n\n public constructor(settings: ConnectionConfig) {\n this._instanceId = Math.ceil(Math.random() * 0x1_00_00_00).toString(16);\n while (this._instanceId.length < 6) {\n this._instanceId = \"0\" + this._instanceId;\n }\n this._settings = settings;\n if (settings.logger) {\n setLogger(settings.logger);\n }\n logger.log(this._logPrefix + \" version=\" + VERSION + \" settings: \" + settings);\n this._onopen = this._onopen.bind(this);\n this._onmessage = this._onmessage.bind(this);\n this._onclose = this._onclose.bind(this);\n this._onerror = this._onerror.bind(this);\n this.connect = this.connect.bind(this);\n window.onunload = this.close.bind(this);\n\n this._jumpTable = {\n CMDP_INIT: this._processCmpdInit.bind(this),\n CMDP_SINIT: this._processCmpdInit.bind(this),\n CMDP_CINIT: this._processCmdpCInit.bind(this),\n CMDP_SLOGIN: this._processCmdpLogin.bind(this),\n // tslint:disable-next-line:object-literal-sort-keys\n CMDP_LOGIN: this._processCmdpLogin.bind(this),\n CMDP_NOOP: this._processCmdpNoop.bind(this),\n CMDP_CLOGOUT: this._processCmdpCLogout.bind(this),\n CMDC_DSRELOAD: this._processCmdcDsReload.bind(this),\n CMDC_UPDATE: this._processCmdcUpdate.bind(this),\n CMDC_SLOGOUT: this._processLogout.bind(this),\n CMDP_LOGOUT: this._processLogout.bind(this),\n };\n }\n\n public connect(): void {\n // tslint:disable-next-line:max-line-length\n this._servletUrl = this._platformUrl\n ? this._platformUrl\n : `${this._settings.https ? \"https\" : \"http\"}://${this._settings.host}:${this._settings.wssport}${\n this._settings.wsspath\n }`;\n if (this._settings.useWS) {\n this._openSocket();\n }\n if (!this._initProcessed && !this._settings.clientID) {\n const command = Object.assign(new cmdcontrol.CMDP_INIT(), {\n params: { initData: this._settings.initdata },\n });\n this._send(command);\n }\n }\n\n public send(command: cmdcontrol.ICOMMAND): void {\n if (command.action === cmdcontrol.ACTION.CMDP_NOOP) {\n logger.error(this._logPrefix + \" dont send the CMDP_NOOP active \", command);\n throw new Error(\"don't send the CMDP_NOOP.\");\n }\n this._send(command);\n }\n\n public close(): void {\n this._closing = true;\n this._noop.active = false;\n if (this._socket) {\n this._socket.close();\n }\n }\n\n private _send(command: cmdcontrol.ICOMMAND): cmdcontrol.ICOMMAND {\n const isNoopCommand = command.action === cmdcontrol.ACTION.CMDP_NOOP;\n const isChatCommand =\n Object.prototype.hasOwnProperty.call(command, \"params\") &&\n Object.prototype.hasOwnProperty.call(command.params, \"clientID\");\n command = Object.assign(command, {\n params: Object.assign(this._getDefaultParams(isNoopCommand, isChatCommand), command.params),\n });\n logger.log(this._logPrefix + \"_enqueue\", command);\n const entry: IQEntry = {\n callback: this._processReply.bind(this),\n command,\n timeoutId: 0,\n queued: true,\n };\n this._queue.push(entry);\n this._dequeue();\n\n return command;\n }\n\n private _openSocket(): void {\n const url = `${this._settings.https ? \"wss\" : \"ws\"}://${this._settings.host}:${this._settings.wssport}${\n this._settings.wsspath\n }`;\n logger.log(this._logPrefix + \"_openSocket\", url);\n let socket: WebSocket;\n try {\n socket = new WebSocket(url);\n } catch (error) {\n // @MDN SECURITY_ERR The port to which the connection is being attempted is being blocked.\n logger.warn(this._logPrefix + \"_openSocket SECURITY_ERR\", error);\n this.reconnect();\n\n return;\n }\n\n socket.onopen = this._onopen;\n socket.onmessage = this._onmessage;\n socket.onerror = this._onerror;\n socket.onclose = this._onclose;\n\n this._socket = socket;\n }\n\n private _onopen(event: Event): void {\n logger.log(this._logPrefix + \"socket.onopen\", event);\n this._dequeue();\n\n if (this._socket?.readyState === WebSocket.OPEN) {\n this._reConnectAttemptsCount = 0;\n\n this._sendNoop();\n\n if (this._settings.onOpen) {\n this._settings.onOpen(event);\n }\n }\n }\n\n private _onmessage(event: MessageEvent): void {\n logger.log(this._logPrefix + \"socket.onmessage\", event);\n const data = JSON.parse(event.data);\n this._processReply(data);\n }\n\n private _onerror(event: Event): void {\n logger.warn(this._logPrefix + \"socket.onerror\", event);\n\n if (this._settings.onError) {\n const isFatal = this._reConnectAttemptsCount === 6;\n let event: ReconnectionError;\n\n if (isFatal) {\n event = { isFatal: true };\n } else {\n const reConnectionTimeout = this._getNextConnectionRetryTimeout(this._reConnectAttemptsCount);\n event = { reConnectionTimeout };\n }\n this._settings.onError(event);\n }\n }\n\n private _onclose(event: CloseEvent): void {\n logger.log(this._logPrefix + \"socket.onclose\", event);\n\n if (!this._closing && !this._dsreload && this._settings.useWS) {\n this.reconnect();\n }\n\n if (this._dsreload) {\n this._dsreload = false;\n }\n }\n\n private _getDefaultParams(isNoopCommand: boolean, isChatCommand: boolean): any {\n return {\n _uniq: (this._counter++).toString(),\n _iid: this._instanceId,\n strip: true,\n format: cmdcontrol.EnumFormatValues.JSON,\n agent: this._settings.agent,\n version: this._settings.version + \"/\" + this._version,\n language: this._settings.language,\n webtoken: this._settings.webtoken,\n deviceId: this._settings.deviceId,\n ...(isNoopCommand || !isChatCommand ? { sessionID: this._sessionID } : {}),\n ...(isNoopCommand && this._hasClientId ? { clientID: this._clientID } : {}),\n };\n }\n\n private _processReply(response: cmdcontrol.IRESPONSE): void {\n logger.log(this._logPrefix + \"_processReply\", response);\n const _uniq = response.params._uniq;\n let entry: IQEntry;\n for (let i = 0, l = this._queue.length; i < l; i++) {\n entry = this._queue[i];\n if (entry.command.params._uniq === _uniq) {\n if (entry.timeoutId) {\n clearTimeout(entry.timeoutId);\n }\n this._queue.splice(i, 1);\n break;\n }\n }\n if (!entry) {\n logger.warn(this._logPrefix + \"_processReply. Entry not found _uniq=\" + _uniq, response);\n return;\n }\n /*network issue*/\n let emit = true;\n if (response.result.code === cmdcontrol.ResultCode.NETWORK_ERROR) {\n const retry = Number.parseInt(entry.command.params._retry.toString() || \"0\", 10);\n if (retry < 10) {\n emit = false;\n setTimeout(() => {\n logger.log(this._logPrefix + \".re-enqueue \", entry.command);\n entry.command.params._retry = entry.command.params._retry ? (retry + 1).toString() : \"1\";\n this._send(entry.command);\n }, 3000);\n }\n }\n if (emit) {\n this._processCommand(response);\n if (response.commands && response.commands.length > 0) {\n response.commands.forEach(this._processCommand.bind(this));\n }\n this._settings.commandHandler(response);\n }\n this._dequeue();\n }\n\n private _dequeue(): void {\n if (!this._closing) {\n for (let i = 0, l = this._queue.length; i < l; i++) {\n const entry = this._queue[i];\n if (entry.queued) {\n this._sendEntry(entry);\n break;\n }\n }\n }\n }\n\n private _sendEntry(entry: IQEntry): void {\n if (this._settings.useWS) {\n if (this._socket?.readyState === WebSocket.OPEN) {\n entry.queued = false;\n const str = JSON.stringify(entry.command);\n this._socket.send(str);\n }\n } else if (this._settings.jsonp) {\n entry.queued = false;\n CmdConnection._fetchJsonp(this._servletUrl, entry, this._processReply.bind(this));\n }\n }\n\n private _getNextConnectionRetryTimeout(attempt: number): number {\n return this._settings.connectionRetryInterval * attempt || this._settings.firstConnectionRetryInterval;\n }\n\n public reconnect(): void {\n if (this._isReConnectionPaused) {\n return;\n }\n\n this._socket = undefined;\n this._markAllQueueEntriesAsQueued();\n\n if (this._settings.jsonp) {\n logger.warn(this._logPrefix + \". fallback to JSONP\");\n this._settings.useWS = false;\n this._dequeue();\n } else if (this._settings.useWS) {\n if (this._reConnectAttemptsCount <= 5) {\n if (this._reConnectionTimeoutId) {\n clearTimeout(this._reConnectionTimeoutId);\n this._reConnectionTimeoutId = undefined;\n }\n\n const reConnectionTimeout = this._getNextConnectionRetryTimeout(this._reConnectAttemptsCount);\n\n logger.log(this._logPrefix + \" retry connect in \" + reConnectionTimeout + \" ms\");\n this._reConnectAttemptsCount++;\n\n this._reConnectionTimeoutId = setTimeout(() => {\n this._openSocket();\n }, reConnectionTimeout);\n } else {\n this._reConnectAttemptsCount = 0;\n logger.log(this._logPrefix + \" maximum reconnect attempts count reached\");\n }\n }\n }\n\n public pause(isResumable = true): void {\n if (\n !this._settings.useWS ||\n this._socket?.readyState === WebSocket.CLOSED ||\n this._socket?.readyState === WebSocket.CLOSING\n ) {\n return;\n }\n\n this._isReConnectionPaused = true;\n if (this._reConnectionTimeoutId) {\n clearTimeout(this._reConnectionTimeoutId);\n this._reConnectionTimeoutId = undefined;\n }\n\n if (this._socket) {\n this._socket.onclose = undefined;\n this._socket.onerror = undefined;\n this._socket.close();\n }\n\n if (!isResumable) {\n this._closing = false;\n this._noop.active = true;\n this._noop.lastTime = undefined;\n this._isReConnectionPaused = false;\n this._reConnectAttemptsCount = 0;\n this.reconnect();\n }\n }\n\n public resume(): boolean {\n if (!(this._hasSessionId || this._hasClientId) || !this._settings.useWS || !this._isReConnectionPaused) {\n return false;\n }\n\n this._closing = false;\n this._noop.active = true;\n this._noop.lastTime = undefined;\n this._isReConnectionPaused = false;\n this._reConnectAttemptsCount = 0;\n this.reconnect();\n\n return true;\n }\n\n private _sendNoop(): void {\n if (!(this._hasSessionId || this._hasClientId)) {\n return;\n }\n\n const command = this._send(new cmdcontrol.CMDP_NOOP());\n this._noop.lastId = command.params._uniq;\n }\n\n private _processCommand(command: cmdcontrol.ICOMMAND): void {\n const func = this._jumpTable[command.action];\n if (func) {\n func(command);\n }\n }\n\n // noinspection JSUnusedLocalSymbols\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private _processCmpdInit(_response: cmdcontrol.CMDP_INIT_RESPONSE): void {\n this._initProcessed = true;\n }\n\n private _processCmdpCInit(response: cmdcontrol.CMDP_CINIT_RESPONSE): void {\n if (response.result.code === cmdcontrol.ResultCode.OK) {\n this._clientID = response.params.clientID;\n\n if (this._settings.clientID) {\n this._sendNoop();\n }\n }\n }\n\n private _processCmdpLogin(response: cmdcontrol.CMDP_LOGIN_RESPONSE): void {\n if (response.result.code === cmdcontrol.ResultCode.OK) {\n this._sessionID = response.values.sessionID;\n if (response.values.webtoken) {\n this._settings.webtoken = response.values.webtoken;\n }\n this._sendNoop();\n }\n }\n\n private _processCmdpNoop(response: cmdcontrol.CMDP_NOOP_RESPONSE): void {\n const currentTime = Math.floor(Date.now() / 1000);\n\n switch (response.result.code) {\n case cmdcontrol.ResultCode.SESSION_NOT_FOUND:\n case cmdcontrol.ResultCode.NETWORK_ERROR:\n logger.warn(this._logPrefix + \"NOOP stopped\");\n break;\n default:\n if (!this._noop.lastTime || currentTime - this._noop.lastTime < INACTIVE_SESSION_TIMEOUT) {\n this._noop.lastTime = currentTime;\n }\n\n if (this._noop.lastId === response.params._uniq) {\n this._sendNoop();\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private _processCmdpCLogout(_response: cmdcontrol.CMDP_CLOGOUT): void {\n this._clientID = \"\";\n }\n\n private _processLogout(): void {\n this._settings.webtoken = \"\";\n }\n\n private _processCmdcDsReload(command: cmdcontrol.CMDC_DSRELOAD): void {\n logger.warn(this._logPrefix + cmdcontrol.ACTION.CMDC_DSRELOAD, command);\n this._dsreload = true;\n if (this._socket) {\n this._socket.close();\n }\n\n this._markAllQueueEntriesAsQueued();\n\n this._platformUrl = command.params.PlatformUrl;\n this._settings.host = command.params.wsshost;\n this._settings.wssport = command.params.wssport;\n this._settings.wsspath = command.params.wsspath;\n this.connect();\n }\n\n private _processCmdcUpdate(command: cmdcontrol.CMDC_UPDATE): void {\n if (\n Object.prototype.hasOwnProperty.call(command.params, \"webtoken\") &&\n typeof command.params[\"webtoken\"] !== \"undefined\"\n ) {\n this._settings.webtoken = command.params[\"webtoken\"];\n }\n }\n\n private _markAllQueueEntriesAsQueued(): void {\n this._queue.forEach((entry) => {\n // do not re enqueue the NOOP because of duplicate\n if (!entry.queued && entry.command.action !== cmdcontrol.ACTION.CMDP_NOOP) {\n entry.queued = true;\n }\n });\n }\n\n public get isOpened(): boolean {\n return this._socket?.readyState === WebSocket.OPEN;\n }\n\n private get _hasSessionId(): boolean {\n return Boolean(this._sessionID);\n }\n\n private get _hasClientId(): boolean {\n return Boolean(this._clientID);\n }\n}\n","/*\n * Copyright (c) 2016-2020. campoint AG.\n * This file is licensed under the MIT License (https://opensource.org/licenses/MIT).\n */\n//\n\nexport * from \"./cmd-protocol\";\nexport * from \"./@types\";\n\nexport { setLogger, LogCollector, LogEntry } from \"./logger\";\nexport { ConnectionConfig, CmdConnection, EnumInitDataFormat } from \"./cmd-connection\";\nexport { CmdControlSession } from \"./cmd-session\";\n","export * from \"./protocol/command/icommand\";\nexport * from \"./protocol/command/action\";\nexport * from \"./protocol/command/resultcode\";\nexport * from \"./protocol/backend\";\nexport * from \"./protocol/channel\";\nexport * from \"./protocol/channelinfo\";\nexport * from \"./protocol/contactnote\";\nexport * from \"./protocol/chatstate\";\nexport * from \"./protocol/connection\";\nexport * from \"./protocol/b2b/b2buserinfo\";\nexport * from \"./protocol/b2b/b2bcontact\";\nexport * from \"./protocol/init\";\nexport * from \"./protocol/login\";\nexport * from \"./protocol/gifts\";\nexport * from \"./protocol/logout\";\nexport * from \"./protocol/message\";\nexport * from \"./protocol/noop\";\nexport * from \"./protocol/lobby\";\nexport * from \"./protocol/onlinestate\";\nexport * from \"./protocol/sessionstate\";\nexport * from \"./protocol/media-b2b\";\nexport * from \"./protocol/mediaupload\";\nexport * from \"./protocol/mediapurchase\";\nexport * from \"./protocol/media\";\nexport * from \"./protocol/mediaoffer\";\nexport * from \"./protocol/media-b2b\";\nexport * from \"./protocol/update-state\";\nexport * from \"./protocol/b2b/b2buserinfo\";\nexport * from \"./protocol/systemmessagekey\";\nexport * from \"./protocol/live/channelgroups\";\nexport * from \"./protocol/live/live-commands\";\nexport * from \"./protocol/live/login\";\nexport * from \"./protocol/live/devicestatus\";\nexport * from \"./protocol/live/supdate\";\nexport * from \"./protocol/live/products-config\";\nexport * from \"./protocol/live/streamstate\";\nexport * from \"./protocol/live/usersettings\";\nexport * from \"./protocol/live/testchat\";\nexport * from \"./protocol/live/msettings\";\nexport * from \"./protocol/live/livechat\";\nexport * from \"./protocol/live/ticketshow\";\nexport * from \"./protocol/messenger/expo\";\nexport * from \"./protocol/messenger/signup\";\nexport * from \"./protocol/messenger/mobile\";\nexport * from \"./protocol/status\";\nexport * from \"./protocol/exit-code\";\nexport * from \"./protocol/clivechat\";\nexport * from \"./protocol/feedback\";\nexport * from \"./protocol/messenger/videosdk\";\nexport * from \"./protocol/messenger/mvcschedule\";\nexport * from \"./protocol/msgtemplate\";\n\n// partial exports\nexport { SupportedLanguage, CmdClientAgent, EnumFormatValues, baseParamsType } from \"./protocol/command/baseparams\";\n","import * as cmdcontrol from \"./cmd-protocol\";\nimport { ConnectionConfig, CmdConnection } from \"./cmd-connection\";\n\n/**\n * this is minimal implementation of wraper for cmd-control-connection\n */\nexport class CmdControlSession {\n private readonly _connection: CmdConnection;\n\n public constructor(settings: ConnectionConfig) {\n this._connection = new CmdConnection(settings);\n this._connection.connect();\n }\n\n // noinspection JSUnusedGlobalSymbols\n public LoginWithUsernamePassword(login: string, password: string): void {\n const command = Object.assign(new cmdcontrol.CMDP_SLOGIN(), {\n params: { login, password, msn: true },\n });\n this._connection.send(command);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public LoginWithSession(foreignSID: string): void {\n const command = Object.assign(new cmdcontrol.CMDP_SLOGIN(), {\n params: { foreignSID, msn: true },\n });\n this._connection.send(command);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public LoginWithWebtoken(webtoken: string): void {\n const command = Object.assign(new cmdcontrol.CMDP_SLOGIN(), {\n params: { webtoken, msn: true },\n });\n this._connection.send(command);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public sendCommand(command: cmdcontrol.ICOMMAND): void {\n this._connection.send(command);\n }\n\n public logout(exitCode: number): void {\n const command = Object.assign(new cmdcontrol.CMDP_LOGOUT(), {\n params: { code: exitCode },\n });\n this._connection.send(command);\n }\n\n public close(): void {\n this._connection.close();\n }\n\n public reconnect(): void {\n this._connection.reconnect();\n }\n\n public pause(isResumable = true): void {\n this._connection.pause(isResumable);\n }\n\n public resume(): boolean {\n return this._connection.resume();\n }\n\n public get isOpened(): boolean {\n return this._connection.isOpened;\n }\n}\n","// tslint:disable-next-line:interface-name\nexport interface Logger {\n log: (message?: any, ...optionalParams: any[]) => void;\n warn: (message?: any, ...optionalParams: any[]) => void;\n error: (message?: any, ...optionalParams: any[]) => void;\n}\n\nexport let logger: Logger = {\n log: (message?: any, ...optionalParams: any[]) => {\n /**NOOP */\n },\n warn: (message?: any, ...optionalParams: any[]) => {\n /**NOOP */\n },\n // tslint:disable-next-line:object-literal-sort-keys\n error: (message?: any, ...optionalParams: any[]) => {\n /**NOOP */\n },\n};\n\nexport function setLogger(value: Logger): void {\n logger = value;\n}\n\n// tslint:disable-next-line:interface-name\nexport interface LogEntry {\n level: number;\n time: number;\n message: string;\n params: any[];\n}\n\nexport class LogCollector implements Logger {\n public static readonly LOG = 10;\n public static readonly WARN = 20;\n public static readonly ERROR = 30;\n\n // tslint:disable-next-line:variable-name\n private _logs: LogEntry[] = [];\n // tslint:disable-next-line:variable-name\n private _logger: Logger;\n\n // tslint:disable-next-line:no-shadowed-variable\n public constructor(logger?: Logger) {\n this._logger = logger;\n }\n\n public clear(): void {\n this._logs = [];\n }\n\n public get logs(): LogEntry[] {\n return this._logs;\n }\n\n public exportToStr(level = 0, entries = 0): string {\n let out = \"\";\n const len = this._logs.length;\n for (let i = entries === 0 ? 0 : Math.max(len - entries, 0); i < len; i++) {\n const entry = this._logs[i];\n if (entry.level < level) {\n continue;\n }\n const levelStr = entry.level >= LogCollector.ERROR ? \"ERROR\" : entry.level >= LogCollector.WARN ? \"WARN\" : \"INFO\";\n const d = new Date(entry.time);\n out +=\n (d.getHours() < 10 ? \"0\" : \"\") +\n d.getHours() +\n (d.getMinutes() < 10 ? \":0\" : \":\") +\n d.getMinutes() +\n (d.getSeconds() < 10 ? \":0\" : \":\") +\n d.getSeconds() +\n (d.getMilliseconds() < 100 ? (d.getMilliseconds() < 10 ? \".00\" : \".0\") : \".\") +\n d.getMilliseconds() +\n \" \" +\n levelStr +\n \" \" +\n entry.message +\n (entry.params ? \" \" + JSON.stringify(entry.params) : \"\") +\n \"\\n\";\n }\n return out;\n }\n\n public log(message?: any, ...params: any[]): void {\n this._push(LogCollector.LOG, message, params);\n }\n\n public warn(message?: any, ...params: any[]): void {\n this._push(LogCollector.WARN, message, params);\n }\n\n public error(message?: any, ...params: any[]): void {\n this._push(LogCollector.ERROR, message, params);\n }\n\n private _push(level: number, message: any, params: any[]): void {\n this._logs.push({ level, time: Date.now(), message, params });\n if (this._logger) {\n const method =\n level >= LogCollector.WARN\n ? this._logger.warn\n : level >= LogCollector.ERROR\n ? this._logger.error\n : this._logger.log;\n if (params) {\n const p = [message, ...params];\n try {\n // TODO edge-mobile doesn't like it\n method(...p);\n } catch {\n //\n }\n } else {\n method(message);\n }\n }\n }\n}\n","import { channelIdType, partnerIdKeyType } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\nimport { IB2BUserInfo } from \"./b2buserinfo\";\n\n// B2B only.\n\n/**\n * the information about partner user. overrides information set by partnter to his user and will be shown to your users.\n */\nexport type IB2BContactInfo = IB2BUserInfo;\n\n/**\n * Transport command for Contact Info\n */\n\nexport class CMDC_CONTACTINFO implements ICOMMAND {\n public action = ACTION.CMDC_CONTACTINFO;\n public params: partnerIdKeyType & IB2BContactInfo;\n}\n\n/**\n * Set the contact information.\n */\nexport class CMDP_SETCONTACTINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETCONTACTINFO;\n public params: baseParamsType & partnerIdKeyType & IB2BContactInfo;\n}\n\n/**\n * Response for CMDP_SETCONTACTINFO\n */\n\nexport class CMDP_SETCONTACTINFO_RESPONSE extends CMDP_SETCONTACTINFO implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * get the contact information\n */\nexport class CMDP_GETCONTACTINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETCONTACTINFO;\n public params: baseParamsType & (channelIdType | partnerIdKeyType);\n}\n\n/**\n * Response for CMDP_GETCONTACTINFO\n */\nexport class CMDP_GETCONTACTINFO_RESPONSE extends CMDP_GETCONTACTINFO implements IRESPONSE {\n public result: RESULT;\n /** ContactInfo */\n public commands: CMDC_CONTACTINFO[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCONTACTINFO extends CMDP_GETCONTACTINFO {\n public action: ACTION = ACTION.CMDP_SGETCONTACTINFO;\n}\n\n/**\n * @deprecated\n */\nexport class CMDP_SGETCONTACTINFO_RESPONSE extends CMDP_GETCONTACTINFO_RESPONSE {\n public action: ACTION = ACTION.CMDP_SGETCONTACTINFO;\n}\n","import { EnumBooleanStringified, JSONString } from \"../../@types\";\nimport { EnumProductId, usrKeyType } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\n/**\n * user information and abilities\n */\n\ninterface IUserInfo extends IKeyValue {\n /** product id readonly*/\n productId?: EnumProductId;\n /** user Login/Name to show */\n ualias?: string;\n /** user language, 2-symbol code lower case. \"de\", \"en\" */\n language?: string;\n /** avatar url */\n imgSrc?: string;\n /** avatar url sourceSet, ignored in SET-Commands */\n imgSrcSet?: string;\n /** any json encoded string for client software */\n payload?: JSONString<unknown>;\n /** age verification status */\n avs?: EnumBooleanStringified;\n /** abilities */\n canSendMessage?: EnumBooleanStringified;\n canReceiveMessage?: EnumBooleanStringified;\n /** deprecated */\n canSendImage?: EnumBooleanStringified;\n /** deprecated */\n canReceiveImage?: EnumBooleanStringified;\n /** deprecated */\n canSendAudio?: EnumBooleanStringified;\n /** deprecated */\n canReceiveAudio?: EnumBooleanStringified;\n /** deprecated */\n canSendVideo?: EnumBooleanStringified;\n /** deprecated */\n canReceiveVideo?: EnumBooleanStringified;\n canSendMedia?: EnumBooleanStringified;\n canReceiveMedia?: EnumBooleanStringified;\n /**\n * @deprecated/obsolete\n */\n canReceiveTicket?: EnumBooleanStringified;\n canOfferMedia?: EnumBooleanStringified;\n canPurchaseMedia?: EnumBooleanStringified;\n}\n\n/**\n * product \"VOne\" extra information and abilities\n */\nexport interface IUserInfoVOne extends IUserInfo {\n isVIP?: EnumBooleanStringified;\n canCall0900?: EnumBooleanStringified;\n canSingleSession?: EnumBooleanStringified;\n canBuyShopContent: EnumBooleanStringified;\n canBeDiscounted: EnumBooleanStringified;\n canSendGifts: EnumBooleanStringified;\n canControlToy: EnumBooleanStringified;\n canBeBan: EnumBooleanStringified;\n}\n\n/**\n * B2B basic user information\n */\nexport type IB2BUserInfo = IUserInfo;\n\n/**\n * B2B Vone user information\n */\nexport type IB2BUserInfoVOne = IUserInfoVOne;\n\n/**\n * user information transport object\n */\nexport class CMDC_USERINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_USERINFO;\n public params: {\n usrId: string;\n usrKey: string;\n } & (IB2BUserInfo | IB2BUserInfoVOne);\n}\n\n/**\n * B2B only\n * Create/Update user information in messenger system\n */\nexport class CMDP_SETUSERINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETUSERINFO;\n public params: baseParamsType & usrKeyType & (IUserInfo | IUserInfoVOne);\n}\n\n/**\n * Response for CMDP_SETUSERINFO\n */\nexport class CMDP_SETUSERINFO_RESPONSE extends CMDP_SETUSERINFO implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public values: IKeyMaybeValue;\n /** unused */\n public commands: ICOMMAND[];\n}\n\n/**\n * B2B only\n * Get user information in messenger system\n */\nexport class CMDP_GETUSERINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETUSERINFO;\n public params: baseParamsType & {\n /** userKey */\n usrKey: string;\n };\n}\n\n/**\n * Response CMDP_GETUSERINFO\n */\nexport class CMDP_GETUSERINFO_RESPONSE extends CMDP_GETUSERINFO implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public values: IKeyMaybeValue;\n /** user info */\n public commands: CMDC_USERINFO[];\n}\n","import { EnumQueryBackendSubAction, ExclusiveOR } from \"../@types\";\nimport { channelIdType, IMayHaveChannelId, usrKeyType } from \"./channel\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\n\nexport interface IBackEndPayload {\n type: any;\n data: any;\n}\n\nexport declare type TChatData = {\n chatId: number;\n clientId: string;\n server: string;\n width: string;\n height: string;\n};\n\nexport declare type TGuestData = {\n guestBalance?: number;\n bundleGifts?: TGiftQuantity[];\n};\n\nexport declare type TGiftQuantity = {\n id: number;\n quantity: number;\n};\n\nexport declare type TQueryBackendResponsePayload = ExclusiveOR<TChatData, TGuestData>;\n\n/**\n * payload for transport to backend and from backend to client\n */\nexport interface IBACKENDPAYLOAD {\n /* any object */\n payload?: unknown;\n}\n\ntype TSubActionParams = {\n subaction: EnumQueryBackendSubAction;\n};\n\n/**\n * common command for take a backend action\n */\nexport class CMDP_QUERYBACKEND implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_QUERYBACKEND;\n public params: TSubActionParams & baseParamsType & channelIdType;\n}\n\n/**\n * response CMDP_QUERYBACKEND\n */\nexport class CMDP_QUERYBACKEND_RESPONSE extends CMDP_QUERYBACKEND implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n /** if jwt-session, any json-payload for transport to to client */\n public payload?: TQueryBackendResponsePayload;\n}\n\n/**\n * the update commando from backend over B2B-connection to client for channel\n */\nexport class CMDC_BACKENDPAYLOAD implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDC_BACKENDPAYLOAD;\n public params: IMayHaveChannelId & usrKeyType & IKeyMaybeValue;\n public payload?: IBackEndPayload;\n}\n\n/** the b2b command for publish of CMDC_BACKENDPAYLOAD */\nexport class CMDP_BACKENDPAYLOAD implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_BACKENDPAYLOAD;\n public params: IMayHaveChannelId & usrKeyType & IKeyMaybeValue;\n public payload?: IBackEndPayload;\n}\n","import { ComaSeparatedValues } from \"./sessionstate\";\nimport { chatIdType } from \"./chatstate\";\nimport { EnumBooleanStringified, EnumBooleanStringifiedExtended, EnumChannelFlags } from \"../@types\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT, StringBasedType } from \"./command/icommand\";\nimport { CMDC_CMSG, EnumMediaType, EnumMessageDirection, EnumMessageType } from \"./message\";\nimport { IB2BUserInfo, IB2BUserInfoVOne } from \"./b2b/b2buserinfo\";\nimport { EnumBadge } from \"./channelinfo\";\nimport { ChannelMediaLinkState } from \"./media\";\n\n/**\n * channelId has Format \"usrId.usrKey-partnerId.partnerKey\"\n * userPoolId - business id in messenger system, number\\{10,0\\}\n * usrKey - key of your customer in your sytem, string(36 bytes), \".\" and \"-\" are not allowed\n * partnerId - userPoolId of your partner in messenger system, number\\{10,0\\}\n * partnerKey - key of partner customer, string(36 bytes), \".\" and \"-\" are not allowed\n */\n\n/**\n * Type that definitely has `channelId` field\n */\nexport type channelIdType = {\n channelId: string;\n};\n\n/**\n * Type that may or may not have `channelId` field\n * ONLY channel ID, not other fields!\n */\nexport interface IMayHaveChannelId {\n channelId?: string;\n}\n\nexport type usrKeyType = {\n /** key of your customer. obligatory param for b2b session */\n usrKey?: string;\n};\n\nexport type partnerIdKeyType = {\n /** id of your business partner in messenger system */\n partnerId: string;\n /** key of partners customer */\n partnerKey: string;\n};\n\n/** mind one of both, please */\nexport type channelIdOrChatId = channelIdType | chatIdType;\n\n/**\n * channel\n */\nexport class ChannelType implements IKeyValue {\n [key: string]: StringBasedType;\n /** channel id */\n public channelId: string;\n /** your business usrId in messenger system */\n public usrId: string; // your master id\n /** the key of your customer */\n public usrKey: string; // your customer id\n /** id of your business partner in messenger system */\n public partnerId: string; // the partner id\n /** key of partner customer */\n public partnerKey: string; // partner customer id\n /** time of last incoming message */\n public lastTimeIn: string;\n /** time of last outgoing message */\n public lastTimeOut: string;\n /** number of unseen messages */\n public unseen: string;\n /** update spam serial */\n public serial: string;\n /** @see EnumChannelFlags */\n public flags?: ComaSeparatedValues<EnumChannelFlags> | EnumChannelFlags;\n /** the weight of the channel*/\n public weight?: string;\n /*time for next possible outgoing message */\n public nextTimeOut?: string;\n}\n\n/**\n * the command for delivery channel info\n */\nexport class CMDC_CHANNEL implements ICOMMAND {\n public action = ACTION.CMDC_CHANNEL;\n public params: ChannelType;\n}\n\n/**\n * create new channel. the channel must be created before send of message\n */\nexport class CMDP_NEWCHANNEL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_NEWCHANNEL;\n public params: baseParamsType & usrKeyType & partnerIdKeyType & (IB2BUserInfo | IB2BUserInfoVOne);\n}\n\n/**\n * response for CMDP_NEWCHANNEL\n */\nexport class CMDP_NEWCHANNEL_RESPONSE extends CMDP_NEWCHANNEL implements IRESPONSE {\n public result: RESULT;\n /** the created channel */\n public commands: CMDC_CHANNEL[];\n /** deprecated. the created channel, values is ChannelType */\n public values: ChannelType;\n}\n\n/**\n * Get the ChannelInfo. this command works with channelId and will be reflected to backend.\n */\nexport class CMDP_GETCHANNEL implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_GETCHANNEL;\n public params: baseParamsType & channelIdType;\n public payload?: unknown;\n}\n\n/**\n * response for CMDP_GETCHANNEL\n */\nexport class CMDP_GETCHANNEL_RESPONSE extends CMDP_GETCHANNEL implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n /** the channel info */\n public commands: CMDC_CHANNEL[];\n /** unused, empty */\n public values: IKeyMaybeValue;\n /** the backend info to the channel */\n public payload?: unknown;\n}\n\n/**\n * 8320 only.\n */\nexport class CMDP_SGETCHANNEL extends CMDP_GETCHANNEL {\n public action: ACTION = ACTION.CMDP_SGETCHANNEL;\n}\n\n/**\n * 8320 only\n */\nexport class CMDP_SGETCHANNEL_RESPONSE extends CMDP_SGETCHANNEL {\n public action: ACTION = ACTION.CMDP_SGETCHANNEL;\n}\n\nexport enum EnumSortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n\nexport enum EnumChannelFilterValues {\n ANY = \"any\",\n ONLY = \"only\",\n EXCLUDE = \"exclude\",\n}\n\nexport enum EnumProductId {\n Default = \"1\",\n PAGES = \"2\",\n PARTNER = \"3\",\n TV = \"4\",\n}\n\n/** channel selector type */\nexport type channelIdSelector = {\n channelId?: ComaSeparatedValues<string> | string;\n selectActive?: EnumBooleanStringified;\n selectRegularCustomer?: EnumBooleanStringified;\n selectAdvertised?: EnumBooleanStringified;\n selectPinned?: EnumBooleanStringified;\n selectGroupId?: ComaSeparatedValues<string> | string;\n selectBadges?: ComaSeparatedValues<EnumBadge> | string;\n selectFollowMe?: EnumBooleanStringified;\n groupId?: ComaSeparatedValues<string> | string;\n /**\n * @deprecated/ignored\n */\n selectVip?: EnumBooleanStringified;\n};\n\nexport type channelIdFilter = {\n /** search for contact-name, default empty, any lenght */\n filterContactName?: string;\n /** filter channels without incoming messages, default any */\n filterEmptyIn?: EnumChannelFilterValues;\n /** filter channels without outgoing messages, default any */\n filterEmptyOut?: EnumChannelFilterValues;\n /** filter archived channels, default any */\n filterArchived?: EnumChannelFilterValues;\n /** 8320 only , default any */\n filterAdvertised?: EnumChannelFilterValues;\n /** filter by favorite flag, default any */\n filterRegularCustomer?: EnumChannelFilterValues;\n /** filter by favorite flag, default any */\n filterFollowMe?: EnumChannelFilterValues;\n /** filter by unseen, default any */\n filterUnseen?: EnumChannelFilterValues;\n /** filter by unanswered, default any */\n filterUnAnswered?: EnumChannelFilterValues;\n /** filter by pinned, default any */\n filterPinned?: EnumChannelFilterValues;\n /** filter by muted, default any */\n filterMuted?: EnumChannelFilterValues;\n /** filter by VIP status, default any */\n filterVIP?: EnumChannelFilterValues;\n /** has a video chat */\n filterVideoChat?: EnumChannelFilterValues;\n /** has a session */\n filterOnline?: EnumChannelFilterValues;\n /** cant sent message*/\n filterBlockedOutbound?: EnumChannelFilterValues;\n /** filter by product id, default empty*/\n filterProductId?: EnumProductId;\n /** filter by banned */\n filterBanned?: EnumChannelFilterValues;\n /** media filter */\n filterCanReceiveImage?: EnumChannelFilterValues;\n filterCanReceiveAudio?: EnumChannelFilterValues;\n filterCanReceiveVideo?: EnumChannelFilterValues;\n /** media purchasing filter */\n filterCanPurchaseMedia?: EnumChannelFilterValues;\n /** filter by group id, coma separated */\n filterGroupId?: string;\n /** filter by badges */\n selectBadges?: ComaSeparatedValues<EnumBadge> | string;\n /** filterActive */\n filterActive?: EnumChannelFilterValues;\n /** filter channels to exclude */\n filterExcludeChannelId?: ComaSeparatedValues<string> | string;\n /** filter by weight */\n filterMinWeight?: string;\n filterMaxWeight?: string;\n filterShadowban?: EnumChannelFilterValues;\n};\n\nexport type channelIdSelectOrFilter = channelIdSelector & channelIdFilter;\n\nexport type getChannelsParamsType = {\n /** from serial, default = 0 */\n serial?: string;\n /** query offset */\n skip?: string;\n /** limit, default is 1000 */\n limit?: string;\n /**\n * @deprecated/obsolete, ignored\n */\n sort?: EnumSortOrder;\n /** get CMDC_CONTACTNOTE in commands, default 0, deprecated */\n contactNote?: EnumBooleanStringifiedExtended;\n /** get CMDC_CONTACTINFO in commands, default 0, allowed for b2b session only */\n contactInfo?: EnumBooleanStringifiedExtended;\n /** get CMDC_CHANNELINFO in commands, default 0 */\n channelInfo?: EnumBooleanStringifiedExtended;\n /** get CMDC_ONLINESTATE in commands */\n onlineState?: EnumBooleanStringifiedExtended;\n /** get CMDC_CHANNELGROUP in commands */\n groupInfo?: EnumBooleanStringifiedExtended;\n /** search for contact-name, default empty */\n /**\n * @deprecated. obsolete\n */\n contactSearch?: string;\n};\n\n/**\n * Query for ChannelList\n */\nexport class CMDP_GETCHANNELS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETCHANNELS;\n public params: baseParamsType &\n getChannelsParamsType &\n channelIdSelectOrFilter & {\n countOnly?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_GETCHANNELS\n */\nexport class CMDP_GETCHANNELS_RESPONSE extends CMDP_GETCHANNELS implements IRESPONSE {\n public result: RESULT;\n /** channels & channel infos, if countOnly omited or \"false\" */\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & {\n channelCount?: string;\n channelTotal?: string;\n };\n}\n\n/** synonym, 8320 only */\nexport class CMDP_SGETCHANNELS extends CMDP_GETCHANNELS {\n public action: ACTION = ACTION.CMDP_SGETCHANNELS;\n}\n\n/** synonym, 8320 only */\nexport class CMDP_SGETCHANNELS_RESPONSE extends CMDP_GETCHANNELS_RESPONSE {\n public action: ACTION = ACTION.CMDP_SGETCHANNELS;\n}\n\n/** searchAfter must be used together */\nexport type IMayHaveSearchAfter = {\n /** filter for datetime, value like CMDC_CMSG.param.timeSent (unix time stamp in ms)*/\n searchAfterTime?: string;\n searchAfterId?: string;\n};\n\nexport type getHistoryParamsType = IMayHaveChannelId &\n IMayHaveSearchAfter & {\n /** filter for msgType. coma separated */\n filterMessageType?: EnumMessageType | string;\n filterSysMessageKey?: ComaSeparatedValues<string>;\n /** filter for isDeleted*/\n filterDeleted?: EnumChannelFilterValues;\n filterMediaType?: ComaSeparatedValues<EnumMediaType>;\n filterLinkState?: ComaSeparatedValues<ChannelMediaLinkState>;\n filterDirection?: EnumMessageDirection;\n /** number of messages, max & default is 100 */\n limit?: string;\n /** sort by sent, default is DESC */\n sort?: EnumSortOrder;\n /** deprecated */\n keys?: EnumBooleanStringifiedExtended;\n };\n\n/**\n * Get messages history for channel\n * Multichannel command\n */\nexport class CMDP_GETHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETHISTORY;\n public params: baseParamsType &\n getHistoryParamsType & {\n getUnseenButDeleted?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_GETHISTORY\n */\nexport class CMDP_GETHISTORY_RESPONSE extends CMDP_GETHISTORY implements IRESPONSE {\n public result: RESULT;\n /** found messages */\n public commands: CMDC_CMSG[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\nexport enum EnumLimitType {\n TOTAL = \"total\",\n separately = \"separately\",\n}\n\n/**\n * Get messages history for channel\n * Multichannel command\n */\nexport class CMDP_SGETMESSAGEHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMESSAGEHISTORY;\n public params: baseParamsType &\n getHistoryParamsType & {\n /** chat id list, coma separated */\n chatIDs?: string;\n /** limit type, default total */\n limitType?: EnumLimitType;\n /*fetch */\n fetchReactionsFirst?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_GETHISTORY\n */\nexport class CMDP_SGETMESSAGEHISTORY_RESPONSE extends CMDP_SGETMESSAGEHISTORY implements IRESPONSE {\n public result: RESULT;\n /** found messages */\n public commands: CMDC_CMSG[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\nexport type channelSeenParamsType = channelIdType & {\n /** last seen messageId, by default all messages marked as seen */\n messageId?: string;\n};\n\nexport class CMDP_SGETCHANNELMESSAGE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHANNELMESSAGE;\n public params: baseParamsType & {\n channelId: string;\n messageId: string;\n };\n}\n\nexport class CMDP_SGETCHANNELMESSAGE_RESPONSE extends CMDP_SGETCHANNELMESSAGE implements IRESPONSE {\n public result: RESULT;\n /** found message */\n public commands: CMDC_CMSG[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * Mark messages as seen\n */\nexport class CMDP_CHANNELSEEN implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CHANNELSEEN;\n public params: baseParamsType & channelSeenParamsType;\n}\n\n/** alias, 8320 only */\nexport class CMDP_SCHANNELSEEN extends CMDP_CHANNELSEEN {\n public action: ACTION = ACTION.CMDP_SCHANNELSEEN;\n}\n\n/** alias, 8320 only */\nexport class CMDP_CHANNELSEEN_RESPONSE extends CMDP_SCHANNELSEEN implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/** alias, 8320 only */\nexport class CMDP_SCHANNELSEEN_RESPONSE extends CMDP_CHANNELSEEN_RESPONSE {\n public action: ACTION = ACTION.CMDP_SCHANNELSEEN;\n}\n\nexport enum EnumUpdateChannelPropertyName {\n ARCHIVED = \"archived\",\n REGULAR_CUSTOMER = \"regularCustomer\",\n UNANSWERED = \"unanswered\",\n PINNED = \"pinned\",\n MUTED = \"muted\",\n BANNED = \"banned\",\n BLOCKED_INBOUND = \"blockedInbound\",\n BLOCKED_OUTBOUND = \"blockedOutbound\",\n}\n\nexport class updateChannelParamsType {\n /** flag name */\n public propertyName: EnumUpdateChannelPropertyName;\n /** flag value */\n public propertyValue: EnumBooleanStringified;\n}\n\n/**\n * Set Flag on Channel\n * @deprecated use CMDP_SETCHANNELINFO\n */\nexport class CMDP_UPDATECHANNEL implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_UPDATECHANNEL;\n public params: baseParamsType & updateChannelParamsType & IKeyMaybeValue;\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_UPDATECHANNEL\n */\nexport class CMDP_UPDATECHANNEL_RESPONSE extends CMDP_UPDATECHANNEL implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n public payload?: unknown;\n}\n\n/**\n * channel summary info\n */\nexport type channelSummaryInfo = {\n [key: string]: string;\n /** your business id */\n usrId: string;\n /** usrKey of your user */\n usrKey: string;\n /** number of channel */\n channels: string;\n /** number of unseen messages */\n unseen: string;\n /** number of unused CHANNELS*/\n unusedIn: string;\n unusedOut: string;\n unusedInOut: string;\n /** number of unseen messages */\n unseenWithoutArchived: string;\n /** number of unseen channels */\n unseenChannels: string;\n /** number of unseen channels without archived*/\n unseenChannelsWithoutArchived: string;\n /** number of unanswered channels */\n unanswered: string;\n /** number of unanswered channels */\n unansweredWithoutArchived: string;\n /** last time of incoming message */\n lastTimeIn: string;\n /** last time of outgoing message */\n lastTimeOut: string;\n /** number of archived channels */\n archived: string;\n /** number of advertised channels */\n advertised: string;\n /** number of regular channels */\n regular: string;\n /** number of pinned channels */\n pinned: string;\n /** number of muted channels */\n muted: string;\n /** number of banned channels */\n banned: string;\n /** number of vip channels */\n vip: string;\n /** number of online channels */\n online: string;\n /** number of active channels */\n active: string;\n /** number of follower*/\n followMe: string;\n};\n\n/**\n * channel summary\n */\nexport class CMDC_CHANNELSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CHANNELSSUMMARY;\n public params: channelSummaryInfo;\n}\n\n/**\n * Query the summary info about all channels\n */\nexport class CMDP_CHANNELSSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CHANNELSSUMMARY;\n public params: baseParamsType & usrKeyType;\n}\n\n/**\n * Response for CMDP_CHANNELSSUMMARY\n */\nexport class CMDP_CHANNELSSUMMARY_RESPONSE extends CMDP_CHANNELSSUMMARY implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** the summary info */\n public values: channelSummaryInfo;\n}\n","import { EnumBooleanStringified, EnumCurrency, JSONString } from \"../@types\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { channelIdType, EnumProductId } from \"./channel\";\nimport { IB2BUserInfo, IB2BUserInfoVOne } from \"./b2b/b2buserinfo\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\n\nexport enum EnumBadge {\n MSG = \"MSG\",\n TOY = \"TOY\",\n MEDIA = \"MEDIA\",\n GIFT = \"GIFT\",\n}\n/**\n * product code\n */\nexport interface IProduct {\n productId: EnumProductId;\n}\n\nexport interface IChannelInfoBackEndPayload {\n freeChatDuration: number;\n freeMessagesCount: number;\n currency: EnumCurrency;\n messagePrice: number;\n videoChatPrice: number;\n voyeurChatPrice: number;\n singleChatPrice: number;\n singleC2CChatPrice: number;\n}\n\n/**\n * channel information and abilities\n */\nexport interface IChanelInfo extends IKeyMaybeValue {\n canBeArchived?: EnumBooleanStringified;\n canBeBanned?: EnumBooleanStringified;\n}\n\n/**\n * User channel information and abilities\n */\nexport interface IChanelInfoV extends IKeyMaybeValue {\n /** the VOne channel(user) was advertised by user, readonly*/\n advertised?: EnumBooleanStringified;\n /** json-encoded string. discount information about video chat discount, readonly */\n discount?: JSONString<any>;\n /** the user follew me (mirrored regularCustomer), readonly */\n followMe?: EnumBooleanStringified;\n /** Customer value badges */\n badges?: ComaSeparatedValues<EnumBadge>;\n /** no messages can be sent, too many messages without answer. readonly*/\n blockedOutbound?: EnumBooleanStringified;\n /** no messages can come in*/\n blockedInbound?: EnumBooleanStringified;\n}\n\n/**\n * channel note\n */\nexport default interface IChannelNote extends IKeyValue {\n firstName?: string;\n lastName?: string;\n age?: string;\n city?: string;\n regularCustomer?: string;\n notes?: string; // Live\n note?: string; // Messenger\n}\n\nexport interface ChannelInfo\n extends channelIdType,\n Partial<IProduct>,\n IChanelInfo,\n IChanelInfoV,\n Partial<IB2BUserInfoVOne>,\n IChannelNote {}\n\nexport type ChannelInfoType = channelIdType &\n IProduct &\n IChanelInfo &\n IChanelInfoV &\n (IB2BUserInfo | IB2BUserInfoVOne) &\n IChannelNote;\n\n/**\n * transport command for channel information\n */\nexport class CMDC_CHANNELINFO implements ICOMMAND {\n public action = ACTION.CMDC_CHANNELINFO;\n public params: ChannelInfoType;\n}\n\n/**\n * get channel information\n */\nexport class CMDP_GETCHANNELINFO implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETCHANNELINFO;\n public params: baseParamsType & channelIdType;\n}\n\n/**\n * Response for CMDP_CHANNELINFO\n */\nexport class CMDP_GETCHANNELINFO_RESPONSE extends CMDP_GETCHANNELINFO implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n /** ContactInfo */\n public commands: CMDC_CHANNELINFO[];\n /** unused */\n public values: IKeyMaybeValue;\n /** the backend info for the channel */\n public payload?: IChannelInfoBackEndPayload;\n}\n\n/**\n * set channel note.\n */\nexport class CMDP_SETCHANNELINFO implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_SETCHANNELINFO;\n public params: baseParamsType & channelIdType & IChannelNote;\n /** the backend info for the channel */\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_SETCHANNELINFO\n */\nexport class CMDP_SETCHANNELINFO_RESPONSE extends CMDP_SETCHANNELINFO implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n /** the backend info for the channel */\n public payload?: unknown;\n}\n","import { ACTION, chatIdType, ComaSeparatedValues, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport {\n EnumBooleanStringified,\n EnumBooleanStringifiedExtended,\n EnumCurrency,\n EnumPlayerFormat,\n JSONString,\n} from \"../@types\";\n\nexport type clientID = { clientID: string; _iid?: string };\n\nexport enum EnumClientStatusType {\n AUDIO_UNMUTED = \"11\",\n AUDIO_MUTED = \"12\",\n STREAM_STATS = \"15\",\n PLAYER_EVENT = \"16\",\n PAGE_HIDDEN = \"20\",\n PAGE_VISIBLE = \"21\",\n PROXY_STATE_INFO = \"22\",\n MEDIA_PLAYER_EVENT = \"23\",\n WEBRTC_STATS = \"24\",\n}\n\nexport class CMDP_CSTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CSTATUS;\n public params: clientID & {\n statusCode: EnumClientStatusType;\n text: string;\n };\n}\n\nexport class CMDP_CSTATUS_RESPONSE extends CMDP_CSTATUS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport type ChargeAmount = {\n value: number;\n caption1: string;\n caption2: string;\n};\n\nexport type ChargeInfo = {\n allowed: EnumBooleanStringifiedExtended;\n currency: EnumCurrency;\n autoCharge?: string;\n amounts?: ComaSeparatedValues<string>;\n chargeAmounts?: JSONString<ChargeAmount[]>;\n additionalCurrencies?: JSONString<{\n amounts: number[];\n currency: EnumCurrency;\n }>;\n};\n\nexport class CMDP_CQUERY_CHARGE implements ICOMMAND {\n public action = ACTION.CMDP_CQUERY_CHARGE;\n public params: clientID;\n}\n\nexport class CMDP_CQUERY_CHARGE_RESPONSE extends CMDP_CQUERY_CHARGE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: ChargeInfo;\n}\n\nexport type StreamSources = {\n dataURL: string;\n streamPriority: ComaSeparatedValues<EnumPlayerFormat>;\n width?: string;\n height?: string;\n fps?: string;\n quality?: string;\n mediaH5Live?: string;\n mediaHlsMobileUrl?: string;\n mediaHlsUrl?: string;\n mediaJpegUrl?: string;\n mediaJpegWsUrl?: string;\n mediaWebRtc?: string;\n mediaVideoSdk?: string;\n mediaRtmp?: string;\n mediaRtmpUrl?: string;\n};\n\nexport class CMDP_CSTARTVIDEOPULL implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTVIDEOPULL;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTVIDEOPULL_RESPONSE extends CMDP_CSTARTVIDEOPULL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: StreamSources;\n}\n\nexport class CMDC_CSTARTVIDEOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTARTVIDEOPULL;\n public params: StreamSources;\n}\n\nexport class CMDC_CSTOPVIDEOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPVIDEOPULL;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTAUDIOPULL implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTAUDIOPULL;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTAUDIOPULL_RESPONSE extends CMDP_CSTARTAUDIOPULL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: Pick<StreamSources, \"dataURL\" | \"streamPriority\">;\n}\n\nexport class CMDC_CSTARTAUDIOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTARTAUDIOPULL;\n public params: Pick<StreamSources, \"dataURL\" | \"streamPriority\">;\n}\n\nexport class CMDC_CSTOPAUDIOPULL implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPAUDIOPULL;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTPREVIEW implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTPREVIEW;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTPREVIEW_RESPONSE extends CMDP_CSTARTPREVIEW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: StreamSources;\n}\n\nexport class CMDC_CSTOPPREVIEW implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPPREVIEW;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTVIDEOPUSH implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTVIDEOPUSH;\n public params: clientID & {\n flashclient: boolean;\n };\n}\n\nexport class CMDP_CSTARTVIDEOPUSH_RESPONSE extends CMDP_CSTARTVIDEOPUSH implements ICOMMAND {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: Pick<\n StreamSources,\n \"dataURL\" | \"width\" | \"height\" | \"mediaJpegWsUrl\" | \"streamPriority\" | \"mediaWebRtc\" | \"fps\" | \"quality\"\n >;\n}\n\nexport class CMDP_CSTOPVIDEOPUSH implements ICOMMAND {\n public action = ACTION.CMDP_CSTOPVIDEOPUSH;\n public params: clientID;\n}\n\nexport class CMDP_CSTOPVIDEOPUSH_RESPONSE extends CMDP_CSTOPVIDEOPUSH implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_CSTOPTEXT implements ICOMMAND {\n public action = ACTION.CMDC_CSTOPTEXT;\n public params: clientID &\n chatIdType & {\n code: string;\n time?: string;\n };\n}\n\nexport class CMDP_CSTARTTEXT implements ICOMMAND {\n public action = ACTION.CMDP_CSTARTTEXT;\n public params: clientID;\n}\n\nexport class CMDP_CSTARTTEXT_RESPONSE extends CMDP_CSTARTTEXT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_PUBLICCHAT implements ICOMMAND {\n public action = ACTION.CMDC_PUBLICCHAT;\n public params: clientID &\n chatIdType & {\n user: JSONString<{ userName: string }>;\n event: \"entered\" | \"left\";\n };\n}\n\nexport class CMDP_CTIP implements ICOMMAND {\n public action = ACTION.CMDP_CTIP;\n public params: clientID & {\n cent: string;\n gift: ComaSeparatedValues<string>;\n currency: EnumCurrency;\n };\n}\n\nexport class CMDP_CTIP_RESPONSE extends CMDP_CTIP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_CCHARGE implements ICOMMAND {\n public action = ACTION.CMDP_CCHARGE;\n public params: clientID & {\n amount: string;\n };\n}\n\nexport class CMDP_CCHARGE_RESPONSE extends CMDP_CCHARGE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n successfully: EnumBooleanStringified;\n };\n}\n\nexport type clipSnapshot = {\n time: number;\n imgSrc: string;\n};\n\nexport class CMDC_CLIP implements ICOMMAND {\n public action = ACTION.CMDC_CLIP;\n public params: clientID & {\n chatID: string;\n clipID: string;\n name: string;\n duration: string;\n price: string;\n currency: EnumCurrency;\n snapshots: JSONString<clipSnapshot[]>;\n };\n}\n\nexport class CMDP_CGETCLIPS implements ICOMMAND {\n public action = ACTION.CMDP_CGETCLIPS;\n public params: clientID;\n}\n\nexport class CMDP_CGETCLIPS_RESPONSE extends CMDP_CGETCLIPS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CLIP[];\n public values: {\n recordedSeconds?: \"string\";\n };\n}\n\nexport class CMDP_CBUYCLIP implements ICOMMAND {\n public action = ACTION.CMDP_CBUYCLIP;\n public params: clientID & {\n clipID: string;\n };\n}\n\nexport class CMDP_CBUYCLIP_RESPONSE extends CMDP_CBUYCLIP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","/**\n * command names that CmdControl can handle\n */\n\nexport enum ACTION {\n CMDP_INIT = \"CMDP_INIT\",\n CMDP_SINIT = \"CMDP_SINIT\",\n CMDP_LOGIN = \"CMDP_LOGIN\",\n CMDP_SLOGIN = \"CMDP_SLOGIN\",\n CMDP_LOGOUT = \"CMDP_LOGOUT\",\n CMDP_SLOGOUT = \"CMDP_SLOGOUT\",\n CMDP_CLOGOUT = \"CMDP_CLOGOUT\",\n CMDC_USERINFO = \"CMDC_USERINFO\",\n CMDP_SETUSERINFO = \"CMDP_SETUSERINFO\",\n CMDP_GETUSERINFO = \"CMDP_GETUSERINFO\",\n CMDC_CONTACTNOTE = \"CMDC_CONTACTNOTE\",\n CMDP_SETCONTACTNOTE = \"CMDP_SETCONTACTNOTE\",\n CMDP_SSETCONTACTNOTE = \"CMDP_SSETCONTACTNOTE\",\n CMDP_GETCONTACTNOTE = \"CMDP_GETCONTACTNOTE\",\n CMDP_SGETCONTACTNOTE = \"CMDP_SGETCONTACTNOTE\",\n CMDC_CONTACTINFO = \"CMDC_CONTACTINFO\",\n CMDP_SETCONTACTINFO = \"CMDP_SETCONTACTINFO\",\n CMDP_SGETCONTACTINFO = \"CMDP_SGETCONTACTINFO\",\n CMDP_GETCONTACTINFO = \"CMDP_GETCONTACTINFO\",\n CMDC_CHANNELINFO = \"CMDC_CHANNELINFO\",\n CMDP_GETCHANNELINFO = \"CMDP_GETCHANNELINFO\",\n CMDP_SETCHANNELINFO = \"CMDP_SETCHANNELINFO\",\n CMDC_CHANNEL = \"CMDC_CHANNEL\",\n CMDP_NEWCHANNEL = \"CMDP_NEWCHANNEL\",\n CMDP_GETCHANNELS = \"CMDP_GETCHANNELS\",\n CMDP_SGETCHANNELS = \"CMDP_SGETCHANNELS\",\n CMDP_GETCHANNEL = \"CMDP_GETCHANNEL\",\n CMDP_SGETCHANNEL = \"CMDP_SGETCHANNEL\",\n CMDP_CHANNELSEEN = \"CMDP_CHANNELSEEN\",\n CMDP_SCHANNELSEEN = \"CMDP_SCHANNELSEEN\",\n CMDP_UPDATECHANNEL = \"CMDP_UPDATECHANNEL\",\n CMDC_CHANNELSSUMMARY = \"CMDC_CHANNELSSUMMARY\",\n CMDP_CHANNELSSUMMARY = \"CMDP_CHANNELSSUMMARY\",\n CMDP_SUPLOADPIC = \"CMDP_SUPLOADPIC\",\n CMDC_CMSG = \"CMDC_CMSG\",\n CMDP_GETHISTORY = \"CMDP_GETHISTORY\",\n CMDP_MSG = \"CMDP_MSG\",\n CMDP_MSGDELETE = \"CMDP_MSGDELETE\",\n CMDC_ONLINESTATE = \"CMDC_ONLINESTATE\",\n CMDP_GETONLINESTATE = \"CMDP_GETONLINESTATE\",\n CMDP_GETONLINESTATES = \"CMDP_GETONLINESTATES\",\n CMDC_VALUE = \"CMDC_VALUE\",\n\n /* LIVE, VideoSession commandsv*/\n CMDP_SET_DISCOUNT = \"CMDP_SET_DISCOUNT\",\n CMDP_SQUERY_DISCOUNT = \"CMDP_SQUERY_DISCOUNT\",\n CMDP_QUERYUSER = \"CMDP_QUERYUSER\",\n CMDC_QUERYANSWERED = \"CMDC_QUERYANSWERED\",\n CMDP_SQUERY_FORMAT = \"CMDP_SQUERY_FORMAT\",\n CMDP_STOPLOOPBACK9 = \"CMDP_STOPLOOPBACK9\",\n CMDP_STARTLOOPBACK9 = \"CMDP_STARTLOOPBACK9\",\n CMDP_STOPBANDWIDTHTEST = \"CMDP_STOPBANDWIDTHTEST\",\n CMDP_STARTBANDWIDTHTEST = \"CMDP_STARTBANDWIDTHTEST\",\n CMDP_STOP_STREAM_PREVIEW = \"CMDP_STOP_STREAM_PREVIEW\",\n CMDP_START_STREAM_PREVIEW = \"CMDP_START_STREAM_PREVIEW\",\n CMDP_UPDATE = \"CMDP_UPDATE\",\n CMDP_SGETCHATS = \"CMDP_SGETCHATS\",\n CMDP_FSK16 = \"CMDP_FSK16\",\n CMDP_KICK = \"CMDP_KICK\",\n CMDP_TRACERT_REPLY = \"CMDP_TRACERT_REPLY\",\n CMDP_STOPSEND = \"CMDP_STOPSEND\",\n CMDP_STARTSEND = \"CMDP_STARTSEND\",\n /**\n * @deprecated/obsolete\n */\n CMDP_SERVICE0900 = \"CMDP_SERVICE0900\",\n /*special heartbeat command*/\n CMDP_NOOP = \"CMDP_NOOP\",\n CMDP_QUERYBACKEND = \"CMDP_QUERYBACKEND\",\n CMDP_UNDEFINED = \"CMDP_UNDEFINED\",\n /*VideoChat server commands*/\n CMDC_CINIT = \"CMDC_CINIT\",\n CMDC_FEEDBACK = \"CMDC_FEEDBACK\",\n CMDC_DSRELOAD = \"CMDC_DSRELOAD\",\n CMDC_UPDATE = \"CMDC_UPDATE\",\n CMDC_CEXIT = \"CMDC_CEXIT\",\n CMDC_CSTARTSTREAMPUSH = \"CMDC_CSTARTSTREAMPUSH\",\n CMDC_CSTOPVIDEOPUSH = \"CMDC_CSTOPVIDEOPUSH\",\n CMDC_QUERYUSER = \"CMDC_QUERYUSER\",\n CMDC_CQUERYUSER = \"CMDC_CQUERYUSER\",\n CMDC_UPDATE_CHAT = \"CMDC_UPDATE_CHAT\",\n CMDC_BACKENDPAYLOAD = \"CMDC_BACKENDPAYLOAD\",\n CMDP_BACKENDPAYLOAD = \"CMDP_BACKENDPAYLOAD\",\n CMDP_TOYSTATE = \"CMDP_TOYSTATE\",\n CMDP_TOYACTION = \"CMDP_TOYACTION\",\n CMDC_TOYACTION = \"CMDC_TOYACTION\",\n CMDC_CSTREAMRESTART = \"CMDC_CSTREAMRESTART\",\n CMDP_SUPLOADMEDIA = \"CMDP_SUPLOADMEDIA\",\n CMDP_CQUERY_CHARGE = \"CMDP_CQUERY_CHARGE\",\n CMDP_CSTARTVIDEOPULL = \"CMDP_CSTARTVIDEOPULL\",\n CMDP_CSTARTAUDIOPULL = \"CMDP_CSTARTAUDIOPULL\",\n CMDP_CSTARTPREVIEW = \"CMDP_CSTARTPREVIEW\",\n CMDP_CSTARTTEXT = \"CMDP_CSTARTTEXT\",\n CMDP_CQUERY_SINGLE = \"CMDP_CQUERY_SINGLE\",\n CMDP_CQUERYUSER = \"CMDP_CQUERYUSER\",\n CMDC_CSTOPVIDEOPULL = \"CMDC_CSTOPVIDEOPULL\",\n CMDC_CSTOPAUDIOPULL = \"CMDC_CSTOPAUDIOPULL\",\n CMDC_CSTOPPREVIEW = \"CMDC_CSTOPPREVIEW\",\n CMDC_CSTOPTEXT = \"CMDC_CSTOPTEXT\",\n CMDC_PUBLICCHAT = \"CMDC_PUBLICCHAT\",\n CMDP_CSTARTVIDEOPUSH = \"CMDP_CSTARTVIDEOPUSH\",\n CMDP_CSTOPVIDEOPUSH = \"CMDP_CSTOPVIDEOPUSH\",\n CMDP_CTIP = \"CMDP_CTIP\",\n CMDP_CMSG = \"CMDP_CMSG\",\n CMDP_CCHARGE = \"CMDP_CCHARGE\",\n /** Commands used on Live but not mentioned here **/\n CMDC_CSTOPAUDIOPUSH = \"CMDC_CSTOPAUDIOPUSH\",\n CMDC_CSTARTAUDIOPUSH = \"CMDC_CSTARTAUDIOPUSH\",\n CMDP_CSTOPTEXT = \"CMDP_CSTOPTEXT\",\n CMDC_CSTARTVIDEOPULL = \"CMDC_CSTARTVIDEOPULL\",\n CMDC_CSTARTAUDIOPULL = \"CMDC_CSTARTAUDIOPULL\",\n CMDC_CSTARTVOYEUR = \"CMDC_CSTARTVOYEUR\",\n CMDC_CSTOPVOYEUR = \"CMDC_CSTOPVOYEUR\",\n CMDP_SUPDATE = \"CMDP_SUPDATE\",\n CMDC_CSHOWADMIN = \"CMDC_CSHOWADMIN\",\n CMDC_CSTOPSTREAMPUSH = \"CMDC_CSTOPSTREAMPUSH\",\n CMDP_SSTATUS = \"CMDP_SSTATUS\",\n CMDC_CSTARTTEXT = \"CMDC_CSTARTTEXT\",\n CMDC_CSTARTVIDEOPUSH = \"CMDC_CSTARTVIDEOPUSH\",\n CMDC_SLOGOUT = \"CMDC_SLOGOUT\",\n CMDP_SDEVICESTATUS = \"CMDP_SDEVICESTATUS\",\n CMDC_STREAMSTATE = \"CMDC_STREAMSTATE\",\n CMDP_GETONLINESUMMARY = \"CMDP_GETONLINESUMMARY\",\n CMDP_SMEDIAGETPRICES = \"CMDP_SMEDIAGETPRICES\",\n CMDP_SMEDIAPURCHASE = \"CMDP_SMEDIAPURCHASE\",\n CMDP_OPEN_LOBBY = \"CMDP_OPEN_LOBBY\",\n CMDP_CLOSE_LOBBY = \"CMDP_CLOSE_LOBBY\",\n CMDP_SMEDIAOFFERCREATE = \"CMDP_SMEDIAOFFERCREATE\",\n CMDP_SINFORMMEDIAPURCHASED = \"CMDP_SINFORMMEDIAPURCHASED\",\n CMDP_SETEXPOTOKEN = \"CMDP_SETEXPOTOKEN\",\n CMDP_SGETCHATHISTORY = \"CMDP_SGETCHATHISTORY\",\n CMDP_SETSETTINGS = \"CMDP_SETSETTINGS\",\n CMDP_GETSETTINGS = \"CMDP_GETSETTINGS\",\n CMDC_MEDIAPURCHASED = \"CMDC_MEDIAPURCHASED\",\n CMDP_SGETMEDIAINFO = \"CMDP_SGETMEDIAINFO\",\n CMDP_SIGNUP = \"CMDP_SIGNUP\",\n CMDP_RESETPASSWORD = \"CMDP_RESETPASSWORD\",\n CMDP_SOPENMEDIAOFFER = \"CMDP_SOPENMEDIAOFFER\",\n CMDP_SCLOSEMEDIAOFFER = \"CMDP_SCLOSEMEDIAOFFER\",\n CMDP_SSTARTTESTVIDEOCHAT = \"CMDP_SSTARTTESTVIDEOCHAT\",\n CMDP_SCHECKUPLOADEDMEDIA = \"CMDP_SCHECKUPLOADEDMEDIA\",\n CMDP_SGETUPLOADEDMEDIA = \"CMDP_SGETUPLOADEDMEDIA\",\n CMDC_CMEDIA = \"CMDC_CMEDIA\",\n CMDP_SGETMSETTINGS = \"CMDP_SGETMSETTINGS\",\n CMDP_SSETMSETTING = \"CMDP_SSETMSETTING\",\n CMDC_MSETTINGS = \"CMDC_MSETTINGS\",\n CMDP_SDELETE_USER = \"CMDP_SDELETE_USER\",\n CMDC_GROUP = \"CMDC_GROUP\",\n CMDC_CHANNELGROUP = \"CMDC_CHANNELGROUP\",\n CMDP_SGETGROUPS = \"CMDP_SGETGROUPS\",\n CMDP_SADDGROUP = \"CMDP_SADDGROUP\",\n CMDP_SUPDATEGROUP = \"CMDP_SUPDATEGROUP\",\n CMDP_SGETGROUPCHANNELS = \"CMDP_SGETGROUPCHANNELS\",\n CMDP_SGETCHANNELGROUPS = \"CMDP_SGETCHANNELGROUPS\",\n CMDP_SADDCHANNELTOGROUP = \"CMDP_SADDCHANNELTOGROUP\",\n CMDP_SDELCHANNELFROMGROUP = \"CMDP_SDELCHANNELFROMGROUP\",\n CMDC_CTICKETSHOW = \"CMDC_CTICKETSHOW\",\n CMDP_SGETTICKETSHOWS = \"CMDP_SGETTICKETSHOWS\",\n CMDP_SUPSERTTICKETSHOW = \"CMDP_SUPSERTTICKETSHOW\",\n CMDP_SDELETETICKETSHOW = \"CMDP_SDELETETICKETSHOW\",\n CMDP_SSTARTTICKETSHOW = \"CMDP_SSTARTTICKETSHOW\",\n CMDP_SSTOPTICKETSHOW = \"CMDP_SSTOPTICKETSHOW\",\n CMDP_SGETCHATSSUMMARY = \"CMDP_SGETCHATSSUMMARY\",\n CMDP_GETLIVEHISTORY = \"CMDP_GETLIVEHISTORY\",\n CMDC_LIVESESSION = \"CMDC_LIVESESSION\",\n CMDC_LIVECHAT = \"CMDC_LIVECHAT\",\n CMDC_CHANNELMEDIASUMMARY = \"CMDC_CHANNELMEDIASUMMARY\",\n CMDP_SGETCHANNELDMEDIASUMMARY = \"CMDP_SGETCHANNELDMEDIASUMMARY\",\n CMDP_SGETSEDCARDPICTURES = \"CMDP_SGETSEDCARDPICTURES\",\n CMDC_SEDCARDPICTURE = \"CMDC_SEDCARDPICTURE\",\n CMDP_CSTATUS = \"CMDP_CSTATUS\",\n CMDP_CINIT = \"CMDP_CINIT\",\n CMDP_SMSGREACTION = \"CMDP_SMSGREACTION\",\n CMDC_SSTATUS = \"CMDC_SSTATUS\",\n CMDP_SGETMESSAGEHISTORY = \"CMDP_SGETMESSAGEHISTORY\",\n CMDP_SMSGESTIMATE = \"CMDP_SMSGESTIMATE\",\n CMDP_SETMOBILETOKEN = \"CMDP_SETMOBILETOKEN\",\n CMDP_STARTMOBILEVIDEOCALL = \"CMDP_STARTMOBILEVIDEOCALL\",\n CMDC_STARTMOBILEVIDEOCALL = \"CMDC_STARTMOBILEVIDEOCALL\",\n CMDP_UPDATEMOBILEVIDEOCALL = \"CMDP_UPDATEMOBILEVIDEOCALL\",\n CMDC_UPDATEMOBILEVIDEOCALL = \"CMDC_UPDATEMOBILEVIDEOCALL\",\n CMDC_STARTWEBSIP = \"CMDC_STARTWEBSIP\",\n CMDC_STOPWEBSIP = \"CMDC_STOPWEBSIP\",\n CMDP_WSA_ADDUPDATEUSER = \"CMDP_WSA_ADDUPDATEUSER\",\n CMDP_WSA_DELETEUSER = \"CMDP_WSA_DELETEUSER\",\n CMDP_WSA_GET_USERS = \"CMDP_WSA_GET_USERS\",\n CMDC_WSA_USER = \"CMDC_WSA_USER\",\n CMDP_WSA_GET_CLIENTS = \"CMDP_WSA_GET_CLIENTS\",\n CMDC_WSA_CLIENT = \"CMDC_WSA_CLIENT\",\n CMDP_WSA_HEARTBEAT = \"CMDP_WSA_HEARTBEAT\",\n CMDP_DEEPL = \"CMDP_DEEPL\",\n CMDP_SGETSTREAMPARAMS = \"CMDP_SGETSTREAMPARAMS\",\n CMDP_LOGOUTOTHERMOBILE = \"CMDP_LOGOUTOTHERMOBILE\",\n CMDC_MVCSCHEDULE = \"CMDC_MVCSCHEDULE\",\n CMDP_SGETMVCSCHEDULE = \"CMDP_SGETMVCSCHEDULE\",\n CMDP_SUPSERTMVCSCHEDULE = \"CMDP_SUPSERTMVCSCHEDULE\",\n CMDP_SUPSERTMVCSCHEDULES = \"CMDP_SUPSERTMVCSCHEDULES\",\n CMDP_SDELETEMVCSCHEDULE = \"CMDP_SDELETEMVCSCHEDULE\",\n CMDP_SGETUPLOADEDMEDIA2 = \"CMDP_SGETUPLOADEDMEDIA2\",\n CMDP_SSETMSETTINGS = \"CMDP_SSETMSETTINGS\",\n CMDP_GETTOYQRCODE = \"CMDP_GETTOYQRCODE\",\n CMDP_GETTOYLIST = \"CMDP_GETTOYLIST\",\n CMDP_TOYCOMMAND = \"CMDP_TOYCOMMAND\",\n CMDC_TOYCOMMAND = \"CMDC_TOYCOMMAND\",\n CMDC_TOYLIST = \"CMDC_TOYLIST\",\n CMDC_CLIP = \"CMDC_CLIP\",\n CMDP_CGETCLIPS = \"CMDP_CGETCLIPS\",\n CMDP_CBUYCLIP = \"CMDP_CBUYCLIP\",\n CMDC_MSGTEMPLATE = \"CMDC_MSGTEMPLATE\",\n CMDP_SGETMSGTEMPLATES = \"CMDP_SGETMSGTEMPLATES\",\n CMDP_SUPSERTMSGTEMPLATE = \"CMDP_SUPSERTMSGTEMPLATE\",\n CMDP_SDELETEMSGTEMPLATE = \"CMDP_SDELETEMSGTEMPLATE\",\n CMDC_TPLCATEGORY = \"CMDC_TPLCATEGORY\",\n CMDP_SGETTPLCATEGORIES = \"CMDP_SGETTPLCATEGORIES\",\n CMDP_SUPSERTTPLCATEGORY = \"CMDP_SUPSERTTPLCATEGORY\",\n CMDP_SDELETETPLCATEGORY = \"CMDP_SDELETETPLCATEGORY\",\n CMDP_SGETCHANNELMESSAGE = \"CMDP_SGETCHANNELMESSAGE\",\n CMDP_SGETMEDIAHISTORY = \"CMDP_SGETMEDIAHISTORY\",\n CMDP_SGETMEDIAHISTORYSUMMARY = \"CMDP_SGETMEDIAHISTORYSUMMARY\",\n}\n","import { EnumBooleanStringified } from \"../../@types\";\n\nexport enum SupportedLanguage {\n DE = \"de\",\n EN = \"en\",\n ES = \"es\",\n}\n\nexport enum CmdClientAgent {\n WEB = \"we\", // javascript browser app\n MC = \"mc\",\n}\n\n/** the format, use 'json', 'plain' is default, but depricated */\nexport enum EnumFormatValues {\n JSON = \"json\",\n PLAIN = \"plain\",\n}\nexport type deviceIdType = {\n /* device id*/\n deviceId?: string;\n};\n\nexport type baseParamsType = {\n /** your app instance id, internal */\n _iid?: string;\n /** unique command id, internal */\n _uniq?: string;\n /** your app type */\n agent?: CmdClientAgent;\n /** your sessionID from CMDP_LOGIN_RESPONSE, Ignored in CMDP_LOGIN, CMDP_INIT */\n sessionID?: string;\n /** the format, use 'json', 'plain' is default, but deprecated */\n format?: EnumFormatValues;\n /** short json, use '1' , default is '0' and force delivery of plain-text non-json format response */\n strip?: EnumBooleanStringified;\n /** version info */\n version?: string;\n /** language, CmdControl has only de and en implemented */\n language?: SupportedLanguage;\n /** webtoken for call into Backend\n * https://jwt.io/\n * \\{\n * usrId - your content partner usrId\n * usrKey - your customer key\n * \\}\n */\n webtoken?: string; // optional\n} & deviceIdType;\n","import { JSONString } from \"../../@types/json-stringified\";\nimport { ComaSeparatedValues } from \"../sessionstate\";\nimport { ResultCode } from \"./resultcode\";\nimport { ACTION } from \"./action\";\n\n/**\n * @remarks cmd-control socket by default returns only string values\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type StringBasedType = ComaSeparatedValues<string> | JSONString<Object> | string;\n\n/**\n * Base dictionary\\<strting,string\\> object used for params and values\n * @remarks might not have some of the values, e.g. value might be undefined\n */\nexport interface IKeyMaybeValue {\n [key: string]: StringBasedType | undefined;\n}\n\n/**\n * @remarks always has values\n */\nexport interface IKeyValue {\n [key: string]: StringBasedType;\n}\n\n/**\n * Base command interface\n */\nexport interface ICOMMAND {\n /**\n * action is the name of command\n */\n action: ACTION;\n /**\n * command parameters\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any;\n}\n\n/**\n * result object is the status of CMDP_XXXX_RESPONSE\n */\nexport class RESULT {\n public code: ResultCode;\n /**\n * infostring string to client\n */\n public reason: string;\n}\n\n/**\n * Response from CmdControl to client\n */\nexport interface IRESPONSE extends ICOMMAND {\n /**\n * Response status\n */\n result: RESULT;\n /**\n * command array to client\n */\n commands: ICOMMAND[];\n /**\n * response values\n */\n values: IKeyMaybeValue;\n}\n","/**\n * known values for RESULT.code\n *\n * for B2B : Use for your custom ERROR_CODE the range 6001-6999\n */\nexport enum ResultCode {\n OK = 2000, // successuful\n WRONG_USER_NAME_OR_PASSWORD = 4002,\n ACCESS_DENIED = 4003,\n SESSION_NOT_FOUND = 4004,\n LOGIN_FAILED = 4006,\n LOGIN_DOUBLE = 4007,\n SESSION_ERROR = 4008,\n PROFIL_NOT_COMPLETE = 4009,\n TOO_MANY_SESSIONS = 4010,\n TOO_MANY_SESSIONS2 = 4011,\n TOO_MANY_SESSIONS3 = 4012,\n VERSION_NOT_SUPPORTED = 4013,\n MAIL_NOT_VERYFIED = 4014,\n AUDIO_NOT_AVAILABLE = 4015,\n SINGLE_NOT_STARTED = 4016,\n GTC_NOT_CONFIRMED = 4017,\n CHAT_NOT_CLOSED = 4020,\n CHAT_NOT_FOUND = 4104,\n NOT_ENOUGH_MONEY = 4141,\n CANT_UPDATE_CHAT = 4150,\n CANT_UPDATE_CHAT2 = 4151,\n INVALID_PARAMETER = 5001,\n FEATURE_NOT_AVAILABLE = 5002,\n UNEXPECTED = 5004,\n NOT_IMPLEMENTED = 5005,\n NO_CONNECTION = 5096,\n SCRIPT_ERROR = 5097,\n TIMEOUT = 5098,\n NETWORK_ERROR = 5099,\n /** B2B error-codes start with 6000 */\n B2B_INTERFACE_ERROR = 6000,\n UNKNOWN_ERROR = 6001,\n INVALID_WEB_TOKEN = 6002,\n NO_CREDIT_VIDEOCHAT = 6106,\n ACCESS_DENIED_BAN = 6201,\n MODEL_IS_OFFLINE = 6403,\n SOFT_CHAT = 6601,\n PREVIEW_LIMIT_EXCEEDED = 6401,\n MODEL_IS_IN_PRIVATE_CHAT = 6906,\n MISSING_SHOW_TICKET = 6010,\n SHOW_NOT_STARTED = 6011,\n}\n","import { ACTION } from \"./command/action\";\nimport { ICOMMAND } from \"./command/icommand\";\n\n/**\n * internal commando used for maintenance of CmdControl-Server-Farm\n */\nexport class CMDC_DSRELOAD implements ICOMMAND {\n public action = ACTION.CMDC_DSRELOAD;\n public params: {\n id: string;\n host: string;\n PlatformUrl: string;\n wsshost: string;\n wssport: string;\n wsspath: string;\n };\n}\n","import { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { channelIdOrChatId } from \"./channel\";\nimport IChannelNote from \"./channelinfo\";\n\n/**\n * Transport for Contact note\n */\nexport class CMDC_CONTACTNOTE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CONTACTNOTE;\n public params: channelIdOrChatId & IChannelNote;\n}\n\n/**\n * Set Contact note\n */\nexport class CMDP_SETCONTACTNOTE implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_SETCONTACTNOTE;\n public params: baseParamsType & channelIdOrChatId & IChannelNote;\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_SETCONTACTNOTE\n */\nexport class CMDP_SETCONTACTNOTE_RESPONSE extends CMDP_SETCONTACTNOTE implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * Get Contact Note\n */\nexport class CMDP_GETCONTACTNOTE implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_GETCONTACTNOTE;\n // channelId may be CSV\n public params: baseParamsType & channelIdOrChatId;\n public payload?: unknown;\n}\n\n/**\n * Response for CMDP_GETCONTACTNOTE\n */\nexport class CMDP_GETCONTACTNOTE_RESPONSE extends CMDP_GETCONTACTNOTE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CONTACTNOTE[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SSETCONTACTNOTE extends CMDP_SETCONTACTNOTE {\n public action: ACTION = ACTION.CMDP_SSETCONTACTNOTE;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SSETCONTACTNOTE_RESPONSE extends CMDP_SETCONTACTNOTE_RESPONSE {\n public action: ACTION = ACTION.CMDP_SSETCONTACTNOTE;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SGETCONTACTNOTE extends CMDP_GETCONTACTNOTE {\n public action: ACTION = ACTION.CMDP_SGETCONTACTNOTE;\n}\n\n/** depricated, 8320 only */\nexport class CMDP_SGETCONTACTNOTE_RESPONSE extends CMDP_GETCONTACTNOTE_RESPONSE {\n public action: ACTION = ACTION.CMDP_SGETCONTACTNOTE;\n}\n","export enum ExitCode {\n /**\n * @description Client logged out. Chat gets closed before announced(unused)\n */\n CLIENTCEXIT = 100,\n /**\n * @description Client clicked logout button\n */\n CLIENTLOGOUT = 101,\n /**\n * @description Client forced exit (unused)\n */\n CLIENTDESTRUCT = 102,\n /**\n * @description ExitWindow or JS onbeforeunload event\n */\n CLIENTEXITWIN = 103,\n /**\n * @description Client wishes to upgrade chat (unused)\n */\n CLIENTUPGRADE = 104,\n /**\n * @description Client exits with an internal error\n */\n CLIENTERROR = 105,\n /**\n * @description Client exits to charge account.(unused)\n */\n CLIENTCHARGE = 106,\n /**\n * @description Used by old client when socket to server is closed (browser window closed)\n */\n CLIENTDISCONNECT = 107,\n /**\n * @description Client gets timeout when receiving video\n */\n TIMEOUT_ON_CLIENT_SIDE = 108,\n /**\n * @description Unknown code, must be checked manually\n */\n CLIENT_ERROR = 109,\n HOSTKICK = 201,\n HOSTSTOPSEND = 202,\n HOSTLOGOUT = 203,\n HOSTRELOGIN = 204,\n HOSTSENDFAIL = 205,\n HOSTDEVICEFAIL = 206,\n HOSTSTILLPICTURE = 207,\n HOSTCPUOVERLOAD = 208,\n HOSTMICRONOPEGEL = 209,\n HOSTSTREAMERROR = 210,\n HOSTSESSIONEXPIRED = 211,\n SERVER_ADMIN_OFF = 212,\n HOSTSTREAMRESTART = 213,\n HOSTSTREAMEXPIRED = 214,\n HOSTWAITSTREAMTIMEOUT = 215,\n HOSTSTREAMSTOP = 216,\n HOSTSTOPUNKNOWN = 217,\n ADMINKICK = 301,\n AVS_ACK_OK = 302,\n AVS_ACK_DENIED = 303,\n AVS_DENIED_NOPICTURE = 304,\n AVS_CANCELED_BY_GUEST = 305,\n AVS_FAILED = 306,\n PREVIEW_LIMIT_HOST = 401,\n PREVIEW_LIMIT_HOUR = 402,\n PREVIEW_OFFLINE = 403,\n PREVIEW_SINGLE = 404,\n PREVIEW_FSK_DENIED = 405,\n PREVIEW_ACCESS_DENIED = 406,\n PREVIEW_DISABLED = 407,\n VIDEOTIMELIMIT = 501,\n TEXTTIMELIMIT = 502,\n FREETIMELIMIT = 503,\n FSKDENIED = 601,\n AVSCONVERSION = 602,\n PREPAID_TIMEOUT = 901,\n CLIENTNEWCHAT = 902,\n VOICECALLHANGUP = 903,\n VOICECALLNEWCHAT = 904,\n GWKILL = 905,\n HOSTSINGLE = 906,\n VIDEOFAIL_HOST_PUSH = 907,\n HOSTLOBBY = 908,\n VIDEOFAIL_GUEST_PULL = 910,\n GWKILLSTOPMODE = 911,\n GWKILLCONVERT = 912,\n KILL_UNPAYED = 913,\n DDOS_DETECTED = 914,\n CLIENTLOCK = 920,\n HOSTLOCK = 921,\n TIMEOUT_ON_SERVER_SIDE = 990,\n PARTNERKICK = 991,\n PHPGENERAL = 995,\n VIDEOTIMEOUT_HOST = 996,\n VIDEOTIMEOUT_GUEST = 997,\n Ununsed = 998,\n SERVERDOWN = 999,\n}\n","import { ComaSeparatedValues } from \"./sessionstate\";\nimport { ICOMMAND } from \"./command/icommand\";\nimport { ACTION } from \"./command/action\";\n\nenum EnumFeedbackKey {\n HARASSMENT_THREATS = \"harassment-threats\",\n UNAUTHORIZED_CONTENT = \"unauthorized-content\",\n HACKED = \"hacked\",\n TECH = \"tech\",\n OTHER = \"other\",\n}\n\nexport type Feedback = {\n login: string;\n name: string;\n email: string;\n product?: string;\n version?: string;\n shortDescription?: string;\n longDescription?: string;\n channelID?: string;\n reasons?: ComaSeparatedValues<EnumFeedbackKey> | string;\n details?: string;\n};\n\nexport class CMDC_FEEDBACK implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_FEEDBACK;\n public params: {\n sessionID?: string;\n clientID?: string;\n uploadFeedbackUrl?: string;\n };\n}\n","import {\n EnumBooleanStringifiedExtended,\n EnumCurrency,\n EnumPlayerFormat,\n ICurrencyDescription,\n IEmoji,\n IReaction,\n JSONString,\n} from \"../@types\";\nimport { IGift } from \"./gifts\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType, SupportedLanguage } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IKeyValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { SChatInfo } from \"./live/livechat\";\nimport { ChatState } from \"./chatstate\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\nimport { clientID } from \"./clivechat\";\nimport { EnumInitDataFormat } from \"../cmd-connection\";\n\nexport interface IInitBackendPayload {\n giftBundles: any;\n giftCategories: any;\n gifts: any;\n emoticons: any;\n currency: any;\n toyControls: any;\n icons: any;\n}\n\nexport type UploadMediaTus = {\n authHeader: string;\n /**\n * @deprecated/obsolete\n */\n chunkSize?: number;\n chunksNumber: number;\n endPoint: string;\n maxChunkSize: number;\n minChunkSize: number;\n parallelUploads: number;\n};\n\n/**\n * the initial command\n */\nexport class CMDP_INIT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_INIT;\n public params: baseParamsType & {\n login?: string;\n initData?: EnumInitDataFormat;\n };\n}\n\n/**\n * Response for CMDP_INIT\n */\nexport class CMDP_INIT_RESPONSE extends CMDP_INIT implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n /** minimal version info */\n versionRequired?: string;\n /** version last */\n versionLast?: string;\n /** update url */\n versionUpdateUrl?: string;\n /** where to send message media */\n uploadMediaUrl?: string;\n speedTestUrl?: string;\n gtcUrl?: string;\n uploadFeedbackUrl?: string;\n translations?: JSONString<InitialTranslations>;\n gifts?: JSONString<IGift[]>;\n emojiList?: JSONString<IEmoji[]>;\n currency?: JSONString<InitialCurrencies>;\n currencyFormat?: JSONString<InitialCurrencies>;\n vxc_factor?: string;\n reactions?: JSONString<IReaction[]>;\n passwordResetUrl?: string;\n registrationUrl?: string;\n };\n /** backendpayload */\n public payload?: IInitBackendPayload;\n}\n\nexport type InitialTranslations = {\n [key in SupportedLanguage]?: IKeyValue;\n};\n\nexport type InitialCurrencies = {\n [key in EnumCurrency]?: ICurrencyDescription;\n};\n\n/**\n * the initial command, 8320 only\n */\nexport class CMDP_SINIT extends CMDP_INIT {\n public action: ACTION = ACTION.CMDP_SINIT;\n}\n\n/** Response for CMDP_SINIT, 8320 only */\nexport class CMDP_SINIT_RESPONSE extends CMDP_INIT_RESPONSE {\n public action: ACTION = ACTION.CMDP_SINIT;\n}\n\n/**\n * the initial chat command\n */\nexport class CMDP_CINIT implements ICOMMAND {\n public action = ACTION.CMDP_CINIT;\n public params: clientID & {\n version: string;\n initData: EnumInitDataFormat;\n messengerProperties: string;\n };\n}\n\n/**\n * Response for CMDP_CINIT\n */\nexport class CMDP_CINIT_RESPONSE extends CMDP_CINIT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: Omit<SChatInfo & ChatState, \"chatID\" | \"type\" | \"startTime\"> & {\n chatId: string;\n hostId: string;\n hostlogin: string;\n introVideoHls?: string;\n rechargeWarningThres?: string;\n rollbarKey?: string;\n server?: string;\n singlePrice?: string;\n timeStamp: string;\n fsk16?: EnumBooleanStringifiedExtended;\n /** where to send message media */\n uploadMediaUrl?: string;\n uploadFeedbackUrl?: string;\n formatsIncluded?: ComaSeparatedValues<EnumPlayerFormat>;\n formatsExcluded?: ComaSeparatedValues<EnumPlayerFormat>;\n translations?: JSONString<InitialTranslations>;\n emojiList?: JSONString<IEmoji[]>;\n currency: EnumCurrency;\n currencyFormat?: JSONString<InitialCurrencies>;\n reactions?: JSONString<IReaction[]>;\n publicUsers?: JSONString<{ userName: string }[]>;\n vxc_factor?: string;\n } & IKeyMaybeValue;\n}\n","import { EnumBooleanStringified, JSONString } from \"../../@types\";\nimport { channelIdType, CMDC_CHANNEL, EnumChannelFilterValues } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\nexport type groupIdType = {\n /** id */\n groupId: string;\n};\n\nexport type groupDataType = {\n key?: \"ticketShow\" | string;\n auto_generated?: boolean;\n};\n\nexport type groupType = groupIdType & {\n /** display name */\n groupName: string;\n /** create datetime */\n groupCreated: string;\n /** channel counter */\n groupChannels: string;\n /** status */\n groupActive?: \"0\" | \"1\" | string;\n /** JSON encoded GroupDataType*/\n groupData?: JSONString<groupDataType>;\n};\n\nexport class CMDC_GROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_GROUP;\n public params: groupType;\n}\n\nexport class CMDC_CHANNELGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CHANNELGROUP;\n public params: groupIdType &\n channelIdType & {\n /** inform deleted channel from group */\n isDeleted?: EnumBooleanStringified;\n };\n}\n\nexport class CMDP_SGETGROUPS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETGROUPS;\n public params: baseParamsType & { filterActive?: EnumChannelFilterValues | string };\n}\n\nexport class CMDP_SGETGROUPS_RESPONSE extends CMDP_SGETGROUPS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_GROUP[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SADDGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SADDGROUP;\n public params: baseParamsType & { groupName: string };\n}\n\nexport class CMDP_SADDGROUP_RESPONSE extends CMDP_SADDGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_GROUP[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPDATEGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPDATEGROUP;\n public params: baseParamsType &\n groupIdType & {\n /** set for change the display name */\n groupName?: string;\n /**set 0 to deactivate group, 1 to activate */\n groupActive?: \"0\" | \"1\" | string;\n };\n}\n\nexport class CMDP_SUPDATEGROUP_RESPONSE extends CMDP_SUPDATEGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETGROUPCHANNELS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETGROUPCHANNELS;\n public params: baseParamsType & groupIdType;\n}\n\nexport class CMDP_SGETGROUPCHANNELS_RESPONSE extends CMDP_SGETGROUPCHANNELS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CHANNEL[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCHANNELGROUPS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHANNELGROUPS;\n public params: baseParamsType & (channelIdType | groupIdType);\n}\n\nexport class CMDP_SGETCHANNELGROUPS_RESPONSE extends CMDP_SGETCHANNELGROUPS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CHANNELGROUP[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SADDCHANNELTOGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SADDCHANNELTOGROUP;\n public params: baseParamsType & channelIdType & groupIdType;\n}\n\nexport class CMDP_SADDCHANNELTOGROUP_RESPONSE extends CMDP_SADDCHANNELTOGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELCHANNELFROMGROUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDELCHANNELFROMGROUP;\n public params: baseParamsType & channelIdType & groupIdType;\n}\n\nexport class CMDP_SDELCHANNELFROMGROUP_RESPONSE extends CMDP_SDELCHANNELFROMGROUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType } from \"../command/baseparams\";\n\n/**\n * update media device infos\n */\nexport class CMDP_SDEVICESTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDEVICESTATUS;\n public params: baseParamsType & {\n camName?: string;\n width?: number;\n height?: number;\n fps?: number;\n microName?: string;\n muted?: boolean;\n volume?: number;\n channels?: number;\n sampleRate?: number;\n sampleSize?: number;\n bandWidth?: number;\n cpuLoad?: number;\n };\n}\n\n/**\n * reponse.\n */\nexport class CMDP_SDEVICESTATUS_RESPONSE extends CMDP_SDEVICESTATUS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { chatIdType } from \"../chatstate\";\nimport { IMayHaveChannelId } from \"../channel\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\nimport { EnumBooleanDigitized, EnumBooleanStringified, EnumBooleanStringifiedExtended } from \"../../@types\";\nimport { clientID } from \"../clivechat\";\n\nexport enum EnumPowerEstimation {\n LOW = \"LOW\",\n MIDDLE = \"MIDDLE\",\n HIGH = \"HIGH\",\n}\nexport class CMDP_STARTSEND implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTSEND;\n public params: baseParamsType & {\n capabilities?: string;\n };\n}\n\nexport class CMDP_STARTSEND_RESPONSE extends CMDP_STARTSEND implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_STOPSEND implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOPSEND;\n public params: baseParamsType & {\n streamError?: EnumBooleanStringifiedExtended;\n errorCode?: string; // 2xx\n };\n}\n\nexport class CMDP_STOPSEND_RESPONSE extends CMDP_STOPSEND implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_TRACERT_REPLY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_TRACERT_REPLY;\n public params: baseParamsType & {\n tracertID: string;\n hopID: string;\n targetIP: string;\n replyHost: string;\n replyIP: string;\n replyTime: string;\n replyCode: string;\n replyString: string;\n };\n}\n\nexport class CMDP_TRACERT_REPLY_RESPONSE extends CMDP_TRACERT_REPLY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_FSK16 implements ICOMMAND {\n public action: ACTION.CMDP_FSK16;\n public params: baseParamsType & {\n fsk16: EnumBooleanStringifiedExtended;\n };\n}\n\nexport class CMDP_START_STREAM_PREVIEW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_START_STREAM_PREVIEW;\n public params: baseParamsType & {\n duration: string; // seconds\n };\n}\n\nexport class CMDP_START_STREAM_PREVIEW_RESPONSE extends CMDP_START_STREAM_PREVIEW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n dataURL: string;\n mediaJpegWsUrl: string;\n };\n}\n\nexport class CMDP_STOP_STREAM_PREVIEW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOP_STREAM_PREVIEW;\n public params: baseParamsType & {\n dataURL: string;\n dataID: string;\n };\n}\n\nexport class CMDP_STOP_STREAM_PREVIEW_RESPONSE extends CMDP_STOP_STREAM_PREVIEW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_STARTBANDWIDTHTEST implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTBANDWIDTHTEST;\n public params: baseParamsType;\n}\n\nexport class CMDP_STARTBANDWIDTHTEST_RESPONSE extends CMDP_STARTBANDWIDTHTEST implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n testID: string;\n seconds: string;\n dataURL: string;\n dataID: string;\n speedTestUrl?: string;\n };\n}\n\nexport class CMDP_STOPBANDWIDTHTEST implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOPBANDWIDTHTEST;\n public params: baseParamsType & {\n testID: string;\n seconds: string;\n dataID: string;\n bitrate: string;\n cpuUsage: string;\n };\n}\n\nexport class CMDP_STOPBANDWIDTHTEST_RESPONSE extends CMDP_STOPBANDWIDTHTEST implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n validated: EnumBooleanStringified;\n };\n}\n\nexport class CMDP_STARTLOOPBACK9 implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTLOOPBACK9;\n public params: baseParamsType;\n}\n\nexport class CMDP_STARTLOOPBACK9_RESPONSE extends CMDP_STARTLOOPBACK9 implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n testID: string;\n pushUrl: string;\n pullUrl: string;\n pushUrlAudio: string;\n pullUrlAudio: string;\n };\n}\n\nexport class CMDP_STOPLOOPBACK9 implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STOPLOOPBACK9;\n public params: baseParamsType & {\n testID: string;\n VideoDevice: string;\n VideoDeviceWidth: string;\n VideoDeviceHeight: string;\n VideoDeviceFPS: string;\n VideoSendBitrate: string;\n VideoSendFPS: string;\n AudioDevice: string | \"-\"; // \"-\" for none\n AudioDeviceFPS: string;\n AudioSendFPS: string;\n AudioSendBitrate: string;\n CPU: string | \"-1\";\n localCode: string | \"0\";\n };\n}\n\nexport class CMDP_STOPLOOPBACK9_RESPONSE extends CMDP_STOPLOOPBACK9 implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n statusCode: string;\n statusText: string;\n };\n}\n\nexport class CMDP_SQUERY_FORMAT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SQUERY_FORMAT;\n public params: baseParamsType & {\n width: string;\n height: string;\n fps: string;\n bandWidth: string;\n cpuUsage: string;\n };\n}\n\nexport class CMDP_SQUERY_FORMAT_RESPONSE extends CMDP_SQUERY_FORMAT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n width: string;\n height: string;\n fps: string;\n ref_width: string;\n ref_height: string;\n ref_fps: string;\n rtmp?: EnumBooleanDigitized.TRUE;\n codec?: string;\n };\n}\n\nexport enum QueryUserKeyEnum {\n FSK = \"fsk\",\n SINGLE = \"single\",\n SINGLEC2C = \"singleC2C\",\n QUERY_SINGLE = \"querysingle\",\n}\n\nexport enum QueryUserButtons {\n btn0 = \"btn0\",\n btn1 = \"btn1\",\n}\n\nexport interface IQueryUserParams {\n queryId: string;\n key: QueryUserKeyEnum;\n caption: string;\n text: string;\n [QueryUserButtons.btn0]: string;\n [QueryUserButtons.btn1]: string;\n timeout: string;\n sound: string;\n btnDefault: EnumBooleanDigitized;\n btndef: QueryUserButtons;\n CMDP_QUERYUSER;\n recordSingleChat?: EnumBooleanDigitized;\n}\n\nexport class CMDC_QUERYUSER implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_QUERYUSER;\n public params: IMayHaveChannelId & IQueryUserParams;\n}\n\nexport class CMDC_CQUERYUSER implements ICOMMAND {\n public action = ACTION.CMDC_CQUERYUSER;\n public params: clientID &\n chatIdType &\n Omit<IQueryUserParams, \"btnDefault\" | \"sound\"> & {\n price?: string;\n default: string;\n };\n}\n\nexport class CMDP_QUERYUSER implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_QUERYUSER;\n public params: baseParamsType &\n chatIdType &\n IMayHaveChannelId & {\n key: QueryUserKeyEnum;\n button: EnumBooleanDigitized;\n queryId: string;\n /** if the answer sent by timeout */\n isTimeout?: EnumBooleanDigitized;\n /** if not set, default setting used */\n recordSingleChat?: EnumBooleanDigitized;\n };\n}\n\nexport class CMDP_QUERYUSER_RESPONSE extends CMDP_QUERYUSER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_CQUERYUSER implements ICOMMAND {\n public action = ACTION.CMDP_CQUERYUSER;\n public params: clientID & {\n key: QueryUserKeyEnum;\n response: IQueryUserParams[QueryUserButtons];\n };\n}\n\nexport class CMDP_CQUERYUSER_RESPONSE extends CMDP_CQUERYUSER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_QUERYANSWERED implements ICOMMAND {\n public action = ACTION.CMDC_QUERYANSWERED;\n public params: { queryId: string };\n}\n\nexport class CMDP_SGETSTREAMPARAMS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETSTREAMPARAMS;\n public params: baseParamsType & {\n powerEstimation: EnumPowerEstimation;\n };\n}\n\nexport type StreamParams = {\n rtmpURL: string;\n streamName: string;\n webRtc: string;\n powerEstimation: EnumPowerEstimation;\n lastStreamType?: \"webRTC\" | \"RTMP\" | string;\n};\n\nexport class CMDP_SGETSTREAMPARAMS_RESPONSE extends CMDP_SGETSTREAMPARAMS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & StreamParams;\n}\n\nexport class CMDC_CSTARTSTREAMPUSH implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CSTARTSTREAMPUSH;\n public params: baseParamsType & StreamParams;\n}\n\nexport class CMDP_CQUERY_SINGLE implements ICOMMAND {\n public action = ACTION.CMDP_CQUERY_SINGLE;\n public params: clientID;\n}\n\nexport class CMDP_CQUERY_SINGLE_RESPONSE extends CMDP_CQUERY_SINGLE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanDigitized, EnumBooleanStringified, JSONString } from \"../../@types\";\nimport {\n ACTION,\n baseParamsType,\n chatIdType,\n CMDC_CMSG,\n ComaSeparatedValues,\n EnumChannelFilterValues,\n EnumFsk,\n ICOMMAND,\n SessionFlag,\n} from \"../../cmd-protocol\";\nimport { IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\n/**\n * Chat flags\n * SELECT CHAT_FLAG_SHORT || ' = \"' || CHAT_FLAG_SHORT || '\",// ' || CHAT_FLAG_DESCRIPTION FROM CHAT_FLAGS order by CHAT_FLAG_VAL\n */\n\nexport enum ChatFlags {\n VIDEO = \"VIDEO\", // video\n VOYEUR = \"VOYEUR\", // Voyeurchat\n CAM2CAM = \"CAM2CAM\", // Cam2Cam used\n SINGLE = \"SINGLE\", // Singlechat applied\n DISCOUNT = \"DISCOUNT\", // Discount granted\n TEXT = \"TEXT\", // Textchat Intention, set on chat_init\n FSK16 = \"FSK16\", // Chat is in FSK16 Mode\n VOYEUR2S = \"VOYEUR2S\", // Voyer Chat for Single Session\n RECORD = \"RECORD\", // Record VideoChat on Server\n FREE = \"FREE\", // FreeChat, SexOle feature.\n HASUPLPICS = \"HASUPLPICS\", // User has picture upload\n PREVIEW = \"PREVIEW\", // User has used livePreview\n FSKACK = \"FSKACK\", // Host Acknowledged FSK16\n VOYSHOWN = \"VOYSHOWN\", // Voyerchat converted to Normalchat\n PARTY = \"PARTY\", // PartyChat, SexOle feature.\n FREECHAT = \"FREECHAT\", // Videochat is free, except for singleprice\n TOY = \"TOY\", // TOY is used\n CONVERSION = \"CONVERSION\", // Conversion chat, user without charges, host payout 0.15 EUR/Min\n TESTCHAT = \"TESTCHAT\", // Testchat with a test account\n SECONDARY = \"SECONDARY\", // Set if there are already chats with this host or related sessions\n AUDIO = \"AUDIO\", // Audio was used (since vxsoft 8.6.0.0)\n CONVERTED = \"CONVERTED\", // Chat is converted to payed. SexOle feature.\n TIP = \"TIP\", // TIP or MSN GIFT is used\n GUESTCHAT = \"GUESTCHAT\", // Chat with Guest-Model on VXPages\n MOBILE = \"MOBILE\", // 30 cent fixed payout for sender\n FLATRATE = \"FLATRATE\", // Flatrate VXpages chat. Single is chargeable.\n SINGLEC2C = \"SINGLEC2C\", // Private show (web-rtc cam2cam) chat\n}\n\nexport enum EnumIntentionString {\n TEXT = \"TEXT\",\n VOYEUR = \"VOYEUR\",\n VIDEO = \"VIDEO\",\n SINGLECAM2CAM = \"SINGLECAM2CAM\",\n}\n\nexport class SChatInfo {\n /** the unique chatId*/\n public chatID: string;\n /** the chat type, can be changed. 15 contentpartner, 16 prepaid, 13 - dialerchat*/\n public type: string;\n /** chat flags coma separated. see enum ChatFlags*/\n public flags: ComaSeparatedValues<SessionFlag> | SessionFlag;\n /** start timestamp */\n public startTime: string;\n /** stop timestamp */\n public stopTime?: string;\n /** the paid time */\n public paidTime?: string;\n /** exit code, see */\n public exitCode?: string;\n /** admin chat */\n public admin?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** you can kick and ban this user */\n public canBan?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** you can give a discount to this user*/\n public canDiscount?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** single ability */\n public canSingle?: EnumBooleanDigitized;\n /** c2c ability */\n public canCam2Cam?: EnumBooleanDigitized;\n /** the category */\n public ccl_cat2?: string;\n /** messenger channel id */\n public channelId?: string;\n /**\n * @deprecated. obsolete\n */\n // eslint-disable-next-line tsdoc/syntax\n public fixedPayout?: string;\n /** the soft/hard status */\n public fsk?: EnumFsk;\n /** the discount */\n public hasDiscount?: string;\n /** info message for this chat */\n public infoMessage?: string;\n /** the chat is public, others users in ther public chats can see your messages */\n public isPublicText?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** the chat is a mass lobby show, no system messages or CMDC_CHAT_UPDATE will be arrived */\n public isLobby?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** stats about this user*/\n public jsonStats?: string;\n /** language of user */\n public lang?: string;\n /** the user name */\n public login?: string;\n /** the admin is shown */\n public showAdmin?: string;\n /** internal, the usr_id of user for type 13 chat */\n public userKey?: string;\n /** the related tiked id*/\n public ticketId?: string;\n public imgSrc?: string;\n /** is voyeur to single */\n public voyeur2single?: EnumBooleanDigitized = EnumBooleanDigitized.FALSE;\n /** the intention of chat type from guest. this is not actual chat type, only intention */\n public chattype: EnumIntentionString | string;\n /** preview state: \"1\" if the preview is run, \"0\" if the preview is stopped */\n public previewRun?: \"1\" | \"0\" | string;\n public blurred?: \"1\" | \"0\" | string;\n}\n\nexport class CMDC_CINIT implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CINIT;\n public params: SChatInfo & IKeyMaybeValue;\n}\n\nexport type ChatOnlineStats = {\n /** the video time in seconds */\n videoTime?: string;\n /** the video time as string 00:33:22 */\n videoTimeString?: string;\n /* number of lobby customer online */\n lobbyUsers?: string;\n};\n\n/*update state of chat with partner*/\nexport class CMDC_UPDATE_CHAT implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_UPDATE_CHAT;\n public params: SChatInfo & ChatOnlineStats & IKeyMaybeValue;\n}\n\nexport enum EndChatType {\n PREPARED = \"PREPARED\",\n LOBBY = \"LOBBY\", // = ticket show\n ADMIN = \"ADMIN\",\n SINGLEC2C = \"SINGLEC2C\",\n SINGLE = \"SINGLE\",\n LIVE = \"LIVE\",\n VOYEUR = \"VOYEUR\",\n VOYEUR2S = \"VOYEUR2S\",\n PREVIEW = \"PREVIEW\",\n PREVIEW_VIP = \"PREVIEW_VIP\",\n PREVIEW_SHORT = \"PREVIEW_SHORT\",\n PREVIEW_VOUCHER = \"PREVIEW_VOUCHER\",\n MOBILEVIDEOCALL = \"MOBILEVIDEOCALL\",\n}\n\nexport class CMDC_CEXIT implements ICOMMAND {\n public action = ACTION.CMDC_CEXIT;\n public params: {\n [key: string]: string;\n chatID: string;\n exitCode: string;\n exitMessage?: string;\n endChatType?: EndChatType;\n };\n}\n\nexport class CMDP_SGETCHATS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHATS;\n // chatID can be coma delimited list\n public params: baseParamsType & { chatID?: string };\n}\n\nexport class CMDP_SGETCHATS_RESPONSE extends CMDP_SGETCHATS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CINIT[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCHATHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHATHISTORY;\n // chatID can be coma delimited list\n public params: baseParamsType & chatIdType & { skipChannelMessages: EnumBooleanStringified };\n}\n\nexport class CMDP_SGETCHATHISTORY_RESPONSE extends CMDP_SGETCHATHISTORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMSG[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SQUERY_DISCOUNT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SQUERY_DISCOUNT;\n public params: baseParamsType & chatIdType;\n}\n\nexport class CMDP_SQUERY_DISCOUNT_RESPONSE extends CMDP_SQUERY_DISCOUNT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n canDiscount?: EnumBooleanDigitized;\n reason?: string;\n hasDiscount: EnumBooleanDigitized;\n endDate?: string;\n };\n}\n\nexport class CMDP_SET_DISCOUNT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SET_DISCOUNT;\n public params: baseParamsType &\n chatIdType & {\n rate: string;\n time: string;\n };\n}\n\nexport class CMDP_SET_DISCOUNT_RESPONSE extends CMDP_SET_DISCOUNT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_KICK implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_KICK;\n public params: baseParamsType & chatIdType;\n}\n\nexport class CMDP_KICK_RESPONSE extends CMDP_KICK implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETCHATSSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHATSSUMMARY;\n public params: baseParamsType & { channelId: string };\n}\n\nexport class CMDP_SGETCHATSSUMMARY_RESPONSE extends CMDP_SGETCHATSSUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n // \"summary\": \"{\\\"FIRST\\\":\\\"2013-11-20\\\",\\\"LAST\\\":\\\"2022-09-01\\\",\\\"CHATS\\\":1930}\",\n public values: IKeyMaybeValue & { summary?: string } & {\n first?: string;\n last?: string;\n chats?: string;\n };\n}\n\n/**\n * query online time summary for last 3 month\n */\nexport class CMDP_GETONLINESUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETONLINESUMMARY;\n public params: baseParamsType;\n}\n\n/**\n * Response for CMDP_GETONLINESUMMARY\n */\n\nexport class CMDP_GETONLINESUMMARY_RESPONSE extends CMDP_GETONLINESUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n // [{\"2023-07-07\":2726},{\"2023-07-19\":7663},{\"2023-08-02\":1479},{\"2023-07-04\":97},{\"2023-07-11\":4327},{\"2023-07-18\":1804},{\"2023-07-27\":3297}]\"\n summary: JSONString<any> | string;\n };\n}\n\nexport class CMDC_LIVESESSION implements ICOMMAND {\n public action: ACTION.CMDC_LIVESESSION;\n public params: {\n /** the Id on the session, not unique, but sesId + startTime is unique */\n sesID: string;\n /** start time */\n startTime: string;\n /** stop time */\n stopTime: string;\n /** live chats counter*/\n chats: string;\n };\n}\n\nexport class CMDC_LIVECHAT implements ICOMMAND {\n public action: ACTION.CMDC_LIVECHAT;\n public params: {\n /** the unique chat id */\n chatID: string;\n /** the id of live session */\n sesID: string;\n /** start time of live chat, is between startTime and stopTime of live session */\n startTime: string;\n /** last timestamp of live chat*/\n stopTime: string;\n /** the exit code, 0 -if chat is live */\n exitCode: string;\n /** VIDEO, VOYEUR, SINGLE */\n type: string;\n /** username (user alias) */\n login?: string;\n /** channelId, if given */\n channelId?: string;\n /** endChatType*/\n endChatType?: EndChatType;\n };\n}\n\n/**\n * query online time history for last 2 month max\n */\nexport class CMDP_GETLIVEHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETLIVEHISTORY;\n public params: baseParamsType & {\n /** json-encoded datetime, default now-6 month, will be adjusted if set to smaller than first known date */\n dateFrom?: string;\n /** json-encoded datetime, default now() +1 day */\n dateTo?: string;\n /** filter empty live sessions*/\n filterEmpty?: EnumChannelFilterValues;\n /** pagination */\n skip?: string;\n /** pagination */\n limit?: string;\n };\n}\n\n/**\n * Response for CMDP_GETLIVEHISTORY\n */\nexport class CMDP_GETLIVEHISTORY_RESPONSE extends CMDP_GETLIVEHISTORY implements IRESPONSE {\n public result: RESULT;\n /** array of CMDC_LIVESESSION[] + CMDC_LIVECHAT[] */\n public commands: ICOMMAND[];\n public values: {\n /** json-encoded datetime*/\n firstSession: string;\n /** json-encoded datetime*/\n lastSession: string;\n /** number of Sessions */\n totalSessions: string;\n };\n}\n","import { CMDP_LOGIN, CMDP_LOGIN_RESPONSE } from \"../login\";\nimport { ACTION } from \"../command/action\";\n\n/**\n * 8320 only\n */\nexport class CMDP_SLOGIN extends CMDP_LOGIN {\n public action = ACTION.CMDP_SLOGIN;\n}\n\n/**\n * response for CMDP_SLOGIN, 8320 only\n */\nexport class CMDP_SLOGIN_RESPONSE extends CMDP_LOGIN_RESPONSE {\n public action = ACTION.CMDP_SLOGIN;\n}\n","import { EnumCurrency, JSONString } from \"../../@types\";\nimport { ACTION, ICOMMAND, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType, SupportedLanguage } from \"../command/baseparams\";\n\nexport enum MSettingNameEnum {\n CONVERSION_CHAT = \"ConversionChat\",\n HEATMAP_ENABLED = \"HeatmapEnabled\",\n HEATMAP_DESCRIPTION = \"HeatmapDescription\",\n LIVE_CHAT_PREVIEW = \"LiveChatPreview\",\n LOVENSE_TOY_REQUEST = \"LovenseToyRequest\",\n TICKET_SHOW_REQUEST = \"TicketShowRequest\",\n MESSENGER_PRICE = \"MessengerPrice\",\n VIDEO_CHAT_PRICE = \"VideoChatPrice\",\n PRIVATE_CHAT_PRICE = \"PrivateChatPrice\",\n VOYEUR_CHAT_PRICE = \"VoyeurChatPrice\",\n PRIVATE_C2C_CHAT_PRICE = \"SingleC2CChatPrice\",\n SOFT_CHAT_ENABLED = \"SoftChatEnabled\",\n VOYEUR_CHAT_ENABLED = \"VoyeurChatEnabled\",\n VOYEUR_CHAT_PRIVATE_AUDIO = \"VoyeurChatPrivateAudio\",\n FREE_CHAT_ENABLED = \"FreeChatEnabled\",\n PARTY_CHAT_ENABLED = \"PartyChatEnabled\",\n SERVICE0900_ENABLED = \"Service0900Enabled\",\n SERCIVE0900WEBSIP_ENABLED = \"Service0900WebSipEnabled\",\n SERVICE0900WEBSIP_VISIBLE = \"Service0900WebSipVisible\",\n SERVICE0900PHONE_ENABLED = \"Service0900PhoneEnabled\",\n SERVICE0900MOMENTUMSIP_ENABLED = \"Service0900MomentumSipEnabled\",\n MESSAGETEMPLATES_ENABLED = \"MessageTemplatesEnabled\",\n BUMPMESSAGING_ENABLED = \"BumpMessagingEnabled\",\n BABESTATION24TAB_VISIBLE = \"BabeStation24TabVisible\",\n BABESTATION24_ENABLED = \"BabeStation24Enabled\",\n MOBILEVIDEOCALL_REQUEST = \"MobileVideoCallRequest\",\n MOBILEVIDEOCALL_ENABLED = \"MobileVideoCallEnabled\",\n}\n\nexport enum MSettingValueTypeEnum {\n FLOAT = \"float\",\n BOOL = \"bool\",\n ENUM = \"enum\",\n MULTILANGSTRING = \"multiLangString\",\n}\n\nexport class MSetting {\n public name: MSettingNameEnum;\n public type: MSettingValueTypeEnum;\n public isReadOnly: boolean;\n /**\n * @deprecated/obsolete\n */\n public isDisabled: boolean;\n /**\n * @deprecated/obsolete\n */\n public isOnlineChangeAllowed: boolean;\n}\n\nexport class MSettingFloat extends MSetting {\n public type: MSettingValueTypeEnum.FLOAT;\n public currency: EnumCurrency | string;\n public value: number;\n public minValue: number;\n public maxValue: number;\n public range: number[] | null;\n public step: number | null;\n}\n\nexport class MSettingBool extends MSetting {\n public type: MSettingValueTypeEnum.BOOL;\n public value: boolean;\n}\n\nexport enum RequestStateEnum {\n NOT_SET = \"notSet\",\n NOT_ALLOWED = \"notAllowed\",\n REQUESTED = \"requested\", // this is one writable, if old value == notSet\n ACCEPTED = \"accepted\",\n REJECTED = \"rejected\",\n}\n\nexport class MSettingFeatureRequest extends MSetting {\n public type: MSettingValueTypeEnum.ENUM;\n public value: RequestStateEnum;\n public requestDate: Date | null;\n public nextPossibleRequestDate: Date | null;\n}\n\nexport class LanguageText {\n public lang: SupportedLanguage;\n public text: string | null;\n}\n\nexport class MSettingMultiLangString extends MSetting {\n public type: MSettingValueTypeEnum.MULTILANGSTRING;\n public requiredLangs: SupportedLanguage[];\n public value: LanguageText[];\n public minLength: number | null;\n public maxLength: number | null;\n}\n\n/** if one of feilds is missing, so the Settig is not applicable to this account */\nexport class MSettings {\n public fields: {\n [MSettingNameEnum.CONVERSION_CHAT]?: MSettingBool;\n [MSettingNameEnum.HEATMAP_ENABLED]?: MSettingBool;\n [MSettingNameEnum.HEATMAP_DESCRIPTION]?: MSettingMultiLangString;\n [MSettingNameEnum.LIVE_CHAT_PREVIEW]?: MSettingBool;\n [MSettingNameEnum.LOVENSE_TOY_REQUEST]?: MSettingFeatureRequest;\n [MSettingNameEnum.TICKET_SHOW_REQUEST]?: MSettingFeatureRequest;\n [MSettingNameEnum.MESSENGER_PRICE]?: MSettingFloat;\n [MSettingNameEnum.VIDEO_CHAT_PRICE]?: MSettingFloat;\n [MSettingNameEnum.PRIVATE_CHAT_PRICE]?: MSettingFloat;\n [MSettingNameEnum.VOYEUR_CHAT_PRICE]?: MSettingFloat;\n [MSettingNameEnum.PRIVATE_C2C_CHAT_PRICE]?: MSettingFloat; // MOBILE_VIDEO_CALL\n [MSettingNameEnum.SOFT_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.VOYEUR_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.VOYEUR_CHAT_PRIVATE_AUDIO]?: MSettingBool;\n [MSettingNameEnum.FREE_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.PARTY_CHAT_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERCIVE0900WEBSIP_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900WEBSIP_VISIBLE]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900PHONE_ENABLED]?: MSettingBool;\n [MSettingNameEnum.MESSAGETEMPLATES_ENABLED]?: MSettingBool;\n [MSettingNameEnum.SERVICE0900MOMENTUMSIP_ENABLED]?: MSettingBool;\n [MSettingNameEnum.MESSAGETEMPLATES_ENABLED]?: MSettingBool;\n [MSettingNameEnum.BUMPMESSAGING_ENABLED]?: MSettingBool;\n [MSettingNameEnum.BABESTATION24TAB_VISIBLE]?: MSettingBool;\n [MSettingNameEnum.BABESTATION24_ENABLED]?: MSettingBool;\n [MSettingNameEnum.MOBILEVIDEOCALL_REQUEST]?: MSettingFeatureRequest;\n [MSettingNameEnum.MOBILEVIDEOCALL_ENABLED]?: MSettingBool;\n };\n}\n\n/**\n * Get command\n */\nexport class CMDP_SGETMSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMSETTINGS;\n public params: baseParamsType;\n}\n\n/**\n * Get command response\n */\nexport class CMDP_SGETMSETTINGS_RESPONSE extends CMDP_SGETMSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n mSettings: JSONString<MSettings>;\n };\n}\n\n/**\n * set command,\n * the settingValue is JSONString of value for settingName\n */\nexport class CMDP_SSETMSETTING implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSETMSETTING;\n public params: baseParamsType & { settingName: MSettingNameEnum; settingValue: string };\n}\n\n/**\n * Set command response\n */\nexport class CMDP_SSETMSETTING_RESPONSE extends CMDP_SSETMSETTING implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n mSettings: JSONString<MSettings>;\n };\n}\n\n/** NOOP update command */\nexport class CMDC_MSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_MSETTINGS;\n public params: {\n mSettings: JSONString<MSettings>;\n };\n}\n\nexport class CMDP_SSETMSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSETMSETTINGS;\n public params: baseParamsType & {\n mSettings: JSONString<MSettings>;\n };\n}\n\n/**\n * Set command response\n */\nexport class CMDP_SSETMSETTINGS_RESPONSE extends CMDP_SSETMSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n mSettings: JSONString<MSettings>;\n };\n}\n","export enum EnumProductLinks {\n MY_SHOW = \"ticketShow\",\n ALL_SHOWS = \"ticketShowAll\",\n CHAT_MOTTO = \"chatMotto\",\n CHAT_SETTINGS = \"chatSettings\",\n HELP = \"help\",\n HELP_TOY = \"helpToy\",\n HELP_LOVENSE = \"helpLovense\",\n HELP_SOFTWARE = \"helpSoftware\",\n MESSAGING = \"messaging\",\n PICTURE_TOOL = \"picturePool\",\n PICTURE_TOOL_SEDCARD12 = \"sedcardVX12\",\n PICTURE_TOOL_SEDCARD16 = \"sedcardVX16\",\n PICTURE_TOOL_SEDCARD18 = \"sedcardVX18\",\n PROFILE = \"profile\",\n PASSWORD_RESET = \"passwordReset\",\n SERVICE0900 = \"service0900\",\n FEATURE_REQUEST = \"featureRequest\",\n TOY_SHOP = \"toyShop\",\n}\n\nexport interface IProductConfig {\n key: string;\n links: {\n [key in EnumProductLinks]: string;\n };\n}\n","import { EnumBooleanStringifiedExtended } from \"../../@types\";\nimport { ACTION } from \"../command/action\";\nimport { ICOMMAND } from \"../command/icommand\";\n\nexport enum EnumStreamQuality {\n NONE = \"NONE\",\n EXCELLENT = \"EXCELLENT\",\n GOOD = \"GOOD\",\n BAD = \"BAD\",\n}\n\n/**\n * Update incoming stream state.\n * Server inform you about the state of incoming video audio stream.\n */\nexport class CMDC_STREAMSTATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_STREAMSTATE;\n public params: {\n /*json datetime */\n startTime?: string;\n bandWith?: string;\n quality?: EnumStreamQuality;\n videoWidth?: string;\n videoHeight?: string;\n videoFps?: string;\n hasAudio?: EnumBooleanStringifiedExtended;\n audioMuted?: EnumBooleanStringifiedExtended;\n /**\n * @deprecated/ obsolete\n */\n bandwith?: string;\n /**\n * @deprecated/ obsolete\n */\n videoHeigth?: string;\n };\n}\n","import { EnumBooleanStringified } from \"../../@types\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType, SupportedLanguage } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\nexport enum EnumService0900State {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n}\n\nexport enum EnumService0900Status {\n ACTIVE = \"active\", // = reachable\n INACTIVE = \"inactive\", // = unreachable\n BUSY = \"busy\", // = in call\n CONNECTING = \"connecting\", // = ringing\n}\n\nexport enum EnumService0900Operation {\n ENABLE = \"turnOn\",\n DISABLE = \"turnOff\",\n}\n\n/**\n * Update session state or control features\n */\nexport class CMDP_SUPDATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPDATE;\n public params: baseParamsType & {\n language?: SupportedLanguage;\n broadcastData?: string;\n permanentData?: string;\n service0900State?: EnumService0900State;\n livePreviewState?: EnumBooleanStringified;\n babeStation24State?: EnumBooleanStringified;\n mobileVideoCallState?: EnumBooleanStringified;\n webSIPState?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_UPDATE\n */\nexport class CMDP_SUPDATE_RESPONSE extends CMDP_SUPDATE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import {\n ACTION,\n baseParamsType,\n ComaSeparatedValues,\n ICOMMAND,\n IRESPONSE,\n RESULT,\n StringBasedType,\n} from \"../../cmd-protocol\";\nimport { EnumPlayerFormat } from \"../../@types\";\n\n/**\n * 8320 only\n */\nexport class CMDP_SSTARTTESTVIDEOCHAT implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTARTTESTVIDEOCHAT;\n /** login params */\n public params: baseParamsType & {\n ualias?: string;\n tlimit?: string;\n lang?: string;\n userKey?: string;\n voyeur?: string;\n fsk?: string;\n canSingle?: string;\n canTip?: string;\n canCam2Cam?: string;\n tlimitNotify?: string;\n publicText?: string;\n guestAvatar?: string;\n modelAvatar?: string;\n formatsIncluded?: ComaSeparatedValues<EnumPlayerFormat>;\n formatsExcluded?: ComaSeparatedValues<EnumPlayerFormat>;\n formatsPriority?: ComaSeparatedValues<EnumPlayerFormat>;\n };\n}\n\n/**\n * response for CMDP_SSTARTTESTVIDEOCHAT\n */\nexport class CMDP_SSTARTTESTVIDEOCHAT_RESPONSE extends CMDP_SSTARTTESTVIDEOCHAT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n [key: string]: StringBasedType;\n clientID?: string;\n server?: string;\n };\n}\n","import { EnumCurrency } from \"../../@types\";\nimport { ACTION, baseParamsType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\n\nexport enum EnumTicketShowStatusType {\n OK = \"ok\",\n CANCELLED = \"cancelled\",\n DELETED = \"deleted\",\n}\n\nexport type ticketShow = {\n showId: string;\n /*json datetime */\n showStart: string;\n /** json datetime */\n showEnd: string;\n /** show Name, readonly*/\n showName: string;\n /**\n * @deprecated/ use pictureId\n */\n showImageUrl?: string;\n /** pictureId, the replacement for showImageUrl*/\n pictureId?: string;\n /** readonly const */\n showCurrency: EnumCurrency;\n /** float F2 */\n showPrice: string;\n /** long */\n showSales: string;\n titleDE: string;\n titleEN: string;\n titleES: string;\n descriptionDE: string;\n descriptionEN: string;\n descriptionES: string;\n status: EnumTicketShowStatusType | string;\n};\n\nexport class CMDC_CTICKETSHOW implements ICOMMAND {\n public action = ACTION.CMDC_CTICKETSHOW;\n public params: ticketShow;\n}\n\nexport class CMDP_SGETTICKETSHOWS implements ICOMMAND {\n public action = ACTION.CMDP_SGETTICKETSHOWS;\n public params: baseParamsType & {\n /**showId if know */\n showId?: string;\n /* optional */\n showStart?: string;\n /* optional */\n showEnd?: string;\n };\n}\n\nexport class CMDP_SGETTICKETSHOWS_RESPONSE extends CMDP_SGETTICKETSHOWS implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CTICKETSHOW[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTTICKETSHOW implements ICOMMAND {\n public action = ACTION.CMDP_SUPSERTTICKETSHOW;\n public params: baseParamsType & ticketShow;\n}\n\nexport class CMDP_SUPSERTTICKETSHOW_RESPONSE extends CMDP_SUPSERTTICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CTICKETSHOW[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETETICKETSHOW implements ICOMMAND {\n public action = ACTION.CMDP_SDELETETICKETSHOW;\n public params: baseParamsType & { showId?: string };\n}\n\nexport class CMDP_SDELETETICKETSHOW_RESPONSE extends CMDP_SDELETETICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * start ticket show\n */\nexport class CMDP_SSTARTTICKETSHOW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTARTTICKETSHOW;\n public params: baseParamsType & {\n /** custom show name */\n ualias?: string;\n };\n}\n\nexport class CMDP_SSTARTTICKETSHOW_RESPONSE extends CMDP_SSTARTTICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & {\n /** the chat id */\n chatID: string;\n };\n}\n\n/**\n * stop ticket show\n */\nexport class CMDP_SSTOPTICKETSHOW implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTOPTICKETSHOW;\n public params: baseParamsType;\n}\n\nexport class CMDP_SSTOPTICKETSHOW_RESPONSE extends CMDP_SSTOPTICKETSHOW implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/** the sedcardpicrure */\nexport class CMDC_SEDCARDPICTURE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_SEDCARDPICTURE;\n public params: {\n /** picture id*/\n pictureId?: string;\n /** sedcards.fsk12, sedcards.fsk16 ununsed for mnow */\n type: string;\n /** sedcart, avatar, unused for now */\n subtype: string;\n /**use the imageSrc as value for showImageUrl */\n imgSrc: string;\n /** use imgSrcSet for UI only*/\n imgSrcSet: string;\n };\n}\n\n/** get bitmap urls that can be used for show.imageUrl */\nexport class CMDP_SGETSEDCARDPICTURES implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETSEDCARDPICTURES;\n public params: baseParamsType;\n}\n\n/** reponse */\nexport class CMDP_SGETSEDCARDPICTURES_RESPONSE extends CMDP_SGETSEDCARDPICTURES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_SEDCARDPICTURE[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringified } from \"../../@types\";\nimport { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType } from \"../command/baseparams\";\n\nexport enum EnumPushNotificationFilter {\n ALL = \"all\",\n REGULAR = \"regular\",\n NONE = \"none\",\n}\n\nexport type UserSettings = {\n pushNotificationFilter?: EnumPushNotificationFilter;\n readyForVideoCall?: EnumBooleanStringified;\n};\n\n/**\n * set user setting\n */\nexport class CMDP_GETSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETSETTINGS;\n public params: baseParamsType;\n}\n\n/**\n * set user setting response\n */\nexport class CMDP_GETSETTINGS_RESPONSE extends CMDP_GETSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & UserSettings;\n}\n\n/**\n * set user setting\n */\nexport class CMDP_SETSETTINGS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETSETTINGS;\n public params: baseParamsType & UserSettings;\n}\n\n/**\n * set user setting response\n */\nexport class CMDP_SETSETTINGS_RESPONSE extends CMDP_SETSETTINGS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import {\n CMDP_SSTARTTICKETSHOW,\n CMDP_SSTARTTICKETSHOW_RESPONSE,\n CMDP_SSTOPTICKETSHOW,\n CMDP_SSTOPTICKETSHOW_RESPONSE,\n} from \"./live/ticketshow\";\n\nexport class CMDP_OPEN_LOBBY extends CMDP_SSTARTTICKETSHOW {}\n\nexport class CMDP_OPEN_LOBBY_RESPONSE extends CMDP_SSTARTTICKETSHOW_RESPONSE {}\n\nexport class CMDP_CLOSE_LOBBY extends CMDP_SSTOPTICKETSHOW {}\n\nexport class CMDP_CLOSE_LOBBY_RESPONSE extends CMDP_SSTOPTICKETSHOW_RESPONSE {}\n","import { EnumBooleanDigitized, JSONString } from \"../@types\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { SessionState } from \"./sessionstate\";\nimport { UploadMediaTus } from \"./init\";\n\n/** web token format need for login with web token. obligatory fields in token-payload\n * \\{\n * userPoolId: number \\{10\\}, - the id of your user pool\n * usrKey: string \\{36 bytes\\} - the uniq user key in your pool\n * \\}\n */\nexport type loginWithWebtokenType = {\n webtoken: string;\n};\n\n/** login with user name & password */\nexport type loginWithUserNameType = {\n /** your bussines Id in CmdControl system, will be obligatory in future to check the password by your backend */\n usrId?: string;\n /** username. if usrId not set, your B2B username. if usrId is set the username of customer. LIVE: username of Model */\n login: string;\n /** password in plain MD5 or other format to check it by your backend */\n password: string;\n};\n\nexport type foreignSIDType = {\n /** upgrade from foreignSID, 8320 only */\n foreignSID?: string;\n};\n\n/** additional params */\nexport type otherLoginParamsType = {\n /** B2B: user key. Obligatory, If you want to create end-user-session and if not set already in webtoken. max 36 symbols */\n usrKey?: string;\n /** this is session with messenger functions, default is \"0\" */\n msn?: EnumBooleanDigitized;\n // /** unused */\n // jwtKey?: string;\n\n autoLogin?: EnumBooleanDigitized;\n};\n\n/** login union type */\nexport type loginParamType = loginWithWebtokenType | loginWithUserNameType | foreignSIDType;\n\nexport interface ILoginBackendPayload {\n guest: any;\n}\n\nexport class CMDP_LOGIN implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_LOGIN;\n /** login params */\n public params: baseParamsType & loginParamType & otherLoginParamsType;\n /** payload to sent it to backend */\n public payload?: unknown;\n}\n\n/**\n * response for Login\n */\nexport class CMDP_LOGIN_RESPONSE extends CMDP_LOGIN implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: SessionState & {\n uploadMediaTus?: JSONString<UploadMediaTus>;\n };\n /** payload from backend */\n public payload?: ILoginBackendPayload;\n}\n","import { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { EnumBooleanStringified } from \"../@types\";\nimport { ExitCode } from \"./exit-code\";\nimport { clientID } from \"./clivechat\";\nimport { EndChatType } from \"./live/livechat\";\n\nexport class CMDP_LOGOUT implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_LOGOUT;\n public params: baseParamsType & {\n code?: number;\n allDevices?: EnumBooleanStringified;\n };\n public payload?: unknown;\n}\n\nexport class CMDP_LOGOUT_RESPONSE extends CMDP_LOGOUT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n// alias to CMDP_LOGOUT\nexport class CMDP_SLOGOUT extends CMDP_LOGOUT {\n public action: ACTION = ACTION.CMDP_SLOGOUT;\n}\n\nexport class CMDP_SLOGOUT_RESPONSE extends CMDP_LOGOUT_RESPONSE {\n public action: ACTION = ACTION.CMDP_SLOGOUT;\n}\n\nexport class CMDP_CLOGOUT implements ICOMMAND {\n public action = ACTION.CMDP_CLOGOUT;\n public params: baseParamsType &\n clientID & {\n exitCode?: ExitCode;\n exitMessage?: string;\n };\n}\n\nexport class CMDP_CLOGOUT_RESPONSE extends CMDP_CLOGOUT implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n endChatType: EndChatType;\n videoTime?: string;\n };\n}\n","import { ACTION, baseParamsType, IBACKENDPAYLOAD, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport { channelIdType } from \"./channel\";\nimport { MayHaveChannelId } from \"./media\";\nimport { Currency, EnumTicketType, MediaFile, MediaPrice, MessageId } from \"./message\";\n\nexport type PriceInstruction = {\n min: string;\n max: string;\n default: string;\n pick: string[];\n};\n\nexport type DurationInstruction = {\n min: string;\n max: string;\n default: string;\n pick: string[];\n};\n\nexport type TicketPriceDuration = {\n price: PriceInstruction;\n /**dauer in seconds */\n duration: DurationInstruction;\n};\n\nexport type MediaPrices = {\n imagePrices: PriceInstruction;\n audioPrices: PriceInstruction;\n videoPrices: PriceInstruction;\n ticketPrices?: Record<EnumTicketType, TicketPriceDuration>;\n};\n\n/**\n * Command for get prices for media. Will be forwarded to B2B backend.\n */\nexport class CMDP_SMEDIAGETPRICES implements ICOMMAND {\n public action = ACTION.CMDP_SMEDIAGETPRICES;\n public params: baseParamsType & MayHaveChannelId;\n}\n\n/**\n * Response command for CMDP_SMEDIAGETPRICES\n */\nexport class CMDP_SGETPRICESMEDIA_RESPONSE extends CMDP_SMEDIAGETPRICES implements IRESPONSE, IBACKENDPAYLOAD {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n /** B2B Infos */\n public payload: Currency & MediaPrices;\n}\n\n//------------------------------------------------------------------------------------------------------\n/**\n * B2B Command for create of media offer\n */\nexport class CMDP_SMEDIAOFFERCREATE implements ICOMMAND {\n public action = ACTION.CMDP_SMEDIAOFFERCREATE;\n public params: baseParamsType &\n channelIdType &\n Currency &\n MediaPrice &\n MediaFile &\n MessageId & {\n userPoolId: string;\n usrKey: string;\n };\n}\n\n/**\n * B2B Response command for CMDP_SMEDIAOFFERCREATE\n */\nexport class CMDP_SMEDIAOFFERCREATE_RESPONSE extends CMDP_SMEDIAOFFERCREATE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * B2B command for inform partner about media purchase. Will be sent to partners B2B backend.\n */\nexport class CMDP_SINFORMMEDIAPURCHASED implements ICOMMAND {\n public action = ACTION.CMDP_SINFORMMEDIAPURCHASED;\n public params: baseParamsType &\n /** channel id */\n channelIdType &\n /** the message id of related media offer */\n MessageId & {\n billId?: string;\n };\n}\n\n/**\n * Response command for CMDP_SMEDIAPURCHASE.\n */\nexport class CMDP_SINFORMMEDIAPURCHASED_RESPONSE extends CMDP_SINFORMMEDIAPURCHASED implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringifiedExtended, JSONString } from \"../@types\";\nimport { channelIdType, EnumChannelFilterValues, EnumSortOrder } from \"./channel\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport {\n CMDC_CMSG,\n EnumMediaState,\n EnumMediaType,\n EnumMessageDirection,\n MediaFile,\n MediaMd5,\n MediaPrice,\n} from \"./message\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\n\nexport type MayHaveChannelId = {\n channelId?: string;\n};\n\nexport enum ChannelMediaLinkState {\n NONE = \"NONE\",\n FREE = \"FREE\",\n OFFER = \"OFFER\",\n PAID = \"PAID\",\n EXPIRED = \"EXPIRED\",\n CLOSED = \"CLOSED\",\n}\n\nexport enum UploadedMediaDirection {\n IN = \"in\",\n OUT = \"out\",\n ANY = \"any\",\n}\n\n/**\n * media info, may have a channel id\n */\nexport class CMDC_CMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CMEDIA;\n public params: MediaFile &\n MayHaveChannelId & {\n linkState?: ChannelMediaLinkState;\n linkDate?: string;\n direction?: UploadedMediaDirection;\n } & MediaPrice;\n}\n\n/**\n * check for media already was uploaded.\n * mediaMd5 - comaseparated media md5\n * channelId - comaseparated channelId\n */\nexport class CMDP_SCHECKUPLOADEDMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SCHECKUPLOADEDMEDIA;\n public params: baseParamsType & MediaMd5 & MayHaveChannelId;\n}\n\n/**\n * media infos, if any found in cache\n */\nexport class CMDP_SCHECKUPLOADEDMEDIA_RESPONSE extends CMDP_SCHECKUPLOADEDMEDIA implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMEDIA[];\n public values: IKeyMaybeValue;\n}\n\n/** get list of all uploaded media ordered by upliad date descending, may have comaseparated channel id for filter */\nexport class CMDP_SGETUPLOADEDMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETUPLOADEDMEDIA;\n public params: baseParamsType &\n MayHaveChannelId & {\n mediaState?: EnumMediaState;\n mediaType?: ComaSeparatedValues<EnumMediaType> | EnumMediaType;\n linkState?: ComaSeparatedValues<ChannelMediaLinkState> | ChannelMediaLinkState;\n skip?: string;\n limit?: string;\n direction?: UploadedMediaDirection;\n /** get only mediaMd5, channelId, linkState, linkDate, and cut off all mediaXXX fields, default is false */\n dropMediaFields?: EnumBooleanStringifiedExtended;\n countOnly?: EnumBooleanStringifiedExtended;\n };\n}\n\nexport class CMDP_SGETUPLOADEDMEDIA_RESPONSE extends CMDP_SGETUPLOADEDMEDIA implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMEDIA[];\n public values: IKeyMaybeValue;\n}\n\n/** get list of all uploaded media ordered by upliad date descending, may have one channel id for filter */\nexport class CMDP_SGETUPLOADEDMEDIA2 implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETUPLOADEDMEDIA2;\n public params: baseParamsType &\n MayHaveChannelId & {\n mediaState?: EnumMediaState;\n mediaType?: ComaSeparatedValues<EnumMediaType> | EnumMediaType;\n linkState?: ComaSeparatedValues<ChannelMediaLinkState> | ChannelMediaLinkState;\n skip?: string; // default 0\n limit?: string; // default 50\n direction?: UploadedMediaDirection;\n /** get only mediaMd5, channelId, linkState, linkDate and cut off all mediaXXX fields, default is false */\n dropMediaFields?: EnumBooleanStringifiedExtended;\n sortBy?: \"linkDate\" | \"mediaCreated\" | string;\n } & {\n /** B2B only */\n usrKey?: string;\n };\n}\n\nexport class CMDP_SGETUPLOADEDMEDIA2_RESPONSE extends CMDP_SGETUPLOADEDMEDIA2 implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMEDIA[];\n public values: IKeyMaybeValue;\n}\n\n//** summary channel media */\nexport class CMDC_CHANNELMEDIASUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_CHANNELMEDIASUMMARY;\n public params: channelIdType & {\n outAll: string;\n outSold: string;\n outOffer: string;\n outVideo: string;\n outAudio: string;\n outBitmap: string;\n inAll: string;\n inSold: string;\n inOffer: string;\n inVideo: string;\n inAudio: string;\n inBitmap: string;\n };\n}\n\n/** query media summary for channels */\nexport class CMDP_SGETCHANNELDMEDIASUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETCHANNELDMEDIASUMMARY;\n public params: baseParamsType & channelIdType;\n}\n\nexport class CMDP_SGETCHANNELDMEDIASUMMARY_RESPONSE extends CMDP_SGETCHANNELDMEDIASUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CHANNELMEDIASUMMARY[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SGETMEDIAHISTORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMEDIAHISTORY;\n public params: baseParamsType &\n channelIdType & {\n filterDeleted?: EnumChannelFilterValues;\n filterMediaType?: ComaSeparatedValues<EnumMediaType>;\n filterLinkState?: ComaSeparatedValues<ChannelMediaLinkState>;\n filterDirection?: EnumMessageDirection | \"any\";\n limit?: string;\n offset?: string;\n sort?: EnumSortOrder;\n };\n}\n\nexport class CMDP_SGETMEDIAHISTORY_RESPONSE extends CMDP_SGETMEDIAHISTORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_CMSG[];\n public values: {\n count: string;\n total: string;\n };\n}\n\nexport class CMDP_SGETMEDIAHISTORYSUMMARY implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMEDIAHISTORYSUMMARY;\n public params: baseParamsType &\n channelIdType & {\n filterDeleted?: EnumChannelFilterValues;\n filterMediaType?: ComaSeparatedValues<EnumMediaType>;\n filterLinkState?: ComaSeparatedValues<ChannelMediaLinkState>;\n filterDirection?: EnumMessageDirection | \"any\";\n };\n}\n\nexport type MediaCounterType = Map<EnumMediaType, number>;\n\nexport class CMDP_SGETMEDIAHISTORYSUMMARY_RESPONSE extends CMDP_SGETMEDIAHISTORYSUMMARY implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n counts: JSONString<MediaCounterType>;\n };\n}\n","import { ACTION, baseParamsType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\nimport { channelIdType } from \"./channel\";\nimport { MediaMd5, MediaOffer } from \"./message\";\n\n/**\n * Frontent command for offer media.\n */\nexport class CMDP_SOPENMEDIAOFFER implements ICOMMAND {\n public action = ACTION.CMDP_SOPENMEDIAOFFER;\n public params: baseParamsType & channelIdType & MediaMd5 & MediaOffer & { text?: string };\n}\n\n/**\n * Response command for CMDP_SOPENMEDIAOFFER.\n */\nexport class CMDP_SOPENMEDIAOFFER_RESPONSE extends CMDP_SOPENMEDIAOFFER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * Frontend command for close of offer.\n */\nexport class CMDP_SCLOSEMEDIAOFFER implements ICOMMAND {\n public action = ACTION.CMDP_SCLOSEMEDIAOFFER;\n public params: baseParamsType &\n channelIdType & {\n messageId?: string;\n };\n}\n\n/**\n * Response command for CMDP_SCLOSEMEDIAOFFER.\n */\nexport class CMDP_SCLOSEMEDIAOFFER_RESPONSE extends CMDP_SCLOSEMEDIAOFFER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import {\n ACTION,\n baseParamsType,\n ChannelMediaLinkState,\n ICOMMAND,\n IKeyMaybeValue,\n IRESPONSE,\n MayHaveChannelId,\n RESULT,\n} from \"../cmd-protocol\";\nimport { channelIdType } from \"./channel\";\nimport { CMDC_CMSG, MediaFile, MediaPrice, MessageId, MessageParams, MessageReadOnlyParams } from \"./message\";\n\n/**\n * Frontent command for media purchase. Will be forwarded to users pool B2B backend with additional infos\n */\nexport class CMDP_SMEDIAPURCHASE implements ICOMMAND {\n public action = ACTION.CMDP_SMEDIAPURCHASE;\n public params: baseParamsType &\n channelIdType &\n /** the message id of related media offer */\n MessageId &\n /** MediaPrice is added to proxy call from Cmdontrol to B2B backend */\n MediaPrice &\n /** MediaFile is added to proxy call from CmdControl to B2B backend */\n MediaFile;\n}\n\n/**\n * Response command for CMDP_SMEDIAPURCHASE.\n */\nexport class CMDP_SMEDIAPURCHASE_RESPONSE extends CMDP_SMEDIAPURCHASE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * Inform the Session about purchase\n */\nexport class CMDC_MEDIAPURCHASED extends CMDC_CMSG {\n public action = ACTION.CMDC_MEDIAPURCHASED;\n public params: MessageParams &\n MessageReadOnlyParams &\n MediaFile &\n MediaPrice &\n MayHaveChannelId & { linkState?: ChannelMediaLinkState } & IKeyMaybeValue;\n}\n","import { IBACKENDPAYLOAD } from \"./backend\";\nimport { channelIdSelectOrFilter } from \"./channel\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { EnumMediaType, MediaOffer, MessageParams } from \"./message\";\n\nexport enum UploadStep {\n earlyreject = \"earlyreject\",\n lateaccept = \"lateaccept\",\n informuploaded = \"informuploaded\",\n transcoded = \"transcoded\",\n transcodeerror = \"transcodeError\",\n error = \"error\",\n}\n\n/** internal use only, may be changed without announce*/\nexport type UploadServiceReadOnlyParams = {\n step?: UploadStep;\n fileformat?: EnumMediaType;\n\n md5?: string;\n transactionID?: string;\n\n origfilename?: string;\n\n imgSrc?: string;\n imgSrcSet?: string;\n height?: string;\n width?: string;\n\n audioMp3?: string;\n audioOgg?: string;\n audioM4a?: string;\n audioDuration?: string;\n\n videoPoster?: string;\n videoPosterPixelated?: string;\n videoHls?: string;\n videoHeight?: string;\n videoWidth?: string;\n videoDuration?: string;\n};\n\n/**\n * the upload command\n * usage POST to \\{uploadMediaUrl\\}?action=CMDP_SUPLOADMEDIA&sessionId=\\{\\}&channelId=\\{\\}.....\n */\nexport class CMDP_SUPLOADMEDIA implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPLOADMEDIA;\n public params: baseParamsType & channelIdSelectOrFilter & MessageParams & MediaOffer;\n}\n\n/**\n * Response for CMDP_SUPLOADMEDIA\n */\nexport class CMDP_SUPLOADMEDIA_RESPONSE extends CMDP_SUPLOADMEDIA implements IRESPONSE, IBACKENDPAYLOAD {\n public params: baseParamsType & channelIdSelectOrFilter & MessageParams & MediaOffer & UploadServiceReadOnlyParams;\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue & {\n /** channels skipped from upload if media already was purchased, and you try to make a new offer */\n skippedChannels?: string;\n };\n /** backendpayload */\n public payload?: unknown;\n}\n","import { channelIdSelectOrFilter, channelIdType, IMayHaveChannelId } from \"./channel\";\nimport { EnumBooleanStringified, EnumCurrency } from \"../@types\";\nimport { SystemMessageKey } from \"./systemmessagekey\";\nimport { IBACKENDPAYLOAD } from \"./backend\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { ChannelMediaLinkState, MayHaveChannelId } from \"./media\";\nimport { clientID } from \"./clivechat\";\nimport { chatIdType } from \"./chatstate\";\n\nexport enum MessageFlags {\n \"canDeleted\",\n \"isDeleted\",\n}\n\nexport enum EnumMessageFlagValue {\n NO = \"0\",\n YES = \"1\",\n}\n\nexport enum EnumMessageType {\n MAIL = \"mail\",\n CHAT = \"chat\",\n MESSENGER = \"msn\",\n SYSTEM = \"sys\",\n}\n\nexport enum EnumMessageDirection {\n IN = \"in\",\n OUT = \"out\",\n}\n\nexport enum EnumMediaType {\n BITMAP = \"Bitmap\",\n AUDIO = \"Audio\",\n VIDEO = \"Video\",\n /**\n * @deprecated/obsolete\n */\n TICKET_SHOW = \"TicketShow\",\n}\n\nexport enum EnumMediaState {\n UPLOAD = \"uploaded\",\n OK = \"ok\",\n TRANSCODING = \"transcode\",\n ERROR = \"error\",\n TRANSCODING_ERROR = \"transcodeError\",\n}\n\nexport enum EnumTicketType {\n TicketShow = \"ticketShow\",\n}\n\nexport enum EnumMessageStyle {\n GUEST = \"g\" /** depretacted */,\n SYSTEM = \"s\" /** depretacted */,\n INFO = \"info\",\n WARN = \"warn\",\n ERROR = \"error\",\n INFO_HIGHLIGHT = \"InfoHighlight\",\n}\n\nexport type Currency = {\n currency?: EnumCurrency;\n};\n\nexport type Chargeable = {\n isChargeable?: EnumBooleanStringified;\n};\n\n/** message params */\nexport type MessageParams = IMayHaveChannelId & {\n messageId?: string;\n /** your uniq key for message */\n messageKey?: SystemMessageKey | string;\n /** chat id */\n chatID?: string;\n /** text-message */\n text?: string;\n /** tip, euro cent */\n tip?: string;\n /** gift ids, coma separated */\n gift?: string;\n /** currency, todo: */\n currency?: EnumCurrency;\n /* url */\n link?: string;\n clientData?: string;\n /* no channel out time update on bulk messages */\n isBulk?: EnumBooleanStringified;\n /** reaction */\n reaction?: string;\n reactionTime?: string;\n /** template*/\n templateId?: string;\n};\n\nexport type MediaMd5 = {\n // md5 of the media\n mediaMd5?: string;\n};\n\nexport type MediaInfo = MediaMd5 & {\n /** the media attached */\n mediaType?: EnumMediaType | string;\n /** state of media attached */\n mediaState?: EnumMediaState | string;\n /** datetime of media*/\n mediaCreated?: string;\n linkState?: ChannelMediaLinkState;\n linkDate?: string;\n};\n\nexport type MediaPrice = Currency & {\n mediaPrice?: string;\n};\n\nexport type MediaOffer = Chargeable & MediaPrice;\n\nexport type ImageFile = MediaInfo & {\n /** Bitmap media*/\n imgSrc?: string;\n imgSrcSet?: string;\n imgHeight?: string;\n imgWidth?: string;\n imgSrcBlurred?: string;\n imgSrcSetBlurred?: string;\n};\n\nexport type AudioFile = MediaInfo & {\n /** Audio media*/\n audioMp3?: string;\n audioM4a?: string;\n audioOgg?: string;\n audioDuration?: string;\n};\n\nexport type VideoFile = MediaInfo & {\n /**Video media */\n videoPoster?: string;\n videoPosterBlurred?: string;\n videoFileUrl?: string;\n videoHls?: string;\n videoHeight?: string;\n videoWidth?: string;\n videoDuration?: string;\n};\n\nexport type MediaFile = ImageFile | AudioFile | VideoFile;\n\n/** id of the message */\nexport type MessageId = {\n messageId: string;\n};\n\nexport type RelationId = {\n /** messageId of related message */\n relationId?: string;\n relationText?: string;\n relationMediaType?: string;\n};\n\n/** more message params, readonly (set by server, ignored if set by client) */\nexport type MessageReadOnlyParams = {\n /** the uniq message id */\n messageId?: string;\n /** source of the message IN CMDP_MSG, writable for B2B session */\n msgType?: EnumMessageType;\n /** sent time */\n time?: string;\n /** timeSeen */\n timeSeen?: string;\n /** direction */\n direction?: EnumMessageDirection;\n /** sound name */\n sound?: string;\n /** Will be present for paid message **/\n priceCode?: string;\n /** the message was bought by the opponent*/\n isPaid?: EnumBooleanStringified.TRUE;\n /**\n * coma separated MessageFlags, const flags = cmd.params.flags ? cmd.params.flags.split(',').map((flag: string) =\\> flag.trim()) : [];\n * ignored IN CMDP_MSG\n */\n flags?: string | \"\";\n /*only for preview chats, indicates the preview video is run */\n previewRun?: \"1\" | \"0\" | string;\n\n canDelete?: EnumBooleanStringified.TRUE;\n isDeleted?: EnumBooleanStringified.TRUE;\n\n /** message style/importance */\n style?: EnumMessageStyle;\n} & RelationId &\n MediaFile &\n MediaOffer;\n\n/**\n * Command for transport of MessageType\n */\nexport class CMDC_CMSG implements ICOMMAND {\n public action = ACTION.CMDC_CMSG;\n public params: MessageParams & MessageReadOnlyParams & MediaFile & MediaOffer & MayHaveChannelId & IKeyMaybeValue;\n}\n\n/**\n * send message\n */\nexport class CMDP_MSG implements ICOMMAND, IBACKENDPAYLOAD {\n public action: ACTION = ACTION.CMDP_MSG;\n public params: baseParamsType & MessageParams & channelIdSelectOrFilter;\n /** if jwt-session, any json-payload for transport to backend */\n public payload?: unknown;\n}\n\n/**\n * Response command for CMDP_MSG\n */\nexport class CMDP_MSG_RESPONSE extends CMDP_MSG implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n /** if jwt-session, any json-payload for transport to client */\n public payload?: unknown;\n}\n\n/**\n * send chat message\n */\nexport class CMDP_CMSG implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_CMSG;\n public params: baseParamsType & MessageParams & clientID & chatIdType;\n /** if jwt-session, any json-payload for transport to backend */\n public payload?: unknown;\n}\n\n/**\n * Response command for CMDP_CMSG\n */\nexport class CMDP_CMSG_RESPONSE extends CMDP_CMSG implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n /** if jwt-session, any json-payload for transport to client */\n public payload?: unknown;\n}\n\n/**\n * delete of message\n * your message will be deleted on your and partner side, partner message will be deleted only on your side\n */\nexport class CMDP_MSGDELETE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_MSGDELETE;\n public params: baseParamsType & channelIdType & Partial<MessageId>;\n}\n\n/**\n * Response for CMDP_MSGDELETE\n */\nexport class CMDP_MSGDELETE_RESPONSE extends CMDP_MSGDELETE implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * reaction to message. s. IReaction and CMDP_SINIT.values.reactions\n * CMDC_CMSG will be sent by backend to update the message\n */\nexport class CMDP_SMSGREACTION implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SMSGREACTION;\n public params: baseParamsType &\n channelIdType &\n MessageId & {\n text?: string;\n /** if the text is empty or not set, the code musst be set to one of CMDP_SINIT.values.reactions */\n code?: string;\n /** reset reaction, if true then text & code are ignored */\n reset?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for CMDP_MSGDELETE\n */\nexport class CMDP_SMSGREACTION_RESPONSE extends CMDP_SMSGREACTION implements IRESPONSE {\n public result: RESULT;\n /** unused */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * Estimate sending message. get count of possible recipients\n */\nexport class CMDP_SMSGESTIMATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SMSGESTIMATE;\n public params: baseParamsType &\n channelIdSelectOrFilter & {\n withMedia?: EnumBooleanStringified;\n mediaMd5?: string;\n /* if true, no recipientChannels & skippedChannels is return*/\n countOnly?: EnumBooleanStringified;\n };\n}\n/**\n * Response for CMDP_SMSGESTIMATE\n */\nexport class CMDP_SMSGESTIMATE_RESPONSE extends CMDP_SMSGESTIMATE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: {\n channelCount: string;\n canReceiveCount: string;\n canReceiveChannels: string;\n canPurchaseCount: string;\n canPurchaseChannels?: string;\n hasPurchasedCount: string;\n hasPurchasedChannels?: string;\n };\n}\n\n/**\n use https://www.deepl.com/de/docs-api/translate-text/translate-text/\n for sourceLanguage & targetLanguage values\n */\nexport class CMDP_DEEPL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_DEEPL;\n public params: baseParamsType & {\n text: string;\n sourceLanguage?: string;\n targetLanguage: string;\n deeplId?: string;\n };\n}\n\nexport class CMDP_DEEPL_RESPONSE extends CMDP_DEEPL implements IRESPONSE {\n public result: RESULT;\n\n public commands: ICOMMAND[];\n\n public values: IKeyMaybeValue & {\n text: string;\n detectedLanguage: string;\n };\n}\n","import { ACTION, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType } from \"../command/baseparams\";\n\nexport class CMDP_SETEXPOTOKEN implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETEXPOTOKEN;\n public params: baseParamsType & {\n token?: string;\n };\n}\n\n/**\n * reponse.\n */\nexport class CMDP_SETEXPOTOKEN_RESPONSE extends CMDP_SETEXPOTOKEN implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION, channelIdType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../../cmd-protocol\";\nimport { baseParamsType, deviceIdType } from \"../command/baseparams\";\nimport { VideoSdkConfig } from \"./videosdk\";\nimport { EnumBooleanStringified, JSONString } from \"../../@types\";\n\nexport enum EnumMobileTokenType {\n FCM = \"fcm\",\n APN = \"apn\",\n VOIP = \"voip\",\n}\n\nexport enum EnumMobileVideoCallState {\n // caller or receiver action\n Cancelled = \"CANCELLED\",\n // receiver action\n Answered = \"ANSWERED\",\n // receiver action\n Declined = \"DECLINED\",\n /* avs denied*/\n FskDenied = \"FSKDENIED\",\n // others\n Busy = \"BUSY\",\n NoAnswer = \"NOANSWER\",\n Failed = \"FAILED\",\n Unknown = \"UNKNOWN\",\n}\n\nexport class CMDP_SETMOBILETOKEN implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SETMOBILETOKEN;\n public params: baseParamsType & {\n type: EnumMobileTokenType;\n token: string;\n bundleId?: string;\n };\n}\n\nexport class CMDP_SETMOBILETOKEN_RESPONSE extends CMDP_SETMOBILETOKEN implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_STARTMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_STARTMOBILEVIDEOCALL;\n public params: baseParamsType & channelIdType;\n}\n\nexport class CMDP_STARTMOBILEVIDEOCALL_RESPONSE extends CMDP_STARTMOBILEVIDEOCALL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: { videoSdkConfig: JSONString<VideoSdkConfig> };\n}\n\nexport class CMDC_STARTMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_STARTMOBILEVIDEOCALL;\n public params: channelIdType & {\n sessionID: string;\n ualias: string;\n imgSrc: string;\n videoSdkConfig: JSONString<VideoSdkConfig>;\n isSoftChat: EnumBooleanStringified;\n chatID?: string;\n };\n}\n\nexport class CMDP_UPDATEMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_UPDATEMOBILEVIDEOCALL;\n public params: baseParamsType & {\n videoSdkConfig: string;\n state: EnumMobileVideoCallState;\n };\n}\n\nexport class CMDP_UPDATEMOBILEVIDEOCALL_RESPONSE extends CMDP_UPDATEMOBILEVIDEOCALL implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_UPDATEMOBILEVIDEOCALL implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_UPDATEMOBILEVIDEOCALL;\n public params: channelIdType &\n deviceIdType & {\n sessionID: string;\n videoSdkConfig: JSONString<VideoSdkConfig>;\n state: EnumMobileVideoCallState;\n };\n}\n\nexport class CMDP_LOGOUTOTHERMOBILE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_LOGOUTOTHERMOBILE;\n public params: baseParamsType;\n}\n\nexport class CMDP_LOGOUTOTHERMOBILE_RESPONSE extends CMDP_LOGOUTOTHERMOBILE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringified, JSONString } from \"../../@types\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\nimport { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\n\nexport type MobileVideoCallScheduleType = {\n /*empty on add, obligatory on update */\n scheduleId?: string;\n startMinute: string;\n stopMinute: string;\n /*use binary semantic, \"1010000\" = M+W on, other days off*/\n weekDays: string;\n /*default is true*/\n active?: EnumBooleanStringified;\n /*when update & deleted*/\n deleted?: EnumBooleanStringified;\n};\n\nexport type MobileVideoCallScheduleTypeCMDC = Omit<MobileVideoCallScheduleType, \"scheduleId\"> & {\n scheduleId: string;\n};\n\nexport class CMDC_MVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_MVCSCHEDULE;\n public params: MobileVideoCallScheduleTypeCMDC;\n}\n\nexport class CMDP_SGETMVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SGETMVCSCHEDULE;\n public params: baseParamsType & {\n /*optional to get the one schedule*/\n scheduleId?: string;\n };\n}\nexport class CMDP_SGETMVCSCHEDULE_RESPONSE extends CMDP_SGETMVCSCHEDULE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MVCSCHEDULE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTMVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPSERTMVCSCHEDULE;\n public params: baseParamsType & MobileVideoCallScheduleType;\n}\nexport class CMDP_SUPSERTMVCSCHEDULE_RESPONSE extends CMDP_SUPSERTMVCSCHEDULE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MVCSCHEDULE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETEMVCSCHEDULE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDELETEMVCSCHEDULE;\n public params: baseParamsType & { scheduleId: string };\n}\nexport class CMDP_SDELETEMVCSCHEDULE_RESPONSE extends CMDP_SDELETEMVCSCHEDULE implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTMVCSCHEDULES implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SUPSERTMVCSCHEDULES;\n public params: baseParamsType & {\n schedules: JSONString<MobileVideoCallScheduleType[]>;\n };\n}\nexport class CMDP_SUPSERTMVCSCHEDULES_RESPONSE extends CMDP_SUPSERTMVCSCHEDULES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MVCSCHEDULE[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION } from \"../command/action\";\nimport { baseParamsType } from \"../command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../command/icommand\";\n\n/**\n * Create new user account\n */\nexport class CMDP_SIGNUP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SIGNUP;\n public params: baseParamsType & {\n login: string;\n password: string;\n ualias: string;\n language: string;\n };\n}\n\n/**\n * reponse\n */\nexport class CMDP_SIGNUP_RESPONSE extends CMDP_SIGNUP implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * query password reset\n */\nexport class CMDP_RESETPASSWORD implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_RESETPASSWORD;\n public params: baseParamsType & {\n login: string;\n language: string;\n };\n}\n\n/**\n * reponse for CMDP_RESETPASSWORD\n */\nexport class CMDP_RESETPASSWORD_RESPONSE extends CMDP_RESETPASSWORD implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\n/**\n * delete account\n */\nexport class CMDP_SDELETE_USER implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SDELETE_USER;\n public params: baseParamsType;\n}\n\n/**\n * reponse for CMDP_SDELETE_USER\n */\nexport class CMDP_SDELETE_USER_RESPONSE extends CMDP_SDELETE_USER implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n","import { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { ACTION } from \"./command/action\";\nimport { MediaFile, MediaOffer, MessageParams } from \"./message\";\nimport { ComaSeparatedValues } from \"./sessionstate\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { EnumBooleanStringified } from \"../@types\";\n\nexport type templateCategoryType = {\n categoryId: string;\n categoryName: string;\n categoryDeleted?: EnumBooleanStringified;\n};\n\nexport class CMDC_TPLCATEGORY implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_TPLCATEGORY;\n public params: templateCategoryType;\n}\n\nexport class CMDP_SGETTPLCATEGORIES implements ICOMMAND {\n public action = ACTION.CMDP_SGETTPLCATEGORIES;\n public params: baseParamsType;\n}\nexport class CMDP_SGETTPLCATEGORIES_RESPONSE extends CMDP_SGETTPLCATEGORIES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_TPLCATEGORY[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTTPLCATEGORY implements ICOMMAND {\n public action = ACTION.CMDP_SUPSERTTPLCATEGORY;\n public params: baseParamsType & templateCategoryType;\n}\nexport class CMDP_SUPSERTTPLCATEGORY_RESPONSE extends CMDP_SUPSERTTPLCATEGORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_TPLCATEGORY[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETETPLCATEGORY implements ICOMMAND {\n public action = ACTION.CMDP_SDELETETPLCATEGORY;\n public params: baseParamsType & { categoryId: string };\n}\nexport class CMDP_SDELETETPLCATEGORY_RESPONSE extends CMDP_SDELETETPLCATEGORY implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_TPLCATEGORY[];\n public values: IKeyMaybeValue;\n}\n\nexport type messageTemplateType = MessageParams &\n MediaFile &\n MediaOffer & {\n templateId: string;\n templateName?: string;\n categoryId?: string;\n templateTags?: ComaSeparatedValues<string>;\n templateText?: string;\n templateCreated: string;\n templateChanged?: string;\n templateDeleted?: EnumBooleanStringified;\n templateSent?: string;\n templateBought?: string;\n favorite?: EnumBooleanStringified;\n } & {\n umaId?: string;\n };\n\nexport class CMDC_MSGTEMPLATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_MSGTEMPLATE;\n public params: messageTemplateType;\n}\n\nexport class CMDP_SGETMSGTEMPLATES implements ICOMMAND {\n public action = ACTION.CMDP_SGETMSGTEMPLATES;\n public params: baseParamsType & {\n categoryId?: string;\n };\n}\nexport class CMDP_SGETMSGTEMPLATES_RESPONSE extends CMDP_SGETMSGTEMPLATES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MSGTEMPLATE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SUPSERTMSGTEMPLATE implements ICOMMAND {\n public action = ACTION.CMDP_SUPSERTMSGTEMPLATE;\n public params: baseParamsType & messageTemplateType;\n}\nexport class CMDP_SUPSERTMSGTEMPLATE_RESPONSE extends CMDP_SUPSERTMSGTEMPLATE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MSGTEMPLATE[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDP_SDELETEMSGTEMPLATE implements ICOMMAND {\n public action = ACTION.CMDP_SDELETEMSGTEMPLATE;\n public params: baseParamsType & { msgTplId: string };\n}\nexport class CMDP_SDELETEMSGTEMPLATE_RESPONSE extends CMDP_SDELETEMSGTEMPLATE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_MSGTEMPLATE[];\n public values: IKeyMaybeValue;\n}\n","import { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\n\n/*noop is the heartbeat and the main delivery command from server side*/\nexport class CMDP_NOOP implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_NOOP;\n public params: baseParamsType;\n}\n\n/*noop_response arrives soon as one command available for you.*/\nexport class CMDP_NOOP_RESPONSE extends CMDP_NOOP implements IRESPONSE {\n public result: RESULT;\n /** server commands for your session/user */\n public commands: ICOMMAND[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n","import { EnumBooleanStringified } from \"../@types\";\nimport { ACTION } from \"./command/action\";\nimport { baseParamsType } from \"./command/baseparams\";\nimport { ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"./command/icommand\";\nimport { channelIdType, IMayHaveChannelId, partnerIdKeyType } from \"./channel\";\n\n/** online state of session */\nexport type OnlineStateType = {\n /* 8230 */\n partnerId: string;\n /** model id */\n partnerKey: string;\n /** is online */\n online: EnumBooleanStringified;\n /** normal video vchat available */\n multi: EnumBooleanStringified;\n /** messaging available */\n messenger: EnumBooleanStringified;\n /** single vchat available */\n single: EnumBooleanStringified;\n /** soft vchat available */\n soft: EnumBooleanStringified;\n /** text over vchat available */\n text: EnumBooleanStringified;\n /** preview vchat available */\n preview: EnumBooleanStringified;\n /** visbility for Content Partnter */\n visible: EnumBooleanStringified;\n /** voyeur vchat available */\n voyeur: EnumBooleanStringified;\n /** voyeur into single vchat available */\n voyeur2s: EnumBooleanStringified;\n /** lobby vchat available */\n lobby: EnumBooleanStringified;\n /** toy state */\n toy: EnumBooleanStringified;\n /** mobile video */\n mobileVideoCall?: EnumBooleanStringified;\n};\n\n/**\n * Transport command for online state\n */\nexport class CMDC_ONLINESTATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_ONLINESTATE;\n public params: OnlineStateType & channelIdType;\n}\n\n/**\n * Query online state of contact\n */\nexport class CMDP_GETONLINESTATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETONLINESTATE;\n public params: baseParamsType & (IMayHaveChannelId | partnerIdKeyType);\n}\n\n/**\n * Response CMDP_GETONLINESTATE\n */\nexport class CMDP_GETONLINESTATE_RESPONSE extends CMDP_GETONLINESTATE implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_ONLINESTATE[];\n /** unused */\n public values: IKeyMaybeValue;\n}\n\n/**\n * get all onlilne 8320 users\n */\nexport class CMDP_GETONLINESTATES implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_GETONLINESTATES;\n // coma-separated channelIds\n public params: baseParamsType &\n IMayHaveChannelId & {\n onlineOnly?: EnumBooleanStringified;\n mobileVideoCallOnly?: EnumBooleanStringified;\n };\n}\n\n/**\n * Response for @see CMDP_GETONLINECONTACTS\n */\nexport class CMDP_GETONLINESTATES_RESPONSE extends CMDP_GETONLINESTATES implements IRESPONSE {\n public result: RESULT;\n public commands: CMDC_ONLINESTATE[];\n public values: IKeyMaybeValue & {\n channelCount: string;\n };\n}\n","import { IProductConfig } from \"./live/products-config\";\nimport { EnumService0900State, EnumService0900Status } from \"./live/supdate\";\nimport { IKeyMaybeValue } from \"./command/icommand\";\nimport { SupportedLanguage } from \"./command/baseparams\";\nimport { EnumBooleanStringified, EnumBooleanStringifiedExtended, JSONString } from \"../@types\";\n\nexport enum EnumSetTp {\n OFFLINE = \"0\",\n ONLINE = \"1\",\n GOING_ONLINE = \"2\",\n}\n\nexport enum EnumFsk {\n SIXTEEN = \"16\",\n EIGHTEEN = \"18\",\n}\n\nexport enum SessionFlag {\n MASTER = \"MASTER\",\n B2B = \"B2B\",\n FSK16 = \"FSK16\",\n FSK18 = \"FSK18\",\n BLOCKFSK16 = \"BLOCKFSK16\",\n FSKMASK = \"FSKMASK\", // FSK16 | FSK18,\n JWT = \"JWT\",\n MSN = \"MSN\",\n SHARED = \"SHARED\",\n ADMIN = \"ADMIN\",\n HASFSK18CHAT = \"HASFSK18CHAT\",\n /**\n * used only for avs moderator sessions\n */\n WEBCAMAVS = \"WEBCAMAVS\",\n FREEMODE = \"FREEMODE\", // SEXOLE only feature\n PARTYMODE = \"PARTYMODE\", // SEXOLE only feature\n BBS24 = \"BBS24\", // Exclusive babestation24 modus\n LOBBY_OPENED = \"LOBBY_OPENED\", // when lobby is started\n MOBILEVIDEOCALL = \"MOBILEVIDEOCALL\", // mobile video call is enabled\n WEBSIP = \"WEBSIP\", // websip is enabled\n}\n\nexport enum InfoWizard {\n FIRSTTIME = \"FIRST_TIME\",\n CONTENTSELL = \"CONTENT_SELL\",\n CONTENTSELLMULTI = \"CONTENT_SELL_MULTI\",\n TICKETSHOW = \"TICKET_SHOW\",\n CUSTOMTAGS = \"CUSTOM_TAGS\",\n TOY_UPDATE = \"TOY_UPDATE\",\n MSG_TEMPLATES = \"MSG_TEMPLATES\",\n}\n/**\n * @remarks String having <T>'s separated by ','\n */\nexport type ComaSeparatedValues<T extends string> = T | string;\n\n/* session state */\nexport interface SessionState extends IKeyMaybeValue {\n /** the session mnumber */\n sessionID: string;\n /** loginname, deprecated, use CMDP_GETUSERINFO */\n login: string;\n /** start time */\n startTime: string;\n /* deprecated */\n online?: EnumBooleanStringified;\n /* 0 offline, 1 online, 2 going online */\n setTp?: EnumSetTp;\n flags?: ComaSeparatedValues<SessionFlag> | SessionFlag;\n /** en de */\n language?: SupportedLanguage;\n /** unused */\n broadcastData?: string;\n /** Used for client-side short-cuts (live) */\n permanentData?: string;\n /** avatar */\n imgSrc?: string;\n /** FSKSTATE */\n fsk?: EnumFsk;\n /** SoftChat */\n fsk16?: EnumBooleanStringifiedExtended;\n /** service 0900 state, if missing in LOGIN values, the service is not available */\n service0900State?: EnumService0900State;\n /** service 0900 status */\n service0900Status?: EnumService0900Status;\n /** the live preview*/\n livePreviewState?: EnumBooleanStringified;\n /** only exclusive stream available*/\n showBabeStation24Tab?: EnumBooleanStringified;\n babeStation24State?: EnumBooleanStringified;\n /* the mobile video calls*/\n showMobileVideoCallTab?: EnumBooleanStringified;\n mobileVideoCallState?: EnumBooleanStringified;\n mobileVideoCallRun?: EnumBooleanStringified;\n mobileVideoCallChannelId?: string;\n mobileVideoCallDuration?: string;\n /** ticket show allowed*/\n canOpenLobby?: EnumBooleanStringified;\n /** web sip allowed*/\n showWebSipTab?: EnumBooleanStringified;\n webSIPState?: EnumBooleanStringified;\n userLinks?: JSONString<IProductConfig[\"links\"]>;\n chatMotto?: string;\n showInfoWizards?: ComaSeparatedValues<InfoWizard> | string;\n /** last MomentumChat usage Date*/\n lastMomentumUsage?: string;\n showToyTab?: EnumBooleanStringified;\n /* session jwt*/\n webtoken?: string;\n showBumpTab?: EnumBooleanStringified;\n showTemplateTab?: EnumBooleanStringified;\n selfieChannelId?: string;\n}\n","import { EnumStreamStatusType } from \"../@types\";\nimport { ACTION, baseParamsType, ICOMMAND, IKeyMaybeValue, IRESPONSE, RESULT } from \"../cmd-protocol\";\n\nexport enum EnumPlayerEventType {\n Play = \"Play\",\n Error = \"Error\",\n Warn = \"Warn\",\n Info = \"Info\",\n}\n\n/** */\nexport class CMDP_SSTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDP_SSTATUS;\n public params: baseParamsType & {\n type: EnumStreamStatusType;\n value: string;\n } & {\n /**comaseparated list for PROXY_STATE_INFO*/\n channelId?: string;\n /**comaseparated list for PROXY_STATE_INFO*/\n chatIDs?: string;\n };\n}\n\nexport class CMDP_SSTATUS_RESPONSE extends CMDP_SSTATUS implements IRESPONSE {\n public result: RESULT;\n public commands: ICOMMAND[];\n public values: IKeyMaybeValue;\n}\n\nexport class CMDC_SSTATUS implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_SSTATUS;\n public params: { type: EnumStreamStatusType };\n}\n","/** messageKey for msgTyp=\"sys\" */\nexport enum _SystemMessageKey {}\n\nexport enum SystemMessageKey {\n // custom Keys\n bonusCodeRedemption = \"bonusCodeRedemption\", // triggered when guest uses model's bonus code on Visit-X\n h_vcall_code = \"h_vcall_code\", // manual vcall code\n feedPostBought = \"feedPostBought\",\n feedPostTipped = \"feedPostTipped\",\n\n // standart keys\n categories = \"categories\", //Categories\n category = \"category\", //Category\n error_code_6010 = \"error_code_6010\", //Missing ticket for show.\n error_code_6011 = \"error_code_6011\", //The show hasn't started yet.\n exit_code_1 = \"exit_code_1\", //\n exit_code_100 = \"exit_code_100\", //You have ended this chat.\n exit_code_101 = \"exit_code_101\", //You have ended this chat.\n exit_code_102 = \"exit_code_102\", //You have ended this chat.\n exit_code_103 = \"exit_code_103\", //You have ended this chat.\n exit_code_104 = \"exit_code_104\", //This chat has been closed to allow a chat software update.\n exit_code_105 = \"exit_code_105\", //This chat has been closed due to an internal error. Oops.\n exit_code_106 = \"exit_code_106\", //Not enough money!\n exit_code_107 = \"exit_code_107\", //\n exit_code_108 = \"exit_code_108\", //\n exit_code_201 = \"exit_code_201\", //You were kicked by the Model!\n exit_code_202 = \"exit_code_202\", //{modelname} just went offline. Please try again later.\n exit_code_203 = \"exit_code_203\", //{modelname} just went offline. Please try again later.\n exit_code_204 = \"exit_code_204\", //{modelname} just went offline. Please try again later.\n exit_code_205 = \"exit_code_205\", //{modelname} just went offline. Please try again later.\n exit_code_206 = \"exit_code_206\", //{modelname} just went offline. Please try again later.\n exit_code_207 = \"exit_code_207\", //{modelname} just went offline. Please try again later.\n exit_code_208 = \"exit_code_208\", //{modelname} just went offline. Please try again later.\n exit_code_210 = \"exit_code_210\", //{modelname} just went offline. Please try again later.\n exit_code_211 = \"exit_code_211\", //{modelname} just went offline. Please try again later.\n exit_code_212 = \"exit_code_212\", //{modelname} just went offline. Please try again later.\n exit_code_213 = \"exit_code_213\", //{modelname} just went offline. Please try again later.\n exit_code_214 = \"exit_code_214\", //{modelname} just went offline. Please try again later.\n exit_code_215 = \"exit_code_215\", //{modelname} just went offline. Please try again later.\n exit_code_216 = \"exit_code_216\", //{modelname} just went offline. Please try again later.\n exit_code_301 = \"exit_code_301\", //You were kicked by an admin!\n exit_code_302 = \"exit_code_302\", //Age verification is successful\n exit_code_303 = \"exit_code_303\", //Sorry, you are too young\n exit_code_304 = \"exit_code_304\", //Age verification was not successful. No picture\n exit_code_305 = \"exit_code_305\", //Webcam AVS process was canceled by guest\n exit_code_306 = \"exit_code_306\", //Webcam AVS process failed with technical reason\n exit_code_401 = \"exit_code_401\", //Sorry, you exceeded your preview limit!\n exit_code_402 = \"exit_code_402\", //Sorry, you exceeded your preview limit!\n exit_code_403 = \"exit_code_403\", //{modelname} is offline\n exit_code_404 = \"exit_code_404\", //The model is in a private chat\n exit_code_405 = \"exit_code_405\", //\n exit_code_406 = \"exit_code_406\", //\n exit_code_407 = \"exit_code_407\", //The model has preview disabled\n exit_code_501 = \"exit_code_501\", //You have exceeded your Videotime-Limit!\n exit_code_502 = \"exit_code_502\", //You have exceeded your Free-Preview-Limit!\n exit_code_503 = \"exit_code_503\", //This chat has been closed because the amateur has rejected the user's age status.\n exit_code_601 = \"exit_code_601\", //The model did not accept your Softchat request!\n exit_code_602 = \"exit_code_602\", //This chat has been closed because you have commenced an age verification check.\n exit_code_901 = \"exit_code_901\", //This chat has been closed because en error has occurred. Error code:\n exit_code_902 = \"exit_code_902\", //This chat has been closed because you have started a new chat.\n exit_code_903 = \"exit_code_903\", //This chat has been closed because Voice Call has been ended.\n exit_code_904 = \"exit_code_904\", //This chat has been closed because you have started a new chat.\n exit_code_905 = \"exit_code_905\", //This chat has been closed because en error has occurred. Error code:\n exit_code_906 = \"exit_code_906\", //The model entered a Singlechat!\n exit_code_907 = \"exit_code_907\", //{modelname} just went offline. Please try again later.\n exit_code_908 = \"exit_code_908\", //The model entered a Show!\n exit_code_910 = \"exit_code_910\", //The video connection was interrupted. Please try again later.\n exit_code_911 = \"exit_code_911\", //Free mode was cancelled.\n exit_code_913 = \"exit_code_913\", //Kicked by server\n exit_code_914 = \"exit_code_914\", //Chat was terminated due to a technical error.\n exit_code_920 = \"exit_code_920\", //This chat has been closed because the amateur has been blocked.\n exit_code_921 = \"exit_code_921\", //{modelname} just went offline. Please try again later.\n exit_code_990 = \"exit_code_990\", //This chat has been closed or could not proceed because a time-out has occurred.\n exit_code_991 = \"exit_code_991\", //This chat has been closed because an error has occurred. Error code:\n exit_code_995 = \"exit_code_995\", //This chat has been closed because an error has occurred. Error code:\n exit_code_996 = \"exit_code_996\", //This chat has been closed because an error has occurred. Error code:\n exit_code_997 = \"exit_code_997\", //This chat has been closed because an error has occurred. Error code:\n exit_code_998 = \"exit_code_998\", //This chat has been closed because an error has occurred. Error code:\n exit_code_999 = \"exit_code_999\", //This chat has been closed because the amateur has gone offline. This may have occurred unexpectedly.\n exit_code_lobby = \"exit_code_lobby\", //Show has ended. Thank you for participating.\n exit_code_private_show_end = \"exit_code_private_show_end\", //Show has ended. Thank you for participating.\n g_chat_auto_charged = \"g_chat_auto_charged\", //Your account was automatically charged.\n g_chat_host_micro_off = \"g_chat_host_micro_off\", //%s's microphone is OFF.\n g_chat_host_micro_on = \"g_chat_host_micro_on\", //%s's microphone is now ON.\n g_discount_client = \"g_discount_client\", //%s gives you discount of %s%% for this chat and for the next %s days\n g_discount_client_once = \"g_discount_client_once\", //%s gives you discount of %s%% for this chat\n g_single_not_started = \"g_single_not_started\", //Private Chat is not started.\n g_single_query = \"g_single_query\", //%s invites you to a Private chat and wants to give you a private-only pleasure without other observers. The new price for the Video-Chat will be: %s\n g_single_query_contenpartner = \"g_single_query_contenpartner\", //Do you want to start the private-chat with the adopted price?\n g_single_query_start = \"g_single_query_start\", //Invite %s to a Private chat? (Price %s per minute).\n g_single_query_start1 = \"g_single_query_start1\", //Woud you like to switch to Private Chat (%s per minute)?\n g_single_rejected = \"g_single_rejected\", //Private chat has been rejected by %s.\n g_single_started = \"g_single_started\", //Private chat started.\n g_video_cancel = \"g_video_cancel\", //video interrupted, billing stopped. you may try to restart video\n g_video_delayed = \"g_video_delayed\", //Your player is downloading components for high quality video chat. This is done only once for your computer and is free of charge.\n g_video_delerror = \"g_video_delerror\", //The high quality components could not be installed. The player will fall back to standard quality. You can contact support for help to install the failed components\n g_video_reconnect = \"g_video_reconnect\", //video interrupted, reconnecting (Important: video downtime is not billed)\n host_speaks = \"host_speaks\", //chats in\n h_chat_admin_start = \"h_chat_admin_start\", //A staff member of VISIT has entered your chat.\n h_chat_admin_stop = \"h_chat_admin_stop\", //A staff member of VISIT-X has left your chat.\n h_chat_audio_start = \"h_chat_audio_start\", //%s can listen to your voice, when he turns on the speakers.\n h_chat_ban_failed = \"h_chat_ban_failed\", //A ban is not available.\n h_chat_ban_ok = \"h_chat_ban_ok\", //A ban is successful.\n h_chat_button_yes_close = \"h_chat_button_yes_close\", //Yes, close the chat\n h_chat_cam2cam_running = \"h_chat_cam2cam_running\", //Cam2Cam active\n h_chat_cam2cam_start = \"h_chat_cam2cam_start\", //%s turned on his cam (cam2cam chat)\n h_chat_cam2cam_stop = \"h_chat_cam2cam_stop\", //%s turned off his cam\n h_chat_category_from = \"h_chat_category_from\", //started from your category: %s\n h_chat_chat_closed = \"h_chat_chat_closed\", //Live chat closed.\n h_chat_chat_created = \"h_chat_chat_created\", //%s starts\n h_chat_client_software = \"h_chat_client_software\", //Client Connection with %s\n h_chat_conversion_info_has_top_up = \"h_chat_conversion_info_has_top_up\", //%s did already top up money. Try to get him into your video chat.\n h_chat_conversion_info_no_top_up = \"h_chat_conversion_info_no_top_up\", //If %s tops up money in the chat or up to 30 minutes afterwards (phone access excluded), you will receive a conversion bonus.\n h_chat_conversion_start = \"h_chat_conversion_start\", //%s has entered your conversion chat. He can see you, write with you, but can't hear you.\n h_chat_duration = \"h_chat_duration\", //duration\n h_chat_freeuserconv = \"h_chat_freeuserconv\", //This guest can chat %s minutes with you for free, but you don't get commission on this. So, excite him and try to persuade him to recharge his prepaid account. We will reward you with a 10 EUR conversion bonus!\n h_chat_free_mode_converted = \"h_chat_free_mode_converted\", //Free Chat with %s converted.\n h_chat_fsk_attention = \"h_chat_fsk_attention\", //Attention Soft-Chat!. You can only make a flirt and soft erotic show.\n h_chat_fsk_denied = \"h_chat_fsk_denied\", //You have denied the Soft-Chat.\n h_chat_fsk_text_warn = \"h_chat_fsk_text_warn\", //You are in a softchat session, please watch your language (offending message not delivered)\n h_chat_fsk_wait = \"h_chat_fsk_wait\", //Please wait until your soft chat is accepted!\n h_chat_fsk_accepted = \"h_chat_fsk_accepted\",\n h_chat_guest_mobile = \"h_chat_guest_mobile\", //This Guest visits you via a mobile device. He cannot write as fast as usual.\n h_chat_guest_preview_start = \"h_chat_guest_preview_start\", //VIP Live Preview started\n h_chat_guest_preview_start2 = \"h_chat_guest_preview_start2\", //%s started\n h_chat_guest_sound_off = \"h_chat_guest_sound_off\", //%s cannot listen to your voice.\n h_chat_guest_sound_on = \"h_chat_guest_sound_on\", //%s can listen to your voice.\n h_chat_guest_video_start = \"h_chat_guest_video_start\", //Livechat started\n h_chat_guest_video_start_price = \"h_chat_guest_video_start_price\", //Livechat started (%s / min)\n h_chat_guest_visit = \"h_chat_guest_visit\", //This is the %d visit in your chat (first time: %s, last time: %s)\n h_chat_guest_visit_first = \"h_chat_guest_visit_first\", //This is the first visit in your chat\n h_chat_guest_voyeur_shown = \"h_chat_guest_voyeur_shown\", //You have left the Voyeurchat and in a regular video chat now.\n h_chat_guest_voyeur_start = \"h_chat_guest_voyeur_start\", //Voyeurcam started\n h_chat_guest_voyuer_start_info = \"h_chat_guest_voyuer_start_info\", //You are invisible until you start typing!\n h_chat_guest_voyuer_start_info_price = \"h_chat_guest_voyuer_start_info_price\", //You are invisible until you start typing for %s / min!\n h_chat_guest_voyuer_start_price = \"h_chat_guest_voyuer_start_price\", //Voyeurcam started (%s / min)\n h_chat_info_about = \"h_chat_info_about\", //Info about chat with %s\n h_chat_kicked = \"h_chat_kicked\", //You kicked %s from your chat.\n h_chat_lobby_start = \"h_chat_lobby_start\", //%s started\n h_chat_lobby_stop = \"h_chat_lobby_stop\", //%s has end.\n h_chat_lovense_not_available = \"h_chat_lovense_not_available\", //For this user the Toy Control function is not available - please do not mention it!\n h_chat_name_preview = \"h_chat_name_preview\", //Livechat Preview\n h_chat_name_video = \"h_chat_name_video\", //Livechat\n h_chat_name_voyeur = \"h_chat_name_voyeur\", //Voyeur Livechat\n h_chat_note_caption = \"h_chat_note_caption\", //Your notes\n h_chat_note_create = \"h_chat_note_create\", //Create a note\n h_chat_note_edit = \"h_chat_note_edit\", //Details/Edit\n h_chat_note_not_available = \"h_chat_note_not_available\", //No notes can be created for this guest\n h_chat_not_visitx_guest = \"h_chat_not_visitx_guest\", //This user is logged on a partner site, please never mention VISIT!\n h_chat_no_history = \"h_chat_no_history\", //No chat histoy found.\n h_chat_party_mode_converted = \"h_chat_party_mode_converted\", //Party Chat with %s converted.\n h_chat_paused_4107 = \"h_chat_paused_4107\", //%s credits are exhausted. He has the chance to refill some money immediately. Meanwhile he is not able to see you or to answer you. Encourage him to refill his credits.\n h_chat_please_micro_on = \"h_chat_please_micro_on\", //Please turn ON your microphone.\n h_chat_preview_chat = \"h_chat_preview_chat\", //Livechat\n h_chat_preview_live = \"h_chat_preview_live\", //Livechat Preview\n h_chat_preview_start = \"h_chat_preview_start\", //%s is watching your free live preview. You are able to chat.\n h_chat_preview_start_voucher = \"h_chat_preview_start_voucher\", //%s has entered a chat he already paid via voucher\n h_chat_preview_stop = \"h_chat_preview_stop\", //Free preview for %s is closed.\n h_chat_preview_vip = \"h_chat_preview_vip\", //VIP Live Preview\n h_chat_pseudo_user = \"h_chat_pseudo_user\", //No Mailbox (no VIP codes)\n h_chat_rectuited_guest = \"h_chat_rectuited_guest\", //Recruited guest:\n h_chat_single_available = \"h_chat_single_available\", //Private chat available, but inactive.\n h_chat_single_not_available = \"h_chat_single_not_available\", //Private chat not available\n h_chat_single_running = \"h_chat_single_running\", //Private chat active\n h_chat_stop = \"h_chat_stop\", //%s has left your chat\n h_chat_stop_guest_error = \"h_chat_stop_guest_error\", //%s has technical issues and left your chat\n h_chat_test_chat = \"h_chat_test_chat\", //This is a test chat with your test account.\n h_chat_text_chat_goal_video = \"h_chat_text_chat_goal_video\", //This user is in your Text-Chat and cannot see you. Goal: Win him for the video chat.\n h_chat_text_muted = \"h_chat_text_muted\", //You blocked %s from writing messages.\n h_chat_text_start = \"h_chat_text_start\", //%s has entered your Text-Chat.\n h_chat_text_to_video = \"h_chat_text_to_video\", //%s has switched to Video-Chat\n h_chat_text_unmuted = \"h_chat_text_unmuted\", //%s is allowed to write text messages again.\n h_chat_tip = \"h_chat_tip\", //You have just received a chat bonus from %s over %s Cent!\n h_chat_tip_no_price = \"h_chat_tip_no_price\", //You have just received a chat bonus from %s!\n h_chat_unban_ok = \"h_chat_unban_ok\", //The video chat block has been removed.\n h_chat_url_blocked = \"h_chat_url_blocked\", //X-URL-blocked-X\n h_chat_userisnovip = \"h_chat_userisnovip\", //VIP member.No\n h_chat_userisvip = \"h_chat_userisvip\", //VIP membership\n h_chat_video_start = \"h_chat_video_start\", //%s has entered your Video-Chat\n h_chat_video_start_voyeur = \"h_chat_video_start_voyeur\", //A voyeur is watching your cam. As long as he stays anonymous he can neither see what you are typing nor chat with you.\n h_chat_voyer2single_video_disabled = \"h_chat_voyer2single_video_disabled\", //Please remember that you do not have allowed voyeurs while private chat.\n h_chat_voyeur2single = \"h_chat_voyeur2single\", //%s is currently busy in a Private Chat. You cannot type at the moment!\n h_chat_voyeur2single_off = \"h_chat_voyeur2single_off\", //%s has left the Private Chat. You are now able to start the text chat!\n h_chat_voyeur2single_video_audio_warn = \"h_chat_voyeur2single_video_audio_warn\", //Please remember that you have allowed voyeurs while private chat. Those voyeurs are also able to hear you.\n h_chat_voyeur2single_video_warn = \"h_chat_voyeur2single_video_warn\", //Please remember that you have allowed voyeurs while private chat. Those voyeurs are not able to hear you.\n h_chat_voyeur_shown = \"h_chat_voyeur_shown\", //%s first watched you as voyeur and has now entered a regular Chat with you\n h_chat_voyuer = \"h_chat_voyuer\", //A voyeur\n h_code_4002 = \"h_code_4002\", //Wrong user name or password\n h_code_4003 = \"h_code_4003\", //Access denied\n h_code_4004 = \"h_code_4004\", //Session expiered. Please login again.\n h_code_4006 = \"h_code_4006\", //Login failed. Incorrect username or password.\n h_discount_available = \"h_discount_available\", //Discount available but not granted\n h_discount_current = \"h_discount_current\", //Current Discount is %s% (until %s GMT)\n h_discount_invalid = \"h_discount_invalid\", //It is not possible to set a discount that is less than the current discount or expires sooner.\n h_discount_not_available = \"h_discount_not_available\", //Discount is not available\n h_discount_setforinfo = \"h_discount_setforinfo\", //With this function you grant a %s discount on all videochats and private chats until a certain time.\n h_discount_set_ok = \"h_discount_set_ok\", //You gave %s a %s%% discount.\n h_error_2000 = \"h_error_2000\", //OK\n h_error_4002 = \"h_error_4002\", //Login failed. Incorrect username or password.\n h_error_4003 = \"h_error_4003\", //This login was locked and cannot currently be used for video chats. For further information please contact support team.\n h_error_4004 = \"h_error_4004\", //Your session has expired. Please log in.\n h_error_4006 = \"h_error_4006\", //Login failed. Incorrect username or password.\n h_error_4008 = \"h_error_4008\", //Too many login attempts\n h_error_4009 = \"h_error_4009\", //missing or incomplete session settings\n h_error_4010 = \"h_error_4010\", //account holder already online in this categorie with another profile\n h_error_4011 = \"h_error_4011\", //too many profiles of this account holder online.\n h_error_4012 = \"h_error_4012\", //maximum number of profiles for this categorie reached\n h_error_4013 = \"h_error_4013\", //ATTENTION: This software is outdated and can''t be used anymore. Please go to https://www.vxlive.net. If you need help, please contact your support.\n h_error_4014 = \"h_error_4014\", //Please confirm your email address in order to go online.\n h_error_4015 = \"h_error_4015\", //No Audio is available\n h_error_4016 = \"h_error_4016\", //\n h_error_4020 = \"h_error_4020\", //running chats, cannot stop sending\n h_error_4104 = \"h_error_4104\", //chat not found\n h_error_4141 = \"h_error_4141\", //Not enough credit.\n h_error_5001 = \"h_error_5001\", //Invalid Parameter\n h_error_5004 = \"h_error_5004\", //An unexpected error has occurred.\n h_error_5005 = \"h_error_5005\", //Not implemented\n h_error_dberror = \"h_error_dberror\", //An unexpected error has occurred.\n h_error_login4002 = \"h_error_login4002\", //Login failed. Incorrect username or password.\n h_error_login4003 = \"h_error_login4003\", //This login was locked and cannot currently be used for video chats. For further information please contact support team.\n h_error_login4006 = \"h_error_login4006\", //Login failed. Incorrect username or password.\n h_error_login4007 = \"h_error_login4007\", //duplicate session found, already logged in\n h_error_login4008 = \"h_error_login4008\", //force logout duplicate session failed\n h_error_video_send_failed = \"h_error_video_send_failed\", //The videoconnection was lost.\n h_instant_start = \"h_instant_start\", //A user is watching your Live Preview.\n h_instant_stop = \"h_instant_stop\", //A user is not watching your Live Preview anymore.\n h_media_audio_error = \"h_media_audio_error\", //Audio message could not be delivered\n h_media_audio_informuploaded = \"h_media_audio_informuploaded\", //Audio message is being recorded ....\n h_media_audio_purchased = \"h_media_audio_purchased\", //Your audio was bought by %s for %s %s.\n h_media_bitmap_error = \"h_media_bitmap_error\", //the upload is failed\n h_media_bitmap_purchased = \"h_media_bitmap_purchased\", //Your Picture was bought by %s for %s %s.\n h_media_cam2cam_purchased = \"h_media_cam2cam_purchased\", //Your private videocall was bought by %s for %s %s.\n h_media_sold = \"h_media_sold\", //Sold!\n h_media_video_error = \"h_media_video_error\", //Video message could not be delivered\n h_media_video_informuploaded = \"h_media_video_informuploaded\", //Video message is being recorded ....\n h_media_video_purchased = \"h_media_video_purchased\", //Your video was bought by %s for %s %s.\n h_queryfsk_btn0 = \"h_queryfsk_btn0\", //Refuse\n h_queryfsk_btn1 = \"h_queryfsk_btn1\", //Accept\n h_queryfsk_button_caption = \"h_queryfsk_button_caption\", //Deactivate Soft-Chat.\n h_queryfsk_caption = \"h_queryfsk_caption\", //Soft-Chat request.\n h_queryfsk_text = \"h_queryfsk_text\", //Soft-Chat request from %s. If you accept, you are not allowed to show more than topless. Accept?\n h_queryfsk_text_kick = \"h_queryfsk_text_kick\", //All current Soft-Chats will be terminated and all users will be kicked out immediately. Are you sure you want to disable the Softchat?\n h_session_appear_offline = \"h_session_appear_offline\", //Your stream is arrived and can be made available for guests. ATTENTION! You have to deactivate \"Appear offline\" in order to be displayed as ONLINE for guests!\n h_session_audio_device_error = \"h_session_audio_device_error\", //Your microphone doesn't properly work. Please check.\n h_session_audio_device_frozen = \"h_session_audio_device_frozen\", //The software detected, that the current Micro is mute. Please check that the micro device is properly positioned, switched on, connected to the pc and -if applicable- that required software is running.\n h_session_audio_loudness_ok = \"h_session_audio_loudness_ok\", //Your sound is working correctly again. Enjoy your live chat!\n h_session_audio_no_loudness = \"h_session_audio_no_loudness\", //The microphone is not reacting. Please check your settings to make sure that it has power and is turned on.\n h_session_audio_off = \"h_session_audio_off\", //Your Microphone is OFF.\n h_session_audio_on = \"h_session_audio_on\", //Your Microphone is ON\n h_session_button_cancel = \"h_session_button_cancel\", //Cancel\n h_session_button_no = \"h_session_button_no\", //No\n h_session_button_yes = \"h_session_button_yes\", //Yes\n h_session_cpu_overload = \"h_session_cpu_overload\", //Your computer is overloaded and can´t stream a live picture! Cancel running programs that affect the performance (CPU) of your computer.\n h_session_error = \"h_session_error\", //An unexpected error has occurred.\n h_session_free_mode_off = \"h_session_free_mode_off\", //==============ATENCIÓN: FREE CHAT DESACTIVADO================\n h_session_free_mode_on = \"h_session_free_mode_on\", //==========ATENCIÓN: EL MODO FREE CHAT ESTÁ ACTIVADO==========\n h_session_fsk_mixed_profile = \"h_session_fsk_mixed_profile\", //This profile is also available for guests without age verification. You will be asked for each chat if you´d like to allow this guest to enter your chat.\n h_session_guest_offline = \"h_session_guest_offline\", //%s is currently offline and cannot accept your invitation\n h_session_image_too_small = \"h_session_image_too_small\", //The image is too small\n h_session_livepreview_off = \"h_session_livepreview_off\", //The live chat preview is OFF\n h_session_livepreview_on = \"h_session_livepreview_on\", //The live chat preview is ON\n h_session_lobby_not_available = \"h_session_lobby_not_available\", //The ticket live show is not available or \"Appear offline\" is activated!\n h_session_lobby_not_planed = \"h_session_lobby_not_planed\", //No scheduled ticket show in upcoming 30 minutes\n h_session_logout_by_you = \"h_session_logout_by_you\", //You have logged off.\n h_session_media_purchased = \"h_session_media_purchased\", //The Media was purchased\n h_session_mixed_profile_auto_off = \"h_session_mixed_profile_auto_off\", //We just disabled your participation in softchats. When you participate in softchats you have to accept softchat-requests of users.\n h_session_mixed_profile_no = \"h_session_mixed_profile_no\", //You haven't been unlocked for soft chat yet. Please contact our support.\n h_session_mixed_profile_not_available = \"h_session_mixed_profile_not_available\", //Softchat is not possible in the category 'video'.\n h_session_mixed_profile_off = \"h_session_mixed_profile_off\", //Softchat is OFF. Turn it on again, if you have ended your hardcore show (in softchat you are not allowed to show more than topless).\n h_session_mixed_profile_on = \"h_session_mixed_profile_on\", //Soft-Chat is ON. VERY IMPORTANT: You are only allowed to accept a softchat user, If you are not showing more than topless in this moment.\n h_session_mixed_profile_reminder = \"h_session_mixed_profile_reminder\", //No users in chat? Activate the Soft-Chat and become available for more users.\n h_session_msg_blocked = \"h_session_msg_blocked\", //Your message could not be sent.\n h_session_no_video_allowed = \"h_session_no_video_allowed\", //You are offline now. Your cannot send just a vido anymore. This option is extinguished.\n h_session_offline = \"h_session_offline\", //You are now OFFLINE. See you soon!\n h_session_offline_title = \"h_session_offline_title\", //Your Videochat is offline.\n h_session_old_ssw = \"h_session_old_ssw\", //ATTENTION: In a few days it won’t be possible to go online with this version of VXsoftware. Please download the newest version of VXsoftware; this update does only take a few minutes. DOWNLOAD HERE.\n h_session_online = \"h_session_online\", //You are now ONLINE, have fun!\n h_session_online_today = \"h_session_online_today\", //Your total online time today: %s\n h_session_partner_blocked = \"h_session_partner_blocked\", //Your message could not be sent. Partner does not exist.\n h_session_party_mode_off = \"h_session_party_mode_off\", //========ATENCIÓN: EL MODO PARTY CHAT ESTÁ DESACTIVADO========\n h_session_party_mode_on = \"h_session_party_mode_on\", //==========ATENCIÓN: EL MODO PARTY CHAT ESTÁ ACTIVADO==========\n h_session_preview_picture_missed = \"h_session_preview_picture_missed\", //ATTENTION: YOU DO NOT HAVE A PREVIEW PICTURE IN YOUR PROFILE. WITHOUT A PREVIEW PICTURE YOUR PROFILE WONT BE DISPLAYED\n h_session_preview_picture_upload = \"h_session_preview_picture_upload\", //Upload a preview picture.\n h_session_service0900state_turnoff = \"h_session_service0900state_turnoff\", //Your service number is deactivated\n h_session_service0900state_turnon = \"h_session_service0900state_turnon\", //Your service number is now active\n h_session_singlec2c_query_declined = \"h_session_singlec2c_query_declined\", //The invitation to private video chat was declined from %s.\n h_session_singlec2c_query_sent = \"h_session_singlec2c_query_sent\", //The invitation to private video chat has been sent to %s.\n h_session_singlec2c_query_timeout = \"h_session_singlec2c_query_timeout\", //%s did not respond to your private video chat invitation.\n h_session_stream_error = \"h_session_stream_error\", //Your stream is corrupt. Please restart your streaming tool and check the settings.\n h_session_stream_missed = \"h_session_stream_missed\", //Your stream is not arriving. Please check the settings or restart the streamtool\n h_session_stream_not_found = \"h_session_stream_not_found\", //Your stream is not found. Please check the Software.\n h_session_stream_restart = \"h_session_stream_restart\", //Your video stream will restart...\n h_session_stream_server_down = \"h_session_stream_server_down\", //The videoconnection was lost. Please start your stream again.\n h_session_stream_stop = \"h_session_stream_stop\", //The videostream was lost.\n h_session_stream_wait = \"h_session_stream_wait\", //Please wait until your videostream is accepted...\n h_session_too_many_pinned_channels = \"h_session_too_many_pinned_channels\", //You have too many pinned contacts\n h_session_toy_start = \"h_session_toy_start\", //Lovense started\n h_session_toy_stop = \"h_session_toy_stop\", //Lovense finished\n h_session_user_locked = \"h_session_user_locked\", //Your account is temporarily locked. Please try again later or call our support.\n h_session_video_device_error = \"h_session_video_device_error\", //Sorry. You have been taken offline, because your Webcam transmitted a still picture.lease check your Webcam.\n h_session_video_device_frozen = \"h_session_video_device_frozen\", //ATTENTION: Please check your Webcam, you are sending a still picture.\n h_single_error = \"h_single_error\", //The Private chat could not be initiated due to an unexpected error\n h_single_init_failed = \"h_single_init_failed\", //The invitation for a Private chat could not be delivered.\n h_single_init_ok = \"h_single_init_ok\", //An invitation has been sent. Waiting for answer.\n h_single_not_available = \"h_single_not_available\", //Private chat are not available.\n h_single_query = \"h_single_query\", //%s invites you to a Private chat. Accept?\n h_single_rejected = \"h_single_rejected\", //Your guest actively denied your Private chat invitation\n h_single_request_90s = \"h_single_request_90s\", //Private chat can only be started after a minimum of 90 seconds. This is a security feature to prevent abuse.\n h_single_started = \"h_single_started\", //Private chat started.\n h_single_timeout = \"h_single_timeout\", //Your guest did not decide on the Request for a certain time, so the request was cancelled automatically\n h_test_0 = \"h_test_0\", //Test successful! Click <OK> to go online. Now you can start chatting.\n h_test_100 = \"h_test_100\", //An unknown error occured, please try later again. You can use the \"feedback\" button to contact our support.\n h_test_101 = \"h_test_101\", //Your webcam doesn´t broadcast any video. You only broadcast video to a guest if you can see your preview.\n h_test_102 = \"h_test_102\", //Your camera is broadcasting a freeze image right now, please check your webcam settings!\n h_test_103 = \"h_test_103\", //An error occured while using your microphone, please check it.\n h_test_104 = \"h_test_104\", //An error occured while using your microphone, please check it. Is it muted?\n h_test_105 = \"h_test_105\", //The connection to server failed.1. Please check your internet connection (are you online?) 2. Please check your firewall adjustment: Is VX-Software allowed to send data to the internet? Please ask your firewall provider regarding the settings you have to make to allow programs sending data to the internet.\n h_test_106 = \"h_test_106\", //encoder error. try later.\n h_test_107 = \"h_test_107\", //The connection to the video server has been interrupted. Please check your internet connection.\n h_test_109 = \"h_test_109\", //Your computer is overloaded.\n h_test_110 = \"h_test_110\", //Your camera resolution is too high. The maximum resolution for your bandwidth is %s. Please go back and set a smaller resolution.\n h_test_200 = \"h_test_200\", //This test is outdated. Please repeat it.\n h_test_201 = \"h_test_201\", //Your internet connection is too slow to broadcast sound and guests will receive just a defictive sound. Please click <back> and turn off the microphone.\n h_test_202 = \"h_test_202\", //Your internet connection is too slow for broadcasting video with a high resolution. Click <back> and choose the format \"320x240\".\n h_test_203 = \"h_test_203\", //Please check your camera settings and your internet connection because you are not broadcasting any video. Tip: If you are using a firewall, please allow VX-Software to broadcast the video to the internet.\n h_test_204 = \"h_test_204\", //Your CPU is too slow to encode video with a high resolution. Click <back> and choose the format max 848x360.\n h_test_205 = \"h_test_205\", //Bad aspect ratio. Please set another 16:9 or 4:3 Format(±10%).\n h_test_206 = \"h_test_206\", //Your Videoformat is too small.\n h_test_207 = \"h_test_207\", //The FPS is too small. Please set minimum 25 FPS.\n h_test_50 = \"h_test_50\", //Test successful, click <OK> to go online. Now you can start chatting. Attention: your computer is overloaded!\n h_ticket_show_cancelled = \"h_ticket_show_cancelled\", //Your show has been canceled, since no ticket was sold up to 10 minutes before showstart.\n h_ticket_show_query_caption = \"h_ticket_show_query_caption\", //Ticket show\n h_ticket_show_query_overtime_text = \"h_ticket_show_query_overtime_text\", //Tip: The time you defined for your ticket show has expired. Do you want to stop the show now?\n h_ticket_show_query_text = \"h_ticket_show_query_text\", //Your scheduled ticket show starts in %s mins, do you want to swith to showmode now?\n h_ticket_show_reminder_text = \"h_ticket_show_reminder_text\", //Your ticket show starts in %s minits.\n h_ticket_show_reminder_text_in_delay = \"h_ticket_show_reminder_text_in_delay\", //Your ticket show started %s minutes ago. Please come online, the guests are waiting for you!\n h_ticket_show_reminder_title = \"h_ticket_show_reminder_title\", //Ticket Show Remeinder\n h_ticket_show_start = \"h_ticket_show_start\", //Ticket Show start now!\n h_video_cancel = \"h_video_cancel\", //client lost video, chat continues as text-chat only\n h_video_delayed = \"h_video_delayed\", //Hint: client is preparing for videochat and currently downloading a component for high quality video chat.\n h_video_reconnect = \"h_video_reconnect\", //client lost video, trying to reconnect.\n h_chat_mobilevideocall_missed = \"h_chat_mobilevideocall_missed\",\n h_chat_mobilevideocall_started = \"h_chat_mobilevideocall_started\",\n h_chat_mobilevideocall_ended = \"h_chat_mobilevideocall_ended\",\n h_chat_mobilevideocall_started_price = \"h_chat_mobilevideocall_started_price\",\n h_chat_mobilevideocall_init = \"h_chat_mobilevideocall_init\",\n h_chat_clip_bought = \"h_chat_clip_bought\",\n}\n/*\nSELECT varName, ' = ', CONCAT('\"',varName, '\", //', replace(replace(translation, \"\\r\", \" \"), \"\\n\", \"\")) descr from (\nSELECT\n ll.l_name_short \"language\",\n lower(CASE IFNULL(v.v_array_index,'')\n WHEN '' THEN CONCAT(v.v_name)\n ELSE CONCAT(v.v_name, '_', v.v_array_index)\n END) \"varName\",\n t.t_text \"translation\"\n FROM LangMan_categories c\n JOIN LangMan_var_names v ON c.c_id = v.c_id AND v.p_id = '1'\n LEFT JOIN LangMan_translation t ON t.v_id = v.v_id and t.t_history_flag = 0\n LEFT JOIN LangMan_languages ll ON ll.l_id = t.t_language\n WHERE c.c_id IN (103, 128) AND ll.l_name_short IN ('EN')\n\n ORDER BY 2,3\n ) x where varName not like 'foo%'\norder BY 1\n */\n","import { ChatState } from \"./chatstate\";\nimport { SessionState } from \"./sessionstate\";\nimport { ACTION } from \"./command/action\";\nimport { ICOMMAND } from \"./command/icommand\";\nimport { JSONString } from \"../@types\";\n\nexport enum EnumStreamOrientation {\n HORIZONTAL = \"horizontal\",\n VERTICAL = \"vertical\",\n}\n\nexport enum EnumStreamingPlatform {\n ANDROID = \"android\",\n IOS = \"ios\",\n}\n\nexport enum EnumCameraType {\n FRONT = \"front\",\n BACK = \"back\",\n}\n\nexport type ProxyStreamInfo2Type = {\n orientation: EnumStreamOrientation;\n angle?: number;\n platform?: EnumStreamingPlatform;\n cameraType?: EnumCameraType;\n};\n\nexport type proxyStreamInfo = {\n proxyStreamInfo?: EnumStreamOrientation | string;\n proxyStreamInfo2?: JSONString<ProxyStreamInfo2Type>;\n};\n\nexport type proxyStateInfo = {\n proxyStateInfo?: string;\n channelId?: string;\n chatID?: string;\n};\n\nexport const IS_TYPING_NOTIFICATION_INTERVAL = 5 * 1000;\nexport const IS_TYPING_WAIT_INTERVAL = IS_TYPING_NOTIFICATION_INTERVAL + 1000;\n/**\n * Update command\n */\nexport class CMDC_UPDATE implements ICOMMAND {\n public action: ACTION = ACTION.CMDC_UPDATE;\n public params: ChatState | SessionState | proxyStreamInfo | proxyStateInfo;\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1994__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4268);\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__1994__","VERSION","EnumBooleanDigitized","EnumBooleanStringifiedExtended","EnumBooleanStringified","EnumChannelFlags","EnumCurrency","EnumPlayerFormat","EnumQueryBackendSubAction","EnumStreamStatusType","EnumInitDataFormat","nothing","useWS","host","wssport","wsspath","https","agent","cmdcontrol","CmdClientAgent","WEB","version","logger","undefined","webtoken","clientID","jsonp","firstConnectionRetryInterval","connectionRetryInterval","initdata","LIVE","toString","language","commandHandler","ConnectionConfig","settings","_isReConnectionPaused","_version","_closing","_counter","_reConnectAttemptsCount","_initProcessed","_noop","active","lastId","lastTime","_queue","_sessionID","_clientID","_logPrefix","_instanceId","Math","ceil","random","length","_settings","setLogger","log","_onopen","bind","_onmessage","_onclose","_onerror","connect","window","onunload","close","_jumpTable","CMDP_INIT","_processCmpdInit","CMDP_SINIT","CMDP_CINIT","_processCmdpCInit","CMDP_SLOGIN","_processCmdpLogin","CMDP_LOGIN","CMDP_NOOP","_processCmdpNoop","CMDP_CLOGOUT","_processCmdpCLogout","CMDC_DSRELOAD","_processCmdcDsReload","CMDC_UPDATE","_processCmdcUpdate","CMDC_SLOGOUT","_processLogout","CMDP_LOGOUT","_timeoutByAction","entry","_commandTimeout","command","action","_fetchJsonp","urlBase","callback","url","key","params","Object","prototype","hasOwnProperty","call","encodeURIComponent","replace","callbackFn","Date","now","jsonpScript","document","createElement","parent","querySelectorAll","cleanup","timeoutId","clearTimeout","remove","response","format","assign","CmdConnection","_parsePlainResponse","src","includes","onerror","e","_getErrorResponse","ResultCode","NETWORK_ERROR","error","append","setTimeout","TIMEOUT","responseStr","strings","ACTION","CMDP_UNDEFINED","result","RESULT","commands","values","plusPattern","commandPattern","valuePattern","split","line","exec","cmdStr","lastIndex","value","decode","decodeURIComponent","slice","code","Number","parseInt","reason","push","_servletUrl","_platformUrl","_openSocket","initData","_send","send","Error","_socket","isNoopCommand","isChatCommand","_getDefaultParams","_processReply","queued","_dequeue","socket","WebSocket","warn","reconnect","onopen","onmessage","onclose","event","readyState","OPEN","_sendNoop","onOpen","data","JSON","parse","onError","isFatal","reConnectionTimeout","_getNextConnectionRetryTimeout","_dsreload","_uniq","_iid","strip","EnumFormatValues","deviceId","sessionID","_hasClientId","i","l","splice","emit","_retry","_processCommand","forEach","_sendEntry","str","stringify","attempt","_markAllQueueEntriesAsQueued","_reConnectionTimeoutId","pause","isResumable","CLOSED","CLOSING","resume","_hasSessionId","func","_response","OK","currentTime","floor","SESSION_NOT_FOUND","PlatformUrl","wsshost","Boolean","LogCollector","CmdControlSession","SupportedLanguage","_connection","LoginWithUsernamePassword","login","password","msn","LoginWithSession","foreignSID","LoginWithWebtoken","sendCommand","logout","exitCode","isOpened","message","_logs","_logger","clear","exportToStr","level","entries","out","len","max","levelStr","ERROR","WARN","d","time","getHours","getMinutes","getSeconds","getMilliseconds","_push","LOG","method","p","CMDC_CONTACTINFO","CMDP_SETCONTACTINFO","CMDP_SETCONTACTINFO_RESPONSE","CMDP_GETCONTACTINFO","CMDP_GETCONTACTINFO_RESPONSE","CMDP_SGETCONTACTINFO","CMDP_SGETCONTACTINFO_RESPONSE","CMDC_USERINFO","CMDP_SETUSERINFO","CMDP_SETUSERINFO_RESPONSE","CMDP_GETUSERINFO","CMDP_GETUSERINFO_RESPONSE","CMDP_QUERYBACKEND","CMDP_QUERYBACKEND_RESPONSE","CMDC_BACKENDPAYLOAD","CMDP_BACKENDPAYLOAD","ChannelType","CMDC_CHANNEL","CMDP_NEWCHANNEL","CMDP_NEWCHANNEL_RESPONSE","CMDP_GETCHANNEL","CMDP_GETCHANNEL_RESPONSE","CMDP_SGETCHANNEL","EnumProductId","EnumChannelFilterValues","EnumSortOrder","CMDP_SGETCHANNEL_RESPONSE","CMDP_GETCHANNELS","CMDP_GETCHANNELS_RESPONSE","CMDP_SGETCHANNELS","CMDP_SGETCHANNELS_RESPONSE","CMDP_GETHISTORY","EnumLimitType","CMDP_GETHISTORY_RESPONSE","CMDP_SGETMESSAGEHISTORY","CMDP_SGETMESSAGEHISTORY_RESPONSE","CMDP_SGETCHANNELMESSAGE","CMDP_SGETCHANNELMESSAGE_RESPONSE","CMDP_CHANNELSEEN","CMDP_SCHANNELSEEN","CMDP_CHANNELSEEN_RESPONSE","EnumUpdateChannelPropertyName","CMDP_SCHANNELSEEN_RESPONSE","updateChannelParamsType","CMDP_UPDATECHANNEL","CMDP_UPDATECHANNEL_RESPONSE","CMDC_CHANNELSUMMARY","CMDC_CHANNELSSUMMARY","CMDP_CHANNELSSUMMARY","CMDP_CHANNELSSUMMARY_RESPONSE","EnumBadge","CMDC_CHANNELINFO","CMDP_GETCHANNELINFO","CMDP_GETCHANNELINFO_RESPONSE","CMDP_SETCHANNELINFO","CMDP_SETCHANNELINFO_RESPONSE","EnumClientStatusType","CMDP_CSTATUS","CMDP_CSTATUS_RESPONSE","CMDP_CQUERY_CHARGE","CMDP_CQUERY_CHARGE_RESPONSE","CMDP_CSTARTVIDEOPULL","CMDP_CSTARTVIDEOPULL_RESPONSE","CMDC_CSTARTVIDEOPULL","CMDC_CSTOPVIDEOPULL","CMDP_CSTARTAUDIOPULL","CMDP_CSTARTAUDIOPULL_RESPONSE","CMDC_CSTARTAUDIOPULL","CMDC_CSTOPAUDIOPULL","CMDP_CSTARTPREVIEW","CMDP_CSTARTPREVIEW_RESPONSE","CMDC_CSTOPPREVIEW","CMDP_CSTARTVIDEOPUSH","CMDP_CSTARTVIDEOPUSH_RESPONSE","CMDP_CSTOPVIDEOPUSH","CMDP_CSTOPVIDEOPUSH_RESPONSE","CMDC_CSTOPTEXT","CMDP_CSTARTTEXT","CMDP_CSTARTTEXT_RESPONSE","CMDC_PUBLICCHAT","CMDP_CTIP","CMDP_CTIP_RESPONSE","CMDP_CCHARGE","CMDP_CCHARGE_RESPONSE","CMDC_CLIP","CMDP_CGETCLIPS","CMDP_CGETCLIPS_RESPONSE","CMDP_CBUYCLIP","CMDP_CBUYCLIP_RESPONSE","CMDC_CONTACTNOTE","CMDP_SETCONTACTNOTE","CMDP_SETCONTACTNOTE_RESPONSE","CMDP_GETCONTACTNOTE","CMDP_GETCONTACTNOTE_RESPONSE","CMDP_SSETCONTACTNOTE","CMDP_SSETCONTACTNOTE_RESPONSE","CMDP_SGETCONTACTNOTE","CMDP_SGETCONTACTNOTE_RESPONSE","ExitCode","EnumFeedbackKey","CMDC_FEEDBACK","CMDP_INIT_RESPONSE","CMDP_SINIT_RESPONSE","CMDP_CINIT_RESPONSE","CMDC_GROUP","CMDC_CHANNELGROUP","CMDP_SGETGROUPS","CMDP_SGETGROUPS_RESPONSE","CMDP_SADDGROUP","CMDP_SADDGROUP_RESPONSE","CMDP_SUPDATEGROUP","CMDP_SUPDATEGROUP_RESPONSE","CMDP_SGETGROUPCHANNELS","CMDP_SGETGROUPCHANNELS_RESPONSE","CMDP_SGETCHANNELGROUPS","CMDP_SGETCHANNELGROUPS_RESPONSE","CMDP_SADDCHANNELTOGROUP","CMDP_SADDCHANNELTOGROUP_RESPONSE","CMDP_SDELCHANNELFROMGROUP","CMDP_SDELCHANNELFROMGROUP_RESPONSE","CMDP_SDEVICESTATUS","CMDP_SDEVICESTATUS_RESPONSE","EnumPowerEstimation","CMDP_STARTSEND","CMDP_STARTSEND_RESPONSE","CMDP_STOPSEND","CMDP_STOPSEND_RESPONSE","CMDP_TRACERT_REPLY","CMDP_TRACERT_REPLY_RESPONSE","CMDP_FSK16","CMDP_START_STREAM_PREVIEW","CMDP_START_STREAM_PREVIEW_RESPONSE","CMDP_STOP_STREAM_PREVIEW","CMDP_STOP_STREAM_PREVIEW_RESPONSE","CMDP_STARTBANDWIDTHTEST","CMDP_STARTBANDWIDTHTEST_RESPONSE","CMDP_STOPBANDWIDTHTEST","CMDP_STOPBANDWIDTHTEST_RESPONSE","CMDP_STARTLOOPBACK9","CMDP_STARTLOOPBACK9_RESPONSE","CMDP_STOPLOOPBACK9","CMDP_STOPLOOPBACK9_RESPONSE","CMDP_SQUERY_FORMAT","QueryUserButtons","QueryUserKeyEnum","CMDP_SQUERY_FORMAT_RESPONSE","CMDC_QUERYUSER","CMDC_CQUERYUSER","CMDP_QUERYUSER","CMDP_QUERYUSER_RESPONSE","CMDP_CQUERYUSER","CMDP_CQUERYUSER_RESPONSE","CMDC_QUERYANSWERED","CMDP_SGETSTREAMPARAMS","CMDP_SGETSTREAMPARAMS_RESPONSE","CMDC_CSTARTSTREAMPUSH","CMDP_CQUERY_SINGLE","CMDP_CQUERY_SINGLE_RESPONSE","EnumIntentionString","ChatFlags","SChatInfo","admin","FALSE","canBan","canDiscount","isPublicText","isLobby","voyeur2single","CMDC_CINIT","EndChatType","CMDC_UPDATE_CHAT","CMDC_CEXIT","CMDP_SGETCHATS","CMDP_SGETCHATS_RESPONSE","CMDP_SGETCHATHISTORY","CMDP_SGETCHATHISTORY_RESPONSE","CMDP_SQUERY_DISCOUNT","CMDP_SQUERY_DISCOUNT_RESPONSE","CMDP_SET_DISCOUNT","CMDP_SET_DISCOUNT_RESPONSE","CMDP_KICK","CMDP_KICK_RESPONSE","CMDP_SGETCHATSSUMMARY","CMDP_SGETCHATSSUMMARY_RESPONSE","CMDP_GETONLINESUMMARY","CMDP_GETONLINESUMMARY_RESPONSE","CMDC_LIVESESSION","CMDC_LIVECHAT","CMDP_GETLIVEHISTORY","CMDP_GETLIVEHISTORY_RESPONSE","CMDP_LOGIN_RESPONSE","CMDP_SLOGIN_RESPONSE","MSettingValueTypeEnum","MSettingNameEnum","MSetting","MSettingFloat","RequestStateEnum","MSettingBool","MSettingFeatureRequest","LanguageText","MSettingMultiLangString","MSettings","CMDP_SGETMSETTINGS","CMDP_SGETMSETTINGS_RESPONSE","CMDP_SSETMSETTING","CMDP_SSETMSETTING_RESPONSE","CMDC_MSETTINGS","CMDP_SSETMSETTINGS","CMDP_SSETMSETTINGS_RESPONSE","EnumProductLinks","EnumStreamQuality","CMDC_STREAMSTATE","EnumService0900Operation","EnumService0900Status","EnumService0900State","CMDP_SUPDATE","CMDP_SUPDATE_RESPONSE","CMDP_SSTARTTESTVIDEOCHAT","CMDP_SSTARTTESTVIDEOCHAT_RESPONSE","EnumTicketShowStatusType","CMDC_CTICKETSHOW","CMDP_SGETTICKETSHOWS","CMDP_SGETTICKETSHOWS_RESPONSE","CMDP_SUPSERTTICKETSHOW","CMDP_SUPSERTTICKETSHOW_RESPONSE","CMDP_SDELETETICKETSHOW","CMDP_SDELETETICKETSHOW_RESPONSE","CMDP_SSTARTTICKETSHOW","CMDP_SSTARTTICKETSHOW_RESPONSE","CMDP_SSTOPTICKETSHOW","CMDP_SSTOPTICKETSHOW_RESPONSE","CMDC_SEDCARDPICTURE","CMDP_SGETSEDCARDPICTURES","CMDP_SGETSEDCARDPICTURES_RESPONSE","EnumPushNotificationFilter","CMDP_SETSETTINGS","CMDP_GETSETTINGS","CMDP_GETSETTINGS_RESPONSE","CMDP_SETSETTINGS_RESPONSE","CMDP_OPEN_LOBBY","CMDP_OPEN_LOBBY_RESPONSE","CMDP_CLOSE_LOBBY","CMDP_CLOSE_LOBBY_RESPONSE","CMDP_LOGOUT_RESPONSE","CMDP_SLOGOUT","CMDP_SLOGOUT_RESPONSE","CMDP_CLOGOUT_RESPONSE","CMDP_SMEDIAGETPRICES","CMDP_SGETPRICESMEDIA_RESPONSE","CMDP_SMEDIAOFFERCREATE","CMDP_SMEDIAOFFERCREATE_RESPONSE","CMDP_SINFORMMEDIAPURCHASED","CMDP_SINFORMMEDIAPURCHASED_RESPONSE","UploadedMediaDirection","ChannelMediaLinkState","CMDC_CMEDIA","CMDP_SCHECKUPLOADEDMEDIA","CMDP_SCHECKUPLOADEDMEDIA_RESPONSE","CMDP_SGETUPLOADEDMEDIA","CMDP_SGETUPLOADEDMEDIA_RESPONSE","CMDP_SGETUPLOADEDMEDIA2","CMDP_SGETUPLOADEDMEDIA2_RESPONSE","CMDC_CHANNELMEDIASUMMARY","CMDP_SGETCHANNELDMEDIASUMMARY","CMDP_SGETCHANNELDMEDIASUMMARY_RESPONSE","CMDP_SGETMEDIAHISTORY","CMDP_SGETMEDIAHISTORY_RESPONSE","CMDP_SGETMEDIAHISTORYSUMMARY","CMDP_SGETMEDIAHISTORYSUMMARY_RESPONSE","CMDP_SOPENMEDIAOFFER","CMDP_SOPENMEDIAOFFER_RESPONSE","CMDP_SCLOSEMEDIAOFFER","CMDP_SCLOSEMEDIAOFFER_RESPONSE","CMDP_SMEDIAPURCHASE","CMDP_SMEDIAPURCHASE_RESPONSE","CMDC_MEDIAPURCHASED","CMDC_CMSG","UploadStep","CMDP_SUPLOADMEDIA","CMDP_SUPLOADMEDIA_RESPONSE","EnumMessageStyle","EnumMediaState","EnumMediaType","EnumMessageDirection","EnumMessageType","EnumMessageFlagValue","MessageFlags","EnumTicketType","CMDP_MSG","CMDP_MSG_RESPONSE","CMDP_CMSG","CMDP_CMSG_RESPONSE","CMDP_MSGDELETE","CMDP_MSGDELETE_RESPONSE","CMDP_SMSGREACTION","CMDP_SMSGREACTION_RESPONSE","CMDP_SMSGESTIMATE","CMDP_SMSGESTIMATE_RESPONSE","CMDP_DEEPL","CMDP_DEEPL_RESPONSE","CMDP_SETEXPOTOKEN","CMDP_SETEXPOTOKEN_RESPONSE","EnumMobileVideoCallState","EnumMobileTokenType","CMDP_SETMOBILETOKEN","CMDP_SETMOBILETOKEN_RESPONSE","CMDP_STARTMOBILEVIDEOCALL","CMDP_STARTMOBILEVIDEOCALL_RESPONSE","CMDC_STARTMOBILEVIDEOCALL","CMDP_UPDATEMOBILEVIDEOCALL","CMDP_UPDATEMOBILEVIDEOCALL_RESPONSE","CMDC_UPDATEMOBILEVIDEOCALL","CMDP_LOGOUTOTHERMOBILE","CMDP_LOGOUTOTHERMOBILE_RESPONSE","CMDC_MVCSCHEDULE","CMDP_SGETMVCSCHEDULE","CMDP_SGETMVCSCHEDULE_RESPONSE","CMDP_SUPSERTMVCSCHEDULE","CMDP_SUPSERTMVCSCHEDULE_RESPONSE","CMDP_SDELETEMVCSCHEDULE","CMDP_SDELETEMVCSCHEDULE_RESPONSE","CMDP_SUPSERTMVCSCHEDULES","CMDP_SUPSERTMVCSCHEDULES_RESPONSE","CMDP_SIGNUP","CMDP_SIGNUP_RESPONSE","CMDP_RESETPASSWORD","CMDP_RESETPASSWORD_RESPONSE","CMDP_SDELETE_USER","CMDP_SDELETE_USER_RESPONSE","CMDC_TPLCATEGORY","CMDP_SGETTPLCATEGORIES","CMDP_SGETTPLCATEGORIES_RESPONSE","CMDP_SUPSERTTPLCATEGORY","CMDP_SUPSERTTPLCATEGORY_RESPONSE","CMDP_SDELETETPLCATEGORY","CMDP_SDELETETPLCATEGORY_RESPONSE","CMDC_MSGTEMPLATE","CMDP_SGETMSGTEMPLATES","CMDP_SGETMSGTEMPLATES_RESPONSE","CMDP_SUPSERTMSGTEMPLATE","CMDP_SUPSERTMSGTEMPLATE_RESPONSE","CMDP_SDELETEMSGTEMPLATE","CMDP_SDELETEMSGTEMPLATE_RESPONSE","CMDP_NOOP_RESPONSE","CMDC_ONLINESTATE","CMDP_GETONLINESTATE","CMDP_GETONLINESTATE_RESPONSE","CMDP_GETONLINESTATES","CMDP_GETONLINESTATES_RESPONSE","InfoWizard","SessionFlag","EnumFsk","EnumSetTp","EnumPlayerEventType","CMDP_SSTATUS","CMDP_SSTATUS_RESPONSE","CMDC_SSTATUS","SystemMessageKey","_SystemMessageKey","EnumCameraType","EnumStreamingPlatform","EnumStreamOrientation","IS_TYPING_NOTIFICATION_INTERVAL","IS_TYPING_WAIT_INTERVAL","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}