- Breaking: Require Node.js
>=20 - Improve packaging performance by caching filesystem state and directory reads
- Reduce archive filtering overhead for intermediate files through set-based lookups
- Make default PIP file resolution async and cached
- Normalize
package.xmlandstyle.xmlinto stricter internal models before processing - Improve XML structure validation with clearer semantic error messages
- Add
--jsonCLI output mode for CI and wrapper tooling - Add CLI JSON success and error coverage in tests
- Extend ESLint coverage to test files and configure Node globals for the test suite
- Clean up internal control flow in the packager to avoid local throw/catch warning patterns
- Breaking: Require Node.js
>=18 - Breaking: Package is now published as
@softcreatr/wspackager - Breaking: Package is now native ESM (CommonJS
require()is no longer supported) - Breaking: Enforce strict direct file existence checks (no case-insensitive path fallback)
- Breaking: Script/database paths must exist explicitly in source tree (implicit
files.tar-only paths are rejected) - Rebrand npm package to
@softcreatr/wspackager - Update project metadata URLs to the new
SoftCreatRMedia/wspackagerrepository - Modernize internals to Promise-based packaging flow
- Replace Babel build pipeline with native TypeScript (
tsc) build output - Replace Jest with Vitest test runner
- Remove global
process.chdir()usage and make all packaging paths source-root aware - Switch archive creation to stream-based tar pipelines
- Add structured error classes for clearer failure modes
- Expand test coverage for cwd safety and destination placeholder resolution
- Fix style instruction handling for
.tar,.tar.gz, and.tgzarchives - Rebuild style archives from unpacked style directories when present and validate
style.xmlduring rebuild - Remove temporary rebuilt style archives from source after packaging (same cleanup behavior as other prepacks)
- Improve error reporting when prepack source directories are missing or invalid
- Accept direct script/database references when they are provided via exactly one prepack source directory (for example
files/) - Show missing file validation errors as a readable list instead of a comma-separated string
- Upgrade core dependencies and tooling
- Add support for the
<void/>package instruction
Thanks to @Sir-Will for these additions!
- Add main file for usage in node scripts
- Add option to define source directory
- Add basic jest tests
- Updat all dependencies
- Add .tar.gzip output
- Fix a bug that includes an empty directory in the resulting package
- Replace some of the manual path separation in the packager with code using node's
pathmodule - Add the
-d/--destinationcommand line option to specify the destination of the package
- Fix bug where
style.xmlfile options with attributes weren't loaded
- Add support for intermediate packages that should not be packaged into the final archive (only via styles)
- Extend support for the
stylePIP that also reads thestyle.xmland packages its files as well
- Added additional default file names for XML based PIPs
- Fixed a bug where folders wouldn't be packaged on Windows
- Change main file to
lib/gulp/wspackager.jsin first step to create a gulp plugin - Parse
optionalpackageandrequiredpackagexml tags and also package the archives specified by them