@ismail-elkorchi/bytefold 0.6.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 (314) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/SPEC.md +285 -0
  4. package/dist/abort.d.ts +3 -0
  5. package/dist/abort.d.ts.map +1 -0
  6. package/dist/abort.js +33 -0
  7. package/dist/abort.js.map +1 -0
  8. package/dist/archive/errors.d.ts +34 -0
  9. package/dist/archive/errors.d.ts.map +1 -0
  10. package/dist/archive/errors.js +45 -0
  11. package/dist/archive/errors.js.map +1 -0
  12. package/dist/archive/httpArchiveErrors.d.ts +2 -0
  13. package/dist/archive/httpArchiveErrors.d.ts.map +1 -0
  14. package/dist/archive/httpArchiveErrors.js +25 -0
  15. package/dist/archive/httpArchiveErrors.js.map +1 -0
  16. package/dist/archive/index.d.ts +47 -0
  17. package/dist/archive/index.d.ts.map +1 -0
  18. package/dist/archive/index.js +1490 -0
  19. package/dist/archive/index.js.map +1 -0
  20. package/dist/archive/types.d.ts +91 -0
  21. package/dist/archive/types.d.ts.map +1 -0
  22. package/dist/archive/types.js +2 -0
  23. package/dist/archive/types.js.map +1 -0
  24. package/dist/archive/xzPreflight.d.ts +13 -0
  25. package/dist/archive/xzPreflight.d.ts.map +1 -0
  26. package/dist/archive/xzPreflight.js +44 -0
  27. package/dist/archive/xzPreflight.js.map +1 -0
  28. package/dist/archive/zipPreflight.d.ts +18 -0
  29. package/dist/archive/zipPreflight.d.ts.map +1 -0
  30. package/dist/archive/zipPreflight.js +50 -0
  31. package/dist/archive/zipPreflight.js.map +1 -0
  32. package/dist/binary.d.ts +12 -0
  33. package/dist/binary.d.ts.map +1 -0
  34. package/dist/binary.js +59 -0
  35. package/dist/binary.js.map +1 -0
  36. package/dist/bun/index.d.ts +19 -0
  37. package/dist/bun/index.d.ts.map +1 -0
  38. package/dist/bun/index.js +427 -0
  39. package/dist/bun/index.js.map +1 -0
  40. package/dist/compress/errors.d.ts +30 -0
  41. package/dist/compress/errors.d.ts.map +1 -0
  42. package/dist/compress/errors.js +40 -0
  43. package/dist/compress/errors.js.map +1 -0
  44. package/dist/compress/index.d.ts +12 -0
  45. package/dist/compress/index.d.ts.map +1 -0
  46. package/dist/compress/index.js +339 -0
  47. package/dist/compress/index.js.map +1 -0
  48. package/dist/compress/types.d.ts +41 -0
  49. package/dist/compress/types.d.ts.map +1 -0
  50. package/dist/compress/types.js +2 -0
  51. package/dist/compress/types.js.map +1 -0
  52. package/dist/compression/bzip2.d.ts +9 -0
  53. package/dist/compression/bzip2.d.ts.map +1 -0
  54. package/dist/compression/bzip2.js +546 -0
  55. package/dist/compression/bzip2.js.map +1 -0
  56. package/dist/compression/codecs.d.ts +6 -0
  57. package/dist/compression/codecs.d.ts.map +1 -0
  58. package/dist/compression/codecs.js +82 -0
  59. package/dist/compression/codecs.js.map +1 -0
  60. package/dist/compression/deflate64.d.ts +3 -0
  61. package/dist/compression/deflate64.d.ts.map +1 -0
  62. package/dist/compression/deflate64.js +549 -0
  63. package/dist/compression/deflate64.js.map +1 -0
  64. package/dist/compression/node-backend.d.ts +9 -0
  65. package/dist/compression/node-backend.d.ts.map +1 -0
  66. package/dist/compression/node-backend.js +103 -0
  67. package/dist/compression/node-backend.js.map +1 -0
  68. package/dist/compression/registry.d.ts +10 -0
  69. package/dist/compression/registry.d.ts.map +1 -0
  70. package/dist/compression/registry.js +30 -0
  71. package/dist/compression/registry.js.map +1 -0
  72. package/dist/compression/streams.d.ts +31 -0
  73. package/dist/compression/streams.d.ts.map +1 -0
  74. package/dist/compression/streams.js +147 -0
  75. package/dist/compression/streams.js.map +1 -0
  76. package/dist/compression/types.d.ts +19 -0
  77. package/dist/compression/types.d.ts.map +1 -0
  78. package/dist/compression/types.js +2 -0
  79. package/dist/compression/types.js.map +1 -0
  80. package/dist/compression/xz.d.ts +21 -0
  81. package/dist/compression/xz.d.ts.map +1 -0
  82. package/dist/compression/xz.js +1455 -0
  83. package/dist/compression/xz.js.map +1 -0
  84. package/dist/compression/xzFilters.d.ts +14 -0
  85. package/dist/compression/xzFilters.d.ts.map +1 -0
  86. package/dist/compression/xzFilters.js +736 -0
  87. package/dist/compression/xzFilters.js.map +1 -0
  88. package/dist/compression/xzIndexPreflight.d.ts +20 -0
  89. package/dist/compression/xzIndexPreflight.d.ts.map +1 -0
  90. package/dist/compression/xzIndexPreflight.js +371 -0
  91. package/dist/compression/xzIndexPreflight.js.map +1 -0
  92. package/dist/compression/xzScan.d.ts +15 -0
  93. package/dist/compression/xzScan.d.ts.map +1 -0
  94. package/dist/compression/xzScan.js +310 -0
  95. package/dist/compression/xzScan.js.map +1 -0
  96. package/dist/cp437.d.ts +2 -0
  97. package/dist/cp437.d.ts.map +1 -0
  98. package/dist/cp437.js +31 -0
  99. package/dist/cp437.js.map +1 -0
  100. package/dist/crc32.d.ts +7 -0
  101. package/dist/crc32.d.ts.map +1 -0
  102. package/dist/crc32.js +37 -0
  103. package/dist/crc32.js.map +1 -0
  104. package/dist/crc64.d.ts +6 -0
  105. package/dist/crc64.d.ts.map +1 -0
  106. package/dist/crc64.js +32 -0
  107. package/dist/crc64.js.map +1 -0
  108. package/dist/crypto/ctr.d.ts +11 -0
  109. package/dist/crypto/ctr.d.ts.map +1 -0
  110. package/dist/crypto/ctr.js +56 -0
  111. package/dist/crypto/ctr.js.map +1 -0
  112. package/dist/crypto/sha256.d.ts +16 -0
  113. package/dist/crypto/sha256.d.ts.map +1 -0
  114. package/dist/crypto/sha256.js +152 -0
  115. package/dist/crypto/sha256.js.map +1 -0
  116. package/dist/crypto/winzip-aes.d.ts +17 -0
  117. package/dist/crypto/winzip-aes.d.ts.map +1 -0
  118. package/dist/crypto/winzip-aes.js +98 -0
  119. package/dist/crypto/winzip-aes.js.map +1 -0
  120. package/dist/crypto/zipcrypto.d.ts +23 -0
  121. package/dist/crypto/zipcrypto.d.ts.map +1 -0
  122. package/dist/crypto/zipcrypto.js +99 -0
  123. package/dist/crypto/zipcrypto.js.map +1 -0
  124. package/dist/deno/index.d.ts +19 -0
  125. package/dist/deno/index.d.ts.map +1 -0
  126. package/dist/deno/index.js +422 -0
  127. package/dist/deno/index.js.map +1 -0
  128. package/dist/dosTime.d.ts +7 -0
  129. package/dist/dosTime.d.ts.map +1 -0
  130. package/dist/dosTime.js +21 -0
  131. package/dist/dosTime.js.map +1 -0
  132. package/dist/errorContext.d.ts +2 -0
  133. package/dist/errorContext.d.ts.map +1 -0
  134. package/dist/errorContext.js +24 -0
  135. package/dist/errorContext.js.map +1 -0
  136. package/dist/errors.d.ts +46 -0
  137. package/dist/errors.d.ts.map +1 -0
  138. package/dist/errors.js +51 -0
  139. package/dist/errors.js.map +1 -0
  140. package/dist/extraFields.d.ts +29 -0
  141. package/dist/extraFields.d.ts.map +1 -0
  142. package/dist/extraFields.js +201 -0
  143. package/dist/extraFields.js.map +1 -0
  144. package/dist/generated/unicodeCaseFolding.d.ts +4 -0
  145. package/dist/generated/unicodeCaseFolding.d.ts.map +1 -0
  146. package/dist/generated/unicodeCaseFolding.js +1594 -0
  147. package/dist/generated/unicodeCaseFolding.js.map +1 -0
  148. package/dist/http/errors.d.ts +26 -0
  149. package/dist/http/errors.d.ts.map +1 -0
  150. package/dist/http/errors.js +33 -0
  151. package/dist/http/errors.js.map +1 -0
  152. package/dist/index.d.ts +10 -0
  153. package/dist/index.d.ts.map +1 -0
  154. package/dist/index.js +7 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/limits.d.ts +22 -0
  157. package/dist/limits.d.ts.map +1 -0
  158. package/dist/limits.js +39 -0
  159. package/dist/limits.js.map +1 -0
  160. package/dist/node/index.d.ts +13 -0
  161. package/dist/node/index.d.ts.map +1 -0
  162. package/dist/node/index.js +448 -0
  163. package/dist/node/index.js.map +1 -0
  164. package/dist/node/zip/RandomAccess.d.ts +12 -0
  165. package/dist/node/zip/RandomAccess.d.ts.map +1 -0
  166. package/dist/node/zip/RandomAccess.js +38 -0
  167. package/dist/node/zip/RandomAccess.js.map +1 -0
  168. package/dist/node/zip/Sink.d.ts +17 -0
  169. package/dist/node/zip/Sink.d.ts.map +1 -0
  170. package/dist/node/zip/Sink.js +45 -0
  171. package/dist/node/zip/Sink.js.map +1 -0
  172. package/dist/node/zip/ZipReader.d.ts +51 -0
  173. package/dist/node/zip/ZipReader.d.ts.map +1 -0
  174. package/dist/node/zip/ZipReader.js +1540 -0
  175. package/dist/node/zip/ZipReader.js.map +1 -0
  176. package/dist/node/zip/ZipWriter.d.ts +21 -0
  177. package/dist/node/zip/ZipWriter.d.ts.map +1 -0
  178. package/dist/node/zip/ZipWriter.js +196 -0
  179. package/dist/node/zip/ZipWriter.js.map +1 -0
  180. package/dist/node/zip/entryStream.d.ts +22 -0
  181. package/dist/node/zip/entryStream.d.ts.map +1 -0
  182. package/dist/node/zip/entryStream.js +241 -0
  183. package/dist/node/zip/entryStream.js.map +1 -0
  184. package/dist/node/zip/entryWriter.d.ts +54 -0
  185. package/dist/node/zip/entryWriter.d.ts.map +1 -0
  186. package/dist/node/zip/entryWriter.js +512 -0
  187. package/dist/node/zip/entryWriter.js.map +1 -0
  188. package/dist/node/zip/index.d.ts +8 -0
  189. package/dist/node/zip/index.d.ts.map +1 -0
  190. package/dist/node/zip/index.js +5 -0
  191. package/dist/node/zip/index.js.map +1 -0
  192. package/dist/reader/RandomAccess.d.ts +55 -0
  193. package/dist/reader/RandomAccess.d.ts.map +1 -0
  194. package/dist/reader/RandomAccess.js +528 -0
  195. package/dist/reader/RandomAccess.js.map +1 -0
  196. package/dist/reader/ZipReader.d.ts +89 -0
  197. package/dist/reader/ZipReader.d.ts.map +1 -0
  198. package/dist/reader/ZipReader.js +1359 -0
  199. package/dist/reader/ZipReader.js.map +1 -0
  200. package/dist/reader/centralDirectory.d.ts +40 -0
  201. package/dist/reader/centralDirectory.d.ts.map +1 -0
  202. package/dist/reader/centralDirectory.js +311 -0
  203. package/dist/reader/centralDirectory.js.map +1 -0
  204. package/dist/reader/entryStream.d.ts +22 -0
  205. package/dist/reader/entryStream.d.ts.map +1 -0
  206. package/dist/reader/entryStream.js +122 -0
  207. package/dist/reader/entryStream.js.map +1 -0
  208. package/dist/reader/eocd.d.ts +22 -0
  209. package/dist/reader/eocd.d.ts.map +1 -0
  210. package/dist/reader/eocd.js +184 -0
  211. package/dist/reader/eocd.js.map +1 -0
  212. package/dist/reader/httpZipErrors.d.ts +4 -0
  213. package/dist/reader/httpZipErrors.d.ts.map +1 -0
  214. package/dist/reader/httpZipErrors.js +48 -0
  215. package/dist/reader/httpZipErrors.js.map +1 -0
  216. package/dist/reader/localHeader.d.ts +15 -0
  217. package/dist/reader/localHeader.d.ts.map +1 -0
  218. package/dist/reader/localHeader.js +37 -0
  219. package/dist/reader/localHeader.js.map +1 -0
  220. package/dist/reportSchema.d.ts +3 -0
  221. package/dist/reportSchema.d.ts.map +1 -0
  222. package/dist/reportSchema.js +3 -0
  223. package/dist/reportSchema.js.map +1 -0
  224. package/dist/streams/adapters.d.ts +10 -0
  225. package/dist/streams/adapters.d.ts.map +1 -0
  226. package/dist/streams/adapters.js +54 -0
  227. package/dist/streams/adapters.js.map +1 -0
  228. package/dist/streams/buffer.d.ts +5 -0
  229. package/dist/streams/buffer.d.ts.map +1 -0
  230. package/dist/streams/buffer.js +44 -0
  231. package/dist/streams/buffer.js.map +1 -0
  232. package/dist/streams/crcTransform.d.ts +15 -0
  233. package/dist/streams/crcTransform.d.ts.map +1 -0
  234. package/dist/streams/crcTransform.js +30 -0
  235. package/dist/streams/crcTransform.js.map +1 -0
  236. package/dist/streams/emit.d.ts +7 -0
  237. package/dist/streams/emit.d.ts.map +1 -0
  238. package/dist/streams/emit.js +13 -0
  239. package/dist/streams/emit.js.map +1 -0
  240. package/dist/streams/limits.d.ts +16 -0
  241. package/dist/streams/limits.d.ts.map +1 -0
  242. package/dist/streams/limits.js +39 -0
  243. package/dist/streams/limits.js.map +1 -0
  244. package/dist/streams/measure.d.ts +5 -0
  245. package/dist/streams/measure.d.ts.map +1 -0
  246. package/dist/streams/measure.js +9 -0
  247. package/dist/streams/measure.js.map +1 -0
  248. package/dist/streams/progress.d.ts +8 -0
  249. package/dist/streams/progress.d.ts.map +1 -0
  250. package/dist/streams/progress.js +69 -0
  251. package/dist/streams/progress.js.map +1 -0
  252. package/dist/streams/web.d.ts +5 -0
  253. package/dist/streams/web.d.ts.map +1 -0
  254. package/dist/streams/web.js +33 -0
  255. package/dist/streams/web.js.map +1 -0
  256. package/dist/tar/TarReader.d.ts +41 -0
  257. package/dist/tar/TarReader.d.ts.map +1 -0
  258. package/dist/tar/TarReader.js +930 -0
  259. package/dist/tar/TarReader.js.map +1 -0
  260. package/dist/tar/TarWriter.d.ts +25 -0
  261. package/dist/tar/TarWriter.d.ts.map +1 -0
  262. package/dist/tar/TarWriter.js +307 -0
  263. package/dist/tar/TarWriter.js.map +1 -0
  264. package/dist/tar/index.d.ts +4 -0
  265. package/dist/tar/index.d.ts.map +1 -0
  266. package/dist/tar/index.js +3 -0
  267. package/dist/tar/index.js.map +1 -0
  268. package/dist/tar/types.d.ts +67 -0
  269. package/dist/tar/types.d.ts.map +1 -0
  270. package/dist/tar/types.js +2 -0
  271. package/dist/tar/types.js.map +1 -0
  272. package/dist/text/caseFold.d.ts +7 -0
  273. package/dist/text/caseFold.d.ts.map +1 -0
  274. package/dist/text/caseFold.js +45 -0
  275. package/dist/text/caseFold.js.map +1 -0
  276. package/dist/types.d.ts +190 -0
  277. package/dist/types.d.ts.map +1 -0
  278. package/dist/types.js +2 -0
  279. package/dist/types.js.map +1 -0
  280. package/dist/web/index.d.ts +11 -0
  281. package/dist/web/index.d.ts.map +1 -0
  282. package/dist/web/index.js +95 -0
  283. package/dist/web/index.js.map +1 -0
  284. package/dist/writer/Sink.d.ts +21 -0
  285. package/dist/writer/Sink.d.ts.map +1 -0
  286. package/dist/writer/Sink.js +24 -0
  287. package/dist/writer/Sink.js.map +1 -0
  288. package/dist/writer/ZipWriter.d.ts +27 -0
  289. package/dist/writer/ZipWriter.d.ts.map +1 -0
  290. package/dist/writer/ZipWriter.js +153 -0
  291. package/dist/writer/ZipWriter.js.map +1 -0
  292. package/dist/writer/centralDirectoryWriter.d.ts +8 -0
  293. package/dist/writer/centralDirectoryWriter.d.ts.map +1 -0
  294. package/dist/writer/centralDirectoryWriter.js +77 -0
  295. package/dist/writer/centralDirectoryWriter.js.map +1 -0
  296. package/dist/writer/entryWriter.d.ts +54 -0
  297. package/dist/writer/entryWriter.d.ts.map +1 -0
  298. package/dist/writer/entryWriter.js +327 -0
  299. package/dist/writer/entryWriter.js.map +1 -0
  300. package/dist/writer/finalize.d.ts +10 -0
  301. package/dist/writer/finalize.d.ts.map +1 -0
  302. package/dist/writer/finalize.js +56 -0
  303. package/dist/writer/finalize.js.map +1 -0
  304. package/dist/zip/index.d.ts +8 -0
  305. package/dist/zip/index.d.ts.map +1 -0
  306. package/dist/zip/index.js +5 -0
  307. package/dist/zip/index.js.map +1 -0
  308. package/jsr.json +41 -0
  309. package/package.json +117 -0
  310. package/schemas/audit-report.schema.json +38 -0
  311. package/schemas/capabilities-report.schema.json +25 -0
  312. package/schemas/detection-report.schema.json +23 -0
  313. package/schemas/error.schema.json +22 -0
  314. package/schemas/normalize-report.schema.json +47 -0
