Skip to content

Releases: SorinGFS/idn-email

v17.0.4 - Browser-compatible UTF-8 measurement

Choose a tag to compare

@SorinGFS SorinGFS released this 19 Sep 20:18

Browser compatibility correction

  • Replaces the Node-specific Buffer.byteLength optimization introduced in v17.0.3 with an allocation-free, runtime-neutral RFC 3629 octet counter.
  • Preserves the performance improvement without adding a browser Buffer requirement.
  • Retains the replacement address API and RFC conformance behavior from v17.0.3 unchanged.

All 68 tests and seven benchmark scenarios passed.

The API remains intentionally breaking relative to v17.0.2: isIdnEmail and idnEmail were replaced by isIdnEmailAddress and idnEmailAddress. This change is published in the patch component because the project's major and minor components are constrained to identify the selected Unicode release line.

Published on npm as latest.

v17.0.3 - SMTP mailbox address API and RFC conformance

Choose a tag to compare

@SorinGFS SorinGFS released this 19 Sep 20:16

Superseded

Use v17.0.4. This release introduced an unintended browser Buffer requirement in UTF-8 octet measurement; v17.0.4 restores runtime-neutral behavior.

Address API

  • Replaces isIdnEmail with isIdnEmailAddress.
  • Replaces idnEmail with idnEmailAddress.
  • Removes the former exports rather than retaining deprecated aliases.

RFC conformance

  • Implements the RFC 5321 Mailbox grammar extended by RFC 6531, including the non-empty quoted local part from RFC 5321 Erratum 5414.
  • Preserves the supplied local-part spelling and validates its UTF-8 octet representation without implicit normalization.
  • Supports the complete SMTP dot-string, quoted-string, quoted-pair, IPv4, and IPv6 address-literal forms.
  • Requires strict NFC U-label source spelling, delegates final IDNA validation and ACE conversion to idn-hostname, and rechecks mailbox length after conversion.
  • Rejects malformed Unicode, trailing domain dots, alternative Unicode separators, and UTS #46 compatibility repair.

Verification and performance

  • Runs 68 independent tests: 55 cumulative Unicode fixtures and 13 shared API/conformance scenarios.
  • Expands the benchmark suite to seven results that separate UTF-8 local-part cost from U-label domain processing.
  • Removes duplicate IDNA validation during conversion and uses allocation-free UTF-8 octet measurement.

Compatibility

This patch contains an intentional API-breaking change. The previous export names are removed. It is published as a patch because this project's major and minor version components are constrained to identify the selected Unicode release line; implementation and API revisions within that line use the patch component.

Published on npm as latest.

v16.0.3 - SMTP mailbox address API and RFC conformance

Choose a tag to compare

@SorinGFS SorinGFS released this 19 Sep 20:20

Address API

  • Replaces isIdnEmail with isIdnEmailAddress.
  • Replaces idnEmail with idnEmailAddress.
  • Removes the former exports rather than retaining deprecated aliases.

RFC conformance

  • Implements the RFC 5321 Mailbox grammar extended by RFC 6531, including the non-empty quoted local part from RFC 5321 Erratum 5414.
  • Preserves the supplied local-part spelling and validates its UTF-8 octet representation without implicit normalization.
  • Supports the complete SMTP dot-string, quoted-string, quoted-pair, IPv4, and IPv6 address-literal forms.
  • Requires strict NFC U-label source spelling, delegates final IDNA validation and ACE conversion to idn-hostname@16.0.x, and rechecks mailbox length after conversion.
  • Rejects malformed Unicode, trailing domain dots, alternative Unicode separators, and UTS #46 compatibility repair.

Verification and performance

  • Runs 61 independent tests: 48 cumulative Unicode fixtures and 13 shared API/conformance scenarios.
  • Expands the benchmark suite to seven results that separate UTF-8 local-part cost from U-label domain processing.
  • Removes duplicate IDNA validation during conversion and uses allocation-free, browser-compatible UTF-8 octet measurement.

Compatibility

This patch contains an intentional API-breaking change. The previous export names are removed. It is published as a patch because this project's major and minor version components are constrained to identify the selected Unicode release line; implementation and API revisions within that line use the patch component.

