{"version":3,"sources":["app/generated/runtime.ts","app/generated/models/Pair.ts","app/generated/models/Asset.ts","app/generated/models/AssetMeta.ts","app/generated/models/Attachment.ts","app/generated/models/Call.ts","app/generated/models/Conversation.ts","app/generated/models/IncomingMessage.ts","app/generated/models/Member.ts","app/generated/models/Mention.ts","app/generated/models/NewService.ts","app/generated/models/NewUser.ts","app/generated/models/OutgoingMessage.ts","app/generated/models/Poll.ts","app/generated/models/PostMessageResult.ts","app/generated/models/RegistrationSuccessful.ts","app/generated/models/Service.ts","app/generated/models/ServiceInformation.ts","app/generated/models/SignIn.ts","app/generated/models/Text.ts","app/generated/models/UpdateService.ts","app/generated/models/User.ts","app/generated/apis/DefaultApi.ts","app/hooks/UseApi.ts","app/hooks/UseRouter.ts","app/hooks/UseUser.ts","app/hooks/UseLocalStorage.ts","app/hooks/UseAuth.tsx","app/hooks/UseInput.tsx","app/pages/login/LoginPage.tsx","app/modules/ComponentOrPending.tsx","app/pages/home/components/ServiceAccess.tsx","app/pages/home/components/ServiceInfo.tsx","app/pages/home/components/Service.tsx","app/pages/home/components/Header.tsx","app/pages/home/components/ServiceCreation.tsx","app/pages/home/HomePage.tsx","app/modules/PrivateRoute.tsx","app/pages/register/components/RegistrationSuccess.tsx","app/pages/register/components/RegistrationForm.tsx","app/pages/register/RegistrationPage.tsx","app/modules/Routing.tsx","app/App.tsx","reportWebVitals.ts","index.tsx"],"names":["BASE_PATH","replace","BaseAPI","_this","configuration","arguments","length","undefined","Configuration","_classCallCheck","middleware","fetchApi","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","init","fetchParams","_iterator","_step","response","_iterator2","_step2","_middleware","wrap","_context","prev","next","_createForOfIteratorHelper","s","n","done","value","pre","_objectSpread","fetch","t0","sent","t1","e","f","finish","post","clone","t2","t3","abrupt","stop","_x","_x2","apply","this","_createClass","key","_next$middleware","concat","_len","preMiddlewares","Array","_key","middlewares","map","withMiddleware","_toConsumableArray","_len2","postMiddlewares","_key2","_request","_callee2","context","_this$createFetchPara","_context2","createFetchParams","status","_x3","basePath","path","query","Object","keys","queryParamsStringify","body","FormData","URLSearchParams","Blob","JSON","stringify","headers","assign","method","credentials","constructor","slice","RequiredError","_Error","_inherits","_super","_createSuper","field","msg","_this2","call","name","_wrapNativeSuper","Error","get","window","bind","querystring","username","password","apiKey","accessToken","exists","json","params","prefix","fullKey","multiValue","singleValue","encodeURIComponent","String","join","Date","toISOString","filter","part","PairTypeEnum","JSONApiResponse","raw","transformer","jsonValue","_value","_callee3","_context3","VoidApiResponse","_value2","_callee4","_context4","AssetFromJSON","ignoreDiscriminator","AssetFromJSONTyped","AssetMetaToJSON","assetId","assetToken","sha256","otrKey","AttachmentToJSON","data","mimeType","size","duration","levels","height","width","meta","CallToJSON","version","type","resp","sessid","props","ConversationFromJSON","MemberFromJSON","ConversationFromJSONTyped","IncomingMessageToJSON","TextToJSON","text","PollToJSON","poll","attachment","ServiceFromJSON","MemberFromJSONTyped","MentionToJSON","userId","offset","NewServiceToJSON","avatar","summary","NewUserToJSON","email","OutgoingMessageToJSON","botId","handle","locale","token","messageId","refMessageId","conversationId","conversation","emoji","id","buttons","PostMessageResultFromJSON","PostMessageResultFromJSONTyped","RegistrationSuccessfulFromJSON","RegistrationSuccessfulFromJSONTyped","ServiceFromJSONTyped","ServiceInformationFromJSON","ServiceInformationFromJSONTyped","SignInToJSON","mentions","UpdateServiceToJSON","UserFromJSON","UserFromJSONTyped","DefaultApi","_runtime$BaseAPI","_createNewServiceRaw","requestParameters","queryParameters","headerParameters","request","runtime","_createNewService","createNewServiceRaw","_deleteServiceRaw","_deleteService","deleteServiceRaw","_getRaw","_callee5","_context5","appKey","_get","_callee6","_context6","getRaw","_x4","_get1Raw","_callee7","_context7","_get2","_callee8","_context8","get1Raw","_get2Raw","_callee9","_context9","_x5","_get3","_callee10","_context10","get2Raw","_x6","_getServiceRaw","_callee11","_context11","_getService","_callee12","_context12","getServiceRaw","_loginBotProviderRaw","_callee13","_context13","_x7","_loginBotProvider","_callee14","_context14","loginBotProviderRaw","_x8","_postRaw","_callee15","_context15","_x9","_post","_callee16","_context16","postRaw","_x10","_post1Raw","_callee17","_context17","_x11","_post2","_callee18","_context18","post1Raw","_x12","_post2Raw","_callee19","_context19","_x13","_post3","_callee20","_context20","post2Raw","_x14","_registerBotProviderRaw","_callee21","_context21","_x15","_registerBotProvider","_callee22","_context22","registerBotProviderRaw","_x16","_updateServiceRaw","_callee23","_context23","_x17","_updateService","_callee24","_context24","updateServiceRaw","_x18","romanBasePath","_process$env$REACT_AP","process","REACT_APP_BASE_PATH","origin","location","pathname","api","pathWithSlash","endsWith","getApiPath","_pre","localStorage","clear","useApi","useRouter","useParams","useLocation","history","useHistory","match","useRouteMatch","useMemo","push","queryString","parse","search","useUser","_useState","useState","item","getItem","error","console","log","_useState2","_slicedToArray","storedValue","setStoredValue","setItem","removeItem","useLocalStorage","authContext","createContext","ProvideAuth","children","auth","_useUser","_useUser2","user","storeUser","deleteUser","login","_ref2","loginBotProvider","logout","_ref3","useProvideAuth","_jsx","Provider","useAuthContext","useContext","useRequireAuth","redirectUrl","routes","router","useEffect","state","from","useInput","initialValue","onChangeCallback","setValue","reset","onChange","event","target","LoginPage","_ref$redirectAfterLog","redirectAfterLogin","home","_useAuthContext","_router$location$stat","setStatus","handleTyping","_useInput","bindEmail","_useInput2","bindPassword","classes","useStyles","className","page","style","visibility","_jsxs","form","noValidate","autoComplete","TextField","required","label","disabled","Button","variant","fullWidth","onClick","preventDefault","then","success","catch","CircularProgress","infoBox","Link","href","register","makeStyles","display","flexFlow","alignContent","justifyContent","margin","color","ComponentOrPending","ServiceAccessInfo","accessInfo","Paper","elevation","paper","info","heading","multiline","serviceCode","InputProps","readOnly","helperText","Divider","serviceAuthentication","fontWeight","ServiceInfo","webhook","setService","serviceName","resetServiceName","bindServiceName","serviceWebHook","resetWebHook","bindWebHook","dataNotChanged","statusPending","updateService","r","Service","serviceAccess","service","fontSize","Header","_useRequireAuth","styles","header","ServiceCreation","bindName","bindUrl","_useInput3","bindSummary","pendingStatus","createNewService","_Fragment","HomePage","_useState3","_useState4","getService","information","marginLeft","marginRight","marginTop","flexGrow","padding","alignSelf","maxWidth","PrivateRoute","rest","_objectWithoutProperties","_excluded","Route","render","Redirect","to","RegistrationSuccess","message","messageText","loginButton","container","RegistrationForm","setMessage","warningBox","textAlign","marginBottom","RegistrationPage","registered","setRegistered","registration","_yield$api$registerBo","registerBotProvider","profile","Routing","HashRouter","Switch","App","root","overflowX","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","React","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.290f34c3.chunk.js","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"http://localhost/api\".replace(/\\/+$/, \"\");\n\nconst isBlob = (value: any) => typeof Blob !== 'undefined' && value instanceof Blob;\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n private middleware: Middleware[];\n\n constructor(protected configuration = new Configuration()) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware(this: T, ...middlewares: Middleware[]) {\n const next = this.clone();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware(this: T, ...preMiddlewares: Array) {\n const middlewares = preMiddlewares.map((pre) => ({pre}));\n return this.withMiddleware(...middlewares);\n }\n\n withPostMiddleware(this: T, ...postMiddlewares: Array) {\n const middlewares = postMiddlewares.map((post) => ({post}));\n return this.withMiddleware(...middlewares);\n }\n\n protected async request(context: RequestOpts): Promise {\n const {url, init} = this.createFetchParams(context);\n const response = await this.fetchApi(url, init);\n if (response.status >= 200 && response.status < 300) {\n return response;\n }\n throw response;\n }\n\n private createFetchParams(context: RequestOpts) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n const body = ((typeof FormData !== \"undefined\" && context.body instanceof FormData) || context.body instanceof URLSearchParams || isBlob(context.body))\n ? context.body\n : JSON.stringify(context.body);\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n const init = {\n method: context.method,\n headers: headers,\n body,\n credentials: this.configuration.credentials\n };\n return {url, init};\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = {url, init};\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response = await this.configuration.fetchApi(fetchParams.url, fetchParams.init);\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url,\n init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n}\n\nexport class RequiredError extends Error {\n name: \"RequiredError\" = \"RequiredError\";\n\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n// @ts-ignore\nexport type FetchAPI = GlobalFetch['fetch'];\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | ((name: string) => string); // parameter for apiKey security\n accessToken?: string | ((name?: string, scopes?: string[]) => string); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI {\n return this.configuration.fetchApi || window.fetch.bind(window);\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name: string, scopes?: string[]) => string) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map((key) => {\n const fullKey = prefix + (prefix.length ? `[${key}]` : key);\n const value = params[key];\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n })\n .filter(part => part.length > 0)\n .join('&');\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({...acc, [key]: fn(data[key])}),\n {}\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise;\n\n post?(context: ResponseContext): Promise;\n}\n\nexport interface ApiResponse {\n raw: Response;\n\n value(): Promise;\n}\n\nexport interface ResponseTransformer {\n (json: any): T;\n}\n\nexport class JSONApiResponse {\n constructor(public raw: Response, private transformer: ResponseTransformer = (jsonValue: any) => jsonValue) {\n }\n\n async value(): Promise {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {\n }\n\n async value(): Promise {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {\n }\n\n async value(): Promise {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {\n }\n\n async value(): Promise {\n return await this.raw.text();\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface Pair\n */\nexport interface Pair {\n /**\n *\n * @type {string}\n * @memberof Pair\n */\n type?: PairTypeEnum;\n /**\n *\n * @type {number}\n * @memberof Pair\n */\n count?: number;\n}\n\n/**\n * @export\n * @enum {string}\n */\nexport enum PairTypeEnum {\n Sent = 'SENT',\n Delivered = 'DELIVERED',\n Read = 'READ',\n Failed = 'FAILED'\n}\n\nexport function PairFromJSON(json: any): Pair {\n return PairFromJSONTyped(json, false);\n}\n\nexport function PairFromJSONTyped(json: any, ignoreDiscriminator: boolean): Pair {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'count': !exists(json, 'count') ? undefined : json['count'],\n };\n}\n\nexport function PairToJSON(value?: Pair | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'type': value.type,\n 'count': value.count,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface Asset\n */\nexport interface Asset {\n /**\n *\n * @type {string}\n * @memberof Asset\n */\n type?: string;\n /**\n *\n * @type {string}\n * @memberof Asset\n */\n key?: string;\n /**\n *\n * @type {string}\n * @memberof Asset\n */\n size?: string;\n}\n\nexport function AssetFromJSON(json: any): Asset {\n return AssetFromJSONTyped(json, false);\n}\n\nexport function AssetFromJSONTyped(json: any, ignoreDiscriminator: boolean): Asset {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'key': !exists(json, 'key') ? undefined : json['key'],\n 'size': !exists(json, 'size') ? undefined : json['size'],\n };\n}\n\nexport function AssetToJSON(value?: Asset | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'type': value.type,\n 'key': value.key,\n 'size': value.size,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface AssetMeta\n */\nexport interface AssetMeta {\n /**\n *\n * @type {string}\n * @memberof AssetMeta\n */\n assetId: string;\n /**\n *\n * @type {string}\n * @memberof AssetMeta\n */\n assetToken?: string;\n /**\n *\n * @type {string}\n * @memberof AssetMeta\n */\n sha256: string;\n /**\n *\n * @type {string}\n * @memberof AssetMeta\n */\n otrKey: string;\n}\n\nexport function AssetMetaFromJSON(json: any): AssetMeta {\n return AssetMetaFromJSONTyped(json, false);\n}\n\nexport function AssetMetaFromJSONTyped(json: any, ignoreDiscriminator: boolean): AssetMeta {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'assetId': json['assetId'],\n 'assetToken': !exists(json, 'assetToken') ? undefined : json['assetToken'],\n 'sha256': json['sha256'],\n 'otrKey': json['otrKey'],\n };\n}\n\nexport function AssetMetaToJSON(value?: AssetMeta | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'assetId': value.assetId,\n 'assetToken': value.assetToken,\n 'sha256': value.sha256,\n 'otrKey': value.otrKey,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {AssetMeta, AssetMetaFromJSON, AssetMetaToJSON,} from './';\n\n/**\n *\n * @export\n * @interface Attachment\n */\nexport interface Attachment {\n /**\n *\n * @type {string}\n * @memberof Attachment\n */\n data?: string;\n /**\n *\n * @type {string}\n * @memberof Attachment\n */\n name?: string;\n /**\n *\n * @type {string}\n * @memberof Attachment\n */\n mimeType: string;\n /**\n *\n * @type {number}\n * @memberof Attachment\n */\n size: number;\n /**\n *\n * @type {number}\n * @memberof Attachment\n */\n duration?: number;\n /**\n *\n * @type {Array}\n * @memberof Attachment\n */\n levels?: Array;\n /**\n *\n * @type {number}\n * @memberof Attachment\n */\n height?: number;\n /**\n *\n * @type {number}\n * @memberof Attachment\n */\n width?: number;\n /**\n *\n * @type {AssetMeta}\n * @memberof Attachment\n */\n meta?: AssetMeta;\n}\n\nexport function AttachmentFromJSON(json: any): Attachment {\n return AttachmentFromJSONTyped(json, false);\n}\n\nexport function AttachmentFromJSONTyped(json: any, ignoreDiscriminator: boolean): Attachment {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'data': !exists(json, 'data') ? undefined : json['data'],\n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'mimeType': json['mimeType'],\n 'size': json['size'],\n 'duration': !exists(json, 'duration') ? undefined : json['duration'],\n 'levels': !exists(json, 'levels') ? undefined : json['levels'],\n 'height': !exists(json, 'height') ? undefined : json['height'],\n 'width': !exists(json, 'width') ? undefined : json['width'],\n 'meta': !exists(json, 'meta') ? undefined : AssetMetaFromJSON(json['meta']),\n };\n}\n\nexport function AttachmentToJSON(value?: Attachment | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'data': value.data,\n 'name': value.name,\n 'mimeType': value.mimeType,\n 'size': value.size,\n 'duration': value.duration,\n 'levels': value.levels,\n 'height': value.height,\n 'width': value.width,\n 'meta': AssetMetaToJSON(value.meta),\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface Call\n */\nexport interface Call {\n /**\n *\n * @type {string}\n * @memberof Call\n */\n version?: string;\n /**\n *\n * @type {string}\n * @memberof Call\n */\n type?: string;\n /**\n *\n * @type {boolean}\n * @memberof Call\n */\n resp?: boolean;\n /**\n *\n * @type {string}\n * @memberof Call\n */\n sessid?: string;\n /**\n *\n * @type {{ [key: string]: string; }}\n * @memberof Call\n */\n props?: { [key: string]: string; };\n}\n\nexport function CallFromJSON(json: any): Call {\n return CallFromJSONTyped(json, false);\n}\n\nexport function CallFromJSONTyped(json: any, ignoreDiscriminator: boolean): Call {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'version': !exists(json, 'version') ? undefined : json['version'],\n 'type': !exists(json, 'type') ? undefined : json['type'],\n 'resp': !exists(json, 'resp') ? undefined : json['resp'],\n 'sessid': !exists(json, 'sessid') ? undefined : json['sessid'],\n 'props': !exists(json, 'props') ? undefined : json['props'],\n };\n}\n\nexport function CallToJSON(value?: Call | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'version': value.version,\n 'type': value.type,\n 'resp': value.resp,\n 'sessid': value.sessid,\n 'props': value.props,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {Member, MemberFromJSON, MemberToJSON,} from './';\n\n/**\n *\n * @export\n * @interface Conversation\n */\nexport interface Conversation {\n /**\n *\n * @type {string}\n * @memberof Conversation\n */\n id?: string;\n /**\n *\n * @type {string}\n * @memberof Conversation\n */\n name?: string;\n /**\n *\n * @type {string}\n * @memberof Conversation\n */\n creator?: string;\n /**\n *\n * @type {Array}\n * @memberof Conversation\n */\n members?: Array;\n}\n\nexport function ConversationFromJSON(json: any): Conversation {\n return ConversationFromJSONTyped(json, false);\n}\n\nexport function ConversationFromJSONTyped(json: any, ignoreDiscriminator: boolean): Conversation {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'creator': !exists(json, 'creator') ? undefined : json['creator'],\n 'members': !exists(json, 'members') ? undefined : ((json['members'] as Array).map(MemberFromJSON)),\n };\n}\n\nexport function ConversationToJSON(value?: Conversation | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'id': value.id,\n 'name': value.name,\n 'creator': value.creator,\n 'members': value.members === undefined ? undefined : ((value.members as Array).map(MemberToJSON)),\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {\n Attachment,\n AttachmentFromJSON,\n AttachmentToJSON,\n Call,\n CallFromJSON,\n CallToJSON,\n Poll,\n PollFromJSON,\n PollToJSON,\n Text,\n TextFromJSON,\n TextToJSON,\n} from './';\n\n/**\n *\n * @export\n * @interface IncomingMessage\n */\nexport interface IncomingMessage {\n /**\n *\n * @type {string}\n * @memberof IncomingMessage\n */\n type: string;\n /**\n *\n * @type {Text}\n * @memberof IncomingMessage\n */\n text?: Text;\n /**\n *\n * @type {Poll}\n * @memberof IncomingMessage\n */\n poll?: Poll;\n /**\n *\n * @type {Attachment}\n * @memberof IncomingMessage\n */\n attachment?: Attachment;\n /**\n *\n * @type {Call}\n * @memberof IncomingMessage\n */\n call?: Call;\n}\n\nexport function IncomingMessageFromJSON(json: any): IncomingMessage {\n return IncomingMessageFromJSONTyped(json, false);\n}\n\nexport function IncomingMessageFromJSONTyped(json: any, ignoreDiscriminator: boolean): IncomingMessage {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'type': json['type'],\n 'text': !exists(json, 'text') ? undefined : TextFromJSON(json['text']),\n 'poll': !exists(json, 'poll') ? undefined : PollFromJSON(json['poll']),\n 'attachment': !exists(json, 'attachment') ? undefined : AttachmentFromJSON(json['attachment']),\n 'call': !exists(json, 'call') ? undefined : CallFromJSON(json['call']),\n };\n}\n\nexport function IncomingMessageToJSON(value?: IncomingMessage | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'type': value.type,\n 'text': TextToJSON(value.text),\n 'poll': PollToJSON(value.poll),\n 'attachment': AttachmentToJSON(value.attachment),\n 'call': CallToJSON(value.call),\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {Service, ServiceFromJSON, ServiceToJSON,} from './';\n\n/**\n *\n * @export\n * @interface Member\n */\nexport interface Member {\n /**\n *\n * @type {string}\n * @memberof Member\n */\n id?: string;\n /**\n *\n * @type {number}\n * @memberof Member\n */\n status?: number;\n /**\n *\n * @type {Service}\n * @memberof Member\n */\n service?: Service;\n}\n\nexport function MemberFromJSON(json: any): Member {\n return MemberFromJSONTyped(json, false);\n}\n\nexport function MemberFromJSONTyped(json: any, ignoreDiscriminator: boolean): Member {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'status': !exists(json, 'status') ? undefined : json['status'],\n 'service': !exists(json, 'service') ? undefined : ServiceFromJSON(json['service']),\n };\n}\n\nexport function MemberToJSON(value?: Member | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'id': value.id,\n 'status': value.status,\n 'service': ServiceToJSON(value.service),\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface Mention\n */\nexport interface Mention {\n /**\n *\n * @type {string}\n * @memberof Mention\n */\n userId: string;\n /**\n *\n * @type {number}\n * @memberof Mention\n */\n offset: number;\n /**\n *\n * @type {number}\n * @memberof Mention\n */\n length: number;\n}\n\nexport function MentionFromJSON(json: any): Mention {\n return MentionFromJSONTyped(json, false);\n}\n\nexport function MentionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Mention {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'userId': json['userId'],\n 'offset': json['offset'],\n 'length': json['length'],\n };\n}\n\nexport function MentionToJSON(value?: Mention | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'userId': value.userId,\n 'offset': value.offset,\n 'length': value.length,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface NewService\n */\nexport interface NewService {\n /**\n *\n * @type {string}\n * @memberof NewService\n */\n name: string;\n /**\n *\n * @type {string}\n * @memberof NewService\n */\n url?: string;\n /**\n *\n * @type {string}\n * @memberof NewService\n */\n avatar?: string;\n /**\n *\n * @type {string}\n * @memberof NewService\n */\n summary?: string;\n}\n\nexport function NewServiceFromJSON(json: any): NewService {\n return NewServiceFromJSONTyped(json, false);\n}\n\nexport function NewServiceFromJSONTyped(json: any, ignoreDiscriminator: boolean): NewService {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'name': json['name'],\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'avatar': !exists(json, 'avatar') ? undefined : json['avatar'],\n 'summary': !exists(json, 'summary') ? undefined : json['summary'],\n };\n}\n\nexport function NewServiceToJSON(value?: NewService | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'name': value.name,\n 'url': value.url,\n 'avatar': value.avatar,\n 'summary': value.summary,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface NewUser\n */\nexport interface NewUser {\n /**\n *\n * @type {string}\n * @memberof NewUser\n */\n name: string;\n /**\n *\n * @type {string}\n * @memberof NewUser\n */\n email: string;\n /**\n *\n * @type {string}\n * @memberof NewUser\n */\n password: string;\n}\n\nexport function NewUserFromJSON(json: any): NewUser {\n return NewUserFromJSONTyped(json, false);\n}\n\nexport function NewUserFromJSONTyped(json: any, ignoreDiscriminator: boolean): NewUser {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'name': json['name'],\n 'email': json['email'],\n 'password': json['password'],\n };\n}\n\nexport function NewUserToJSON(value?: NewUser | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'name': value.name,\n 'email': value.email,\n 'password': value.password,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {\n Attachment,\n AttachmentFromJSON,\n AttachmentToJSON,\n Call,\n CallFromJSON,\n CallToJSON,\n Poll,\n PollFromJSON,\n PollToJSON,\n Text,\n TextFromJSON,\n TextToJSON,\n} from './';\n\n/**\n *\n * @export\n * @interface OutgoingMessage\n */\nexport interface OutgoingMessage {\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n botId: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n userId: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n handle?: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n locale?: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n token?: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n messageId?: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n refMessageId?: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n conversationId?: string;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n conversation?: string;\n /**\n *\n * @type {Text}\n * @memberof OutgoingMessage\n */\n text?: Text;\n /**\n *\n * @type {Attachment}\n * @memberof OutgoingMessage\n */\n attachment?: Attachment;\n /**\n *\n * @type {Poll}\n * @memberof OutgoingMessage\n */\n poll?: Poll;\n /**\n *\n * @type {Call}\n * @memberof OutgoingMessage\n */\n call?: Call;\n /**\n *\n * @type {string}\n * @memberof OutgoingMessage\n */\n emoji?: string;\n}\n\nexport function OutgoingMessageFromJSON(json: any): OutgoingMessage {\n return OutgoingMessageFromJSONTyped(json, false);\n}\n\nexport function OutgoingMessageFromJSONTyped(json: any, ignoreDiscriminator: boolean): OutgoingMessage {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'botId': json['botId'],\n 'type': json['type'],\n 'userId': json['userId'],\n 'handle': !exists(json, 'handle') ? undefined : json['handle'],\n 'locale': !exists(json, 'locale') ? undefined : json['locale'],\n 'token': !exists(json, 'token') ? undefined : json['token'],\n 'messageId': !exists(json, 'messageId') ? undefined : json['messageId'],\n 'refMessageId': !exists(json, 'refMessageId') ? undefined : json['refMessageId'],\n 'conversationId': !exists(json, 'conversationId') ? undefined : json['conversationId'],\n 'conversation': !exists(json, 'conversation') ? undefined : json['conversation'],\n 'text': !exists(json, 'text') ? undefined : TextFromJSON(json['text']),\n 'attachment': !exists(json, 'attachment') ? undefined : AttachmentFromJSON(json['attachment']),\n 'poll': !exists(json, 'poll') ? undefined : PollFromJSON(json['poll']),\n 'call': !exists(json, 'call') ? undefined : CallFromJSON(json['call']),\n 'emoji': !exists(json, 'emoji') ? undefined : json['emoji'],\n };\n}\n\nexport function OutgoingMessageToJSON(value?: OutgoingMessage | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'botId': value.botId,\n 'type': value.type,\n 'userId': value.userId,\n 'handle': value.handle,\n 'locale': value.locale,\n 'token': value.token,\n 'messageId': value.messageId,\n 'refMessageId': value.refMessageId,\n 'conversationId': value.conversationId,\n 'conversation': value.conversation,\n 'text': TextToJSON(value.text),\n 'attachment': AttachmentToJSON(value.attachment),\n 'poll': PollToJSON(value.poll),\n 'call': CallToJSON(value.call),\n 'emoji': value.emoji,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface Poll\n */\nexport interface Poll {\n /**\n *\n * @type {string}\n * @memberof Poll\n */\n id: string;\n /**\n *\n * @type {string}\n * @memberof Poll\n */\n type: string;\n /**\n *\n * @type {Array}\n * @memberof Poll\n */\n buttons?: Array;\n /**\n *\n * @type {number}\n * @memberof Poll\n */\n offset?: number;\n /**\n *\n * @type {string}\n * @memberof Poll\n */\n userId?: string;\n}\n\nexport function PollFromJSON(json: any): Poll {\n return PollFromJSONTyped(json, false);\n}\n\nexport function PollFromJSONTyped(json: any, ignoreDiscriminator: boolean): Poll {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'id': json['id'],\n 'type': json['type'],\n 'buttons': !exists(json, 'buttons') ? undefined : json['buttons'],\n 'offset': !exists(json, 'offset') ? undefined : json['offset'],\n 'userId': !exists(json, 'userId') ? undefined : json['userId'],\n };\n}\n\nexport function PollToJSON(value?: Poll | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'id': value.id,\n 'type': value.type,\n 'buttons': value.buttons,\n 'offset': value.offset,\n 'userId': value.userId,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface PostMessageResult\n */\nexport interface PostMessageResult {\n /**\n *\n * @type {string}\n * @memberof PostMessageResult\n */\n messageId?: string;\n}\n\nexport function PostMessageResultFromJSON(json: any): PostMessageResult {\n return PostMessageResultFromJSONTyped(json, false);\n}\n\nexport function PostMessageResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): PostMessageResult {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'messageId': !exists(json, 'messageId') ? undefined : json['messageId'],\n };\n}\n\nexport function PostMessageResultToJSON(value?: PostMessageResult | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'messageId': value.messageId,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface RegistrationSuccessful\n */\nexport interface RegistrationSuccessful {\n /**\n *\n * @type {string}\n * @memberof RegistrationSuccessful\n */\n message: string;\n}\n\nexport function RegistrationSuccessfulFromJSON(json: any): RegistrationSuccessful {\n return RegistrationSuccessfulFromJSONTyped(json, false);\n}\n\nexport function RegistrationSuccessfulFromJSONTyped(json: any, ignoreDiscriminator: boolean): RegistrationSuccessful {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'message': json['message'],\n };\n}\n\nexport function RegistrationSuccessfulToJSON(value?: RegistrationSuccessful | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'message': value.message,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface Service\n */\nexport interface Service {\n /**\n *\n * @type {string}\n * @memberof Service\n */\n id?: string;\n /**\n *\n * @type {string}\n * @memberof Service\n */\n provider?: string;\n}\n\nexport function ServiceFromJSON(json: any): Service {\n return ServiceFromJSONTyped(json, false);\n}\n\nexport function ServiceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Service {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'provider': !exists(json, 'provider') ? undefined : json['provider'],\n };\n}\n\nexport function ServiceToJSON(value?: Service | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'id': value.id,\n 'provider': value.provider,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface ServiceInformation\n */\nexport interface ServiceInformation {\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n email?: string;\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n company?: string;\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n service?: string;\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n serviceCode: string;\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n serviceAuthentication: string;\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n appKey: string;\n /**\n *\n * @type {string}\n * @memberof ServiceInformation\n */\n webhook?: string;\n}\n\nexport function ServiceInformationFromJSON(json: any): ServiceInformation {\n return ServiceInformationFromJSONTyped(json, false);\n}\n\nexport function ServiceInformationFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServiceInformation {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'email': !exists(json, 'email') ? undefined : json['email'],\n 'company': !exists(json, 'company') ? undefined : json['company'],\n 'service': !exists(json, 'service') ? undefined : json['service'],\n 'serviceCode': json['service_code'],\n 'serviceAuthentication': json['service_authentication'],\n 'appKey': json['app_key'],\n 'webhook': !exists(json, 'webhook') ? undefined : json['webhook'],\n };\n}\n\nexport function ServiceInformationToJSON(value?: ServiceInformation | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'email': value.email,\n 'company': value.company,\n 'service': value.service,\n 'service_code': value.serviceCode,\n 'service_authentication': value.serviceAuthentication,\n 'app_key': value.appKey,\n 'webhook': value.webhook,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface SignIn\n */\nexport interface SignIn {\n /**\n *\n * @type {string}\n * @memberof SignIn\n */\n email: string;\n /**\n *\n * @type {string}\n * @memberof SignIn\n */\n password: string;\n}\n\nexport function SignInFromJSON(json: any): SignIn {\n return SignInFromJSONTyped(json, false);\n}\n\nexport function SignInFromJSONTyped(json: any, ignoreDiscriminator: boolean): SignIn {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'email': json['email'],\n 'password': json['password'],\n };\n}\n\nexport function SignInToJSON(value?: SignIn | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'email': value.email,\n 'password': value.password,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {Mention, MentionFromJSON, MentionToJSON,} from './';\n\n/**\n *\n * @export\n * @interface Text\n */\nexport interface Text {\n /**\n *\n * @type {string}\n * @memberof Text\n */\n data: string;\n /**\n *\n * @type {Array}\n * @memberof Text\n */\n mentions?: Array;\n}\n\nexport function TextFromJSON(json: any): Text {\n return TextFromJSONTyped(json, false);\n}\n\nexport function TextFromJSONTyped(json: any, ignoreDiscriminator: boolean): Text {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'data': json['data'],\n 'mentions': !exists(json, 'mentions') ? undefined : ((json['mentions'] as Array).map(MentionFromJSON)),\n };\n}\n\nexport function TextToJSON(value?: Text | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'data': value.data,\n 'mentions': value.mentions === undefined ? undefined : ((value.mentions as Array).map(MentionToJSON)),\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\n\n/**\n *\n * @export\n * @interface UpdateService\n */\nexport interface UpdateService {\n /**\n *\n * @type {string}\n * @memberof UpdateService\n */\n name?: string;\n /**\n *\n * @type {string}\n * @memberof UpdateService\n */\n url?: string;\n /**\n *\n * @type {string}\n * @memberof UpdateService\n */\n avatar?: string;\n}\n\nexport function UpdateServiceFromJSON(json: any): UpdateService {\n return UpdateServiceFromJSONTyped(json, false);\n}\n\nexport function UpdateServiceFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateService {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'url': !exists(json, 'url') ? undefined : json['url'],\n 'avatar': !exists(json, 'avatar') ? undefined : json['avatar'],\n };\n}\n\nexport function UpdateServiceToJSON(value?: UpdateService | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'name': value.name,\n 'url': value.url,\n 'avatar': value.avatar,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {exists} from '../runtime';\nimport {Asset, AssetFromJSON, AssetToJSON, Service, ServiceFromJSON, ServiceToJSON,} from './';\n\n/**\n *\n * @export\n * @interface User\n */\nexport interface User {\n /**\n *\n * @type {string}\n * @memberof User\n */\n id?: string;\n /**\n *\n * @type {string}\n * @memberof User\n */\n name?: string;\n /**\n *\n * @type {string}\n * @memberof User\n */\n handle?: string;\n /**\n *\n * @type {Service}\n * @memberof User\n */\n service?: Service;\n /**\n *\n * @type {Array}\n * @memberof User\n */\n assets?: Array;\n /**\n *\n * @type {number}\n * @memberof User\n */\n accentId?: number;\n}\n\nexport function UserFromJSON(json: any): User {\n return UserFromJSONTyped(json, false);\n}\n\nexport function UserFromJSONTyped(json: any, ignoreDiscriminator: boolean): User {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n\n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'name': !exists(json, 'name') ? undefined : json['name'],\n 'handle': !exists(json, 'handle') ? undefined : json['handle'],\n 'service': !exists(json, 'service') ? undefined : ServiceFromJSON(json['service']),\n 'assets': !exists(json, 'assets') ? undefined : ((json['assets'] as Array).map(AssetFromJSON)),\n 'accentId': !exists(json, 'accent_id') ? undefined : json['accent_id'],\n };\n}\n\nexport function UserToJSON(value?: User | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n\n 'id': value.id,\n 'name': value.name,\n 'handle': value.handle,\n 'service': ServiceToJSON(value.service),\n 'assets': value.assets === undefined ? undefined : ((value.assets as Array).map(AssetToJSON)),\n 'accent_id': value.accentId,\n };\n}\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Roman Swagger\n * Roman - Wire Bots Proxy\n *\n * The version of the OpenAPI document: 1.15.0\n * Contact: dejan@wire.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport {\n Conversation,\n ConversationFromJSON,\n IncomingMessage,\n IncomingMessageToJSON,\n NewService,\n NewServiceToJSON,\n NewUser,\n NewUserToJSON,\n OutgoingMessage,\n OutgoingMessageToJSON,\n PostMessageResult,\n PostMessageResultFromJSON,\n RegistrationSuccessful,\n RegistrationSuccessfulFromJSON,\n ServiceInformation,\n ServiceInformationFromJSON,\n SignIn,\n SignInToJSON,\n UpdateService,\n UpdateServiceToJSON,\n User,\n UserFromJSON,\n} from '../models';\n\nexport interface CreateNewServiceRequest {\n body?: NewService;\n}\n\nexport interface GetRequest {\n appKey?: string;\n id?: string;\n}\n\nexport interface Get2Request {\n userId: string;\n}\n\nexport interface LoginBotProviderRequest {\n body?: SignIn;\n}\n\nexport interface PostRequest {\n appKey?: string;\n body?: IncomingMessage;\n}\n\nexport interface Post1Request {\n body?: IncomingMessage;\n}\n\nexport interface Post2Request {\n body?: OutgoingMessage;\n}\n\nexport interface RegisterBotProviderRequest {\n body?: NewUser;\n}\n\nexport interface UpdateServiceRequest {\n body?: UpdateService;\n}\n\n/**\n *\n */\nexport class DefaultApi extends runtime.BaseAPI {\n\n /**\n * Create new service.\n */\n async createNewServiceRaw(requestParameters: CreateNewServiceRequest): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/service`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: NewServiceToJSON(requestParameters.body),\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServiceInformationFromJSON(jsonValue));\n }\n\n /**\n * Create new service.\n */\n async createNewService(requestParameters: CreateNewServiceRequest): Promise {\n const response = await this.createNewServiceRaw(requestParameters);\n return await response.value();\n }\n\n /**\n * Delete the Service\n */\n async deleteServiceRaw(): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request({\n path: `/service`,\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n });\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Delete the Service\n */\n async deleteService(): Promise {\n await this.deleteServiceRaw();\n }\n\n /**\n * Get latest broadcast report\n */\n async getRaw(requestParameters: GetRequest): Promise> {\n const queryParameters: any = {};\n\n if (requestParameters.id !== undefined) {\n queryParameters['id'] = requestParameters.id;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (requestParameters.appKey !== undefined && requestParameters.appKey !== null) {\n headerParameters['app-key'] = String(requestParameters.appKey);\n }\n\n const response = await this.request({\n path: `/broadcast`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n });\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Get latest broadcast report\n */\n async get(requestParameters: GetRequest): Promise {\n await this.getRaw(requestParameters);\n }\n\n /**\n * Get conversation data\n */\n async get1Raw(): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request({\n path: `/conversation`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ConversationFromJSON(jsonValue));\n }\n\n /**\n * Get conversation data\n */\n async get1(): Promise {\n const response = await this.get1Raw();\n return await response.value();\n }\n\n /**\n * Get user profile\n */\n async get2Raw(requestParameters: Get2Request): Promise> {\n if (requestParameters.userId === null || requestParameters.userId === undefined) {\n throw new runtime.RequiredError('userId', 'Required parameter requestParameters.userId was null or undefined when calling get2.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request({\n path: `/users/{userId}`.replace(`{${\"userId\"}}`, encodeURIComponent(String(requestParameters.userId))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => UserFromJSON(jsonValue));\n }\n\n /**\n * Get user profile\n */\n async get2(requestParameters: Get2Request): Promise {\n const response = await this.get2Raw(requestParameters);\n return await response.value();\n }\n\n /**\n * Get the Service\n */\n async getServiceRaw(): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request({\n path: `/service`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServiceInformationFromJSON(jsonValue));\n }\n\n /**\n * Get the Service\n */\n async getService(): Promise {\n const response = await this.getServiceRaw();\n return await response.value();\n }\n\n /**\n * Login as Wire Bot Developer\n */\n async loginBotProviderRaw(requestParameters: LoginBotProviderRequest): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/login`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: SignInToJSON(requestParameters.body),\n });\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Login as Wire Bot Developer\n */\n async loginBotProvider(requestParameters: LoginBotProviderRequest): Promise {\n await this.loginBotProviderRaw(requestParameters);\n }\n\n /**\n * Broadcast message on Wire\n */\n async postRaw(requestParameters: PostRequest): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (requestParameters.appKey !== undefined && requestParameters.appKey !== null) {\n headerParameters['app-key'] = String(requestParameters.appKey);\n }\n\n const response = await this.request({\n path: `/broadcast`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: IncomingMessageToJSON(requestParameters.body),\n });\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Broadcast message on Wire\n */\n async post(requestParameters: PostRequest): Promise {\n await this.postRaw(requestParameters);\n }\n\n /**\n * Post message on Wire\n */\n async post1Raw(requestParameters: Post1Request): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/conversation`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: IncomingMessageToJSON(requestParameters.body),\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => PostMessageResultFromJSON(jsonValue));\n }\n\n /**\n * Post message on Wire\n */\n async post1(requestParameters: Post1Request): Promise {\n const response = await this.post1Raw(requestParameters);\n return await response.value();\n }\n\n /**\n * Dummy. Bot developer should implement this\n */\n async post2Raw(requestParameters: Post2Request): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/messages`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: OutgoingMessageToJSON(requestParameters.body),\n });\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Dummy. Bot developer should implement this\n */\n async post2(requestParameters: Post2Request): Promise {\n await this.post2Raw(requestParameters);\n }\n\n /**\n * Register as Wire Bot Developer\n */\n async registerBotProviderRaw(requestParameters: RegisterBotProviderRequest): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/register`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: NewUserToJSON(requestParameters.body),\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => RegistrationSuccessfulFromJSON(jsonValue));\n }\n\n /**\n * Register as Wire Bot Developer\n */\n async registerBotProvider(requestParameters: RegisterBotProviderRequest): Promise {\n const response = await this.registerBotProviderRaw(requestParameters);\n return await response.value();\n }\n\n /**\n * Update Service\n */\n async updateServiceRaw(requestParameters: UpdateServiceRequest): Promise> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/service`,\n method: 'PUT',\n headers: headerParameters,\n query: queryParameters,\n body: UpdateServiceToJSON(requestParameters.body),\n });\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServiceInformationFromJSON(jsonValue));\n }\n\n /**\n * Update Service\n */\n async updateService(requestParameters: UpdateServiceRequest): Promise {\n const response = await this.updateServiceRaw(requestParameters);\n return await response.value();\n }\n\n}\n","import {Configuration, DefaultApi, RequestContext, ResponseContext} from '../generated';\n\n// the localhost is here just as a template for local development\nexport const romanBasePath = process.env.REACT_APP_BASE_PATH ?? `${window.origin}${window.location.pathname}`;\n\nconst getApiPath = (path: string) => {\n const pathWithSlash = path.endsWith('/') ? '' : '/'\n return `${path}${pathWithSlash}api`\n}\n\nconst api = new DefaultApi(\n new Configuration({\n basePath: getApiPath(romanBasePath),\n middleware: [{\n pre: async (context: RequestContext) => {\n // TODO this is fix for wrong swagger in the Roman\n context.init.credentials = 'include';\n },\n post: async (context: ResponseContext) => {\n // delete user if the response status from BE is unauthorized\n // todo do this in more react way\n if (context.response.status === 401) {\n localStorage.clear(); // delete user from the storage\n }\n }\n }]\n })\n);\n\n/**\n * Hook that gives access to DefaultApi.\n */\nexport default function useApi(): DefaultApi {\n return api\n}\n\n\n\n","import {useMemo} from 'react';\nimport {useHistory, useLocation, useParams, useRouteMatch} from 'react-router-dom';\n// @ts-ignore, it does not have types unfortunately\nimport queryString from 'query-string';\n\nexport default function useRouter() {\n const params = useParams();\n const location = useLocation();\n const history = useHistory();\n const match = useRouteMatch();\n\n // Return our custom router object\n // Memoize so that a new object is only returned if something changes\n return useMemo(() => {\n return {\n // For convenience add push(), replace(), pathname at top level\n push: history.push,\n replace: history.replace,\n pathname: location.pathname,\n // Merge params and parsed query string into single \"query\" object\n // so that they can be used interchangeably.\n // Example: /:topic?sort=popular -> { topic: \"react\", sort: \"popular\" }\n query: {\n ...queryString.parse(location.search), // Convert string to object\n ...params\n },\n // Include match, location, history objects so we have\n // access to extra React Router functionality if needed.\n match,\n location,\n history\n };\n }, [params, match, location, history]);\n}\n","import useLocalStorage from './UseLocalStorage';\n\nexport default function useUser() {\n return useLocalStorage('user');\n}\n","// Hook\nimport {useState} from 'react';\n\n\nexport default function useLocalStorage(key: string): [T | null, (value: T) => void, () => void] {\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState(() => {\n try {\n // Get from local storage by key\n const item = window.localStorage.getItem(key);\n // Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : null;\n } catch (error) {\n // If error also return initialValue\n console.log(error);\n return null;\n }\n });\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = (value: T) => {\n try {\n // Save state\n setStoredValue(value);\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n // A more advanced implementation would handle the error case\n console.log(error);\n }\n };\n\n const deleteKey = () => {\n try {\n window.localStorage.removeItem(key);\n setStoredValue(null);\n } catch (error) {\n console.log(error);\n }\n };\n\n return [storedValue, setValue, deleteKey];\n}\n","import React, {createContext, ReactNode, useContext, useEffect} from 'react';\nimport {DefaultApi, SignIn} from '../generated';\nimport useApi from './UseApi';\nimport useRouter from './UseRouter';\nimport {routes} from '../modules/Routing';\nimport useUser from './UseUser';\n\n// @ts-ignore it's going to be replaced after initialization so we don't need to initialize that\nconst authContext = createContext(undefined);\n\n/**\n * Top level context react element that provides context to the application.\n *\n * See https://usehooks.com/useAuth.\n */\nexport function ProvideAuth({children}: { children: ReactNode }) {\n const auth = useProvideAuth();\n return (\n \n {children}\n \n );\n}\n\n/**\n * Provides authorization context.\n */\nexport function useAuthContext() {\n return useContext(authContext);\n}\n\n/**\n * Default type used as auth.\n */\ninterface UserService {\n user: string | null\n login: (login: SignIn) => Promise\n logout: () => Promise\n api: DefaultApi\n}\n\n/**\n * Creates UserService from current context.\n */\nfunction useProvideAuth(): UserService {\n const [user, storeUser, deleteUser] = useUser();\n const api = useApi();\n\n const login = async (login: SignIn) => {\n try {\n await api.loginBotProvider({body: login});\n storeUser(login.email);\n return true;\n } catch (e) {\n console.error(e);\n throw e;\n }\n };\n\n const logout = async () => {\n deleteUser();\n // todo maybe try to delete cookie\n };\n\n return {\n user,\n login,\n logout,\n api\n };\n}\n\n/**\n * Ensures that the application is authenticated, otherwise redirects to redirectUrl.\n */\nexport function useRequireAuth(redirectUrl = routes.login): UserService {\n const auth = useAuthContext();\n const router = useRouter();\n\n // If auth.user is false that means we're not\n // logged in and should redirect.\n useEffect(() => {\n if (auth.user === null) {\n router.push(redirectUrl, {state: {from: router.location}});\n }\n }, [auth, router, redirectUrl]);\n\n return auth;\n}\n","import {useState} from 'react';\n\n/**\n * Abstracted useState for the inputs.\n *\n * Use as:\n * const {value: someNamedValue, bind: bindValue} = useInput('')\n * .\n */\nexport default function useInput(\n initialValue: T,\n onChangeCallback: (value: T) => void = () => {\n }\n) {\n const [value, setValue] = useState(initialValue);\n\n return {\n value,\n setValue,\n reset: () => setValue(initialValue),\n bind: {\n value,\n onChange: (event: { target: { value: T } }) => {\n onChangeCallback(value)\n setValue(event.target.value);\n }\n }\n };\n};\n","import TextField from '@material-ui/core/TextField';\nimport {Button, CircularProgress, Link} from '@material-ui/core';\nimport {useEffect, useState} from 'react';\nimport {useAuthContext} from '../../hooks/UseAuth';\nimport useRouter from '../../hooks/UseRouter';\nimport {makeStyles} from '@material-ui/styles';\nimport {routes} from '../../modules/Routing';\nimport useInput from \"../../hooks/UseInput\";\n\n/**\n * Login Page, redirects to home after\n */\nexport default function LoginPage({redirectAfterLogin = routes.home}) {\n const router = useRouter();\n const {user, login} = useAuthContext();\n // guarantee that the user will get redirected\n useEffect(() => {\n if (user) {\n // @ts-ignore sadly I haven't found any other way how to get the redirect\n const {from} = router.location.state ?? {from: {pathname: redirectAfterLogin}};\n router.replace(from);\n }\n }, [redirectAfterLogin, router, user]);\n\n const [status, setStatus] = useState<'idle' | 'pending' | 'error'>('idle');\n const handleTyping = () => setStatus('idle') // delete error when typing\n const {value: email, bind: bindEmail} = useInput('', handleTyping)\n const {value: password, bind: bindPassword} = useInput('', handleTyping)\n\n const handleLogin = (e: any) => {\n e.preventDefault();\n\n setStatus('pending'); // set pending status to display circle\n return login({email, password})\n .then(success => {\n setStatus(success ? 'idle' : 'error');\n })\n .catch((e) => {\n console.log(e)\n setStatus('error')\n }); // catch unauthorized\n };\n\n const classes = useStyles();\n return (\n // we use hidden just as a precaution if the suer already exist\n // to not to \"blick\" with the login window\n
\n
\n \n \n
\n \n
\n
\n Unauthorized!\n
\n
\n {/* TODO fix the routing, # is just a hotfix*/}\n Register new account\n
\n \n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n page: {\n display: 'flex',\n flexFlow: 'column',\n alignContent: 'center',\n justifyContent: 'center'\n },\n form: {\n display: 'flex',\n flexFlow: 'column',\n '& > div': {\n margin: '10px',\n width: '25ch'\n }\n },\n infoBox: {\n color: 'red'\n }\n })\n);\n","import {CircularProgress} from '@material-ui/core';\n\ninterface ComponentProps {\n status: 'pending' | string,\n children: JSX.Element\n}\n\n/**\n * Simple wrapper that shows progress bar if status == pending.\n */\nexport default function ComponentOrPending({status, children}: ComponentProps): JSX.Element {\n return status === 'pending' ? () : children;\n}\n","import {Divider, Paper, TextField} from '@material-ui/core';\nimport {makeStyles} from '@material-ui/styles';\n\nexport interface ServiceAccessInfoProps {\n serviceCode: string\n serviceAuthentication: string\n appKey: string\n}\n\n/**\n * The component displays unmodifiable data about the service.\n */\nexport default function ServiceAccessInfo(accessInfo: ServiceAccessInfoProps) {\n const classes = useStyles();\n return (\n \n
\n
Access Information
\n \n \n\n \n \n\n \n
\n\n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n paper: {\n margin: '10px'\n },\n info: {\n display: 'flex',\n flexFlow: 'column',\n margin: '5px',\n '& > div': {\n margin: '20px'\n }\n },\n heading: {\n fontWeight: 'bold'\n }\n}));\n","import {makeStyles} from '@material-ui/styles';\nimport {Button, CircularProgress, Paper, TextField} from '@material-ui/core';\nimport {useState} from 'react';\nimport {useAuthContext} from '../../../hooks/UseAuth';\nimport {ServiceInformation} from \"../../../generated\";\nimport useInput from \"../../../hooks/UseInput\";\n\nexport interface ServiceInfoProps {\n name: string\n webhook: string | undefined\n setService: (data: ServiceInformation | undefined) => void\n}\n\n/**\n * Editable part of the service data.\n */\nexport default function ServiceInfo({name, webhook, setService}: ServiceInfoProps) {\n const {api} = useAuthContext();\n const [status, setStatus] = useState<'idle' | 'pending'>('idle');\n\n const {value: serviceName, reset: resetServiceName, bind: bindServiceName} = useInput(name)\n const {value: serviceWebHook, reset: resetWebHook, bind: bindWebHook} = useInput(webhook)\n\n const handleSubmit = (e: any) => {\n e.preventDefault();\n\n setStatus('pending'); // set pending status to display circle\n api.updateService({body: {url: serviceWebHook, name: serviceName}})\n .then((r) => setService(r))\n .then(() => setStatus('idle')) // todo maybe show some modal with OK\n .catch(e => {\n console.log(e); // todo better error handling would be nice\n setService(undefined);\n setStatus('idle');\n });\n };\n\n const handleReset = (e: any) => {\n e.preventDefault();\n resetServiceName()\n resetWebHook()\n };\n\n const dataNotChanged = serviceName === name && serviceWebHook === webhook;\n const statusPending = status === 'pending'\n const classes = useStyles();\n return (\n \n
\n
Service Information
\n\n
\n \n \n
\n \n\n \n
\n \n
\n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n paper: {\n margin: '10px'\n },\n info: {\n display: 'flex',\n flexFlow: 'column',\n margin: '5px',\n '& > div': {\n margin: '20px'\n }\n },\n buttons: {\n display: 'flex',\n justifyContent: 'space-evenly',\n '& > button': {\n width: '19ch'\n }\n },\n heading: {\n fontWeight: 'bold'\n }\n}));\n","import ServiceAccessInfo, {ServiceAccessInfoProps} from './ServiceAccess';\nimport ServiceInfo, {ServiceInfoProps} from './ServiceInfo';\nimport {makeStyles} from '@material-ui/styles';\n\ninterface Props {\n serviceAccess: ServiceAccessInfoProps,\n info: ServiceInfoProps\n}\n\n/**\n * Displays data about the service.\n */\nexport default function Service({serviceAccess, info}: Props) {\n const classes = useStyles();\n return (\n
\n \n \n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n service: {\n display: 'flex',\n flexFlow: 'column'\n },\n heading: {\n fontSize: 'large',\n fontWeight: 'bold'\n }\n}));\n","import {makeStyles} from '@material-ui/styles';\nimport {Button} from '@material-ui/core';\nimport {useRequireAuth} from '../../../hooks/UseAuth';\nimport {romanBasePath} from '../../../hooks/UseApi';\n\nexport default function Header() {\n const {user, logout} = useRequireAuth();\n const styles = useStyles();\n return (\n
\n \n\n \n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n header: {\n display: 'flex',\n flexFlow: 'row',\n justifyContent: 'space-between'\n }\n })\n);\n\n","import {useRequireAuth} from \"../../../hooks/UseAuth\";\nimport {ServiceInformation} from \"../../../generated\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {useState} from \"react\";\nimport {Button, CircularProgress, Paper, TextField} from \"@material-ui/core\";\nimport useInput from \"../../../hooks/UseInput\";\n\ninterface Props {\n setService: (data: ServiceInformation | undefined) => void\n}\n\n/**\n * Form which allows user to register a service.\n */\nexport function ServiceCreation({setService}: Props) {\n const {api} = useRequireAuth();\n\n const [status, setStatus] = useState<'idle' | 'pending'>('idle');\n\n const {value: name, bind: bindName} = useInput('');\n const {value: url, bind: bindUrl} = useInput('');\n // TODO add support for the avatar\n const {value: summary, bind: bindSummary} = useInput('');\n\n const handleSubmit = (e: any) => {\n e.preventDefault();\n\n setStatus('pending'); // set pending status to display circle\n api.createNewService({body: {name, url, summary}})\n .then((r) => setService(r))\n .catch(e => {\n console.log(e); // todo better error handling would be nice\n setStatus('idle')\n setService(undefined);\n });\n };\n\n const classes = useStyles();\n const pendingStatus = status === 'pending'\n return (\n \n
\n
Create Service
\n {/* TODO maybe add some explanation what is going on */}\n
\n \n \n \n
\n \n
\n \n
\n
\n );\n}\n\n\nconst useStyles = makeStyles(() => ({\n paper: {\n margin: '10px'\n },\n info: {\n display: 'flex',\n flexFlow: 'column',\n margin: '5px',\n '& > div': {\n margin: '20px'\n }\n },\n buttons: {},\n heading: {\n fontWeight: 'bold'\n }\n}));\n","import {useEffect, useState} from 'react';\nimport {useRequireAuth} from '../../hooks/UseAuth';\nimport {makeStyles} from '@material-ui/styles';\nimport ComponentOrPending from '../../modules/ComponentOrPending';\nimport Service from './components/Service';\nimport Header from './components/Header';\nimport {ServiceInformation} from \"../../generated\";\nimport {ServiceCreation} from \"./components/ServiceCreation\";\n\n/**\n * Login Page, redirects to home after\n */\nexport default function HomePage() {\n const {api} = useRequireAuth();\n\n const [status, setStatus] = useState<'idle' | 'pending'>('idle');\n const [service, setService] = useState(undefined);\n\n useEffect(() => {\n if (service) {\n return;\n }\n\n setStatus('pending');\n api.getService()\n .then(r => setService(r))\n .then(() => setStatus('idle'))\n .catch((e) => console.error(e)); // todo maybe some error handling\n }, [service, api]);\n\n const classes = useStyles();\n return (\n \n
\n {service != null && (\n <>\n
\n
\n {/* If service exists, show service data, otherwise show service dialog*/}\n {service.service ?\n \n :\n \n }\n
\n \n )}\n
\n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n page: {\n display: 'flex',\n flexFlow: 'column',\n marginLeft: '10%',\n marginRight: '10%',\n marginTop: '2%',\n flexGrow: 1\n },\n information: {\n display: 'flex',\n flexFlow: 'column',\n padding: '20px',\n flexGrow: 1,\n alignSelf: 'center',\n width: '100%',\n maxWidth: '800px'\n }\n })\n);\n","import {Redirect, Route, RouteProps} from 'react-router-dom';\nimport {useAuthContext} from '../hooks/UseAuth';\nimport {routes} from './Routing';\n\n/**\n * Guarantees that the components are displayed only\n * when the user is authenticated.\n */\nexport default function PrivateRoute({children, ...rest}: RouteProps) {\n const {user} = useAuthContext();\n return (\n \n user ? (children) : (\n \n )\n }\n />\n );\n}\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Button, Paper} from \"@material-ui/core\";\nimport {routes} from \"../../../modules/Routing\";\n\ninterface Props {\n message: string\n}\n\n/**\n * Component that displays page that informs user about the successful registration.\n */\nexport default function RegistrationSuccess({message}: Props) {\n const classes = useStyles()\n return (\n
\n \n
{message}
\n\n
Please confirm the registration mail and then log in.
\n
\n\n \n Login\n \n
\n )\n}\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexFlow: 'column',\n alignContent: 'center',\n justifyContent: 'center'\n },\n paper: {\n padding: '30px',\n margin: '20px'\n },\n loginButton: {\n margin: '20px',\n maxWidth: '25ch',\n padding: '10px'\n },\n messageText: {\n padding: '10px'\n }\n })\n);\n","import {NewUser} from \"../../../generated\";\nimport useInput from \"../../../hooks/UseInput\";\nimport {useState} from \"react\";\nimport TextField from \"@material-ui/core/TextField\";\nimport {Button, CircularProgress} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {routes} from \"../../../modules/Routing\";\n\ninterface Props {\n register: (registration: NewUser) => Promise\n}\n\n/**\n * Form which allows user to register a bot provider account.\n */\nexport default function RegistrationForm({register}: Props) {\n const [status, setStatus] = useState<'idle' | 'pending' | 'success' | 'error'>('idle');\n const handleTyping = () => setStatus('idle')\n const [message, setMessage] = useState('')\n\n const {value: name, bind: bindName} = useInput('', handleTyping);\n const {value: email, bind: bindEmail} = useInput('', handleTyping);\n const {value: password, bind: bindPassword} = useInput('', handleTyping);\n\n const handleRegister = (e: any) => {\n e.preventDefault();\n setStatus('pending'); // set pending status to display circle\n return register({email, name, password})\n .catch(e => {\n setMessage(e.message)\n setStatus('error')\n })\n };\n\n const classes = useStyles();\n const disabled = () => status === 'pending' || status === 'success'\n return (\n
\n
\n \n \n \n
\n \n \n Or login\n \n
\n
\n {message}\n
\n \n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n page: {},\n form: {\n display: 'flex',\n flexFlow: 'column',\n '& > div': {\n margin: '10px',\n width: '25ch'\n }\n },\n warningBox: {\n color: 'red',\n textAlign: 'justify'\n },\n buttons: {\n '& > button': {\n marginBottom: '10px'\n }\n },\n infoBox: {}\n })\n);\n","import {useState} from 'react';\nimport {makeStyles} from '@material-ui/styles';\nimport useApi from \"../../hooks/UseApi\";\nimport {NewUser} from \"../../generated\";\nimport RegistrationSuccess from \"./components/RegistrationSuccess\";\nimport RegistrationForm from \"./components/RegistrationForm\";\n\n/**\n * Registration page.\n */\nexport default function RegistrationPage() {\n const api = useApi()\n\n const [registered, setRegistered] = useState(undefined)\n\n const register = async (registration: NewUser) => {\n try {\n const {message} = await api.registerBotProvider({body: registration})\n setRegistered(message)\n } catch (e) {\n console.error(e)\n throw new Error('An error occurred during registration, did you set valid email? ' +\n 'Also the password must be at least 6 characters.')\n }\n };\n\n const classes = useStyles();\n return (\n
\n {registered ?\n :\n \n }\n
\n );\n}\n\nconst useStyles = makeStyles(() => ({\n page: {\n display: 'flex',\n flexFlow: 'column',\n alignContent: 'center',\n justifyContent: 'center'\n },\n form: {\n display: 'flex',\n flexFlow: 'column',\n '& > div': {\n margin: '10px',\n width: '25ch'\n }\n },\n warningBox: {\n color: 'red',\n textAlign: 'justify'\n },\n infoBox: {}\n })\n);\n","import {ProvideAuth} from '../hooks/UseAuth';\nimport {HashRouter, Route, Switch} from 'react-router-dom';\nimport LoginPage from '../pages/login/LoginPage';\nimport React from 'react';\nimport HomePage from '../pages/home/HomePage';\nimport PrivateRoute from './PrivateRoute';\nimport RegistrationPage from \"../pages/register/RegistrationPage\";\n\nexport const routes = {\n home: '/',\n login: '/login',\n register: '/register',\n profile: '/profile'\n};\n\n/**\n * Creates routing in the application, should be on the top level.\n */\nexport default function Routing() {\n // if there's some problem with hashrouter you can try this approach\n // https://github.com/ReactTraining/history/issues/435\n return (\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport Routing from './modules/Routing';\nimport {makeStyles} from '@material-ui/styles';\n\n\nexport default function App() {\n const classes = useStyles();\n return (\n
\n \n
\n );\n}\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n alignContent: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n width: '100vw',\n height: '100vh',\n overflowX: 'hidden'\n }\n});\n","import {ReportHandler} from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({getCLS, getFID, getFCP, getLCP, getTTFB}) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './app/App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}