@burgan-tech/morph-touch-runtime 0.0.2 → 0.0.4

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.
Files changed (261) hide show
  1. package/burgan-tech-morph-touch-runtime-0.0.4.tgz +0 -0
  2. package/{touch → morph-touch}/Functions/check-livekit-room-access.1.0.0.json +2 -2
  3. package/{touch → morph-touch}/Functions/check-livekit-room-access.http +1 -1
  4. package/{touch → morph-touch}/Functions/get-absence-entry.1.0.0.json +2 -2
  5. package/{touch → morph-touch}/Functions/get-advisor-stats.1.0.0.json +2 -2
  6. package/morph-touch/Functions/get-available-slots.1.0.0.json +30 -0
  7. package/{touch → morph-touch}/Functions/get-available-slots.http +4 -2
  8. package/morph-touch/Functions/get-chat-rooms.1.0.0.json +28 -0
  9. package/{touch → morph-touch}/Functions/get-chat-rooms.http +2 -2
  10. package/{touch → morph-touch}/Functions/get-customer-info.1.0.0.json +2 -2
  11. package/{touch → morph-touch}/Functions/get-matrix-sync.1.0.0.json +2 -2
  12. package/morph-touch/Functions/get-rezervations.1.0.0.json +26 -0
  13. package/{touch → morph-touch}/Functions/get-rezervations.http +2 -2
  14. package/{touch → morph-touch}/Functions/get-room-messages.1.0.0.json +2 -2
  15. package/{touch → morph-touch}/Functions/get-room-messages.http +1 -1
  16. package/{touch → morph-touch}/Functions/rezervation-transfer.http +1 -1
  17. package/{touch → morph-touch}/Functions/send-room-message.1.0.0.json +2 -2
  18. package/{touch → morph-touch}/Functions/src/GetAvailableSlotsMapping.csx +125 -1
  19. package/{touch → morph-touch}/Functions/src/GetChatRoomsMapping.csx +6 -7
  20. package/{touch → morph-touch}/Functions/src/GetRezervationsMapping.csx +12 -5
  21. package/{touch → morph-touch}/Schemas/absence-entry.1.0.0.json +3 -3
  22. package/{touch → morph-touch}/Schemas/advisor-chat-rooms.1.0.0.json +2 -2
  23. package/{touch → morph-touch}/Schemas/chat-room.1.0.0.json +2 -2
  24. package/morph-touch/Schemas/chat-room.1.1.0.json +132 -0
  25. package/morph-touch/Schemas/chat-room.1.2.0.json +174 -0
  26. package/{touch → morph-touch}/Schemas/notification-sender.1.0.0.json +2 -2
  27. package/{touch → morph-touch}/Schemas/portfolio-manager.1.0.0.json +2 -2
  28. package/{touch → morph-touch}/Schemas/rezervation.1.0.0.json +2 -2
  29. package/{touch → morph-touch}/Tasks/cancel-absence-entry-for-rezervation.1.0.0.json +2 -2
  30. package/{touch → morph-touch}/Tasks/check-already-completed-chat-room.1.0.0.json +3 -3
  31. package/{touch → morph-touch}/Tasks/check-duplicate-portfolio-manager.1.0.0.json +3 -3
  32. package/{touch → morph-touch}/Tasks/check-duplicate-rezervation.1.0.0.json +3 -3
  33. package/{touch → morph-touch}/Tasks/check-existing-permanent-chat-room.1.0.0.json +3 -3
  34. package/{touch → morph-touch}/Tasks/check-randevu-time.1.0.0.json +1 -1
  35. package/{touch → morph-touch}/Tasks/create-permanent-chat-room.1.0.0.json +1 -1
  36. package/{touch → morph-touch}/Tasks/determine-transfer-type.1.0.0.json +1 -1
  37. package/{touch → morph-touch}/Tasks/enrich-rezervations-for-transfer.1.0.0.json +3 -3
  38. package/{touch → morph-touch}/Tasks/execute-permanent-chatroom-update.1.0.0.json +3 -3
  39. package/{touch → morph-touch}/Tasks/execute-rez-chatroom-transfer.1.0.0.json +2 -2
  40. package/{touch → morph-touch}/Tasks/execute-rezervation-transfer.1.0.0.json +2 -2
  41. package/{touch → morph-touch}/Tasks/fetch-absence-entries-for-transfer.1.0.0.json +3 -3
  42. package/{touch → morph-touch}/Tasks/fetch-advisors-for-transfer.1.0.0.json +3 -3
  43. package/{touch → morph-touch}/Tasks/fetch-permanent-chatrooms-for-transfer.1.0.0.json +3 -3
  44. package/{touch → morph-touch}/Tasks/fetch-rez-chatrooms-for-transfer.1.0.0.json +3 -3
  45. package/{touch → morph-touch}/Tasks/fetch-rezervations-for-transfer.1.0.0.json +3 -3
  46. package/{touch → morph-touch}/Tasks/get-absence-entry-task.1.0.0.json +3 -3
  47. package/{touch → morph-touch}/Tasks/get-available-slots-http.1.0.0.json +2 -2
  48. package/{touch → morph-touch}/Tasks/get-available-slots.1.0.0.json +3 -3
  49. package/{touch → morph-touch}/Tasks/get-chat-room-data-for-rezervation.1.0.0.json +3 -3
  50. package/{touch → morph-touch}/Tasks/get-chat-token.1.0.0.json +1 -1
  51. package/{touch → morph-touch}/Tasks/get-matrix-room-messages.1.0.0.json +1 -1
  52. package/{touch → morph-touch}/Tasks/get-matrix-sync.1.0.0.json +1 -1
  53. package/{touch → morph-touch}/Tasks/get-rezervation-data-task.1.0.0.json +3 -3
  54. package/{touch → morph-touch}/Tasks/get-rezervation-state-task.1.0.0.json +3 -3
  55. package/{touch → morph-touch}/Tasks/get-rezervations-task.1.0.0.json +3 -3
  56. package/{touch → morph-touch}/Tasks/get-user-info-for-rezervation.1.0.0.json +1 -1
  57. package/{touch → morph-touch}/Tasks/get-video-call-url.1.0.0.json +1 -1
  58. package/{touch → morph-touch}/Tasks/invite-user-to-rezervation-room.1.0.0.json +1 -1
  59. package/{touch → morph-touch}/Tasks/join-chat-room-for-rezervation.1.0.0.json +1 -1
  60. package/{touch → morph-touch}/Tasks/join-matrix-room.1.0.0.json +1 -1
  61. package/{touch → morph-touch}/Tasks/join-user-to-room.1.0.0.json +1 -1
  62. package/{touch → morph-touch}/Tasks/merge-invited-user.1.0.0.json +1 -1
  63. package/{touch → morph-touch}/Tasks/merge-rezervation-update.1.0.0.json +1 -1
  64. package/{touch → morph-touch}/Tasks/merge-target-advisor-for-transfer.1.0.0.json +1 -1
  65. package/{touch → morph-touch}/Tasks/merge-update-body-for-randevu-update.1.0.0.json +1 -1
  66. package/{touch → morph-touch}/Tasks/merge-video-call-urls.1.0.0.json +1 -1
  67. package/{touch → morph-touch}/Tasks/query-chat-room-instances.1.0.0.json +3 -3
  68. package/{touch → morph-touch}/Tasks/remove-member-from-room.1.0.0.json +1 -1
  69. package/{touch → morph-touch}/Tasks/send-matrix-room-message.1.0.0.json +1 -1
  70. package/{touch → morph-touch}/Tasks/send-push-notification.1.0.0.json +1 -1
  71. package/{touch → morph-touch}/Tasks/send-sms-notification.1.0.0.json +1 -1
  72. package/{touch → morph-touch}/Tasks/set-chat-room-status-active.1.0.0.json +1 -1
  73. package/{touch → morph-touch}/Tasks/set-chat-room-status-deactive.1.0.0.json +1 -1
  74. package/morph-touch/Tasks/set-matrix-room-history-visibility.1.0.0.json +26 -0
  75. package/{touch → morph-touch}/Tasks/set-previous-advisor.1.0.0.json +1 -1
  76. package/{touch → morph-touch}/Tasks/set-user-from-headers-for-rezervation.1.0.0.json +1 -1
  77. package/{touch → morph-touch}/Tasks/start-absence-entry-for-rezervation.1.0.0.json +2 -2
  78. package/{touch → morph-touch}/Tasks/start-chat-room-for-rezervation.1.0.0.json +2 -2
  79. package/{touch → morph-touch}/Tasks/start-notification-sender.1.0.0.json +2 -2
  80. package/{touch → morph-touch}/Tasks/start-permanent-chat-room.1.0.0.json +2 -2
  81. package/{touch → morph-touch}/Tasks/start-transfer-from-absence-entry.1.0.0.json +2 -2
  82. package/{touch → morph-touch}/Tasks/start-video-call.1.0.0.json +2 -2
  83. package/morph-touch/Tasks/summarize-chat-openai.1.0.0.json +27 -0
  84. package/morph-touch/Tasks/test-get-rezervation-count-by-advisor.1.0.0.json +22 -0
  85. package/morph-touch/Tasks/test-get-rezervation-instances-after-date.1.0.0.json +24 -0
  86. package/{touch → morph-touch}/Tasks/trigger-chat-room-deactivate.1.0.0.json +2 -2
  87. package/{touch → morph-touch}/Tasks/trigger-chat-room-transfer.1.0.0.json +2 -2
  88. package/{touch → morph-touch}/Tasks/trigger-chat-room-update.1.0.0.json +2 -2
  89. package/{touch → morph-touch}/Tasks/trigger-rezervation-add-invited-participant.1.0.0.json +2 -2
  90. package/{touch → morph-touch}/Tasks/trigger-rezervation-apply-update.1.0.0.json +2 -2
  91. package/{touch → morph-touch}/Tasks/trigger-rezervation-to-in-meet.1.0.0.json +2 -2
  92. package/{touch → morph-touch}/Tasks/trigger-rezervation-video-call-update.1.0.0.json +2 -2
  93. package/{touch → morph-touch}/Tasks/validate-date-for-rezervation.1.0.0.json +1 -1
  94. package/{touch → morph-touch}/Tasks/validate-slot-for-rezervation.1.0.0.json +3 -3
  95. package/{touch → morph-touch}/Tasks/validate-transfer-availability.1.0.0.json +3 -3
  96. package/{touch → morph-touch}/Workflows/absence-entry.http +21 -21
  97. package/{touch → morph-touch}/Workflows/absence-entry.json +3 -3
  98. package/{touch → morph-touch}/Workflows/add-participant-to-rezervation.http +3 -3
  99. package/{touch → morph-touch}/Workflows/add-participant-to-rezervation.json +23 -24
  100. package/{touch → morph-touch}/Workflows/chat-room.http +10 -8
  101. package/{touch → morph-touch}/Workflows/chat-room.json +37 -24
  102. package/{touch → morph-touch}/Workflows/investment-advisor.json +2 -2
  103. package/{touch → morph-touch}/Workflows/notification-sender.http +13 -13
  104. package/{touch → morph-touch}/Workflows/notification-sender.json +5 -5
  105. package/{touch → morph-touch}/Workflows/portfolio-manager.json +2 -2
  106. package/{touch → morph-touch}/Workflows/randevu-update.http +6 -6
  107. package/{touch → morph-touch}/Workflows/rezervation-start.json +16 -16
  108. package/{touch → morph-touch}/Workflows/rezervation-transfer.json +125 -22
  109. package/{touch → morph-touch}/Workflows/rezervation-update.http +6 -6
  110. package/{touch → morph-touch}/Workflows/rezervation-update.json +19 -19
  111. package/{touch → morph-touch}/Workflows/rezervation.http +6 -6
  112. package/{touch → morph-touch}/Workflows/rezervation.json +121 -180
  113. package/{touch → morph-touch}/Workflows/src/CancelAbsenceEntryForRezervationMapping.csx +1 -1
  114. package/{touch → morph-touch}/Workflows/src/CancelAbsenceForRandevuUpdateMapping.csx +1 -1
  115. package/{touch → morph-touch}/Workflows/src/ChatRoomRemoveMapping.csx +22 -1
  116. package/{touch → morph-touch}/Workflows/src/ChatRoomTransferInviteMapping.csx +21 -0
  117. package/{touch → morph-touch}/Workflows/src/ChatRoomUpdateMapping.csx +21 -0
  118. package/{touch → morph-touch}/Workflows/src/CreateAbsenceEntryForRezervationMapping.csx +1 -1
  119. package/{touch → morph-touch}/Workflows/src/CreateAbsenceForRandevuUpdateMapping.csx +1 -1
  120. package/{touch → morph-touch}/Workflows/src/CreateChatRoomForRezervationMapping.csx +12 -2
  121. package/{touch → morph-touch}/Workflows/src/CreatePermanentChatRoomMapping.csx +50 -9
  122. package/morph-touch/Workflows/src/DeactivatePermanentChatRoomFromTransferMapping.csx +133 -0
  123. package/{touch → morph-touch}/Workflows/src/EnrichRezervationsForTransferMapping.csx +16 -3
  124. package/{touch → morph-touch}/Workflows/src/ExecutePermanentChatRoomUpdateMapping.csx +23 -18
  125. package/{touch → morph-touch}/Workflows/src/ExecuteRezChatRoomTransferMapping.csx +1 -1
  126. package/{touch → morph-touch}/Workflows/src/ExecuteTransferMapping.csx +15 -12
  127. package/{touch → morph-touch}/Workflows/src/FetchAdvisorsForTransferMapping.csx +55 -7
  128. package/{touch → morph-touch}/Workflows/src/FetchPermanentChatRoomsMapping.csx +65 -2
  129. package/morph-touch/Workflows/src/FetchRoomMessagesForSummaryMapping.csx +182 -0
  130. package/{touch → morph-touch}/Workflows/src/GetChatRoomDataForRezervationMapping.csx +2 -2
  131. package/{touch → morph-touch}/Workflows/src/GetRezervationDataForAddParticipantMapping.csx +1 -1
  132. package/{touch → morph-touch}/Workflows/src/GetRezervationDataForRandevuUpdateMapping.csx +1 -1
  133. package/{touch → morph-touch}/Workflows/src/GetRezervationDataMapping.csx +2 -2
  134. package/{touch → morph-touch}/Workflows/src/GetRezervationStateForRandevuUpdateMapping.csx +1 -1
  135. package/{touch → morph-touch}/Workflows/src/GetRezervationStateMapping.csx +2 -2
  136. package/{touch → morph-touch}/Workflows/src/InvitedUserNotAllowedRule.csx +1 -1
  137. package/{touch → morph-touch}/Workflows/src/JoinUserToRoomMapping.csx +22 -1
  138. package/morph-touch/Workflows/src/NoOpGetInstancesTestMapping.csx +19 -0
  139. package/morph-touch/Workflows/src/PermanentProcessNextTerminationRule.csx +51 -0
  140. package/{touch → morph-touch}/Workflows/src/SendPushNotificationMapping.csx +2 -2
  141. package/{touch → morph-touch}/Workflows/src/SendSmsNotificationMapping.csx +1 -1
  142. package/morph-touch/Workflows/src/SendSummaryToNewRoomMapping.csx +178 -0
  143. package/morph-touch/Workflows/src/SetRoomHistoryVisibilityMapping.csx +109 -0
  144. package/{touch → morph-touch}/Workflows/src/StartChatRoomForRezervationMapping.csx +4 -3
  145. package/{touch → morph-touch}/Workflows/src/StartGetChatTokenForRezervationMapping.csx +1 -1
  146. package/morph-touch/Workflows/src/StartNewPermanentChatRoomFromTransferMapping.csx +197 -0
  147. package/{touch → morph-touch}/Workflows/src/StartNotificationForAdvisorMapping.csx +1 -1
  148. package/{touch → morph-touch}/Workflows/src/StartNotificationForRezervationFromUserInfoMapping.csx +1 -1
  149. package/{touch → morph-touch}/Workflows/src/StartNotificationForUserMapping.csx +1 -1
  150. package/{touch → morph-touch}/Workflows/src/StartPermanentChatRoomMapping.csx +5 -2
  151. package/{touch → morph-touch}/Workflows/src/StartTransferFromAbsenceEntryMapping.csx +6 -14
  152. package/{touch → morph-touch}/Workflows/src/StateInMeetRule.csx +1 -1
  153. package/morph-touch/Workflows/src/SummarizeChatWithOpenAIMapping.csx +172 -0
  154. package/{touch → morph-touch}/Workflows/src/TriggerChatRoomDeactivateMapping.csx +1 -1
  155. package/{touch → morph-touch}/Workflows/src/TriggerChatRoomTransferMapping.csx +1 -1
  156. package/{touch → morph-touch}/Workflows/src/TriggerChatRoomUpdateMapping.csx +3 -3
  157. package/{touch → morph-touch}/Workflows/src/TriggerRezervationAddInvitedParticipantMapping.csx +1 -1
  158. package/{touch → morph-touch}/Workflows/src/TriggerRezervationApplyUpdateMapping.csx +1 -1
  159. package/{touch → morph-touch}/Workflows/src/TriggerRezervationToInMeetMapping.csx +1 -1
  160. package/{touch → morph-touch}/Workflows/src/TriggerRezervationVideoCallUpdateMapping.csx +1 -1
  161. package/{touch → morph-touch}/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +29 -1
  162. package/{touch → morph-touch}/Workflows/src/ValidateSlotForRezervationMapping.csx +29 -1
  163. package/{touch → morph-touch}/Workflows/src/ValidateTransferMapping.csx +2 -2
  164. package/{touch → morph-touch}/Workflows/start-chat.json +6 -6
  165. package/{touch → morph-touch}/Workflows/start-video-call.http +3 -3
  166. package/{touch → morph-touch}/Workflows/start-video-call.json +4 -4
  167. package/package.json +1 -1
  168. package/vnext.config.json +6 -6
  169. package/burgan-tech-morph-touch-runtime-0.0.2.tgz +0 -0
  170. package/touch/Functions/get-available-slots.1.0.0.json +0 -30
  171. package/touch/Functions/get-chat-rooms.1.0.0.json +0 -28
  172. package/touch/Functions/get-rezervations.1.0.0.json +0 -26
  173. /package/{touch → morph-touch}/Extensions/.gitkeep +0 -0
  174. /package/{touch → morph-touch}/Functions/.gitkeep +0 -0
  175. /package/{touch → morph-touch}/Functions/src/CheckLivekitRoomAccessMapping.csx +0 -0
  176. /package/{touch → morph-touch}/Functions/src/GetAbsenceEntryMapping.csx +0 -0
  177. /package/{touch → morph-touch}/Functions/src/GetAdvisorStatsMapping.csx +0 -0
  178. /package/{touch → morph-touch}/Functions/src/GetCustomerInfoMapping.csx +0 -0
  179. /package/{touch → morph-touch}/Functions/src/GetMatrixSyncMapping.csx +0 -0
  180. /package/{touch → morph-touch}/Functions/src/GetRoomMessagesMapping.csx +0 -0
  181. /package/{touch → morph-touch}/Functions/src/SendCancelNotificationMapping.csx +0 -0
  182. /package/{touch → morph-touch}/Functions/src/SendRoomMessageMapping.csx +0 -0
  183. /package/{touch → morph-touch}/Schemas/.gitkeep +0 -0
  184. /package/{touch → morph-touch}/Tasks/.gitkeep +0 -0
  185. /package/{touch → morph-touch}/Views/.gitkeep +0 -0
  186. /package/{touch → morph-touch}/Workflows/.gitkeep +0 -0
  187. /package/{touch → morph-touch}/Workflows/src/AllChatRoomsSuccessRule.csx +0 -0
  188. /package/{touch → morph-touch}/Workflows/src/AlwaysTrueRule.csx +0 -0
  189. /package/{touch → morph-touch}/Workflows/src/AnyChatRoomFailedRule.csx +0 -0
  190. /package/{touch → morph-touch}/Workflows/src/AutoProcessRule.csx +0 -0
  191. /package/{touch → morph-touch}/Workflows/src/BuildRezChatRoomPlanMapping.csx +0 -0
  192. /package/{touch → morph-touch}/Workflows/src/CanStartRezervationTimerMapping.csx +0 -0
  193. /package/{touch → morph-touch}/Workflows/src/CanStartTransferMapping.csx +0 -0
  194. /package/{touch → morph-touch}/Workflows/src/ChatRoomCreatedFailedRule.csx +0 -0
  195. /package/{touch → morph-touch}/Workflows/src/ChatRoomCreatedSuccessRule.csx +0 -0
  196. /package/{touch → morph-touch}/Workflows/src/ChatRoomTransferRemoveMapping.csx +0 -0
  197. /package/{touch → morph-touch}/Workflows/src/CheckAlreadyCompletedChatRoomMapping.csx +0 -0
  198. /package/{touch → morph-touch}/Workflows/src/CheckDuplicatePortfolioManagerMapping.csx +0 -0
  199. /package/{touch → morph-touch}/Workflows/src/CheckDuplicateRezervationMapping.csx +0 -0
  200. /package/{touch → morph-touch}/Workflows/src/CheckExistingPermanentChatRoomMapping.csx +0 -0
  201. /package/{touch → morph-touch}/Workflows/src/CheckRandevuTimeMapping.csx +0 -0
  202. /package/{touch → morph-touch}/Workflows/src/CheckRezervationStateActiveOrInMeetRule.csx +0 -0
  203. /package/{touch → morph-touch}/Workflows/src/CustomerControlToEndRule.csx +0 -0
  204. /package/{touch → morph-touch}/Workflows/src/DetermineTransferTypeMapping.csx +0 -0
  205. /package/{touch → morph-touch}/Workflows/src/FetchAbsenceEntriesForTransferMapping.csx +0 -0
  206. /package/{touch → morph-touch}/Workflows/src/FetchRezervationsForTransferMapping.csx +0 -0
  207. /package/{touch → morph-touch}/Workflows/src/GetChatTokenMapping.csx +0 -0
  208. /package/{touch → morph-touch}/Workflows/src/GetUserInfoForRezervationMapping.csx +0 -0
  209. /package/{touch → morph-touch}/Workflows/src/GetVideoCallUrlMapping.csx +0 -0
  210. /package/{touch → morph-touch}/Workflows/src/HasChangedAdvisorRule.csx +0 -0
  211. /package/{touch → morph-touch}/Workflows/src/HasChatIntegrationRule.csx +0 -0
  212. /package/{touch → morph-touch}/Workflows/src/HasExistingPermanentRoomRule.csx +0 -0
  213. /package/{touch → morph-touch}/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +0 -0
  214. /package/{touch → morph-touch}/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +0 -0
  215. /package/{touch → morph-touch}/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +0 -0
  216. /package/{touch → morph-touch}/Workflows/src/InvitedUserMergeMapping.csx +0 -0
  217. /package/{touch → morph-touch}/Workflows/src/InvitedUserNotInMeetRule.csx +0 -0
  218. /package/{touch → morph-touch}/Workflows/src/IsNotfSentRule.csx +0 -0
  219. /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +0 -0
  220. /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +0 -0
  221. /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForRezervationMapping.csx +0 -0
  222. /package/{touch → morph-touch}/Workflows/src/JoinMatrixRoomMapping.csx +0 -0
  223. /package/{touch → morph-touch}/Workflows/src/LoginForAddParticipantChatMapping.csx +0 -0
  224. /package/{touch → morph-touch}/Workflows/src/LoginForRandevuStartChatMapping.csx +0 -0
  225. /package/{touch → morph-touch}/Workflows/src/MergeRezervationUpdateMapping.csx +0 -0
  226. /package/{touch → morph-touch}/Workflows/src/MergeTargetAdvisorForTransferMapping.csx +0 -0
  227. /package/{touch → morph-touch}/Workflows/src/MergeUpdateBodyForRandevuUpdateMapping.csx +0 -0
  228. /package/{touch → morph-touch}/Workflows/src/NoExistingPermanentRoomRule.csx +0 -0
  229. /package/{touch → morph-touch}/Workflows/src/NotificationCompleteAlwaysRule.csx +0 -0
  230. /package/{touch → morph-touch}/Workflows/src/NotificationCompleteFromPendingRule.csx +0 -0
  231. /package/{touch → morph-touch}/Workflows/src/NotificationCompleteFromSmsRule.csx +0 -0
  232. /package/{touch → morph-touch}/Workflows/src/NotificationPushFromPendingRule.csx +0 -0
  233. /package/{touch → morph-touch}/Workflows/src/NotificationPushFromSmsRule.csx +0 -0
  234. /package/{touch → morph-touch}/Workflows/src/NotificationSmsPendingRule.csx +0 -0
  235. /package/{touch → morph-touch}/Workflows/src/PermanentDoneRule.csx +0 -0
  236. /package/{touch → morph-touch}/Workflows/src/PermanentProcessNextRule.csx +0 -0
  237. /package/{touch → morph-touch}/Workflows/src/RezChatRoomProcessNextRule.csx +0 -0
  238. /package/{touch → morph-touch}/Workflows/src/RezChatRoomsDoneRule.csx +0 -0
  239. /package/{touch → morph-touch}/Workflows/src/SetChatRoomStatusActiveMapping.csx +0 -0
  240. /package/{touch → morph-touch}/Workflows/src/SetChatRoomStatusDeactiveMapping.csx +0 -0
  241. /package/{touch → morph-touch}/Workflows/src/SetPreviousAdvisorMapping.csx +0 -0
  242. /package/{touch → morph-touch}/Workflows/src/SetUserFromHeadersForRezervationMapping.csx +0 -0
  243. /package/{touch → morph-touch}/Workflows/src/SlotAvailableRule.csx +0 -0
  244. /package/{touch → morph-touch}/Workflows/src/SlotUnavailableRule.csx +0 -0
  245. /package/{touch → morph-touch}/Workflows/src/StartVideoCallCustomerSubFlowMapping.csx +0 -0
  246. /package/{touch → morph-touch}/Workflows/src/StartVideoCallForInvitedParticipantMapping.csx +0 -0
  247. /package/{touch → morph-touch}/Workflows/src/StartVideoCallForRandevuStartMapping.csx +0 -0
  248. /package/{touch → morph-touch}/Workflows/src/StartVideoCallStaffSubFlowMapping.csx +0 -0
  249. /package/{touch → morph-touch}/Workflows/src/StateActiveForUpdateRule.csx +0 -0
  250. /package/{touch → morph-touch}/Workflows/src/StateActiveRule.csx +0 -0
  251. /package/{touch → morph-touch}/Workflows/src/StateNotActiveForUpdateRule.csx +0 -0
  252. /package/{touch → morph-touch}/Workflows/src/StateNotActiveOrInMeetRule.csx +0 -0
  253. /package/{touch → morph-touch}/Workflows/src/StatusCustomerEnterRule.csx +0 -0
  254. /package/{touch → morph-touch}/Workflows/src/StatusStaffEnterRule.csx +0 -0
  255. /package/{touch → morph-touch}/Workflows/src/SyncWorkingHoursRule.csx +0 -0
  256. /package/{touch → morph-touch}/Workflows/src/TokenSuccessRule.csx +0 -0
  257. /package/{touch → morph-touch}/Workflows/src/TransferAllDoneRule.csx +0 -0
  258. /package/{touch → morph-touch}/Workflows/src/TransferHasInvalidRule.csx +0 -0
  259. /package/{touch → morph-touch}/Workflows/src/TransferProcessNextRule.csx +0 -0
  260. /package/{touch → morph-touch}/Workflows/src/ValidateDateForRezervationMapping.csx +0 -0
  261. /package/{touch → morph-touch}/Workflows/src/VideoCallUrlUpdateMergeMapping.csx +0 -0
