From c0de732258f2691891799da6ce9a6079fd9cc739 Mon Sep 17 00:00:00 2001 From: Ivan Kudinov Date: Wed, 9 Jul 2025 16:37:09 +0300 Subject: [PATCH] CCS-106455 hide recv data in onReceive method --- package.json | 2 +- src/lib/logger.ts | 16 ++++++++++++++-- src/lib/platforms/ios.ts | 1 + src/lib/platforms/web.ts | 1 + src/types/bridgeInterface.ts | 1 + src/version.ts | 2 +- 6 files changed, 19 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 88c9ba0..74bab34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@expressms/smartapp-bridge", - "version": "1.4.0", + "version": "1.4.5", "description": "SmartApp bridge library", "main": "build/main/index.js", "typings": "build/main/index.d.ts", diff --git a/src/lib/logger.ts b/src/lib/logger.ts index 55b85af..6b88097 100644 --- a/src/lib/logger.ts +++ b/src/lib/logger.ts @@ -4,6 +4,7 @@ const DATA_MASK = '***' class Logger { logsEnabled: boolean private hideRecvLogPayload: Map + private hideRecvLogNullRefPayload = false constructor() { this.logsEnabled = false @@ -60,12 +61,12 @@ class Logger { } logRecvEvent(event: { ref: string; data: object; files: [] }) { - const hideRecvLogPayload = !!this.hideRecvLogPayload.get(event.ref) + const hideLogPayload = !!this.hideRecvLogPayload.get(event.ref) || (this.hideRecvLogNullRefPayload && !event.ref) this.hideRecvLogPayload.delete(event.ref) if (!this.logsEnabled) return - const logEvent = hideRecvLogPayload + const logEvent = hideLogPayload ? { ...event, data: DATA_MASK, @@ -74,6 +75,17 @@ class Logger { console.log('Bridge ~ Incoming event', JSON.stringify(logEvent, null, 2)) } + + /** + * Hide payload for null ref events (onReceive callback) + * + * ```js + * bridge.hideRecvData() + * ``` + */ + hideRecvData() { + this.hideRecvLogNullRefPayload = true + } } export default Logger diff --git a/src/lib/platforms/ios.ts b/src/lib/platforms/ios.ts index c749d64..e4b7bf5 100644 --- a/src/lib/platforms/ios.ts +++ b/src/lib/platforms/ios.ts @@ -77,6 +77,7 @@ class IosBridge extends Logger implements Bridge { * console.log('event', type, handler, payload) * }) * ``` + * @param callback - Callback function. */ onReceive(callback: EventEmitterCallback) { this.eventEmitter.on(EVENT_TYPE.RECEIVE, callback) diff --git a/src/lib/platforms/web.ts b/src/lib/platforms/web.ts index c22178b..36e54bb 100644 --- a/src/lib/platforms/web.ts +++ b/src/lib/platforms/web.ts @@ -74,6 +74,7 @@ class WebBridge extends Logger implements Bridge { * console.log('event', type, handler, payload) * }) * ``` + * @param callback - Callback function. */ onReceive(callback: EventEmitterCallback) { this.eventEmitter.on(EVENT_TYPE.RECEIVE, callback) diff --git a/src/types/bridgeInterface.ts b/src/types/bridgeInterface.ts index 8a143e6..4772c1e 100644 --- a/src/types/bridgeInterface.ts +++ b/src/types/bridgeInterface.ts @@ -33,6 +33,7 @@ export interface Bridge { readonly enableLogs: () => void readonly disableLogs: () => void readonly log?: (data: string | object) => void + readonly hideRecvData: () => void } export type BridgeSendBotEvent = Omit & { diff --git a/src/version.ts b/src/version.ts index 0444b38..4f9b375 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const LIB_VERSION = "1.4.0-alpha.1"; +export const LIB_VERSION = "1.4.4";