node-red-contrib-tak-registration 0.1.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.
- package/LICENSE +14 -0
- package/README.md +35 -0
- package/node_modules/adm-zip/LICENSE +21 -0
- package/node_modules/adm-zip/README.md +65 -0
- package/node_modules/adm-zip/adm-zip.js +783 -0
- package/node_modules/adm-zip/headers/entryHeader.js +338 -0
- package/node_modules/adm-zip/headers/index.js +2 -0
- package/node_modules/adm-zip/headers/mainHeader.js +129 -0
- package/node_modules/adm-zip/methods/deflater.js +33 -0
- package/node_modules/adm-zip/methods/index.js +3 -0
- package/node_modules/adm-zip/methods/inflater.js +31 -0
- package/node_modules/adm-zip/methods/zipcrypto.js +170 -0
- package/node_modules/adm-zip/package.json +77 -0
- package/node_modules/adm-zip/util/constants.js +142 -0
- package/node_modules/adm-zip/util/errors.js +35 -0
- package/node_modules/adm-zip/util/fattr.js +79 -0
- package/node_modules/adm-zip/util/fileSystem.js +11 -0
- package/node_modules/adm-zip/util/index.js +4 -0
- package/node_modules/adm-zip/util/utils.js +246 -0
- package/node_modules/adm-zip/zipEntry.js +333 -0
- package/node_modules/adm-zip/zipFile.js +384 -0
- package/node_modules/asynckit/LICENSE +21 -0
- package/node_modules/asynckit/README.md +233 -0
- package/node_modules/asynckit/bench.js +76 -0
- package/node_modules/asynckit/index.js +6 -0
- package/node_modules/asynckit/lib/abort.js +29 -0
- package/node_modules/asynckit/lib/async.js +34 -0
- package/node_modules/asynckit/lib/defer.js +26 -0
- package/node_modules/asynckit/lib/iterate.js +75 -0
- package/node_modules/asynckit/lib/readable_asynckit.js +91 -0
- package/node_modules/asynckit/lib/readable_parallel.js +25 -0
- package/node_modules/asynckit/lib/readable_serial.js +25 -0
- package/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
- package/node_modules/asynckit/lib/state.js +37 -0
- package/node_modules/asynckit/lib/streamify.js +141 -0
- package/node_modules/asynckit/lib/terminator.js +29 -0
- package/node_modules/asynckit/package.json +91 -0
- package/node_modules/asynckit/parallel.js +43 -0
- package/node_modules/asynckit/serial.js +17 -0
- package/node_modules/asynckit/serialOrdered.js +75 -0
- package/node_modules/asynckit/stream.js +21 -0
- package/node_modules/axios/CHANGELOG.md +836 -0
- package/node_modules/axios/LICENSE +19 -0
- package/node_modules/axios/README.md +892 -0
- package/node_modules/axios/SECURITY.md +5 -0
- package/node_modules/axios/UPGRADE_GUIDE.md +162 -0
- package/node_modules/axios/dist/axios.js +2275 -0
- package/node_modules/axios/dist/axios.map +1 -0
- package/node_modules/axios/dist/axios.min.js +2 -0
- package/node_modules/axios/dist/axios.min.map +1 -0
- package/node_modules/axios/index.d.ts +206 -0
- package/node_modules/axios/index.js +1 -0
- package/node_modules/axios/lib/adapters/README.md +37 -0
- package/node_modules/axios/lib/adapters/http.js +363 -0
- package/node_modules/axios/lib/adapters/xhr.js +212 -0
- package/node_modules/axios/lib/axios.js +57 -0
- package/node_modules/axios/lib/cancel/Cancel.js +19 -0
- package/node_modules/axios/lib/cancel/CancelToken.js +119 -0
- package/node_modules/axios/lib/cancel/isCancel.js +5 -0
- package/node_modules/axios/lib/core/Axios.js +148 -0
- package/node_modules/axios/lib/core/InterceptorManager.js +54 -0
- package/node_modules/axios/lib/core/README.md +8 -0
- package/node_modules/axios/lib/core/buildFullPath.js +20 -0
- package/node_modules/axios/lib/core/createError.js +18 -0
- package/node_modules/axios/lib/core/dispatchRequest.js +87 -0
- package/node_modules/axios/lib/core/enhanceError.js +43 -0
- package/node_modules/axios/lib/core/mergeConfig.js +99 -0
- package/node_modules/axios/lib/core/settle.js +25 -0
- package/node_modules/axios/lib/core/transformData.js +22 -0
- package/node_modules/axios/lib/defaults.js +134 -0
- package/node_modules/axios/lib/env/README.md +3 -0
- package/node_modules/axios/lib/env/data.js +3 -0
- package/node_modules/axios/lib/helpers/README.md +7 -0
- package/node_modules/axios/lib/helpers/bind.js +11 -0
- package/node_modules/axios/lib/helpers/buildURL.js +70 -0
- package/node_modules/axios/lib/helpers/combineURLs.js +14 -0
- package/node_modules/axios/lib/helpers/cookies.js +53 -0
- package/node_modules/axios/lib/helpers/deprecatedMethod.js +24 -0
- package/node_modules/axios/lib/helpers/isAbsoluteURL.js +14 -0
- package/node_modules/axios/lib/helpers/isAxiosError.js +11 -0
- package/node_modules/axios/lib/helpers/isURLSameOrigin.js +68 -0
- package/node_modules/axios/lib/helpers/normalizeHeaderName.js +12 -0
- package/node_modules/axios/lib/helpers/parseHeaders.js +53 -0
- package/node_modules/axios/lib/helpers/spread.js +27 -0
- package/node_modules/axios/lib/helpers/validator.js +82 -0
- package/node_modules/axios/lib/utils.js +349 -0
- package/node_modules/axios/package.json +113 -0
- package/node_modules/axios/tsconfig.json +14 -0
- package/node_modules/axios/tslint.json +6 -0
- package/node_modules/combined-stream/License +19 -0
- package/node_modules/combined-stream/Readme.md +138 -0
- package/node_modules/combined-stream/lib/combined_stream.js +208 -0
- package/node_modules/combined-stream/package.json +57 -0
- package/node_modules/combined-stream/yarn.lock +17 -0
- package/node_modules/delayed-stream/.npmignore +1 -0
- package/node_modules/delayed-stream/License +19 -0
- package/node_modules/delayed-stream/Makefile +7 -0
- package/node_modules/delayed-stream/Readme.md +141 -0
- package/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
- package/node_modules/delayed-stream/package.json +62 -0
- package/node_modules/follow-redirects/LICENSE +18 -0
- package/node_modules/follow-redirects/README.md +148 -0
- package/node_modules/follow-redirects/debug.js +15 -0
- package/node_modules/follow-redirects/http.js +1 -0
- package/node_modules/follow-redirects/https.js +1 -0
- package/node_modules/follow-redirects/index.js +569 -0
- package/node_modules/follow-redirects/package.json +95 -0
- package/node_modules/form-data/License +19 -0
- package/node_modules/form-data/README.md.bak +358 -0
- package/node_modules/form-data/Readme.md +358 -0
- package/node_modules/form-data/index.d.ts +62 -0
- package/node_modules/form-data/lib/browser.js +2 -0
- package/node_modules/form-data/lib/form_data.js +501 -0
- package/node_modules/form-data/lib/populate.js +10 -0
- package/node_modules/form-data/package.json +101 -0
- package/node_modules/mime-db/HISTORY.md +499 -0
- package/node_modules/mime-db/LICENSE +22 -0
- package/node_modules/mime-db/README.md +100 -0
- package/node_modules/mime-db/db.json +8471 -0
- package/node_modules/mime-db/index.js +11 -0
- package/node_modules/mime-db/package.json +102 -0
- package/node_modules/mime-types/HISTORY.md +388 -0
- package/node_modules/mime-types/LICENSE +23 -0
- package/node_modules/mime-types/README.md +113 -0
- package/node_modules/mime-types/index.js +188 -0
- package/node_modules/mime-types/package.json +87 -0
- package/node_modules/uuid/CHANGELOG.md +229 -0
- package/node_modules/uuid/CONTRIBUTING.md +18 -0
- package/node_modules/uuid/LICENSE.md +9 -0
- package/node_modules/uuid/README.md +505 -0
- package/node_modules/uuid/dist/bin/uuid +2 -0
- package/node_modules/uuid/dist/esm-browser/index.js +9 -0
- package/node_modules/uuid/dist/esm-browser/md5.js +215 -0
- package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
- package/node_modules/uuid/dist/esm-browser/parse.js +35 -0
- package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.js +19 -0
- package/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
- package/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
- package/node_modules/uuid/dist/esm-browser/v1.js +95 -0
- package/node_modules/uuid/dist/esm-browser/v3.js +4 -0
- package/node_modules/uuid/dist/esm-browser/v35.js +64 -0
- package/node_modules/uuid/dist/esm-browser/v4.js +24 -0
- package/node_modules/uuid/dist/esm-browser/v5.js +4 -0
- package/node_modules/uuid/dist/esm-browser/validate.js +7 -0
- package/node_modules/uuid/dist/esm-browser/version.js +11 -0
- package/node_modules/uuid/dist/esm-node/index.js +9 -0
- package/node_modules/uuid/dist/esm-node/md5.js +13 -0
- package/node_modules/uuid/dist/esm-node/nil.js +1 -0
- package/node_modules/uuid/dist/esm-node/parse.js +35 -0
- package/node_modules/uuid/dist/esm-node/regex.js +1 -0
- package/node_modules/uuid/dist/esm-node/rng.js +12 -0
- package/node_modules/uuid/dist/esm-node/sha1.js +13 -0
- package/node_modules/uuid/dist/esm-node/stringify.js +29 -0
- package/node_modules/uuid/dist/esm-node/v1.js +95 -0
- package/node_modules/uuid/dist/esm-node/v3.js +4 -0
- package/node_modules/uuid/dist/esm-node/v35.js +64 -0
- package/node_modules/uuid/dist/esm-node/v4.js +24 -0
- package/node_modules/uuid/dist/esm-node/v5.js +4 -0
- package/node_modules/uuid/dist/esm-node/validate.js +7 -0
- package/node_modules/uuid/dist/esm-node/version.js +11 -0
- package/node_modules/uuid/dist/index.js +79 -0
- package/node_modules/uuid/dist/md5-browser.js +223 -0
- package/node_modules/uuid/dist/md5.js +23 -0
- package/node_modules/uuid/dist/nil.js +8 -0
- package/node_modules/uuid/dist/parse.js +45 -0
- package/node_modules/uuid/dist/regex.js +8 -0
- package/node_modules/uuid/dist/rng-browser.js +26 -0
- package/node_modules/uuid/dist/rng.js +24 -0
- package/node_modules/uuid/dist/sha1-browser.js +104 -0
- package/node_modules/uuid/dist/sha1.js +23 -0
- package/node_modules/uuid/dist/stringify.js +39 -0
- package/node_modules/uuid/dist/umd/uuid.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
- package/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
- package/node_modules/uuid/dist/uuid-bin.js +85 -0
- package/node_modules/uuid/dist/v1.js +107 -0
- package/node_modules/uuid/dist/v3.js +16 -0
- package/node_modules/uuid/dist/v35.js +78 -0
- package/node_modules/uuid/dist/v4.js +37 -0
- package/node_modules/uuid/dist/v5.js +16 -0
- package/node_modules/uuid/dist/validate.js +17 -0
- package/node_modules/uuid/dist/version.js +21 -0
- package/node_modules/uuid/package.json +164 -0
- package/node_modules/uuid/wrapper.mjs +10 -0
- package/package.json +32 -0
- package/tak-registration.html +111 -0
- package/tak-registration.js +169 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
var Utils = require("../util"),
|
|
2
|
+
Constants = Utils.Constants;
|
|
3
|
+
|
|
4
|
+
/* The central directory file header */
|
|
5
|
+
module.exports = function () {
|
|
6
|
+
var _verMade = 20, // v2.0
|
|
7
|
+
_version = 10, // v1.0
|
|
8
|
+
_flags = 0,
|
|
9
|
+
_method = 0,
|
|
10
|
+
_time = 0,
|
|
11
|
+
_crc = 0,
|
|
12
|
+
_compressedSize = 0,
|
|
13
|
+
_size = 0,
|
|
14
|
+
_fnameLen = 0,
|
|
15
|
+
_extraLen = 0,
|
|
16
|
+
_comLen = 0,
|
|
17
|
+
_diskStart = 0,
|
|
18
|
+
_inattr = 0,
|
|
19
|
+
_attr = 0,
|
|
20
|
+
_offset = 0;
|
|
21
|
+
|
|
22
|
+
_verMade |= Utils.isWin ? 0x0a00 : 0x0300;
|
|
23
|
+
|
|
24
|
+
// Set EFS flag since filename and comment fields are all by default encoded using UTF-8.
|
|
25
|
+
// Without it file names may be corrupted for other apps when file names use unicode chars
|
|
26
|
+
_flags |= Constants.FLG_EFS;
|
|
27
|
+
|
|
28
|
+
var _dataHeader = {};
|
|
29
|
+
|
|
30
|
+
function setTime(val) {
|
|
31
|
+
val = new Date(val);
|
|
32
|
+
_time =
|
|
33
|
+
(((val.getFullYear() - 1980) & 0x7f) << 25) | // b09-16 years from 1980
|
|
34
|
+
((val.getMonth() + 1) << 21) | // b05-08 month
|
|
35
|
+
(val.getDate() << 16) | // b00-04 hour
|
|
36
|
+
// 2 bytes time
|
|
37
|
+
(val.getHours() << 11) | // b11-15 hour
|
|
38
|
+
(val.getMinutes() << 5) | // b05-10 minute
|
|
39
|
+
(val.getSeconds() >> 1); // b00-04 seconds divided by 2
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
setTime(+new Date());
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
get made() {
|
|
46
|
+
return _verMade;
|
|
47
|
+
},
|
|
48
|
+
set made(val) {
|
|
49
|
+
_verMade = val;
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
get version() {
|
|
53
|
+
return _version;
|
|
54
|
+
},
|
|
55
|
+
set version(val) {
|
|
56
|
+
_version = val;
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
get flags() {
|
|
60
|
+
return _flags;
|
|
61
|
+
},
|
|
62
|
+
set flags(val) {
|
|
63
|
+
_flags = val;
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
get method() {
|
|
67
|
+
return _method;
|
|
68
|
+
},
|
|
69
|
+
set method(val) {
|
|
70
|
+
switch (val) {
|
|
71
|
+
case Constants.STORED:
|
|
72
|
+
this.version = 10;
|
|
73
|
+
case Constants.DEFLATED:
|
|
74
|
+
default:
|
|
75
|
+
this.version = 20;
|
|
76
|
+
}
|
|
77
|
+
_method = val;
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
get time() {
|
|
81
|
+
return new Date(((_time >> 25) & 0x7f) + 1980, ((_time >> 21) & 0x0f) - 1, (_time >> 16) & 0x1f, (_time >> 11) & 0x1f, (_time >> 5) & 0x3f, (_time & 0x1f) << 1);
|
|
82
|
+
},
|
|
83
|
+
set time(val) {
|
|
84
|
+
setTime(val);
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
get crc() {
|
|
88
|
+
return _crc;
|
|
89
|
+
},
|
|
90
|
+
set crc(val) {
|
|
91
|
+
_crc = Math.max(0, val) >>> 0;
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
get compressedSize() {
|
|
95
|
+
return _compressedSize;
|
|
96
|
+
},
|
|
97
|
+
set compressedSize(val) {
|
|
98
|
+
_compressedSize = Math.max(0, val) >>> 0;
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
get size() {
|
|
102
|
+
return _size;
|
|
103
|
+
},
|
|
104
|
+
set size(val) {
|
|
105
|
+
_size = Math.max(0, val) >>> 0;
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
get fileNameLength() {
|
|
109
|
+
return _fnameLen;
|
|
110
|
+
},
|
|
111
|
+
set fileNameLength(val) {
|
|
112
|
+
_fnameLen = val;
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
get extraLength() {
|
|
116
|
+
return _extraLen;
|
|
117
|
+
},
|
|
118
|
+
set extraLength(val) {
|
|
119
|
+
_extraLen = val;
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
get commentLength() {
|
|
123
|
+
return _comLen;
|
|
124
|
+
},
|
|
125
|
+
set commentLength(val) {
|
|
126
|
+
_comLen = val;
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
get diskNumStart() {
|
|
130
|
+
return _diskStart;
|
|
131
|
+
},
|
|
132
|
+
set diskNumStart(val) {
|
|
133
|
+
_diskStart = Math.max(0, val) >>> 0;
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
get inAttr() {
|
|
137
|
+
return _inattr;
|
|
138
|
+
},
|
|
139
|
+
set inAttr(val) {
|
|
140
|
+
_inattr = Math.max(0, val) >>> 0;
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
get attr() {
|
|
144
|
+
return _attr;
|
|
145
|
+
},
|
|
146
|
+
set attr(val) {
|
|
147
|
+
_attr = Math.max(0, val) >>> 0;
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
// get Unix file permissions
|
|
151
|
+
get fileAttr() {
|
|
152
|
+
return _attr ? (((_attr >>> 0) | 0) >> 16) & 0xfff : 0;
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
get offset() {
|
|
156
|
+
return _offset;
|
|
157
|
+
},
|
|
158
|
+
set offset(val) {
|
|
159
|
+
_offset = Math.max(0, val) >>> 0;
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
get encripted() {
|
|
163
|
+
return (_flags & 1) === 1;
|
|
164
|
+
},
|
|
165
|
+
|
|
166
|
+
get entryHeaderSize() {
|
|
167
|
+
return Constants.CENHDR + _fnameLen + _extraLen + _comLen;
|
|
168
|
+
},
|
|
169
|
+
|
|
170
|
+
get realDataOffset() {
|
|
171
|
+
return _offset + Constants.LOCHDR + _dataHeader.fnameLen + _dataHeader.extraLen;
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
get dataHeader() {
|
|
175
|
+
return _dataHeader;
|
|
176
|
+
},
|
|
177
|
+
|
|
178
|
+
loadDataHeaderFromBinary: function (/*Buffer*/ input) {
|
|
179
|
+
var data = input.slice(_offset, _offset + Constants.LOCHDR);
|
|
180
|
+
// 30 bytes and should start with "PK\003\004"
|
|
181
|
+
if (data.readUInt32LE(0) !== Constants.LOCSIG) {
|
|
182
|
+
throw new Error(Utils.Errors.INVALID_LOC);
|
|
183
|
+
}
|
|
184
|
+
_dataHeader = {
|
|
185
|
+
// version needed to extract
|
|
186
|
+
version: data.readUInt16LE(Constants.LOCVER),
|
|
187
|
+
// general purpose bit flag
|
|
188
|
+
flags: data.readUInt16LE(Constants.LOCFLG),
|
|
189
|
+
// compression method
|
|
190
|
+
method: data.readUInt16LE(Constants.LOCHOW),
|
|
191
|
+
// modification time (2 bytes time, 2 bytes date)
|
|
192
|
+
time: data.readUInt32LE(Constants.LOCTIM),
|
|
193
|
+
// uncompressed file crc-32 value
|
|
194
|
+
crc: data.readUInt32LE(Constants.LOCCRC),
|
|
195
|
+
// compressed size
|
|
196
|
+
compressedSize: data.readUInt32LE(Constants.LOCSIZ),
|
|
197
|
+
// uncompressed size
|
|
198
|
+
size: data.readUInt32LE(Constants.LOCLEN),
|
|
199
|
+
// filename length
|
|
200
|
+
fnameLen: data.readUInt16LE(Constants.LOCNAM),
|
|
201
|
+
// extra field length
|
|
202
|
+
extraLen: data.readUInt16LE(Constants.LOCEXT)
|
|
203
|
+
};
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
loadFromBinary: function (/*Buffer*/ data) {
|
|
207
|
+
// data should be 46 bytes and start with "PK 01 02"
|
|
208
|
+
if (data.length !== Constants.CENHDR || data.readUInt32LE(0) !== Constants.CENSIG) {
|
|
209
|
+
throw new Error(Utils.Errors.INVALID_CEN);
|
|
210
|
+
}
|
|
211
|
+
// version made by
|
|
212
|
+
_verMade = data.readUInt16LE(Constants.CENVEM);
|
|
213
|
+
// version needed to extract
|
|
214
|
+
_version = data.readUInt16LE(Constants.CENVER);
|
|
215
|
+
// encrypt, decrypt flags
|
|
216
|
+
_flags = data.readUInt16LE(Constants.CENFLG);
|
|
217
|
+
// compression method
|
|
218
|
+
_method = data.readUInt16LE(Constants.CENHOW);
|
|
219
|
+
// modification time (2 bytes time, 2 bytes date)
|
|
220
|
+
_time = data.readUInt32LE(Constants.CENTIM);
|
|
221
|
+
// uncompressed file crc-32 value
|
|
222
|
+
_crc = data.readUInt32LE(Constants.CENCRC);
|
|
223
|
+
// compressed size
|
|
224
|
+
_compressedSize = data.readUInt32LE(Constants.CENSIZ);
|
|
225
|
+
// uncompressed size
|
|
226
|
+
_size = data.readUInt32LE(Constants.CENLEN);
|
|
227
|
+
// filename length
|
|
228
|
+
_fnameLen = data.readUInt16LE(Constants.CENNAM);
|
|
229
|
+
// extra field length
|
|
230
|
+
_extraLen = data.readUInt16LE(Constants.CENEXT);
|
|
231
|
+
// file comment length
|
|
232
|
+
_comLen = data.readUInt16LE(Constants.CENCOM);
|
|
233
|
+
// volume number start
|
|
234
|
+
_diskStart = data.readUInt16LE(Constants.CENDSK);
|
|
235
|
+
// internal file attributes
|
|
236
|
+
_inattr = data.readUInt16LE(Constants.CENATT);
|
|
237
|
+
// external file attributes
|
|
238
|
+
_attr = data.readUInt32LE(Constants.CENATX);
|
|
239
|
+
// LOC header offset
|
|
240
|
+
_offset = data.readUInt32LE(Constants.CENOFF);
|
|
241
|
+
},
|
|
242
|
+
|
|
243
|
+
dataHeaderToBinary: function () {
|
|
244
|
+
// LOC header size (30 bytes)
|
|
245
|
+
var data = Buffer.alloc(Constants.LOCHDR);
|
|
246
|
+
// "PK\003\004"
|
|
247
|
+
data.writeUInt32LE(Constants.LOCSIG, 0);
|
|
248
|
+
// version needed to extract
|
|
249
|
+
data.writeUInt16LE(_version, Constants.LOCVER);
|
|
250
|
+
// general purpose bit flag
|
|
251
|
+
data.writeUInt16LE(_flags, Constants.LOCFLG);
|
|
252
|
+
// compression method
|
|
253
|
+
data.writeUInt16LE(_method, Constants.LOCHOW);
|
|
254
|
+
// modification time (2 bytes time, 2 bytes date)
|
|
255
|
+
data.writeUInt32LE(_time, Constants.LOCTIM);
|
|
256
|
+
// uncompressed file crc-32 value
|
|
257
|
+
data.writeUInt32LE(_crc, Constants.LOCCRC);
|
|
258
|
+
// compressed size
|
|
259
|
+
data.writeUInt32LE(_compressedSize, Constants.LOCSIZ);
|
|
260
|
+
// uncompressed size
|
|
261
|
+
data.writeUInt32LE(_size, Constants.LOCLEN);
|
|
262
|
+
// filename length
|
|
263
|
+
data.writeUInt16LE(_fnameLen, Constants.LOCNAM);
|
|
264
|
+
// extra field length
|
|
265
|
+
data.writeUInt16LE(_extraLen, Constants.LOCEXT);
|
|
266
|
+
return data;
|
|
267
|
+
},
|
|
268
|
+
|
|
269
|
+
entryHeaderToBinary: function () {
|
|
270
|
+
// CEN header size (46 bytes)
|
|
271
|
+
var data = Buffer.alloc(Constants.CENHDR + _fnameLen + _extraLen + _comLen);
|
|
272
|
+
// "PK\001\002"
|
|
273
|
+
data.writeUInt32LE(Constants.CENSIG, 0);
|
|
274
|
+
// version made by
|
|
275
|
+
data.writeUInt16LE(_verMade, Constants.CENVEM);
|
|
276
|
+
// version needed to extract
|
|
277
|
+
data.writeUInt16LE(_version, Constants.CENVER);
|
|
278
|
+
// encrypt, decrypt flags
|
|
279
|
+
data.writeUInt16LE(_flags, Constants.CENFLG);
|
|
280
|
+
// compression method
|
|
281
|
+
data.writeUInt16LE(_method, Constants.CENHOW);
|
|
282
|
+
// modification time (2 bytes time, 2 bytes date)
|
|
283
|
+
data.writeUInt32LE(_time, Constants.CENTIM);
|
|
284
|
+
// uncompressed file crc-32 value
|
|
285
|
+
data.writeUInt32LE(_crc, Constants.CENCRC);
|
|
286
|
+
// compressed size
|
|
287
|
+
data.writeUInt32LE(_compressedSize, Constants.CENSIZ);
|
|
288
|
+
// uncompressed size
|
|
289
|
+
data.writeUInt32LE(_size, Constants.CENLEN);
|
|
290
|
+
// filename length
|
|
291
|
+
data.writeUInt16LE(_fnameLen, Constants.CENNAM);
|
|
292
|
+
// extra field length
|
|
293
|
+
data.writeUInt16LE(_extraLen, Constants.CENEXT);
|
|
294
|
+
// file comment length
|
|
295
|
+
data.writeUInt16LE(_comLen, Constants.CENCOM);
|
|
296
|
+
// volume number start
|
|
297
|
+
data.writeUInt16LE(_diskStart, Constants.CENDSK);
|
|
298
|
+
// internal file attributes
|
|
299
|
+
data.writeUInt16LE(_inattr, Constants.CENATT);
|
|
300
|
+
// external file attributes
|
|
301
|
+
data.writeUInt32LE(_attr, Constants.CENATX);
|
|
302
|
+
// LOC header offset
|
|
303
|
+
data.writeUInt32LE(_offset, Constants.CENOFF);
|
|
304
|
+
// fill all with
|
|
305
|
+
data.fill(0x00, Constants.CENHDR);
|
|
306
|
+
return data;
|
|
307
|
+
},
|
|
308
|
+
|
|
309
|
+
toJSON: function () {
|
|
310
|
+
const bytes = function (nr) {
|
|
311
|
+
return nr + " bytes";
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
return {
|
|
315
|
+
made: _verMade,
|
|
316
|
+
version: _version,
|
|
317
|
+
flags: _flags,
|
|
318
|
+
method: Utils.methodToString(_method),
|
|
319
|
+
time: this.time,
|
|
320
|
+
crc: "0x" + _crc.toString(16).toUpperCase(),
|
|
321
|
+
compressedSize: bytes(_compressedSize),
|
|
322
|
+
size: bytes(_size),
|
|
323
|
+
fileNameLength: bytes(_fnameLen),
|
|
324
|
+
extraLength: bytes(_extraLen),
|
|
325
|
+
commentLength: bytes(_comLen),
|
|
326
|
+
diskNumStart: _diskStart,
|
|
327
|
+
inAttr: _inattr,
|
|
328
|
+
attr: _attr,
|
|
329
|
+
offset: _offset,
|
|
330
|
+
entryHeaderSize: bytes(Constants.CENHDR + _fnameLen + _extraLen + _comLen)
|
|
331
|
+
};
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
toString: function () {
|
|
335
|
+
return JSON.stringify(this.toJSON(), null, "\t");
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
var Utils = require("../util"),
|
|
2
|
+
Constants = Utils.Constants;
|
|
3
|
+
|
|
4
|
+
/* The entries in the end of central directory */
|
|
5
|
+
module.exports = function () {
|
|
6
|
+
var _volumeEntries = 0,
|
|
7
|
+
_totalEntries = 0,
|
|
8
|
+
_size = 0,
|
|
9
|
+
_offset = 0,
|
|
10
|
+
_commentLength = 0;
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
get diskEntries() {
|
|
14
|
+
return _volumeEntries;
|
|
15
|
+
},
|
|
16
|
+
set diskEntries(/*Number*/ val) {
|
|
17
|
+
_volumeEntries = _totalEntries = val;
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
get totalEntries() {
|
|
21
|
+
return _totalEntries;
|
|
22
|
+
},
|
|
23
|
+
set totalEntries(/*Number*/ val) {
|
|
24
|
+
_totalEntries = _volumeEntries = val;
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
get size() {
|
|
28
|
+
return _size;
|
|
29
|
+
},
|
|
30
|
+
set size(/*Number*/ val) {
|
|
31
|
+
_size = val;
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
get offset() {
|
|
35
|
+
return _offset;
|
|
36
|
+
},
|
|
37
|
+
set offset(/*Number*/ val) {
|
|
38
|
+
_offset = val;
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
get commentLength() {
|
|
42
|
+
return _commentLength;
|
|
43
|
+
},
|
|
44
|
+
set commentLength(/*Number*/ val) {
|
|
45
|
+
_commentLength = val;
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
get mainHeaderSize() {
|
|
49
|
+
return Constants.ENDHDR + _commentLength;
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
loadFromBinary: function (/*Buffer*/ data) {
|
|
53
|
+
// data should be 22 bytes and start with "PK 05 06"
|
|
54
|
+
// or be 56+ bytes and start with "PK 06 06" for Zip64
|
|
55
|
+
if (
|
|
56
|
+
(data.length !== Constants.ENDHDR || data.readUInt32LE(0) !== Constants.ENDSIG) &&
|
|
57
|
+
(data.length < Constants.ZIP64HDR || data.readUInt32LE(0) !== Constants.ZIP64SIG)
|
|
58
|
+
) {
|
|
59
|
+
throw new Error(Utils.Errors.INVALID_END);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (data.readUInt32LE(0) === Constants.ENDSIG) {
|
|
63
|
+
// number of entries on this volume
|
|
64
|
+
_volumeEntries = data.readUInt16LE(Constants.ENDSUB);
|
|
65
|
+
// total number of entries
|
|
66
|
+
_totalEntries = data.readUInt16LE(Constants.ENDTOT);
|
|
67
|
+
// central directory size in bytes
|
|
68
|
+
_size = data.readUInt32LE(Constants.ENDSIZ);
|
|
69
|
+
// offset of first CEN header
|
|
70
|
+
_offset = data.readUInt32LE(Constants.ENDOFF);
|
|
71
|
+
// zip file comment length
|
|
72
|
+
_commentLength = data.readUInt16LE(Constants.ENDCOM);
|
|
73
|
+
} else {
|
|
74
|
+
// number of entries on this volume
|
|
75
|
+
_volumeEntries = Utils.readBigUInt64LE(data, Constants.ZIP64SUB);
|
|
76
|
+
// total number of entries
|
|
77
|
+
_totalEntries = Utils.readBigUInt64LE(data, Constants.ZIP64TOT);
|
|
78
|
+
// central directory size in bytes
|
|
79
|
+
_size = Utils.readBigUInt64LE(data, Constants.ZIP64SIZ);
|
|
80
|
+
// offset of first CEN header
|
|
81
|
+
_offset = Utils.readBigUInt64LE(data, Constants.ZIP64OFF);
|
|
82
|
+
|
|
83
|
+
_commentLength = 0;
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
toBinary: function () {
|
|
88
|
+
var b = Buffer.alloc(Constants.ENDHDR + _commentLength);
|
|
89
|
+
// "PK 05 06" signature
|
|
90
|
+
b.writeUInt32LE(Constants.ENDSIG, 0);
|
|
91
|
+
b.writeUInt32LE(0, 4);
|
|
92
|
+
// number of entries on this volume
|
|
93
|
+
b.writeUInt16LE(_volumeEntries, Constants.ENDSUB);
|
|
94
|
+
// total number of entries
|
|
95
|
+
b.writeUInt16LE(_totalEntries, Constants.ENDTOT);
|
|
96
|
+
// central directory size in bytes
|
|
97
|
+
b.writeUInt32LE(_size, Constants.ENDSIZ);
|
|
98
|
+
// offset of first CEN header
|
|
99
|
+
b.writeUInt32LE(_offset, Constants.ENDOFF);
|
|
100
|
+
// zip file comment length
|
|
101
|
+
b.writeUInt16LE(_commentLength, Constants.ENDCOM);
|
|
102
|
+
// fill comment memory with spaces so no garbage is left there
|
|
103
|
+
b.fill(" ", Constants.ENDHDR);
|
|
104
|
+
|
|
105
|
+
return b;
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
toJSON: function () {
|
|
109
|
+
// creates 0x0000 style output
|
|
110
|
+
const offset = function (nr, len) {
|
|
111
|
+
let offs = nr.toString(16).toUpperCase();
|
|
112
|
+
while (offs.length < len) offs = "0" + offs;
|
|
113
|
+
return "0x" + offs;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
diskEntries: _volumeEntries,
|
|
118
|
+
totalEntries: _totalEntries,
|
|
119
|
+
size: _size + " bytes",
|
|
120
|
+
offset: offset(_offset, 4),
|
|
121
|
+
commentLength: _commentLength
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
toString: function () {
|
|
126
|
+
return JSON.stringify(this.toJSON(), null, "\t");
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module.exports = function (/*Buffer*/ inbuf) {
|
|
2
|
+
var zlib = require("zlib");
|
|
3
|
+
|
|
4
|
+
var opts = { chunkSize: (parseInt(inbuf.length / 1024) + 1) * 1024 };
|
|
5
|
+
|
|
6
|
+
return {
|
|
7
|
+
deflate: function () {
|
|
8
|
+
return zlib.deflateRawSync(inbuf, opts);
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
deflateAsync: function (/*Function*/ callback) {
|
|
12
|
+
var tmp = zlib.createDeflateRaw(opts),
|
|
13
|
+
parts = [],
|
|
14
|
+
total = 0;
|
|
15
|
+
tmp.on("data", function (data) {
|
|
16
|
+
parts.push(data);
|
|
17
|
+
total += data.length;
|
|
18
|
+
});
|
|
19
|
+
tmp.on("end", function () {
|
|
20
|
+
var buf = Buffer.alloc(total),
|
|
21
|
+
written = 0;
|
|
22
|
+
buf.fill(0);
|
|
23
|
+
for (var i = 0; i < parts.length; i++) {
|
|
24
|
+
var part = parts[i];
|
|
25
|
+
part.copy(buf, written);
|
|
26
|
+
written += part.length;
|
|
27
|
+
}
|
|
28
|
+
callback && callback(buf);
|
|
29
|
+
});
|
|
30
|
+
tmp.end(inbuf);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module.exports = function (/*Buffer*/ inbuf) {
|
|
2
|
+
var zlib = require("zlib");
|
|
3
|
+
|
|
4
|
+
return {
|
|
5
|
+
inflate: function () {
|
|
6
|
+
return zlib.inflateRawSync(inbuf);
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
inflateAsync: function (/*Function*/ callback) {
|
|
10
|
+
var tmp = zlib.createInflateRaw(),
|
|
11
|
+
parts = [],
|
|
12
|
+
total = 0;
|
|
13
|
+
tmp.on("data", function (data) {
|
|
14
|
+
parts.push(data);
|
|
15
|
+
total += data.length;
|
|
16
|
+
});
|
|
17
|
+
tmp.on("end", function () {
|
|
18
|
+
var buf = Buffer.alloc(total),
|
|
19
|
+
written = 0;
|
|
20
|
+
buf.fill(0);
|
|
21
|
+
for (var i = 0; i < parts.length; i++) {
|
|
22
|
+
var part = parts[i];
|
|
23
|
+
part.copy(buf, written);
|
|
24
|
+
written += part.length;
|
|
25
|
+
}
|
|
26
|
+
callback && callback(buf);
|
|
27
|
+
});
|
|
28
|
+
tmp.end(inbuf);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
};
|