7z-iterator 0.2.9 → 0.2.10

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 (84) hide show
  1. package/dist/cjs/FileEntry.js.map +1 -1
  2. package/dist/cjs/SevenZipIterator.js.map +1 -1
  3. package/dist/cjs/compat.js.map +1 -1
  4. package/dist/cjs/lib/streamToSource.js.map +1 -1
  5. package/dist/cjs/nextEntry.js.map +1 -1
  6. package/dist/cjs/sevenz/NumberCodec.js.map +1 -1
  7. package/dist/cjs/sevenz/SevenZipParser.js.map +1 -1
  8. package/dist/cjs/sevenz/codecs/Aes.js.map +1 -1
  9. package/dist/cjs/sevenz/codecs/Bcj.js +1 -1
  10. package/dist/cjs/sevenz/codecs/Bcj.js.map +1 -1
  11. package/dist/cjs/sevenz/codecs/Bcj2.js.map +1 -1
  12. package/dist/cjs/sevenz/codecs/BcjArm.js.map +1 -1
  13. package/dist/cjs/sevenz/codecs/BcjArm64.js.map +1 -1
  14. package/dist/cjs/sevenz/codecs/BcjArmt.js.map +1 -1
  15. package/dist/cjs/sevenz/codecs/BcjIa64.js.map +1 -1
  16. package/dist/cjs/sevenz/codecs/BcjPpc.js.map +1 -1
  17. package/dist/cjs/sevenz/codecs/BcjSparc.js.map +1 -1
  18. package/dist/cjs/sevenz/codecs/Delta.js.map +1 -1
  19. package/dist/cjs/sevenz/codecs/Lzma.js.map +1 -1
  20. package/dist/cjs/sevenz/codecs/Lzma2.js.map +1 -1
  21. package/dist/cjs/sevenz/codecs/createBufferingDecoder.js.map +1 -1
  22. package/dist/cjs/sevenz/codecs/index.js.map +1 -1
  23. package/dist/cjs/sevenz/codecs/lzmaCompat.d.cts +1 -1
  24. package/dist/cjs/sevenz/codecs/lzmaCompat.d.ts +1 -1
  25. package/dist/cjs/sevenz/codecs/lzmaCompat.js.map +1 -1
  26. package/dist/cjs/sevenz/codecs/streams.js.map +1 -1
  27. package/dist/cjs/sevenz/constants.d.cts +8 -8
  28. package/dist/cjs/sevenz/constants.d.ts +8 -8
  29. package/dist/cjs/sevenz/constants.js.map +1 -1
  30. package/dist/cjs/sevenz/headers.js +1 -1
  31. package/dist/cjs/sevenz/headers.js.map +1 -1
  32. package/dist/esm/FileEntry.js +1 -1
  33. package/dist/esm/FileEntry.js.map +1 -1
  34. package/dist/esm/SevenZipIterator.js +6 -6
  35. package/dist/esm/SevenZipIterator.js.map +1 -1
  36. package/dist/esm/compat.js +2 -2
  37. package/dist/esm/compat.js.map +1 -1
  38. package/dist/esm/lib/streamToSource.js +12 -12
  39. package/dist/esm/lib/streamToSource.js.map +1 -1
  40. package/dist/esm/nextEntry.js +11 -11
  41. package/dist/esm/nextEntry.js.map +1 -1
  42. package/dist/esm/sevenz/NumberCodec.js +19 -19
  43. package/dist/esm/sevenz/NumberCodec.js.map +1 -1
  44. package/dist/esm/sevenz/SevenZipParser.js +191 -191
  45. package/dist/esm/sevenz/SevenZipParser.js.map +1 -1
  46. package/dist/esm/sevenz/codecs/Aes.js +29 -29
  47. package/dist/esm/sevenz/codecs/Aes.js.map +1 -1
  48. package/dist/esm/sevenz/codecs/Bcj.js +8 -8
  49. package/dist/esm/sevenz/codecs/Bcj.js.map +1 -1
  50. package/dist/esm/sevenz/codecs/Bcj2.js +35 -35
  51. package/dist/esm/sevenz/codecs/Bcj2.js.map +1 -1
  52. package/dist/esm/sevenz/codecs/BcjArm.js +4 -4
  53. package/dist/esm/sevenz/codecs/BcjArm.js.map +1 -1
  54. package/dist/esm/sevenz/codecs/BcjArm64.js +5 -5
  55. package/dist/esm/sevenz/codecs/BcjArm64.js.map +1 -1
  56. package/dist/esm/sevenz/codecs/BcjArmt.js +10 -10
  57. package/dist/esm/sevenz/codecs/BcjArmt.js.map +1 -1
  58. package/dist/esm/sevenz/codecs/BcjIa64.js +24 -24
  59. package/dist/esm/sevenz/codecs/BcjIa64.js.map +1 -1
  60. package/dist/esm/sevenz/codecs/BcjPpc.js +5 -5
  61. package/dist/esm/sevenz/codecs/BcjPpc.js.map +1 -1
  62. package/dist/esm/sevenz/codecs/BcjSparc.js +8 -8
  63. package/dist/esm/sevenz/codecs/BcjSparc.js.map +1 -1
  64. package/dist/esm/sevenz/codecs/Delta.js +6 -6
  65. package/dist/esm/sevenz/codecs/Delta.js.map +1 -1
  66. package/dist/esm/sevenz/codecs/Lzma.js +16 -16
  67. package/dist/esm/sevenz/codecs/Lzma.js.map +1 -1
  68. package/dist/esm/sevenz/codecs/Lzma2.js +35 -35
  69. package/dist/esm/sevenz/codecs/Lzma2.js.map +1 -1
  70. package/dist/esm/sevenz/codecs/createBufferingDecoder.js +3 -3
  71. package/dist/esm/sevenz/codecs/createBufferingDecoder.js.map +1 -1
  72. package/dist/esm/sevenz/codecs/index.js +6 -6
  73. package/dist/esm/sevenz/codecs/index.js.map +1 -1
  74. package/dist/esm/sevenz/codecs/lzmaCompat.d.ts +1 -1
  75. package/dist/esm/sevenz/codecs/lzmaCompat.js +5 -5
  76. package/dist/esm/sevenz/codecs/lzmaCompat.js.map +1 -1
  77. package/dist/esm/sevenz/codecs/streams.js +13 -13
  78. package/dist/esm/sevenz/codecs/streams.js.map +1 -1
  79. package/dist/esm/sevenz/constants.d.ts +8 -8
  80. package/dist/esm/sevenz/constants.js +9 -9
  81. package/dist/esm/sevenz/constants.js.map +1 -1
  82. package/dist/esm/sevenz/headers.js +134 -134
  83. package/dist/esm/sevenz/headers.js.map +1 -1
  84. package/package.json +20 -20
@@ -8,13 +8,13 @@
8
8
  * The native decoder uses Node.js streams which integrate naturally with
9
9
  * the callback-based async pattern used throughout the iterator libraries.
10
10
  */ import Module from 'module';
11
- var _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
11
+ const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
12
12
  // Try to load lzma-native (only on Node 10+ where ES6 class syntax is supported)
13
13
  // Note: We must check the version BEFORE requiring because syntax errors during
14
14
  // module parsing cannot be caught by try/catch
