From 84270a2860398eb8056a8d4f064c6a52c08ebb16 Mon Sep 17 00:00:00 2001 From: James Date: Sun, 22 Feb 2026 03:43:58 -0500 Subject: [PATCH] Fix package to include web artifacts, bump version to 1.3.1 - Update version from 1.3.0 to 1.3.1 in `__about__.py` - Fix web UI packaging by replacing `artifacts` with `force-include` in `pyproject.toml` for both wheel and sdist targets - Add explicit `packages` declaration and sdist `include` list to ensure proper distribution - Document fixes for data URI sanitization, case-insensitive element filtering, duplicate error handling, type safety, rename endpoint validation, icon names validation, and Next.js dev mode warning - Document changed default for "Inject CSS classes" checkbox from false to true --- CHANGELOG.md | 18 ++++++++++++++++++ pyproject.toml | 20 +++++++++++++++++++- src/SVG2DrawIOLib/__about__.py | 2 +- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82d822d..60986b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.1] - 2026-02-22 + +### Fixed + +- **Web UI packaging**: Fixed `pyproject.toml` hatchling configuration to properly include the web UI static files in the built wheel and sdist. Changed from `artifacts` to `force-include` configuration for both wheel and sdist targets. The web UI directory (`src/SVG2DrawIOLib/web/`) is now correctly included in PyPI releases, ensuring `pip install SVG2DrawIOLib[web]` followed by `svg2drawiolib web` works out of the box. +- **Security: Data URI sanitization** (Bug #27): Updated SVG sanitization to only block dangerous data: URIs (`data:text/html`, `data:text/javascript`, `data:application/javascript`, `data:application/x-javascript`) while allowing safe image data: URIs (`data:image/png`, `data:image/jpeg`, `data:image/svg+xml`, etc.) for legitimate embedded images. +- **Security: Case-insensitive element filtering** (Bug #28): Made dangerous element checking case-insensitive to prevent sanitization bypass via case variants like `