Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

node-7z

quentinrossetti64.7kISC3.0.0TypeScript support: definitely-typed

A Node.js wrapper for 7-Zip with platform binaries

node, 7z, 7za, 7zr, p7zip, 7zip, wrapper

readme

node-7z

A Node.js wrapper for 7-Zip

Release Dependencies Status Linux Build Windows Build Code coverage Code Maintainability Known Vulnerabilities

Usage

import Seven from 'node-7z'

// myStream is a Readable stream
const myStream = Seven.extractFull('./archive.7z', './output/dir/', {
  $progress: true
})

myStream.on('data', function (data) {
  doStuffWith(data) //? { status: 'extracted', file: 'extracted/file.txt" }
})

myStream.on('progress', function (progress) {
  doStuffWith(progress) //? { percent: 67, fileCount: 5, file: undefinded }
})

myStream.on('end', function () {
    // end of the operation, get the number of folders involved in the operation
  myStream.info.get('Folders') //? '4'
})

myStream.on('error', (err) => handleError(err))

Table of content

Installation

npm install --save node-7z

You should have the a 7-Zip executable (v16.02 or greater) available in your system.

  • On Debian and Ubuntu install the p7zip-full package or use 7-Zip 21.02 alpha or higher
  • On Mac OSX use Homebrew brew install p7zip
  • On Windows get 7-Zip from 7-Zip download page.

By default the module calls the 7z binary, it should be available in your PATH.

An alternative is to add the 7zip-bin module to your project. This module contains an up-to-date version of 7-Zip for all available plaforms. Then you can do:

import sevenBin from '7zip-bin'
import { extractFull } from 'node-7z'

const pathTo7zip = sevenBin.path7za
const seven = extractFull('./archive.7z', './output/dir/', {
  $bin: pathTo7zip
})

API

See the 7-Zip documentation for the full list of usages and options (switches).

Commands

Add

Adds files to an archive.

Arguments Type Description
archive string Archive to create
source string|string[] Source files to add to the archive. Multiple sources can be given using an Array
[options] Object Options object. Can be omitted
// adds all *.txt files from current folder and its subfolders to archive Files.7z.
const myStream = Seven.add('Files.7z', '*.txt', {
  recursive: true
})

Delete

Deletes files from an archive.

Arguments Type Description
archive string Archive to target
target string|string[] Target files to remove from the archive. Multiple targets can be given using an Array
[options] Object Options object. Can be omitted
// deletes *.bak files from archive archive.zip.
const myStream = Seven.delete('archive.zip', '*.bak')

Extract

Extracts files from an archive to the current directory or to the output directory. This command copies all extracted files to one directory.

Arguments Type Description
archive string Archive to extract files from
output string Output directory
[options] Object Options object. Can be omitted
// extracts all *.cpp files from archive archive.zip to c:\soft folder.
const myStream = Seven.extract('archive.zip', 'c:/soft', {
  recursive: true,
  $cherryPick: '*.cpp'
})

Extract with full paths

Extracts files from an archive with their full paths in the current directory, or in an output directory if specified.

Arguments Type Description
archive string Archive to extract files from
output string Output directory
[options] Object Options object. Can be omitted
// extracts all *.cpp files from the archive archive.zip to c:\soft folder.
const myStream = Seven.extractFull('archive.zip', 'c:/soft', {
  recursive: true,
  $cherryPick: '*.cpp'
})

Hash

Calculates hash values for files.

Arguments Type Description
target string|string[] Target files to calculate the hash of. Multiple targets can be given using an Array
[options] Object Options object. Can be omitted
// calculates SHA256 for a.iso.
const myStream = Seven.hash('a.iso', {
  hashMethod: 'sha256'
})

List

Lists contents of an archive.

Arguments Type Description
archive string Archive to list the file from
[options] Object Options object. Can be omitted
// list all the *.txt and *.js files in archive.zip
const myStream = Seven.list('archive.zip', {
  $cherryPick: ['*.txt*', '*.js'],
})

Rename

Renames files in an archive.

Arguments Type Description
archive string Archive to target
target Array[string[]] Pair of target/new names files to remove rename. Multiple targets can be given using an Array
[options] Object Options object. Can be omitted
// renames old.txt to new.txt and 2.txt to folder\2new.txt .
const myStream = Seven.rename('a.7z', [
  ['old.txt', 'new.txt'],
  ['2.txt', 'folder/2new.txt']
])

