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.
- package/dist/core/IframeManager.d.ts +4 -0
- package/dist/core/IframeManager.d.ts.map +1 -1
- package/dist/core/ScreenshotManager.d.ts +5 -2
- package/dist/core/ScreenshotManager.d.ts.map +1 -1
- package/dist/customer-sdk.cjs.js +44 -4
- package/dist/customer-sdk.esm.js +44 -4
- package/dist/customer-sdk.min.js +2 -2
- package/package.json +1 -1
|
@@ -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;
|
|
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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"}
|
package/dist/customer-sdk.cjs.js
CHANGED
|
@@ -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;
|
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -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;
|