styled-map-package 4.1.0 → 5.0.0-pre.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 (235) hide show
  1. package/bin/smp-download.js +9 -5
  2. package/bin/smp-mbtiles.js +5 -7
  3. package/bin/smp-view.js +2 -3
  4. package/lib/reporters.js +92 -0
  5. package/package.json +8 -185
  6. package/LICENSE.md +0 -7
  7. package/README.md +0 -28
  8. package/dist/download.cjs +0 -101
  9. package/dist/download.d.cts +0 -65
  10. package/dist/download.d.ts +0 -65
  11. package/dist/download.js +0 -77
  12. package/dist/from-mbtiles.cjs +0 -91
  13. package/dist/from-mbtiles.d.cts +0 -17
  14. package/dist/from-mbtiles.d.ts +0 -17
  15. package/dist/from-mbtiles.js +0 -57
  16. package/dist/index.cjs +0 -49
  17. package/dist/index.d.cts +0 -27
  18. package/dist/index.d.ts +0 -27
  19. package/dist/index.js +0 -18
  20. package/dist/reader-watch.cjs +0 -135
  21. package/dist/reader-watch.d.cts +0 -24
  22. package/dist/reader-watch.d.ts +0 -24
  23. package/dist/reader-watch.js +0 -101
  24. package/dist/reader.cjs +0 -168
  25. package/dist/reader.d.cts +0 -62
  26. package/dist/reader.d.ts +0 -62
  27. package/dist/reader.js +0 -139
  28. package/dist/reporters.cjs +0 -122
  29. package/dist/reporters.d.cts +0 -10
  30. package/dist/reporters.d.ts +0 -10
  31. package/dist/reporters.js +0 -88
  32. package/dist/server.cjs +0 -78
  33. package/dist/server.d.cts +0 -48
  34. package/dist/server.d.ts +0 -48
  35. package/dist/server.js +0 -54
  36. package/dist/style-downloader.cjs +0 -312
  37. package/dist/style-downloader.d.cts +0 -120
  38. package/dist/style-downloader.d.ts +0 -120
  39. package/dist/style-downloader.js +0 -288
  40. package/dist/tile-downloader.cjs +0 -158
  41. package/dist/tile-downloader.d.cts +0 -84
  42. package/dist/tile-downloader.d.ts +0 -84
  43. package/dist/tile-downloader.js +0 -126
  44. package/dist/types-yLQy3AKR.d.cts +0 -192
  45. package/dist/types-yLQy3AKR.d.ts +0 -192
  46. package/dist/utils/errors.cjs +0 -41
  47. package/dist/utils/errors.d.cts +0 -18
  48. package/dist/utils/errors.d.ts +0 -18
  49. package/dist/utils/errors.js +0 -16
  50. package/dist/utils/fetch.cjs +0 -96
  51. package/dist/utils/fetch.d.cts +0 -51
  52. package/dist/utils/fetch.d.ts +0 -51
  53. package/dist/utils/fetch.js +0 -62
  54. package/dist/utils/file-formats.cjs +0 -98
  55. package/dist/utils/file-formats.d.cts +0 -35
  56. package/dist/utils/file-formats.d.ts +0 -35
  57. package/dist/utils/file-formats.js +0 -62
  58. package/dist/utils/geo.cjs +0 -84
  59. package/dist/utils/geo.d.cts +0 -46
  60. package/dist/utils/geo.d.ts +0 -46
  61. package/dist/utils/geo.js +0 -56
  62. package/dist/utils/mapbox.cjs +0 -121
  63. package/dist/utils/mapbox.d.cts +0 -43
  64. package/dist/utils/mapbox.d.ts +0 -43
  65. package/dist/utils/mapbox.js +0 -91
  66. package/dist/utils/misc.cjs +0 -39
  67. package/dist/utils/misc.d.cts +0 -22
  68. package/dist/utils/misc.d.ts +0 -22
  69. package/dist/utils/misc.js +0 -13
  70. package/dist/utils/streams.cjs +0 -130
  71. package/dist/utils/streams.d.cts +0 -73
  72. package/dist/utils/streams.d.ts +0 -73
  73. package/dist/utils/streams.js +0 -103
  74. package/dist/utils/style.cjs +0 -126
  75. package/dist/utils/style.d.cts +0 -69
  76. package/dist/utils/style.d.ts +0 -69
  77. package/dist/utils/style.js +0 -98
  78. package/dist/utils/templates.cjs +0 -118
  79. package/dist/utils/templates.d.cts +0 -80
  80. package/dist/utils/templates.d.ts +0 -80
  81. package/dist/utils/templates.js +0 -81
  82. package/dist/writer.cjs +0 -449
  83. package/dist/writer.d.cts +0 -7
  84. package/dist/writer.d.ts +0 -7
  85. package/dist/writer.js +0 -424
  86. package/node_modules/@node-rs/crc32/LICENSE +0 -21
  87. package/node_modules/@node-rs/crc32/README.md +0 -61
  88. package/node_modules/@node-rs/crc32/browser.js +0 -1
  89. package/node_modules/@node-rs/crc32/index.d.ts +0 -5
  90. package/node_modules/@node-rs/crc32/index.js +0 -368
  91. package/node_modules/@node-rs/crc32/package.json +0 -97
  92. package/node_modules/@node-rs/crc32-linux-x64-gnu/README.md +0 -3
  93. package/node_modules/@node-rs/crc32-linux-x64-gnu/crc32.linux-x64-gnu.node +0 -0
  94. package/node_modules/@node-rs/crc32-linux-x64-gnu/package.json +0 -43
  95. package/node_modules/@node-rs/crc32-linux-x64-musl/README.md +0 -3
  96. package/node_modules/@node-rs/crc32-linux-x64-musl/crc32.linux-x64-musl.node +0 -0
  97. package/node_modules/@node-rs/crc32-linux-x64-musl/package.json +0 -43
  98. package/node_modules/define-data-property/.eslintrc +0 -24
  99. package/node_modules/define-data-property/.github/FUNDING.yml +0 -12
  100. package/node_modules/define-data-property/.nycrc +0 -13
  101. package/node_modules/define-data-property/CHANGELOG.md +0 -70
  102. package/node_modules/define-data-property/LICENSE +0 -21
  103. package/node_modules/define-data-property/README.md +0 -67
  104. package/node_modules/define-data-property/index.d.ts +0 -12
  105. package/node_modules/define-data-property/index.js +0 -56
  106. package/node_modules/define-data-property/package.json +0 -106
  107. package/node_modules/define-data-property/test/index.js +0 -392
  108. package/node_modules/define-data-property/tsconfig.json +0 -59
  109. package/node_modules/define-properties/.editorconfig +0 -13
  110. package/node_modules/define-properties/.eslintrc +0 -19
  111. package/node_modules/define-properties/.github/FUNDING.yml +0 -12
  112. package/node_modules/define-properties/.nycrc +0 -9
  113. package/node_modules/define-properties/CHANGELOG.md +0 -91
  114. package/node_modules/define-properties/LICENSE +0 -21
  115. package/node_modules/define-properties/README.md +0 -84
  116. package/node_modules/define-properties/index.js +0 -47
  117. package/node_modules/define-properties/package.json +0 -88
  118. package/node_modules/es-define-property/.eslintrc +0 -13
  119. package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  120. package/node_modules/es-define-property/.nycrc +0 -9
  121. package/node_modules/es-define-property/CHANGELOG.md +0 -29
  122. package/node_modules/es-define-property/LICENSE +0 -21
  123. package/node_modules/es-define-property/README.md +0 -49
  124. package/node_modules/es-define-property/index.d.ts +0 -3
  125. package/node_modules/es-define-property/index.js +0 -14
  126. package/node_modules/es-define-property/package.json +0 -81
  127. package/node_modules/es-define-property/test/index.js +0 -56
  128. package/node_modules/es-define-property/tsconfig.json +0 -10
  129. package/node_modules/es-errors/.eslintrc +0 -5
  130. package/node_modules/es-errors/.github/FUNDING.yml +0 -12
  131. package/node_modules/es-errors/CHANGELOG.md +0 -40
  132. package/node_modules/es-errors/LICENSE +0 -21
  133. package/node_modules/es-errors/README.md +0 -55
  134. package/node_modules/es-errors/eval.d.ts +0 -3
  135. package/node_modules/es-errors/eval.js +0 -4
  136. package/node_modules/es-errors/index.d.ts +0 -3
  137. package/node_modules/es-errors/index.js +0 -4
  138. package/node_modules/es-errors/package.json +0 -80
  139. package/node_modules/es-errors/range.d.ts +0 -3
  140. package/node_modules/es-errors/range.js +0 -4
  141. package/node_modules/es-errors/ref.d.ts +0 -3
  142. package/node_modules/es-errors/ref.js +0 -4
  143. package/node_modules/es-errors/syntax.d.ts +0 -3
  144. package/node_modules/es-errors/syntax.js +0 -4
  145. package/node_modules/es-errors/test/index.js +0 -19
  146. package/node_modules/es-errors/tsconfig.json +0 -49
  147. package/node_modules/es-errors/type.d.ts +0 -3
  148. package/node_modules/es-errors/type.js +0 -4
  149. package/node_modules/es-errors/uri.d.ts +0 -3
  150. package/node_modules/es-errors/uri.js +0 -4
  151. package/node_modules/globalthis/.eslintrc +0 -18
  152. package/node_modules/globalthis/.nycrc +0 -10
  153. package/node_modules/globalthis/CHANGELOG.md +0 -109
  154. package/node_modules/globalthis/LICENSE +0 -21
  155. package/node_modules/globalthis/README.md +0 -70
  156. package/node_modules/globalthis/auto.js +0 -3
  157. package/node_modules/globalthis/implementation.browser.js +0 -11
  158. package/node_modules/globalthis/implementation.js +0 -3
  159. package/node_modules/globalthis/index.js +0 -19
  160. package/node_modules/globalthis/package.json +0 -99
  161. package/node_modules/globalthis/polyfill.js +0 -10
  162. package/node_modules/globalthis/shim.js +0 -29
  163. package/node_modules/globalthis/test/implementation.js +0 -11
  164. package/node_modules/globalthis/test/index.js +0 -11
  165. package/node_modules/globalthis/test/native.js +0 -26
  166. package/node_modules/globalthis/test/shimmed.js +0 -29
  167. package/node_modules/globalthis/test/tests.js +0 -36
  168. package/node_modules/gopd/.eslintrc +0 -16
  169. package/node_modules/gopd/.github/FUNDING.yml +0 -12
  170. package/node_modules/gopd/CHANGELOG.md +0 -45
  171. package/node_modules/gopd/LICENSE +0 -21
  172. package/node_modules/gopd/README.md +0 -40
  173. package/node_modules/gopd/gOPD.d.ts +0 -1
  174. package/node_modules/gopd/gOPD.js +0 -4
  175. package/node_modules/gopd/index.d.ts +0 -5
  176. package/node_modules/gopd/index.js +0 -15
  177. package/node_modules/gopd/package.json +0 -77
  178. package/node_modules/gopd/test/index.js +0 -36
  179. package/node_modules/gopd/tsconfig.json +0 -9
  180. package/node_modules/has-property-descriptors/.eslintrc +0 -13
  181. package/node_modules/has-property-descriptors/.github/FUNDING.yml +0 -12
  182. package/node_modules/has-property-descriptors/.nycrc +0 -9
  183. package/node_modules/has-property-descriptors/CHANGELOG.md +0 -35
  184. package/node_modules/has-property-descriptors/LICENSE +0 -21
  185. package/node_modules/has-property-descriptors/README.md +0 -43
  186. package/node_modules/has-property-descriptors/index.js +0 -22
  187. package/node_modules/has-property-descriptors/package.json +0 -77
  188. package/node_modules/has-property-descriptors/test/index.js +0 -57
  189. package/node_modules/is-it-type/License +0 -19
  190. package/node_modules/is-it-type/README.md +0 -102
  191. package/node_modules/is-it-type/changelog.md +0 -239
  192. package/node_modules/is-it-type/dist/cjs/is-it-type.js +0 -173
  193. package/node_modules/is-it-type/dist/cjs/is-it-type.js.map +0 -1
  194. package/node_modules/is-it-type/dist/cjs/is-it-type.min.js +0 -2
  195. package/node_modules/is-it-type/dist/cjs/is-it-type.min.js.map +0 -1
  196. package/node_modules/is-it-type/dist/esm/is-it-type.js +0 -143
  197. package/node_modules/is-it-type/dist/esm/is-it-type.js.map +0 -1
  198. package/node_modules/is-it-type/dist/esm/is-it-type.min.js +0 -2
  199. package/node_modules/is-it-type/dist/esm/is-it-type.min.js.map +0 -1
  200. package/node_modules/is-it-type/dist/esm/package.json +0 -3
  201. package/node_modules/is-it-type/dist/umd/is-it-type.js +0 -450
  202. package/node_modules/is-it-type/dist/umd/is-it-type.js.map +0 -1
  203. package/node_modules/is-it-type/dist/umd/is-it-type.min.js +0 -2
  204. package/node_modules/is-it-type/dist/umd/is-it-type.min.js.map +0 -1
  205. package/node_modules/is-it-type/es/index.js +0 -8
  206. package/node_modules/is-it-type/es/package.json +0 -3
  207. package/node_modules/is-it-type/index.js +0 -10
  208. package/node_modules/is-it-type/package.json +0 -87
  209. package/node_modules/is-it-type/src/index.js +0 -169
  210. package/node_modules/object-keys/.editorconfig +0 -13
  211. package/node_modules/object-keys/.eslintrc +0 -17
  212. package/node_modules/object-keys/.travis.yml +0 -277
  213. package/node_modules/object-keys/CHANGELOG.md +0 -232
  214. package/node_modules/object-keys/LICENSE +0 -21
  215. package/node_modules/object-keys/README.md +0 -76
  216. package/node_modules/object-keys/implementation.js +0 -122
  217. package/node_modules/object-keys/index.js +0 -32
  218. package/node_modules/object-keys/isArguments.js +0 -17
  219. package/node_modules/object-keys/package.json +0 -88
  220. package/node_modules/object-keys/test/index.js +0 -5
  221. package/node_modules/simple-invariant/License +0 -19
  222. package/node_modules/simple-invariant/README.md +0 -64
  223. package/node_modules/simple-invariant/changelog.md +0 -31
  224. package/node_modules/simple-invariant/index.js +0 -19
  225. package/node_modules/simple-invariant/package.json +0 -50
  226. package/node_modules/yauzl-promise/License +0 -19
  227. package/node_modules/yauzl-promise/README.md +0 -440
  228. package/node_modules/yauzl-promise/index.js +0 -10
  229. package/node_modules/yauzl-promise/lib/entry.js +0 -312
  230. package/node_modules/yauzl-promise/lib/index.js +0 -160
  231. package/node_modules/yauzl-promise/lib/reader.js +0 -289
  232. package/node_modules/yauzl-promise/lib/shared.js +0 -20
  233. package/node_modules/yauzl-promise/lib/utils.js +0 -105
  234. package/node_modules/yauzl-promise/lib/zip.js +0 -1224
  235. 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
- }