@zip.js/zip.js 2.7.22 → 2.7.23
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/zip-fs-full.js +72 -186
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +60 -45
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +60 -45
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +60 -45
- package/dist/zip.min.js +1 -1
- package/index.cjs +72 -186
- package/index.min.js +1 -1
- package/lib/core/util/mime-type.js +12 -141
- package/lib/core/zip-reader.js +18 -13
- package/lib/core/zip-writer.js +42 -32
- package/package.json +1 -1
package/dist/zip-fs-full.js
CHANGED
|
@@ -4534,10 +4534,6 @@
|
|
|
4534
4534
|
"atomcat+xml": "atomcat",
|
|
4535
4535
|
"atomserv+xml": "atomsrv",
|
|
4536
4536
|
"bbolin": "lin",
|
|
4537
|
-
"cap": [
|
|
4538
|
-
"cap",
|
|
4539
|
-
"pcap"
|
|
4540
|
-
],
|
|
4541
4537
|
"cu-seeme": "cu",
|
|
4542
4538
|
"davmount+xml": "davmount",
|
|
4543
4539
|
"dsptype": "tsp",
|
|
@@ -4586,10 +4582,6 @@
|
|
|
4586
4582
|
"rdf+xml": "rdf",
|
|
4587
4583
|
"rss+xml": "rss",
|
|
4588
4584
|
"rtf": "rtf",
|
|
4589
|
-
"smil": [
|
|
4590
|
-
"smi",
|
|
4591
|
-
"smil"
|
|
4592
|
-
],
|
|
4593
4585
|
"xhtml+xml": [
|
|
4594
4586
|
"xhtml",
|
|
4595
4587
|
"xht"
|
|
@@ -4714,10 +4706,6 @@
|
|
|
4714
4706
|
"x-chess-pgn": "pgn",
|
|
4715
4707
|
"x-cpio": "cpio",
|
|
4716
4708
|
"x-csh": "csh",
|
|
4717
|
-
"x-debian-package": [
|
|
4718
|
-
"deb",
|
|
4719
|
-
"udeb"
|
|
4720
|
-
],
|
|
4721
4709
|
"x-director": [
|
|
4722
4710
|
"dir",
|
|
4723
4711
|
"dxr",
|
|
@@ -4763,46 +4751,23 @@
|
|
|
4763
4751
|
"x-java-jnlp-file": "jnlp",
|
|
4764
4752
|
"x-jmol": "jmz",
|
|
4765
4753
|
"x-killustrator": "kil",
|
|
4766
|
-
"x-koan": [
|
|
4767
|
-
"skp",
|
|
4768
|
-
"skd",
|
|
4769
|
-
"skt",
|
|
4770
|
-
"skm"
|
|
4771
|
-
],
|
|
4772
|
-
"x-kpresenter": [
|
|
4773
|
-
"kpr",
|
|
4774
|
-
"kpt"
|
|
4775
|
-
],
|
|
4776
|
-
"x-kword": [
|
|
4777
|
-
"kwd",
|
|
4778
|
-
"kwt"
|
|
4779
|
-
],
|
|
4780
4754
|
"x-latex": "latex",
|
|
4781
|
-
"x-lha": "lha",
|
|
4782
4755
|
"x-lyx": "lyx",
|
|
4783
|
-
"x-lzh": "lzh",
|
|
4784
4756
|
"x-lzx": "lzx",
|
|
4785
4757
|
"x-maker": [
|
|
4786
4758
|
"frm",
|
|
4787
|
-
"maker",
|
|
4788
|
-
"frame",
|
|
4789
|
-
"fm",
|
|
4790
4759
|
"fb",
|
|
4791
|
-
"book",
|
|
4792
4760
|
"fbdoc"
|
|
4793
4761
|
],
|
|
4794
4762
|
"x-ms-wmd": "wmd",
|
|
4795
|
-
"x-ms-wmz": "wmz",
|
|
4796
4763
|
"x-msdos-program": [
|
|
4797
4764
|
"com",
|
|
4798
4765
|
"exe",
|
|
4799
4766
|
"bat",
|
|
4800
4767
|
"dll"
|
|
4801
4768
|
],
|
|
4802
|
-
"x-msi": "msi",
|
|
4803
4769
|
"x-netcdf": [
|
|
4804
|
-
"nc"
|
|
4805
|
-
"cdf"
|
|
4770
|
+
"nc"
|
|
4806
4771
|
],
|
|
4807
4772
|
"x-ns-proxy-autoconfig": [
|
|
4808
4773
|
"pac",
|
|
@@ -4838,7 +4803,6 @@
|
|
|
4838
4803
|
"x-sv4cpio": "sv4cpio",
|
|
4839
4804
|
"x-sv4crc": "sv4crc",
|
|
4840
4805
|
"x-tar": "tar",
|
|
4841
|
-
"x-tcl": "tcl",
|
|
4842
4806
|
"x-tex-gf": "gf",
|
|
4843
4807
|
"x-tex-pk": "pk",
|
|
4844
4808
|
"x-texinfo": [
|
|
@@ -4852,14 +4816,6 @@
|
|
|
4852
4816
|
"old",
|
|
4853
4817
|
"sik"
|
|
4854
4818
|
],
|
|
4855
|
-
"x-troff": [
|
|
4856
|
-
"t",
|
|
4857
|
-
"tr",
|
|
4858
|
-
"roff"
|
|
4859
|
-
],
|
|
4860
|
-
"x-troff-man": "man",
|
|
4861
|
-
"x-troff-me": "me",
|
|
4862
|
-
"x-troff-ms": "ms",
|
|
4863
4819
|
"x-ustar": "ustar",
|
|
4864
4820
|
"x-wais-source": "src",
|
|
4865
4821
|
"x-wingz": "wz",
|
|
@@ -5451,13 +5407,7 @@
|
|
|
5451
5407
|
"x-msbinder": "obd",
|
|
5452
5408
|
"x-mscardfile": "crd",
|
|
5453
5409
|
"x-msclip": "clp",
|
|
5454
|
-
"x-
|
|
5455
|
-
"exe",
|
|
5456
|
-
"dll",
|
|
5457
|
-
"com",
|
|
5458
|
-
"bat",
|
|
5459
|
-
"msi"
|
|
5460
|
-
],
|
|
5410
|
+
"application/x-ms-installer": "msi",
|
|
5461
5411
|
"x-msmediaview": [
|
|
5462
5412
|
"mvb",
|
|
5463
5413
|
"m13",
|
|
@@ -5489,8 +5439,6 @@
|
|
|
5489
5439
|
"x-stuffitx": "sitx",
|
|
5490
5440
|
"x-subrip": "srt",
|
|
5491
5441
|
"x-t3vm-image": "t3",
|
|
5492
|
-
"x-tads": "gam",
|
|
5493
|
-
"x-tex": "tex",
|
|
5494
5442
|
"x-tex-tfm": "tfm",
|
|
5495
5443
|
"x-tgif": "obj",
|
|
5496
5444
|
"x-xliff+xml": "xlf",
|
|
@@ -5527,22 +5475,12 @@
|
|
|
5527
5475
|
"vnd.ms-outlook": "msg",
|
|
5528
5476
|
"vnd.ms-pkicertstore": "sst",
|
|
5529
5477
|
"x-compress": "z",
|
|
5530
|
-
"x-compressed": "tgz",
|
|
5531
|
-
"x-gzip": [
|
|
5532
|
-
"gz",
|
|
5533
|
-
"tgz"
|
|
5534
|
-
],
|
|
5535
5478
|
"x-perfmon": [
|
|
5536
5479
|
"pma",
|
|
5537
5480
|
"pmc",
|
|
5538
|
-
"pml",
|
|
5539
5481
|
"pmr",
|
|
5540
5482
|
"pmw"
|
|
5541
5483
|
],
|
|
5542
|
-
"x-pkcs7-mime": [
|
|
5543
|
-
"p7c",
|
|
5544
|
-
"p7m"
|
|
5545
|
-
],
|
|
5546
5484
|
"ynd.ms-pkipko": "pko",
|
|
5547
5485
|
"gzip": [
|
|
5548
5486
|
"gz",
|
|
@@ -5576,15 +5514,6 @@
|
|
|
5576
5514
|
"pm",
|
|
5577
5515
|
"pl"
|
|
5578
5516
|
],
|
|
5579
|
-
"x-sqlite3": [
|
|
5580
|
-
"db",
|
|
5581
|
-
"sqlite",
|
|
5582
|
-
"sqlite3",
|
|
5583
|
-
"db-wal",
|
|
5584
|
-
"sqlite-wal",
|
|
5585
|
-
"db-shm",
|
|
5586
|
-
"sqlite-shm"
|
|
5587
|
-
],
|
|
5588
5517
|
"yaml": [
|
|
5589
5518
|
"yaml",
|
|
5590
5519
|
"yml"
|
|
@@ -5608,7 +5537,6 @@
|
|
|
5608
5537
|
"mpeg": [
|
|
5609
5538
|
"mpga",
|
|
5610
5539
|
"mpega",
|
|
5611
|
-
"mp2",
|
|
5612
5540
|
"mp3",
|
|
5613
5541
|
"m4a",
|
|
5614
5542
|
"mp2a",
|
|
@@ -5622,11 +5550,7 @@
|
|
|
5622
5550
|
"spx"
|
|
5623
5551
|
],
|
|
5624
5552
|
"prs.sid": "sid",
|
|
5625
|
-
"x-aiff":
|
|
5626
|
-
"aif",
|
|
5627
|
-
"aiff",
|
|
5628
|
-
"aifc"
|
|
5629
|
-
],
|
|
5553
|
+
"x-aiff": "aifc",
|
|
5630
5554
|
"x-gsm": "gsm",
|
|
5631
5555
|
"x-ms-wma": "wma",
|
|
5632
5556
|
"x-ms-wax": "wax",
|
|
@@ -5652,20 +5576,11 @@
|
|
|
5652
5576
|
"vnd.nuera.ecelp9600": "ecelp9600",
|
|
5653
5577
|
"vnd.rip": "rip",
|
|
5654
5578
|
"webm": "weba",
|
|
5655
|
-
"x-aac": "aac",
|
|
5656
5579
|
"x-caf": "caf",
|
|
5657
5580
|
"x-matroska": "mka",
|
|
5658
5581
|
"x-pn-realaudio-plugin": "rmp",
|
|
5659
5582
|
"xm": "xm",
|
|
5660
|
-
"
|
|
5661
|
-
"mid",
|
|
5662
|
-
"rmi"
|
|
5663
|
-
],
|
|
5664
|
-
"aac": [
|
|
5665
|
-
"aac",
|
|
5666
|
-
"mp4",
|
|
5667
|
-
"m4a"
|
|
5668
|
-
],
|
|
5583
|
+
"aac": "aac",
|
|
5669
5584
|
"aiff": [
|
|
5670
5585
|
"aiff",
|
|
5671
5586
|
"aif",
|
|
@@ -5735,17 +5650,11 @@
|
|
|
5735
5650
|
],
|
|
5736
5651
|
"x-kinemage": "kin",
|
|
5737
5652
|
"x-macmolecule": "mcm",
|
|
5738
|
-
"x-macromodel-input":
|
|
5739
|
-
"mmd",
|
|
5740
|
-
"mmod"
|
|
5741
|
-
],
|
|
5653
|
+
"x-macromodel-input": "mmod",
|
|
5742
5654
|
"x-mdl-molfile": "mol",
|
|
5743
5655
|
"x-mdl-rdfile": "rd",
|
|
5744
5656
|
"x-mdl-rxnfile": "rxn",
|
|
5745
|
-
"x-mdl-sdfile":
|
|
5746
|
-
"sd",
|
|
5747
|
-
"sdf"
|
|
5748
|
-
],
|
|
5657
|
+
"x-mdl-sdfile": "sd",
|
|
5749
5658
|
"x-mdl-tgf": "tgf",
|
|
5750
5659
|
"x-mmcif": "mcif",
|
|
5751
5660
|
"x-mol2": "mol2",
|
|
@@ -5754,7 +5663,6 @@
|
|
|
5754
5663
|
"x-mopac-input": [
|
|
5755
5664
|
"mop",
|
|
5756
5665
|
"mopcrt",
|
|
5757
|
-
"mpc",
|
|
5758
5666
|
"zmt"
|
|
5759
5667
|
],
|
|
5760
5668
|
"x-mopac-out": "moo",
|
|
@@ -5763,14 +5671,7 @@
|
|
|
5763
5671
|
"prt",
|
|
5764
5672
|
"ent"
|
|
5765
5673
|
],
|
|
5766
|
-
"x-ncbi-asn1-binary":
|
|
5767
|
-
"val",
|
|
5768
|
-
"aso"
|
|
5769
|
-
],
|
|
5770
|
-
"x-pdb": [
|
|
5771
|
-
"pdb",
|
|
5772
|
-
"ent"
|
|
5773
|
-
],
|
|
5674
|
+
"x-ncbi-asn1-binary": "val",
|
|
5774
5675
|
"x-rosdal": "ros",
|
|
5775
5676
|
"x-swissprot": "sw",
|
|
5776
5677
|
"x-vamas-iso14976": "vms",
|
|
@@ -5790,7 +5691,6 @@
|
|
|
5790
5691
|
"jpeg",
|
|
5791
5692
|
"jpg",
|
|
5792
5693
|
"jpe",
|
|
5793
|
-
"pjpg",
|
|
5794
5694
|
"jfif",
|
|
5795
5695
|
"jfif-tbnl",
|
|
5796
5696
|
"jif"
|
|
@@ -5876,13 +5776,7 @@
|
|
|
5876
5776
|
"heic"
|
|
5877
5777
|
],
|
|
5878
5778
|
"pjpeg": [
|
|
5879
|
-
"
|
|
5880
|
-
"jpeg",
|
|
5881
|
-
"jpg",
|
|
5882
|
-
"pjpg",
|
|
5883
|
-
"jfi",
|
|
5884
|
-
"jfif-tbnl",
|
|
5885
|
-
"jif"
|
|
5779
|
+
"pjpg"
|
|
5886
5780
|
],
|
|
5887
5781
|
"vnd.adobe.photoshop": "psd",
|
|
5888
5782
|
"x-adobe-dng": "dng",
|
|
@@ -5933,10 +5827,7 @@
|
|
|
5933
5827
|
"x3dv",
|
|
5934
5828
|
"x3dvz"
|
|
5935
5829
|
],
|
|
5936
|
-
"x3d+xml":
|
|
5937
|
-
"x3d",
|
|
5938
|
-
"x3dz"
|
|
5939
|
-
],
|
|
5830
|
+
"x3d+xml": "x3dz",
|
|
5940
5831
|
"x3d+binary": [
|
|
5941
5832
|
"x3db",
|
|
5942
5833
|
"x3dbz"
|
|
@@ -5979,8 +5870,7 @@
|
|
|
5979
5870
|
"in",
|
|
5980
5871
|
"bas",
|
|
5981
5872
|
"diff",
|
|
5982
|
-
"ksh"
|
|
5983
|
-
"pl"
|
|
5873
|
+
"ksh"
|
|
5984
5874
|
],
|
|
5985
5875
|
"richtext": "rtx",
|
|
5986
5876
|
"scriptlet": [
|
|
@@ -6008,10 +5898,7 @@
|
|
|
6008
5898
|
],
|
|
6009
5899
|
"x-component": "htc",
|
|
6010
5900
|
"x-dsrc": "d",
|
|
6011
|
-
"x-diff":
|
|
6012
|
-
"diff",
|
|
6013
|
-
"patch"
|
|
6014
|
-
],
|
|
5901
|
+
"x-diff": "patch",
|
|
6015
5902
|
"x-haskell": "hs",
|
|
6016
5903
|
"x-java": "java",
|
|
6017
5904
|
"x-literate-haskell": "lhs",
|
|
@@ -6023,10 +5910,6 @@
|
|
|
6023
5910
|
"inc"
|
|
6024
5911
|
],
|
|
6025
5912
|
"x-pcs-gcd": "gcd",
|
|
6026
|
-
"x-perl": [
|
|
6027
|
-
"pl",
|
|
6028
|
-
"pm"
|
|
6029
|
-
],
|
|
6030
5913
|
"x-python": "py",
|
|
6031
5914
|
"x-scala": "scala",
|
|
6032
5915
|
"x-setext": "etx",
|
|
@@ -6079,11 +5962,7 @@
|
|
|
6079
5962
|
],
|
|
6080
5963
|
"x-c": [
|
|
6081
5964
|
"c",
|
|
6082
|
-
"cc",
|
|
6083
|
-
"cxx",
|
|
6084
|
-
"cpp",
|
|
6085
5965
|
"h",
|
|
6086
|
-
"hh",
|
|
6087
5966
|
"dic"
|
|
6088
5967
|
],
|
|
6089
5968
|
"x-fortran": [
|
|
@@ -6106,13 +5985,7 @@
|
|
|
6106
5985
|
"markdn"
|
|
6107
5986
|
],
|
|
6108
5987
|
"vnd.wap.si": "si",
|
|
6109
|
-
"vnd.wap.sl": "sl"
|
|
6110
|
-
"x-markdown": [
|
|
6111
|
-
"md",
|
|
6112
|
-
"markdown",
|
|
6113
|
-
"mdown",
|
|
6114
|
-
"markdn"
|
|
6115
|
-
]
|
|
5988
|
+
"vnd.wap.sl": "sl"
|
|
6116
5989
|
},
|
|
6117
5990
|
"video": {
|
|
6118
5991
|
"avif": "avif",
|
|
@@ -6226,8 +6099,6 @@
|
|
|
6226
6099
|
"x-world": {
|
|
6227
6100
|
"x-vrml": [
|
|
6228
6101
|
"vrm",
|
|
6229
|
-
"vrml",
|
|
6230
|
-
"wrl",
|
|
6231
6102
|
"flr",
|
|
6232
6103
|
"wrz",
|
|
6233
6104
|
"xaf",
|
|
@@ -9507,7 +9378,7 @@
|
|
|
9507
9378
|
localDirectory.rawExtraField = localDirectory.extraFieldLength ?
|
|
9508
9379
|
await readUint8Array(reader, offset + 30 + localDirectory.filenameLength, localDirectory.extraFieldLength, diskNumberStart) :
|
|
9509
9380
|
new Uint8Array();
|
|
9510
|
-
await readCommonFooter(zipEntry, localDirectory, dataView, 4);
|
|
9381
|
+
await readCommonFooter(zipEntry, localDirectory, dataView, 4, true);
|
|
9511
9382
|
Object.assign(fileEntry, {
|
|
9512
9383
|
lastAccessDate: localDirectory.lastAccessDate,
|
|
9513
9384
|
creationDate: localDirectory.creationDate
|
|
@@ -9594,7 +9465,7 @@
|
|
|
9594
9465
|
});
|
|
9595
9466
|
}
|
|
9596
9467
|
|
|
9597
|
-
async function readCommonFooter(fileEntry, directory, dataView, offset) {
|
|
9468
|
+
async function readCommonFooter(fileEntry, directory, dataView, offset, localDirectory) {
|
|
9598
9469
|
const { rawExtraField } = directory;
|
|
9599
9470
|
const extraField = directory.extraField = new Map();
|
|
9600
9471
|
const rawExtraFieldView = getDataView$1(new Uint8Array(rawExtraField));
|
|
@@ -9647,7 +9518,7 @@
|
|
|
9647
9518
|
}
|
|
9648
9519
|
const extraFieldExtendedTimestamp = extraField.get(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
|
|
9649
9520
|
if (extraFieldExtendedTimestamp) {
|
|
9650
|
-
readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory);
|
|
9521
|
+
readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory, localDirectory);
|
|
9651
9522
|
directory.extraFieldExtendedTimestamp = extraFieldExtendedTimestamp;
|
|
9652
9523
|
}
|
|
9653
9524
|
}
|
|
@@ -9738,23 +9609,28 @@
|
|
|
9738
9609
|
}
|
|
9739
9610
|
}
|
|
9740
9611
|
|
|
9741
|
-
function readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory) {
|
|
9612
|
+
function readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory, localDirectory) {
|
|
9742
9613
|
const extraFieldView = getDataView$1(extraFieldExtendedTimestamp.data);
|
|
9743
9614
|
const flags = getUint8(extraFieldView, 0);
|
|
9744
9615
|
const timeProperties = [];
|
|
9745
9616
|
const timeRawProperties = [];
|
|
9746
|
-
if (
|
|
9617
|
+
if (localDirectory) {
|
|
9618
|
+
if ((flags & 0x1) == 0x1) {
|
|
9619
|
+
timeProperties.push(PROPERTY_NAME_LAST_MODIFICATION_DATE);
|
|
9620
|
+
timeRawProperties.push(PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);
|
|
9621
|
+
}
|
|
9622
|
+
if ((flags & 0x2) == 0x2) {
|
|
9623
|
+
timeProperties.push(PROPERTY_NAME_LAST_ACCESS_DATE);
|
|
9624
|
+
timeRawProperties.push(PROPERTY_NAME_RAW_LAST_ACCESS_DATE);
|
|
9625
|
+
}
|
|
9626
|
+
if ((flags & 0x4) == 0x4) {
|
|
9627
|
+
timeProperties.push(PROPERTY_NAME_CREATION_DATE);
|
|
9628
|
+
timeRawProperties.push(PROPERTY_NAME_RAW_CREATION_DATE);
|
|
9629
|
+
}
|
|
9630
|
+
} else if (extraFieldExtendedTimestamp.data.length >= 5) {
|
|
9747
9631
|
timeProperties.push(PROPERTY_NAME_LAST_MODIFICATION_DATE);
|
|
9748
9632
|
timeRawProperties.push(PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);
|
|
9749
9633
|
}
|
|
9750
|
-
if ((flags & 0x2) == 0x2) {
|
|
9751
|
-
timeProperties.push(PROPERTY_NAME_LAST_ACCESS_DATE);
|
|
9752
|
-
timeRawProperties.push(PROPERTY_NAME_RAW_LAST_ACCESS_DATE);
|
|
9753
|
-
}
|
|
9754
|
-
if ((flags & 0x4) == 0x4) {
|
|
9755
|
-
timeProperties.push(PROPERTY_NAME_CREATION_DATE);
|
|
9756
|
-
timeRawProperties.push(PROPERTY_NAME_RAW_CREATION_DATE);
|
|
9757
|
-
}
|
|
9758
9634
|
let offset = 1;
|
|
9759
9635
|
timeProperties.forEach((propertyName, indexProperty) => {
|
|
9760
9636
|
if (extraFieldExtendedTimestamp.data.length >= offset + 4) {
|
|
@@ -10237,6 +10113,7 @@
|
|
|
10237
10113
|
version,
|
|
10238
10114
|
compressionMethod,
|
|
10239
10115
|
rawExtraFieldExtendedTimestamp,
|
|
10116
|
+
extraFieldExtendedTimestampFlag,
|
|
10240
10117
|
rawExtraFieldNTFS,
|
|
10241
10118
|
rawExtraFieldAES
|
|
10242
10119
|
} = headerInfo;
|
|
@@ -10368,6 +10245,7 @@
|
|
|
10368
10245
|
headerArray,
|
|
10369
10246
|
signature,
|
|
10370
10247
|
rawExtraFieldZip64,
|
|
10248
|
+
extraFieldExtendedTimestampFlag,
|
|
10371
10249
|
zip64UncompressedSize,
|
|
10372
10250
|
zip64CompressedSize,
|
|
10373
10251
|
zip64Offset,
|
|
@@ -10390,7 +10268,7 @@
|
|
|
10390
10268
|
directory,
|
|
10391
10269
|
rawExtraField,
|
|
10392
10270
|
encryptionStrength,
|
|
10393
|
-
extendedTimestamp
|
|
10271
|
+
extendedTimestamp
|
|
10394
10272
|
} = options;
|
|
10395
10273
|
const compressed = level !== 0 && !directory;
|
|
10396
10274
|
const encrypted = Boolean(password && getLength(password));
|
|
@@ -10407,19 +10285,23 @@
|
|
|
10407
10285
|
}
|
|
10408
10286
|
let rawExtraFieldNTFS;
|
|
10409
10287
|
let rawExtraFieldExtendedTimestamp;
|
|
10288
|
+
let extraFieldExtendedTimestampFlag;
|
|
10410
10289
|
if (extendedTimestamp) {
|
|
10411
10290
|
rawExtraFieldExtendedTimestamp = new Uint8Array(9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0));
|
|
10412
10291
|
const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
|
|
10413
10292
|
setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
|
|
10414
10293
|
setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
|
|
10415
|
-
|
|
10294
|
+
extraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);
|
|
10416
10295
|
setUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);
|
|
10417
|
-
|
|
10296
|
+
let offset = 5;
|
|
10297
|
+
setUint32(extraFieldExtendedTimestampView, offset, Math.floor(lastModDate.getTime() / 1000));
|
|
10298
|
+
offset += 4;
|
|
10418
10299
|
if (lastAccessDate) {
|
|
10419
|
-
setUint32(extraFieldExtendedTimestampView,
|
|
10300
|
+
setUint32(extraFieldExtendedTimestampView, offset, Math.floor(lastAccessDate.getTime() / 1000));
|
|
10301
|
+
offset += 4;
|
|
10420
10302
|
}
|
|
10421
10303
|
if (creationDate) {
|
|
10422
|
-
setUint32(extraFieldExtendedTimestampView,
|
|
10304
|
+
setUint32(extraFieldExtendedTimestampView, offset, Math.floor(creationDate.getTime() / 1000));
|
|
10423
10305
|
}
|
|
10424
10306
|
try {
|
|
10425
10307
|
rawExtraFieldNTFS = new Uint8Array(36);
|
|
@@ -10500,6 +10382,7 @@
|
|
|
10500
10382
|
compressed,
|
|
10501
10383
|
version,
|
|
10502
10384
|
compressionMethod,
|
|
10385
|
+
extraFieldExtendedTimestampFlag,
|
|
10503
10386
|
rawExtraFieldExtendedTimestamp,
|
|
10504
10387
|
rawExtraFieldNTFS,
|
|
10505
10388
|
rawExtraFieldAES
|
|
@@ -10636,23 +10519,38 @@
|
|
|
10636
10519
|
let directoryDataLength = 0;
|
|
10637
10520
|
let directoryOffset = zipWriter.offset - diskOffset;
|
|
10638
10521
|
let filesLength = files.size;
|
|
10639
|
-
for (const [, {
|
|
10640
|
-
|
|
10641
|
-
|
|
10642
|
-
|
|
10643
|
-
|
|
10644
|
-
|
|
10645
|
-
|
|
10646
|
-
|
|
10647
|
-
|
|
10522
|
+
for (const [, fileEntry] of files) {
|
|
10523
|
+
const {
|
|
10524
|
+
rawFilename,
|
|
10525
|
+
rawExtraFieldZip64,
|
|
10526
|
+
rawExtraFieldAES,
|
|
10527
|
+
rawComment,
|
|
10528
|
+
rawExtraFieldNTFS,
|
|
10529
|
+
rawExtraField,
|
|
10530
|
+
extendedTimestamp,
|
|
10531
|
+
extraFieldExtendedTimestampFlag,
|
|
10532
|
+
lastModDate
|
|
10533
|
+
} = fileEntry;
|
|
10534
|
+
let rawExtraFieldTimestamp;
|
|
10535
|
+
if (extendedTimestamp) {
|
|
10536
|
+
rawExtraFieldTimestamp = new Uint8Array(9);
|
|
10537
|
+
const extraFieldExtendedTimestampView = getDataView(rawExtraFieldTimestamp);
|
|
10538
|
+
setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
|
|
10539
|
+
setUint16(extraFieldExtendedTimestampView, 2, 5);
|
|
10540
|
+
setUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);
|
|
10541
|
+
setUint32(extraFieldExtendedTimestampView, 5, Math.floor(lastModDate.getTime() / 1000));
|
|
10542
|
+
} else {
|
|
10543
|
+
rawExtraFieldTimestamp = new Uint8Array();
|
|
10544
|
+
}
|
|
10545
|
+
fileEntry.rawExtraFieldCDExtendedTimestamp = rawExtraFieldTimestamp;
|
|
10648
10546
|
directoryDataLength += 46 +
|
|
10649
10547
|
getLength(
|
|
10650
10548
|
rawFilename,
|
|
10651
10549
|
rawComment,
|
|
10652
10550
|
rawExtraFieldZip64,
|
|
10653
10551
|
rawExtraFieldAES,
|
|
10654
|
-
rawExtraFieldExtendedTimestamp,
|
|
10655
10552
|
rawExtraFieldNTFS,
|
|
10553
|
+
rawExtraFieldTimestamp,
|
|
10656
10554
|
rawExtraField);
|
|
10657
10555
|
}
|
|
10658
10556
|
const directoryArray = new Uint8Array(directoryDataLength);
|
|
@@ -10665,6 +10563,7 @@
|
|
|
10665
10563
|
rawFilename,
|
|
10666
10564
|
rawExtraFieldZip64,
|
|
10667
10565
|
rawExtraFieldAES,
|
|
10566
|
+
rawExtraFieldCDExtendedTimestamp,
|
|
10668
10567
|
rawExtraFieldNTFS,
|
|
10669
10568
|
rawExtraField,
|
|
10670
10569
|
rawComment,
|
|
@@ -10679,24 +10578,11 @@
|
|
|
10679
10578
|
msDosCompatible,
|
|
10680
10579
|
internalFileAttribute,
|
|
10681
10580
|
externalFileAttribute,
|
|
10682
|
-
extendedTimestamp,
|
|
10683
|
-
lastModDate,
|
|
10684
10581
|
diskNumberStart,
|
|
10685
10582
|
uncompressedSize,
|
|
10686
10583
|
compressedSize
|
|
10687
10584
|
} = fileEntry;
|
|
10688
|
-
|
|
10689
|
-
if (extendedTimestamp) {
|
|
10690
|
-
rawExtraFieldExtendedTimestamp = new Uint8Array(9);
|
|
10691
|
-
const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
|
|
10692
|
-
setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
|
|
10693
|
-
setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
|
|
10694
|
-
setUint8(extraFieldExtendedTimestampView, 4, 0x1);
|
|
10695
|
-
setUint32(extraFieldExtendedTimestampView, 5, Math.floor(lastModDate.getTime() / 1000));
|
|
10696
|
-
} else {
|
|
10697
|
-
rawExtraFieldExtendedTimestamp = new Uint8Array();
|
|
10698
|
-
}
|
|
10699
|
-
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
10585
|
+
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldCDExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
10700
10586
|
setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
|
|
10701
10587
|
setUint16(directoryView, offset + 4, versionMadeBy);
|
|
10702
10588
|
const headerView = getDataView(headerArray);
|
|
@@ -10720,9 +10606,9 @@
|
|
|
10720
10606
|
arraySet(directoryArray, rawFilename, offset + 46);
|
|
10721
10607
|
arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + getLength(rawFilename));
|
|
10722
10608
|
arraySet(directoryArray, rawExtraFieldAES, offset + 46 + getLength(rawFilename, rawExtraFieldZip64));
|
|
10723
|
-
arraySet(directoryArray,
|
|
10724
|
-
arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES,
|
|
10725
|
-
arraySet(directoryArray, rawExtraField, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES,
|
|
10609
|
+
arraySet(directoryArray, rawExtraFieldCDExtendedTimestamp, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES));
|
|
10610
|
+
arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldCDExtendedTimestamp));
|
|
10611
|
+
arraySet(directoryArray, rawExtraField, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldCDExtendedTimestamp, rawExtraFieldNTFS));
|
|
10726
10612
|
arraySet(directoryArray, rawComment, offset + 46 + getLength(rawFilename) + extraFieldLength);
|
|
10727
10613
|
const directoryEntryLength = 46 + getLength(rawFilename, rawComment) + extraFieldLength;
|
|
10728
10614
|
if (offset - directoryDiskOffset > writer.availableSize) {
|