styled-map-package 4.1.0 → 5.0.0-pre.1

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 (238) hide show
  1. package/README.md +47 -7
  2. package/bin/smp-download.js +27 -151
  3. package/bin/smp-mbtiles.js +12 -7
  4. package/bin/smp-view.js +32 -54
  5. package/lib/commands/download.js +188 -0
  6. package/lib/commands/mbtiles.js +21 -0
  7. package/lib/commands/view.js +57 -0
  8. package/lib/reporters.js +92 -0
  9. package/package.json +9 -181
  10. package/LICENSE.md +0 -7
  11. package/dist/download.cjs +0 -101
  12. package/dist/download.d.cts +0 -65
  13. package/dist/download.d.ts +0 -65
  14. package/dist/download.js +0 -77
  15. package/dist/from-mbtiles.cjs +0 -91
  16. package/dist/from-mbtiles.d.cts +0 -17
  17. package/dist/from-mbtiles.d.ts +0 -17
  18. package/dist/from-mbtiles.js +0 -57
  19. package/dist/index.cjs +0 -49
  20. package/dist/index.d.cts +0 -27
  21. package/dist/index.d.ts +0 -27
  22. package/dist/index.js +0 -18
  23. package/dist/reader-watch.cjs +0 -135
  24. package/dist/reader-watch.d.cts +0 -24
  25. package/dist/reader-watch.d.ts +0 -24
  26. package/dist/reader-watch.js +0 -101
  27. package/dist/reader.cjs +0 -168
  28. package/dist/reader.d.cts +0 -62
  29. package/dist/reader.d.ts +0 -62
  30. package/dist/reader.js +0 -139
  31. package/dist/reporters.cjs +0 -122
  32. package/dist/reporters.d.cts +0 -10
  33. package/dist/reporters.d.ts +0 -10
  34. package/dist/reporters.js +0 -88
  35. package/dist/server.cjs +0 -78
  36. package/dist/server.d.cts +0 -48
  37. package/dist/server.d.ts +0 -48
  38. package/dist/server.js +0 -54
  39. package/dist/style-downloader.cjs +0 -312
  40. package/dist/style-downloader.d.cts +0 -120
  41. package/dist/style-downloader.d.ts +0 -120
  42. package/dist/style-downloader.js +0 -288
  43. package/dist/tile-downloader.cjs +0 -158
  44. package/dist/tile-downloader.d.cts +0 -84
  45. package/dist/tile-downloader.d.ts +0 -84
  46. package/dist/tile-downloader.js +0 -126
  47. package/dist/types-yLQy3AKR.d.cts +0 -192
  48. package/dist/types-yLQy3AKR.d.ts +0 -192
  49. package/dist/utils/errors.cjs +0 -41
  50. package/dist/utils/errors.d.cts +0 -18
  51. package/dist/utils/errors.d.ts +0 -18
  52. package/dist/utils/errors.js +0 -16
  53. package/dist/utils/fetch.cjs +0 -96
  54. package/dist/utils/fetch.d.cts +0 -51
  55. package/dist/utils/fetch.d.ts +0 -51
  56. package/dist/utils/fetch.js +0 -62
  57. package/dist/utils/file-formats.cjs +0 -98
  58. package/dist/utils/file-formats.d.cts +0 -35
  59. package/dist/utils/file-formats.d.ts +0 -35
  60. package/dist/utils/file-formats.js +0 -62
  61. package/dist/utils/geo.cjs +0 -84
  62. package/dist/utils/geo.d.cts +0 -46
  63. package/dist/utils/geo.d.ts +0 -46
  64. package/dist/utils/geo.js +0 -56
  65. package/dist/utils/mapbox.cjs +0 -121
  66. package/dist/utils/mapbox.d.cts +0 -43
  67. package/dist/utils/mapbox.d.ts +0 -43
  68. package/dist/utils/mapbox.js +0 -91
  69. package/dist/utils/misc.cjs +0 -39
  70. package/dist/utils/misc.d.cts +0 -22
  71. package/dist/utils/misc.d.ts +0 -22
  72. package/dist/utils/misc.js +0 -13
  73. package/dist/utils/streams.cjs +0 -130
  74. package/dist/utils/streams.d.cts +0 -73
  75. package/dist/utils/streams.d.ts +0 -73
  76. package/dist/utils/streams.js +0 -103
  77. package/dist/utils/style.cjs +0 -126
  78. package/dist/utils/style.d.cts +0 -69
  79. package/dist/utils/style.d.ts +0 -69
  80. package/dist/utils/style.js +0 -98
  81. package/dist/utils/templates.cjs +0 -118
  82. package/dist/utils/templates.d.cts +0 -80
  83. package/dist/utils/templates.d.ts +0 -80
  84. package/dist/utils/templates.js +0 -81
  85. package/dist/writer.cjs +0 -449
  86. package/dist/writer.d.cts +0 -7
  87. package/dist/writer.d.ts +0 -7
  88. package/dist/writer.js +0 -424
  89. package/node_modules/@node-rs/crc32/LICENSE +0 -21
  90. package/node_modules/@node-rs/crc32/README.md +0 -61
  91. package/node_modules/@node-rs/crc32/browser.js +0 -1
  92. package/node_modules/@node-rs/crc32/index.d.ts +0 -5
  93. package/node_modules/@node-rs/crc32/index.js +0 -368
  94. package/node_modules/@node-rs/crc32/package.json +0 -97
  95. package/node_modules/@node-rs/crc32-linux-x64-gnu/README.md +0 -3
  96. package/node_modules/@node-rs/crc32-linux-x64-gnu/crc32.linux-x64-gnu.node +0 -0
  97. package/node_modules/@node-rs/crc32-linux-x64-gnu/package.json +0 -43
  98. package/node_modules/@node-rs/crc32-linux-x64-musl/README.md +0 -3
  99. package/node_modules/@node-rs/crc32-linux-x64-musl/crc32.linux-x64-musl.node +0 -0
  100. package/node_modules/@node-rs/crc32-linux-x64-musl/package.json +0 -43
  101. package/node_modules/define-data-property/.eslintrc +0 -24
  102. package/node_modules/define-data-property/.github/FUNDING.yml +0 -12
  103. package/node_modules/define-data-property/.nycrc +0 -13
  104. package/node_modules/define-data-property/CHANGELOG.md +0 -70
  105. package/node_modules/define-data-property/LICENSE +0 -21
  106. package/node_modules/define-data-property/README.md +0 -67
  107. package/node_modules/define-data-property/index.d.ts +0 -12
  108. package/node_modules/define-data-property/index.js +0 -56
  109. package/node_modules/define-data-property/package.json +0 -106
  110. package/node_modules/define-data-property/test/index.js +0 -392
  111. package/node_modules/define-data-property/tsconfig.json +0 -59
  112. package/node_modules/define-properties/.editorconfig +0 -13
  113. package/node_modules/define-properties/.eslintrc +0 -19
  114. package/node_modules/define-properties/.github/FUNDING.yml +0 -12
  115. package/node_modules/define-properties/.nycrc +0 -9
  116. package/node_modules/define-properties/CHANGELOG.md +0 -91
  117. package/node_modules/define-properties/LICENSE +0 -21
  118. package/node_modules/define-properties/README.md +0 -84
  119. package/node_modules/define-properties/index.js +0 -47
  120. package/node_modules/define-properties/package.json +0 -88
  121. package/node_modules/es-define-property/.eslintrc +0 -13
  122. package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  123. package/node_modules/es-define-property/.nycrc +0 -9
  124. package/node_modules/es-define-property/CHANGELOG.md +0 -29
  125. package/node_modules/es-define-property/LICENSE +0 -21
  126. package/node_modules/es-define-property/README.md +0 -49
  127. package/node_modules/es-define-property/index.d.ts +0 -3
  128. package/node_modules/es-define-property/index.js +0 -14
  129. package/node_modules/es-define-property/package.json +0 -81
  130. package/node_modules/es-define-property/test/index.js +0 -56
  131. package/node_modules/es-define-property/tsconfig.json +0 -10
  132. package/node_modules/es-errors/.eslintrc +0 -5
  133. package/node_modules/es-errors/.github/FUNDING.yml +0 -12
  134. package/node_modules/es-errors/CHANGELOG.md +0 -40
  135. package/node_modules/es-errors/LICENSE +0 -21
  136. package/node_modules/es-errors/README.md +0 -55
  137. package/node_modules/es-errors/eval.d.ts +0 -3
  138. package/node_modules/es-errors/eval.js +0 -4
  139. package/node_modules/es-errors/index.d.ts +0 -3
  140. package/node_modules/es-errors/index.js +0 -4
  141. package/node_modules/es-errors/package.json +0 -80
  142. package/node_modules/es-errors/range.d.ts +0 -3
  143. package/node_modules/es-errors/range.js +0 -4
  144. package/node_modules/es-errors/ref.d.ts +0 -3
  145. package/node_modules/es-errors/ref.js +0 -4
  146. package/node_modules/es-errors/syntax.d.ts +0 -3
  147. package/node_modules/es-errors/syntax.js +0 -4
  148. package/node_modules/es-errors/test/index.js +0 -19
  149. package/node_modules/es-errors/tsconfig.json +0 -49
  150. package/node_modules/es-errors/type.d.ts +0 -3
  151. package/node_modules/es-errors/type.js +0 -4
  152. package/node_modules/es-errors/uri.d.ts +0 -3
  153. package/node_modules/es-errors/uri.js +0 -4
  154. package/node_modules/globalthis/.eslintrc +0 -18
  155. package/node_modules/globalthis/.nycrc +0 -10
  156. package/node_modules/globalthis/CHANGELOG.md +0 -109
  157. package/node_modules/globalthis/LICENSE +0 -21
  158. package/node_modules/globalthis/README.md +0 -70
  159. package/node_modules/globalthis/auto.js +0 -3
  160. package/node_modules/globalthis/implementation.browser.js +0 -11
  161. package/node_modules/globalthis/implementation.js +0 -3
  162. package/node_modules/globalthis/index.js +0 -19
  163. package/node_modules/globalthis/package.json +0 -99
  164. package/node_modules/globalthis/polyfill.js +0 -10
  165. package/node_modules/globalthis/shim.js +0 -29
  166. package/node_modules/globalthis/test/implementation.js +0 -11
  167. package/node_modules/globalthis/test/index.js +0 -11
  168. package/node_modules/globalthis/test/native.js +0 -26
  169. package/node_modules/globalthis/test/shimmed.js +0 -29
  170. package/node_modules/globalthis/test/tests.js +0 -36
  171. package/node_modules/gopd/.eslintrc +0 -16
  172. package/node_modules/gopd/.github/FUNDING.yml +0 -12
  173. package/node_modules/gopd/CHANGELOG.md +0 -45
  174. package/node_modules/gopd/LICENSE +0 -21
  175. package/node_modules/gopd/README.md +0 -40
  176. package/node_modules/gopd/gOPD.d.ts +0 -1
  177. package/node_modules/gopd/gOPD.js +0 -4
  178. package/node_modules/gopd/index.d.ts +0 -5
  179. package/node_modules/gopd/index.js +0 -15
  180. package/node_modules/gopd/package.json +0 -77
  181. package/node_modules/gopd/test/index.js +0 -36
  182. package/node_modules/gopd/tsconfig.json +0 -9
  183. package/node_modules/has-property-descriptors/.eslintrc +0 -13
  184. package/node_modules/has-property-descriptors/.github/FUNDING.yml +0 -12
  185. package/node_modules/has-property-descriptors/.nycrc +0 -9
  186. package/node_modules/has-property-descriptors/CHANGELOG.md +0 -35
  187. package/node_modules/has-property-descriptors/LICENSE +0 -21
  188. package/node_modules/has-property-descriptors/README.md +0 -43
  189. package/node_modules/has-property-descriptors/index.js +0 -22
  190. package/node_modules/has-property-descriptors/package.json +0 -77
  191. package/node_modules/has-property-descriptors/test/index.js +0 -57
  192. package/node_modules/is-it-type/License +0 -19
  193. package/node_modules/is-it-type/README.md +0 -102
  194. package/node_modules/is-it-type/changelog.md +0 -239
  195. package/node_modules/is-it-type/dist/cjs/is-it-type.js +0 -173
  196. package/node_modules/is-it-type/dist/cjs/is-it-type.js.map +0 -1
  197. package/node_modules/is-it-type/dist/cjs/is-it-type.min.js +0 -2
  198. package/node_modules/is-it-type/dist/cjs/is-it-type.min.js.map +0 -1
  199. package/node_modules/is-it-type/dist/esm/is-it-type.js +0 -143
  200. package/node_modules/is-it-type/dist/esm/is-it-type.js.map +0 -1
  201. package/node_modules/is-it-type/dist/esm/is-it-type.min.js +0 -2
  202. package/node_modules/is-it-type/dist/esm/is-it-type.min.js.map +0 -1
  203. package/node_modules/is-it-type/dist/esm/package.json +0 -3
  204. package/node_modules/is-it-type/dist/umd/is-it-type.js +0 -450
  205. package/node_modules/is-it-type/dist/umd/is-it-type.js.map +0 -1
  206. package/node_modules/is-it-type/dist/umd/is-it-type.min.js +0 -2
  207. package/node_modules/is-it-type/dist/umd/is-it-type.min.js.map +0 -1
  208. package/node_modules/is-it-type/es/index.js +0 -8
  209. package/node_modules/is-it-type/es/package.json +0 -3
  210. package/node_modules/is-it-type/index.js +0 -10
  211. package/node_modules/is-it-type/package.json +0 -87
  212. package/node_modules/is-it-type/src/index.js +0 -169
  213. package/node_modules/object-keys/.editorconfig +0 -13
  214. package/node_modules/object-keys/.eslintrc +0 -17
  215. package/node_modules/object-keys/.travis.yml +0 -277
  216. package/node_modules/object-keys/CHANGELOG.md +0 -232
  217. package/node_modules/object-keys/LICENSE +0 -21
  218. package/node_modules/object-keys/README.md +0 -76
  219. package/node_modules/object-keys/implementation.js +0 -122
  220. package/node_modules/object-keys/index.js +0 -32
  221. package/node_modules/object-keys/isArguments.js +0 -17
  222. package/node_modules/object-keys/package.json +0 -88
  223. package/node_modules/object-keys/test/index.js +0 -5
  224. package/node_modules/simple-invariant/License +0 -19
  225. package/node_modules/simple-invariant/README.md +0 -64
  226. package/node_modules/simple-invariant/changelog.md +0 -31
  227. package/node_modules/simple-invariant/index.js +0 -19
  228. package/node_modules/simple-invariant/package.json +0 -50
  229. package/node_modules/yauzl-promise/License +0 -19
  230. package/node_modules/yauzl-promise/README.md +0 -440
  231. package/node_modules/yauzl-promise/index.js +0 -10
  232. package/node_modules/yauzl-promise/lib/entry.js +0 -312
  233. package/node_modules/yauzl-promise/lib/index.js +0 -160
  234. package/node_modules/yauzl-promise/lib/reader.js +0 -289
  235. package/node_modules/yauzl-promise/lib/shared.js +0 -20
  236. package/node_modules/yauzl-promise/lib/utils.js +0 -105
  237. package/node_modules/yauzl-promise/lib/zip.js +0 -1224
  238. package/node_modules/yauzl-promise/package.json +0 -56
