vanshi-sdk 1.0.5 → 1.0.7
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/README.md +1 -1
- package/dist/index.cjs +34 -6
- package/dist/index.js +34 -6
- package/dist/index.mjs +34 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -166,7 +166,7 @@ if (file) {
|
|
|
166
166
|
| `type` | `string` | 消息类型 |
|
|
167
167
|
| `message` | `string` | 消息内容 |
|
|
168
168
|
| `sentStatus` | `number` | 本地发送状态,`0` 表示发送中 |
|
|
169
|
-
| `fileName` | `string` |
|
|
169
|
+
| `fileName` | `string` | 文件名主名称最长 20 个字符,文件后缀完整保留;上传接口也使用截取后的文件名 |
|
|
170
170
|
| `fileSize` | `string` | 文件大小 |
|
|
171
171
|
| `localPreviewUrl` | `string` | 浏览器本地预览地址 |
|
|
172
172
|
|
package/dist/index.cjs
CHANGED
|
@@ -775,6 +775,7 @@ var postSdkDeleteAllMessageApiRequest = (data) => {
|
|
|
775
775
|
|
|
776
776
|
// src/sdk/message.ts
|
|
777
777
|
var clientBizIdSeq = 0;
|
|
778
|
+
var MAX_FILE_NAME_LENGTH = 20;
|
|
778
779
|
function generateClientBizId() {
|
|
779
780
|
clientBizIdSeq = (clientBizIdSeq + 1) % 1e6;
|
|
780
781
|
const timestamp = Date.now();
|
|
@@ -788,6 +789,25 @@ function withClientBizId(message) {
|
|
|
788
789
|
clientBizId: message.clientBizId || generateClientBizId()
|
|
789
790
|
};
|
|
790
791
|
}
|
|
792
|
+
function sliceChars(value, length) {
|
|
793
|
+
return Array.from(value).slice(0, length).join("");
|
|
794
|
+
}
|
|
795
|
+
function getCharLength(value) {
|
|
796
|
+
return Array.from(value).length;
|
|
797
|
+
}
|
|
798
|
+
function truncateFileName(fileName) {
|
|
799
|
+
const lastDotIndex = fileName.lastIndexOf(".");
|
|
800
|
+
const hasExtension = lastDotIndex > 0 && lastDotIndex < fileName.length - 1;
|
|
801
|
+
if (!hasExtension) {
|
|
802
|
+
return getCharLength(fileName) > MAX_FILE_NAME_LENGTH ? sliceChars(fileName, MAX_FILE_NAME_LENGTH) : fileName;
|
|
803
|
+
}
|
|
804
|
+
const baseName = fileName.slice(0, lastDotIndex);
|
|
805
|
+
const extension = fileName.slice(lastDotIndex);
|
|
806
|
+
return `${sliceChars(baseName, MAX_FILE_NAME_LENGTH)}${extension}`;
|
|
807
|
+
}
|
|
808
|
+
function getDisplayFileName(file, fallback = "") {
|
|
809
|
+
return truncateFileName(file?.name || fallback || "");
|
|
810
|
+
}
|
|
791
811
|
function createLocalMediaMessage(message, toConversationID, conversationType) {
|
|
792
812
|
const file = message.file;
|
|
793
813
|
const localPreviewUrl = file && typeof URL !== "undefined" && URL.createObjectURL ? URL.createObjectURL(file) : void 0;
|
|
@@ -813,7 +833,7 @@ function createLocalMediaMessage(message, toConversationID, conversationType) {
|
|
|
813
833
|
isGroupTargetedMessage: "",
|
|
814
834
|
id: "",
|
|
815
835
|
file,
|
|
816
|
-
fileName: file
|
|
836
|
+
fileName: getDisplayFileName(file, message.fileName),
|
|
817
837
|
fileSize: file ? String(file.size) : message.fileSize || "",
|
|
818
838
|
fileDownloadUrl: message.fileDownloadUrl || localPreviewUrl || "",
|
|
819
839
|
thumbnailDownloadUrl: message.thumbnailDownloadUrl || localPreviewUrl || "",
|
|
@@ -841,9 +861,14 @@ async function getImageSize(file) {
|
|
|
841
861
|
img.src = url;
|
|
842
862
|
});
|
|
843
863
|
}
|
|
844
|
-
async function uploadSdkFile(file) {
|
|
864
|
+
async function uploadSdkFile(file, fileName) {
|
|
845
865
|
const formData = new FormData();
|
|
846
|
-
|
|
866
|
+
const uploadFileName = truncateFileName(fileName || file.name || "");
|
|
867
|
+
if (uploadFileName) {
|
|
868
|
+
formData.append("file", file, uploadFileName);
|
|
869
|
+
} else {
|
|
870
|
+
formData.append("file", file);
|
|
871
|
+
}
|
|
847
872
|
const response = await fetch(getUploadUrl(), {
|
|
848
873
|
method: "POST",
|
|
849
874
|
headers: {
|
|
@@ -870,7 +895,7 @@ async function enrichMediaMessage(message) {
|
|
|
870
895
|
}
|
|
871
896
|
const enrichedMessage = {
|
|
872
897
|
...message,
|
|
873
|
-
fileName: file
|
|
898
|
+
fileName: getDisplayFileName(file, message.fileName),
|
|
874
899
|
fileSize: String(file.size)
|
|
875
900
|
};
|
|
876
901
|
if (isSameUid(message.type, "11" /* Image */)) {
|
|
@@ -885,9 +910,12 @@ async function enrichMediaMessage(message) {
|
|
|
885
910
|
enrichedMessage.duration = String(res.duration);
|
|
886
911
|
enrichedMessage.thumbnailWidth = String(res.videoWidth);
|
|
887
912
|
enrichedMessage.thumbnailHeight = String(res.videoHeight);
|
|
888
|
-
enrichedMessage.thumbnailDownloadUrl = await uploadSdkFile(
|
|
913
|
+
enrichedMessage.thumbnailDownloadUrl = await uploadSdkFile(
|
|
914
|
+
res.firstFrameFile,
|
|
915
|
+
res.firstFrameFile.name
|
|
916
|
+
);
|
|
889
917
|
}
|
|
890
|
-
const fileDownloadUrl = await uploadSdkFile(file);
|
|
918
|
+
const fileDownloadUrl = await uploadSdkFile(file, enrichedMessage.fileName);
|
|
891
919
|
enrichedMessage.fileDownloadUrl = fileDownloadUrl;
|
|
892
920
|
if (isSameUid(message.type, "11" /* Image */)) {
|
|
893
921
|
enrichedMessage.thumbnailDownloadUrl = fileDownloadUrl;
|
package/dist/index.js
CHANGED
|
@@ -4143,6 +4143,7 @@ var VanshiSdk = (() => {
|
|
|
4143
4143
|
|
|
4144
4144
|
// src/sdk/message.ts
|
|
4145
4145
|
var clientBizIdSeq = 0;
|
|
4146
|
+
var MAX_FILE_NAME_LENGTH = 20;
|
|
4146
4147
|
function generateClientBizId() {
|
|
4147
4148
|
clientBizIdSeq = (clientBizIdSeq + 1) % 1e6;
|
|
4148
4149
|
const timestamp = Date.now();
|
|
@@ -4156,6 +4157,25 @@ var VanshiSdk = (() => {
|
|
|
4156
4157
|
clientBizId: message.clientBizId || generateClientBizId()
|
|
4157
4158
|
};
|
|
4158
4159
|
}
|
|
4160
|
+
function sliceChars(value2, length) {
|
|
4161
|
+
return Array.from(value2).slice(0, length).join("");
|
|
4162
|
+
}
|
|
4163
|
+
function getCharLength(value2) {
|
|
4164
|
+
return Array.from(value2).length;
|
|
4165
|
+
}
|
|
4166
|
+
function truncateFileName(fileName) {
|
|
4167
|
+
const lastDotIndex = fileName.lastIndexOf(".");
|
|
4168
|
+
const hasExtension = lastDotIndex > 0 && lastDotIndex < fileName.length - 1;
|
|
4169
|
+
if (!hasExtension) {
|
|
4170
|
+
return getCharLength(fileName) > MAX_FILE_NAME_LENGTH ? sliceChars(fileName, MAX_FILE_NAME_LENGTH) : fileName;
|
|
4171
|
+
}
|
|
4172
|
+
const baseName = fileName.slice(0, lastDotIndex);
|
|
4173
|
+
const extension = fileName.slice(lastDotIndex);
|
|
4174
|
+
return `${sliceChars(baseName, MAX_FILE_NAME_LENGTH)}${extension}`;
|
|
4175
|
+
}
|
|
4176
|
+
function getDisplayFileName(file, fallback = "") {
|
|
4177
|
+
return truncateFileName(file?.name || fallback || "");
|
|
4178
|
+
}
|
|
4159
4179
|
function createLocalMediaMessage(message, toConversationID, conversationType) {
|
|
4160
4180
|
const file = message.file;
|
|
4161
4181
|
const localPreviewUrl = file && typeof URL !== "undefined" && URL.createObjectURL ? URL.createObjectURL(file) : void 0;
|
|
@@ -4181,7 +4201,7 @@ var VanshiSdk = (() => {
|
|
|
4181
4201
|
isGroupTargetedMessage: "",
|
|
4182
4202
|
id: "",
|
|
4183
4203
|
file,
|
|
4184
|
-
fileName: file
|
|
4204
|
+
fileName: getDisplayFileName(file, message.fileName),
|
|
4185
4205
|
fileSize: file ? String(file.size) : message.fileSize || "",
|
|
4186
4206
|
fileDownloadUrl: message.fileDownloadUrl || localPreviewUrl || "",
|
|
4187
4207
|
thumbnailDownloadUrl: message.thumbnailDownloadUrl || localPreviewUrl || "",
|
|
@@ -4209,9 +4229,14 @@ var VanshiSdk = (() => {
|
|
|
4209
4229
|
img.src = url2;
|
|
4210
4230
|
});
|
|
4211
4231
|
}
|
|
4212
|
-
async function uploadSdkFile(file) {
|
|
4232
|
+
async function uploadSdkFile(file, fileName) {
|
|
4213
4233
|
const formData = new FormData();
|
|
4214
|
-
|
|
4234
|
+
const uploadFileName = truncateFileName(fileName || file.name || "");
|
|
4235
|
+
if (uploadFileName) {
|
|
4236
|
+
formData.append("file", file, uploadFileName);
|
|
4237
|
+
} else {
|
|
4238
|
+
formData.append("file", file);
|
|
4239
|
+
}
|
|
4215
4240
|
const response = await fetch(getUploadUrl(), {
|
|
4216
4241
|
method: "POST",
|
|
4217
4242
|
headers: {
|
|
@@ -4238,7 +4263,7 @@ var VanshiSdk = (() => {
|
|
|
4238
4263
|
}
|
|
4239
4264
|
const enrichedMessage = {
|
|
4240
4265
|
...message,
|
|
4241
|
-
fileName: file
|
|
4266
|
+
fileName: getDisplayFileName(file, message.fileName),
|
|
4242
4267
|
fileSize: String(file.size)
|
|
4243
4268
|
};
|
|
4244
4269
|
if (isSameUid(message.type, "11" /* Image */)) {
|
|
@@ -4253,9 +4278,12 @@ var VanshiSdk = (() => {
|
|
|
4253
4278
|
enrichedMessage.duration = String(res.duration);
|
|
4254
4279
|
enrichedMessage.thumbnailWidth = String(res.videoWidth);
|
|
4255
4280
|
enrichedMessage.thumbnailHeight = String(res.videoHeight);
|
|
4256
|
-
enrichedMessage.thumbnailDownloadUrl = await uploadSdkFile(
|
|
4281
|
+
enrichedMessage.thumbnailDownloadUrl = await uploadSdkFile(
|
|
4282
|
+
res.firstFrameFile,
|
|
4283
|
+
res.firstFrameFile.name
|
|
4284
|
+
);
|
|
4257
4285
|
}
|
|
4258
|
-
const fileDownloadUrl = await uploadSdkFile(file);
|
|
4286
|
+
const fileDownloadUrl = await uploadSdkFile(file, enrichedMessage.fileName);
|
|
4259
4287
|
enrichedMessage.fileDownloadUrl = fileDownloadUrl;
|
|
4260
4288
|
if (isSameUid(message.type, "11" /* Image */)) {
|
|
4261
4289
|
enrichedMessage.thumbnailDownloadUrl = fileDownloadUrl;
|
package/dist/index.mjs
CHANGED
|
@@ -718,6 +718,7 @@ var postSdkDeleteAllMessageApiRequest = (data) => {
|
|
|
718
718
|
|
|
719
719
|
// src/sdk/message.ts
|
|
720
720
|
var clientBizIdSeq = 0;
|
|
721
|
+
var MAX_FILE_NAME_LENGTH = 20;
|
|
721
722
|
function generateClientBizId() {
|
|
722
723
|
clientBizIdSeq = (clientBizIdSeq + 1) % 1e6;
|
|
723
724
|
const timestamp = Date.now();
|
|
@@ -731,6 +732,25 @@ function withClientBizId(message) {
|
|
|
731
732
|
clientBizId: message.clientBizId || generateClientBizId()
|
|
732
733
|
};
|
|
733
734
|
}
|
|
735
|
+
function sliceChars(value, length) {
|
|
736
|
+
return Array.from(value).slice(0, length).join("");
|
|
737
|
+
}
|
|
738
|
+
function getCharLength(value) {
|
|
739
|
+
return Array.from(value).length;
|
|
740
|
+
}
|
|
741
|
+
function truncateFileName(fileName) {
|
|
742
|
+
const lastDotIndex = fileName.lastIndexOf(".");
|
|
743
|
+
const hasExtension = lastDotIndex > 0 && lastDotIndex < fileName.length - 1;
|
|
744
|
+
if (!hasExtension) {
|
|
745
|
+
return getCharLength(fileName) > MAX_FILE_NAME_LENGTH ? sliceChars(fileName, MAX_FILE_NAME_LENGTH) : fileName;
|
|
746
|
+
}
|
|
747
|
+
const baseName = fileName.slice(0, lastDotIndex);
|
|
748
|
+
const extension = fileName.slice(lastDotIndex);
|
|
749
|
+
return `${sliceChars(baseName, MAX_FILE_NAME_LENGTH)}${extension}`;
|
|
750
|
+
}
|
|
751
|
+
function getDisplayFileName(file, fallback = "") {
|
|
752
|
+
return truncateFileName(file?.name || fallback || "");
|
|
753
|
+
}
|
|
734
754
|
function createLocalMediaMessage(message, toConversationID, conversationType) {
|
|
735
755
|
const file = message.file;
|
|
736
756
|
const localPreviewUrl = file && typeof URL !== "undefined" && URL.createObjectURL ? URL.createObjectURL(file) : void 0;
|
|
@@ -756,7 +776,7 @@ function createLocalMediaMessage(message, toConversationID, conversationType) {
|
|
|
756
776
|
isGroupTargetedMessage: "",
|
|
757
777
|
id: "",
|
|
758
778
|
file,
|
|
759
|
-
fileName: file
|
|
779
|
+
fileName: getDisplayFileName(file, message.fileName),
|
|
760
780
|
fileSize: file ? String(file.size) : message.fileSize || "",
|
|
761
781
|
fileDownloadUrl: message.fileDownloadUrl || localPreviewUrl || "",
|
|
762
782
|
thumbnailDownloadUrl: message.thumbnailDownloadUrl || localPreviewUrl || "",
|
|
@@ -784,9 +804,14 @@ async function getImageSize(file) {
|
|
|
784
804
|
img.src = url;
|
|
785
805
|
});
|
|
786
806
|
}
|
|
787
|
-
async function uploadSdkFile(file) {
|
|
807
|
+
async function uploadSdkFile(file, fileName) {
|
|
788
808
|
const formData = new FormData();
|
|
789
|
-
|
|
809
|
+
const uploadFileName = truncateFileName(fileName || file.name || "");
|
|
810
|
+
if (uploadFileName) {
|
|
811
|
+
formData.append("file", file, uploadFileName);
|
|
812
|
+
} else {
|
|
813
|
+
formData.append("file", file);
|
|
814
|
+
}
|
|
790
815
|
const response = await fetch(getUploadUrl(), {
|
|
791
816
|
method: "POST",
|
|
792
817
|
headers: {
|
|
@@ -813,7 +838,7 @@ async function enrichMediaMessage(message) {
|
|
|
813
838
|
}
|
|
814
839
|
const enrichedMessage = {
|
|
815
840
|
...message,
|
|
816
|
-
fileName: file
|
|
841
|
+
fileName: getDisplayFileName(file, message.fileName),
|
|
817
842
|
fileSize: String(file.size)
|
|
818
843
|
};
|
|
819
844
|
if (isSameUid(message.type, "11" /* Image */)) {
|
|
@@ -828,9 +853,12 @@ async function enrichMediaMessage(message) {
|
|
|
828
853
|
enrichedMessage.duration = String(res.duration);
|
|
829
854
|
enrichedMessage.thumbnailWidth = String(res.videoWidth);
|
|
830
855
|
enrichedMessage.thumbnailHeight = String(res.videoHeight);
|
|
831
|
-
enrichedMessage.thumbnailDownloadUrl = await uploadSdkFile(
|
|
856
|
+
enrichedMessage.thumbnailDownloadUrl = await uploadSdkFile(
|
|
857
|
+
res.firstFrameFile,
|
|
858
|
+
res.firstFrameFile.name
|
|
859
|
+
);
|
|
832
860
|
}
|
|
833
|
-
const fileDownloadUrl = await uploadSdkFile(file);
|
|
861
|
+
const fileDownloadUrl = await uploadSdkFile(file, enrichedMessage.fileName);
|
|
834
862
|
enrichedMessage.fileDownloadUrl = fileDownloadUrl;
|
|
835
863
|
if (isSameUid(message.type, "11" /* Image */)) {
|
|
836
864
|
enrichedMessage.thumbnailDownloadUrl = fileDownloadUrl;
|