import md5 from 'md5'; const REQUIRED_USER_KEYS = ['avatar_url', 'email', 'name']; const ALLOWED_USER_ATTRIBUTES = [...REQUIRED_USER_KEYS, 'identifier_hash']; export const getUserCookieName = () => { const SET_USER_COOKIE_PREFIX = 'cw_user_'; const { websiteToken: websiteIdentifier } = window.$chatwoot; return `${SET_USER_COOKIE_PREFIX}${websiteIdentifier}`; }; export const getUserString = ({ identifier = '', user }) => { const userStringWithSortedKeys = ALLOWED_USER_ATTRIBUTES.reduce( (acc, key) => `${acc}${key}${user[key] || ''}`, '' ); return `${userStringWithSortedKeys}identifier${identifier}`; }; export const computeHashForUserData = (...args) => md5(getUserString(...args)); export const hasUserKeys = user => REQUIRED_USER_KEYS.reduce((acc, key) => acc || !!user[key], false);