15
- var lzmaNative = null;
16
- var _hasNativeLzmaLib = false;
17
- var major = +process.versions.node.split('.')[0];
15
+ let lzmaNative = null;
16
+ let _hasNativeLzmaLib = false;
17
+ const major = +process.versions.node.split('.')[0];
18
18
  if (major >= 10) {
19
19
  try {
20
20
  lzmaNative = _require('lzma-native');
@@ -25,7 +25,7 @@ if (major >= 10) {
25
25
  }
26
26
  }
27
27
  // Export whether native lzma is available for streaming
28
- export var hasNativeLzma = _hasNativeLzmaLib;
28
+ export const hasNativeLzma = _hasNativeLzmaLib;
29
29
  /**
30
30
  * Create a native LZMA2 decoder stream
31
31
  * Returns a Transform stream that decodes LZMA2 data
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/lzmaCompat.ts"],"sourcesContent":["/**\n * LZMA compatibility layer - uses native lzma when available, falls back to lzma-purejs\n *\n * lzma-native provides native liblzma bindings with rawDecoder support.\n * This gives significant performance improvements on Node.js 8+ while\n * maintaining compatibility with Node.js 0.8+ via lzma-purejs fallback.\n *\n * The native decoder uses Node.js streams which integrate naturally with\n * the callback-based async pattern used throughout the iterator libraries.\n */\n\nimport Module from 'module';\nimport type { Transform } from 'readable-stream';\n\nvar _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Try to load lzma-native (only on Node 10+ where ES6 class syntax is supported)\n// Note: We must check the version BEFORE requiring because syntax errors during\n// module parsing cannot be caught by try/catch\nvar lzmaNative: typeof import('lzma-native') | null = null;\nvar _hasNativeLzmaLib = false;\nvar major = +process.versions.node.split('.')[0];\n\nif (major >= 10) {\n try {\n lzmaNative = _require('lzma-native');\n // Verify rawDecoder support\n _hasNativeLzmaLib = lzmaNative !== null && typeof lzmaNative.createStream === 'function';\n } catch (_e) {\n // lzma-native not available - will use lzma-purejs\n }\n}\n\n// Export whether native lzma is available for streaming\nexport var hasNativeLzma = _hasNativeLzmaLib;\n\n/**\n * Create a native LZMA2 decoder stream\n * Returns a Transform stream that decodes LZMA2 data\n *\n * Note: Native LZMA2 decoder disabled due to LZMA_DATA_ERROR issues with\n * lzma-native's rawDecoder for LZMA2. The native decoder fails partway through\n * decompression on certain archives (e.g., Node.js Windows releases), reporting\n * \"Data is corrupt\" even when the data is valid. Falls back to lzma-purejs\n * which handles all LZMA2 streams correctly.\n *\n * @param _dictSize - Dictionary size (unused, native disabled)\n * @returns null - always falls back to pure JS decoder\n */\nexport function createNativeLzma2Decoder(_dictSize?: number): Transform | null {\n // Native LZMA2 disabled - lzma-native's rawDecoder has issues with certain\n // LZMA2 streams (LZMA_DATA_ERROR: Data is corrupt), even when data is valid.\n // The pure JS lzma-purejs implementation handles all streams correctly.\n return null;\n}\n\n/**\n * Create a native LZMA1 decoder stream\n * Returns a Transform stream that decodes LZMA1 data\n *\n * Note: Native LZMA1 decoder disabled due to LZMA_BUF_ERROR issues with\n * lzma-native's rawDecoder for LZMA1. Falls back to lzma-purejs which\n * handles 7z's LZMA1 format correctly. LZMA2 native works fine.\n *\n * @param _lc - Literal context bits (0-8)\n * @param _lp - Literal position bits (0-4)\n * @param _pb - Position bits (0-4)\n * @param _dictSize - Dictionary size\n * @returns null - always falls back to pure JS decoder\n */\nexport function createNativeLzma1Decoder(_lc: number, _lp: number, _pb: number, _dictSize: number): Transform | null {\n // Native LZMA1 disabled - lzma-native's rawDecoder has issues with 7z's LZMA1 format\n // (LZMA_BUF_ERROR: No progress is possible)\n // LZMA2 native works correctly and is more common in modern 7z files\n return null;\n}\n"],"names":["Module","_require","require","createRequire","url","lzmaNative","_hasNativeLzmaLib","major","process","versions","node","split","createStream","_e","hasNativeLzma","createNativeLzma2Decoder","_dictSize","createNativeLzma1Decoder","_lc","_lp","_pb"],"mappings":"AAAA;;;;;;;;;CASC,GAED,OAAOA,YAAY,SAAS;AAG5B,IAAIC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAExF,iFAAiF;AACjF,gFAAgF;AAChF,+CAA+C;AAC/C,IAAIG,aAAkD;AACtD,IAAIC,oBAAoB;AACxB,IAAIC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAEhD,IAAIJ,SAAS,IAAI;IACf,IAAI;QACFF,aAAaJ,SAAS;QACtB,4BAA4B;QAC5BK,oBAAoBD,eAAe,QAAQ,OAAOA,WAAWO,YAAY,KAAK;IAChF,EAAE,OAAOC,IAAI;IACX,mDAAmD;IACrD;AACF;AAEA,wDAAwD;AACxD,OAAO,IAAIC,gBAAgBR,kBAAkB;AAE7C;;;;;;;;;;;;CAYC,GACD,OAAO,SAASS,yBAAyBC,SAAkB;IACzD,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,OAAO;AACT;AAEA;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASC,yBAAyBC,GAAW,EAAEC,GAAW,EAAEC,GAAW,EAAEJ,SAAiB;IAC/F,qFAAqF;IACrF,4CAA4C;IAC5C,qEAAqE;IACrE,OAAO;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/lzmaCompat.ts"],"sourcesContent":["/**\n * LZMA compatibility layer - uses native lzma when available, falls back to lzma-purejs\n *\n * lzma-native provides native liblzma bindings with rawDecoder support.\n * This gives significant performance improvements on Node.js 8+ while\n * maintaining compatibility with Node.js 0.8+ via lzma-purejs fallback.\n *\n * The native decoder uses Node.js streams which integrate naturally with\n * the callback-based async pattern used throughout the iterator libraries.\n */\n\nimport Module from 'module';\nimport type { Transform } from 'readable-stream';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Try to load lzma-native (only on Node 10+ where ES6 class syntax is supported)\n// Note: We must check the version BEFORE requiring because syntax errors during\n// module parsing cannot be caught by try/catch\nlet lzmaNative: typeof import('lzma-native') | null = null;\nlet _hasNativeLzmaLib = false;\nconst major = +process.versions.node.split('.')[0];\n\nif (major >= 10) {\n try {\n lzmaNative = _require('lzma-native');\n // Verify rawDecoder support\n _hasNativeLzmaLib = lzmaNative !== null && typeof lzmaNative.createStream === 'function';\n } catch (_e) {\n // lzma-native not available - will use lzma-purejs\n }\n}\n\n// Export whether native lzma is available for streaming\nexport const hasNativeLzma = _hasNativeLzmaLib;\n\n/**\n * Create a native LZMA2 decoder stream\n * Returns a Transform stream that decodes LZMA2 data\n *\n * Note: Native LZMA2 decoder disabled due to LZMA_DATA_ERROR issues with\n * lzma-native's rawDecoder for LZMA2. The native decoder fails partway through\n * decompression on certain archives (e.g., Node.js Windows releases), reporting\n * \"Data is corrupt\" even when the data is valid. Falls back to lzma-purejs\n * which handles all LZMA2 streams correctly.\n *\n * @param _dictSize - Dictionary size (unused, native disabled)\n * @returns null - always falls back to pure JS decoder\n */\nexport function createNativeLzma2Decoder(_dictSize?: number): Transform | null {\n // Native LZMA2 disabled - lzma-native's rawDecoder has issues with certain\n // LZMA2 streams (LZMA_DATA_ERROR: Data is corrupt), even when data is valid.\n // The pure JS lzma-purejs implementation handles all streams correctly.\n return null;\n}\n\n/**\n * Create a native LZMA1 decoder stream\n * Returns a Transform stream that decodes LZMA1 data\n *\n * Note: Native LZMA1 decoder disabled due to LZMA_BUF_ERROR issues with\n * lzma-native's rawDecoder for LZMA1. Falls back to lzma-purejs which\n * handles 7z's LZMA1 format correctly. LZMA2 native works fine.\n *\n * @param _lc - Literal context bits (0-8)\n * @param _lp - Literal position bits (0-4)\n * @param _pb - Position bits (0-4)\n * @param _dictSize - Dictionary size\n * @returns null - always falls back to pure JS decoder\n */\nexport function createNativeLzma1Decoder(_lc: number, _lp: number, _pb: number, _dictSize: number): Transform | null {\n // Native LZMA1 disabled - lzma-native's rawDecoder has issues with 7z's LZMA1 format\n // (LZMA_BUF_ERROR: No progress is possible)\n // LZMA2 native works correctly and is more common in modern 7z files\n return null;\n}\n"],"names":["Module","_require","require","createRequire","url","lzmaNative","_hasNativeLzmaLib","major","process","versions","node","split","createStream","_e","hasNativeLzma","createNativeLzma2Decoder","_dictSize","createNativeLzma1Decoder","_lc","_lp","_pb"],"mappings":"AAAA;;;;;;;;;CASC,GAED,OAAOA,YAAY,SAAS;AAG5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,iFAAiF;AACjF,gFAAgF;AAChF,+CAA+C;AAC/C,IAAIG,aAAkD;AACtD,IAAIC,oBAAoB;AACxB,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAElD,IAAIJ,SAAS,IAAI;IACf,IAAI;QACFF,aAAaJ,SAAS;QACtB,4BAA4B;QAC5BK,oBAAoBD,eAAe,QAAQ,OAAOA,WAAWO,YAAY,KAAK;IAChF,EAAE,OAAOC,IAAI;IACX,mDAAmD;IACrD;AACF;AAEA,wDAAwD;AACxD,OAAO,MAAMC,gBAAgBR,kBAAkB;AAE/C;;;;;;;;;;;;CAYC,GACD,OAAO,SAASS,yBAAyBC,SAAkB;IACzD,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,OAAO;AACT;AAEA;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASC,yBAAyBC,GAAW,EAAEC,GAAW,EAAEC,GAAW,EAAEJ,SAAiB;IAC/F,qFAAqF;IACrF,4CAA4C;IAC5C,qEAAqE;IACrE,OAAO;AACT"}
@@ -5,16 +5,16 @@ import { allocBufferUnsafe } from 'extract-base-iterator';
5
5
  * Input stream wrapper for lzma-purejs
6
6
  * Wraps a Buffer region as a readable stream interface
7
7
  */ export function createInputStream(buffer, offset, length) {
8
- var pos = 0;
9
- var end = Math.min(offset + length, buffer.length);
10
- var start = offset;
8
+ let pos = 0;
9
+ const end = Math.min(offset + length, buffer.length);
10
+ const start = offset;
11
11
  return {
12
12
  readByte: ()=>{
13
13
  if (start + pos >= end) return -1;
14
14
  return buffer[start + pos++];
15
15
  },
16
16
  read: (buf, bufOffset, len)=>{
17
- var bytesRead = 0;
17
+ let bytesRead = 0;
18
18
  while(bytesRead < len && start + pos < end){
19
19
  buf[bufOffset + bytesRead] = buffer[start + pos];
20
20
  pos++;
@@ -37,9 +37,9 @@ import { allocBufferUnsafe } from 'extract-base-iterator';
37
37
  // Pre-allocation mode: single buffer, no concat needed
38
38
  // Includes bounds checking for safety on older Node.js versions
39
39
  if (expectedSize && expectedSize > 0) {
40
- var buffer = allocBufferUnsafe(expectedSize);
41
- var bufPos = 0;
42
- var bufLen = buffer.length;
40
+ const buffer = allocBufferUnsafe(expectedSize);
41
+ let bufPos = 0;
42
+ const bufLen = buffer.length;
43
43
  return {
44
44
  writeByte: (b)=>{
45
45
  if (bufPos < bufLen) {
@@ -48,7 +48,7 @@ import { allocBufferUnsafe } from 'extract-base-iterator';
48
48
  // Silently ignore overflow (should not happen with correct size)
49
49
  },
50
50
  write: (buf, bufOffset, len)=>{
51
- for(var i = 0; i < len && bufPos < bufLen; i++){
51
+ for(let i = 0; i < len && bufPos < bufLen; i++){
52
52
  buffer[bufPos++] = buf[bufOffset + i];
53
53
  }
54
54
  return len;
@@ -63,10 +63,10 @@ import { allocBufferUnsafe } from 'extract-base-iterator';
63
63
  };
64
64
  }
65
65
  // Chunked mode: accumulate in 64KB chunks (fallback for unknown size)
66
- var chunks = [];
67
- var CHUNK_SIZE = 65536; // 64KB chunks for better memory efficiency
68
- var currentChunk = allocBufferUnsafe(CHUNK_SIZE);
69
- var pos = 0;
66
+ const chunks = [];
67
+ const CHUNK_SIZE = 65536; // 64KB chunks for better memory efficiency
68
+ let currentChunk = allocBufferUnsafe(CHUNK_SIZE);
69
+ let pos = 0;
70
70
  return {
71
71
  writeByte: (b)=>{
72
72
  currentChunk[pos++] = b;
@@ -77,7 +77,7 @@ import { allocBufferUnsafe } from 'extract-base-iterator';
77
77
  }
78
78
  },
79
79
  write: function(buf, bufOffset, len) {
80
- for(var i = 0; i < len; i++){
80
+ for(let i = 0; i < len; i++){
81
81
  this.writeByte(buf[bufOffset + i]);
82
82
  }
83
83
  return len;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/streams.ts"],"sourcesContent":["// Shared stream wrappers for lzma-purejs codec interface\n// These adapters convert between Buffer/lzma-purejs stream interfaces\n\nimport { allocBufferUnsafe } from 'extract-base-iterator';\n\n/**\n * Input stream wrapper for lzma-purejs\n * Wraps a Buffer region as a readable stream interface\n */\nexport function createInputStream(buffer: Buffer, offset: number, length: number) {\n var pos = 0;\n var end = Math.min(offset + length, buffer.length);\n var start = offset;\n\n return {\n readByte: (): number => {\n if (start + pos >= end) return -1;\n return buffer[start + pos++];\n },\n read: (buf: number[], bufOffset: number, len: number): number => {\n var bytesRead = 0;\n while (bytesRead < len && start + pos < end) {\n buf[bufOffset + bytesRead] = buffer[start + pos];\n pos++;\n bytesRead++;\n }\n return bytesRead === 0 ? -1 : bytesRead;\n },\n };\n}\n\n/**\n * Output stream wrapper for lzma-purejs\n * Collects output bytes into Buffer chunks\n * Uses typed arrays for memory efficiency (1 byte per element instead of 8)\n *\n * Memory optimization: If expectedSize is provided, pre-allocates a single buffer\n * to avoid double-memory during Buffer.concat.\n *\n * @param expectedSize - Optional expected output size for pre-allocation\n */\nexport function createOutputStream(expectedSize?: number) {\n // Pre-allocation mode: single buffer, no concat needed\n // Includes bounds checking for safety on older Node.js versions\n if (expectedSize && expectedSize > 0) {\n var buffer = allocBufferUnsafe(expectedSize);\n var bufPos = 0;\n var bufLen = buffer.length;\n\n return {\n writeByte: (b: number): void => {\n if (bufPos < bufLen) {\n buffer[bufPos++] = b;\n }\n // Silently ignore overflow (should not happen with correct size)\n },\n write: (buf: number[], bufOffset: number, len: number): number => {\n for (var i = 0; i < len && bufPos < bufLen; i++) {\n buffer[bufPos++] = buf[bufOffset + i];\n }\n return len;\n },\n flush: (): void => {\n // No-op for pre-allocated buffer\n },\n toBuffer: (): Buffer => {\n // Return only the used portion\n return bufPos < buffer.length ? buffer.slice(0, bufPos) : buffer;\n },\n };\n }\n\n // Chunked mode: accumulate in 64KB chunks (fallback for unknown size)\n var chunks: Buffer[] = [];\n var CHUNK_SIZE = 65536; // 64KB chunks for better memory efficiency\n var currentChunk: Buffer = allocBufferUnsafe(CHUNK_SIZE);\n var pos = 0;\n\n return {\n writeByte: (b: number): void => {\n currentChunk[pos++] = b;\n if (pos >= CHUNK_SIZE) {\n chunks.push(currentChunk);\n currentChunk = allocBufferUnsafe(CHUNK_SIZE);\n pos = 0;\n }\n },\n write: function (buf: number[], bufOffset: number, len: number): number {\n for (var i = 0; i < len; i++) {\n this.writeByte(buf[bufOffset + i]);\n }\n return len;\n },\n flush: (): void => {\n if (pos > 0) {\n // Only keep the used portion of the current chunk\n chunks.push(currentChunk.slice(0, pos));\n currentChunk = allocBufferUnsafe(CHUNK_SIZE);\n pos = 0;\n }\n },\n toBuffer: function (): Buffer {\n this.flush();\n // Optimization: if single chunk, return it directly\n if (chunks.length === 1) {\n return chunks[0];\n }\n return Buffer.concat(chunks);\n },\n };\n}\n"],"names":["allocBufferUnsafe","createInputStream","buffer","offset","length","pos","end","Math","min","start","readByte","read","buf","bufOffset","len","bytesRead","createOutputStream","expectedSize","bufPos","bufLen","writeByte","b","write","i","flush","toBuffer","slice","chunks","CHUNK_SIZE","currentChunk","push","Buffer","concat"],"mappings":"AAAA,yDAAyD;AACzD,sEAAsE;AAEtE,SAASA,iBAAiB,QAAQ,wBAAwB;AAE1D;;;CAGC,GACD,OAAO,SAASC,kBAAkBC,MAAc,EAAEC,MAAc,EAAEC,MAAc;IAC9E,IAAIC,MAAM;IACV,IAAIC,MAAMC,KAAKC,GAAG,CAACL,SAASC,QAAQF,OAAOE,MAAM;IACjD,IAAIK,QAAQN;IAEZ,OAAO;QACLO,UAAU;YACR,IAAID,QAAQJ,OAAOC,KAAK,OAAO,CAAC;YAChC,OAAOJ,MAAM,CAACO,QAAQJ,MAAM;QAC9B;QACAM,MAAM,CAACC,KAAeC,WAAmBC;YACvC,IAAIC,YAAY;YAChB,MAAOA,YAAYD,OAAOL,QAAQJ,MAAMC,IAAK;gBAC3CM,GAAG,CAACC,YAAYE,UAAU,GAAGb,MAAM,CAACO,QAAQJ,IAAI;gBAChDA;gBACAU;YACF;YACA,OAAOA,cAAc,IAAI,CAAC,IAAIA;QAChC;IACF;AACF;AAEA;;;;;;;;;CASC,GACD,OAAO,SAASC,mBAAmBC,YAAqB;IACtD,uDAAuD;IACvD,gEAAgE;IAChE,IAAIA,gBAAgBA,eAAe,GAAG;QACpC,IAAIf,SAASF,kBAAkBiB;QAC/B,IAAIC,SAAS;QACb,IAAIC,SAASjB,OAAOE,MAAM;QAE1B,OAAO;YACLgB,WAAW,CAACC;gBACV,IAAIH,SAASC,QAAQ;oBACnBjB,MAAM,CAACgB,SAAS,GAAGG;gBACrB;YACA,iEAAiE;YACnE;YACAC,OAAO,CAACV,KAAeC,WAAmBC;gBACxC,IAAK,IAAIS,IAAI,GAAGA,IAAIT,OAAOI,SAASC,QAAQI,IAAK;oBAC/CrB,MAAM,CAACgB,SAAS,GAAGN,GAAG,CAACC,YAAYU,EAAE;gBACvC;gBACA,OAAOT;YACT;YACAU,OAAO;YACL,iCAAiC;YACnC;YACAC,UAAU;gBACR,+BAA+B;gBAC/B,OAAOP,SAAShB,OAAOE,MAAM,GAAGF,OAAOwB,KAAK,CAAC,GAAGR,UAAUhB;YAC5D;QACF;IACF;IAEA,sEAAsE;IACtE,IAAIyB,SAAmB,EAAE;IACzB,IAAIC,aAAa,OAAO,2CAA2C;IACnE,IAAIC,eAAuB7B,kBAAkB4B;IAC7C,IAAIvB,MAAM;IAEV,OAAO;QACLe,WAAW,CAACC;YACVQ,YAAY,CAACxB,MAAM,GAAGgB;YACtB,IAAIhB,OAAOuB,YAAY;gBACrBD,OAAOG,IAAI,CAACD;gBACZA,eAAe7B,kBAAkB4B;gBACjCvB,MAAM;YACR;QACF;QACAiB,OAAO,SAAUV,GAAa,EAAEC,SAAiB,EAAEC,GAAW;YAC5D,IAAK,IAAIS,IAAI,GAAGA,IAAIT,KAAKS,IAAK;gBAC5B,IAAI,CAACH,SAAS,CAACR,GAAG,CAACC,YAAYU,EAAE;YACnC;YACA,OAAOT;QACT;QACAU,OAAO;YACL,IAAInB,MAAM,GAAG;gBACX,kDAAkD;gBAClDsB,OAAOG,IAAI,CAACD,aAAaH,KAAK,CAAC,GAAGrB;gBAClCwB,eAAe7B,kBAAkB4B;gBACjCvB,MAAM;YACR;QACF;QACAoB,UAAU;YACR,IAAI,CAACD,KAAK;YACV,oDAAoD;YACpD,IAAIG,OAAOvB,MAAM,KAAK,GAAG;gBACvB,OAAOuB,MAAM,CAAC,EAAE;YAClB;YACA,OAAOI,OAAOC,MAAM,CAACL;QACvB;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/codecs/streams.ts"],"sourcesContent":["// Shared stream wrappers for lzma-purejs codec interface\n// These adapters convert between Buffer/lzma-purejs stream interfaces\n\nimport { allocBufferUnsafe } from 'extract-base-iterator';\n\n/**\n * Input stream wrapper for lzma-purejs\n * Wraps a Buffer region as a readable stream interface\n */\nexport function createInputStream(buffer: Buffer, offset: number, length: number) {\n let pos = 0;\n const end = Math.min(offset + length, buffer.length);\n const start = offset;\n\n return {\n readByte: (): number => {\n if (start + pos >= end) return -1;\n return buffer[start + pos++];\n },\n read: (buf: number[], bufOffset: number, len: number): number => {\n let bytesRead = 0;\n while (bytesRead < len && start + pos < end) {\n buf[bufOffset + bytesRead] = buffer[start + pos];\n pos++;\n bytesRead++;\n }\n return bytesRead === 0 ? -1 : bytesRead;\n },\n };\n}\n\n/**\n * Output stream wrapper for lzma-purejs\n * Collects output bytes into Buffer chunks\n * Uses typed arrays for memory efficiency (1 byte per element instead of 8)\n *\n * Memory optimization: If expectedSize is provided, pre-allocates a single buffer\n * to avoid double-memory during Buffer.concat.\n *\n * @param expectedSize - Optional expected output size for pre-allocation\n */\nexport function createOutputStream(expectedSize?: number) {\n // Pre-allocation mode: single buffer, no concat needed\n // Includes bounds checking for safety on older Node.js versions\n if (expectedSize && expectedSize > 0) {\n const buffer = allocBufferUnsafe(expectedSize);\n let bufPos = 0;\n const bufLen = buffer.length;\n\n return {\n writeByte: (b: number): void => {\n if (bufPos < bufLen) {\n buffer[bufPos++] = b;\n }\n // Silently ignore overflow (should not happen with correct size)\n },\n write: (buf: number[], bufOffset: number, len: number): number => {\n for (let i = 0; i < len && bufPos < bufLen; i++) {\n buffer[bufPos++] = buf[bufOffset + i];\n }\n return len;\n },\n flush: (): void => {\n // No-op for pre-allocated buffer\n },\n toBuffer: (): Buffer => {\n // Return only the used portion\n return bufPos < buffer.length ? buffer.slice(0, bufPos) : buffer;\n },\n };\n }\n\n // Chunked mode: accumulate in 64KB chunks (fallback for unknown size)\n const chunks: Buffer[] = [];\n const CHUNK_SIZE = 65536; // 64KB chunks for better memory efficiency\n let currentChunk: Buffer = allocBufferUnsafe(CHUNK_SIZE);\n let pos = 0;\n\n return {\n writeByte: (b: number): void => {\n currentChunk[pos++] = b;\n if (pos >= CHUNK_SIZE) {\n chunks.push(currentChunk);\n currentChunk = allocBufferUnsafe(CHUNK_SIZE);\n pos = 0;\n }\n },\n write: function (buf: number[], bufOffset: number, len: number): number {\n for (let i = 0; i < len; i++) {\n this.writeByte(buf[bufOffset + i]);\n }\n return len;\n },\n flush: (): void => {\n if (pos > 0) {\n // Only keep the used portion of the current chunk\n chunks.push(currentChunk.slice(0, pos));\n currentChunk = allocBufferUnsafe(CHUNK_SIZE);\n pos = 0;\n }\n },\n toBuffer: function (): Buffer {\n this.flush();\n // Optimization: if single chunk, return it directly\n if (chunks.length === 1) {\n return chunks[0];\n }\n return Buffer.concat(chunks);\n },\n };\n}\n"],"names":["allocBufferUnsafe","createInputStream","buffer","offset","length","pos","end","Math","min","start","readByte","read","buf","bufOffset","len","bytesRead","createOutputStream","expectedSize","bufPos","bufLen","writeByte","b","write","i","flush","toBuffer","slice","chunks","CHUNK_SIZE","currentChunk","push","Buffer","concat"],"mappings":"AAAA,yDAAyD;AACzD,sEAAsE;AAEtE,SAASA,iBAAiB,QAAQ,wBAAwB;AAE1D;;;CAGC,GACD,OAAO,SAASC,kBAAkBC,MAAc,EAAEC,MAAc,EAAEC,MAAc;IAC9E,IAAIC,MAAM;IACV,MAAMC,MAAMC,KAAKC,GAAG,CAACL,SAASC,QAAQF,OAAOE,MAAM;IACnD,MAAMK,QAAQN;IAEd,OAAO;QACLO,UAAU;YACR,IAAID,QAAQJ,OAAOC,KAAK,OAAO,CAAC;YAChC,OAAOJ,MAAM,CAACO,QAAQJ,MAAM;QAC9B;QACAM,MAAM,CAACC,KAAeC,WAAmBC;YACvC,IAAIC,YAAY;YAChB,MAAOA,YAAYD,OAAOL,QAAQJ,MAAMC,IAAK;gBAC3CM,GAAG,CAACC,YAAYE,UAAU,GAAGb,MAAM,CAACO,QAAQJ,IAAI;gBAChDA;gBACAU;YACF;YACA,OAAOA,cAAc,IAAI,CAAC,IAAIA;QAChC;IACF;AACF;AAEA;;;;;;;;;CASC,GACD,OAAO,SAASC,mBAAmBC,YAAqB;IACtD,uDAAuD;IACvD,gEAAgE;IAChE,IAAIA,gBAAgBA,eAAe,GAAG;QACpC,MAAMf,SAASF,kBAAkBiB;QACjC,IAAIC,SAAS;QACb,MAAMC,SAASjB,OAAOE,MAAM;QAE5B,OAAO;YACLgB,WAAW,CAACC;gBACV,IAAIH,SAASC,QAAQ;oBACnBjB,MAAM,CAACgB,SAAS,GAAGG;gBACrB;YACA,iEAAiE;YACnE;YACAC,OAAO,CAACV,KAAeC,WAAmBC;gBACxC,IAAK,IAAIS,IAAI,GAAGA,IAAIT,OAAOI,SAASC,QAAQI,IAAK;oBAC/CrB,MAAM,CAACgB,SAAS,GAAGN,GAAG,CAACC,YAAYU,EAAE;gBACvC;gBACA,OAAOT;YACT;YACAU,OAAO;YACL,iCAAiC;YACnC;YACAC,UAAU;gBACR,+BAA+B;gBAC/B,OAAOP,SAAShB,OAAOE,MAAM,GAAGF,OAAOwB,KAAK,CAAC,GAAGR,UAAUhB;YAC5D;QACF;IACF;IAEA,sEAAsE;IACtE,MAAMyB,SAAmB,EAAE;IAC3B,MAAMC,aAAa,OAAO,2CAA2C;IACrE,IAAIC,eAAuB7B,kBAAkB4B;IAC7C,IAAIvB,MAAM;IAEV,OAAO;QACLe,WAAW,CAACC;YACVQ,YAAY,CAACxB,MAAM,GAAGgB;YACtB,IAAIhB,OAAOuB,YAAY;gBACrBD,OAAOG,IAAI,CAACD;gBACZA,eAAe7B,kBAAkB4B;gBACjCvB,MAAM;YACR;QACF;QACAiB,OAAO,SAAUV,GAAa,EAAEC,SAAiB,EAAEC,GAAW;YAC5D,IAAK,IAAIS,IAAI,GAAGA,IAAIT,KAAKS,IAAK;gBAC5B,IAAI,CAACH,SAAS,CAACR,GAAG,CAACC,YAAYU,EAAE;YACnC;YACA,OAAOT;QACT;QACAU,OAAO;YACL,IAAInB,MAAM,GAAG;gBACX,kDAAkD;gBAClDsB,OAAOG,IAAI,CAACD,aAAaH,KAAK,CAAC,GAAGrB;gBAClCwB,eAAe7B,kBAAkB4B;gBACjCvB,MAAM;YACR;QACF;QACAoB,UAAU;YACR,IAAI,CAACD,KAAK;YACV,oDAAoD;YACpD,IAAIG,OAAOvB,MAAM,KAAK,GAAG;gBACvB,OAAOuB,MAAM,CAAC,EAAE;YAClB;YACA,OAAOI,OAAOC,MAAM,CAACL;QACvB;IACF;AACF"}
@@ -1,7 +1,7 @@
1
- export declare var SEVENZ_MAGIC: number[];
2
- export declare var SIGNATURE_HEADER_SIZE: number;
3
- export declare var START_HEADER_SIZE: number;
4
- export declare var PropertyId: {
1
+ export declare const SEVENZ_MAGIC: number[];
2
+ export declare const SIGNATURE_HEADER_SIZE = 32;
3
+ export declare const START_HEADER_SIZE = 20;
4
+ export declare const PropertyId: {
5
5
  kEnd: number;
6
6
  kHeader: number;
7
7
  kArchiveProperties: number;
@@ -29,7 +29,7 @@ export declare var PropertyId: {
29
29
  kStartPos: number;
30
30
  kDummy: number;
31
31
  };
32
- export declare var CodecId: {
32
+ export declare const CodecId: {
33
33
  COPY: number[];
34
34
  DELTA: number[];
35
35
  LZMA: number[];
@@ -47,7 +47,7 @@ export declare var CodecId: {
47
47
  BZIP2: number[];
48
48
  AES: number[];
49
49
  };
50
- export declare var FileAttribute: {
50
+ export declare const FileAttribute: {
51
51
  READONLY: number;
52
52
  HIDDEN: number;
53
53
  SYSTEM: number;
@@ -64,7 +64,7 @@ export declare var FileAttribute: {
64
64
  ENCRYPTED: number;
65
65
  UNIX_EXTENSION: number;
66
66
  };
67
- export declare var UnixMode: {
67
+ export declare const UnixMode: {
68
68
  DIR: number;
69
69
  FILE: number;
70
70
  SYMLINK: number;
@@ -74,7 +74,7 @@ export declare var UnixMode: {
74
74
  DEFAULT_DIR: number;
75
75
  DEFAULT_FILE: number;
76
76
  };
77
- export declare var ErrorCode: {
77
+ export declare const ErrorCode: {
78
78
  INVALID_SIGNATURE: string;
79
79
  CRC_MISMATCH: string;
80
80
  UNSUPPORTED_CODEC: string;
@@ -1,7 +1,7 @@
1
1
  // 7z format constants
2
2
  // Reference: https://py7zr.readthedocs.io/en/latest/archive_format.html
3
3
  // 7z signature: '7z' + magic bytes
4
- export var SEVENZ_MAGIC = [
4
+ export const SEVENZ_MAGIC = [
5
5
  0x37,
6
6
  0x7a,
7
7
  0xbc,
@@ -10,10 +10,10 @@ export var SEVENZ_MAGIC = [
10
10
  0x1c
11
11
  ];
12
12
  // Header sizes
13
- export var SIGNATURE_HEADER_SIZE = 32;
14
- export var START_HEADER_SIZE = 20; // Part of signature header after magic + version
13
+ export const SIGNATURE_HEADER_SIZE = 32;
14
+ export const START_HEADER_SIZE = 20; // Part of signature header after magic + version
15
15
  // Property IDs for encoded header
16
- export var PropertyId = {
16
+ export const PropertyId = {
17
17
  kEnd: 0x00,
18
18
  kHeader: 0x01,
19
19
  kArchiveProperties: 0x02,
@@ -44,7 +44,7 @@ export var PropertyId = {
44
44
  // Codec IDs
45
45
  // 7z uses variable-length codec IDs
46
46
  // Reference: 7za i output shows hex codec IDs (e.g., 3030501 = ARM)
47
- export var CodecId = {
47
+ export const CodecId = {
48
48
  COPY: [
49
49
  0x00
50
50
  ],
@@ -130,7 +130,7 @@ export var CodecId = {
130
130
  ]
131
131
  };
132
132
  // File attribute flags (Windows style, stored in FilesInfo)
133
- export var FileAttribute = {
133
+ export const FileAttribute = {
134
134
  READONLY: 0x01,
135
135
  HIDDEN: 0x02,
136
136
  SYSTEM: 0x04,
@@ -148,7 +148,7 @@ export var FileAttribute = {
148
148
  UNIX_EXTENSION: 0x8000
149
149
  };
150
150
  // Unix permission modes (decimal values for Node 0.8 compatibility)
151
- export var UnixMode = {
151
+ export const UnixMode = {
152
152
  DIR: 16384,
153
153
  FILE: 32768,
154
154
  SYMLINK: 40960,
@@ -159,7 +159,7 @@ export var UnixMode = {
159
159
  DEFAULT_FILE: 420
160
160
  };
161
161
  // Error codes
162
- export var ErrorCode = {
162
+ export const ErrorCode = {
163
163
  INVALID_SIGNATURE: 'INVALID_SIGNATURE',
164
164
  CRC_MISMATCH: 'CRC_MISMATCH',
165
165
  UNSUPPORTED_CODEC: 'UNSUPPORTED_CODEC',
@@ -174,7 +174,7 @@ export var ErrorCode = {
174
174
  /**
175
175
  * Create an error with a code property
176
176
  */ export function createCodedError(message, code) {
177
- var err = new Error(message);
177
+ const err = new Error(message);
178
178
  err.code = code;
179
179
  return err;
180
180
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/constants.ts"],"sourcesContent":["// 7z format constants\n// Reference: https://py7zr.readthedocs.io/en/latest/archive_format.html\n\n// 7z signature: '7z' + magic bytes\nexport var SEVENZ_MAGIC = [0x37, 0x7a, 0xbc, 0xaf, 0x27, 0x1c];\n\n// Header sizes\nexport var SIGNATURE_HEADER_SIZE = 32;\nexport var START_HEADER_SIZE = 20; // Part of signature header after magic + version\n\n// Property IDs for encoded header\nexport var PropertyId = {\n kEnd: 0x00,\n kHeader: 0x01,\n kArchiveProperties: 0x02,\n kAdditionalStreamsInfo: 0x03,\n kMainStreamsInfo: 0x04,\n kFilesInfo: 0x05,\n kPackInfo: 0x06,\n kUnpackInfo: 0x07,\n kSubStreamsInfo: 0x08,\n kSize: 0x09,\n kCRC: 0x0a,\n kFolder: 0x0b,\n kCodersUnpackSize: 0x0c,\n kNumUnpackStream: 0x0d,\n kEmptyStream: 0x0e,\n kEmptyFile: 0x0f,\n kAnti: 0x10,\n kName: 0x11,\n kCTime: 0x12,\n kATime: 0x13,\n kMTime: 0x14,\n kWinAttributes: 0x15,\n kComment: 0x16,\n kEncodedHeader: 0x17,\n kStartPos: 0x18,\n kDummy: 0x19,\n};\n\n// Codec IDs\n// 7z uses variable-length codec IDs\n// Reference: 7za i output shows hex codec IDs (e.g., 3030501 = ARM)\nexport var CodecId = {\n COPY: [0x00],\n DELTA: [0x03],\n LZMA: [0x03, 0x01, 0x01],\n LZMA2: [0x21],\n BCJ_X86: [0x03, 0x03, 0x01, 0x03],\n BCJ_PPC: [0x03, 0x03, 0x02, 0x05],\n BCJ_IA64: [0x03, 0x03, 0x04, 0x01],\n BCJ_ARM: [0x03, 0x03, 0x05, 0x01],\n BCJ_ARMT: [0x03, 0x03, 0x07, 0x01],\n BCJ_SPARC: [0x03, 0x03, 0x08, 0x05],\n BCJ_ARM64: [0x03, 0x03, 0x0a, 0x01],\n BCJ2: [0x03, 0x03, 0x01, 0x1b],\n PPMD: [0x03, 0x04, 0x01],\n DEFLATE: [0x04, 0x01, 0x08],\n BZIP2: [0x04, 0x02, 0x02],\n AES: [0x06, 0xf1, 0x07, 0x01],\n};\n\n// File attribute flags (Windows style, stored in FilesInfo)\nexport var FileAttribute = {\n READONLY: 0x01,\n HIDDEN: 0x02,\n SYSTEM: 0x04,\n DIRECTORY: 0x10,\n ARCHIVE: 0x20,\n DEVICE: 0x40,\n NORMAL: 0x80,\n TEMPORARY: 0x100,\n SPARSE_FILE: 0x200,\n REPARSE_POINT: 0x400,\n COMPRESSED: 0x800,\n OFFLINE: 0x1000,\n NOT_CONTENT_INDEXED: 0x2000,\n ENCRYPTED: 0x4000,\n UNIX_EXTENSION: 0x8000,\n};\n\n// Unix permission modes (decimal values for Node 0.8 compatibility)\nexport var UnixMode = {\n DIR: 16384, // 0o40000 - directory\n FILE: 32768, // 0o100000 - regular file\n SYMLINK: 40960, // 0o120000 - symbolic link\n RWXRWXRWX: 511, // 0o777\n RWXRXRX: 493, // 0o755\n RWRR: 420, // 0o644\n DEFAULT_DIR: 493, // 0o755 - rwxr-xr-x\n DEFAULT_FILE: 420, // 0o644 - rw-r--r--\n};\n\n// Error codes\nexport var ErrorCode = {\n INVALID_SIGNATURE: 'INVALID_SIGNATURE',\n CRC_MISMATCH: 'CRC_MISMATCH',\n UNSUPPORTED_CODEC: 'UNSUPPORTED_CODEC',\n UNSUPPORTED_VERSION: 'UNSUPPORTED_VERSION',\n UNSUPPORTED_FEATURE: 'UNSUPPORTED_FEATURE',\n TRUNCATED_ARCHIVE: 'TRUNCATED_ARCHIVE',\n CORRUPT_HEADER: 'CORRUPT_HEADER',\n ENCRYPTED_ARCHIVE: 'ENCRYPTED_ARCHIVE',\n COMPRESSED_HEADER: 'COMPRESSED_HEADER',\n DECOMPRESSION_FAILED: 'DECOMPRESSION_FAILED',\n};\n\n// Error with code property\nexport interface CodedError extends Error {\n code: string;\n}\n\n/**\n * Create an error with a code property\n */\nexport function createCodedError(message: string, code: string): CodedError {\n var err = new Error(message) as CodedError;\n err.code = code;\n return err;\n}\n"],"names":["SEVENZ_MAGIC","SIGNATURE_HEADER_SIZE","START_HEADER_SIZE","PropertyId","kEnd","kHeader","kArchiveProperties","kAdditionalStreamsInfo","kMainStreamsInfo","kFilesInfo","kPackInfo","kUnpackInfo","kSubStreamsInfo","kSize","kCRC","kFolder","kCodersUnpackSize","kNumUnpackStream","kEmptyStream","kEmptyFile","kAnti","kName","kCTime","kATime","kMTime","kWinAttributes","kComment","kEncodedHeader","kStartPos","kDummy","CodecId","COPY","DELTA","LZMA","LZMA2","BCJ_X86","BCJ_PPC","BCJ_IA64","BCJ_ARM","BCJ_ARMT","BCJ_SPARC","BCJ_ARM64","BCJ2","PPMD","DEFLATE","BZIP2","AES","FileAttribute","READONLY","HIDDEN","SYSTEM","DIRECTORY","ARCHIVE","DEVICE","NORMAL","TEMPORARY","SPARSE_FILE","REPARSE_POINT","COMPRESSED","OFFLINE","NOT_CONTENT_INDEXED","ENCRYPTED","UNIX_EXTENSION","UnixMode","DIR","FILE","SYMLINK","RWXRWXRWX","RWXRXRX","RWRR","DEFAULT_DIR","DEFAULT_FILE","ErrorCode","INVALID_SIGNATURE","CRC_MISMATCH","UNSUPPORTED_CODEC","UNSUPPORTED_VERSION","UNSUPPORTED_FEATURE","TRUNCATED_ARCHIVE","CORRUPT_HEADER","ENCRYPTED_ARCHIVE","COMPRESSED_HEADER","DECOMPRESSION_FAILED","createCodedError","message","code","err","Error"],"mappings":"AAAA,sBAAsB;AACtB,wEAAwE;AAExE,mCAAmC;AACnC,OAAO,IAAIA,eAAe;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;CAAK,CAAC;AAE/D,eAAe;AACf,OAAO,IAAIC,wBAAwB,GAAG;AACtC,OAAO,IAAIC,oBAAoB,GAAG,CAAC,iDAAiD;AAEpF,kCAAkC;AAClC,OAAO,IAAIC,aAAa;IACtBC,MAAM;IACNC,SAAS;IACTC,oBAAoB;IACpBC,wBAAwB;IACxBC,kBAAkB;IAClBC,YAAY;IACZC,WAAW;IACXC,aAAa;IACbC,iBAAiB;IACjBC,OAAO;IACPC,MAAM;IACNC,SAAS;IACTC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,gBAAgB;IAChBC,UAAU;IACVC,gBAAgB;IAChBC,WAAW;IACXC,QAAQ;AACV,EAAE;AAEF,YAAY;AACZ,oCAAoC;AACpC,oEAAoE;AACpE,OAAO,IAAIC,UAAU;IACnBC,MAAM;QAAC;KAAK;IACZC,OAAO;QAAC;KAAK;IACbC,MAAM;QAAC;QAAM;QAAM;KAAK;IACxBC,OAAO;QAAC;KAAK;IACbC,SAAS;QAAC;QAAM;QAAM;QAAM;KAAK;IACjCC,SAAS;QAAC;QAAM;QAAM;QAAM;KAAK;IACjCC,UAAU;QAAC;QAAM;QAAM;QAAM;KAAK;IAClCC,SAAS;QAAC;QAAM;QAAM;QAAM;KAAK;IACjCC,UAAU;QAAC;QAAM;QAAM;QAAM;KAAK;IAClCC,WAAW;QAAC;QAAM;QAAM;QAAM;KAAK;IACnCC,WAAW;QAAC;QAAM;QAAM;QAAM;KAAK;IACnCC,MAAM;QAAC;QAAM;QAAM;QAAM;KAAK;IAC9BC,MAAM;QAAC;QAAM;QAAM;KAAK;IACxBC,SAAS;QAAC;QAAM;QAAM;KAAK;IAC3BC,OAAO;QAAC;QAAM;QAAM;KAAK;IACzBC,KAAK;QAAC;QAAM;QAAM;QAAM;KAAK;AAC/B,EAAE;AAEF,4DAA4D;AAC5D,OAAO,IAAIC,gBAAgB;IACzBC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC,WAAW;IACXC,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC,WAAW;IACXC,aAAa;IACbC,eAAe;IACfC,YAAY;IACZC,SAAS;IACTC,qBAAqB;IACrBC,WAAW;IACXC,gBAAgB;AAClB,EAAE;AAEF,oEAAoE;AACpE,OAAO,IAAIC,WAAW;IACpBC,KAAK;IACLC,MAAM;IACNC,SAAS;IACTC,WAAW;IACXC,SAAS;IACTC,MAAM;IACNC,aAAa;IACbC,cAAc;AAChB,EAAE;AAEF,cAAc;AACd,OAAO,IAAIC,YAAY;IACrBC,mBAAmB;IACnBC,cAAc;IACdC,mBAAmB;IACnBC,qBAAqB;IACrBC,qBAAqB;IACrBC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,mBAAmB;IACnBC,sBAAsB;AACxB,EAAE;AAOF;;CAEC,GACD,OAAO,SAASC,iBAAiBC,OAAe,EAAEC,IAAY;IAC5D,IAAIC,MAAM,IAAIC,MAAMH;IACpBE,IAAID,IAAI,GAAGA;IACX,OAAOC;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/7z-iterator/src/sevenz/constants.ts"],"sourcesContent":["// 7z format constants\n// Reference: https://py7zr.readthedocs.io/en/latest/archive_format.html\n\n// 7z signature: '7z' + magic bytes\nexport const SEVENZ_MAGIC = [0x37, 0x7a, 0xbc, 0xaf, 0x27, 0x1c];\n\n// Header sizes\nexport const SIGNATURE_HEADER_SIZE = 32;\nexport const START_HEADER_SIZE = 20; // Part of signature header after magic + version\n\n// Property IDs for encoded header\nexport const PropertyId = {\n kEnd: 0x00,\n kHeader: 0x01,\n kArchiveProperties: 0x02,\n kAdditionalStreamsInfo: 0x03,\n kMainStreamsInfo: 0x04,\n kFilesInfo: 0x05,\n kPackInfo: 0x06,\n kUnpackInfo: 0x07,\n kSubStreamsInfo: 0x08,\n kSize: 0x09,\n kCRC: 0x0a,\n kFolder: 0x0b,\n kCodersUnpackSize: 0x0c,\n kNumUnpackStream: 0x0d,\n kEmptyStream: 0x0e,\n kEmptyFile: 0x0f,\n kAnti: 0x10,\n kName: 0x11,\n kCTime: 0x12,\n kATime: 0x13,\n kMTime: 0x14,\n kWinAttributes: 0x15,\n kComment: 0x16,\n kEncodedHeader: 0x17,\n kStartPos: 0x18,\n kDummy: 0x19,\n};\n\n// Codec IDs\n// 7z uses variable-length codec IDs\n// Reference: 7za i output shows hex codec IDs (e.g., 3030501 = ARM)\nexport const CodecId = {\n COPY: [0x00],\n DELTA: [0x03],\n LZMA: [0x03, 0x01, 0x01],\n LZMA2: [0x21],\n BCJ_X86: [0x03, 0x03, 0x01, 0x03],\n BCJ_PPC: [0x03, 0x03, 0x02, 0x05],\n BCJ_IA64: [0x03, 0x03, 0x04, 0x01],\n BCJ_ARM: [0x03, 0x03, 0x05, 0x01],\n BCJ_ARMT: [0x03, 0x03, 0x07, 0x01],\n BCJ_SPARC: [0x03, 0x03, 0x08, 0x05],\n BCJ_ARM64: [0x03, 0x03, 0x0a, 0x01],\n BCJ2: [0x03, 0x03, 0x01, 0x1b],\n PPMD: [0x03, 0x04, 0x01],\n DEFLATE: [0x04, 0x01, 0x08],\n BZIP2: [0x04, 0x02, 0x02],\n AES: [0x06, 0xf1, 0x07, 0x01],\n};\n\n// File attribute flags (Windows style, stored in FilesInfo)\nexport const FileAttribute = {\n READONLY: 0x01,\n HIDDEN: 0x02,\n SYSTEM: 0x04,\n DIRECTORY: 0x10,\n ARCHIVE: 0x20,\n DEVICE: 0x40,\n NORMAL: 0x80,\n TEMPORARY: 0x100,\n SPARSE_FILE: 0x200,\n REPARSE_POINT: 0x400,\n COMPRESSED: 0x800,\n OFFLINE: 0x1000,\n NOT_CONTENT_INDEXED: 0x2000,\n ENCRYPTED: 0x4000,\n UNIX_EXTENSION: 0x8000,\n};\n\n// Unix permission modes (decimal values for Node 0.8 compatibility)\nexport const UnixMode = {\n DIR: 16384, // 0o40000 - directory\n FILE: 32768, // 0o100000 - regular file\n SYMLINK: 40960, // 0o120000 - symbolic link\n RWXRWXRWX: 511, // 0o777\n RWXRXRX: 493, // 0o755\n RWRR: 420, // 0o644\n DEFAULT_DIR: 493, // 0o755 - rwxr-xr-x\n DEFAULT_FILE: 420, // 0o644 - rw-r--r--\n};\n\n// Error codes\nexport const ErrorCode = {\n INVALID_SIGNATURE: 'INVALID_SIGNATURE',\n CRC_MISMATCH: 'CRC_MISMATCH',\n UNSUPPORTED_CODEC: 'UNSUPPORTED_CODEC',\n UNSUPPORTED_VERSION: 'UNSUPPORTED_VERSION',\n UNSUPPORTED_FEATURE: 'UNSUPPORTED_FEATURE',\n TRUNCATED_ARCHIVE: 'TRUNCATED_ARCHIVE',\n CORRUPT_HEADER: 'CORRUPT_HEADER',\n ENCRYPTED_ARCHIVE: 'ENCRYPTED_ARCHIVE',\n COMPRESSED_HEADER: 'COMPRESSED_HEADER',\n DECOMPRESSION_FAILED: 'DECOMPRESSION_FAILED',\n};\n\n// Error with code property\nexport interface CodedError extends Error {\n code: string;\n}\n\n/**\n * Create an error with a code property\n */\nexport function createCodedError(message: string, code: string): CodedError {\n const err = new Error(message) as CodedError;\n err.code = code;\n return err;\n}\n"],"names":["SEVENZ_MAGIC","SIGNATURE_HEADER_SIZE","START_HEADER_SIZE","PropertyId","kEnd","kHeader","kArchiveProperties","kAdditionalStreamsInfo","kMainStreamsInfo","kFilesInfo","kPackInfo","kUnpackInfo","kSubStreamsInfo","kSize","kCRC","kFolder","kCodersUnpackSize","kNumUnpackStream","kEmptyStream","kEmptyFile","kAnti","kName","kCTime","kATime","kMTime","kWinAttributes","kComment","kEncodedHeader","kStartPos","kDummy","CodecId","COPY","DELTA","LZMA","LZMA2","BCJ_X86","BCJ_PPC","BCJ_IA64","BCJ_ARM","BCJ_ARMT","BCJ_SPARC","BCJ_ARM64","BCJ2","PPMD","DEFLATE","BZIP2","AES","FileAttribute","READONLY","HIDDEN","SYSTEM","DIRECTORY","ARCHIVE","DEVICE","NORMAL","TEMPORARY","SPARSE_FILE","REPARSE_POINT","COMPRESSED","OFFLINE","NOT_CONTENT_INDEXED","ENCRYPTED","UNIX_EXTENSION","UnixMode","DIR","FILE","SYMLINK","RWXRWXRWX","RWXRXRX","RWRR","DEFAULT_DIR","DEFAULT_FILE","ErrorCode","INVALID_SIGNATURE","CRC_MISMATCH","UNSUPPORTED_CODEC","UNSUPPORTED_VERSION","UNSUPPORTED_FEATURE","TRUNCATED_ARCHIVE","CORRUPT_HEADER","ENCRYPTED_ARCHIVE","COMPRESSED_HEADER","DECOMPRESSION_FAILED","createCodedError","message","code","err","Error"],"mappings":"AAAA,sBAAsB;AACtB,wEAAwE;AAExE,mCAAmC;AACnC,OAAO,MAAMA,eAAe;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;CAAK,CAAC;AAEjE,eAAe;AACf,OAAO,MAAMC,wBAAwB,GAAG;AACxC,OAAO,MAAMC,oBAAoB,GAAG,CAAC,iDAAiD;AAEtF,kCAAkC;AAClC,OAAO,MAAMC,aAAa;IACxBC,MAAM;IACNC,SAAS;IACTC,oBAAoB;IACpBC,wBAAwB;IACxBC,kBAAkB;IAClBC,YAAY;IACZC,WAAW;IACXC,aAAa;IACbC,iBAAiB;IACjBC,OAAO;IACPC,MAAM;IACNC,SAAS;IACTC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,gBAAgB;IAChBC,UAAU;IACVC,gBAAgB;IAChBC,WAAW;IACXC,QAAQ;AACV,EAAE;AAEF,YAAY;AACZ,oCAAoC;AACpC,oEAAoE;AACpE,OAAO,MAAMC,UAAU;IACrBC,MAAM;QAAC;KAAK;IACZC,OAAO;QAAC;KAAK;IACbC,MAAM;QAAC;QAAM;QAAM;KAAK;IACxBC,OAAO;QAAC;KAAK;IACbC,SAAS;QAAC;QAAM;QAAM;QAAM;KAAK;IACjCC,SAAS;QAAC;QAAM;QAAM;QAAM;KAAK;IACjCC,UAAU;QAAC;QAAM;QAAM;QAAM;KAAK;IAClCC,SAAS;QAAC;QAAM;QAAM;QAAM;KAAK;IACjCC,UAAU;QAAC;QAAM;QAAM;QAAM;KAAK;IAClCC,WAAW;QAAC;QAAM;QAAM;QAAM;KAAK;IACnCC,WAAW;QAAC;QAAM;QAAM;QAAM;KAAK;IACnCC,MAAM;QAAC;QAAM;QAAM;QAAM;KAAK;IAC9BC,MAAM;QAAC;QAAM;QAAM;KAAK;IACxBC,SAAS;QAAC;QAAM;QAAM;KAAK;IAC3BC,OAAO;QAAC;QAAM;QAAM;KAAK;IACzBC,KAAK;QAAC;QAAM;QAAM;QAAM;KAAK;AAC/B,EAAE;AAEF,4DAA4D;AAC5D,OAAO,MAAMC,gBAAgB;IAC3BC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC,WAAW;IACXC,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC,WAAW;IACXC,aAAa;IACbC,eAAe;IACfC,YAAY;IACZC,SAAS;IACTC,qBAAqB;IACrBC,WAAW;IACXC,gBAAgB;AAClB,EAAE;AAEF,oEAAoE;AACpE,OAAO,MAAMC,WAAW;IACtBC,KAAK;IACLC,MAAM;IACNC,SAAS;IACTC,WAAW;IACXC,SAAS;IACTC,MAAM;IACNC,aAAa;IACbC,cAAc;AAChB,EAAE;AAEF,cAAc;AACd,OAAO,MAAMC,YAAY;IACvBC,mBAAmB;IACnBC,cAAc;IACdC,mBAAmB;IACnBC,qBAAqB;IACrBC,qBAAqB;IACrBC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,mBAAmB;IACnBC,sBAAsB;AACxB,EAAE;AAOF;;CAEC,GACD,OAAO,SAASC,iBAAiBC,OAAe,EAAEC,IAAY;IAC5D,MAAMC,MAAM,IAAIC,MAAMH;IACtBE,IAAID,IAAI,GAAGA;IACX,OAAOC;AACT"}