@neoware_inc/neozipkit 0.5.0

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.
Files changed (171) hide show
  1. package/README.md +134 -0
  2. package/dist/browser/ZipkitBrowser.d.ts +27 -0
  3. package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
  4. package/dist/browser/ZipkitBrowser.js +303 -0
  5. package/dist/browser/ZipkitBrowser.js.map +1 -0
  6. package/dist/browser/index.d.ts +9 -0
  7. package/dist/browser/index.d.ts.map +1 -0
  8. package/dist/browser/index.esm.d.ts +12 -0
  9. package/dist/browser/index.esm.d.ts.map +1 -0
  10. package/dist/browser/index.esm.js +46 -0
  11. package/dist/browser/index.esm.js.map +1 -0
  12. package/dist/browser/index.js +38 -0
  13. package/dist/browser/index.js.map +1 -0
  14. package/dist/browser-esm/index.d.ts +9 -0
  15. package/dist/browser-esm/index.js +50211 -0
  16. package/dist/browser-esm/index.js.map +7 -0
  17. package/dist/browser-umd/index.d.ts +9 -0
  18. package/dist/browser-umd/index.js +50221 -0
  19. package/dist/browser-umd/index.js.map +7 -0
  20. package/dist/browser-umd/index.min.js +39 -0
  21. package/dist/browser.d.ts +9 -0
  22. package/dist/browser.js +38 -0
  23. package/dist/core/ZipCompress.d.ts +99 -0
  24. package/dist/core/ZipCompress.d.ts.map +1 -0
  25. package/dist/core/ZipCompress.js +287 -0
  26. package/dist/core/ZipCompress.js.map +1 -0
  27. package/dist/core/ZipCopy.d.ts +175 -0
  28. package/dist/core/ZipCopy.d.ts.map +1 -0
  29. package/dist/core/ZipCopy.js +310 -0
  30. package/dist/core/ZipCopy.js.map +1 -0
  31. package/dist/core/ZipDecompress.d.ts +57 -0
  32. package/dist/core/ZipDecompress.d.ts.map +1 -0
  33. package/dist/core/ZipDecompress.js +155 -0
  34. package/dist/core/ZipDecompress.js.map +1 -0
  35. package/dist/core/ZipEntry.d.ts +138 -0
  36. package/dist/core/ZipEntry.d.ts.map +1 -0
  37. package/dist/core/ZipEntry.js +829 -0
  38. package/dist/core/ZipEntry.js.map +1 -0
  39. package/dist/core/Zipkit.d.ts +315 -0
  40. package/dist/core/Zipkit.d.ts.map +1 -0
  41. package/dist/core/Zipkit.js +647 -0
  42. package/dist/core/Zipkit.js.map +1 -0
  43. package/dist/core/ZstdManager.d.ts +56 -0
  44. package/dist/core/ZstdManager.d.ts.map +1 -0
  45. package/dist/core/ZstdManager.js +144 -0
  46. package/dist/core/ZstdManager.js.map +1 -0
  47. package/dist/core/components/HashCalculator.d.ts +138 -0
  48. package/dist/core/components/HashCalculator.d.ts.map +1 -0
  49. package/dist/core/components/HashCalculator.js +360 -0
  50. package/dist/core/components/HashCalculator.js.map +1 -0
  51. package/dist/core/components/Logger.d.ts +73 -0
  52. package/dist/core/components/Logger.d.ts.map +1 -0
  53. package/dist/core/components/Logger.js +156 -0
  54. package/dist/core/components/Logger.js.map +1 -0
  55. package/dist/core/components/ProgressTracker.d.ts +43 -0
  56. package/dist/core/components/ProgressTracker.d.ts.map +1 -0
  57. package/dist/core/components/ProgressTracker.js +112 -0
  58. package/dist/core/components/ProgressTracker.js.map +1 -0
  59. package/dist/core/components/Support.d.ts +64 -0
  60. package/dist/core/components/Support.d.ts.map +1 -0
  61. package/dist/core/components/Support.js +71 -0
  62. package/dist/core/components/Support.js.map +1 -0
  63. package/dist/core/components/Util.d.ts +26 -0
  64. package/dist/core/components/Util.d.ts.map +1 -0
  65. package/dist/core/components/Util.js +95 -0
  66. package/dist/core/components/Util.js.map +1 -0
  67. package/dist/core/constants/Errors.d.ts +52 -0
  68. package/dist/core/constants/Errors.d.ts.map +1 -0
  69. package/dist/core/constants/Errors.js +67 -0
  70. package/dist/core/constants/Errors.js.map +1 -0
  71. package/dist/core/constants/Headers.d.ts +170 -0
  72. package/dist/core/constants/Headers.d.ts.map +1 -0
  73. package/dist/core/constants/Headers.js +194 -0
  74. package/dist/core/constants/Headers.js.map +1 -0
  75. package/dist/core/encryption/Manager.d.ts +58 -0
  76. package/dist/core/encryption/Manager.d.ts.map +1 -0
  77. package/dist/core/encryption/Manager.js +121 -0
  78. package/dist/core/encryption/Manager.js.map +1 -0
  79. package/dist/core/encryption/ZipCrypto.d.ts +172 -0
  80. package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
  81. package/dist/core/encryption/ZipCrypto.js +554 -0
  82. package/dist/core/encryption/ZipCrypto.js.map +1 -0
  83. package/dist/core/encryption/index.d.ts +9 -0
  84. package/dist/core/encryption/index.d.ts.map +1 -0
  85. package/dist/core/encryption/index.js +17 -0
  86. package/dist/core/encryption/index.js.map +1 -0
  87. package/dist/core/encryption/types.d.ts +29 -0
  88. package/dist/core/encryption/types.d.ts.map +1 -0
  89. package/dist/core/encryption/types.js +12 -0
  90. package/dist/core/encryption/types.js.map +1 -0
  91. package/dist/core/index.d.ts +27 -0
  92. package/dist/core/index.d.ts.map +1 -0
  93. package/dist/core/index.js +59 -0
  94. package/dist/core/index.js.map +1 -0
  95. package/dist/core/version.d.ts +5 -0
  96. package/dist/core/version.d.ts.map +1 -0
  97. package/dist/core/version.js +31 -0
  98. package/dist/core/version.js.map +1 -0
  99. package/dist/index.d.ts +9 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +38 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/node/ZipCompressNode.d.ts +123 -0
  104. package/dist/node/ZipCompressNode.d.ts.map +1 -0
  105. package/dist/node/ZipCompressNode.js +565 -0
  106. package/dist/node/ZipCompressNode.js.map +1 -0
  107. package/dist/node/ZipCopyNode.d.ts +165 -0
  108. package/dist/node/ZipCopyNode.d.ts.map +1 -0
  109. package/dist/node/ZipCopyNode.js +347 -0
  110. package/dist/node/ZipCopyNode.js.map +1 -0
  111. package/dist/node/ZipDecompressNode.d.ts +197 -0
  112. package/dist/node/ZipDecompressNode.d.ts.map +1 -0
  113. package/dist/node/ZipDecompressNode.js +678 -0
  114. package/dist/node/ZipDecompressNode.js.map +1 -0
  115. package/dist/node/ZipkitNode.d.ts +466 -0
  116. package/dist/node/ZipkitNode.d.ts.map +1 -0
  117. package/dist/node/ZipkitNode.js +1426 -0
  118. package/dist/node/ZipkitNode.js.map +1 -0
  119. package/dist/node/index.d.ts +25 -0
  120. package/dist/node/index.d.ts.map +1 -0
  121. package/dist/node/index.js +54 -0
  122. package/dist/node/index.js.map +1 -0
  123. package/dist/types/index.d.ts +45 -0
  124. package/dist/types/index.d.ts.map +1 -0
  125. package/dist/types/index.js +11 -0
  126. package/dist/types/index.js.map +1 -0
  127. package/examples/README.md +261 -0
  128. package/examples/append-data.json +44 -0
  129. package/examples/copy-zip-append.ts +139 -0
  130. package/examples/copy-zip.ts +152 -0
  131. package/examples/create-zip.ts +172 -0
  132. package/examples/extract-zip.ts +118 -0
  133. package/examples/list-zip.ts +161 -0
  134. package/examples/test-files/data.json +116 -0
  135. package/examples/test-files/document.md +80 -0
  136. package/examples/test-files/document.txt +6 -0
  137. package/examples/test-files/file1.txt +48 -0
  138. package/examples/test-files/file2.txt +80 -0
  139. package/examples/tsconfig.json +44 -0
  140. package/package.json +167 -0
  141. package/src/browser/ZipkitBrowser.ts +305 -0
  142. package/src/browser/index.esm.ts +32 -0
  143. package/src/browser/index.ts +19 -0
  144. package/src/core/ZipCompress.ts +370 -0
  145. package/src/core/ZipCopy.ts +434 -0
  146. package/src/core/ZipDecompress.ts +191 -0
  147. package/src/core/ZipEntry.ts +917 -0
  148. package/src/core/Zipkit.ts +794 -0
  149. package/src/core/ZstdManager.ts +165 -0
  150. package/src/core/components/HashCalculator.ts +384 -0
  151. package/src/core/components/Logger.ts +180 -0
  152. package/src/core/components/ProgressTracker.ts +134 -0
  153. package/src/core/components/Support.ts +77 -0
  154. package/src/core/components/Util.ts +91 -0
  155. package/src/core/constants/Errors.ts +78 -0
  156. package/src/core/constants/Headers.ts +205 -0
  157. package/src/core/encryption/Manager.ts +137 -0
  158. package/src/core/encryption/ZipCrypto.ts +650 -0
  159. package/src/core/encryption/index.ts +15 -0
  160. package/src/core/encryption/types.ts +33 -0
  161. package/src/core/index.ts +42 -0
  162. package/src/core/version.ts +33 -0
  163. package/src/index.ts +19 -0
  164. package/src/node/ZipCompressNode.ts +618 -0
  165. package/src/node/ZipCopyNode.ts +437 -0
  166. package/src/node/ZipDecompressNode.ts +793 -0
  167. package/src/node/ZipkitNode.ts +1706 -0
  168. package/src/node/index.ts +40 -0
  169. package/src/types/index.ts +68 -0
  170. package/src/types/modules.d.ts +22 -0
  171. package/src/types/opentimestamps.d.ts +1 -0