Published on npm with the unicode-16.0 tag.

v15.1.16 - SMTP mailbox address API and RFC conformance

Choose a tag to compare

@SorinGFS SorinGFS released this 19 Sep 20:23

Address API

  • Replaces isIdnEmail with isIdnEmailAddress.
  • Replaces idnEmail with idnEmailAddress.
  • Removes the former exports rather than retaining deprecated aliases.

RFC conformance

  • Implements the RFC 5321 Mailbox grammar extended by RFC 6531, including the non-empty quoted local part from RFC 5321 Erratum 5414.
  • Preserves the supplied local-part spelling and validates its UTF-8 octet representation without implicit normalization.
  • Supports the complete SMTP dot-string, quoted-string, quoted-pair, IPv4, and IPv6 address-literal forms.
  • Requires strict NFC U-label source spelling, delegates final IDNA validation and ACE conversion to idn-hostname@15.1.x, and rechecks mailbox length after conversion.
  • Rejects malformed Unicode, trailing domain dots, alternative Unicode separators, and UTS #46 compatibility repair.

Verification and performance

  • Runs 54 independent tests: 41 Unicode 15.1 fixtures and 13 shared API/conformance scenarios.
  • Expands the benchmark suite to seven results that separate UTF-8 local-part cost from U-label domain processing.
  • Removes duplicate IDNA validation during conversion and uses allocation-free, browser-compatible UTF-8 octet measurement.

Compatibility

This patch contains an intentional API-breaking change. The previous export names are removed. It is published as a patch because this project's major and minor version components are constrained to identify the selected Unicode release line; implementation and API revisions within that line use the patch component.

Published on npm with the unicode-15.1 tag.

v17.0.2 - Shared workspace traversal

Choose a tag to compare

@SorinGFS SorinGFS released this 31 Aug 15:59

Verification infrastructure

  • Migrates test and benchmark dispatchers to the gh-workspace-data v0.5.0 traversal APIs.
  • Uses shared exact/cumulative layer selection, numbered-fixture discovery, and explicit concern discovery.
  • Preserves cumulative fixture behavior, semantic layer order, and numeric-before-concern ordering.
  • Updates CI to materialize the v0.5.0 runtime explicitly.

All 55 tests and five benchmark scenarios passed. There are no runtime API or Unicode 17 email-validation behavior changes.

Published on npm as latest.

v17.0.1 - Portable Unicode 17 verification

Choose a tag to compare

@SorinGFS SorinGFS released this 31 Aug 06:30

Portable verification

This patch restores executable verification for the Unicode 17 release line through shared public workspace data.

  • Adds the generic, version-aware node:test dispatcher and npm test entry point.
  • Runs 55 package fixtures independently: 41 Unicode 15.1 cases, seven Unicode 16 additions, and seven Unicode 17 additions.
  • Uses backwards-compatible numeric fixture discovery so version folders remain delta-only.
  • Corrects the documented Unicode 17 active fixture count from 48 to 55.

Benchmarks

  • Adds npm run benchmark with isolated package loading and four function scenarios.
  • Measures ASCII and internationalized inputs for both isIdnEmail and idnEmail.
  • Reports five initial calls, warmed latency statistics, integer throughput, workload counts, arguments, and environment metadata.
  • Supports quick, JSON, and direct custom-iteration modes.

Runtime and CI

  • Declares Node.js >=24.13.1 <25 || >=26.0.0, matching the selected Unicode 17 idn-hostname line.
  • Node.js 25 remains excluded because its runtime Unicode data does not meet the selected dependency's Unicode 17 requirement.
  • Adds a six-job CI matrix covering Node.js 24.13.1 and 26 on Ubuntu, Windows, and macOS.
  • Materializes public tests and the gh-workspace-data v0.4.1 runtime helper explicitly.

Compatibility

There are no runtime API or validator behavior changes. This package remains on the Unicode 17 hostname-data line.

Published on npm as latest.

v16.0.2 - Shared workspace traversal

Choose a tag to compare

@SorinGFS SorinGFS released this 31 Aug 15:59