Test integrity

Tests archive files.

Arguments Type Description
archive string Archive to test
[options] Object Options object. Can be omitted
// tests *.doc files in archive archive.zip.
const myStream = Seven.list('archive.zip', {
  recursive: true,
  $cherryPick: '*.doc'
})

Update

Updates older files in the archive and adds files that are not already in the archive.

Arguments Type Description
archive string Archive to create
source string|string[] Source files to update from the file-system to the archive. Multiple sources can be given using an Array
[options] Object Options object. Can be omitted
// updates *.doc files to archive archive.zip.
const myStream = Seven.add('archive.zip', '*.doc')

Options

Switches

In the 7-Zip world, command flags are called switches. In order to use them you can pass their name and value in the Options object

Name Type Description Switches
alternateStreamExtract boolean "Extract file as alternate stream, if there is ':' character in name" -snc
alternateStreamReplace boolean Replace ':' character to '_' character in paths of alternate streams -snr
deleteFilesAfter boolean Delete files after compression -sdel
fullyQualifiedPaths boolean Usefully qualified file paths -spf
hardlinks boolean Store hard links as links (WIM and TAR formats only) -snh
largePages boolean Set Large Pages mode -spl
latestTimeStamp boolean Set archive timestamp from the most recently modified file -stl
noArchiveOnFail boolean Stop archive creating, if 7-Zip can't open some input file. -sse
noRootDuplication boolean Eliminate duplication of root folder for extract command -spe
noWildcards boolean Disable wildcard matching for file names -spd
ntSecurity boolean Store NT security -sni
sortByType boolean Sort files by type while adding to solid 7z archive -mqs
openFiles boolean Compress files open for writing -ssw
recursive boolean Recurse subdirectories. For -r0 usage see raw -r
symlinks boolean Store symbolic links as links (WIM and TAR formats only) -snl
techInfo boolean Show technical information -slt
timeStats boolean Show execution time statistics -bt
toStdout boolean Write data to stdout -so
yes boolean Assume Yes on all queries -y
alternateStreamStore boolean Store NTFS alternate Streams -sns
caseSensitive boolean Set Sensitive Case mode -ssc
archiveNameMode string Set Archive name mode -sa
archiveType string Type of archive -t
cpuAffinity string Set CPU thread affinity mask (hexadecimal number). -stm
excludeArchiveType string Exclude archive type -stx
fromStdin string Read data from StdIn -si
hashMethod string Set hash function -scrc
listFileCharset string Set charset for list files -scs
logLevel string Set output log level -bb
multiBlockSize string Creates multi-block xz archives of [Size]m|g block size -ms
outputDir string Set Output directory -o
overwrite string Overwrite mode -ao
password string Set Password -p
sfx string Create SFX archive -sfx
updateOptions string Update options -u
workingDir string Set Working directory -w
excludeArchive string[] Exclude archive filenames -ax
exclude string[] Exclude filenames -x
include string[] Include filenames -i
includeArchive string[] Include archive filenames -ai
method string[] Set Compression Method -m
outputStreams string[] Set output stream for output/error/progress -bs
volumes string[] Create Volumes -v

Special options

Those options are not provided by 7-Zip but are features of this module.

Name Type Description
$progress boolean Progress percentage gets fired. Shortcut for { outputStreams: ['b1'] } Use if you want access to the progress event. Has an impact on performances.
$defer boolean Create the stream but do not spawn child process
$childProcess ChildProcess Attach an external child process to be parsed
$bin string Path to an other 7-Zip binary. Default: 7z
$cherryPick string[] Some commands accepts more specific targets, see example above
$raw string[] Pass raw arguments to the child_process.spawn()command
$spawnOptions Object Pass options to the child_process.spawn()command

Events

Event: data

The data event is emitted for each processed file. The payload is an object. WARNING only the data.file proprety is guaranteed to be present

