Skip to content

BidiLens v0.3.3

Latest

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 02 Sep 08:55
· 1 commit to main since this release
Immutable release. Only release title and notes can be modified.
51dcd97

BidiLens 0.3.3

BidiLens adds content-aware paragraph direction and inline isolation for mixed RTL/LTR text while preserving the logical source string. All 12 @bidilens/* packages in this release are public on npm.

npm install @bidilens/core@0.3.3

What changed

  • Use the same pinned Unicode 17 combining-mark data in TypeScript, Kotlin, Swift, .NET, and Rust so isolation does not detach marks from their neighboring text.
  • Encode JavaScript Unicode ranges compactly while retaining offline generation, exact table checks, and binary-search lookup. No new runtime dependency is introduced.
  • Preserve application-owned direction/alignment changes in Android Views, editable UIKit, and WPF adapters; retain WPF bindings and pure-LTR UIKit paragraph state.
  • Refresh verified build tooling and group related dependency updates. Documentation checks now reject Android version and toolchain drift.

The native changes are included in the tagged source. Android has its own Maven release; Apple, Windows, and Rust distribution and validation boundaries remain documented separately.

Verified release evidence

  • Published source: 51dcd971efa5873a393b90cb6311c73f4315b8e8 on protected main.
  • Release PR #79 passed all 24 required checks: CI and five-language CodeQL. The squash merge and tested candidate have the identical Git tree 1d2d406d5eacf6521f851131e75af4e75793e736.
  • Protected npm publication repeated the source, package, and clean-consumer gates, used GitHub OIDC trusted publishing, and retained the exact tarballs and manifest.
  • All 12 public packages were independently checked as latest@0.3.3, with matching local SHA-256 and registry SHA-512 integrity, SLSA v1 provenance, and npm registry signatures.
  • A separate registry-only consumer installed all 12 packages, passed strict TypeScript compilation and runtime/CLI checks, and exercised mixed RTL/LTR, streaming finalization, logical-source preservation, and ordinary-LTR non-interference. npm verified 114 installed registry signatures and 53 attestations in that consumer.
  • Local validation included 439 tests, the 932-case corpus, 30 browser tests across Chromium/Firefox/WebKit, Markdown-It 13/14/15 consumers, and all 12 packed examples. Hosted checks also covered Android API 35, Apple/iOS, Windows/.NET, and Rust on three operating systems.
  • The attached CycloneDX 1.7 SBOM was produced by CI for the identical source tree and validates with 523 components and 537 dependency relationships.

Attached artifacts

The 12 .tgz files are the exact artifacts published to npm. npm-release-manifest.json records their source commit, SHA-256 values, and registry integrity. bidilens-sbom.cdx.json records the source dependency inventory; it is not a claim that all development dependencies are included in every consumer bundle.

Compatibility and remaining limits

The JavaScript packages are ESM-only and support Node.js 22.12+ or the supported Node 24 line. Ordinary LTR text in an LTR context receives no unnecessary BidiLens rendering metadata; inherited RTL contexts and explicit bidi controls still require handling. Paragraph direction and physical alignment remain independent.

BidiLens does not reverse stored text or replace browser/OS Unicode bidi rendering and shaping. Fonts, terminals, IMEs, accessibility services, custom renderers, and physical devices require integration testing. This release is suitable for bounded, maintainer-controlled pilots; it is not a universal bug-free guarantee, an independent security audit, or native-speaker certification of the complete corpus.