@@ -0,0 +1,103 @@
1
+ import { Duplex } from 'node:stream';
2
+ import { createBrotliCompress, createBrotliDecompress, createDeflate, createDeflateRaw, createGunzip, createGzip, createInflate, createInflateRaw, createZstdCompress, createZstdDecompress, constants } from 'node:zlib';
3
+ function toWebTransform(duplex, signal) {
4
+ if (signal) {
5
+ if (signal.aborted) {
6
+ duplex.destroy(signal.reason instanceof Error ? signal.reason : new Error('Aborted'));
7
+ }
8
+ else {
9
+ signal.addEventListener('abort', () => {
10
+ duplex.destroy(signal.reason instanceof Error ? signal.reason : new Error('Aborted'));
11
+ }, { once: true });
12
+ }
13
+ }
14
+ const { readable, writable } = Duplex.toWeb(duplex);
15
+ return {
16
+ readable: readable,
17
+ writable: writable
18
+ };
19
+ }
20
+ function supports(algorithm, mode) {
21
+ switch (algorithm) {
22
+ case 'gzip':
23
+ return true;
24
+ case 'deflate-raw':
25
+ return true;
26
+ case 'deflate':
27
+ return true;
28
+ case 'brotli':
29
+ return typeof createBrotliCompress === 'function' && typeof createBrotliDecompress === 'function';
30
+ case 'zstd':
31
+ if (mode === 'compress') {
32
+ return typeof createZstdCompress === 'function';
33
+ }
34
+ return typeof createZstdDecompress === 'function';
35
+ case 'bzip2':
36
+ return false;
37
+ case 'xz':
38
+ return false;
39
+ default: {
40
+ const exhaustive = algorithm;
41
+ return exhaustive;
42
+ }
43
+ }
44
+ }
45
+ function create(algorithm, mode, options) {
46
+ const signal = options?.signal;
47
+ switch (algorithm) {
48
+ case 'gzip': {
49
+ const stream = mode === 'compress'
50
+ ? createGzip(options?.level !== undefined ? { level: options.level } : undefined)
51
+ : createGunzip();
52
+ return toWebTransform(stream, signal);
53
+ }
54
+ case 'deflate': {
55
+ const stream = mode === 'compress'
56
+ ? createDeflate(options?.level !== undefined ? { level: options.level } : undefined)
57
+ : createInflate();
58
+ return toWebTransform(stream, signal);
59
+ }
60
+ case 'deflate-raw': {
61
+ const stream = mode === 'compress'
62
+ ? createDeflateRaw(options?.level !== undefined ? { level: options.level } : undefined)
63
+ : createInflateRaw();
64
+ return toWebTransform(stream, signal);
65
+ }
66
+ case 'brotli': {
67
+ if (!supports('brotli', mode)) {
68
+ throw new Error('Brotli not supported in this Node runtime');
69
+ }
70
+ const stream = mode === 'compress'
71
+ ? createBrotliCompress(options?.quality !== undefined
72
+ ? { params: { [constants.BROTLI_PARAM_QUALITY]: options.quality } }
73
+ : undefined)
74
+ : createBrotliDecompress();
75
+ return toWebTransform(stream, signal);
76
+ }
77
+ case 'zstd': {
78
+ if (!supports('zstd', mode)) {
79
+ throw new Error('Zstandard not supported in this Node runtime');
80
+ }
81
+ const params = options?.level !== undefined
82
+ ? { params: { [constants.ZSTD_c_compressionLevel]: options.level } }
83
+ : undefined;
84
+ const stream = mode === 'compress' ? createZstdCompress(params) : createZstdDecompress();
85
+ return toWebTransform(stream, signal);
86
+ }
87
+ case 'bzip2': {
88
+ throw new Error('BZip2 not supported in node:zlib backend');
89
+ }
90
+ case 'xz': {
91
+ throw new Error('XZ not supported in node:zlib backend');
92
+ }
93
+ default: {
94
+ const exhaustive = algorithm;
95
+ return exhaustive;
96
+ }
97
+ }
98
+ }
99
+ export const nodeBackend = {
100
+ supports,
101
+ create
102
+ };
103
+ //# sourceMappingURL=node-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-backend.js","sourceRoot":"","sources":["../../src/compression/node-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ZipCompressionCodec } from './types.js';
2
+ /** Register a custom ZIP compression codec by method id. */
3
+ export declare function registerCompressionCodec(codec: ZipCompressionCodec): void;
4
+ /** Look up a registered ZIP compression codec by method id. */
5
+ export declare function getCompressionCodec(methodId: number): ZipCompressionCodec | undefined;
6
+ /** Check whether a ZIP compression codec is registered. */
7
+ export declare function hasCompressionCodec(methodId: number): boolean;
8
+ /** List all registered ZIP compression codecs. */
9
+ export declare function listCompressionCodecs(): ZipCompressionCodec[];
10
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/compression/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMtD,4DAA4D;AAC5D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAEzE;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAErF;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,kDAAkD;AAClD,wBAAgB,qBAAqB,IAAI,mBAAmB,EAAE,CAE7D"}
@@ -0,0 +1,30 @@
1
+ import { DEFLATE64_CODEC, DEFLATE_CODEC, STORE_CODEC, ZSTD_CODEC } from './codecs.js';
2
+ const codecs = new Map();
3
+ let builtinsRegistered = false;
4
+ /** Register a custom ZIP compression codec by method id. */
5
+ export function registerCompressionCodec(codec) {
6
+ codecs.set(codec.methodId, codec);
7
+ }
8
+ /** Look up a registered ZIP compression codec by method id. */
9
+ export function getCompressionCodec(methodId) {
10
+ return codecs.get(methodId);
11
+ }
12
+ /** Check whether a ZIP compression codec is registered. */
13
+ export function hasCompressionCodec(methodId) {
14
+ return codecs.has(methodId);
15
+ }
16
+ /** List all registered ZIP compression codecs. */
17
+ export function listCompressionCodecs() {
18
+ return [...codecs.values()];
19
+ }
20
+ function registerBuiltins() {
21
+ if (builtinsRegistered)
22
+ return;
23
+ builtinsRegistered = true;
24
+ registerCompressionCodec(STORE_CODEC);
25
+ registerCompressionCodec(DEFLATE_CODEC);
26
+ registerCompressionCodec(ZSTD_CODEC);
27
+ registerCompressionCodec(DEFLATE64_CODEC);
28
+ }
29
+ registerBuiltins();
30
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/compression/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;AACtD,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB,CAAC,KAA0B;IACjE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACtC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IACxC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACrC,wBAAwB,CAAC,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { CompressionProfile } from '../compress/types.js';
2
+ export type CompressionAlgorithm = 'gzip' | 'deflate' | 'deflate-raw' | 'brotli' | 'zstd' | 'bzip2' | 'xz';
3
+ export type CompressionMode = 'compress' | 'decompress';
4
+ export type CompressionProgress = {
5
+ bytesIn: bigint;
6
+ bytesOut: bigint;
7
+ };
8
+ export interface CompressionTransformOptions {
9
+ algorithm: CompressionAlgorithm;
10
+ signal?: AbortSignal;
11
+ onProgress?: (event: CompressionProgress) => void;
12
+ level?: number;
13
+ quality?: number;
14
+ maxOutputBytes?: bigint | number;
15
+ maxCompressionRatio?: number;
16
+ maxDictionaryBytes?: bigint | number;
17
+ maxBufferedInputBytes?: number;
18
+ maxBzip2BlockSize?: number;
19
+ /** @internal */
20
+ __xzDebug?: {
21
+ maxBufferedInputBytes?: number;
22
+ maxDictionaryBytesUsed?: number;
23
+ totalBytesIn?: number;
24
+ totalBytesOut?: number;
25
+ };
26
+ profile?: CompressionProfile;
27
+ }
28
+ export declare function createCompressTransform(options: CompressionTransformOptions): Promise<ReadableWritablePair<Uint8Array, Uint8Array>>;
29
+ export declare function createDecompressTransform(options: CompressionTransformOptions): Promise<ReadableWritablePair<Uint8Array, Uint8Array>>;
30
+ export declare function supportsCompressionAlgorithm(algorithm: CompressionAlgorithm, mode: CompressionMode): Promise<boolean>;
31
+ //# sourceMappingURL=streams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/compression/streams.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC3G,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,YAAY,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB;IAChB,SAAS,CAAC,EAAE;QACV,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAEvD;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAEvD;AAED,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,oBAAoB,EAC/B,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CAKlB"}
@@ -0,0 +1,147 @@
1
+ import { ZipError } from '../errors.js';
2
+ import { createBzip2DecompressStream } from './bzip2.js';
3
+ import { createXzDecompressStream } from './xz.js';
4
+ export async function createCompressTransform(options) {
5
+ return createTransform('compress', options);
6
+ }
7
+ export async function createDecompressTransform(options) {
8
+ return createTransform('decompress', options);
9
+ }
10
+ export async function supportsCompressionAlgorithm(algorithm, mode) {
11
+ if (algorithm === 'bzip2')
12
+ return mode === 'decompress';
13
+ if (algorithm === 'xz')
14
+ return mode === 'decompress';
15
+ if (await nodeSupports(algorithm, mode))
16
+ return true;
17
+ return supportsWebCompression(algorithm, mode);
18
+ }
19
+ async function createTransform(mode, options) {
20
+ const { algorithm } = options;
21
+ if (algorithm === 'bzip2') {
22
+ if (mode !== 'decompress') {
23
+ throw new ZipError('ZIP_UNSUPPORTED_METHOD', 'BZip2 compression is not supported');
24
+ }
25
+ const transform = createBzip2DecompressStream({
26
+ ...(options.signal ? { signal: options.signal } : {}),
27
+ ...(options.maxOutputBytes !== undefined ? { maxOutputBytes: options.maxOutputBytes } : {}),
28
+ ...(options.maxCompressionRatio !== undefined ? { maxCompressionRatio: options.maxCompressionRatio } : {}),
29
+ ...(options.maxBzip2BlockSize !== undefined ? { maxBlockSize: options.maxBzip2BlockSize } : {})
30
+ });
31
+ return attachProgress(transform, options.onProgress);
32
+ }
33
+ if (algorithm === 'xz') {
34
+ if (mode !== 'decompress') {
35
+ throw new ZipError('ZIP_UNSUPPORTED_METHOD', 'XZ compression is not supported');
36
+ }
37
+ const transform = createXzDecompressStream({
38
+ ...(options.signal ? { signal: options.signal } : {}),
39
+ ...(options.maxOutputBytes !== undefined ? { maxOutputBytes: options.maxOutputBytes } : {}),
40
+ ...(options.maxCompressionRatio !== undefined ? { maxCompressionRatio: options.maxCompressionRatio } : {}),
41
+ ...(options.maxDictionaryBytes !== undefined ? { maxDictionaryBytes: options.maxDictionaryBytes } : {}),
42
+ ...(options.maxBufferedInputBytes !== undefined ? { maxBufferedInputBytes: options.maxBufferedInputBytes } : {}),
43
+ ...(options.__xzDebug ? { __xzDebug: options.__xzDebug } : {}),
44
+ ...(options.profile ? { profile: options.profile } : {})
45
+ });
46
+ return attachProgress(transform, options.onProgress);
47
+ }
48
+ const nodeBackend = await getNodeBackend();
49
+ if (nodeBackend?.supports(algorithm, mode)) {
50
+ const transform = nodeBackend.create(algorithm, mode, options);
51
+ return attachProgress(transform, options.onProgress);
52
+ }
53
+ if (supportsWebCompression(algorithm, mode)) {
54
+ const transform = createWebCompressionTransform(algorithm, mode, options.signal);
55
+ return attachProgress(transform, options.onProgress);
56
+ }
57
+ throw new ZipError('ZIP_UNSUPPORTED_METHOD', `Compression algorithm ${algorithm} not supported`);
58
+ }
59
+ function isNodeRuntime() {
60
+ return typeof process !== 'undefined' && !!process.versions?.node;
61
+ }
62
+ let nodeBackendPromise = null;
63
+ async function getNodeBackend() {
64
+ if (!isNodeRuntime())
65
+ return null;
66
+ if (!nodeBackendPromise) {
67
+ const moduleUrl = new URL('./node-backend.js', import.meta.url).href;
68
+ nodeBackendPromise = import(moduleUrl)
69
+ .then((mod) => mod.nodeBackend)
70
+ .catch(() => null);
71
+ }
72
+ return nodeBackendPromise;
73
+ }
74
+ async function nodeSupports(algorithm, mode) {
75
+ const backend = await getNodeBackend();
76
+ return backend ? backend.supports(algorithm, mode) : false;
77
+ }
78
+ const webSupportCache = new Map();
79
+ function supportsWebCompression(algorithm, mode) {
80
+ const key = `${mode}:${algorithm}`;
81
+ const cached = webSupportCache.get(key);
82
+ if (cached !== undefined)
83
+ return cached;
84
+ let ok = false;
85
+ try {
86
+ if (mode === 'compress') {
87
+ const stream = new CompressionStream(algorithm);
88
+ void stream;
89
+ }
90
+ else {
91
+ const stream = new DecompressionStream(algorithm);
92
+ void stream;
93
+ }
94
+ ok = true;
95
+ }
96
+ catch {
97
+ ok = false;
98
+ }
99
+ webSupportCache.set(key, ok);
100
+ return ok;
101
+ }
102
+ function createWebCompressionTransform(algorithm, mode, signal) {
103
+ let transform;
104
+ try {
105
+ transform = (mode === 'compress'
106
+ ? new CompressionStream(algorithm)
107
+ : new DecompressionStream(algorithm));
108
+ }
109
+ catch {
110
+ throw new ZipError('ZIP_UNSUPPORTED_METHOD', `Compression algorithm ${algorithm} is not supported by Web streams`);
111
+ }
112
+ if (signal) {
113
+ if (signal.aborted) {
114
+ transform.writable.abort(signal.reason).catch(() => { });
115
+ }
116
+ else {
117
+ signal.addEventListener('abort', () => {
118
+ transform.writable.abort(signal.reason).catch(() => { });
119
+ transform.readable.cancel(signal.reason).catch(() => { });
120
+ }, { once: true });
121
+ }
122
+ }
123
+ return transform;
124
+ }
125
+ function attachProgress(transform, onProgress) {
126
+ if (!onProgress)
127
+ return transform;
128
+ let bytesIn = 0n;
129
+ let bytesOut = 0n;
130
+ const inTap = new TransformStream({
131
+ transform(chunk, controller) {
132
+ bytesIn += BigInt(chunk.length);
133
+ onProgress({ bytesIn, bytesOut });
134
+ controller.enqueue(chunk);
135
+ }
136
+ });
137
+ const outTap = new TransformStream({
138
+ transform(chunk, controller) {
139
+ bytesOut += BigInt(chunk.length);
140
+ onProgress({ bytesIn, bytesOut });
141
+ controller.enqueue(chunk);
142
+ }
143
+ });
144
+ const readable = inTap.readable.pipeThrough(transform).pipeThrough(outTap);
145
+ return { readable, writable: inTap.writable };
146
+ }
147
+ //# sourceMappingURL=streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/compression/streams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /** Readable/writable pair used by ZIP compression codecs. */
2
+ export type ZipCompressionStream = ReadableWritablePair<Uint8Array, Uint8Array>;
3
+ /** Options for ZIP decompression streams. */
4
+ export type ZipDecompressionOptions = {
5
+ signal?: AbortSignal;
6
+ };
7
+ /** Options for ZIP compression streams. */
8
+ export type ZipCompressionOptions = {
9
+ signal?: AbortSignal;
10
+ };
11
+ /** Codec interface for ZIP compression methods. */
12
+ export type ZipCompressionCodec = {
13
+ methodId: number;
14
+ name: string;
15
+ supportsStreaming: boolean;
16
+ createDecompressStream(options?: ZipDecompressionOptions): ZipCompressionStream | Promise<ZipCompressionStream>;
17
+ createCompressStream?(options?: ZipCompressionOptions): ZipCompressionStream | Promise<ZipCompressionStream>;
18
+ };
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compression/types.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAEhF,6CAA6C;AAC7C,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChH,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC9G,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/compression/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import type { CompressionProfile } from '../compress/types.js';
2
+ export type XzDecompressOptions = {
3
+ signal?: AbortSignal;
4
+ maxOutputBytes?: bigint | number;
5
+ maxCompressionRatio?: number;
6
+ maxDictionaryBytes?: bigint | number;
7
+ maxBufferedInputBytes?: number;
8
+ profile?: CompressionProfile;
9
+ };
10
+ export type XzLimitOptions = {
11
+ maxDictionaryBytes?: bigint | number;
12
+ maxBufferedInputBytes?: number;
13
+ profile?: CompressionProfile;
14
+ };
15
+ export declare function createXzDecompressStream(options?: XzDecompressOptions): ReadableWritablePair<Uint8Array, Uint8Array>;
16
+ export declare function resolveXzLimits(options?: XzLimitOptions): {
17
+ maxDictionaryBytes: bigint;
18
+ maxBufferedInputBytes: number;
19
+ };
20
+ export declare function readXzDictionarySize(data: Uint8Array): number | undefined;
21
+ //# sourceMappingURL=xz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xz.d.ts","sourceRoot":"","sources":["../../src/compression/xz.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AA4BF,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,mBAAwB,GAChC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAkC9C;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,cAAmB,GAAG;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CASA;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAqDzE"}