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.
Files changed (195) hide show
  1. package/LICENSE +14 -0
  2. package/README.md +35 -0
  3. package/node_modules/adm-zip/LICENSE +21 -0
  4. package/node_modules/adm-zip/README.md +65 -0
  5. package/node_modules/adm-zip/adm-zip.js +783 -0
  6. package/node_modules/adm-zip/headers/entryHeader.js +338 -0
  7. package/node_modules/adm-zip/headers/index.js +2 -0
  8. package/node_modules/adm-zip/headers/mainHeader.js +129 -0
  9. package/node_modules/adm-zip/methods/deflater.js +33 -0
  10. package/node_modules/adm-zip/methods/index.js +3 -0
  11. package/node_modules/adm-zip/methods/inflater.js +31 -0
  12. package/node_modules/adm-zip/methods/zipcrypto.js +170 -0
  13. package/node_modules/adm-zip/package.json +77 -0
  14. package/node_modules/adm-zip/util/constants.js +142 -0
  15. package/node_modules/adm-zip/util/errors.js +35 -0
  16. package/node_modules/adm-zip/util/fattr.js +79 -0
  17. package/node_modules/adm-zip/util/fileSystem.js +11 -0
  18. package/node_modules/adm-zip/util/index.js +4 -0
  19. package/node_modules/adm-zip/util/utils.js +246 -0
  20. package/node_modules/adm-zip/zipEntry.js +333 -0
  21. package/node_modules/adm-zip/zipFile.js +384 -0
  22. package/node_modules/asynckit/LICENSE +21 -0
  23. package/node_modules/asynckit/README.md +233 -0
  24. package/node_modules/asynckit/bench.js +76 -0
  25. package/node_modules/asynckit/index.js +6 -0
  26. package/node_modules/asynckit/lib/abort.js +29 -0
  27. package/node_modules/asynckit/lib/async.js +34 -0
  28. package/node_modules/asynckit/lib/defer.js +26 -0
  29. package/node_modules/asynckit/lib/iterate.js +75 -0
  30. package/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  31. package/node_modules/asynckit/lib/readable_parallel.js +25 -0
  32. package/node_modules/asynckit/lib/readable_serial.js +25 -0
  33. package/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  34. package/node_modules/asynckit/lib/state.js +37 -0
  35. package/node_modules/asynckit/lib/streamify.js +141 -0
  36. package/node_modules/asynckit/lib/terminator.js +29 -0
  37. package/node_modules/asynckit/package.json +91 -0
  38. package/node_modules/asynckit/parallel.js +43 -0
  39. package/node_modules/asynckit/serial.js +17 -0
  40. package/node_modules/asynckit/serialOrdered.js +75 -0
  41. package/node_modules/asynckit/stream.js +21 -0
  42. package/node_modules/axios/CHANGELOG.md +836 -0
  43. package/node_modules/axios/LICENSE +19 -0
  44. package/node_modules/axios/README.md +892 -0
  45. package/node_modules/axios/SECURITY.md +5 -0
  46. package/node_modules/axios/UPGRADE_GUIDE.md +162 -0
  47. package/node_modules/axios/dist/axios.js +2275 -0
  48. package/node_modules/axios/dist/axios.map +1 -0
  49. package/node_modules/axios/dist/axios.min.js +2 -0
  50. package/node_modules/axios/dist/axios.min.map +1 -0
  51. package/node_modules/axios/index.d.ts +206 -0
  52. package/node_modules/axios/index.js +1 -0
  53. package/node_modules/axios/lib/adapters/README.md +37 -0
  54. package/node_modules/axios/lib/adapters/http.js +363 -0
  55. package/node_modules/axios/lib/adapters/xhr.js +212 -0
  56. package/node_modules/axios/lib/axios.js +57 -0
  57. package/node_modules/axios/lib/cancel/Cancel.js +19 -0
  58. package/node_modules/axios/lib/cancel/CancelToken.js +119 -0
  59. package/node_modules/axios/lib/cancel/isCancel.js +5 -0
  60. package/node_modules/axios/lib/core/Axios.js +148 -0
  61. package/node_modules/axios/lib/core/InterceptorManager.js +54 -0
  62. package/node_modules/axios/lib/core/README.md +8 -0
  63. package/node_modules/axios/lib/core/buildFullPath.js +20 -0
  64. package/node_modules/axios/lib/core/createError.js +18 -0
  65. package/node_modules/axios/lib/core/dispatchRequest.js +87 -0
  66. package/node_modules/axios/lib/core/enhanceError.js +43 -0
  67. package/node_modules/axios/lib/core/mergeConfig.js +99 -0
  68. package/node_modules/axios/lib/core/settle.js +25 -0
  69. package/node_modules/axios/lib/core/transformData.js +22 -0
  70. package/node_modules/axios/lib/defaults.js +134 -0
  71. package/node_modules/axios/lib/env/README.md +3 -0
  72. package/node_modules/axios/lib/env/data.js +3 -0
  73. package/node_modules/axios/lib/helpers/README.md +7 -0
  74. package/node_modules/axios/lib/helpers/bind.js +11 -0
  75. package/node_modules/axios/lib/helpers/buildURL.js +70 -0
  76. package/node_modules/axios/lib/helpers/combineURLs.js +14 -0
  77. package/node_modules/axios/lib/helpers/cookies.js +53 -0
  78. package/node_modules/axios/lib/helpers/deprecatedMethod.js +24 -0
  79. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +14 -0
  80. package/node_modules/axios/lib/helpers/isAxiosError.js +11 -0
  81. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +68 -0
  82. package/node_modules/axios/lib/helpers/normalizeHeaderName.js +12 -0
  83. package/node_modules/axios/lib/helpers/parseHeaders.js +53 -0
  84. package/node_modules/axios/lib/helpers/spread.js +27 -0
  85. package/node_modules/axios/lib/helpers/validator.js +82 -0
  86. package/node_modules/axios/lib/utils.js +349 -0
  87. package/node_modules/axios/package.json +113 -0
  88. package/node_modules/axios/tsconfig.json +14 -0
  89. package/node_modules/axios/tslint.json +6 -0
  90. package/node_modules/combined-stream/License +19 -0
  91. package/node_modules/combined-stream/Readme.md +138 -0
  92. package/node_modules/combined-stream/lib/combined_stream.js +208 -0
  93. package/node_modules/combined-stream/package.json +57 -0
  94. package/node_modules/combined-stream/yarn.lock +17 -0
  95. package/node_modules/delayed-stream/.npmignore +1 -0
  96. package/node_modules/delayed-stream/License +19 -0
  97. package/node_modules/delayed-stream/Makefile +7 -0
  98. package/node_modules/delayed-stream/Readme.md +141 -0
  99. package/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  100. package/node_modules/delayed-stream/package.json +62 -0
  101. package/node_modules/follow-redirects/LICENSE +18 -0
  102. package/node_modules/follow-redirects/README.md +148 -0
  103. package/node_modules/follow-redirects/debug.js +15 -0
  104. package/node_modules/follow-redirects/http.js +1 -0
  105. package/node_modules/follow-redirects/https.js +1 -0
  106. package/node_modules/follow-redirects/index.js +569 -0
  107. package/node_modules/follow-redirects/package.json +95 -0
  108. package/node_modules/form-data/License +19 -0
  109. package/node_modules/form-data/README.md.bak +358 -0
  110. package/node_modules/form-data/Readme.md +358 -0
  111. package/node_modules/form-data/index.d.ts +62 -0
  112. package/node_modules/form-data/lib/browser.js +2 -0
  113. package/node_modules/form-data/lib/form_data.js +501 -0
  114. package/node_modules/form-data/lib/populate.js +10 -0
  115. package/node_modules/form-data/package.json +101 -0
  116. package/node_modules/mime-db/HISTORY.md +499 -0
  117. package/node_modules/mime-db/LICENSE +22 -0
  118. package/node_modules/mime-db/README.md +100 -0
  119. package/node_modules/mime-db/db.json +8471 -0
  120. package/node_modules/mime-db/index.js +11 -0
  121. package/node_modules/mime-db/package.json +102 -0
  122. package/node_modules/mime-types/HISTORY.md +388 -0
  123. package/node_modules/mime-types/LICENSE +23 -0
  124. package/node_modules/mime-types/README.md +113 -0
  125. package/node_modules/mime-types/index.js +188 -0
  126. package/node_modules/mime-types/package.json +87 -0
  127. package/node_modules/uuid/CHANGELOG.md +229 -0
  128. package/node_modules/uuid/CONTRIBUTING.md +18 -0
  129. package/node_modules/uuid/LICENSE.md +9 -0
  130. package/node_modules/uuid/README.md +505 -0
  131. package/node_modules/uuid/dist/bin/uuid +2 -0
  132. package/node_modules/uuid/dist/esm-browser/index.js +9 -0
  133. package/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  134. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  135. package/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  136. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  137. package/node_modules/uuid/dist/esm-browser/rng.js +19 -0
  138. package/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  139. package/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
  140. package/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  141. package/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  142. package/node_modules/uuid/dist/esm-browser/v35.js +64 -0
  143. package/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  144. package/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  145. package/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  146. package/node_modules/uuid/dist/esm-browser/version.js +11 -0
  147. package/node_modules/uuid/dist/esm-node/index.js +9 -0
  148. package/node_modules/uuid/dist/esm-node/md5.js +13 -0
  149. package/node_modules/uuid/dist/esm-node/nil.js +1 -0
  150. package/node_modules/uuid/dist/esm-node/parse.js +35 -0
  151. package/node_modules/uuid/dist/esm-node/regex.js +1 -0
  152. package/node_modules/uuid/dist/esm-node/rng.js +12 -0
  153. package/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  154. package/node_modules/uuid/dist/esm-node/stringify.js +29 -0
  155. package/node_modules/uuid/dist/esm-node/v1.js +95 -0
  156. package/node_modules/uuid/dist/esm-node/v3.js +4 -0
  157. package/node_modules/uuid/dist/esm-node/v35.js +64 -0
  158. package/node_modules/uuid/dist/esm-node/v4.js +24 -0
  159. package/node_modules/uuid/dist/esm-node/v5.js +4 -0
  160. package/node_modules/uuid/dist/esm-node/validate.js +7 -0
  161. package/node_modules/uuid/dist/esm-node/version.js +11 -0
  162. package/node_modules/uuid/dist/index.js +79 -0
  163. package/node_modules/uuid/dist/md5-browser.js +223 -0
  164. package/node_modules/uuid/dist/md5.js +23 -0
  165. package/node_modules/uuid/dist/nil.js +8 -0
  166. package/node_modules/uuid/dist/parse.js +45 -0
  167. package/node_modules/uuid/dist/regex.js +8 -0
  168. package/node_modules/uuid/dist/rng-browser.js +26 -0
  169. package/node_modules/uuid/dist/rng.js +24 -0
  170. package/node_modules/uuid/dist/sha1-browser.js +104 -0
  171. package/node_modules/uuid/dist/sha1.js +23 -0
  172. package/node_modules/uuid/dist/stringify.js +39 -0
  173. package/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  174. package/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
  175. package/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
  176. package/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
  177. package/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
  178. package/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
  179. package/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  180. package/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  181. package/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  182. package/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  183. package/node_modules/uuid/dist/uuid-bin.js +85 -0
  184. package/node_modules/uuid/dist/v1.js +107 -0
  185. package/node_modules/uuid/dist/v3.js +16 -0
  186. package/node_modules/uuid/dist/v35.js +78 -0
  187. package/node_modules/uuid/dist/v4.js +37 -0
  188. package/node_modules/uuid/dist/v5.js +16 -0
  189. package/node_modules/uuid/dist/validate.js +17 -0
  190. package/node_modules/uuid/dist/version.js +21 -0
  191. package/node_modules/uuid/package.json +164 -0
  192. package/node_modules/uuid/wrapper.mjs +10 -0
  193. package/package.json +32 -0
  194. package/tak-registration.html +111 -0
  195. 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,2 @@
1
+ exports.EntryHeader = require("./entryHeader");
2
+ exports.MainHeader = require("./mainHeader");
@@ -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,3 @@
1
+ exports.Deflater = require("./deflater");
2
+ exports.Inflater = require("./inflater");
3
+ exports.ZipCrypto = require("./zipcrypto");
@@ -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
+ };