chat4app-client-angular 0.0.2 → 0.0.3

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.
@@ -40,18 +40,18 @@
40
40
  this.chatServer = chat4AppConfig.endpoint;
41
41
  this.chatUrl = chat4AppConfig.endpoint + "/api/v1/";
42
42
  };
43
- Chat4appClientAngularService.prototype.init = function (callback, chatCallback, token) {
44
- var _this = this;
43
+ Chat4appClientAngularService.prototype.init = function (securityChatToken, callback, chatCallback, connectionClientId) {
45
44
  if (!this.chatServer || this.chatServer.trim().length == 0) {
46
- throw new Error("Invalid endpoint");
45
+ throw new Error("Endpoint is empty");
47
46
  }
48
- this.getTokenChat4app().subscribe(function (res) {
49
- _this.setTokenChat4app(res.token);
50
- if (chatCallback && token) {
51
- _this.connectWebsocket(chatCallback, token);
52
- }
53
- callback(res.token);
54
- });
47
+ if (!securityChatToken || securityChatToken.trim().length == 0) {
48
+ throw new Error("SecurityChatToken is empty");
49
+ }
50
+ this.setTokenChat4app(securityChatToken);
51
+ if (chatCallback && connectionClientId) {
52
+ this.connectWebsocket(chatCallback, connectionClientId);
53
+ }
54
+ callback(securityChatToken);
55
55
  };
56
56
  Chat4appClientAngularService.prototype.getChatUrlDownload = function (messageFileId) {
57
57
  return this.chatUrl + "chatmessage/getFile?messageFileId=" + messageFileId;
@@ -208,9 +208,6 @@
208
208
  var ret = "Bearer " + window.sessionStorage.getItem("chat4AppSessionToken");
209
209
  return ret;
210
210
  };
211
- Chat4appClientAngularService.prototype.getTokenChat4app = function () {
212
- return this.http.post("/rest/secured/chat-helper", null);
213
- };
214
211
  Chat4appClientAngularService.prototype.setTokenChat4app = function (chat4AppSessionToken) {
215
212
  window.sessionStorage.setItem("chat4AppSessionToken", chat4AppSessionToken);
216
213
  };
@@ -1 +1 @@
1
- {"version":3,"file":"chat4app-client-angular.umd.js","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts","../../../projects/chat4app-client-angular/src/public-api.ts","../../../projects/chat4app-client-angular/src/chat4app-client-angular.ts"],"sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n \n sock: any;\n stompClient: any;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n }\n \n init(callback: any, chatCallback?: IChatCallback, token?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Invalid endpoint\");\n }\n\n this.getTokenChat4app().subscribe((res: any) => {\n this.setTokenChat4app(res.token);\n \n if (chatCallback && token) {\n this.connectWebsocket(chatCallback, token);\n }\n \n callback(res.token);\n })\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n getTokenChat4app() {\n return this.http.post(\"/rest/secured/chat-helper\", null);\n }\n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n \n }\n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n }\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n this.connectWebsocket(chatCallback, token);\n }, 500);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg.notification.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n chatMessageFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string) {\n \n }\n }\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n","/*\n * Public API Surface of chat4app-client-angular\n */\n\nexport * from './lib/chat4app-client-angular.service';\nexport * from './lib/chat4app-client-angular.component';\nexport * from './lib/chat4app-client-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["HttpHeaders","SockJS","Stomp","moment","Injectable","HttpClient","ChatStatus4App","ChatUserStatus4App","ChatFilterType","Component","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"chat4app-client-angular.umd.js","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts","../../../projects/chat4app-client-angular/src/public-api.ts","../../../projects/chat4app-client-angular/src/chat4app-client-angular.ts"],"sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n \n sock: any;\n stompClient: any;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n \n }\n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n }\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n this.connectWebsocket(chatCallback, token);\n }, 500);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg.notification.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n chatMessageFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string) {\n \n }\n }\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n","/*\n * Public API Surface of chat4app-client-angular\n */\n\nexport * from './lib/chat4app-client-angular.service';\nexport * from './lib/chat4app-client-angular.component';\nexport * from './lib/chat4app-client-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["HttpHeaders","SockJS","Stomp","moment","Injectable","HttpClient","ChatStatus4App","ChatUserStatus4App","ChatFilterType","Component","NgModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("stompjs"),require("sockjs-client"),require("@angular/common/http"),require("moment")):"function"==typeof define&&define.amd?define("chat4app-client-angular",["exports","@angular/core","stompjs","sockjs-client","@angular/common/http","moment"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["chat4app-client-angular"]={},t.ng.core,t.Stomp,t.SockJS,t.ng.common.http,t.moment)}(this,(function(t,e,a,r,n,o){"use strict";function s(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:function(){return t[a]}})}})),e.default=t,Object.freeze(e)}var i=s(e),h=s(a),p=s(r),c=s(n),d=s(o),u=function(){function t(t){this.http=t,this.chatServer="",this.chatUrl=""}return t.prototype.ngOnInit=function(){},t.prototype.config=function(t){this.chatServer=t.endpoint,this.chatUrl=t.endpoint+"/api/v1/"},t.prototype.init=function(t,e,a){var r=this;if(!this.chatServer||0==this.chatServer.trim().length)throw new Error("Invalid endpoint");this.getTokenChat4app().subscribe((function(n){r.setTokenChat4app(n.token),e&&a&&r.connectWebsocket(e,a),t(n.token)}))},t.prototype.getChatUrlDownload=function(t){return this.chatUrl+"chatmessage/getFile?messageFileId="+t},t.prototype.getMessageChat=function(t,e,a){var r=this.chatUrl+"chatmessage/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getMessageChatByGrop=function(t,e,a){var r=this.chatUrl+"chatmessage/byGroup/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.addMessageChat=function(t){var e=this.chatUrl+"chatmessage/"+t.chatId;return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.props=function(t){var e=this.chatUrl+"chatmessage/props";return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUsersChat=function(t,e,a){var r=new Array;e&&e.length>0?e.forEach((function(t){r.push("chatUserId="+t)})):a&&a.length>0&&a.forEach((function(t){r.push("chatUserExternalId="+t)}));var o=this.chatUrl+"chatuser/"+t+"?"+r.join("&");return this.http.delete(o,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUserChat=function(t,e,a){var r="";r=e?"chatUserId="+e:"chatUserExternalId="+a;var o=this.chatUrl+"chatuser/"+t+"?"+r;return this.http.delete(o,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.updateUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.put(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.post(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUsersChat=function(t,e){var a=this.chatUrl+"chatuser/users/"+t;return this.http.post(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createChat=function(t){var e=this.chatUrl+"chat";return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUpdateChat=function(t){var e=this.chatUrl+"chat";return this.http.put(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessageGroup=function(t,e){var a=this.chatUrl+"chatmessage/lastMessageGroup?chatExternalId="+t+"&groupId="+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessage=function(t,e){var a=this.chatUrl+"chatmessage/lastMessage?chatExternalId="+t+"&chatUserExternalId="+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.countNotReadMessages=function(t,e,a){var r=this.chatUrl+"chatmessage/countNotReadMessages?chatUserExternalId="+t;return e&&e.length>0&&(r+="&chatExternalId="+e),a&&a.length>0&&(r+="&groupId="+a),this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getChatByExternalId=function(t){var e=this.chatUrl+"chat?externalId="+t;return this.http.get(e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.readMessage=function(t,e){var a=this.chatUrl+"chatmessage/read/"+t;return e&&e.length>0&&(a+="/"+e),this.http.put(a,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.online=function(t,e){var a=this.chatUrl+"chatmessage/online/"+t+"/"+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFile=function(t,e,a,r){var o=this.chatUrl+"chatmessage/sendFile/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(o,s,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFileGroup=function(t,e,a,r){var o=this.chatUrl+"chatmessage/sendFileGroup/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(o,s,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getBearerToken=function(){return"Bearer "+window.sessionStorage.getItem("chat4AppSessionToken")},t.prototype.getTokenChat4app=function(){return this.http.post("/rest/secured/chat-helper",null)},t.prototype.setTokenChat4app=function(t){window.sessionStorage.setItem("chat4AppSessionToken",t)},t.prototype.onMessageFirebaseReceived=function(t,e){if("msg"==t.type){(n=new I).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.dateHour=t.dateHour,n.data.type=t.type,n.notification.body=t.body,t.fileId&&t.fileId.length>0&&(n.data.fileId=t.fileId,n.data.fileName=t.fileName,n.data.fileSize=t.fileSize,n.data.fileType=t.fileType);var a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onMessage(n)}else if("on"==t.type||"off"==t.type){var n;(n=new I).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onOffline(n)}},t.prototype.connectWebsocket=function(t,e){var a=this;this.disconnect();var r=this.getBearerToken();this.sock=new p(this.chatServer+"/stomp/gkz-stomp-endpoint?token="+r),this.stompClient=h.over(this.sock),this.stompClient.debug=function(t){},this.stompClient.connect({},(function(r){a.stompClient.subscribe("/queue/"+e,(function(e){if("MESSAGE"==e.command){var a=JSON.parse(e.body),r=new Map;for(var n in a.data)r.set(n,a.data[n]);a.data.all=r,"msg"==a.data.type?t.onMessage(a):"on"!=a.data.type&&"off"!=a.data.type||t.onOffline(a)}}))}),(function(r){setTimeout((function(){a.connectWebsocket(t,e)}),500)}))},t.prototype.disconnect=function(){try{this.stompClient&&this.stompClient.disconnect()}catch(t){console.log(t)}},t.prototype.convertChat4AppMessageReceiveToChatMessage4App=function(t){var e=new m;if(e.body=t.notification.body,e.chatId=t.data.chatId,e.fromId=t.data.fromId,e.toId=t.data.toId,e.dateHourIncluded=d.utc(t.data.dateHour,"DD-MM-YYYY hh:mm:ss").toDate(),t.data.fileId&&t.data.fileId.length>0){var a=new v;a.id=t.data.fileId,a.name=t.data.fileName,a.size=t.data.fileSize,a.type=t.data.fileType,e.chatMessageFile=a}return e},t}();u.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new u(i.ɵɵinject(c.HttpClient))},token:u,providedIn:"root"}),u.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],u.ctorParameters=function(){return[{type:n.HttpClient}]};var l,f,g=function(){},y=function(){},m=function(){},v=function(){},C=function(){},I=function(){this.data=new A,this.notification=new H},A=function(){},H=function(){},T=function(){},k=function(){},w=function(t){this.endpoint=t};t.ChatStatus4App=void 0,(l=t.ChatStatus4App||(t.ChatStatus4App={})).CREATED="CREATED",l.CLOSED="CLOSED",t.ChatUserStatus4App=void 0,(t.ChatUserStatus4App||(t.ChatUserStatus4App={})).REMOVED="REMOVED",t.ChatFilterType=void 0,(f=t.ChatFilterType||(t.ChatFilterType={}))[f.COUNT_NOT_READ=1]="COUNT_NOT_READ",f[f.LAST_MESSAGE=2]="LAST_MESSAGE";var U=function(){function t(){}return t.prototype.ngOnInit=function(){},t}();U.decorators=[{type:e.Component,args:[{selector:"lib-chat4app-client-angular",template:"\n <p>\n chat4app-client-angular works!\n </p>\n "}]}],U.ctorParameters=function(){return[]};var M=function(){};M.decorators=[{type:e.NgModule,args:[{declarations:[U],imports:[],exports:[U]}]}],t.Chat4App=g,t.Chat4AppConfig=w,t.Chat4AppMessageReceive=I,t.Chat4AppMessageReceiveData=A,t.Chat4AppMessageReceiveNotification=H,t.Chat4appClientAngularComponent=U,t.Chat4appClientAngularModule=M,t.Chat4appClientAngularService=u,t.ChatFilterRequest4App=k,t.ChatMessage4App=m,t.ChatMessageFile4App=v,t.ChatMessageMeta4App=C,t.ChatUser4App=y,t.ChatUserResponse4App=T,Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("stompjs"),require("sockjs-client"),require("@angular/common/http"),require("moment")):"function"==typeof define&&define.amd?define("chat4app-client-angular",["exports","@angular/core","stompjs","sockjs-client","@angular/common/http","moment"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["chat4app-client-angular"]={},t.ng.core,t.Stomp,t.SockJS,t.ng.common.http,t.moment)}(this,(function(t,e,a,r,n,o){"use strict";function s(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:function(){return t[a]}})}})),e.default=t,Object.freeze(e)}var i=s(e),h=s(a),p=s(r),c=s(n),d=s(o),u=function(){function t(t){this.http=t,this.chatServer="",this.chatUrl=""}return t.prototype.ngOnInit=function(){},t.prototype.config=function(t){this.chatServer=t.endpoint,this.chatUrl=t.endpoint+"/api/v1/"},t.prototype.init=function(t,e,a,r){if(!this.chatServer||0==this.chatServer.trim().length)throw new Error("Endpoint is empty");if(!t||0==t.trim().length)throw new Error("SecurityChatToken is empty");this.setTokenChat4app(t),a&&r&&this.connectWebsocket(a,r),e(t)},t.prototype.getChatUrlDownload=function(t){return this.chatUrl+"chatmessage/getFile?messageFileId="+t},t.prototype.getMessageChat=function(t,e,a){var r=this.chatUrl+"chatmessage/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getMessageChatByGrop=function(t,e,a){var r=this.chatUrl+"chatmessage/byGroup/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.addMessageChat=function(t){var e=this.chatUrl+"chatmessage/"+t.chatId;return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.props=function(t){var e=this.chatUrl+"chatmessage/props";return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUsersChat=function(t,e,a){var r=new Array;e&&e.length>0?e.forEach((function(t){r.push("chatUserId="+t)})):a&&a.length>0&&a.forEach((function(t){r.push("chatUserExternalId="+t)}));var o=this.chatUrl+"chatuser/"+t+"?"+r.join("&");return this.http.delete(o,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUserChat=function(t,e,a){var r="";r=e?"chatUserId="+e:"chatUserExternalId="+a;var o=this.chatUrl+"chatuser/"+t+"?"+r;return this.http.delete(o,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.updateUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.put(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.post(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUsersChat=function(t,e){var a=this.chatUrl+"chatuser/users/"+t;return this.http.post(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createChat=function(t){var e=this.chatUrl+"chat";return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUpdateChat=function(t){var e=this.chatUrl+"chat";return this.http.put(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessageGroup=function(t,e){var a=this.chatUrl+"chatmessage/lastMessageGroup?chatExternalId="+t+"&groupId="+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessage=function(t,e){var a=this.chatUrl+"chatmessage/lastMessage?chatExternalId="+t+"&chatUserExternalId="+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.countNotReadMessages=function(t,e,a){var r=this.chatUrl+"chatmessage/countNotReadMessages?chatUserExternalId="+t;return e&&e.length>0&&(r+="&chatExternalId="+e),a&&a.length>0&&(r+="&groupId="+a),this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getChatByExternalId=function(t){var e=this.chatUrl+"chat?externalId="+t;return this.http.get(e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.readMessage=function(t,e){var a=this.chatUrl+"chatmessage/read/"+t;return e&&e.length>0&&(a+="/"+e),this.http.put(a,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.online=function(t,e){var a=this.chatUrl+"chatmessage/online/"+t+"/"+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFile=function(t,e,a,r){var o=this.chatUrl+"chatmessage/sendFile/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(o,s,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFileGroup=function(t,e,a,r){var o=this.chatUrl+"chatmessage/sendFileGroup/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(o,s,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getBearerToken=function(){return"Bearer "+window.sessionStorage.getItem("chat4AppSessionToken")},t.prototype.setTokenChat4app=function(t){window.sessionStorage.setItem("chat4AppSessionToken",t)},t.prototype.onMessageFirebaseReceived=function(t,e){if("msg"==t.type){(n=new I).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.dateHour=t.dateHour,n.data.type=t.type,n.notification.body=t.body,t.fileId&&t.fileId.length>0&&(n.data.fileId=t.fileId,n.data.fileName=t.fileName,n.data.fileSize=t.fileSize,n.data.fileType=t.fileType);var a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onMessage(n)}else if("on"==t.type||"off"==t.type){var n;(n=new I).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onOffline(n)}},t.prototype.connectWebsocket=function(t,e){var a=this;this.disconnect();var r=this.getBearerToken();this.sock=new p(this.chatServer+"/stomp/gkz-stomp-endpoint?token="+r),this.stompClient=h.over(this.sock),this.stompClient.debug=function(t){},this.stompClient.connect({},(function(r){a.stompClient.subscribe("/queue/"+e,(function(e){if("MESSAGE"==e.command){var a=JSON.parse(e.body),r=new Map;for(var n in a.data)r.set(n,a.data[n]);a.data.all=r,"msg"==a.data.type?t.onMessage(a):"on"!=a.data.type&&"off"!=a.data.type||t.onOffline(a)}}))}),(function(r){setTimeout((function(){a.connectWebsocket(t,e)}),500)}))},t.prototype.disconnect=function(){try{this.stompClient&&this.stompClient.disconnect()}catch(t){console.log(t)}},t.prototype.convertChat4AppMessageReceiveToChatMessage4App=function(t){var e=new m;if(e.body=t.notification.body,e.chatId=t.data.chatId,e.fromId=t.data.fromId,e.toId=t.data.toId,e.dateHourIncluded=d.utc(t.data.dateHour,"DD-MM-YYYY hh:mm:ss").toDate(),t.data.fileId&&t.data.fileId.length>0){var a=new v;a.id=t.data.fileId,a.name=t.data.fileName,a.size=t.data.fileSize,a.type=t.data.fileType,e.chatMessageFile=a}return e},t}();u.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new u(i.ɵɵinject(c.HttpClient))},token:u,providedIn:"root"}),u.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],u.ctorParameters=function(){return[{type:n.HttpClient}]};var l,f,g=function(){},y=function(){},m=function(){},v=function(){},C=function(){},I=function(){this.data=new A,this.notification=new H},A=function(){},H=function(){},w=function(){},T=function(){},U=function(t){this.endpoint=t};t.ChatStatus4App=void 0,(l=t.ChatStatus4App||(t.ChatStatus4App={})).CREATED="CREATED",l.CLOSED="CLOSED",t.ChatUserStatus4App=void 0,(t.ChatUserStatus4App||(t.ChatUserStatus4App={})).REMOVED="REMOVED",t.ChatFilterType=void 0,(f=t.ChatFilterType||(t.ChatFilterType={}))[f.COUNT_NOT_READ=1]="COUNT_NOT_READ",f[f.LAST_MESSAGE=2]="LAST_MESSAGE";var M=function(){function t(){}return t.prototype.ngOnInit=function(){},t}();M.decorators=[{type:e.Component,args:[{selector:"lib-chat4app-client-angular",template:"\n <p>\n chat4app-client-angular works!\n </p>\n "}]}],M.ctorParameters=function(){return[]};var k=function(){};k.decorators=[{type:e.NgModule,args:[{declarations:[M],imports:[],exports:[M]}]}],t.Chat4App=g,t.Chat4AppConfig=U,t.Chat4AppMessageReceive=I,t.Chat4AppMessageReceiveData=A,t.Chat4AppMessageReceiveNotification=H,t.Chat4appClientAngularComponent=M,t.Chat4appClientAngularModule=k,t.Chat4appClientAngularService=u,t.ChatFilterRequest4App=T,t.ChatMessage4App=m,t.ChatMessageFile4App=v,t.ChatMessageMeta4App=C,t.ChatUser4App=y,t.ChatUserResponse4App=w,Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=chat4app-client-angular.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts"],"names":["Chat4appClientAngularService","http","this","chatServer","chatUrl","prototype","ngOnInit","config","chat4AppConfig","endpoint","init","callback","chatCallback","token","_this","trim","length","Error","getTokenChat4app","subscribe","res","setTokenChat4app","connectWebsocket","getChatUrlDownload","messageFileId","getMessageChat","chatId","fromId","toId","url","get","headers","HttpHeaders","set","getBearerToken","getMessageChatByGrop","groupId","addMessageChat","chatMessage4App","post","props","chatFilterRequest4App","removeUsersChat","chatUsersId","chatUsersExternalId","params","Array","forEach","cui","push","cuei","join","delete","removeUserChat","chatUserId","chatUserExternalId","param","updateUserChat","charUser4AppUpdate","put","createUserChat","chatUser4App","createUsersChat","createChat","chat4app","createUpdateChat","getLastMessageGroup","chatExternalId","getLastMessage","countNotReadMessages","getChatByExternalId","externalId","readMessage","chatMessageId","online","sendFile","fileToUpload","formData","FormData","append","sendFileGroup","window","sessionStorage","getItem","chat4AppSessionToken","setItem","onMessageFirebaseReceived","data","type","chat4appMessage","Chat4AppMessageReceive","dateHour","notification","body","fileId","fileName","fileSize","fileType","datTmp","Map","key","all","onMessage","onOffline","disconnect","securityToken","sock","SockJS","stompClient","Stomp","over","debug","msg","connect","frame","command","msgObj","JSON","parse","message","setTimeout","e","console","log","convertChat4AppMessageReceiveToChatMessage4App","ChatMessage4App","dateHourIncluded","moment","utc","toDate","messageFile","ChatMessageFile4App","id","name","size","chatMessageFile","Injectable","args","providedIn","HttpClient","ChatStatus4App","ChatFilterType","Chat4App","ChatUser4App","ChatMessageMeta4App","Chat4AppMessageReceiveData","Chat4AppMessageReceiveNotification","ChatUserResponse4App","ChatFilterRequest4App","Chat4AppConfig","ChatUserStatus4App","Chat4appClientAngularComponent","Component","selector","template","Chat4appClientAngularModule","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n \n sock: any;\n stompClient: any;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n }\n \n init(callback: any, chatCallback?: IChatCallback, token?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Invalid endpoint\");\n }\n\n this.getTokenChat4app().subscribe((res: any) => {\n this.setTokenChat4app(res.token);\n \n if (chatCallback && token) {\n this.connectWebsocket(chatCallback, token);\n }\n \n callback(res.token);\n })\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n getTokenChat4app() {\n return this.http.post(\"/rest/secured/chat-helper\", null);\n }\n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n \n }\n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n }\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n this.connectWebsocket(chatCallback, token);\n }, 500);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg.notification.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n chatMessageFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string) {\n \n }\n }\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n"]}
1
+ {"version":3,"sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts"],"names":["Chat4appClientAngularService","http","this","chatServer","chatUrl","prototype","ngOnInit","config","chat4AppConfig","endpoint","init","securityChatToken","callback","chatCallback","connectionClientId","trim","length","Error","setTokenChat4app","connectWebsocket","getChatUrlDownload","messageFileId","getMessageChat","chatId","fromId","toId","url","get","headers","HttpHeaders","set","getBearerToken","getMessageChatByGrop","groupId","addMessageChat","chatMessage4App","post","props","chatFilterRequest4App","removeUsersChat","chatUsersId","chatUsersExternalId","params","Array","forEach","cui","push","cuei","join","delete","removeUserChat","chatUserId","chatUserExternalId","param","updateUserChat","charUser4AppUpdate","put","createUserChat","chatUser4App","createUsersChat","createChat","chat4app","createUpdateChat","getLastMessageGroup","chatExternalId","getLastMessage","countNotReadMessages","getChatByExternalId","externalId","readMessage","chatMessageId","online","sendFile","fileToUpload","formData","FormData","append","sendFileGroup","window","sessionStorage","getItem","chat4AppSessionToken","setItem","onMessageFirebaseReceived","data","type","chat4appMessage","Chat4AppMessageReceive","dateHour","notification","body","fileId","fileName","fileSize","fileType","datTmp","Map","key","all","onMessage","onOffline","token","_this","disconnect","securityToken","sock","SockJS","stompClient","Stomp","over","debug","msg","connect","frame","subscribe","command","msgObj","JSON","parse","message","setTimeout","e","console","log","convertChat4AppMessageReceiveToChatMessage4App","ChatMessage4App","dateHourIncluded","moment","utc","toDate","messageFile","ChatMessageFile4App","id","name","size","chatMessageFile","Injectable","args","providedIn","HttpClient","ChatStatus4App","ChatFilterType","Chat4App","ChatUser4App","ChatMessageMeta4App","Chat4AppMessageReceiveData","Chat4AppMessageReceiveNotification","ChatUserResponse4App","ChatFilterRequest4App","Chat4AppConfig","ChatUserStatus4App","Chat4appClientAngularComponent","Component","selector","template","Chat4appClientAngularModule","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n \n sock: any;\n stompClient: any;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n \n }\n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n }\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n this.connectWebsocket(chatCallback, token);\n }, 500);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg.notification.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n chatMessageFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string) {\n \n }\n }\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"Chat4appClientAngularService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":20,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"config":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"getChatUrlDownload":[{"__symbolic":"method"}],"getMessageChat":[{"__symbolic":"method"}],"getMessageChatByGrop":[{"__symbolic":"method"}],"addMessageChat":[{"__symbolic":"method"}],"props":[{"__symbolic":"method"}],"removeUsersChat":[{"__symbolic":"method"}],"removeUserChat":[{"__symbolic":"method"}],"updateUserChat":[{"__symbolic":"method"}],"createUserChat":[{"__symbolic":"method"}],"createUsersChat":[{"__symbolic":"method"}],"createChat":[{"__symbolic":"method"}],"createUpdateChat":[{"__symbolic":"method"}],"getLastMessageGroup":[{"__symbolic":"method"}],"getLastMessage":[{"__symbolic":"method"}],"countNotReadMessages":[{"__symbolic":"method"}],"getChatByExternalId":[{"__symbolic":"method"}],"readMessage":[{"__symbolic":"method"}],"online":[{"__symbolic":"method"}],"sendFile":[{"__symbolic":"method"}],"sendFileGroup":[{"__symbolic":"method"}],"getBearerToken":[{"__symbolic":"method"}],"getTokenChat4app":[{"__symbolic":"method"}],"setTokenChat4app":[{"__symbolic":"method"}],"onMessageFirebaseReceived":[{"__symbolic":"method"}],"connectWebsocket":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"convertChat4AppMessageReceiveToChatMessage4App":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Chat4App":{"__symbolic":"class","members":{}},"ChatUser4App":{"__symbolic":"class","members":{}},"ChatMessage4App":{"__symbolic":"class","members":{}},"ChatMessageFile4App":{"__symbolic":"class","members":{}},"ChatMessageMeta4App":{"__symbolic":"class","members":{}},"Chat4AppMessageReceive":{"__symbolic":"class","members":{}},"Chat4AppMessageReceiveData":{"__symbolic":"class","members":{}},"Chat4AppMessageReceiveNotification":{"__symbolic":"class","members":{}},"ChatUserResponse4App":{"__symbolic":"class","members":{}},"ChatFilterRequest4App":{"__symbolic":"class","members":{}},"Chat4AppConfig":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"ChatStatus4App":{"CREATED":"CREATED","CLOSED":"CLOSED"},"ChatUserStatus4App":{"REMOVED":"REMOVED"},"ChatFilterType":{"COUNT_NOT_READ":1,"LAST_MESSAGE":2},"IChatCallback":{"__symbolic":"interface"},"Chat4appClientAngularComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"lib-chat4app-client-angular","template":"\n <p>\n chat4app-client-angular works!\n </p>\n ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"Chat4appClientAngularModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"Chat4appClientAngularComponent"}],"imports":[],"exports":[{"__symbolic":"reference","name":"Chat4appClientAngularComponent"}]}]}],"members":{}}},"origins":{"Chat4appClientAngularService":"./lib/chat4app-client-angular.service","Chat4App":"./lib/chat4app-client-angular.service","ChatUser4App":"./lib/chat4app-client-angular.service","ChatMessage4App":"./lib/chat4app-client-angular.service","ChatMessageFile4App":"./lib/chat4app-client-angular.service","ChatMessageMeta4App":"./lib/chat4app-client-angular.service","Chat4AppMessageReceive":"./lib/chat4app-client-angular.service","Chat4AppMessageReceiveData":"./lib/chat4app-client-angular.service","Chat4AppMessageReceiveNotification":"./lib/chat4app-client-angular.service","ChatUserResponse4App":"./lib/chat4app-client-angular.service","ChatFilterRequest4App":"./lib/chat4app-client-angular.service","Chat4AppConfig":"./lib/chat4app-client-angular.service","ChatStatus4App":"./lib/chat4app-client-angular.service","ChatUserStatus4App":"./lib/chat4app-client-angular.service","ChatFilterType":"./lib/chat4app-client-angular.service","IChatCallback":"./lib/chat4app-client-angular.service","Chat4appClientAngularComponent":"./lib/chat4app-client-angular.component","Chat4appClientAngularModule":"./lib/chat4app-client-angular.module"},"importAs":"chat4app-client-angular"}
1
+ {"__symbolic":"module","version":4,"metadata":{"Chat4appClientAngularService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":20,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"config":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"getChatUrlDownload":[{"__symbolic":"method"}],"getMessageChat":[{"__symbolic":"method"}],"getMessageChatByGrop":[{"__symbolic":"method"}],"addMessageChat":[{"__symbolic":"method"}],"props":[{"__symbolic":"method"}],"removeUsersChat":[{"__symbolic":"method"}],"removeUserChat":[{"__symbolic":"method"}],"updateUserChat":[{"__symbolic":"method"}],"createUserChat":[{"__symbolic":"method"}],"createUsersChat":[{"__symbolic":"method"}],"createChat":[{"__symbolic":"method"}],"createUpdateChat":[{"__symbolic":"method"}],"getLastMessageGroup":[{"__symbolic":"method"}],"getLastMessage":[{"__symbolic":"method"}],"countNotReadMessages":[{"__symbolic":"method"}],"getChatByExternalId":[{"__symbolic":"method"}],"readMessage":[{"__symbolic":"method"}],"online":[{"__symbolic":"method"}],"sendFile":[{"__symbolic":"method"}],"sendFileGroup":[{"__symbolic":"method"}],"getBearerToken":[{"__symbolic":"method"}],"setTokenChat4app":[{"__symbolic":"method"}],"onMessageFirebaseReceived":[{"__symbolic":"method"}],"connectWebsocket":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"convertChat4AppMessageReceiveToChatMessage4App":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Chat4App":{"__symbolic":"class","members":{}},"ChatUser4App":{"__symbolic":"class","members":{}},"ChatMessage4App":{"__symbolic":"class","members":{}},"ChatMessageFile4App":{"__symbolic":"class","members":{}},"ChatMessageMeta4App":{"__symbolic":"class","members":{}},"Chat4AppMessageReceive":{"__symbolic":"class","members":{}},"Chat4AppMessageReceiveData":{"__symbolic":"class","members":{}},"Chat4AppMessageReceiveNotification":{"__symbolic":"class","members":{}},"ChatUserResponse4App":{"__symbolic":"class","members":{}},"ChatFilterRequest4App":{"__symbolic":"class","members":{}},"Chat4AppConfig":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]}},"ChatStatus4App":{"CREATED":"CREATED","CLOSED":"CLOSED"},"ChatUserStatus4App":{"REMOVED":"REMOVED"},"ChatFilterType":{"COUNT_NOT_READ":1,"LAST_MESSAGE":2},"IChatCallback":{"__symbolic":"interface"},"Chat4appClientAngularComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"lib-chat4app-client-angular","template":"\n <p>\n chat4app-client-angular works!\n </p>\n ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"Chat4appClientAngularModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"Chat4appClientAngularComponent"}],"imports":[],"exports":[{"__symbolic":"reference","name":"Chat4appClientAngularComponent"}]}]}],"members":{}}},"origins":{"Chat4appClientAngularService":"./lib/chat4app-client-angular.service","Chat4App":"./lib/chat4app-client-angular.service","ChatUser4App":"./lib/chat4app-client-angular.service","ChatMessage4App":"./lib/chat4app-client-angular.service","ChatMessageFile4App":"./lib/chat4app-client-angular.service","ChatMessageMeta4App":"./lib/chat4app-client-angular.service","Chat4AppMessageReceive":"./lib/chat4app-client-angular.service","Chat4AppMessageReceiveData":"./lib/chat4app-client-angular.service","Chat4AppMessageReceiveNotification":"./lib/chat4app-client-angular.service","ChatUserResponse4App":"./lib/chat4app-client-angular.service","ChatFilterRequest4App":"./lib/chat4app-client-angular.service","Chat4AppConfig":"./lib/chat4app-client-angular.service","ChatStatus4App":"./lib/chat4app-client-angular.service","ChatUserStatus4App":"./lib/chat4app-client-angular.service","ChatFilterType":"./lib/chat4app-client-angular.service","IChatCallback":"./lib/chat4app-client-angular.service","Chat4appClientAngularComponent":"./lib/chat4app-client-angular.component","Chat4appClientAngularModule":"./lib/chat4app-client-angular.module"},"importAs":"chat4app-client-angular"}
@@ -17,17 +17,18 @@ export class Chat4appClientAngularService {
17
17
  this.chatServer = chat4AppConfig.endpoint;
18
18
  this.chatUrl = chat4AppConfig.endpoint + "/api/v1/";
19
19
  }
20
- init(callback, chatCallback, token) {
20
+ init(securityChatToken, callback, chatCallback, connectionClientId) {
21
21
  if (!this.chatServer || this.chatServer.trim().length == 0) {
22
- throw new Error("Invalid endpoint");
22
+ throw new Error("Endpoint is empty");
23
23
  }
24
- this.getTokenChat4app().subscribe((res) => {
25
- this.setTokenChat4app(res.token);
26
- if (chatCallback && token) {
27
- this.connectWebsocket(chatCallback, token);
28
- }
29
- callback(res.token);
30
- });
24
+ if (!securityChatToken || securityChatToken.trim().length == 0) {
25
+ throw new Error("SecurityChatToken is empty");
26
+ }
27
+ this.setTokenChat4app(securityChatToken);
28
+ if (chatCallback && connectionClientId) {
29
+ this.connectWebsocket(chatCallback, connectionClientId);
30
+ }
31
+ callback(securityChatToken);
31
32
  }
32
33
  getChatUrlDownload(messageFileId) {
33
34
  return this.chatUrl + "chatmessage/getFile?messageFileId=" + messageFileId;
@@ -184,9 +185,6 @@ export class Chat4appClientAngularService {
184
185
  let ret = "Bearer " + window.sessionStorage.getItem("chat4AppSessionToken");
185
186
  return ret;
186
187
  }
187
- getTokenChat4app() {
188
- return this.http.post("/rest/secured/chat-helper", null);
189
- }
190
188
  setTokenChat4app(chat4AppSessionToken) {
191
189
  window.sessionStorage.setItem("chat4AppSessionToken", chat4AppSessionToken);
192
190
  }
@@ -354,4 +352,4 @@ export var ChatFilterType;
354
352
  ChatFilterType[ChatFilterType["COUNT_NOT_READ"] = 1] = "COUNT_NOT_READ";
355
353
  ChatFilterType[ChatFilterType["LAST_MESSAGE"] = 2] = "LAST_MESSAGE";
356
354
  })(ChatFilterType || (ChatFilterType = {}));
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdDRhcHAtY2xpZW50LWFuZ3VsYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQ0YXBwLWNsaWVudC1hbmd1bGFyL3NyYy9saWIvY2hhdDRhcHAtY2xpZW50LWFuZ3VsYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7OztBQU9qQyxNQUFNLE9BQU8sNEJBQTRCO0lBUXJDLFlBQXFCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFOckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQUcsRUFBRSxDQUFDO0lBT2IsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQThCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFFO0lBQ3ZELENBQUM7SUFFRCxJQUFJLENBQUMsUUFBYSxFQUFFLFlBQTRCLEVBQUUsS0FBYztRQUU5RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUM7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FB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O0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHFDQUFtQixDQUFBO0lBQ25CLG1DQUFpQixDQUFBO0FBRW5CLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUNELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIseUNBQW1CLENBQUE7QUFFckIsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0I7QUFDRCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLHVFQUFrQixDQUFBO0lBQ2xCLG1FQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgU3RvbXAgZnJvbSAnc3RvbXBqcyc7XG5pbXBvcnQgKiBhcyBTb2NrSlMgZnJvbSAnc29ja2pzLWNsaWVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdDRhcHBDbGllbnRBbmd1bGFyU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdCAge1xuXG4gICAgY2hhdFNlcnZlciA9IFwiXCI7XG4gICAgY2hhdFVybCA9IFwiXCI7XG4gICAgXG4gICAgc29jazogYW55O1xuICAgIHN0b21wQ2xpZW50OiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIFxuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBjb25maWcoY2hhdDRBcHBDb25maWc6IENoYXQ0QXBwQ29uZmlnKSB7XG4gICAgICB0aGlzLmNoYXRTZXJ2ZXIgPSBjaGF0NEFwcENvbmZpZy5lbmRwb2ludDtcbiAgICAgIHRoaXMuY2hhdFVybCA9IGNoYXQ0QXBwQ29uZmlnLmVuZHBvaW50ICsgXCIvYXBpL3YxL1wiIDtcbiAgICB9XG4gIFxuICAgIGluaXQoY2FsbGJhY2s6IGFueSwgY2hhdENhbGxiYWNrPzogSUNoYXRDYWxsYmFjaywgdG9rZW4/OiBzdHJpbmcpIHtcblxuICAgICAgaWYgKCF0aGlzLmNoYXRTZXJ2ZXIgfHwgdGhpcy5jaGF0U2VydmVyLnRyaW0oKS5sZW5ndGggPT0gMCl7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZW5kcG9pbnRcIik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZ2V0VG9rZW5DaGF0NGFwcCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRUb2tlbkNoYXQ0YXBwKHJlcy50b2tlbik7XG4gIFxuICAgICAgICBpZiAoY2hhdENhbGxiYWNrICYmIHRva2VuKSB7XG4gICAgICAgICAgdGhpcy5jb25uZWN0V2Vic29ja2V0KGNoYXRDYWxsYmFjaywgdG9rZW4pO1xuICAgICAgICB9XG4gIFxuICAgICAgICBjYWxsYmFjayhyZXMudG9rZW4pO1xuICAgICAgfSlcbiAgICB9XG4gIFxuICAgIGdldENoYXRVcmxEb3dubG9hZChtZXNzYWdlRmlsZUlkOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL2dldEZpbGU/bWVzc2FnZUZpbGVJZD1cIiArIG1lc3NhZ2VGaWxlSWQ7XG4gICAgfVxuICBcbiAgXG4gICAgZ2V0TWVzc2FnZUNoYXQoY2hhdElkOiBzdHJpbmcsIGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PENoYXRNZXNzYWdlNEFwcD4+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL1wiICsgY2hhdElkICsgXCIvXCIgKyBmcm9tSWQgKyBcIi9cIiArIHRvSWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8Q2hhdE1lc3NhZ2U0QXBwPj4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICBcbiAgICB9XG4gICAgZ2V0TWVzc2FnZUNoYXRCeUdyb3AoY2hhdElkOiBzdHJpbmcsIGdyb3VwSWQ6IHN0cmluZywgZnJvbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PENoYXRNZXNzYWdlNEFwcD4+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL2J5R3JvdXAvXCIgKyBjaGF0SWQgKyBcIi9cIiArIGdyb3VwSWQgKyBcIi9cIiArIGZyb21JZDtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcnJheTxDaGF0TWVzc2FnZTRBcHA+Pih1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gIFxuICAgIH1cbiAgXG4gIFxuICAgIGFkZE1lc3NhZ2VDaGF0KGNoYXRNZXNzYWdlNEFwcDogQ2hhdE1lc3NhZ2U0QXBwKTogT2JzZXJ2YWJsZTxDaGF0TWVzc2FnZTRBcHA+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL1wiICsgY2hhdE1lc3NhZ2U0QXBwLmNoYXRJZDtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2hhdE1lc3NhZ2U0QXBwPih1cmwsIGNoYXRNZXNzYWdlNEFwcCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgXG4gICAgfVxuICAgIHByb3BzKGNoYXRGaWx0ZXJSZXF1ZXN0NEFwcDogQXJyYXk8Q2hhdEZpbHRlclJlcXVlc3Q0QXBwPik6IE9ic2VydmFibGU8Q2hhdFVzZXJSZXNwb25zZTRBcHA+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL3Byb3BzXCI7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENoYXRVc2VyUmVzcG9uc2U0QXBwPih1cmwsIGNoYXRGaWx0ZXJSZXF1ZXN0NEFwcCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgXG4gICAgfVxuICBcbiAgXG4gICAgcmVtb3ZlVXNlcnNDaGF0KGNoYXRJZDogc3RyaW5nLCBjaGF0VXNlcnNJZD86IHN0cmluZ1tdLCBjaGF0VXNlcnNFeHRlcm5hbElkPzogc3RyaW5nW10pOiBPYnNlcnZhYmxlPENoYXRVc2VyNEFwcFtdPiB7XG4gICAgICBsZXQgcGFyYW1zID0gbmV3IEFycmF5KCk7XG4gICAgICBpZiAoY2hhdFVzZXJzSWQgJiYgY2hhdFVzZXJzSWQubGVuZ3RoID4gMCkge1xuICBcbiAgICAgICAgY2hhdFVzZXJzSWQuZm9yRWFjaChjdWkgPT4ge1xuICAgICAgICAgIHBhcmFtcy5wdXNoKFwiY2hhdFVzZXJJZD1cIiArIGN1aSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChjaGF0VXNlcnNFeHRlcm5hbElkICYmIGNoYXRVc2Vyc0V4dGVybmFsSWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjaGF0VXNlcnNFeHRlcm5hbElkLmZvckVhY2goY3VlaSA9PiB7XG4gICAgICAgICAgcGFyYW1zLnB1c2goXCJjaGF0VXNlckV4dGVybmFsSWQ9XCIgKyBjdWVpKTtcbiAgICAgICAgfSlcbiAgXG4gICAgICB9XG4gIFxuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdHVzZXIvXCIgKyBjaGF0SWQgKyBcIj9cIiArIHBhcmFtcy5qb2luKFwiJlwiKTtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxDaGF0VXNlcjRBcHBbXT4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gICAgcmVtb3ZlVXNlckNoYXQoY2hhdElkOiBzdHJpbmcsIGNoYXRVc2VySWQ/OiBzdHJpbmcsIGNoYXRVc2VyRXh0ZXJuYWxJZD86IHN0cmluZyk6IE9ic2VydmFibGU8Q2hhdFVzZXI0QXBwPiB7XG4gICAgICBsZXQgcGFyYW0gPSBcIlwiO1xuICAgICAgaWYgKGNoYXRVc2VySWQpIHtcbiAgICAgICAgcGFyYW0gPSBcImNoYXRVc2VySWQ9XCIgKyBjaGF0VXNlcklkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW0gPSBcImNoYXRVc2VyRXh0ZXJuYWxJZD1cIiArIGNoYXRVc2VyRXh0ZXJuYWxJZDtcbiAgICAgIH1cbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0dXNlci9cIiArIGNoYXRJZCArIFwiP1wiICsgcGFyYW07XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Q2hhdFVzZXI0QXBwPih1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICBcbiAgICB1cGRhdGVVc2VyQ2hhdChjaGF0SWQ6IHN0cmluZywgY2hhclVzZXI0QXBwVXBkYXRlOiBDaGF0VXNlcjRBcHApOiBPYnNlcnZhYmxlPENoYXRVc2VyNEFwcD4ge1xuICBcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXR1c2VyL1wiICsgY2hhdElkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0PENoYXRVc2VyNEFwcD4odXJsLCBjaGFyVXNlcjRBcHBVcGRhdGUsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICBcbiAgXG4gICAgY3JlYXRlVXNlckNoYXQoY2hhdElkOiBzdHJpbmcsIGNoYXRVc2VyNEFwcDogQ2hhdFVzZXI0QXBwKTogT2JzZXJ2YWJsZTxDaGF0VXNlcjRBcHA+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXR1c2VyL1wiICsgY2hhdElkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDaGF0VXNlcjRBcHA+KHVybCwgY2hhdFVzZXI0QXBwLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gICAgY3JlYXRlVXNlcnNDaGF0KGNoYXRJZDogc3RyaW5nLCBjaGF0VXNlcjRBcHA6IENoYXRVc2VyNEFwcFtdKTogT2JzZXJ2YWJsZTxDaGF0VXNlcjRBcHBbXT4ge1xuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdHVzZXIvdXNlcnMvXCIgKyBjaGF0SWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENoYXRVc2VyNEFwcFtdPih1cmwsIGNoYXRVc2VyNEFwcCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgICB9XG4gIFxuICBcbiAgICBjcmVhdGVDaGF0KGNoYXQ0YXBwOiBDaGF0NEFwcCk6IE9ic2VydmFibGU8Q2hhdDRBcHA+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRcIjtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2hhdDRBcHA+KHVybCwgY2hhdDRhcHAsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGNyZWF0ZVVwZGF0ZUNoYXQoY2hhdDRhcHA6IENoYXQ0QXBwKTogT2JzZXJ2YWJsZTxDaGF0NEFwcD4ge1xuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdFwiO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0PENoYXQ0QXBwPih1cmwsIGNoYXQ0YXBwLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gIFxuICAgIGdldExhc3RNZXNzYWdlR3JvdXAoY2hhdEV4dGVybmFsSWQ6IHN0cmluZywgZ3JvdXBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGF0VXNlclJlc3BvbnNlNEFwcD4ge1xuICBcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL2xhc3RNZXNzYWdlR3JvdXA/Y2hhdEV4dGVybmFsSWQ9XCIgKyBjaGF0RXh0ZXJuYWxJZCArIFwiJmdyb3VwSWQ9XCIgKyBncm91cElkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENoYXRVc2VyUmVzcG9uc2U0QXBwPih1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGdldExhc3RNZXNzYWdlKGNoYXRFeHRlcm5hbElkOiBzdHJpbmcsIGNoYXRVc2VyRXh0ZXJuYWxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGF0VXNlclJlc3BvbnNlNEFwcD4ge1xuICBcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL2xhc3RNZXNzYWdlP2NoYXRFeHRlcm5hbElkPVwiICsgY2hhdEV4dGVybmFsSWQgKyBcIiZjaGF0VXNlckV4dGVybmFsSWQ9XCIgKyBjaGF0VXNlckV4dGVybmFsSWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q2hhdFVzZXJSZXNwb25zZTRBcHA+KHVybCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgICB9XG4gICAgY291bnROb3RSZWFkTWVzc2FnZXMoY2hhdFVzZXJFeHRlcm5hbElkOiBzdHJpbmcsIGNoYXRFeHRlcm5hbElkPzogc3RyaW5nLCBncm91cElkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGF0VXNlclJlc3BvbnNlNEFwcD4ge1xuICBcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL2NvdW50Tm90UmVhZE1lc3NhZ2VzP2NoYXRVc2VyRXh0ZXJuYWxJZD1cIiArIGNoYXRVc2VyRXh0ZXJuYWxJZDtcbiAgXG4gICAgICBpZiAoY2hhdEV4dGVybmFsSWQgJiYgY2hhdEV4dGVybmFsSWQubGVuZ3RoID4gMCkge1xuICAgICAgICB1cmwgKz0gXCImY2hhdEV4dGVybmFsSWQ9XCIgKyBjaGF0RXh0ZXJuYWxJZDtcbiAgICAgIH1cbiAgXG4gICAgICBpZiAoZ3JvdXBJZCAmJiBncm91cElkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdXJsICs9IFwiJmdyb3VwSWQ9XCIgKyBncm91cElkO1xuICAgICAgfVxuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENoYXRVc2VyUmVzcG9uc2U0QXBwPih1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICBcbiAgXG4gICAgZ2V0Q2hhdEJ5RXh0ZXJuYWxJZChleHRlcm5hbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENoYXQ0QXBwPiB7XG4gIFxuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdD9leHRlcm5hbElkPVwiICsgZXh0ZXJuYWxJZDtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDaGF0NEFwcD4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgICByZWFkTWVzc2FnZShjaGF0TWVzc2FnZUlkOiBzdHJpbmcsIHRvSWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9yZWFkL1wiICsgY2hhdE1lc3NhZ2VJZDtcbiAgXG4gICAgICBpZiAodG9JZCAmJiB0b0lkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdXJsICs9IFwiL1wiICsgdG9JZDtcbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDx2b2lkPih1cmwsIG51bGwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICAgIG9ubGluZShjaGF0SWQ6IHN0cmluZywgY2hhdFVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9vbmxpbmUvXCIgKyBjaGF0SWQgKyBcIi9cIiArIGNoYXRVc2VySWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICBcbiAgXG4gICAgc2VuZEZpbGUoY2hhdElkOiBzdHJpbmcsIGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcsIGZpbGVUb1VwbG9hZDogRmlsZSk6IE9ic2VydmFibGU8Q2hhdE1lc3NhZ2VGaWxlNEFwcD4ge1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL3NlbmRGaWxlL1wiICsgY2hhdElkICsgXCIvXCIgKyBmcm9tSWQgKyBcIi9cIiArIHRvSWQ7XG4gIFxuICAgICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlVG9VcGxvYWQpO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8Q2hhdE1lc3NhZ2VGaWxlNEFwcD4oZW5kcG9pbnQsIGZvcm1EYXRhLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgICB9KTtcbiAgICB9XG4gIFxuICAgIHNlbmRGaWxlR3JvdXAoY2hhdElkOiBzdHJpbmcsIGZyb21JZDogc3RyaW5nLCBncm91cElkOiBzdHJpbmcsIGZpbGVUb1VwbG9hZDogRmlsZSk6IE9ic2VydmFibGU8Q2hhdE1lc3NhZ2VGaWxlNEFwcD4ge1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRtZXNzYWdlL3NlbmRGaWxlR3JvdXAvXCIgKyBjaGF0SWQgKyBcIi9cIiArIGZyb21JZCArIFwiL1wiICsgZ3JvdXBJZDtcbiAgXG4gICAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGVUb1VwbG9hZCk7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucG9zdDxDaGF0TWVzc2FnZUZpbGU0QXBwPihlbmRwb2ludCwgZm9ybURhdGEsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICAgIH0pO1xuICAgIH1cbiAgXG4gIFxuICAgIC8qIFRva2VuICovXG4gICAgZ2V0QmVhcmVyVG9rZW4oKTogc3RyaW5nIHtcbiAgXG4gICAgICBsZXQgcmV0ID0gXCJCZWFyZXIgXCIgKyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImNoYXQ0QXBwU2Vzc2lvblRva2VuXCIpO1xuICBcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICBcbiAgICBnZXRUb2tlbkNoYXQ0YXBwKCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiL3Jlc3Qvc2VjdXJlZC9jaGF0LWhlbHBlclwiLCBudWxsKTtcbiAgICB9XG4gIFxuICAgIHNldFRva2VuQ2hhdDRhcHAoY2hhdDRBcHBTZXNzaW9uVG9rZW46IHN0cmluZykge1xuICBcbiAgXG4gICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImNoYXQ0QXBwU2Vzc2lvblRva2VuXCIsIGNoYXQ0QXBwU2Vzc2lvblRva2VuKTtcbiAgICB9XG4gIFxuICBcbiAgICAvKiBDb25uZWN0aW9uICovXG4gIFxuICAgIG9uTWVzc2FnZUZpcmViYXNlUmVjZWl2ZWQoZGF0YTogYW55LCBjaGF0Q2FsbGJhY2s6IElDaGF0Q2FsbGJhY2spIHtcbiAgXG4gIFxuICAgICAgLy9hbGVydChcIm9uTWVzc2FnZVJlY2VpdmVkIGNvbm5lY3RGaXJlYmFzZVwiKTtcbiAgXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwibXNnXCIpIHtcbiAgXG4gICAgICAgIGxldCBjaGF0NGFwcE1lc3NhZ2UgPSBuZXcgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSgpO1xuICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5jaGF0SWQgPSBkYXRhLmNoYXRJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuY2hhdE1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZXh0ZXJuYWxJZCA9IGRhdGEuZXh0ZXJuYWxJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZnJvbUlkID0gZGF0YS5mcm9tSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLnRvSWQgPSBkYXRhLnRvSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmRhdGVIb3VyID0gZGF0YS5kYXRlSG91cjtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEudHlwZSA9IGRhdGEudHlwZTtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLm5vdGlmaWNhdGlvbi5ib2R5ID0gZGF0YS5ib2R5O1xuICBcbiAgICAgICAgaWYgKGRhdGEuZmlsZUlkICYmIGRhdGEuZmlsZUlkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5maWxlSWQgPSBkYXRhLmZpbGVJZDtcbiAgICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5maWxlTmFtZSA9IGRhdGEuZmlsZU5hbWU7XG4gICAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZmlsZVNpemUgPSBkYXRhLmZpbGVTaXplO1xuICAgICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmZpbGVUeXBlID0gZGF0YS5maWxlVHlwZTtcbiAgXG4gICAgICAgIH1cbiAgXG4gICAgICAgIGxldCBkYXRUbXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBcbiAgICAgICAgZm9yIChsZXQga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICBkYXRUbXAuc2V0KGtleSwgZGF0YVtrZXldKTtcbiAgICAgICAgfVxuICBcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuYWxsID0gZGF0VG1wO1xuICBcbiAgICAgICAgY2hhdENhbGxiYWNrLm9uTWVzc2FnZShjaGF0NGFwcE1lc3NhZ2UpO1xuICBcbiAgICAgIH0gZWxzZSBpZiAoKGRhdGEudHlwZSA9PSBcIm9uXCIgfHwgZGF0YS50eXBlID09IFwib2ZmXCIpKSB7XG4gICAgICAgIGxldCBjaGF0NGFwcE1lc3NhZ2UgPSBuZXcgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSgpO1xuICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5jaGF0SWQgPSBkYXRhLmNoYXRJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuY2hhdE1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZXh0ZXJuYWxJZCA9IGRhdGEuZXh0ZXJuYWxJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZnJvbUlkID0gZGF0YS5mcm9tSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLnRvSWQgPSBkYXRhLnRvSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmRhdGVIb3VyID0gZGF0YS5kYXRlSG91cjtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEudHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgICBsZXQgZGF0VG1wID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgZGF0VG1wLnNldChrZXksIGRhdGFba2V5XSk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmFsbCA9IGRhdFRtcDtcbiAgXG4gICAgICAgIGNoYXRDYWxsYmFjay5vbk9mZmxpbmUoY2hhdDRhcHBNZXNzYWdlKTtcbiAgICBcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIGNvbm5lY3RXZWJzb2NrZXQoY2hhdENhbGxiYWNrOiBJQ2hhdENhbGxiYWNrLCB0b2tlbjogc3RyaW5nKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgXG4gICAgICBsZXQgc2VjdXJpdHlUb2tlbiA9IHRoaXMuZ2V0QmVhcmVyVG9rZW4oKTtcbiAgXG4gICAgICB0aGlzLnNvY2sgPSBuZXcgU29ja0pTKHRoaXMuY2hhdFNlcnZlciArICcvc3RvbXAvZ2t6LXN0b21wLWVuZHBvaW50P3Rva2VuPScgKyBzZWN1cml0eVRva2VuKTtcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQgPSBTdG9tcC5vdmVyKHRoaXMuc29jayk7XG4gICAgICB0aGlzLnN0b21wQ2xpZW50LmRlYnVnID0gZnVuY3Rpb24gKG1zZzogYW55KSB7XG4gICAgICAgIC8vY29uc29sZS5sb2cobXNnKTtcbiAgICAgIH1cbiAgXG4gICAgICB0aGlzLnN0b21wQ2xpZW50LmNvbm5lY3Qoe30sIChmcmFtZTogYW55KSA9PiB7XG4gICAgICAgIC8vY29uc29sZS5sb2coZnJhbWUpO1xuICBcbiAgICAgICAgdGhpcy5zdG9tcENsaWVudC5zdWJzY3JpYmUoJy9xdWV1ZS8nICsgdG9rZW4sIChtc2c6IGFueSkgPT4ge1xuICAgICAgICAgIC8vY29uc29sZS5sb2coJ21lbnNhZ2VtJywgbXNnKTtcbiAgXG4gICAgICAgICAgaWYgKG1zZy5jb21tYW5kID09IFwiTUVTU0FHRVwiKSB7XG4gIFxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhtc2cpXG4gIFxuICAgICAgICAgICAgbGV0IG1zZ09iaiA9IEpTT04ucGFyc2UobXNnLmJvZHkpO1xuICBcbiAgICAgICAgICAgIGxldCBkYXRUbXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBtc2dPYmouZGF0YSkge1xuICAgICAgICAgICAgICBkYXRUbXAuc2V0KGtleSwgbXNnT2JqLmRhdGFba2V5XSk7XG4gICAgICAgICAgICB9XG4gIFxuICAgICAgICAgICAgbXNnT2JqLmRhdGEuYWxsID0gZGF0VG1wO1xuICBcbiAgICAgICAgICAgIGlmIChtc2dPYmouZGF0YS50eXBlID09IFwibXNnXCIpIHtcbiAgICAgICAgICAgICAgY2hhdENhbGxiYWNrLm9uTWVzc2FnZShtc2dPYmopO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgobXNnT2JqLmRhdGEudHlwZSA9PSBcIm9uXCIgfHwgbXNnT2JqLmRhdGEudHlwZSA9PSBcIm9mZlwiKSkge1xuICAgICAgICAgICAgICBjaGF0Q2FsbGJhY2sub25PZmZsaW5lKG1zZ09iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vY2FsbGJhY2sobXNnLmJvZHkpO1xuICAgICAgICAgICAgLy8gaWNoYXRjYWxsYmFjay5mb3JFYWNoKChpQ2hhdCk9PntcbiAgICAgICAgICAgIC8vICAgaUNoYXQub25NZXNzYWdlKEpTT04ucGFyc2UobXNnLmJvZHkpICk7XG4gICAgICAgICAgICAvLyB9KTtcbiAgICAgICAgICB9XG4gIFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAgIChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBjaGVjayBtZXNzYWdlIGZvciBkaXNjb25uZWN0XG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRpc2Nvbm5lY3RcIik7XG4gIFxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0V2Vic29ja2V0KGNoYXRDYWxsYmFjaywgdG9rZW4pO1xuICAgICAgICAgIH0sIDUwMCk7XG4gIFxuICAgICAgICB9KTtcbiAgXG4gICAgfVxuICBcbiAgICBkaXNjb25uZWN0KCkge1xuLy8gICAgICBjb25zb2xlLmxvZyhcImRpc2Nvbm5lY3RcIilcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0aGlzLnN0b21wQ2xpZW50KSB7XG4gICAgICAgICAgdGhpcy5zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnZlcnRDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlVG9DaGF0TWVzc2FnZTRBcHAobXNnOiBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlKTogQ2hhdE1lc3NhZ2U0QXBwe1xuICAgICAgbGV0IG1lc3NhZ2UgPSBuZXcgQ2hhdE1lc3NhZ2U0QXBwKCk7XG4gICAgICBtZXNzYWdlLmJvZHkgPSBtc2cubm90aWZpY2F0aW9uLmJvZHk7XG4gICAgICBtZXNzYWdlLmNoYXRJZCA9IG1zZy5kYXRhLmNoYXRJZDtcbiAgICAgIG1lc3NhZ2UuZnJvbUlkID0gbXNnLmRhdGEuZnJvbUlkO1xuICAgICAgbWVzc2FnZS50b0lkID0gbXNnLmRhdGEudG9JZDtcbiAgICAgIG1lc3NhZ2UuZGF0ZUhvdXJJbmNsdWRlZCA9IG1vbWVudC51dGMobXNnLmRhdGEuZGF0ZUhvdXIsIFwiREQtTU0tWVlZWSBoaDptbTpzc1wiKS50b0RhdGUoKTtcblxuICAgICAgaWYgKG1zZy5kYXRhLmZpbGVJZCAmJiBtc2cuZGF0YS5maWxlSWQubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgbWVzc2FnZUZpbGUgPSBuZXcgQ2hhdE1lc3NhZ2VGaWxlNEFwcCgpO1xuICAgICAgICBcbiAgICAgICAgbWVzc2FnZUZpbGUuaWQgPSBtc2cuZGF0YS5maWxlSWQ7XG4gICAgICAgIG1lc3NhZ2VGaWxlLm5hbWUgPSBtc2cuZGF0YS5maWxlTmFtZTtcbiAgICAgICAgbWVzc2FnZUZpbGUuc2l6ZSA9IG1zZy5kYXRhLmZpbGVTaXplO1xuICAgICAgICBtZXNzYWdlRmlsZS50eXBlID0gbXNnLmRhdGEuZmlsZVR5cGU7XG5cbiAgICAgICAgbWVzc2FnZS5jaGF0TWVzc2FnZUZpbGUgPSBtZXNzYWdlRmlsZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG5cbiAgICB9XG4gIFxuICB9XG4gIFxuICBcbiAgZXhwb3J0IGNsYXNzIENoYXQ0QXBwIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNvbmZpZ0lkOiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxJZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBDaGF0U3RhdHVzNEFwcDtcbiAgICB1c2VyczogQXJyYXk8Q2hhdFVzZXI0QXBwPjtcbiAgXG4gIH1cbiAgZXhwb3J0IGNsYXNzIENoYXRVc2VyNEFwcCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY2xpZW50VG9rZW46IHN0cmluZztcbiAgICBwaWN0dXJlUGF0aDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxJZDogc3RyaW5nO1xuICAgIHN0YXR1czogQ2hhdFVzZXJTdGF0dXM0QXBwO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0TWVzc2FnZTRBcHAge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZnJvbUlkOiBzdHJpbmc7XG4gICAgdG9JZDogc3RyaW5nO1xuICAgIGNoYXRJZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYm9keTogc3RyaW5nO1xuICAgIG1ldGE6IEFycmF5PENoYXRNZXNzYWdlTWV0YTRBcHA+O1xuICAgIGdyb3VwSWQ6IHN0cmluZztcbiAgICByZWFkOiBCb29sZWFuO1xuICAgIGRhdGVIb3VySW5jbHVkZWQ6IERhdGU7XG4gICAgY2hhdE1lc3NhZ2VGaWxlOiBDaGF0TWVzc2FnZUZpbGU0QXBwO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0TWVzc2FnZUZpbGU0QXBwIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIH1cbiAgZXhwb3J0IGNsYXNzIENoYXRNZXNzYWdlTWV0YTRBcHAge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlIHtcbiAgICBkYXRhOiBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlRGF0YSA9IG5ldyBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlRGF0YSgpO1xuICAgIG5vdGlmaWNhdGlvbjogQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZU5vdGlmaWNhdGlvbiA9IG5ldyBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlTm90aWZpY2F0aW9uKCk7XG4gICAgdG9rZW46IHN0cmluZztcbiAgfVxuICBleHBvcnQgY2xhc3MgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZURhdGEge1xuICAgIHRvSWQ6IHN0cmluZztcbiAgICBjaGF0SWQ6IHN0cmluZztcbiAgICBkYXRlSG91cjogc3RyaW5nO1xuICAgIGNoYXRNZXNzYWdlSWQ6IHN0cmluZztcbiAgICBleHRlcm5hbElkOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGZyb21JZDogc3RyaW5nO1xuICAgIGZpbGVJZDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgZmlsZVNpemU6IG51bWJlcjtcbiAgICBmaWxlVHlwZTogc3RyaW5nO1xuICAgIGFsbDogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgXG4gIFxuICBcbiAgfVxuICBleHBvcnQgY2xhc3MgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZU5vdGlmaWNhdGlvbiB7XG4gICAgYm9keTogc3RyaW5nO1xuICB9XG4gIFxuICBleHBvcnQgY2xhc3MgQ2hhdFVzZXJSZXNwb25zZTRBcHAge1xuICAgIHRvdGFsTWVzc2FnZXM6IG51bWJlcjtcbiAgICBjaGF0OiBDaGF0NEFwcDtcbiAgICBjaGF0TWVzc2FnZTogQ2hhdE1lc3NhZ2U0QXBwO1xuICAgIGNoYXRzOiBDaGF0VXNlclJlc3BvbnNlNEFwcFtdO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0RmlsdGVyUmVxdWVzdDRBcHAge1xuICAgIHR5cGU6IENoYXRGaWx0ZXJUeXBlO1xuICAgIGNoYXRFeHRlcm5hbElkOiBzdHJpbmc7XG4gICAgY2hhdFVzZXJFeHRlcm5hbElkOiBzdHJpbmc7XG4gICAgZ3JvdXBJZDogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0NEFwcENvbmZpZyB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVuZHBvaW50OiBzdHJpbmcpIHtcbiAgICAgIFxuICAgIH1cbiAgfVxuXG4gIFxuICBleHBvcnQgZW51bSBDaGF0U3RhdHVzNEFwcCB7XG4gICAgQ1JFQVRFRCA9IFwiQ1JFQVRFRFwiLFxuICAgIENMT1NFRCA9IFwiQ0xPU0VEXCJcbiAgXG4gIH1cbiAgZXhwb3J0IGVudW0gQ2hhdFVzZXJTdGF0dXM0QXBwIHtcbiAgICBSRU1PVkVEID0gXCJSRU1PVkVEXCJcbiAgXG4gIH1cbiAgZXhwb3J0IGVudW0gQ2hhdEZpbHRlclR5cGUge1xuICAgIENPVU5UX05PVF9SRUFEID0gMSxcbiAgICBMQVNUX01FU1NBR0UgPSAyXG4gIH1cbiAgXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNoYXRDYWxsYmFjayB7XG4gICAgb25NZXNzYWdlKG1zZzogQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSk6IHZvaWQ7XG4gICAgb25PZmZsaW5lKG1zZzogQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSk6IHZvaWQ7XG4gIH1cbiAgIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdDRhcHAtY2xpZW50LWFuZ3VsYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQ0YXBwLWNsaWVudC1hbmd1bGFyL3NyYy9saWIvY2hhdDRhcHAtY2xpZW50LWFuZ3VsYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7OztBQU9qQyxNQUFNLE9BQU8sNEJBQTRCO0lBUXJDLFlBQXFCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFOckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQUcsRUFBRSxDQUFDO0lBT2IsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQThCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFFO0lBQ3ZELENBQUM7SUFFRCxJQUFJLENBQUMsaUJBQXlCLEVBQUUsUUFBYSxFQUFFLFlBQTRCLEVBQUUsa0JBQTJCO1FBRXBHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsaUJBQWlC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QUE7QUFFbkIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBQ0QsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1Qix5Q0FBbUIsQ0FBQTtBQUVyQixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQUNELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDeEIsdUVBQWtCLENBQUE7SUFDbEIsbUVBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBTdG9tcCBmcm9tICdzdG9tcGpzJztcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tICdzb2NranMtY2xpZW50JztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDaGF0NGFwcENsaWVudEFuZ3VsYXJTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0ICB7XG5cbiAgICBjaGF0U2VydmVyID0gXCJcIjtcbiAgICBjaGF0VXJsID0gXCJcIjtcbiAgICBcbiAgICBzb2NrOiBhbnk7XG4gICAgc3RvbXBDbGllbnQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgXG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIH1cblxuICAgIGNvbmZpZyhjaGF0NEFwcENvbmZpZzogQ2hhdDRBcHBDb25maWcpIHtcbiAgICAgIHRoaXMuY2hhdFNlcnZlciA9IGNoYXQ0QXBwQ29uZmlnLmVuZHBvaW50O1xuICAgICAgdGhpcy5jaGF0VXJsID0gY2hhdDRBcHBDb25maWcuZW5kcG9pbnQgKyBcIi9hcGkvdjEvXCIgO1xuICAgIH1cbiAgXG4gICAgaW5pdChzZWN1cml0eUNoYXRUb2tlbjogc3RyaW5nLCBjYWxsYmFjazogYW55LCBjaGF0Q2FsbGJhY2s/OiBJQ2hhdENhbGxiYWNrLCBjb25uZWN0aW9uQ2xpZW50SWQ/OiBzdHJpbmcpIHtcblxuICAgICAgICBpZiAoIXRoaXMuY2hhdFNlcnZlciB8fCB0aGlzLmNoYXRTZXJ2ZXIudHJpbSgpLmxlbmd0aCA9PSAwKXtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmRwb2ludCBpcyBlbXB0eVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNlY3VyaXR5Q2hhdFRva2VuIHx8IHNlY3VyaXR5Q2hhdFRva2VuLnRyaW0oKS5sZW5ndGggPT0gMCl7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2VjdXJpdHlDaGF0VG9rZW4gaXMgZW1wdHlcIik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFRva2VuQ2hhdDRhcHAoc2VjdXJpdHlDaGF0VG9rZW4pO1xuICBcbiAgICAgICAgaWYgKGNoYXRDYWxsYmFjayAmJiBjb25uZWN0aW9uQ2xpZW50SWQpIHtcbiAgICAgICAgICB0aGlzLmNvbm5lY3RXZWJzb2NrZXQoY2hhdENhbGxiYWNrLCBjb25uZWN0aW9uQ2xpZW50SWQpO1xuICAgICAgICB9XG4gIFxuICAgICAgICBjYWxsYmFjayhzZWN1cml0eUNoYXRUb2tlbik7XG4gICAgfVxuICBcbiAgICBnZXRDaGF0VXJsRG93bmxvYWQobWVzc2FnZUZpbGVJZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9nZXRGaWxlP21lc3NhZ2VGaWxlSWQ9XCIgKyBtZXNzYWdlRmlsZUlkO1xuICAgIH1cbiAgXG4gIFxuICAgIGdldE1lc3NhZ2VDaGF0KGNoYXRJZDogc3RyaW5nLCBmcm9tSWQ6IHN0cmluZywgdG9JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxDaGF0TWVzc2FnZTRBcHA+PiB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9cIiArIGNoYXRJZCArIFwiL1wiICsgZnJvbUlkICsgXCIvXCIgKyB0b0lkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PENoYXRNZXNzYWdlNEFwcD4+KHVybCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgXG4gICAgfVxuICAgIGdldE1lc3NhZ2VDaGF0QnlHcm9wKGNoYXRJZDogc3RyaW5nLCBncm91cElkOiBzdHJpbmcsIGZyb21JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxDaGF0TWVzc2FnZTRBcHA+PiB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9ieUdyb3VwL1wiICsgY2hhdElkICsgXCIvXCIgKyBncm91cElkICsgXCIvXCIgKyBmcm9tSWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8Q2hhdE1lc3NhZ2U0QXBwPj4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICBcbiAgICB9XG4gIFxuICBcbiAgICBhZGRNZXNzYWdlQ2hhdChjaGF0TWVzc2FnZTRBcHA6IENoYXRNZXNzYWdlNEFwcCk6IE9ic2VydmFibGU8Q2hhdE1lc3NhZ2U0QXBwPiB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9cIiArIGNoYXRNZXNzYWdlNEFwcC5jaGF0SWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENoYXRNZXNzYWdlNEFwcD4odXJsLCBjaGF0TWVzc2FnZTRBcHAsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gIFxuICAgIH1cbiAgICBwcm9wcyhjaGF0RmlsdGVyUmVxdWVzdDRBcHA6IEFycmF5PENoYXRGaWx0ZXJSZXF1ZXN0NEFwcD4pOiBPYnNlcnZhYmxlPENoYXRVc2VyUmVzcG9uc2U0QXBwPiB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9wcm9wc1wiO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDaGF0VXNlclJlc3BvbnNlNEFwcD4odXJsLCBjaGF0RmlsdGVyUmVxdWVzdDRBcHAsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gIFxuICAgIH1cbiAgXG4gIFxuICAgIHJlbW92ZVVzZXJzQ2hhdChjaGF0SWQ6IHN0cmluZywgY2hhdFVzZXJzSWQ/OiBzdHJpbmdbXSwgY2hhdFVzZXJzRXh0ZXJuYWxJZD86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxDaGF0VXNlcjRBcHBbXT4ge1xuICAgICAgbGV0IHBhcmFtcyA9IG5ldyBBcnJheSgpO1xuICAgICAgaWYgKGNoYXRVc2Vyc0lkICYmIGNoYXRVc2Vyc0lkLmxlbmd0aCA+IDApIHtcbiAgXG4gICAgICAgIGNoYXRVc2Vyc0lkLmZvckVhY2goY3VpID0+IHtcbiAgICAgICAgICBwYXJhbXMucHVzaChcImNoYXRVc2VySWQ9XCIgKyBjdWkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhdFVzZXJzRXh0ZXJuYWxJZCAmJiBjaGF0VXNlcnNFeHRlcm5hbElkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2hhdFVzZXJzRXh0ZXJuYWxJZC5mb3JFYWNoKGN1ZWkgPT4ge1xuICAgICAgICAgIHBhcmFtcy5wdXNoKFwiY2hhdFVzZXJFeHRlcm5hbElkPVwiICsgY3VlaSk7XG4gICAgICAgIH0pXG4gIFxuICAgICAgfVxuICBcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXR1c2VyL1wiICsgY2hhdElkICsgXCI/XCIgKyBwYXJhbXMuam9pbihcIiZcIik7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Q2hhdFVzZXI0QXBwW10+KHVybCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgICB9XG4gIFxuICAgIHJlbW92ZVVzZXJDaGF0KGNoYXRJZDogc3RyaW5nLCBjaGF0VXNlcklkPzogc3RyaW5nLCBjaGF0VXNlckV4dGVybmFsSWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENoYXRVc2VyNEFwcD4ge1xuICAgICAgbGV0IHBhcmFtID0gXCJcIjtcbiAgICAgIGlmIChjaGF0VXNlcklkKSB7XG4gICAgICAgIHBhcmFtID0gXCJjaGF0VXNlcklkPVwiICsgY2hhdFVzZXJJZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmFtID0gXCJjaGF0VXNlckV4dGVybmFsSWQ9XCIgKyBjaGF0VXNlckV4dGVybmFsSWQ7XG4gICAgICB9XG4gIFxuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdHVzZXIvXCIgKyBjaGF0SWQgKyBcIj9cIiArIHBhcmFtO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPENoYXRVc2VyNEFwcD4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gICAgdXBkYXRlVXNlckNoYXQoY2hhdElkOiBzdHJpbmcsIGNoYXJVc2VyNEFwcFVwZGF0ZTogQ2hhdFVzZXI0QXBwKTogT2JzZXJ2YWJsZTxDaGF0VXNlcjRBcHA+IHtcbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0dXNlci9cIiArIGNoYXRJZDtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxDaGF0VXNlcjRBcHA+KHVybCwgY2hhclVzZXI0QXBwVXBkYXRlLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gIFxuICAgIGNyZWF0ZVVzZXJDaGF0KGNoYXRJZDogc3RyaW5nLCBjaGF0VXNlcjRBcHA6IENoYXRVc2VyNEFwcCk6IE9ic2VydmFibGU8Q2hhdFVzZXI0QXBwPiB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0dXNlci9cIiArIGNoYXRJZDtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2hhdFVzZXI0QXBwPih1cmwsIGNoYXRVc2VyNEFwcCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgICB9XG4gIFxuICAgIGNyZWF0ZVVzZXJzQ2hhdChjaGF0SWQ6IHN0cmluZywgY2hhdFVzZXI0QXBwOiBDaGF0VXNlcjRBcHBbXSk6IE9ic2VydmFibGU8Q2hhdFVzZXI0QXBwW10+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXR1c2VyL3VzZXJzL1wiICsgY2hhdElkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDaGF0VXNlcjRBcHBbXT4odXJsLCBjaGF0VXNlcjRBcHAsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICBcbiAgXG4gICAgY3JlYXRlQ2hhdChjaGF0NGFwcDogQ2hhdDRBcHApOiBPYnNlcnZhYmxlPENoYXQ0QXBwPiB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0XCI7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENoYXQ0QXBwPih1cmwsIGNoYXQ0YXBwLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgICBjcmVhdGVVcGRhdGVDaGF0KGNoYXQ0YXBwOiBDaGF0NEFwcCk6IE9ic2VydmFibGU8Q2hhdDRBcHA+IHtcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXRcIjtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxDaGF0NEFwcD4odXJsLCBjaGF0NGFwcCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgICB9XG4gIFxuICBcbiAgICBnZXRMYXN0TWVzc2FnZUdyb3VwKGNoYXRFeHRlcm5hbElkOiBzdHJpbmcsIGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2hhdFVzZXJSZXNwb25zZTRBcHA+IHtcbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9sYXN0TWVzc2FnZUdyb3VwP2NoYXRFeHRlcm5hbElkPVwiICsgY2hhdEV4dGVybmFsSWQgKyBcIiZncm91cElkPVwiICsgZ3JvdXBJZDtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDaGF0VXNlclJlc3BvbnNlNEFwcD4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgICBnZXRMYXN0TWVzc2FnZShjaGF0RXh0ZXJuYWxJZDogc3RyaW5nLCBjaGF0VXNlckV4dGVybmFsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2hhdFVzZXJSZXNwb25zZTRBcHA+IHtcbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9sYXN0TWVzc2FnZT9jaGF0RXh0ZXJuYWxJZD1cIiArIGNoYXRFeHRlcm5hbElkICsgXCImY2hhdFVzZXJFeHRlcm5hbElkPVwiICsgY2hhdFVzZXJFeHRlcm5hbElkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENoYXRVc2VyUmVzcG9uc2U0QXBwPih1cmwsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGNvdW50Tm90UmVhZE1lc3NhZ2VzKGNoYXRVc2VyRXh0ZXJuYWxJZDogc3RyaW5nLCBjaGF0RXh0ZXJuYWxJZD86IHN0cmluZywgZ3JvdXBJZD86IHN0cmluZyk6IE9ic2VydmFibGU8Q2hhdFVzZXJSZXNwb25zZTRBcHA+IHtcbiAgXG4gICAgICBsZXQgdXJsID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9jb3VudE5vdFJlYWRNZXNzYWdlcz9jaGF0VXNlckV4dGVybmFsSWQ9XCIgKyBjaGF0VXNlckV4dGVybmFsSWQ7XG4gIFxuICAgICAgaWYgKGNoYXRFeHRlcm5hbElkICYmIGNoYXRFeHRlcm5hbElkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdXJsICs9IFwiJmNoYXRFeHRlcm5hbElkPVwiICsgY2hhdEV4dGVybmFsSWQ7XG4gICAgICB9XG4gIFxuICAgICAgaWYgKGdyb3VwSWQgJiYgZ3JvdXBJZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHVybCArPSBcIiZncm91cElkPVwiICsgZ3JvdXBJZDtcbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDaGF0VXNlclJlc3BvbnNlNEFwcD4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gIFxuICAgIGdldENoYXRCeUV4dGVybmFsSWQoZXh0ZXJuYWxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGF0NEFwcD4ge1xuICBcbiAgICAgIGxldCB1cmwgPSB0aGlzLmNoYXRVcmwgKyBcImNoYXQ/ZXh0ZXJuYWxJZD1cIiArIGV4dGVybmFsSWQ7XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q2hhdDRBcHA+KHVybCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgfSlcbiAgICB9XG4gICAgcmVhZE1lc3NhZ2UoY2hhdE1lc3NhZ2VJZDogc3RyaW5nLCB0b0lkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gIFxuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdG1lc3NhZ2UvcmVhZC9cIiArIGNoYXRNZXNzYWdlSWQ7XG4gIFxuICAgICAgaWYgKHRvSWQgJiYgdG9JZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHVybCArPSBcIi9cIiArIHRvSWQ7XG4gICAgICB9XG4gIFxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8dm9pZD4odXJsLCBudWxsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgICBvbmxpbmUoY2hhdElkOiBzdHJpbmcsIGNoYXRVc2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gIFxuICAgICAgbGV0IHVybCA9IHRoaXMuY2hhdFVybCArIFwiY2hhdG1lc3NhZ2Uvb25saW5lL1wiICsgY2hhdElkICsgXCIvXCIgKyBjaGF0VXNlcklkO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRCZWFyZXJUb2tlbigpKVxuICAgICAgICB9KVxuICAgIH1cbiAgXG4gIFxuICAgIHNlbmRGaWxlKGNoYXRJZDogc3RyaW5nLCBmcm9tSWQ6IHN0cmluZywgdG9JZDogc3RyaW5nLCBmaWxlVG9VcGxvYWQ6IEZpbGUpOiBPYnNlcnZhYmxlPENoYXRNZXNzYWdlRmlsZTRBcHA+IHtcbiAgICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9zZW5kRmlsZS9cIiArIGNoYXRJZCArIFwiL1wiICsgZnJvbUlkICsgXCIvXCIgKyB0b0lkO1xuICBcbiAgICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZVRvVXBsb2FkKTtcbiAgXG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5wb3N0PENoYXRNZXNzYWdlRmlsZTRBcHA+KGVuZHBvaW50LCBmb3JtRGF0YSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldEJlYXJlclRva2VuKCkpXG4gICAgICAgICAgfSk7XG4gICAgfVxuICBcbiAgICBzZW5kRmlsZUdyb3VwKGNoYXRJZDogc3RyaW5nLCBmcm9tSWQ6IHN0cmluZywgZ3JvdXBJZDogc3RyaW5nLCBmaWxlVG9VcGxvYWQ6IEZpbGUpOiBPYnNlcnZhYmxlPENoYXRNZXNzYWdlRmlsZTRBcHA+IHtcbiAgICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jaGF0VXJsICsgXCJjaGF0bWVzc2FnZS9zZW5kRmlsZUdyb3VwL1wiICsgY2hhdElkICsgXCIvXCIgKyBmcm9tSWQgKyBcIi9cIiArIGdyb3VwSWQ7XG4gIFxuICAgICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlVG9VcGxvYWQpO1xuICBcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8Q2hhdE1lc3NhZ2VGaWxlNEFwcD4oZW5kcG9pbnQsIGZvcm1EYXRhLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0QmVhcmVyVG9rZW4oKSlcbiAgICAgICAgICB9KTtcbiAgICB9XG4gIFxuICBcbiAgICAvKiBUb2tlbiAqL1xuICAgIGdldEJlYXJlclRva2VuKCk6IHN0cmluZyB7XG4gIFxuICAgICAgbGV0IHJldCA9IFwiQmVhcmVyIFwiICsgd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJjaGF0NEFwcFNlc3Npb25Ub2tlblwiKTtcbiAgXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgXG4gIFxuICAgIHNldFRva2VuQ2hhdDRhcHAoY2hhdDRBcHBTZXNzaW9uVG9rZW46IHN0cmluZykge1xuICBcbiAgXG4gICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImNoYXQ0QXBwU2Vzc2lvblRva2VuXCIsIGNoYXQ0QXBwU2Vzc2lvblRva2VuKTtcbiAgICB9XG4gIFxuICBcbiAgICAvKiBDb25uZWN0aW9uICovXG4gIFxuICAgIG9uTWVzc2FnZUZpcmViYXNlUmVjZWl2ZWQoZGF0YTogYW55LCBjaGF0Q2FsbGJhY2s6IElDaGF0Q2FsbGJhY2spIHtcbiAgXG4gIFxuICAgICAgLy9hbGVydChcIm9uTWVzc2FnZVJlY2VpdmVkIGNvbm5lY3RGaXJlYmFzZVwiKTtcbiAgXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwibXNnXCIpIHtcbiAgXG4gICAgICAgIGxldCBjaGF0NGFwcE1lc3NhZ2UgPSBuZXcgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSgpO1xuICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5jaGF0SWQgPSBkYXRhLmNoYXRJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuY2hhdE1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZXh0ZXJuYWxJZCA9IGRhdGEuZXh0ZXJuYWxJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZnJvbUlkID0gZGF0YS5mcm9tSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLnRvSWQgPSBkYXRhLnRvSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmRhdGVIb3VyID0gZGF0YS5kYXRlSG91cjtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEudHlwZSA9IGRhdGEudHlwZTtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLm5vdGlmaWNhdGlvbi5ib2R5ID0gZGF0YS5ib2R5O1xuICBcbiAgICAgICAgaWYgKGRhdGEuZmlsZUlkICYmIGRhdGEuZmlsZUlkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5maWxlSWQgPSBkYXRhLmZpbGVJZDtcbiAgICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5maWxlTmFtZSA9IGRhdGEuZmlsZU5hbWU7XG4gICAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZmlsZVNpemUgPSBkYXRhLmZpbGVTaXplO1xuICAgICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmZpbGVUeXBlID0gZGF0YS5maWxlVHlwZTtcbiAgXG4gICAgICAgIH1cbiAgXG4gICAgICAgIGxldCBkYXRUbXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBcbiAgICAgICAgZm9yIChsZXQga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICBkYXRUbXAuc2V0KGtleSwgZGF0YVtrZXldKTtcbiAgICAgICAgfVxuICBcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuYWxsID0gZGF0VG1wO1xuICBcbiAgICAgICAgY2hhdENhbGxiYWNrLm9uTWVzc2FnZShjaGF0NGFwcE1lc3NhZ2UpO1xuICBcbiAgICAgIH0gZWxzZSBpZiAoKGRhdGEudHlwZSA9PSBcIm9uXCIgfHwgZGF0YS50eXBlID09IFwib2ZmXCIpKSB7XG4gICAgICAgIGxldCBjaGF0NGFwcE1lc3NhZ2UgPSBuZXcgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSgpO1xuICAgICAgICBjaGF0NGFwcE1lc3NhZ2UuZGF0YS5jaGF0SWQgPSBkYXRhLmNoYXRJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuY2hhdE1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZXh0ZXJuYWxJZCA9IGRhdGEuZXh0ZXJuYWxJZDtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEuZnJvbUlkID0gZGF0YS5mcm9tSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLnRvSWQgPSBkYXRhLnRvSWQ7XG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmRhdGVIb3VyID0gZGF0YS5kYXRlSG91cjtcbiAgICAgICAgY2hhdDRhcHBNZXNzYWdlLmRhdGEudHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgICBsZXQgZGF0VG1wID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgZGF0VG1wLnNldChrZXksIGRhdGFba2V5XSk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGNoYXQ0YXBwTWVzc2FnZS5kYXRhLmFsbCA9IGRhdFRtcDtcbiAgXG4gICAgICAgIGNoYXRDYWxsYmFjay5vbk9mZmxpbmUoY2hhdDRhcHBNZXNzYWdlKTtcbiAgICBcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIGNvbm5lY3RXZWJzb2NrZXQoY2hhdENhbGxiYWNrOiBJQ2hhdENhbGxiYWNrLCB0b2tlbjogc3RyaW5nKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgXG4gICAgICBsZXQgc2VjdXJpdHlUb2tlbiA9IHRoaXMuZ2V0QmVhcmVyVG9rZW4oKTtcbiAgXG4gICAgICB0aGlzLnNvY2sgPSBuZXcgU29ja0pTKHRoaXMuY2hhdFNlcnZlciArICcvc3RvbXAvZ2t6LXN0b21wLWVuZHBvaW50P3Rva2VuPScgKyBzZWN1cml0eVRva2VuKTtcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQgPSBTdG9tcC5vdmVyKHRoaXMuc29jayk7XG4gICAgICB0aGlzLnN0b21wQ2xpZW50LmRlYnVnID0gZnVuY3Rpb24gKG1zZzogYW55KSB7XG4gICAgICAgIC8vY29uc29sZS5sb2cobXNnKTtcbiAgICAgIH1cbiAgXG4gICAgICB0aGlzLnN0b21wQ2xpZW50LmNvbm5lY3Qoe30sIChmcmFtZTogYW55KSA9PiB7XG4gICAgICAgIC8vY29uc29sZS5sb2coZnJhbWUpO1xuICBcbiAgICAgICAgdGhpcy5zdG9tcENsaWVudC5zdWJzY3JpYmUoJy9xdWV1ZS8nICsgdG9rZW4sIChtc2c6IGFueSkgPT4ge1xuICAgICAgICAgIC8vY29uc29sZS5sb2coJ21lbnNhZ2VtJywgbXNnKTtcbiAgXG4gICAgICAgICAgaWYgKG1zZy5jb21tYW5kID09IFwiTUVTU0FHRVwiKSB7XG4gIFxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhtc2cpXG4gIFxuICAgICAgICAgICAgbGV0IG1zZ09iaiA9IEpTT04ucGFyc2UobXNnLmJvZHkpO1xuICBcbiAgICAgICAgICAgIGxldCBkYXRUbXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBtc2dPYmouZGF0YSkge1xuICAgICAgICAgICAgICBkYXRUbXAuc2V0KGtleSwgbXNnT2JqLmRhdGFba2V5XSk7XG4gICAgICAgICAgICB9XG4gIFxuICAgICAgICAgICAgbXNnT2JqLmRhdGEuYWxsID0gZGF0VG1wO1xuICBcbiAgICAgICAgICAgIGlmIChtc2dPYmouZGF0YS50eXBlID09IFwibXNnXCIpIHtcbiAgICAgICAgICAgICAgY2hhdENhbGxiYWNrLm9uTWVzc2FnZShtc2dPYmopO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgobXNnT2JqLmRhdGEudHlwZSA9PSBcIm9uXCIgfHwgbXNnT2JqLmRhdGEudHlwZSA9PSBcIm9mZlwiKSkge1xuICAgICAgICAgICAgICBjaGF0Q2FsbGJhY2sub25PZmZsaW5lKG1zZ09iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vY2FsbGJhY2sobXNnLmJvZHkpO1xuICAgICAgICAgICAgLy8gaWNoYXRjYWxsYmFjay5mb3JFYWNoKChpQ2hhdCk9PntcbiAgICAgICAgICAgIC8vICAgaUNoYXQub25NZXNzYWdlKEpTT04ucGFyc2UobXNnLmJvZHkpICk7XG4gICAgICAgICAgICAvLyB9KTtcbiAgICAgICAgICB9XG4gIFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAgIChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBjaGVjayBtZXNzYWdlIGZvciBkaXNjb25uZWN0XG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRpc2Nvbm5lY3RcIik7XG4gIFxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0V2Vic29ja2V0KGNoYXRDYWxsYmFjaywgdG9rZW4pO1xuICAgICAgICAgIH0sIDUwMCk7XG4gIFxuICAgICAgICB9KTtcbiAgXG4gICAgfVxuICBcbiAgICBkaXNjb25uZWN0KCkge1xuLy8gICAgICBjb25zb2xlLmxvZyhcImRpc2Nvbm5lY3RcIilcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0aGlzLnN0b21wQ2xpZW50KSB7XG4gICAgICAgICAgdGhpcy5zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnZlcnRDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlVG9DaGF0TWVzc2FnZTRBcHAobXNnOiBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlKTogQ2hhdE1lc3NhZ2U0QXBwe1xuICAgICAgbGV0IG1lc3NhZ2UgPSBuZXcgQ2hhdE1lc3NhZ2U0QXBwKCk7XG4gICAgICBtZXNzYWdlLmJvZHkgPSBtc2cubm90aWZpY2F0aW9uLmJvZHk7XG4gICAgICBtZXNzYWdlLmNoYXRJZCA9IG1zZy5kYXRhLmNoYXRJZDtcbiAgICAgIG1lc3NhZ2UuZnJvbUlkID0gbXNnLmRhdGEuZnJvbUlkO1xuICAgICAgbWVzc2FnZS50b0lkID0gbXNnLmRhdGEudG9JZDtcbiAgICAgIG1lc3NhZ2UuZGF0ZUhvdXJJbmNsdWRlZCA9IG1vbWVudC51dGMobXNnLmRhdGEuZGF0ZUhvdXIsIFwiREQtTU0tWVlZWSBoaDptbTpzc1wiKS50b0RhdGUoKTtcblxuICAgICAgaWYgKG1zZy5kYXRhLmZpbGVJZCAmJiBtc2cuZGF0YS5maWxlSWQubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgbWVzc2FnZUZpbGUgPSBuZXcgQ2hhdE1lc3NhZ2VGaWxlNEFwcCgpO1xuICAgICAgICBcbiAgICAgICAgbWVzc2FnZUZpbGUuaWQgPSBtc2cuZGF0YS5maWxlSWQ7XG4gICAgICAgIG1lc3NhZ2VGaWxlLm5hbWUgPSBtc2cuZGF0YS5maWxlTmFtZTtcbiAgICAgICAgbWVzc2FnZUZpbGUuc2l6ZSA9IG1zZy5kYXRhLmZpbGVTaXplO1xuICAgICAgICBtZXNzYWdlRmlsZS50eXBlID0gbXNnLmRhdGEuZmlsZVR5cGU7XG5cbiAgICAgICAgbWVzc2FnZS5jaGF0TWVzc2FnZUZpbGUgPSBtZXNzYWdlRmlsZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG5cbiAgICB9XG4gIFxuICB9XG4gIFxuICBcbiAgZXhwb3J0IGNsYXNzIENoYXQ0QXBwIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNvbmZpZ0lkOiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxJZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBDaGF0U3RhdHVzNEFwcDtcbiAgICB1c2VyczogQXJyYXk8Q2hhdFVzZXI0QXBwPjtcbiAgXG4gIH1cbiAgZXhwb3J0IGNsYXNzIENoYXRVc2VyNEFwcCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY2xpZW50VG9rZW46IHN0cmluZztcbiAgICBwaWN0dXJlUGF0aDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxJZDogc3RyaW5nO1xuICAgIHN0YXR1czogQ2hhdFVzZXJTdGF0dXM0QXBwO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0TWVzc2FnZTRBcHAge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZnJvbUlkOiBzdHJpbmc7XG4gICAgdG9JZDogc3RyaW5nO1xuICAgIGNoYXRJZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYm9keTogc3RyaW5nO1xuICAgIG1ldGE6IEFycmF5PENoYXRNZXNzYWdlTWV0YTRBcHA+O1xuICAgIGdyb3VwSWQ6IHN0cmluZztcbiAgICByZWFkOiBCb29sZWFuO1xuICAgIGRhdGVIb3VySW5jbHVkZWQ6IERhdGU7XG4gICAgY2hhdE1lc3NhZ2VGaWxlOiBDaGF0TWVzc2FnZUZpbGU0QXBwO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0TWVzc2FnZUZpbGU0QXBwIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIH1cbiAgZXhwb3J0IGNsYXNzIENoYXRNZXNzYWdlTWV0YTRBcHAge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlIHtcbiAgICBkYXRhOiBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlRGF0YSA9IG5ldyBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlRGF0YSgpO1xuICAgIG5vdGlmaWNhdGlvbjogQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZU5vdGlmaWNhdGlvbiA9IG5ldyBDaGF0NEFwcE1lc3NhZ2VSZWNlaXZlTm90aWZpY2F0aW9uKCk7XG4gICAgdG9rZW46IHN0cmluZztcbiAgfVxuICBleHBvcnQgY2xhc3MgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZURhdGEge1xuICAgIHRvSWQ6IHN0cmluZztcbiAgICBjaGF0SWQ6IHN0cmluZztcbiAgICBkYXRlSG91cjogc3RyaW5nO1xuICAgIGNoYXRNZXNzYWdlSWQ6IHN0cmluZztcbiAgICBleHRlcm5hbElkOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGZyb21JZDogc3RyaW5nO1xuICAgIGZpbGVJZDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgZmlsZVNpemU6IG51bWJlcjtcbiAgICBmaWxlVHlwZTogc3RyaW5nO1xuICAgIGFsbDogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgXG4gIFxuICBcbiAgfVxuICBleHBvcnQgY2xhc3MgQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZU5vdGlmaWNhdGlvbiB7XG4gICAgYm9keTogc3RyaW5nO1xuICB9XG4gIFxuICBleHBvcnQgY2xhc3MgQ2hhdFVzZXJSZXNwb25zZTRBcHAge1xuICAgIHRvdGFsTWVzc2FnZXM6IG51bWJlcjtcbiAgICBjaGF0OiBDaGF0NEFwcDtcbiAgICBjaGF0TWVzc2FnZTogQ2hhdE1lc3NhZ2U0QXBwO1xuICAgIGNoYXRzOiBDaGF0VXNlclJlc3BvbnNlNEFwcFtdO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0RmlsdGVyUmVxdWVzdDRBcHAge1xuICAgIHR5cGU6IENoYXRGaWx0ZXJUeXBlO1xuICAgIGNoYXRFeHRlcm5hbElkOiBzdHJpbmc7XG4gICAgY2hhdFVzZXJFeHRlcm5hbElkOiBzdHJpbmc7XG4gICAgZ3JvdXBJZDogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBjbGFzcyBDaGF0NEFwcENvbmZpZyB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVuZHBvaW50OiBzdHJpbmcpIHtcbiAgICAgIFxuICAgIH1cbiAgfVxuXG4gIFxuICBleHBvcnQgZW51bSBDaGF0U3RhdHVzNEFwcCB7XG4gICAgQ1JFQVRFRCA9IFwiQ1JFQVRFRFwiLFxuICAgIENMT1NFRCA9IFwiQ0xPU0VEXCJcbiAgXG4gIH1cbiAgZXhwb3J0IGVudW0gQ2hhdFVzZXJTdGF0dXM0QXBwIHtcbiAgICBSRU1PVkVEID0gXCJSRU1PVkVEXCJcbiAgXG4gIH1cbiAgZXhwb3J0IGVudW0gQ2hhdEZpbHRlclR5cGUge1xuICAgIENPVU5UX05PVF9SRUFEID0gMSxcbiAgICBMQVNUX01FU1NBR0UgPSAyXG4gIH1cbiAgXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNoYXRDYWxsYmFjayB7XG4gICAgb25NZXNzYWdlKG1zZzogQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSk6IHZvaWQ7XG4gICAgb25PZmZsaW5lKG1zZzogQ2hhdDRBcHBNZXNzYWdlUmVjZWl2ZSk6IHZvaWQ7XG4gIH1cbiAgIl19
@@ -18,17 +18,18 @@ class Chat4appClientAngularService {
18
18
  this.chatServer = chat4AppConfig.endpoint;
19
19
  this.chatUrl = chat4AppConfig.endpoint + "/api/v1/";
20
20
  }
21
- init(callback, chatCallback, token) {
21
+ init(securityChatToken, callback, chatCallback, connectionClientId) {
22
22
  if (!this.chatServer || this.chatServer.trim().length == 0) {
23
- throw new Error("Invalid endpoint");
23
+ throw new Error("Endpoint is empty");
24
24
  }
25
- this.getTokenChat4app().subscribe((res) => {
26
- this.setTokenChat4app(res.token);
27
- if (chatCallback && token) {
28
- this.connectWebsocket(chatCallback, token);
29
- }
30
- callback(res.token);
31
- });
25
+ if (!securityChatToken || securityChatToken.trim().length == 0) {
26
+ throw new Error("SecurityChatToken is empty");
27
+ }
28
+ this.setTokenChat4app(securityChatToken);
29
+ if (chatCallback && connectionClientId) {
30
+ this.connectWebsocket(chatCallback, connectionClientId);
31
+ }
32
+ callback(securityChatToken);
32
33
  }
33
34
  getChatUrlDownload(messageFileId) {
34
35
  return this.chatUrl + "chatmessage/getFile?messageFileId=" + messageFileId;
@@ -185,9 +186,6 @@ class Chat4appClientAngularService {
185
186
  let ret = "Bearer " + window.sessionStorage.getItem("chat4AppSessionToken");
186
187
  return ret;
187
188
  }
188
- getTokenChat4app() {
189
- return this.http.post("/rest/secured/chat-helper", null);
190
- }
191
189
  setTokenChat4app(chat4AppSessionToken) {
192
190
  window.sessionStorage.setItem("chat4AppSessionToken", chat4AppSessionToken);
193
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat4app-client-angular.js","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts","../../../projects/chat4app-client-angular/src/public-api.ts","../../../projects/chat4app-client-angular/src/chat4app-client-angular.ts"],"sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n \n sock: any;\n stompClient: any;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n }\n \n init(callback: any, chatCallback?: IChatCallback, token?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Invalid endpoint\");\n }\n\n this.getTokenChat4app().subscribe((res: any) => {\n this.setTokenChat4app(res.token);\n \n if (chatCallback && token) {\n this.connectWebsocket(chatCallback, token);\n }\n \n callback(res.token);\n })\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n getTokenChat4app() {\n return this.http.post(\"/rest/secured/chat-helper\", null);\n }\n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n \n }\n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n }\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n this.connectWebsocket(chatCallback, token);\n }, 500);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg.notification.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n chatMessageFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string) {\n \n }\n }\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n","/*\n * Public API Surface of chat4app-client-angular\n */\n\nexport * from './lib/chat4app-client-angular.service';\nexport * from './lib/chat4app-client-angular.component';\nexport * from './lib/chat4app-client-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat4app-client-angular.js","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts","../../../projects/chat4app-client-angular/src/public-api.ts","../../../projects/chat4app-client-angular/src/chat4app-client-angular.ts"],"sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n \n sock: any;\n stompClient: any;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n \n }\n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n }\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n this.connectWebsocket(chatCallback, token);\n }, 500);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg.notification.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n chatMessageFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string) {\n \n }\n }\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n","/*\n * Public API Surface of chat4app-client-angular\n */\n\nexport * from './lib/chat4app-client-angular.service';\nexport * from './lib/chat4app-client-angular.component';\nexport * from './lib/chat4app-client-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export declare class Chat4appClientAngularService implements OnInit {
10
10
  constructor(http: HttpClient);
11
11
  ngOnInit(): void;
12
12
  config(chat4AppConfig: Chat4AppConfig): void;
13
- init(callback: any, chatCallback?: IChatCallback, token?: string): void;
13
+ init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string): void;
14
14
  getChatUrlDownload(messageFileId: string): string;
15
15
  getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>>;
16
16
  getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>>;
@@ -32,7 +32,6 @@ export declare class Chat4appClientAngularService implements OnInit {
32
32
  sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App>;
33
33
  sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App>;
34
34
  getBearerToken(): string;
35
- getTokenChat4app(): Observable<Object>;
36
35
  setTokenChat4app(chat4AppSessionToken: string): void;
37
36
  onMessageFirebaseReceived(data: any, chatCallback: IChatCallback): void;
38
37
  connectWebsocket(chatCallback: IChatCallback, token: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"chat4app-client-angular.service.d.ts","sourceRoot":"","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat4app-client-angular.service.d.ts","sourceRoot":"","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chat4app-client-angular",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^11.1.1",
6
6
  "@angular/core": "^11.1.1"