customer-chat-sdk 1.1.3 → 1.1.5

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.
@@ -52,6 +52,10 @@ export declare class IframeManager {
52
52
  * 向iframe发送消息
53
53
  */
54
54
  sendToIframe(data: any): void;
55
+ /**
56
+ * 清理页面上孤立的遮罩层和容器元素(防止重复创建)
57
+ */
58
+ private cleanupOrphanedElements;
55
59
  /**
56
60
  * 创建遮罩层(PC模式使用)
57
61
  * @param showImmediately 是否立即显示,默认 false(用于 init() 时创建但不显示)
@@ -1 +1 @@
1
- {"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../src/core/IframeManager.ts"],"names":[],"mappings":"AACA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,GAAE,aAAkB;IActC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B;;OAEG;IACH,IAAI,IAAI,IAAI;IA2FZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IA0CZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAqBf;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAM7B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmDrB;;OAEG;IACH,OAAO,CAAC,YAAY;IA8IpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;OAEG;IACH,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../src/core/IframeManager.ts"],"names":[],"mappings":"AACA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,GAAE,aAAkB;IActC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B;;OAEG;IACH,IAAI,IAAI,IAAI;IA2FZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IA0CZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAqBf;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAM7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmDrB;;OAEG;IACH,OAAO,CAAC,YAAY;IA8IpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;OAEG;IACH,OAAO,CAAC,YAAY;CAMrB"}
@@ -47,6 +47,7 @@ export interface UploadConfig {
47
47
  * 二进制配置接口(用于新的消息格式)
48
48
  */
49
49
  export interface BinaryConfig {
50
+ agent: string;
50
51
  sign: string;
51
52
  type: number;
52
53
  topic: string;
@@ -271,11 +272,13 @@ export declare class ScreenshotManager {
271
272
  */
272
273
  private arrayBufferToBase64;
273
274
  /**
274
- * 构建二进制结构(按顺序:sign[20], type[1], topicLength[1], topic[topicLength], routingKeyLength[1], routingKey[routingKeyLength])
275
- * 总大小 = 20 + 1 + 1 + topicLength + 1 + routingKeyLength(动态计算)
275
+ * 构建二进制结构(按顺序: sign[20], agentLength[1], agent[agentLength], type[1], topicLength[1], topic[topicLength], routingKeyLength[1], routingKey[routingKeyLength])
276
+ * 总大小 = 20(sign) + 1(agentLength) + agentLength + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength(动态计算)
276
277
  *
277
278
  * 与服务端格式对应:
278
279
  * - sign: 20字节 (CharSequence, UTF-8)
280
+ * - agentLength: 1字节
281
+ * - agent: agentLength字节 (CharSequence, UTF-8)
279
282
  * - type: 1字节 (转为无符号)
280
283
  * - topicLength: 1字节
281
284
  * - topic: topicLength字节 (CharSequence, UTF-8)
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenshotManager.d.ts","sourceRoot":"","sources":["../../src/core/ScreenshotManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScreenshotManager.d.ts","sourceRoot":"","sources":["../../src/core/ScreenshotManager.ts"],"names":[],"mappings":"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"}
@@ -627,6 +627,9 @@ class IframeManager {
627
627
  */
628
628
  async init() {
629
629
  try {
630
+ // 关键修复:在初始化前,先清理页面上所有旧的遮罩层和容器元素
631
+ // 防止切换模式或多次初始化时产生重复的元素
632
+ this.cleanupOrphanedElements();
630
633
  // PC模式:预创建遮罩层(隐藏状态),避免后续移动DOM导致iframe重新加载
631
634
  const actualMode = this.getActualMode();
632
635
  const isPC = actualMode === 'popup';
@@ -819,6 +822,31 @@ class IframeManager {
819
822
  this.iframeElement.contentWindow.postMessage(data, '*');
820
823
  }
821
824
  }
825
+ /**
826
+ * 清理页面上孤立的遮罩层和容器元素(防止重复创建)
827
+ */
828
+ cleanupOrphanedElements() {
829
+ // 清理所有旧的遮罩层元素(不属于当前实例的)
830
+ const existingOverlays = document.querySelectorAll('.customer-sdk-overlay');
831
+ existingOverlays.forEach((overlay) => {
832
+ if (overlay !== this.overlayElement) {
833
+ overlay.remove();
834
+ if (this.debug) {
835
+ console.log('清理旧的遮罩层元素');
836
+ }
837
+ }
838
+ });
839
+ // 清理所有旧的容器元素(不属于当前实例的)
840
+ const existingContainers = document.querySelectorAll('.customer-sdk-container');
841
+ existingContainers.forEach((container) => {
842
+ if (container !== this.containerElement) {
843
+ container.remove();
844
+ if (this.debug) {
845
+ console.log('清理旧的容器元素');
846
+ }
847
+ }
848
+ });
849
+ }
822
850
  /**
823
851
  * 创建遮罩层(PC模式使用)
824
852
  * @param showImmediately 是否立即显示,默认 false(用于 init() 时创建但不显示)
@@ -14829,6 +14857,7 @@ class ScreenshotManager {
14829
14857
  typeof config.ttl === 'number') {
14830
14858
  return {
14831
14859
  sign: String(config.sign),
14860
+ agent: String(config.agent || ''),
14832
14861
  type: config.type,
14833
14862
  topic: config.topic,
14834
14863
  routingKey: String(config.routingKey),
@@ -17087,11 +17116,13 @@ class ScreenshotManager {
17087
17116
  return btoa(binaryStr);
17088
17117
  }
17089
17118
  /**
17090
- * 构建二进制结构(按顺序:sign[20], type[1], topicLength[1], topic[topicLength], routingKeyLength[1], routingKey[routingKeyLength])
17091
- * 总大小 = 20 + 1 + 1 + topicLength + 1 + routingKeyLength(动态计算)
17119
+ * 构建二进制结构(按顺序: sign[20], agentLength[1], agent[agentLength], type[1], topicLength[1], topic[topicLength], routingKeyLength[1], routingKey[routingKeyLength])
17120
+ * 总大小 = 20(sign) + 1(agentLength) + agentLength + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength(动态计算)
17092
17121
  *
17093
17122
  * 与服务端格式对应:
17094
17123
  * - sign: 20字节 (CharSequence, UTF-8)
17124
+ * - agentLength: 1字节
17125
+ * - agent: agentLength字节 (CharSequence, UTF-8)
17095
17126
  * - type: 1字节 (转为无符号)
17096
17127
  * - topicLength: 1字节
17097
17128
  * - topic: topicLength字节 (CharSequence, UTF-8)
@@ -17101,12 +17132,14 @@ class ScreenshotManager {
17101
17132
  buildBinaryConfig(config) {
17102
17133
  const encoder = new TextEncoder();
17103
17134
  // 计算实际长度
17135
+ const agentBytes = encoder.encode(config.agent);
17136
+ const agentLength = agentBytes.length;
17104
17137
  const topicBytes = encoder.encode(config.topic);
17105
17138
  const topicLength = topicBytes.length;
17106
17139
  const routingKeyBytes = encoder.encode(config.routingKey.trim());
17107
17140
  const routingKeyLength = routingKeyBytes.length;
17108
- // 动态计算总大小:20(sign) + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength
17109
- const totalSize = 20 + 1 + 1 + topicLength + 1 + routingKeyLength;
17141
+ // 动态计算总大小:20(sign) + 1(agentLength) + agentLength + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength
17142
+ const totalSize = 20 + 1 + agentLength + 1 + 1 + topicLength + 1 + routingKeyLength;
17110
17143
  const buffer = new ArrayBuffer(totalSize);
17111
17144
  const view = new DataView(buffer);
17112
17145
  let offset = 0;
@@ -17116,6 +17149,13 @@ class ScreenshotManager {
17116
17149
  const signArray = new Uint8Array(buffer, offset, 20);
17117
17150
  signArray.set(signBytes.slice(0, 20)); // 截取前20字节,不足自动补0
17118
17151
  offset += 20;
17152
+ // agentLength: 1字节
17153
+ view.setUint8(offset, agentLength);
17154
+ offset += 1;
17155
+ // agent: agentLength字节 (字符串,UTF-8编码)
17156
+ const agentArray = new Uint8Array(buffer, offset, agentLength);
17157
+ agentArray.set(agentBytes);
17158
+ offset += agentLength;
17119
17159
  // type: 1字节
17120
17160
  view.setUint8(offset, config.type);
17121
17161
  offset += 1;
@@ -623,6 +623,9 @@ class IframeManager {
623
623
  */
624
624
  async init() {
625
625
  try {
626
+ // 关键修复:在初始化前,先清理页面上所有旧的遮罩层和容器元素
627
+ // 防止切换模式或多次初始化时产生重复的元素
628
+ this.cleanupOrphanedElements();
626
629
  // PC模式:预创建遮罩层(隐藏状态),避免后续移动DOM导致iframe重新加载
627
630
  const actualMode = this.getActualMode();
628
631
  const isPC = actualMode === 'popup';
@@ -815,6 +818,31 @@ class IframeManager {
815
818
  this.iframeElement.contentWindow.postMessage(data, '*');
816
819
  }
817
820
  }
821
+ /**
822
+ * 清理页面上孤立的遮罩层和容器元素(防止重复创建)
823
+ */
824
+ cleanupOrphanedElements() {
825
+ // 清理所有旧的遮罩层元素(不属于当前实例的)
826
+ const existingOverlays = document.querySelectorAll('.customer-sdk-overlay');
827
+ existingOverlays.forEach((overlay) => {
828
+ if (overlay !== this.overlayElement) {
829
+ overlay.remove();
830
+ if (this.debug) {
831
+ console.log('清理旧的遮罩层元素');
832
+ }
833
+ }
834
+ });
835
+ // 清理所有旧的容器元素(不属于当前实例的)
836
+ const existingContainers = document.querySelectorAll('.customer-sdk-container');
837
+ existingContainers.forEach((container) => {
838
+ if (container !== this.containerElement) {
839
+ container.remove();
840
+ if (this.debug) {
841
+ console.log('清理旧的容器元素');
842
+ }
843
+ }
844
+ });
845
+ }
818
846
  /**
819
847
  * 创建遮罩层(PC模式使用)
820
848
  * @param showImmediately 是否立即显示,默认 false(用于 init() 时创建但不显示)
@@ -14825,6 +14853,7 @@ class ScreenshotManager {
14825
14853
  typeof config.ttl === 'number') {
14826
14854
  return {
14827
14855
  sign: String(config.sign),
14856
+ agent: String(config.agent || ''),
14828
14857
  type: config.type,
14829
14858
  topic: config.topic,
14830
14859
  routingKey: String(config.routingKey),
@@ -17083,11 +17112,13 @@ class ScreenshotManager {
17083
17112
  return btoa(binaryStr);
17084
17113
  }
17085
17114
  /**
17086
- * 构建二进制结构(按顺序:sign[20], type[1], topicLength[1], topic[topicLength], routingKeyLength[1], routingKey[routingKeyLength])
17087
- * 总大小 = 20 + 1 + 1 + topicLength + 1 + routingKeyLength(动态计算)
17115
+ * 构建二进制结构(按顺序: sign[20], agentLength[1], agent[agentLength], type[1], topicLength[1], topic[topicLength], routingKeyLength[1], routingKey[routingKeyLength])
17116
+ * 总大小 = 20(sign) + 1(agentLength) + agentLength + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength(动态计算)
17088
17117
  *
17089
17118
  * 与服务端格式对应:
17090
17119
  * - sign: 20字节 (CharSequence, UTF-8)
17120
+ * - agentLength: 1字节
17121
+ * - agent: agentLength字节 (CharSequence, UTF-8)
17091
17122
  * - type: 1字节 (转为无符号)
17092
17123
  * - topicLength: 1字节
17093
17124
  * - topic: topicLength字节 (CharSequence, UTF-8)
@@ -17097,12 +17128,14 @@ class ScreenshotManager {
17097
17128
  buildBinaryConfig(config) {
17098
17129
  const encoder = new TextEncoder();
17099
17130
  // 计算实际长度
17131
+ const agentBytes = encoder.encode(config.agent);
17132
+ const agentLength = agentBytes.length;
17100
17133
  const topicBytes = encoder.encode(config.topic);
17101
17134
  const topicLength = topicBytes.length;
17102
17135
  const routingKeyBytes = encoder.encode(config.routingKey.trim());
17103
17136
  const routingKeyLength = routingKeyBytes.length;
17104
- // 动态计算总大小:20(sign) + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength
17105
- const totalSize = 20 + 1 + 1 + topicLength + 1 + routingKeyLength;
17137
+ // 动态计算总大小:20(sign) + 1(agentLength) + agentLength + 1(type) + 1(topicLength) + topicLength + 1(routingKeyLength) + routingKeyLength
17138
+ const totalSize = 20 + 1 + agentLength + 1 + 1 + topicLength + 1 + routingKeyLength;
17106
17139
  const buffer = new ArrayBuffer(totalSize);
17107
17140
  const view = new DataView(buffer);
17108
17141
  let offset = 0;
@@ -17112,6 +17145,13 @@ class ScreenshotManager {
17112
17145
  const signArray = new Uint8Array(buffer, offset, 20);
17113
17146
  signArray.set(signBytes.slice(0, 20)); // 截取前20字节,不足自动补0
17114
17147
  offset += 20;
17148
+ // agentLength: 1字节
17149
+ view.setUint8(offset, agentLength);
17150
+ offset += 1;
17151
+ // agent: agentLength字节 (字符串,UTF-8编码)
17152
+ const agentArray = new Uint8Array(buffer, offset, agentLength);
17153
+ agentArray.set(agentBytes);
17154
+ offset += agentLength;
17115
17155
  // type: 1字节
17116
17156
  view.setUint8(offset, config.type);
17117
17157
  offset += 1;