CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-punycode

A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.

93

1.17x

Quality

Pending

Does it follow best practices?

Impact

93%

1.17x

Average score across 10 eval scenarios

Overview
Eval results
Files

Evaluation results

70%

-30%

Unicode Edge-Preserving Bridge

Preserve surrogate edge cases without mutating provided code point arrays

Criteria
Without context
With context

Decode via ucs2.decode

100%

0%

Encode via ucs2.encode

100%

100%

Input array intact

100%

100%

Lone surrogate preservation

100%

100%

Roundtrip with supplementary

100%

100%

65%

-32%

Domain Label Decoder

Decode Punycode label to Unicode

Criteria
Without context
With context

Domain decoding

100%

66%

Email domain

100%

80%

ASCII passthrough

80%

33%

Error propagation

100%

66%

Prefix handling

100%

66%

95%

70%

Punycode Label Encoder

Encode Unicode label to Punycode

Criteria
Without context
With context

punycode usage

14%

85%

mañana result

0%

100%

bücher result

0%

100%

ASCII passthrough

66%

100%

RangeError propagation

100%

100%

100%

Unicode Code Point Adapter

UCS-2 code point encode/decode helpers

Criteria
Without context
With context

Use decode

100%

100%

Lone surrogates

100%

100%

Use encode

100%

100%

No mutation

100%

100%

Proper import

100%

100%

100%

65%

Case-insensitive Punycode Label Decoder

Decode punycoded labels case-insensitively

Criteria
Without context
With context

Domain decoding

0%

100%

Prefix casing

100%

100%

Leave ASCII

0%

100%

Email domains

50%

100%

Idempotent use

100%

100%

100%

Domain Normalizer

Normalize IDNA separators and isolate email local parts

Criteria
Without context
With context

toASCII conversion

100%

100%

Separator mapping

100%

100%

Email isolation

100%

100%

toUnicode decoding

100%

100%

ASCII stability

100%

100%

100%

Version Reporter

Expose package version string

Criteria
Without context
With context

Source is punycode.version

100%

100%

Exact value

100%

100%

Formatting uses source

100%

100%

Semver fidelity

100%

100%

Consistent reads

100%

100%

100%

Punycode Label Guard

Signal RangeError on invalid digits or overflow during encode/decode

Criteria
Without context
With context

Decode via punycode

100%

100%

Encode via punycode

100%

100%

Invalid digit RangeError

100%

100%

Overflow RangeError

100%

100%

100%

30%

ASCII Domain Converter

Convert domains/emails to ASCII punycode

Criteria
Without context
With context

Import punycode

100%

100%

Domain conversion

100%

100%

Email domain handling

100%

100%

Separator normalization

0%

100%

Idempotent ASCII passthrough

50%

100%

100%

39%

Unicode Host Converter

Convert domains/emails to Unicode

Criteria
Without context
With context

Domain decoding

28%

100%

Separator handling

100%

100%

Email domain conversion

100%

100%

Idempotent behavior

53%

100%

Error propagation

30%

100%

Install with Tessl CLI

npx tessl i tessl/npm-punycode
Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents