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

rubric.jsonevals/scenario-10/

{
  "context": "Evaluates how well the solution leverages the punycode package to convert punycoded domains and email domains into Unicode. Scores prioritize correct use of package helpers for separator normalization, idempotence, and preserving RangeError signaling.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Domain decoding",
      "description": "Uses `punycode.toUnicode` to decode each punycoded domain label (including mixed-case `xn--` prefixes) into Unicode instead of manual decoding.",
      "max_score": 35
    },
    {
      "name": "Separator handling",
      "description": "Normalizes legacy IDNA separators (`.`/`。`/`.`/`。`) before or while calling `punycode.toUnicode`, ensuring dotted labels decode correctly.",
      "max_score": 15
    },
    {
      "name": "Email domain conversion",
      "description": "Splits email input on `@`, keeps the local part intact, and runs `punycode.toUnicode` only on the domain portion to produce the Unicode email.",
      "max_score": 25
    },
    {
      "name": "Idempotent behavior",
      "description": "Relies on `punycode.toUnicode` leaving ASCII or already-decoded labels unchanged so repeated conversions return identical results for plain domains and emails.",
      "max_score": 15
    },
    {
      "name": "Error propagation",
      "description": "Propagates the `RangeError` raised by `punycode.toUnicode` (or underlying decode) for malformed punycode labels instead of suppressing or replacing it.",
      "max_score": 10
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-punycode

tile.json