@@ -20,12 +20,12 @@
20
20
 
21
21
  @baseUrl = http://localhost:4201
22
22
  @apiVersion = 1
23
- @domain = touch
23
+ @domain = morph-touch
24
24
  @workflow = chat-room
25
25
 
26
26
  @user = core.user.user-001
27
- @pmAdvisorId = touch.portfolio-manager.pm-001
28
- @iaAdvisorId = touch.investment-advisor.ia-001
27
+ @pmAdvisorId = morph-touch.portfolio-manager.pm-001
28
+ @iaAdvisorId = morph-touch.investment-advisor.ia-001
29
29
 
30
30
  ###############################################################################
31
31
  # #
@@ -116,8 +116,9 @@ X-Request-Id: {{$guid}}
116
116
  ###############################################################################
117
117
 
118
118
  ### Update (Add Member)
119
- # Invites a new member to the permanent room via /_matrix/client/v3/rooms/{roomId}/invite.
120
- # State: complete complete
119
+ # 1) PUT m.room.history_visibility (when attributes.historyVisibility is set: shared | invited | joined | world_readable).
120
+ # 2) Invite + join. Omit historyVisibility to leave room history setting unchanged (noop GET /versions).
121
+ # State: activated → activated
121
122
  # @name updateChatRoom
122
123
  PATCH {{baseUrl}}/api/v{{apiVersion}}/{{domain}}/workflows/{{workflow}}/instances/{{instanceId}}/transitions/update
123
124
  Content-Type: application/json
@@ -126,7 +127,8 @@ X-Request-Id: {{$guid}}
126
127
 
127
128
  {
128
129
  "attributes": {
129
- "newMemberId": "touch.portfolio-manager.pm-002"
130
+ "newMemberId": "morph-touch.portfolio-manager.pm-002",
131
+ "historyVisibility": "joined"
130
132
  }
131
133
  }
132
134
 
@@ -147,7 +149,7 @@ X-Request-Id: {{$guid}}
147
149
 
148
150
  {
149
151
  "attributes": {
150
- "removeMemberId": "touch.portfolio-manager.pm-002"
152
+ "removeMemberId": "morph-touch.portfolio-manager.pm-002"
151
153
  }
152
154
  }
153
155
 
@@ -168,7 +170,7 @@ X-Request-Id: {{$guid}}
168
170
 
169
171
  {
170
172
  "attributes": {
171
- "newAdvisorId": "touch.portfolio-manager.pm-003"
173
+ "newAdvisorId": "morph-touch.portfolio-manager.pm-003"
172
174
  }
173
175
  }
174
176
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "key": "chat-room",
3
3
  "flow": "sys-flows",
4
- "domain": "touch",
4
+ "domain": "morph-touch",
5
5
  "version": "1.0.0",
6
6
  "flowVersion": "2.0.0",
7
7
  "tags": [
@@ -24,25 +24,25 @@
24
24
  ],
25
25
  "functions": [
26
26
  {
27
- "domain": "touch",
27
+ "domain": "morph-touch",
28
28
  "flow": "sys-functions",
29
29
  "key": "get-chat-rooms",
30
30
  "version": "1.0.0"
31
31
  },
32
32
  {
33
- "domain": "touch",
33
+ "domain": "morph-touch",
34
34
  "flow": "sys-functions",
35
35
  "key": "get-room-messages",
36
36
  "version": "1.0.0"
37
37
  },
38
38
  {
39
- "domain": "touch",
39
+ "domain": "morph-touch",
40
40
  "flow": "sys-functions",
41
41
  "key": "send-room-message",
42
42
  "version": "1.0.0"
43
43
  },
44
44
  {
45
- "domain": "touch",
45
+ "domain": "morph-touch",
46
46
  "flow": "sys-functions",
47
47
  "key": "get-matrix-sync",
48
48
  "version": "1.0.0"
@@ -86,7 +86,7 @@
86
86
  {
87
87
  "order": 1,
88
88
  "task": {
89
- "domain": "touch",
89
+ "domain": "morph-touch",
90
90
  "flow": "sys-tasks",
91
91
  "key": "check-already-completed-chat-room",
92
92
  "version": "1.0.0"
@@ -119,27 +119,27 @@
119
119
  {
120
120
  "order": 2,
121
121
  "task": {
122
- "domain": "touch",
122
+ "domain": "morph-touch",
123
123
  "flow": "sys-tasks",
124
124
  "key": "create-permanent-chat-room",
125
125
  "version": "1.0.0"
126
126
  },
127
127
  "mapping": {
128
128
  "location": "./src/CreatePermanentChatRoomMapping.csx",
129
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY3JlYXRlLXBlcm1hbmVudC1jaGF0LXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSBzdWJmbG93LgovLy8gQ3JlYXRlcyBhIHBlcm1hbmVudCBNYXRyaXggcm9vbSB2aWEgbmF0aXZlIC9fbWF0cml4L2NsaWVudC92My9jcmVhdGVSb29tLgovLy8gQVBJU0lYIGNvbnZlcnRzIFgtTWF0cml4LVVzZXIgaGVhZGVyIHRvIEJlYXJlciB0b2tlbiBhdXRvbWF0aWNhbGx5LgovLy8gUm9vbSBuYW1lID0ge3VzZXJ9X3tpbnN0YW5jZUtleX0te2Fkdmlzb3JUeXBlfSwgYWR2aXNvciBpbnZpdGVkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ3JlYXRlUGVybWFuZW50Q2hhdFJvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYygidm5leHQtc2VjcmV0IiwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2NyZWF0ZVJvb20iOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIGluc3RhbmNlS2V5ID0gY29udGV4dC5JbnN0YW5jZT8uS2V5OwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IGRhdGE/LnVzZXI/LlRvU3RyaW5nKCk7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gZGF0YT8uYWR2aXNvclR5cGU/LlRvU3RyaW5nKCkgPz8gInBtIjsKICAgICAgICB2YXIgYWR2aXNvcklkID0gZGF0YT8uYWR2aXNvcklkPy5Ub1N0cmluZygpOwoKICAgICAgICB2YXIgcHJlZml4ZWROYW1lID0gJCJ7aW5zdGFuY2VLZXl9IjsKICAgICAgICB2YXIgYWxpYXNOYW1lID0gJCJ7aW5zdGFuY2VLZXl9IjsKICAgICAgICB2YXIgdG9waWMgPSAkIlJvb20gY3JlYXRlZCBieSB7dXNlcn0iOwoKICAgICAgICB2YXIgaW52aXRlTGlzdCA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgaW52aXRlTGlzdC5BZGQoYWR2aXNvcklkLlN0YXJ0c1dpdGgoIkAiKSA/IGFkdmlzb3JJZCA6ICQiQHthZHZpc29ySWR9OmxvY2FsaG9zdCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICB2YXIgYm9keSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgbmFtZSA9IHByZWZpeGVkTmFtZSwKICAgICAgICAgICAgcm9vbV9hbGlhc19uYW1lID0gYWxpYXNOYW1lLAogICAgICAgICAgICB0b3BpYyA9IHRvcGljLAogICAgICAgICAgICBwcmVzZXQgPSAicHJpdmF0ZV9jaGF0IiwKICAgICAgICAgICAgdmlzaWJpbGl0eSA9ICJwcml2YXRlIiwKICAgICAgICAgICAgaW5pdGlhbF9zdGF0ZSA9IG5ld1tdCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5ldyB7IHR5cGUgPSAibS5yb29tLmpvaW5fcnVsZXMiLCBzdGF0ZV9rZXkgPSAiIiwgY29udGVudCA9IG5ldyB7IGpvaW5fcnVsZSA9ICJpbnZpdGUiIH0gfQogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnZpdGUgPSBpbnZpdGVMaXN0CiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KGJvZHkpOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGJvZHlEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBHZXRTdHJpbmcoYm9keURhdGEsICJyb29tX2lkIik7CiAgICAgICAgc3RyaW5nIGVycmNvZGUgPSBHZXRTdHJpbmcoYm9keURhdGEsICJlcnJjb2RlIik7CiAgICAgICAgc3RyaW5nIGVycm9yTXNnID0gR2V0U3RyaW5nKGJvZHlEYXRhLCAiZXJyb3IiKTsKICAgICAgICBzdHJpbmcgYWR2aXNvcklkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGVycmNvZGUpKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGVycmNvZGUgPT0gIk1fUk9PTV9JTl9VU0UiKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiTV9ST09NX0lOX1VTRSIpOwoKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNc2csCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gZXJyY29kZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgdXNlciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJ1c2VyIik7CiAgICAgICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IHVzZXIsIHJvbGUgPSAib3duZXIiIH0pOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gYWR2aXNvcklkLCByb2xlID0gImFkdmlzb3IiIH0pOwoKICAgICAgICAgICAgc3RyaW5nIHJvb21UeXBlID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgICAgIHN0cmluZyBzdGFydERhdGVUaW1lID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgc3RyaW5nIGVuZERhdGVUaW1lID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgImVuZERhdGVUaW1lIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByb29tSWQsCiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gKHN0cmluZyludWxsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcm9vbVR5cGUsCiAgICAgICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgICAgIHBlbmRpbmdKb2luVXNlcklkID0gYWR2aXNvcklkCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
129
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY3JlYXRlLXBlcm1hbmVudC1jaGF0LXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSBzdWJmbG93LgovLy8gQ3JlYXRlcyBhIHBlcm1hbmVudCBNYXRyaXggcm9vbSB2aWEgbmF0aXZlIC9fbWF0cml4L2NsaWVudC92My9jcmVhdGVSb29tLgovLy8gQVBJU0lYIGNvbnZlcnRzIFgtTWF0cml4LVVzZXIgaGVhZGVyIHRvIEJlYXJlciB0b2tlbiBhdXRvbWF0aWNhbGx5LgovLy8gUm9vbSBuYW1lID0ge3VzZXJ9X3tpbnN0YW5jZUtleX0te2Fkdmlzb3JUeXBlfSwgYWR2aXNvciBpbnZpdGVkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ3JlYXRlUGVybWFuZW50Q2hhdFJvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHJpdmF0ZSAgcmVhZG9ubHkgSGFzaFNldDxzdHJpbmc+IEFsbG93ZWRIaXN0b3J5VmlzaWJpbGl0eSA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpCiAgICB7CiAgICAgICAgInNoYXJlZCIsICJpbnZpdGVkIiwgImpvaW5lZCIsICJ3b3JsZF9yZWFkYWJsZSIKICAgIH07CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYygidm5leHQtc2VjcmV0IiwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2NyZWF0ZVJvb20iOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIGluc3RhbmNlS2V5ID0gY29udGV4dC5JbnN0YW5jZT8uS2V5OwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgcmFuZGV2dUtleSA9IEdldFN0cmluZyhkYXRhLCAicmFuZGV2dUtleSIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKSA/PyAicG0iOwogICAgICAgIHZhciBhZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciBoaXN0b3J5VmlzaWJpbGl0eSA9IE5vcm1hbGl6ZUhpc3RvcnlWaXNpYmlsaXR5KEdldFN0cmluZyhkYXRhLCAiaGlzdG9yeVZpc2liaWxpdHkiKSkgPz8gImludml0ZWQiOwoKICAgICAgICB2YXIgcm9vbU5hbWUgPSBzdHJpbmcuRXF1YWxzKHJvb21UeXBlLCAicmV6ZXJ2YXRpb24iLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhbmRldnVLZXkpCiAgICAgICAgICAgID8gcmFuZGV2dUtleS5UcmltKCkKICAgICAgICAgICAgOiAoaW5zdGFuY2VLZXkgPz8gc3RyaW5nLkVtcHR5KTsKICAgICAgICB2YXIgbm9ybWFsaXplZFJvb21OYW1lID0gTm9ybWFsaXplUm9vbU5hbWUocm9vbU5hbWUpOwogICAgICAgIHZhciBwcmVmaXhlZE5hbWUgPSBub3JtYWxpemVkUm9vbU5hbWU7CiAgICAgICAgdmFyIGFsaWFzTmFtZSA9IG5vcm1hbGl6ZWRSb29tTmFtZTsKICAgICAgICB2YXIgdG9waWMgPSAkIlJvb20gY3JlYXRlZCBieSB7dXNlcn0iOwoKICAgICAgICB2YXIgaW52aXRlTGlzdCA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgaW52aXRlTGlzdC5BZGQoYWR2aXNvcklkLlN0YXJ0c1dpdGgoIkAiKSA/IGFkdmlzb3JJZCA6ICQiQHthZHZpc29ySWR9OmxvY2FsaG9zdCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICB2YXIgYm9keSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgbmFtZSA9IHByZWZpeGVkTmFtZSwKICAgICAgICAgICAgcm9vbV9hbGlhc19uYW1lID0gYWxpYXNOYW1lLAogICAgICAgICAgICB0b3BpYyA9IHRvcGljLAogICAgICAgICAgICBwcmVzZXQgPSAicHJpdmF0ZV9jaGF0IiwKICAgICAgICAgICAgdmlzaWJpbGl0eSA9ICJwcml2YXRlIiwKICAgICAgICAgICAgaW5pdGlhbF9zdGF0ZSA9IG5ldyBvYmplY3RbXQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXcgeyB0eXBlID0gIm0ucm9vbS5qb2luX3J1bGVzIiwgc3RhdGVfa2V5ID0gIiIsIGNvbnRlbnQgPSBuZXcgeyBqb2luX3J1bGUgPSAiaW52aXRlIiB9IH0sCiAgICAgICAgICAgICAgICBuZXcgeyB0eXBlID0gIm0ucm9vbS5oaXN0b3J5X3Zpc2liaWxpdHkiLCBzdGF0ZV9rZXkgPSAiIiwgY29udGVudCA9IG5ldyB7IGhpc3RvcnlfdmlzaWJpbGl0eSA9IGhpc3RvcnlWaXNpYmlsaXR5IH0gfQogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnZpdGUgPSBpbnZpdGVMaXN0CiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KGJvZHkpOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGJvZHlEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBHZXRTdHJpbmcoYm9keURhdGEsICJyb29tX2lkIik7CiAgICAgICAgc3RyaW5nIGVycmNvZGUgPSBHZXRTdHJpbmcoYm9keURhdGEsICJlcnJjb2RlIik7CiAgICAgICAgc3RyaW5nIGVycm9yTXNnID0gR2V0U3RyaW5nKGJvZHlEYXRhLCAiZXJyb3IiKTsKICAgICAgICBzdHJpbmcgYWR2aXNvcklkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGVycmNvZGUpKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGVycmNvZGUgPT0gIk1fUk9PTV9JTl9VU0UiKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiTV9ST09NX0lOX1VTRSIpOwoKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNc2csCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gZXJyY29kZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgdXNlciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJ1c2VyIik7CiAgICAgICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IHVzZXIsIHJvbGUgPSAib3duZXIiIH0pOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gYWR2aXNvcklkLCByb2xlID0gImFkdmlzb3IiIH0pOwoKICAgICAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXlbdXNlcl0gPSAib3duZXIiOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheVthZHZpc29ySWRdID0gImFkdmlzb3IiOwoKICAgICAgICAgICAgc3RyaW5nIHJvb21UeXBlID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgICAgIHN0cmluZyByYW5kZXZ1S2V5ID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJhbmRldnVLZXkiKTsKICAgICAgICAgICAgc3RyaW5nIHN0YXJ0RGF0ZVRpbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBzdHJpbmcgZW5kRGF0ZVRpbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJvb21JZCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgICAgIHJhbmRldnVLZXksCiAgICAgICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheSwKICAgICAgICAgICAgICAgIHBlbmRpbmdKb2luVXNlcklkID0gYWR2aXNvcklkLAogICAgICAgICAgICAgICAgYm9keURhdGE9Ym9keURhdGEKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlICBzdHJpbmcgTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkoc3RyaW5nIHJhdykKICAgIHsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyYXcpKSByZXR1cm4gbnVsbDsKICAgICAgICB2YXIgbG93ZXIgPSByYXcuVHJpbSgpLlRvTG93ZXJJbnZhcmlhbnQoKTsKICAgICAgICBpZiAoIUFsbG93ZWRIaXN0b3J5VmlzaWJpbGl0eS5Db250YWlucyhsb3dlcikpIHJldHVybiBudWxsOwogICAgICAgIHJldHVybiBsb3dlcjsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBOb3JtYWxpemVSb29tTmFtZShzdHJpbmcgcmF3KQogICAgewogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhdykpIHJldHVybiBzdHJpbmcuRW1wdHk7CiAgICAgICAgcmV0dXJuIHJhdy5UcmltKCkKICAgICAgICAgICAgLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpCiAgICAgICAgICAgIC5SZXBsYWNlKCIuIiwgc3RyaW5nLkVtcHR5KQogICAgICAgICAgICAuUmVwbGFjZSgiOiIsIHN0cmluZy5FbXB0eSk7CiAgICB9Cn0K"
130
130
  }
131
131
  },
132
132
  {
133
133
  "order": 3,
134
134
  "task": {
135
- "domain": "touch",
135
+ "domain": "morph-touch",
136
136
  "flow": "sys-tasks",
137
137
  "key": "join-user-to-room",
138
138
  "version": "1.0.0"
139
139
  },
140
140
  "mapping": {
141
141
  "location": "./src/JoinUserToRoomMapping.csx",
142
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgc3RhcnREYXRlVGltZSwKICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzCiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
142
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIHJvb21UeXBlLAogICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICBlbmREYXRlVGltZSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
143
143
  }
144
144
  }
145
145
  ],
@@ -220,7 +220,7 @@
220
220
  {
221
221
  "order": 1,
222
222
  "task": {
223
- "domain": "touch",
223
+ "domain": "morph-touch",
224
224
  "flow": "sys-tasks",
225
225
  "key": "set-chat-room-status-active",
226
226
  "version": "1.0.0"
@@ -251,27 +251,40 @@
251
251
  {
252
252
  "order": 1,
253
253
  "task": {
254
- "domain": "touch",
254
+ "domain": "morph-touch",
255
+ "flow": "sys-tasks",
256
+ "key": "set-matrix-room-history-visibility",
257
+ "version": "1.0.0"
258
+ },
259
+ "mapping": {
260
+ "location": "./src/SetRoomHistoryVisibilityMapping.csx",
261
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3Igc2V0LW1hdHJpeC1yb29tLWhpc3RvcnktdmlzaWJpbGl0eSBIdHRwVGFzayAoVHlwZSA2KSBpbiBjaGF0LXJvb20gdXBkYXRlIHRyYW5zaXRpb24uCi8vLyBSdW5zIGJlZm9yZSBpbnZpdGU6IHNldHMgbS5yb29tLmhpc3RvcnlfdmlzaWJpbGl0eSB3aGVuIHRyYW5zaXRpb24gcHJvdmlkZXMgaGlzdG9yeVZpc2liaWxpdHkuCi8vLyBXaGVuIGFic2VudC9lbXB0eTogbm8tb3AgR0VUIC9fbWF0cml4L2NsaWVudC92My92ZXJzaW9ucyAoaGFybWxlc3MpIHNvIHRoZSBIVFRQIHN0ZXAgc3RpbGwgc3VjY2VlZHMuCi8vLyBYLU1hdHJpeC1Vc2VyID0gcm9vbSBvd25lciAodXNlcikuIE1hdHJpeEJhc2VVcmwgZnJvbSBWYXVsdC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNldFJvb21IaXN0b3J5VmlzaWJpbGl0eU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIYXNoU2V0PHN0cmluZz4gQWxsb3dlZCA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpCiAgICB7CiAgICAgICAgInNoYXJlZCIsICJpbnZpdGVkIiwgImpvaW5lZCIsICJ3b3JsZF9yZWFkYWJsZSIKICAgIH07CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGNoYXRJbnRlZ3JhdGlvbiA9IGRhdGE/LmNoYXRJbnRlZ3JhdGlvbjsKICAgICAgICB2YXIgcm9vbUlkID0gR2V0U3RyaW5nKGNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKCJ2bmV4dC1zZWNyZXQiLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGJhc2VUcmltID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJyk7CgogICAgICAgIHZhciByYXcgPSBHZXRTdHJpbmcoZGF0YSwgImhpc3RvcnlWaXNpYmlsaXR5Iik7CiAgICAgICAgdmFyIGh2ID0gTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkocmF3KTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSB8fCBzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShodikpCiAgICAgICAgewogICAgICAgICAgICBUcnlTZXRIdHRwTWV0aG9kKGh0dHBUYXNrLCAiR0VUIik7CiAgICAgICAgICAgIGh0dHBUYXNrLlNldFVybChiYXNlVHJpbSArICIvX21hdHJpeC9jbGllbnQvdjMvdmVyc2lvbnMiKTsKICAgICAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIH0KCiAgICAgICAgVHJ5U2V0SHR0cE1ldGhvZChodHRwVGFzaywgIlBVVCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gYmFzZVRyaW0gKyAiL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpICsgIi9zdGF0ZS9tLnJvb20uaGlzdG9yeV92aXNpYmlsaXR5LyI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9KTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IGhpc3RvcnlfdmlzaWJpbGl0eSA9IGh2IH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBOb3JtYWxpemVIaXN0b3J5VmlzaWJpbGl0eShzdHJpbmcgcmF3KQogICAgewogICAgICAgIC8vIFVJIGNhbiBvbWl0IGhpc3RvcnlWaXNpYmlsaXR5OyBkZWZhdWx0IHRvIHNoYXJlZCB0byBrZWVwIGZsb3cgc3RlcCBzdWNjZXNzZnVsLgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhdykpIHJldHVybiAic2hhcmVkIjsKICAgICAgICB2YXIgbG93ZXIgPSByYXcuVHJpbSgpLlRvTG93ZXJJbnZhcmlhbnQoKTsKICAgICAgICBpZiAoIUFsbG93ZWQuQ29udGFpbnMobG93ZXIpKSByZXR1cm4gbnVsbDsKICAgICAgICByZXR1cm4gbG93ZXI7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBUcnlTZXRIdHRwTWV0aG9kKEh0dHBUYXNrIGh0dHBUYXNrLCBzdHJpbmcgbWV0aG9kKQogICAgewogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KG1ldGhvZCkpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGR5bmFtaWMgaHQgPSBodHRwVGFzazsKICAgICAgICAgICAgaHQuU2V0TWV0aG9kKG1ldGhvZCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoCiAgICAgICAgewogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
262
+ }
263
+ },
264
+ {
265
+ "order": 2,
266
+ "task": {
267
+ "domain": "morph-touch",
255
268
  "flow": "sys-tasks",
256
269
  "key": "invite-user-to-rezervation-room",
257
270
  "version": "1.0.0"
258
271
  },
259
272
  "mapping": {
260
273
  "location": "./src/ChatRoomUpdateMapping.csx",
261
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHVwZGF0ZSB0cmFuc2l0aW9uLgovLy8gSW52aXRlcyBhIG5ldyBtZW1iZXIgdG8gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2ludml0ZS4KLy8vIEFQSVNJWCBjb252ZXJ0cyBYLU1hdHJpeC1Vc2VyIGhlYWRlciB0byBCZWFyZXIgdG9rZW4gYXV0b21hdGljYWxseS4KLy8vIE1hdHJpeEJhc2VVcmwgaXMgcmVhZCBmcm9tIFZhdWx0ICh2bmV4dC1zZWNyZXQvd29ya2Zsb3ctc2VjcmV0KS4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIENoYXRSb29tVXBkYXRlTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBjaGF0SW50ZWdyYXRpb24gPSBkYXRhPy5jaGF0SW50ZWdyYXRpb247CiAgICAgICAgdmFyIHJvb21JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgbmV3TWVtYmVySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld01lbWJlcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3TWVtYmVySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIvaW52aXRlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBuZXdNZW1iZXJJZC5UcmltKCkuU3RhcnRzV2l0aCgiQCIpID8gbmV3TWVtYmVySWQuVHJpbSgpIDogJCJAe25ld01lbWJlcklkLlRyaW0oKX06bG9jYWxob3N0IjsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBhZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciBuZXdNZW1iZXJJZCA9IEdldFN0cmluZyhkYXRhLCAibmV3TWVtYmVySWQiKTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld01lbWJlcklkKSkKICAgICAgICAgICAgbWVtYmVycy5BZGQobmV3IHsgbWVtYmVySWQgPSBuZXdNZW1iZXJJZCwgcm9sZSA9ICJtZW1iZXIiIH0pOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBwZW5kaW5nSm9pblVzZXJJZCA9IG5ld01lbWJlcklkCiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
274
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHVwZGF0ZSB0cmFuc2l0aW9uLgovLy8gSW52aXRlcyBhIG5ldyBtZW1iZXIgdG8gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2ludml0ZS4KLy8vIEFQSVNJWCBjb252ZXJ0cyBYLU1hdHJpeC1Vc2VyIGhlYWRlciB0byBCZWFyZXIgdG9rZW4gYXV0b21hdGljYWxseS4KLy8vIE1hdHJpeEJhc2VVcmwgaXMgcmVhZCBmcm9tIFZhdWx0ICh2bmV4dC1zZWNyZXQvd29ya2Zsb3ctc2VjcmV0KS4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIENoYXRSb29tVXBkYXRlTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBjaGF0SW50ZWdyYXRpb24gPSBkYXRhPy5jaGF0SW50ZWdyYXRpb247CiAgICAgICAgdmFyIHJvb21JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgbmV3TWVtYmVySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld01lbWJlcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3TWVtYmVySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIvaW52aXRlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBuZXdNZW1iZXJJZC5UcmltKCkuU3RhcnRzV2l0aCgiQCIpID8gbmV3TWVtYmVySWQuVHJpbSgpIDogJCJAe25ld01lbWJlcklkLlRyaW0oKX06bG9jYWxob3N0IjsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBhZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciBuZXdNZW1iZXJJZCA9IEdldFN0cmluZyhkYXRhLCAibmV3TWVtYmVySWQiKTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld01lbWJlcklkKSkKICAgICAgICAgICAgbWVtYmVycy5BZGQobmV3IHsgbWVtYmVySWQgPSBuZXdNZW1iZXJJZCwgcm9sZSA9ICJtZW1iZXIiIH0pOwoKICAgICAgICB2YXIgbWVtYmVyV2l0aG91dEFycmF5ID0gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkobWVtYmVycyk7CgogICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgewogICAgICAgICAgICB1c2VyLAogICAgICAgICAgICBhZHZpc29yVHlwZSwKICAgICAgICAgICAgYWR2aXNvcklkLAogICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcgeyByb29tSWQgfSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheSwKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBuZXdNZW1iZXJJZAogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
262
275
  }
263
276
  },
264
277
  {
265
- "order": 2,
278
+ "order": 3,
266
279
  "task": {
267
- "domain": "touch",
280
+ "domain": "morph-touch",
268
281
  "flow": "sys-tasks",
269
282
  "key": "join-user-to-room",
270
283
  "version": "1.0.0"
271
284
  },
272
285
  "mapping": {
273
286
  "location": "./src/JoinUserToRoomMapping.csx",
274
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgc3RhcnREYXRlVGltZSwKICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzCiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
287
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIHJvb21UeXBlLAogICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICBlbmREYXRlVGltZSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
275
288
  }
276
289
  }
277
290
  ]
@@ -295,14 +308,14 @@
295
308
  {
296
309
  "order": 1,
297
310
  "task": {
298
- "domain": "touch",
311
+ "domain": "morph-touch",
299
312
  "flow": "sys-tasks",
300
313
  "key": "remove-member-from-room",
301
314
  "version": "1.0.0"
302
315
  },
303
316
  "mapping": {
304
317
  "location": "./src/ChatRoomRemoveMapping.csx",
305
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVtb3ZlLW1lbWJlci1mcm9tLXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSByZW1vdmUgdHJhbnNpdGlvbi4KLy8vIEtpY2tzIGEgbWVtYmVyIGZyb20gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2tpY2suCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVJlbW92ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJlbW92ZU1lbWJlcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKCJ2bmV4dC1zZWNyZXQiLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvcm9vbXMvIiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHJvb21JZCkgKyAiL2tpY2siOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIG1hdHJpeFVzZXJJZCA9IHJlbW92ZU1lbWJlcklkLlRyaW0oKS5TdGFydHNXaXRoKCJAIikgPyByZW1vdmVNZW1iZXJJZC5UcmltKCkgOiAkIkB7cmVtb3ZlTWVtYmVySWQuVHJpbSgpfTpsb2NhbGhvc3QiOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IHVzZXJfaWQgPSBtYXRyaXhVc2VySWQgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICBzdHJpbmcgcm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWVtYmVycyA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgIm1lbWJlcnMiKSAmJiBkYXRhLm1lbWJlcnMgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtIGluIGRhdGEubWVtYmVycykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG1pZCA9IEdldFN0cmluZyhtLCAibWVtYmVySWQiKSA/PyBHZXRTdHJpbmcobSwgImFkdmlzb3JJZCIpOwogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkgJiYgbWlkICE9IHJlbW92ZU1lbWJlcklkKQogICAgICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgewogICAgICAgICAgICB1c2VyLAogICAgICAgICAgICBhZHZpc29yVHlwZSwKICAgICAgICAgICAgYWR2aXNvcklkLAogICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcgeyByb29tSWQgfSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
318
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVtb3ZlLW1lbWJlci1mcm9tLXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSByZW1vdmUgdHJhbnNpdGlvbi4KLy8vIEtpY2tzIGEgbWVtYmVyIGZyb20gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2tpY2suCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVJlbW92ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJlbW92ZU1lbWJlcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKCJ2bmV4dC1zZWNyZXQiLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvcm9vbXMvIiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHJvb21JZCkgKyAiL2tpY2siOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIG1hdHJpeFVzZXJJZCA9IHJlbW92ZU1lbWJlcklkLlRyaW0oKS5TdGFydHNXaXRoKCJAIikgPyByZW1vdmVNZW1iZXJJZC5UcmltKCkgOiAkIkB7cmVtb3ZlTWVtYmVySWQuVHJpbSgpfTpsb2NhbGhvc3QiOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IHVzZXJfaWQgPSBtYXRyaXhVc2VySWQgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICBzdHJpbmcgcm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWVtYmVycyA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgIm1lbWJlcnMiKSAmJiBkYXRhLm1lbWJlcnMgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtIGluIGRhdGEubWVtYmVycykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG1pZCA9IEdldFN0cmluZyhtLCAibWVtYmVySWQiKSA/PyBHZXRTdHJpbmcobSwgImFkdmlzb3JJZCIpOwogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkgJiYgbWlkICE9IHJlbW92ZU1lbWJlcklkKQogICAgICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgbWVtYmVyV2l0aG91dEFycmF5ID0gbWVtYmVyV2l0aG91dEFycmF5CiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KElFbnVtZXJhYmxlPG9iamVjdD4gbWVtYmVycykKICAgIHsKICAgICAgICB2YXIgbWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7CiAgICAgICAgaWYgKG1lbWJlcnMgPT0gbnVsbCkgcmV0dXJuIG1hcDsKICAgICAgICBmb3JlYWNoIChkeW5hbWljIG0gaW4gbWVtYmVycykKICAgICAgICB7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBtLm1lbWJlcklkPy5Ub1N0cmluZygpID8/IG0uYWR2aXNvcklkPy5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWlkKSkgY29udGludWU7CiAgICAgICAgICAgICAgICBtYXBbbWlkXSA9IG0ucm9sZT8uVG9TdHJpbmcoKSA/PyAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcDsKICAgIH0KfQo="
306
319
  }
307
320
  }
308
321
  ]
@@ -326,7 +339,7 @@
326
339
  {
327
340
  "order": 1,
328
341
  "task": {
329
- "domain": "touch",
342
+ "domain": "morph-touch",
330
343
  "flow": "sys-tasks",
331
344
  "key": "remove-member-from-room",
332
345
  "version": "1.0.0"
@@ -339,27 +352,27 @@
339
352
  {
340
353
  "order": 2,
341
354
  "task": {
342
- "domain": "touch",
355
+ "domain": "morph-touch",
343
356
  "flow": "sys-tasks",
344
357
  "key": "invite-user-to-rezervation-room",
345
358
  "version": "1.0.0"
346
359
  },
347
360
  "mapping": {
348
361
  "location": "./src/ChatRoomTransferInviteMapping.csx",
349
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHRyYW5zZmVyIHRyYW5zaXRpb24gKGludml0ZSBzdGVwKS4KLy8vIEludml0ZXMgdGhlIG5ldyBhZHZpc29yIHRvIHRoZSByb29tIGFmdGVyIHRoZSBvbGQgb25lIHdhcyBraWNrZWQuCi8vLyBVc2VzIC9fbWF0cml4L2NsaWVudC92My9yb29tcy97cm9vbUlkfS9pbnZpdGUuCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyBNYXRyaXhCYXNlVXJsIGlzIHJlYWQgZnJvbSBWYXVsdCAodm5leHQtc2VjcmV0L3dvcmtmbG93LXNlY3JldCkuCi8vLyBBbHNvIHVwZGF0ZXMgaW5zdGFuY2VEYXRhLmFkdmlzb3JJZCB0byB0aGUgbmV3IGFkdmlzb3IuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVRyYW5zZmVySW52aXRlTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBjaGF0SW50ZWdyYXRpb24gPSBkYXRhPy5jaGF0SW50ZWdyYXRpb247CiAgICAgICAgdmFyIHJvb21JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG5ld0Fkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAibmV3QWR2aXNvcklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkgfHwgc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShuZXdBZHZpc29ySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIvaW52aXRlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBuZXdBZHZpc29ySWQuVHJpbSgpLlN0YXJ0c1dpdGgoIkAiKSA/IG5ld0Fkdmlzb3JJZC5UcmltKCkgOiAkIkB7bmV3QWR2aXNvcklkLlRyaW0oKX06bG9jYWxob3N0IjsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBuZXdBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIHZhciBvbGRBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICBzdHJpbmcgcm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWVtYmVycyA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgIm1lbWJlcnMiKSAmJiBkYXRhLm1lbWJlcnMgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtIGluIGRhdGEubWVtYmVycykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG1pZCA9IEdldFN0cmluZyhtLCAibWVtYmVySWQiKSA/PyBHZXRTdHJpbmcobSwgImFkdmlzb3JJZCIpOwogICAgICAgICAgICAgICAgdmFyIHJvbGUgPSBHZXRTdHJpbmcobSwgInJvbGUiKTsKICAgICAgICAgICAgICAgIGlmIChtaWQgPT0gb2xkQWR2aXNvcklkICYmIHJvbGUgPT0gImFkdmlzb3IiICYmICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld0Fkdmlzb3JJZCkpCiAgICAgICAgICAgICAgICAgICAgbWVtYmVycy5BZGQobmV3IHsgbWVtYmVySWQgPSBuZXdBZHZpc29ySWQuVHJpbSgpLCByb2xlID0gImFkdmlzb3IiIH0pOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gcm9sZSB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQgPSAhc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShuZXdBZHZpc29ySWQpID8gbmV3QWR2aXNvcklkLlRyaW0oKSA6IG9sZEFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBwZW5kaW5nSm9pblVzZXJJZCA9IG5ld0Fkdmlzb3JJZAogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
362
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHRyYW5zZmVyIHRyYW5zaXRpb24gKGludml0ZSBzdGVwKS4KLy8vIEludml0ZXMgdGhlIG5ldyBhZHZpc29yIHRvIHRoZSByb29tIGFmdGVyIHRoZSBvbGQgb25lIHdhcyBraWNrZWQuCi8vLyBVc2VzIC9fbWF0cml4L2NsaWVudC92My9yb29tcy97cm9vbUlkfS9pbnZpdGUuCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyBNYXRyaXhCYXNlVXJsIGlzIHJlYWQgZnJvbSBWYXVsdCAodm5leHQtc2VjcmV0L3dvcmtmbG93LXNlY3JldCkuCi8vLyBBbHNvIHVwZGF0ZXMgaW5zdGFuY2VEYXRhLmFkdmlzb3JJZCB0byB0aGUgbmV3IGFkdmlzb3IuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVRyYW5zZmVySW52aXRlTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBjaGF0SW50ZWdyYXRpb24gPSBkYXRhPy5jaGF0SW50ZWdyYXRpb247CiAgICAgICAgdmFyIHJvb21JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG5ld0Fkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAibmV3QWR2aXNvcklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkgfHwgc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShuZXdBZHZpc29ySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIvaW52aXRlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBuZXdBZHZpc29ySWQuVHJpbSgpLlN0YXJ0c1dpdGgoIkAiKSA/IG5ld0Fkdmlzb3JJZC5UcmltKCkgOiAkIkB7bmV3QWR2aXNvcklkLlRyaW0oKX06bG9jYWxob3N0IjsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBuZXdBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIHZhciBvbGRBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICBzdHJpbmcgcm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWVtYmVycyA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgIm1lbWJlcnMiKSAmJiBkYXRhLm1lbWJlcnMgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtIGluIGRhdGEubWVtYmVycykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG1pZCA9IEdldFN0cmluZyhtLCAibWVtYmVySWQiKSA/PyBHZXRTdHJpbmcobSwgImFkdmlzb3JJZCIpOwogICAgICAgICAgICAgICAgdmFyIHJvbGUgPSBHZXRTdHJpbmcobSwgInJvbGUiKTsKICAgICAgICAgICAgICAgIGlmIChtaWQgPT0gb2xkQWR2aXNvcklkICYmIHJvbGUgPT0gImFkdmlzb3IiICYmICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld0Fkdmlzb3JJZCkpCiAgICAgICAgICAgICAgICAgICAgbWVtYmVycy5BZGQobmV3IHsgbWVtYmVySWQgPSBuZXdBZHZpc29ySWQuVHJpbSgpLCByb2xlID0gImFkdmlzb3IiIH0pOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gcm9sZSB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCA9ICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld0Fkdmlzb3JJZCkgPyBuZXdBZHZpc29ySWQuVHJpbSgpIDogb2xkQWR2aXNvcklkLAogICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcgeyByb29tSWQgfSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheSwKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBuZXdBZHZpc29ySWQKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkoSUVudW1lcmFibGU8b2JqZWN0PiBtZW1iZXJzKQogICAgewogICAgICAgIHZhciBtYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKICAgICAgICBpZiAobWVtYmVycyA9PSBudWxsKSByZXR1cm4gbWFwOwogICAgICAgIGZvcmVhY2ggKGR5bmFtaWMgbSBpbiBtZW1iZXJzKQogICAgICAgIHsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdmFyIG1pZCA9IG0ubWVtYmVySWQ/LlRvU3RyaW5nKCkgPz8gbS5hZHZpc29ySWQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtaWQpKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIG1hcFttaWRdID0gbS5yb2xlPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIHsgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWFwOwogICAgfQp9Cg=="
350
363
  }
351
364
  },
352
365
  {
353
366
  "order": 3,
354
367
  "task": {
355
- "domain": "touch",
368
+ "domain": "morph-touch",
356
369
  "flow": "sys-tasks",
357
370
  "key": "join-user-to-room",
358
371
  "version": "1.0.0"
359
372
  },
360
373
  "mapping": {
361
374
  "location": "./src/JoinUserToRoomMapping.csx",
362
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgc3RhcnREYXRlVGltZSwKICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzCiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
375
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoInZuZXh0LXNlY3JldCIsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIHJvb21UeXBlLAogICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICBlbmREYXRlVGltZSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
363
376
  }
364
377
  }
365
378
  ]
@@ -383,7 +396,7 @@
383
396
  {
384
397
  "order": 1,
385
398
  "task": {
386
- "domain": "touch",
399
+ "domain": "morph-touch",
387
400
  "flow": "sys-tasks",
388
401
  "key": "set-chat-room-status-deactive",
389
402
  "version": "1.0.0"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "key": "investment-advisor",
3
3
  "flow": "sys-flows",
4
- "domain": "touch",
4
+ "domain": "morph-touch",
5
5
  "version": "1.0.0",
6
6
  "flowVersion": "1.0.0",
7
7
  "tags": [
@@ -82,7 +82,7 @@
82
82
  {
83
83
  "order": 1,
84
84
  "task": {
85
- "domain": "touch",
85
+ "domain": "morph-touch",
86
86
  "flow": "sys-tasks",
87
87
  "key": "check-duplicate-portfolio-manager",
88
88
  "version": "1.0.0"
@@ -15,7 +15,7 @@
15
15
 
16
16
  @baseUrl = http://localhost:4201
17
17
  @apiVersion = 1
18
- @domain = touch
18
+ @domain = morph-touch
19
19
  @workflow = notification-sender
20
20
 
21
21
  ###############################################################################
@@ -56,8 +56,8 @@ X-Request-Id: {{$guid}}
56
56
  "context": {
57
57
  "reservationKey": "rez-2026-01-28T14-00-00-pm001",
58
58
  "advisorName": "Ahmet Yılmaz",
59
- "startDateTime": "2026-01-28T14:00:00",
60
- "endDateTime": "2026-01-28T14:30:00"
59
+ "startDateTime": "2026-01-28T14:00:00Z",
60
+ "endDateTime": "2026-01-28T14:30:00Z"
61
61
  }
62
62
  }
63
63
  }
@@ -107,8 +107,8 @@ X-Request-Id: {{$guid}}
107
107
  "context": {
108
108
  "reservationKey": "rez-2026-01-28T14-00-00-pm001",
109
109
  "advisorName": "Ahmet Yılmaz",
110
- "startDateTime": "2026-01-28T14:00:00",
111
- "endDateTime": "2026-01-28T14:30:00"
110
+ "startDateTime": "2026-01-28T14:00:00Z",
111
+ "endDateTime": "2026-01-28T14:30:00Z"
112
112
  }
113
113
  }
114
114
  }
@@ -158,8 +158,8 @@ X-Request-Id: {{$guid}}
158
158
  "context": {
159
159
  "reservationKey": "rez-2026-01-29T10-00-00-pm002",
160
160
  "advisorName": "Mehmet Kaya",
161
- "startDateTime": "2026-01-29T10:00:00",
162
- "endDateTime": "2026-01-29T10:30:00"
161
+ "startDateTime": "2026-01-29T10:00:00Z",
162
+ "endDateTime": "2026-01-29T10:30:00Z"
163
163
  }
164
164
  }
165
165
  }
@@ -198,8 +198,8 @@ X-Request-Id: {{$guid}}
198
198
  "context": {
199
199
  "reservationKey": "rez-2026-01-29T10-00-00-pm002",
200
200
  "advisorName": "Mehmet Kaya",
201
- "startDateTime": "2026-01-29T10:00:00",
202
- "endDateTime": "2026-01-29T10:30:00"
201
+ "startDateTime": "2026-01-29T10:00:00Z",
202
+ "endDateTime": "2026-01-29T10:30:00Z"
203
203
  }
204
204
  }
205
205
  }
@@ -238,8 +238,8 @@ X-Request-Id: {{$guid}}
238
238
  "context": {
239
239
  "reservationKey": "rez-2026-01-30T09-00-00-pm001",
240
240
  "advisorName": "Ahmet Yılmaz",
241
- "startDateTime": "2026-01-30T09:00:00",
242
- "endDateTime": "2026-01-30T09:30:00"
241
+ "startDateTime": "2026-01-30T09:00:00Z",
242
+ "endDateTime": "2026-01-30T09:30:00Z"
243
243
  }
244
244
  }
245
245
  }
@@ -285,8 +285,8 @@ X-Request-Id: {{$guid}}
285
285
  "context": {
286
286
  "reservationKey": "rez-2026-01-31T11-00-00-pm001",
287
287
  "advisorName": "Ahmet Yılmaz",
288
- "startDateTime": "2026-01-31T11:00:00",
289
- "endDateTime": "2026-01-31T11:30:00"
288
+ "startDateTime": "2026-01-31T11:00:00Z",
289
+ "endDateTime": "2026-01-31T11:30:00Z"
290
290
  }
291
291
  }
292
292
  }