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 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?.name || message.fileName || "",
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
- formData.append("file", file);
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.name || message.fileName || "",
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(res.firstFrameFile);
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?.name || message.fileName || "",
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
- formData.append("file", file);
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.name || message.fileName || "",
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(res.firstFrameFile);
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?.name || message.fileName || "",
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
- formData.append("file", file);
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.name || message.fileName || "",
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(res.firstFrameFile);
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;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "type": "module",
4
4
  "name": "vanshi-sdk",
5
- "version": "1.0.5",
5
+ "version": "1.0.7",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.mjs",
8
8
  "browser": "./dist/index.js",