bruce-models 1.7.9 → 1.8.1
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/bruce-models.es5.js +206 -40
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +204 -39
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/bruce-models.js +1 -0
- package/dist/lib/bruce-models.js.map +1 -1
- package/dist/lib/client-file/client-file.js +85 -32
- package/dist/lib/client-file/client-file.js.map +1 -1
- package/dist/lib/entity/entity-tag.js +0 -3
- package/dist/lib/entity/entity-tag.js.map +1 -1
- package/dist/lib/internal/uploader.js +77 -0
- package/dist/lib/internal/uploader.js.map +1 -0
- package/dist/lib/tileset/tileset.js +59 -4
- package/dist/lib/tileset/tileset.js.map +1 -1
- package/dist/types/api/api.d.ts +1 -1
- package/dist/types/bruce-models.d.ts +1 -0
- package/dist/types/client-file/client-file.d.ts +11 -2
- package/dist/types/internal/uploader.d.ts +16 -0
- package/dist/types/tileset/tileset.d.ts +5 -2
- package/package.json +1 -1
package/dist/bruce-models.umd.js
CHANGED
|
@@ -3745,9 +3745,6 @@
|
|
|
3745
3745
|
function Update(params) {
|
|
3746
3746
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3747
3747
|
const { api, tag: data, req: reqParams } = params;
|
|
3748
|
-
if (!(data === null || data === void 0 ? void 0 : data.ID)) {
|
|
3749
|
-
throw ("Tag ID is required.");
|
|
3750
|
-
}
|
|
3751
3748
|
const url = data.ID ? `layer/${data.ID}` : "layer";
|
|
3752
3749
|
const res = yield api.POST(url, data, exports.Api.PrepReqParams(reqParams));
|
|
3753
3750
|
api.Cache.Remove(GetCacheKey(data.ID));
|
|
@@ -4599,6 +4596,68 @@
|
|
|
4599
4596
|
EntityAttribute.GetAttribute = GetAttribute;
|
|
4600
4597
|
})(exports.EntityAttribute || (exports.EntityAttribute = {}));
|
|
4601
4598
|
|
|
4599
|
+
(function (Uploader) {
|
|
4600
|
+
Uploader.MIN_LARGE_FILE_SIZE = 100000000; // 100MB.
|
|
4601
|
+
function DoMultiPartUpload(params) {
|
|
4602
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4603
|
+
const { file, api, urlSuffix: url, req, onProgress } = params;
|
|
4604
|
+
const FILE_PORTION_SIZE = 100000000; // 100MB.
|
|
4605
|
+
let fileSize = file.size;
|
|
4606
|
+
let fileOffset = 0;
|
|
4607
|
+
let filePartsCount = fileSize / FILE_PORTION_SIZE;
|
|
4608
|
+
let t = Math.trunc(filePartsCount);
|
|
4609
|
+
filePartsCount = filePartsCount > t ? t + 1 : t;
|
|
4610
|
+
let filePartIndex = 1;
|
|
4611
|
+
let uploadToken = exports.ObjectUtils.UId();
|
|
4612
|
+
let data;
|
|
4613
|
+
while (fileOffset < fileSize) {
|
|
4614
|
+
let partSize = Math.min(FILE_PORTION_SIZE, fileSize - fileOffset);
|
|
4615
|
+
let retryCount = 5;
|
|
4616
|
+
let retryWait = 1000;
|
|
4617
|
+
while (retryCount > 0) {
|
|
4618
|
+
try {
|
|
4619
|
+
const blob = file.slice(fileOffset, fileOffset + partSize);
|
|
4620
|
+
const formData = new FormData();
|
|
4621
|
+
formData.append("originalFileName", file.name);
|
|
4622
|
+
formData.append("token", uploadToken);
|
|
4623
|
+
formData.append("count", "" + filePartsCount);
|
|
4624
|
+
formData.append("part", "" + filePartIndex);
|
|
4625
|
+
formData.append("file", blob);
|
|
4626
|
+
const reqParams = exports.Api.PrepReqParams(req);
|
|
4627
|
+
reqParams.formData = formData;
|
|
4628
|
+
reqParams.onProgress = (progress) => {
|
|
4629
|
+
const sofar = fileOffset + progress.loaded;
|
|
4630
|
+
const percent = Math.round((sofar / file.size) * 100);
|
|
4631
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
4632
|
+
percent: percent,
|
|
4633
|
+
uploaded: false
|
|
4634
|
+
});
|
|
4635
|
+
};
|
|
4636
|
+
data = yield api.UPLOAD(url, blob, reqParams);
|
|
4637
|
+
retryCount = 0;
|
|
4638
|
+
}
|
|
4639
|
+
catch (up) {
|
|
4640
|
+
retryCount -= 1;
|
|
4641
|
+
if (retryCount <= 0) {
|
|
4642
|
+
throw up;
|
|
4643
|
+
}
|
|
4644
|
+
yield new Promise((res) => setTimeout(res, retryWait));
|
|
4645
|
+
retryWait = retryWait * 2;
|
|
4646
|
+
}
|
|
4647
|
+
}
|
|
4648
|
+
fileOffset += partSize;
|
|
4649
|
+
filePartIndex++;
|
|
4650
|
+
}
|
|
4651
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
4652
|
+
percent: 100,
|
|
4653
|
+
uploaded: true
|
|
4654
|
+
});
|
|
4655
|
+
return data;
|
|
4656
|
+
});
|
|
4657
|
+
}
|
|
4658
|
+
Uploader.DoMultiPartUpload = DoMultiPartUpload;
|
|
4659
|
+
})(exports.Uploader || (exports.Uploader = {}));
|
|
4660
|
+
|
|
4602
4661
|
(function (ClientFile) {
|
|
4603
4662
|
function GetCacheKey(fileId) {
|
|
4604
4663
|
return `${exports.Api.ECacheKey.ClientFile}${exports.Api.ECacheKey.Id}${fileId}`;
|
|
@@ -4660,33 +4719,67 @@
|
|
|
4660
4719
|
ClientFile.Delete = Delete;
|
|
4661
4720
|
function Upload(params) {
|
|
4662
4721
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4663
|
-
const { api, file, purpose, req } = params;
|
|
4722
|
+
const { api, file, purpose, req, onProgress } = params;
|
|
4664
4723
|
if (!file) {
|
|
4665
4724
|
throw ("File is required.");
|
|
4666
4725
|
}
|
|
4667
|
-
|
|
4668
|
-
if (
|
|
4669
|
-
|
|
4670
|
-
"Purpose": purpose
|
|
4671
|
-
};
|
|
4726
|
+
const size = file === null || file === void 0 ? void 0 : file.size;
|
|
4727
|
+
if (!size) {
|
|
4728
|
+
throw ("You cannot upload a 0byte sized file.");
|
|
4672
4729
|
}
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4730
|
+
let clientFile;
|
|
4731
|
+
if (size > exports.Uploader.MIN_LARGE_FILE_SIZE) {
|
|
4732
|
+
clientFile = yield exports.Uploader.DoMultiPartUpload({
|
|
4733
|
+
api,
|
|
4734
|
+
file,
|
|
4735
|
+
urlSuffix: "fileUpload",
|
|
4736
|
+
req,
|
|
4737
|
+
onProgress
|
|
4738
|
+
});
|
|
4739
|
+
}
|
|
4740
|
+
else {
|
|
4741
|
+
const reqParams = exports.Api.PrepReqParams(Object.assign({}, req));
|
|
4742
|
+
reqParams.onProgress = (progress) => {
|
|
4743
|
+
const percent = Math.round((progress.loaded / file.size) * 100);
|
|
4744
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
4745
|
+
percent: percent,
|
|
4746
|
+
uploaded: false
|
|
4680
4747
|
});
|
|
4681
|
-
}
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
|
|
4748
|
+
};
|
|
4749
|
+
clientFile = yield api.UPLOAD("file/uploadNew", file, req);
|
|
4750
|
+
}
|
|
4751
|
+
if ((clientFile === null || clientFile === void 0 ? void 0 : clientFile.ID) && purpose) {
|
|
4752
|
+
yield UpdatePurpose({
|
|
4753
|
+
api,
|
|
4754
|
+
fileId: clientFile.ID,
|
|
4755
|
+
purpose,
|
|
4756
|
+
req
|
|
4757
|
+
});
|
|
4758
|
+
}
|
|
4759
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
4760
|
+
percent: 100,
|
|
4761
|
+
uploaded: true
|
|
4762
|
+
});
|
|
4763
|
+
return {
|
|
4764
|
+
clientFile
|
|
4765
|
+
};
|
|
4687
4766
|
});
|
|
4688
4767
|
}
|
|
4689
4768
|
ClientFile.Upload = Upload;
|
|
4769
|
+
function UpdatePurpose(params) {
|
|
4770
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4771
|
+
let { api, fileId, purpose, req: reqParams } = params;
|
|
4772
|
+
if (!purpose) {
|
|
4773
|
+
purpose = "";
|
|
4774
|
+
}
|
|
4775
|
+
yield api.POST("file/updatepurpose/" + fileId + "/?Purpose=" + purpose, {
|
|
4776
|
+
Purpose: purpose
|
|
4777
|
+
}, exports.Api.PrepReqParams(reqParams));
|
|
4778
|
+
const cacheKey = GetCacheKey(fileId);
|
|
4779
|
+
api.Cache.RemoveByContains(cacheKey);
|
|
4780
|
+
});
|
|
4781
|
+
}
|
|
4782
|
+
ClientFile.UpdatePurpose = UpdatePurpose;
|
|
4690
4783
|
/**
|
|
4691
4784
|
* Uploads a temp file.
|
|
4692
4785
|
* This will return a temp file id which can be used in various endpoints.
|
|
@@ -4695,23 +4788,41 @@
|
|
|
4695
4788
|
*/
|
|
4696
4789
|
function UploadTemp(params) {
|
|
4697
4790
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4698
|
-
const { api, file, req } = params;
|
|
4791
|
+
const { api, file, req, onProgress } = params;
|
|
4699
4792
|
if (!file) {
|
|
4700
4793
|
throw ("File is required.");
|
|
4701
4794
|
}
|
|
4702
|
-
const
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4795
|
+
const size = file === null || file === void 0 ? void 0 : file.size;
|
|
4796
|
+
if (!size) {
|
|
4797
|
+
throw ("You cannot upload a 0byte sized file.");
|
|
4798
|
+
}
|
|
4799
|
+
let tempFile;
|
|
4800
|
+
if (size > exports.Uploader.MIN_LARGE_FILE_SIZE) {
|
|
4801
|
+
tempFile = yield exports.Uploader.DoMultiPartUpload({
|
|
4802
|
+
api,
|
|
4803
|
+
file,
|
|
4804
|
+
urlSuffix: "tempFileUpload",
|
|
4805
|
+
req,
|
|
4806
|
+
onProgress
|
|
4807
|
+
});
|
|
4808
|
+
}
|
|
4809
|
+
else {
|
|
4810
|
+
req.onProgress = (progress) => {
|
|
4811
|
+
const percent = Math.round((progress.loaded / file.size) * 100);
|
|
4812
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
4813
|
+
percent: percent,
|
|
4814
|
+
uploaded: false
|
|
4708
4815
|
});
|
|
4709
|
-
}
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4816
|
+
};
|
|
4817
|
+
tempFile = yield api.UPLOAD("file/uploadTemp", file, req);
|
|
4818
|
+
}
|
|
4819
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
4820
|
+
percent: 100,
|
|
4821
|
+
uploaded: true
|
|
4822
|
+
});
|
|
4823
|
+
return {
|
|
4824
|
+
tempFileId: tempFile["TempFile.ID"]
|
|
4825
|
+
};
|
|
4715
4826
|
});
|
|
4716
4827
|
}
|
|
4717
4828
|
ClientFile.UploadTemp = UploadTemp;
|
|
@@ -5025,11 +5136,38 @@
|
|
|
5025
5136
|
Tileset.Update = Update;
|
|
5026
5137
|
function UploadFile(params) {
|
|
5027
5138
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5028
|
-
const { api,
|
|
5139
|
+
const { api, file, req, tilesetId, onProgress } = params;
|
|
5029
5140
|
if (!tilesetId || !file) {
|
|
5030
5141
|
throw ("Tileset ID and file are required.");
|
|
5031
5142
|
}
|
|
5032
|
-
|
|
5143
|
+
const size = file === null || file === void 0 ? void 0 : file.size;
|
|
5144
|
+
if (!size) {
|
|
5145
|
+
throw ("You cannot upload a 0byte sized file.");
|
|
5146
|
+
}
|
|
5147
|
+
if (size > exports.Uploader.MIN_LARGE_FILE_SIZE) {
|
|
5148
|
+
yield exports.Uploader.DoMultiPartUpload({
|
|
5149
|
+
api,
|
|
5150
|
+
file,
|
|
5151
|
+
urlSuffix: `tileset/uploadFileEx/${tilesetId}/add`,
|
|
5152
|
+
req,
|
|
5153
|
+
onProgress
|
|
5154
|
+
});
|
|
5155
|
+
}
|
|
5156
|
+
else {
|
|
5157
|
+
req.onProgress = (progress) => {
|
|
5158
|
+
const percent = Math.round((progress.loaded / file.size) * 100);
|
|
5159
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
5160
|
+
percent: percent,
|
|
5161
|
+
uploaded: false
|
|
5162
|
+
});
|
|
5163
|
+
};
|
|
5164
|
+
yield api.UPLOAD(`tileset/uploadFile/${tilesetId}/files`, file, req);
|
|
5165
|
+
}
|
|
5166
|
+
api.Cache.Remove(GetCacheKey(tilesetId, true));
|
|
5167
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
5168
|
+
percent: 100,
|
|
5169
|
+
uploaded: true
|
|
5170
|
+
});
|
|
5033
5171
|
});
|
|
5034
5172
|
}
|
|
5035
5173
|
Tileset.UploadFile = UploadFile;
|
|
@@ -5046,12 +5184,39 @@
|
|
|
5046
5184
|
Tileset.DeleteFile = DeleteFile;
|
|
5047
5185
|
function UploadSrcFile(params) {
|
|
5048
5186
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5049
|
-
const { api,
|
|
5187
|
+
const { api, file, req, tilesetId, onProgress } = params;
|
|
5050
5188
|
if (!tilesetId || !file) {
|
|
5051
5189
|
throw ("Tileset ID and file are required.");
|
|
5052
5190
|
}
|
|
5053
|
-
|
|
5191
|
+
const size = file === null || file === void 0 ? void 0 : file.size;
|
|
5192
|
+
if (!size) {
|
|
5193
|
+
throw ("You cannot upload a 0byte sized file.");
|
|
5194
|
+
}
|
|
5195
|
+
if (size > exports.Uploader.MIN_LARGE_FILE_SIZE) {
|
|
5196
|
+
yield exports.Uploader.DoMultiPartUpload({
|
|
5197
|
+
api,
|
|
5198
|
+
file,
|
|
5199
|
+
urlSuffix: `tileset/uploadFileEx/${tilesetId}/src`,
|
|
5200
|
+
req,
|
|
5201
|
+
onProgress
|
|
5202
|
+
});
|
|
5203
|
+
}
|
|
5204
|
+
else {
|
|
5205
|
+
req.onProgress = (progress) => {
|
|
5206
|
+
const percent = Math.round((progress.loaded / file.size) * 100);
|
|
5207
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
5208
|
+
percent: percent,
|
|
5209
|
+
uploaded: false
|
|
5210
|
+
});
|
|
5211
|
+
};
|
|
5212
|
+
yield api.UPLOAD(`tileset/uploadFile/${tilesetId}/src`, file, req);
|
|
5213
|
+
}
|
|
5054
5214
|
api.Cache.Remove(GetCacheKey(tilesetId, true));
|
|
5215
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
5216
|
+
percent: 100,
|
|
5217
|
+
uploaded: true
|
|
5218
|
+
});
|
|
5219
|
+
return;
|
|
5055
5220
|
});
|
|
5056
5221
|
}
|
|
5057
5222
|
Tileset.UploadSrcFile = UploadSrcFile;
|