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

{
  "context": "Evaluates how the solution leverages punycode UCS-2 helpers to convert between strings and code point arrays while preserving surrogate edge cases and keeping provided arrays untouched.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Decode via ucs2.decode",
      "description": "stringToCodePoints delegates string parsing to punycode.ucs2.decode so surrogate pairs are folded correctly and lone halves are retained without manual surrogate math.",
      "max_score": 30
    },
    {
      "name": "Encode via ucs2.encode",
      "description": "codePointsToString uses punycode.ucs2.encode to build strings from code point arrays instead of manual String.fromCodePoint loops.",
      "max_score": 30
    },
    {
      "name": "Input array intact",
      "description": "Conversion relies on punycode.ucs2.encode's non-mutating behavior (or copies before calling it) so the provided code point array remains unchanged after encoding.",
      "max_score": 20
    },
    {
      "name": "Lone surrogate preservation",
      "description": "When converting text with unmatched surrogates, the solution uses the punycode.ucs2.decode output directly without filtering or normalization so surrogate halves stay in the returned code points.",
      "max_score": 10
    },
    {
      "name": "Roundtrip with supplementary",
      "description": "Implements the string->codes->string flow with punycode helpers to keep supplementary characters (e.g., U+1F680) intact through conversions.",
      "max_score": 10
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-punycode

tile.json