mySevenStream.on('data', function (data) {
  console.log(data)
  // {
  //   file: 'path/of/the/file/in/the/archive',
  //   status: 'renamed|tested|updated|skipped|deleted|extracted',
  //   attributes: '....A', size: 9, sizeCompressed: 3, (only list command)
  //   hash: 'FEDC304F', size: 9 (only hash command)
  //   techInfo: Map(8) { (only list command with `techInfo` switch)
  //      'Path' => 'DirHex/sub2/e825776890f2b',
  //      'Size' => '9',
  //      'Modified' => '2018-09-29 09:06:15',
  //      'Attributes' => 'A_ -rw-r--r--',
  //      'CRC' => 'FEDC304F',
  //      'Encrypted' => '-',
  //      'Method' => 'LZMA2:12',
  //      'Block' => '0'
  //   }
  // }
})

Event: end

An .info proprety can contain meta-data (type Map)

myStream.info
// Map {
//   '7-Zip [64] 16.02 ' => 'Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21',
//   'Creating archive' => './test/_tmp/txt-and-md-only.7z',
//   'Items to compress' => '6',
//   'Files read from disk' => '6',
//   'Archive size' => '212 bytes (1 KiB)' }

Event: error

mySevenStream.on('error', function (err) {
  // a standard error
  // `err.stderr` is a string that can contain extra info about the error
})

Advanced usage

Compression method

Using the CLI, compression is done like this:

# adds *.exe and *.dll files to solid archive archive.7z using LZMA method
# with 2 MB dictionary and BCJ filter.
7z a archive.7z *.exe -m0=BCJ -m1=LZMA:d=21

Using this module:

const compress = Seven.add('archive.7z', '*.exe', {
  method: ['0=BCJ', '1=LZMA:d=21']
})

Raw inputs

Thanks to sketchpunk #9 for this one

Sometimes you just want to use the lib as the original command line. For instance you want to apply to switches with different values. You can use the custom $raw key in your options object and pass it an Array of values.

const compress = Seven.add('archive.7z', '*.gif', {
  $raw: [ '-i!*.jpg', '-i!*.png' ], // only images
})

Emoji and Unicode

Due to a 7z limitation emojis and special characters can't be used as values when passed to an option object (ex: password). But they can be used in archive, filenames and destinations.

Use the { charset: 'UTF-8' } for special characters.

Log level

The default log level (-bb switch) is set to:

3 :show information about additional operations (Analyze, Replicate) for "Add" / "Update" operations.

It's a base feature of node-7z and is required for the module to work as expected. A diffrent value should not be used.

Security

Values given by the package are not sanitized, you just get the raw output from the 7-Zip binary. Remember to never trust user input and sanitize accordingly.

External child process

You can pipe a child procress from an other source and pass it to node-7z. An use case may be that the 7-Zip process runs on an other machine and the sdtio is piped in the application.

const external = // an external child process
const myStream = Seven.add('dummy', 'dummy', {
  $defer: true
})
myStream.on('data', data => yourLogicWith(data))
Seven.listen(myStream)

With :heart: from quentinrossetti

changelog

3.0.0 (2021-07-11)

BREAKING CHANGE

  • Drop cross-spawn in favor of Node.js spawn

  • feat: Do not build string switch with falsy values #102 (b7f799c), closes #102

  • feat: Hides cmd on Windows #89 (e955111), closes #89
  • ci: Ignore a test du to mismatch 7z versions (48a74d6)
  • test: Don't test dates because AppVeyor changes them (f05d6e2)
  • test: Mark as executable (NTFS removed it) (6e35dfe)
  • test: Remove redundant error code checking (80f22f5)
  • dist: VSCode workspace (e91e7d4)
  • chore: Ignore .exe used for local testing (1305071)
  • chore(deps): bump glob-parent from 5.1.1 to 5.1.2 (59f83ee)
  • chore(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (f9746d0)
  • chore(deps): bump lodash from 4.17.20 to 4.17.21 (0bf9517)
  • chore(deps): bump y18n from 4.0.0 to 4.0.1 (f30d5b4)
  • doc: Fix options table parsing (9e6ded4)
  • doc: Fix typos (801a79b)
  • Fixed typo (a16d499)

2.1.2 (2020-10-11)

  • style: Implement JavaScript Standard Style (dff09b8)
  • fix: JSON typo (02df853)
  • security: npm audit fix (0790b46)
  • security: npm audit fix (7758a64)
  • chore: Documentation cleanup (0913758)

2.1.1 (2020-02-15)

  • fix: Cannot find module 'lodash.flattenDeep' (558d159)
  • fix: Cannot find module 'lodash.isEmpty' (1a49fb1)
  • dist: Update package-lock.json for devs (8752906)

2.1.0 (2020-02-15)

  • dist: Reduce lodash dependencies footprint (b727dc6)
  • feat: Add $spawnOptions (0d04ec2)
  • chore: Fix alternate $bin on OSX (e95b95d)

2.0.5 (2019-12-24) 🎄

  • chore: Enforce usage of Node.js >= v10 (9cbe75d)

2.0.4 (2019-11-23)

2.0.1 ... 2.0.3 (2019-10-27)

  • dist: npm problems
  • test: Fix clerical error (5b1e8a6)

2.0.0 (2019-10-27)

BREAKING CHANGES : Drop support for Node.JS 8

  • fix: Add debug statement for Windows (ddfc4b9)
  • fix: Add plateform condition in test case (f9c080a)
  • fix: no longer depend on regexp polyfill, as polyfills dangerously modify the environment (b923e9d)
  • chore: Update dependencies (708a5fd)
  • test: Add compress from stdin (6a337ad)
  • style: make an exception to eslint rule no-new for regexp named groups test (b710b82)

1.1.1 (2019-07-17)

  • chore: Fix lodash security vulnerability (8a8f9a4)

1.1.0 (2019-02-10)

  • chore: Use named capture groups polyfill on Node.js < v10 (b0a7d77)
  • chore: Update dependencies (8f5cb7f)
  • ci: Fix nvm usage by substractive design :) (5b58713)