@@ -1,289 +0,0 @@
1
- /* --------------------
2
- * yauzl-promise module
3
- * Reader classes
4
- * ------------------*/
5
-
6
- 'use strict';
7
-
8
- // Modules
9
- const fs = require('fs'),
10
- {PassThrough: PassThroughStream, Readable: ReadableStream} = require('stream'),
11
- {promisify} = require('util'),
12
- {isPositiveIntegerOrZero} = require('is-it-type'),
13
- assert = require('simple-invariant');
14
-
15
- const openAsync = promisify(fs.open),
16
- closeAsync = promisify(fs.close);
17
-
18
- // Imports
19
- const {streamToBuffer} = require('./utils.js');
20
-
21
- // Exports
22
-
23
- /**
24
- * `Reader` class.
25
- * `FileReader`, `FdReader` and `BufferReader` subclass this.
26
- *
27
- * Users can create custom `Reader`s by subclassing and implementing the following methods:
28
- * - `_createReadStream(start, length)` (required)
29
- * - `_read(start, length)` (optional)
30
- * - `_open()` (optional)
31
- * - `_close()` (optional)
32
- */
33
- class Reader {
34
- constructor() {
35
- this.isOpen = false;
36
- this.readCount = 0;
37
- }
38
-
39
- /**
40
- * Open reader.
41
- * Calls `._open()` method defined by subclass.
42
- * If already open, does nothing.
43
- * @async
44
- * @returns {undefined}
45
- */
46
- async open() {
47
- if (this.isOpen) return;
48
- this.isOpen = true;
49
- await this._open();
50
- }
51
-
52
- /**
53
- * Close reader.
54
- * Calls `._close()` method defined by subclass.
55
- * If already closed, does nothing.
56
- * @async
57
- * @returns {undefined}
58
- * @throws {Error} - If Reader is currently being read from
59
- */
60
- async close() {
61
- if (!this.isOpen) return;
62
- assert(this.readCount === 0, 'Cannot close while reading in progress');
63
- this.isOpen = false;
64
- await this._close();
65
- }
66
-
67
- /**
68
- * Read bytes into Buffer.
69
- * @async
70
- * @param {number} start - Starting position to read at
71
- * @param {number} length - Number of bytes to read
72
- * @returns {Buffer} - Buffer
73
- * @throws {Error} - If Reader is not open
74
- */
75
- async read(start, length) {
76
- // Don't validate `start` + `length` because this is called so often
77
- assert(this.isOpen, 'Cannot call `read()` on a reader which is not open');
78
-
79
- if (length === 0) return Buffer.allocUnsafe();
80
-
81
- this.readCount++;
82
- try {
83
- return await this._read(start, length);
84
- } finally {
85
- this.readCount--;
86
- }
87
- }
88
-
89
- /**
90
- * Create readable stream to read from Reader.
91
- * @param {number} start - Position to start reading at
92
- * @param {number} length - Number of bytes to read
93
- * @returns {Object} - Readable stream
94
- * @throws {Error} - If arguments invalid or reader is not open
95
- */
96
- createReadStream(start, length) {
97
- // Validate input
98
- assert(isPositiveIntegerOrZero(start), '`start` must be a positive integer or zero');
99
- assert(isPositiveIntegerOrZero(length), '`length` must be a positive integer or zero');
100
-
101
- // Error if not open
102
- assert(this.isOpen, 'Cannot call `createReadStream()` on a reader which is not open');
103
-
104
- // Return empty stream for zero-size request
105
- if (length === 0) {
106
- const emptyStream = new PassThroughStream();
107
- setImmediate(() => emptyStream.end());
108
- return emptyStream;
109
- }
110
-
111
- // Get stream
112
- this.readCount++;
113
- try {
114
- const stream = this._createReadStream(start, length);
115
-
116
- // Mark stream as ended on an `end`, `error` or `close` event.
117
- // In Node v16, these events don't reliably fire if stream is destroyed with `.destroy()`
118
- // so capture that too.
119
- let isEnded = false;
120
- const onEnd = () => {
121
- if (isEnded) return;
122
- isEnded = true;
123
- this.readCount--;
124
- };
125
-
126
- const originalDestroy = stream.destroy;
127
- stream.destroy = function(err) {
128
- onEnd();
129
- return originalDestroy.call(this, err);
130
- };
131
-
132
- stream.on('end', onEnd);
133
- stream.on('error', onEnd);
134
- stream.on('close', onEnd);
135
-
136
- return stream;
137
- } catch (err) {
138
- this.readCount--;
139
- throw err;
140
- }
141
- }
142
-
143
- /**
144
- * Open Reader.
145
- * Default implementation does nothing. Subclasses can optionally implement this.
146
- * @async
147
- * @returns {undefined}
148
- */
149
- async _open() {} // eslint-disable-line class-methods-use-this, no-empty-function
150
-
151
- /**
152
- * Close Reader.
153
- * Default implementation does nothing. Subclasses can optionally implement this.
154
- * @async
155
- * @returns {undefined}
156
- */
157
- async _close() {} // eslint-disable-line class-methods-use-this, no-empty-function
158
-
159
- /**
160
- * Read bytes from Reader into a Buffer.
161
- * Subclasses can override this.
162
- * @async
163
- * @param {number} start - Starting position to read at
164
- * @param {number} length - Number of bytes to read
165
- * @returns {Buffer} - Buffer
166
- */
167
- async _read(start, length) {
168
- const stream = this._createReadStream(start, length);
169
- const buffer = await streamToBuffer(stream);
170
- assert(buffer.length === length, 'Unexpected end of file');
171
- return buffer;
172
- }
173
-
174
- // eslint-disable-next-line jsdoc/require-returns-check
175
- /**
176
- * Create readable stream to read from Reader.
177
- * Subclasses must implement this.
178
- * @param {number} start - Position to start reading at
179
- * @param {number} length - Number of bytes to read
180
- * @returns {Object} - Readable stream
181
- * @throws {Error} - If fail to create stream
182
- */
183
- _createReadStream(start, length) { // eslint-disable-line class-methods-use-this, no-unused-vars
184
- throw new Error('Not implemented');
185
- }
186
- }
187
-
188
- // Shim of `fs` module to prevent file descriptor being closed if stream is destroyed
189
- const shimmedFs = {
190
- open() {
191
- throw new Error(
192
- 'Shimmed FS `open` method should not be called. If you get this error, please raise an issue.'
193
- );
194
- },
195
- read(...args) {
196
- return fs.read(...args);
197
- },
198
- close(fd, cb) {
199
- setImmediate(() => cb(null));
200
- }
201
- };
202
-
203
- class FdReader extends Reader {
204
- /**
205
- * Create `FdReader`.
206
- * @param {number} fd - File descriptor
207
- */
208
- constructor(fd) {
209
- super();
210
- this.fd = fd;
211
- }
212
-
213
- _close() {
214
- return closeAsync(this.fd);
215
- }
216
-
217
- _read(start, length) {
218
- return new Promise((resolve, reject) => {
219
- const buffer = Buffer.allocUnsafe(length);
220
- fs.read(this.fd, buffer, 0, length, start, (err, bytesRead) => {
221
- if (err) {
222
- reject(err);
223
- } else if (bytesRead !== length) {
224
- reject(new Error('Unexpected end of file'));
225
- } else {
226
- resolve(buffer);
227
- }
228
- });
229
- });
230
- }
231
-
232
- _createReadStream(start, length) {
233
- // Use shimmed `fs` with inactive `close()` method,
234
- // to prevent file descriptor getting closed when stream ends.
235
- // `autoClose` option works for this purpose when stream ends naturally,
236
- // but FD still gets closed if `.destroy()` is called.
237
- // Shimming FS is only way I around this that I could find.
238
- return fs.createReadStream(null, {start, end: start + length - 1, fd: this.fd, fs: shimmedFs});
239
- }
240
- }
241
-
242
- class FileReader extends Reader {
243
- /**
244
- * Create `FileReader`.
245
- * @param {string} path - File path
246
- */
247
- constructor(path) {
248
- super();
249
- this.path = path;
250
- this.fd = null;
251
- }
252
-
253
- async _open() {
254
- this.fd = await openAsync(this.path, 'r', 0o444);
255
- }
256
-
257
- async _close() {
258
- await closeAsync(this.fd);
259
- this.fd = null;
260
- }
261
- }
262
- FileReader.prototype._read = FdReader.prototype._read;
263
- FileReader.prototype._createReadStream = FdReader.prototype._createReadStream;
264
-
265
- class BufferReader extends Reader {
266
- /**
267
- * Create `BufferReader`.
268
- * @param {Buffer} buffer - Buffer
269
- */
270
- constructor(buffer) {
271
- super();
272
- this.buffer = buffer;
273
- }
274
-
275
- async _read(start, length) {
276
- const end = start + length;
277
- assert(end <= this.buffer.length, 'Cannot read beyond end of buffer');
278
- return this.buffer.subarray(start, end);
279
- }
280
-
281
- _createReadStream(start, length) {
282
- const end = start + length;
283
- assert(end <= this.buffer.length, 'Cannot read beyond end of buffer');
284
- const slice = this.buffer.subarray(start, end);
285
- return ReadableStream.from(slice);
286
- }
287
- }
288
-
289
- module.exports = {Reader, FdReader, FileReader, BufferReader};
@@ -1,20 +0,0 @@
1
- /* --------------------
2
- * yauzl-promise module
3
- * Shared objects
4
- * ------------------*/
5
-
6
- /* global FinalizationRegistry */
7
-
8
- 'use strict';
9
-
10
- // Exports
11
-
12
- // Object used as private symbol to ensure `Zip` and `Entry` classes cannot be constructed by user
13
- const INTERNAL_SYMBOL = {};
14
-
15
- // Finalization registry for entries with uncertain uncompressed size
16
- const uncertainUncompressedSizeEntriesRegistry = new FinalizationRegistry(
17
- ({zip, ref}) => zip._uncertainUncompressedSizeEntryRefs?.delete(ref)
18
- );
19
-
20
- module.exports = {INTERNAL_SYMBOL, uncertainUncompressedSizeEntriesRegistry};
@@ -1,105 +0,0 @@
1
- /* --------------------
2
- * yauzl-promise module
3
- * Utility functions
4
- * ------------------*/
5
-
6
- 'use strict';
7
-
8
- // Modules
9
- const {Writable: WritableStream, promises: {pipeline}} = require('stream'),
10
- assert = require('simple-invariant');
11
-
12
- // Exports
13
-
14
- module.exports = {decodeBuffer, validateFilename, dosDateTimeToDate, readUInt64LE, streamToBuffer};
15
-
16
- /**
17
- * Decode string from buffer, in either CP437 or UTF8 encoding.
18
- * @param {Buffer} buffer - Buffer
19
- * @param {number} start - Start position in buffer
20
- * @param {boolean} isUtf8 - `true` if UTF8 encoded
21
- * @returns {string} - Decoded string
22
- */
23
- function decodeBuffer(buffer, start, isUtf8) {
24
- if (isUtf8) return buffer.toString('utf8', start);
25
-
26
- let str = '';
27
- for (let i = start; i < buffer.length; i++) {
28
- str += CP437_CHARS[buffer[i]]; // eslint-disable-line no-use-before-define
29
- }
30
- return str;
31
- }
32
-
33
- const CP437_CHARS = '\u0000☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ';
34
-
35
- /**
36
- * Validate filename.
37
- * @param {string} filename - Filename
38
- * @returns {undefined}
39
- * @throws {Error} - If invalid
40
- */
41
- function validateFilename(filename) {
42
- assert(filename.indexOf('\\') === -1, `Invalid characters in filename: ${filename}`);
43
- assert(
44
- // eslint-disable-next-line no-use-before-define
45
- !ABSOLUTE_FILENAME_REGEX1.test(filename) && !ABSOLUTE_FILENAME_REGEX2.test(filename),
46
- `Absolute path: ${filename}`
47
- );
48
- assert(filename.split('/').indexOf('..') === -1, `Relative path: ${filename}`);
49
- }
50
-
51
- const ABSOLUTE_FILENAME_REGEX1 = /^[a-zA-Z]:/,
52
- ABSOLUTE_FILENAME_REGEX2 = /^\//;
53
-
54
- /**
55
- * Convert date + time timestamps to `Date` object.
56
- * DOS date format does not contain any notion of timezone, so interpret as UTC.
57
- * @param {number} date - Date integer
58
- * @param {number} time - Time integer
59
- * @returns {Date} - Date
60
- */
61
- function dosDateTimeToDate(date, time) {
62
- /* eslint-disable no-bitwise */
63
- const day = date & 0x1f; // 1-31
64
- const month = ((date >> 5) & 0xf) - 1; // 1-12, 0-11
65
- const year = ((date >> 9) & 0x7f) + 1980; // 0-128, 1980-2108
66
-
67
- const millisecond = 0;
68
- const second = (time & 0x1f) * 2; // 0-29, 0-58 (even numbers)
69
- const minute = (time >> 5) & 0x3f; // 0-59
70
- const hour = (time >> 11) & 0x1f; // 0-23
71
- /* eslint-enable no-bitwise */
72
-
73
- return new Date(Date.UTC(year, month, day, hour, minute, second, millisecond));
74
- }
75
-
76
- /**
77
- * Read Uint64 from buffer.
78
- * There is no native JS function for this, because we can't actually store 64-bit integers precisely.
79
- * After 53 bits, JavaScript's Number type (IEEE 754 double) can't store individual integers anymore.
80
- * But 53 bits is enough for our purposes in this context.
81
- * @param {Buffer} buffer - Buffer
82
- * @param {number} offset - Offset
83
- * @returns {number} - 64-bit(ish) integer
84
- */
85
- function readUInt64LE(buffer, offset) {
86
- // Can't use bitshifting here, because only supports 32-bit integers in JS
87
- return buffer.readUInt32LE(offset + 4) * 0x100000000 + buffer.readUInt32LE(offset);
88
- }
89
-
90
- /**
91
- * Drain contents of a readable stream into a Buffer.
92
- * @param {Object} stream - Readable stream
93
- * @returns {Buffer} - Buffer
94
- */
95
- async function streamToBuffer(stream) {
96
- const chunks = [];
97
- const collectStream = new WritableStream({
98
- write(chunk, encoding, cb) {
99
- chunks.push(chunk);
100
- cb();
101
- }
102
- });
103
- await pipeline(stream, collectStream);
104
- return Buffer.concat(chunks);
105
- }