Verification infrastructure

  • Migrates test and benchmark dispatchers to the gh-workspace-data v0.5.0 traversal APIs.
  • Uses shared exact/cumulative layer selection, numbered-fixture discovery, and explicit concern discovery.
  • Preserves cumulative fixture behavior, semantic layer order, and numeric-before-concern ordering.
  • Updates CI to materialize the v0.5.0 runtime explicitly.

All 48 tests and five benchmark scenarios passed. There are no runtime API or Unicode 16 email-validation behavior changes.

Published on npm with the unicode-16.0 tag.

v16.0.1 - Portable Unicode 16 verification

Choose a tag to compare

@SorinGFS SorinGFS released this 31 Aug 06:30

Portable verification

This patch restores executable verification for the Unicode 16 release line through shared public workspace data.

  • Adds the generic, version-aware node:test dispatcher and npm test entry point.
  • Runs 48 package fixtures independently: 41 inherited Unicode 15.1 cases and seven Unicode 16 additions.
  • Uses backwards-compatible numeric fixture discovery so version folders remain delta-only.
  • Loads the package API once and uses deterministic semantic-version, directory, and fixture ordering.

Benchmarks

  • Adds npm run benchmark with isolated package loading and four function scenarios.
  • Measures ASCII and internationalized inputs for both isIdnEmail and idnEmail.
  • Reports five initial calls, warmed latency statistics, integer throughput, workload counts, arguments, and environment metadata.
  • Supports quick, JSON, and direct custom-iteration modes.

Runtime and CI

  • Declares Node.js >=22.12.0 <23 || >=24.0.0, matching the selected Unicode 16 idn-hostname line.
  • Adds a nine-job CI matrix covering Node.js 22.12.0, 24, and 26 on Ubuntu, Windows, and macOS.
  • Materializes public tests and the gh-workspace-data v0.4.1 runtime helper explicitly.

Compatibility

There are no runtime API or validator behavior changes. This package remains on the Unicode 16 hostname-data line.

Published on npm with the unicode-16.0 tag.

v15.1.15 - Shared workspace traversal

Choose a tag to compare

@SorinGFS SorinGFS released this 31 Aug 15:59

Verification infrastructure

  • Migrates test and benchmark dispatchers to the gh-workspace-data v0.5.0 traversal APIs.
  • Uses shared exact/cumulative layer selection, numbered-fixture discovery, and explicit concern discovery.
  • Preserves cumulative fixture behavior, semantic layer order, and numeric-before-concern ordering.
  • Updates CI to materialize the v0.5.0 runtime explicitly.

All 41 tests and five benchmark scenarios passed. There are no runtime API or Unicode 15.1 email-validation behavior changes.

Published on npm with the unicode-15.1 tag.

v15.1.14 - Portable Unicode 15.1 verification

Choose a tag to compare

@SorinGFS SorinGFS released this 31 Aug 06:30

Portable verification

This patch restores executable verification for the Unicode 15.1 release line through shared public workspace data.

  • Adds the generic, version-aware node:test dispatcher and npm test entry point.
  • Runs all 41 Unicode 15.1 package fixtures independently through isIdnEmail.
  • Marks the numeric callback contract backwards compatible so later Unicode lines can consume delta-only fixture layers.
  • Loads the package API once and uses deterministic semantic-version, directory, and fixture ordering.

Benchmarks

  • Adds npm run benchmark with isolated package loading and four function scenarios.
  • Measures ASCII and internationalized inputs for both isIdnEmail and idnEmail.
  • Reports five initial calls, warmed latency statistics, integer throughput, workload counts, arguments, and environment metadata.
  • Supports quick, JSON, and direct custom-iteration modes.

Runtime and CI

  • Declares Node.js >=20.12.0 <21 || >=22.0.0, matching the selected Unicode 15.1 idn-hostname line.
  • Adds a 12-job CI matrix covering Node.js 20.12.0, 22, 24, and 26 on Ubuntu, Windows, and macOS.
  • Materializes public tests and the gh-workspace-data v0.4.1 runtime helper explicitly.

Compatibility

There are no runtime API or validator behavior changes. This package remains on the Unicode 15.1 hostname-data line.

Published on npm with the unicode-15.1 tag.