1.0.1 (2018-12-29)

  • doc: Clean usage & typos (6c53c5a)
  • doc: Fixing clerical errors (e244438)
  • doc: Updated TODO (72ff317)
  • style: Use CommonJs syntax for import/export (3c519f6), closes #55

1.0.0 (2018-12-05)

  • dist: Blacklist useless files for npm (ad12c66)
  • test: 100% coverage on parser.js (441b761)
  • test: Add coveralls suport? (dcf83fb)
  • test: Add headers and footers info test (0fd694a)
  • test: Add mock material for future testing (6a67167)
  • test: Add script to report coverage as html for local use (b245142)
  • test: Add test cases for switches and $specials options (576d81b)
  • test: Add test for using an alternate 7z binary location (5d04dd4)
  • test: Add update an existing archive (19c2d34)
  • test: Auto-generated mock files (5ebf54a)
  • test: Commit mock folder (b26a265)
  • test: Complete test suite for parser functions (3fdabf1)
  • test: Complete tests for hash() command (99237c3)
  • test: Copy 7z bin in the test setup (c93f509)
  • test: Coveralls integration (5618ad7)
  • test: Cross-platform testing (fcf2e48)
  • test: Desactivate mocha timeout for slow file system functional tests (b7f4351)
  • test: Disable generation of mocks (c61a27c)
  • test: Fix AppVeyor test copy 7z.exe to cwd (1e745ee)
  • test: Fix failing test due to date construction (828c15c)
  • test: Fix matchBodyList() date test (691678f)
  • test: Fix typo for more descriptive test (4848727)
  • test: Functional test cases for 7z add command (2a014a2)
  • test: Increase test coverage to 100% on unit tests (3302813)
  • test: Install p7zip-full depedency in Travis CI (c80d0ea)
  • test: Keep a temp folder for functional testing on file system (468b0e9)
  • test: Lower min size threshold cause 7-Zip is better on Windows (6caa907)
  • test: Move test setup and cleanup in mocha (1f29d0d)
  • test: Please TravisCI (b3fb376)
  • test: Please TravisCI (2) (cbc5337)
  • test: Remove timeout (1134315)
  • test: Rename generateDirHex.js mock folder (6e96a88)
  • test: Rename progress test (a365a79)
  • test: Separate tests for special and switches (04dd71e)
  • test: Separate TravisCI coverage script from local coverage script (9cadde4)
  • test: Separate unit tests from functional test (57d6c37)
  • test: Tell TravisCI to use the latest version of node (5b850fe)
  • test: Update testing setup according to *.spec.js convention (99ba7d8)
  • test: Update tests for switches, mock Archive1 (ed4ad6a)
  • test: Update TravisCi to latest node (4d2571b)
  • doc: Add TOC, style and fix headers (85f0970)
  • doc: Document tech choices (ff774ea)
  • doc: Explain limitation on unicode and emoji chars (849630e)
  • doc: Remove JSHint and EditorConfig in favor of StandardJS (2531419)
  • doc: Update contributing guidelines (add27cc)
  • doc: Update README documentation (e17c4ea)
  • doc: Update TODO (54727f1)
  • feat: Add a stage mecanism (70f6d72)
  • feat: Add a status for Symbol-file data events (13acdd0)
  • feat: Add command accepts multiple sources as an array (cce6144)
  • feat: Add delete del() command (3491c8b)
  • feat: Add entry points for ES6 and CommonJS (aeec3c7)
  • feat: Add extract() command (6888108)
  • feat: Add extractFull() command (b09b02e)
  • feat: Add footer infos to stream.info object (7431b44)
  • feat: Add hash() command (7a7549d)
  • feat: Add list() command (12f2609)
  • feat: Add rename() command (1488261)
  • feat: Add test() command (a35e010)
  • feat: Add update() command (46fa6d0)
  • feat: extract()#data fires (1cba732)
  • feat: Make stream stage STAGE_FOOTER when listing file has ended (aad327a)
  • feat: Move listen logic outside of main. Allow $childProcess use (9ea3ac7)
  • feat: Parse lines with colon-separated value (3265561)
  • feat: Parse lines with equal-separated value (4149589)
  • feat: Set -bb3 switch as default (b2c4b21)
  • feat: Set -bb3 switch as default (7f95b41)
  • feat: Use esm loader (5247a3e)
  • feat: Windows support (4cea36d)
  • fix: Add charset -scc switch (5813a07)
  • fix: Add command uses codebase refactoring (b7c6687)
  • fix: Always emit 'end' event when stream close (4293132)
  • fix: Attach event listeners to streams after creation (b5af79c)
  • fix: Fix progress regexp by adding an ending )?$ (0048f43)
  • fix: Move data listener call outside of stream (8954e7b)
  • fix: Remove nested-array bug with wildcards (59a006a)
  • fix: Set -bs switch to repeating type and add some markers for parsing (40e6750)
  • release: 1.0.0. Use esm loader (1803529)
  • refactor: Allow hardcode deflaut switches values (d2da77b)
  • refactor: Chunk to lines logic in a dedicatd function (def27c4)
  • refactor: Clean dead code (65a75a0)
  • refactor: Clean dead code (8cea056)
  • refactor: Clean dead code (60fde9d)
  • refactor: Defalut values out of function scope (daf66cf)
  • refactor: Makes _onSubprocessData() only manages data flow (06edbfc)
  • refactor: matchProgress() parses progress % and symbol-file lines (3618abc)
  • refactor: Merge transformRawToArgs() and transformWildCardsToArgs() (b8e711b)
  • refactor: Move data logic into SevenZipStream class (3111602)
  • refactor: Move error regexp to the dedicated file (033fd25)
  • refactor: Move RegExp logic into a separate file (ffe604a)
  • refactor: Move target logic into a function (460ba73)
  • refactor: Put call to listeners in a separate fn (a152db4)
  • refactor: Refactor commands creation (7b1eade)
  • refactor: Refactor function to add info the SevenZipStream (629c6a7)
  • refactor: Remove duplicate code by using command-interface function (8d323c0)
  • refactor: Remove duplicate in command factories (c5e53bd)
  • refactor: Rename $path to $bin to specify where the 7zip bin is (a37b623)
  • refactor: Split parser into distinct functions (f18a9b1)
  • refactor: Standardize match functions (f7bfcda)
  • refactor: Switch parsing and composing (2a3bace)
  • refactor: TODO (3238679)
  • refactor: Unify matchProps() to capture equal and colon separated-values (80673ca)
  • refactor: Use const instead of var (41ccdac)
  • refactor: Use dependency injection pattern (e837a16)
  • ci: Add CircleCI part1 (bc316fb)
  • ci: Add CircleCI part2 (d564d08)
  • ci: Add CircleCI part3 (43e1089)
  • ci: Add CircleCI part3, drop TravisCI (85faa27)
  • ci: Add Code Climate to workflow (d7e45ad)
  • ci: Add coverage info (7cd9e37)
  • ci: Add Windows test, part 1 (f59c920)
  • ci: Add Windows test, part 2 (b94276f)
  • ci: Add Windows test, part 4 (eaadb3d)
  • ci: Add Windows test, part 5 (2145bf0)
  • ci: Add Windows test, part 6 (6c96b3c)
  • ci: Add Windows test, part 7 (ee7af71)
  • ci: Cache node_modules on AppVeyor (70d9e30)
  • ci: Display lcov info to stdout (1fb713d)
  • ci: Find coverage error part1 (0a534b9)
  • ci: Find coverage error part2 (87ee15e)
  • ci: Find coverage error part3 (5b82fea)
  • ci: Find coverage error part4 (938b18b)
  • ci: Make 7z binary available for testing (908b4f7)
  • ci: Propagate test errors, part1 (ff7b850)
  • ci: Propagate test errors, part2 (7552ac0)
  • ci: Propagate test errors, part3 (2ac55b9)
  • ci: Propagate test errors, part4 (252eb98)
  • ci: Refactor progress test for CI platform sucess (98419e0)
  • ci: Remove test timeout because AppVeyor is kind of slow to rimraf (7784630)
  • ci: Use npm command as mock because it's cross platform (2e72fc6)
  • style: Enforce consistent debug style (4a780b0)
  • style: Fix max complexity to 9 (4dfe665)
  • style: No unused expressions (dccf977)
  • style: Use remove() instead of delete() because delete is JS reserved (77ab93a)
  • Add an interface somewhat like built-in 'fs' object (3f973f1)
  • Add error handling when command not found (79b324b)
  • Add test for #14 (d6449e9), closes #14
  • Add test for proper attr column handling (feb36e6)
  • Add Windows test, part 3 (ff2b7fe)
  • added additional field to methods for path to 7z binary (e13d602)
  • added binaries to path, set default, make runable (969b59b)
  • added platform binary and to search path (fdd5cf6)
  • added routine to download sfx modules at install time, some code clean up & error corrections (744eba4)
  • Added Royalgamer06 to contributor list (674e42e)
  • Added support to RAR using 7zip-rar plugin (ac8107c)
  • Added toantk911 to contributors for 0.4.2 (dcc4481)
  • adding back changes to use binaries included (ef01e82)
  • adding comment (8e24384)
  • Allow to add and extract individual entries in the 7z archive directly from {string|Buffer|Uint8Arra (d5475be)
  • better to just log error instead of throwing error and stopping the extraction, tested a few time an (a2ad435)
  • better to just log error instead of throwing error and stopping the extraction, tested a few time an (52b5580)
  • change to use 7za, using 7z gives, Error: 7-Zip cannot find the code that works with archives (ae772cc)
  • check if file list is empty in add function (abba17f)
  • code clean up (89f8262)
  • code cleanup (eab1bbb)
  • code simplified (6242749)
  • corrections (ebc9bec)
  • corrections (163bcaa)
  • corrections (1b38b7c)
  • corrections for travis-ci test builds (c7e1541)
  • corrections to allow path in methods, would work if no path is pass and switches is in it's place (4c97622)
  • corrections to allow path to be added to methods, would work correctly if no path is pass and switch (501995e)
  • corrections to code logic flow, installer ready for linux and windows binary install (2e53b04)
  • created branch withbinary, reverting fork with changes back to master, (3ca067c)
  • custom version (504c9c6)
  • error corrections (e3fd105)
  • Escaping special characters in file/folder paths (d464f09)
  • Escaping special characters in file/folder paths [Fixed] (9b64842)
  • explicitly reject on wrong password (1fe5755)
  • fix (eb02074)
  • fix (952ee16)
  • Fix extracting to UNC paths (a335049)
  • Fix matcher to cover both node 0.10 and 0.12 (96e8d09)
  • fixed errors for not returning full directory path to binary (716adc6)
  • fixed linux installer build errors and exec (01b1bb5)
  • fixig extraction's check for unsupported method (d36e4d0)
  • get encryption information from archive (f5f3aca)
  • handle case that last byte in streamed chunk is '\n' and file data continue in next chunk (6e1603e)
  • handle list slt streamed progressed output (4bb2a17)
  • Handle mixed encrypted archives (92606c2)
  • indentation (d30b2bf)
  • indentation (d447cca)
  • indentation (31ea6a6)
  • indentation (a46e6bf)
  • install libc6 or glibc onto host (b59616c)
  • linux installer problem found, requires host to have libc6 or glibc 32bit installed of ld-linux.so.2 (21eba79)
  • list required field (9a02e81)
  • list() was not returning the data for files which had a blank "Compressed" column (f3cfaff)
  • Merged toantk911:patch-1 - Return useful error from stderr (1b571e3)
  • more corrections from merging (69b0657)
  • more fixing to have option to path and switch option section to be interchangeable (6fd9b22)
  • more linux installer build fix (1db73d9)
  • new array keyword "raw" added to options. this allows to add raw data to the switches, its needed wh (797d86a)
  • Now also escapes files in string format (aaba197)
  • prepare to revert (f4af1c6)
  • rejecting on wrong password for 7z (a6c3061)
  • Remove to rigid unsupported method test (2184e86)
  • remove Unsupported Method check (2528ee0)
  • removed unsupported method check, give error on valid archives created on same host using same bina (dee8495)
  • removed code for master, binaries not included, created withbinary branch instead (6dea3f5)
  • Rename TOTO.md to TODO.md (e02fd66)
  • Return error from stderr (ad07a0a)
  • revert (2896e09)
  • revert (4683398)
  • revert (8b21ee1)
  • revert (ed32e40)
  • Revert "Merge pull request #40 from mzehrer/master" (b0f1d9b), closes #40
  • revert back to 7z instead, my change in branch (b81cb6e)
  • revert last merge (3de99e2)
  • revert merge list method (090eac5)
  • revert test (e5263f7)
  • revert to repo https://github.com/redx25/node-7z the last travis-ci project that actaually pass test (d035367)
  • reverting (3d1a294)
  • reverting (1b932dd)
  • reverting & testing repo on travis-ci (e93680e)
  • reverting, able to extract without changing code, however Payload holds the binary and is compressed (87f0839)
  • simplified code (3e6d424)
  • simplified code, updated dependencies now has code embed (c7585fd)
  • small issues fixes (48013fd)
  • Sometimes 7z does not include value in "Compressed" column, so the previous regex was failing. (626b1b7)
  • Specify correct attribute flags (ab50ece)
  • still testing extraction of MacOS *.pkg Payload files, xar module does not unpack the Payload file i (fd00565)
  • support to using path to 7z (4ae6f8f)
  • supporting slt option (c734912)
  • test (16512d6)
  • test (ca8f45c)
  • testing (4e23423)
  • testing (4fe9f3b)
  • testing (575811b)
  • testing (dd313c1)
  • testing (3ab9a3f)
  • testing (60b7ccf)
  • testing (24936a1)
  • testing (d40abce)
  • testing (0ec8db1)
  • testing (9010a41)
  • testing (91f8a7c)
  • testing (f3a1f2a)
  • testing (8b62779)
  • testing (67c0863)
  • testing (e5d2de1)
  • testing (f8492b6)
  • testing (0408b50)
  • testing (41bce98)
  • testing (82f218b)
  • testing (559ede5)
  • testing (b289192)
  • testing additional extraction modulus and methods on MacOS Payload file on windows (ac156fe)
  • testing corrections (6a34e01)
  • testing extracted binaries from MacOS *.pkg files using cli tool unar thats downloaded from source a (de4b588)
  • testing fixing (0598d2f)
  • testing fixing travis-ci build errors (b7ae006)
  • testing forked version for *.pkg extraction (408eb62)
  • testing order, linux binaries not copying (fefb951)
  • Testing prepare to publish, mac binaries will be pre included, others will be download at npm instal (f9f8e6c)
  • testing script needs additional work using different module (c25a649)
  • testing test suite methods (df176c8)
  • testing tracking down errors (8330c5b)
  • testing ways to extract macos *.pkg files (e1a8564)
  • testing when module using the test suite not correctly working (47f0707)
  • testing, fix spelling (2bfa434)
  • testing, prepare to pull binaries from original sources 7-zip.org, sourceforge.net, and rudix.org (4934594)
  • testing, removed option to pass path since binaries are include instead add path to command at 7za r (bab38c6)
  • there is a problems with test suite, all builds will fail cause methods using when promise and it's (dc731fa)
  • There was a bug in List where when getting list data from 7za it sometimes will end in the middle of (7480914)
  • update (fe2a1e1)
  • update (14dd106)
  • Update changelog, readme to indicate binaries are now included (c86deed)
  • update contributors list in package.json (51dad74)
  • update contributors list in package.json (6aeb26e)
  • update dependencies (d483088)
  • update dependencies (c677c9a)
  • Update dependencies (7c0355b)
  • Update for 0.4.2, still work to do... (a49abe6)
  • update merge corrections (b222fa7)
  • Update passed travis-ci build tests using 7za (9d06a91)
  • update path test for 7za (0c1f8f9)
  • Update readme, binaries now included pulled from original sources 7-zip.org, sourceforge.net, and ru (00cc5de)
  • update test suite (b7b5523)
  • update testing (7b9ee22)
  • update travis ci build setting (3d2f6f4)
  • Update travis node (2751147)
  • Update version to pull (7446dd7)
  • update, error corrections (9d48d35)
  • updated changelog, updated path method, added method that points to it, which returns binary path th (9882596)
  • Updated dependencies (47f99a6)
  • updates (71422e9)
  • upgrade modules and remove u.path in add.js (7e4c9e7)
  • version 0.4.0 (80dd29a)
  • chore: Clean .gitignore (1f887d8)
  • chore: Clean test dir (5ed29fb)
  • chore: Cleanup linter files (7315c83)
  • chore: Cleanup repo declaration (cec7487)
  • chore: Cleanup testing fs (9ccf80d)
  • chore: Delete useless files (59e9e8e)
  • chore: Enforce *.spec.js for unit testing (555025d)
  • chore: Locking npm dependencies (a2c123f)
  • chore: Move lib/ to src/ (d4dc90d)
  • chore: Remove unused dependency (47163a3)
  • chore: Remove unused imports (ad7f1d0)
  • chore: Remove unused script for coveralls (d306a45)
  • chore: Remove useless files (838ceb7)
  • chore: Some more things to do (303a665)
  • chore: Updating mocha (33dca5c)
  • chore: Use streams/events as base mecanism (a3d4afe)
  • perf: Keep tpmDir between tests (6be37cb)
  • chrore: Delete binaries (4dd1906)
  • Completed: Windows and Linux binaries downloaded at install time from either https://sourceforge.net (7e24dc4)
  • Typo: an > and (faca0ac)

BREAKING CHANGE

  • Will be plenty with the v0.5.0

0.3.0 (2015-02-06)

0.2.0 (2014-10-24)

  • Fix tests on Windows (a87f174)
  • RegExp for parsing and switches passed to run #2 (b148140), closes #2
  • version 0.2.0 (0f591d7)

0.1.3 (2014-10-23)

  • +1 test for spaces in archive name #2 (558729c), closes #2
  • Don't fill the 'args' array when none passed (edd5d15)
  • Normalize and filter pathes before spawning #2 (7f3f9ae), closes #2
  • Version 0.1.3 (a83d04b)
  • Fix: Run command use 7za binary #2 (c4bd3e2), closes #2

0.1.2 (2014-10-20)

  • Doc and versions for fix (f848828)
  • Now support paths with spaces. (30d38e3)

0.1.1 (2014-08-26)

  • Doc: Fix wrong usage in documentation (c698fb1)

0.1.0 (2014-08-26)

0.0.2 (2014-08-25)

0.0.1 (2014-08-25)

  • Add a Zip object (04cdc0c)
  • Add badges to README.md (912374d)
  • Add online IDE to .gitignore (29c16ea)
  • Add switches utility (170bc30)
  • Add test archive (f330fd7)
  • Cross-platform spawn thanks to win-spawn (3c7f385)
  • Document API, changelog and contributing. (41df1f8)
  • Documentation, nodeify API, Travis-CI (1a0da67)
  • Extract (flat) added. (999ba8b)
  • Extract function (ff9c620)
  • Extract with full path working. (a402cb5)
  • Extract with full paths tested and working (f7d2b47)
  • Homepage (41beb22)
  • Initial commit (669ccee)
  • Install 7-Zip on Travis-CI (07a53e9)
  • Install p7zip-full when building in Travis CI. (f349e79)
  • Parse switches (cc356f1)
  • Remove old files (5774c01)
  • Replace Q by when (1a10869)
  • Set detached option to false (a02178d)
  • Test command implemented with Promises (6980b13)
  • Update README.md (915267d)
  • Usage, installation and API added. (1c687fc)
  • Fix: Expectations for cross-platform errors (a3dd7fd)