mirror of
				https://github.com/musix-org/musix-oss
				synced 2025-11-04 09:49:32 +00:00 
			
		
		
		
	fix
This commit is contained in:
		
							
								
								
									
										95
									
								
								node_modules/lzma-native/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								node_modules/lzma-native/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
# Changelog for lzma-native
 | 
			
		||||
 | 
			
		||||
## 3.0.8, May 12 2018
 | 
			
		||||
 | 
			
		||||
* [[`8c18848609`](https://github.com/addaleax/lzma-native/commit/8c18848609)] - **ci**: add Node.js 10 to matrix (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 3.0.7, Mar 26 2018
 | 
			
		||||
 | 
			
		||||
This likely fixed a regression related to node-pre-gyp.
 | 
			
		||||
 | 
			
		||||
* [[`430a440276`](https://github.com/addaleax/lzma-native/commit/430a440276)] - **package**: pin node-pre-gyp to 0.6.39 (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 3.0.6, Mar 26 2018
 | 
			
		||||
 | 
			
		||||
* [[`484c53577f`](https://github.com/addaleax/lzma-native/commit/484c53577f)] - **package**: update dependencies (Anna Henningsen)
 | 
			
		||||
* [[`6513708704`](https://github.com/addaleax/lzma-native/commit/6513708704)] - **lib**: use `Buffer.*` instead of deprecated Buffer constructor (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 3.0.5, Feb 21 2018
 | 
			
		||||
 | 
			
		||||
* [[`c03299db13`](https://github.com/addaleax/lzma-native/commit/c03299db13)] - **ci**: remove OS X from coverage (Anna Henningsen)
 | 
			
		||||
* [[`5f640416e0`](https://github.com/addaleax/lzma-native/commit/5f640416e0)] - **lib**: fix issue with invalid input (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 3.0.4, Nov 27 2017
 | 
			
		||||
 | 
			
		||||
* [[`669ee5098b`](https://github.com/addaleax/lzma-native/commit/669ee5098b)] - **package**: replace unavailable host to node-pre-gyp.addaleax.net (JianyingLi) [#48](https://github.com/addaleax/lzma-native/pull/48)
 | 
			
		||||
 | 
			
		||||
## 3.0.3, Nov 26 2017
 | 
			
		||||
 | 
			
		||||
* [[`fcba77ebe0`](https://github.com/addaleax/lzma-native/commit/fcba77ebe0)] - **ci**: include Node 9 support (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 3.0.2, Nov 07 2017
 | 
			
		||||
 | 
			
		||||
* [[`82b97dd94f`](https://github.com/addaleax/lzma-native/commit/82b97dd94f)] - **package**: update dependencies (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 3.0.1, Jul 04 2017
 | 
			
		||||
 | 
			
		||||
* [[`9e2ee5129f`](https://github.com/addaleax/lzma-native/commit/9e2ee5129f)] - **ci**: fix CI on Windows (Anna Henningsen)
 | 
			
		||||
* [[`8d75757031`](https://github.com/addaleax/lzma-native/commit/8d75757031)] - **lib**: fix race condition (Alexander Sagen) [#40](https://github.com/addaleax/lzma-native/pull/40)
 | 
			
		||||
 | 
			
		||||
## 3.0.0, Jun 26 2017
 | 
			
		||||
 | 
			
		||||
This is unlikely to break anybody’s code, but removing the build files after install might qualify as semver-major.
 | 
			
		||||
 | 
			
		||||
* [[`d5a252e3de`](https://github.com/addaleax/lzma-native/commit/d5a252e3de)] - **build**: rimraf build/ after install (Anna Henningsen)
 | 
			
		||||
* [[`fd2165e2ae`](https://github.com/addaleax/lzma-native/commit/fd2165e2ae)] - **ci**: add electron prebuilts again (Anna Henningsen)
 | 
			
		||||
* [[`039ac523d0`](https://github.com/addaleax/lzma-native/commit/039ac523d0)] - **lib**: explicit util.promisify() compat (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 2.0.4, Jun 25 2017
 | 
			
		||||
 | 
			
		||||
* [[`0cc00000b3`](https://github.com/addaleax/lzma-native/commit/0cc00000b3)] - **ci**: fix macOS prebuild binaries (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 2.0.3, Jun 21 2017
 | 
			
		||||
 | 
			
		||||
* [[`621628abac`](https://github.com/addaleax/lzma-native/commit/621628abac)] - **ci**: add Node 8 to CI matrix (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 2.0.2, May 18 2017
 | 
			
		||||
 | 
			
		||||
* [[`39bd6a2dc0`](https://github.com/addaleax/lzma-native/commit/39bd6a2dc0)] - **package**: pin nan to 2.5.1 (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 2.0.1, March 24 2017
 | 
			
		||||
 | 
			
		||||
* [[`c0491a0a07`](https://github.com/addaleax/lzma-native/commit/c0491a0a07)] - refactored binding.gyp (Refael Ackermann)
 | 
			
		||||
* [[`70883635b7`](https://github.com/addaleax/lzma-native/commit/70883635b7)] - **ci**: skip artifact encryption setup for non-tag builds (Anna Henningsen)
 | 
			
		||||
 | 
			
		||||
## 2.0.0, March 19 2017
 | 
			
		||||
 | 
			
		||||
Changes since 1.5.2
 | 
			
		||||
 | 
			
		||||
Notable changes:
 | 
			
		||||
 | 
			
		||||
* Dropped support for Node 0.10 and 0.12, which includes dropping `any-promise` and `util-extend` as dependencies.
 | 
			
		||||
* A changed path for the prebuilt binaries, which now includes versioning information.
 | 
			
		||||
 | 
			
		||||
* [[`83e0007061`](https://github.com/addaleax/lzma-native/commit/83e0007061)] - Bump version to 1.5.3
 | 
			
		||||
* [[`8021673b5d`](https://github.com/addaleax/lzma-native/commit/8021673b5d)] - Silence warnings about deprecated `NewInstance` usage
 | 
			
		||||
* [[`061933c4c7`](https://github.com/addaleax/lzma-native/commit/061933c4c7)] - **bin**: drop `commander` dependency
 | 
			
		||||
* [[`d752f96be4`](https://github.com/addaleax/lzma-native/commit/d752f96be4)] - **ci**: don’t use -flto for now
 | 
			
		||||
* [[`92188bee5e`](https://github.com/addaleax/lzma-native/commit/92188bee5e)] - **ci**: fix AppVeyor allocation failures
 | 
			
		||||
* [[`b79fa969d4`](https://github.com/addaleax/lzma-native/commit/b79fa969d4)] - **ci**: fix AppVeyor indexparser failures
 | 
			
		||||
* [[`5fcc17e54f`](https://github.com/addaleax/lzma-native/commit/5fcc17e54f)] - **ci**: fix Travis gcc CI failures
 | 
			
		||||
* [[`3f5d2609bd`](https://github.com/addaleax/lzma-native/commit/3f5d2609bd)] - **ci**: drop Node v0.10/v0.12 support
 | 
			
		||||
* [[`48e48ea25a`](https://github.com/addaleax/lzma-native/commit/48e48ea25a)] - **ci**: ci file housekeeping
 | 
			
		||||
* [[`c2d06b5e09`](https://github.com/addaleax/lzma-native/commit/c2d06b5e09)] - **ci**: work around node-gyp build failures
 | 
			
		||||
* [[`f94287f711`](https://github.com/addaleax/lzma-native/commit/f94287f711)] - **ci,test**: drop explicit nw.js testing
 | 
			
		||||
* [[`c61355984f`](https://github.com/addaleax/lzma-native/commit/c61355984f)] - **deps**: update xz to 5.2.3
 | 
			
		||||
* [[`b07f501e26`](https://github.com/addaleax/lzma-native/commit/b07f501e26)] - **doc**: leave blank lines around headings in README
 | 
			
		||||
* [[`dea30f3f20`](https://github.com/addaleax/lzma-native/commit/dea30f3f20)] - **lib**: drop util-extend dependency
 | 
			
		||||
* [[`0988b8d360`](https://github.com/addaleax/lzma-native/commit/0988b8d360)] - **lib**: refactor js-facing Stream into class
 | 
			
		||||
* [[`18bbdfc220`](https://github.com/addaleax/lzma-native/commit/18bbdfc220)] - **lib**: always use ES6 promises
 | 
			
		||||
* [[`f5030e027e`](https://github.com/addaleax/lzma-native/commit/f5030e027e)] - **lib**: fix unhandled Promise rejections
 | 
			
		||||
* [[`6e887ca52c`](https://github.com/addaleax/lzma-native/commit/6e887ca52c)] - **meta**: package.json housekeeping
 | 
			
		||||
* [[`e884b2e7c1`](https://github.com/addaleax/lzma-native/commit/e884b2e7c1)] - **prebuild**: add versioning to the binding file path
 | 
			
		||||
* [[`e8660b3728`](https://github.com/addaleax/lzma-native/commit/e8660b3728)] - **src**: use Nan::MakeCallback() for calling into JS
 | 
			
		||||
* [[`bd7ee7ce3f`](https://github.com/addaleax/lzma-native/commit/bd7ee7ce3f)] - **test**: use `fs.unlinkSync` for synchronous unlinking
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										22
									
								
								node_modules/lzma-native/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/lzma-native/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2014-2016 Anna Henningsen
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										650
									
								
								node_modules/lzma-native/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										650
									
								
								node_modules/lzma-native/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,650 @@
 | 
			
		||||
lzma-native
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
[](https://npmjs.org/package/lzma-native)
 | 
			
		||||
[](https://npmjs.org/package/lzma-native)
 | 
			
		||||
[](https://travis-ci.org/addaleax/lzma-native?branch=master)
 | 
			
		||||
[](https://ci.appveyor.com/project/addaleax/lzma-native)
 | 
			
		||||
[](https://coveralls.io/r/addaleax/lzma-native?branch=master)
 | 
			
		||||
[](https://david-dm.org/addaleax/lzma-native)
 | 
			
		||||
[](https://david-dm.org/addaleax/lzma-native#info=devDependencies)
 | 
			
		||||
 | 
			
		||||
Node.js interface to the native liblzma compression library (.xz file format, among others)
 | 
			
		||||
 | 
			
		||||
This package provides interfaces for compression and decompression
 | 
			
		||||
of `.xz` (and legacy `.lzma`) files, both stream-based and string-based.
 | 
			
		||||
 | 
			
		||||
<a name="example-usage"></a>
 | 
			
		||||
 | 
			
		||||
## Example usage
 | 
			
		||||
 | 
			
		||||
<a name="installation"></a>
 | 
			
		||||
 | 
			
		||||
### Installation
 | 
			
		||||
 | 
			
		||||
Simply install `lzma-native` via npm:
 | 
			
		||||
```bash
 | 
			
		||||
$ npm install --save lzma-native
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*Note*: As of version 1.0.0, this module provides pre-built binaries for multiple Node.js
 | 
			
		||||
versions and all major OS using [node-pre-gyp](https://github.com/mapbox/node-pre-gyp),
 | 
			
		||||
so for 99 % of users no compiler toolchain is necessary.
 | 
			
		||||
Please [create an issue here](https://github.com/addaleax/lzma-native/issues/new)
 | 
			
		||||
if you have any trouble installing this module.
 | 
			
		||||
 | 
			
		||||
*Note*: `lzma-native@2.x` requires a Node version >= 4. If you want to support
 | 
			
		||||
Node `0.10` or `0.12`, you can feel free to use `lzma-native@1.x`.
 | 
			
		||||
 | 
			
		||||
<a name="streams-usage"></a>
 | 
			
		||||
 | 
			
		||||
### For streams
 | 
			
		||||
 | 
			
		||||
If you don’t have any fancy requirements, using this library is quite simple:
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
Some examples in this README file are executed as part of the automatic
 | 
			
		||||
testing process. See test/readme-examples.js for details.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<!-- runtest:{Compress the README.md file} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var lzma = require('lzma-native');
 | 
			
		||||
 | 
			
		||||
var compressor = lzma.createCompressor();
 | 
			
		||||
var input = fs.createReadStream('README.md');
 | 
			
		||||
var output = fs.createWriteStream('README.md.xz');
 | 
			
		||||
 | 
			
		||||
input.pipe(compressor).pipe(output);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
For decompression, you can simply use `lzma.createDecompressor()`.
 | 
			
		||||
 | 
			
		||||
Both functions return a stream where you can pipe your
 | 
			
		||||
input in and read your (de)compressed output from.
 | 
			
		||||
 | 
			
		||||
<a name="buffers-usage"></a>
 | 
			
		||||
 | 
			
		||||
### For simple strings/Buffers
 | 
			
		||||
 | 
			
		||||
If you want your input/output to be Buffers (strings will be accepted as input),
 | 
			
		||||
this even gets a little simpler:
 | 
			
		||||
 | 
			
		||||
<!-- runtest:{Compress a simple string directly} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.compress('Banana', function(result) {
 | 
			
		||||
    console.log(result); // <Buffer fd 37 7a 58 5a 00 00 01 69 22 de 36 02 00 21 ...>
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Again, replace `lzma.compress` with `lzma.decompress` and you’ll get the inverse transformation.
 | 
			
		||||
 | 
			
		||||
`lzma.compress()` and `lzma.decompress()`
 | 
			
		||||
will return promises and you don’t need to provide any kind of callback
 | 
			
		||||
([Example code](#api-q-compress-examle)).
 | 
			
		||||
 | 
			
		||||
<a name="api"></a>
 | 
			
		||||
 | 
			
		||||
## API
 | 
			
		||||
 | 
			
		||||
<a name="api-compat-implementations"></a>
 | 
			
		||||
 | 
			
		||||
### Compatibility implementations
 | 
			
		||||
 | 
			
		||||
Apart from the API described here, `lzma-native` implements the APIs of the following
 | 
			
		||||
other LZMA libraries so you can use it nearly as a drop-in replacement:
 | 
			
		||||
 | 
			
		||||
* [node-xz][node-xz] via `lzma.Compressor` and `lzma.Decompressor`
 | 
			
		||||
* [LZMA-JS][LZMA-JS] via `lzma.LZMA().compress` and `lzma.LZMA().decompress`,
 | 
			
		||||
  though without actual support for progress functions and returning `Buffer` objects
 | 
			
		||||
  instead of integer arrays. (This produces output in the `.lzma` file format, *not* the `.xz` format!)
 | 
			
		||||
 | 
			
		||||
<a name="api-multithreading"></a>
 | 
			
		||||
 | 
			
		||||
### Multi-threaded encoding
 | 
			
		||||
 | 
			
		||||
Since version `1.5.0`, lzma-native supports liblzma’s built-in multi-threading
 | 
			
		||||
encoding capabilities. To make use of them, set the `threads` option to
 | 
			
		||||
an integer value: `lzma.createCompressor({ threads: n });`. You can use
 | 
			
		||||
value of `0` to use the number of processor cores. This option is only
 | 
			
		||||
available for the `easyEncoder` (the default) and `streamEncoder` encoders.
 | 
			
		||||
 | 
			
		||||
Note that, by default, encoding will take place in Node’s libuv thread pool
 | 
			
		||||
regardless of this option, and setting it when multiple encoders are running
 | 
			
		||||
is likely to affect performance negatively.
 | 
			
		||||
 | 
			
		||||
<a name="api-reference"></a>
 | 
			
		||||
 | 
			
		||||
### Reference
 | 
			
		||||
 | 
			
		||||
[Encoding strings and Buffer objects](#api-encoding-buffers)
 | 
			
		||||
 * [`compress()`](#api-compress) – Compress strings and Buffers
 | 
			
		||||
 * [`decompress()`](#api-decompress) – Decompress strings and Buffers
 | 
			
		||||
 * [`LZMA().compress()`](#api-LZMA_compress) ([LZMA-JS][LZMA-JS] compatibility)
 | 
			
		||||
 * [`LZMA().decompress()`](#api-LZMA_decompress) ([LZMA-JS][LZMA-JS] compatibility)
 | 
			
		||||
 | 
			
		||||
[Creating streams for encoding](#api-creating-streams)
 | 
			
		||||
 * [`createCompressor()`](#api-create-compressor) – Compress streams
 | 
			
		||||
 * [`createDecompressor()`](#api-create-decompressor) – Decompress streams
 | 
			
		||||
 * [`createStream()`](#api-create-stream) – (De-)Compression with advanced options
 | 
			
		||||
 * [`Compressor()`](#api-robey_compressor) ([node-xz][node-xz] compatibility)
 | 
			
		||||
 * [`Decompressor()`](#api-robey_decompressor) ([node-xz][node-xz] compatibility)
 | 
			
		||||
 | 
			
		||||
[.xz file metadata](#api-parse-indexes)
 | 
			
		||||
 * [`isXZ()`](#api-isxz) – Test Buffer for `.xz` file format
 | 
			
		||||
 * [`parseFileIndex()`](#api-parse-file-index) – Read `.xz` file metadata
 | 
			
		||||
 * [`parseFileIndexFD()`](#api-parse-file-index-fd) – Read `.xz` metadata from a file descriptor
 | 
			
		||||
 | 
			
		||||
[Miscellaneous functions](#api-functions)
 | 
			
		||||
 * [`crc32()`](#api-crc32) – Calculate CRC32 checksum
 | 
			
		||||
 * [`checkSize()`](#api-check-size) – Return required size for specific checksum type
 | 
			
		||||
 * [`easyDecoderMemusage()`](#api-easy-decoder-memusage) – Expected memory usage
 | 
			
		||||
 * [`easyEncoderMemusage()`](#api-easy-encoder-memusage) – Expected memory usage
 | 
			
		||||
 * [`rawDecoderMemusage()`](#api-raw-decoder-memusage) – Expected memory usage
 | 
			
		||||
 * [`rawEncoderMemusage()`](#api-raw-encoder-memusage) – Expected memory usage
 | 
			
		||||
 * [`versionString()`](#api-version-string) – Native library version string
 | 
			
		||||
 * [`versionNumber()`](#api-version-number) – Native library numerical version identifier
 | 
			
		||||
 | 
			
		||||
<a name="api-encoding-buffers"></a>
 | 
			
		||||
 | 
			
		||||
### Encoding strings and Buffer objects
 | 
			
		||||
 | 
			
		||||
<a name="api-compress"></a>
 | 
			
		||||
<a name="api-decompress"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.compress()`, `lzma.decompress()`
 | 
			
		||||
 | 
			
		||||
* `lzma.compress(string, [opt, ]on_finish)`
 | 
			
		||||
* `lzma.decompress(string, [opt, ]on_finish)`
 | 
			
		||||
 | 
			
		||||
Param        |  Type            |  Description
 | 
			
		||||
------------ | ---------------- | --------------
 | 
			
		||||
`string`     | Buffer / String  | Any string or buffer to be (de)compressed (that can be passed to `stream.end(…)`)
 | 
			
		||||
[`opt`]      | Options / int    | Optional. See [options](#api-options)
 | 
			
		||||
`on_finish`  | Callback         | Will be invoked with the resulting Buffer as the first parameter when encoding is finished, and as `on_finish(null, err)` in case of an error.
 | 
			
		||||
 | 
			
		||||
These methods will also return a promise that you can use directly.
 | 
			
		||||
 | 
			
		||||
Example code:
 | 
			
		||||
<!-- runtest:{Compress and decompress directly} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.compress('Bananas', 6, function(result) {
 | 
			
		||||
    lzma.decompress(result, function(decompressedResult) {
 | 
			
		||||
        assert.equal(decompressedResult.toString(), 'Bananas');
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-q-compress-examle"></a>
 | 
			
		||||
Example code for promises:
 | 
			
		||||
<!-- runtest:{Compress and decompress directly using promises} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.compress('Bananas', 6).then(function(result) {
 | 
			
		||||
    return lzma.decompress(result);
 | 
			
		||||
}).then(function(decompressedResult) {
 | 
			
		||||
    assert.equal(decompressedResult.toString(), 'Bananas');
 | 
			
		||||
}).catch(function(err) {
 | 
			
		||||
    // ...
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-LZMA_compress"></a>
 | 
			
		||||
<a name="api-LZMA_decompress"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.LZMA().compress()`, `lzma.LZMA().decompress()`
 | 
			
		||||
 | 
			
		||||
* `lzma.LZMA().compress(string, mode, on_finish[, on_progress])`
 | 
			
		||||
* `lzma.LZMA().decompress(string, on_finish[, on_progress])`
 | 
			
		||||
 | 
			
		||||
(Compatibility; See [LZMA-JS][LZMA-JS] for the original specs.)
 | 
			
		||||
 | 
			
		||||
**Note that the result of compression is in the older LZMA1 format (`.lzma` files).**
 | 
			
		||||
This is different from the more universally used LZMA2 format (`.xz` files) and you will
 | 
			
		||||
have to take care of possible compatibility issues with systems expecting `.xz` files.
 | 
			
		||||
 | 
			
		||||
Param         |  Type                   |  Description
 | 
			
		||||
------------- | ----------------------- | --------------
 | 
			
		||||
`string`      | Buffer / String / Array | Any string, buffer, or array of integers or typed integers (e.g. `Uint8Array`)
 | 
			
		||||
`mode`        | int                     | [A number between 0 and 9](#api-options-preset), indicating compression level
 | 
			
		||||
`on_finish`   | Callback                | Will be invoked with the resulting Buffer as the first parameter when encoding is finished, and as `on_finish(null, err)` in case of an error.
 | 
			
		||||
`on_progress` | Callback                | Indicates progress by passing a number in [0.0, 1.0]. Currently, this package only invokes the callback with 0.0 and 1.0.
 | 
			
		||||
 | 
			
		||||
These methods will also return a promise that you can use directly.
 | 
			
		||||
 | 
			
		||||
This does not work exactly as described in the original [LZMA-JS][LZMA-JS] specification:
 | 
			
		||||
 * The results are `Buffer` objects, not integer arrays. This just makes a lot
 | 
			
		||||
   more sense in a Node.js environment.
 | 
			
		||||
 * `on_progress` is currently only called with `0.0` and `1.0`.
 | 
			
		||||
 | 
			
		||||
Example code:
 | 
			
		||||
<!-- runtest:{Compress and decompress directly using LZMA-JS compatibility} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.LZMA().compress('Bananas', 4, function(result) {
 | 
			
		||||
    lzma.LZMA().decompress(result, function(decompressedResult) {
 | 
			
		||||
        assert.equal(decompressedResult.toString(), 'Bananas');
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
For an example using promises, see [`compress()`](#api-q-compress-examle).
 | 
			
		||||
 | 
			
		||||
<a name="api-creating-streams"></a>
 | 
			
		||||
 | 
			
		||||
### Creating streams for encoding
 | 
			
		||||
 | 
			
		||||
<a name="api-create-compressor"></a>
 | 
			
		||||
<a name="api-create-decompressor"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.createCompressor()`, `lzma.createDecompressor()`
 | 
			
		||||
 | 
			
		||||
* `lzma.createCompressor([options])`
 | 
			
		||||
* `lzma.createDecompressor([options])`
 | 
			
		||||
 | 
			
		||||
Param       |  Type            |  Description
 | 
			
		||||
----------- | ---------------- | --------------
 | 
			
		||||
[`options`] | Options / int    | Optional. See [options](#api-options)
 | 
			
		||||
 | 
			
		||||
Return a [duplex][duplex] stream, i.e. a both readable and writable stream.
 | 
			
		||||
Input will be read, (de)compressed and written out. You can use this to pipe
 | 
			
		||||
input through this stream, i.e. to mimick the `xz` command line util, you can write:
 | 
			
		||||
 | 
			
		||||
<!-- runtest:{Compress and decompress using streams} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var compressor = lzma.createCompressor();
 | 
			
		||||
 | 
			
		||||
process.stdin.pipe(compressor).pipe(process.stdout);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The output of compression will be in LZMA2 format (`.xz` files), while decompression
 | 
			
		||||
will accept either format via automatic detection.
 | 
			
		||||
 | 
			
		||||
<a name="api-robey_compressor"></a>
 | 
			
		||||
<a name="api-robey_decompressor"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.Compressor()`, `lzma.Decompressor()`
 | 
			
		||||
 | 
			
		||||
* `lzma.Compressor([preset], [options])`
 | 
			
		||||
* `lzma.Decompressor([options])`
 | 
			
		||||
 | 
			
		||||
(Compatibility; See [node-xz][node-xz] for the original specs.)
 | 
			
		||||
 | 
			
		||||
These methods handle the `.xz` file format.
 | 
			
		||||
 | 
			
		||||
Param       |  Type            |  Description
 | 
			
		||||
----------- | ---------------- | --------------
 | 
			
		||||
[`preset`]  | int              | Optional. See [options.preset](#api-options-preset)
 | 
			
		||||
[`options`] | Options          | Optional. See [options](#api-options)
 | 
			
		||||
 | 
			
		||||
Return a [duplex][duplex] stream, i.e. a both readable and writable stream.
 | 
			
		||||
Input will be read, (de)compressed and written out. You can use this to pipe
 | 
			
		||||
input through this stream, i.e. to mimick the `xz` command line util, you can write:
 | 
			
		||||
 | 
			
		||||
<!-- runtest:{Compress and decompress using streams with node-xz compatibility} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var compressor = lzma.Compressor();
 | 
			
		||||
 | 
			
		||||
process.stdin.pipe(compressor).pipe(process.stdout);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-create-stream"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.createStream()`
 | 
			
		||||
 | 
			
		||||
* `lzma.createStream(coder, options)`
 | 
			
		||||
 | 
			
		||||
Param       |  Type            |  Description
 | 
			
		||||
----------- | ---------------- | --------------
 | 
			
		||||
[`coder`]   | string           | Any of the [supported coder names](#api-coders), e.g. `"easyEncoder"` (default) or `"autoDecoder"`.
 | 
			
		||||
[`options`] | Options / int    | Optional. See [options](#api-options)
 | 
			
		||||
 | 
			
		||||
Return a [duplex][duplex] stream for (de-)compression. You can use this to pipe
 | 
			
		||||
input through this stream.
 | 
			
		||||
 | 
			
		||||
<a name="#api-coders"></a>
 | 
			
		||||
The available coders are (the most interesting ones first):
 | 
			
		||||
 | 
			
		||||
* `easyEncoder` 
 | 
			
		||||
  Standard LZMA2 ([`.xz` file format](https://en.wikipedia.org/wiki/.xz)) encoder.
 | 
			
		||||
  Supports [`options.preset`](#api-options-preset) and [`options.check`](#api-options-check) options.
 | 
			
		||||
* `autoDecoder`
 | 
			
		||||
  Standard LZMA1/2 (both `.xz` and `.lzma`) decoder with auto detection of file format.
 | 
			
		||||
  Supports [`options.memlimit`](#api-options-memlimit) and [`options.flags`](#api-options-flags) options.
 | 
			
		||||
* `aloneEncoder`
 | 
			
		||||
  Encoder which only uses the legacy `.lzma` format.
 | 
			
		||||
  Supports the whole range of [LZMA options](#api-options-lzma).
 | 
			
		||||
 | 
			
		||||
Less likely to be of interest to you, but also available:
 | 
			
		||||
 | 
			
		||||
* `aloneDecoder`
 | 
			
		||||
  Decoder which only uses the legacy `.lzma` format.
 | 
			
		||||
  Supports the [`options.memlimit`](#api-options-memlimit) option.
 | 
			
		||||
* `rawEncoder`
 | 
			
		||||
  Custom encoder corresponding to `lzma_raw_encoder` (See the native library docs for details).
 | 
			
		||||
  Supports the [`options.filters`](#api-options-filters) option.
 | 
			
		||||
* `rawDecoder`
 | 
			
		||||
  Custom decoder corresponding to `lzma_raw_decoder` (See the native library docs for details).
 | 
			
		||||
  Supports the [`options.filters`](#api-options-filters) option.
 | 
			
		||||
* `streamEncoder`
 | 
			
		||||
  Custom encoder corresponding to `lzma_stream_encoder` (See the native library docs for details).
 | 
			
		||||
  Supports [`options.filters`](#api-options-filters) and [`options.check`](#api-options-check) options.
 | 
			
		||||
* `streamDecoder`
 | 
			
		||||
  Custom decoder corresponding to `lzma_stream_decoder` (See the native library docs for details).
 | 
			
		||||
  Supports [`options.memlimit`](#api-options-memlimit) and [`options.flags`](#api-options-flags) options.
 | 
			
		||||
 | 
			
		||||
<a name="api-options"></a>
 | 
			
		||||
 | 
			
		||||
#### Options
 | 
			
		||||
 | 
			
		||||
<a name="api-options-check"></a>
 | 
			
		||||
<a name="api-options-memlimit"></a>
 | 
			
		||||
<a name="api-options-preset"></a>
 | 
			
		||||
<a name="api-options-flags"></a>
 | 
			
		||||
<a name="api-options-synchronous"></a>
 | 
			
		||||
 | 
			
		||||
Option name   |  Type      |  Description
 | 
			
		||||
------------- | ---------- | -------------
 | 
			
		||||
`check`       | check      |  Any of `lzma.CHECK_CRC32`, `lzma.CHECK_CRC64`, `lzma.CHECK_NONE`, `lzma.CHECK_SHA256`
 | 
			
		||||
`memlimit`    | float      |  A memory limit for (de-)compression in bytes 
 | 
			
		||||
`preset`      | int        |  A number from 0 to 9, 0 being the fastest and weakest compression, 9 the slowest and highest compression level. (Please also see the [xz(1) manpage][xz-manpage] for notes – don’t just blindly use 9!) You can also OR this with `lzma.PRESET_EXTREME` (the `-e` option to the `xz` command line utility).
 | 
			
		||||
`flags`       | int        |  A bitwise or of `lzma.LZMA_TELL_NO_CHECK`, `lzma.LZMA_TELL_UNSUPPORTED_CHECK`, `lzma.LZMA_TELL_ANY_CHECK`, `lzma.LZMA_CONCATENATED`
 | 
			
		||||
`synchronous` | bool       |  If true, forces synchronous coding (i.e. no usage of threading)
 | 
			
		||||
`bufsize`     | int        |  The default size for allocated buffers
 | 
			
		||||
`threads`     | int        |  Set to an integer to use liblzma’s multi-threading support. 0 will choose the number of CPU cores.
 | 
			
		||||
`blockSize`   | int        |  Maximum uncompressed size of a block in multi-threading mode
 | 
			
		||||
`timeout`     | int        |  Timeout for a single encoding operation in multi-threading mode
 | 
			
		||||
 | 
			
		||||
<a name="api-options-filters"></a>
 | 
			
		||||
 | 
			
		||||
`options.filters` can, if the coder supports it, be an array of filter objects, each with the following properties:
 | 
			
		||||
 | 
			
		||||
* `.id`
 | 
			
		||||
  Any of `lzma.FILTERS_MAX`, `lzma.FILTER_ARM`, `lzma.FILTER_ARMTHUMB`, `lzma.FILTER_IA64`,
 | 
			
		||||
  `lzma.FILTER_POWERPC`, `lzma.FILTER_SPARC`, `lzma.FILTER_X86` or
 | 
			
		||||
  `lzma.FILTER_DELTA`, `lzma.FILTER_LZMA1`, `lzma.FILTER_LZMA2`
 | 
			
		||||
 | 
			
		||||
The delta filter supports the additional option `.dist` for a distance between bytes (see the [xz(1) manpage][xz-manpage]).
 | 
			
		||||
 | 
			
		||||
<a name="api-options-lzma"></a>
 | 
			
		||||
 | 
			
		||||
The LZMA filter supports the additional options `.dict_size`, `.lp`, `.lc`, `pb`, `.mode`, `nice_len`, `.mf`, `.depth`
 | 
			
		||||
and `.preset`. See the [xz(1) manpage][xz-manpage] for meaning of these parameters and additional information.
 | 
			
		||||
 | 
			
		||||
<a name="api-functions"></a>
 | 
			
		||||
 | 
			
		||||
### Miscellaneous functions
 | 
			
		||||
 | 
			
		||||
<a name="api-crc32"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.crc32()`
 | 
			
		||||
 | 
			
		||||
* `lzma.crc32(input[, encoding[, previous]])`
 | 
			
		||||
 | 
			
		||||
Compute the CRC32 checksum of a Buffer or string.
 | 
			
		||||
 | 
			
		||||
Param        |  Type            |  Description
 | 
			
		||||
------------ | ---------------- | --------------
 | 
			
		||||
`input`      | string / Buffer  | Any string or Buffer.
 | 
			
		||||
[`encoding`] | string           | Optional. If `input` is a string, an encoding to use when converting into binary.
 | 
			
		||||
[`previous`] | int              | The result of a previous CRC32 calculation so that you can compute the checksum per each chunk
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Compute the CRC32 of a string} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.crc32('Banana') // => 69690105
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-check-size"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.checkSize()`
 | 
			
		||||
 | 
			
		||||
* `lzma.checkSize(check)`
 | 
			
		||||
 | 
			
		||||
Return the byte size of a check sum.
 | 
			
		||||
 | 
			
		||||
Param        |  Type            |  Description
 | 
			
		||||
------------ | ---------------- | --------------
 | 
			
		||||
`check`      | check            | Any supported check constant.
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Calculate some check sizes} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.checkSize(lzma.CHECK_SHA256) // => 16
 | 
			
		||||
lzma.checkSize(lzma.CHECK_CRC32)  // => 4
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-easy-decoder-memusage"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.easyDecoderMemusage()`
 | 
			
		||||
 | 
			
		||||
* `lzma.easyDecoderMemusage(preset)`
 | 
			
		||||
 | 
			
		||||
Returns the approximate memory usage when decoding using easyDecoder for a given preset.
 | 
			
		||||
 | 
			
		||||
Param        |  Type       |  Description
 | 
			
		||||
------------ | ----------- | --------------
 | 
			
		||||
`preset`     | preset      |  A compression level from 0 to 9
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Return memory usage for decoding} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.easyDecoderMemusage(6) // => 8454192
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-easy-encoder-memusage"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.easyEncoderMemusage()`
 | 
			
		||||
 | 
			
		||||
* `lzma.easyEncoderMemusage(preset)`
 | 
			
		||||
 | 
			
		||||
Returns the approximate memory usage when encoding using easyEncoder for a given preset.
 | 
			
		||||
 | 
			
		||||
Param        |  Type       |  Description
 | 
			
		||||
------------ | ----------- | --------------
 | 
			
		||||
`preset`     | preset      |  A compression level from 0 to 9
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Return memory usage for encoding} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.easyEncoderMemusage(6) // => 97620499
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-raw-decoder-memusage"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.rawDecoderMemusage()`
 | 
			
		||||
 | 
			
		||||
* `lzma.rawDecoderMemusage(filters)`
 | 
			
		||||
 | 
			
		||||
Returns the approximate memory usage when decoding using rawDecoder for a given filter list.
 | 
			
		||||
 | 
			
		||||
Param        |  Type       |  Description
 | 
			
		||||
------------ | ----------- | --------------
 | 
			
		||||
`filters`    | array       |  An array of [filters](#api-options-filters)
 | 
			
		||||
 | 
			
		||||
<a name="api-raw-encoder-memusage"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.rawEncoderMemusage()`
 | 
			
		||||
 | 
			
		||||
* `lzma.rawEncoderMemusage(filters)`
 | 
			
		||||
 | 
			
		||||
Returns the approximate memory usage when encoding using rawEncoder for a given filter list.
 | 
			
		||||
 | 
			
		||||
Param        |  Type       |  Description
 | 
			
		||||
------------ | ----------- | --------------
 | 
			
		||||
`filters`    | array       |  An array of [filters](#api-options-filters)
 | 
			
		||||
 | 
			
		||||
<a name="api-version-string"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.versionString()`
 | 
			
		||||
 | 
			
		||||
* `lzma.versionString()`
 | 
			
		||||
 | 
			
		||||
Returns the version of the underlying C library.
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Return a version string} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.versionString() // => '5.2.3'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-version-number"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.versionNumber()`
 | 
			
		||||
 | 
			
		||||
* `lzma.versionNumber()`
 | 
			
		||||
 | 
			
		||||
Returns the version of the underlying C library.
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Return a numeric version identifier} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.versionNumber() // => 50020012
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-parse-indexes"></a>
 | 
			
		||||
 | 
			
		||||
### .xz file metadata
 | 
			
		||||
 | 
			
		||||
<a name="api-isxz"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.isXZ()`
 | 
			
		||||
 | 
			
		||||
* `lzma.isXZ(input)`
 | 
			
		||||
 | 
			
		||||
Tells whether an input buffer is an XZ file (`.xz`, LZMA2 format) using the
 | 
			
		||||
file format’s magic number. This is not a complete test, i.e. the data
 | 
			
		||||
following the file header may still be invalid in some way.
 | 
			
		||||
 | 
			
		||||
Param        |  Type            |  Description
 | 
			
		||||
------------ | ---------------- | --------------
 | 
			
		||||
`input`      | string / Buffer  | Any string or Buffer (integer arrays accepted).
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{.isXZ() checks some strings correctly} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
lzma.isXZ(fs.readFileSync('test/hamlet.txt.xz')); // => true
 | 
			
		||||
lzma.isXZ(fs.readFileSync('test/hamlet.txt.lzma')); // => false
 | 
			
		||||
lzma.isXZ('Banana'); // => false
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
(The magic number of XZ files is hex `fd 37 7a 58 5a 00` at position 0.)
 | 
			
		||||
 | 
			
		||||
<a name="api-parse-file-index"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.parseFileIndex()`
 | 
			
		||||
 | 
			
		||||
* `lzma.parseFileIndex(options[, callback])`
 | 
			
		||||
 | 
			
		||||
Read `.xz` file metadata.
 | 
			
		||||
 | 
			
		||||
`options.fileSize` needs to be an integer indicating the size of the file
 | 
			
		||||
being inspected, e.g. obtained by `fs.stat()`.
 | 
			
		||||
 | 
			
		||||
`options.read(count, offset, cb)` must be a function that reads `count` bytes
 | 
			
		||||
from the underlying file, starting at position `offset`. If that is not
 | 
			
		||||
possible, e.g. because the file does not have enough bytes, the file should
 | 
			
		||||
be considered corrupt. On success, `cb` should be called with a `Buffer`
 | 
			
		||||
containing the read data. `cb` can be invoked as `cb(err, buffer)`, in which
 | 
			
		||||
case `err` will be passed along to the original `callback` argument when set.
 | 
			
		||||
 | 
			
		||||
`callback` will be called with `err` and `info` as its arguments.
 | 
			
		||||
 | 
			
		||||
If no `callback` is provided, `options.read()` must work synchronously and
 | 
			
		||||
the file info will be returned from `lzma.parseFileIndex()`.
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Read .xz file metadata} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
fs.readFile('test/hamlet.txt.xz', function(err, content) {
 | 
			
		||||
  // handle error
 | 
			
		||||
 | 
			
		||||
  lzma.parseFileIndex({
 | 
			
		||||
    fileSize: content.length,
 | 
			
		||||
    read: function(count, offset, cb) {
 | 
			
		||||
      cb(content.slice(offset, offset + count));
 | 
			
		||||
    }
 | 
			
		||||
  }, function(err, info) {
 | 
			
		||||
    // handle error
 | 
			
		||||
    
 | 
			
		||||
    // do something with e.g. info.uncompressedSize
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<a name="api-parse-file-index-fd"></a>
 | 
			
		||||
 | 
			
		||||
#### `lzma.parseFileIndexFD()`
 | 
			
		||||
 | 
			
		||||
* `lzma.parseFileIndexFD(fd, callback)`
 | 
			
		||||
 | 
			
		||||
Read `.xz` metadata from a file descriptor.
 | 
			
		||||
 | 
			
		||||
This is like [`parseFileIndex()`](#api-parse-file-index), but lets you 
 | 
			
		||||
pass an file descriptor in `fd`. The file will be inspected using
 | 
			
		||||
`fs.stat()` and `fs.read()`. The file descriptor will not be opened or closed
 | 
			
		||||
by this call.
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
<!-- runtest:{Read .xz file metadata from a file descriptor} -->
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
fs.open('test/hamlet.txt.xz', 'r', function(err, fd) {
 | 
			
		||||
  // handle error
 | 
			
		||||
 | 
			
		||||
  lzma.parseFileIndexFD(fd, function(err, info) {
 | 
			
		||||
    // handle error
 | 
			
		||||
    
 | 
			
		||||
    // do something with e.g. info.uncompressedSize
 | 
			
		||||
    
 | 
			
		||||
    fs.close(fd, function(err) { /* handle error */ });
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
This package includes the native C library, so there is no need to install it separately.
 | 
			
		||||
 | 
			
		||||
## Licensing
 | 
			
		||||
 | 
			
		||||
The original C library package contains code under various licenses,
 | 
			
		||||
with its core (liblzma) being public domain. See its contents for details.
 | 
			
		||||
This wrapper is licensed under the MIT License.
 | 
			
		||||
 | 
			
		||||
## Related projects
 | 
			
		||||
 | 
			
		||||
Other implementations of the LZMA algorithms for node.js and/or web clients include:
 | 
			
		||||
 | 
			
		||||
* [lzma-purejs](https://github.com/cscott/lzma-purejs)
 | 
			
		||||
* [LZMA-JS](https://github.com/nmrugg/LZMA-JS)
 | 
			
		||||
* [node-xz](https://github.com/robey/node-xz) (native)
 | 
			
		||||
* [node-liblzma](https://github.com/oorabona/node-liblzma) (native)
 | 
			
		||||
 | 
			
		||||
Note that LZMA has been designed to have much faster decompression than
 | 
			
		||||
compression, which is something you may want to take into account when
 | 
			
		||||
choosing an compression algorithm for large files. Almost always, LZMA achieves
 | 
			
		||||
higher compression ratios than other algorithms, though.
 | 
			
		||||
 | 
			
		||||
## Acknowledgements
 | 
			
		||||
 | 
			
		||||
Initial development of this project was financially supported by [Tradity](https://tradity.de/).
 | 
			
		||||
 | 
			
		||||
[node-xz]: https://github.com/robey/node-xz
 | 
			
		||||
[LZMA-JS]: https://github.com/nmrugg/LZMA-JS
 | 
			
		||||
[Q]: https://github.com/kriskowal/q
 | 
			
		||||
[duplex]: https://nodejs.org/api/stream.html#stream_class_stream_duplex
 | 
			
		||||
[xz-manpage]: https://www.freebsd.org/cgi/man.cgi?query=xz&sektion=1&manpath=FreeBSD+8.3-RELEASE
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/README.md.xz
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/README.md.xz
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										84
									
								
								node_modules/lzma-native/bin/lzmajs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								node_modules/lzma-native/bin/lzmajs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
#!/usr/bin/env node
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var program = require('commander');
 | 
			
		||||
var lzma = require('../');
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
var path = require('path');
 | 
			
		||||
 | 
			
		||||
var argv = process.argv.slice(2);
 | 
			
		||||
var positionalArgs = [];
 | 
			
		||||
 | 
			
		||||
var level = undefined;
 | 
			
		||||
var threads = undefined;
 | 
			
		||||
var compress = true;
 | 
			
		||||
 | 
			
		||||
for (var i = 0; i < argv.length; ++i) {
 | 
			
		||||
  if (argv[i][0] !== '-') {
 | 
			
		||||
    positionalArgs.push(argv[i]);
 | 
			
		||||
    continue;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!isNaN(+argv[i][1])) {
 | 
			
		||||
    level = +argv[i][1];
 | 
			
		||||
    continue;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  switch (argv[i]) {
 | 
			
		||||
    case '-d':
 | 
			
		||||
    case '--decompress':
 | 
			
		||||
      compress = false;
 | 
			
		||||
      break;
 | 
			
		||||
    case '-z':
 | 
			
		||||
    case '--compress':
 | 
			
		||||
      compress = true;
 | 
			
		||||
      break;
 | 
			
		||||
    case '-t':
 | 
			
		||||
    case '--threads':
 | 
			
		||||
      if (!isNaN(+argv[i+1]))
 | 
			
		||||
        threads = +argv[++i];
 | 
			
		||||
      else
 | 
			
		||||
        threads = 0;
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
    case '-h':
 | 
			
		||||
    case '--help':
 | 
			
		||||
      usage();
 | 
			
		||||
      return;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function usage() {
 | 
			
		||||
  process.stdout.write('Usage: \n' +
 | 
			
		||||
      '  ' + path.basename(process.argv[1]) +
 | 
			
		||||
        ' [-d|-z] [-t num] [-1|...|-9] [infile] [outfile]\n' +
 | 
			
		||||
      '\n' +
 | 
			
		||||
      '  -d, --decompress      Decompress infile to outfile\n' +
 | 
			
		||||
      '  -z, --compress        Compress infile to outfile\n' +
 | 
			
		||||
      '  -t n, --threads n     Use n threads for compressing\n' +
 | 
			
		||||
      '  -1, ..., -9           Specifiy compression level\n' +
 | 
			
		||||
      '  -h, --help            Display this text\n' +
 | 
			
		||||
      '\n' +
 | 
			
		||||
      '  <infile> defaults to stdin and <outfile> defaults to stdout.\n');
 | 
			
		||||
  return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var input = process.stdin, output = process.stdout;
 | 
			
		||||
 | 
			
		||||
if (positionalArgs.length > 0) {
 | 
			
		||||
  input = fs.createReadStream(positionalArgs.shift());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (positionalArgs.length > 0) {
 | 
			
		||||
  output = fs.createWriteStream(positionalArgs.shift());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var opts = {
 | 
			
		||||
  preset: level || lzma.PRESET_DEFAULT,
 | 
			
		||||
  threads: threads,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var encoder = lzma.createStream(compress ? 'easyEncoder' : 'autoDecoder', opts);
 | 
			
		||||
 | 
			
		||||
input.pipe(encoder).pipe(output);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/binding-v3.0.8-node-v64-win32-x64/liblzma.dll
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/binding-v3.0.8-node-v64-win32-x64/liblzma.dll
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/binding-v3.0.8-node-v64-win32-x64/lzma_native.node
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/binding-v3.0.8-node-v64-win32-x64/lzma_native.node
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										102
									
								
								node_modules/lzma-native/binding.gyp
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								node_modules/lzma-native/binding.gyp
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
{
 | 
			
		||||
  "variables": {
 | 
			
		||||
    "dlldir%": "<(module_path)"
 | 
			
		||||
  },
 | 
			
		||||
  "targets": [
 | 
			
		||||
    {
 | 
			
		||||
      "target_name": "lzma_native",
 | 
			
		||||
      "sources": [
 | 
			
		||||
        "src/util.cpp",
 | 
			
		||||
        "src/liblzma-functions.cpp",
 | 
			
		||||
        "src/filter-array.cpp",
 | 
			
		||||
        "src/lzma-stream.cpp",
 | 
			
		||||
        "src/module.cpp",
 | 
			
		||||
        "src/mt-options.cpp",
 | 
			
		||||
        "src/index-parser.cpp"
 | 
			
		||||
      ],
 | 
			
		||||
      "include_dirs" : [
 | 
			
		||||
        "<!(node -e \"require('nan')\")"
 | 
			
		||||
      ],
 | 
			
		||||
      "dependencies" : [ "liblzma" ],
 | 
			
		||||
      "conditions" : [
 | 
			
		||||
        [ 'OS!="win"' , {
 | 
			
		||||
          "include_dirs" : [ "<(module_root_dir)/build/liblzma/build/include" ],
 | 
			
		||||
          "libraries" : [ "<(module_root_dir)/build/liblzma/build/lib/liblzma.a" ],
 | 
			
		||||
          "cflags": ['<!@(sh ./cflags.sh)']
 | 
			
		||||
        }, {
 | 
			
		||||
          "include_dirs" : [ "<(module_root_dir)\\deps\\include" ],
 | 
			
		||||
          "link_settings": {
 | 
			
		||||
            "libraries" : [ "-llzma" ],
 | 
			
		||||
            "conditions": [
 | 
			
		||||
              [ 'target_arch=="x64"', {
 | 
			
		||||
                "library_dirs" : [ "<(module_root_dir)\\deps\\bin_x86-64" ]
 | 
			
		||||
              }, {
 | 
			
		||||
                "library_dirs" : [ "<(module_root_dir)\\deps\\bin_i686" ]
 | 
			
		||||
              } ]
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        } ],
 | 
			
		||||
      ],
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "target_name" : "liblzma",
 | 
			
		||||
      "type" : "none",
 | 
			
		||||
      "conditions" : [
 | 
			
		||||
        [ 'OS!="win"' , {
 | 
			
		||||
          "actions" : [
 | 
			
		||||
            {
 | 
			
		||||
              "action_name" : "build",
 | 
			
		||||
               # a hack to run deps/xz-5.2.3 ./configure during `node-gyp configure`
 | 
			
		||||
              'inputs': ['<!@(sh liblzma-config.sh "<(module_root_dir)/build" "<(module_root_dir)/deps/xz-5.2.3.tar.bz2")'],
 | 
			
		||||
              'outputs': [''],
 | 
			
		||||
              'action': [
 | 
			
		||||
                'sh', '<(module_root_dir)/liblzma-build.sh', '<(module_root_dir)/build'
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }, {
 | 
			
		||||
          "conditions": [
 | 
			
		||||
            [ 'target_arch=="x64"', {
 | 
			
		||||
              'variables': {
 | 
			
		||||
                "arch_lib_path" : 'bin_x86-64',
 | 
			
		||||
                "arch_lib_code" : 'x64'
 | 
			
		||||
              }
 | 
			
		||||
            }, {
 | 
			
		||||
              'variables': {
 | 
			
		||||
                "arch_lib_path" : 'bin_i686',
 | 
			
		||||
                "arch_lib_code" : 'ix86'
 | 
			
		||||
              }
 | 
			
		||||
            } ]
 | 
			
		||||
          ],
 | 
			
		||||
          "actions" : [
 | 
			
		||||
            {
 | 
			
		||||
              "msvs_quote_cmd": 0,
 | 
			
		||||
              "action_name" : "build",
 | 
			
		||||
              'inputs': ['deps/doc/liblzma.def'],
 | 
			
		||||
              'outputs': [''],
 | 
			
		||||
              'action': ['lib.exe -def:"<(module_root_dir)/deps/doc/liblzma.def" -out:"<(module_root_dir)/deps/<(arch_lib_path)/lzma.lib" -machine:<(arch_lib_code)']
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "msvs_quote_cmd": 0,
 | 
			
		||||
              "action_name" : "deploy",
 | 
			
		||||
              'inputs': ['deps/<(arch_lib_path)/liblzma.dll'],
 | 
			
		||||
              'outputs': ['<(dlldir)/liblzma.dll'],
 | 
			
		||||
              'action': ['mkdir <(dlldir) > nul 2>&1 & copy "<(module_root_dir)/deps/<(arch_lib_path)/liblzma.dll" <(dlldir)/liblzma.dll']
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        } ],
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "target_name": "action_after_build",
 | 
			
		||||
      "type": "none",
 | 
			
		||||
      "dependencies": [ "<(module_name)" ],
 | 
			
		||||
      "copies": [
 | 
			
		||||
        {
 | 
			
		||||
          "files": [ "<(PRODUCT_DIR)/<(module_name).node" ],
 | 
			
		||||
          "destination": "<(module_path)"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								node_modules/lzma-native/cflags.sh
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								node_modules/lzma-native/cflags.sh
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
WANT_FLAGS="-std=c++11"
 | 
			
		||||
 | 
			
		||||
if [ x"$CXX" = x"" ]; then CXX=c++; fi
 | 
			
		||||
 | 
			
		||||
touch testsupp.c
 | 
			
		||||
 | 
			
		||||
for f in $WANT_FLAGS; do 
 | 
			
		||||
	if $CXX -c -o testsupp.o "$f" testsupp.c 2>&- >&- ; then
 | 
			
		||||
		CFLAGS="$CFLAGS $f"
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
rm -f testsupp.c testsupp.o
 | 
			
		||||
echo "$CFLAGS"
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/bin_i686/liblzma.dll
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/bin_i686/liblzma.dll
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/bin_x86-64/liblzma.dll
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/bin_x86-64/liblzma.dll
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										99
									
								
								node_modules/lzma-native/deps/doc/liblzma.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								node_modules/lzma-native/deps/doc/liblzma.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
EXPORTS
 | 
			
		||||
    lzma_alone_decoder
 | 
			
		||||
    lzma_alone_encoder
 | 
			
		||||
    lzma_auto_decoder
 | 
			
		||||
    lzma_block_buffer_bound
 | 
			
		||||
    lzma_block_buffer_decode
 | 
			
		||||
    lzma_block_buffer_encode
 | 
			
		||||
    lzma_block_compressed_size
 | 
			
		||||
    lzma_block_decoder
 | 
			
		||||
    lzma_block_encoder
 | 
			
		||||
    lzma_block_header_decode
 | 
			
		||||
    lzma_block_header_encode
 | 
			
		||||
    lzma_block_header_size
 | 
			
		||||
    lzma_block_total_size
 | 
			
		||||
    lzma_block_uncomp_encode
 | 
			
		||||
    lzma_block_unpadded_size
 | 
			
		||||
    lzma_check_is_supported
 | 
			
		||||
    lzma_check_size
 | 
			
		||||
    lzma_code
 | 
			
		||||
    lzma_cputhreads
 | 
			
		||||
    lzma_crc32
 | 
			
		||||
    lzma_crc64
 | 
			
		||||
    lzma_easy_buffer_encode
 | 
			
		||||
    lzma_easy_decoder_memusage
 | 
			
		||||
    lzma_easy_encoder
 | 
			
		||||
    lzma_easy_encoder_memusage
 | 
			
		||||
    lzma_end
 | 
			
		||||
    lzma_filter_decoder_is_supported
 | 
			
		||||
    lzma_filter_encoder_is_supported
 | 
			
		||||
    lzma_filter_flags_decode
 | 
			
		||||
    lzma_filter_flags_encode
 | 
			
		||||
    lzma_filter_flags_size
 | 
			
		||||
    lzma_filters_copy
 | 
			
		||||
    lzma_filters_update
 | 
			
		||||
    lzma_get_check
 | 
			
		||||
    lzma_get_progress
 | 
			
		||||
    lzma_index_append
 | 
			
		||||
    lzma_index_block_count
 | 
			
		||||
    lzma_index_buffer_decode
 | 
			
		||||
    lzma_index_buffer_encode
 | 
			
		||||
    lzma_index_cat
 | 
			
		||||
    lzma_index_checks
 | 
			
		||||
    lzma_index_decoder
 | 
			
		||||
    lzma_index_dup
 | 
			
		||||
    lzma_index_encoder
 | 
			
		||||
    lzma_index_end
 | 
			
		||||
    lzma_index_file_size
 | 
			
		||||
    lzma_index_hash_append
 | 
			
		||||
    lzma_index_hash_decode
 | 
			
		||||
    lzma_index_hash_end
 | 
			
		||||
    lzma_index_hash_init
 | 
			
		||||
    lzma_index_hash_size
 | 
			
		||||
    lzma_index_init
 | 
			
		||||
    lzma_index_iter_init
 | 
			
		||||
    lzma_index_iter_locate
 | 
			
		||||
    lzma_index_iter_next
 | 
			
		||||
    lzma_index_iter_rewind
 | 
			
		||||
    lzma_index_memusage
 | 
			
		||||
    lzma_index_memused
 | 
			
		||||
    lzma_index_size
 | 
			
		||||
    lzma_index_stream_count
 | 
			
		||||
    lzma_index_stream_flags
 | 
			
		||||
    lzma_index_stream_padding
 | 
			
		||||
    lzma_index_stream_size
 | 
			
		||||
    lzma_index_total_size
 | 
			
		||||
    lzma_index_uncompressed_size
 | 
			
		||||
    lzma_lzma_preset
 | 
			
		||||
    lzma_memlimit_get
 | 
			
		||||
    lzma_memlimit_set
 | 
			
		||||
    lzma_memusage
 | 
			
		||||
    lzma_mf_is_supported
 | 
			
		||||
    lzma_mode_is_supported
 | 
			
		||||
    lzma_physmem
 | 
			
		||||
    lzma_properties_decode
 | 
			
		||||
    lzma_properties_encode
 | 
			
		||||
    lzma_properties_size
 | 
			
		||||
    lzma_raw_buffer_decode
 | 
			
		||||
    lzma_raw_buffer_encode
 | 
			
		||||
    lzma_raw_decoder
 | 
			
		||||
    lzma_raw_decoder_memusage
 | 
			
		||||
    lzma_raw_encoder
 | 
			
		||||
    lzma_raw_encoder_memusage
 | 
			
		||||
    lzma_stream_buffer_bound
 | 
			
		||||
    lzma_stream_buffer_decode
 | 
			
		||||
    lzma_stream_buffer_encode
 | 
			
		||||
    lzma_stream_decoder
 | 
			
		||||
    lzma_stream_encoder
 | 
			
		||||
    lzma_stream_encoder_mt
 | 
			
		||||
    lzma_stream_encoder_mt_memusage
 | 
			
		||||
    lzma_stream_flags_compare
 | 
			
		||||
    lzma_stream_footer_decode
 | 
			
		||||
    lzma_stream_footer_encode
 | 
			
		||||
    lzma_stream_header_decode
 | 
			
		||||
    lzma_stream_header_encode
 | 
			
		||||
    lzma_version_number
 | 
			
		||||
    lzma_version_string
 | 
			
		||||
    lzma_vli_decode
 | 
			
		||||
    lzma_vli_encode
 | 
			
		||||
    lzma_vli_size
 | 
			
		||||
							
								
								
									
										321
									
								
								node_modules/lzma-native/deps/include/lzma.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										321
									
								
								node_modules/lzma-native/deps/include/lzma.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,321 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        api/lzma.h
 | 
			
		||||
 * \brief       The public API of liblzma data compression library
 | 
			
		||||
 *
 | 
			
		||||
 * liblzma is a public domain general-purpose data compression library with
 | 
			
		||||
 * a zlib-like API. The native file format is .xz, but also the old .lzma
 | 
			
		||||
 * format and raw (no headers) streams are supported. Multiple compression
 | 
			
		||||
 * algorithms (filters) are supported. Currently LZMA2 is the primary filter.
 | 
			
		||||
 *
 | 
			
		||||
 * liblzma is part of XZ Utils <http://tukaani.org/xz/>. XZ Utils includes
 | 
			
		||||
 * a gzip-like command line tool named xz and some other tools. XZ Utils
 | 
			
		||||
 * is developed and maintained by Lasse Collin.
 | 
			
		||||
 *
 | 
			
		||||
 * Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK
 | 
			
		||||
 * <http://7-zip.org/sdk.html>.
 | 
			
		||||
 *
 | 
			
		||||
 * The SHA-256 implementation is based on the public domain code found from
 | 
			
		||||
 * 7-Zip <http://7-zip.org/>, which has a modified version of the public
 | 
			
		||||
 * domain SHA-256 code found from Crypto++ <http://www.cryptopp.com/>.
 | 
			
		||||
 * The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H
 | 
			
		||||
#define LZMA_H
 | 
			
		||||
 | 
			
		||||
/*****************************
 | 
			
		||||
 * Required standard headers *
 | 
			
		||||
 *****************************/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * liblzma API headers need some standard types and macros. To allow
 | 
			
		||||
 * including lzma.h without requiring the application to include other
 | 
			
		||||
 * headers first, lzma.h includes the required standard headers unless
 | 
			
		||||
 * they already seem to be included already or if LZMA_MANUAL_HEADERS
 | 
			
		||||
 * has been defined.
 | 
			
		||||
 *
 | 
			
		||||
 * Here's what types and macros are needed and from which headers:
 | 
			
		||||
 *  - stddef.h: size_t, NULL
 | 
			
		||||
 *  - stdint.h: uint8_t, uint32_t, uint64_t, UINT32_C(n), uint64_C(n),
 | 
			
		||||
 *    UINT32_MAX, UINT64_MAX
 | 
			
		||||
 *
 | 
			
		||||
 * However, inttypes.h is a little more portable than stdint.h, although
 | 
			
		||||
 * inttypes.h declares some unneeded things compared to plain stdint.h.
 | 
			
		||||
 *
 | 
			
		||||
 * The hacks below aren't perfect, specifically they assume that inttypes.h
 | 
			
		||||
 * exists and that it typedefs at least uint8_t, uint32_t, and uint64_t,
 | 
			
		||||
 * and that, in case of incomplete inttypes.h, unsigned int is 32-bit.
 | 
			
		||||
 * If the application already takes care of setting up all the types and
 | 
			
		||||
 * macros properly (for example by using gnulib's stdint.h or inttypes.h),
 | 
			
		||||
 * we try to detect that the macros are already defined and don't include
 | 
			
		||||
 * inttypes.h here again. However, you may define LZMA_MANUAL_HEADERS to
 | 
			
		||||
 * force this file to never include any system headers.
 | 
			
		||||
 *
 | 
			
		||||
 * Some could argue that liblzma API should provide all the required types,
 | 
			
		||||
 * for example lzma_uint64, LZMA_UINT64_C(n), and LZMA_UINT64_MAX. This was
 | 
			
		||||
 * seen as an unnecessary mess, since most systems already provide all the
 | 
			
		||||
 * necessary types and macros in the standard headers.
 | 
			
		||||
 *
 | 
			
		||||
 * Note that liblzma API still has lzma_bool, because using stdbool.h would
 | 
			
		||||
 * break C89 and C++ programs on many systems. sizeof(bool) in C99 isn't
 | 
			
		||||
 * necessarily the same as sizeof(bool) in C++.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_MANUAL_HEADERS
 | 
			
		||||
	/*
 | 
			
		||||
	 * I suppose this works portably also in C++. Note that in C++,
 | 
			
		||||
	 * we need to get size_t into the global namespace.
 | 
			
		||||
	 */
 | 
			
		||||
#	include <stddef.h>
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Skip inttypes.h if we already have all the required macros. If we
 | 
			
		||||
	 * have the macros, we assume that we have the matching typedefs too.
 | 
			
		||||
	 */
 | 
			
		||||
#	if !defined(UINT32_C) || !defined(UINT64_C) \
 | 
			
		||||
			|| !defined(UINT32_MAX) || !defined(UINT64_MAX)
 | 
			
		||||
		/*
 | 
			
		||||
		 * MSVC versions older than 2013 have no C99 support, and
 | 
			
		||||
		 * thus they cannot be used to compile liblzma. Using an
 | 
			
		||||
		 * existing liblzma.dll with old MSVC can work though(*),
 | 
			
		||||
		 * but we need to define the required standard integer
 | 
			
		||||
		 * types here in a MSVC-specific way.
 | 
			
		||||
		 *
 | 
			
		||||
		 * (*) If you do this, the existing liblzma.dll probably uses
 | 
			
		||||
		 *     a different runtime library than your MSVC-built
 | 
			
		||||
		 *     application. Mixing runtimes is generally bad, but
 | 
			
		||||
		 *     in this case it should work as long as you avoid
 | 
			
		||||
		 *     the few rarely-needed liblzma functions that allocate
 | 
			
		||||
		 *     memory and expect the caller to free it using free().
 | 
			
		||||
		 */
 | 
			
		||||
#		if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1800
 | 
			
		||||
			typedef unsigned __int8 uint8_t;
 | 
			
		||||
			typedef unsigned __int32 uint32_t;
 | 
			
		||||
			typedef unsigned __int64 uint64_t;
 | 
			
		||||
#		else
 | 
			
		||||
			/* Use the standard inttypes.h. */
 | 
			
		||||
#			ifdef __cplusplus
 | 
			
		||||
				/*
 | 
			
		||||
				 * C99 sections 7.18.2 and 7.18.4 specify
 | 
			
		||||
				 * that C++ implementations define the limit
 | 
			
		||||
				 * and constant macros only if specifically
 | 
			
		||||
				 * requested. Note that if you want the
 | 
			
		||||
				 * format macros (PRIu64 etc.) too, you need
 | 
			
		||||
				 * to define __STDC_FORMAT_MACROS before
 | 
			
		||||
				 * including lzma.h, since re-including
 | 
			
		||||
				 * inttypes.h with __STDC_FORMAT_MACROS
 | 
			
		||||
				 * defined doesn't necessarily work.
 | 
			
		||||
				 */
 | 
			
		||||
#				ifndef __STDC_LIMIT_MACROS
 | 
			
		||||
#					define __STDC_LIMIT_MACROS 1
 | 
			
		||||
#				endif
 | 
			
		||||
#				ifndef __STDC_CONSTANT_MACROS
 | 
			
		||||
#					define __STDC_CONSTANT_MACROS 1
 | 
			
		||||
#				endif
 | 
			
		||||
#			endif
 | 
			
		||||
 | 
			
		||||
#			include <inttypes.h>
 | 
			
		||||
#		endif
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Some old systems have only the typedefs in inttypes.h, and
 | 
			
		||||
		 * lack all the macros. For those systems, we need a few more
 | 
			
		||||
		 * hacks. We assume that unsigned int is 32-bit and unsigned
 | 
			
		||||
		 * long is either 32-bit or 64-bit. If these hacks aren't
 | 
			
		||||
		 * enough, the application has to setup the types manually
 | 
			
		||||
		 * before including lzma.h.
 | 
			
		||||
		 */
 | 
			
		||||
#		ifndef UINT32_C
 | 
			
		||||
#			if defined(_WIN32) && defined(_MSC_VER)
 | 
			
		||||
#				define UINT32_C(n) n ## UI32
 | 
			
		||||
#			else
 | 
			
		||||
#				define UINT32_C(n) n ## U
 | 
			
		||||
#			endif
 | 
			
		||||
#		endif
 | 
			
		||||
 | 
			
		||||
#		ifndef UINT64_C
 | 
			
		||||
#			if defined(_WIN32) && defined(_MSC_VER)
 | 
			
		||||
#				define UINT64_C(n) n ## UI64
 | 
			
		||||
#			else
 | 
			
		||||
				/* Get ULONG_MAX. */
 | 
			
		||||
#				include <limits.h>
 | 
			
		||||
#				if ULONG_MAX == 4294967295UL
 | 
			
		||||
#					define UINT64_C(n) n ## ULL
 | 
			
		||||
#				else
 | 
			
		||||
#					define UINT64_C(n) n ## UL
 | 
			
		||||
#				endif
 | 
			
		||||
#			endif
 | 
			
		||||
#		endif
 | 
			
		||||
 | 
			
		||||
#		ifndef UINT32_MAX
 | 
			
		||||
#			define UINT32_MAX (UINT32_C(4294967295))
 | 
			
		||||
#		endif
 | 
			
		||||
 | 
			
		||||
#		ifndef UINT64_MAX
 | 
			
		||||
#			define UINT64_MAX (UINT64_C(18446744073709551615))
 | 
			
		||||
#		endif
 | 
			
		||||
#	endif
 | 
			
		||||
#endif /* ifdef LZMA_MANUAL_HEADERS */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/******************
 | 
			
		||||
 * LZMA_API macro *
 | 
			
		||||
 ******************/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Some systems require that the functions and function pointers are
 | 
			
		||||
 * declared specially in the headers. LZMA_API_IMPORT is for importing
 | 
			
		||||
 * symbols and LZMA_API_CALL is to specify the calling convention.
 | 
			
		||||
 *
 | 
			
		||||
 * By default it is assumed that the application will link dynamically
 | 
			
		||||
 * against liblzma. #define LZMA_API_STATIC in your application if you
 | 
			
		||||
 * want to link against static liblzma. If you don't care about portability
 | 
			
		||||
 * to operating systems like Windows, or at least don't care about linking
 | 
			
		||||
 * against static liblzma on them, don't worry about LZMA_API_STATIC. That
 | 
			
		||||
 * is, most developers will never need to use LZMA_API_STATIC.
 | 
			
		||||
 *
 | 
			
		||||
 * The GCC variants are a special case on Windows (Cygwin and MinGW).
 | 
			
		||||
 * We rely on GCC doing the right thing with its auto-import feature,
 | 
			
		||||
 * and thus don't use __declspec(dllimport). This way developers don't
 | 
			
		||||
 * need to worry about LZMA_API_STATIC. Also the calling convention is
 | 
			
		||||
 * omitted on Cygwin but not on MinGW.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef LZMA_API_IMPORT
 | 
			
		||||
#	if !defined(LZMA_API_STATIC) && defined(_WIN32) && !defined(__GNUC__)
 | 
			
		||||
#		define LZMA_API_IMPORT __declspec(dllimport)
 | 
			
		||||
#	else
 | 
			
		||||
#		define LZMA_API_IMPORT
 | 
			
		||||
#	endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_API_CALL
 | 
			
		||||
#	if defined(_WIN32) && !defined(__CYGWIN__)
 | 
			
		||||
#		define LZMA_API_CALL __cdecl
 | 
			
		||||
#	else
 | 
			
		||||
#		define LZMA_API_CALL
 | 
			
		||||
#	endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_API
 | 
			
		||||
#	define LZMA_API(type) LZMA_API_IMPORT type LZMA_API_CALL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***********
 | 
			
		||||
 * nothrow *
 | 
			
		||||
 ***********/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * None of the functions in liblzma may throw an exception. Even
 | 
			
		||||
 * the functions that use callback functions won't throw exceptions,
 | 
			
		||||
 * because liblzma would break if a callback function threw an exception.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef lzma_nothrow
 | 
			
		||||
#	if defined(__cplusplus)
 | 
			
		||||
#		define lzma_nothrow throw()
 | 
			
		||||
#	elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
 | 
			
		||||
#		define lzma_nothrow __attribute__((__nothrow__))
 | 
			
		||||
#	else
 | 
			
		||||
#		define lzma_nothrow
 | 
			
		||||
#	endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/********************
 | 
			
		||||
 * GNU C extensions *
 | 
			
		||||
 ********************/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * GNU C extensions are used conditionally in the public API. It doesn't
 | 
			
		||||
 * break anything if these are sometimes enabled and sometimes not, only
 | 
			
		||||
 * affects warnings and optimizations.
 | 
			
		||||
 */
 | 
			
		||||
#if __GNUC__ >= 3
 | 
			
		||||
#	ifndef lzma_attribute
 | 
			
		||||
#		define lzma_attribute(attr) __attribute__(attr)
 | 
			
		||||
#	endif
 | 
			
		||||
 | 
			
		||||
	/* warn_unused_result was added in GCC 3.4. */
 | 
			
		||||
#	ifndef lzma_attr_warn_unused_result
 | 
			
		||||
#		if __GNUC__ == 3 && __GNUC_MINOR__ < 4
 | 
			
		||||
#			define lzma_attr_warn_unused_result
 | 
			
		||||
#		endif
 | 
			
		||||
#	endif
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
#	ifndef lzma_attribute
 | 
			
		||||
#		define lzma_attribute(attr)
 | 
			
		||||
#	endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef lzma_attr_pure
 | 
			
		||||
#	define lzma_attr_pure lzma_attribute((__pure__))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef lzma_attr_const
 | 
			
		||||
#	define lzma_attr_const lzma_attribute((__const__))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef lzma_attr_warn_unused_result
 | 
			
		||||
#	define lzma_attr_warn_unused_result \
 | 
			
		||||
		lzma_attribute((__warn_unused_result__))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**************
 | 
			
		||||
 * Subheaders *
 | 
			
		||||
 **************/
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Subheaders check that this is defined. It is to prevent including
 | 
			
		||||
 * them directly from applications.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_H_INTERNAL 1
 | 
			
		||||
 | 
			
		||||
/* Basic features */
 | 
			
		||||
#include "lzma/version.h"
 | 
			
		||||
#include "lzma/base.h"
 | 
			
		||||
#include "lzma/vli.h"
 | 
			
		||||
#include "lzma/check.h"
 | 
			
		||||
 | 
			
		||||
/* Filters */
 | 
			
		||||
#include "lzma/filter.h"
 | 
			
		||||
#include "lzma/bcj.h"
 | 
			
		||||
#include "lzma/delta.h"
 | 
			
		||||
#include "lzma/lzma12.h"
 | 
			
		||||
 | 
			
		||||
/* Container formats */
 | 
			
		||||
#include "lzma/container.h"
 | 
			
		||||
 | 
			
		||||
/* Advanced features */
 | 
			
		||||
#include "lzma/stream_flags.h"
 | 
			
		||||
#include "lzma/block.h"
 | 
			
		||||
#include "lzma/index.h"
 | 
			
		||||
#include "lzma/index_hash.h"
 | 
			
		||||
 | 
			
		||||
/* Hardware information */
 | 
			
		||||
#include "lzma/hardware.h"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * All subheaders included. Undefine LZMA_H_INTERNAL to prevent applications
 | 
			
		||||
 * re-including the subheaders.
 | 
			
		||||
 */
 | 
			
		||||
#undef LZMA_H_INTERNAL
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* ifndef LZMA_H */
 | 
			
		||||
							
								
								
									
										654
									
								
								node_modules/lzma-native/deps/include/lzma/base.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										654
									
								
								node_modules/lzma-native/deps/include/lzma/base.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,654 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/base.h
 | 
			
		||||
 * \brief       Data types and functions used in many places in liblzma API
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Boolean
 | 
			
		||||
 *
 | 
			
		||||
 * This is here because C89 doesn't have stdbool.h. To set a value for
 | 
			
		||||
 * variables having type lzma_bool, you can use
 | 
			
		||||
 *   - C99's `true' and `false' from stdbool.h;
 | 
			
		||||
 *   - C++'s internal `true' and `false'; or
 | 
			
		||||
 *   - integers one (true) and zero (false).
 | 
			
		||||
 */
 | 
			
		||||
typedef unsigned char lzma_bool;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Type of reserved enumeration variable in structures
 | 
			
		||||
 *
 | 
			
		||||
 * To avoid breaking library ABI when new features are added, several
 | 
			
		||||
 * structures contain extra variables that may be used in future. Since
 | 
			
		||||
 * sizeof(enum) can be different than sizeof(int), and sizeof(enum) may
 | 
			
		||||
 * even vary depending on the range of enumeration constants, we specify
 | 
			
		||||
 * a separate type to be used for reserved enumeration variables. All
 | 
			
		||||
 * enumeration constants in liblzma API will be non-negative and less
 | 
			
		||||
 * than 128, which should guarantee that the ABI won't break even when
 | 
			
		||||
 * new constants are added to existing enumerations.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_RESERVED_ENUM      = 0
 | 
			
		||||
} lzma_reserved_enum;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Return values used by several functions in liblzma
 | 
			
		||||
 *
 | 
			
		||||
 * Check the descriptions of specific functions to find out which return
 | 
			
		||||
 * values they can return. With some functions the return values may have
 | 
			
		||||
 * more specific meanings than described here; those differences are
 | 
			
		||||
 * described per-function basis.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_OK                 = 0,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Operation completed successfully
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_STREAM_END         = 1,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       End of stream was reached
 | 
			
		||||
		 *
 | 
			
		||||
		 * In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or
 | 
			
		||||
		 * LZMA_FINISH was finished. In decoder, this indicates
 | 
			
		||||
		 * that all the data was successfully decoded.
 | 
			
		||||
		 *
 | 
			
		||||
		 * In all cases, when LZMA_STREAM_END is returned, the last
 | 
			
		||||
		 * output bytes should be picked from strm->next_out.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_NO_CHECK           = 2,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Input stream has no integrity check
 | 
			
		||||
		 *
 | 
			
		||||
		 * This return value can be returned only if the
 | 
			
		||||
		 * LZMA_TELL_NO_CHECK flag was used when initializing
 | 
			
		||||
		 * the decoder. LZMA_NO_CHECK is just a warning, and
 | 
			
		||||
		 * the decoding can be continued normally.
 | 
			
		||||
		 *
 | 
			
		||||
		 * It is possible to call lzma_get_check() immediately after
 | 
			
		||||
		 * lzma_code has returned LZMA_NO_CHECK. The result will
 | 
			
		||||
		 * naturally be LZMA_CHECK_NONE, but the possibility to call
 | 
			
		||||
		 * lzma_get_check() may be convenient in some applications.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_UNSUPPORTED_CHECK  = 3,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Cannot calculate the integrity check
 | 
			
		||||
		 *
 | 
			
		||||
		 * The usage of this return value is different in encoders
 | 
			
		||||
		 * and decoders.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Encoders can return this value only from the initialization
 | 
			
		||||
		 * function. If initialization fails with this value, the
 | 
			
		||||
		 * encoding cannot be done, because there's no way to produce
 | 
			
		||||
		 * output with the correct integrity check.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Decoders can return this value only from lzma_code() and
 | 
			
		||||
		 * only if the LZMA_TELL_UNSUPPORTED_CHECK flag was used when
 | 
			
		||||
		 * initializing the decoder. The decoding can still be
 | 
			
		||||
		 * continued normally even if the check type is unsupported,
 | 
			
		||||
		 * but naturally the check will not be validated, and possible
 | 
			
		||||
		 * errors may go undetected.
 | 
			
		||||
		 *
 | 
			
		||||
		 * With decoder, it is possible to call lzma_get_check()
 | 
			
		||||
		 * immediately after lzma_code() has returned
 | 
			
		||||
		 * LZMA_UNSUPPORTED_CHECK. This way it is possible to find
 | 
			
		||||
		 * out what the unsupported Check ID was.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_GET_CHECK          = 4,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Integrity check type is now available
 | 
			
		||||
		 *
 | 
			
		||||
		 * This value can be returned only by the lzma_code() function
 | 
			
		||||
		 * and only if the decoder was initialized with the
 | 
			
		||||
		 * LZMA_TELL_ANY_CHECK flag. LZMA_GET_CHECK tells the
 | 
			
		||||
		 * application that it may now call lzma_get_check() to find
 | 
			
		||||
		 * out the Check ID. This can be used, for example, to
 | 
			
		||||
		 * implement a decoder that accepts only files that have
 | 
			
		||||
		 * strong enough integrity check.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MEM_ERROR          = 5,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Cannot allocate memory
 | 
			
		||||
		 *
 | 
			
		||||
		 * Memory allocation failed, or the size of the allocation
 | 
			
		||||
		 * would be greater than SIZE_MAX.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Due to internal implementation reasons, the coding cannot
 | 
			
		||||
		 * be continued even if more memory were made available after
 | 
			
		||||
		 * LZMA_MEM_ERROR.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MEMLIMIT_ERROR     = 6,
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Memory usage limit was reached
 | 
			
		||||
		 *
 | 
			
		||||
		 * Decoder would need more memory than allowed by the
 | 
			
		||||
		 * specified memory usage limit. To continue decoding,
 | 
			
		||||
		 * the memory usage limit has to be increased with
 | 
			
		||||
		 * lzma_memlimit_set().
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_FORMAT_ERROR       = 7,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       File format not recognized
 | 
			
		||||
		 *
 | 
			
		||||
		 * The decoder did not recognize the input as supported file
 | 
			
		||||
		 * format. This error can occur, for example, when trying to
 | 
			
		||||
		 * decode .lzma format file with lzma_stream_decoder,
 | 
			
		||||
		 * because lzma_stream_decoder accepts only the .xz format.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_OPTIONS_ERROR      = 8,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Invalid or unsupported options
 | 
			
		||||
		 *
 | 
			
		||||
		 * Invalid or unsupported options, for example
 | 
			
		||||
		 *  - unsupported filter(s) or filter options; or
 | 
			
		||||
		 *  - reserved bits set in headers (decoder only).
 | 
			
		||||
		 *
 | 
			
		||||
		 * Rebuilding liblzma with more features enabled, or
 | 
			
		||||
		 * upgrading to a newer version of liblzma may help.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_DATA_ERROR         = 9,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Data is corrupt
 | 
			
		||||
		 *
 | 
			
		||||
		 * The usage of this return value is different in encoders
 | 
			
		||||
		 * and decoders. In both encoder and decoder, the coding
 | 
			
		||||
		 * cannot continue after this error.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Encoders return this if size limits of the target file
 | 
			
		||||
		 * format would be exceeded. These limits are huge, thus
 | 
			
		||||
		 * getting this error from an encoder is mostly theoretical.
 | 
			
		||||
		 * For example, the maximum compressed and uncompressed
 | 
			
		||||
		 * size of a .xz Stream is roughly 8 EiB (2^63 bytes).
 | 
			
		||||
		 *
 | 
			
		||||
		 * Decoders return this error if the input data is corrupt.
 | 
			
		||||
		 * This can mean, for example, invalid CRC32 in headers
 | 
			
		||||
		 * or invalid check of uncompressed data.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_BUF_ERROR          = 10,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       No progress is possible
 | 
			
		||||
		 *
 | 
			
		||||
		 * This error code is returned when the coder cannot consume
 | 
			
		||||
		 * any new input and produce any new output. The most common
 | 
			
		||||
		 * reason for this error is that the input stream being
 | 
			
		||||
		 * decoded is truncated or corrupt.
 | 
			
		||||
		 *
 | 
			
		||||
		 * This error is not fatal. Coding can be continued normally
 | 
			
		||||
		 * by providing more input and/or more output space, if
 | 
			
		||||
		 * possible.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Typically the first call to lzma_code() that can do no
 | 
			
		||||
		 * progress returns LZMA_OK instead of LZMA_BUF_ERROR. Only
 | 
			
		||||
		 * the second consecutive call doing no progress will return
 | 
			
		||||
		 * LZMA_BUF_ERROR. This is intentional.
 | 
			
		||||
		 *
 | 
			
		||||
		 * With zlib, Z_BUF_ERROR may be returned even if the
 | 
			
		||||
		 * application is doing nothing wrong, so apps will need
 | 
			
		||||
		 * to handle Z_BUF_ERROR specially. The above hack
 | 
			
		||||
		 * guarantees that liblzma never returns LZMA_BUF_ERROR
 | 
			
		||||
		 * to properly written applications unless the input file
 | 
			
		||||
		 * is truncated or corrupt. This should simplify the
 | 
			
		||||
		 * applications a little.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_PROG_ERROR         = 11,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Programming error
 | 
			
		||||
		 *
 | 
			
		||||
		 * This indicates that the arguments given to the function are
 | 
			
		||||
		 * invalid or the internal state of the decoder is corrupt.
 | 
			
		||||
		 *   - Function arguments are invalid or the structures
 | 
			
		||||
		 *     pointed by the argument pointers are invalid
 | 
			
		||||
		 *     e.g. if strm->next_out has been set to NULL and
 | 
			
		||||
		 *     strm->avail_out > 0 when calling lzma_code().
 | 
			
		||||
		 *   - lzma_* functions have been called in wrong order
 | 
			
		||||
		 *     e.g. lzma_code() was called right after lzma_end().
 | 
			
		||||
		 *   - If errors occur randomly, the reason might be flaky
 | 
			
		||||
		 *     hardware.
 | 
			
		||||
		 *
 | 
			
		||||
		 * If you think that your code is correct, this error code
 | 
			
		||||
		 * can be a sign of a bug in liblzma. See the documentation
 | 
			
		||||
		 * how to report bugs.
 | 
			
		||||
		 */
 | 
			
		||||
} lzma_ret;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       The `action' argument for lzma_code()
 | 
			
		||||
 *
 | 
			
		||||
 * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER,
 | 
			
		||||
 * or LZMA_FINISH, the same `action' must is used until lzma_code() returns
 | 
			
		||||
 * LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must
 | 
			
		||||
 * not be modified by the application until lzma_code() returns
 | 
			
		||||
 * LZMA_STREAM_END. Changing the `action' or modifying the amount of input
 | 
			
		||||
 * will make lzma_code() return LZMA_PROG_ERROR.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_RUN = 0,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Continue coding
 | 
			
		||||
		 *
 | 
			
		||||
		 * Encoder: Encode as much input as possible. Some internal
 | 
			
		||||
		 * buffering will probably be done (depends on the filter
 | 
			
		||||
		 * chain in use), which causes latency: the input used won't
 | 
			
		||||
		 * usually be decodeable from the output of the same
 | 
			
		||||
		 * lzma_code() call.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Decoder: Decode as much input as possible and produce as
 | 
			
		||||
		 * much output as possible.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_SYNC_FLUSH = 1,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Make all the input available at output
 | 
			
		||||
		 *
 | 
			
		||||
		 * Normally the encoder introduces some latency.
 | 
			
		||||
		 * LZMA_SYNC_FLUSH forces all the buffered data to be
 | 
			
		||||
		 * available at output without resetting the internal
 | 
			
		||||
		 * state of the encoder. This way it is possible to use
 | 
			
		||||
		 * compressed stream for example for communication over
 | 
			
		||||
		 * network.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Only some filters support LZMA_SYNC_FLUSH. Trying to use
 | 
			
		||||
		 * LZMA_SYNC_FLUSH with filters that don't support it will
 | 
			
		||||
		 * make lzma_code() return LZMA_OPTIONS_ERROR. For example,
 | 
			
		||||
		 * LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Using LZMA_SYNC_FLUSH very often can dramatically reduce
 | 
			
		||||
		 * the compression ratio. With some filters (for example,
 | 
			
		||||
		 * LZMA2), fine-tuning the compression options may help
 | 
			
		||||
		 * mitigate this problem significantly (for example,
 | 
			
		||||
		 * match finder with LZMA2).
 | 
			
		||||
		 *
 | 
			
		||||
		 * Decoders don't support LZMA_SYNC_FLUSH.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_FULL_FLUSH = 2,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Finish encoding of the current Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * All the input data going to the current Block must have
 | 
			
		||||
		 * been given to the encoder (the last bytes can still be
 | 
			
		||||
		 * pending in *next_in). Call lzma_code() with LZMA_FULL_FLUSH
 | 
			
		||||
		 * until it returns LZMA_STREAM_END. Then continue normally
 | 
			
		||||
		 * with LZMA_RUN or finish the Stream with LZMA_FINISH.
 | 
			
		||||
		 *
 | 
			
		||||
		 * This action is currently supported only by Stream encoder
 | 
			
		||||
		 * and easy encoder (which uses Stream encoder). If there is
 | 
			
		||||
		 * no unfinished Block, no empty Block is created.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_FULL_BARRIER = 4,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Finish encoding of the current Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * This is like LZMA_FULL_FLUSH except that this doesn't
 | 
			
		||||
		 * necessarily wait until all the input has been made
 | 
			
		||||
		 * available via the output buffer. That is, lzma_code()
 | 
			
		||||
		 * might return LZMA_STREAM_END as soon as all the input
 | 
			
		||||
		 * has been consumed (avail_in == 0).
 | 
			
		||||
		 *
 | 
			
		||||
		 * LZMA_FULL_BARRIER is useful with a threaded encoder if
 | 
			
		||||
		 * one wants to split the .xz Stream into Blocks at specific
 | 
			
		||||
		 * offsets but doesn't care if the output isn't flushed
 | 
			
		||||
		 * immediately. Using LZMA_FULL_BARRIER allows keeping
 | 
			
		||||
		 * the threads busy while LZMA_FULL_FLUSH would make
 | 
			
		||||
		 * lzma_code() wait until all the threads have finished
 | 
			
		||||
		 * until more data could be passed to the encoder.
 | 
			
		||||
		 *
 | 
			
		||||
		 * With a lzma_stream initialized with the single-threaded
 | 
			
		||||
		 * lzma_stream_encoder() or lzma_easy_encoder(),
 | 
			
		||||
		 * LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_FINISH = 3
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Finish the coding operation
 | 
			
		||||
		 *
 | 
			
		||||
		 * All the input data must have been given to the encoder
 | 
			
		||||
		 * (the last bytes can still be pending in next_in).
 | 
			
		||||
		 * Call lzma_code() with LZMA_FINISH until it returns
 | 
			
		||||
		 * LZMA_STREAM_END. Once LZMA_FINISH has been used,
 | 
			
		||||
		 * the amount of input must no longer be changed by
 | 
			
		||||
		 * the application.
 | 
			
		||||
		 *
 | 
			
		||||
		 * When decoding, using LZMA_FINISH is optional unless the
 | 
			
		||||
		 * LZMA_CONCATENATED flag was used when the decoder was
 | 
			
		||||
		 * initialized. When LZMA_CONCATENATED was not used, the only
 | 
			
		||||
		 * effect of LZMA_FINISH is that the amount of input must not
 | 
			
		||||
		 * be changed just like in the encoder.
 | 
			
		||||
		 */
 | 
			
		||||
} lzma_action;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Custom functions for memory handling
 | 
			
		||||
 *
 | 
			
		||||
 * A pointer to lzma_allocator may be passed via lzma_stream structure
 | 
			
		||||
 * to liblzma, and some advanced functions take a pointer to lzma_allocator
 | 
			
		||||
 * as a separate function argument. The library will use the functions
 | 
			
		||||
 * specified in lzma_allocator for memory handling instead of the default
 | 
			
		||||
 * malloc() and free(). C++ users should note that the custom memory
 | 
			
		||||
 * handling functions must not throw exceptions.
 | 
			
		||||
 *
 | 
			
		||||
 * Single-threaded mode only: liblzma doesn't make an internal copy of
 | 
			
		||||
 * lzma_allocator. Thus, it is OK to change these function pointers in
 | 
			
		||||
 * the middle of the coding process, but obviously it must be done
 | 
			
		||||
 * carefully to make sure that the replacement `free' can deallocate
 | 
			
		||||
 * memory allocated by the earlier `alloc' function(s).
 | 
			
		||||
 *
 | 
			
		||||
 * Multithreaded mode: liblzma might internally store pointers to the
 | 
			
		||||
 * lzma_allocator given via the lzma_stream structure. The application
 | 
			
		||||
 * must not change the allocator pointer in lzma_stream or the contents
 | 
			
		||||
 * of the pointed lzma_allocator structure until lzma_end() has been used
 | 
			
		||||
 * to free the memory associated with that lzma_stream. The allocation
 | 
			
		||||
 * functions might be called simultaneously from multiple threads, and
 | 
			
		||||
 * thus they must be thread safe.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Pointer to a custom memory allocation function
 | 
			
		||||
	 *
 | 
			
		||||
	 * If you don't want a custom allocator, but still want
 | 
			
		||||
	 * custom free(), set this to NULL and liblzma will use
 | 
			
		||||
	 * the standard malloc().
 | 
			
		||||
	 *
 | 
			
		||||
	 * \param       opaque  lzma_allocator.opaque (see below)
 | 
			
		||||
	 * \param       nmemb   Number of elements like in calloc(). liblzma
 | 
			
		||||
	 *                      will always set nmemb to 1, so it is safe to
 | 
			
		||||
	 *                      ignore nmemb in a custom allocator if you like.
 | 
			
		||||
	 *                      The nmemb argument exists only for
 | 
			
		||||
	 *                      compatibility with zlib and libbzip2.
 | 
			
		||||
	 * \param       size    Size of an element in bytes.
 | 
			
		||||
	 *                      liblzma never sets this to zero.
 | 
			
		||||
	 *
 | 
			
		||||
	 * \return      Pointer to the beginning of a memory block of
 | 
			
		||||
	 *              `size' bytes, or NULL if allocation fails
 | 
			
		||||
	 *              for some reason. When allocation fails, functions
 | 
			
		||||
	 *              of liblzma return LZMA_MEM_ERROR.
 | 
			
		||||
	 *
 | 
			
		||||
	 * The allocator should not waste time zeroing the allocated buffers.
 | 
			
		||||
	 * This is not only about speed, but also memory usage, since the
 | 
			
		||||
	 * operating system kernel doesn't necessarily allocate the requested
 | 
			
		||||
	 * memory in physical memory until it is actually used. With small
 | 
			
		||||
	 * input files, liblzma may actually need only a fraction of the
 | 
			
		||||
	 * memory that it requested for allocation.
 | 
			
		||||
	 *
 | 
			
		||||
	 * \note        LZMA_MEM_ERROR is also used when the size of the
 | 
			
		||||
	 *              allocation would be greater than SIZE_MAX. Thus,
 | 
			
		||||
	 *              don't assume that the custom allocator must have
 | 
			
		||||
	 *              returned NULL if some function from liblzma
 | 
			
		||||
	 *              returns LZMA_MEM_ERROR.
 | 
			
		||||
	 */
 | 
			
		||||
	void *(LZMA_API_CALL *alloc)(void *opaque, size_t nmemb, size_t size);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Pointer to a custom memory freeing function
 | 
			
		||||
	 *
 | 
			
		||||
	 * If you don't want a custom freeing function, but still
 | 
			
		||||
	 * want a custom allocator, set this to NULL and liblzma
 | 
			
		||||
	 * will use the standard free().
 | 
			
		||||
	 *
 | 
			
		||||
	 * \param       opaque  lzma_allocator.opaque (see below)
 | 
			
		||||
	 * \param       ptr     Pointer returned by lzma_allocator.alloc(),
 | 
			
		||||
	 *                      or when it is set to NULL, a pointer returned
 | 
			
		||||
	 *                      by the standard malloc().
 | 
			
		||||
	 */
 | 
			
		||||
	void (LZMA_API_CALL *free)(void *opaque, void *ptr);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Pointer passed to .alloc() and .free()
 | 
			
		||||
	 *
 | 
			
		||||
	 * opaque is passed as the first argument to lzma_allocator.alloc()
 | 
			
		||||
	 * and lzma_allocator.free(). This intended to ease implementing
 | 
			
		||||
	 * custom memory allocation functions for use with liblzma.
 | 
			
		||||
	 *
 | 
			
		||||
	 * If you don't need this, you should set this to NULL.
 | 
			
		||||
	 */
 | 
			
		||||
	void *opaque;
 | 
			
		||||
 | 
			
		||||
} lzma_allocator;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Internal data structure
 | 
			
		||||
 *
 | 
			
		||||
 * The contents of this structure is not visible outside the library.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct lzma_internal_s lzma_internal;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Passing data to and from liblzma
 | 
			
		||||
 *
 | 
			
		||||
 * The lzma_stream structure is used for
 | 
			
		||||
 *  - passing pointers to input and output buffers to liblzma;
 | 
			
		||||
 *  - defining custom memory hander functions; and
 | 
			
		||||
 *  - holding a pointer to coder-specific internal data structures.
 | 
			
		||||
 *
 | 
			
		||||
 * Typical usage:
 | 
			
		||||
 *
 | 
			
		||||
 *  - After allocating lzma_stream (on stack or with malloc()), it must be
 | 
			
		||||
 *    initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details).
 | 
			
		||||
 *
 | 
			
		||||
 *  - Initialize a coder to the lzma_stream, for example by using
 | 
			
		||||
 *    lzma_easy_encoder() or lzma_auto_decoder(). Some notes:
 | 
			
		||||
 *      - In contrast to zlib, strm->next_in and strm->next_out are
 | 
			
		||||
 *        ignored by all initialization functions, thus it is safe
 | 
			
		||||
 *        to not initialize them yet.
 | 
			
		||||
 *      - The initialization functions always set strm->total_in and
 | 
			
		||||
 *        strm->total_out to zero.
 | 
			
		||||
 *      - If the initialization function fails, no memory is left allocated
 | 
			
		||||
 *        that would require freeing with lzma_end() even if some memory was
 | 
			
		||||
 *        associated with the lzma_stream structure when the initialization
 | 
			
		||||
 *        function was called.
 | 
			
		||||
 *
 | 
			
		||||
 *  - Use lzma_code() to do the actual work.
 | 
			
		||||
 *
 | 
			
		||||
 *  - Once the coding has been finished, the existing lzma_stream can be
 | 
			
		||||
 *    reused. It is OK to reuse lzma_stream with different initialization
 | 
			
		||||
 *    function without calling lzma_end() first. Old allocations are
 | 
			
		||||
 *    automatically freed.
 | 
			
		||||
 *
 | 
			
		||||
 *  - Finally, use lzma_end() to free the allocated memory. lzma_end() never
 | 
			
		||||
 *    frees the lzma_stream structure itself.
 | 
			
		||||
 *
 | 
			
		||||
 * Application may modify the values of total_in and total_out as it wants.
 | 
			
		||||
 * They are updated by liblzma to match the amount of data read and
 | 
			
		||||
 * written but aren't used for anything else except as a possible return
 | 
			
		||||
 * values from lzma_get_progress().
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	const uint8_t *next_in; /**< Pointer to the next input byte. */
 | 
			
		||||
	size_t avail_in;    /**< Number of available input bytes in next_in. */
 | 
			
		||||
	uint64_t total_in;  /**< Total number of bytes read by liblzma. */
 | 
			
		||||
 | 
			
		||||
	uint8_t *next_out;  /**< Pointer to the next output position. */
 | 
			
		||||
	size_t avail_out;   /**< Amount of free space in next_out. */
 | 
			
		||||
	uint64_t total_out; /**< Total number of bytes written by liblzma. */
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Custom memory allocation functions
 | 
			
		||||
	 *
 | 
			
		||||
	 * In most cases this is NULL which makes liblzma use
 | 
			
		||||
	 * the standard malloc() and free().
 | 
			
		||||
	 *
 | 
			
		||||
	 * \note        In 5.0.x this is not a const pointer.
 | 
			
		||||
	 */
 | 
			
		||||
	const lzma_allocator *allocator;
 | 
			
		||||
 | 
			
		||||
	/** Internal state is not visible to applications. */
 | 
			
		||||
	lzma_internal *internal;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Reserved space to allow possible future extensions without
 | 
			
		||||
	 * breaking the ABI. Excluding the initialization of this structure,
 | 
			
		||||
	 * you should not touch these, because the names of these variables
 | 
			
		||||
	 * may change.
 | 
			
		||||
	 */
 | 
			
		||||
	void *reserved_ptr1;
 | 
			
		||||
	void *reserved_ptr2;
 | 
			
		||||
	void *reserved_ptr3;
 | 
			
		||||
	void *reserved_ptr4;
 | 
			
		||||
	uint64_t reserved_int1;
 | 
			
		||||
	uint64_t reserved_int2;
 | 
			
		||||
	size_t reserved_int3;
 | 
			
		||||
	size_t reserved_int4;
 | 
			
		||||
	lzma_reserved_enum reserved_enum1;
 | 
			
		||||
	lzma_reserved_enum reserved_enum2;
 | 
			
		||||
 | 
			
		||||
} lzma_stream;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialization for lzma_stream
 | 
			
		||||
 *
 | 
			
		||||
 * When you declare an instance of lzma_stream, you can immediately
 | 
			
		||||
 * initialize it so that initialization functions know that no memory
 | 
			
		||||
 * has been allocated yet:
 | 
			
		||||
 *
 | 
			
		||||
 *     lzma_stream strm = LZMA_STREAM_INIT;
 | 
			
		||||
 *
 | 
			
		||||
 * If you need to initialize a dynamically allocated lzma_stream, you can use
 | 
			
		||||
 * memset(strm_pointer, 0, sizeof(lzma_stream)). Strictly speaking, this
 | 
			
		||||
 * violates the C standard since NULL may have different internal
 | 
			
		||||
 * representation than zero, but it should be portable enough in practice.
 | 
			
		||||
 * Anyway, for maximum portability, you can use something like this:
 | 
			
		||||
 *
 | 
			
		||||
 *     lzma_stream tmp = LZMA_STREAM_INIT;
 | 
			
		||||
 *     *strm = tmp;
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_STREAM_INIT \
 | 
			
		||||
	{ NULL, 0, 0, NULL, 0, 0, NULL, NULL, \
 | 
			
		||||
	NULL, NULL, NULL, NULL, 0, 0, 0, 0, \
 | 
			
		||||
	LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode or decode data
 | 
			
		||||
 *
 | 
			
		||||
 * Once the lzma_stream has been successfully initialized (e.g. with
 | 
			
		||||
 * lzma_stream_encoder()), the actual encoding or decoding is done
 | 
			
		||||
 * using this function. The application has to update strm->next_in,
 | 
			
		||||
 * strm->avail_in, strm->next_out, and strm->avail_out to pass input
 | 
			
		||||
 * to and get output from liblzma.
 | 
			
		||||
 *
 | 
			
		||||
 * See the description of the coder-specific initialization function to find
 | 
			
		||||
 * out what `action' values are supported by the coder.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Free memory allocated for the coder data structures
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm    Pointer to lzma_stream that is at least initialized
 | 
			
		||||
 *                      with LZMA_STREAM_INIT.
 | 
			
		||||
 *
 | 
			
		||||
 * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other
 | 
			
		||||
 * members of the lzma_stream structure are touched.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        zlib indicates an error if application end()s unfinished
 | 
			
		||||
 *              stream structure. liblzma doesn't do this, and assumes that
 | 
			
		||||
 *              application knows what it is doing.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get progress information
 | 
			
		||||
 *
 | 
			
		||||
 * In single-threaded mode, applications can get progress information from
 | 
			
		||||
 * strm->total_in and strm->total_out. In multi-threaded mode this is less
 | 
			
		||||
 * useful because a significant amount of both input and output data gets
 | 
			
		||||
 * buffered internally by liblzma. This makes total_in and total_out give
 | 
			
		||||
 * misleading information and also makes the progress indicator updates
 | 
			
		||||
 * non-smooth.
 | 
			
		||||
 *
 | 
			
		||||
 * This function gives realistic progress information also in multi-threaded
 | 
			
		||||
 * mode by taking into account the progress made by each thread. In
 | 
			
		||||
 * single-threaded mode *progress_in and *progress_out are set to
 | 
			
		||||
 * strm->total_in and strm->total_out, respectively.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(void) lzma_get_progress(lzma_stream *strm,
 | 
			
		||||
		uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the memory usage of decoder filter chain
 | 
			
		||||
 *
 | 
			
		||||
 * This function is currently supported only when *strm has been initialized
 | 
			
		||||
 * with a function that takes a memlimit argument. With other functions, you
 | 
			
		||||
 * should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage()
 | 
			
		||||
 * to estimate the memory requirements.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how big
 | 
			
		||||
 * the memory usage limit should have been to decode the input. Note that
 | 
			
		||||
 * this may give misleading information if decoding .xz Streams that have
 | 
			
		||||
 * multiple Blocks, because each Block can have different memory requirements.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      How much memory is currently allocated for the filter
 | 
			
		||||
 *              decoders. If no filter chain is currently allocated,
 | 
			
		||||
 *              some non-zero value is still returned, which is less than
 | 
			
		||||
 *              or equal to what any filter chain would indicate as its
 | 
			
		||||
 *              memory requirement.
 | 
			
		||||
 *
 | 
			
		||||
 *              If this function isn't supported by *strm or some other error
 | 
			
		||||
 *              occurs, zero is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_memusage(const lzma_stream *strm)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the current memory usage limit
 | 
			
		||||
 *
 | 
			
		||||
 * This function is supported only when *strm has been initialized with
 | 
			
		||||
 * a function that takes a memlimit argument.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      On success, the current memory usage limit is returned
 | 
			
		||||
 *              (always non-zero). On error, zero is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_memlimit_get(const lzma_stream *strm)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Set the memory usage limit
 | 
			
		||||
 *
 | 
			
		||||
 * This function is supported only when *strm has been initialized with
 | 
			
		||||
 * a function that takes a memlimit argument.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: New memory usage limit successfully set.
 | 
			
		||||
 *              - LZMA_MEMLIMIT_ERROR: The new limit is too small.
 | 
			
		||||
 *                The limit was not changed.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't
 | 
			
		||||
 *                support memory usage limit or memlimit was zero.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_memlimit_set(
 | 
			
		||||
		lzma_stream *strm, uint64_t memlimit) lzma_nothrow;
 | 
			
		||||
							
								
								
									
										90
									
								
								node_modules/lzma-native/deps/include/lzma/bcj.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								node_modules/lzma-native/deps/include/lzma/bcj.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/bcj.h
 | 
			
		||||
 * \brief       Branch/Call/Jump conversion filters
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Filter IDs for lzma_filter.id */
 | 
			
		||||
 | 
			
		||||
#define LZMA_FILTER_X86         LZMA_VLI_C(0x04)
 | 
			
		||||
	/**<
 | 
			
		||||
	 * Filter for x86 binaries
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
#define LZMA_FILTER_POWERPC     LZMA_VLI_C(0x05)
 | 
			
		||||
	/**<
 | 
			
		||||
	 * Filter for Big endian PowerPC binaries
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
#define LZMA_FILTER_IA64        LZMA_VLI_C(0x06)
 | 
			
		||||
	/**<
 | 
			
		||||
	 * Filter for IA-64 (Itanium) binaries.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
#define LZMA_FILTER_ARM         LZMA_VLI_C(0x07)
 | 
			
		||||
	/**<
 | 
			
		||||
	 * Filter for ARM binaries.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
#define LZMA_FILTER_ARMTHUMB    LZMA_VLI_C(0x08)
 | 
			
		||||
	/**<
 | 
			
		||||
	 * Filter for ARM-Thumb binaries.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
#define LZMA_FILTER_SPARC       LZMA_VLI_C(0x09)
 | 
			
		||||
	/**<
 | 
			
		||||
	 * Filter for SPARC binaries.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Options for BCJ filters
 | 
			
		||||
 *
 | 
			
		||||
 * The BCJ filters never change the size of the data. Specifying options
 | 
			
		||||
 * for them is optional: if pointer to options is NULL, default value is
 | 
			
		||||
 * used. You probably never need to specify options to BCJ filters, so just
 | 
			
		||||
 * set the options pointer to NULL and be happy.
 | 
			
		||||
 *
 | 
			
		||||
 * If options with non-default values have been specified when encoding,
 | 
			
		||||
 * the same options must also be specified when decoding.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        At the moment, none of the BCJ filters support
 | 
			
		||||
 *              LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified,
 | 
			
		||||
 *              LZMA_OPTIONS_ERROR will be returned. If there is need,
 | 
			
		||||
 *              partial support for LZMA_SYNC_FLUSH can be added in future.
 | 
			
		||||
 *              Partial means that flushing would be possible only at
 | 
			
		||||
 *              offsets that are multiple of 2, 4, or 16 depending on
 | 
			
		||||
 *              the filter, except x86 which cannot be made to support
 | 
			
		||||
 *              LZMA_SYNC_FLUSH predictably.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Start offset for conversions
 | 
			
		||||
	 *
 | 
			
		||||
	 * This setting is useful only when the same filter is used
 | 
			
		||||
	 * _separately_ for multiple sections of the same executable file,
 | 
			
		||||
	 * and the sections contain cross-section branch/call/jump
 | 
			
		||||
	 * instructions. In that case it is beneficial to set the start
 | 
			
		||||
	 * offset of the non-first sections so that the relative addresses
 | 
			
		||||
	 * of the cross-section branch/call/jump instructions will use the
 | 
			
		||||
	 * same absolute addresses as in the first section.
 | 
			
		||||
	 *
 | 
			
		||||
	 * When the pointer to options is NULL, the default value (zero)
 | 
			
		||||
	 * is used.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t start_offset;
 | 
			
		||||
 | 
			
		||||
} lzma_options_bcj;
 | 
			
		||||
							
								
								
									
										581
									
								
								node_modules/lzma-native/deps/include/lzma/block.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										581
									
								
								node_modules/lzma-native/deps/include/lzma/block.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,581 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/block.h
 | 
			
		||||
 * \brief       .xz Block handling
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Options for the Block and Block Header encoders and decoders
 | 
			
		||||
 *
 | 
			
		||||
 * Different Block handling functions use different parts of this structure.
 | 
			
		||||
 * Some read some members, other functions write, and some do both. Only the
 | 
			
		||||
 * members listed for reading need to be initialized when the specified
 | 
			
		||||
 * functions are called. The members marked for writing will be assigned
 | 
			
		||||
 * new values at some point either by calling the given function or by
 | 
			
		||||
 * later calls to lzma_code().
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Block format version
 | 
			
		||||
	 *
 | 
			
		||||
	 * To prevent API and ABI breakages when new features are needed,
 | 
			
		||||
	 * a version number is used to indicate which fields in this
 | 
			
		||||
	 * structure are in use:
 | 
			
		||||
	 *   - liblzma >= 5.0.0: version = 0 is supported.
 | 
			
		||||
	 *   - liblzma >= 5.1.4beta: Support for version = 1 was added,
 | 
			
		||||
	 *     which adds the ignore_check field.
 | 
			
		||||
	 *
 | 
			
		||||
	 * If version is greater than one, most Block related functions
 | 
			
		||||
	 * will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works
 | 
			
		||||
	 * with any version value).
 | 
			
		||||
	 *
 | 
			
		||||
	 * Read by:
 | 
			
		||||
	 *  - All functions that take pointer to lzma_block as argument,
 | 
			
		||||
	 *    including lzma_block_header_decode().
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by:
 | 
			
		||||
	 *  - lzma_block_header_decode()
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t version;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Size of the Block Header field
 | 
			
		||||
	 *
 | 
			
		||||
	 * This is always a multiple of four.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Read by:
 | 
			
		||||
	 *  - lzma_block_header_encode()
 | 
			
		||||
	 *  - lzma_block_header_decode()
 | 
			
		||||
	 *  - lzma_block_compressed_size()
 | 
			
		||||
	 *  - lzma_block_unpadded_size()
 | 
			
		||||
	 *  - lzma_block_total_size()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by:
 | 
			
		||||
	 *  - lzma_block_header_size()
 | 
			
		||||
	 *  - lzma_block_buffer_encode()
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t header_size;
 | 
			
		||||
#	define LZMA_BLOCK_HEADER_SIZE_MIN 8
 | 
			
		||||
#	define LZMA_BLOCK_HEADER_SIZE_MAX 1024
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Type of integrity Check
 | 
			
		||||
	 *
 | 
			
		||||
	 * The Check ID is not stored into the Block Header, thus its value
 | 
			
		||||
	 * must be provided also when decoding.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Read by:
 | 
			
		||||
	 *  - lzma_block_header_encode()
 | 
			
		||||
	 *  - lzma_block_header_decode()
 | 
			
		||||
	 *  - lzma_block_compressed_size()
 | 
			
		||||
	 *  - lzma_block_unpadded_size()
 | 
			
		||||
	 *  - lzma_block_total_size()
 | 
			
		||||
	 *  - lzma_block_encoder()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_encode()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_check check;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Size of the Compressed Data in bytes
 | 
			
		||||
	 *
 | 
			
		||||
	 * Encoding: If this is not LZMA_VLI_UNKNOWN, Block Header encoder
 | 
			
		||||
	 * will store this value to the Block Header. Block encoder doesn't
 | 
			
		||||
	 * care about this value, but will set it once the encoding has been
 | 
			
		||||
	 * finished.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will
 | 
			
		||||
	 * verify that the size of the Compressed Data field matches
 | 
			
		||||
	 * compressed_size.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Usually you don't know this value when encoding in streamed mode,
 | 
			
		||||
	 * and thus cannot write this field into the Block Header.
 | 
			
		||||
	 *
 | 
			
		||||
	 * In non-streamed mode you can reserve space for this field before
 | 
			
		||||
	 * encoding the actual Block. After encoding the data, finish the
 | 
			
		||||
	 * Block by encoding the Block Header. Steps in detail:
 | 
			
		||||
	 *
 | 
			
		||||
	 *  - Set compressed_size to some big enough value. If you don't know
 | 
			
		||||
	 *    better, use LZMA_VLI_MAX, but remember that bigger values take
 | 
			
		||||
	 *    more space in Block Header.
 | 
			
		||||
	 *
 | 
			
		||||
	 *  - Call lzma_block_header_size() to see how much space you need to
 | 
			
		||||
	 *    reserve for the Block Header.
 | 
			
		||||
	 *
 | 
			
		||||
	 *  - Encode the Block using lzma_block_encoder() and lzma_code().
 | 
			
		||||
	 *    It sets compressed_size to the correct value.
 | 
			
		||||
	 *
 | 
			
		||||
	 *  - Use lzma_block_header_encode() to encode the Block Header.
 | 
			
		||||
	 *    Because space was reserved in the first step, you don't need
 | 
			
		||||
	 *    to call lzma_block_header_size() anymore, because due to
 | 
			
		||||
	 *    reserving, header_size has to be big enough. If it is "too big",
 | 
			
		||||
	 *    lzma_block_header_encode() will add enough Header Padding to
 | 
			
		||||
	 *    make Block Header to match the size specified by header_size.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Read by:
 | 
			
		||||
	 *  - lzma_block_header_size()
 | 
			
		||||
	 *  - lzma_block_header_encode()
 | 
			
		||||
	 *  - lzma_block_compressed_size()
 | 
			
		||||
	 *  - lzma_block_unpadded_size()
 | 
			
		||||
	 *  - lzma_block_total_size()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by:
 | 
			
		||||
	 *  - lzma_block_header_decode()
 | 
			
		||||
	 *  - lzma_block_compressed_size()
 | 
			
		||||
	 *  - lzma_block_encoder()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_encode()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_vli compressed_size;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Uncompressed Size in bytes
 | 
			
		||||
	 *
 | 
			
		||||
	 * This is handled very similarly to compressed_size above.
 | 
			
		||||
	 *
 | 
			
		||||
	 * uncompressed_size is needed by fewer functions than
 | 
			
		||||
	 * compressed_size. This is because uncompressed_size isn't
 | 
			
		||||
	 * needed to validate that Block stays within proper limits.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Read by:
 | 
			
		||||
	 *  - lzma_block_header_size()
 | 
			
		||||
	 *  - lzma_block_header_encode()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by:
 | 
			
		||||
	 *  - lzma_block_header_decode()
 | 
			
		||||
	 *  - lzma_block_encoder()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_encode()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_vli uncompressed_size;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Array of filters
 | 
			
		||||
	 *
 | 
			
		||||
	 * There can be 1-4 filters. The end of the array is marked with
 | 
			
		||||
	 * .id = LZMA_VLI_UNKNOWN.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Read by:
 | 
			
		||||
	 *  - lzma_block_header_size()
 | 
			
		||||
	 *  - lzma_block_header_encode()
 | 
			
		||||
	 *  - lzma_block_encoder()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_encode()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by:
 | 
			
		||||
	 *  - lzma_block_header_decode(): Note that this does NOT free()
 | 
			
		||||
	 *    the old filter options structures. All unused filters[] will
 | 
			
		||||
	 *    have .id == LZMA_VLI_UNKNOWN and .options == NULL. If
 | 
			
		||||
	 *    decoding fails, all filters[] are guaranteed to be
 | 
			
		||||
	 *    LZMA_VLI_UNKNOWN and NULL.
 | 
			
		||||
	 *
 | 
			
		||||
	 * \note        Because of the array is terminated with
 | 
			
		||||
	 *              .id = LZMA_VLI_UNKNOWN, the actual array must
 | 
			
		||||
	 *              have LZMA_FILTERS_MAX + 1 members or the Block
 | 
			
		||||
	 *              Header decoder will overflow the buffer.
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_filter *filters;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Raw value stored in the Check field
 | 
			
		||||
	 *
 | 
			
		||||
	 * After successful coding, the first lzma_check_size(check) bytes
 | 
			
		||||
	 * of this array contain the raw value stored in the Check field.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Note that CRC32 and CRC64 are stored in little endian byte order.
 | 
			
		||||
	 * Take it into account if you display the Check values to the user.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by:
 | 
			
		||||
	 *  - lzma_block_encoder()
 | 
			
		||||
	 *  - lzma_block_decoder()
 | 
			
		||||
	 *  - lzma_block_buffer_encode()
 | 
			
		||||
	 *  - lzma_block_buffer_decode()
 | 
			
		||||
	 */
 | 
			
		||||
	uint8_t raw_check[LZMA_CHECK_SIZE_MAX];
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Reserved space to allow possible future extensions without
 | 
			
		||||
	 * breaking the ABI. You should not touch these, because the names
 | 
			
		||||
	 * of these variables may change. These are and will never be used
 | 
			
		||||
	 * with the currently supported options, so it is safe to leave these
 | 
			
		||||
	 * uninitialized.
 | 
			
		||||
	 */
 | 
			
		||||
	void *reserved_ptr1;
 | 
			
		||||
	void *reserved_ptr2;
 | 
			
		||||
	void *reserved_ptr3;
 | 
			
		||||
	uint32_t reserved_int1;
 | 
			
		||||
	uint32_t reserved_int2;
 | 
			
		||||
	lzma_vli reserved_int3;
 | 
			
		||||
	lzma_vli reserved_int4;
 | 
			
		||||
	lzma_vli reserved_int5;
 | 
			
		||||
	lzma_vli reserved_int6;
 | 
			
		||||
	lzma_vli reserved_int7;
 | 
			
		||||
	lzma_vli reserved_int8;
 | 
			
		||||
	lzma_reserved_enum reserved_enum1;
 | 
			
		||||
	lzma_reserved_enum reserved_enum2;
 | 
			
		||||
	lzma_reserved_enum reserved_enum3;
 | 
			
		||||
	lzma_reserved_enum reserved_enum4;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       A flag to Block decoder to not verify the Check field
 | 
			
		||||
	 *
 | 
			
		||||
	 * This field is supported by liblzma >= 5.1.4beta if .version >= 1.
 | 
			
		||||
	 *
 | 
			
		||||
	 * If this is set to true, the integrity check won't be calculated
 | 
			
		||||
	 * and verified. Unless you know what you are doing, you should
 | 
			
		||||
	 * leave this to false. (A reason to set this to true is when the
 | 
			
		||||
	 * file integrity is verified externally anyway and you want to
 | 
			
		||||
	 * speed up the decompression, which matters mostly when using
 | 
			
		||||
	 * SHA-256 as the integrity check.)
 | 
			
		||||
	 *
 | 
			
		||||
	 * If .version >= 1, read by:
 | 
			
		||||
	 *   - lzma_block_decoder()
 | 
			
		||||
	 *   - lzma_block_buffer_decode()
 | 
			
		||||
	 *
 | 
			
		||||
	 * Written by (.version is ignored):
 | 
			
		||||
	 *   - lzma_block_header_decode() always sets this to false
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_bool ignore_check;
 | 
			
		||||
 | 
			
		||||
	lzma_bool reserved_bool2;
 | 
			
		||||
	lzma_bool reserved_bool3;
 | 
			
		||||
	lzma_bool reserved_bool4;
 | 
			
		||||
	lzma_bool reserved_bool5;
 | 
			
		||||
	lzma_bool reserved_bool6;
 | 
			
		||||
	lzma_bool reserved_bool7;
 | 
			
		||||
	lzma_bool reserved_bool8;
 | 
			
		||||
 | 
			
		||||
} lzma_block;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode the Block Header Size field
 | 
			
		||||
 *
 | 
			
		||||
 * To decode Block Header using lzma_block_header_decode(), the size of the
 | 
			
		||||
 * Block Header has to be known and stored into lzma_block.header_size.
 | 
			
		||||
 * The size can be calculated from the first byte of a Block using this macro.
 | 
			
		||||
 * Note that if the first byte is 0x00, it indicates beginning of Index; use
 | 
			
		||||
 * this macro only when the byte is not 0x00.
 | 
			
		||||
 *
 | 
			
		||||
 * There is no encoding macro, because Block Header encoder is enough for that.
 | 
			
		||||
 */
 | 
			
		||||
#define lzma_block_header_size_decode(b) (((uint32_t)(b) + 1) * 4)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate Block Header Size
 | 
			
		||||
 *
 | 
			
		||||
 * Calculate the minimum size needed for the Block Header field using the
 | 
			
		||||
 * settings specified in the lzma_block structure. Note that it is OK to
 | 
			
		||||
 * increase the calculated header_size value as long as it is a multiple of
 | 
			
		||||
 * four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size
 | 
			
		||||
 * just means that lzma_block_header_encode() will add Header Padding.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Size calculated successfully and stored to
 | 
			
		||||
 *                block->header_size.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported version, filters or
 | 
			
		||||
 *                filter options.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        This doesn't check that all the options are valid i.e. this
 | 
			
		||||
 *              may return LZMA_OK even if lzma_block_header_encode() or
 | 
			
		||||
 *              lzma_block_encoder() would fail. If you want to validate the
 | 
			
		||||
 *              filter chain, consider using lzma_memlimit_encoder() which as
 | 
			
		||||
 *              a side-effect validates the filter chain.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode Block Header
 | 
			
		||||
 *
 | 
			
		||||
 * The caller must have calculated the size of the Block Header already with
 | 
			
		||||
 * lzma_block_header_size(). If a value larger than the one calculated by
 | 
			
		||||
 * lzma_block_header_size() is used, the Block Header will be padded to the
 | 
			
		||||
 * specified size.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       out         Beginning of the output buffer. This must be
 | 
			
		||||
 *                          at least block->header_size bytes.
 | 
			
		||||
 * \param       block       Block options to be encoded.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful. block->header_size
 | 
			
		||||
 *                bytes were written to output buffer.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid arguments, for example
 | 
			
		||||
 *                block->header_size is invalid or block->filters is NULL.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_header_encode(
 | 
			
		||||
		const lzma_block *block, uint8_t *out)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode Block Header
 | 
			
		||||
 *
 | 
			
		||||
 * block->version should (usually) be set to the highest value supported
 | 
			
		||||
 * by the application. If the application sets block->version to a value
 | 
			
		||||
 * higher than supported by the current liblzma version, this function will
 | 
			
		||||
 * downgrade block->version to the highest value supported by it. Thus one
 | 
			
		||||
 * should check the value of block->version after calling this function if
 | 
			
		||||
 * block->version was set to a non-zero value and the application doesn't
 | 
			
		||||
 * otherwise know that the liblzma version being used is new enough to
 | 
			
		||||
 * support the specified block->version.
 | 
			
		||||
 *
 | 
			
		||||
 * The size of the Block Header must have already been decoded with
 | 
			
		||||
 * lzma_block_header_size_decode() macro and stored to block->header_size.
 | 
			
		||||
 *
 | 
			
		||||
 * The integrity check type from Stream Header must have been stored
 | 
			
		||||
 * to block->check.
 | 
			
		||||
 *
 | 
			
		||||
 * block->filters must have been allocated, but they don't need to be
 | 
			
		||||
 * initialized (possible existing filter options are not freed).
 | 
			
		||||
 *
 | 
			
		||||
 * \param       block       Destination for Block options.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() (and also free()
 | 
			
		||||
 *                          if an error occurs).
 | 
			
		||||
 * \param       in          Beginning of the input buffer. This must be
 | 
			
		||||
 *                          at least block->header_size bytes.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Decoding was successful. block->header_size
 | 
			
		||||
 *                bytes were read from the input buffer.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: The Block Header specifies some
 | 
			
		||||
 *                unsupported options such as unsupported filters. This can
 | 
			
		||||
 *                happen also if block->version was set to a too low value
 | 
			
		||||
 *                compared to what would be required to properly represent
 | 
			
		||||
 *                the information stored in the Block Header.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: Block Header is corrupt, for example,
 | 
			
		||||
 *                the CRC32 doesn't match.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid arguments, for example
 | 
			
		||||
 *                block->header_size is invalid or block->filters is NULL.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block,
 | 
			
		||||
		const lzma_allocator *allocator, const uint8_t *in)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Validate and set Compressed Size according to Unpadded Size
 | 
			
		||||
 *
 | 
			
		||||
 * Block Header stores Compressed Size, but Index has Unpadded Size. If the
 | 
			
		||||
 * application has already parsed the Index and is now decoding Blocks,
 | 
			
		||||
 * it can calculate Compressed Size from Unpadded Size. This function does
 | 
			
		||||
 * exactly that with error checking:
 | 
			
		||||
 *
 | 
			
		||||
 *  - Compressed Size calculated from Unpadded Size must be positive integer,
 | 
			
		||||
 *    that is, Unpadded Size must be big enough that after Block Header and
 | 
			
		||||
 *    Check fields there's still at least one byte for Compressed Size.
 | 
			
		||||
 *
 | 
			
		||||
 *  - If Compressed Size was present in Block Header, the new value
 | 
			
		||||
 *    calculated from Unpadded Size is compared against the value
 | 
			
		||||
 *    from Block Header.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        This function must be called _after_ decoding the Block Header
 | 
			
		||||
 *              field so that it can properly validate Compressed Size if it
 | 
			
		||||
 *              was present in Block Header.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: block->compressed_size was set successfully.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: unpadded_size is too small compared to
 | 
			
		||||
 *                block->header_size and lzma_check_size(block->check).
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Some values are invalid. For example,
 | 
			
		||||
 *                block->header_size must be a multiple of four and
 | 
			
		||||
 *                between 8 and 1024 inclusive.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_compressed_size(
 | 
			
		||||
		lzma_block *block, lzma_vli unpadded_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate Unpadded Size
 | 
			
		||||
 *
 | 
			
		||||
 * The Index field stores Unpadded Size and Uncompressed Size. The latter
 | 
			
		||||
 * can be taken directly from the lzma_block structure after coding a Block,
 | 
			
		||||
 * but Unpadded Size needs to be calculated from Block Header Size,
 | 
			
		||||
 * Compressed Size, and size of the Check field. This is where this function
 | 
			
		||||
 * is needed.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Unpadded Size on success, or zero on error.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate the total encoded size of a Block
 | 
			
		||||
 *
 | 
			
		||||
 * This is equivalent to lzma_block_unpadded_size() except that the returned
 | 
			
		||||
 * value includes the size of the Block Padding field.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      On success, total encoded size of the Block. On error,
 | 
			
		||||
 *              zero is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Block encoder
 | 
			
		||||
 *
 | 
			
		||||
 * Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the
 | 
			
		||||
 * filter chain supports it), and LZMA_FINISH.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: All good, continue with lzma_code().
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID
 | 
			
		||||
 *                that is not supported by this buid of liblzma. Initializing
 | 
			
		||||
 *                the encoder failed.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_encoder(
 | 
			
		||||
		lzma_stream *strm, lzma_block *block)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Block decoder
 | 
			
		||||
 *
 | 
			
		||||
 * Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using
 | 
			
		||||
 * LZMA_FINISH is not required. It is supported only for convenience.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: All good, continue with lzma_code().
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK: Initialization was successful, but
 | 
			
		||||
 *                the given Check ID is not supported, thus Check will be
 | 
			
		||||
 *                ignored.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_decoder(
 | 
			
		||||
		lzma_stream *strm, lzma_block *block)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate maximum output size for single-call Block encoding
 | 
			
		||||
 *
 | 
			
		||||
 * This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks.
 | 
			
		||||
 * See the documentation of lzma_stream_buffer_bound().
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Block encoder
 | 
			
		||||
 *
 | 
			
		||||
 * In contrast to the multi-call encoder initialized with
 | 
			
		||||
 * lzma_block_encoder(), this function encodes also the Block Header. This
 | 
			
		||||
 * is required to make it possible to write appropriate Block Header also
 | 
			
		||||
 * in case the data isn't compressible, and different filter chain has to be
 | 
			
		||||
 * used to encode the data in uncompressed form using uncompressed chunks
 | 
			
		||||
 * of the LZMA2 filter.
 | 
			
		||||
 *
 | 
			
		||||
 * When the data isn't compressible, header_size, compressed_size, and
 | 
			
		||||
 * uncompressed_size are set just like when the data was compressible, but
 | 
			
		||||
 * it is possible that header_size is too small to hold the filter chain
 | 
			
		||||
 * specified in block->filters, because that isn't necessarily the filter
 | 
			
		||||
 * chain that was actually used to encode the data. lzma_block_unpadded_size()
 | 
			
		||||
 * still works normally, because it doesn't read the filters array.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       block       Block options: block->version, block->check,
 | 
			
		||||
 *                          and block->filters must have been initialized.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_size     Size of the input buffer
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_buffer_encode(
 | 
			
		||||
		lzma_block *block, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call uncompressed .xz Block encoder
 | 
			
		||||
 *
 | 
			
		||||
 * This is like lzma_block_buffer_encode() except this doesn't try to
 | 
			
		||||
 * compress the data and instead encodes the data using LZMA2 uncompressed
 | 
			
		||||
 * chunks. The required output buffer size can be determined with
 | 
			
		||||
 * lzma_block_buffer_bound().
 | 
			
		||||
 *
 | 
			
		||||
 * Since the data won't be compressed, this function ignores block->filters.
 | 
			
		||||
 * This function doesn't take lzma_allocator because this function doesn't
 | 
			
		||||
 * allocate any memory from the heap.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
 | 
			
		||||
		const uint8_t *in, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Block decoder
 | 
			
		||||
 *
 | 
			
		||||
 * This is single-call equivalent of lzma_block_decoder(), and requires that
 | 
			
		||||
 * the caller has already decoded Block Header and checked its memory usage.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       block       Block options just like with lzma_block_decoder().
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_pos      The next byte will be read from in[*in_pos].
 | 
			
		||||
 *                          *in_pos is updated only if decoding succeeds.
 | 
			
		||||
 * \param       in_size     Size of the input buffer; the first byte that
 | 
			
		||||
 *                          won't be read is in[in_size].
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Decoding was successful.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Output buffer was too small.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_block_buffer_decode(
 | 
			
		||||
		lzma_block *block, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
							
								
								
									
										150
									
								
								node_modules/lzma-native/deps/include/lzma/check.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								node_modules/lzma-native/deps/include/lzma/check.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,150 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/check.h
 | 
			
		||||
 * \brief       Integrity checks
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Type of the integrity check (Check ID)
 | 
			
		||||
 *
 | 
			
		||||
 * The .xz format supports multiple types of checks that are calculated
 | 
			
		||||
 * from the uncompressed data. They vary in both speed and ability to
 | 
			
		||||
 * detect errors.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_CHECK_NONE     = 0,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * No Check is calculated.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Size of the Check field: 0 bytes
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_CHECK_CRC32    = 1,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * CRC32 using the polynomial from the IEEE 802.3 standard
 | 
			
		||||
		 *
 | 
			
		||||
		 * Size of the Check field: 4 bytes
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_CHECK_CRC64    = 4,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * CRC64 using the polynomial from the ECMA-182 standard
 | 
			
		||||
		 *
 | 
			
		||||
		 * Size of the Check field: 8 bytes
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_CHECK_SHA256   = 10
 | 
			
		||||
		/**<
 | 
			
		||||
		 * SHA-256
 | 
			
		||||
		 *
 | 
			
		||||
		 * Size of the Check field: 32 bytes
 | 
			
		||||
		 */
 | 
			
		||||
} lzma_check;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Maximum valid Check ID
 | 
			
		||||
 *
 | 
			
		||||
 * The .xz file format specification specifies 16 Check IDs (0-15). Some
 | 
			
		||||
 * of them are only reserved, that is, no actual Check algorithm has been
 | 
			
		||||
 * assigned. When decoding, liblzma still accepts unknown Check IDs for
 | 
			
		||||
 * future compatibility. If a valid but unsupported Check ID is detected,
 | 
			
		||||
 * liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK,
 | 
			
		||||
 * LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in container.h.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_CHECK_ID_MAX 15
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Test if the given Check ID is supported
 | 
			
		||||
 *
 | 
			
		||||
 * Return true if the given Check ID is supported by this liblzma build.
 | 
			
		||||
 * Otherwise false is returned. It is safe to call this with a value that
 | 
			
		||||
 * is not in the range [0, 15]; in that case the return value is always false.
 | 
			
		||||
 *
 | 
			
		||||
 * You can assume that LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always
 | 
			
		||||
 * supported (even if liblzma is built with limited features).
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the size of the Check field with the given Check ID
 | 
			
		||||
 *
 | 
			
		||||
 * Although not all Check IDs have a check algorithm associated, the size of
 | 
			
		||||
 * every Check is already frozen. This function returns the size (in bytes) of
 | 
			
		||||
 * the Check field with the specified Check ID. The values are:
 | 
			
		||||
 * { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }
 | 
			
		||||
 *
 | 
			
		||||
 * If the argument is not in the range [0, 15], UINT32_MAX is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint32_t) lzma_check_size(lzma_check check)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Maximum size of a Check field
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_CHECK_SIZE_MAX 64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate CRC32
 | 
			
		||||
 *
 | 
			
		||||
 * Calculate CRC32 using the polynomial from the IEEE 802.3 standard.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       buf     Pointer to the input buffer
 | 
			
		||||
 * \param       size    Size of the input buffer
 | 
			
		||||
 * \param       crc     Previously returned CRC value. This is used to
 | 
			
		||||
 *                      calculate the CRC of a big buffer in smaller chunks.
 | 
			
		||||
 *                      Set to zero when starting a new calculation.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Updated CRC value, which can be passed to this function
 | 
			
		||||
 *              again to continue CRC calculation.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint32_t) lzma_crc32(
 | 
			
		||||
		const uint8_t *buf, size_t size, uint32_t crc)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate CRC64
 | 
			
		||||
 *
 | 
			
		||||
 * Calculate CRC64 using the polynomial from the ECMA-182 standard.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is used similarly to lzma_crc32(). See its documentation.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_crc64(
 | 
			
		||||
		const uint8_t *buf, size_t size, uint64_t crc)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * SHA-256 functions are currently not exported to public API.
 | 
			
		||||
 * Contact Lasse Collin if you think it should be.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the type of the integrity check
 | 
			
		||||
 *
 | 
			
		||||
 * This function can be called only immediately after lzma_code() has
 | 
			
		||||
 * returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK.
 | 
			
		||||
 * Calling this function in any other situation has undefined behavior.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
							
								
								
									
										619
									
								
								node_modules/lzma-native/deps/include/lzma/container.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										619
									
								
								node_modules/lzma-native/deps/include/lzma/container.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,619 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/container.h
 | 
			
		||||
 * \brief       File formats
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
 * Encoding *
 | 
			
		||||
 ************/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Default compression preset
 | 
			
		||||
 *
 | 
			
		||||
 * It's not straightforward to recommend a default preset, because in some
 | 
			
		||||
 * cases keeping the resource usage relatively low is more important that
 | 
			
		||||
 * getting the maximum compression ratio.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_PRESET_DEFAULT     UINT32_C(6)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Mask for preset level
 | 
			
		||||
 *
 | 
			
		||||
 * This is useful only if you need to extract the level from the preset
 | 
			
		||||
 * variable. That should be rare.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_PRESET_LEVEL_MASK  UINT32_C(0x1F)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Preset flags
 | 
			
		||||
 *
 | 
			
		||||
 * Currently only one flag is defined.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Extreme compression preset
 | 
			
		||||
 *
 | 
			
		||||
 * This flag modifies the preset to make the encoding significantly slower
 | 
			
		||||
 * while improving the compression ratio only marginally. This is useful
 | 
			
		||||
 * when you don't mind wasting time to get as small result as possible.
 | 
			
		||||
 *
 | 
			
		||||
 * This flag doesn't affect the memory usage requirements of the decoder (at
 | 
			
		||||
 * least not significantly). The memory usage of the encoder may be increased
 | 
			
		||||
 * a little but only at the lowest preset levels (0-3).
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_PRESET_EXTREME       (UINT32_C(1) << 31)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Multithreading options
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Flags
 | 
			
		||||
	 *
 | 
			
		||||
	 * Set this to zero if no flags are wanted.
 | 
			
		||||
	 *
 | 
			
		||||
	 * No flags are currently supported.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t flags;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Number of worker threads to use
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t threads;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Maximum uncompressed size of a Block
 | 
			
		||||
	 *
 | 
			
		||||
	 * The encoder will start a new .xz Block every block_size bytes.
 | 
			
		||||
	 * Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code()
 | 
			
		||||
	 * the caller may tell liblzma to start a new Block earlier.
 | 
			
		||||
	 *
 | 
			
		||||
	 * With LZMA2, a recommended block size is 2-4 times the LZMA2
 | 
			
		||||
	 * dictionary size. With very small dictionaries, it is recommended
 | 
			
		||||
	 * to use at least 1 MiB block size for good compression ratio, even
 | 
			
		||||
	 * if this is more than four times the dictionary size. Note that
 | 
			
		||||
	 * these are only recommendations for typical use cases; feel free
 | 
			
		||||
	 * to use other values. Just keep in mind that using a block size
 | 
			
		||||
	 * less than the LZMA2 dictionary size is waste of RAM.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Set this to 0 to let liblzma choose the block size depending
 | 
			
		||||
	 * on the compression options. For LZMA2 it will be 3*dict_size
 | 
			
		||||
	 * or 1 MiB, whichever is more.
 | 
			
		||||
	 *
 | 
			
		||||
	 * For each thread, about 3 * block_size bytes of memory will be
 | 
			
		||||
	 * allocated. This may change in later liblzma versions. If so,
 | 
			
		||||
	 * the memory usage will probably be reduced, not increased.
 | 
			
		||||
	 */
 | 
			
		||||
	uint64_t block_size;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Timeout to allow lzma_code() to return early
 | 
			
		||||
	 *
 | 
			
		||||
	 * Multithreading can make liblzma to consume input and produce
 | 
			
		||||
	 * output in a very bursty way: it may first read a lot of input
 | 
			
		||||
	 * to fill internal buffers, then no input or output occurs for
 | 
			
		||||
	 * a while.
 | 
			
		||||
	 *
 | 
			
		||||
	 * In single-threaded mode, lzma_code() won't return until it has
 | 
			
		||||
	 * either consumed all the input or filled the output buffer. If
 | 
			
		||||
	 * this is done in multithreaded mode, it may cause a call
 | 
			
		||||
	 * lzma_code() to take even tens of seconds, which isn't acceptable
 | 
			
		||||
	 * in all applications.
 | 
			
		||||
	 *
 | 
			
		||||
	 * To avoid very long blocking times in lzma_code(), a timeout
 | 
			
		||||
	 * (in milliseconds) may be set here. If lzma_code() would block
 | 
			
		||||
	 * longer than this number of milliseconds, it will return with
 | 
			
		||||
	 * LZMA_OK. Reasonable values are 100 ms or more. The xz command
 | 
			
		||||
	 * line tool uses 300 ms.
 | 
			
		||||
	 *
 | 
			
		||||
	 * If long blocking times are fine for you, set timeout to a special
 | 
			
		||||
	 * value of 0, which will disable the timeout mechanism and will make
 | 
			
		||||
	 * lzma_code() block until all the input is consumed or the output
 | 
			
		||||
	 * buffer has been filled.
 | 
			
		||||
	 *
 | 
			
		||||
	 * \note        Even with a timeout, lzma_code() might sometimes take
 | 
			
		||||
	 *              somewhat long time to return. No timing guarantees
 | 
			
		||||
	 *              are made.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t timeout;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Compression preset (level and possible flags)
 | 
			
		||||
	 *
 | 
			
		||||
	 * The preset is set just like with lzma_easy_encoder().
 | 
			
		||||
	 * The preset is ignored if filters below is non-NULL.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t preset;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Filter chain (alternative to a preset)
 | 
			
		||||
	 *
 | 
			
		||||
	 * If this is NULL, the preset above is used. Otherwise the preset
 | 
			
		||||
	 * is ignored and the filter chain specified here is used.
 | 
			
		||||
	 */
 | 
			
		||||
	const lzma_filter *filters;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Integrity check type
 | 
			
		||||
	 *
 | 
			
		||||
	 * See check.h for available checks. The xz command line tool
 | 
			
		||||
	 * defaults to LZMA_CHECK_CRC64, which is a good choice if you
 | 
			
		||||
	 * are unsure.
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_check check;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Reserved space to allow possible future extensions without
 | 
			
		||||
	 * breaking the ABI. You should not touch these, because the names
 | 
			
		||||
	 * of these variables may change. These are and will never be used
 | 
			
		||||
	 * with the currently supported options, so it is safe to leave these
 | 
			
		||||
	 * uninitialized.
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_reserved_enum reserved_enum1;
 | 
			
		||||
	lzma_reserved_enum reserved_enum2;
 | 
			
		||||
	lzma_reserved_enum reserved_enum3;
 | 
			
		||||
	uint32_t reserved_int1;
 | 
			
		||||
	uint32_t reserved_int2;
 | 
			
		||||
	uint32_t reserved_int3;
 | 
			
		||||
	uint32_t reserved_int4;
 | 
			
		||||
	uint64_t reserved_int5;
 | 
			
		||||
	uint64_t reserved_int6;
 | 
			
		||||
	uint64_t reserved_int7;
 | 
			
		||||
	uint64_t reserved_int8;
 | 
			
		||||
	void *reserved_ptr1;
 | 
			
		||||
	void *reserved_ptr2;
 | 
			
		||||
	void *reserved_ptr3;
 | 
			
		||||
	void *reserved_ptr4;
 | 
			
		||||
 | 
			
		||||
} lzma_mt;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate approximate memory usage of easy encoder
 | 
			
		||||
 *
 | 
			
		||||
 * This function is a wrapper for lzma_raw_encoder_memusage().
 | 
			
		||||
 *
 | 
			
		||||
 * \param       preset  Compression preset (level and possible flags)
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Number of bytes of memory required for the given
 | 
			
		||||
 *              preset when encoding. If an error occurs, for example
 | 
			
		||||
 *              due to unsupported preset, UINT64_MAX is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate approximate decoder memory usage of a preset
 | 
			
		||||
 *
 | 
			
		||||
 * This function is a wrapper for lzma_raw_decoder_memusage().
 | 
			
		||||
 *
 | 
			
		||||
 * \param       preset  Compression preset (level and possible flags)
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Number of bytes of memory required to decompress a file
 | 
			
		||||
 *              that was compressed using the given preset. If an error
 | 
			
		||||
 *              occurs, for example due to unsupported preset, UINT64_MAX
 | 
			
		||||
 *              is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Stream encoder using a preset number
 | 
			
		||||
 *
 | 
			
		||||
 * This function is intended for those who just want to use the basic features
 | 
			
		||||
 * if liblzma (that is, most developers out there).
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm    Pointer to lzma_stream that is at least initialized
 | 
			
		||||
 *                      with LZMA_STREAM_INIT.
 | 
			
		||||
 * \param       preset  Compression preset to use. A preset consist of level
 | 
			
		||||
 *                      number and zero or more flags. Usually flags aren't
 | 
			
		||||
 *                      used, so preset is simply a number [0, 9] which match
 | 
			
		||||
 *                      the options -0 ... -9 of the xz command line tool.
 | 
			
		||||
 *                      Additional flags can be be set using bitwise-or with
 | 
			
		||||
 *                      the preset level number, e.g. 6 | LZMA_PRESET_EXTREME.
 | 
			
		||||
 * \param       check   Integrity check type to use. See check.h for available
 | 
			
		||||
 *                      checks. The xz command line tool defaults to
 | 
			
		||||
 *                      LZMA_CHECK_CRC64, which is a good choice if you are
 | 
			
		||||
 *                      unsure. LZMA_CHECK_CRC32 is good too as long as the
 | 
			
		||||
 *                      uncompressed file is not many gigabytes.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Initialization succeeded. Use lzma_code() to
 | 
			
		||||
 *                encode your data.
 | 
			
		||||
 *              - LZMA_MEM_ERROR: Memory allocation failed.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: The given compression preset is not
 | 
			
		||||
 *                supported by this build of liblzma.
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK: The given check type is not
 | 
			
		||||
 *                supported by this liblzma build.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: One or more of the parameters have values
 | 
			
		||||
 *                that will never be valid. For example, strm == NULL.
 | 
			
		||||
 *
 | 
			
		||||
 * If initialization fails (return value is not LZMA_OK), all the memory
 | 
			
		||||
 * allocated for *strm by liblzma is always freed. Thus, there is no need
 | 
			
		||||
 * to call lzma_end() after failed initialization.
 | 
			
		||||
 *
 | 
			
		||||
 * If initialization succeeds, use lzma_code() to do the actual encoding.
 | 
			
		||||
 * Valid values for `action' (the second argument of lzma_code()) are
 | 
			
		||||
 * LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future,
 | 
			
		||||
 * there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_easy_encoder(
 | 
			
		||||
		lzma_stream *strm, uint32_t preset, lzma_check check)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Stream encoding using a preset number
 | 
			
		||||
 *
 | 
			
		||||
 * The maximum required output buffer size can be calculated with
 | 
			
		||||
 * lzma_stream_buffer_bound().
 | 
			
		||||
 *
 | 
			
		||||
 * \param       preset      Compression preset to use. See the description
 | 
			
		||||
 *                          in lzma_easy_encoder().
 | 
			
		||||
 * \param       check       Type of the integrity check to calculate from
 | 
			
		||||
 *                          uncompressed data.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_size     Size of the input buffer
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_easy_buffer_encode(
 | 
			
		||||
		uint32_t preset, lzma_check check,
 | 
			
		||||
		const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Stream encoder using a custom filter chain
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm    Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       filters Array of filters. This must be terminated with
 | 
			
		||||
 *                      filters[n].id = LZMA_VLI_UNKNOWN. See filter.h for
 | 
			
		||||
 *                      more information.
 | 
			
		||||
 * \param       check   Type of the integrity check to calculate from
 | 
			
		||||
 *                      uncompressed data.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Initialization was successful.
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_encoder(lzma_stream *strm,
 | 
			
		||||
		const lzma_filter *filters, lzma_check check)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate approximate memory usage of multithreaded .xz encoder
 | 
			
		||||
 *
 | 
			
		||||
 * Since doing the encoding in threaded mode doesn't affect the memory
 | 
			
		||||
 * requirements of single-threaded decompressor, you can use
 | 
			
		||||
 * lzma_easy_decoder_memusage(options->preset) or
 | 
			
		||||
 * lzma_raw_decoder_memusage(options->filters) to calculate
 | 
			
		||||
 * the decompressor memory requirements.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       options Compression options
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Number of bytes of memory required for encoding with the
 | 
			
		||||
 *              given options. If an error occurs, for example due to
 | 
			
		||||
 *              unsupported preset or filter chain, UINT64_MAX is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_stream_encoder_mt_memusage(
 | 
			
		||||
		const lzma_mt *options) lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize multithreaded .xz Stream encoder
 | 
			
		||||
 *
 | 
			
		||||
 * This provides the functionality of lzma_easy_encoder() and
 | 
			
		||||
 * lzma_stream_encoder() as a single function for multithreaded use.
 | 
			
		||||
 *
 | 
			
		||||
 * The supported actions for lzma_code() are LZMA_RUN, LZMA_FULL_FLUSH,
 | 
			
		||||
 * LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be
 | 
			
		||||
 * added in the future.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm    Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       options Pointer to multithreaded compression options
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_encoder_mt(
 | 
			
		||||
		lzma_stream *strm, const lzma_mt *options)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .lzma encoder (legacy file format)
 | 
			
		||||
 *
 | 
			
		||||
 * The .lzma format is sometimes called the LZMA_Alone format, which is the
 | 
			
		||||
 * reason for the name of this function. The .lzma format supports only the
 | 
			
		||||
 * LZMA1 filter. There is no support for integrity checks like CRC32.
 | 
			
		||||
 *
 | 
			
		||||
 * Use this function if and only if you need to create files readable by
 | 
			
		||||
 * legacy LZMA tools such as LZMA Utils 4.32.x. Moving to the .xz format
 | 
			
		||||
 * is strongly recommended.
 | 
			
		||||
 *
 | 
			
		||||
 * The valid action values for lzma_code() are LZMA_RUN and LZMA_FINISH.
 | 
			
		||||
 * No kind of flushing is supported, because the file format doesn't make
 | 
			
		||||
 * it possible.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_alone_encoder(
 | 
			
		||||
		lzma_stream *strm, const lzma_options_lzma *options)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate output buffer size for single-call Stream encoder
 | 
			
		||||
 *
 | 
			
		||||
 * When trying to compress uncompressible data, the encoded size will be
 | 
			
		||||
 * slightly bigger than the input data. This function calculates how much
 | 
			
		||||
 * output buffer space is required to be sure that lzma_stream_buffer_encode()
 | 
			
		||||
 * doesn't return LZMA_BUF_ERROR.
 | 
			
		||||
 *
 | 
			
		||||
 * The calculated value is not exact, but it is guaranteed to be big enough.
 | 
			
		||||
 * The actual maximum output space required may be slightly smaller (up to
 | 
			
		||||
 * about 100 bytes). This should not be a problem in practice.
 | 
			
		||||
 *
 | 
			
		||||
 * If the calculated maximum size doesn't fit into size_t or would make the
 | 
			
		||||
 * Stream grow past LZMA_VLI_MAX (which should never happen in practice),
 | 
			
		||||
 * zero is returned to indicate the error.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        The limit calculated by this function applies only to
 | 
			
		||||
 *              single-call encoding. Multi-call encoding may (and probably
 | 
			
		||||
 *              will) have larger maximum expansion when encoding
 | 
			
		||||
 *              uncompressible data. Currently there is no function to
 | 
			
		||||
 *              calculate the maximum expansion of multi-call encoding.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Stream encoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filters     Array of filters. This must be terminated with
 | 
			
		||||
 *                          filters[n].id = LZMA_VLI_UNKNOWN. See filter.h
 | 
			
		||||
 *                          for more information.
 | 
			
		||||
 * \param       check       Type of the integrity check to calculate from
 | 
			
		||||
 *                          uncompressed data.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_size     Size of the input buffer
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
 | 
			
		||||
		lzma_filter *filters, lzma_check check,
 | 
			
		||||
		const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************
 | 
			
		||||
 * Decoding *
 | 
			
		||||
 ************/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This flag makes lzma_code() return LZMA_NO_CHECK if the input stream
 | 
			
		||||
 * being decoded has no integrity check. Note that when used with
 | 
			
		||||
 * lzma_auto_decoder(), all .lzma files will trigger LZMA_NO_CHECK
 | 
			
		||||
 * if LZMA_TELL_NO_CHECK is used.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_TELL_NO_CHECK              UINT32_C(0x01)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This flag makes lzma_code() return LZMA_UNSUPPORTED_CHECK if the input
 | 
			
		||||
 * stream has an integrity check, but the type of the integrity check is not
 | 
			
		||||
 * supported by this liblzma version or build. Such files can still be
 | 
			
		||||
 * decoded, but the integrity check cannot be verified.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_TELL_UNSUPPORTED_CHECK     UINT32_C(0x02)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This flag makes lzma_code() return LZMA_GET_CHECK as soon as the type
 | 
			
		||||
 * of the integrity check is known. The type can then be got with
 | 
			
		||||
 * lzma_get_check().
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_TELL_ANY_CHECK             UINT32_C(0x04)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This flag makes lzma_code() not calculate and verify the integrity check
 | 
			
		||||
 * of the compressed data in .xz files. This means that invalid integrity
 | 
			
		||||
 * check values won't be detected and LZMA_DATA_ERROR won't be returned in
 | 
			
		||||
 * such cases.
 | 
			
		||||
 *
 | 
			
		||||
 * This flag only affects the checks of the compressed data itself; the CRC32
 | 
			
		||||
 * values in the .xz headers will still be verified normally.
 | 
			
		||||
 *
 | 
			
		||||
 * Don't use this flag unless you know what you are doing. Possible reasons
 | 
			
		||||
 * to use this flag:
 | 
			
		||||
 *
 | 
			
		||||
 *   - Trying to recover data from a corrupt .xz file.
 | 
			
		||||
 *
 | 
			
		||||
 *   - Speeding up decompression, which matters mostly with SHA-256
 | 
			
		||||
 *     or with files that have compressed extremely well. It's recommended
 | 
			
		||||
 *     to not use this flag for this purpose unless the file integrity is
 | 
			
		||||
 *     verified externally in some other way.
 | 
			
		||||
 *
 | 
			
		||||
 * Support for this flag was added in liblzma 5.1.4beta.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_IGNORE_CHECK               UINT32_C(0x10)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This flag enables decoding of concatenated files with file formats that
 | 
			
		||||
 * allow concatenating compressed files as is. From the formats currently
 | 
			
		||||
 * supported by liblzma, only the .xz format allows concatenated files.
 | 
			
		||||
 * Concatenated files are not allowed with the legacy .lzma format.
 | 
			
		||||
 *
 | 
			
		||||
 * This flag also affects the usage of the `action' argument for lzma_code().
 | 
			
		||||
 * When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END
 | 
			
		||||
 * unless LZMA_FINISH is used as `action'. Thus, the application has to set
 | 
			
		||||
 * LZMA_FINISH in the same way as it does when encoding.
 | 
			
		||||
 *
 | 
			
		||||
 * If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH
 | 
			
		||||
 * as `action' for lzma_code(), but the usage of LZMA_FINISH isn't required.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_CONCATENATED               UINT32_C(0x08)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Stream decoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm        Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
 | 
			
		||||
 *                          to effectively disable the limiter.
 | 
			
		||||
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
 | 
			
		||||
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
 | 
			
		||||
 *                          LZMA_TELL_ANY_CHECK, LZMA_CONCATENATED
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Initialization was successful.
 | 
			
		||||
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_decoder(
 | 
			
		||||
		lzma_stream *strm, uint64_t memlimit, uint32_t flags)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode .xz Streams and .lzma files with autodetection
 | 
			
		||||
 *
 | 
			
		||||
 * This decoder autodetects between the .xz and .lzma file formats, and
 | 
			
		||||
 * calls lzma_stream_decoder() or lzma_alone_decoder() once the type
 | 
			
		||||
 * of the input file has been detected.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm        Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
 | 
			
		||||
 *                          to effectively disable the limiter.
 | 
			
		||||
 * \param       flags       Bitwise-or of flags, or zero for no flags.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Initialization was successful.
 | 
			
		||||
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_auto_decoder(
 | 
			
		||||
		lzma_stream *strm, uint64_t memlimit, uint32_t flags)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .lzma decoder (legacy file format)
 | 
			
		||||
 *
 | 
			
		||||
 * Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
 | 
			
		||||
 * There is no need to use LZMA_FINISH, but allowing it may simplify
 | 
			
		||||
 * certain types of applications.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_alone_decoder(
 | 
			
		||||
		lzma_stream *strm, uint64_t memlimit)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Stream decoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       memlimit    Pointer to how much memory the decoder is allowed
 | 
			
		||||
 *                          to allocate. The value pointed by this pointer is
 | 
			
		||||
 *                          modified if and only if LZMA_MEMLIMIT_ERROR is
 | 
			
		||||
 *                          returned.
 | 
			
		||||
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
 | 
			
		||||
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
 | 
			
		||||
 *                          LZMA_CONCATENATED. Note that LZMA_TELL_ANY_CHECK
 | 
			
		||||
 *                          is not allowed and will return LZMA_PROG_ERROR.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_pos      The next byte will be read from in[*in_pos].
 | 
			
		||||
 *                          *in_pos is updated only if decoding succeeds.
 | 
			
		||||
 * \param       in_size     Size of the input buffer; the first byte that
 | 
			
		||||
 *                          won't be read is in[in_size].
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if decoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Decoding was successful.
 | 
			
		||||
 *              - LZMA_FORMAT_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_NO_CHECK: This can be returned only if using
 | 
			
		||||
 *                the LZMA_TELL_NO_CHECK flag.
 | 
			
		||||
 *              - LZMA_UNSUPPORTED_CHECK: This can be returned only if using
 | 
			
		||||
 *                the LZMA_TELL_UNSUPPORTED_CHECK flag.
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
 | 
			
		||||
 *                The minimum required memlimit value was stored to *memlimit.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Output buffer was too small.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_buffer_decode(
 | 
			
		||||
		uint64_t *memlimit, uint32_t flags,
 | 
			
		||||
		const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
							
								
								
									
										77
									
								
								node_modules/lzma-native/deps/include/lzma/delta.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								node_modules/lzma-native/deps/include/lzma/delta.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/delta.h
 | 
			
		||||
 * \brief       Delta filter
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Filter ID
 | 
			
		||||
 *
 | 
			
		||||
 * Filter ID of the Delta filter. This is used as lzma_filter.id.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_FILTER_DELTA       LZMA_VLI_C(0x03)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Type of the delta calculation
 | 
			
		||||
 *
 | 
			
		||||
 * Currently only byte-wise delta is supported. Other possible types could
 | 
			
		||||
 * be, for example, delta of 16/32/64-bit little/big endian integers, but
 | 
			
		||||
 * these are not currently planned since byte-wise delta is almost as good.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_DELTA_TYPE_BYTE
 | 
			
		||||
} lzma_delta_type;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Options for the Delta filter
 | 
			
		||||
 *
 | 
			
		||||
 * These options are needed by both encoder and decoder.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/** For now, this must always be LZMA_DELTA_TYPE_BYTE. */
 | 
			
		||||
	lzma_delta_type type;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Delta distance
 | 
			
		||||
	 *
 | 
			
		||||
	 * With the only currently supported type, LZMA_DELTA_TYPE_BYTE,
 | 
			
		||||
	 * the distance is as bytes.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Examples:
 | 
			
		||||
	 *  - 16-bit stereo audio: distance = 4 bytes
 | 
			
		||||
	 *  - 24-bit RGB image data: distance = 3 bytes
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t dist;
 | 
			
		||||
#	define LZMA_DELTA_DIST_MIN 1
 | 
			
		||||
#	define LZMA_DELTA_DIST_MAX 256
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Reserved space to allow possible future extensions without
 | 
			
		||||
	 * breaking the ABI. You should not touch these, because the names
 | 
			
		||||
	 * of these variables may change. These are and will never be used
 | 
			
		||||
	 * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these
 | 
			
		||||
	 * uninitialized.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t reserved_int1;
 | 
			
		||||
	uint32_t reserved_int2;
 | 
			
		||||
	uint32_t reserved_int3;
 | 
			
		||||
	uint32_t reserved_int4;
 | 
			
		||||
	void *reserved_ptr1;
 | 
			
		||||
	void *reserved_ptr2;
 | 
			
		||||
 | 
			
		||||
} lzma_options_delta;
 | 
			
		||||
							
								
								
									
										425
									
								
								node_modules/lzma-native/deps/include/lzma/filter.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										425
									
								
								node_modules/lzma-native/deps/include/lzma/filter.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,425 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/filter.h
 | 
			
		||||
 * \brief       Common filter related types and functions
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Maximum number of filters in a chain
 | 
			
		||||
 *
 | 
			
		||||
 * A filter chain can have 1-4 filters, of which three are allowed to change
 | 
			
		||||
 * the size of the data. Usually only one or two filters are needed.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_FILTERS_MAX 4
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Filter options
 | 
			
		||||
 *
 | 
			
		||||
 * This structure is used to pass Filter ID and a pointer filter's
 | 
			
		||||
 * options to liblzma. A few functions work with a single lzma_filter
 | 
			
		||||
 * structure, while most functions expect a filter chain.
 | 
			
		||||
 *
 | 
			
		||||
 * A filter chain is indicated with an array of lzma_filter structures.
 | 
			
		||||
 * The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter
 | 
			
		||||
 * array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to
 | 
			
		||||
 * be able to hold any arbitrary filter chain. This is important when
 | 
			
		||||
 * using lzma_block_header_decode() from block.h, because too small
 | 
			
		||||
 * array would make liblzma write past the end of the filters array.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Filter ID
 | 
			
		||||
	 *
 | 
			
		||||
	 * Use constants whose name begin with `LZMA_FILTER_' to specify
 | 
			
		||||
	 * different filters. In an array of lzma_filter structures, use
 | 
			
		||||
	 * LZMA_VLI_UNKNOWN to indicate end of filters.
 | 
			
		||||
	 *
 | 
			
		||||
	 * \note        This is not an enum, because on some systems enums
 | 
			
		||||
	 *              cannot be 64-bit.
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_vli id;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Pointer to filter-specific options structure
 | 
			
		||||
	 *
 | 
			
		||||
	 * If the filter doesn't need options, set this to NULL. If id is
 | 
			
		||||
	 * set to LZMA_VLI_UNKNOWN, options is ignored, and thus
 | 
			
		||||
	 * doesn't need be initialized.
 | 
			
		||||
	 */
 | 
			
		||||
	void *options;
 | 
			
		||||
 | 
			
		||||
} lzma_filter;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Test if the given Filter ID is supported for encoding
 | 
			
		||||
 *
 | 
			
		||||
 * Return true if the give Filter ID is supported for encoding by this
 | 
			
		||||
 * liblzma build. Otherwise false is returned.
 | 
			
		||||
 *
 | 
			
		||||
 * There is no way to list which filters are available in this particular
 | 
			
		||||
 * liblzma version and build. It would be useless, because the application
 | 
			
		||||
 * couldn't know what kind of options the filter would need.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Test if the given Filter ID is supported for decoding
 | 
			
		||||
 *
 | 
			
		||||
 * Return true if the give Filter ID is supported for decoding by this
 | 
			
		||||
 * liblzma build. Otherwise false is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Copy the filters array
 | 
			
		||||
 *
 | 
			
		||||
 * Copy the Filter IDs and filter-specific options from src to dest.
 | 
			
		||||
 * Up to LZMA_FILTERS_MAX filters are copied, plus the terminating
 | 
			
		||||
 * .id == LZMA_VLI_UNKNOWN. Thus, dest should have at least
 | 
			
		||||
 * LZMA_FILTERS_MAX + 1 elements space unless the caller knows that
 | 
			
		||||
 * src is smaller than that.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless the filter-specific options is NULL, the Filter ID has to be
 | 
			
		||||
 * supported by liblzma, because liblzma needs to know the size of every
 | 
			
		||||
 * filter-specific options structure. The filter-specific options are not
 | 
			
		||||
 * validated. If options is NULL, any unsupported Filter IDs are copied
 | 
			
		||||
 * without returning an error.
 | 
			
		||||
 *
 | 
			
		||||
 * Old filter-specific options in dest are not freed, so dest doesn't
 | 
			
		||||
 * need to be initialized by the caller in any way.
 | 
			
		||||
 *
 | 
			
		||||
 * If an error occurs, memory possibly already allocated by this function
 | 
			
		||||
 * is always freed.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options
 | 
			
		||||
 *                is not NULL.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: src or dest is NULL.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_filters_copy(
 | 
			
		||||
		const lzma_filter *src, lzma_filter *dest,
 | 
			
		||||
		const lzma_allocator *allocator) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate approximate memory requirements for raw encoder
 | 
			
		||||
 *
 | 
			
		||||
 * This function can be used to calculate the memory requirements for
 | 
			
		||||
 * Block and Stream encoders too because Block and Stream encoders don't
 | 
			
		||||
 * need significantly more memory than raw encoder.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filters     Array of filters terminated with
 | 
			
		||||
 *                          .id == LZMA_VLI_UNKNOWN.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Number of bytes of memory required for the given
 | 
			
		||||
 *              filter chain when encoding. If an error occurs,
 | 
			
		||||
 *              for example due to unsupported filter chain,
 | 
			
		||||
 *              UINT64_MAX is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate approximate memory requirements for raw decoder
 | 
			
		||||
 *
 | 
			
		||||
 * This function can be used to calculate the memory requirements for
 | 
			
		||||
 * Block and Stream decoders too because Block and Stream decoders don't
 | 
			
		||||
 * need significantly more memory than raw decoder.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filters     Array of filters terminated with
 | 
			
		||||
 *                          .id == LZMA_VLI_UNKNOWN.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Number of bytes of memory required for the given
 | 
			
		||||
 *              filter chain when decoding. If an error occurs,
 | 
			
		||||
 *              for example due to unsupported filter chain,
 | 
			
		||||
 *              UINT64_MAX is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize raw encoder
 | 
			
		||||
 *
 | 
			
		||||
 * This function may be useful when implementing custom file formats.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm    Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       filters Array of lzma_filter structures. The end of the
 | 
			
		||||
 *                      array must be marked with .id = LZMA_VLI_UNKNOWN.
 | 
			
		||||
 *
 | 
			
		||||
 * The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the
 | 
			
		||||
 * filter chain supports it), or LZMA_FINISH.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_raw_encoder(
 | 
			
		||||
		lzma_stream *strm, const lzma_filter *filters)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize raw decoder
 | 
			
		||||
 *
 | 
			
		||||
 * The initialization of raw decoder goes similarly to raw encoder.
 | 
			
		||||
 *
 | 
			
		||||
 * The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using
 | 
			
		||||
 * LZMA_FINISH is not required, it is supported just for convenience.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_raw_decoder(
 | 
			
		||||
		lzma_stream *strm, const lzma_filter *filters)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Update the filter chain in the encoder
 | 
			
		||||
 *
 | 
			
		||||
 * This function is for advanced users only. This function has two slightly
 | 
			
		||||
 * different purposes:
 | 
			
		||||
 *
 | 
			
		||||
 *  - After LZMA_FULL_FLUSH when using Stream encoder: Set a new filter
 | 
			
		||||
 *    chain, which will be used starting from the next Block.
 | 
			
		||||
 *
 | 
			
		||||
 *  - After LZMA_SYNC_FLUSH using Raw, Block, or Stream encoder: Change
 | 
			
		||||
 *    the filter-specific options in the middle of encoding. The actual
 | 
			
		||||
 *    filters in the chain (Filter IDs) cannot be changed. In the future,
 | 
			
		||||
 *    it might become possible to change the filter options without
 | 
			
		||||
 *    using LZMA_SYNC_FLUSH.
 | 
			
		||||
 *
 | 
			
		||||
 * While rarely useful, this function may be called also when no data has
 | 
			
		||||
 * been compressed yet. In that case, this function will behave as if
 | 
			
		||||
 * LZMA_FULL_FLUSH (Stream encoder) or LZMA_SYNC_FLUSH (Raw or Block
 | 
			
		||||
 * encoder) had been used right before calling this function.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_MEMLIMIT_ERROR
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_filters_update(
 | 
			
		||||
		lzma_stream *strm, const lzma_filter *filters) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call raw encoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filters     Array of lzma_filter structures. The end of the
 | 
			
		||||
 *                          array must be marked with .id = LZMA_VLI_UNKNOWN.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_size     Size of the input buffer
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 *
 | 
			
		||||
 * \note        There is no function to calculate how big output buffer
 | 
			
		||||
 *              would surely be big enough. (lzma_stream_buffer_bound()
 | 
			
		||||
 *              works only for lzma_stream_buffer_encode(); raw encoder
 | 
			
		||||
 *              won't necessarily meet that bound.)
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
 | 
			
		||||
		const lzma_filter *filters, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t in_size, uint8_t *out,
 | 
			
		||||
		size_t *out_pos, size_t out_size) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call raw decoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filters     Array of lzma_filter structures. The end of the
 | 
			
		||||
 *                          array must be marked with .id = LZMA_VLI_UNKNOWN.
 | 
			
		||||
 * \param       allocator   lzma_allocator for custom allocator functions.
 | 
			
		||||
 *                          Set to NULL to use malloc() and free().
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_pos      The next byte will be read from in[*in_pos].
 | 
			
		||||
 *                          *in_pos is updated only if decoding succeeds.
 | 
			
		||||
 * \param       in_size     Size of the input buffer; the first byte that
 | 
			
		||||
 *                          won't be read is in[in_size].
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                          *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size    Size of the out buffer; the first byte into
 | 
			
		||||
 *                          which no data is written to is out[out_size].
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
 | 
			
		||||
		const lzma_filter *filters, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the size of the Filter Properties field
 | 
			
		||||
 *
 | 
			
		||||
 * This function may be useful when implementing custom file formats
 | 
			
		||||
 * using the raw encoder and decoder.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       size    Pointer to uint32_t to hold the size of the properties
 | 
			
		||||
 * \param       filter  Filter ID and options (the size of the properties may
 | 
			
		||||
 *                      vary depending on the options)
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 *
 | 
			
		||||
 * \note        This function validates the Filter ID, but does not
 | 
			
		||||
 *              necessarily validate the options. Thus, it is possible
 | 
			
		||||
 *              that this returns LZMA_OK while the following call to
 | 
			
		||||
 *              lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_properties_size(
 | 
			
		||||
		uint32_t *size, const lzma_filter *filter) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode the Filter Properties field
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filter  Filter ID and options
 | 
			
		||||
 * \param       props   Buffer to hold the encoded options. The size of
 | 
			
		||||
 *                      buffer must have been already determined with
 | 
			
		||||
 *                      lzma_properties_size().
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 *
 | 
			
		||||
 * \note        Even this function won't validate more options than actually
 | 
			
		||||
 *              necessary. Thus, it is possible that encoding the properties
 | 
			
		||||
 *              succeeds but using the same options to initialize the encoder
 | 
			
		||||
 *              will fail.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        If lzma_properties_size() indicated that the size
 | 
			
		||||
 *              of the Filter Properties field is zero, calling
 | 
			
		||||
 *              lzma_properties_encode() is not required, but it
 | 
			
		||||
 *              won't do any harm either.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_properties_encode(
 | 
			
		||||
		const lzma_filter *filter, uint8_t *props) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode the Filter Properties field
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filter      filter->id must have been set to the correct
 | 
			
		||||
 *                          Filter ID. filter->options doesn't need to be
 | 
			
		||||
 *                          initialized (it's not freed by this function). The
 | 
			
		||||
 *                          decoded options will be stored to filter->options.
 | 
			
		||||
 *                          filter->options is set to NULL if there are no
 | 
			
		||||
 *                          properties or if an error occurs.
 | 
			
		||||
 * \param       allocator   Custom memory allocator used to allocate the
 | 
			
		||||
 *                          options. Set to NULL to use the default malloc(),
 | 
			
		||||
 *                          and in case of an error, also free().
 | 
			
		||||
 * \param       props       Input buffer containing the properties.
 | 
			
		||||
 * \param       props_size  Size of the properties. This must be the exact
 | 
			
		||||
 *                          size; giving too much or too little input will
 | 
			
		||||
 *                          return LZMA_OPTIONS_ERROR.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_properties_decode(
 | 
			
		||||
		lzma_filter *filter, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *props, size_t props_size) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate encoded size of a Filter Flags field
 | 
			
		||||
 *
 | 
			
		||||
 * Knowing the size of Filter Flags is useful to know when allocating
 | 
			
		||||
 * memory to hold the encoded Filter Flags.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       size    Pointer to integer to hold the calculated size
 | 
			
		||||
 * \param       filter  Filter ID and associated options whose encoded
 | 
			
		||||
 *                      size is to be calculated
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: *size set successfully. Note that this doesn't
 | 
			
		||||
 *                guarantee that filter->options is valid, thus
 | 
			
		||||
 *                lzma_filter_flags_encode() may still fail.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid options
 | 
			
		||||
 *
 | 
			
		||||
 * \note        If you need to calculate size of List of Filter Flags,
 | 
			
		||||
 *              you need to loop over every lzma_filter entry.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_filter_flags_size(
 | 
			
		||||
		uint32_t *size, const lzma_filter *filter)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode Filter Flags into given buffer
 | 
			
		||||
 *
 | 
			
		||||
 * In contrast to some functions, this doesn't allocate the needed buffer.
 | 
			
		||||
 * This is due to how this function is used internally by liblzma.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       filter      Filter ID and options to be encoded
 | 
			
		||||
 * \param       out         Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos     out[*out_pos] is the next write position. This
 | 
			
		||||
 *                          is updated by the encoder.
 | 
			
		||||
 * \param       out_size    out[out_size] is the first byte to not write.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid options or not enough output
 | 
			
		||||
 *                buffer space (you should have checked it with
 | 
			
		||||
 *                lzma_filter_flags_size()).
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_filter_flags_encode(const lzma_filter *filter,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode Filter Flags from given buffer
 | 
			
		||||
 *
 | 
			
		||||
 * The decoded result is stored into *filter. The old value of
 | 
			
		||||
 * filter->options is not free()d.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_filter_flags_decode(
 | 
			
		||||
		lzma_filter *filter, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
							
								
								
									
										64
									
								
								node_modules/lzma-native/deps/include/lzma/hardware.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								node_modules/lzma-native/deps/include/lzma/hardware.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/hardware.h
 | 
			
		||||
 * \brief       Hardware information
 | 
			
		||||
 *
 | 
			
		||||
 * Since liblzma can consume a lot of system resources, it also provides
 | 
			
		||||
 * ways to limit the resource usage. Applications linking against liblzma
 | 
			
		||||
 * need to do the actual decisions how much resources to let liblzma to use.
 | 
			
		||||
 * To ease making these decisions, liblzma provides functions to find out
 | 
			
		||||
 * the relevant capabilities of the underlaying hardware. Currently there
 | 
			
		||||
 * is only a function to find out the amount of RAM, but in the future there
 | 
			
		||||
 * will be also a function to detect how many concurrent threads the system
 | 
			
		||||
 * can run.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        On some operating systems, these function may temporarily
 | 
			
		||||
 *              load a shared library or open file descriptor(s) to find out
 | 
			
		||||
 *              the requested hardware information. Unless the application
 | 
			
		||||
 *              assumes that specific file descriptors are not touched by
 | 
			
		||||
 *              other threads, this should have no effect on thread safety.
 | 
			
		||||
 *              Possible operations involving file descriptors will restart
 | 
			
		||||
 *              the syscalls if they return EINTR.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the total amount of physical memory (RAM) in bytes
 | 
			
		||||
 *
 | 
			
		||||
 * This function may be useful when determining a reasonable memory
 | 
			
		||||
 * usage limit for decompressing or how much memory it is OK to use
 | 
			
		||||
 * for compressing.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      On success, the total amount of physical memory in bytes
 | 
			
		||||
 *              is returned. If the amount of RAM cannot be determined,
 | 
			
		||||
 *              zero is returned. This can happen if an error occurs
 | 
			
		||||
 *              or if there is no code in liblzma to detect the amount
 | 
			
		||||
 *              of RAM on the specific operating system.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_physmem(void) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the number of processor cores or threads
 | 
			
		||||
 *
 | 
			
		||||
 * This function may be useful when determining how many threads to use.
 | 
			
		||||
 * If the hardware supports more than one thread per CPU core, the number
 | 
			
		||||
 * of hardware threads is returned if that information is available.
 | 
			
		||||
 *
 | 
			
		||||
 * \brief       On success, the number of available CPU threads or cores is
 | 
			
		||||
 *              returned. If this information isn't available or an error
 | 
			
		||||
 *              occurs, zero is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint32_t) lzma_cputhreads(void) lzma_nothrow;
 | 
			
		||||
							
								
								
									
										682
									
								
								node_modules/lzma-native/deps/include/lzma/index.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										682
									
								
								node_modules/lzma-native/deps/include/lzma/index.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,682 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/index.h
 | 
			
		||||
 * \brief       Handling of .xz Index and related information
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Opaque data type to hold the Index(es) and other information
 | 
			
		||||
 *
 | 
			
		||||
 * lzma_index often holds just one .xz Index and possibly the Stream Flags
 | 
			
		||||
 * of the same Stream and size of the Stream Padding field. However,
 | 
			
		||||
 * multiple lzma_indexes can be concatenated with lzma_index_cat() and then
 | 
			
		||||
 * there may be information about multiple Streams in the same lzma_index.
 | 
			
		||||
 *
 | 
			
		||||
 * Notes about thread safety: Only one thread may modify lzma_index at
 | 
			
		||||
 * a time. All functions that take non-const pointer to lzma_index
 | 
			
		||||
 * modify it. As long as no thread is modifying the lzma_index, getting
 | 
			
		||||
 * information from the same lzma_index can be done from multiple threads
 | 
			
		||||
 * at the same time with functions that take a const pointer to
 | 
			
		||||
 * lzma_index or use lzma_index_iter. The same iterator must be used
 | 
			
		||||
 * only by one thread at a time, of course, but there can be as many
 | 
			
		||||
 * iterators for the same lzma_index as needed.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct lzma_index_s lzma_index;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Iterator to get information about Blocks and Streams
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	struct {
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Pointer to Stream Flags
 | 
			
		||||
		 *
 | 
			
		||||
		 * This is NULL if Stream Flags have not been set for
 | 
			
		||||
		 * this Stream with lzma_index_stream_flags().
 | 
			
		||||
		 */
 | 
			
		||||
		const lzma_stream_flags *flags;
 | 
			
		||||
 | 
			
		||||
		const void *reserved_ptr1;
 | 
			
		||||
		const void *reserved_ptr2;
 | 
			
		||||
		const void *reserved_ptr3;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Stream number in the lzma_index
 | 
			
		||||
		 *
 | 
			
		||||
		 * The first Stream is 1.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli number;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Number of Blocks in the Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * If this is zero, the block structure below has
 | 
			
		||||
		 * undefined values.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli block_count;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Compressed start offset of this Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * The offset is relative to the beginning of the lzma_index
 | 
			
		||||
		 * (i.e. usually the beginning of the .xz file).
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli compressed_offset;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Uncompressed start offset of this Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * The offset is relative to the beginning of the lzma_index
 | 
			
		||||
		 * (i.e. usually the beginning of the .xz file).
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli uncompressed_offset;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Compressed size of this Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * This includes all headers except the possible
 | 
			
		||||
		 * Stream Padding after this Stream.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli compressed_size;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Uncompressed size of this Stream
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli uncompressed_size;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Size of Stream Padding after this Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * If it hasn't been set with lzma_index_stream_padding(),
 | 
			
		||||
		 * this defaults to zero. Stream Padding is always
 | 
			
		||||
		 * a multiple of four bytes.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli padding;
 | 
			
		||||
 | 
			
		||||
		lzma_vli reserved_vli1;
 | 
			
		||||
		lzma_vli reserved_vli2;
 | 
			
		||||
		lzma_vli reserved_vli3;
 | 
			
		||||
		lzma_vli reserved_vli4;
 | 
			
		||||
	} stream;
 | 
			
		||||
 | 
			
		||||
	struct {
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Block number in the file
 | 
			
		||||
		 *
 | 
			
		||||
		 * The first Block is 1.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli number_in_file;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Compressed start offset of this Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * This offset is relative to the beginning of the
 | 
			
		||||
		 * lzma_index (i.e. usually the beginning of the .xz file).
 | 
			
		||||
		 * Normally this is where you should seek in the .xz file
 | 
			
		||||
		 * to start decompressing this Block.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli compressed_file_offset;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Uncompressed start offset of this Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * This offset is relative to the beginning of the lzma_index
 | 
			
		||||
		 * (i.e. usually the beginning of the .xz file).
 | 
			
		||||
		 *
 | 
			
		||||
		 * When doing random-access reading, it is possible that
 | 
			
		||||
		 * the target offset is not exactly at Block boundary. One
 | 
			
		||||
		 * will need to compare the target offset against
 | 
			
		||||
		 * uncompressed_file_offset or uncompressed_stream_offset,
 | 
			
		||||
		 * and possibly decode and throw away some amount of data
 | 
			
		||||
		 * before reaching the target offset.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli uncompressed_file_offset;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Block number in this Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * The first Block is 1.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli number_in_stream;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Compressed start offset of this Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * This offset is relative to the beginning of the Stream
 | 
			
		||||
		 * containing this Block.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli compressed_stream_offset;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Uncompressed start offset of this Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * This offset is relative to the beginning of the Stream
 | 
			
		||||
		 * containing this Block.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli uncompressed_stream_offset;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Uncompressed size of this Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * You should pass this to the Block decoder if you will
 | 
			
		||||
		 * decode this Block. It will allow the Block decoder to
 | 
			
		||||
		 * validate the uncompressed size.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli uncompressed_size;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Unpadded size of this Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * You should pass this to the Block decoder if you will
 | 
			
		||||
		 * decode this Block. It will allow the Block decoder to
 | 
			
		||||
		 * validate the unpadded size.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli unpadded_size;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * \brief       Total compressed size
 | 
			
		||||
		 *
 | 
			
		||||
		 * This includes all headers and padding in this Block.
 | 
			
		||||
		 * This is useful if you need to know how many bytes
 | 
			
		||||
		 * the Block decoder will actually read.
 | 
			
		||||
		 */
 | 
			
		||||
		lzma_vli total_size;
 | 
			
		||||
 | 
			
		||||
		lzma_vli reserved_vli1;
 | 
			
		||||
		lzma_vli reserved_vli2;
 | 
			
		||||
		lzma_vli reserved_vli3;
 | 
			
		||||
		lzma_vli reserved_vli4;
 | 
			
		||||
 | 
			
		||||
		const void *reserved_ptr1;
 | 
			
		||||
		const void *reserved_ptr2;
 | 
			
		||||
		const void *reserved_ptr3;
 | 
			
		||||
		const void *reserved_ptr4;
 | 
			
		||||
	} block;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Internal data which is used to store the state of the iterator.
 | 
			
		||||
	 * The exact format may vary between liblzma versions, so don't
 | 
			
		||||
	 * touch these in any way.
 | 
			
		||||
	 */
 | 
			
		||||
	union {
 | 
			
		||||
		const void *p;
 | 
			
		||||
		size_t s;
 | 
			
		||||
		lzma_vli v;
 | 
			
		||||
	} internal[6];
 | 
			
		||||
} lzma_index_iter;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Operation mode for lzma_index_iter_next()
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_INDEX_ITER_ANY             = 0,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Get the next Block or Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * Go to the next Block if the current Stream has at least
 | 
			
		||||
		 * one Block left. Otherwise go to the next Stream even if
 | 
			
		||||
		 * it has no Blocks. If the Stream has no Blocks
 | 
			
		||||
		 * (lzma_index_iter.stream.block_count == 0),
 | 
			
		||||
		 * lzma_index_iter.block will have undefined values.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_INDEX_ITER_STREAM          = 1,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Get the next Stream
 | 
			
		||||
		 *
 | 
			
		||||
		 * Go to the next Stream even if the current Stream has
 | 
			
		||||
		 * unread Blocks left. If the next Stream has at least one
 | 
			
		||||
		 * Block, the iterator will point to the first Block.
 | 
			
		||||
		 * If there are no Blocks, lzma_index_iter.block will have
 | 
			
		||||
		 * undefined values.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_INDEX_ITER_BLOCK           = 2,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Get the next Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * Go to the next Block if the current Stream has at least
 | 
			
		||||
		 * one Block left. If the current Stream has no Blocks left,
 | 
			
		||||
		 * the next Stream with at least one Block is located and
 | 
			
		||||
		 * the iterator will be made to point to the first Block of
 | 
			
		||||
		 * that Stream.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_INDEX_ITER_NONEMPTY_BLOCK  = 3
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Get the next non-empty Block
 | 
			
		||||
		 *
 | 
			
		||||
		 * This is like LZMA_INDEX_ITER_BLOCK except that it will
 | 
			
		||||
		 * skip Blocks whose Uncompressed Size is zero.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
} lzma_index_iter_mode;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate memory usage of lzma_index
 | 
			
		||||
 *
 | 
			
		||||
 * On disk, the size of the Index field depends on both the number of Records
 | 
			
		||||
 * stored and how big values the Records store (due to variable-length integer
 | 
			
		||||
 * encoding). When the Index is kept in lzma_index structure, the memory usage
 | 
			
		||||
 * depends only on the number of Records/Blocks stored in the Index(es), and
 | 
			
		||||
 * in case of concatenated lzma_indexes, the number of Streams. The size in
 | 
			
		||||
 * RAM is almost always significantly bigger than in the encoded form on disk.
 | 
			
		||||
 *
 | 
			
		||||
 * This function calculates an approximate amount of memory needed hold
 | 
			
		||||
 * the given number of Streams and Blocks in lzma_index structure. This
 | 
			
		||||
 * value may vary between CPU architectures and also between liblzma versions
 | 
			
		||||
 * if the internal implementation is modified.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_index_memusage(
 | 
			
		||||
		lzma_vli streams, lzma_vli blocks) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Calculate the memory usage of an existing lzma_index
 | 
			
		||||
 *
 | 
			
		||||
 * This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i),
 | 
			
		||||
 * lzma_index_block_count(i)).
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Allocate and initialize a new lzma_index structure
 | 
			
		||||
 *
 | 
			
		||||
 * \return      On success, a pointer to an empty initialized lzma_index is
 | 
			
		||||
 *              returned. If allocation fails, NULL is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_index *) lzma_index_init(const lzma_allocator *allocator)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Deallocate lzma_index
 | 
			
		||||
 *
 | 
			
		||||
 * If i is NULL, this does nothing.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(void) lzma_index_end(
 | 
			
		||||
		lzma_index *i, const lzma_allocator *allocator) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Add a new Block to lzma_index
 | 
			
		||||
 *
 | 
			
		||||
 * \param       i                 Pointer to a lzma_index structure
 | 
			
		||||
 * \param       allocator         Pointer to lzma_allocator, or NULL to
 | 
			
		||||
 *                                use malloc()
 | 
			
		||||
 * \param       unpadded_size     Unpadded Size of a Block. This can be
 | 
			
		||||
 *                                calculated with lzma_block_unpadded_size()
 | 
			
		||||
 *                                after encoding or decoding the Block.
 | 
			
		||||
 * \param       uncompressed_size Uncompressed Size of a Block. This can be
 | 
			
		||||
 *                                taken directly from lzma_block structure
 | 
			
		||||
 *                                after encoding or decoding the Block.
 | 
			
		||||
 *
 | 
			
		||||
 * Appending a new Block does not invalidate iterators. For example,
 | 
			
		||||
 * if an iterator was pointing to the end of the lzma_index, after
 | 
			
		||||
 * lzma_index_append() it is possible to read the next Block with
 | 
			
		||||
 * an existing iterator.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_DATA_ERROR: Compressed or uncompressed size of the
 | 
			
		||||
 *                Stream or size of the Index field would grow too big.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_append(
 | 
			
		||||
		lzma_index *i, const lzma_allocator *allocator,
 | 
			
		||||
		lzma_vli unpadded_size, lzma_vli uncompressed_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Set the Stream Flags
 | 
			
		||||
 *
 | 
			
		||||
 * Set the Stream Flags of the last (and typically the only) Stream
 | 
			
		||||
 * in lzma_index. This can be useful when reading information from the
 | 
			
		||||
 * lzma_index, because to decode Blocks, knowing the integrity check type
 | 
			
		||||
 * is needed.
 | 
			
		||||
 *
 | 
			
		||||
 * The given Stream Flags are copied into internal preallocated structure
 | 
			
		||||
 * in the lzma_index, thus the caller doesn't need to keep the *stream_flags
 | 
			
		||||
 * available after calling this function.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported stream_flags->version.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_stream_flags(
 | 
			
		||||
		lzma_index *i, const lzma_stream_flags *stream_flags)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the types of integrity Checks
 | 
			
		||||
 *
 | 
			
		||||
 * If lzma_index_stream_flags() is used to set the Stream Flags for
 | 
			
		||||
 * every Stream, lzma_index_checks() can be used to get a bitmask to
 | 
			
		||||
 * indicate which Check types have been used. It can be useful e.g. if
 | 
			
		||||
 * showing the Check types to the user.
 | 
			
		||||
 *
 | 
			
		||||
 * The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Set the amount of Stream Padding
 | 
			
		||||
 *
 | 
			
		||||
 * Set the amount of Stream Padding of the last (and typically the only)
 | 
			
		||||
 * Stream in the lzma_index. This is needed when planning to do random-access
 | 
			
		||||
 * reading within multiple concatenated Streams.
 | 
			
		||||
 *
 | 
			
		||||
 * By default, the amount of Stream Padding is assumed to be zero bytes.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_DATA_ERROR: The file size would grow too big.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_stream_padding(
 | 
			
		||||
		lzma_index *i, lzma_vli stream_padding)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the number of Streams
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the number of Blocks
 | 
			
		||||
 *
 | 
			
		||||
 * This returns the total number of Blocks in lzma_index. To get number
 | 
			
		||||
 * of Blocks in individual Streams, use lzma_index_iter.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the size of the Index field as bytes
 | 
			
		||||
 *
 | 
			
		||||
 * This is needed to verify the Backward Size field in the Stream Footer.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the total size of the Stream
 | 
			
		||||
 *
 | 
			
		||||
 * If multiple lzma_indexes have been combined, this works as if the Blocks
 | 
			
		||||
 * were in a single Stream. This is useful if you are going to combine
 | 
			
		||||
 * Blocks from multiple Streams into a single new Stream.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the total size of the Blocks
 | 
			
		||||
 *
 | 
			
		||||
 * This doesn't include the Stream Header, Stream Footer, Stream Padding,
 | 
			
		||||
 * or Index fields.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the total size of the file
 | 
			
		||||
 *
 | 
			
		||||
 * When no lzma_indexes have been combined with lzma_index_cat() and there is
 | 
			
		||||
 * no Stream Padding, this function is identical to lzma_index_stream_size().
 | 
			
		||||
 * If multiple lzma_indexes have been combined, this includes also the headers
 | 
			
		||||
 * of each separate Stream and the possible Stream Padding fields.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the uncompressed size of the file
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize an iterator
 | 
			
		||||
 *
 | 
			
		||||
 * \param       iter    Pointer to a lzma_index_iter structure
 | 
			
		||||
 * \param       i       lzma_index to which the iterator will be associated
 | 
			
		||||
 *
 | 
			
		||||
 * This function associates the iterator with the given lzma_index, and calls
 | 
			
		||||
 * lzma_index_iter_rewind() on the iterator.
 | 
			
		||||
 *
 | 
			
		||||
 * This function doesn't allocate any memory, thus there is no
 | 
			
		||||
 * lzma_index_iter_end(). The iterator is valid as long as the
 | 
			
		||||
 * associated lzma_index is valid, that is, until lzma_index_end() or
 | 
			
		||||
 * using it as source in lzma_index_cat(). Specifically, lzma_index doesn't
 | 
			
		||||
 * become invalid if new Blocks are added to it with lzma_index_append() or
 | 
			
		||||
 * if it is used as the destination in lzma_index_cat().
 | 
			
		||||
 *
 | 
			
		||||
 * It is safe to make copies of an initialized lzma_index_iter, for example,
 | 
			
		||||
 * to easily restart reading at some particular position.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(void) lzma_index_iter_init(
 | 
			
		||||
		lzma_index_iter *iter, const lzma_index *i) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Rewind the iterator
 | 
			
		||||
 *
 | 
			
		||||
 * Rewind the iterator so that next call to lzma_index_iter_next() will
 | 
			
		||||
 * return the first Block or Stream.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the next Block or Stream
 | 
			
		||||
 *
 | 
			
		||||
 * \param       iter    Iterator initialized with lzma_index_iter_init()
 | 
			
		||||
 * \param       mode    Specify what kind of information the caller wants
 | 
			
		||||
 *                      to get. See lzma_index_iter_mode for details.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      If next Block or Stream matching the mode was found, *iter
 | 
			
		||||
 *              is updated and this function returns false. If no Block or
 | 
			
		||||
 *              Stream matching the mode is found, *iter is not modified
 | 
			
		||||
 *              and this function returns true. If mode is set to an unknown
 | 
			
		||||
 *              value, *iter is not modified and this function returns true.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_index_iter_next(
 | 
			
		||||
		lzma_index_iter *iter, lzma_index_iter_mode mode)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Locate a Block
 | 
			
		||||
 *
 | 
			
		||||
 * If it is possible to seek in the .xz file, it is possible to parse
 | 
			
		||||
 * the Index field(s) and use lzma_index_iter_locate() to do random-access
 | 
			
		||||
 * reading with granularity of Block size.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       iter    Iterator that was earlier initialized with
 | 
			
		||||
 *                      lzma_index_iter_init().
 | 
			
		||||
 * \param       target  Uncompressed target offset which the caller would
 | 
			
		||||
 *                      like to locate from the Stream
 | 
			
		||||
 *
 | 
			
		||||
 * If the target is smaller than the uncompressed size of the Stream (can be
 | 
			
		||||
 * checked with lzma_index_uncompressed_size()):
 | 
			
		||||
 *  - Information about the Stream and Block containing the requested
 | 
			
		||||
 *    uncompressed offset is stored into *iter.
 | 
			
		||||
 *  - Internal state of the iterator is adjusted so that
 | 
			
		||||
 *    lzma_index_iter_next() can be used to read subsequent Blocks or Streams.
 | 
			
		||||
 *  - This function returns false.
 | 
			
		||||
 *
 | 
			
		||||
 * If target is greater than the uncompressed size of the Stream, *iter
 | 
			
		||||
 * is not modified, and this function returns true.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_index_iter_locate(
 | 
			
		||||
		lzma_index_iter *iter, lzma_vli target) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Concatenate lzma_indexes
 | 
			
		||||
 *
 | 
			
		||||
 * Concatenating lzma_indexes is useful when doing random-access reading in
 | 
			
		||||
 * multi-Stream .xz file, or when combining multiple Streams into single
 | 
			
		||||
 * Stream.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       dest      lzma_index after which src is appended
 | 
			
		||||
 * \param       src       lzma_index to be appended after dest. If this
 | 
			
		||||
 *                        function succeeds, the memory allocated for src
 | 
			
		||||
 *                        is freed or moved to be part of dest, and all
 | 
			
		||||
 *                        iterators pointing to src will become invalid.
 | 
			
		||||
 * \param       allocator Custom memory allocator; can be NULL to use
 | 
			
		||||
 *                        malloc() and free().
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: lzma_indexes were concatenated successfully.
 | 
			
		||||
 *                src is now a dangling pointer.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: *dest would grow too big.
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_cat(lzma_index *dest, lzma_index *src,
 | 
			
		||||
		const lzma_allocator *allocator)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Duplicate lzma_index
 | 
			
		||||
 *
 | 
			
		||||
 * \return      A copy of the lzma_index, or NULL if memory allocation failed.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_index *) lzma_index_dup(
 | 
			
		||||
		const lzma_index *i, const lzma_allocator *allocator)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Index encoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm        Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       i           Pointer to lzma_index which should be encoded.
 | 
			
		||||
 *
 | 
			
		||||
 * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH.
 | 
			
		||||
 * It is enough to use only one of them (you can choose freely; use LZMA_RUN
 | 
			
		||||
 * to support liblzma versions older than 5.0.0).
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Initialization succeeded, continue with lzma_code().
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_encoder(
 | 
			
		||||
		lzma_stream *strm, const lzma_index *i)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Initialize .xz Index decoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       strm        Pointer to properly prepared lzma_stream
 | 
			
		||||
 * \param       i           The decoded Index will be made available via
 | 
			
		||||
 *                          this pointer. Initially this function will
 | 
			
		||||
 *                          set *i to NULL (the old value is ignored). If
 | 
			
		||||
 *                          decoding succeeds (lzma_code() returns
 | 
			
		||||
 *                          LZMA_STREAM_END), *i will be set to point
 | 
			
		||||
 *                          to a new lzma_index, which the application
 | 
			
		||||
 *                          has to later free with lzma_index_end().
 | 
			
		||||
 * \param       memlimit    How much memory the resulting lzma_index is
 | 
			
		||||
 *                          allowed to require.
 | 
			
		||||
 *
 | 
			
		||||
 * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH.
 | 
			
		||||
 * It is enough to use only one of them (you can choose freely; use LZMA_RUN
 | 
			
		||||
 * to support liblzma versions older than 5.0.0).
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Initialization succeeded, continue with lzma_code().
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_MEMLIMIT_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_decoder(
 | 
			
		||||
		lzma_stream *strm, lzma_index **i, uint64_t memlimit)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Index encoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       i         lzma_index to be encoded
 | 
			
		||||
 * \param       out       Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos   The next byte will be written to out[*out_pos].
 | 
			
		||||
 *                        *out_pos is updated only if encoding succeeds.
 | 
			
		||||
 * \param       out_size  Size of the out buffer; the first byte into
 | 
			
		||||
 *                        which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Output buffer is too small. Use
 | 
			
		||||
 *                lzma_index_size() to find out how much output
 | 
			
		||||
 *                space is needed.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 *
 | 
			
		||||
 * \note        This function doesn't take allocator argument since all
 | 
			
		||||
 *              the internal data is allocated on stack.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Single-call .xz Index decoder
 | 
			
		||||
 *
 | 
			
		||||
 * \param       i           If decoding succeeds, *i will point to a new
 | 
			
		||||
 *                          lzma_index, which the application has to
 | 
			
		||||
 *                          later free with lzma_index_end(). If an error
 | 
			
		||||
 *                          occurs, *i will be NULL. The old value of *i
 | 
			
		||||
 *                          is always ignored and thus doesn't need to be
 | 
			
		||||
 *                          initialized by the caller.
 | 
			
		||||
 * \param       memlimit    Pointer to how much memory the resulting
 | 
			
		||||
 *                          lzma_index is allowed to require. The value
 | 
			
		||||
 *                          pointed by this pointer is modified if and only
 | 
			
		||||
 *                          if LZMA_MEMLIMIT_ERROR is returned.
 | 
			
		||||
 * \param       allocator   Pointer to lzma_allocator, or NULL to use malloc()
 | 
			
		||||
 * \param       in          Beginning of the input buffer
 | 
			
		||||
 * \param       in_pos      The next byte will be read from in[*in_pos].
 | 
			
		||||
 *                          *in_pos is updated only if decoding succeeds.
 | 
			
		||||
 * \param       in_size     Size of the input buffer; the first byte that
 | 
			
		||||
 *                          won't be read is in[in_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Decoding was successful.
 | 
			
		||||
 *              - LZMA_MEM_ERROR
 | 
			
		||||
 *              - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
 | 
			
		||||
 *                The minimum required memlimit value was stored to *memlimit.
 | 
			
		||||
 *              - LZMA_DATA_ERROR
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i,
 | 
			
		||||
		uint64_t *memlimit, const lzma_allocator *allocator,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
							
								
								
									
										107
									
								
								node_modules/lzma-native/deps/include/lzma/index_hash.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								node_modules/lzma-native/deps/include/lzma/index_hash.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,107 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/index_hash.h
 | 
			
		||||
 * \brief       Validate Index by using a hash function
 | 
			
		||||
 *
 | 
			
		||||
 * Hashing makes it possible to use constant amount of memory to validate
 | 
			
		||||
 * Index of arbitrary size.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Opaque data type to hold the Index hash
 | 
			
		||||
 */
 | 
			
		||||
typedef struct lzma_index_hash_s lzma_index_hash;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Allocate and initialize a new lzma_index_hash structure
 | 
			
		||||
 *
 | 
			
		||||
 * If index_hash is NULL, a new lzma_index_hash structure is allocated,
 | 
			
		||||
 * initialized, and a pointer to it returned. If allocation fails, NULL
 | 
			
		||||
 * is returned.
 | 
			
		||||
 *
 | 
			
		||||
 * If index_hash is non-NULL, it is reinitialized and the same pointer
 | 
			
		||||
 * returned. In this case, return value cannot be NULL or a different
 | 
			
		||||
 * pointer than the index_hash that was given as an argument.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
 | 
			
		||||
		lzma_index_hash *index_hash, const lzma_allocator *allocator)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Deallocate lzma_index_hash structure
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(void) lzma_index_hash_end(
 | 
			
		||||
		lzma_index_hash *index_hash, const lzma_allocator *allocator)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Add a new Record to an Index hash
 | 
			
		||||
 *
 | 
			
		||||
 * \param       index             Pointer to a lzma_index_hash structure
 | 
			
		||||
 * \param       unpadded_size     Unpadded Size of a Block
 | 
			
		||||
 * \param       uncompressed_size Uncompressed Size of a Block
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK
 | 
			
		||||
 *              - LZMA_DATA_ERROR: Compressed or uncompressed size of the
 | 
			
		||||
 *                Stream or size of the Index field would grow too big.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid arguments or this function is being
 | 
			
		||||
 *                used when lzma_index_hash_decode() has already been used.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash,
 | 
			
		||||
		lzma_vli unpadded_size, lzma_vli uncompressed_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode and validate the Index field
 | 
			
		||||
 *
 | 
			
		||||
 * After telling the sizes of all Blocks with lzma_index_hash_append(),
 | 
			
		||||
 * the actual Index field is decoded with this function. Specifically,
 | 
			
		||||
 * once decoding of the Index field has been started, no more Records
 | 
			
		||||
 * can be added using lzma_index_hash_append().
 | 
			
		||||
 *
 | 
			
		||||
 * This function doesn't use lzma_stream structure to pass the input data.
 | 
			
		||||
 * Instead, the input buffer is specified using three arguments. This is
 | 
			
		||||
 * because it matches better the internal APIs of liblzma.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       index_hash      Pointer to a lzma_index_hash structure
 | 
			
		||||
 * \param       in              Pointer to the beginning of the input buffer
 | 
			
		||||
 * \param       in_pos          in[*in_pos] is the next byte to process
 | 
			
		||||
 * \param       in_size         in[in_size] is the first byte not to process
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: So far good, but more input is needed.
 | 
			
		||||
 *              - LZMA_STREAM_END: Index decoded successfully and it matches
 | 
			
		||||
 *                the Records given with lzma_index_hash_append().
 | 
			
		||||
 *              - LZMA_DATA_ERROR: Index is corrupt or doesn't match the
 | 
			
		||||
 *                information given with lzma_index_hash_append().
 | 
			
		||||
 *              - LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size.
 | 
			
		||||
 *              - LZMA_PROG_ERROR
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_index_hash_decode(lzma_index_hash *index_hash,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the size of the Index field as bytes
 | 
			
		||||
 *
 | 
			
		||||
 * This is needed to verify the Backward Size field in the Stream Footer.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_vli) lzma_index_hash_size(
 | 
			
		||||
		const lzma_index_hash *index_hash)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
							
								
								
									
										420
									
								
								node_modules/lzma-native/deps/include/lzma/lzma12.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										420
									
								
								node_modules/lzma-native/deps/include/lzma/lzma12.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,420 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/lzma12.h
 | 
			
		||||
 * \brief       LZMA1 and LZMA2 filters
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       LZMA1 Filter ID
 | 
			
		||||
 *
 | 
			
		||||
 * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils,
 | 
			
		||||
 * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from
 | 
			
		||||
 * accidentally using LZMA when they actually want LZMA2.
 | 
			
		||||
 *
 | 
			
		||||
 * LZMA1 shouldn't be used for new applications unless you _really_ know
 | 
			
		||||
 * what you are doing. LZMA2 is almost always a better choice.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_FILTER_LZMA1       LZMA_VLI_C(0x4000000000000001)
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       LZMA2 Filter ID
 | 
			
		||||
 *
 | 
			
		||||
 * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds
 | 
			
		||||
 * support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion
 | 
			
		||||
 * when trying to compress uncompressible data), possibility to change
 | 
			
		||||
 * lc/lp/pb in the middle of encoding, and some other internal improvements.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_FILTER_LZMA2       LZMA_VLI_C(0x21)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Match finders
 | 
			
		||||
 *
 | 
			
		||||
 * Match finder has major effect on both speed and compression ratio.
 | 
			
		||||
 * Usually hash chains are faster than binary trees.
 | 
			
		||||
 *
 | 
			
		||||
 * If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better
 | 
			
		||||
 * choice, because binary trees get much higher compression ratio penalty
 | 
			
		||||
 * with LZMA_SYNC_FLUSH.
 | 
			
		||||
 *
 | 
			
		||||
 * The memory usage formulas are only rough estimates, which are closest to
 | 
			
		||||
 * reality when dict_size is a power of two. The formulas are  more complex
 | 
			
		||||
 * in reality, and can also change a little between liblzma versions. Use
 | 
			
		||||
 * lzma_raw_encoder_memusage() to get more accurate estimate of memory usage.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_MF_HC3     = 0x03,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Hash Chain with 2- and 3-byte hashing
 | 
			
		||||
		 *
 | 
			
		||||
		 * Minimum nice_len: 3
 | 
			
		||||
		 *
 | 
			
		||||
		 * Memory usage:
 | 
			
		||||
		 *  - dict_size <= 16 MiB: dict_size * 7.5
 | 
			
		||||
		 *  - dict_size > 16 MiB: dict_size * 5.5 + 64 MiB
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MF_HC4     = 0x04,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Hash Chain with 2-, 3-, and 4-byte hashing
 | 
			
		||||
		 *
 | 
			
		||||
		 * Minimum nice_len: 4
 | 
			
		||||
		 *
 | 
			
		||||
		 * Memory usage:
 | 
			
		||||
		 *  - dict_size <= 32 MiB: dict_size * 7.5
 | 
			
		||||
		 *  - dict_size > 32 MiB: dict_size * 6.5
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MF_BT2     = 0x12,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Binary Tree with 2-byte hashing
 | 
			
		||||
		 *
 | 
			
		||||
		 * Minimum nice_len: 2
 | 
			
		||||
		 *
 | 
			
		||||
		 * Memory usage: dict_size * 9.5
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MF_BT3     = 0x13,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Binary Tree with 2- and 3-byte hashing
 | 
			
		||||
		 *
 | 
			
		||||
		 * Minimum nice_len: 3
 | 
			
		||||
		 *
 | 
			
		||||
		 * Memory usage:
 | 
			
		||||
		 *  - dict_size <= 16 MiB: dict_size * 11.5
 | 
			
		||||
		 *  - dict_size > 16 MiB: dict_size * 9.5 + 64 MiB
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MF_BT4     = 0x14
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Binary Tree with 2-, 3-, and 4-byte hashing
 | 
			
		||||
		 *
 | 
			
		||||
		 * Minimum nice_len: 4
 | 
			
		||||
		 *
 | 
			
		||||
		 * Memory usage:
 | 
			
		||||
		 *  - dict_size <= 32 MiB: dict_size * 11.5
 | 
			
		||||
		 *  - dict_size > 32 MiB: dict_size * 10.5
 | 
			
		||||
		 */
 | 
			
		||||
} lzma_match_finder;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Test if given match finder is supported
 | 
			
		||||
 *
 | 
			
		||||
 * Return true if the given match finder is supported by this liblzma build.
 | 
			
		||||
 * Otherwise false is returned. It is safe to call this with a value that
 | 
			
		||||
 * isn't listed in lzma_match_finder enumeration; the return value will be
 | 
			
		||||
 * false.
 | 
			
		||||
 *
 | 
			
		||||
 * There is no way to list which match finders are available in this
 | 
			
		||||
 * particular liblzma version and build. It would be useless, because
 | 
			
		||||
 * a new match finder, which the application developer wasn't aware,
 | 
			
		||||
 * could require giving additional options to the encoder that the older
 | 
			
		||||
 * match finders don't need.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Compression modes
 | 
			
		||||
 *
 | 
			
		||||
 * This selects the function used to analyze the data produced by the match
 | 
			
		||||
 * finder.
 | 
			
		||||
 */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	LZMA_MODE_FAST = 1,
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Fast compression
 | 
			
		||||
		 *
 | 
			
		||||
		 * Fast mode is usually at its best when combined with
 | 
			
		||||
		 * a hash chain match finder.
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
	LZMA_MODE_NORMAL = 2
 | 
			
		||||
		/**<
 | 
			
		||||
		 * \brief       Normal compression
 | 
			
		||||
		 *
 | 
			
		||||
		 * This is usually notably slower than fast mode. Use this
 | 
			
		||||
		 * together with binary tree match finders to expose the
 | 
			
		||||
		 * full potential of the LZMA1 or LZMA2 encoder.
 | 
			
		||||
		 */
 | 
			
		||||
} lzma_mode;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Test if given compression mode is supported
 | 
			
		||||
 *
 | 
			
		||||
 * Return true if the given compression mode is supported by this liblzma
 | 
			
		||||
 * build. Otherwise false is returned. It is safe to call this with a value
 | 
			
		||||
 * that isn't listed in lzma_mode enumeration; the return value will be false.
 | 
			
		||||
 *
 | 
			
		||||
 * There is no way to list which modes are available in this particular
 | 
			
		||||
 * liblzma version and build. It would be useless, because a new compression
 | 
			
		||||
 * mode, which the application developer wasn't aware, could require giving
 | 
			
		||||
 * additional options to the encoder that the older modes don't need.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Options specific to the LZMA1 and LZMA2 filters
 | 
			
		||||
 *
 | 
			
		||||
 * Since LZMA1 and LZMA2 share most of the code, it's simplest to share
 | 
			
		||||
 * the options structure too. For encoding, all but the reserved variables
 | 
			
		||||
 * need to be initialized unless specifically mentioned otherwise.
 | 
			
		||||
 * lzma_lzma_preset() can be used to get a good starting point.
 | 
			
		||||
 *
 | 
			
		||||
 * For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and
 | 
			
		||||
 * preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb.
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Dictionary size in bytes
 | 
			
		||||
	 *
 | 
			
		||||
	 * Dictionary size indicates how many bytes of the recently processed
 | 
			
		||||
	 * uncompressed data is kept in memory. One method to reduce size of
 | 
			
		||||
	 * the uncompressed data is to store distance-length pairs, which
 | 
			
		||||
	 * indicate what data to repeat from the dictionary buffer. Thus,
 | 
			
		||||
	 * the bigger the dictionary, the better the compression ratio
 | 
			
		||||
	 * usually is.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Maximum size of the dictionary depends on multiple things:
 | 
			
		||||
	 *  - Memory usage limit
 | 
			
		||||
	 *  - Available address space (not a problem on 64-bit systems)
 | 
			
		||||
	 *  - Selected match finder (encoder only)
 | 
			
		||||
	 *
 | 
			
		||||
	 * Currently the maximum dictionary size for encoding is 1.5 GiB
 | 
			
		||||
	 * (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit
 | 
			
		||||
	 * systems for certain match finder implementation reasons. In the
 | 
			
		||||
	 * future, there may be match finders that support bigger
 | 
			
		||||
	 * dictionaries.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Decoder already supports dictionaries up to 4 GiB - 1 B (i.e.
 | 
			
		||||
	 * UINT32_MAX), so increasing the maximum dictionary size of the
 | 
			
		||||
	 * encoder won't cause problems for old decoders.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Because extremely small dictionaries sizes would have unneeded
 | 
			
		||||
	 * overhead in the decoder, the minimum dictionary size is 4096 bytes.
 | 
			
		||||
	 *
 | 
			
		||||
	 * \note        When decoding, too big dictionary does no other harm
 | 
			
		||||
	 *              than wasting memory.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t dict_size;
 | 
			
		||||
#	define LZMA_DICT_SIZE_MIN       UINT32_C(4096)
 | 
			
		||||
#	define LZMA_DICT_SIZE_DEFAULT   (UINT32_C(1) << 23)
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Pointer to an initial dictionary
 | 
			
		||||
	 *
 | 
			
		||||
	 * It is possible to initialize the LZ77 history window using
 | 
			
		||||
	 * a preset dictionary. It is useful when compressing many
 | 
			
		||||
	 * similar, relatively small chunks of data independently from
 | 
			
		||||
	 * each other. The preset dictionary should contain typical
 | 
			
		||||
	 * strings that occur in the files being compressed. The most
 | 
			
		||||
	 * probable strings should be near the end of the preset dictionary.
 | 
			
		||||
	 *
 | 
			
		||||
	 * This feature should be used only in special situations. For
 | 
			
		||||
	 * now, it works correctly only with raw encoding and decoding.
 | 
			
		||||
	 * Currently none of the container formats supported by
 | 
			
		||||
	 * liblzma allow preset dictionary when decoding, thus if
 | 
			
		||||
	 * you create a .xz or .lzma file with preset dictionary, it
 | 
			
		||||
	 * cannot be decoded with the regular decoder functions. In the
 | 
			
		||||
	 * future, the .xz format will likely get support for preset
 | 
			
		||||
	 * dictionary though.
 | 
			
		||||
	 */
 | 
			
		||||
	const uint8_t *preset_dict;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Size of the preset dictionary
 | 
			
		||||
	 *
 | 
			
		||||
	 * Specifies the size of the preset dictionary. If the size is
 | 
			
		||||
	 * bigger than dict_size, only the last dict_size bytes are
 | 
			
		||||
	 * processed.
 | 
			
		||||
	 *
 | 
			
		||||
	 * This variable is read only when preset_dict is not NULL.
 | 
			
		||||
	 * If preset_dict is not NULL but preset_dict_size is zero,
 | 
			
		||||
	 * no preset dictionary is used (identical to only setting
 | 
			
		||||
	 * preset_dict to NULL).
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t preset_dict_size;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Number of literal context bits
 | 
			
		||||
	 *
 | 
			
		||||
	 * How many of the highest bits of the previous uncompressed
 | 
			
		||||
	 * eight-bit byte (also known as `literal') are taken into
 | 
			
		||||
	 * account when predicting the bits of the next literal.
 | 
			
		||||
	 *
 | 
			
		||||
	 * E.g. in typical English text, an upper-case letter is
 | 
			
		||||
	 * often followed by a lower-case letter, and a lower-case
 | 
			
		||||
	 * letter is usually followed by another lower-case letter.
 | 
			
		||||
	 * In the US-ASCII character set, the highest three bits are 010
 | 
			
		||||
	 * for upper-case letters and 011 for lower-case letters.
 | 
			
		||||
	 * When lc is at least 3, the literal coding can take advantage of
 | 
			
		||||
	 * this property in the uncompressed data.
 | 
			
		||||
	 *
 | 
			
		||||
	 * There is a limit that applies to literal context bits and literal
 | 
			
		||||
	 * position bits together: lc + lp <= 4. Without this limit the
 | 
			
		||||
	 * decoding could become very slow, which could have security related
 | 
			
		||||
	 * results in some cases like email servers doing virus scanning.
 | 
			
		||||
	 * This limit also simplifies the internal implementation in liblzma.
 | 
			
		||||
	 *
 | 
			
		||||
	 * There may be LZMA1 streams that have lc + lp > 4 (maximum possible
 | 
			
		||||
	 * lc would be 8). It is not possible to decode such streams with
 | 
			
		||||
	 * liblzma.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t lc;
 | 
			
		||||
#	define LZMA_LCLP_MIN    0
 | 
			
		||||
#	define LZMA_LCLP_MAX    4
 | 
			
		||||
#	define LZMA_LC_DEFAULT  3
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Number of literal position bits
 | 
			
		||||
	 *
 | 
			
		||||
	 * lp affects what kind of alignment in the uncompressed data is
 | 
			
		||||
	 * assumed when encoding literals. A literal is a single 8-bit byte.
 | 
			
		||||
	 * See pb below for more information about alignment.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t lp;
 | 
			
		||||
#	define LZMA_LP_DEFAULT  0
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Number of position bits
 | 
			
		||||
	 *
 | 
			
		||||
	 * pb affects what kind of alignment in the uncompressed data is
 | 
			
		||||
	 * assumed in general. The default means four-byte alignment
 | 
			
		||||
	 * (2^ pb =2^2=4), which is often a good choice when there's
 | 
			
		||||
	 * no better guess.
 | 
			
		||||
	 *
 | 
			
		||||
	 * When the aligment is known, setting pb accordingly may reduce
 | 
			
		||||
	 * the file size a little. E.g. with text files having one-byte
 | 
			
		||||
	 * alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can
 | 
			
		||||
	 * improve compression slightly. For UTF-16 text, pb=1 is a good
 | 
			
		||||
	 * choice. If the alignment is an odd number like 3 bytes, pb=0
 | 
			
		||||
	 * might be the best choice.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Even though the assumed alignment can be adjusted with pb and
 | 
			
		||||
	 * lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment.
 | 
			
		||||
	 * It might be worth taking into account when designing file formats
 | 
			
		||||
	 * that are likely to be often compressed with LZMA1 or LZMA2.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t pb;
 | 
			
		||||
#	define LZMA_PB_MIN      0
 | 
			
		||||
#	define LZMA_PB_MAX      4
 | 
			
		||||
#	define LZMA_PB_DEFAULT  2
 | 
			
		||||
 | 
			
		||||
	/** Compression mode */
 | 
			
		||||
	lzma_mode mode;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Nice length of a match
 | 
			
		||||
	 *
 | 
			
		||||
	 * This determines how many bytes the encoder compares from the match
 | 
			
		||||
	 * candidates when looking for the best match. Once a match of at
 | 
			
		||||
	 * least nice_len bytes long is found, the encoder stops looking for
 | 
			
		||||
	 * better candidates and encodes the match. (Naturally, if the found
 | 
			
		||||
	 * match is actually longer than nice_len, the actual length is
 | 
			
		||||
	 * encoded; it's not truncated to nice_len.)
 | 
			
		||||
	 *
 | 
			
		||||
	 * Bigger values usually increase the compression ratio and
 | 
			
		||||
	 * compression time. For most files, 32 to 128 is a good value,
 | 
			
		||||
	 * which gives very good compression ratio at good speed.
 | 
			
		||||
	 *
 | 
			
		||||
	 * The exact minimum value depends on the match finder. The maximum
 | 
			
		||||
	 * is 273, which is the maximum length of a match that LZMA1 and
 | 
			
		||||
	 * LZMA2 can encode.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t nice_len;
 | 
			
		||||
 | 
			
		||||
	/** Match finder ID */
 | 
			
		||||
	lzma_match_finder mf;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Maximum search depth in the match finder
 | 
			
		||||
	 *
 | 
			
		||||
	 * For every input byte, match finder searches through the hash chain
 | 
			
		||||
	 * or binary tree in a loop, each iteration going one step deeper in
 | 
			
		||||
	 * the chain or tree. The searching stops if
 | 
			
		||||
	 *  - a match of at least nice_len bytes long is found;
 | 
			
		||||
	 *  - all match candidates from the hash chain or binary tree have
 | 
			
		||||
	 *    been checked; or
 | 
			
		||||
	 *  - maximum search depth is reached.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Maximum search depth is needed to prevent the match finder from
 | 
			
		||||
	 * wasting too much time in case there are lots of short match
 | 
			
		||||
	 * candidates. On the other hand, stopping the search before all
 | 
			
		||||
	 * candidates have been checked can reduce compression ratio.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Setting depth to zero tells liblzma to use an automatic default
 | 
			
		||||
	 * value, that depends on the selected match finder and nice_len.
 | 
			
		||||
	 * The default is in the range [4, 200] or so (it may vary between
 | 
			
		||||
	 * liblzma versions).
 | 
			
		||||
	 *
 | 
			
		||||
	 * Using a bigger depth value than the default can increase
 | 
			
		||||
	 * compression ratio in some cases. There is no strict maximum value,
 | 
			
		||||
	 * but high values (thousands or millions) should be used with care:
 | 
			
		||||
	 * the encoder could remain fast enough with typical input, but
 | 
			
		||||
	 * malicious input could cause the match finder to slow down
 | 
			
		||||
	 * dramatically, possibly creating a denial of service attack.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t depth;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Reserved space to allow possible future extensions without
 | 
			
		||||
	 * breaking the ABI. You should not touch these, because the names
 | 
			
		||||
	 * of these variables may change. These are and will never be used
 | 
			
		||||
	 * with the currently supported options, so it is safe to leave these
 | 
			
		||||
	 * uninitialized.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t reserved_int1;
 | 
			
		||||
	uint32_t reserved_int2;
 | 
			
		||||
	uint32_t reserved_int3;
 | 
			
		||||
	uint32_t reserved_int4;
 | 
			
		||||
	uint32_t reserved_int5;
 | 
			
		||||
	uint32_t reserved_int6;
 | 
			
		||||
	uint32_t reserved_int7;
 | 
			
		||||
	uint32_t reserved_int8;
 | 
			
		||||
	lzma_reserved_enum reserved_enum1;
 | 
			
		||||
	lzma_reserved_enum reserved_enum2;
 | 
			
		||||
	lzma_reserved_enum reserved_enum3;
 | 
			
		||||
	lzma_reserved_enum reserved_enum4;
 | 
			
		||||
	void *reserved_ptr1;
 | 
			
		||||
	void *reserved_ptr2;
 | 
			
		||||
 | 
			
		||||
} lzma_options_lzma;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Set a compression preset to lzma_options_lzma structure
 | 
			
		||||
 *
 | 
			
		||||
 * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9
 | 
			
		||||
 * of the xz command line tool. In addition, it is possible to bitwise-or
 | 
			
		||||
 * flags to the preset. Currently only LZMA_PRESET_EXTREME is supported.
 | 
			
		||||
 * The flags are defined in container.h, because the flags are used also
 | 
			
		||||
 * with lzma_easy_encoder().
 | 
			
		||||
 *
 | 
			
		||||
 * The preset values are subject to changes between liblzma versions.
 | 
			
		||||
 *
 | 
			
		||||
 * This function is available only if LZMA1 or LZMA2 encoder has been enabled
 | 
			
		||||
 * when building liblzma.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      On success, false is returned. If the preset is not
 | 
			
		||||
 *              supported, true is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_bool) lzma_lzma_preset(
 | 
			
		||||
		lzma_options_lzma *options, uint32_t preset) lzma_nothrow;
 | 
			
		||||
							
								
								
									
										223
									
								
								node_modules/lzma-native/deps/include/lzma/stream_flags.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										223
									
								
								node_modules/lzma-native/deps/include/lzma/stream_flags.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,223 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/stream_flags.h
 | 
			
		||||
 * \brief       .xz Stream Header and Stream Footer encoder and decoder
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Size of Stream Header and Stream Footer
 | 
			
		||||
 *
 | 
			
		||||
 * Stream Header and Stream Footer have the same size and they are not
 | 
			
		||||
 * going to change even if a newer version of the .xz file format is
 | 
			
		||||
 * developed in future.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_STREAM_HEADER_SIZE 12
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Options for encoding/decoding Stream Header and Stream Footer
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Stream Flags format version
 | 
			
		||||
	 *
 | 
			
		||||
	 * To prevent API and ABI breakages if new features are needed in
 | 
			
		||||
	 * Stream Header or Stream Footer, a version number is used to
 | 
			
		||||
	 * indicate which fields in this structure are in use. For now,
 | 
			
		||||
	 * version must always be zero. With non-zero version, the
 | 
			
		||||
	 * lzma_stream_header_encode() and lzma_stream_footer_encode()
 | 
			
		||||
	 * will return LZMA_OPTIONS_ERROR.
 | 
			
		||||
	 *
 | 
			
		||||
	 * lzma_stream_header_decode() and lzma_stream_footer_decode()
 | 
			
		||||
	 * will always set this to the lowest value that supports all the
 | 
			
		||||
	 * features indicated by the Stream Flags field. The application
 | 
			
		||||
	 * must check that the version number set by the decoding functions
 | 
			
		||||
	 * is supported by the application. Otherwise it is possible that
 | 
			
		||||
	 * the application will decode the Stream incorrectly.
 | 
			
		||||
	 */
 | 
			
		||||
	uint32_t version;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Backward Size
 | 
			
		||||
	 *
 | 
			
		||||
	 * Backward Size must be a multiple of four bytes. In this Stream
 | 
			
		||||
	 * format version, Backward Size is the size of the Index field.
 | 
			
		||||
	 *
 | 
			
		||||
	 * Backward Size isn't actually part of the Stream Flags field, but
 | 
			
		||||
	 * it is convenient to include in this structure anyway. Backward
 | 
			
		||||
	 * Size is present only in the Stream Footer. There is no need to
 | 
			
		||||
	 * initialize backward_size when encoding Stream Header.
 | 
			
		||||
	 *
 | 
			
		||||
	 * lzma_stream_header_decode() always sets backward_size to
 | 
			
		||||
	 * LZMA_VLI_UNKNOWN so that it is convenient to use
 | 
			
		||||
	 * lzma_stream_flags_compare() when both Stream Header and Stream
 | 
			
		||||
	 * Footer have been decoded.
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_vli backward_size;
 | 
			
		||||
#	define LZMA_BACKWARD_SIZE_MIN 4
 | 
			
		||||
#	define LZMA_BACKWARD_SIZE_MAX (LZMA_VLI_C(1) << 34)
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * \brief       Check ID
 | 
			
		||||
	 *
 | 
			
		||||
	 * This indicates the type of the integrity check calculated from
 | 
			
		||||
	 * uncompressed data.
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_check check;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Reserved space to allow possible future extensions without
 | 
			
		||||
	 * breaking the ABI. You should not touch these, because the
 | 
			
		||||
	 * names of these variables may change.
 | 
			
		||||
	 *
 | 
			
		||||
	 * (We will never be able to use all of these since Stream Flags
 | 
			
		||||
	 * is just two bytes plus Backward Size of four bytes. But it's
 | 
			
		||||
	 * nice to have the proper types when they are needed.)
 | 
			
		||||
	 */
 | 
			
		||||
	lzma_reserved_enum reserved_enum1;
 | 
			
		||||
	lzma_reserved_enum reserved_enum2;
 | 
			
		||||
	lzma_reserved_enum reserved_enum3;
 | 
			
		||||
	lzma_reserved_enum reserved_enum4;
 | 
			
		||||
	lzma_bool reserved_bool1;
 | 
			
		||||
	lzma_bool reserved_bool2;
 | 
			
		||||
	lzma_bool reserved_bool3;
 | 
			
		||||
	lzma_bool reserved_bool4;
 | 
			
		||||
	lzma_bool reserved_bool5;
 | 
			
		||||
	lzma_bool reserved_bool6;
 | 
			
		||||
	lzma_bool reserved_bool7;
 | 
			
		||||
	lzma_bool reserved_bool8;
 | 
			
		||||
	uint32_t reserved_int1;
 | 
			
		||||
	uint32_t reserved_int2;
 | 
			
		||||
 | 
			
		||||
} lzma_stream_flags;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode Stream Header
 | 
			
		||||
 *
 | 
			
		||||
 * \param       options     Stream Header options to be encoded.
 | 
			
		||||
 *                          options->backward_size is ignored and doesn't
 | 
			
		||||
 *                          need to be initialized.
 | 
			
		||||
 * \param       out         Beginning of the output buffer of
 | 
			
		||||
 *                          LZMA_STREAM_HEADER_SIZE bytes.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: options->version is not supported by
 | 
			
		||||
 *                this liblzma version.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid options.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_header_encode(
 | 
			
		||||
		const lzma_stream_flags *options, uint8_t *out)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode Stream Footer
 | 
			
		||||
 *
 | 
			
		||||
 * \param       options     Stream Footer options to be encoded.
 | 
			
		||||
 * \param       out         Beginning of the output buffer of
 | 
			
		||||
 *                          LZMA_STREAM_HEADER_SIZE bytes.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Encoding was successful.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: options->version is not supported by
 | 
			
		||||
 *                this liblzma version.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid options.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_footer_encode(
 | 
			
		||||
		const lzma_stream_flags *options, uint8_t *out)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode Stream Header
 | 
			
		||||
 *
 | 
			
		||||
 * \param       options     Target for the decoded Stream Header options.
 | 
			
		||||
 * \param       in          Beginning of the input buffer of
 | 
			
		||||
 *                          LZMA_STREAM_HEADER_SIZE bytes.
 | 
			
		||||
 *
 | 
			
		||||
 * options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to
 | 
			
		||||
 * help comparing Stream Flags from Stream Header and Stream Footer with
 | 
			
		||||
 * lzma_stream_flags_compare().
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Decoding was successful.
 | 
			
		||||
 *              - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
 | 
			
		||||
 *                buffer cannot be Stream Header.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header
 | 
			
		||||
 *                is corrupt.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported options are present
 | 
			
		||||
 *                in the header.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        When decoding .xz files that contain multiple Streams, it may
 | 
			
		||||
 *              make sense to print "file format not recognized" only if
 | 
			
		||||
 *              decoding of the Stream Header of the _first_ Stream gives
 | 
			
		||||
 *              LZMA_FORMAT_ERROR. If non-first Stream Header gives
 | 
			
		||||
 *              LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is
 | 
			
		||||
 *              probably more appropriate.
 | 
			
		||||
 *
 | 
			
		||||
 *              For example, Stream decoder in liblzma uses LZMA_DATA_ERROR if
 | 
			
		||||
 *              LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode()
 | 
			
		||||
 *              when decoding non-first Stream.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_header_decode(
 | 
			
		||||
		lzma_stream_flags *options, const uint8_t *in)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode Stream Footer
 | 
			
		||||
 *
 | 
			
		||||
 * \param       options     Target for the decoded Stream Header options.
 | 
			
		||||
 * \param       in          Beginning of the input buffer of
 | 
			
		||||
 *                          LZMA_STREAM_HEADER_SIZE bytes.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Decoding was successful.
 | 
			
		||||
 *              - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
 | 
			
		||||
 *                buffer cannot be Stream Footer.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer
 | 
			
		||||
 *                is corrupt.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: Unsupported options are present
 | 
			
		||||
 *                in Stream Footer.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        If Stream Header was already decoded successfully, but
 | 
			
		||||
 *              decoding Stream Footer returns LZMA_FORMAT_ERROR, the
 | 
			
		||||
 *              application should probably report some other error message
 | 
			
		||||
 *              than "file format not recognized", since the file more likely
 | 
			
		||||
 *              is corrupt (possibly truncated). Stream decoder in liblzma
 | 
			
		||||
 *              uses LZMA_DATA_ERROR in this situation.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_footer_decode(
 | 
			
		||||
		lzma_stream_flags *options, const uint8_t *in)
 | 
			
		||||
		lzma_nothrow lzma_attr_warn_unused_result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Compare two lzma_stream_flags structures
 | 
			
		||||
 *
 | 
			
		||||
 * backward_size values are compared only if both are not
 | 
			
		||||
 * LZMA_VLI_UNKNOWN.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      - LZMA_OK: Both are equal. If either had backward_size set
 | 
			
		||||
 *                to LZMA_VLI_UNKNOWN, backward_size values were not
 | 
			
		||||
 *                compared or validated.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: The structures differ.
 | 
			
		||||
 *              - LZMA_OPTIONS_ERROR: version in either structure is greater
 | 
			
		||||
 *                than the maximum supported version (currently zero).
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Invalid value, e.g. invalid check or
 | 
			
		||||
 *                backward_size.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_stream_flags_compare(
 | 
			
		||||
		const lzma_stream_flags *a, const lzma_stream_flags *b)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
							
								
								
									
										121
									
								
								node_modules/lzma-native/deps/include/lzma/version.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								node_modules/lzma-native/deps/include/lzma/version.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,121 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/version.h
 | 
			
		||||
 * \brief       Version number
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Version number split into components
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VERSION_MAJOR 5
 | 
			
		||||
#define LZMA_VERSION_MINOR 2
 | 
			
		||||
#define LZMA_VERSION_PATCH 3
 | 
			
		||||
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_VERSION_COMMIT
 | 
			
		||||
#	define LZMA_VERSION_COMMIT ""
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Map symbolic stability levels to integers.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VERSION_STABILITY_ALPHA 0
 | 
			
		||||
#define LZMA_VERSION_STABILITY_BETA 1
 | 
			
		||||
#define LZMA_VERSION_STABILITY_STABLE 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Compile-time version number
 | 
			
		||||
 *
 | 
			
		||||
 * The version number is of format xyyyzzzs where
 | 
			
		||||
 *  - x = major
 | 
			
		||||
 *  - yyy = minor
 | 
			
		||||
 *  - zzz = revision
 | 
			
		||||
 *  - s indicates stability: 0 = alpha, 1 = beta, 2 = stable
 | 
			
		||||
 *
 | 
			
		||||
 * The same xyyyzzz triplet is never reused with different stability levels.
 | 
			
		||||
 * For example, if 5.1.0alpha has been released, there will never be 5.1.0beta
 | 
			
		||||
 * or 5.1.0 stable.
 | 
			
		||||
 *
 | 
			
		||||
 * \note        The version number of liblzma has nothing to with
 | 
			
		||||
 *              the version number of Igor Pavlov's LZMA SDK.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VERSION (LZMA_VERSION_MAJOR * UINT32_C(10000000) \
 | 
			
		||||
		+ LZMA_VERSION_MINOR * UINT32_C(10000) \
 | 
			
		||||
		+ LZMA_VERSION_PATCH * UINT32_C(10) \
 | 
			
		||||
		+ LZMA_VERSION_STABILITY)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Macros to construct the compile-time version string
 | 
			
		||||
 */
 | 
			
		||||
#if LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_ALPHA
 | 
			
		||||
#	define LZMA_VERSION_STABILITY_STRING "alpha"
 | 
			
		||||
#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_BETA
 | 
			
		||||
#	define LZMA_VERSION_STABILITY_STRING "beta"
 | 
			
		||||
#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_STABLE
 | 
			
		||||
#	define LZMA_VERSION_STABILITY_STRING ""
 | 
			
		||||
#else
 | 
			
		||||
#	error Incorrect LZMA_VERSION_STABILITY
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) \
 | 
			
		||||
		#major "." #minor "." #patch stability commit
 | 
			
		||||
 | 
			
		||||
#define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit) \
 | 
			
		||||
		LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Compile-time version as a string
 | 
			
		||||
 *
 | 
			
		||||
 * This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable
 | 
			
		||||
 * versions don't have any "stable" suffix). In future, a snapshot built
 | 
			
		||||
 * from source code repository may include an additional suffix, for example
 | 
			
		||||
 * "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form
 | 
			
		||||
 * in LZMA_VERSION macro.
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VERSION_STRING LZMA_VERSION_STRING_C( \
 | 
			
		||||
		LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, \
 | 
			
		||||
		LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \
 | 
			
		||||
		LZMA_VERSION_COMMIT)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* #ifndef is needed for use with windres (MinGW or Cygwin). */
 | 
			
		||||
#ifndef LZMA_H_INTERNAL_RC
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Run-time version number as an integer
 | 
			
		||||
 *
 | 
			
		||||
 * Return the value of LZMA_VERSION macro at the compile time of liblzma.
 | 
			
		||||
 * This allows the application to compare if it was built against the same,
 | 
			
		||||
 * older, or newer version of liblzma that is currently running.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint32_t) lzma_version_number(void)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Run-time version as a string
 | 
			
		||||
 *
 | 
			
		||||
 * This function may be useful if you want to display which version of
 | 
			
		||||
 * liblzma your application is currently using.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(const char *) lzma_version_string(void)
 | 
			
		||||
		lzma_nothrow lzma_attr_const;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										166
									
								
								node_modules/lzma-native/deps/include/lzma/vli.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								node_modules/lzma-native/deps/include/lzma/vli.h
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,166 @@
 | 
			
		||||
/**
 | 
			
		||||
 * \file        lzma/vli.h
 | 
			
		||||
 * \brief       Variable-length integer handling
 | 
			
		||||
 *
 | 
			
		||||
 * In the .xz format, most integers are encoded in a variable-length
 | 
			
		||||
 * representation, which is sometimes called little endian base-128 encoding.
 | 
			
		||||
 * This saves space when smaller values are more likely than bigger values.
 | 
			
		||||
 *
 | 
			
		||||
 * The encoding scheme encodes seven bits to every byte, using minimum
 | 
			
		||||
 * number of bytes required to represent the given value. Encodings that use
 | 
			
		||||
 * non-minimum number of bytes are invalid, thus every integer has exactly
 | 
			
		||||
 * one encoded representation. The maximum number of bits in a VLI is 63,
 | 
			
		||||
 * thus the vli argument must be less than or equal to UINT64_MAX / 2. You
 | 
			
		||||
 * should use LZMA_VLI_MAX for clarity.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Lasse Collin
 | 
			
		||||
 *
 | 
			
		||||
 * This file has been put into the public domain.
 | 
			
		||||
 * You can do whatever you want with this file.
 | 
			
		||||
 *
 | 
			
		||||
 * See ../lzma.h for information about liblzma as a whole.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef LZMA_H_INTERNAL
 | 
			
		||||
#	error Never include this file directly. Use <lzma.h> instead.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Maximum supported value of a variable-length integer
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VLI_MAX (UINT64_MAX / 2)
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       VLI value to denote that the value is unknown
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VLI_UNKNOWN UINT64_MAX
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Maximum supported encoded length of variable length integers
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VLI_BYTES_MAX 9
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       VLI constant suffix
 | 
			
		||||
 */
 | 
			
		||||
#define LZMA_VLI_C(n) UINT64_C(n)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Variable-length integer type
 | 
			
		||||
 *
 | 
			
		||||
 * Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is
 | 
			
		||||
 * indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the
 | 
			
		||||
 * underlaying integer type.
 | 
			
		||||
 *
 | 
			
		||||
 * lzma_vli will be uint64_t for the foreseeable future. If a bigger size
 | 
			
		||||
 * is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will
 | 
			
		||||
 * not overflow lzma_vli. This simplifies integer overflow detection.
 | 
			
		||||
 */
 | 
			
		||||
typedef uint64_t lzma_vli;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Validate a variable-length integer
 | 
			
		||||
 *
 | 
			
		||||
 * This is useful to test that application has given acceptable values
 | 
			
		||||
 * for example in the uncompressed_size and compressed_size variables.
 | 
			
		||||
 *
 | 
			
		||||
 * \return      True if the integer is representable as VLI or if it
 | 
			
		||||
 *              indicates unknown value.
 | 
			
		||||
 */
 | 
			
		||||
#define lzma_vli_is_valid(vli) \
 | 
			
		||||
	((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Encode a variable-length integer
 | 
			
		||||
 *
 | 
			
		||||
 * This function has two modes: single-call and multi-call. Single-call mode
 | 
			
		||||
 * encodes the whole integer at once; it is an error if the output buffer is
 | 
			
		||||
 * too small. Multi-call mode saves the position in *vli_pos, and thus it is
 | 
			
		||||
 * possible to continue encoding if the buffer becomes full before the whole
 | 
			
		||||
 * integer has been encoded.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       vli       Integer to be encoded
 | 
			
		||||
 * \param       vli_pos   How many VLI-encoded bytes have already been written
 | 
			
		||||
 *                        out. When starting to encode a new integer in
 | 
			
		||||
 *                        multi-call mode, *vli_pos must be set to zero.
 | 
			
		||||
 *                        To use single-call encoding, set vli_pos to NULL.
 | 
			
		||||
 * \param       out       Beginning of the output buffer
 | 
			
		||||
 * \param       out_pos   The next byte will be written to out[*out_pos].
 | 
			
		||||
 * \param       out_size  Size of the out buffer; the first byte into
 | 
			
		||||
 *                        which no data is written to is out[out_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Slightly different return values are used in multi-call and
 | 
			
		||||
 *              single-call modes.
 | 
			
		||||
 *
 | 
			
		||||
 *              Single-call (vli_pos == NULL):
 | 
			
		||||
 *              - LZMA_OK: Integer successfully encoded.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Arguments are not sane. This can be due
 | 
			
		||||
 *                to too little output space; single-call mode doesn't use
 | 
			
		||||
 *                LZMA_BUF_ERROR, since the application should have checked
 | 
			
		||||
 *                the encoded size with lzma_vli_size().
 | 
			
		||||
 *
 | 
			
		||||
 *              Multi-call (vli_pos != NULL):
 | 
			
		||||
 *              - LZMA_OK: So far all OK, but the integer is not
 | 
			
		||||
 *                completely written out yet.
 | 
			
		||||
 *              - LZMA_STREAM_END: Integer successfully encoded.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: No output space was provided.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Arguments are not sane.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_vli_encode(lzma_vli vli, size_t *vli_pos,
 | 
			
		||||
		uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Decode a variable-length integer
 | 
			
		||||
 *
 | 
			
		||||
 * Like lzma_vli_encode(), this function has single-call and multi-call modes.
 | 
			
		||||
 *
 | 
			
		||||
 * \param       vli       Pointer to decoded integer. The decoder will
 | 
			
		||||
 *                        initialize it to zero when *vli_pos == 0, so
 | 
			
		||||
 *                        application isn't required to initialize *vli.
 | 
			
		||||
 * \param       vli_pos   How many bytes have already been decoded. When
 | 
			
		||||
 *                        starting to decode a new integer in multi-call
 | 
			
		||||
 *                        mode, *vli_pos must be initialized to zero. To
 | 
			
		||||
 *                        use single-call decoding, set vli_pos to NULL.
 | 
			
		||||
 * \param       in        Beginning of the input buffer
 | 
			
		||||
 * \param       in_pos    The next byte will be read from in[*in_pos].
 | 
			
		||||
 * \param       in_size   Size of the input buffer; the first byte that
 | 
			
		||||
 *                        won't be read is in[in_size].
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Slightly different return values are used in multi-call and
 | 
			
		||||
 *              single-call modes.
 | 
			
		||||
 *
 | 
			
		||||
 *              Single-call (vli_pos == NULL):
 | 
			
		||||
 *              - LZMA_OK: Integer successfully decoded.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: Integer is corrupt. This includes hitting
 | 
			
		||||
 *                the end of the input buffer before the whole integer was
 | 
			
		||||
 *                decoded; providing no input at all will use LZMA_DATA_ERROR.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Arguments are not sane.
 | 
			
		||||
 *
 | 
			
		||||
 *              Multi-call (vli_pos != NULL):
 | 
			
		||||
 *              - LZMA_OK: So far all OK, but the integer is not
 | 
			
		||||
 *                completely decoded yet.
 | 
			
		||||
 *              - LZMA_STREAM_END: Integer successfully decoded.
 | 
			
		||||
 *              - LZMA_DATA_ERROR: Integer is corrupt.
 | 
			
		||||
 *              - LZMA_BUF_ERROR: No input was provided.
 | 
			
		||||
 *              - LZMA_PROG_ERROR: Arguments are not sane.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(lzma_ret) lzma_vli_decode(lzma_vli *vli, size_t *vli_pos,
 | 
			
		||||
		const uint8_t *in, size_t *in_pos, size_t in_size)
 | 
			
		||||
		lzma_nothrow;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief       Get the number of bytes required to encode a VLI
 | 
			
		||||
 *
 | 
			
		||||
 * \return      Number of bytes on success (1-9). If vli isn't valid,
 | 
			
		||||
 *              zero is returned.
 | 
			
		||||
 */
 | 
			
		||||
extern LZMA_API(uint32_t) lzma_vli_size(lzma_vli vli)
 | 
			
		||||
		lzma_nothrow lzma_attr_pure;
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/xz-5.2.3-windows.7z.sig
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/xz-5.2.3-windows.7z.sig
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/xz-5.2.3.tar.bz2
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/xz-5.2.3.tar.bz2
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/xz-5.2.3.tar.bz2.sig
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								node_modules/lzma-native/deps/xz-5.2.3.tar.bz2.sig
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										597
									
								
								node_modules/lzma-native/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										597
									
								
								node_modules/lzma-native/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,597 @@
 | 
			
		||||
(function() {
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var stream = require('readable-stream');
 | 
			
		||||
var assert = require('assert');
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
var util = require('util');
 | 
			
		||||
 | 
			
		||||
// node-pre-gyp magic
 | 
			
		||||
var nodePreGyp = require('node-pre-gyp');
 | 
			
		||||
var path = require('path');
 | 
			
		||||
var binding_path = nodePreGyp.find(path.resolve(path.join(__dirname,'./package.json')));
 | 
			
		||||
var native = require(binding_path);
 | 
			
		||||
 | 
			
		||||
Object.assign(exports, native);
 | 
			
		||||
 | 
			
		||||
// Please do not update this version except as part of a release commit.
 | 
			
		||||
exports.version = '3.0.8';
 | 
			
		||||
 | 
			
		||||
var Stream = exports.Stream;
 | 
			
		||||
 | 
			
		||||
Stream.curAsyncStreamsCount = 0;
 | 
			
		||||
 | 
			
		||||
Stream.prototype.getStream = function(options) {
 | 
			
		||||
  options = options || {};
 | 
			
		||||
 | 
			
		||||
  return new JSLzmaStream(this, options);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class JSLzmaStream extends stream.Transform {
 | 
			
		||||
  constructor(nativeStream, options) {
 | 
			
		||||
    super(options);
 | 
			
		||||
 | 
			
		||||
    this.nativeStream = nativeStream;
 | 
			
		||||
    this.synchronous = (options.synchronous || !native.asyncCodeAvailable) ? true : false;
 | 
			
		||||
    this.chunkCallbacks = [];
 | 
			
		||||
 | 
			
		||||
    this.totalIn_ = 0;
 | 
			
		||||
    this.totalOut_ = 0;
 | 
			
		||||
 | 
			
		||||
    this._writingLastChunk = false;
 | 
			
		||||
    this._isFinished = false;
 | 
			
		||||
 | 
			
		||||
    if (!this.synchronous) {
 | 
			
		||||
      Stream.curAsyncStreamsCount++;
 | 
			
		||||
 | 
			
		||||
      var oldCleanup = this.cleanup;
 | 
			
		||||
      var countedCleanup = false;
 | 
			
		||||
      this.cleanup = () => {
 | 
			
		||||
        if (countedCleanup === false) {
 | 
			
		||||
          Stream.curAsyncStreamsCount--;
 | 
			
		||||
          countedCleanup = true;
 | 
			
		||||
        }
 | 
			
		||||
        oldCleanup.call(this);
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // always clean up in case of error
 | 
			
		||||
    this.once('error-cleanup', this.cleanup);
 | 
			
		||||
 | 
			
		||||
    this.nativeStream.bufferHandler = (buf, processedChunks, err, totalIn, totalOut) => {
 | 
			
		||||
      if (totalIn !== null) {
 | 
			
		||||
        this.totalIn_  = totalIn;
 | 
			
		||||
        this.totalOut_ = totalOut;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      setImmediate(() => {
 | 
			
		||||
        if (err) {
 | 
			
		||||
          this.push(null);
 | 
			
		||||
          this.emit('error-cleanup', err);
 | 
			
		||||
          this.emit('error', err);
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (totalIn !== null) {
 | 
			
		||||
          this.emit('progress', {
 | 
			
		||||
            totalIn: this.totalIn_,
 | 
			
		||||
            totalOut: this.totalOut_
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (typeof processedChunks === 'number') {
 | 
			
		||||
          assert.ok(processedChunks <= this.chunkCallbacks.length);
 | 
			
		||||
 | 
			
		||||
          var chunkCallbacks = this.chunkCallbacks.splice(0, processedChunks);
 | 
			
		||||
 | 
			
		||||
          while (chunkCallbacks.length > 0)
 | 
			
		||||
            chunkCallbacks.shift().call(this);
 | 
			
		||||
        } else if (buf === null) {
 | 
			
		||||
          if (this._writingLastChunk) {
 | 
			
		||||
            this.push(null);
 | 
			
		||||
          } else {
 | 
			
		||||
            // There may be additional members in the file.
 | 
			
		||||
            // Reset and set _isFinished to tell `_flush()` that nothing
 | 
			
		||||
            // needs to be done.
 | 
			
		||||
            this._isFinished = true;
 | 
			
		||||
 | 
			
		||||
            if (this.nativeStream && this.nativeStream._restart) {
 | 
			
		||||
              this.nativeStream._restart();
 | 
			
		||||
            } else {
 | 
			
		||||
              this.push(null);
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          this.push(buf);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    if (typeof options.bufsize !== 'undefined') {
 | 
			
		||||
      this.bufsize = options.bufsize;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  get bufsize() {
 | 
			
		||||
    return this.setBufsize(null);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  set bufsize(n) {
 | 
			
		||||
    if (typeof n !== 'number' || n <= 0) {
 | 
			
		||||
      throw new TypeError('bufsize must be a positive number');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return this.setBufsize(n);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  totalIn() {
 | 
			
		||||
    return this.totalIn_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  totalOut() {
 | 
			
		||||
    return this.totalOut_;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  cleanup() {
 | 
			
		||||
    if (this.nativeStream) {
 | 
			
		||||
      this.nativeStream.resetUnderlying();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.nativeStream = null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _transform(chunk, encoding, callback) {
 | 
			
		||||
    if (!this.nativeStream) return;
 | 
			
		||||
    // Split the chunk at 'YZ'. This is used to have a clean boundary at the
 | 
			
		||||
    // end of each `.xz` file stream.
 | 
			
		||||
    var possibleEndIndex = bufferIndexOfYZ(chunk);
 | 
			
		||||
    if (possibleEndIndex !== -1) {
 | 
			
		||||
      possibleEndIndex += 2;
 | 
			
		||||
      if (possibleEndIndex !== chunk.length) {
 | 
			
		||||
        this._transform(chunk.slice(0, possibleEndIndex), encoding, () => {
 | 
			
		||||
          this._transform(chunk.slice(possibleEndIndex), encoding, callback);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (this._isFinished && chunk) {
 | 
			
		||||
      chunk = skipLeadingZeroes(chunk);
 | 
			
		||||
 | 
			
		||||
      if (chunk.length > 0) {
 | 
			
		||||
        // Real data from a second stream member in the file!
 | 
			
		||||
        this._isFinished = false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (chunk && chunk.length === 0) {
 | 
			
		||||
      return callback();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.chunkCallbacks.push(callback);
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      this.nativeStream.code(chunk, !this.synchronous);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      this.emit('error-cleanup', e);
 | 
			
		||||
      this.emit('error', e);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _writev(chunks, callback) {
 | 
			
		||||
    chunks = chunks.map(chunk => chunk.chunk);
 | 
			
		||||
    this._write(Buffer.concat(chunks), null, callback);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _flush(callback) {
 | 
			
		||||
    this._writingLastChunk = true;
 | 
			
		||||
 | 
			
		||||
    if (this._isFinished) {
 | 
			
		||||
      this.cleanup();
 | 
			
		||||
      callback(null);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this._transform(null, null, function() {
 | 
			
		||||
      this.cleanup();
 | 
			
		||||
      callback.apply(this, arguments);
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// add all methods from the native Stream
 | 
			
		||||
Object.keys(native.Stream.prototype).forEach(function(key) {
 | 
			
		||||
  JSLzmaStream.prototype[key] = function() {
 | 
			
		||||
    return this.nativeStream[key].apply(this.nativeStream, arguments);
 | 
			
		||||
  };
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Stream.prototype.rawEncoder = function(options) {
 | 
			
		||||
  return this.rawEncoder_(options.filters || []);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Stream.prototype.rawDecoder = function(options) {
 | 
			
		||||
  return this.rawDecoder_(options.filters || []);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Stream.prototype.easyEncoder = function(options) {
 | 
			
		||||
  var preset = options.preset || exports.PRESET_DEFAULT;
 | 
			
		||||
  var check = options.check || exports.CHECK_CRC32;
 | 
			
		||||
 | 
			
		||||
  if (typeof options.threads !== 'undefined' && options.threads !== null) {
 | 
			
		||||
    return this.mtEncoder_(Object.assign({
 | 
			
		||||
      preset: preset,
 | 
			
		||||
      filters: null,
 | 
			
		||||
      check: check
 | 
			
		||||
    }, options));
 | 
			
		||||
  } else {
 | 
			
		||||
    return this.easyEncoder_(preset, check);
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Stream.prototype.streamEncoder = function(options) {
 | 
			
		||||
  var filters = options.filters || [];
 | 
			
		||||
  var check = options.check || exports.CHECK_CRC32;
 | 
			
		||||
 | 
			
		||||
  if (typeof options.threads !== 'undefined' && options.threads !== null) {
 | 
			
		||||
    return this.mtEncoder_(Object.assign({
 | 
			
		||||
      preset: null,
 | 
			
		||||
      filters: filters,
 | 
			
		||||
      check: check
 | 
			
		||||
    }, options));
 | 
			
		||||
  } else {
 | 
			
		||||
    return this.streamEncoder_(filters, check);
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Stream.prototype.streamDecoder = function(options) {
 | 
			
		||||
  this._initOptions = options;
 | 
			
		||||
  this._restart = function() {
 | 
			
		||||
    this.resetUnderlying();
 | 
			
		||||
    this.streamDecoder(this._initOptions);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return this.streamDecoder_(options.memlimit || null, options.flags || 0);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Stream.prototype.autoDecoder = function(options) {
 | 
			
		||||
  this._initOptions = options;
 | 
			
		||||
  this._restart = function() {
 | 
			
		||||
    this.resetUnderlying();
 | 
			
		||||
    this.autoDecoder(this._initOptions);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return this.autoDecoder_(options.memlimit || null, options.flags || 0);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Stream.prototype.aloneDecoder = function(options) {
 | 
			
		||||
  return this.aloneDecoder_(options.memlimit || null);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* helper functions for easy creation of streams */
 | 
			
		||||
var createStream =
 | 
			
		||||
exports.createStream = function(coder, options) {
 | 
			
		||||
  if (['number', 'object'].indexOf(typeof coder) !== -1 && !options) {
 | 
			
		||||
    options = coder;
 | 
			
		||||
    coder = null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (parseInt(options) === parseInt(options))
 | 
			
		||||
    options = {preset: parseInt(options)};
 | 
			
		||||
 | 
			
		||||
  coder = coder || 'easyEncoder';
 | 
			
		||||
  options = options || {};
 | 
			
		||||
 | 
			
		||||
  var stream = new Stream();
 | 
			
		||||
  stream[coder](options);
 | 
			
		||||
 | 
			
		||||
  if (options.memlimit)
 | 
			
		||||
    stream.memlimitSet(options.memlimit);
 | 
			
		||||
 | 
			
		||||
  return stream.getStream(options);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.createCompressor = function(options) {
 | 
			
		||||
  return createStream('easyEncoder', options);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.createDecompressor = function(options) {
 | 
			
		||||
  return createStream('autoDecoder', options);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.crc32 = function(input, encoding, presetCRC32) {
 | 
			
		||||
  if (typeof encoding === 'number') {
 | 
			
		||||
    presetCRC32 = encoding;
 | 
			
		||||
    encoding = null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (typeof input === 'string')
 | 
			
		||||
    input = Buffer.from(input, encoding);
 | 
			
		||||
 | 
			
		||||
  return exports.crc32_(input, presetCRC32 || 0);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* compatibility: node-xz (https://github.com/robey/node-xz) */
 | 
			
		||||
exports.Compressor = function(preset, options) {
 | 
			
		||||
  options = Object.assign({}, options);
 | 
			
		||||
 | 
			
		||||
  if (preset)
 | 
			
		||||
    options.preset = preset;
 | 
			
		||||
 | 
			
		||||
  return createStream('easyEncoder', options);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.Decompressor = function(options) {
 | 
			
		||||
  return createStream('autoDecoder', options);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* compatibility: LZMA-JS (https://github.com/nmrugg/LZMA-JS) */
 | 
			
		||||
function singleStringCoding(stream, string, on_finish, on_progress) {
 | 
			
		||||
  on_progress = on_progress || function() {};
 | 
			
		||||
  on_finish = on_finish || function() {};
 | 
			
		||||
 | 
			
		||||
  // possibly our input is an array of byte integers
 | 
			
		||||
  // or a typed array
 | 
			
		||||
  if (!Buffer.isBuffer(string))
 | 
			
		||||
    string = Buffer.from(string);
 | 
			
		||||
 | 
			
		||||
  var deferred = {}, failed = false;
 | 
			
		||||
 | 
			
		||||
  stream.once('error', function(err) {
 | 
			
		||||
    failed = true;
 | 
			
		||||
    on_finish(null, err);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // emulate Promise.defer()
 | 
			
		||||
  deferred.promise = new Promise(function(resolve, reject) {
 | 
			
		||||
    deferred.resolve = resolve;
 | 
			
		||||
    deferred.reject = reject;
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // Since using the Promise API is optional, generating unhandled
 | 
			
		||||
  // rejections is not okay.
 | 
			
		||||
  deferred.promise.catch(noop);
 | 
			
		||||
 | 
			
		||||
  stream.once('error', function(e) {
 | 
			
		||||
    deferred.reject(e);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  var buffers = [];
 | 
			
		||||
 | 
			
		||||
  stream.on('data', function(b) {
 | 
			
		||||
    buffers.push(b);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  stream.once('end', function() {
 | 
			
		||||
    var result = Buffer.concat(buffers);
 | 
			
		||||
 | 
			
		||||
    if (!failed) {
 | 
			
		||||
      on_progress(1.0);
 | 
			
		||||
      on_finish(result);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (deferred)
 | 
			
		||||
      deferred.resolve(result);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  on_progress(0.0);
 | 
			
		||||
 | 
			
		||||
  stream.end(string);
 | 
			
		||||
 | 
			
		||||
  if (deferred)
 | 
			
		||||
    return deferred.promise;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.LZMA = function() {
 | 
			
		||||
  return {
 | 
			
		||||
    compress: function(string, mode, on_finish, on_progress) {
 | 
			
		||||
      var opt = {};
 | 
			
		||||
 | 
			
		||||
      if (parseInt(mode) === parseInt(mode) && mode >= 1 && mode <= 9)
 | 
			
		||||
        opt.preset = parseInt(mode);
 | 
			
		||||
 | 
			
		||||
      var stream = createStream('aloneEncoder', opt);
 | 
			
		||||
 | 
			
		||||
      return singleStringCoding(stream, string, on_finish, on_progress);
 | 
			
		||||
    },
 | 
			
		||||
    decompress: function(byte_array, on_finish, on_progress) {
 | 
			
		||||
      var stream = createStream('autoDecoder');
 | 
			
		||||
 | 
			
		||||
      return singleStringCoding(stream, byte_array, on_finish, on_progress);
 | 
			
		||||
    },
 | 
			
		||||
    // dummy, we don’t use web workers
 | 
			
		||||
    worker: function() { return null; }
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.compress = function(string, opt, on_finish) {
 | 
			
		||||
  if (typeof opt === 'function') {
 | 
			
		||||
    on_finish = opt;
 | 
			
		||||
    opt = {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var stream = createStream('easyEncoder', opt);
 | 
			
		||||
  return singleStringCoding(stream, string, on_finish);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.decompress = function(string, opt, on_finish) {
 | 
			
		||||
  if (typeof opt === 'function') {
 | 
			
		||||
    on_finish = opt;
 | 
			
		||||
    opt = {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var stream = createStream('autoDecoder', opt);
 | 
			
		||||
  return singleStringCoding(stream, string, on_finish);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
if (util.promisify) {
 | 
			
		||||
  exports.compress[util.promisify.custom] = exports.compress;
 | 
			
		||||
  exports.decompress[util.promisify.custom] = exports.decompress;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.isXZ = function(buf) {
 | 
			
		||||
  return buf && buf.length >= 6 &&
 | 
			
		||||
         buf[0] === 0xfd &&
 | 
			
		||||
         buf[1] === 0x37 &&
 | 
			
		||||
         buf[2] === 0x7a &&
 | 
			
		||||
         buf[3] === 0x58 &&
 | 
			
		||||
         buf[4] === 0x5a &&
 | 
			
		||||
         buf[5] === 0x00;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.parseFileIndex = function(options, callback) {
 | 
			
		||||
  if (typeof options !== 'object') {
 | 
			
		||||
    throw new TypeError('parseFileIndex needs an options object');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var p = new native.IndexParser();
 | 
			
		||||
 | 
			
		||||
  if (typeof options.fileSize !== 'number') {
 | 
			
		||||
    throw new TypeError('parseFileeIndex needs options.fileSize');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (typeof options.read !== 'function') {
 | 
			
		||||
    throw new TypeError('parseFileIndex needs a read callback');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  p.init(options.fileSize, options.memlimit || 0);
 | 
			
		||||
  p.read_cb = function(count, offset) {
 | 
			
		||||
    var inSameTick = true;
 | 
			
		||||
    var bytesRead = count;
 | 
			
		||||
 | 
			
		||||
    options.read(count, offset, function(err, buffer) {
 | 
			
		||||
      if (Buffer.isBuffer(err)) {
 | 
			
		||||
        buffer = err;
 | 
			
		||||
        err = null;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (err) {
 | 
			
		||||
        if (typeof callback === 'undefined') {
 | 
			
		||||
          throw err;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return callback(err, null);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      p.feed(buffer);
 | 
			
		||||
      bytesRead = buffer.length;
 | 
			
		||||
 | 
			
		||||
      if (inSameTick) {
 | 
			
		||||
        // The call to parse() is still on the call stack and will continue
 | 
			
		||||
        // seamlessly.
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      // Kick off parsing again.
 | 
			
		||||
      var info;
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        info = p.parse();
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        return callback(e, null);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (info !== true) {
 | 
			
		||||
        return callback(null, cleanupIndexInfo(info));
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    inSameTick = false;
 | 
			
		||||
 | 
			
		||||
    return bytesRead;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  var info;
 | 
			
		||||
  try {
 | 
			
		||||
    info = p.parse();
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    if (typeof callback !== 'undefined') {
 | 
			
		||||
      callback(e, null);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    throw e;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (info !== true) {
 | 
			
		||||
    info = cleanupIndexInfo(info);
 | 
			
		||||
    if (typeof callback !== 'undefined' && info !== true) {
 | 
			
		||||
      callback(null, info);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return info;
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.parseFileIndexFD = function(fd, callback) {
 | 
			
		||||
  return fs.fstat(fd, function(err, stats) {
 | 
			
		||||
    if (err) {
 | 
			
		||||
      return callback(err, null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    exports.parseFileIndex({
 | 
			
		||||
      fileSize: stats.size,
 | 
			
		||||
      read: function(count, offset, cb) {
 | 
			
		||||
        var buffer = Buffer.allocUnsafe(count);
 | 
			
		||||
 | 
			
		||||
        fs.read(fd, buffer, 0, count, offset, function(err, bytesRead, buffer) {
 | 
			
		||||
          if (err) {
 | 
			
		||||
            return cb(err, null);
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          if (bytesRead !== count) {
 | 
			
		||||
            return cb(new Error('Truncated file!'), null);
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          cb(null, buffer);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    }, callback);
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function cleanupIndexInfo(info) {
 | 
			
		||||
  var checkFlags = info.checks;
 | 
			
		||||
 | 
			
		||||
  info.checks = [];
 | 
			
		||||
  for (var i = 0; i < exports.CHECK_ID_MAX; i++) {
 | 
			
		||||
    if (checkFlags & (1 << i))
 | 
			
		||||
      info.checks.push(i);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return info;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function skipLeadingZeroes(buffer) {
 | 
			
		||||
  var i;
 | 
			
		||||
  for (i = 0; i < buffer.length; i++) {
 | 
			
		||||
    if (buffer[i] !== 0x00)
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return buffer.slice(i);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function bufferIndexOfYZ(chunk) {
 | 
			
		||||
  if (!chunk) {
 | 
			
		||||
    return -1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (chunk.indexOf) {
 | 
			
		||||
    return chunk.indexOf('YZ');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var i;
 | 
			
		||||
  for (i = 0; i < chunk.length - 1; i++) {
 | 
			
		||||
    if (chunk[i] === 0x59 && chunk[i+1] === 0x5a) {
 | 
			
		||||
      return i;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function noop() {}
 | 
			
		||||
 | 
			
		||||
})();
 | 
			
		||||
							
								
								
									
										6
									
								
								node_modules/lzma-native/liblzma-build.sh
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								node_modules/lzma-native/liblzma-build.sh
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
cd "$1/liblzma"
 | 
			
		||||
make
 | 
			
		||||
make install
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/liblzma-config.sh
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/liblzma-config.sh
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
SRC_TARBALL="$2"
 | 
			
		||||
TARGET_DIR="$1/liblzma"
 | 
			
		||||
 | 
			
		||||
mkdir -p "$TARGET_DIR"
 | 
			
		||||
cd "$TARGET_DIR"
 | 
			
		||||
 | 
			
		||||
tar xvjf "$SRC_TARBALL" >node_liblzma_config.log 2>&1 
 | 
			
		||||
 | 
			
		||||
export CFLAGS="-fPIC $CFLAGS"
 | 
			
		||||
sh xz-*/configure --enable-static --disable-shared --disable-scripts --disable-lzmainfo \
 | 
			
		||||
	--disable-lzma-links --disable-lzmadec --disable-xzdec --disable-xz --disable-rpath \
 | 
			
		||||
	--prefix="$TARGET_DIR/build" CFLAGS="$CFLAGS" >>node_liblzma_config.log 2>&1 
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/detect-libc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/detect-libc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../detect-libc/bin/detect-libc.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../detect-libc/bin/detect-libc.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/detect-libc.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/detect-libc.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\detect-libc\bin\detect-libc.js" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\detect-libc\bin\detect-libc.js" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/mkdirp
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/mkdirp
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../mkdirp/bin/cmd.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../mkdirp/bin/cmd.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/mkdirp.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/mkdirp.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\mkdirp\bin\cmd.js" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\mkdirp\bin\cmd.js" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/node-pre-gyp
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/node-pre-gyp
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../node-pre-gyp/bin/node-pre-gyp" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../node-pre-gyp/bin/node-pre-gyp" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/node-pre-gyp.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/node-pre-gyp.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\node-pre-gyp\bin\node-pre-gyp" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\node-pre-gyp\bin\node-pre-gyp" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/nopt
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/nopt
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../nopt/bin/nopt.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../nopt/bin/nopt.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/nopt.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/nopt.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\nopt\bin\nopt.js" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\nopt\bin\nopt.js" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/rc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/rc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../rc/cli.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../rc/cli.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/rc.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/rc.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\rc\cli.js" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\rc\cli.js" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/rimraf
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/rimraf
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../rimraf/bin.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../rimraf/bin.js" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/rimraf.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/rimraf.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\rimraf\bin.js" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\rimraf\bin.js" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/semver
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/semver
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../semver/bin/semver" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../semver/bin/semver" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/semver.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/semver.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\semver\bin\semver" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\semver\bin\semver" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-conv
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-conv
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../sshpk/bin/sshpk-conv" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../sshpk/bin/sshpk-conv" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-conv.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-conv.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\sshpk\bin\sshpk-conv" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\sshpk\bin\sshpk-conv" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-sign
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-sign
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../sshpk/bin/sshpk-sign" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../sshpk/bin/sshpk-sign" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-sign.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-sign.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\sshpk\bin\sshpk-sign" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\sshpk\bin\sshpk-sign" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-verify
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-verify
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../sshpk/bin/sshpk-verify" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../sshpk/bin/sshpk-verify" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-verify.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/sshpk-verify.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\sshpk\bin\sshpk-verify" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\sshpk\bin\sshpk-verify" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/uuid
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/lzma-native/node_modules/.bin/uuid
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 | 
			
		||||
 | 
			
		||||
case `uname` in
 | 
			
		||||
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -x "$basedir/node" ]; then
 | 
			
		||||
  "$basedir/node"  "$basedir/../uuid/bin/uuid" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
else 
 | 
			
		||||
  node  "$basedir/../uuid/bin/uuid" "$@"
 | 
			
		||||
  ret=$?
 | 
			
		||||
fi
 | 
			
		||||
exit $ret
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/uuid.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/lzma-native/node_modules/.bin/uuid.cmd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
@IF EXIST "%~dp0\node.exe" (
 | 
			
		||||
  "%~dp0\node.exe"  "%~dp0\..\uuid\bin\uuid" %*
 | 
			
		||||
) ELSE (
 | 
			
		||||
  @SETLOCAL
 | 
			
		||||
  @SET PATHEXT=%PATHEXT:;.JS;=;%
 | 
			
		||||
  node  "%~dp0\..\uuid\bin\uuid" %*
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										46
									
								
								node_modules/lzma-native/node_modules/abbrev/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								node_modules/lzma-native/node_modules/abbrev/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
This software is dual-licensed under the ISC and MIT licenses.
 | 
			
		||||
You may use this software under EITHER of the following licenses.
 | 
			
		||||
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
The ISC License
 | 
			
		||||
 | 
			
		||||
Copyright (c) Isaac Z. Schlueter and Contributors
 | 
			
		||||
 | 
			
		||||
Permission to use, copy, modify, and/or distribute this software for any
 | 
			
		||||
purpose with or without fee is hereby granted, provided that the above
 | 
			
		||||
copyright notice and this permission notice appear in all copies.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
			
		||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
			
		||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
			
		||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
			
		||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
 | 
			
		||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
			
		||||
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
Copyright Isaac Z. Schlueter and Contributors
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person
 | 
			
		||||
obtaining a copy of this software and associated documentation
 | 
			
		||||
files (the "Software"), to deal in the Software without
 | 
			
		||||
restriction, including without limitation the rights to use,
 | 
			
		||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the
 | 
			
		||||
Software is furnished to do so, subject to the following
 | 
			
		||||
conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 | 
			
		||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 | 
			
		||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 | 
			
		||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 | 
			
		||||
OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										23
									
								
								node_modules/lzma-native/node_modules/abbrev/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								node_modules/lzma-native/node_modules/abbrev/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
# abbrev-js
 | 
			
		||||
 | 
			
		||||
Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
 | 
			
		||||
 | 
			
		||||
Usage:
 | 
			
		||||
 | 
			
		||||
    var abbrev = require("abbrev");
 | 
			
		||||
    abbrev("foo", "fool", "folding", "flop");
 | 
			
		||||
    
 | 
			
		||||
    // returns:
 | 
			
		||||
    { fl: 'flop'
 | 
			
		||||
    , flo: 'flop'
 | 
			
		||||
    , flop: 'flop'
 | 
			
		||||
    , fol: 'folding'
 | 
			
		||||
    , fold: 'folding'
 | 
			
		||||
    , foldi: 'folding'
 | 
			
		||||
    , foldin: 'folding'
 | 
			
		||||
    , folding: 'folding'
 | 
			
		||||
    , foo: 'foo'
 | 
			
		||||
    , fool: 'fool'
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.
 | 
			
		||||
							
								
								
									
										61
									
								
								node_modules/lzma-native/node_modules/abbrev/abbrev.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								node_modules/lzma-native/node_modules/abbrev/abbrev.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
module.exports = exports = abbrev.abbrev = abbrev
 | 
			
		||||
 | 
			
		||||
abbrev.monkeyPatch = monkeyPatch
 | 
			
		||||
 | 
			
		||||
function monkeyPatch () {
 | 
			
		||||
  Object.defineProperty(Array.prototype, 'abbrev', {
 | 
			
		||||
    value: function () { return abbrev(this) },
 | 
			
		||||
    enumerable: false, configurable: true, writable: true
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  Object.defineProperty(Object.prototype, 'abbrev', {
 | 
			
		||||
    value: function () { return abbrev(Object.keys(this)) },
 | 
			
		||||
    enumerable: false, configurable: true, writable: true
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function abbrev (list) {
 | 
			
		||||
  if (arguments.length !== 1 || !Array.isArray(list)) {
 | 
			
		||||
    list = Array.prototype.slice.call(arguments, 0)
 | 
			
		||||
  }
 | 
			
		||||
  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
 | 
			
		||||
    args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // sort them lexicographically, so that they're next to their nearest kin
 | 
			
		||||
  args = args.sort(lexSort)
 | 
			
		||||
 | 
			
		||||
  // walk through each, seeing how much it has in common with the next and previous
 | 
			
		||||
  var abbrevs = {}
 | 
			
		||||
    , prev = ""
 | 
			
		||||
  for (var i = 0, l = args.length ; i < l ; i ++) {
 | 
			
		||||
    var current = args[i]
 | 
			
		||||
      , next = args[i + 1] || ""
 | 
			
		||||
      , nextMatches = true
 | 
			
		||||
      , prevMatches = true
 | 
			
		||||
    if (current === next) continue
 | 
			
		||||
    for (var j = 0, cl = current.length ; j < cl ; j ++) {
 | 
			
		||||
      var curChar = current.charAt(j)
 | 
			
		||||
      nextMatches = nextMatches && curChar === next.charAt(j)
 | 
			
		||||
      prevMatches = prevMatches && curChar === prev.charAt(j)
 | 
			
		||||
      if (!nextMatches && !prevMatches) {
 | 
			
		||||
        j ++
 | 
			
		||||
        break
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    prev = current
 | 
			
		||||
    if (j === cl) {
 | 
			
		||||
      abbrevs[current] = current
 | 
			
		||||
      continue
 | 
			
		||||
    }
 | 
			
		||||
    for (var a = current.substr(0, j) ; j <= cl ; j ++) {
 | 
			
		||||
      abbrevs[a] = current
 | 
			
		||||
      a += current.charAt(j)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return abbrevs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function lexSort (a, b) {
 | 
			
		||||
  return a === b ? 0 : a > b ? 1 : -1
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										56
									
								
								node_modules/lzma-native/node_modules/abbrev/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								node_modules/lzma-native/node_modules/abbrev/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
{
 | 
			
		||||
  "_from": "abbrev@1",
 | 
			
		||||
  "_id": "abbrev@1.1.1",
 | 
			
		||||
  "_inBundle": true,
 | 
			
		||||
  "_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
 | 
			
		||||
  "_location": "/lzma-native/abbrev",
 | 
			
		||||
  "_phantomChildren": {},
 | 
			
		||||
  "_requested": {
 | 
			
		||||
    "type": "range",
 | 
			
		||||
    "registry": true,
 | 
			
		||||
    "raw": "abbrev@1",
 | 
			
		||||
    "name": "abbrev",
 | 
			
		||||
    "escapedName": "abbrev",
 | 
			
		||||
    "rawSpec": "1",
 | 
			
		||||
    "saveSpec": null,
 | 
			
		||||
    "fetchSpec": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "_requiredBy": [
 | 
			
		||||
    "/lzma-native/nopt"
 | 
			
		||||
  ],
 | 
			
		||||
  "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
 | 
			
		||||
  "_shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8",
 | 
			
		||||
  "_spec": "abbrev@1",
 | 
			
		||||
  "_where": "/home/sqrt/src/lzma-native/node_modules/nopt",
 | 
			
		||||
  "author": {
 | 
			
		||||
    "name": "Isaac Z. Schlueter",
 | 
			
		||||
    "email": "i@izs.me"
 | 
			
		||||
  },
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "https://github.com/isaacs/abbrev-js/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "bundleDependencies": false,
 | 
			
		||||
  "deprecated": false,
 | 
			
		||||
  "description": "Like ruby's abbrev module, but in js",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "tap": "^10.1"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "abbrev.js"
 | 
			
		||||
  ],
 | 
			
		||||
  "homepage": "https://github.com/isaacs/abbrev-js#readme",
 | 
			
		||||
  "license": "ISC",
 | 
			
		||||
  "main": "abbrev.js",
 | 
			
		||||
  "name": "abbrev",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git+ssh://git@github.com/isaacs/abbrev-js.git"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "postpublish": "git push origin --all; git push origin --tags",
 | 
			
		||||
    "postversion": "npm publish",
 | 
			
		||||
    "preversion": "npm test",
 | 
			
		||||
    "test": "tap test.js --100"
 | 
			
		||||
  },
 | 
			
		||||
  "version": "1.1.1"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								node_modules/lzma-native/node_modules/ajv/.tonic_example.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								node_modules/lzma-native/node_modules/ajv/.tonic_example.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
var Ajv = require('ajv');
 | 
			
		||||
var ajv = Ajv({allErrors: true});
 | 
			
		||||
 | 
			
		||||
var schema = {
 | 
			
		||||
  "properties": {
 | 
			
		||||
    "foo": { "type": "string" },
 | 
			
		||||
    "bar": { "type": "number", "maximum": 3 }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var validate = ajv.compile(schema);
 | 
			
		||||
 | 
			
		||||
test({"foo": "abc", "bar": 2});
 | 
			
		||||
test({"foo": 2, "bar": 4});
 | 
			
		||||
 | 
			
		||||
function test(data) {
 | 
			
		||||
  var valid = validate(data);
 | 
			
		||||
  if (valid) console.log('Valid!');
 | 
			
		||||
  else console.log('Invalid: ' + ajv.errorsText(validate.errors));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								node_modules/lzma-native/node_modules/ajv/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/lzma-native/node_modules/ajv/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2015 Evgeny Poberezkin
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1213
									
								
								node_modules/lzma-native/node_modules/ajv/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1213
									
								
								node_modules/lzma-native/node_modules/ajv/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										8023
									
								
								node_modules/lzma-native/node_modules/ajv/dist/ajv.bundle.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8023
									
								
								node_modules/lzma-native/node_modules/ajv/dist/ajv.bundle.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6
									
								
								node_modules/lzma-native/node_modules/ajv/dist/ajv.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								node_modules/lzma-native/node_modules/ajv/dist/ajv.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/lzma-native/node_modules/ajv/dist/ajv.min.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/lzma-native/node_modules/ajv/dist/ajv.min.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8
									
								
								node_modules/lzma-native/node_modules/ajv/dist/nodent.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								node_modules/lzma-native/node_modules/ajv/dist/nodent.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										32
									
								
								node_modules/lzma-native/node_modules/ajv/dist/regenerator.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								node_modules/lzma-native/node_modules/ajv/dist/regenerator.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										284
									
								
								node_modules/lzma-native/node_modules/ajv/lib/ajv.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										284
									
								
								node_modules/lzma-native/node_modules/ajv/lib/ajv.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,284 @@
 | 
			
		||||
declare var ajv: { 
 | 
			
		||||
  (options?: ajv.Options): ajv.Ajv;
 | 
			
		||||
  new (options?: ajv.Options): ajv.Ajv;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare namespace ajv {
 | 
			
		||||
  interface Ajv {
 | 
			
		||||
    /**
 | 
			
		||||
    * Validate data using schema
 | 
			
		||||
    * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.
 | 
			
		||||
    * @param  {String|Object} schemaKeyRef key, ref or schema object
 | 
			
		||||
    * @param  {Any} data to be validated
 | 
			
		||||
    * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
 | 
			
		||||
    */
 | 
			
		||||
    validate(schemaKeyRef: Object | string, data: any): boolean;
 | 
			
		||||
    /**
 | 
			
		||||
    * Create validating function for passed schema.
 | 
			
		||||
    * @param  {Object} schema schema object
 | 
			
		||||
    * @return {Function} validating function
 | 
			
		||||
    */
 | 
			
		||||
    compile(schema: Object): ValidateFunction;
 | 
			
		||||
    /**
 | 
			
		||||
    * Creates validating function for passed schema with asynchronous loading of missing schemas.
 | 
			
		||||
    * `loadSchema` option should be a function that accepts schema uri and node-style callback.
 | 
			
		||||
    * @this  Ajv
 | 
			
		||||
    * @param {Object}   schema schema object
 | 
			
		||||
    * @param {Function} callback node-style callback, it is always called with 2 parameters: error (or null) and validating function.
 | 
			
		||||
    */
 | 
			
		||||
    compileAsync(schema: Object, callback: (err: Error, validate: ValidateFunction) => any): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Adds schema to the instance.
 | 
			
		||||
    * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
 | 
			
		||||
    * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
 | 
			
		||||
    */
 | 
			
		||||
    addSchema(schema: Array<Object> | Object, key?: string): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Add schema that will be used to validate other schemas
 | 
			
		||||
    * options in META_IGNORE_OPTIONS are alway set to false
 | 
			
		||||
    * @param {Object} schema schema object
 | 
			
		||||
    * @param {String} key optional schema key
 | 
			
		||||
    */
 | 
			
		||||
    addMetaSchema(schema: Object, key?: string): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Validate schema
 | 
			
		||||
    * @param {Object} schema schema to validate
 | 
			
		||||
    * @return {Boolean} true if schema is valid
 | 
			
		||||
    */
 | 
			
		||||
    validateSchema(schema: Object): boolean;
 | 
			
		||||
    /**
 | 
			
		||||
    * Get compiled schema from the instance by `key` or `ref`.
 | 
			
		||||
    * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
 | 
			
		||||
    * @return {Function} schema validating function (with property `schema`).
 | 
			
		||||
    */
 | 
			
		||||
    getSchema(keyRef: string): ValidateFunction;
 | 
			
		||||
    /**
 | 
			
		||||
    * Remove cached schema(s).
 | 
			
		||||
    * If no parameter is passed all schemas but meta-schemas are removed.
 | 
			
		||||
    * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
 | 
			
		||||
    * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
 | 
			
		||||
    * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
 | 
			
		||||
    */
 | 
			
		||||
    removeSchema(schemaKeyRef?: Object | string | RegExp): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Add custom format
 | 
			
		||||
    * @param {String} name format name
 | 
			
		||||
    * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
 | 
			
		||||
    */
 | 
			
		||||
    addFormat(name: string, format: FormatValidator | FormatDefinition): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Define custom keyword
 | 
			
		||||
    * @this  Ajv
 | 
			
		||||
    * @param {String} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords.
 | 
			
		||||
    * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
 | 
			
		||||
    */
 | 
			
		||||
    addKeyword(keyword: string, definition: KeywordDefinition): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Get keyword definition
 | 
			
		||||
    * @this  Ajv
 | 
			
		||||
    * @param {String} keyword pre-defined or custom keyword.
 | 
			
		||||
    * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
 | 
			
		||||
    */
 | 
			
		||||
    getKeyword(keyword: string): Object | boolean;
 | 
			
		||||
    /**
 | 
			
		||||
    * Remove keyword
 | 
			
		||||
    * @this  Ajv
 | 
			
		||||
    * @param {String} keyword pre-defined or custom keyword.
 | 
			
		||||
    */
 | 
			
		||||
    removeKeyword(keyword: string): void;
 | 
			
		||||
    /**
 | 
			
		||||
    * Convert array of error message objects to string
 | 
			
		||||
    * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.
 | 
			
		||||
    * @param  {Object} options optional options with properties `separator` and `dataVar`.
 | 
			
		||||
    * @return {String} human readable string with all errors descriptions
 | 
			
		||||
    */
 | 
			
		||||
    errorsText(errors?: Array<ErrorObject>, options?: ErrorsTextOptions): string;
 | 
			
		||||
    errors?: Array<ErrorObject>;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface Thenable <R> {
 | 
			
		||||
    then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface ValidateFunction {
 | 
			
		||||
    (
 | 
			
		||||
      data: any,
 | 
			
		||||
      dataPath?: string,
 | 
			
		||||
      parentData?: Object | Array<any>,
 | 
			
		||||
      parentDataProperty?: string | number,
 | 
			
		||||
      rootData?: Object | Array<any>
 | 
			
		||||
    ): boolean | Thenable<boolean>;
 | 
			
		||||
    errors?: Array<ErrorObject>;
 | 
			
		||||
    schema?: Object;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface Options {
 | 
			
		||||
    v5?: boolean;
 | 
			
		||||
    allErrors?: boolean;
 | 
			
		||||
    verbose?: boolean;
 | 
			
		||||
    jsonPointers?: boolean;
 | 
			
		||||
    uniqueItems?: boolean;
 | 
			
		||||
    unicode?: boolean;
 | 
			
		||||
    format?: string;
 | 
			
		||||
    formats?: Object;
 | 
			
		||||
    unknownFormats?: boolean | string | Array<string>;
 | 
			
		||||
    schemas?: Array<Object> | Object;
 | 
			
		||||
    ownProperties?: boolean;
 | 
			
		||||
    missingRefs?: boolean | string;
 | 
			
		||||
    extendRefs?: boolean | string;
 | 
			
		||||
    loadSchema?: (uri: string, cb: (err: Error, schema: Object) => any) => any;
 | 
			
		||||
    removeAdditional?: boolean | string;
 | 
			
		||||
    useDefaults?: boolean | string;
 | 
			
		||||
    coerceTypes?: boolean | string;
 | 
			
		||||
    async?: boolean | string;
 | 
			
		||||
    transpile?: string | ((code: string) => string);
 | 
			
		||||
    meta?: boolean | Object;
 | 
			
		||||
    validateSchema?: boolean | string;
 | 
			
		||||
    addUsedSchema?: boolean;
 | 
			
		||||
    inlineRefs?: boolean | number;
 | 
			
		||||
    passContext?: boolean;
 | 
			
		||||
    loopRequired?: number;
 | 
			
		||||
    multipleOfPrecision?: number;
 | 
			
		||||
    errorDataPath?: string;
 | 
			
		||||
    messages?: boolean;
 | 
			
		||||
    sourceCode?: boolean;
 | 
			
		||||
    beautify?: boolean | Object;
 | 
			
		||||
    cache?: Object;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  type FormatValidator = string | RegExp | ((data: string) => boolean);
 | 
			
		||||
 | 
			
		||||
  interface FormatDefinition {
 | 
			
		||||
    validate: FormatValidator;
 | 
			
		||||
    compare: (data1: string, data2: string) => number;
 | 
			
		||||
    async?: boolean;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface KeywordDefinition {
 | 
			
		||||
    type?: string | Array<string>;
 | 
			
		||||
    async?: boolean;
 | 
			
		||||
    errors?: boolean | string;
 | 
			
		||||
    // schema: false makes validate not to expect schema (ValidateFunction)
 | 
			
		||||
    schema?: boolean;
 | 
			
		||||
    modifying?: boolean;
 | 
			
		||||
    valid?: boolean;
 | 
			
		||||
    // one and only one of the following properties should be present
 | 
			
		||||
    validate?: ValidateFunction | SchemaValidateFunction;
 | 
			
		||||
    compile?: (schema: Object, parentSchema: Object) => ValidateFunction;
 | 
			
		||||
    macro?: (schema: Object, parentSchema: Object) => Object;
 | 
			
		||||
    inline?: (it: Object, keyword: string, schema: Object, parentSchema: Object) => string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface SchemaValidateFunction {
 | 
			
		||||
    (
 | 
			
		||||
      schema: Object,
 | 
			
		||||
      data: any,
 | 
			
		||||
      parentSchema?: Object,
 | 
			
		||||
      dataPath?: string,
 | 
			
		||||
      parentData?: Object | Array<any>,
 | 
			
		||||
      parentDataProperty?: string | number
 | 
			
		||||
    ): boolean | Thenable<boolean>;
 | 
			
		||||
    errors?: Array<ErrorObject>;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface ErrorsTextOptions {
 | 
			
		||||
    separator?: string;
 | 
			
		||||
    dataVar?: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface ErrorObject {
 | 
			
		||||
    keyword: string;
 | 
			
		||||
    dataPath: string;
 | 
			
		||||
    schemaPath: string;
 | 
			
		||||
    params: ErrorParameters;
 | 
			
		||||
    // Excluded if messages set to false.
 | 
			
		||||
    message?: string;
 | 
			
		||||
    // These are added with the `verbose` option.
 | 
			
		||||
    schema?: Object;
 | 
			
		||||
    parentSchema?: Object;
 | 
			
		||||
    data?: any;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |
 | 
			
		||||
                          DependenciesParams | FormatParams | ComparisonParams |
 | 
			
		||||
                          MultipleOfParams | PatternParams | RequiredParams |
 | 
			
		||||
                          TypeParams | UniqueItemsParams | CustomParams |
 | 
			
		||||
                          PatternGroupsParams | PatternRequiredParams |
 | 
			
		||||
                          SwitchParams | NoParams | EnumParams;
 | 
			
		||||
 | 
			
		||||
  interface RefParams {
 | 
			
		||||
    ref: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface LimitParams {
 | 
			
		||||
    limit: number;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface AdditionalPropertiesParams {
 | 
			
		||||
    additionalProperty: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface DependenciesParams {
 | 
			
		||||
    property: string;
 | 
			
		||||
    missingProperty: string;
 | 
			
		||||
    depsCount: number;
 | 
			
		||||
    deps: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface FormatParams {
 | 
			
		||||
    format: string
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface ComparisonParams {
 | 
			
		||||
    comparison: string;
 | 
			
		||||
    limit: number | string;
 | 
			
		||||
    exclusive: boolean;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface MultipleOfParams {
 | 
			
		||||
    multipleOf: number;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface PatternParams {
 | 
			
		||||
    pattern: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface RequiredParams {
 | 
			
		||||
    missingProperty: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface TypeParams {
 | 
			
		||||
    type: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface UniqueItemsParams {
 | 
			
		||||
    i: number;
 | 
			
		||||
    j: number;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface CustomParams {
 | 
			
		||||
    keyword: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface PatternGroupsParams {
 | 
			
		||||
    reason: string;
 | 
			
		||||
    limit: number;
 | 
			
		||||
    pattern: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface PatternRequiredParams {
 | 
			
		||||
    missingPattern: string;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface SwitchParams {
 | 
			
		||||
    caseIndex: number;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  interface NoParams {}
 | 
			
		||||
 | 
			
		||||
  interface EnumParams {
 | 
			
		||||
    allowedValues: Array<any>;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export = ajv;
 | 
			
		||||
							
								
								
									
										420
									
								
								node_modules/lzma-native/node_modules/ajv/lib/ajv.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										420
									
								
								node_modules/lzma-native/node_modules/ajv/lib/ajv.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,420 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var compileSchema = require('./compile')
 | 
			
		||||
  , resolve = require('./compile/resolve')
 | 
			
		||||
  , Cache = require('./cache')
 | 
			
		||||
  , SchemaObject = require('./compile/schema_obj')
 | 
			
		||||
  , stableStringify = require('json-stable-stringify')
 | 
			
		||||
  , formats = require('./compile/formats')
 | 
			
		||||
  , rules = require('./compile/rules')
 | 
			
		||||
  , v5 = require('./v5')
 | 
			
		||||
  , util = require('./compile/util')
 | 
			
		||||
  , async = require('./async')
 | 
			
		||||
  , co = require('co');
 | 
			
		||||
 | 
			
		||||
module.exports = Ajv;
 | 
			
		||||
 | 
			
		||||
Ajv.prototype.compileAsync = async.compile;
 | 
			
		||||
 | 
			
		||||
var customKeyword = require('./keyword');
 | 
			
		||||
Ajv.prototype.addKeyword = customKeyword.add;
 | 
			
		||||
Ajv.prototype.getKeyword = customKeyword.get;
 | 
			
		||||
Ajv.prototype.removeKeyword = customKeyword.remove;
 | 
			
		||||
Ajv.ValidationError = require('./compile/validation_error');
 | 
			
		||||
 | 
			
		||||
var META_SCHEMA_ID = 'http://json-schema.org/draft-04/schema';
 | 
			
		||||
var SCHEMA_URI_FORMAT = /^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i;
 | 
			
		||||
function SCHEMA_URI_FORMAT_FUNC(str) {
 | 
			
		||||
  return SCHEMA_URI_FORMAT.test(str);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes' ];
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates validator instance.
 | 
			
		||||
 * Usage: `Ajv(opts)`
 | 
			
		||||
 * @param {Object} opts optional options
 | 
			
		||||
 * @return {Object} ajv instance
 | 
			
		||||
 */
 | 
			
		||||
function Ajv(opts) {
 | 
			
		||||
  if (!(this instanceof Ajv)) return new Ajv(opts);
 | 
			
		||||
  var self = this;
 | 
			
		||||
 | 
			
		||||
  opts = this._opts = util.copy(opts) || {};
 | 
			
		||||
  this._schemas = {};
 | 
			
		||||
  this._refs = {};
 | 
			
		||||
  this._fragments = {};
 | 
			
		||||
  this._formats = formats(opts.format);
 | 
			
		||||
  this._cache = opts.cache || new Cache;
 | 
			
		||||
  this._loadingSchemas = {};
 | 
			
		||||
  this._compilations = [];
 | 
			
		||||
  this.RULES = rules();
 | 
			
		||||
 | 
			
		||||
  // this is done on purpose, so that methods are bound to the instance
 | 
			
		||||
  // (without using bind) so that they can be used without the instance
 | 
			
		||||
  this.validate = validate;
 | 
			
		||||
  this.compile = compile;
 | 
			
		||||
  this.addSchema = addSchema;
 | 
			
		||||
  this.addMetaSchema = addMetaSchema;
 | 
			
		||||
  this.validateSchema = validateSchema;
 | 
			
		||||
  this.getSchema = getSchema;
 | 
			
		||||
  this.removeSchema = removeSchema;
 | 
			
		||||
  this.addFormat = addFormat;
 | 
			
		||||
  this.errorsText = errorsText;
 | 
			
		||||
 | 
			
		||||
  this._addSchema = _addSchema;
 | 
			
		||||
  this._compile = _compile;
 | 
			
		||||
 | 
			
		||||
  opts.loopRequired = opts.loopRequired || Infinity;
 | 
			
		||||
  if (opts.async || opts.transpile) async.setup(opts);
 | 
			
		||||
  if (opts.beautify === true) opts.beautify = { indent_size: 2 };
 | 
			
		||||
  if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;
 | 
			
		||||
  this._metaOpts = getMetaSchemaOptions();
 | 
			
		||||
 | 
			
		||||
  if (opts.formats) addInitialFormats();
 | 
			
		||||
  addDraft4MetaSchema();
 | 
			
		||||
  if (opts.v5) v5.enable(this);
 | 
			
		||||
  if (typeof opts.meta == 'object') addMetaSchema(opts.meta);
 | 
			
		||||
  addInitialSchemas();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Validate data using schema
 | 
			
		||||
   * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.
 | 
			
		||||
   * @param  {String|Object} schemaKeyRef key, ref or schema object
 | 
			
		||||
   * @param  {Any} data to be validated
 | 
			
		||||
   * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
 | 
			
		||||
   */
 | 
			
		||||
  function validate(schemaKeyRef, data) {
 | 
			
		||||
    var v;
 | 
			
		||||
    if (typeof schemaKeyRef == 'string') {
 | 
			
		||||
      v = getSchema(schemaKeyRef);
 | 
			
		||||
      if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"');
 | 
			
		||||
    } else {
 | 
			
		||||
      var schemaObj = _addSchema(schemaKeyRef);
 | 
			
		||||
      v = schemaObj.validate || _compile(schemaObj);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var valid = v(data);
 | 
			
		||||
    if (v.$async === true)
 | 
			
		||||
      return self._opts.async == '*' ? co(valid) : valid;
 | 
			
		||||
    self.errors = v.errors;
 | 
			
		||||
    return valid;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Create validating function for passed schema.
 | 
			
		||||
   * @param  {Object} schema schema object
 | 
			
		||||
   * @param  {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.
 | 
			
		||||
   * @return {Function} validating function
 | 
			
		||||
   */
 | 
			
		||||
  function compile(schema, _meta) {
 | 
			
		||||
    var schemaObj = _addSchema(schema, undefined, _meta);
 | 
			
		||||
    return schemaObj.validate || _compile(schemaObj);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Adds schema to the instance.
 | 
			
		||||
   * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
 | 
			
		||||
   * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
 | 
			
		||||
   * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.
 | 
			
		||||
   * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
 | 
			
		||||
   */
 | 
			
		||||
  function addSchema(schema, key, _skipValidation, _meta) {
 | 
			
		||||
    if (Array.isArray(schema)){
 | 
			
		||||
      for (var i=0; i<schema.length; i++) addSchema(schema[i], undefined, _skipValidation, _meta);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    // can key/id have # inside?
 | 
			
		||||
    key = resolve.normalizeId(key || schema.id);
 | 
			
		||||
    checkUnique(key);
 | 
			
		||||
    self._schemas[key] = _addSchema(schema, _skipValidation, _meta, true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Add schema that will be used to validate other schemas
 | 
			
		||||
   * options in META_IGNORE_OPTIONS are alway set to false
 | 
			
		||||
   * @param {Object} schema schema object
 | 
			
		||||
   * @param {String} key optional schema key
 | 
			
		||||
   * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
 | 
			
		||||
   */
 | 
			
		||||
  function addMetaSchema(schema, key, skipValidation) {
 | 
			
		||||
    addSchema(schema, key, skipValidation, true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Validate schema
 | 
			
		||||
   * @param {Object} schema schema to validate
 | 
			
		||||
   * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid
 | 
			
		||||
   * @return {Boolean} true if schema is valid
 | 
			
		||||
   */
 | 
			
		||||
  function validateSchema(schema, throwOrLogError) {
 | 
			
		||||
    var $schema = schema.$schema || self._opts.defaultMeta || defaultMeta();
 | 
			
		||||
    var currentUriFormat = self._formats.uri;
 | 
			
		||||
    self._formats.uri = typeof currentUriFormat == 'function'
 | 
			
		||||
                        ? SCHEMA_URI_FORMAT_FUNC
 | 
			
		||||
                        : SCHEMA_URI_FORMAT;
 | 
			
		||||
    var valid;
 | 
			
		||||
    try { valid = validate($schema, schema); }
 | 
			
		||||
    finally { self._formats.uri = currentUriFormat; }
 | 
			
		||||
    if (!valid && throwOrLogError) {
 | 
			
		||||
      var message = 'schema is invalid: ' + errorsText();
 | 
			
		||||
      if (self._opts.validateSchema == 'log') console.error(message);
 | 
			
		||||
      else throw new Error(message);
 | 
			
		||||
    }
 | 
			
		||||
    return valid;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function defaultMeta() {
 | 
			
		||||
    var meta = self._opts.meta;
 | 
			
		||||
    self._opts.defaultMeta = typeof meta == 'object'
 | 
			
		||||
                              ? meta.id || meta
 | 
			
		||||
                              : self._opts.v5
 | 
			
		||||
                                ? v5.META_SCHEMA_ID
 | 
			
		||||
                                : META_SCHEMA_ID;
 | 
			
		||||
    return self._opts.defaultMeta;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Get compiled schema from the instance by `key` or `ref`.
 | 
			
		||||
   * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
 | 
			
		||||
   * @return {Function} schema validating function (with property `schema`).
 | 
			
		||||
   */
 | 
			
		||||
  function getSchema(keyRef) {
 | 
			
		||||
    var schemaObj = _getSchemaObj(keyRef);
 | 
			
		||||
    switch (typeof schemaObj) {
 | 
			
		||||
      case 'object': return schemaObj.validate || _compile(schemaObj);
 | 
			
		||||
      case 'string': return getSchema(schemaObj);
 | 
			
		||||
      case 'undefined': return _getSchemaFragment(keyRef);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function _getSchemaFragment(ref) {
 | 
			
		||||
    var res = resolve.schema.call(self, { schema: {} }, ref);
 | 
			
		||||
    if (res) {
 | 
			
		||||
      var schema = res.schema
 | 
			
		||||
        , root = res.root
 | 
			
		||||
        , baseId = res.baseId;
 | 
			
		||||
      var v = compileSchema.call(self, schema, root, undefined, baseId);
 | 
			
		||||
      self._fragments[ref] = new SchemaObject({
 | 
			
		||||
        ref: ref,
 | 
			
		||||
        fragment: true,
 | 
			
		||||
        schema: schema,
 | 
			
		||||
        root: root,
 | 
			
		||||
        baseId: baseId,
 | 
			
		||||
        validate: v
 | 
			
		||||
      });
 | 
			
		||||
      return v;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function _getSchemaObj(keyRef) {
 | 
			
		||||
    keyRef = resolve.normalizeId(keyRef);
 | 
			
		||||
    return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Remove cached schema(s).
 | 
			
		||||
   * If no parameter is passed all schemas but meta-schemas are removed.
 | 
			
		||||
   * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
 | 
			
		||||
   * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
 | 
			
		||||
   * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
 | 
			
		||||
   */
 | 
			
		||||
  function removeSchema(schemaKeyRef) {
 | 
			
		||||
    if (schemaKeyRef instanceof RegExp) {
 | 
			
		||||
      _removeAllSchemas(self._schemas, schemaKeyRef);
 | 
			
		||||
      _removeAllSchemas(self._refs, schemaKeyRef);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    switch (typeof schemaKeyRef) {
 | 
			
		||||
      case 'undefined':
 | 
			
		||||
        _removeAllSchemas(self._schemas);
 | 
			
		||||
        _removeAllSchemas(self._refs);
 | 
			
		||||
        self._cache.clear();
 | 
			
		||||
        return;
 | 
			
		||||
      case 'string':
 | 
			
		||||
        var schemaObj = _getSchemaObj(schemaKeyRef);
 | 
			
		||||
        if (schemaObj) self._cache.del(schemaObj.jsonStr);
 | 
			
		||||
        delete self._schemas[schemaKeyRef];
 | 
			
		||||
        delete self._refs[schemaKeyRef];
 | 
			
		||||
        return;
 | 
			
		||||
      case 'object':
 | 
			
		||||
        var jsonStr = stableStringify(schemaKeyRef);
 | 
			
		||||
        self._cache.del(jsonStr);
 | 
			
		||||
        var id = schemaKeyRef.id;
 | 
			
		||||
        if (id) {
 | 
			
		||||
          id = resolve.normalizeId(id);
 | 
			
		||||
          delete self._schemas[id];
 | 
			
		||||
          delete self._refs[id];
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function _removeAllSchemas(schemas, regex) {
 | 
			
		||||
    for (var keyRef in schemas) {
 | 
			
		||||
      var schemaObj = schemas[keyRef];
 | 
			
		||||
      if (!schemaObj.meta && (!regex || regex.test(keyRef))) {
 | 
			
		||||
        self._cache.del(schemaObj.jsonStr);
 | 
			
		||||
        delete schemas[keyRef];
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function _addSchema(schema, skipValidation, meta, shouldAddSchema) {
 | 
			
		||||
    if (typeof schema != 'object') throw new Error('schema should be object');
 | 
			
		||||
    var jsonStr = stableStringify(schema);
 | 
			
		||||
    var cached = self._cache.get(jsonStr);
 | 
			
		||||
    if (cached) return cached;
 | 
			
		||||
 | 
			
		||||
    shouldAddSchema = shouldAddSchema || self._opts.addUsedSchema !== false;
 | 
			
		||||
 | 
			
		||||
    var id = resolve.normalizeId(schema.id);
 | 
			
		||||
    if (id && shouldAddSchema) checkUnique(id);
 | 
			
		||||
 | 
			
		||||
    var willValidate = self._opts.validateSchema !== false && !skipValidation;
 | 
			
		||||
    var recursiveMeta;
 | 
			
		||||
    if (willValidate && !(recursiveMeta = schema.id && schema.id == schema.$schema))
 | 
			
		||||
      validateSchema(schema, true);
 | 
			
		||||
 | 
			
		||||
    var localRefs = resolve.ids.call(self, schema);
 | 
			
		||||
 | 
			
		||||
    var schemaObj = new SchemaObject({
 | 
			
		||||
      id: id,
 | 
			
		||||
      schema: schema,
 | 
			
		||||
      localRefs: localRefs,
 | 
			
		||||
      jsonStr: jsonStr,
 | 
			
		||||
      meta: meta
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    if (id[0] != '#' && shouldAddSchema) self._refs[id] = schemaObj;
 | 
			
		||||
    self._cache.put(jsonStr, schemaObj);
 | 
			
		||||
 | 
			
		||||
    if (willValidate && recursiveMeta) validateSchema(schema, true);
 | 
			
		||||
 | 
			
		||||
    return schemaObj;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function _compile(schemaObj, root) {
 | 
			
		||||
    if (schemaObj.compiling) {
 | 
			
		||||
      schemaObj.validate = callValidate;
 | 
			
		||||
      callValidate.schema = schemaObj.schema;
 | 
			
		||||
      callValidate.errors = null;
 | 
			
		||||
      callValidate.root = root ? root : callValidate;
 | 
			
		||||
      if (schemaObj.schema.$async === true)
 | 
			
		||||
        callValidate.$async = true;
 | 
			
		||||
      return callValidate;
 | 
			
		||||
    }
 | 
			
		||||
    schemaObj.compiling = true;
 | 
			
		||||
 | 
			
		||||
    var currentOpts;
 | 
			
		||||
    if (schemaObj.meta) {
 | 
			
		||||
      currentOpts = self._opts;
 | 
			
		||||
      self._opts = self._metaOpts;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var v;
 | 
			
		||||
    try { v = compileSchema.call(self, schemaObj.schema, root, schemaObj.localRefs); }
 | 
			
		||||
    finally {
 | 
			
		||||
      schemaObj.compiling = false;
 | 
			
		||||
      if (schemaObj.meta) self._opts = currentOpts;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    schemaObj.validate = v;
 | 
			
		||||
    schemaObj.refs = v.refs;
 | 
			
		||||
    schemaObj.refVal = v.refVal;
 | 
			
		||||
    schemaObj.root = v.root;
 | 
			
		||||
    return v;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    function callValidate() {
 | 
			
		||||
      var _validate = schemaObj.validate;
 | 
			
		||||
      var result = _validate.apply(null, arguments);
 | 
			
		||||
      callValidate.errors = _validate.errors;
 | 
			
		||||
      return result;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Convert array of error message objects to string
 | 
			
		||||
   * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.
 | 
			
		||||
   * @param  {Object} options optional options with properties `separator` and `dataVar`.
 | 
			
		||||
   * @return {String} human readable string with all errors descriptions
 | 
			
		||||
   */
 | 
			
		||||
  function errorsText(errors, options) {
 | 
			
		||||
    errors = errors || self.errors;
 | 
			
		||||
    if (!errors) return 'No errors';
 | 
			
		||||
    options = options || {};
 | 
			
		||||
    var separator = options.separator === undefined ? ', ' : options.separator;
 | 
			
		||||
    var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;
 | 
			
		||||
 | 
			
		||||
    var text = '';
 | 
			
		||||
    for (var i=0; i<errors.length; i++) {
 | 
			
		||||
      var e = errors[i];
 | 
			
		||||
      if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;
 | 
			
		||||
    }
 | 
			
		||||
    return text.slice(0, -separator.length);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Add custom format
 | 
			
		||||
   * @param {String} name format name
 | 
			
		||||
   * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
 | 
			
		||||
   */
 | 
			
		||||
  function addFormat(name, format) {
 | 
			
		||||
    if (typeof format == 'string') format = new RegExp(format);
 | 
			
		||||
    self._formats[name] = format;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function addDraft4MetaSchema() {
 | 
			
		||||
    if (self._opts.meta !== false) {
 | 
			
		||||
      var metaSchema = require('./refs/json-schema-draft-04.json');
 | 
			
		||||
      addMetaSchema(metaSchema, META_SCHEMA_ID, true);
 | 
			
		||||
      self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function addInitialSchemas() {
 | 
			
		||||
    var optsSchemas = self._opts.schemas;
 | 
			
		||||
    if (!optsSchemas) return;
 | 
			
		||||
    if (Array.isArray(optsSchemas)) addSchema(optsSchemas);
 | 
			
		||||
    else for (var key in optsSchemas) addSchema(optsSchemas[key], key);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function addInitialFormats() {
 | 
			
		||||
    for (var name in self._opts.formats) {
 | 
			
		||||
      var format = self._opts.formats[name];
 | 
			
		||||
      addFormat(name, format);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function checkUnique(id) {
 | 
			
		||||
    if (self._schemas[id] || self._refs[id])
 | 
			
		||||
      throw new Error('schema with key or id "' + id + '" already exists');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function getMetaSchemaOptions() {
 | 
			
		||||
    var metaOpts = util.copy(self._opts);
 | 
			
		||||
    for (var i=0; i<META_IGNORE_OPTIONS.length; i++)
 | 
			
		||||
      delete metaOpts[META_IGNORE_OPTIONS[i]];
 | 
			
		||||
    return metaOpts;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										218
									
								
								node_modules/lzma-native/node_modules/ajv/lib/async.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										218
									
								
								node_modules/lzma-native/node_modules/ajv/lib/async.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,218 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  setup: setupAsync,
 | 
			
		||||
  compile: compileAsync
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var util = require('./compile/util');
 | 
			
		||||
 | 
			
		||||
var ASYNC = {
 | 
			
		||||
  '*': checkGenerators,
 | 
			
		||||
  'co*': checkGenerators,
 | 
			
		||||
  'es7': checkAsyncFunction
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var TRANSPILE = {
 | 
			
		||||
  'nodent': getNodent,
 | 
			
		||||
  'regenerator': getRegenerator
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var MODES = [
 | 
			
		||||
  { async: 'co*' },
 | 
			
		||||
  { async: 'es7', transpile: 'nodent' },
 | 
			
		||||
  { async: 'co*', transpile: 'regenerator' }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var regenerator, nodent;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function setupAsync(opts, required) {
 | 
			
		||||
  if (required !== false) required = true;
 | 
			
		||||
  var async = opts.async
 | 
			
		||||
    , transpile = opts.transpile
 | 
			
		||||
    , check;
 | 
			
		||||
 | 
			
		||||
  switch (typeof transpile) {
 | 
			
		||||
    case 'string':
 | 
			
		||||
      var get = TRANSPILE[transpile];
 | 
			
		||||
      if (!get) throw new Error('bad transpiler: ' + transpile);
 | 
			
		||||
      return (opts._transpileFunc = get(opts, required));
 | 
			
		||||
    case 'undefined':
 | 
			
		||||
    case 'boolean':
 | 
			
		||||
      if (typeof async == 'string') {
 | 
			
		||||
        check = ASYNC[async];
 | 
			
		||||
        if (!check) throw new Error('bad async mode: ' + async);
 | 
			
		||||
        return (opts.transpile = check(opts, required));
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      for (var i=0; i<MODES.length; i++) {
 | 
			
		||||
        var _opts = MODES[i];
 | 
			
		||||
        if (setupAsync(_opts, false)) {
 | 
			
		||||
          util.copy(_opts, opts);
 | 
			
		||||
          return opts.transpile;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      /* istanbul ignore next */
 | 
			
		||||
      throw new Error('generators, nodent and regenerator are not available');
 | 
			
		||||
    case 'function':
 | 
			
		||||
      return (opts._transpileFunc = opts.transpile);
 | 
			
		||||
    default:
 | 
			
		||||
      throw new Error('bad transpiler: ' + transpile);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function checkGenerators(opts, required) {
 | 
			
		||||
  /* jshint evil: true */
 | 
			
		||||
  try {
 | 
			
		||||
    (new Function('(function*(){})()'))();
 | 
			
		||||
    return true;
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    /* istanbul ignore next */
 | 
			
		||||
    if (required) throw new Error('generators not supported');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function checkAsyncFunction(opts, required) {
 | 
			
		||||
  /* jshint evil: true */
 | 
			
		||||
  try {
 | 
			
		||||
    (new Function('(async function(){})()'))();
 | 
			
		||||
    /* istanbul ignore next */
 | 
			
		||||
    return true;
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    if (required) throw new Error('es7 async functions not supported');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function getRegenerator(opts, required) {
 | 
			
		||||
  try {
 | 
			
		||||
    if (!regenerator) {
 | 
			
		||||
      var name = 'regenerator';
 | 
			
		||||
      regenerator = require(name);
 | 
			
		||||
      regenerator.runtime();
 | 
			
		||||
    }
 | 
			
		||||
    if (!opts.async || opts.async === true)
 | 
			
		||||
      opts.async = 'es7';
 | 
			
		||||
    return regeneratorTranspile;
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    /* istanbul ignore next */
 | 
			
		||||
    if (required) throw new Error('regenerator not available');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function regeneratorTranspile(code) {
 | 
			
		||||
  return regenerator.compile(code).code;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function getNodent(opts, required) {
 | 
			
		||||
  /* jshint evil: true */
 | 
			
		||||
  try {
 | 
			
		||||
    if (!nodent) {
 | 
			
		||||
      var name = 'nodent';
 | 
			
		||||
      nodent = require(name)({ log: false, dontInstallRequireHook: true });
 | 
			
		||||
    }
 | 
			
		||||
    if (opts.async != 'es7') {
 | 
			
		||||
      if (opts.async && opts.async !== true) console.warn('nodent transpiles only es7 async functions');
 | 
			
		||||
      opts.async = 'es7';
 | 
			
		||||
    }
 | 
			
		||||
    return nodentTranspile;
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    /* istanbul ignore next */
 | 
			
		||||
    if (required) throw new Error('nodent not available');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function nodentTranspile(code) {
 | 
			
		||||
  return nodent.compile(code, '', { promises: true, sourcemap: false }).code;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Creates validating function for passed schema with asynchronous loading of missing schemas.
 | 
			
		||||
 * `loadSchema` option should be a function that accepts schema uri and node-style callback.
 | 
			
		||||
 * @this  Ajv
 | 
			
		||||
 * @param {Object}   schema schema object
 | 
			
		||||
 * @param {Function} callback node-style callback, it is always called with 2 parameters: error (or null) and validating function.
 | 
			
		||||
 */
 | 
			
		||||
function compileAsync(schema, callback) {
 | 
			
		||||
  /* eslint no-shadow: 0 */
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var schemaObj;
 | 
			
		||||
  var self = this;
 | 
			
		||||
  try {
 | 
			
		||||
    schemaObj = this._addSchema(schema);
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    setTimeout(function() { callback(e); });
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  if (schemaObj.validate) {
 | 
			
		||||
    setTimeout(function() { callback(null, schemaObj.validate); });
 | 
			
		||||
  } else {
 | 
			
		||||
    if (typeof this._opts.loadSchema != 'function')
 | 
			
		||||
      throw new Error('options.loadSchema should be a function');
 | 
			
		||||
    _compileAsync(schema, callback, true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function _compileAsync(schema, callback, firstCall) {
 | 
			
		||||
    var validate;
 | 
			
		||||
    try { validate = self.compile(schema); }
 | 
			
		||||
    catch(e) {
 | 
			
		||||
      if (e.missingSchema) loadMissingSchema(e);
 | 
			
		||||
      else deferCallback(e);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    deferCallback(null, validate);
 | 
			
		||||
 | 
			
		||||
    function loadMissingSchema(e) {
 | 
			
		||||
      var ref = e.missingSchema;
 | 
			
		||||
      if (self._refs[ref] || self._schemas[ref])
 | 
			
		||||
        return callback(new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved'));
 | 
			
		||||
      var _callbacks = self._loadingSchemas[ref];
 | 
			
		||||
      if (_callbacks) {
 | 
			
		||||
        if (typeof _callbacks == 'function')
 | 
			
		||||
          self._loadingSchemas[ref] = [_callbacks, schemaLoaded];
 | 
			
		||||
        else
 | 
			
		||||
          _callbacks[_callbacks.length] = schemaLoaded;
 | 
			
		||||
      } else {
 | 
			
		||||
        self._loadingSchemas[ref] = schemaLoaded;
 | 
			
		||||
        self._opts.loadSchema(ref, function (err, sch) {
 | 
			
		||||
          var _callbacks = self._loadingSchemas[ref];
 | 
			
		||||
          delete self._loadingSchemas[ref];
 | 
			
		||||
          if (typeof _callbacks == 'function') {
 | 
			
		||||
            _callbacks(err, sch);
 | 
			
		||||
          } else {
 | 
			
		||||
            for (var i=0; i<_callbacks.length; i++)
 | 
			
		||||
              _callbacks[i](err, sch);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      function schemaLoaded(err, sch) {
 | 
			
		||||
        if (err) return callback(err);
 | 
			
		||||
        if (!(self._refs[ref] || self._schemas[ref])) {
 | 
			
		||||
          try {
 | 
			
		||||
            self.addSchema(sch, ref);
 | 
			
		||||
          } catch(e) {
 | 
			
		||||
            callback(e);
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        _compileAsync(schema, callback);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function deferCallback(err, validate) {
 | 
			
		||||
      if (firstCall) setTimeout(function() { callback(err, validate); });
 | 
			
		||||
      else return callback(err, validate);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								node_modules/lzma-native/node_modules/ajv/lib/cache.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								node_modules/lzma-native/node_modules/ajv/lib/cache.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var Cache = module.exports = function Cache() {
 | 
			
		||||
  this._cache = {};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Cache.prototype.put = function Cache_put(key, value) {
 | 
			
		||||
  this._cache[key] = value;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Cache.prototype.get = function Cache_get(key) {
 | 
			
		||||
  return this._cache[key];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Cache.prototype.del = function Cache_del(key) {
 | 
			
		||||
  delete this._cache[key];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Cache.prototype.clear = function Cache_clear() {
 | 
			
		||||
  this._cache = {};
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										28
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/_rules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/_rules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
//all requires must be explicit because browserify won't work with dynamic requires
 | 
			
		||||
module.exports = {
 | 
			
		||||
  '$ref': require('../dotjs/ref'),
 | 
			
		||||
  allOf: require('../dotjs/allOf'),
 | 
			
		||||
  anyOf: require('../dotjs/anyOf'),
 | 
			
		||||
  dependencies: require('../dotjs/dependencies'),
 | 
			
		||||
  'enum': require('../dotjs/enum'),
 | 
			
		||||
  format: require('../dotjs/format'),
 | 
			
		||||
  items: require('../dotjs/items'),
 | 
			
		||||
  maximum: require('../dotjs/_limit'),
 | 
			
		||||
  minimum: require('../dotjs/_limit'),
 | 
			
		||||
  maxItems: require('../dotjs/_limitItems'),
 | 
			
		||||
  minItems: require('../dotjs/_limitItems'),
 | 
			
		||||
  maxLength: require('../dotjs/_limitLength'),
 | 
			
		||||
  minLength: require('../dotjs/_limitLength'),
 | 
			
		||||
  maxProperties: require('../dotjs/_limitProperties'),
 | 
			
		||||
  minProperties: require('../dotjs/_limitProperties'),
 | 
			
		||||
  multipleOf: require('../dotjs/multipleOf'),
 | 
			
		||||
  not: require('../dotjs/not'),
 | 
			
		||||
  oneOf: require('../dotjs/oneOf'),
 | 
			
		||||
  pattern: require('../dotjs/pattern'),
 | 
			
		||||
  properties: require('../dotjs/properties'),
 | 
			
		||||
  required: require('../dotjs/required'),
 | 
			
		||||
  uniqueItems: require('../dotjs/uniqueItems'),
 | 
			
		||||
  validate: require('../dotjs/validate')
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										45
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/equal.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/equal.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
/*eslint complexity: 0*/
 | 
			
		||||
 | 
			
		||||
module.exports = function equal(a, b) {
 | 
			
		||||
  if (a === b) return true;
 | 
			
		||||
 | 
			
		||||
  var arrA = Array.isArray(a)
 | 
			
		||||
    , arrB = Array.isArray(b)
 | 
			
		||||
    , i;
 | 
			
		||||
 | 
			
		||||
  if (arrA && arrB) {
 | 
			
		||||
    if (a.length != b.length) return false;
 | 
			
		||||
    for (i = 0; i < a.length; i++)
 | 
			
		||||
      if (!equal(a[i], b[i])) return false;
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (arrA != arrB) return false;
 | 
			
		||||
 | 
			
		||||
  if (a && b && typeof a === 'object' && typeof b === 'object') {
 | 
			
		||||
    var keys = Object.keys(a);
 | 
			
		||||
    if (keys.length !== Object.keys(b).length) return false;
 | 
			
		||||
 | 
			
		||||
    var dateA = a instanceof Date
 | 
			
		||||
      , dateB = b instanceof Date;
 | 
			
		||||
    if (dateA && dateB) return a.getTime() == b.getTime();
 | 
			
		||||
    if (dateA != dateB) return false;
 | 
			
		||||
 | 
			
		||||
    var regexpA = a instanceof RegExp
 | 
			
		||||
      , regexpB = b instanceof RegExp;
 | 
			
		||||
    if (regexpA && regexpB) return a.toString() == b.toString();
 | 
			
		||||
    if (regexpA != regexpB) return false;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < keys.length; i++)
 | 
			
		||||
      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < keys.length; i++)
 | 
			
		||||
      if(!equal(a[keys[i]], b[keys[i]])) return false;
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return false;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										164
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/formats.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/formats.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,164 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var util = require('./util');
 | 
			
		||||
 | 
			
		||||
var DATE = /^\d\d\d\d-(\d\d)-(\d\d)$/;
 | 
			
		||||
var DAYS = [0,31,29,31,30,31,30,31,31,30,31,30,31];
 | 
			
		||||
var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
 | 
			
		||||
var HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;
 | 
			
		||||
var URI = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i;
 | 
			
		||||
var UUID = /^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
 | 
			
		||||
var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
 | 
			
		||||
var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports = formats;
 | 
			
		||||
 | 
			
		||||
function formats(mode) {
 | 
			
		||||
  mode = mode == 'full' ? 'full' : 'fast';
 | 
			
		||||
  var formatDefs = util.copy(formats[mode]);
 | 
			
		||||
  for (var fName in formats.compare) {
 | 
			
		||||
    formatDefs[fName] = {
 | 
			
		||||
      validate: formatDefs[fName],
 | 
			
		||||
      compare: formats.compare[fName]
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  return formatDefs;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
formats.fast = {
 | 
			
		||||
  // date: http://tools.ietf.org/html/rfc3339#section-5.6
 | 
			
		||||
  date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
 | 
			
		||||
  // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
 | 
			
		||||
  time: /^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,
 | 
			
		||||
  'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,
 | 
			
		||||
  // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
 | 
			
		||||
  uri: /^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,
 | 
			
		||||
  // email (sources from jsen validator):
 | 
			
		||||
  // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
 | 
			
		||||
  // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
 | 
			
		||||
  email: /^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
 | 
			
		||||
  hostname: HOSTNAME,
 | 
			
		||||
  // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
 | 
			
		||||
  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
 | 
			
		||||
  // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
 | 
			
		||||
  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
 | 
			
		||||
  regex: regex,
 | 
			
		||||
  // uuid: http://tools.ietf.org/html/rfc4122
 | 
			
		||||
  uuid: UUID,
 | 
			
		||||
  // JSON-pointer: https://tools.ietf.org/html/rfc6901
 | 
			
		||||
  // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
 | 
			
		||||
  'json-pointer': JSON_POINTER,
 | 
			
		||||
  // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
 | 
			
		||||
  'relative-json-pointer': RELATIVE_JSON_POINTER
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
formats.full = {
 | 
			
		||||
  date: date,
 | 
			
		||||
  time: time,
 | 
			
		||||
  'date-time': date_time,
 | 
			
		||||
  uri: uri,
 | 
			
		||||
  email: /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
 | 
			
		||||
  hostname: hostname,
 | 
			
		||||
  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
 | 
			
		||||
  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
 | 
			
		||||
  regex: regex,
 | 
			
		||||
  uuid: UUID,
 | 
			
		||||
  'json-pointer': JSON_POINTER,
 | 
			
		||||
  'relative-json-pointer': RELATIVE_JSON_POINTER
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
formats.compare = {
 | 
			
		||||
  date: compareDate,
 | 
			
		||||
  time: compareTime,
 | 
			
		||||
  'date-time': compareDateTime
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function date(str) {
 | 
			
		||||
  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
 | 
			
		||||
  var matches = str.match(DATE);
 | 
			
		||||
  if (!matches) return false;
 | 
			
		||||
 | 
			
		||||
  var month = +matches[1];
 | 
			
		||||
  var day = +matches[2];
 | 
			
		||||
  return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function time(str, full) {
 | 
			
		||||
  var matches = str.match(TIME);
 | 
			
		||||
  if (!matches) return false;
 | 
			
		||||
 | 
			
		||||
  var hour = matches[1];
 | 
			
		||||
  var minute = matches[2];
 | 
			
		||||
  var second = matches[3];
 | 
			
		||||
  var timeZone = matches[5];
 | 
			
		||||
  return hour <= 23 && minute <= 59 && second <= 59 && (!full || timeZone);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var DATE_TIME_SEPARATOR = /t|\s/i;
 | 
			
		||||
function date_time(str) {
 | 
			
		||||
  // http://tools.ietf.org/html/rfc3339#section-5.6
 | 
			
		||||
  var dateTime = str.split(DATE_TIME_SEPARATOR);
 | 
			
		||||
  return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function hostname(str) {
 | 
			
		||||
  // https://tools.ietf.org/html/rfc1034#section-3.5
 | 
			
		||||
  // https://tools.ietf.org/html/rfc1123#section-2
 | 
			
		||||
  return str.length <= 255 && HOSTNAME.test(str);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var NOT_URI_FRAGMENT = /\/|\:/;
 | 
			
		||||
function uri(str) {
 | 
			
		||||
  // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
 | 
			
		||||
  return NOT_URI_FRAGMENT.test(str) && URI.test(str);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function regex(str) {
 | 
			
		||||
  try {
 | 
			
		||||
    new RegExp(str);
 | 
			
		||||
    return true;
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function compareDate(d1, d2) {
 | 
			
		||||
  if (!(d1 && d2)) return;
 | 
			
		||||
  if (d1 > d2) return 1;
 | 
			
		||||
  if (d1 < d2) return -1;
 | 
			
		||||
  if (d1 === d2) return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function compareTime(t1, t2) {
 | 
			
		||||
  if (!(t1 && t2)) return;
 | 
			
		||||
  t1 = t1.match(TIME);
 | 
			
		||||
  t2 = t2.match(TIME);
 | 
			
		||||
  if (!(t1 && t2)) return;
 | 
			
		||||
  t1 = t1[1] + t1[2] + t1[3] + (t1[4]||'');
 | 
			
		||||
  t2 = t2[1] + t2[2] + t2[3] + (t2[4]||'');
 | 
			
		||||
  if (t1 > t2) return 1;
 | 
			
		||||
  if (t1 < t2) return -1;
 | 
			
		||||
  if (t1 === t2) return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function compareDateTime(dt1, dt2) {
 | 
			
		||||
  if (!(dt1 && dt2)) return;
 | 
			
		||||
  dt1 = dt1.split(DATE_TIME_SEPARATOR);
 | 
			
		||||
  dt2 = dt2.split(DATE_TIME_SEPARATOR);
 | 
			
		||||
  var res = compareDate(dt1[0], dt2[0]);
 | 
			
		||||
  if (res === undefined) return;
 | 
			
		||||
  return res || compareTime(dt1[1], dt2[1]);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										390
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										390
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,390 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var resolve = require('./resolve')
 | 
			
		||||
  , util = require('./util')
 | 
			
		||||
  , stableStringify = require('json-stable-stringify')
 | 
			
		||||
  , async = require('../async');
 | 
			
		||||
 | 
			
		||||
var beautify;
 | 
			
		||||
 | 
			
		||||
function loadBeautify(){
 | 
			
		||||
  if (beautify === undefined) {
 | 
			
		||||
    var name = 'js-beautify';
 | 
			
		||||
    try { beautify = require(name).js_beautify; }
 | 
			
		||||
    catch(e) { beautify = false; }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var validateGenerator = require('../dotjs/validate');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Functions below are used inside compiled validations function
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
var co = require('co');
 | 
			
		||||
var ucs2length = util.ucs2length;
 | 
			
		||||
var equal = require('./equal');
 | 
			
		||||
 | 
			
		||||
// this error is thrown by async schemas to return validation errors via exception
 | 
			
		||||
var ValidationError = require('./validation_error');
 | 
			
		||||
 | 
			
		||||
module.exports = compile;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Compiles schema to validation function
 | 
			
		||||
 * @this   Ajv
 | 
			
		||||
 * @param  {Object} schema schema object
 | 
			
		||||
 * @param  {Object} root object with information about the root schema for this schema
 | 
			
		||||
 * @param  {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
 | 
			
		||||
 * @param  {String} baseId base ID for IDs in the schema
 | 
			
		||||
 * @return {Function} validation function
 | 
			
		||||
 */
 | 
			
		||||
function compile(schema, root, localRefs, baseId) {
 | 
			
		||||
  /* jshint validthis: true, evil: true */
 | 
			
		||||
  /* eslint no-shadow: 0 */
 | 
			
		||||
  var self = this
 | 
			
		||||
    , opts = this._opts
 | 
			
		||||
    , refVal = [ undefined ]
 | 
			
		||||
    , refs = {}
 | 
			
		||||
    , patterns = []
 | 
			
		||||
    , patternsHash = {}
 | 
			
		||||
    , defaults = []
 | 
			
		||||
    , defaultsHash = {}
 | 
			
		||||
    , customRules = []
 | 
			
		||||
    , keepSourceCode = opts.sourceCode !== false;
 | 
			
		||||
 | 
			
		||||
  root = root || { schema: schema, refVal: refVal, refs: refs };
 | 
			
		||||
 | 
			
		||||
  var c = checkCompiling.call(this, schema, root, baseId);
 | 
			
		||||
  var compilation = this._compilations[c.index];
 | 
			
		||||
  if (c.compiling) return (compilation.callValidate = callValidate);
 | 
			
		||||
 | 
			
		||||
  var formats = this._formats;
 | 
			
		||||
  var RULES = this.RULES;
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    var v = localCompile(schema, root, localRefs, baseId);
 | 
			
		||||
    compilation.validate = v;
 | 
			
		||||
    var cv = compilation.callValidate;
 | 
			
		||||
    if (cv) {
 | 
			
		||||
      cv.schema = v.schema;
 | 
			
		||||
      cv.errors = null;
 | 
			
		||||
      cv.refs = v.refs;
 | 
			
		||||
      cv.refVal = v.refVal;
 | 
			
		||||
      cv.root = v.root;
 | 
			
		||||
      cv.$async = v.$async;
 | 
			
		||||
      if (keepSourceCode) cv.sourceCode = v.sourceCode;
 | 
			
		||||
    }
 | 
			
		||||
    return v;
 | 
			
		||||
  } finally {
 | 
			
		||||
    endCompiling.call(this, schema, root, baseId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function callValidate() {
 | 
			
		||||
    var validate = compilation.validate;
 | 
			
		||||
    var result = validate.apply(null, arguments);
 | 
			
		||||
    callValidate.errors = validate.errors;
 | 
			
		||||
    return result;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function localCompile(_schema, _root, localRefs, baseId) {
 | 
			
		||||
    var isRoot = !_root || (_root && _root.schema == _schema);
 | 
			
		||||
    if (_root.schema != root.schema)
 | 
			
		||||
      return compile.call(self, _schema, _root, localRefs, baseId);
 | 
			
		||||
 | 
			
		||||
    var $async = _schema.$async === true;
 | 
			
		||||
    if ($async && !opts.transpile) async.setup(opts);
 | 
			
		||||
 | 
			
		||||
    var sourceCode = validateGenerator({
 | 
			
		||||
      isTop: true,
 | 
			
		||||
      schema: _schema,
 | 
			
		||||
      isRoot: isRoot,
 | 
			
		||||
      baseId: baseId,
 | 
			
		||||
      root: _root,
 | 
			
		||||
      schemaPath: '',
 | 
			
		||||
      errSchemaPath: '#',
 | 
			
		||||
      errorPath: '""',
 | 
			
		||||
      RULES: RULES,
 | 
			
		||||
      validate: validateGenerator,
 | 
			
		||||
      util: util,
 | 
			
		||||
      resolve: resolve,
 | 
			
		||||
      resolveRef: resolveRef,
 | 
			
		||||
      usePattern: usePattern,
 | 
			
		||||
      useDefault: useDefault,
 | 
			
		||||
      useCustomRule: useCustomRule,
 | 
			
		||||
      opts: opts,
 | 
			
		||||
      formats: formats,
 | 
			
		||||
      self: self
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
 | 
			
		||||
                   + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
 | 
			
		||||
                   + sourceCode;
 | 
			
		||||
 | 
			
		||||
    if (opts.beautify) {
 | 
			
		||||
      loadBeautify();
 | 
			
		||||
      /* istanbul ignore else */
 | 
			
		||||
      if (beautify) sourceCode = beautify(sourceCode, opts.beautify);
 | 
			
		||||
      else console.error('"npm install js-beautify" to use beautify option');
 | 
			
		||||
    }
 | 
			
		||||
    // console.log('\n\n\n *** \n', sourceCode);
 | 
			
		||||
    var validate, validateCode
 | 
			
		||||
      , transpile = opts._transpileFunc;
 | 
			
		||||
    try {
 | 
			
		||||
      validateCode = $async && transpile
 | 
			
		||||
                      ? transpile(sourceCode)
 | 
			
		||||
                      : sourceCode;
 | 
			
		||||
 | 
			
		||||
      var makeValidate = new Function(
 | 
			
		||||
        'self',
 | 
			
		||||
        'RULES',
 | 
			
		||||
        'formats',
 | 
			
		||||
        'root',
 | 
			
		||||
        'refVal',
 | 
			
		||||
        'defaults',
 | 
			
		||||
        'customRules',
 | 
			
		||||
        'co',
 | 
			
		||||
        'equal',
 | 
			
		||||
        'ucs2length',
 | 
			
		||||
        'ValidationError',
 | 
			
		||||
        validateCode
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      validate = makeValidate(
 | 
			
		||||
        self,
 | 
			
		||||
        RULES,
 | 
			
		||||
        formats,
 | 
			
		||||
        root,
 | 
			
		||||
        refVal,
 | 
			
		||||
        defaults,
 | 
			
		||||
        customRules,
 | 
			
		||||
        co,
 | 
			
		||||
        equal,
 | 
			
		||||
        ucs2length,
 | 
			
		||||
        ValidationError
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      refVal[0] = validate;
 | 
			
		||||
    } catch(e) {
 | 
			
		||||
      console.error('Error compiling schema, function code:', validateCode);
 | 
			
		||||
      throw e;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    validate.schema = _schema;
 | 
			
		||||
    validate.errors = null;
 | 
			
		||||
    validate.refs = refs;
 | 
			
		||||
    validate.refVal = refVal;
 | 
			
		||||
    validate.root = isRoot ? validate : _root;
 | 
			
		||||
    if ($async) validate.$async = true;
 | 
			
		||||
    if (keepSourceCode) validate.sourceCode = sourceCode;
 | 
			
		||||
    if (opts.sourceCode === true) {
 | 
			
		||||
      validate.source = {
 | 
			
		||||
        patterns: patterns,
 | 
			
		||||
        defaults: defaults
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return validate;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function resolveRef(baseId, ref, isRoot) {
 | 
			
		||||
    ref = resolve.url(baseId, ref);
 | 
			
		||||
    var refIndex = refs[ref];
 | 
			
		||||
    var _refVal, refCode;
 | 
			
		||||
    if (refIndex !== undefined) {
 | 
			
		||||
      _refVal = refVal[refIndex];
 | 
			
		||||
      refCode = 'refVal[' + refIndex + ']';
 | 
			
		||||
      return resolvedRef(_refVal, refCode);
 | 
			
		||||
    }
 | 
			
		||||
    if (!isRoot && root.refs) {
 | 
			
		||||
      var rootRefId = root.refs[ref];
 | 
			
		||||
      if (rootRefId !== undefined) {
 | 
			
		||||
        _refVal = root.refVal[rootRefId];
 | 
			
		||||
        refCode = addLocalRef(ref, _refVal);
 | 
			
		||||
        return resolvedRef(_refVal, refCode);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    refCode = addLocalRef(ref);
 | 
			
		||||
    var v = resolve.call(self, localCompile, root, ref);
 | 
			
		||||
    if (!v) {
 | 
			
		||||
      var localSchema = localRefs && localRefs[ref];
 | 
			
		||||
      if (localSchema) {
 | 
			
		||||
        v = resolve.inlineRef(localSchema, opts.inlineRefs)
 | 
			
		||||
            ? localSchema
 | 
			
		||||
            : compile.call(self, localSchema, root, localRefs, baseId);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (v) {
 | 
			
		||||
      replaceLocalRef(ref, v);
 | 
			
		||||
      return resolvedRef(v, refCode);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function addLocalRef(ref, v) {
 | 
			
		||||
    var refId = refVal.length;
 | 
			
		||||
    refVal[refId] = v;
 | 
			
		||||
    refs[ref] = refId;
 | 
			
		||||
    return 'refVal' + refId;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function replaceLocalRef(ref, v) {
 | 
			
		||||
    var refId = refs[ref];
 | 
			
		||||
    refVal[refId] = v;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function resolvedRef(refVal, code) {
 | 
			
		||||
    return typeof refVal == 'object'
 | 
			
		||||
            ? { code: code, schema: refVal, inline: true }
 | 
			
		||||
            : { code: code, $async: refVal && refVal.$async };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function usePattern(regexStr) {
 | 
			
		||||
    var index = patternsHash[regexStr];
 | 
			
		||||
    if (index === undefined) {
 | 
			
		||||
      index = patternsHash[regexStr] = patterns.length;
 | 
			
		||||
      patterns[index] = regexStr;
 | 
			
		||||
    }
 | 
			
		||||
    return 'pattern' + index;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function useDefault(value) {
 | 
			
		||||
    switch (typeof value) {
 | 
			
		||||
      case 'boolean':
 | 
			
		||||
      case 'number':
 | 
			
		||||
        return '' + value;
 | 
			
		||||
      case 'string':
 | 
			
		||||
        return util.toQuotedString(value);
 | 
			
		||||
      case 'object':
 | 
			
		||||
        if (value === null) return 'null';
 | 
			
		||||
        var valueStr = stableStringify(value);
 | 
			
		||||
        var index = defaultsHash[valueStr];
 | 
			
		||||
        if (index === undefined) {
 | 
			
		||||
          index = defaultsHash[valueStr] = defaults.length;
 | 
			
		||||
          defaults[index] = value;
 | 
			
		||||
        }
 | 
			
		||||
        return 'default' + index;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function useCustomRule(rule, schema, parentSchema, it) {
 | 
			
		||||
    var validateSchema = rule.definition.validateSchema;
 | 
			
		||||
    if (validateSchema && self._opts.validateSchema !== false) {
 | 
			
		||||
      var valid = validateSchema(schema);
 | 
			
		||||
      if (!valid) {
 | 
			
		||||
        var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
 | 
			
		||||
        if (self._opts.validateSchema == 'log') console.error(message);
 | 
			
		||||
        else throw new Error(message);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var compile = rule.definition.compile
 | 
			
		||||
      , inline = rule.definition.inline
 | 
			
		||||
      , macro = rule.definition.macro;
 | 
			
		||||
 | 
			
		||||
    var validate;
 | 
			
		||||
    if (compile) {
 | 
			
		||||
      validate = compile.call(self, schema, parentSchema, it);
 | 
			
		||||
    } else if (macro) {
 | 
			
		||||
      validate = macro.call(self, schema, parentSchema, it);
 | 
			
		||||
      if (opts.validateSchema !== false) self.validateSchema(validate, true);
 | 
			
		||||
    } else if (inline) {
 | 
			
		||||
      validate = inline.call(self, it, rule.keyword, schema, parentSchema);
 | 
			
		||||
    } else {
 | 
			
		||||
      validate = rule.definition.validate;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var index = customRules.length;
 | 
			
		||||
    customRules[index] = validate;
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
      code: 'customRule' + index,
 | 
			
		||||
      validate: validate
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Checks if the schema is currently compiled
 | 
			
		||||
 * @this   Ajv
 | 
			
		||||
 * @param  {Object} schema schema to compile
 | 
			
		||||
 * @param  {Object} root root object
 | 
			
		||||
 * @param  {String} baseId base schema ID
 | 
			
		||||
 * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
 | 
			
		||||
 */
 | 
			
		||||
function checkCompiling(schema, root, baseId) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var index = compIndex.call(this, schema, root, baseId);
 | 
			
		||||
  if (index >= 0) return { index: index, compiling: true };
 | 
			
		||||
  index = this._compilations.length;
 | 
			
		||||
  this._compilations[index] = {
 | 
			
		||||
    schema: schema,
 | 
			
		||||
    root: root,
 | 
			
		||||
    baseId: baseId
 | 
			
		||||
  };
 | 
			
		||||
  return { index: index, compiling: false };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Removes the schema from the currently compiled list
 | 
			
		||||
 * @this   Ajv
 | 
			
		||||
 * @param  {Object} schema schema to compile
 | 
			
		||||
 * @param  {Object} root root object
 | 
			
		||||
 * @param  {String} baseId base schema ID
 | 
			
		||||
 */
 | 
			
		||||
function endCompiling(schema, root, baseId) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var i = compIndex.call(this, schema, root, baseId);
 | 
			
		||||
  if (i >= 0) this._compilations.splice(i, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Index of schema compilation in the currently compiled list
 | 
			
		||||
 * @this   Ajv
 | 
			
		||||
 * @param  {Object} schema schema to compile
 | 
			
		||||
 * @param  {Object} root root object
 | 
			
		||||
 * @param  {String} baseId base schema ID
 | 
			
		||||
 * @return {Integer} compilation index
 | 
			
		||||
 */
 | 
			
		||||
function compIndex(schema, root, baseId) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  for (var i=0; i<this._compilations.length; i++) {
 | 
			
		||||
    var c = this._compilations[i];
 | 
			
		||||
    if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
 | 
			
		||||
  }
 | 
			
		||||
  return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function patternCode(i, patterns) {
 | 
			
		||||
  return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function defaultCode(i) {
 | 
			
		||||
  return 'var default' + i + ' = defaults[' + i + '];';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function refValCode(i, refVal) {
 | 
			
		||||
  return refVal[i] ? 'var refVal' + i + ' = refVal[' + i + '];' : '';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function customRuleCode(i) {
 | 
			
		||||
  return 'var customRule' + i + ' = customRules[' + i + '];';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function vars(arr, statement) {
 | 
			
		||||
  if (!arr.length) return '';
 | 
			
		||||
  var code = '';
 | 
			
		||||
  for (var i=0; i<arr.length; i++)
 | 
			
		||||
    code += statement(i, arr);
 | 
			
		||||
  return code;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										267
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/resolve.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										267
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/resolve.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,267 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var url = require('url')
 | 
			
		||||
  , equal = require('./equal')
 | 
			
		||||
  , util = require('./util')
 | 
			
		||||
  , SchemaObject = require('./schema_obj');
 | 
			
		||||
 | 
			
		||||
module.exports = resolve;
 | 
			
		||||
 | 
			
		||||
resolve.normalizeId = normalizeId;
 | 
			
		||||
resolve.fullPath = getFullPath;
 | 
			
		||||
resolve.url = resolveUrl;
 | 
			
		||||
resolve.ids = resolveIds;
 | 
			
		||||
resolve.inlineRef = inlineRef;
 | 
			
		||||
resolve.schema = resolveSchema;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * [resolve and compile the references ($ref)]
 | 
			
		||||
 * @this   Ajv
 | 
			
		||||
 * @param  {Function} compile reference to schema compilation funciton (localCompile)
 | 
			
		||||
 * @param  {Object} root object with information about the root schema for the current schema
 | 
			
		||||
 * @param  {String} ref reference to resolve
 | 
			
		||||
 * @return {Object|Function} schema object (if the schema can be inlined) or validation function
 | 
			
		||||
 */
 | 
			
		||||
function resolve(compile, root, ref) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var refVal = this._refs[ref];
 | 
			
		||||
  if (typeof refVal == 'string') {
 | 
			
		||||
    if (this._refs[refVal]) refVal = this._refs[refVal];
 | 
			
		||||
    else return resolve.call(this, compile, root, refVal);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  refVal = refVal || this._schemas[ref];
 | 
			
		||||
  if (refVal instanceof SchemaObject) {
 | 
			
		||||
    return inlineRef(refVal.schema, this._opts.inlineRefs)
 | 
			
		||||
            ? refVal.schema
 | 
			
		||||
            : refVal.validate || this._compile(refVal);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var res = resolveSchema.call(this, root, ref);
 | 
			
		||||
  var schema, v, baseId;
 | 
			
		||||
  if (res) {
 | 
			
		||||
    schema = res.schema;
 | 
			
		||||
    root = res.root;
 | 
			
		||||
    baseId = res.baseId;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (schema instanceof SchemaObject) {
 | 
			
		||||
    v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);
 | 
			
		||||
  } else if (schema) {
 | 
			
		||||
    v = inlineRef(schema, this._opts.inlineRefs)
 | 
			
		||||
        ? schema
 | 
			
		||||
        : compile.call(this, schema, root, undefined, baseId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Resolve schema, its root and baseId
 | 
			
		||||
 * @this Ajv
 | 
			
		||||
 * @param  {Object} root root object with properties schema, refVal, refs
 | 
			
		||||
 * @param  {String} ref  reference to resolve
 | 
			
		||||
 * @return {Object} object with properties schema, root, baseId
 | 
			
		||||
 */
 | 
			
		||||
function resolveSchema(root, ref) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var p = url.parse(ref, false, true)
 | 
			
		||||
    , refPath = _getFullPath(p)
 | 
			
		||||
    , baseId = getFullPath(root.schema.id);
 | 
			
		||||
  if (refPath !== baseId) {
 | 
			
		||||
    var id = normalizeId(refPath);
 | 
			
		||||
    var refVal = this._refs[id];
 | 
			
		||||
    if (typeof refVal == 'string') {
 | 
			
		||||
      return resolveRecursive.call(this, root, refVal, p);
 | 
			
		||||
    } else if (refVal instanceof SchemaObject) {
 | 
			
		||||
      if (!refVal.validate) this._compile(refVal);
 | 
			
		||||
      root = refVal;
 | 
			
		||||
    } else {
 | 
			
		||||
      refVal = this._schemas[id];
 | 
			
		||||
      if (refVal instanceof SchemaObject) {
 | 
			
		||||
        if (!refVal.validate) this._compile(refVal);
 | 
			
		||||
        if (id == normalizeId(ref))
 | 
			
		||||
          return { schema: refVal, root: root, baseId: baseId };
 | 
			
		||||
        root = refVal;
 | 
			
		||||
      } else {
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (!root.schema) return;
 | 
			
		||||
    baseId = getFullPath(root.schema.id);
 | 
			
		||||
  }
 | 
			
		||||
  return getJsonPointer.call(this, p, baseId, root.schema, root);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* @this Ajv */
 | 
			
		||||
function resolveRecursive(root, ref, parsedRef) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var res = resolveSchema.call(this, root, ref);
 | 
			
		||||
  if (res) {
 | 
			
		||||
    var schema = res.schema;
 | 
			
		||||
    var baseId = res.baseId;
 | 
			
		||||
    root = res.root;
 | 
			
		||||
    if (schema.id) baseId = resolveUrl(baseId, schema.id);
 | 
			
		||||
    return getJsonPointer.call(this, parsedRef, baseId, schema, root);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);
 | 
			
		||||
/* @this Ajv */
 | 
			
		||||
function getJsonPointer(parsedRef, baseId, schema, root) {
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  parsedRef.hash = parsedRef.hash || '';
 | 
			
		||||
  if (parsedRef.hash.slice(0,2) != '#/') return;
 | 
			
		||||
  var parts = parsedRef.hash.split('/');
 | 
			
		||||
 | 
			
		||||
  for (var i = 1; i < parts.length; i++) {
 | 
			
		||||
    var part = parts[i];
 | 
			
		||||
    if (part) {
 | 
			
		||||
      part = util.unescapeFragment(part);
 | 
			
		||||
      schema = schema[part];
 | 
			
		||||
      if (!schema) break;
 | 
			
		||||
      if (schema.id && !PREVENT_SCOPE_CHANGE[part]) baseId = resolveUrl(baseId, schema.id);
 | 
			
		||||
      if (schema.$ref) {
 | 
			
		||||
        var $ref = resolveUrl(baseId, schema.$ref);
 | 
			
		||||
        var res = resolveSchema.call(this, root, $ref);
 | 
			
		||||
        if (res) {
 | 
			
		||||
          schema = res.schema;
 | 
			
		||||
          root = res.root;
 | 
			
		||||
          baseId = res.baseId;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (schema && schema != root.schema)
 | 
			
		||||
    return { schema: schema, root: root, baseId: baseId };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var SIMPLE_INLINED = util.toHash([
 | 
			
		||||
  'type', 'format', 'pattern',
 | 
			
		||||
  'maxLength', 'minLength',
 | 
			
		||||
  'maxProperties', 'minProperties',
 | 
			
		||||
  'maxItems', 'minItems',
 | 
			
		||||
  'maximum', 'minimum',
 | 
			
		||||
  'uniqueItems', 'multipleOf',
 | 
			
		||||
  'required', 'enum'
 | 
			
		||||
]);
 | 
			
		||||
function inlineRef(schema, limit) {
 | 
			
		||||
  if (limit === false) return false;
 | 
			
		||||
  if (limit === undefined || limit === true) return checkNoRef(schema);
 | 
			
		||||
  else if (limit) return countKeys(schema) <= limit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function checkNoRef(schema) {
 | 
			
		||||
  var item;
 | 
			
		||||
  if (Array.isArray(schema)) {
 | 
			
		||||
    for (var i=0; i<schema.length; i++) {
 | 
			
		||||
      item = schema[i];
 | 
			
		||||
      if (typeof item == 'object' && !checkNoRef(item)) return false;
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    for (var key in schema) {
 | 
			
		||||
      if (key == '$ref') return false;
 | 
			
		||||
      item = schema[key];
 | 
			
		||||
      if (typeof item == 'object' && !checkNoRef(item)) return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function countKeys(schema) {
 | 
			
		||||
  var count = 0, item;
 | 
			
		||||
  if (Array.isArray(schema)) {
 | 
			
		||||
    for (var i=0; i<schema.length; i++) {
 | 
			
		||||
      item = schema[i];
 | 
			
		||||
      if (typeof item == 'object') count += countKeys(item);
 | 
			
		||||
      if (count == Infinity) return Infinity;
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    for (var key in schema) {
 | 
			
		||||
      if (key == '$ref') return Infinity;
 | 
			
		||||
      if (SIMPLE_INLINED[key]) {
 | 
			
		||||
        count++;
 | 
			
		||||
      } else {
 | 
			
		||||
        item = schema[key];
 | 
			
		||||
        if (typeof item == 'object') count += countKeys(item) + 1;
 | 
			
		||||
        if (count == Infinity) return Infinity;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return count;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function getFullPath(id, normalize) {
 | 
			
		||||
  if (normalize !== false) id = normalizeId(id);
 | 
			
		||||
  var p = url.parse(id, false, true);
 | 
			
		||||
  return _getFullPath(p);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function _getFullPath(p) {
 | 
			
		||||
  var protocolSeparator = p.protocol || p.href.slice(0,2) == '//' ? '//' : '';
 | 
			
		||||
  return (p.protocol||'') + protocolSeparator + (p.host||'') + (p.path||'')  + '#';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var TRAILING_SLASH_HASH = /#\/?$/;
 | 
			
		||||
function normalizeId(id) {
 | 
			
		||||
  return id ? id.replace(TRAILING_SLASH_HASH, '') : '';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function resolveUrl(baseId, id) {
 | 
			
		||||
  id = normalizeId(id);
 | 
			
		||||
  return url.resolve(baseId, id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* @this Ajv */
 | 
			
		||||
function resolveIds(schema) {
 | 
			
		||||
  /* eslint no-shadow: 0 */
 | 
			
		||||
  /* jshint validthis: true */
 | 
			
		||||
  var id = normalizeId(schema.id);
 | 
			
		||||
  var localRefs = {};
 | 
			
		||||
  _resolveIds.call(this, schema, getFullPath(id, false), id);
 | 
			
		||||
  return localRefs;
 | 
			
		||||
 | 
			
		||||
  /* @this Ajv */
 | 
			
		||||
  function _resolveIds(schema, fullPath, baseId) {
 | 
			
		||||
    /* jshint validthis: true */
 | 
			
		||||
    if (Array.isArray(schema)) {
 | 
			
		||||
      for (var i=0; i<schema.length; i++)
 | 
			
		||||
        _resolveIds.call(this, schema[i], fullPath+'/'+i, baseId);
 | 
			
		||||
    } else if (schema && typeof schema == 'object') {
 | 
			
		||||
      if (typeof schema.id == 'string') {
 | 
			
		||||
        var id = baseId = baseId
 | 
			
		||||
                          ? url.resolve(baseId, schema.id)
 | 
			
		||||
                          : schema.id;
 | 
			
		||||
        id = normalizeId(id);
 | 
			
		||||
 | 
			
		||||
        var refVal = this._refs[id];
 | 
			
		||||
        if (typeof refVal == 'string') refVal = this._refs[refVal];
 | 
			
		||||
        if (refVal && refVal.schema) {
 | 
			
		||||
          if (!equal(schema, refVal.schema))
 | 
			
		||||
            throw new Error('id "' + id + '" resolves to more than one schema');
 | 
			
		||||
        } else if (id != normalizeId(fullPath)) {
 | 
			
		||||
          if (id[0] == '#') {
 | 
			
		||||
            if (localRefs[id] && !equal(schema, localRefs[id]))
 | 
			
		||||
              throw new Error('id "' + id + '" resolves to more than one schema');
 | 
			
		||||
            localRefs[id] = schema;
 | 
			
		||||
          } else {
 | 
			
		||||
            this._refs[id] = fullPath;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      for (var key in schema)
 | 
			
		||||
        _resolveIds.call(this, schema[key], fullPath+'/'+util.escapeFragment(key), baseId);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/rules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/rules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var ruleModules = require('./_rules')
 | 
			
		||||
  , toHash = require('./util').toHash;
 | 
			
		||||
 | 
			
		||||
module.exports = function rules() {
 | 
			
		||||
  var RULES = [
 | 
			
		||||
    { type: 'number',
 | 
			
		||||
      rules: [ 'maximum', 'minimum', 'multipleOf'] },
 | 
			
		||||
    { type: 'string',
 | 
			
		||||
      rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },
 | 
			
		||||
    { type: 'array',
 | 
			
		||||
      rules: [ 'maxItems', 'minItems', 'uniqueItems', 'items' ] },
 | 
			
		||||
    { type: 'object',
 | 
			
		||||
      rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'properties' ] },
 | 
			
		||||
    { rules: [ '$ref', 'enum', 'not', 'anyOf', 'oneOf', 'allOf' ] }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  var ALL = [ 'type', 'additionalProperties', 'patternProperties' ];
 | 
			
		||||
  var KEYWORDS = [ 'additionalItems', '$schema', 'id', 'title', 'description', 'default' ];
 | 
			
		||||
  var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
 | 
			
		||||
  RULES.all = toHash(ALL);
 | 
			
		||||
 | 
			
		||||
  RULES.forEach(function (group) {
 | 
			
		||||
    group.rules = group.rules.map(function (keyword) {
 | 
			
		||||
      ALL.push(keyword);
 | 
			
		||||
      var rule = RULES.all[keyword] = {
 | 
			
		||||
        keyword: keyword,
 | 
			
		||||
        code: ruleModules[keyword]
 | 
			
		||||
      };
 | 
			
		||||
      return rule;
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  RULES.keywords = toHash(ALL.concat(KEYWORDS));
 | 
			
		||||
  RULES.types = toHash(TYPES);
 | 
			
		||||
  RULES.custom = {};
 | 
			
		||||
 | 
			
		||||
  return RULES;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										9
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/schema_obj.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/schema_obj.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var util = require('./util');
 | 
			
		||||
 | 
			
		||||
module.exports = SchemaObject;
 | 
			
		||||
 | 
			
		||||
function SchemaObject(obj) {
 | 
			
		||||
  util.copy(obj, this);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/ucs2length.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/ucs2length.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
// https://mathiasbynens.be/notes/javascript-encoding
 | 
			
		||||
// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
 | 
			
		||||
module.exports = function ucs2length(str) {
 | 
			
		||||
  var length = 0
 | 
			
		||||
    , len = str.length
 | 
			
		||||
    , pos = 0
 | 
			
		||||
    , value;
 | 
			
		||||
  while (pos < len) {
 | 
			
		||||
    length++;
 | 
			
		||||
    value = str.charCodeAt(pos++);
 | 
			
		||||
    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
 | 
			
		||||
      // high surrogate, and there is a next character
 | 
			
		||||
      value = str.charCodeAt(pos);
 | 
			
		||||
      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return length;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										257
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/util.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										257
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/util.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,257 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  copy: copy,
 | 
			
		||||
  checkDataType: checkDataType,
 | 
			
		||||
  checkDataTypes: checkDataTypes,
 | 
			
		||||
  coerceToTypes: coerceToTypes,
 | 
			
		||||
  toHash: toHash,
 | 
			
		||||
  getProperty: getProperty,
 | 
			
		||||
  escapeQuotes: escapeQuotes,
 | 
			
		||||
  ucs2length: require('./ucs2length'),
 | 
			
		||||
  varOccurences: varOccurences,
 | 
			
		||||
  varReplace: varReplace,
 | 
			
		||||
  cleanUpCode: cleanUpCode,
 | 
			
		||||
  cleanUpVarErrors: cleanUpVarErrors,
 | 
			
		||||
  schemaHasRules: schemaHasRules,
 | 
			
		||||
  schemaHasRulesExcept: schemaHasRulesExcept,
 | 
			
		||||
  stableStringify: require('json-stable-stringify'),
 | 
			
		||||
  toQuotedString: toQuotedString,
 | 
			
		||||
  getPathExpr: getPathExpr,
 | 
			
		||||
  getPath: getPath,
 | 
			
		||||
  getData: getData,
 | 
			
		||||
  unescapeFragment: unescapeFragment,
 | 
			
		||||
  escapeFragment: escapeFragment,
 | 
			
		||||
  escapeJsonPointer: escapeJsonPointer
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function copy(o, to) {
 | 
			
		||||
  to = to || {};
 | 
			
		||||
  for (var key in o) to[key] = o[key];
 | 
			
		||||
  return to;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function checkDataType(dataType, data, negate) {
 | 
			
		||||
  var EQUAL = negate ? ' !== ' : ' === '
 | 
			
		||||
    , AND = negate ? ' || ' : ' && '
 | 
			
		||||
    , OK = negate ? '!' : ''
 | 
			
		||||
    , NOT = negate ? '' : '!';
 | 
			
		||||
  switch (dataType) {
 | 
			
		||||
    case 'null': return data + EQUAL + 'null';
 | 
			
		||||
    case 'array': return OK + 'Array.isArray(' + data + ')';
 | 
			
		||||
    case 'object': return '(' + OK + data + AND +
 | 
			
		||||
                          'typeof ' + data + EQUAL + '"object"' + AND +
 | 
			
		||||
                          NOT + 'Array.isArray(' + data + '))';
 | 
			
		||||
    case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
 | 
			
		||||
                           NOT + '(' + data + ' % 1)' +
 | 
			
		||||
                           AND + data + EQUAL + data + ')';
 | 
			
		||||
    default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function checkDataTypes(dataTypes, data) {
 | 
			
		||||
  switch (dataTypes.length) {
 | 
			
		||||
    case 1: return checkDataType(dataTypes[0], data, true);
 | 
			
		||||
    default:
 | 
			
		||||
      var code = '';
 | 
			
		||||
      var types = toHash(dataTypes);
 | 
			
		||||
      if (types.array && types.object) {
 | 
			
		||||
        code = types.null ? '(': '(!' + data + ' || ';
 | 
			
		||||
        code += 'typeof ' + data + ' !== "object")';
 | 
			
		||||
        delete types.null;
 | 
			
		||||
        delete types.array;
 | 
			
		||||
        delete types.object;
 | 
			
		||||
      }
 | 
			
		||||
      if (types.number) delete types.integer;
 | 
			
		||||
      for (var t in types)
 | 
			
		||||
        code += (code ? ' && ' : '' ) + checkDataType(t, data, true);
 | 
			
		||||
 | 
			
		||||
      return code;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);
 | 
			
		||||
function coerceToTypes(optionCoerceTypes, dataTypes) {
 | 
			
		||||
  if (Array.isArray(dataTypes)) {
 | 
			
		||||
    var types = [];
 | 
			
		||||
    for (var i=0; i<dataTypes.length; i++) {
 | 
			
		||||
      var t = dataTypes[i];
 | 
			
		||||
      if (COERCE_TO_TYPES[t]) types[types.length] = t;
 | 
			
		||||
      else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;
 | 
			
		||||
    }
 | 
			
		||||
    if (types.length) return types;
 | 
			
		||||
  } else if (COERCE_TO_TYPES[dataTypes]) {
 | 
			
		||||
    return [dataTypes];
 | 
			
		||||
  } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {
 | 
			
		||||
    return ['array'];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function toHash(arr) {
 | 
			
		||||
  var hash = {};
 | 
			
		||||
  for (var i=0; i<arr.length; i++) hash[arr[i]] = true;
 | 
			
		||||
  return hash;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
 | 
			
		||||
var SINGLE_QUOTE = /'|\\/g;
 | 
			
		||||
function getProperty(key) {
 | 
			
		||||
  return typeof key == 'number'
 | 
			
		||||
          ? '[' + key + ']'
 | 
			
		||||
          : IDENTIFIER.test(key)
 | 
			
		||||
            ? '.' + key
 | 
			
		||||
            : "['" + escapeQuotes(key) + "']";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function escapeQuotes(str) {
 | 
			
		||||
  return str.replace(SINGLE_QUOTE, '\\$&')
 | 
			
		||||
            .replace(/\n/g, '\\n')
 | 
			
		||||
            .replace(/\r/g, '\\r')
 | 
			
		||||
            .replace(/\f/g, '\\f')
 | 
			
		||||
            .replace(/\t/g, '\\t');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function varOccurences(str, dataVar) {
 | 
			
		||||
  dataVar += '[^0-9]';
 | 
			
		||||
  var matches = str.match(new RegExp(dataVar, 'g'));
 | 
			
		||||
  return matches ? matches.length : 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function varReplace(str, dataVar, expr) {
 | 
			
		||||
  dataVar += '([^0-9])';
 | 
			
		||||
  expr = expr.replace(/\$/g, '$$$$');
 | 
			
		||||
  return str.replace(new RegExp(dataVar, 'g'), expr + '$1');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var EMPTY_ELSE = /else\s*{\s*}/g
 | 
			
		||||
  , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g
 | 
			
		||||
  , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;
 | 
			
		||||
function cleanUpCode(out) {
 | 
			
		||||
  return out.replace(EMPTY_ELSE, '')
 | 
			
		||||
            .replace(EMPTY_IF_NO_ELSE, '')
 | 
			
		||||
            .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var ERRORS_REGEXP = /[^v\.]errors/g
 | 
			
		||||
  , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g
 | 
			
		||||
  , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g
 | 
			
		||||
  , RETURN_VALID = 'return errors === 0;'
 | 
			
		||||
  , RETURN_TRUE = 'validate.errors = null; return true;'
 | 
			
		||||
  , RETURN_ASYNC = /if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/
 | 
			
		||||
  , RETURN_TRUE_ASYNC = 'return true;';
 | 
			
		||||
 | 
			
		||||
function cleanUpVarErrors(out, async) {
 | 
			
		||||
  var matches = out.match(ERRORS_REGEXP);
 | 
			
		||||
  if (!matches || matches.length !== 2) return out;
 | 
			
		||||
  return async
 | 
			
		||||
          ? out.replace(REMOVE_ERRORS_ASYNC, '')
 | 
			
		||||
               .replace(RETURN_ASYNC, RETURN_TRUE_ASYNC)
 | 
			
		||||
          : out.replace(REMOVE_ERRORS, '')
 | 
			
		||||
               .replace(RETURN_VALID, RETURN_TRUE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function schemaHasRules(schema, rules) {
 | 
			
		||||
  for (var key in schema) if (rules[key]) return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function schemaHasRulesExcept(schema, rules, exceptKeyword) {
 | 
			
		||||
  for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function toQuotedString(str) {
 | 
			
		||||
  return '\'' + escapeQuotes(str) + '\'';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function getPathExpr(currentPath, expr, jsonPointers, isNumber) {
 | 
			
		||||
  var path = jsonPointers // false by default
 | 
			
		||||
              ? '\'/\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\')')
 | 
			
		||||
              : (isNumber ? '\'[\' + ' + expr + ' + \']\'' : '\'[\\\'\' + ' + expr + ' + \'\\\']\'');
 | 
			
		||||
  return joinPaths(currentPath, path);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function getPath(currentPath, prop, jsonPointers) {
 | 
			
		||||
  var path = jsonPointers // false by default
 | 
			
		||||
              ? toQuotedString('/' + escapeJsonPointer(prop))
 | 
			
		||||
              : toQuotedString(getProperty(prop));
 | 
			
		||||
  return joinPaths(currentPath, path);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
 | 
			
		||||
var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
 | 
			
		||||
function getData($data, lvl, paths) {
 | 
			
		||||
  var up, jsonPointer, data, matches;
 | 
			
		||||
  if ($data === '') return 'rootData';
 | 
			
		||||
  if ($data[0] == '/') {
 | 
			
		||||
    if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);
 | 
			
		||||
    jsonPointer = $data;
 | 
			
		||||
    data = 'rootData';
 | 
			
		||||
  } else {
 | 
			
		||||
    matches = $data.match(RELATIVE_JSON_POINTER);
 | 
			
		||||
    if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);
 | 
			
		||||
    up = +matches[1];
 | 
			
		||||
    jsonPointer = matches[2];
 | 
			
		||||
    if (jsonPointer == '#') {
 | 
			
		||||
      if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);
 | 
			
		||||
      return paths[lvl - up];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);
 | 
			
		||||
    data = 'data' + ((lvl - up) || '');
 | 
			
		||||
    if (!jsonPointer) return data;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var expr = data;
 | 
			
		||||
  var segments = jsonPointer.split('/');
 | 
			
		||||
  for (var i=0; i<segments.length; i++) {
 | 
			
		||||
    var segment = segments[i];
 | 
			
		||||
    if (segment) {
 | 
			
		||||
      data += getProperty(unescapeJsonPointer(segment));
 | 
			
		||||
      expr += ' && ' + data;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return expr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function joinPaths (a, b) {
 | 
			
		||||
  if (a == '""') return b;
 | 
			
		||||
  return (a + ' + ' + b).replace(/' \+ '/g, '');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function unescapeFragment(str) {
 | 
			
		||||
  return unescapeJsonPointer(decodeURIComponent(str));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function escapeFragment(str) {
 | 
			
		||||
  return encodeURIComponent(escapeJsonPointer(str));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function escapeJsonPointer(str) {
 | 
			
		||||
  return str.replace(/~/g, '~0').replace(/\//g, '~1');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function unescapeJsonPointer(str) {
 | 
			
		||||
  return str.replace(/~1/g, '/').replace(/~0/g, '~');
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/validation_error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								node_modules/lzma-native/node_modules/ajv/lib/compile/validation_error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
module.exports = ValidationError;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function ValidationError(errors) {
 | 
			
		||||
  this.message = 'validation failed';
 | 
			
		||||
  this.errors = errors;
 | 
			
		||||
  this.ajv = this.validation = true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ValidationError.prototype = Object.create(Error.prototype);
 | 
			
		||||
ValidationError.prototype.constructor = ValidationError;
 | 
			
		||||
							
								
								
									
										49
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limit.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limit.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $isMax = $keyword == 'maximum'
 | 
			
		||||
    , $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum'
 | 
			
		||||
    , $schemaExcl = it.schema[$exclusiveKeyword]
 | 
			
		||||
    , $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data
 | 
			
		||||
    , $op = $isMax ? '<' : '>'
 | 
			
		||||
    , $notOp = $isMax ? '>' : '<';
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
{{? $isDataExcl }}
 | 
			
		||||
  {{
 | 
			
		||||
    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
 | 
			
		||||
      , $exclusive = 'exclusive' + $lvl
 | 
			
		||||
      , $opExpr = 'op' + $lvl
 | 
			
		||||
      , $opStr = '\' + ' + $opExpr + ' + \'';
 | 
			
		||||
  }}
 | 
			
		||||
  var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
 | 
			
		||||
  {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
 | 
			
		||||
 | 
			
		||||
  var exclusive{{=$lvl}};
 | 
			
		||||
  if (typeof {{=$schemaValueExcl}} != 'boolean' && typeof {{=$schemaValueExcl}} != 'undefined') {
 | 
			
		||||
    {{ var $errorKeyword = $exclusiveKeyword; }}
 | 
			
		||||
    {{# def.error:'_exclusiveLimit' }}
 | 
			
		||||
  } else if({{# def.$dataNotType:'number' }}
 | 
			
		||||
            ((exclusive{{=$lvl}} = {{=$schemaValueExcl}} === true)
 | 
			
		||||
              ? {{=$data}} {{=$notOp}}= {{=$schemaValue}}
 | 
			
		||||
              : {{=$data}} {{=$notOp}} {{=$schemaValue}})
 | 
			
		||||
            || {{=$data}} !== {{=$data}}) {
 | 
			
		||||
    var op{{=$lvl}} = exclusive{{=$lvl}} ? '{{=$op}}' : '{{=$op}}=';
 | 
			
		||||
{{??}}
 | 
			
		||||
  {{
 | 
			
		||||
    var $exclusive = $schemaExcl === true
 | 
			
		||||
      , $opStr = $op;  /*used in error*/
 | 
			
		||||
    if (!$exclusive) $opStr += '=';
 | 
			
		||||
    var $opExpr = '\'' + $opStr + '\''; /*used in error*/
 | 
			
		||||
  }}
 | 
			
		||||
 | 
			
		||||
  if ({{# def.$dataNotType:'number' }}
 | 
			
		||||
      {{=$data}} {{=$notOp}}{{?$exclusive}}={{?}} {{=$schemaValue}}
 | 
			
		||||
      || {{=$data}} !== {{=$data}}) {
 | 
			
		||||
{{?}}
 | 
			
		||||
    {{ var $errorKeyword = $keyword; }}
 | 
			
		||||
    {{# def.error:'_limit' }}
 | 
			
		||||
  } {{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										10
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limitItems.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limitItems.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
{{ var $op = $keyword == 'maxItems' ? '>' : '<'; }}
 | 
			
		||||
if ({{# def.$dataNotType:'number' }} {{=$data}}.length {{=$op}} {{=$schemaValue}}) {
 | 
			
		||||
  {{ var $errorKeyword = $keyword; }}
 | 
			
		||||
  {{# def.error:'_limitItems' }}
 | 
			
		||||
} {{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										10
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limitLength.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limitLength.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
{{ var $op = $keyword == 'maxLength' ? '>' : '<'; }}
 | 
			
		||||
if ({{# def.$dataNotType:'number' }} {{# def.strLength }} {{=$op}} {{=$schemaValue}}) {
 | 
			
		||||
  {{ var $errorKeyword = $keyword; }}
 | 
			
		||||
  {{# def.error:'_limitLength' }}
 | 
			
		||||
} {{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										10
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limitProperties.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/_limitProperties.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
{{ var $op = $keyword == 'maxProperties' ? '>' : '<'; }}
 | 
			
		||||
if ({{# def.$dataNotType:'number' }} Object.keys({{=$data}}).length {{=$op}} {{=$schemaValue}}) {
 | 
			
		||||
  {{ var $errorKeyword = $keyword; }}
 | 
			
		||||
  {{# def.error:'_limitProperties' }}
 | 
			
		||||
} {{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										34
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/allOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/allOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.setupNextLevel }}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $currentBaseId = $it.baseId
 | 
			
		||||
    , $allSchemasEmpty = true;
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
{{~ $schema:$sch:$i }}
 | 
			
		||||
  {{? {{# def.nonEmptySchema:$sch }} }}
 | 
			
		||||
    {{
 | 
			
		||||
      $allSchemasEmpty = false;
 | 
			
		||||
      $it.schema = $sch;
 | 
			
		||||
      $it.schemaPath = $schemaPath + '[' + $i + ']';
 | 
			
		||||
      $it.errSchemaPath = $errSchemaPath + '/' + $i;
 | 
			
		||||
    }}
 | 
			
		||||
 | 
			
		||||
    {{# def.insertSubschemaCode }}
 | 
			
		||||
 | 
			
		||||
    {{# def.ifResultValid }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{~}}
 | 
			
		||||
 | 
			
		||||
{{? $breakOnError }}
 | 
			
		||||
  {{? $allSchemasEmpty }}
 | 
			
		||||
    if (true) {
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {{= $closingBraces.slice(0,-1) }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{# def.cleanUp }}
 | 
			
		||||
							
								
								
									
										48
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/anyOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/anyOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.setupNextLevel }}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $noEmptySchema = $schema.every(function($sch) {
 | 
			
		||||
    return {{# def.nonEmptySchema:$sch }};
 | 
			
		||||
  });
 | 
			
		||||
}}
 | 
			
		||||
{{? $noEmptySchema }}
 | 
			
		||||
  {{ var $currentBaseId = $it.baseId; }}
 | 
			
		||||
  var {{=$errs}} = errors;
 | 
			
		||||
  var {{=$valid}} = false;
 | 
			
		||||
 | 
			
		||||
  {{# def.setCompositeRule }}
 | 
			
		||||
 | 
			
		||||
  {{~ $schema:$sch:$i }}
 | 
			
		||||
    {{
 | 
			
		||||
      $it.schema = $sch;
 | 
			
		||||
      $it.schemaPath = $schemaPath + '[' + $i + ']';
 | 
			
		||||
      $it.errSchemaPath = $errSchemaPath + '/' + $i;
 | 
			
		||||
    }}
 | 
			
		||||
 | 
			
		||||
    {{# def.insertSubschemaCode }}
 | 
			
		||||
 | 
			
		||||
    {{=$valid}} = {{=$valid}} || {{=$nextValid}};
 | 
			
		||||
 | 
			
		||||
    if (!{{=$valid}}) {
 | 
			
		||||
    {{ $closingBraces += '}'; }}
 | 
			
		||||
  {{~}}
 | 
			
		||||
 | 
			
		||||
  {{# def.resetCompositeRule }}
 | 
			
		||||
 | 
			
		||||
  {{= $closingBraces }}
 | 
			
		||||
 | 
			
		||||
  if (!{{=$valid}}) {
 | 
			
		||||
    {{# def.addError:'anyOf' }}
 | 
			
		||||
  } else {
 | 
			
		||||
    {{# def.resetErrors }}
 | 
			
		||||
  {{? it.opts.allErrors }} } {{?}}
 | 
			
		||||
 | 
			
		||||
  {{# def.cleanUp }}
 | 
			
		||||
{{??}}
 | 
			
		||||
  {{? $breakOnError }}
 | 
			
		||||
    if (true) {
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{?}}
 | 
			
		||||
							
								
								
									
										61
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/coerce.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/coerce.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
{{## def.coerceType:
 | 
			
		||||
  {{
 | 
			
		||||
    var $dataType = 'dataType' + $lvl
 | 
			
		||||
      , $coerced = 'coerced' + $lvl;
 | 
			
		||||
  }}
 | 
			
		||||
  var {{=$dataType}} = typeof {{=$data}};
 | 
			
		||||
  {{? it.opts.coerceTypes == 'array'}}
 | 
			
		||||
    if ({{=$dataType}} == 'object' && Array.isArray({{=$data}})) {{=$dataType}} = 'array';
 | 
			
		||||
  {{?}}
 | 
			
		||||
 | 
			
		||||
  var {{=$coerced}} = undefined;
 | 
			
		||||
 | 
			
		||||
  {{ var $bracesCoercion = ''; }}
 | 
			
		||||
  {{~ $coerceToTypes:$type:$i }}
 | 
			
		||||
    {{? $i }}
 | 
			
		||||
      if ({{=$coerced}} === undefined) {
 | 
			
		||||
      {{ $bracesCoercion += '}'; }}
 | 
			
		||||
    {{?}}
 | 
			
		||||
 | 
			
		||||
    {{? it.opts.coerceTypes == 'array' && $type != 'array' }}
 | 
			
		||||
      if ({{=$dataType}} == 'array' && {{=$data}}.length == 1) {
 | 
			
		||||
        {{=$coerced}} = {{=$data}} = {{=$data}}[0];
 | 
			
		||||
        {{=$dataType}} = typeof {{=$data}};
 | 
			
		||||
        /*if ({{=$dataType}} == 'object' && Array.isArray({{=$data}})) {{=$dataType}} = 'array';*/
 | 
			
		||||
      }
 | 
			
		||||
    {{?}}
 | 
			
		||||
 | 
			
		||||
    {{? $type == 'string' }}
 | 
			
		||||
      if ({{=$dataType}} == 'number' || {{=$dataType}} == 'boolean')
 | 
			
		||||
        {{=$coerced}} = '' + {{=$data}};
 | 
			
		||||
      else if ({{=$data}} === null) {{=$coerced}} = '';
 | 
			
		||||
    {{?? $type == 'number' || $type == 'integer' }}
 | 
			
		||||
      if ({{=$dataType}} == 'boolean' || {{=$data}} === null
 | 
			
		||||
          || ({{=$dataType}} == 'string' && {{=$data}} && {{=$data}} == +{{=$data}}
 | 
			
		||||
          {{? $type == 'integer' }} && !({{=$data}} % 1){{?}}))
 | 
			
		||||
        {{=$coerced}} = +{{=$data}};
 | 
			
		||||
    {{?? $type == 'boolean' }}
 | 
			
		||||
      if ({{=$data}} === 'false' || {{=$data}} === 0 || {{=$data}} === null)
 | 
			
		||||
        {{=$coerced}} = false;
 | 
			
		||||
      else if ({{=$data}} === 'true' || {{=$data}} === 1)
 | 
			
		||||
        {{=$coerced}} = true;
 | 
			
		||||
    {{?? $type == 'null' }}
 | 
			
		||||
      if ({{=$data}} === '' || {{=$data}} === 0 || {{=$data}} === false)
 | 
			
		||||
        {{=$coerced}} = null;
 | 
			
		||||
    {{?? it.opts.coerceTypes == 'array' && $type == 'array' }}
 | 
			
		||||
      if ({{=$dataType}} == 'string' || {{=$dataType}} == 'number' || {{=$dataType}} == 'boolean' || {{=$data}} == null)
 | 
			
		||||
        {{=$coerced}} = [{{=$data}}];
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{~}}
 | 
			
		||||
 | 
			
		||||
  {{= $bracesCoercion }}
 | 
			
		||||
 | 
			
		||||
  if ({{=$coerced}} === undefined) {
 | 
			
		||||
    {{# def.error:'type' }}
 | 
			
		||||
  } else {
 | 
			
		||||
    {{# def.setParentData }}
 | 
			
		||||
    {{=$data}} = {{=$coerced}};
 | 
			
		||||
    {{? !$dataLvl }}if ({{=$parentData}} !== undefined){{?}}
 | 
			
		||||
      {{=$parentData}}[{{=$parentDataProperty}}] = {{=$coerced}};
 | 
			
		||||
  }
 | 
			
		||||
#}}
 | 
			
		||||
							
								
								
									
										184
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/custom.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/custom.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,184 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $rule = this
 | 
			
		||||
    , $definition = 'definition' + $lvl
 | 
			
		||||
    , $rDef = $rule.definition;
 | 
			
		||||
  var $validate = $rDef.validate;
 | 
			
		||||
  var $compile, $inline, $macro, $ruleValidate, $validateCode;
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
{{? $isData && $rDef.$data }}
 | 
			
		||||
  {{
 | 
			
		||||
    $validateCode = 'keywordValidate' + $lvl;
 | 
			
		||||
    var $validateSchema = $rDef.validateSchema;
 | 
			
		||||
  }}
 | 
			
		||||
  var {{=$definition}} = RULES.custom['{{=$keyword}}'].definition;
 | 
			
		||||
  var {{=$validateCode}} = {{=$definition}}.validate;
 | 
			
		||||
{{??}}
 | 
			
		||||
  {{
 | 
			
		||||
    $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
 | 
			
		||||
    $schemaValue = 'validate.schema' + $schemaPath;
 | 
			
		||||
    $validateCode = $ruleValidate.code;
 | 
			
		||||
    $compile = $rDef.compile;
 | 
			
		||||
    $inline = $rDef.inline;
 | 
			
		||||
    $macro = $rDef.macro;
 | 
			
		||||
  }}
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $ruleErrs = $validateCode + '.errors'
 | 
			
		||||
    , $i = 'i' + $lvl
 | 
			
		||||
    , $ruleErr = 'ruleErr' + $lvl
 | 
			
		||||
    , $asyncKeyword = $rDef.async;
 | 
			
		||||
 | 
			
		||||
  if ($asyncKeyword && !it.async)
 | 
			
		||||
    throw new Error('async keyword in sync schema');
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{? !($inline || $macro) }}{{=$ruleErrs}} = null;{{?}}
 | 
			
		||||
var {{=$errs}} = errors;
 | 
			
		||||
var {{=$valid}};
 | 
			
		||||
 | 
			
		||||
{{## def.callRuleValidate:
 | 
			
		||||
  {{=$validateCode}}.call(
 | 
			
		||||
    {{? it.opts.passContext }}this{{??}}self{{?}}
 | 
			
		||||
    {{? $compile || $rDef.schema === false }}
 | 
			
		||||
      , {{=$data}}
 | 
			
		||||
    {{??}}
 | 
			
		||||
      , {{=$schemaValue}}
 | 
			
		||||
      , {{=$data}}
 | 
			
		||||
      , validate.schema{{=it.schemaPath}}
 | 
			
		||||
    {{?}}
 | 
			
		||||
    , {{# def.dataPath }}
 | 
			
		||||
    {{# def.passParentData }}
 | 
			
		||||
    , rootData
 | 
			
		||||
  )
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{## def.extendErrors:_inline:
 | 
			
		||||
  for (var {{=$i}}={{=$errs}}; {{=$i}}<errors; {{=$i}}++) {
 | 
			
		||||
    var {{=$ruleErr}} = vErrors[{{=$i}}];
 | 
			
		||||
    if ({{=$ruleErr}}.dataPath === undefined)
 | 
			
		||||
      {{=$ruleErr}}.dataPath = (dataPath || '') + {{= it.errorPath }};
 | 
			
		||||
    {{# _inline ? 'if (\{\{=$ruleErr\}\}.schemaPath === undefined) {' : '' }}
 | 
			
		||||
      {{=$ruleErr}}.schemaPath = "{{=$errSchemaPath}}";
 | 
			
		||||
    {{# _inline ? '}' : '' }}
 | 
			
		||||
    {{? it.opts.verbose }}
 | 
			
		||||
      {{=$ruleErr}}.schema = {{=$schemaValue}};
 | 
			
		||||
      {{=$ruleErr}}.data = {{=$data}};
 | 
			
		||||
    {{?}}
 | 
			
		||||
  }
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{? $validateSchema }}
 | 
			
		||||
  {{=$valid}} = {{=$definition}}.validateSchema({{=$schemaValue}});
 | 
			
		||||
  if ({{=$valid}}) {
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{? $inline }}
 | 
			
		||||
  {{? $rDef.statements }}
 | 
			
		||||
    {{= $ruleValidate.validate }}
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {{=$valid}} = {{= $ruleValidate.validate }};
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{?? $macro }}
 | 
			
		||||
  {{# def.setupNextLevel }}
 | 
			
		||||
  {{
 | 
			
		||||
    $it.schema = $ruleValidate.validate;
 | 
			
		||||
    $it.schemaPath = '';
 | 
			
		||||
  }}
 | 
			
		||||
  {{# def.setCompositeRule }}
 | 
			
		||||
  {{ var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); }}
 | 
			
		||||
  {{# def.resetCompositeRule }}
 | 
			
		||||
  {{= $code }}
 | 
			
		||||
{{??}}
 | 
			
		||||
  {{# def.beginDefOut}}
 | 
			
		||||
    {{# def.callRuleValidate }}
 | 
			
		||||
  {{# def.storeDefOut:def_callRuleValidate }}
 | 
			
		||||
 | 
			
		||||
  {{? $rDef.errors === false }}
 | 
			
		||||
    {{=$valid}} = {{? $asyncKeyword }}{{=it.yieldAwait}}{{?}}{{= def_callRuleValidate }};
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {{? $asyncKeyword }}
 | 
			
		||||
      {{ $ruleErrs = 'customErrors' + $lvl; }}
 | 
			
		||||
      var {{=$ruleErrs}} = null;
 | 
			
		||||
      try {
 | 
			
		||||
        {{=$valid}} = {{=it.yieldAwait}}{{= def_callRuleValidate }};
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        {{=$valid}} = false;
 | 
			
		||||
        if (e instanceof ValidationError) {{=$ruleErrs}} = e.errors;
 | 
			
		||||
        else throw e;
 | 
			
		||||
      }
 | 
			
		||||
    {{??}}
 | 
			
		||||
      {{=$ruleErrs}} = null;
 | 
			
		||||
      {{=$valid}} = {{= def_callRuleValidate }};
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{? $rDef.modifying }}
 | 
			
		||||
  {{=$data}} = {{=$parentData}}[{{=$parentDataProperty}}];
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{? $validateSchema }}
 | 
			
		||||
  }
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{## def.notValidationResult:
 | 
			
		||||
  {{? $rDef.valid === undefined }}
 | 
			
		||||
    !{{? $macro }}{{=$nextValid}}{{??}}{{=$valid}}{{?}}
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {{= !$rDef.valid }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{? $rDef.valid }}
 | 
			
		||||
  {{? $breakOnError }} if (true) { {{?}}
 | 
			
		||||
{{??}}
 | 
			
		||||
  if ({{# def.notValidationResult }}) {
 | 
			
		||||
    {{ $errorKeyword = $rule.keyword; }}
 | 
			
		||||
    {{# def.beginDefOut}}
 | 
			
		||||
      {{# def.error:'custom' }}
 | 
			
		||||
    {{# def.storeDefOut:def_customError }}
 | 
			
		||||
 | 
			
		||||
    {{? $inline }}
 | 
			
		||||
      {{? $rDef.errors }}
 | 
			
		||||
        {{? $rDef.errors != 'full' }}
 | 
			
		||||
          {{# def.extendErrors:true }}
 | 
			
		||||
        {{?}}
 | 
			
		||||
      {{??}}
 | 
			
		||||
        {{? $rDef.errors === false}}
 | 
			
		||||
          {{= def_customError }}
 | 
			
		||||
        {{??}}
 | 
			
		||||
          if ({{=$errs}} == errors) {
 | 
			
		||||
            {{= def_customError }}
 | 
			
		||||
          } else {
 | 
			
		||||
            {{# def.extendErrors:true }}
 | 
			
		||||
          }
 | 
			
		||||
        {{?}}
 | 
			
		||||
      {{?}}
 | 
			
		||||
    {{?? $macro }}
 | 
			
		||||
      {{# def.extraError:'custom' }}
 | 
			
		||||
    {{??}}
 | 
			
		||||
      {{? $rDef.errors === false}}
 | 
			
		||||
        {{= def_customError }}
 | 
			
		||||
      {{??}}
 | 
			
		||||
        if (Array.isArray({{=$ruleErrs}})) {
 | 
			
		||||
          if (vErrors === null) vErrors = {{=$ruleErrs}};
 | 
			
		||||
          else vErrors = vErrors.concat({{=$ruleErrs}});
 | 
			
		||||
          errors = vErrors.length;
 | 
			
		||||
          {{# def.extendErrors:false }}
 | 
			
		||||
        } else {
 | 
			
		||||
          {{= def_customError }}
 | 
			
		||||
        }
 | 
			
		||||
      {{?}}
 | 
			
		||||
    {{?}}
 | 
			
		||||
 | 
			
		||||
  } {{? $breakOnError }} else { {{?}}
 | 
			
		||||
{{?}}
 | 
			
		||||
							
								
								
									
										32
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/defaults.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/defaults.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
{{## def.assignDefault:
 | 
			
		||||
  if ({{=$passData}} === undefined)
 | 
			
		||||
    {{=$passData}} = {{? it.opts.useDefaults == 'shared' }}
 | 
			
		||||
                       {{= it.useDefault($sch.default) }}
 | 
			
		||||
                     {{??}}
 | 
			
		||||
                       {{= JSON.stringify($sch.default) }}
 | 
			
		||||
                     {{?}};
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.defaultProperties:
 | 
			
		||||
  {{
 | 
			
		||||
    var $schema = it.schema.properties
 | 
			
		||||
      , $schemaKeys = Object.keys($schema); }}
 | 
			
		||||
  {{~ $schemaKeys:$propertyKey }}
 | 
			
		||||
    {{ var $sch = $schema[$propertyKey]; }}
 | 
			
		||||
    {{? $sch.default !== undefined }}
 | 
			
		||||
      {{ var $passData = $data + it.util.getProperty($propertyKey); }}
 | 
			
		||||
      {{# def.assignDefault }}
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{~}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.defaultItems:
 | 
			
		||||
  {{~ it.schema.items:$sch:$i }}
 | 
			
		||||
    {{? $sch.default !== undefined }}
 | 
			
		||||
      {{ var $passData = $data + '[' + $i + ']'; }}
 | 
			
		||||
      {{# def.assignDefault }}
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{~}}
 | 
			
		||||
#}}
 | 
			
		||||
							
								
								
									
										182
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/definitions.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/definitions.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,182 @@
 | 
			
		||||
{{## def.setupKeyword:
 | 
			
		||||
  {{
 | 
			
		||||
    var $lvl = it.level;
 | 
			
		||||
    var $dataLvl = it.dataLevel;
 | 
			
		||||
    var $schema = it.schema[$keyword];
 | 
			
		||||
    var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
 | 
			
		||||
    var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
 | 
			
		||||
    var $breakOnError = !it.opts.allErrors;
 | 
			
		||||
    var $errorKeyword;
 | 
			
		||||
 | 
			
		||||
    var $data = 'data' + ($dataLvl || '');
 | 
			
		||||
    var $valid = 'valid' + $lvl;
 | 
			
		||||
    var $errs = 'errs__' + $lvl;
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.setCompositeRule:
 | 
			
		||||
  {{
 | 
			
		||||
    var $wasComposite = it.compositeRule;
 | 
			
		||||
    it.compositeRule = $it.compositeRule = true;
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.resetCompositeRule:
 | 
			
		||||
  {{ it.compositeRule = $it.compositeRule = $wasComposite; }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.setupNextLevel:
 | 
			
		||||
  {{
 | 
			
		||||
    var $it = it.util.copy(it);
 | 
			
		||||
    var $closingBraces = '';
 | 
			
		||||
    $it.level++;
 | 
			
		||||
    var $nextValid = 'valid' + $it.level;
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.ifValid:
 | 
			
		||||
  {{? $breakOnError }}
 | 
			
		||||
    if ({{=$valid}}) {
 | 
			
		||||
    {{ $closingBraces += '}'; }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.ifResultValid:
 | 
			
		||||
  {{? $breakOnError }}
 | 
			
		||||
    if ({{=$nextValid}}) {
 | 
			
		||||
    {{ $closingBraces += '}'; }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.elseIfValid:
 | 
			
		||||
  {{? $breakOnError }}
 | 
			
		||||
    {{ $closingBraces += '}'; }}
 | 
			
		||||
    else {
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.nonEmptySchema:_schema:
 | 
			
		||||
  it.util.schemaHasRules(_schema, it.RULES.all)
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.strLength:
 | 
			
		||||
  {{? it.opts.unicode === false }}
 | 
			
		||||
    {{=$data}}.length
 | 
			
		||||
  {{??}}
 | 
			
		||||
    ucs2length({{=$data}})
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.willOptimize:
 | 
			
		||||
  it.util.varOccurences($code, $nextData) < 2
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.generateSubschemaCode:
 | 
			
		||||
  {{
 | 
			
		||||
    var $code = it.validate($it);
 | 
			
		||||
    $it.baseId = $currentBaseId;
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.insertSubschemaCode:
 | 
			
		||||
  {{= it.validate($it) }}
 | 
			
		||||
  {{ $it.baseId = $currentBaseId; }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def._optimizeValidate:
 | 
			
		||||
  it.util.varReplace($code, $nextData, $passData)
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.optimizeValidate:
 | 
			
		||||
  {{? {{# def.willOptimize}} }}
 | 
			
		||||
    {{= {{# def._optimizeValidate }} }}
 | 
			
		||||
  {{??}}
 | 
			
		||||
    var {{=$nextData}} = {{=$passData}};
 | 
			
		||||
    {{= $code }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.cleanUp: {{ out = it.util.cleanUpCode(out); }} #}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.cleanUpVarErrors: {{ out = it.util.cleanUpVarErrors(out, $async); }} #}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.$data:
 | 
			
		||||
  {{
 | 
			
		||||
    var $isData = it.opts.v5 && $schema && $schema.$data
 | 
			
		||||
      , $schemaValue;
 | 
			
		||||
  }}
 | 
			
		||||
  {{? $isData }}
 | 
			
		||||
    var schema{{=$lvl}} = {{= it.util.getData($schema.$data, $dataLvl, it.dataPathArr) }};
 | 
			
		||||
    {{ $schemaValue = 'schema' + $lvl; }}
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {{ $schemaValue = $schema; }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.$dataNotType:_type:
 | 
			
		||||
  {{?$isData}} ({{=$schemaValue}} !== undefined && typeof {{=$schemaValue}} != _type) || {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.check$dataIsArray:
 | 
			
		||||
  if (schema{{=$lvl}} === undefined) {{=$valid}} = true;
 | 
			
		||||
  else if (!Array.isArray(schema{{=$lvl}})) {{=$valid}} = false;
 | 
			
		||||
  else {
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.beginDefOut:
 | 
			
		||||
  {{
 | 
			
		||||
    var $$outStack = $$outStack || [];
 | 
			
		||||
    $$outStack.push(out);
 | 
			
		||||
    out = '';
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.storeDefOut:_variable:
 | 
			
		||||
  {{
 | 
			
		||||
    var _variable = out;
 | 
			
		||||
    out = $$outStack.pop();
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.dataPath:(dataPath || ''){{? it.errorPath != '""'}} + {{= it.errorPath }}{{?}}#}}
 | 
			
		||||
 | 
			
		||||
{{## def.setParentData:
 | 
			
		||||
  {{
 | 
			
		||||
    var $parentData = $dataLvl ? 'data' + (($dataLvl-1)||'') : 'parentData'
 | 
			
		||||
      , $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
 | 
			
		||||
  }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{## def.passParentData:
 | 
			
		||||
  {{# def.setParentData }}
 | 
			
		||||
  , {{= $parentData }}
 | 
			
		||||
  , {{= $parentDataProperty }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.checkOwnProperty:
 | 
			
		||||
  {{? $ownProperties }}
 | 
			
		||||
    if (!Object.prototype.hasOwnProperty.call({{=$data}}, {{=$key}})) continue;
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
							
								
								
									
										69
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/dependencies.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/dependencies.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.missing }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.setupNextLevel }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $schemaDeps = {}
 | 
			
		||||
    , $propertyDeps = {};
 | 
			
		||||
 | 
			
		||||
  for ($property in $schema) {
 | 
			
		||||
    var $sch = $schema[$property];
 | 
			
		||||
    var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
 | 
			
		||||
    $deps[$property] = $sch;
 | 
			
		||||
  }
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
var {{=$errs}} = errors;
 | 
			
		||||
 | 
			
		||||
{{ var $currentErrorPath = it.errorPath; }}
 | 
			
		||||
 | 
			
		||||
var missing{{=$lvl}};
 | 
			
		||||
{{ for (var $property in $propertyDeps) { }}
 | 
			
		||||
  {{ $deps = $propertyDeps[$property]; }}
 | 
			
		||||
  if ({{=$data}}{{= it.util.getProperty($property) }} !== undefined
 | 
			
		||||
    {{? $breakOnError }}
 | 
			
		||||
        && ({{# def.checkMissingProperty:$deps }})) {
 | 
			
		||||
        {{# def.errorMissingProperty:'dependencies' }}
 | 
			
		||||
    {{??}}
 | 
			
		||||
      ) {
 | 
			
		||||
        {{~ $deps:$reqProperty }}
 | 
			
		||||
          {{# def.allErrorsMissingProperty:'dependencies' }}
 | 
			
		||||
        {{~}}
 | 
			
		||||
    {{?}}
 | 
			
		||||
  } {{# def.elseIfValid }}
 | 
			
		||||
{{ } }}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  it.errorPath = $currentErrorPath;
 | 
			
		||||
  var $currentBaseId = $it.baseId;
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{ for (var $property in $schemaDeps) { }}
 | 
			
		||||
  {{ var $sch = $schemaDeps[$property]; }}
 | 
			
		||||
  {{? {{# def.nonEmptySchema:$sch }} }}
 | 
			
		||||
    {{=$nextValid}} = true;
 | 
			
		||||
 | 
			
		||||
    if ({{=$data}}{{= it.util.getProperty($property) }} !== undefined) {
 | 
			
		||||
      {{ 
 | 
			
		||||
        $it.schema = $sch;
 | 
			
		||||
        $it.schemaPath = $schemaPath + it.util.getProperty($property);
 | 
			
		||||
        $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
 | 
			
		||||
      }}
 | 
			
		||||
 | 
			
		||||
      {{# def.insertSubschemaCode }}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    {{# def.ifResultValid }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{ } }}
 | 
			
		||||
 | 
			
		||||
{{? $breakOnError }} 
 | 
			
		||||
  {{= $closingBraces }}
 | 
			
		||||
  if ({{=$errs}} == errors) {
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{# def.cleanUp }}
 | 
			
		||||
							
								
								
									
										30
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/enum.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/enum.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $i = 'i' + $lvl
 | 
			
		||||
    , $vSchema = 'schema' + $lvl;
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
{{? !$isData }}
 | 
			
		||||
  var {{=$vSchema}} = validate.schema{{=$schemaPath}};
 | 
			
		||||
{{?}}
 | 
			
		||||
var {{=$valid}};
 | 
			
		||||
 | 
			
		||||
{{?$isData}}{{# def.check$dataIsArray }}{{?}}
 | 
			
		||||
 | 
			
		||||
{{=$valid}} = false;
 | 
			
		||||
 | 
			
		||||
for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++)
 | 
			
		||||
  if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) {
 | 
			
		||||
    {{=$valid}} = true;
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
{{? $isData }}  }  {{?}}
 | 
			
		||||
 | 
			
		||||
{{# def.checkError:'enum' }}
 | 
			
		||||
 | 
			
		||||
{{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										185
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/errors.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/errors.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,185 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
 | 
			
		||||
{{## def._error:_rule:
 | 
			
		||||
  {{ 'istanbul ignore else'; }}
 | 
			
		||||
  {{? it.createErrors !== false }}
 | 
			
		||||
    {
 | 
			
		||||
      keyword: '{{= $errorKeyword || _rule }}'
 | 
			
		||||
      , dataPath: (dataPath || '') + {{= it.errorPath }}
 | 
			
		||||
      , schemaPath: {{=it.util.toQuotedString($errSchemaPath)}}
 | 
			
		||||
      , params: {{# def._errorParams[_rule] }}
 | 
			
		||||
      {{? it.opts.messages !== false }}
 | 
			
		||||
        , message: {{# def._errorMessages[_rule] }}
 | 
			
		||||
      {{?}}
 | 
			
		||||
      {{? it.opts.verbose }}
 | 
			
		||||
        , schema: {{# def._errorSchemas[_rule] }}
 | 
			
		||||
        , parentSchema: validate.schema{{=it.schemaPath}}
 | 
			
		||||
        , data: {{=$data}}
 | 
			
		||||
      {{?}}
 | 
			
		||||
    }
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def._addError:_rule:
 | 
			
		||||
  if (vErrors === null) vErrors = [err];
 | 
			
		||||
  else vErrors.push(err);
 | 
			
		||||
  errors++;
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.addError:_rule:
 | 
			
		||||
  var err = {{# def._error:_rule }};
 | 
			
		||||
  {{# def._addError:_rule }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.error:_rule:
 | 
			
		||||
  {{# def.beginDefOut}}
 | 
			
		||||
    {{# def._error:_rule }}
 | 
			
		||||
  {{# def.storeDefOut:__err }}
 | 
			
		||||
 | 
			
		||||
  {{? !it.compositeRule && $breakOnError }}
 | 
			
		||||
    {{ 'istanbul ignore if'; }}
 | 
			
		||||
    {{? it.async }}
 | 
			
		||||
      throw new ValidationError([{{=__err}}]);
 | 
			
		||||
    {{??}}
 | 
			
		||||
      validate.errors = [{{=__err}}];
 | 
			
		||||
      return false;
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{??}}
 | 
			
		||||
    var err = {{=__err}};
 | 
			
		||||
    {{# def._addError:_rule }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.extraError:_rule:
 | 
			
		||||
  {{# def.addError:_rule}}
 | 
			
		||||
  {{? !it.compositeRule && $breakOnError }}
 | 
			
		||||
    {{ 'istanbul ignore if'; }}
 | 
			
		||||
    {{? it.async }}
 | 
			
		||||
      throw new ValidationError(vErrors);
 | 
			
		||||
    {{??}}
 | 
			
		||||
      validate.errors = vErrors;
 | 
			
		||||
      return false;
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.checkError:_rule:
 | 
			
		||||
  if (!{{=$valid}}) {
 | 
			
		||||
    {{# def.error:_rule }}
 | 
			
		||||
  }
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.resetErrors:
 | 
			
		||||
  errors = {{=$errs}};
 | 
			
		||||
  if (vErrors !== null) {
 | 
			
		||||
    if ({{=$errs}}) vErrors.length = {{=$errs}};
 | 
			
		||||
    else vErrors = null;
 | 
			
		||||
  }
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}}
 | 
			
		||||
{{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schema}}'{{?}}#}}
 | 
			
		||||
{{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}}
 | 
			
		||||
 | 
			
		||||
{{## def._errorMessages = {
 | 
			
		||||
  $ref:            "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'",
 | 
			
		||||
  additionalItems: "'should NOT have more than {{=$schema.length}} items'",
 | 
			
		||||
  additionalProperties: "'should NOT have additional properties'",
 | 
			
		||||
  anyOf:           "'should match some schema in anyOf'",
 | 
			
		||||
  dependencies:    "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'",
 | 
			
		||||
  'enum':          "'should be equal to one of the allowed values'",
 | 
			
		||||
  format:          "'should match format \"{{#def.concatSchemaEQ}}\"'",
 | 
			
		||||
  _limit:          "'should be {{=$opStr}} {{#def.appendSchema}}",
 | 
			
		||||
  _exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'",
 | 
			
		||||
  _limitItems:     "'should NOT have {{?$keyword=='maxItems'}}more{{??}}less{{?}} than {{#def.concatSchema}} items'",
 | 
			
		||||
  _limitLength:    "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'",
 | 
			
		||||
  _limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}less{{?}} than {{#def.concatSchema}} properties'",
 | 
			
		||||
  multipleOf:      "'should be multiple of {{#def.appendSchema}}",
 | 
			
		||||
  not:             "'should NOT be valid'",
 | 
			
		||||
  oneOf:           "'should match exactly one schema in oneOf'",
 | 
			
		||||
  pattern:         "'should match pattern \"{{#def.concatSchemaEQ}}\"'",
 | 
			
		||||
  required:        "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'",
 | 
			
		||||
  type:            "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'",
 | 
			
		||||
  uniqueItems:     "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'",
 | 
			
		||||
  custom:          "'should pass \"{{=$rule.keyword}}\" keyword validation'",
 | 
			
		||||
  patternGroups:   "'should NOT have {{=$moreOrLess}} than {{=$limit}} properties matching pattern \"{{=it.util.escapeQuotes($pgProperty)}}\"'",
 | 
			
		||||
  patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''",
 | 
			
		||||
  switch:          "'should pass \"switch\" keyword validation'",
 | 
			
		||||
  constant:        "'should be equal to constant'",
 | 
			
		||||
  _formatLimit:    "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'",
 | 
			
		||||
  _formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'"
 | 
			
		||||
} #}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}}
 | 
			
		||||
{{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
 | 
			
		||||
 | 
			
		||||
{{## def._errorSchemas = {
 | 
			
		||||
  $ref:            "{{=it.util.toQuotedString($schema)}}",
 | 
			
		||||
  additionalItems: "false",
 | 
			
		||||
  additionalProperties: "false",
 | 
			
		||||
  anyOf:           "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  dependencies:    "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  'enum':          "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  format:          "{{#def.schemaRefOrQS}}",
 | 
			
		||||
  _limit:          "{{#def.schemaRefOrVal}}",
 | 
			
		||||
  _exclusiveLimit: "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  _limitItems:     "{{#def.schemaRefOrVal}}",
 | 
			
		||||
  _limitLength:    "{{#def.schemaRefOrVal}}",
 | 
			
		||||
  _limitProperties:"{{#def.schemaRefOrVal}}",
 | 
			
		||||
  multipleOf:      "{{#def.schemaRefOrVal}}",
 | 
			
		||||
  not:             "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  oneOf:           "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  pattern:         "{{#def.schemaRefOrQS}}",
 | 
			
		||||
  required:        "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  type:            "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  uniqueItems:     "{{#def.schemaRefOrVal}}",
 | 
			
		||||
  custom:          "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  patternGroups:   "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  patternRequired: "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  switch:          "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  constant:        "validate.schema{{=$schemaPath}}",
 | 
			
		||||
  _formatLimit:    "{{#def.schemaRefOrQS}}",
 | 
			
		||||
  _formatExclusiveLimit: "validate.schema{{=$schemaPath}}"
 | 
			
		||||
} #}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
 | 
			
		||||
 | 
			
		||||
{{## def._errorParams = {
 | 
			
		||||
  $ref:            "{ ref: '{{=it.util.escapeQuotes($schema)}}' }",
 | 
			
		||||
  additionalItems: "{ limit: {{=$schema.length}} }",
 | 
			
		||||
  additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }",
 | 
			
		||||
  anyOf:           "{}",
 | 
			
		||||
  dependencies:    "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }",
 | 
			
		||||
  'enum':          "{ allowedValues: schema{{=$lvl}} }",
 | 
			
		||||
  format:          "{ format: {{#def.schemaValueQS}} }",
 | 
			
		||||
  _limit:          "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }",
 | 
			
		||||
  _exclusiveLimit: "{}",
 | 
			
		||||
  _limitItems:     "{ limit: {{=$schemaValue}} }",
 | 
			
		||||
  _limitLength:    "{ limit: {{=$schemaValue}} }",
 | 
			
		||||
  _limitProperties:"{ limit: {{=$schemaValue}} }",
 | 
			
		||||
  multipleOf:      "{ multipleOf: {{=$schemaValue}} }",
 | 
			
		||||
  not:             "{}",
 | 
			
		||||
  oneOf:           "{}",
 | 
			
		||||
  pattern:         "{ pattern: {{#def.schemaValueQS}} }",
 | 
			
		||||
  required:        "{ missingProperty: '{{=$missingProperty}}' }",
 | 
			
		||||
  type:            "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }",
 | 
			
		||||
  uniqueItems:     "{ i: i, j: j }",
 | 
			
		||||
  custom:          "{ keyword: '{{=$rule.keyword}}' }",
 | 
			
		||||
  patternGroups:   "{ reason: '{{=$reason}}', limit: {{=$limit}}, pattern: '{{=it.util.escapeQuotes($pgProperty)}}' }",
 | 
			
		||||
  patternRequired: "{ missingPattern: '{{=$missingPattern}}' }",
 | 
			
		||||
  switch:          "{ caseIndex: {{=$caseIndex}} }",
 | 
			
		||||
  constant:        "{}",
 | 
			
		||||
  _formatLimit:    "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }",
 | 
			
		||||
  _formatExclusiveLimit: "{}"
 | 
			
		||||
} #}}
 | 
			
		||||
							
								
								
									
										100
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/format.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/format.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
 | 
			
		||||
{{## def.skipFormat:
 | 
			
		||||
  {{? $breakOnError }} if (true) { {{?}}
 | 
			
		||||
  {{ return out; }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{? it.opts.format === false }}{{# def.skipFormat }}{{?}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.$dataCheckFormat:
 | 
			
		||||
  {{# def.$dataNotType:'string' }}
 | 
			
		||||
  ({{? $unknownFormats === true || $allowUnknown }}
 | 
			
		||||
     ({{=$schemaValue}} && !{{=$format}}
 | 
			
		||||
      {{? $allowUnknown }}
 | 
			
		||||
        && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1
 | 
			
		||||
      {{?}}) ||
 | 
			
		||||
   {{?}}
 | 
			
		||||
   ({{=$format}} && !(typeof {{=$format}} == 'function'
 | 
			
		||||
                     ? {{? it.async}}
 | 
			
		||||
                        (async{{=$lvl}} ? {{=it.yieldAwait}} {{=$format}}({{=$data}}) : {{=$format}}({{=$data}}))
 | 
			
		||||
                       {{??}}
 | 
			
		||||
                        {{=$format}}({{=$data}})
 | 
			
		||||
                       {{?}}
 | 
			
		||||
                     : {{=$format}}.test({{=$data}}))))
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{## def.checkFormat:
 | 
			
		||||
  {{
 | 
			
		||||
    var $formatRef = 'formats' + it.util.getProperty($schema);
 | 
			
		||||
    if ($isObject) $formatRef += '.validate';
 | 
			
		||||
  }}
 | 
			
		||||
  {{? typeof $format == 'function' }}
 | 
			
		||||
    {{=$formatRef}}({{=$data}})
 | 
			
		||||
  {{??}}
 | 
			
		||||
    {{=$formatRef}}.test({{=$data}})
 | 
			
		||||
  {{?}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $unknownFormats = it.opts.unknownFormats
 | 
			
		||||
    , $allowUnknown = Array.isArray($unknownFormats);
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
{{? $isData }}
 | 
			
		||||
  {{ var $format = 'format' + $lvl; }}
 | 
			
		||||
  var {{=$format}} = formats[{{=$schemaValue}}];
 | 
			
		||||
  var isObject{{=$lvl}} = typeof {{=$format}} == 'object'
 | 
			
		||||
                          && !({{=$format}} instanceof RegExp)
 | 
			
		||||
                          && {{=$format}}.validate;
 | 
			
		||||
  if (isObject{{=$lvl}}) {
 | 
			
		||||
    {{? it.async}}
 | 
			
		||||
      var async{{=$lvl}} = {{=$format}}.async;
 | 
			
		||||
    {{?}}
 | 
			
		||||
    {{=$format}} = {{=$format}}.validate;
 | 
			
		||||
  }
 | 
			
		||||
  if ({{# def.$dataCheckFormat }}) {
 | 
			
		||||
{{??}}
 | 
			
		||||
  {{ var $format = it.formats[$schema]; }}
 | 
			
		||||
  {{? !$format }}
 | 
			
		||||
    {{? $unknownFormats === true || ($allowUnknown && $unknownFormats.indexOf($schema) == -1) }}
 | 
			
		||||
      {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }}
 | 
			
		||||
    {{??}}
 | 
			
		||||
      {{
 | 
			
		||||
        if (!$allowUnknown) {
 | 
			
		||||
          console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
 | 
			
		||||
          if ($unknownFormats !== 'ignore')
 | 
			
		||||
            console.warn('In the next major version it will throw exception. See option unknownFormats for more information');
 | 
			
		||||
        }
 | 
			
		||||
      }}
 | 
			
		||||
      {{# def.skipFormat }}
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{?}}
 | 
			
		||||
  {{
 | 
			
		||||
    var $isObject = typeof $format == 'object'
 | 
			
		||||
                    && !($format instanceof RegExp)
 | 
			
		||||
                    && $format.validate;
 | 
			
		||||
    if ($isObject) {
 | 
			
		||||
      var $async = $format.async === true;
 | 
			
		||||
      $format = $format.validate;
 | 
			
		||||
    }
 | 
			
		||||
  }}
 | 
			
		||||
  {{? $async }}
 | 
			
		||||
    {{
 | 
			
		||||
      if (!it.async) throw new Error('async format in sync schema');
 | 
			
		||||
      var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
 | 
			
		||||
    }}
 | 
			
		||||
    if (!({{=it.yieldAwait}} {{=$formatRef}}({{=$data}}))) {
 | 
			
		||||
  {{??}}
 | 
			
		||||
    if (!{{# def.checkFormat }}) {
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{?}}
 | 
			
		||||
    {{# def.error:'format' }}
 | 
			
		||||
  } {{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										101
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/items.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/items.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.setupNextLevel }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.validateItems:startFrom:
 | 
			
		||||
  for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) {
 | 
			
		||||
    {{
 | 
			
		||||
      $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
 | 
			
		||||
      var $passData = $data + '[' + $idx + ']';
 | 
			
		||||
      $it.dataPathArr[$dataNxt] = $idx;
 | 
			
		||||
    }}
 | 
			
		||||
 | 
			
		||||
    {{# def.generateSubschemaCode }}
 | 
			
		||||
    {{# def.optimizeValidate }}
 | 
			
		||||
 | 
			
		||||
    {{? $breakOnError }}
 | 
			
		||||
      if (!{{=$nextValid}}) break;
 | 
			
		||||
    {{?}}
 | 
			
		||||
  }
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{
 | 
			
		||||
  var $idx = 'i' + $lvl
 | 
			
		||||
    , $dataNxt = $it.dataLevel = it.dataLevel + 1
 | 
			
		||||
    , $nextData = 'data' + $dataNxt
 | 
			
		||||
    , $currentBaseId = it.baseId;
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
var {{=$errs}} = errors;
 | 
			
		||||
var {{=$valid}};
 | 
			
		||||
 | 
			
		||||
{{? Array.isArray($schema) }}
 | 
			
		||||
  {{ /* 'items' is an array of schemas */}}
 | 
			
		||||
  {{ var $additionalItems = it.schema.additionalItems; }}
 | 
			
		||||
  {{? $additionalItems === false }}
 | 
			
		||||
    {{=$valid}} = {{=$data}}.length <= {{= $schema.length }};
 | 
			
		||||
    {{
 | 
			
		||||
      var $currErrSchemaPath = $errSchemaPath;
 | 
			
		||||
      $errSchemaPath = it.errSchemaPath + '/additionalItems';      
 | 
			
		||||
    }}
 | 
			
		||||
    {{# def.checkError:'additionalItems' }}
 | 
			
		||||
    {{ $errSchemaPath = $currErrSchemaPath; }}
 | 
			
		||||
    {{# def.elseIfValid}}
 | 
			
		||||
  {{?}}
 | 
			
		||||
 | 
			
		||||
  {{~ $schema:$sch:$i }}
 | 
			
		||||
    {{? {{# def.nonEmptySchema:$sch }} }}
 | 
			
		||||
      {{=$nextValid}} = true;
 | 
			
		||||
 | 
			
		||||
      if ({{=$data}}.length > {{=$i}}) {
 | 
			
		||||
        {{
 | 
			
		||||
          var $passData = $data + '[' + $i + ']';
 | 
			
		||||
          $it.schema = $sch;
 | 
			
		||||
          $it.schemaPath = $schemaPath + '[' + $i + ']';
 | 
			
		||||
          $it.errSchemaPath = $errSchemaPath + '/' + $i;
 | 
			
		||||
          $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
 | 
			
		||||
          $it.dataPathArr[$dataNxt] = $i;
 | 
			
		||||
        }}
 | 
			
		||||
 | 
			
		||||
        {{# def.generateSubschemaCode }}
 | 
			
		||||
        {{# def.optimizeValidate }}
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      {{# def.ifResultValid }}
 | 
			
		||||
    {{?}}
 | 
			
		||||
  {{~}}
 | 
			
		||||
 | 
			
		||||
  {{? typeof $additionalItems == 'object' && {{# def.nonEmptySchema:$additionalItems }} }}
 | 
			
		||||
    {{
 | 
			
		||||
      $it.schema = $additionalItems;
 | 
			
		||||
      $it.schemaPath = it.schemaPath + '.additionalItems';
 | 
			
		||||
      $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
 | 
			
		||||
    }}
 | 
			
		||||
    {{=$nextValid}} = true;
 | 
			
		||||
 | 
			
		||||
    if ({{=$data}}.length > {{= $schema.length }}) {
 | 
			
		||||
      {{# def.validateItems: $schema.length }}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    {{# def.ifResultValid }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
 | 
			
		||||
{{?? {{# def.nonEmptySchema:$schema }} }}
 | 
			
		||||
  {{ /* 'items' is a single schema */}}
 | 
			
		||||
  {{
 | 
			
		||||
    $it.schema = $schema;
 | 
			
		||||
    $it.schemaPath = $schemaPath;
 | 
			
		||||
    $it.errSchemaPath = $errSchemaPath;
 | 
			
		||||
  }}
 | 
			
		||||
  {{# def.validateItems: 0 }}
 | 
			
		||||
  {{# def.ifResultValid }}
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{? $breakOnError }}
 | 
			
		||||
  {{= $closingBraces }}
 | 
			
		||||
  if ({{=$errs}} == errors) {
 | 
			
		||||
{{?}}
 | 
			
		||||
 | 
			
		||||
{{# def.cleanUp }}
 | 
			
		||||
							
								
								
									
										34
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/missing.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/missing.def
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{{## def.checkMissingProperty:_properties:
 | 
			
		||||
  {{~ _properties:_$property:$i }}
 | 
			
		||||
    {{?$i}} || {{?}}
 | 
			
		||||
    {{ var $prop = it.util.getProperty(_$property); }}
 | 
			
		||||
    ( {{=$data}}{{=$prop}} === undefined && (missing{{=$lvl}} = {{= it.util.toQuotedString(it.opts.jsonPointers ? _$property : $prop) }}) )
 | 
			
		||||
  {{~}}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{## def.errorMissingProperty:_error:
 | 
			
		||||
  {{
 | 
			
		||||
    var $propertyPath = 'missing' + $lvl
 | 
			
		||||
      , $missingProperty = '\' + ' + $propertyPath + ' + \'';
 | 
			
		||||
    if (it.opts._errorDataPathProperty) {
 | 
			
		||||
      it.errorPath = it.opts.jsonPointers
 | 
			
		||||
                      ? it.util.getPathExpr($currentErrorPath,  $propertyPath, true)
 | 
			
		||||
                      : $currentErrorPath + ' + ' + $propertyPath;
 | 
			
		||||
    }
 | 
			
		||||
  }}
 | 
			
		||||
  {{# def.error:_error }}
 | 
			
		||||
#}}
 | 
			
		||||
 | 
			
		||||
{{## def.allErrorsMissingProperty:_error:
 | 
			
		||||
  {{
 | 
			
		||||
    var $prop = it.util.getProperty($reqProperty)
 | 
			
		||||
      , $missingProperty = it.util.escapeQuotes($reqProperty);
 | 
			
		||||
    if (it.opts._errorDataPathProperty) {
 | 
			
		||||
      it.errorPath = it.util.getPath($currentErrorPath, $reqProperty, it.opts.jsonPointers);
 | 
			
		||||
    }
 | 
			
		||||
  }}
 | 
			
		||||
  if ({{=$data}}{{=$prop}} === undefined) {
 | 
			
		||||
    {{# def.addError:_error }}
 | 
			
		||||
  }
 | 
			
		||||
#}}
 | 
			
		||||
							
								
								
									
										20
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/multipleOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/multipleOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.$data }}
 | 
			
		||||
 | 
			
		||||
var division{{=$lvl}};
 | 
			
		||||
if ({{?$isData}}
 | 
			
		||||
      {{=$schemaValue}} !== undefined && (
 | 
			
		||||
      typeof {{=$schemaValue}} != 'number' ||
 | 
			
		||||
    {{?}}
 | 
			
		||||
      (division{{=$lvl}} = {{=$data}} / {{=$schemaValue}},
 | 
			
		||||
      {{? it.opts.multipleOfPrecision }}
 | 
			
		||||
        Math.abs(Math.round(division{{=$lvl}}) - division{{=$lvl}}) > 1e-{{=it.opts.multipleOfPrecision}}
 | 
			
		||||
      {{??}}
 | 
			
		||||
        division{{=$lvl}} !== parseInt(division{{=$lvl}})
 | 
			
		||||
      {{?}}
 | 
			
		||||
      )
 | 
			
		||||
    {{?$isData}}  )  {{?}} ) {
 | 
			
		||||
  {{# def.error:'multipleOf' }}
 | 
			
		||||
} {{? $breakOnError }} else { {{?}}
 | 
			
		||||
							
								
								
									
										43
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/not.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/not.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.setupNextLevel }}
 | 
			
		||||
 | 
			
		||||
{{? {{# def.nonEmptySchema:$schema }} }}
 | 
			
		||||
  {{
 | 
			
		||||
    $it.schema = $schema;
 | 
			
		||||
    $it.schemaPath = $schemaPath;
 | 
			
		||||
    $it.errSchemaPath = $errSchemaPath;
 | 
			
		||||
  }}
 | 
			
		||||
 | 
			
		||||
  var {{=$errs}} = errors;
 | 
			
		||||
 | 
			
		||||
  {{# def.setCompositeRule }}
 | 
			
		||||
 | 
			
		||||
  {{
 | 
			
		||||
    $it.createErrors = false;
 | 
			
		||||
    var $allErrorsOption;
 | 
			
		||||
    if ($it.opts.allErrors) {
 | 
			
		||||
      $allErrorsOption = $it.opts.allErrors;
 | 
			
		||||
      $it.opts.allErrors = false;
 | 
			
		||||
    }
 | 
			
		||||
  }}
 | 
			
		||||
  {{= it.validate($it) }}
 | 
			
		||||
  {{
 | 
			
		||||
    $it.createErrors = true;
 | 
			
		||||
    if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
 | 
			
		||||
  }}
 | 
			
		||||
 | 
			
		||||
  {{# def.resetCompositeRule }}
 | 
			
		||||
 | 
			
		||||
  if ({{=$nextValid}}) {
 | 
			
		||||
    {{# def.error:'not' }}
 | 
			
		||||
  } else {
 | 
			
		||||
    {{# def.resetErrors }}
 | 
			
		||||
  {{? it.opts.allErrors }} } {{?}}
 | 
			
		||||
{{??}}
 | 
			
		||||
  {{# def.addError:'not' }}
 | 
			
		||||
  {{? $breakOnError}}
 | 
			
		||||
    if (false) {
 | 
			
		||||
  {{?}}
 | 
			
		||||
{{?}}
 | 
			
		||||
							
								
								
									
										44
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/oneOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								node_modules/lzma-native/node_modules/ajv/lib/dot/oneOf.jst
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
{{# def.definitions }}
 | 
			
		||||
{{# def.errors }}
 | 
			
		||||
{{# def.setupKeyword }}
 | 
			
		||||
{{# def.setupNextLevel }}
 | 
			
		||||
 | 
			
		||||
var {{=$errs}} = errors;
 | 
			
		||||
var prevValid{{=$lvl}} = false;
 | 
			
		||||
var {{=$valid}} = false;
 | 
			
		||||
 | 
			
		||||
{{ var $currentBaseId = $it.baseId; }}
 | 
			
		||||
{{# def.setCompositeRule }}
 | 
			
		||||
 | 
			
		||||
{{~ $schema:$sch:$i }}
 | 
			
		||||
  {{? {{# def.nonEmptySchema:$sch }} }}
 | 
			
		||||
    {{
 | 
			
		||||
      $it.schema = $sch;
 | 
			
		||||
      $it.schemaPath = $schemaPath + '[' + $i + ']';
 | 
			
		||||
      $it.errSchemaPath = $errSchemaPath + '/' + $i;
 | 
			
		||||
    }}
 | 
			
		||||
 | 
			
		||||
    {{# def.insertSubschemaCode }}
 | 
			
		||||
  {{??}}
 | 
			
		||||
    var {{=$nextValid}} = true;
 | 
			
		||||
  {{?}}
 | 
			
		||||
 | 
			
		||||
  {{? $i }}
 | 
			
		||||
    if ({{=$nextValid}} && prevValid{{=$lvl}})
 | 
			
		||||
      {{=$valid}} = false;
 | 
			
		||||
    else {
 | 
			
		||||
    {{ $closingBraces += '}'; }}
 | 
			
		||||
  {{?}}
 | 
			
		||||
 | 
			
		||||
    if ({{=$nextValid}}) {{=$valid}} = prevValid{{=$lvl}} = true;
 | 
			
		||||
{{~}}
 | 
			
		||||
 | 
			
		||||
{{# def.resetCompositeRule }}
 | 
			
		||||
 | 
			
		||||
{{= $closingBraces }}
 | 
			
		||||
 | 
			
		||||
if (!{{=$valid}}) {
 | 
			
		||||
  {{# def.error:'oneOf' }}
 | 
			
		||||
} else {
 | 
			
		||||
  {{# def.resetErrors }}
 | 
			
		||||
{{? it.opts.allErrors }} } {{?}}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user