7z-iterator 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/lzma-purejs/lib/LZMA/Decoder.js +15 -9
- package/assets/lzma-purejs/lib/makeBuffer.js +11 -0
- package/dist/cjs/sevenz/codecs/Deflate.js +2 -5
- package/dist/cjs/sevenz/codecs/Deflate.js.map +1 -1
- package/dist/esm/sevenz/codecs/Deflate.js +3 -6
- package/dist/esm/sevenz/codecs/Deflate.js.map +1 -1
- package/package.json +1 -2
|
@@ -79,23 +79,29 @@ LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){
|
|
|
79
79
|
this._numPosBits = numPosBits;
|
|
80
80
|
this._posMask = (1 << numPosBits) - 1;
|
|
81
81
|
this._numPrevBits = numPrevBits;
|
|
82
|
+
// Lazy allocation: only create coders array, allocate individual coders on demand
|
|
83
|
+
// This saves significant memory for archives that don't use all coder slots
|
|
82
84
|
this._coders = [];
|
|
83
|
-
|
|
84
|
-
for (var i = 0; i < count; i++){
|
|
85
|
-
this._coders[i] = new LiteralDecoder.Decoder2();
|
|
86
|
-
}
|
|
85
|
+
this._coderCount = 1 << (this._numPrevBits + this._numPosBits);
|
|
87
86
|
};
|
|
88
87
|
|
|
89
88
|
LiteralDecoder.prototype.init = function(){
|
|
90
|
-
|
|
91
|
-
for (var i = 0; i <
|
|
92
|
-
this._coders[i]
|
|
89
|
+
// Only init coders that have been allocated (lazy allocation support)
|
|
90
|
+
for (var i = 0; i < this._coders.length; i++){
|
|
91
|
+
if (this._coders[i]) {
|
|
92
|
+
this._coders[i].init();
|
|
93
|
+
}
|
|
93
94
|
}
|
|
94
95
|
};
|
|
95
96
|
|
|
96
97
|
LiteralDecoder.prototype.getDecoder = function(pos, prevByte){
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
var index = ((pos & this._posMask) << this._numPrevBits) +
|
|
99
|
+
((prevByte & 0xff) >>> (8 - this._numPrevBits));
|
|
100
|
+
// Lazy allocation: create coder on first access
|
|
101
|
+
if (!this._coders[index]) {
|
|
102
|
+
this._coders[index] = new LiteralDecoder.Decoder2();
|
|
103
|
+
}
|
|
104
|
+
return this._coders[index];
|
|
99
105
|
};
|
|
100
106
|
|
|
101
107
|
var Decoder = function(){
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// Node 0.8 compatible buffer allocation
|
|
4
|
+
// Note: For OutWindow, zero-fill is not required since we write before reading.
|
|
5
|
+
// Using allocUnsafe/uninitialized buffer saves significant memory and time.
|
|
4
6
|
var makeBuffer = function(len) {
|
|
7
|
+
if (Buffer.allocUnsafe) {
|
|
8
|
+
return Buffer.allocUnsafe(len);
|
|
9
|
+
}
|
|
10
|
+
// Node 0.8 fallback - new Buffer() is uninitialized (fast)
|
|
11
|
+
return new Buffer(len);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// Safe version that zero-fills (use when buffer may be read before written)
|
|
15
|
+
makeBuffer.safe = function(len) {
|
|
5
16
|
if (Buffer.alloc) {
|
|
6
17
|
return Buffer.alloc(len);
|
|
7
18
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Deflate codec - standard zlib/zip compression
|
|
2
2
|
// 7z uses raw deflate without zlib or gzip headers
|
|
3
3
|
//
|
|
4
|
-
// Uses
|
|
4
|
+
// Uses native zlib on Node 0.11.12+, falls back to pako for older versions
|
|
5
5
|
"use strict";
|
|
6
6
|
Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
value: true
|
|
@@ -21,7 +21,6 @@ _export(exports, {
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
var _extractbaseiterator = require("extract-base-iterator");
|
|
24
|
-
var _pako = /*#__PURE__*/ _interop_require_default(require("pako"));
|
|
25
24
|
var _createBufferingDecoderts = /*#__PURE__*/ _interop_require_default(require("./createBufferingDecoder.js"));
|
|
26
25
|
function _interop_require_default(obj) {
|
|
27
26
|
return obj && obj.__esModule ? obj : {
|
|
@@ -29,9 +28,7 @@ function _interop_require_default(obj) {
|
|
|
29
28
|
};
|
|
30
29
|
}
|
|
31
30
|
function decodeDeflate(input, _properties, _unpackSize) {
|
|
32
|
-
|
|
33
|
-
var result = _pako.default.inflateRaw(input);
|
|
34
|
-
return (0, _extractbaseiterator.bufferFrom)(result);
|
|
31
|
+
return (0, _extractbaseiterator.inflateRaw)(input);
|
|
35
32
|
}
|
|
36
33
|
function createDeflateDecoder(properties, unpackSize) {
|
|
37
34
|
return (0, _createBufferingDecoderts.default)(decodeDeflate, properties, unpackSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/Deflate.ts"],"sourcesContent":["// Deflate codec - standard zlib/zip compression\n// 7z uses raw deflate without zlib or gzip headers\n//\n// Uses
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/Deflate.ts"],"sourcesContent":["// Deflate codec - standard zlib/zip compression\n// 7z uses raw deflate without zlib or gzip headers\n//\n// Uses native zlib on Node 0.11.12+, falls back to pako for older versions\n\nimport { inflateRaw } from 'extract-base-iterator';\nimport type { Transform } from 'readable-stream';\nimport createBufferingDecoder from './createBufferingDecoder.ts';\n\n/**\n * Decode Deflate compressed data\n *\n * @param input - Deflate compressed data\n * @param _properties - Unused for Deflate\n * @param _unpackSize - Unused for Deflate\n * @returns Decompressed data\n */\nexport function decodeDeflate(input: Buffer, _properties?: Buffer, _unpackSize?: number): Buffer {\n return inflateRaw(input);\n}\n\n/**\n * Create a Deflate decoder Transform stream\n */\nexport function createDeflateDecoder(properties?: Buffer, unpackSize?: number): Transform {\n return createBufferingDecoder(decodeDeflate, properties, unpackSize);\n}\n"],"names":["createDeflateDecoder","decodeDeflate","input","_properties","_unpackSize","inflateRaw","properties","unpackSize","createBufferingDecoder"],"mappings":"AAAA,gDAAgD;AAChD,mDAAmD;AACnD,EAAE;AACF,2EAA2E;;;;;;;;;;;;QAqB3DA;eAAAA;;QAPAC;eAAAA;;;mCAZW;+EAEQ;;;;;;AAU5B,SAASA,cAAcC,KAAa,EAAEC,WAAoB,EAAEC,WAAoB;IACrF,OAAOC,IAAAA,+BAAU,EAACH;AACpB;AAKO,SAASF,qBAAqBM,UAAmB,EAAEC,UAAmB;IAC3E,OAAOC,IAAAA,iCAAsB,EAACP,eAAeK,YAAYC;AAC3D"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
// Deflate codec - standard zlib/zip compression
|
|
2
2
|
// 7z uses raw deflate without zlib or gzip headers
|
|
3
3
|
//
|
|
4
|
-
// Uses
|
|
5
|
-
import {
|
|
6
|
-
import pako from 'pako';
|
|
4
|
+
// Uses native zlib on Node 0.11.12+, falls back to pako for older versions
|
|
5
|
+
import { inflateRaw } from 'extract-base-iterator';
|
|
7
6
|
import createBufferingDecoder from './createBufferingDecoder.js';
|
|
8
7
|
/**
|
|
9
8
|
* Decode Deflate compressed data
|
|
@@ -13,9 +12,7 @@ import createBufferingDecoder from './createBufferingDecoder.js';
|
|
|
13
12
|
* @param _unpackSize - Unused for Deflate
|
|
14
13
|
* @returns Decompressed data
|
|
15
14
|
*/ export function decodeDeflate(input, _properties, _unpackSize) {
|
|
16
|
-
|
|
17
|
-
var result = pako.inflateRaw(input);
|
|
18
|
-
return bufferFrom(result);
|
|
15
|
+
return inflateRaw(input);
|
|
19
16
|
}
|
|
20
17
|
/**
|
|
21
18
|
* Create a Deflate decoder Transform stream
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/Deflate.ts"],"sourcesContent":["// Deflate codec - standard zlib/zip compression\n// 7z uses raw deflate without zlib or gzip headers\n//\n// Uses
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/Deflate.ts"],"sourcesContent":["// Deflate codec - standard zlib/zip compression\n// 7z uses raw deflate without zlib or gzip headers\n//\n// Uses native zlib on Node 0.11.12+, falls back to pako for older versions\n\nimport { inflateRaw } from 'extract-base-iterator';\nimport type { Transform } from 'readable-stream';\nimport createBufferingDecoder from './createBufferingDecoder.ts';\n\n/**\n * Decode Deflate compressed data\n *\n * @param input - Deflate compressed data\n * @param _properties - Unused for Deflate\n * @param _unpackSize - Unused for Deflate\n * @returns Decompressed data\n */\nexport function decodeDeflate(input: Buffer, _properties?: Buffer, _unpackSize?: number): Buffer {\n return inflateRaw(input);\n}\n\n/**\n * Create a Deflate decoder Transform stream\n */\nexport function createDeflateDecoder(properties?: Buffer, unpackSize?: number): Transform {\n return createBufferingDecoder(decodeDeflate, properties, unpackSize);\n}\n"],"names":["inflateRaw","createBufferingDecoder","decodeDeflate","input","_properties","_unpackSize","createDeflateDecoder","properties","unpackSize"],"mappings":"AAAA,gDAAgD;AAChD,mDAAmD;AACnD,EAAE;AACF,2EAA2E;AAE3E,SAASA,UAAU,QAAQ,wBAAwB;AAEnD,OAAOC,4BAA4B,8BAA8B;AAEjE;;;;;;;CAOC,GACD,OAAO,SAASC,cAAcC,KAAa,EAAEC,WAAoB,EAAEC,WAAoB;IACrF,OAAOL,WAAWG;AACpB;AAEA;;CAEC,GACD,OAAO,SAASG,qBAAqBC,UAAmB,EAAEC,UAAmB;IAC3E,OAAOP,uBAAuBC,eAAeK,YAAYC;AAC3D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "7z-iterator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Extract contents from 7z archives using an iterator API. Pure JavaScript, works on Node.js 0.8+",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"extract",
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"mkdirp-classic": "*",
|
|
53
53
|
"on-one": "*",
|
|
54
54
|
"os-shim": "*",
|
|
55
|
-
"pako": "^1.0.11",
|
|
56
55
|
"queue-cb": "*",
|
|
57
56
|
"readable-stream": "^2.3.7",
|
|
58
57
|
"rimraf2": "*",
|