{"id":"idna-context-check","version":"1.0.0","description":"Report every IDNA2008 CONTEXTJ and CONTEXTO finding in one mapped label.","supported_operations":["check idna contextj and contexto","zero width non joiner joining context","catalan middle dot between l letters","arabic indic digit set mixing","katakana middle dot needs kana or han","virama before zero width joiner","בדיקת כללי הקשר בתווית"],"unsupported_operations":["apply the bidi rule","check hyphen position or NFC","map uppercase letters to lowercase"],"semantics":["RFC 5892 Appendix A only. Every CONTEXTJ and CONTEXTO code point is a finding, including those after the first failure.","valid is true only when every finding passed. The first failing finding sets reason_index and cp. ZWNJ and ZWJ use reason contextj; every other rule uses contexto.","ZWNJ passes after a virama (ccc 9) or between joining types (L or D) and (R or D), skipping transparent marks. ZWJ passes only after a virama.","U+00B7 must sit between two U+006C. U+0375 must be followed by Script=Greek. U+05F3 and U+05F4 must follow Script=Hebrew. U+30FB needs another Hiragana, Katakana, or Han code point. Arabic-Indic digits and Extended Arabic-Indic digits must not both occur.","A label with no contextual code point, including uppercase ASCII, is valid here. That does not mean idna-label-validate accepts it.","Results are not a homograph, phishing, DNS, or authenticity verdict. No DNS query is performed."],"limits":{"max_label_bytes":252,"max_output_bytes":32768},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["label"],"properties":{"label":{"type":"string","minLength":1,"maxLength":252}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","reason_index","cp","findings","data_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":["string","null"],"enum":[null,"contextj","contexto"]},"reason_index":{"type":["integer","null"],"minimum":0,"maximum":251},"cp":{"type":["integer","null"],"minimum":0,"maximum":1114111},"findings":{"type":"array","maxItems":252,"items":{"type":"object","additionalProperties":false,"required":["index","cp","rule","passed"],"properties":{"index":{"type":"integer","minimum":0,"maximum":251},"cp":{"type":"integer","minimum":0,"maximum":1114111},"rule":{"type":"string","enum":["zwnj","zwj","middle_dot","greek_keraia","hebrew_geresh","hebrew_gershayim","katakana_middle_dot","arabic_indic_digit","extended_arabic_indic_digit"]},"passed":{"type":"boolean"}}}},"data_version":{"type":"string","const":"idna2008-rfc5892-unicode-15.1.0"}}},"examples":[{"input":{"label":"l·l"},"output":{"valid":true,"reason":null,"reason_index":null,"cp":null,"findings":[{"index":1,"cp":183,"rule":"middle_dot","passed":true}],"data_version":"idna2008-rfc5892-unicode-15.1.0"}},{"input":{"label":"a·a"},"output":{"valid":false,"reason":"contexto","reason_index":1,"cp":183,"findings":[{"index":1,"cp":183,"rule":"middle_dot","passed":false}],"data_version":"idna2008-rfc5892-unicode-15.1.0"}},{"input":{"label":"A"},"output":{"valid":true,"reason":null,"reason_index":null,"cp":null,"findings":[],"data_version":"idna2008-rfc5892-unicode-15.1.0"}}],"execute_url":"/v1/tools/idna-context-check/versions/1.0.0/execute"}