node-liblzma 2.0.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +263 -67
- package/index.d.ts +60 -3
- package/lib/cli/nxz.d.ts +7 -0
- package/lib/cli/nxz.d.ts.map +1 -0
- package/lib/cli/nxz.js +486 -0
- package/lib/cli/nxz.js.map +1 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +26 -15
- package/lib/errors.js.map +1 -1
- package/lib/lzma.d.ts +319 -2
- package/lib/lzma.d.ts.map +1 -1
- package/lib/lzma.js +303 -39
- package/lib/lzma.js.map +1 -1
- package/lib/pool.d.ts.map +1 -1
- package/lib/pool.js +9 -3
- package/lib/pool.js.map +1 -1
- package/lib/types.d.ts +68 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +32 -12
- package/scripts/build_xz_with_cmake.py +23 -26
- package/src/bindings/module.cpp +196 -0
- package/src/bindings/node-liblzma.cpp +40 -4
- package/src/bindings/node-liblzma.hpp +2 -1
- package/xz-version.json +3 -3
- package/.gitattributes +0 -3
- package/.release-it.json +0 -7
- package/.release-it.manual.json +0 -7
- package/.release-it.retry.json +0 -3
- package/CHANGELOG.md +0 -271
- package/History.md +0 -79
- package/RELEASING.md +0 -131
- package/biome.json +0 -81
- package/pnpm-workspace.yaml +0 -3
- package/prebuilds/darwin-x64/node-liblzma.node +0 -0
- package/prebuilds/linux-x64/node-liblzma.node +0 -0
- package/prebuilds/win32-x64/node-liblzma.node +0 -0
- package/scripts/analyze-coverage.js +0 -132
- package/scripts/compare-coverage-tools.js +0 -93
- package/src/errors.ts +0 -167
- package/src/lzma.ts +0 -839
- package/src/pool.ts +0 -228
- package/src/types.ts +0 -30
- package/tsconfig.json +0 -50
- package/vitest.config.istanbul.ts +0 -29
- package/vitest.config.monocart.ts +0 -44
- package/vitest.config.ts +0 -52
package/CHANGELOG.md
DELETED
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [Unreleased]
|
|
9
|
-
|
|
10
|
-
## [2.0.3] - 2025-10-07
|
|
11
|
-
|
|
12
|
-
### Fixed
|
|
13
|
-
- create dedicated .release-it.retry.json for publish workflow (ci) ([007ec61](https://github.com/oorabona/node-liblzma/commit/007ec61))
|
|
14
|
-
- ignore local .release-it.json in publish workflow (ci) ([0958cc3](https://github.com/oorabona/node-liblzma/commit/0958cc3))
|
|
15
|
-
- use correct release-it-preset CLI syntax (ci) ([210343e](https://github.com/oorabona/node-liblzma/commit/210343e))
|
|
16
|
-
- use npm config set for authentication (ci) ([8e6abcc](https://github.com/oorabona/node-liblzma/commit/8e6abcc))
|
|
17
|
-
- configure npm authentication in publish workflow (ci) ([5b085e4](https://github.com/oorabona/node-liblzma/commit/5b085e4))
|
|
18
|
-
- use tar.gz archives for cross-platform prebuild distribution (ci) ([bc6c213](https://github.com/oorabona/node-liblzma/commit/bc6c213))
|
|
19
|
-
- preserve prebuild directory structure to prevent file overwriting (ci) ([ac8f364](https://github.com/oorabona/node-liblzma/commit/ac8f364))
|
|
20
|
-
- remove build duplication and fix release-it command in publish workflow (ci) ([b0588ca](https://github.com/oorabona/node-liblzma/commit/b0588ca))
|
|
21
|
-
- skip build scripts in publish workflow (ci) ([eb7ab76](https://github.com/oorabona/node-liblzma/commit/eb7ab76))
|
|
22
|
-
- force bash shell for XZ download step on Windows (ci) ([73b6839](https://github.com/oorabona/node-liblzma/commit/73b6839))
|
|
23
|
-
|
|
24
|
-
## [2.0.2] - 2025-10-07
|
|
25
|
-
|
|
26
|
-
### Added
|
|
27
|
-
- refactor release workflow to use Pull Request strategy (ci) ([b2797fd](https://github.com/oorabona/node-liblzma/commit/b2797fd))
|
|
28
|
-
- optimize XZ management with artifacts and move prebuildify to CI-only (ci) ([de7d825](https://github.com/oorabona/node-liblzma/commit/de7d825))
|
|
29
|
-
- optimize XZ source management with artifacts and fix prebuildify PATH (ci) ([3984e19](https://github.com/oorabona/node-liblzma/commit/3984e19))
|
|
30
|
-
- optimize XZ source management with GitHub Actions artifacts (ci) ([0dec8f8](https://github.com/oorabona/node-liblzma/commit/0dec8f8))
|
|
31
|
-
- simplify republish workflow by removing target options and using boolean for npm publish (workflows) ([d1e188d](https://github.com/oorabona/node-liblzma/commit/d1e188d))
|
|
32
|
-
|
|
33
|
-
### Fixed
|
|
34
|
-
- remove CHANGELOG update and dry-run validation steps since default handles both directly (release) ([8ff80f8](https://github.com/oorabona/node-liblzma/commit/8ff80f8))
|
|
35
|
-
- skip native module compilation in release workflow (ci) ([53fc871](https://github.com/oorabona/node-liblzma/commit/53fc871))
|
|
36
|
-
- correct gyp staleness detection to prevent unconditional XZ downloads (build) ([6ed20dd](https://github.com/oorabona/node-liblzma/commit/6ed20dd))
|
|
37
|
-
- prevent double compilation and ensure prebuildify executes (ci) ([4dece66](https://github.com/oorabona/node-liblzma/commit/4dece66))
|
|
38
|
-
- add tag normalization and fix checkout refs for reproducible builds (workflows) ([2c7beee](https://github.com/oorabona/node-liblzma/commit/2c7beee))
|
|
39
|
-
- add automatic 'v' prefix normalization to prevent tag mismatch (workflows) ([862dd89](https://github.com/oorabona/node-liblzma/commit/862dd89))
|
|
40
|
-
|
|
41
|
-
## [2.0.1] - 2025-10-07
|
|
42
|
-
|
|
43
|
-
### Changed
|
|
44
|
-
- **Vitest Configuration**: Universal fork-based worker pool with increased timeouts to resolve Vitest bug #8201
|
|
45
|
-
- Changed from conditional forks (macOS only) to universal forks for all platforms
|
|
46
|
-
- Increased testTimeout from 5000ms to 10000ms
|
|
47
|
-
- Added hookTimeout of 10000ms
|
|
48
|
-
- Configured singleFork and isolate options for better stability
|
|
49
|
-
- Increased workflow retry attempts from 3 to 5 for better reliability
|
|
50
|
-
- **CI/CD Workflow Architecture**:
|
|
51
|
-
- Extracted hardcoded Node.js version to environment variable (NODE_VERSION: '22')
|
|
52
|
-
- Added retry mechanism for all test executions (5 attempts with 10-minute timeout)
|
|
53
|
-
- Changed `tags-ignore` to `tags` in ci-unified.yml to allow CI validation before releases
|
|
54
|
-
- Removed duplicate test execution from release.yml (violates DRY and SRP principles)
|
|
55
|
-
- Added check-ci job to verify CI passed before building prebuilds and publishing
|
|
56
|
-
|
|
57
|
-
### Fixed
|
|
58
|
-
- **Test Stability**: Fixed "Channel closed" (ERR_IPC_CHANNEL_CLOSED) errors on GitHub Actions macOS runners
|
|
59
|
-
- **Workflow Duplication**: Eliminated duplicate test execution between ci-unified.yml and release.yml
|
|
60
|
-
- **Release Safety**: Added CI verification step to ensure all checks pass before publishing to npm
|
|
61
|
-
|
|
62
|
-
## [2.0.0] - 2025-10-06
|
|
63
|
-
|
|
64
|
-
### Added
|
|
65
|
-
- **TypeScript Support**: Complete migration from CoffeeScript to TypeScript for better type safety and developer experience
|
|
66
|
-
- **Promise APIs**: New async functions `xzAsync()` and `unxzAsync()` with Promise support
|
|
67
|
-
- **Typed Error Classes**: 8 specialized error classes (`LZMAMemoryError`, `LZMADataError`, `LZMAFormatError`, etc.) with factory pattern for precise error handling
|
|
68
|
-
- **Concurrency Control**: `LZMAPool` class with EventEmitter-based monitoring for production environments
|
|
69
|
-
- Automatic backpressure and queue management
|
|
70
|
-
- Configurable concurrency limits
|
|
71
|
-
- Real-time metrics (`active`, `queued`, `completed`, `failed`)
|
|
72
|
-
- Events: `queue`, `start`, `complete`, `error-task`, `metrics`
|
|
73
|
-
- **File Helpers**: Simplified `xzFile()` and `unxzFile()` functions for file-based compression
|
|
74
|
-
- **Modern Testing**: Migrated from Mocha to Vitest with improved performance and TypeScript integration
|
|
75
|
-
- **100% Code Coverage**: Comprehensive test suite (320+ tests) covering all statements, branches, functions, and lines
|
|
76
|
-
- **Enhanced Tooling**:
|
|
77
|
-
- [Biome](https://biomejs.dev/) for fast linting and formatting
|
|
78
|
-
- Pre-commit hooks with nano-staged and simple-git-hooks
|
|
79
|
-
- pnpm as package manager for better dependency management
|
|
80
|
-
- **Security**:
|
|
81
|
-
- Fixed FunctionReference memory leak using smart pointers with custom deleter
|
|
82
|
-
- Added 512MB buffer size validation to prevent DoS attacks
|
|
83
|
-
- CodeQL workflow for continuous security scanning
|
|
84
|
-
- Dependabot configuration for automated dependency updates
|
|
85
|
-
- Enhanced tarball extraction with path validation and safety checks against path traversal
|
|
86
|
-
- **Thread Support**: Multi-threaded compression with configurable thread count
|
|
87
|
-
- **Automatic Filter Reordering**: LZMA2 filter automatically moved to end as required by liblzma
|
|
88
|
-
- **Factory Functions**: `createXz()` and `createUnxz()` to avoid circular dependencies in ESM
|
|
89
|
-
- **XZ Version Management**: Automated version tracking and update workflows for XZ Utils
|
|
90
|
-
- **CI/CD Enhancements**:
|
|
91
|
-
- Unified CI pipeline with smart smoke/full test detection
|
|
92
|
-
- Conditional test execution based on PR vs push vs schedule
|
|
93
|
-
- Composite GitHub Actions for dependency installation and environment setup
|
|
94
|
-
- XZ source caching with GitHub token support
|
|
95
|
-
- Upgraded to setup-node v5 across all workflows
|
|
96
|
-
- GITHUB_TOKEN environment variable for authenticated downloads
|
|
97
|
-
- **.gitattributes**: Line ending normalization for cross-platform consistency
|
|
98
|
-
|
|
99
|
-
### Changed
|
|
100
|
-
- **Breaking**: Requires Node.js >= 16 (updated from >= 12)
|
|
101
|
-
- **Breaking**: Module is now ESM-only (`"type": "module"`)
|
|
102
|
-
- **Build System**: Modernized to use CMake for XZ Utils compilation
|
|
103
|
-
- Environment variable configuration for runtime linking (`RUNTIME_LINK=static|shared`)
|
|
104
|
-
- Threading support configuration (`ENABLE_THREAD_SUPPORT=yes|no`)
|
|
105
|
-
- Global liblzma usage option (`USE_GLOBAL=true|false`)
|
|
106
|
-
- Disabled CLI tools to avoid libintl dependency on macOS
|
|
107
|
-
- **XZ Utils**: Updated from 5.6.3 to 5.8.1 with complete CMake support
|
|
108
|
-
- **macOS Support**: Enhanced dylib handling with proper RPATH configuration
|
|
109
|
-
- Smart install_name verification and fixing for shared libraries
|
|
110
|
-
- Proper linker flags via xcode_settings
|
|
111
|
-
- Only applies install_name fixes to shared library builds
|
|
112
|
-
- **Windows Support**: Improved threading and DLL handling
|
|
113
|
-
- Thread support now works with both static and shared builds
|
|
114
|
-
- Fixed kernel32.lib linking for MSVC
|
|
115
|
-
- Automated library name fixing for binding.gyp compatibility
|
|
116
|
-
- Python-based DLL copying for better reliability
|
|
117
|
-
- **Vitest Configuration**: Fork-based worker pool on macOS to avoid IPC channel errors
|
|
118
|
-
- **CI Workflows**:
|
|
119
|
-
- Consolidated from 5 workflows to 1 unified pipeline
|
|
120
|
-
- Smoke tests and full tests are now mutually exclusive
|
|
121
|
-
- Proper handling of skipped job states in CI summary
|
|
122
|
-
- Enhanced caching strategy and matrix testing
|
|
123
|
-
- Path filters to avoid unnecessary runs
|
|
124
|
-
- **Code Quality**: Simplified instance data management and improved buffer handling
|
|
125
|
-
- Standardized error messages (removed "BUG?" prefixes) for production-ready error handling
|
|
126
|
-
- Improved async callback handling and error management
|
|
127
|
-
- Enhanced TypeScript configuration for better test reliability
|
|
128
|
-
|
|
129
|
-
### Fixed
|
|
130
|
-
- **macOS Build Issues**:
|
|
131
|
-
- Fixed dylib loading errors (`Library not loaded: @rpath/liblzma.5.dylib`)
|
|
132
|
-
- Resolved libintl dependency issues by disabling XZ CLI tools
|
|
133
|
-
- Fixed RPATH configuration in binding.gyp and CMake
|
|
134
|
-
- Corrected install_name verification for shared vs static builds
|
|
135
|
-
- **Windows Build Issues**:
|
|
136
|
-
- Fixed NAPI_VERSION redefinition error
|
|
137
|
-
- Resolved DLL loading for shared library builds
|
|
138
|
-
- Fixed threading support configuration
|
|
139
|
-
- Corrected Windows library naming for compatibility
|
|
140
|
-
- **CI/CD Issues**:
|
|
141
|
-
- Fixed pipeline failure when smoke test is skipped
|
|
142
|
-
- Fixed conditional check for global liblzma usage
|
|
143
|
-
- Removed unnecessary shell specifications
|
|
144
|
-
- Fixed caching strategy and matrix configuration
|
|
145
|
-
- **Test Issues**:
|
|
146
|
-
- Skip negative threads test if threading not supported
|
|
147
|
-
- Fixed TypeScript error handling in tests
|
|
148
|
-
- **Code Issues**:
|
|
149
|
-
- Resolved C++ exception handling with `NAPI_DISABLE_CPP_EXCEPTIONS`
|
|
150
|
-
- Corrected memory management in async operations (Ref/Unref balance)
|
|
151
|
-
- Fixed filter validation bug causing `LZMA_OPTIONS_ERROR` with multiple filters
|
|
152
|
-
- Fixed memory leak in FunctionReference lifecycle management
|
|
153
|
-
- Fixed memory leaks and race conditions in C++ bindings
|
|
154
|
-
- Fixed filters array mutation by cloning in LZMAOptions
|
|
155
|
-
- Fixed XzStream destructuring for clarity
|
|
156
|
-
- Fixed LZMA2 filter ordering to ensure it's always last
|
|
157
|
-
- **General**:
|
|
158
|
-
- Fixed download script symbolic link safety checks
|
|
159
|
-
- Added `*.log` to .gitignore
|
|
160
|
-
- Fixed tsconfig formatting
|
|
161
|
-
- Improved code formatting consistency
|
|
162
|
-
|
|
163
|
-
## [1.1.9] - Previous Release
|
|
164
|
-
|
|
165
|
-
### Fixed
|
|
166
|
-
- Fix building if no prebuilt binary found
|
|
167
|
-
|
|
168
|
-
## [1.1.7]
|
|
169
|
-
|
|
170
|
-
### Fixed
|
|
171
|
-
- Fix build system
|
|
172
|
-
- Fix release system
|
|
173
|
-
- Fix documentation
|
|
174
|
-
|
|
175
|
-
## [1.1.0]
|
|
176
|
-
|
|
177
|
-
### Changed
|
|
178
|
-
- Refactor to deprecate Nan in favor of N-API
|
|
179
|
-
- Drop UBS building system to use standard `node-gyp`
|
|
180
|
-
- Support building on Linux, MacOSX and Windows
|
|
181
|
-
- Ability to build from preinstalled libraries as well as download from XZ website
|
|
182
|
-
- Deprecate Travis CI and AppVeyor to use GitHub Workflows
|
|
183
|
-
|
|
184
|
-
## [1.0.5]
|
|
185
|
-
|
|
186
|
-
### Added
|
|
187
|
-
- Added CI for OSX and Windows
|
|
188
|
-
- Implemented use of node-pre-gyp instead of node-gyp
|
|
189
|
-
|
|
190
|
-
### Fixed
|
|
191
|
-
- Better build script, bug fixing
|
|
192
|
-
|
|
193
|
-
## [1.0.3]
|
|
194
|
-
|
|
195
|
-
### Changed
|
|
196
|
-
- Updated to latest versions of dependencies
|
|
197
|
-
|
|
198
|
-
### Added
|
|
199
|
-
- NodeJS 6.x is now supported
|
|
200
|
-
|
|
201
|
-
## [1.0.2]
|
|
202
|
-
|
|
203
|
-
### Fixed
|
|
204
|
-
- Fixed build.yml to work with new UBS 0.6.1
|
|
205
|
-
|
|
206
|
-
## [1.0.1]
|
|
207
|
-
|
|
208
|
-
### Fixed
|
|
209
|
-
- Fixed minor bugs
|
|
210
|
-
|
|
211
|
-
## [1.0.0]
|
|
212
|
-
|
|
213
|
-
### Changed
|
|
214
|
-
- JS Library has been renamed to `lzma`
|
|
215
|
-
|
|
216
|
-
### Fixed
|
|
217
|
-
- All known bugs have been fixed
|
|
218
|
-
|
|
219
|
-
## [0.5.0]
|
|
220
|
-
|
|
221
|
-
### Changed
|
|
222
|
-
- Rewrote large parts with Nan so now it supports 0.12+, 3+, 4+
|
|
223
|
-
|
|
224
|
-
### Fixed
|
|
225
|
-
- Fixed syntax in XzStream.coffee
|
|
226
|
-
|
|
227
|
-
### Removed
|
|
228
|
-
- Apparently not anymore 0.10 support
|
|
229
|
-
|
|
230
|
-
## [0.4.3]
|
|
231
|
-
|
|
232
|
-
### Changed
|
|
233
|
-
- Changes in build system (now using ubs to compile/run tests)
|
|
234
|
-
|
|
235
|
-
### Fixed
|
|
236
|
-
- Applied a fix for 'availInAfter' in stream callback, after [#6032](https://github.com/joyent/node/issues/6032)
|
|
237
|
-
- Fixed bad variable init in binding module
|
|
238
|
-
|
|
239
|
-
## [0.3.0]
|
|
240
|
-
|
|
241
|
-
### Added
|
|
242
|
-
- Added multithread support
|
|
243
|
-
- ENABLE_MT is now available to compile with thread support
|
|
244
|
-
- Added new test cases
|
|
245
|
-
|
|
246
|
-
## [0.2.0]
|
|
247
|
-
|
|
248
|
-
### Added
|
|
249
|
-
- Full sync support
|
|
250
|
-
- Added new test cases (sync/async)
|
|
251
|
-
|
|
252
|
-
### Changed
|
|
253
|
-
- Completed import of NodeJS Zlib API
|
|
254
|
-
|
|
255
|
-
### Fixed
|
|
256
|
-
- Bug fixes
|
|
257
|
-
|
|
258
|
-
## [0.1.0] - Initial Release
|
|
259
|
-
|
|
260
|
-
### Added
|
|
261
|
-
- Initial version
|
|
262
|
-
- C++ binding support ENCODE/DECODE
|
|
263
|
-
- Async support
|
|
264
|
-
|
|
265
|
-
[Unreleased]: https://github.com/oorabona/node-liblzma/compare/v2.0.3...HEAD
|
|
266
|
-
[v2.0.1]: https://github.com/oorabona/node-liblzma/releases/tag/v2.0.1
|
|
267
|
-
[2.0.1]: https://github.com/oorabona/node-liblzma/releases/tag/v2.0.1
|
|
268
|
-
[v2.0.2]: https://github.com/oorabona/node-liblzma/releases/tag/v2.0.2
|
|
269
|
-
[2.0.2]: https://github.com/oorabona/node-liblzma/releases/tag/v2.0.2
|
|
270
|
-
[v2.0.3]: https://github.com/oorabona/node-liblzma/releases/tag/v2.0.3
|
|
271
|
-
[2.0.3]: https://github.com/oorabona/node-liblzma/releases/tag/v2.0.3
|
package/History.md
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# History.md
|
|
2
|
-
|
|
3
|
-
> **Note**: This file is deprecated. Please see [CHANGELOG.md](./CHANGELOG.md) for the current changelog following the [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format.
|
|
4
|
-
|
|
5
|
-
# 2.0.0
|
|
6
|
-
* **Breaking**: Modernized testing framework from Mocha to Vitest
|
|
7
|
-
* **Breaking**: Modernized stack from Coffeescript to Typescript
|
|
8
|
-
* **Feature**: Added 100% code coverage (51 tests covering all statements, branches, functions, and lines)
|
|
9
|
-
* **Feature**: Implemented automatic filter reordering (LZMA2 filter automatically moved to end as required by liblzma)
|
|
10
|
-
* **Fix**: Resolved C++ exception handling issues with NAPI_DISABLE_CPP_EXCEPTIONS for better performance
|
|
11
|
-
* **Fix**: Corrected memory management in async operations (Ref/Unref balance)
|
|
12
|
-
* **Fix**: Fixed filter validation bug causing LZMA_OPTIONS_ERROR with multiple filters
|
|
13
|
-
* **CI**: Consolidated GitHub Actions workflows from 5 separate workflows to 1 unified pipeline
|
|
14
|
-
* **CI**: Enhanced caching strategy and matrix testing with conditional execution
|
|
15
|
-
* **CI**: Added path filters to avoid unnecessary CI runs for documentation-only changes
|
|
16
|
-
* **CI**: Optimized XZ source downloading with single download shared across all jobs
|
|
17
|
-
* **Performance**: Improved async callback handling and error management
|
|
18
|
-
* **Testing**: Added comprehensive edge case coverage including malformed inputs and threading tests
|
|
19
|
-
* **Testing**: Enhanced TypeScript configuration for better test reliability
|
|
20
|
-
|
|
21
|
-
# 1.1.9
|
|
22
|
-
* Fix building if no prebuilt binary found
|
|
23
|
-
|
|
24
|
-
# 1.1.7
|
|
25
|
-
* Fix build system
|
|
26
|
-
* Fix release system
|
|
27
|
-
* Fix documentation
|
|
28
|
-
|
|
29
|
-
# 1.1.0
|
|
30
|
-
* Refactor to deprecate Nan in favor of N-API
|
|
31
|
-
* Drop UBS building system to use standard `node-gyp`
|
|
32
|
-
* Support building on Linux, MacOSX and Windows
|
|
33
|
-
* Ability to build from preinstalled libraries as well as download from XZ website
|
|
34
|
-
* Deprecate Travis CI and AppVeyor to use GitHub Workflows
|
|
35
|
-
|
|
36
|
-
# 1.0.5
|
|
37
|
-
* Added CI for OSX and Windows
|
|
38
|
-
* Implemented use of node-pre-gyp instead of node-gyp
|
|
39
|
-
* Better build script, bug fixing.
|
|
40
|
-
|
|
41
|
-
# 1.0.3
|
|
42
|
-
* Updated to latest versions of dependencies
|
|
43
|
-
* NodeJS 6.x is now supported
|
|
44
|
-
|
|
45
|
-
# 1.0.2
|
|
46
|
-
* Fixed build.yml to work with new UBS 0.6.1.
|
|
47
|
-
|
|
48
|
-
# 1.0.1
|
|
49
|
-
* Fixed minor bugs
|
|
50
|
-
|
|
51
|
-
# 1.0.0
|
|
52
|
-
* All known bugs have been fixed
|
|
53
|
-
* JS Library has been renamed to ```lzma```, no big deal :smile:
|
|
54
|
-
|
|
55
|
-
# 0.5.0
|
|
56
|
-
* Rewrote large parts with Nan so now it supports 0.12+, 3+, 4+
|
|
57
|
-
* BUG: Apparently not anymore 0.10 ...
|
|
58
|
-
* Fixed syntax in XzStream.coffee
|
|
59
|
-
|
|
60
|
-
# 0.4.3
|
|
61
|
-
* Changes in build system (now using ubs to compile/run tests)
|
|
62
|
-
* Applied a fix for 'availInAfter' in stream callback, after [#6032](https://github.com/joyent/node/issues/6032)
|
|
63
|
-
* Fixed bad variable init in binding module
|
|
64
|
-
|
|
65
|
-
# 0.3.0
|
|
66
|
-
* Added multithread support
|
|
67
|
-
* ENABLE_MT is now available to compile with thread support
|
|
68
|
-
* Added new test cases
|
|
69
|
-
|
|
70
|
-
# 0.2.0
|
|
71
|
-
* Bug fixes :)
|
|
72
|
-
* Completed import of NodeJS Zlib API
|
|
73
|
-
* Full sync support
|
|
74
|
-
* Added new test cases (sync/async)
|
|
75
|
-
|
|
76
|
-
# 0.1.0
|
|
77
|
-
* Initial version
|
|
78
|
-
* C++ binding support ENCODE/DECODE
|
|
79
|
-
* Async support
|
package/RELEASING.md
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# Release Process
|
|
2
|
-
|
|
3
|
-
## Prerequisites
|
|
4
|
-
|
|
5
|
-
1. Ensure all tests pass: `pnpm test`
|
|
6
|
-
2. Ensure build succeeds: `pnpm build`
|
|
7
|
-
3. Ensure working directory is clean: `git status`
|
|
8
|
-
4. Ensure you're on `master` branch: `git branch`
|
|
9
|
-
5. Ensure you have npm credentials: `npm whoami`
|
|
10
|
-
|
|
11
|
-
## Standard Release
|
|
12
|
-
|
|
13
|
-
### Step 1: Run release-it locally
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# For patch release (1.1.9 → 1.1.10)
|
|
17
|
-
pnpm release patch
|
|
18
|
-
|
|
19
|
-
# For minor release (1.1.9 → 1.2.0)
|
|
20
|
-
pnpm release minor
|
|
21
|
-
|
|
22
|
-
# For major release (1.1.9 → 2.0.0)
|
|
23
|
-
pnpm release major
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
This will:
|
|
27
|
-
1. Update CHANGELOG.md (move [Unreleased] to new version section)
|
|
28
|
-
2. Bump version in package.json
|
|
29
|
-
3. Git commit with message "release: bump vX.Y.Z"
|
|
30
|
-
4. Create git tag vX.Y.Z
|
|
31
|
-
5. Push to GitHub
|
|
32
|
-
|
|
33
|
-
### Step 2: Wait for automated workflow
|
|
34
|
-
|
|
35
|
-
GitHub Actions will automatically:
|
|
36
|
-
1. Run full test suite
|
|
37
|
-
2. Build prebuilds for all platforms (3 OS × 4 Node versions)
|
|
38
|
-
3. Publish to npm with provenance
|
|
39
|
-
4. Create GitHub release
|
|
40
|
-
|
|
41
|
-
Monitor: https://github.com/oorabona/node-liblzma/actions
|
|
42
|
-
|
|
43
|
-
### Step 3: Verify release
|
|
44
|
-
|
|
45
|
-
1. Check npm: https://www.npmjs.com/package/node-liblzma
|
|
46
|
-
2. Check GitHub releases: https://github.com/oorabona/node-liblzma/releases
|
|
47
|
-
3. Test installation: `pnpm add node-liblzma@latest`
|
|
48
|
-
|
|
49
|
-
## Pre-release
|
|
50
|
-
|
|
51
|
-
For alpha/beta/rc releases, use the pre-release workflow:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
# Trigger manually via GitHub UI
|
|
55
|
-
# https://github.com/oorabona/node-liblzma/actions/workflows/pre-release.yml
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Hotfix Release
|
|
59
|
-
|
|
60
|
-
For emergency patches on older versions:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
pnpm release:hotfix
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Dry Run (Test Before Release)
|
|
67
|
-
|
|
68
|
-
Always test the release process without actually publishing:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
# Dry run mode (no git push, no npm publish)
|
|
72
|
-
pnpm release major --dry-run
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
This will:
|
|
76
|
-
- Show you exactly what will happen
|
|
77
|
-
- Update local files (you can review)
|
|
78
|
-
- NOT push to GitHub
|
|
79
|
-
- NOT publish to npm
|
|
80
|
-
|
|
81
|
-
## Troubleshooting
|
|
82
|
-
|
|
83
|
-
### release-it fails with "Not authenticated"
|
|
84
|
-
|
|
85
|
-
Run: `npm login`
|
|
86
|
-
|
|
87
|
-
### Workflow fails with "NPM_TOKEN not found"
|
|
88
|
-
|
|
89
|
-
Contact repository admin to add NPM_TOKEN secret to GitHub repository settings.
|
|
90
|
-
|
|
91
|
-
### Tag already exists
|
|
92
|
-
|
|
93
|
-
Delete local and remote tag:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
git tag -d v2.0.0
|
|
97
|
-
git push origin :refs/tags/v2.0.0
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Then re-run: `pnpm release`
|
|
101
|
-
|
|
102
|
-
### Wrong branch
|
|
103
|
-
|
|
104
|
-
Ensure you're on `master`:
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
git checkout master
|
|
108
|
-
git pull origin master
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Release Architecture
|
|
112
|
-
|
|
113
|
-
The release process uses a **separation of concerns** approach:
|
|
114
|
-
|
|
115
|
-
1. **Local (Developer)**: Version management via `@oorabona/release-it-preset`
|
|
116
|
-
- Updates CHANGELOG.md
|
|
117
|
-
- Bumps package.json version
|
|
118
|
-
- Creates git tag
|
|
119
|
-
- Pushes to GitHub
|
|
120
|
-
|
|
121
|
-
2. **CI/CD (GitHub Actions)**: Build and publishing via `release.yml`
|
|
122
|
-
- Runs tests
|
|
123
|
-
- Builds platform-specific prebuilds
|
|
124
|
-
- Publishes to npm with provenance
|
|
125
|
-
- Creates GitHub release
|
|
126
|
-
|
|
127
|
-
This ensures:
|
|
128
|
-
- Developer controls version and changelog
|
|
129
|
-
- CI handles platform-specific builds (which can't be done locally)
|
|
130
|
-
- Clear audit trail for releases
|
|
131
|
-
- Automated quality gates before publishing
|
package/biome.json
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.2.2/schema.json",
|
|
3
|
-
"vcs": {
|
|
4
|
-
"enabled": true,
|
|
5
|
-
"clientKind": "git",
|
|
6
|
-
"useIgnoreFile": true
|
|
7
|
-
},
|
|
8
|
-
"files": {
|
|
9
|
-
"includes": [
|
|
10
|
-
"**/src/**/*",
|
|
11
|
-
"**/test/**/*",
|
|
12
|
-
"**/*.ts",
|
|
13
|
-
"**/*.js",
|
|
14
|
-
"**/*.mts",
|
|
15
|
-
"**/*.cts",
|
|
16
|
-
"**/*.json",
|
|
17
|
-
"!**/lib/**/*",
|
|
18
|
-
"!**/build/**/*",
|
|
19
|
-
"!**/node_modules/**/*",
|
|
20
|
-
"!**/*.d.ts",
|
|
21
|
-
"!**/*.coffee"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"formatter": {
|
|
25
|
-
"enabled": true,
|
|
26
|
-
"formatWithErrors": false,
|
|
27
|
-
"indentStyle": "space",
|
|
28
|
-
"indentWidth": 2,
|
|
29
|
-
"lineEnding": "lf",
|
|
30
|
-
"lineWidth": 100,
|
|
31
|
-
"attributePosition": "auto"
|
|
32
|
-
},
|
|
33
|
-
"assist": { "actions": { "source": { "organizeImports": "on" } } },
|
|
34
|
-
"linter": {
|
|
35
|
-
"enabled": true,
|
|
36
|
-
"rules": {
|
|
37
|
-
"recommended": true,
|
|
38
|
-
"correctness": {
|
|
39
|
-
"noUnusedVariables": "warn",
|
|
40
|
-
"noUnusedImports": "warn"
|
|
41
|
-
},
|
|
42
|
-
"style": {
|
|
43
|
-
"useConsistentArrayType": "error",
|
|
44
|
-
"useForOf": "warn",
|
|
45
|
-
"useTemplate": "warn"
|
|
46
|
-
},
|
|
47
|
-
"suspicious": {
|
|
48
|
-
"noExplicitAny": "warn",
|
|
49
|
-
"noArrayIndexKey": "warn"
|
|
50
|
-
},
|
|
51
|
-
"complexity": {
|
|
52
|
-
"noExcessiveCognitiveComplexity": "warn",
|
|
53
|
-
"noVoid": "off"
|
|
54
|
-
},
|
|
55
|
-
"performance": {
|
|
56
|
-
"noDelete": "warn"
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
"javascript": {
|
|
61
|
-
"formatter": {
|
|
62
|
-
"quoteStyle": "single",
|
|
63
|
-
"jsxQuoteStyle": "double",
|
|
64
|
-
"quoteProperties": "asNeeded",
|
|
65
|
-
"trailingCommas": "es5",
|
|
66
|
-
"semicolons": "always",
|
|
67
|
-
"arrowParentheses": "always",
|
|
68
|
-
"bracketSpacing": true,
|
|
69
|
-
"bracketSameLine": false,
|
|
70
|
-
"attributePosition": "auto"
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
"json": {
|
|
74
|
-
"formatter": {
|
|
75
|
-
"enabled": true
|
|
76
|
-
},
|
|
77
|
-
"linter": {
|
|
78
|
-
"enabled": true
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
package/pnpm-workspace.yaml
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|