@shipstatic/drop 0.1.2 → 0.1.3
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/LICENSE +21 -0
- package/README.md +181 -42
- package/dist/index.cjs +24 -589
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -45
- package/dist/index.d.ts +20 -45
- package/dist/index.js +25 -586
- package/dist/index.js.map +1 -1
- package/package.json +7 -9
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useState, useRef, useCallback } from 'react';
|
|
2
|
+
import { formatFileSize as formatFileSize$1, getValidFiles as getValidFiles$1, validateFiles } from '@shipstatic/ship';
|
|
2
3
|
|
|
3
4
|
var __create = Object.create;
|
|
4
5
|
var __defProp = Object.defineProperty;
|
|
@@ -11699,447 +11700,6 @@ var require_mime_db = __commonJS({
|
|
|
11699
11700
|
}
|
|
11700
11701
|
});
|
|
11701
11702
|
|
|
11702
|
-
// node_modules/.pnpm/spark-md5@3.0.2/node_modules/spark-md5/spark-md5.js
|
|
11703
|
-
var require_spark_md5 = __commonJS({
|
|
11704
|
-
"node_modules/.pnpm/spark-md5@3.0.2/node_modules/spark-md5/spark-md5.js"(exports, module) {
|
|
11705
|
-
(function(factory) {
|
|
11706
|
-
if (typeof exports === "object") {
|
|
11707
|
-
module.exports = factory();
|
|
11708
|
-
} else if (typeof define === "function" && define.amd) {
|
|
11709
|
-
define(factory);
|
|
11710
|
-
} else {
|
|
11711
|
-
var glob;
|
|
11712
|
-
try {
|
|
11713
|
-
glob = window;
|
|
11714
|
-
} catch (e) {
|
|
11715
|
-
glob = self;
|
|
11716
|
-
}
|
|
11717
|
-
glob.SparkMD5 = factory();
|
|
11718
|
-
}
|
|
11719
|
-
})(function(undefined2) {
|
|
11720
|
-
var hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
11721
|
-
function md5cycle(x, k) {
|
|
11722
|
-
var a = x[0], b = x[1], c = x[2], d = x[3];
|
|
11723
|
-
a += (b & c | ~b & d) + k[0] - 680876936 | 0;
|
|
11724
|
-
a = (a << 7 | a >>> 25) + b | 0;
|
|
11725
|
-
d += (a & b | ~a & c) + k[1] - 389564586 | 0;
|
|
11726
|
-
d = (d << 12 | d >>> 20) + a | 0;
|
|
11727
|
-
c += (d & a | ~d & b) + k[2] + 606105819 | 0;
|
|
11728
|
-
c = (c << 17 | c >>> 15) + d | 0;
|
|
11729
|
-
b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
|
|
11730
|
-
b = (b << 22 | b >>> 10) + c | 0;
|
|
11731
|
-
a += (b & c | ~b & d) + k[4] - 176418897 | 0;
|
|
11732
|
-
a = (a << 7 | a >>> 25) + b | 0;
|
|
11733
|
-
d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
|
|
11734
|
-
d = (d << 12 | d >>> 20) + a | 0;
|
|
11735
|
-
c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
|
|
11736
|
-
c = (c << 17 | c >>> 15) + d | 0;
|
|
11737
|
-
b += (c & d | ~c & a) + k[7] - 45705983 | 0;
|
|
11738
|
-
b = (b << 22 | b >>> 10) + c | 0;
|
|
11739
|
-
a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
|
|
11740
|
-
a = (a << 7 | a >>> 25) + b | 0;
|
|
11741
|
-
d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
|
|
11742
|
-
d = (d << 12 | d >>> 20) + a | 0;
|
|
11743
|
-
c += (d & a | ~d & b) + k[10] - 42063 | 0;
|
|
11744
|
-
c = (c << 17 | c >>> 15) + d | 0;
|
|
11745
|
-
b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
|
|
11746
|
-
b = (b << 22 | b >>> 10) + c | 0;
|
|
11747
|
-
a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
|
|
11748
|
-
a = (a << 7 | a >>> 25) + b | 0;
|
|
11749
|
-
d += (a & b | ~a & c) + k[13] - 40341101 | 0;
|
|
11750
|
-
d = (d << 12 | d >>> 20) + a | 0;
|
|
11751
|
-
c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
|
|
11752
|
-
c = (c << 17 | c >>> 15) + d | 0;
|
|
11753
|
-
b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
|
|
11754
|
-
b = (b << 22 | b >>> 10) + c | 0;
|
|
11755
|
-
a += (b & d | c & ~d) + k[1] - 165796510 | 0;
|
|
11756
|
-
a = (a << 5 | a >>> 27) + b | 0;
|
|
11757
|
-
d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
|
|
11758
|
-
d = (d << 9 | d >>> 23) + a | 0;
|
|
11759
|
-
c += (d & b | a & ~b) + k[11] + 643717713 | 0;
|
|
11760
|
-
c = (c << 14 | c >>> 18) + d | 0;
|
|
11761
|
-
b += (c & a | d & ~a) + k[0] - 373897302 | 0;
|
|
11762
|
-
b = (b << 20 | b >>> 12) + c | 0;
|
|
11763
|
-
a += (b & d | c & ~d) + k[5] - 701558691 | 0;
|
|
11764
|
-
a = (a << 5 | a >>> 27) + b | 0;
|
|
11765
|
-
d += (a & c | b & ~c) + k[10] + 38016083 | 0;
|
|
11766
|
-
d = (d << 9 | d >>> 23) + a | 0;
|
|
11767
|
-
c += (d & b | a & ~b) + k[15] - 660478335 | 0;
|
|
11768
|
-
c = (c << 14 | c >>> 18) + d | 0;
|
|
11769
|
-
b += (c & a | d & ~a) + k[4] - 405537848 | 0;
|
|
11770
|
-
b = (b << 20 | b >>> 12) + c | 0;
|
|
11771
|
-
a += (b & d | c & ~d) + k[9] + 568446438 | 0;
|
|
11772
|
-
a = (a << 5 | a >>> 27) + b | 0;
|
|
11773
|
-
d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
|
|
11774
|
-
d = (d << 9 | d >>> 23) + a | 0;
|
|
11775
|
-
c += (d & b | a & ~b) + k[3] - 187363961 | 0;
|
|
11776
|
-
c = (c << 14 | c >>> 18) + d | 0;
|
|
11777
|
-
b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
|
|
11778
|
-
b = (b << 20 | b >>> 12) + c | 0;
|
|
11779
|
-
a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
|
|
11780
|
-
a = (a << 5 | a >>> 27) + b | 0;
|
|
11781
|
-
d += (a & c | b & ~c) + k[2] - 51403784 | 0;
|
|
11782
|
-
d = (d << 9 | d >>> 23) + a | 0;
|
|
11783
|
-
c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
|
|
11784
|
-
c = (c << 14 | c >>> 18) + d | 0;
|
|
11785
|
-
b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
|
|
11786
|
-
b = (b << 20 | b >>> 12) + c | 0;
|
|
11787
|
-
a += (b ^ c ^ d) + k[5] - 378558 | 0;
|
|
11788
|
-
a = (a << 4 | a >>> 28) + b | 0;
|
|
11789
|
-
d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
|
|
11790
|
-
d = (d << 11 | d >>> 21) + a | 0;
|
|
11791
|
-
c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
|
|
11792
|
-
c = (c << 16 | c >>> 16) + d | 0;
|
|
11793
|
-
b += (c ^ d ^ a) + k[14] - 35309556 | 0;
|
|
11794
|
-
b = (b << 23 | b >>> 9) + c | 0;
|
|
11795
|
-
a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
|
|
11796
|
-
a = (a << 4 | a >>> 28) + b | 0;
|
|
11797
|
-
d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
|
|
11798
|
-
d = (d << 11 | d >>> 21) + a | 0;
|
|
11799
|
-
c += (d ^ a ^ b) + k[7] - 155497632 | 0;
|
|
11800
|
-
c = (c << 16 | c >>> 16) + d | 0;
|
|
11801
|
-
b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
|
|
11802
|
-
b = (b << 23 | b >>> 9) + c | 0;
|
|
11803
|
-
a += (b ^ c ^ d) + k[13] + 681279174 | 0;
|
|
11804
|
-
a = (a << 4 | a >>> 28) + b | 0;
|
|
11805
|
-
d += (a ^ b ^ c) + k[0] - 358537222 | 0;
|
|
11806
|
-
d = (d << 11 | d >>> 21) + a | 0;
|
|
11807
|
-
c += (d ^ a ^ b) + k[3] - 722521979 | 0;
|
|
11808
|
-
c = (c << 16 | c >>> 16) + d | 0;
|
|
11809
|
-
b += (c ^ d ^ a) + k[6] + 76029189 | 0;
|
|
11810
|
-
b = (b << 23 | b >>> 9) + c | 0;
|
|
11811
|
-
a += (b ^ c ^ d) + k[9] - 640364487 | 0;
|
|
11812
|
-
a = (a << 4 | a >>> 28) + b | 0;
|
|
11813
|
-
d += (a ^ b ^ c) + k[12] - 421815835 | 0;
|
|
11814
|
-
d = (d << 11 | d >>> 21) + a | 0;
|
|
11815
|
-
c += (d ^ a ^ b) + k[15] + 530742520 | 0;
|
|
11816
|
-
c = (c << 16 | c >>> 16) + d | 0;
|
|
11817
|
-
b += (c ^ d ^ a) + k[2] - 995338651 | 0;
|
|
11818
|
-
b = (b << 23 | b >>> 9) + c | 0;
|
|
11819
|
-
a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
|
|
11820
|
-
a = (a << 6 | a >>> 26) + b | 0;
|
|
11821
|
-
d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
|
|
11822
|
-
d = (d << 10 | d >>> 22) + a | 0;
|
|
11823
|
-
c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
|
|
11824
|
-
c = (c << 15 | c >>> 17) + d | 0;
|
|
11825
|
-
b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
|
|
11826
|
-
b = (b << 21 | b >>> 11) + c | 0;
|
|
11827
|
-
a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
|
|
11828
|
-
a = (a << 6 | a >>> 26) + b | 0;
|
|
11829
|
-
d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
|
|
11830
|
-
d = (d << 10 | d >>> 22) + a | 0;
|
|
11831
|
-
c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
|
|
11832
|
-
c = (c << 15 | c >>> 17) + d | 0;
|
|
11833
|
-
b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
|
|
11834
|
-
b = (b << 21 | b >>> 11) + c | 0;
|
|
11835
|
-
a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
|
|
11836
|
-
a = (a << 6 | a >>> 26) + b | 0;
|
|
11837
|
-
d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
|
|
11838
|
-
d = (d << 10 | d >>> 22) + a | 0;
|
|
11839
|
-
c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
|
|
11840
|
-
c = (c << 15 | c >>> 17) + d | 0;
|
|
11841
|
-
b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
|
|
11842
|
-
b = (b << 21 | b >>> 11) + c | 0;
|
|
11843
|
-
a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
|
|
11844
|
-
a = (a << 6 | a >>> 26) + b | 0;
|
|
11845
|
-
d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
|
|
11846
|
-
d = (d << 10 | d >>> 22) + a | 0;
|
|
11847
|
-
c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
|
|
11848
|
-
c = (c << 15 | c >>> 17) + d | 0;
|
|
11849
|
-
b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
|
|
11850
|
-
b = (b << 21 | b >>> 11) + c | 0;
|
|
11851
|
-
x[0] = a + x[0] | 0;
|
|
11852
|
-
x[1] = b + x[1] | 0;
|
|
11853
|
-
x[2] = c + x[2] | 0;
|
|
11854
|
-
x[3] = d + x[3] | 0;
|
|
11855
|
-
}
|
|
11856
|
-
function md5blk(s) {
|
|
11857
|
-
var md5blks = [], i;
|
|
11858
|
-
for (i = 0; i < 64; i += 4) {
|
|
11859
|
-
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
|
|
11860
|
-
}
|
|
11861
|
-
return md5blks;
|
|
11862
|
-
}
|
|
11863
|
-
function md5blk_array(a) {
|
|
11864
|
-
var md5blks = [], i;
|
|
11865
|
-
for (i = 0; i < 64; i += 4) {
|
|
11866
|
-
md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
|
|
11867
|
-
}
|
|
11868
|
-
return md5blks;
|
|
11869
|
-
}
|
|
11870
|
-
function md51(s) {
|
|
11871
|
-
var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
|
|
11872
|
-
for (i = 64; i <= n; i += 64) {
|
|
11873
|
-
md5cycle(state, md5blk(s.substring(i - 64, i)));
|
|
11874
|
-
}
|
|
11875
|
-
s = s.substring(i - 64);
|
|
11876
|
-
length = s.length;
|
|
11877
|
-
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
11878
|
-
for (i = 0; i < length; i += 1) {
|
|
11879
|
-
tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
|
|
11880
|
-
}
|
|
11881
|
-
tail[i >> 2] |= 128 << (i % 4 << 3);
|
|
11882
|
-
if (i > 55) {
|
|
11883
|
-
md5cycle(state, tail);
|
|
11884
|
-
for (i = 0; i < 16; i += 1) {
|
|
11885
|
-
tail[i] = 0;
|
|
11886
|
-
}
|
|
11887
|
-
}
|
|
11888
|
-
tmp = n * 8;
|
|
11889
|
-
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
|
11890
|
-
lo = parseInt(tmp[2], 16);
|
|
11891
|
-
hi = parseInt(tmp[1], 16) || 0;
|
|
11892
|
-
tail[14] = lo;
|
|
11893
|
-
tail[15] = hi;
|
|
11894
|
-
md5cycle(state, tail);
|
|
11895
|
-
return state;
|
|
11896
|
-
}
|
|
11897
|
-
function md51_array(a) {
|
|
11898
|
-
var n = a.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
|
|
11899
|
-
for (i = 64; i <= n; i += 64) {
|
|
11900
|
-
md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
|
|
11901
|
-
}
|
|
11902
|
-
a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
|
|
11903
|
-
length = a.length;
|
|
11904
|
-
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
11905
|
-
for (i = 0; i < length; i += 1) {
|
|
11906
|
-
tail[i >> 2] |= a[i] << (i % 4 << 3);
|
|
11907
|
-
}
|
|
11908
|
-
tail[i >> 2] |= 128 << (i % 4 << 3);
|
|
11909
|
-
if (i > 55) {
|
|
11910
|
-
md5cycle(state, tail);
|
|
11911
|
-
for (i = 0; i < 16; i += 1) {
|
|
11912
|
-
tail[i] = 0;
|
|
11913
|
-
}
|
|
11914
|
-
}
|
|
11915
|
-
tmp = n * 8;
|
|
11916
|
-
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
|
11917
|
-
lo = parseInt(tmp[2], 16);
|
|
11918
|
-
hi = parseInt(tmp[1], 16) || 0;
|
|
11919
|
-
tail[14] = lo;
|
|
11920
|
-
tail[15] = hi;
|
|
11921
|
-
md5cycle(state, tail);
|
|
11922
|
-
return state;
|
|
11923
|
-
}
|
|
11924
|
-
function rhex(n) {
|
|
11925
|
-
var s = "", j;
|
|
11926
|
-
for (j = 0; j < 4; j += 1) {
|
|
11927
|
-
s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];
|
|
11928
|
-
}
|
|
11929
|
-
return s;
|
|
11930
|
-
}
|
|
11931
|
-
function hex(x) {
|
|
11932
|
-
var i;
|
|
11933
|
-
for (i = 0; i < x.length; i += 1) {
|
|
11934
|
-
x[i] = rhex(x[i]);
|
|
11935
|
-
}
|
|
11936
|
-
return x.join("");
|
|
11937
|
-
}
|
|
11938
|
-
if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592") ;
|
|
11939
|
-
if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
|
|
11940
|
-
(function() {
|
|
11941
|
-
function clamp(val, length) {
|
|
11942
|
-
val = val | 0 || 0;
|
|
11943
|
-
if (val < 0) {
|
|
11944
|
-
return Math.max(val + length, 0);
|
|
11945
|
-
}
|
|
11946
|
-
return Math.min(val, length);
|
|
11947
|
-
}
|
|
11948
|
-
ArrayBuffer.prototype.slice = function(from, to) {
|
|
11949
|
-
var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;
|
|
11950
|
-
if (to !== undefined2) {
|
|
11951
|
-
end = clamp(to, length);
|
|
11952
|
-
}
|
|
11953
|
-
if (begin > end) {
|
|
11954
|
-
return new ArrayBuffer(0);
|
|
11955
|
-
}
|
|
11956
|
-
num = end - begin;
|
|
11957
|
-
target = new ArrayBuffer(num);
|
|
11958
|
-
targetArray = new Uint8Array(target);
|
|
11959
|
-
sourceArray = new Uint8Array(this, begin, num);
|
|
11960
|
-
targetArray.set(sourceArray);
|
|
11961
|
-
return target;
|
|
11962
|
-
};
|
|
11963
|
-
})();
|
|
11964
|
-
}
|
|
11965
|
-
function toUtf8(str) {
|
|
11966
|
-
if (/[\u0080-\uFFFF]/.test(str)) {
|
|
11967
|
-
str = unescape(encodeURIComponent(str));
|
|
11968
|
-
}
|
|
11969
|
-
return str;
|
|
11970
|
-
}
|
|
11971
|
-
function utf8Str2ArrayBuffer(str, returnUInt8Array) {
|
|
11972
|
-
var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;
|
|
11973
|
-
for (i = 0; i < length; i += 1) {
|
|
11974
|
-
arr[i] = str.charCodeAt(i);
|
|
11975
|
-
}
|
|
11976
|
-
return returnUInt8Array ? arr : buff;
|
|
11977
|
-
}
|
|
11978
|
-
function arrayBuffer2Utf8Str(buff) {
|
|
11979
|
-
return String.fromCharCode.apply(null, new Uint8Array(buff));
|
|
11980
|
-
}
|
|
11981
|
-
function concatenateArrayBuffers(first, second, returnUInt8Array) {
|
|
11982
|
-
var result = new Uint8Array(first.byteLength + second.byteLength);
|
|
11983
|
-
result.set(new Uint8Array(first));
|
|
11984
|
-
result.set(new Uint8Array(second), first.byteLength);
|
|
11985
|
-
return result ;
|
|
11986
|
-
}
|
|
11987
|
-
function hexToBinaryString(hex2) {
|
|
11988
|
-
var bytes = [], length = hex2.length, x;
|
|
11989
|
-
for (x = 0; x < length - 1; x += 2) {
|
|
11990
|
-
bytes.push(parseInt(hex2.substr(x, 2), 16));
|
|
11991
|
-
}
|
|
11992
|
-
return String.fromCharCode.apply(String, bytes);
|
|
11993
|
-
}
|
|
11994
|
-
function SparkMD52() {
|
|
11995
|
-
this.reset();
|
|
11996
|
-
}
|
|
11997
|
-
SparkMD52.prototype.append = function(str) {
|
|
11998
|
-
this.appendBinary(toUtf8(str));
|
|
11999
|
-
return this;
|
|
12000
|
-
};
|
|
12001
|
-
SparkMD52.prototype.appendBinary = function(contents) {
|
|
12002
|
-
this._buff += contents;
|
|
12003
|
-
this._length += contents.length;
|
|
12004
|
-
var length = this._buff.length, i;
|
|
12005
|
-
for (i = 64; i <= length; i += 64) {
|
|
12006
|
-
md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
|
|
12007
|
-
}
|
|
12008
|
-
this._buff = this._buff.substring(i - 64);
|
|
12009
|
-
return this;
|
|
12010
|
-
};
|
|
12011
|
-
SparkMD52.prototype.end = function(raw) {
|
|
12012
|
-
var buff = this._buff, length = buff.length, i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ret;
|
|
12013
|
-
for (i = 0; i < length; i += 1) {
|
|
12014
|
-
tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);
|
|
12015
|
-
}
|
|
12016
|
-
this._finish(tail, length);
|
|
12017
|
-
ret = hex(this._hash);
|
|
12018
|
-
if (raw) {
|
|
12019
|
-
ret = hexToBinaryString(ret);
|
|
12020
|
-
}
|
|
12021
|
-
this.reset();
|
|
12022
|
-
return ret;
|
|
12023
|
-
};
|
|
12024
|
-
SparkMD52.prototype.reset = function() {
|
|
12025
|
-
this._buff = "";
|
|
12026
|
-
this._length = 0;
|
|
12027
|
-
this._hash = [1732584193, -271733879, -1732584194, 271733878];
|
|
12028
|
-
return this;
|
|
12029
|
-
};
|
|
12030
|
-
SparkMD52.prototype.getState = function() {
|
|
12031
|
-
return {
|
|
12032
|
-
buff: this._buff,
|
|
12033
|
-
length: this._length,
|
|
12034
|
-
hash: this._hash.slice()
|
|
12035
|
-
};
|
|
12036
|
-
};
|
|
12037
|
-
SparkMD52.prototype.setState = function(state) {
|
|
12038
|
-
this._buff = state.buff;
|
|
12039
|
-
this._length = state.length;
|
|
12040
|
-
this._hash = state.hash;
|
|
12041
|
-
return this;
|
|
12042
|
-
};
|
|
12043
|
-
SparkMD52.prototype.destroy = function() {
|
|
12044
|
-
delete this._hash;
|
|
12045
|
-
delete this._buff;
|
|
12046
|
-
delete this._length;
|
|
12047
|
-
};
|
|
12048
|
-
SparkMD52.prototype._finish = function(tail, length) {
|
|
12049
|
-
var i = length, tmp, lo, hi;
|
|
12050
|
-
tail[i >> 2] |= 128 << (i % 4 << 3);
|
|
12051
|
-
if (i > 55) {
|
|
12052
|
-
md5cycle(this._hash, tail);
|
|
12053
|
-
for (i = 0; i < 16; i += 1) {
|
|
12054
|
-
tail[i] = 0;
|
|
12055
|
-
}
|
|
12056
|
-
}
|
|
12057
|
-
tmp = this._length * 8;
|
|
12058
|
-
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
|
12059
|
-
lo = parseInt(tmp[2], 16);
|
|
12060
|
-
hi = parseInt(tmp[1], 16) || 0;
|
|
12061
|
-
tail[14] = lo;
|
|
12062
|
-
tail[15] = hi;
|
|
12063
|
-
md5cycle(this._hash, tail);
|
|
12064
|
-
};
|
|
12065
|
-
SparkMD52.hash = function(str, raw) {
|
|
12066
|
-
return SparkMD52.hashBinary(toUtf8(str), raw);
|
|
12067
|
-
};
|
|
12068
|
-
SparkMD52.hashBinary = function(content, raw) {
|
|
12069
|
-
var hash = md51(content), ret = hex(hash);
|
|
12070
|
-
return raw ? hexToBinaryString(ret) : ret;
|
|
12071
|
-
};
|
|
12072
|
-
SparkMD52.ArrayBuffer = function() {
|
|
12073
|
-
this.reset();
|
|
12074
|
-
};
|
|
12075
|
-
SparkMD52.ArrayBuffer.prototype.append = function(arr) {
|
|
12076
|
-
var buff = concatenateArrayBuffers(this._buff.buffer, arr), length = buff.length, i;
|
|
12077
|
-
this._length += arr.byteLength;
|
|
12078
|
-
for (i = 64; i <= length; i += 64) {
|
|
12079
|
-
md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
|
|
12080
|
-
}
|
|
12081
|
-
this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
|
|
12082
|
-
return this;
|
|
12083
|
-
};
|
|
12084
|
-
SparkMD52.ArrayBuffer.prototype.end = function(raw) {
|
|
12085
|
-
var buff = this._buff, length = buff.length, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], i, ret;
|
|
12086
|
-
for (i = 0; i < length; i += 1) {
|
|
12087
|
-
tail[i >> 2] |= buff[i] << (i % 4 << 3);
|
|
12088
|
-
}
|
|
12089
|
-
this._finish(tail, length);
|
|
12090
|
-
ret = hex(this._hash);
|
|
12091
|
-
if (raw) {
|
|
12092
|
-
ret = hexToBinaryString(ret);
|
|
12093
|
-
}
|
|
12094
|
-
this.reset();
|
|
12095
|
-
return ret;
|
|
12096
|
-
};
|
|
12097
|
-
SparkMD52.ArrayBuffer.prototype.reset = function() {
|
|
12098
|
-
this._buff = new Uint8Array(0);
|
|
12099
|
-
this._length = 0;
|
|
12100
|
-
this._hash = [1732584193, -271733879, -1732584194, 271733878];
|
|
12101
|
-
return this;
|
|
12102
|
-
};
|
|
12103
|
-
SparkMD52.ArrayBuffer.prototype.getState = function() {
|
|
12104
|
-
var state = SparkMD52.prototype.getState.call(this);
|
|
12105
|
-
state.buff = arrayBuffer2Utf8Str(state.buff);
|
|
12106
|
-
return state;
|
|
12107
|
-
};
|
|
12108
|
-
SparkMD52.ArrayBuffer.prototype.setState = function(state) {
|
|
12109
|
-
state.buff = utf8Str2ArrayBuffer(state.buff, true);
|
|
12110
|
-
return SparkMD52.prototype.setState.call(this, state);
|
|
12111
|
-
};
|
|
12112
|
-
SparkMD52.ArrayBuffer.prototype.destroy = SparkMD52.prototype.destroy;
|
|
12113
|
-
SparkMD52.ArrayBuffer.prototype._finish = SparkMD52.prototype._finish;
|
|
12114
|
-
SparkMD52.ArrayBuffer.hash = function(arr, raw) {
|
|
12115
|
-
var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);
|
|
12116
|
-
return raw ? hexToBinaryString(ret) : ret;
|
|
12117
|
-
};
|
|
12118
|
-
return SparkMD52;
|
|
12119
|
-
});
|
|
12120
|
-
}
|
|
12121
|
-
});
|
|
12122
|
-
|
|
12123
|
-
// src/types.ts
|
|
12124
|
-
var FILE_STATUSES = {
|
|
12125
|
-
PENDING: "pending",
|
|
12126
|
-
PROCESSING: "processing",
|
|
12127
|
-
VALIDATION_FAILED: "validation_failed",
|
|
12128
|
-
PROCESSING_ERROR: "processing_error",
|
|
12129
|
-
EMPTY_FILE: "empty_file",
|
|
12130
|
-
READY: "ready",
|
|
12131
|
-
UPLOADING: "uploading",
|
|
12132
|
-
COMPLETE: "complete",
|
|
12133
|
-
ERROR: "error"
|
|
12134
|
-
};
|
|
12135
|
-
var DEFAULT_VALIDATION = {
|
|
12136
|
-
maxFileSize: 5 * 1024 * 1024,
|
|
12137
|
-
// 5MB
|
|
12138
|
-
maxTotalSize: 25 * 1024 * 1024,
|
|
12139
|
-
// 25MB
|
|
12140
|
-
maxFilesCount: 100
|
|
12141
|
-
};
|
|
12142
|
-
|
|
12143
11703
|
// src/utils/zipExtractor.ts
|
|
12144
11704
|
var import_jszip = __toESM(require_jszip_min());
|
|
12145
11705
|
|
|
@@ -12222,45 +11782,31 @@ function isZipFile(file) {
|
|
|
12222
11782
|
return file.type === "application/zip" || file.type === "application/x-zip-compressed" || file.name.toLowerCase().endsWith(".zip");
|
|
12223
11783
|
}
|
|
12224
11784
|
|
|
11785
|
+
// src/types.ts
|
|
11786
|
+
var FILE_STATUSES = {
|
|
11787
|
+
PENDING: "pending",
|
|
11788
|
+
PROCESSING: "processing",
|
|
11789
|
+
VALIDATION_FAILED: "validation_failed",
|
|
11790
|
+
PROCESSING_ERROR: "processing_error",
|
|
11791
|
+
EMPTY_FILE: "empty_file",
|
|
11792
|
+
READY: "ready",
|
|
11793
|
+
UPLOADING: "uploading",
|
|
11794
|
+
COMPLETE: "complete",
|
|
11795
|
+
ERROR: "error"
|
|
11796
|
+
};
|
|
11797
|
+
|
|
12225
11798
|
// src/utils/fileProcessing.ts
|
|
12226
|
-
var
|
|
12227
|
-
async function calculateMD5(buffer) {
|
|
12228
|
-
const spark = new import_spark_md5.default.ArrayBuffer();
|
|
12229
|
-
spark.append(buffer);
|
|
12230
|
-
return spark.end();
|
|
12231
|
-
}
|
|
12232
|
-
function formatFileSize(bytes, decimals = 1) {
|
|
12233
|
-
if (bytes === 0) return "0 Bytes";
|
|
12234
|
-
const k = 1024;
|
|
12235
|
-
const sizes = ["Bytes", "KB", "MB", "GB"];
|
|
12236
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
12237
|
-
return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + " " + sizes[i];
|
|
12238
|
-
}
|
|
11799
|
+
var formatFileSize = formatFileSize$1;
|
|
12239
11800
|
async function createProcessedFile(file, options) {
|
|
12240
11801
|
const webkitPath = file.webkitRelativePath || "";
|
|
12241
11802
|
const path = options?.path || (webkitPath && webkitPath.trim() ? webkitPath : file.name);
|
|
12242
|
-
const shouldCalculateMD5 = options?.calculateMD5 !== false;
|
|
12243
11803
|
const type = file.type || getMimeType(path);
|
|
12244
|
-
let md5;
|
|
12245
|
-
let status = FILE_STATUSES.PENDING;
|
|
12246
|
-
let statusMessage;
|
|
12247
|
-
if (shouldCalculateMD5) {
|
|
12248
|
-
try {
|
|
12249
|
-
const buffer = await file.arrayBuffer();
|
|
12250
|
-
md5 = await calculateMD5(buffer);
|
|
12251
|
-
} catch (error) {
|
|
12252
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
12253
|
-
console.error(`Error calculating MD5 for ${path}:`, error);
|
|
12254
|
-
status = FILE_STATUSES.PROCESSING_ERROR;
|
|
12255
|
-
statusMessage = `Failed to calculate checksum: ${errorMsg}`;
|
|
12256
|
-
}
|
|
12257
|
-
}
|
|
12258
11804
|
return {
|
|
12259
11805
|
// StaticFile properties (SDK compatibility)
|
|
11806
|
+
// Note: md5 is intentionally undefined - Ship SDK will calculate it during deployment
|
|
12260
11807
|
content: file,
|
|
12261
11808
|
path,
|
|
12262
11809
|
size: file.size,
|
|
12263
|
-
md5,
|
|
12264
11810
|
// ProcessedFile-specific properties (UI functionality)
|
|
12265
11811
|
id: crypto.randomUUID(),
|
|
12266
11812
|
file,
|
|
@@ -12268,109 +11814,10 @@ async function createProcessedFile(file, options) {
|
|
|
12268
11814
|
name: path.split("/").pop() || file.name,
|
|
12269
11815
|
type,
|
|
12270
11816
|
lastModified: file.lastModified,
|
|
12271
|
-
status
|
|
12272
|
-
statusMessage
|
|
11817
|
+
status: FILE_STATUSES.PENDING
|
|
12273
11818
|
};
|
|
12274
11819
|
}
|
|
12275
|
-
|
|
12276
|
-
const result = [];
|
|
12277
|
-
const validFiles = [];
|
|
12278
|
-
let error = null;
|
|
12279
|
-
if (files.length > config.maxFilesCount) {
|
|
12280
|
-
error = {
|
|
12281
|
-
error: "File Count Exceeded",
|
|
12282
|
-
details: `Number of files (${files.length}) exceeds the limit of ${config.maxFilesCount}.`,
|
|
12283
|
-
isClientError: true
|
|
12284
|
-
};
|
|
12285
|
-
return {
|
|
12286
|
-
files: files.map((f) => ({
|
|
12287
|
-
...f,
|
|
12288
|
-
status: FILE_STATUSES.VALIDATION_FAILED,
|
|
12289
|
-
statusMessage: error.details
|
|
12290
|
-
})),
|
|
12291
|
-
validFiles: [],
|
|
12292
|
-
error
|
|
12293
|
-
};
|
|
12294
|
-
}
|
|
12295
|
-
let totalSize = 0;
|
|
12296
|
-
for (const file of files) {
|
|
12297
|
-
if (file.status === FILE_STATUSES.PROCESSING_ERROR) {
|
|
12298
|
-
result.push(file);
|
|
12299
|
-
if (!error) {
|
|
12300
|
-
error = {
|
|
12301
|
-
error: "Processing Error",
|
|
12302
|
-
details: file.statusMessage || "A file failed during processing.",
|
|
12303
|
-
isClientError: true
|
|
12304
|
-
};
|
|
12305
|
-
}
|
|
12306
|
-
continue;
|
|
12307
|
-
}
|
|
12308
|
-
if (file.size === 0) {
|
|
12309
|
-
result.push({
|
|
12310
|
-
...file,
|
|
12311
|
-
status: FILE_STATUSES.EMPTY_FILE,
|
|
12312
|
-
statusMessage: "File is empty (0 bytes)"
|
|
12313
|
-
});
|
|
12314
|
-
if (!error) {
|
|
12315
|
-
error = {
|
|
12316
|
-
error: "Empty File",
|
|
12317
|
-
details: `File ${file.name} is empty (0 bytes).`,
|
|
12318
|
-
isClientError: true
|
|
12319
|
-
};
|
|
12320
|
-
}
|
|
12321
|
-
continue;
|
|
12322
|
-
}
|
|
12323
|
-
if (file.size > config.maxFileSize) {
|
|
12324
|
-
result.push({
|
|
12325
|
-
...file,
|
|
12326
|
-
status: FILE_STATUSES.VALIDATION_FAILED,
|
|
12327
|
-
statusMessage: `File size (${formatFileSize(file.size)}) exceeds limit of ${formatFileSize(config.maxFileSize)}`
|
|
12328
|
-
});
|
|
12329
|
-
if (!error) {
|
|
12330
|
-
error = {
|
|
12331
|
-
error: "File Too Large",
|
|
12332
|
-
details: `File ${file.name} (${formatFileSize(file.size)}) exceeds individual file size limit of ${formatFileSize(config.maxFileSize)}.`,
|
|
12333
|
-
isClientError: true
|
|
12334
|
-
};
|
|
12335
|
-
}
|
|
12336
|
-
continue;
|
|
12337
|
-
}
|
|
12338
|
-
totalSize += file.size;
|
|
12339
|
-
if (totalSize > config.maxTotalSize) {
|
|
12340
|
-
result.push({
|
|
12341
|
-
...file,
|
|
12342
|
-
status: FILE_STATUSES.VALIDATION_FAILED,
|
|
12343
|
-
statusMessage: `Total size would exceed limit of ${formatFileSize(config.maxTotalSize)}`
|
|
12344
|
-
});
|
|
12345
|
-
if (!error) {
|
|
12346
|
-
error = {
|
|
12347
|
-
error: "Total Size Exceeded",
|
|
12348
|
-
details: `Total size of files (${formatFileSize(totalSize)}) exceeds the limit of ${formatFileSize(config.maxTotalSize)}.`,
|
|
12349
|
-
isClientError: true
|
|
12350
|
-
};
|
|
12351
|
-
}
|
|
12352
|
-
continue;
|
|
12353
|
-
}
|
|
12354
|
-
const validFile = {
|
|
12355
|
-
...file,
|
|
12356
|
-
status: FILE_STATUSES.READY,
|
|
12357
|
-
statusMessage: "Ready for upload"
|
|
12358
|
-
};
|
|
12359
|
-
result.push(validFile);
|
|
12360
|
-
validFiles.push(validFile);
|
|
12361
|
-
}
|
|
12362
|
-
return { files: result, validFiles, error };
|
|
12363
|
-
}
|
|
12364
|
-
function getValidFiles(files) {
|
|
12365
|
-
return files.filter((f) => f.status === FILE_STATUSES.READY);
|
|
12366
|
-
}
|
|
12367
|
-
function allValidFilesHaveChecksums(files) {
|
|
12368
|
-
const validFiles = getValidFiles(files);
|
|
12369
|
-
if (validFiles.length === 0) {
|
|
12370
|
-
return false;
|
|
12371
|
-
}
|
|
12372
|
-
return validFiles.every((f) => f.md5 !== void 0);
|
|
12373
|
-
}
|
|
11820
|
+
var getValidFiles = getValidFiles$1;
|
|
12374
11821
|
function stripCommonPrefix(files) {
|
|
12375
11822
|
if (files.length === 0) return files;
|
|
12376
11823
|
const paths = files.map((f) => f.path);
|
|
@@ -12391,16 +11838,13 @@ function stripCommonPrefix(files) {
|
|
|
12391
11838
|
path: f.path.startsWith(prefix) ? f.path.slice(prefix.length) : f.path
|
|
12392
11839
|
}));
|
|
12393
11840
|
}
|
|
12394
|
-
|
|
12395
|
-
// src/hooks/useDrop.ts
|
|
12396
|
-
function useDrop(options = {}) {
|
|
11841
|
+
function useDrop(options) {
|
|
12397
11842
|
const {
|
|
12398
|
-
|
|
11843
|
+
ship,
|
|
12399
11844
|
onValidationError,
|
|
12400
11845
|
onFilesReady,
|
|
12401
11846
|
stripPrefix = true
|
|
12402
11847
|
} = options;
|
|
12403
|
-
const validationConfig = { ...DEFAULT_VALIDATION, ...customConfig };
|
|
12404
11848
|
const [files, setFiles] = useState([]);
|
|
12405
11849
|
const [statusText, setStatusText] = useState("");
|
|
12406
11850
|
const [isProcessing, setIsProcessing] = useState(false);
|
|
@@ -12434,12 +11878,13 @@ function useDrop(options = {}) {
|
|
|
12434
11878
|
} else {
|
|
12435
11879
|
allFiles.push(...newFiles);
|
|
12436
11880
|
}
|
|
12437
|
-
setStatusText("
|
|
11881
|
+
setStatusText("Processing files...");
|
|
12438
11882
|
const processedFiles = await Promise.all(
|
|
12439
11883
|
allFiles.map((file) => createProcessedFile(file))
|
|
12440
11884
|
);
|
|
12441
11885
|
const finalFiles = stripPrefix ? stripCommonPrefix(processedFiles) : processedFiles;
|
|
12442
|
-
const
|
|
11886
|
+
const config = await ship.getConfig();
|
|
11887
|
+
const validation = validateFiles(finalFiles, config);
|
|
12443
11888
|
setFiles(validation.files);
|
|
12444
11889
|
setValidationError(validation.error);
|
|
12445
11890
|
if (validation.error) {
|
|
@@ -12471,10 +11916,7 @@ function useDrop(options = {}) {
|
|
|
12471
11916
|
isProcessingRef.current = false;
|
|
12472
11917
|
setIsProcessing(false);
|
|
12473
11918
|
}
|
|
12474
|
-
}, [
|
|
12475
|
-
const removeFile = useCallback((fileId) => {
|
|
12476
|
-
setFiles((prev) => prev.filter((file) => file.id !== fileId));
|
|
12477
|
-
}, []);
|
|
11919
|
+
}, [ship, onValidationError, onFilesReady, stripPrefix]);
|
|
12478
11920
|
const clearAll = useCallback(() => {
|
|
12479
11921
|
setFiles([]);
|
|
12480
11922
|
setStatusText("");
|
|
@@ -12490,15 +11932,12 @@ function useDrop(options = {}) {
|
|
|
12490
11932
|
(file) => file.id === fileId ? { ...file, ...state } : file
|
|
12491
11933
|
));
|
|
12492
11934
|
}, []);
|
|
12493
|
-
const hasChecksums = allValidFilesHaveChecksums(files);
|
|
12494
11935
|
return {
|
|
12495
11936
|
files,
|
|
12496
11937
|
statusText,
|
|
12497
11938
|
isProcessing,
|
|
12498
11939
|
validationError,
|
|
12499
|
-
hasChecksums,
|
|
12500
11940
|
processFiles,
|
|
12501
|
-
removeFile,
|
|
12502
11941
|
clearAll,
|
|
12503
11942
|
getValidFiles: getValidFilesCallback,
|
|
12504
11943
|
updateFileStatus
|
|
@@ -12528,6 +11967,6 @@ mime-db/index.js:
|
|
|
12528
11967
|
*)
|
|
12529
11968
|
*/
|
|
12530
11969
|
|
|
12531
|
-
export {
|
|
11970
|
+
export { FILE_STATUSES, createProcessedFile, extractZipToFiles, formatFileSize, getValidFiles, isJunkFile, isZipFile, normalizePath, stripCommonPrefix, useDrop };
|
|
12532
11971
|
//# sourceMappingURL=index.js.map
|
|
12533
11972
|
//# sourceMappingURL=index.js.map
|