Files
xslt-tools/CHANGELOG.md

108 lines
5.3 KiB
Markdown

# Changelog
## 0.4.2
### Changed
- Upgraded Toolbox Contract, React Shell, and Testkit dependencies to 0.2.2.
- Moved the Toolbox icon and `add·ideas Toolbox` label to the fixed far-left block and placed Help, the XSLT-specific Gitea source link, Apps, and Personalize in reverse order in the fixed right cluster while keeping the app title and tagline centered.
## 0.4.1
### Changed
- Upgraded Toolbox Contract, React Shell, and Testkit dependencies to 0.2.1.
- Adopted the stable shared top bar: the fixed left cluster contains Personalize, Apps, the XSLT-specific Gitea source link, and Help; the app title and one tagline remain centered; and the fixed far-right block contains the Toolbox icon and `add·ideas Toolbox` label.
## 0.4.0
### Added
- Added the unified Toolbox top bar with a centered app title, standard Help and Gitea source controls, Personalize, and Apps switching.
- Added persistent System, Light, and Dark appearance choices shared with the Toolbox Portal.
- Added a real dark CodeMirror configuration with dark editor surfaces, gutters, active lines, and syntax highlighting.
### Changed
- Upgraded Toolbox Contract, React Shell, and Testkit dependencies to 0.2.0.
- Replaced the app-specific Help and Source actions with the shared shell controls and manifest repository fallback.
- Converted workbench controls, cards, diagnostics, dialogs, tables, and editor chrome to semantic theme variables.
## 0.3.2
### Added
- Added a typed Toolbox Contract v1 application definition and generated `toolbox-app.json` manifest.
- Added the shared React application shell while retaining the XSLT-specific Help action.
- Added standalone and toolbox-mode integration coverage, including nested-path static deployment checks.
- Added deterministic, cross-time-zone release ZIP and SHA-256 generation with complete production dependency licence files.
- Added a session-only SHA-256/revision trust gate that disables both transformation engines until the exact stylesheet is reviewed and confirmed.
- Added conservative transformation input/output limits and a best-effort asynchronous deadline.
- Added a prominent Source action and corresponding-source notice for the 0.3.2 tag.
### Changed
- Made Vite build assets relocatable with a relative deployment base.
- Resolved the lazily loaded SaxonJS runtime relative to the deployed application path.
- Documented that the vendored SaxonJS 2.7 browser distribution is free to use under separate, non-open-source terms and is not part of the application's AGPL licensing.
- Classified stylesheet processing conservatively and documented that executable stylesheets may access browser or network resources.
- Documented that trusted SaxonJS can access same-site Toolbox data, send data over the network, or navigate away; the recommended portal CSP is defense in depth rather than containment.
- Switched Toolbox SDK dependencies from local workspace links to the public token-free package registry.
- Release packaging now refuses to overwrite same-version artifacts unless `--force` is explicit.
## 0.3.1
### Added
- Added global keyboard shortcut `Shift + Enter` to apply the current transformation.
- Added global keyboard shortcut `F1` to open the help dialog.
- Added shortcut hints for transformation and help actions.
### Changed
- Bumped application version to `0.3.1`.
## 0.3.0
### Added
- Added browser-side SaxonJS dynamic compilation support.
- Added support for raw XSLT 1.0, 2.0, and 3.0 transformations through the SaxonJS dynamic engine.
- Added dynamic XSLT-to-SEF compilation in the browser using the full `SaxonJS2.js` browser artifact.
- Added lazy loading for the SaxonJS browser compiler/runtime.
- Added tests covering XSLT 1.0, XSLT 2.0, and XSLT 3.0 transformation scenarios.
- Added project quality commands for type checking, linting, formatting, testing, building, and combined checks.
### Changed
- Made `saxon-js-dynamic` the primary SaxonJS-based engine for raw XML + raw XSLT workflows.
- Removed the earlier failed npm-bundled SaxonJS approach.
- Removed the SEF-only SaxonJS placeholder from the main workflow.
- Excluded vendored SaxonJS files from linting and formatting.
- Cleaned up debug-only code and unused declarations.
- Improved transformation engine registry and test coverage.
### Fixed
- Fixed SaxonJS browser integration by using the full `SaxonJS2.js` artifact instead of `SaxonJS2.rt.js`.
- Fixed dynamic compiler setup by providing a synthetic stylesheet base URI.
- Fixed SaxonJS static parameter handling by passing an `XdmMap` instead of a plain JavaScript object.
- Fixed browser compiler result extraction by reading `checkedOptions.principalResult`.
- Removed duplicate XML output replacement after transformations.
## 0.2.0
- Added SaxonJS 2.7 as the default transformation engine.
- Added lazy loading for the SaxonJS runtime so it is split into a separate build chunk.
- Kept the native browser `XSLTProcessor` engine as selectable fallback.
- Switched the default example stylesheet to XSLT 3.0 and added an `upper-case()` example.
- Added a SaxonJS transformation test.
- Updated README with SaxonJS runtime and licensing notes.
## 0.1.0
- Initial browser-only XSLT tools MVP.
- Added three-panel XML/XSLT/output workbench.
- Added native browser XSLTProcessor engine.
- Added LocalStorage persistence, file open/save, overwrite confirmations, snippets, validation, and approximate explain table.