@@ -0,0 +1,170 @@
1
+ export declare const LOCAL_FILE_HEADER = "PK\u0003\u0004";
2
+ export declare const CENTRAL_FILE_HEADER = "PK\u0001\u0002";
3
+ export declare const CENTRAL_DIRECTORY_END = "PK\u0005\u0006";
4
+ export declare const ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\u0006\u0007";
5
+ export declare const ZIP64_CENTRAL_DIRECTORY_END = "PK\u0006\u0006";
6
+ export declare const DATA_DESCRIPTOR = "PK\u0007\b";
7
+ export declare const TIMESTAMP_SUBMITTED = "META-INF/TS-SUBMIT.OTS";
8
+ export declare const TIMESTAMP_METADATA = "META-INF/TIMESTAMP.OTS";
9
+ export declare const TOKENIZED_METADATA = "META-INF/NZIP.TOKEN";
10
+ export declare const LOCAL_HDR: {
11
+ SIZE: number;
12
+ SIGNATURE: number;
13
+ VER_EXTRACT: number;
14
+ FLAGS: number;
15
+ COMPRESSION: number;
16
+ TIMEDATE_DOS: number;
17
+ CRC: number;
18
+ CMP_SIZE: number;
19
+ UNCMP_SIZE: number;
20
+ FNAME_LEN: number;
21
+ EXTRA_LEN: number;
22
+ };
23
+ export declare const ENCRYPT_HDR_SIZE = 12;
24
+ export declare const DATA_DESC: {
25
+ SIGNATURE: number;
26
+ SIZE: number;
27
+ CRC: number;
28
+ CMP_SIZE: number;
29
+ UNCMP_SIZE: number;
30
+ };
31
+ export declare const CENTRAL_DIR: {
32
+ SIZE: number;
33
+ SIGNATURE: number;
34
+ VER_MADE: number;
35
+ VER_EXT: number;
36
+ FLAGS: number;
37
+ CMP_METHOD: number;
38
+ TIMEDATE_DOS: number;
39
+ CRC: number;
40
+ CMP_SIZE: number;
41
+ UNCMP_SIZE: number;
42
+ FNAME_LEN: number;
43
+ EXTRA_LEN: number;
44
+ COMMENT_LEN: number;
45
+ DISK_NUM: number;
46
+ INT_FILE_ATTR: number;
47
+ EXT_FILE_ATTR: number;
48
+ LOCAL_HDR_OFFSET: number;
49
+ };
50
+ export declare const CENTRAL_END: {
51
+ SIZE: number;
52
+ SIGNATURE: number;
53
+ VOL_NUM: number;
54
+ VOLDIR_START: number;
55
+ VOL_ENTRIES: number;
56
+ TOTAL_ENTRIES: number;
57
+ CENTRAL_DIR_SIZE: number;
58
+ CENTRAL_DIR_OFFSET: number;
59
+ ZIP_COMMENT_LEN: number;
60
+ };
61
+ export declare const ZIP64_CENTRAL_DIR: {
62
+ SIGNATURE: number;
63
+ SIZE: number;
64
+ LEAD: number;
65
+ SIZE_FIELD: number;
66
+ VER_MADEBY: number;
67
+ VER_NEEDED: number;
68
+ VOL_NUM: number;
69
+ VOLDIR_START: number;
70
+ VOL_ENTRIES: number;
71
+ TOTAL_ENTRIES: number;
72
+ CENTRAL_DIR_SIZE: number;
73
+ CENTRAL_DIR_OFFSET: number;
74
+ EXTRA_FIELD: number;
75
+ };
76
+ export declare const ZIP64_CENTRAL_END: {
77
+ SIZE: number;
78
+ SIGNATURE: number;
79
+ VOL_NUM: number;
80
+ CENTRAL_DIR_OFFSET: number;
81
+ TOTAL_DISKS: number;
82
+ };
83
+ export declare const CMP_METHOD: {
84
+ STORED: number;
85
+ SHRUNK: number;
86
+ REDUCED1: number;
87
+ REDUCED2: number;
88
+ REDUCED3: number;
89
+ REDUCED4: number;
90
+ IMPLODED: number;
91
+ DEFLATED: number;
92
+ ENHANCED_DEFLATE: number;
93
+ BZIP2: number;
94
+ LZMA: number;
95
+ IBM_TERSE: number;
96
+ IBM_LZ77: number;
97
+ ZSTD: number;
98
+ AES_ENCRYPT: number;
99
+ };
100
+ export declare const GP_FLAG: {
101
+ ENCRYPTED: number;
102
+ COMPRESSION1: number;
103
+ COMPRESSION2: number;
104
+ DATA_DESC: number;
105
+ ENHANCED_DEFLATE: number;
106
+ PATCHED: number;
107
+ STRONG_ENCRYPT: number;
108
+ EFS: number;
109
+ MASK: number;
110
+ };
111
+ export declare const EXTENSIBLE_DATA_FIELDS: {
112
+ ID: number;
113
+ SIZE: number;
114
+ };
115
+ export declare const HDR_ID: {
116
+ ZIP64: number;
117
+ AVINFO: number;
118
+ PFS: number;
119
+ OS2: number;
120
+ NTFS: number;
121
+ OPENVMS: number;
122
+ UNIX: number;
123
+ FORK: number;
124
+ PATCH: number;
125
+ x509PKCS7: number;
126
+ x509CERT_IDF: number;
127
+ x509CERT_IDC: number;
128
+ STRONG_ENC: number;
129
+ RECORD_MGT: number;
130
+ x509PKCS7RL: number;
131
+ IBM1: number;
132
+ IBM2: number;
133
+ SHA256: number;
134
+ POSZIP: number;
135
+ UNV_TIME: number;
136
+ UID_GID: number;
137
+ UNICODE_PATH: number;
138
+ SYMLINK: number;
139
+ HARDLINK: number;
140
+ };
141
+ export declare const FILE_SYSTEM: {
142
+ MSDOS: number;
143
+ AMIGA: number;
144
+ OPENVMS: number;
145
+ UNIX: number;
146
+ VM_CMS: number;
147
+ ATARI: number;
148
+ OS2: number;
149
+ MAC: number;
150
+ CP_M: number;
151
+ NTFS: number;
152
+ MVS: number;
153
+ VSE: number;
154
+ ACORN: number;
155
+ VFAT: number;
156
+ ALTMVS: number;
157
+ BEOS: number;
158
+ TANDEM: number;
159
+ OS400: number;
160
+ DARWIN: number;
161
+ };
162
+ export declare const DOS_FILE_ATTR: {
163
+ READONLY: number;
164
+ HIDDEN: number;
165
+ SYSTEM: number;
166
+ VOLUME: number;
167
+ DIRECTORY: number;
168
+ ARCHIVE: number;
169
+ };
170
+ //# sourceMappingURL=Headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Headers.d.ts","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,mBAAe,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAe,CAAC;AAChD,eAAO,MAAM,qBAAqB,mBAAe,CAAC;AAClD,eAAO,MAAM,+BAA+B,mBAAe,CAAC;AAC5D,eAAO,MAAM,2BAA2B,mBAAe,CAAC;AACxD,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAGxD,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYrB,CAAC;AACF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBvB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;CAUvB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBtB,CAAC;AAGF,eAAO,MAAM,OAAO;;;;;;;;;;CAcnB,CAAC;AAGF,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC;AAGF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;CAoBvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ // ======================================
3
+ // Headers.ts
4
+ // Copyright (c) 2024 NeoWare, Inc. All rights reserved.
5
+ // ======================================
6
+ // Zip File Format Constants
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DOS_FILE_ATTR = exports.FILE_SYSTEM = exports.HDR_ID = exports.EXTENSIBLE_DATA_FIELDS = exports.GP_FLAG = exports.CMP_METHOD = exports.ZIP64_CENTRAL_END = exports.ZIP64_CENTRAL_DIR = exports.CENTRAL_END = exports.CENTRAL_DIR = exports.DATA_DESC = exports.ENCRYPT_HDR_SIZE = exports.LOCAL_HDR = exports.TOKENIZED_METADATA = exports.TIMESTAMP_METADATA = exports.TIMESTAMP_SUBMITTED = exports.DATA_DESCRIPTOR = exports.ZIP64_CENTRAL_DIRECTORY_END = exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = exports.CENTRAL_DIRECTORY_END = exports.CENTRAL_FILE_HEADER = exports.LOCAL_FILE_HEADER = void 0;
9
+ exports.LOCAL_FILE_HEADER = 'PK\x03\x04';
10
+ exports.CENTRAL_FILE_HEADER = 'PK\x01\x02';
11
+ exports.CENTRAL_DIRECTORY_END = 'PK\x05\x06';
12
+ exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = 'PK\x06\x07';
13
+ exports.ZIP64_CENTRAL_DIRECTORY_END = 'PK\x06\x06';
14
+ exports.DATA_DESCRIPTOR = 'PK\x07\x08';
15
+ exports.TIMESTAMP_SUBMITTED = 'META-INF/TS-SUBMIT.OTS';
16
+ exports.TIMESTAMP_METADATA = 'META-INF/TIMESTAMP.OTS';
17
+ exports.TOKENIZED_METADATA = 'META-INF/NZIP.TOKEN';
18
+ // Local file header
19
+ exports.LOCAL_HDR = {
20
+ SIZE: 30, // LOC header size in bytes
21
+ SIGNATURE: 0x04034b50, // "PK\003\004"
22
+ VER_EXTRACT: 4, // version needed to extract
23
+ FLAGS: 6, // general purpose bit flag
24
+ COMPRESSION: 8, // compression method
25
+ TIMEDATE_DOS: 10, // modification time (2 bytes time, 2 bytes date)
26
+ CRC: 14, // uncompressed file crc-32 value
27
+ CMP_SIZE: 18, // compressed size
28
+ UNCMP_SIZE: 22, // uncompressed size
29
+ FNAME_LEN: 26, // filename length
30
+ EXTRA_LEN: 28 // extra field length
31
+ };
32
+ exports.ENCRYPT_HDR_SIZE = 12;
33
+ // Data descriptor
34
+ exports.DATA_DESC = {
35
+ SIGNATURE: 0x08074b50, // "PK\007\008"
36
+ SIZE: 16, // EXT header size in bytes
37
+ CRC: 4, // uncompressed file crc-32 value (offset)
38
+ CMP_SIZE: 8, // compressed size (offset)
39
+ UNCMP_SIZE: 12 // uncompressed size
40
+ };
41
+ // The central directory file header
42
+ exports.CENTRAL_DIR = {
43
+ SIZE: 46, // Central directory header size
44
+ SIGNATURE: 0x02014b50, // "PK\001\002"
45
+ VER_MADE: 4, // version made by
46
+ VER_EXT: 6, // version needed to extract
47
+ FLAGS: 8, // encrypt, decrypt flags
48
+ CMP_METHOD: 10, // compression method
49
+ TIMEDATE_DOS: 12, // DOS modification time (2 bytes time, 2 bytes date)
50
+ CRC: 16, // uncompressed file crc-32 value
51
+ CMP_SIZE: 20, // compressed size
52
+ UNCMP_SIZE: 24, // uncompressed size
53
+ FNAME_LEN: 28, // filename length
54
+ EXTRA_LEN: 30, // extra field length
55
+ COMMENT_LEN: 32, // file comment length
56
+ DISK_NUM: 34, // volume number start
57
+ INT_FILE_ATTR: 36, // internal file attributes
58
+ EXT_FILE_ATTR: 38, // external file attributes (host system dependent)
59
+ LOCAL_HDR_OFFSET: 42 // LOC header offset
60
+ };
61
+ // The Zip central directory Locator
62
+ exports.CENTRAL_END = {
63
+ SIZE: 22, // END header size
64
+ SIGNATURE: 0x06054b50, // "PK\005\006"
65
+ VOL_NUM: 4, // number of this disk
66
+ VOLDIR_START: 6, // number of the volume/disk with start of the Central Directory
67
+ VOL_ENTRIES: 8, // number of entries on this volume/disk
68
+ TOTAL_ENTRIES: 10, // total number of entries on this disk
69
+ CENTRAL_DIR_SIZE: 12, // central directory size in bytes
70
+ CENTRAL_DIR_OFFSET: 16, // offset of first CEN header
71
+ ZIP_COMMENT_LEN: 20 // zip file comment length
72
+ };
73
+ // Zip64 Central Directory Entry
74
+ exports.ZIP64_CENTRAL_DIR = {
75
+ SIGNATURE: 0x06064b50, // zip64 signature, "PK\006\006"
76
+ SIZE: 56, // zip64 record minimum size
77
+ LEAD: 12, // leading bytes at the start of the record, not counted by the value stored in ZIP64SIZE
78
+ SIZE_FIELD: 4, // zip64 size of the central directory record
79
+ VER_MADEBY: 12, // zip64 version made by
80
+ VER_NEEDED: 14, // zip64 version needed to extract
81
+ VOL_NUM: 16, // zip64 number of this disk
82
+ VOLDIR_START: 20, // number of the disk with the start of the record directory
83
+ VOL_ENTRIES: 24, // number of entries on this disk
84
+ TOTAL_ENTRIES: 32, // total number of entries
85
+ CENTRAL_DIR_SIZE: 40, // zip64 central directory size in bytes
86
+ CENTRAL_DIR_OFFSET: 48, // offset of start of central directory with respect to the starting disk number
87
+ EXTRA_FIELD: 56 // extensible data sector
88
+ };
89
+ // Zip64 Central directory locator
90
+ exports.ZIP64_CENTRAL_END = {
91
+ SIZE: 20, // zip64 END header size
92
+ SIGNATURE: 0x07064b50, // zip64 Locator signature, "PK\006\007"
93
+ VOL_NUM: 4, // number of the disk with the start of the zip64
94
+ CENTRAL_DIR_OFFSET: 8, // relative offset of the zip64 end of central directory
95
+ TOTAL_DISKS: 16 // total number of disks
96
+ };
97
+ // Compression methods
98
+ exports.CMP_METHOD = {
99
+ STORED: 0, // no compression
100
+ SHRUNK: 1, // shrunk
101
+ REDUCED1: 2, // reduced with compression factor 1
102
+ REDUCED2: 3, // reduced with compression factor 2
103
+ REDUCED3: 4, // reduced with compression factor 3
104
+ REDUCED4: 5, // reduced with compression factor 4
105
+ IMPLODED: 6, // imploded
106
+ DEFLATED: 8, // deflated
107
+ ENHANCED_DEFLATE: 9, // enhanced deflated
108
+ BZIP2: 12, // compressed using BZIP2
109
+ LZMA: 14, // LZMA
110
+ IBM_TERSE: 18, // compressed using IBM TERSE
111
+ IBM_LZ77: 19, // IBM LZ77
112
+ ZSTD: 93, // Zstandard compression
113
+ AES_ENCRYPT: 99 // WinZIP AES encryption method
114
+ };
115
+ // General purpose bit flag
116
+ exports.GP_FLAG = {
117
+ ENCRYPTED: 1, // Bit 0: encrypted file
118
+ COMPRESSION1: 2, // Bit 1, compression option
119
+ COMPRESSION2: 4, // Bit 2, compression option
120
+ DATA_DESC: 8, // Bit 3, data descriptor
121
+ ENHANCED_DEFLATE: 16, // Bit 4, enhanced deflating
122
+ PATCHED: 32, // Bit 5, indicates that the file is compressed patched data.
123
+ STRONG_ENCRYPT: 64, // Bit 6, strong encryption (patented)
124
+ // Bits 7-10: Currently unused.
125
+ EFS: 2048, // Bit 11: Language encoding flag (EFS)
126
+ // Bit 12: Reserved by PKWARE for enhanced compression.
127
+ // Bit 13: encrypted the Central Directory (patented).
128
+ // Bits 14-15: Reserved by PKWARE.
129
+ MASK: 4096, // mask header values
130
+ };
131
+ // 4.5 Extensible data fields
132
+ exports.EXTENSIBLE_DATA_FIELDS = {
133
+ ID: 0,
134
+ SIZE: 2,
135
+ };
136
+ // Header IDs
137
+ exports.HDR_ID = {
138
+ ZIP64: 0x0001, // ZIP64 Extended Information Extra Field
139
+ AVINFO: 0x0007, // AV Info
140
+ PFS: 0x0008, // PFS Extra Field
141
+ OS2: 0x0009, // OS/2 Extra Field
142
+ NTFS: 0x000a, // NTFS Extra Field
143
+ OPENVMS: 0x000c, // OpenVMS Extra Field
144
+ UNIX: 0x000d, // Unix Extra Field
145
+ FORK: 0x000e, // Fork Data Extra Field
146
+ PATCH: 0x000f, // Patch Descriptor Extra Field
147
+ x509PKCS7: 0x0014, // X.509 Certificate Store (PKCS#7)
148
+ x509CERT_IDF: 0x0015, // X.509 Certificate ID and Fingerprint
149
+ x509CERT_IDC: 0x0016, // X.509 Certificate ID and Certificate
150
+ STRONG_ENC: 0x0017, // Strong Encryption Header
151
+ RECORD_MGT: 0x0018, // Record Management Controls
152
+ x509PKCS7RL: 0x0019, // X.509 Certificate Revocation List (PKCS#7)
153
+ IBM1: 0x0065, // IBM S/390 (Z390) - Attribute
154
+ IBM2: 0x0066, // IBM S/390 (Z390) - Attribute
155
+ SHA256: 0x014E, // SHA256 "N\01" with 64 bytes (256 bit) of SHA256 hash data
156
+ POSZIP: 0x4690, // POSZIP 4690
157
+ UNV_TIME: 0x5455, // Universal Time (UT) (32-bit) 5 data bytes
158
+ UID_GID: 0x7875, // Unix UID/GID (any size)
159
+ UNICODE_PATH: 0x7075, // Info-ZIP Unicode Path Extra Field
160
+ SYMLINK: 0x7855, // Unix Symbolic Link Extra Field
161
+ HARDLINK: 0x7865, // Unix Hard Link Extra Field
162
+ };
163
+ // File System
164
+ exports.FILE_SYSTEM = {
165
+ MSDOS: 0, // MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)
166
+ AMIGA: 1, // Amiga
167
+ OPENVMS: 2, // OpenVMS
168
+ UNIX: 3, // UNIX
169
+ VM_CMS: 4, // VM/CMS
170
+ ATARI: 5, // Atari ST
171
+ OS2: 6, // OS/2 H.P.F.S.
172
+ MAC: 7, // Macintosh
173
+ CP_M: 9, // CP/M
174
+ NTFS: 10, // Windows NTFS
175
+ MVS: 11, // MVS (OS/390 - Z/OS)
176
+ VSE: 12, // VSE
177
+ ACORN: 13, // Acorn Risc
178
+ VFAT: 14, // VFAT
179
+ ALTMVS: 15, // Alternate MVS
180
+ BEOS: 16, // BeOS
181
+ TANDEM: 17, // Tandem
182
+ OS400: 18, // OS/400
183
+ DARWIN: 19 // Apple OS/X (Darwin)
184
+ };
185
+ // DOS File Attributes
186
+ exports.DOS_FILE_ATTR = {
187
+ READONLY: 0x01,
188
+ HIDDEN: 0x02,
189
+ SYSTEM: 0x04,
190
+ VOLUME: 0x08,
191
+ DIRECTORY: 0x10,
192
+ ARCHIVE: 0x20
193
+ };
194
+ //# sourceMappingURL=Headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Encryption Manager for NeoZipKit
3
+ * Manages different encryption providers and provides a unified interface
4
+ */
5
+ import { EncryptionProvider, EncryptionOptions, EncryptionResult, DecryptionResult, EncryptionMethod } from './types';
6
+ export declare class EncryptionManager {
7
+ private providers;
8
+ constructor();
9
+ /**
10
+ * Register a new encryption provider
11
+ */
12
+ registerProvider(provider: EncryptionProvider): void;
13
+ /**
14
+ * Get available encryption methods
15
+ */
16
+ getAvailableMethods(): EncryptionMethod[];
17
+ /**
18
+ * Get encryption provider for a specific method
19
+ */
20
+ getProvider(method: EncryptionMethod): EncryptionProvider | null;
21
+ /**
22
+ * Encrypt data using specified method
23
+ */
24
+ encrypt(data: Buffer, options: EncryptionOptions): Promise<EncryptionResult>;
25
+ /**
26
+ * Decrypt data using specified method
27
+ */
28
+ decrypt(data: Buffer, options: EncryptionOptions): Promise<DecryptionResult>;
29
+ /**
30
+ * Get recommended encryption method (ZIP_CRYPTO)
31
+ */
32
+ getRecommendedMethod(): EncryptionMethod;
33
+ /**
34
+ * Validate encryption options
35
+ */
36
+ validateOptions(options: EncryptionOptions): {
37
+ isValid: boolean;
38
+ errors: string[];
39
+ };
40
+ /**
41
+ * Get encryption method info
42
+ */
43
+ getMethodInfo(method: EncryptionMethod): {
44
+ name: string;
45
+ keyLength: number;
46
+ secure: boolean;
47
+ } | null;
48
+ /**
49
+ * List all available encryption methods with their details
50
+ */
51
+ listMethods(): Array<{
52
+ method: EncryptionMethod;
53
+ name: string;
54
+ keyLength: number;
55
+ secure: boolean;
56
+ }>;
57
+ }
58
+ //# sourceMappingURL=Manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../../src/core/encryption/Manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGtH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAwD;;IAOzE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAMpD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,EAAE;IAIzC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI;IAIhE;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYlF;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYlF;;OAEG;IACH,oBAAoB,IAAI,gBAAgB;IAIxC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAqBnF;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAapG;;OAEG;IACH,WAAW,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAiBrG"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ /**
3
+ * Encryption Manager for NeoZipKit
4
+ * Manages different encryption providers and provides a unified interface
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EncryptionManager = void 0;
8
+ const types_1 = require("./types");
9
+ const ZipCrypto_1 = require("./ZipCrypto");
10
+ class EncryptionManager {
11
+ constructor() {
12
+ this.providers = new Map();
13
+ // Register default encryption providers
14
+ this.registerProvider(new ZipCrypto_1.ZipCrypto());
15
+ }
16
+ /**
17
+ * Register a new encryption provider
18
+ */
19
+ registerProvider(provider) {
20
+ if (provider.canHandle(types_1.EncryptionMethod.ZIP_CRYPTO)) {
21
+ this.providers.set(types_1.EncryptionMethod.ZIP_CRYPTO, provider);
22
+ }
23
+ }
24
+ /**
25
+ * Get available encryption methods
26
+ */
27
+ getAvailableMethods() {
28
+ return Array.from(this.providers.keys());
29
+ }
30
+ /**
31
+ * Get encryption provider for a specific method
32
+ */
33
+ getProvider(method) {
34
+ return this.providers.get(method) || null;
35
+ }
36
+ /**
37
+ * Encrypt data using specified method
38
+ */
39
+ async encrypt(data, options) {
40
+ const provider = this.getProvider(options.method);
41
+ if (!provider) {
42
+ return {
43
+ success: false,
44
+ error: `No encryption provider available for method ${options.method}`
45
+ };
46
+ }
47
+ return await provider.encrypt(data, options);
48
+ }
49
+ /**
50
+ * Decrypt data using specified method
51
+ */
52
+ async decrypt(data, options) {
53
+ const provider = this.getProvider(options.method);
54
+ if (!provider) {
55
+ return {
56
+ success: false,
57
+ error: `No decryption provider available for method ${options.method}`
58
+ };
59
+ }
60
+ return await provider.decrypt(data, options);
61
+ }
62
+ /**
63
+ * Get recommended encryption method (ZIP_CRYPTO)
64
+ */
65
+ getRecommendedMethod() {
66
+ return types_1.EncryptionMethod.ZIP_CRYPTO;
67
+ }
68
+ /**
69
+ * Validate encryption options
70
+ */
71
+ validateOptions(options) {
72
+ const errors = [];
73
+ if (!options.method) {
74
+ errors.push('Encryption method is required');
75
+ }
76
+ if (!options.password || options.password.length === 0) {
77
+ errors.push('Password is required');
78
+ }
79
+ if (options.password && options.password.length < 4) {
80
+ errors.push('Password must be at least 4 characters long');
81
+ }
82
+ return {
83
+ isValid: errors.length === 0,
84
+ errors: errors
85
+ };
86
+ }
87
+ /**
88
+ * Get encryption method info
89
+ */
90
+ getMethodInfo(method) {
91
+ const provider = this.getProvider(method);
92
+ if (!provider) {
93
+ return null;
94
+ }
95
+ return {
96
+ name: provider.getMethodName(),
97
+ keyLength: provider.getKeyLength(),
98
+ secure: false
99
+ };
100
+ }
101
+ /**
102
+ * List all available encryption methods with their details
103
+ */
104
+ listMethods() {
105
+ const methods = [];
106
+ for (const [method, provider] of this.providers) {
107
+ methods.push({
108
+ method: method,
109
+ name: provider.getMethodName(),
110
+ keyLength: provider.getKeyLength(),
111
+ secure: false
112
+ });
113
+ }
114
+ return methods.sort((a, b) => {
115
+ // Sort by name
116
+ return a.name.localeCompare(b.name);
117
+ });
118
+ }
119
+ }
120
+ exports.EncryptionManager = EncryptionManager;
121
+ //# sourceMappingURL=Manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../../src/core/encryption/Manager.ts"],"names":[],"mappings":"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"}