Uname: Linux webm016.cluster127.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 7.4.33 [ PHP INFO ] PHP os: Linux
Server Ip: 54.36.31.145
Your Ip: 216.73.216.182
User: homesquasz (91404) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : index.js
import test from 'ava'
import saslprep from '../'

const chr = String.fromCodePoint

test('should work with liatin letters', (t) => {
  const str = 'user'
  t.is(saslprep(str), str)
})

test('should work be case preserved', (t) => {
  const str = 'USER'
  t.is(saslprep(str), str)
})

test('should remove `mapped to nothing` characters', (t) => {
  t.is(saslprep('I\u00ADX'), 'IX')
})

test('should replace `Non-ASCII space characters` with space', (t) => {
  t.is(saslprep('a\u00A0b'), 'a\u0020b')
})

test('should normalize as NFKC', (t) => {
  t.is(saslprep('\u00AA'), 'a')
  t.is(saslprep('\u2168'), 'IX')
})

test('should throws when prohibited characters', (t) => {
  // C.2.1 ASCII control characters
  t.throws(() => saslprep('a\u007Fb'))

  // C.2.2 Non-ASCII control characters
  t.throws(() => saslprep('a\u06DDb'))

  // C.3 Private use
  t.throws(() => saslprep('a\uE000b'))

  // C.4 Non-character code points
  t.throws(() => saslprep(`a${chr(0x1FFFE)}b`))

  // C.5 Surrogate codes
  t.throws(() => saslprep('a\uD800b'))

  // C.6 Inappropriate for plain text
  t.throws(() => saslprep('a\uFFF9b'))

  // C.7 Inappropriate for canonical representation
  t.throws(() => saslprep('a\u2FF0b'))

  // C.8 Change display properties or are deprecated
  t.throws(() => saslprep('a\u200Eb'))

  // C.9 Tagging characters
  t.throws(() => saslprep(`a${chr(0xE0001)}b`))
})

test('should not containt RandALCat and LCat bidi', (t) => {
  t.throws(() => saslprep('a\u06DD\u00AAb'))
})

test('RandALCat should be first and last', (t) => {
  t.notThrows(() => saslprep('\u0627\u0031\u0628'))
  t.throws(() => saslprep('\u0627\u0031'))
})

test('should handle unassigned code points', (t) => {
  t.throws(() => saslprep('a\u0487'))
  t.notThrows(() => saslprep('a\u0487', {allowUnassigned: true}))
})
© 2026 GrazzMean