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-2/

{
  "context": "Evaluates whether the solution correctly uses the punycode library to decode xn-- labels in domains and email addresses. Checks that Unicode conversion, ASCII passthrough, and error signaling are handled through the library rather than manual logic.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Domain decoding",
      "description": "Uses punycode.toUnicode (or punycode.decode per label) to convert xn-- domain labels to Unicode while leaving ASCII labels intact in mixed domains.",
      "max_score": 30
    },
    {
      "name": "Email domain",
      "description": "Applies punycode.toUnicode only to the domain portion after splitting on '@', preserving the local part unchanged when decoding email inputs.",
      "max_score": 25
    },
    {
      "name": "ASCII passthrough",
      "description": "Relies on punycode.toUnicode idempotency to return unchanged output for inputs without xn-- labels rather than re-encoding or altering ASCII text.",
      "max_score": 15
    },
    {
      "name": "Error propagation",
      "description": "Ensures malformed xn-- labels surface a RangeError from punycode.toUnicode or punycode.decode instead of being silently swallowed or coerced to fallback output.",
      "max_score": 15
    },
    {
      "name": "Prefix handling",
      "description": "Detects xn-- prefix when selecting labels to decode and avoids applying punycode.toUnicode/punycode.decode to labels that lack the prefix, keeping non-encoded segments untouched.",
      "max_score": 15
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-punycode

tile.json