w-converhp 2.0.36 → 2.0.37

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.
@@ -529,7 +529,7 @@
529
529
  <br class="clear">
530
530
 
531
531
  <footer>
532
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Apr 14 2025 17:07:31 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
532
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 14:44:02 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
533
533
  </footer>
534
534
 
535
535
  <script>prettyPrint();</script>
@@ -211,12 +211,12 @@ function WConverhpClient(opt) {
211
211
  else if (type === 'slice') {
212
212
  urlUse = `${url}slc`
213
213
  }
214
- else if (type === 'upload-check') {
215
- urlUse = `${url}ulck`
216
- }
217
- else if (type === 'slice-merge') {
218
- urlUse = `${url}slcm`
214
+ else if (type === 'upload-controller') {
215
+ urlUse = `${url}ulctr`
219
216
  }
217
+ // else if (type === 'slice-merge') {
218
+ // urlUse = `${url}slcm`
219
+ // }
220
220
  else if (type === 'download-get-filename') {
221
221
  urlUse = `${url}dwgfn`
222
222
  }
@@ -729,11 +729,11 @@ function WConverhpClient(opt) {
729
729
  let fileTotalHash = await calcHash(bb)
730
730
  // console.log(`calc hash for fileTotalSize[${fileTotalSize}] done`, fileTotalHash)
731
731
 
732
- //send upload-check
732
+ //send check-total-hash
733
733
  // console.log(`send check-total-hash...`)
734
- let resCk = await send('upload-check', { mode: 'check-total-hash', fileHash: fileTotalHash, fileSize: fileTotalSize }, { dataType: 'json' })
735
- // console.log('resCk', resCk)
736
- // resCk {
734
+ let resUpCkt = await send('upload-controller', { mode: 'check-total-hash', fileHash: fileTotalHash, filename: fileTotalName, fileSize: fileTotalSize }, { dataType: 'json' })
735
+ // console.log('resUpCkt', resUpCkt)
736
+ // resUpCkt {
737
737
  // path: 'uploadTemp\\2429b7ef08ce6ba9',
738
738
  // bAllExist: false,
739
739
  // bAllSize: false,
@@ -749,30 +749,30 @@ function WConverhpClient(opt) {
749
749
  // }
750
750
 
751
751
  //check
752
- if (resCk.bAllHash) {
752
+ if (resUpCkt.bAllHash) {
753
753
  // console.log('已有上傳大檔')
754
754
  let resMg = {
755
755
  filename: fileTotalName,
756
- path: resCk.path,
756
+ path: resUpCkt.path,
757
757
  }
758
758
  return resMg
759
759
  }
760
760
 
761
761
  //針對伺服器上已有切片檔案計算hash與比對
762
- if (resCk.slks.length > 0) {
763
- // console.log('receive slks...', resCk.slks[0], size(resCk.slks))
762
+ if (resUpCkt.slks.length > 0) {
763
+ // console.log('receive slks...', resUpCkt.slks[0], size(resUpCkt.slks))
764
764
 
765
765
  //fileSliceHashs
766
766
  let fileSliceHashs = []
767
- // let n = Math.max(resCk.slks.length, 1)
767
+ // let n = Math.max(resUpCkt.slks.length, 1)
768
768
  // let nr = Math.floor(n / 100)
769
- for (let k = 0; k &lt; resCk.slks.length; k++) {
769
+ for (let k = 0; k &lt; resUpCkt.slks.length; k++) {
770
770
  // if (k % nr === 0) {
771
- // console.log(`calc hash for slices`, round(k / resCk.slks.length * 100, 1), '%')
771
+ // console.log(`calc hash for slices`, round(k / resUpCkt.slks.length * 100, 1), '%')
772
772
  // }
773
773
 
774
774
  //i
775
- let i = resCk.slks[k]
775
+ let i = resUpCkt.slks[k]
776
776
 
777
777
  //start
778
778
  let start = i * sizeSlice
@@ -796,11 +796,11 @@ function WConverhpClient(opt) {
796
796
  }
797
797
  // console.log('fileSliceHashs', fileSliceHashs)
798
798
 
799
- //send upload-check
799
+ //send check-slices-hash
800
800
  // console.log(`send check-slices-hash...`)
801
- let resCks = await send('upload-check', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json' })
802
- // console.log('resCks', resCks)
803
- // resCks {
801
+ let resUpCks = await send('upload-controller', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json' })
802
+ // console.log('resUpCks', resUpCks)
803
+ // resUpCks {
804
804
  // slks: [
805
805
  // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
806
806
  // 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
@@ -810,8 +810,8 @@ function WConverhpClient(opt) {
810
810
  // ]
811
811
  // }
812
812
 
813
- //update
814
- resCk.slks = resCks.slks
813
+ //update, 伺服器針對各切片計算hash與比對, 回傳resUpCks.slks代表hash一致的切片編號, 非一致hash的切片則須重傳, 尚未傳切片亦須繼續傳
814
+ resUpCkt.slks = resUpCks.slks
815
815
 
816
816
  }
817
817
 
@@ -851,7 +851,7 @@ function WConverhpClient(opt) {
851
851
  for (let i = 0; i &lt; chunkTotal; i++) {
852
852
 
853
853
  //check
854
- if (resCk.slks.indexOf(i) >= 0) {
854
+ if (resUpCkt.slks.indexOf(i) >= 0) {
855
855
  // console.log('已有上傳切片檔')
856
856
  cbProgressSlice({ prog: 100, m: 'upload' }) //直接觸發更新進度
857
857
  continue
@@ -867,7 +867,7 @@ function WConverhpClient(opt) {
867
867
  let chunk = bb.slice(start, end)
868
868
 
869
869
  //send slice
870
- let hd = {
870
+ let hd = { //用header傳key與value時, key不分大小寫, 故使用kebabCase
871
871
  'chunk-index': i,
872
872
  'chunk-total': chunkTotal,
873
873
  'package-id': packageId,
@@ -877,16 +877,66 @@ function WConverhpClient(opt) {
877
877
 
878
878
  }
879
879
 
880
- //send slice-merge
881
- let msg = {
882
- 'filename': fileTotalName,
883
- 'chunk-total': chunkTotal,
884
- 'package-id': packageId,
880
+ //send merge-slices-push
881
+ // console.log(`send merge-slices-push...`)
882
+ let resUpMgp = await send('upload-controller', { mode: 'merge-slices-push', fileHash: fileTotalHash, chunkTotal }, { dataType: 'json' })
883
+ // console.log('resUpMgp', resUpMgp)
884
+
885
+ //checkMerging
886
+ let checkMerging = () => {
887
+ let pm = genPm()
888
+
889
+ //queueId
890
+ let queueId = resUpMgp.queueId
891
+ // console.log('queueId', queueId)
892
+
893
+ let t = setInterval(() => {
894
+
895
+ //send merge-slices-get
896
+ // console.log(`send merge-slices-get...`)
897
+ send('upload-controller', { mode: 'merge-slices-get', fileHash: fileTotalHash, filename: fileTotalName, queueId }, { dataType: 'json' })
898
+ .then((res) => {
899
+ // console.log('res', res)
900
+ // res => {
901
+ // queueId,
902
+ // state,
903
+ // filename,
904
+ // path,
905
+ // msg: ...
906
+ // }
907
+
908
+ //check
909
+ if (res.state === 'done') {
910
+
911
+ //cbProgressMerge
912
+ cbProgressMerge({ prog: 100, m: 'download' })
913
+
914
+ //resUpMgr
915
+ let resUpMgr = {
916
+ ...res.msg,
917
+ }
918
+
919
+ pm.resolve(resUpMgr)
920
+ }
921
+
922
+ })
923
+ .catch((err) => {
924
+ console.log(err)
925
+ })
926
+ .finally(() => {
927
+ clearInterval(t)
928
+ })
929
+
930
+ }, 2000)
931
+
932
+ return pm
885
933
  }
886
- let resMg = await send('slice-merge', msg, { dataType: 'json', cbProgress: cbProgressMerge })
934
+
935
+ //checkMerging
936
+ let resUpMgr = await checkMerging()
887
937
 
888
938
  // console.log(`upload slice done`)
889
- return resMg
939
+ return resUpMgr
890
940
  }
891
941
 
892
942
  //execute
@@ -1046,7 +1096,7 @@ export default WConverhpClient
1046
1096
  <br class="clear">
1047
1097
 
1048
1098
  <footer>
1049
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Apr 14 2025 17:07:31 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1099
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 14:44:02 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1050
1100
  </footer>
1051
1101
 
1052
1102
  <script>prettyPrint();</script>
@@ -80,7 +80,7 @@
80
80
 
81
81
  <dt class="tag-source">Source:</dt>
82
82
  <dd class="tag-source"><ul class="dummy"><li>
83
- <a href="WConverhpServer.mjs.html">WConverhpServer.mjs</a>, <a href="WConverhpServer.mjs.html#line194">line 194</a>
83
+ <a href="WConverhpServer.mjs.html">WConverhpServer.mjs</a>, <a href="WConverhpServer.mjs.html#line197">line 197</a>
84
84
  </li></ul></dd>
85
85
 
86
86
 
@@ -789,7 +789,7 @@
789
789
  <br class="clear">
790
790
 
791
791
  <footer>
792
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Apr 14 2025 17:07:31 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
792
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 14:44:02 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
793
793
  </footer>
794
794
 
795
795
  <script>prettyPrint();</script>
@@ -70,8 +70,7 @@ import obj2u8arr from 'wsemi/src/obj2u8arr.mjs'
70
70
  import u8arr2obj from 'wsemi/src/u8arr2obj.mjs'
71
71
  import fsIsFolder from 'wsemi/src/fsIsFolder.mjs'
72
72
  import fsCreateFolder from 'wsemi/src/fsCreateFolder.mjs'
73
- // import mergeFiles from './mergeFiles.mjs'
74
- import mergeFiles from './mergeFiles.wk.umd.js'
73
+ import managerMergeSlices from './managerMergeSlices.mjs'
75
74
  // import checkTotalHash from './checkTotalHash.mjs'
76
75
  import checkTotalHash from './checkTotalHash.wk.umd.js'
77
76
  // import checkSlicesHash from './checkSlicesHash.mjs'
@@ -83,6 +82,10 @@ import checkSlicesHash from './checkSlicesHash.wk.umd.js'
83
82
  //回傳前端(browser)時, 針對超大檔, 可用POST並用stream回傳但還要處理進度條, 若要交由瀏覽器下載器處理, 只能用GET並用stream回傳, 且前端只能用window.location.href或a.href+a.click()下載
84
83
 
85
84
 
85
+ //mmg
86
+ let mmg = managerMergeSlices()
87
+
88
+
86
89
  /**
87
90
  * 建立Hapi伺服器
88
91
  *
@@ -652,7 +655,7 @@ function WConverhpServer(opt = {}) {
652
655
 
653
656
  //apiUploadCheck
654
657
  let apiUploadCheck = {
655
- path: `/${apiName}ulck`,
658
+ path: `/${apiName}ulctr`,
656
659
  method: 'POST',
657
660
  options: {
658
661
  payload: {
@@ -689,7 +692,7 @@ function WConverhpServer(opt = {}) {
689
692
  if (true) {
690
693
 
691
694
  //verifyConn
692
- let m = verifyConn({ apiType: 'upload-check', authorization, headers, query })
695
+ let m = verifyConn({ apiType: 'upload-controller', authorization, headers, query })
693
696
  if (ispm(m)) {
694
697
  m = await m
695
698
  }
@@ -712,13 +715,14 @@ function WConverhpServer(opt = {}) {
712
715
  let mode = get(req, 'payload.mode', '')
713
716
 
714
717
  //check
715
- if (mode !== 'check-total-hash' &amp;&amp; mode !== 'check-slices-hash') {
718
+ if (mode !== 'check-total-hash' &amp;&amp; mode !== 'check-slices-hash' &amp;&amp; mode !== 'merge-slices-push' &amp;&amp; mode !== 'merge-slices-get') {
716
719
  // console.log('invalid mode in payload')
717
720
  return responseU8aStreamWithError(res, `invalid mode[${mode}] in payload`)
718
721
  }
719
722
 
720
723
  //fileHash, 從payload接收
721
724
  let fileHash = get(req, 'payload.fileHash', '')
725
+ // console.log(mode, 'fileHash', fileHash)
722
726
 
723
727
  //check
724
728
  if (!isestr(fileHash)) {
@@ -726,36 +730,143 @@ function WConverhpServer(opt = {}) {
726
730
  return responseU8aStreamWithError(res, 'invalid fileHash in payload')
727
731
  }
728
732
 
729
- //out
730
- let out = null
731
- if (mode === 'check-total-hash') {
733
+ //procCore
734
+ let procCore = async() => {
735
+ let out = null
736
+ if (mode === 'check-total-hash') {
732
737
 
733
- //fileSize, 從payload接收
734
- let fileSize = get(req, 'payload.fileSize', '')
738
+ //filename, 從payload接收
739
+ let filename = get(req, 'payload.filename', '')
740
+ // console.log(mode, 'filename', filename)
735
741
 
736
- //checkTotalHash
737
- out = await checkTotalHash(fileSize, sizeSlice, fileHash, pathUploadTemp)
742
+ //fileSize, 從payload接收
743
+ let fileSize = get(req, 'payload.fileSize', '')
744
+ // console.log(mode, 'fileSize', fileSize)
738
745
 
739
- }
740
- else if (mode === 'check-slices-hash') {
746
+ //checkTotalHash
747
+ out = await checkTotalHash(fileSize, sizeSlice, fileHash, pathUploadTemp)
748
+ // console.log(mode, 'out', out)
749
+
750
+ //check, 因合併大檔後可能非預期中斷而重傳, 每次偵測有合併完成大檔, 就得調用procUpload讓伺服器攔截函數處理
751
+ if (out.bAllHash) {
752
+
753
+ //ri
754
+ let ri = {
755
+ filename,
756
+ path: out.path,
757
+ }
758
+
759
+ //procUpload
760
+ // console.log('procUpload start')
761
+ let ro = await procUpload(ri)
762
+ // console.log('procUpload done', ro)
763
+
764
+ //out merge, 直接添加ro就回傳, 此處不使用msg儲存
765
+ out = {
766
+ ...out,
767
+ ...ro,
768
+ }
769
+
770
+ }
771
+
772
+ }
773
+ else if (mode === 'check-slices-hash') {
774
+
775
+ //fileSliceHashs, 從payload接收
776
+ let fileSliceHashs = get(req, 'payload.fileSliceHashs', [])
777
+ // console.log(mode, 'fileSliceHashs', fileSliceHashs)
778
+
779
+ //checkSlicesHash
780
+ out = await checkSlicesHash(fileSliceHashs, fileHash, pathUploadTemp)
781
+ // console.log(mode, 'out', out)
782
+
783
+ }
784
+ else if (mode === 'merge-slices-push') {
785
+
786
+ //chunkTotal, 從payload接收
787
+ let chunkTotal = get(req, 'payload.chunkTotal', '')
788
+ // console.log(mode, 'chunkTotal', chunkTotal)
789
+
790
+ //mmg.push
791
+ let queueId = mmg.push(fileHash, chunkTotal, pathUploadTemp)
792
+
793
+ //out
794
+ out = {
795
+ queueId,
796
+ }
797
+
798
+ }
799
+ else if (mode === 'merge-slices-get') {
800
+
801
+ //filename, 從payload接收
802
+ let filename = get(req, 'payload.filename', '')
803
+ // console.log(mode, 'filename', filename)
804
+
805
+ //queueId, 從payload接收
806
+ let queueId = get(req, 'payload.queueId', '')
807
+ // console.log(mode, 'queueId', queueId)
808
+
809
+ //mmg.get
810
+ let r = mmg.get(queueId, pathUploadTemp)
811
+
812
+ //out
813
+ out = {
814
+ queueId,
815
+ state: r.state,
816
+ filename,
817
+ path: r.path,
818
+ }
819
+
820
+ //check
821
+ if (r.state === 'done') {
741
822
 
742
- //fileSliceHashs, 從payload接收
743
- let fileSliceHashs = get(req, 'payload.fileSliceHashs', [])
744
- // console.log('fileSliceHashs', fileSliceHashs)
823
+ //ri
824
+ let ri = {
825
+ filename,
826
+ path: r.path,
827
+ }
745
828
 
746
- //checkSlicesHash
747
- out = await checkSlicesHash(fileSliceHashs, fileHash, pathUploadTemp)
829
+ //procUpload, 偵測有合併完成大檔, 得調用procUpload讓伺服器攔截函數處理
830
+ // console.log('procUpload start')
831
+ let ro = await procUpload(ri)
832
+ // console.log('procUpload done', ro)
748
833
 
834
+ //out merge, ro須附加至msg, 才供前端偵測state為'done'時提取msg顯示
835
+ out = {
836
+ ...out,
837
+ msg: ro,
838
+ }
839
+
840
+ }
841
+
842
+ }
843
+ // console.log('out', out)
844
+
845
+ return out
749
846
  }
847
+
848
+ //procCore
849
+ let out = {}
850
+ let returnType = ''
851
+ let returnMsg = ''
852
+ await procCore()
853
+ .then((res) => {
854
+ out.success = res
855
+ returnType = 'success'
856
+ returnMsg = 'need to parse'
857
+ })
858
+ .catch((err) => {
859
+ out.error = err
860
+ returnType = 'error'
861
+ returnMsg = 'need to parse'
862
+ })
750
863
  // console.log('out', out)
751
864
 
752
- if (out.error) {
753
- return responseU8aStreamWithError(res, out.error)
754
- }
755
- else {
756
- let u8aOut = obj2u8arr(out)
757
- return responseU8aStream(res, u8aOut, { returnType: 'success', returnMsg: 'need to parse' })
758
- }
865
+ //u8aOut
866
+ let u8aOut = obj2u8arr(out)
867
+ // console.log('u8aOut', u8aOut)
868
+
869
+ return responseU8aStream(res, u8aOut, { returnType, returnMsg })
759
870
  },
760
871
  }
761
872
 
@@ -824,18 +935,18 @@ function WConverhpServer(opt = {}) {
824
935
 
825
936
  //check
826
937
  if (!isp0int(chunkIndex)) {
827
- console.log('invalid chunkIndex in headers')
828
- return res.response({ error: 'invalid chunkIndex in headers' }).code(400)
938
+ // console.log('invalid chunkIndex in headers')
939
+ return responseU8aStreamWithError(res, 'invalid chunkIndex in headers')
829
940
  }
830
941
  chunkIndex = cint(chunkIndex)
831
942
  if (!isp0int(chunkTotal)) {
832
- console.log('invalid chunkTotal in headers')
833
- return res.response({ error: 'invalid chunkTotal in headers' }).code(400)
943
+ // console.log('invalid chunkTotal in headers')
944
+ return responseU8aStreamWithError(res, 'invalid chunkTotal in headers')
834
945
  }
835
946
  chunkTotal = cint(chunkTotal)
836
947
  if (!isestr(packageId)) {
837
- console.log('invalid packageId in headers')
838
- return res.response({ error: 'invalid packageId in headers' }).code(400)
948
+ // console.log('invalid packageId in headers')
949
+ return responseU8aStreamWithError(res, 'invalid packageId in headers')
839
950
  }
840
951
 
841
952
  //pathFileChunk
@@ -902,126 +1013,6 @@ function WConverhpServer(opt = {}) {
902
1013
  },
903
1014
  }
904
1015
 
905
- //apiUploadSliceMerge
906
- let apiUploadSliceMerge = {
907
- path: `/${apiName}slcm`,
908
- method: 'POST',
909
- options: {
910
- payload: {
911
- maxBytes: 1024 * 1024 * 1024 * 1024, //預設為1mb, 調整至1tb, 也就是給予3次方
912
- maxParts: 1000 * 1000 * 1000, //預設為1000, 給予3次方
913
- timeout: false, //避免請求未完成時中斷
914
- // output: 'stream',
915
- parse: true, //前端送obj過來須自動解析
916
- },
917
- timeout: {
918
- server: false, //關閉伺服器超時
919
- socket: false, //關閉socket超時
920
- },
921
- },
922
- handler: async function (req, res) {
923
- // console.log(req, res)
924
- // console.log('payload', req.payload)
925
-
926
- //headers
927
- let headers = get(req, 'headers')
928
- headers = iseobj(headers) ? headers : ''
929
- // console.log('headers', headers)
930
-
931
- //query
932
- let query = get(req, 'query')
933
- query = iseobj(query) ? query : ''
934
- // console.log('query', query)
935
-
936
- //authorization
937
- let authorization = get(headers, 'authorization', '')
938
- authorization = isestr(authorization) ? authorization : ''
939
-
940
- //check
941
- if (true) {
942
-
943
- //verifyConn
944
- let m = verifyConn({ apiType: 'upload-slice-merge', authorization, headers, query })
945
- if (ispm(m)) {
946
- m = await m
947
- }
948
-
949
- //check
950
- if (m !== true) {
951
- return responseU8aStreamWithError(res, 'permission denied')
952
- }
953
-
954
- }
955
-
956
- //eeEmit
957
- eeEmit('handler', {
958
- api: 'apiUploadSliceMerge',
959
- headers,
960
- query,
961
- })
962
-
963
- //filename, chunkTotal, packageId, 從payload接收
964
- let filename = get(req, 'payload.filename', '')
965
- let chunkTotal = get(req, 'payload.chunk-total', '')
966
- let packageId = get(req, 'payload.package-id', '')
967
-
968
- //check
969
- if (!isestr(filename)) {
970
- console.log('invalid filename in payload')
971
- return res.response({ error: 'invalid filename in payload' }).code(400)
972
- }
973
- if (!isp0int(chunkTotal)) {
974
- console.log('invalid chunkTotal in payload')
975
- return res.response({ error: 'invalid chunkTotal in payload' }).code(400)
976
- }
977
- chunkTotal = cint(chunkTotal)
978
- if (!isestr(packageId)) {
979
- console.log('invalid packageId in payload')
980
- return res.response({ error: 'invalid packageId in payload' }).code(400)
981
- }
982
-
983
- //mergeAndPorc
984
- let mergeAndPorc = async() => {
985
-
986
- //merge
987
- // console.log('merge start')
988
- let rMerg = await mergeFiles(pathUploadTemp, packageId, chunkTotal, filename)
989
- // console.log('merge done', rMerg)
990
-
991
- //procUpload
992
- // console.log('procUpload start')
993
- let rProc = await procUpload(rMerg)
994
- // console.log('procUpload done', rProc)
995
-
996
- return rProc
997
- }
998
-
999
- //mergeAndPorc
1000
- let out = {}
1001
- let returnType = ''
1002
- let returnMsg = ''
1003
- await mergeAndPorc()
1004
- .then((res) => {
1005
- out.success = res
1006
- returnType = 'success'
1007
- returnMsg = 'need to parse'
1008
- })
1009
- .catch((err) => {
1010
- out.error = err
1011
- returnType = 'error'
1012
- returnMsg = 'need to parse'
1013
- eeEmit('error', `${err.message}`)
1014
- })
1015
- // console.log('out', out)
1016
-
1017
- //u8aOut
1018
- let u8aOut = obj2u8arr(out)
1019
- // console.log('u8aOut', u8aOut)
1020
-
1021
- return responseU8aStream(res, u8aOut, { returnType, returnMsg })
1022
- },
1023
- }
1024
-
1025
1016
  //apiDownloadGetFilename
1026
1017
  let apiDownloadGetFilename = {
1027
1018
  path: `/${apiName}dwgfn`,
@@ -1433,7 +1424,7 @@ function WConverhpServer(opt = {}) {
1433
1424
  apiMain,
1434
1425
  apiUploadCheck,
1435
1426
  apiUploadSlice,
1436
- apiUploadSliceMerge,
1427
+ // apiUploadSliceMerge,
1437
1428
  apiDownloadGetFilename,
1438
1429
  apiDownloadGetFile,
1439
1430
  apiDownload,
@@ -1452,7 +1443,8 @@ function WConverhpServer(opt = {}) {
1452
1443
 
1453
1444
  //start
1454
1445
  if (get(opt, 'serverHapi')) {
1455
- server.route([apiMain, apiUploadCheck, apiUploadSlice, apiUploadSliceMerge, apiDownloadGetFilename, apiDownloadGetFile, apiDownload])
1446
+ // server.route([apiMain, apiUploadCheck, apiUploadSlice, apiUploadSliceMerge, apiDownloadGetFilename, apiDownloadGetFile, apiDownload])
1447
+ server.route([apiMain, apiUploadCheck, apiUploadSlice, apiDownloadGetFilename, apiDownloadGetFile, apiDownload])
1456
1448
  }
1457
1449
  else {
1458
1450
  startServer()
@@ -1485,7 +1477,7 @@ export default WConverhpServer
1485
1477
  <br class="clear">
1486
1478
 
1487
1479
  <footer>
1488
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Apr 14 2025 17:07:31 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1480
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 14:44:02 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1489
1481
  </footer>
1490
1482
 
1491
1483
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -71,7 +71,7 @@
71
71
  <br class="clear">
72
72
 
73
73
  <footer>
74
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Apr 14 2025 17:07:31 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 14:44:02 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "w-converhp",
3
- "version": "2.0.36",
3
+ "version": "2.0.37",
4
4
  "main": "dist/w-converhp-server.umd.js",
5
5
  "dependencies": {
6
6
  "@hapi/hapi": "^21.4.0",
package/scla.mjs CHANGED
@@ -74,6 +74,9 @@ function executeWithU8a() {
74
74
 
75
75
  }
76
76
  core()
77
+ .catch((err) => {
78
+ console.log(err)
79
+ })
77
80
  }
78
81
 
79
82
  executeWithU8a()
package/sclb.mjs CHANGED
@@ -75,6 +75,9 @@ function executeWithFile() {
75
75
 
76
76
  }
77
77
  core()
78
+ .catch((err) => {
79
+ console.log(err)
80
+ })
78
81
  }
79
82
 
80
83
  executeWithFile()