@tencentcloud/call-uikit-vue2.6
Advanced tools
Comparing version 3.3.7 to 3.3.9
{ | ||
"name": "@tencentcloud/call-uikit-vue2.6", | ||
"version": "3.3.7", | ||
"version": "3.3.9", | ||
"main": "./tuicall-uikit-vue2.umd.js", | ||
@@ -19,3 +19,3 @@ "module": "./tuicall-uikit-vue2.es.js", | ||
"@vue/composition-api": "^1.7.2", | ||
"tuicall-engine-webrtc": "^3.1.2" | ||
"tuicall-engine-webrtc": "^3.1.5" | ||
}, | ||
@@ -22,0 +22,0 @@ "bugs": { |
@@ -10,1 +10,2 @@ export * from './CallInfoContext'; | ||
export * from './CustomUIConfigContext'; | ||
export * from './TranslateContext'; |
@@ -22,1 +22,2 @@ export * from './useCallerUserInfoContext'; | ||
export * from './useJoinGroupCall'; | ||
export * from './useTranslate'; |
@@ -11,16 +11,9 @@ import { ref, onMounted, onUnmounted } from '../../adapter-vue'; | ||
const handleCallTipsChange = (value) => { | ||
duration.value = 0; | ||
tip.value = value; | ||
}; | ||
const handleToastInfoChange = (value) => { | ||
let text = value; | ||
if (typeof value === 'object') { | ||
if (typeof text === 'object') { | ||
text = value?.text; | ||
tip.value = value.text; | ||
duration.value = value.duration || 0; | ||
} else { | ||
tip.value = value; | ||
} | ||
if (text) { | ||
duration.value = 2000; | ||
tip.value = text; | ||
} | ||
}; | ||
@@ -38,8 +31,2 @@ | ||
); | ||
TUIStore.watch( | ||
StoreName.CALL, | ||
{ | ||
[NAME.TOAST_INFO]: handleToastInfoChange, | ||
}, | ||
); | ||
}); | ||
@@ -52,3 +39,2 @@ | ||
[NAME.CALL_TIPS]: handleCallTipsChange, | ||
[NAME.TOAST_INFO]: handleToastInfoChange, | ||
}, | ||
@@ -55,0 +41,0 @@ ); |
@@ -40,3 +40,3 @@ import { | ||
}; | ||
const Version = '3.3.7'; // basic-demo 原来上报使用 | ||
const Version = '3.3.9'; // basic-demo 原来上报使用 | ||
@@ -43,0 +43,0 @@ // 输出产物 |
@@ -9,10 +9,10 @@ import { TUICore, TUILogin, TUIConstants, ExtensionInfo } from '@tencentcloud/tui-core'; | ||
import TencentCloudChat from '@tencentcloud/chat'; | ||
import { t } from '../locales'; | ||
import { t } from '../locales/index'; | ||
const TUIStore: ITUIStore = TuiStore.getInstance(); | ||
const cmd2messageCardContentMap = { | ||
audioCall: () => t('Voice call'), | ||
videoCall: () => t('Video call'), | ||
switchToAudio: () => t('Switch audio call'), | ||
switchToVideo: () => t('Switch video call'), | ||
audioCall: () => 'Voice call', | ||
videoCall: () => 'Video call', | ||
switchToAudio: () => 'Switch audio call', | ||
switchToVideo: () => 'Switch video call', | ||
hangup: ({ callDuration }) => `${t('Call duration')}:${callDuration}`, | ||
@@ -220,3 +220,3 @@ }; | ||
case ACTION_TYPE.CANCEL_INVITE: | ||
messageCardContent = isInviter ? t('Call Cancel') : t('Other Side Cancel'); | ||
messageCardContent = isInviter ? 'Call Cancel' : 'Other Side Cancel'; | ||
break; | ||
@@ -233,5 +233,5 @@ case ACTION_TYPE.ACCEPT_INVITE: | ||
if (this.isLineBusy(message)) { | ||
messageCardContent = isInviter ? t('Line Busy') : t('Other Side Line Busy'); | ||
messageCardContent = isInviter ? 'Line Busy' : 'Other Side Line Busy'; | ||
} else { | ||
messageCardContent = isInviter ? t('Other Side Decline') : t('Decline'); | ||
messageCardContent = isInviter ? 'Other Side Decline' : 'Decline'; | ||
} | ||
@@ -244,3 +244,3 @@ | ||
} else { | ||
messageCardContent = isInviter ? t('Other Side No Answer') : t('No answer'); | ||
messageCardContent = isInviter ? 'Other Side No Answer' : 'No answer'; | ||
} | ||
@@ -247,0 +247,0 @@ |
@@ -9,3 +9,3 @@ import { ITUIStore } from '../interface/ITUIStore'; | ||
import { initAndCheckRunEnv } from './miniProgram'; | ||
import { getMyProfile, getRemoteUserProfile, generateText, updateRoomIdAndRoomIdType, analyzeEventData, deleteRemoteUser } from './utils'; | ||
import { getMyProfile, getRemoteUserProfile, updateRoomIdAndRoomIdType, analyzeEventData, deleteRemoteUser } from './utils'; | ||
import promiseRetryDecorator from '../utils/decorators/promise-retry'; | ||
@@ -106,9 +106,8 @@ import { UIDesign } from './UIDesign'; | ||
let callTipsKey = eventName === TUICallEvent.REJECT ? CallTips.OTHER_SIDE_REJECT_CALL : CallTips.OTHER_SIDE_LINE_BUSY; | ||
let text = generateText(callTipsKey); | ||
let userListNeedToShow = ''; | ||
if (isGroup) { | ||
const prefix: string = (remoteUserInfoList.find(obj => obj.userId === userId) || {}).displayUserInfo || userId; | ||
userListNeedToShow = (remoteUserInfoList.find(obj => obj.userId === userId) || {}).displayUserInfo || userId; | ||
callTipsKey = eventName === TUICallEvent.REJECT ? CallTips.REJECT_CALL : CallTips.IN_BUSY; | ||
text = generateText(callTipsKey, prefix); | ||
} | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { text }); | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { content: { key: callTipsKey, options: { userList: userListNeedToShow } } }); | ||
userId && deleteRemoteUser([userId]); | ||
@@ -124,4 +123,3 @@ break; | ||
}); | ||
const text = isGroup ? generateText(callTipsKey, userInfoList.join()) : generateText(callTipsKey); | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { text }); | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { content: { key: callTipsKey, options: { userList: userInfoList.join() } } }); | ||
userIDList.length > 0 && deleteRemoteUser(userIDList); | ||
@@ -131,3 +129,2 @@ break; | ||
case TUICallEvent.CALLING_CANCEL: { | ||
// TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { text: generateText(CallTips.CANCEL) }); | ||
this._callService?._resetCallStore(); | ||
@@ -148,3 +145,3 @@ break; | ||
callTips = t(ErrorMessage[key]); | ||
callTips && TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { text: callTips, type: NAME.ERROR }); | ||
callTips && TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { content: ErrorMessage[key], type: NAME.ERROR }); | ||
} | ||
@@ -166,3 +163,3 @@ this._callService?.executeExternalAfterCalling(); | ||
[NAME.CALL_MEDIA_TYPE]: type, | ||
[NAME.CALL_TIPS]: t(callTipsKey), | ||
[NAME.CALL_TIPS]: callTipsKey, | ||
[NAME.CALLER_USER_INFO]: { userId: sponsor }, | ||
@@ -192,3 +189,3 @@ [NAME.GROUP_ID]: groupID, | ||
this._callerChangeToConnected(); | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, t('answered')); | ||
TUIStore.update(StoreName.CALL, NAME.CALL_TIPS, { text: 'answered', duration: 2000 }); | ||
console.log(`${NAME.PREFIX}accept event data: ${JSON.stringify(event)}.`); | ||
@@ -235,5 +232,4 @@ } | ||
const remoteUserInfoList = TUIStore.getData(StoreName.CALL, NAME.REMOTE_USER_INFO_LIST); | ||
const prefix: string = (remoteUserInfoList.find(obj => obj.userId === userId) || {}).displayUserInfo || userId; | ||
const text = generateText(CallTips.END_CALL, prefix); | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { text }); | ||
const userListNeedToShow: string = (remoteUserInfoList.find(obj => obj.userId === userId) || {}).displayUserInfo || userId; | ||
TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { content: { key: CallTips.END_CALL, options: { userList: userListNeedToShow } } }); | ||
} | ||
@@ -266,4 +262,2 @@ userId && deleteRemoteUser([userId]); | ||
this._callService?.setDefaultOfflinePushInfo({ ...this._callService?.getDefaultOfflinePushInfo(), title: localUserInfo?.displayUserInfo }); | ||
TUIStore.update(StoreName.CALL, NAME.LOCAL_USER_INFO, localUserInfo); | ||
@@ -277,3 +271,3 @@ TUIStore.update(StoreName.CALL, NAME.LOCAL_USER_INFO_EXCLUDE_VOLUMN, localUserInfo); | ||
TUIStore.update(StoreName.CALL, NAME.CALL_TIPS, generateText(CallTips.KICK_OUT)); | ||
TUIStore.update(StoreName.CALL, NAME.CALL_TIPS, CallTips.KICK_OUT); | ||
this._callService?._resetCallStore(); | ||
@@ -305,3 +299,3 @@ } | ||
if(isLocalNetworkPoor) { | ||
TUIStore.update(StoreName.CALL, NAME.CALL_TIPS, t(CallTips.LOCAL_NETWORK_IS_POOR)); | ||
TUIStore.update(StoreName.CALL, NAME.CALL_TIPS, CallTips.LOCAL_NETWORK_IS_POOR); | ||
return; | ||
@@ -308,0 +302,0 @@ } |
@@ -30,3 +30,3 @@ import { | ||
uiDesign.setTUIStore(TUIStore); | ||
const version = '3.3.7'; | ||
const version = '3.3.9'; | ||
const frameWork = 'vue2.6'; | ||
@@ -45,6 +45,3 @@ export { TUIGlobal, TUIStore, uiDesign }; | ||
private _currentGroupId: string = ''; // The currentGroupId of the group chat that the user is currently in | ||
private _defaultOfflinePushInfo = { | ||
title: '', | ||
description: t('you have a new call'), | ||
}; | ||
private _offlinePushInfo = null; | ||
private _permissionCheckTimer: any = null; | ||
@@ -139,3 +136,3 @@ private _chatCombine: any = null; | ||
this.executeExternalBeforeCalling(); // 执行外部传入的 beforeCall 方法 | ||
callParams.offlinePushInfo = { ...this._defaultOfflinePushInfo, ...offlinePushInfo }; | ||
callParams.offlinePushInfo = { ...this.getDefaultOfflinePushInfo(), ...offlinePushInfo }; | ||
const response = await this._tuiCallEngine.call(callParams); | ||
@@ -158,3 +155,3 @@ await this._updateCallStoreAfterCall([userID], response); | ||
this.executeExternalBeforeCalling(); | ||
groupCallParams.offlinePushInfo = { ...this._defaultOfflinePushInfo, ...offlinePushInfo }; | ||
groupCallParams.offlinePushInfo = { ...this.getDefaultOfflinePushInfo(), ...offlinePushInfo }; | ||
const response = await this._tuiCallEngine.groupCall(groupCallParams); | ||
@@ -175,2 +172,8 @@ await this._updateCallStoreAfterCall(userIDList, response); | ||
const remoteUserInfoList = TUIStore.getData(StoreName.CALL, NAME.REMOTE_USER_INFO_LIST); | ||
const userIDListNotInRemoteUserInfoList = userIDList.filter(userId => { | ||
return !remoteUserInfoList.some(remoteUserInfo => remoteUserInfo.userId === userId); | ||
}); | ||
if (userIDListNotInRemoteUserInfoList.length === 0) { | ||
return; | ||
} | ||
TUIStore.update(StoreName.CALL, NAME.REMOTE_USER_INFO_LIST, [...remoteUserInfoList, ...inviteUserInfoList]); | ||
@@ -181,4 +184,2 @@ TUIStore.update(StoreName.CALL, NAME.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, [...remoteUserInfoList, ...inviteUserInfoList]); | ||
console.error(`${NAME.PREFIX}inviteUser failed, error: ${error}.`); | ||
this._resetCallStore(); | ||
throw error; | ||
} | ||
@@ -227,2 +228,3 @@ } | ||
TUIStore.update(StoreName.CALL, NAME.LANGUAGE, language); | ||
TUIStore.update(StoreName.CALL, NAME.TRANSLATE, t.bind(null)); | ||
} | ||
@@ -361,3 +363,9 @@ } | ||
try { | ||
await this._tuiCallEngine.openCamera(videoViewDomID); | ||
if (TUIGlobal.isH5) { | ||
const currentPosition = TUIStore.getData(StoreName.CALL, NAME.CAMERA_POSITION); | ||
const isFrontCamera = currentPosition === CameraPosition.FRONT ? true : false; | ||
await this._tuiCallEngine.openCamera(videoViewDomID, isFrontCamera); | ||
} else { | ||
await this._tuiCallEngine.openCamera(videoViewDomID); | ||
} | ||
setLocalUserInfoAudioVideoAvailable(true, NAME.VIDEO); | ||
@@ -559,3 +567,3 @@ } catch (error: any) { | ||
[NAME.IS_GROUP]: !!groupID, | ||
[NAME.CALL_TIPS]: t(callTips), | ||
[NAME.CALL_TIPS]: callTips, | ||
[NAME.GROUP_ID]: groupID | ||
@@ -666,2 +674,4 @@ }; | ||
TUIStore.update(StoreName.CALL, NAME.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, []); | ||
TUIStore.update(StoreName.CALL, NAME.CAMERA_POSITION, CameraPosition.FRONT); | ||
const newStatusStr = generateStatusChangeText(); | ||
@@ -752,6 +762,14 @@ if (oldStatusStr !== newStatusStr) { | ||
public setDefaultOfflinePushInfo(offlinePushInfo) { | ||
this._defaultOfflinePushInfo = offlinePushInfo; | ||
this._offlinePushInfo = offlinePushInfo; | ||
} | ||
public getDefaultOfflinePushInfo() { | ||
return this._defaultOfflinePushInfo; | ||
const localUserInfo: IUserInfo = TUIStore.getData(StoreName.CALL, NAME.LOCAL_USER_INFO); | ||
if (this._offlinePushInfo) { | ||
return this._offlinePushInfo; | ||
} | ||
return { | ||
title: localUserInfo?.displayUserInfo || '', | ||
description: t('you have a new call'), | ||
}; | ||
} | ||
@@ -758,0 +776,0 @@ public async getCallMessage(message) { |
@@ -226,9 +226,9 @@ import { NAME, StoreName, CallStatus, StatusChange, CallMediaType, ROOM_ID_TYPE } from '../const/index'; | ||
export function noDevicePermissionToast(error, type: CallMediaType, tuiCallEngine: any) { | ||
let toastInfoKey = ''; | ||
if (handleNoDevicePermissionError(error)) { | ||
let text = ''; | ||
if (type === CallMediaType.AUDIO) { | ||
text = generateText(CallTips.NO_MICROPHONE_DEVICE_PERMISSION); | ||
toastInfoKey = CallTips.NO_MICROPHONE_DEVICE_PERMISSION; | ||
} | ||
if (type === CallMediaType.VIDEO) { | ||
text = generateText(CallTips.NO_CAMERA_DEVICE_PERMISSION); | ||
toastInfoKey = CallTips.NO_CAMERA_DEVICE_PERMISSION; | ||
} | ||
@@ -241,3 +241,3 @@ | ||
text && TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { text, type: NAME.ERROR }); | ||
toastInfoKey && TUIStore.update(StoreName.CALL, NAME.TOAST_INFO, { content: toastInfoKey, type: NAME.ERROR }); | ||
console.error(`${NAME.PREFIX}call failed, error: ${error.message}.`); | ||
@@ -244,0 +244,0 @@ } |
@@ -73,2 +73,3 @@ export * from './call'; | ||
CUSTOM_UI_CONFIG: 'customUIConfig', | ||
TRANSLATE: 'translate', | ||
...PUSHER_ID, | ||
@@ -75,0 +76,0 @@ ...CALL_DATA_KEY, |
@@ -51,2 +51,4 @@ import { CallStatus, CallRole, CallMediaType, VideoDisplayMode, VideoResolution, TDeviceList, CameraPosition, ICustomUIConfig } from '../const/index'; | ||
pusherId: string, // 重新渲染 live-Pusher 的标识位 | ||
// translate function | ||
translate: Function, | ||
} |
@@ -17,9 +17,9 @@ export const en = { | ||
'other side reject call': 'other side reject call', | ||
'reject call': 'Reject Call', | ||
'reject call': '{{ userList }} Reject Call', | ||
'cancel': 'Cancel Call', | ||
'other side line busy': 'other side line busy', | ||
'in busy': 'in busy', | ||
'in busy': '{{ userList }} in busy', | ||
'call timeout': 'call timeout', | ||
'no response from the other side': 'no response from the other side', | ||
'end call': 'end call', | ||
'end call': '{{ userList }} end call', | ||
// 通话提示语 | ||
@@ -106,3 +106,3 @@ 'caller calling message': 'Awaiting response', | ||
'microphone-closed': 'Mic off', | ||
'timeout': 'timeout', | ||
'timeout': '{{ userList }} timeout', | ||
'kick out': 'kick out', | ||
@@ -109,0 +109,0 @@ 'image-resolution': 'Resolution', |
import { TUIStore } from '../CallService/index'; | ||
import { NAME, StoreName } from '../const/index'; | ||
import { zh } from './zh-cn'; | ||
// @if process.env.BUILD_TARGET!='MINI' | ||
import { en } from './en'; | ||
import { zh } from './zh-cn'; | ||
import { ja_JP } from './ja_JP'; | ||
// @endif | ||
import { interpolate, isString, isPlainObject } from '../utils/common-utils'; | ||
export const CallTips: any = { | ||
@@ -30,25 +34,22 @@ OTHER_SIDE: 'other side', | ||
export const languageData: languageDataType = { | ||
'zh-cn': zh, | ||
// @if process.env.BUILD_TARGET!='MINI' | ||
en, | ||
'zh-cn': zh, | ||
ja_JP, | ||
// @endif | ||
}; | ||
// language translate | ||
export function t(key: any): string { | ||
export function t(args): string { | ||
const language = TUIStore.getData(StoreName.CALL, NAME.LANGUAGE); | ||
// eslint-disable-next-line | ||
for (const langKey in languageData) { | ||
if (langKey === language) { | ||
const currentLanguage = languageData[langKey]; | ||
// eslint-disable-next-line | ||
for (const sentenceKey in currentLanguage) { | ||
if (sentenceKey === key) { | ||
return currentLanguage[sentenceKey]; | ||
} | ||
} | ||
} | ||
let translationContent = ''; | ||
if (isString(args)) { | ||
translationContent = languageData?.[language]?.[args] || ''; | ||
} else if (isPlainObject(args)) { | ||
const { key, options } = args; | ||
translationContent = languageData?.[language]?.[key] || ''; | ||
translationContent = interpolate(translationContent, options); | ||
} | ||
const enString = key['en']?.key; // eslint-disable-line | ||
console.error(`${NAME.PREFIX}translation is not found: ${key}.`); | ||
return enString; | ||
return translationContent; | ||
} | ||
@@ -55,0 +56,0 @@ |
@@ -12,8 +12,8 @@ export const ja_JP = { | ||
'other side reject call': '通話が拒否されました', | ||
'reject call': '通話拒否', | ||
'reject call': '{{ userList }} 通話拒否', | ||
'cancel': '通話をキャンセル', | ||
'other side line busy': '相手が通話中です', | ||
'in busy': '通話中', | ||
'in busy': '{{ userList }} 通話中', | ||
'call timeout': '呼び出しタイムアウト', | ||
'end call': '通話終了', | ||
'end call': '{{ userList }} 通話終了', | ||
// 通话提示语 | ||
@@ -82,3 +82,3 @@ 'caller calling message': '応答を待っています', | ||
// 待废弃文案 | ||
'timeout': 'タイムアウト', | ||
'timeout': '{{ userList }} タイムアウト', | ||
'kick out': 'キックアウトされました', | ||
@@ -85,0 +85,0 @@ 'Invited group call': 'グループ通話に招待されました。', |
@@ -17,8 +17,8 @@ export const zh = { | ||
'other side reject call': '对方已拒绝', | ||
'reject call': '拒绝通话', | ||
'reject call': '{{ userList }} 拒绝通话', | ||
'cancel': '取消通话', | ||
'other side line busy': '对方忙线', | ||
'in busy': '正在忙', | ||
'in busy': '{{ userList }} 正在忙', | ||
'call timeout': '呼叫超时', | ||
'end call': '结束通话', | ||
'end call': '{{ userList }} 结束通话', | ||
// 通话提示语 | ||
@@ -87,3 +87,3 @@ 'caller calling message': '等待对方接受邀请', | ||
// 待废弃文案 | ||
'timeout': '超时', | ||
'timeout': '{{ userList }} 超时', | ||
'kick out': '被踢', | ||
@@ -90,0 +90,0 @@ 'call': '通话', |
import { CallStatus, CallRole, CallMediaType, VideoDisplayMode, VideoResolution, CameraPosition, LayoutMode, NAME } from '../const/index'; | ||
import { ICallStore } from '../interface/ICallStore'; | ||
import { t } from '../locales/index'; | ||
import { getLanguage } from '../utils/common-utils'; | ||
@@ -52,3 +53,4 @@ import { deepClone } from "../utils/index"; | ||
}, | ||
// translate function | ||
translate: t, | ||
}; | ||
@@ -55,0 +57,0 @@ public store: ICallStore = deepClone(this.defaultStore); |
@@ -240,1 +240,16 @@ import { NAME } from '../const/index'; | ||
} | ||
/** | ||
* interpolate function | ||
* @param {string} str - 'hello {{name}}' | ||
* @param {object} data - { name: 'sam' } | ||
* @returns {string} 'hello sam' | ||
* | ||
*/ | ||
export function interpolate(str, data) { | ||
return str.replace(/{{\s*(\w+)(\s*,\s*[^}]+)?\s*}}/g, (match, p1) => { | ||
const key = p1.trim(); | ||
return data[key] !== undefined ? String(data[key]) : match; | ||
}); | ||
} |
@@ -10,1 +10,2 @@ export * from './CallInfoContext'; | ||
export * from './CustomUIConfigContext'; | ||
export * from './TranslateContext'; |
@@ -20,1 +20,2 @@ export * from './useCallerUserInfoContext'; | ||
export * from './useJoinGroupCall'; | ||
export * from './useTranslate'; |
@@ -19,3 +19,3 @@ import { ITUICallService, ICallParams, IGroupCallParams, ICallbackParam, ISelfInfoParams, IInviteUserParams, IJoinInGroupCallParams, IInitParams } from '../interface/ICallService'; | ||
private _preDevicePermission; | ||
private _defaultOfflinePushInfo; | ||
private _offlinePushInfo; | ||
private _permissionCheckTimer; | ||
@@ -97,7 +97,4 @@ private _chatCombine; | ||
setDefaultOfflinePushInfo(offlinePushInfo: any): void; | ||
getDefaultOfflinePushInfo(): { | ||
title: string; | ||
description: string; | ||
}; | ||
getDefaultOfflinePushInfo(): any; | ||
getCallMessage(message: any): Promise<any>; | ||
} |
@@ -44,2 +44,3 @@ import { CallStatus, CallRole, CallMediaType, VideoDisplayMode, VideoResolution, TDeviceList, CameraPosition, ICustomUIConfig } from '../const/index'; | ||
pusherId: string; | ||
translate: Function; | ||
} |
export declare const CallTips: any; | ||
export declare const languageData: languageDataType; | ||
export declare function t(key: any): string; | ||
export declare function t(args: any): string; | ||
interface languageItemType { | ||
@@ -5,0 +5,0 @@ [key: string]: string; |
@@ -54,1 +54,9 @@ export declare const isUndefined: (input: any) => boolean; | ||
export declare function modifyObjectKey(obj: any, oldKey: any, newKey: any): any; | ||
/** | ||
* interpolate function | ||
* @param {string} str - 'hello {{name}}' | ||
* @param {object} data - { name: 'sam' } | ||
* @returns {string} 'hello sam' | ||
* | ||
*/ | ||
export declare function interpolate(str: any, data: any): any; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
533
50
3006464
43509
Updatedtuicall-engine-webrtc@^3.1.5