@resolveio/server-lib 20.12.53 → 20.12.55

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/methods/pdf.js CHANGED
@@ -91,6 +91,7 @@ exports.loadPDFMethods = loadPDFMethods;
91
91
  var fs = require("fs");
92
92
  var os = require("os");
93
93
  var path = require("path");
94
+ var axios_1 = require("axios");
94
95
  var pdf_lib_1 = require("pdf-lib");
95
96
  var puppeteer = require("puppeteer");
96
97
  var simpl_schema_1 = require("simpl-schema");
@@ -776,53 +777,84 @@ function loadPDFMethods(methodManager) {
776
777
  }),
777
778
  function: function (fileKeys, fileName, fileType) {
778
779
  return __awaiter(this, void 0, void 0, function () {
779
- var resSigneds, promises_1, fileDatas, mergedPdf_1, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, error_1, mergedPDFUint8, b64PDF, err_3;
780
- var _this = this;
780
+ var resSigneds, err_3, mergedPdf, i, signedUrl, fileKey, response, err_4, contentTypeHeader, contentType, fileDataBuffer, fileKeyLower, isPdf, isJpg, isPng, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, err_5, mergedPDFUint8, mergedPDFBuffer;
781
781
  return __generator(this, function (_a) {
782
782
  switch (_a.label) {
783
783
  case 0:
784
- _a.trys.push([0, 25, , 26]);
785
- return [4 /*yield*/, this.callMethod('getSignedUrls', fileKeys, 900)];
784
+ resSigneds = null;
785
+ _a.label = 1;
786
786
  case 1:
787
- resSigneds = _a.sent();
788
- if (!(resSigneds && resSigneds.length)) return [3 /*break*/, 24];
789
- promises_1 = [];
790
- resSigneds.forEach(function (signedUrl) {
791
- promises_1.push(_this.callMethod('getDataURIfromURL', signedUrl));
792
- });
793
- return [4 /*yield*/, Promise.all(promises_1)];
787
+ _a.trys.push([1, 3, , 4]);
788
+ return [4 /*yield*/, this.callMethod('getSignedUrls', fileKeys, 900)];
794
789
  case 2:
795
- fileDatas = _a.sent();
796
- return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
790
+ resSigneds = _a.sent();
791
+ return [3 /*break*/, 4];
797
792
  case 3:
798
- mergedPdf_1 = _a.sent();
799
- i = 0;
800
- _a.label = 4;
793
+ err_3 = _a.sent();
794
+ err_3.message = 'Error in Merge PDF Resolve: PDF Merge - Get Signed URLs - ' + err_3.message;
795
+ throw err_3;
801
796
  case 4:
802
- if (!(i < fileDatas.length)) return [3 /*break*/, 22];
803
- fileData = fileDatas[i];
804
- if (!fileData) return [3 /*break*/, 20];
805
- _a.label = 5;
797
+ if (!resSigneds || !resSigneds.length) {
798
+ throw new Error('Error in Merge PDF Resolve: PDF Merge - No signed urls');
799
+ }
800
+ return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
806
801
  case 5:
807
- _a.trys.push([5, 18, , 19]);
808
- if (!fileData.startsWith('data:application/pdf;base64,')) return [3 /*break*/, 8];
809
- return [4 /*yield*/, pdf_lib_1.PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: pdf_lib_1.ParseSpeeds.Fastest, ignoreEncryption: true })];
802
+ mergedPdf = _a.sent();
803
+ i = 0;
804
+ _a.label = 6;
810
805
  case 6:
811
- pdf = _a.sent();
812
- return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
806
+ if (!(i < resSigneds.length)) return [3 /*break*/, 26];
807
+ signedUrl = resSigneds[i];
808
+ fileKey = fileKeys && fileKeys[i] ? fileKeys[i] : '';
809
+ response = null;
810
+ _a.label = 7;
813
811
  case 7:
812
+ _a.trys.push([7, 9, , 10]);
813
+ return [4 /*yield*/, axios_1.default.get(signedUrl, {
814
+ responseType: 'arraybuffer'
815
+ })];
816
+ case 8:
817
+ response = _a.sent();
818
+ return [3 /*break*/, 10];
819
+ case 9:
820
+ err_4 = _a.sent();
821
+ err_4.message = "Error in Merge PDF Resolve: PDF Merge - Download failed (".concat(fileKey || 'unknown key', ") - ").concat(err_4.message);
822
+ throw err_4;
823
+ case 10:
824
+ if (!response || response.status !== 200) {
825
+ throw new Error("Error in Merge PDF Resolve: PDF Merge - Download failed (".concat(fileKey || 'unknown key', ") - status: ").concat(response ? response.status : 'unknown'));
826
+ }
827
+ contentTypeHeader = response.headers ? response.headers['content-type'] : '';
828
+ contentType = (contentTypeHeader ? String(contentTypeHeader) : '').toLowerCase().split(';')[0].trim();
829
+ fileDataBuffer = response.data;
830
+ if (!fileDataBuffer) {
831
+ throw new Error("Error in Merge PDF Resolve: PDF Merge - No file data returned (".concat(fileKey || 'unknown key', ")"));
832
+ }
833
+ fileKeyLower = fileKey ? fileKey.toLowerCase() : '';
834
+ isPdf = contentType === 'application/pdf' || contentType === 'application/x-pdf' || fileKeyLower.endsWith('.pdf');
835
+ isJpg = contentType === 'image/jpeg' || contentType === 'image/jpg' || fileKeyLower.endsWith('.jpg') || fileKeyLower.endsWith('.jpeg');
836
+ isPng = contentType === 'image/png' || fileKeyLower.endsWith('.png');
837
+ _a.label = 11;
838
+ case 11:
839
+ _a.trys.push([11, 24, , 25]);
840
+ if (!isPdf) return [3 /*break*/, 14];
841
+ return [4 /*yield*/, pdf_lib_1.PDFDocument.load(fileDataBuffer, { updateMetadata: false, parseSpeed: pdf_lib_1.ParseSpeeds.Fastest, ignoreEncryption: true })];
842
+ case 12:
843
+ pdf = _a.sent();
844
+ return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
845
+ case 13:
814
846
  copiedPages = _a.sent();
815
847
  copiedPages.forEach(function (page) {
816
- mergedPdf_1.addPage(page);
848
+ mergedPdf.addPage(page);
817
849
  });
818
- return [3 /*break*/, 17];
819
- case 8:
820
- if (!(fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/'))) return [3 /*break*/, 12];
850
+ return [3 /*break*/, 23];
851
+ case 14:
852
+ if (!isJpg) return [3 /*break*/, 18];
821
853
  return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
822
- case 9:
854
+ case 15:
823
855
  pdf = _a.sent();
824
- return [4 /*yield*/, pdf.embedJpg(fileData)];
825
- case 10:
856
+ return [4 /*yield*/, pdf.embedJpg(fileDataBuffer)];
857
+ case 16:
826
858
  img = _a.sent();
827
859
  page = pdf.addPage();
828
860
  imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);
@@ -832,20 +864,20 @@ function loadPDFMethods(methodManager) {
832
864
  width: imgDim.width,
833
865
  height: imgDim.height,
834
866
  });
835
- return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
836
- case 11:
867
+ return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
868
+ case 17:
837
869
  copiedPages = _a.sent();
838
870
  copiedPages.forEach(function (page) {
839
- mergedPdf_1.addPage(page);
871
+ mergedPdf.addPage(page);
840
872
  });
841
- return [3 /*break*/, 17];
842
- case 12:
843
- if (!fileData.startsWith('data:image/png;base64,iVBOR')) return [3 /*break*/, 16];
873
+ return [3 /*break*/, 23];
874
+ case 18:
875
+ if (!isPng) return [3 /*break*/, 22];
844
876
  return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
845
- case 13:
877
+ case 19:
846
878
  pdf = _a.sent();
847
- return [4 /*yield*/, pdf.embedPng(fileData)];
848
- case 14:
879
+ return [4 /*yield*/, pdf.embedPng(fileDataBuffer)];
880
+ case 20:
849
881
  img = _a.sent();
850
882
  page = pdf.addPage();
851
883
  imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);
@@ -855,40 +887,29 @@ function loadPDFMethods(methodManager) {
855
887
  width: imgDim.width,
856
888
  height: imgDim.height,
857
889
  });
858
- return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
859
- case 15:
890
+ return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
891
+ case 21:
860
892
  copiedPages = _a.sent();
861
893
  copiedPages.forEach(function (page) {
862
- mergedPdf_1.addPage(page);
894
+ mergedPdf.addPage(page);
863
895
  });
864
- return [3 /*break*/, 17];
865
- case 16:
866
- console.log('Error - unsupported!!', fileData.slice(0, 60));
867
- throw new Error('Error in Merge PDF Resolve: Unsupported document type - ' + fileData.slice(0, 60));
868
- case 17: return [3 /*break*/, 19];
869
- case 18:
870
- error_1 = _a.sent();
871
- console.log('Error processing fileData:', fileData.slice(0, 60), error_1.message);
872
- error_1.message = "Error in Merge PDF Resolve: Error processing fileData: ".concat(fileData.slice(0, 60), " - ").concat(error_1.message);
873
- throw error_1;
874
- case 19: return [3 /*break*/, 21];
875
- case 20:
876
- console.log('Error - no filedata!!', fileData);
877
- throw new Error('Error in Merge PDF Resolve: No File Data');
878
- case 21:
896
+ return [3 /*break*/, 23];
897
+ case 22:
898
+ console.log('Error - unsupported!!', { fileKey: fileKey, contentType: contentType });
899
+ throw new Error("Error in Merge PDF Resolve: Unsupported document type (".concat(contentType || 'unknown content-type', ")"));
900
+ case 23: return [3 /*break*/, 25];
901
+ case 24:
902
+ err_5 = _a.sent();
903
+ err_5.message = "Error in Merge PDF Resolve: PDF Merge - Error processing file (".concat(fileKey || 'unknown key', ") - ").concat(err_5.message);
904
+ throw err_5;
905
+ case 25:
879
906
  i++;
880
- return [3 /*break*/, 4];
881
- case 22: return [4 /*yield*/, mergedPdf_1.save()];
882
- case 23:
907
+ return [3 /*break*/, 6];
908
+ case 26: return [4 /*yield*/, mergedPdf.save()];
909
+ case 27:
883
910
  mergedPDFUint8 = _a.sent();
884
- b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');
885
- return [2 /*return*/, this.callMethod('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false)];
886
- case 24: return [3 /*break*/, 26];
887
- case 25:
888
- err_3 = _a.sent();
889
- err_3.message = 'Error in Merge PDF Resolve: PDF Merge - Get Signed URLs - ' + err_3.message;
890
- throw err_3;
891
- case 26: return [2 /*return*/];
911
+ mergedPDFBuffer = Buffer.from(mergedPDFUint8);
912
+ return [2 /*return*/, this.callMethod('uploadPDFBufferAndSave', fileName, mergedPDFBuffer, mergedPDFBuffer.byteLength, -1, fileType || 'pdf')];
892
913
  }
893
914
  });
894
915
  });
@@ -909,7 +930,7 @@ function loadPDFMethods(methodManager) {
909
930
  }),
910
931
  function: function (fileKeys) {
911
932
  return __awaiter(this, void 0, void 0, function () {
912
- var resSigneds, promises_2, fileDatas, mergedPdf_2, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, error_2, mergedPDFUint8, b64PDF, err_4;
933
+ var resSigneds, promises_1, fileDatas, mergedPdf_1, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, error_1, mergedPDFUint8, b64PDF, err_6;
913
934
  var _this = this;
914
935
  return __generator(this, function (_a) {
915
936
  switch (_a.label) {
@@ -919,16 +940,16 @@ function loadPDFMethods(methodManager) {
919
940
  case 1:
920
941
  resSigneds = _a.sent();
921
942
  if (!(resSigneds && resSigneds.length)) return [3 /*break*/, 24];
922
- promises_2 = [];
943
+ promises_1 = [];
923
944
  resSigneds.forEach(function (signedUrl) {
924
- promises_2.push(_this.callMethod('getDataURIfromURL', signedUrl));
945
+ promises_1.push(_this.callMethod('getDataURIfromURL', signedUrl));
925
946
  });
926
- return [4 /*yield*/, Promise.all(promises_2)];
947
+ return [4 /*yield*/, Promise.all(promises_1)];
927
948
  case 2:
928
949
  fileDatas = _a.sent();
929
950
  return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
930
951
  case 3:
931
- mergedPdf_2 = _a.sent();
952
+ mergedPdf_1 = _a.sent();
932
953
  i = 0;
933
954
  _a.label = 4;
934
955
  case 4:
@@ -942,11 +963,11 @@ function loadPDFMethods(methodManager) {
942
963
  return [4 /*yield*/, pdf_lib_1.PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: pdf_lib_1.ParseSpeeds.Fastest, ignoreEncryption: true })];
943
964
  case 6:
944
965
  pdf = _a.sent();
945
- return [4 /*yield*/, mergedPdf_2.copyPages(pdf, pdf.getPageIndices())];
966
+ return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
946
967
  case 7:
947
968
  copiedPages = _a.sent();
948
969
  copiedPages.forEach(function (page) {
949
- mergedPdf_2.addPage(page);
970
+ mergedPdf_1.addPage(page);
950
971
  });
951
972
  return [3 /*break*/, 17];
952
973
  case 8:
@@ -965,11 +986,11 @@ function loadPDFMethods(methodManager) {
965
986
  width: imgDim.width,
966
987
  height: imgDim.height,
967
988
  });
968
- return [4 /*yield*/, mergedPdf_2.copyPages(pdf, pdf.getPageIndices())];
989
+ return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
969
990
  case 11:
970
991
  copiedPages = _a.sent();
971
992
  copiedPages.forEach(function (page) {
972
- mergedPdf_2.addPage(page);
993
+ mergedPdf_1.addPage(page);
973
994
  });
974
995
  return [3 /*break*/, 17];
975
996
  case 12:
@@ -988,11 +1009,11 @@ function loadPDFMethods(methodManager) {
988
1009
  width: imgDim.width,
989
1010
  height: imgDim.height,
990
1011
  });
991
- return [4 /*yield*/, mergedPdf_2.copyPages(pdf, pdf.getPageIndices())];
1012
+ return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
992
1013
  case 15:
993
1014
  copiedPages = _a.sent();
994
1015
  copiedPages.forEach(function (page) {
995
- mergedPdf_2.addPage(page);
1016
+ mergedPdf_1.addPage(page);
996
1017
  });
997
1018
  return [3 /*break*/, 17];
998
1019
  case 16:
@@ -1000,8 +1021,8 @@ function loadPDFMethods(methodManager) {
1000
1021
  _a.label = 17;
1001
1022
  case 17: return [3 /*break*/, 19];
1002
1023
  case 18:
1003
- error_2 = _a.sent();
1004
- console.log('Error processing fileData:', fileData.slice(0, 60), error_2);
1024
+ error_1 = _a.sent();
1025
+ console.log('Error processing fileData:', fileData.slice(0, 60), error_1);
1005
1026
  return [3 /*break*/, 19];
1006
1027
  case 19: return [3 /*break*/, 21];
1007
1028
  case 20:
@@ -1010,7 +1031,7 @@ function loadPDFMethods(methodManager) {
1010
1031
  case 21:
1011
1032
  i++;
1012
1033
  return [3 /*break*/, 4];
1013
- case 22: return [4 /*yield*/, mergedPdf_2.save()];
1034
+ case 22: return [4 /*yield*/, mergedPdf_1.save()];
1014
1035
  case 23:
1015
1036
  mergedPDFUint8 = _a.sent();
1016
1037
  b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');
@@ -1018,9 +1039,9 @@ function loadPDFMethods(methodManager) {
1018
1039
  case 24: throw new Error('Error in Merge PDF Resolve No Save: No signed urls');
1019
1040
  case 25: return [3 /*break*/, 27];
1020
1041
  case 26:
1021
- err_4 = _a.sent();
1022
- err_4.message = "Error in Merge PDF Resolve: ".concat(err_4.message);
1023
- throw err_4;
1042
+ err_6 = _a.sent();
1043
+ err_6.message = "Error in Merge PDF Resolve: ".concat(err_6.message);
1044
+ throw err_6;
1024
1045
  case 27: return [2 /*return*/];
1025
1046
  }
1026
1047
  });
@@ -1053,7 +1074,7 @@ function loadPDFMethods(methodManager) {
1053
1074
  }),
1054
1075
  function: function (htmls_1, fileName_1, fileType_1) {
1055
1076
  return __awaiter(this, arguments, void 0, function (htmls, fileName, fileType, save) {
1056
- var mergedPdf, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, error_3, mergedPDFUint8, b64PDF;
1077
+ var mergedPdf, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, error_2, mergedPDFUint8, b64PDF;
1057
1078
  if (save === void 0) { save = true; }
1058
1079
  return __generator(this, function (_a) {
1059
1080
  switch (_a.label) {
@@ -1131,10 +1152,10 @@ function loadPDFMethods(methodManager) {
1131
1152
  throw new Error('Error in Merge PDF Resolve HTML: Unsupported file - ' + fileData.slice(0, 60));
1132
1153
  case 15: return [3 /*break*/, 17];
1133
1154
  case 16:
1134
- error_3 = _a.sent();
1135
- console.log('Error processing fileData:', fileData.slice(0, 60), error_3);
1136
- error_3.message = "Error in Merge PDF Resolve HTML: Error processing filedata - ".concat(error_3.message);
1137
- throw error_3;
1155
+ error_2 = _a.sent();
1156
+ console.log('Error processing fileData:', fileData.slice(0, 60), error_2);
1157
+ error_2.message = "Error in Merge PDF Resolve HTML: Error processing filedata - ".concat(error_2.message);
1158
+ throw error_2;
1138
1159
  case 17: return [3 /*break*/, 19];
1139
1160
  case 18:
1140
1161
  console.log('Error - no filedata!!', fileData);