Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

saslprep

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

saslprep - npm Package Compare versions

Comparing version 1.0.2 to 1.0.3

CHANGELOG.md

11

generate-code-points.js

@@ -14,7 +14,10 @@ 'use strict';

/**
* Iterare over code points and
* convert it into an buffer.
* @param {bitfield} bits
* @param {array} src
* @param {Array} src
* @returns {Buffer}
*/
function traverse(bits, src) {
for(const code of src.keys()) {
for (const code of src.keys()) {
bits.set(code, true);

@@ -24,3 +27,3 @@ }

const buffer = bits.toBuffer();
return Buffer.concat([ createSize(buffer), buffer ]);
return Buffer.concat([createSize(buffer), buffer]);
}

@@ -47,5 +50,5 @@

traverse(bidirectional_r_al, codePoints.bidirectional_r_al),
traverse(bidirectional_l, codePoints.bidirectional_l),
traverse(bidirectional_l, codePoints.bidirectional_l)
);
process.stdout.write(Buffer.concat(memory));

@@ -1,2 +0,2 @@

'use strict'
'use strict';

@@ -10,5 +10,5 @@ const {

bidirectional_l,
} = require('./lib/memory-code-points')
} = require('./lib/memory-code-points');
module.exports = saslprep
module.exports = saslprep;

@@ -21,3 +21,3 @@ // 2.1. Mapping

*/
const mapping2space = non_ASCII_space_characters
const mapping2space = non_ASCII_space_characters;

@@ -28,37 +28,68 @@ /**

*/
const mapping2nothing = commonly_mapped_to_nothing
const mapping2nothing = commonly_mapped_to_nothing;
// utils
const getCodePoint = character => character.codePointAt(0)
const first = x => x[0]
const last = x => x[x.length - 1]
const getCodePoint = character => character.codePointAt(0);
const first = x => x[0];
const last = x => x[x.length - 1];
/**
* Convert provided string into an array of Unicode Code Points.
* Based on https://stackoverflow.com/a/21409165/1556249
* and https://www.npmjs.com/package/code-point-at.
* @param {string} input
* @returns {number[]}
*/
function toCodePoints(input) {
const codepoints = [];
const size = input.length;
for (let i = 0; i < size; i += 1) {
const before = input.charCodeAt(i);
if (before >= 0xd800 && before <= 0xdbff && size > i + 1) {
const next = input.charCodeAt(i + 1);
if (next >= 0xdc00 && next <= 0xdfff) {
codepoints.push((before - 0xd800) * 0x400 + next - 0xdc00 + 0x10000);
i += 1;
continue;
}
}
codepoints.push(before);
}
return codepoints;
}
/**
* SASLprep.
* @param {string} input
* @param {object} opts
* @param {Object} opts
* @param {boolean} opts.allowUnassigned
* @returns {string}
*/
function saslprep(input, opts = {}) {
if (typeof input !== 'string') {
throw new TypeError('Expected string.')
throw new TypeError('Expected string.');
}
if (input.length === 0) {
return ''
return '';
}
// 1. Map
const mapped_input = input
.split('')
.map(getCodePoint)
const mapped_input = toCodePoints(input)
// 1.1 mapping to space
.map(character => (mapping2space.get(character) ? 0x20 : character))
// 1.2 mapping to nothing
.filter(character => !mapping2nothing.get(character))
.filter(character => !mapping2nothing.get(character));
// 2. Normalize
const normalized_input = String.fromCodePoint(...mapped_input).normalize('NFKC')
const normalized_input = String.fromCodePoint
.apply(null, mapped_input)
.normalize('NFKC');
const normalized_map = normalized_input.split('').map(getCodePoint)
const normalized_map = toCodePoints(normalized_input);

@@ -68,3 +99,3 @@ // 3. Prohibit

prohibited_characters.get(character)
)
);

@@ -74,3 +105,3 @@ if (hasProhibited) {

'Prohibited character, see https://tools.ietf.org/html/rfc4013#section-2.3'
)
);
}

@@ -82,3 +113,3 @@

unassigned_code_points.get(character)
)
);

@@ -88,3 +119,3 @@ if (hasUnassigned) {

'Unassigned code point, see https://tools.ietf.org/html/rfc4013#section-2.5'
)
);
}

@@ -95,7 +126,9 @@ }

const hasBidiRAL = normalized_map
.some((character) => bidirectional_r_al.get(character))
const hasBidiRAL = normalized_map.some(character =>
bidirectional_r_al.get(character)
);
const hasBidiL = normalized_map
.some((character) => bidirectional_l.get(character))
const hasBidiL = normalized_map.some(character =>
bidirectional_l.get(character)
);

@@ -107,4 +140,4 @@ // 4.1 If a string contains any RandALCat character, the string MUST NOT

'String must not contain RandALCat and LCat at the same time,' +
' see https://tools.ietf.org/html/rfc3454#section-6'
)
' see https://tools.ietf.org/html/rfc3454#section-6'
);
}

@@ -118,4 +151,8 @@

const isFirstBidiRAL = bidirectional_r_al.get(getCodePoint(first(normalized_input)))
const isLastBidiRAL = bidirectional_r_al.get(getCodePoint(last(normalized_input)))
const isFirstBidiRAL = bidirectional_r_al.get(
getCodePoint(first(normalized_input))
);
const isLastBidiRAL = bidirectional_r_al.get(
getCodePoint(last(normalized_input))
);

@@ -125,7 +162,7 @@ if (hasBidiRAL && !(isFirstBidiRAL && isLastBidiRAL)) {

'Bidirectional RandALCat character must be the first and the last' +
' character of the string, see https://tools.ietf.org/html/rfc3454#section-6'
)
' character of the string, see https://tools.ietf.org/html/rfc3454#section-6'
);
}
return normalized_input
return normalized_input;
}

@@ -1,4 +0,4 @@

'use strict'
'use strict';
const { range } = require('./util')
const { range } = require('./util');

@@ -11,19 +11,19 @@ /**

0x0221,
...range(0x0234, 0x024F),
...range(0x02AE, 0x02AF),
...range(0x02EF, 0x02FF),
...range(0x0350, 0x035F),
...range(0x0234, 0x024f),
...range(0x02ae, 0x02af),
...range(0x02ef, 0x02ff),
...range(0x0350, 0x035f),
...range(0x0370, 0x0373),
...range(0x0376, 0x0379),
...range(0x037B, 0x037D),
...range(0x037F, 0x0383),
0x038B,
0x038D,
0x03A2,
0x03CF,
...range(0x03F7, 0x03FF),
...range(0x037b, 0x037d),
...range(0x037f, 0x0383),
0x038b,
0x038d,
0x03a2,
0x03cf,
...range(0x03f7, 0x03ff),
0x0487,
0x04CF,
...range(0x04F6, 0x04F7),
...range(0x04FA, 0x04FF),
0x04cf,
...range(0x04f6, 0x04f7),
...range(0x04fa, 0x04ff),
...range(0x0510, 0x0530),

@@ -33,377 +33,377 @@ ...range(0x0557, 0x0558),

0x0588,
...range(0x058B, 0x0590),
0x05A2,
0x05BA,
...range(0x05C5, 0x05CF),
...range(0x05EB, 0x05EF),
...range(0x05F5, 0x060B),
...range(0x060D, 0x061A),
...range(0x061C, 0x061E),
...range(0x058b, 0x0590),
0x05a2,
0x05ba,
...range(0x05c5, 0x05cf),
...range(0x05eb, 0x05ef),
...range(0x05f5, 0x060b),
...range(0x060d, 0x061a),
...range(0x061c, 0x061e),
0x0620,
...range(0x063B, 0x063F),
...range(0x0656, 0x065F),
...range(0x06EE, 0x06EF),
0x06FF,
0x070E,
...range(0x072D, 0x072F),
...range(0x074B, 0x077F),
...range(0x07B2, 0x0900),
...range(0x063b, 0x063f),
...range(0x0656, 0x065f),
...range(0x06ee, 0x06ef),
0x06ff,
0x070e,
...range(0x072d, 0x072f),
...range(0x074b, 0x077f),
...range(0x07b2, 0x0900),
0x0904,
...range(0x093A, 0x093B),
...range(0x094E, 0x094F),
...range(0x093a, 0x093b),
...range(0x094e, 0x094f),
...range(0x0955, 0x0957),
...range(0x0971, 0x0980),
0x0984,
...range(0x098D, 0x098E),
...range(0x098d, 0x098e),
...range(0x0991, 0x0992),
0x09A9,
0x09B1,
...range(0x09B3, 0x09B5),
...range(0x09BA, 0x09BB),
0x09BD,
...range(0x09C5, 0x09C6),
...range(0x09C9, 0x09CA),
...range(0x09CE, 0x09D6),
...range(0x09D8, 0x09DB),
0x09DE,
...range(0x09E4, 0x09E5),
...range(0x09FB, 0x0A01),
...range(0x0A03, 0x0A04),
...range(0x0A0B, 0x0A0E),
...range(0x0A11, 0x0A12),
0x0A29,
0x0A31,
0x0A34,
0x0A37,
...range(0x0A3A, 0x0A3B),
0x0A3D,
...range(0x0A43, 0x0A46),
...range(0x0A49, 0x0A4A),
...range(0x0A4E, 0x0A58),
0x0A5D,
...range(0x0A5F, 0x0A65),
...range(0x0A75, 0x0A80),
0x0A84,
0x0A8C,
0x0A8E,
0x0A92,
0x0AA9,
0x0AB1,
0x0AB4,
...range(0x0ABA, 0x0ABB),
0x0AC6,
0x0ACA,
...range(0x0ACE, 0x0ACF),
...range(0x0AD1, 0x0ADF),
...range(0x0AE1, 0x0AE5),
...range(0x0AF0, 0x0B00),
0x0B04,
...range(0x0B0D, 0x0B0E),
...range(0x0B11, 0x0B12),
0x0B29,
0x0B31,
...range(0x0B34, 0x0B35),
...range(0x0B3A, 0x0B3B),
...range(0x0B44, 0x0B46),
...range(0x0B49, 0x0B4A),
...range(0x0B4E, 0x0B55),
...range(0x0B58, 0x0B5B),
0x0B5E,
...range(0x0B62, 0x0B65),
...range(0x0B71, 0x0B81),
0x0B84,
...range(0x0B8B, 0x0B8D),
0x0B91,
...range(0x0B96, 0x0B98),
0x0B9B,
0x0B9D,
...range(0x0BA0, 0x0BA2),
...range(0x0BA5, 0x0BA7),
...range(0x0BAB, 0x0BAD),
0x0BB6,
...range(0x0BBA, 0x0BBD),
...range(0x0BC3, 0x0BC5),
0x0BC9,
...range(0x0BCE, 0x0BD6),
...range(0x0BD8, 0x0BE6),
...range(0x0BF3, 0x0C00),
0x0C04,
0x0C0D,
0x0C11,
0x0C29,
0x0C34,
...range(0x0C3A, 0x0C3D),
0x0C45,
0x0C49,
...range(0x0C4E, 0x0C54),
...range(0x0C57, 0x0C5F),
...range(0x0C62, 0x0C65),
...range(0x0C70, 0x0C81),
0x0C84,
0x0C8D,
0x0C91,
0x0CA9,
0x0CB4,
...range(0x0CBA, 0x0CBD),
0x0CC5,
0x0CC9,
...range(0x0CCE, 0x0CD4),
...range(0x0CD7, 0x0CDD),
0x0CDF,
...range(0x0CE2, 0x0CE5),
...range(0x0CF0, 0x0D01),
0x0D04,
0x0D0D,
0x0D11,
0x0D29,
...range(0x0D3A, 0x0D3D),
...range(0x0D44, 0x0D45),
0x0D49,
...range(0x0D4E, 0x0D56),
...range(0x0D58, 0x0D5F),
...range(0x0D62, 0x0D65),
...range(0x0D70, 0x0D81),
0x0D84,
...range(0x0D97, 0x0D99),
0x0DB2,
0x0DBC,
...range(0x0DBE, 0x0DBF),
...range(0x0DC7, 0x0DC9),
...range(0x0DCB, 0x0DCE),
0x0DD5,
0x0DD7,
...range(0x0DE0, 0x0DF1),
...range(0x0DF5, 0x0E00),
...range(0x0E3B, 0x0E3E),
...range(0x0E5C, 0x0E80),
0x0E83,
...range(0x0E85, 0x0E86),
0x0E89,
...range(0x0E8B, 0x0E8C),
...range(0x0E8E, 0x0E93),
0x0E98,
0x0EA0,
0x0EA4,
0x0EA6,
...range(0x0EA8, 0x0EA9),
0x0EAC,
0x0EBA,
...range(0x0EBE, 0x0EBF),
0x0EC5,
0x0EC7,
...range(0x0ECE, 0x0ECF),
...range(0x0EDA, 0x0EDB),
...range(0x0EDE, 0x0EFF),
0x0F48,
...range(0x0F6B, 0x0F70),
...range(0x0F8C, 0x0F8F),
0x0F98,
0x0FBD,
...range(0x0FCD, 0x0FCE),
...range(0x0FD0, 0x0FFF),
0x09a9,
0x09b1,
...range(0x09b3, 0x09b5),
...range(0x09ba, 0x09bb),
0x09bd,
...range(0x09c5, 0x09c6),
...range(0x09c9, 0x09ca),
...range(0x09ce, 0x09d6),
...range(0x09d8, 0x09db),
0x09de,
...range(0x09e4, 0x09e5),
...range(0x09fb, 0x0a01),
...range(0x0a03, 0x0a04),
...range(0x0a0b, 0x0a0e),
...range(0x0a11, 0x0a12),
0x0a29,
0x0a31,
0x0a34,
0x0a37,
...range(0x0a3a, 0x0a3b),
0x0a3d,
...range(0x0a43, 0x0a46),
...range(0x0a49, 0x0a4a),
...range(0x0a4e, 0x0a58),
0x0a5d,
...range(0x0a5f, 0x0a65),
...range(0x0a75, 0x0a80),
0x0a84,
0x0a8c,
0x0a8e,
0x0a92,
0x0aa9,
0x0ab1,
0x0ab4,
...range(0x0aba, 0x0abb),
0x0ac6,
0x0aca,
...range(0x0ace, 0x0acf),
...range(0x0ad1, 0x0adf),
...range(0x0ae1, 0x0ae5),
...range(0x0af0, 0x0b00),
0x0b04,
...range(0x0b0d, 0x0b0e),
...range(0x0b11, 0x0b12),
0x0b29,
0x0b31,
...range(0x0b34, 0x0b35),
...range(0x0b3a, 0x0b3b),
...range(0x0b44, 0x0b46),
...range(0x0b49, 0x0b4a),
...range(0x0b4e, 0x0b55),
...range(0x0b58, 0x0b5b),
0x0b5e,
...range(0x0b62, 0x0b65),
...range(0x0b71, 0x0b81),
0x0b84,
...range(0x0b8b, 0x0b8d),
0x0b91,
...range(0x0b96, 0x0b98),
0x0b9b,
0x0b9d,
...range(0x0ba0, 0x0ba2),
...range(0x0ba5, 0x0ba7),
...range(0x0bab, 0x0bad),
0x0bb6,
...range(0x0bba, 0x0bbd),
...range(0x0bc3, 0x0bc5),
0x0bc9,
...range(0x0bce, 0x0bd6),
...range(0x0bd8, 0x0be6),
...range(0x0bf3, 0x0c00),
0x0c04,
0x0c0d,
0x0c11,
0x0c29,
0x0c34,
...range(0x0c3a, 0x0c3d),
0x0c45,
0x0c49,
...range(0x0c4e, 0x0c54),
...range(0x0c57, 0x0c5f),
...range(0x0c62, 0x0c65),
...range(0x0c70, 0x0c81),
0x0c84,
0x0c8d,
0x0c91,
0x0ca9,
0x0cb4,
...range(0x0cba, 0x0cbd),
0x0cc5,
0x0cc9,
...range(0x0cce, 0x0cd4),
...range(0x0cd7, 0x0cdd),
0x0cdf,
...range(0x0ce2, 0x0ce5),
...range(0x0cf0, 0x0d01),
0x0d04,
0x0d0d,
0x0d11,
0x0d29,
...range(0x0d3a, 0x0d3d),
...range(0x0d44, 0x0d45),
0x0d49,
...range(0x0d4e, 0x0d56),
...range(0x0d58, 0x0d5f),
...range(0x0d62, 0x0d65),
...range(0x0d70, 0x0d81),
0x0d84,
...range(0x0d97, 0x0d99),
0x0db2,
0x0dbc,
...range(0x0dbe, 0x0dbf),
...range(0x0dc7, 0x0dc9),
...range(0x0dcb, 0x0dce),
0x0dd5,
0x0dd7,
...range(0x0de0, 0x0df1),
...range(0x0df5, 0x0e00),
...range(0x0e3b, 0x0e3e),
...range(0x0e5c, 0x0e80),
0x0e83,
...range(0x0e85, 0x0e86),
0x0e89,
...range(0x0e8b, 0x0e8c),
...range(0x0e8e, 0x0e93),
0x0e98,
0x0ea0,
0x0ea4,
0x0ea6,
...range(0x0ea8, 0x0ea9),
0x0eac,
0x0eba,
...range(0x0ebe, 0x0ebf),
0x0ec5,
0x0ec7,
...range(0x0ece, 0x0ecf),
...range(0x0eda, 0x0edb),
...range(0x0ede, 0x0eff),
0x0f48,
...range(0x0f6b, 0x0f70),
...range(0x0f8c, 0x0f8f),
0x0f98,
0x0fbd,
...range(0x0fcd, 0x0fce),
...range(0x0fd0, 0x0fff),
0x1022,
0x1028,
0x102B,
0x102b,
...range(0x1033, 0x1035),
...range(0x103A, 0x103F),
...range(0x105A, 0x109F),
...range(0x10C6, 0x10CF),
...range(0x10F9, 0x10FA),
...range(0x10FC, 0x10FF),
...range(0x115A, 0x115E),
...range(0x11A3, 0x11A7),
...range(0x11FA, 0x11FF),
...range(0x103a, 0x103f),
...range(0x105a, 0x109f),
...range(0x10c6, 0x10cf),
...range(0x10f9, 0x10fa),
...range(0x10fc, 0x10ff),
...range(0x115a, 0x115e),
...range(0x11a3, 0x11a7),
...range(0x11fa, 0x11ff),
0x1207,
0x1247,
0x1249,
...range(0x124E, 0x124F),
...range(0x124e, 0x124f),
0x1257,
0x1259,
...range(0x125E, 0x125F),
...range(0x125e, 0x125f),
0x1287,
0x1289,
...range(0x128E, 0x128F),
0x12AF,
0x12B1,
...range(0x12B6, 0x12B7),
0x12BF,
0x12C1,
...range(0x12C6, 0x12C7),
0x12CF,
0x12D7,
0x12EF,
0x130F,
...range(0x128e, 0x128f),
0x12af,
0x12b1,
...range(0x12b6, 0x12b7),
0x12bf,
0x12c1,
...range(0x12c6, 0x12c7),
0x12cf,
0x12d7,
0x12ef,
0x130f,
0x1311,
...range(0x1316, 0x1317),
0x131F,
0x131f,
0x1347,
...range(0x135B, 0x1360),
...range(0x137D, 0x139F),
...range(0x13F5, 0x1400),
...range(0x1677, 0x167F),
...range(0x169D, 0x169F),
...range(0x16F1, 0x16FF),
0x170D,
...range(0x1715, 0x171F),
...range(0x1737, 0x173F),
...range(0x1754, 0x175F),
0x176D,
...range(0x135b, 0x1360),
...range(0x137d, 0x139f),
...range(0x13f5, 0x1400),
...range(0x1677, 0x167f),
...range(0x169d, 0x169f),
...range(0x16f1, 0x16ff),
0x170d,
...range(0x1715, 0x171f),
...range(0x1737, 0x173f),
...range(0x1754, 0x175f),
0x176d,
0x1771,
...range(0x1774, 0x177F),
...range(0x17DD, 0x17DF),
...range(0x17EA, 0x17FF),
0x180F,
...range(0x181A, 0x181F),
...range(0x1878, 0x187F),
...range(0x18AA, 0x1DFF),
...range(0x1E9C, 0x1E9F),
...range(0x1EFA, 0x1EFF),
...range(0x1F16, 0x1F17),
...range(0x1F1E, 0x1F1F),
...range(0x1F46, 0x1F47),
...range(0x1F4E, 0x1F4F),
0x1F58,
0x1F5A,
0x1F5C,
0x1F5E,
...range(0x1F7E, 0x1F7F),
0x1FB5,
0x1FC5,
...range(0x1FD4, 0x1FD5),
0x1FDC,
...range(0x1FF0, 0x1FF1),
0x1FF5,
0x1FFF,
...range(0x1774, 0x177f),
...range(0x17dd, 0x17df),
...range(0x17ea, 0x17ff),
0x180f,
...range(0x181a, 0x181f),
...range(0x1878, 0x187f),
...range(0x18aa, 0x1dff),
...range(0x1e9c, 0x1e9f),
...range(0x1efa, 0x1eff),
...range(0x1f16, 0x1f17),
...range(0x1f1e, 0x1f1f),
...range(0x1f46, 0x1f47),
...range(0x1f4e, 0x1f4f),
0x1f58,
0x1f5a,
0x1f5c,
0x1f5e,
...range(0x1f7e, 0x1f7f),
0x1fb5,
0x1fc5,
...range(0x1fd4, 0x1fd5),
0x1fdc,
...range(0x1ff0, 0x1ff1),
0x1ff5,
0x1fff,
...range(0x2053, 0x2056),
...range(0x2058, 0x205E),
...range(0x2058, 0x205e),
...range(0x2064, 0x2069),
...range(0x2072, 0x2073),
...range(0x208F, 0x209F),
...range(0x20B2, 0x20CF),
...range(0x20EB, 0x20FF),
...range(0x213B, 0x213C),
...range(0x214C, 0x2152),
...range(0x2184, 0x218F),
...range(0x23CF, 0x23FF),
...range(0x2427, 0x243F),
...range(0x244B, 0x245F),
0x24FF,
...range(0x208f, 0x209f),
...range(0x20b2, 0x20cf),
...range(0x20eb, 0x20ff),
...range(0x213b, 0x213c),
...range(0x214c, 0x2152),
...range(0x2184, 0x218f),
...range(0x23cf, 0x23ff),
...range(0x2427, 0x243f),
...range(0x244b, 0x245f),
0x24ff,
...range(0x2614, 0x2615),
0x2618,
...range(0x267E, 0x267F),
...range(0x268A, 0x2700),
...range(0x267e, 0x267f),
...range(0x268a, 0x2700),
0x2705,
...range(0x270A, 0x270B),
...range(0x270a, 0x270b),
0x2728,
0x274C,
0x274E,
0x274c,
0x274e,
...range(0x2753, 0x2755),
0x2757,
...range(0x275F, 0x2760),
...range(0x275f, 0x2760),
...range(0x2795, 0x2797),
0x27B0,
...range(0x27BF, 0x27CF),
...range(0x27EC, 0x27EF),
...range(0x2B00, 0x2E7F),
0x2E9A,
...range(0x2EF4, 0x2EFF),
...range(0x2FD6, 0x2FEF),
...range(0x2FFC, 0x2FFF),
0x27b0,
...range(0x27bf, 0x27cf),
...range(0x27ec, 0x27ef),
...range(0x2b00, 0x2e7f),
0x2e9a,
...range(0x2ef4, 0x2eff),
...range(0x2fd6, 0x2fef),
...range(0x2ffc, 0x2fff),
0x3040,
...range(0x3097, 0x3098),
...range(0x3100, 0x3104),
...range(0x312D, 0x3130),
0x318F,
...range(0x31B8, 0x31EF),
...range(0x321D, 0x321F),
...range(0x312d, 0x3130),
0x318f,
...range(0x31b8, 0x31ef),
...range(0x321d, 0x321f),
...range(0x3244, 0x3250),
...range(0x327C, 0x327E),
...range(0x32CC, 0x32CF),
0x32FF,
...range(0x3377, 0x337A),
...range(0x33DE, 0x33DF),
0x33FF,
...range(0x4DB6, 0x4DFF),
...range(0x9FA6, 0x9FFF),
...range(0xA48D, 0xA48F),
...range(0xA4C7, 0xABFF),
...range(0xD7A4, 0xD7FF),
...range(0xFA2E, 0xFA2F),
...range(0xFA6B, 0xFAFF),
...range(0xFB07, 0xFB12),
...range(0xFB18, 0xFB1C),
0xFB37,
0xFB3D,
0xFB3F,
0xFB42,
0xFB45,
...range(0xFBB2, 0xFBD2),
...range(0xFD40, 0xFD4F),
...range(0xFD90, 0xFD91),
...range(0xFDC8, 0xFDCF),
...range(0xFDFD, 0xFDFF),
...range(0xFE10, 0xFE1F),
...range(0xFE24, 0xFE2F),
...range(0xFE47, 0xFE48),
0xFE53,
0xFE67,
...range(0xFE6C, 0xFE6F),
0xFE75,
...range(0xFEFD, 0xFEFE),
0xFF00,
...range(0xFFBF, 0xFFC1),
...range(0xFFC8, 0xFFC9),
...range(0xFFD0, 0xFFD1),
...range(0xFFD8, 0xFFD9),
...range(0xFFDD, 0xFFDF),
0xFFE7,
...range(0xFFEF, 0xFFF8),
...range(0x10000, 0x102FF),
0x1031F,
...range(0x10324, 0x1032F),
...range(0x1034B, 0x103FF),
...range(0x327c, 0x327e),
...range(0x32cc, 0x32cf),
0x32ff,
...range(0x3377, 0x337a),
...range(0x33de, 0x33df),
0x33ff,
...range(0x4db6, 0x4dff),
...range(0x9fa6, 0x9fff),
...range(0xa48d, 0xa48f),
...range(0xa4c7, 0xabff),
...range(0xd7a4, 0xd7ff),
...range(0xfa2e, 0xfa2f),
...range(0xfa6b, 0xfaff),
...range(0xfb07, 0xfb12),
...range(0xfb18, 0xfb1c),
0xfb37,
0xfb3d,
0xfb3f,
0xfb42,
0xfb45,
...range(0xfbb2, 0xfbd2),
...range(0xfd40, 0xfd4f),
...range(0xfd90, 0xfd91),
...range(0xfdc8, 0xfdcf),
...range(0xfdfd, 0xfdff),
...range(0xfe10, 0xfe1f),
...range(0xfe24, 0xfe2f),
...range(0xfe47, 0xfe48),
0xfe53,
0xfe67,
...range(0xfe6c, 0xfe6f),
0xfe75,
...range(0xfefd, 0xfefe),
0xff00,
...range(0xffbf, 0xffc1),
...range(0xffc8, 0xffc9),
...range(0xffd0, 0xffd1),
...range(0xffd8, 0xffd9),
...range(0xffdd, 0xffdf),
0xffe7,
...range(0xffef, 0xfff8),
...range(0x10000, 0x102ff),
0x1031f,
...range(0x10324, 0x1032f),
...range(0x1034b, 0x103ff),
...range(0x10426, 0x10427),
...range(0x1044E, 0x1CFFF),
...range(0x1D0F6, 0x1D0FF),
...range(0x1D127, 0x1D129),
...range(0x1D1DE, 0x1D3FF),
0x1D455,
0x1D49D,
...range(0x1D4A0, 0x1D4A1),
...range(0x1D4A3, 0x1D4A4),
...range(0x1D4A7, 0x1D4A8),
0x1D4AD,
0x1D4BA,
0x1D4BC,
0x1D4C1,
0x1D4C4,
0x1D506,
...range(0x1D50B, 0x1D50C),
0x1D515,
0x1D51D,
0x1D53A,
0x1D53F,
0x1D545,
...range(0x1D547, 0x1D549),
0x1D551,
...range(0x1D6A4, 0x1D6A7),
...range(0x1D7CA, 0x1D7CD),
...range(0x1D800, 0x1FFFD),
...range(0x2A6D7, 0x2F7FF),
...range(0x2FA1E, 0x2FFFD),
...range(0x30000, 0x3FFFD),
...range(0x40000, 0x4FFFD),
...range(0x50000, 0x5FFFD),
...range(0x60000, 0x6FFFD),
...range(0x70000, 0x7FFFD),
...range(0x80000, 0x8FFFD),
...range(0x90000, 0x9FFFD),
...range(0xA0000, 0xAFFFD),
...range(0xB0000, 0xBFFFD),
...range(0xC0000, 0xCFFFD),
...range(0xD0000, 0xDFFFD),
0xE0000,
...range(0xE0002, 0xE001F),
...range(0xE0080, 0xEFFFD),
])
...range(0x1044e, 0x1cfff),
...range(0x1d0f6, 0x1d0ff),
...range(0x1d127, 0x1d129),
...range(0x1d1de, 0x1d3ff),
0x1d455,
0x1d49d,
...range(0x1d4a0, 0x1d4a1),
...range(0x1d4a3, 0x1d4a4),
...range(0x1d4a7, 0x1d4a8),
0x1d4ad,
0x1d4ba,
0x1d4bc,
0x1d4c1,
0x1d4c4,
0x1d506,
...range(0x1d50b, 0x1d50c),
0x1d515,
0x1d51d,
0x1d53a,
0x1d53f,
0x1d545,
...range(0x1d547, 0x1d549),
0x1d551,
...range(0x1d6a4, 0x1d6a7),
...range(0x1d7ca, 0x1d7cd),
...range(0x1d800, 0x1fffd),
...range(0x2a6d7, 0x2f7ff),
...range(0x2fa1e, 0x2fffd),
...range(0x30000, 0x3fffd),
...range(0x40000, 0x4fffd),
...range(0x50000, 0x5fffd),
...range(0x60000, 0x6fffd),
...range(0x70000, 0x7fffd),
...range(0x80000, 0x8fffd),
...range(0x90000, 0x9fffd),
...range(0xa0000, 0xafffd),
...range(0xb0000, 0xbfffd),
...range(0xc0000, 0xcfffd),
...range(0xd0000, 0xdfffd),
0xe0000,
...range(0xe0002, 0xe001f),
...range(0xe0080, 0xefffd),
]);

@@ -415,30 +415,30 @@ /**

const commonly_mapped_to_nothing = new Set([
0x00AD,
0x034F,
0x00ad,
0x034f,
0x1806,
0x180B,
0x180C,
0x180D,
0x200B,
0x200C,
0x200D,
0x180b,
0x180c,
0x180d,
0x200b,
0x200c,
0x200d,
0x2060,
0xFE00,
0xFE01,
0xFE02,
0xFE03,
0xFE04,
0xFE05,
0xFE06,
0xFE07,
0xFE08,
0xFE09,
0xFE0A,
0xFE0B,
0xFE0C,
0xFE0D,
0xFE0E,
0xFE0F,
0xFEFF,
])
0xfe00,
0xfe01,
0xfe02,
0xfe03,
0xfe04,
0xfe05,
0xfe06,
0xfe07,
0xfe08,
0xfe09,
0xfe0a,
0xfe0b,
0xfe0c,
0xfe0d,
0xfe0e,
0xfe0f,
0xfeff,
]);

@@ -467,3 +467,3 @@ /**

0x3000 /* IDEOGRAPHIC SPACE */,
])
]);

@@ -488,18 +488,18 @@ /**

*/
...range(0x0080, 0x009F), /* [CONTROL CHARACTERS] */
0x06DD, /* ARABIC END OF AYAH */
0x070F, /* SYRIAC ABBREVIATION MARK */
0x180E, /* MONGOLIAN VOWEL SEPARATOR */
0x200C, /* ZERO WIDTH NON-JOINER */
0x200D, /* ZERO WIDTH JOINER */
0x2028, /* LINE SEPARATOR */
0x2029, /* PARAGRAPH SEPARATOR */
0x2060, /* WORD JOINER */
0x2061, /* FUNCTION APPLICATION */
0x2062, /* INVISIBLE TIMES */
0x2063, /* INVISIBLE SEPARATOR */
...range(0x206A, 0x206F), /* [CONTROL CHARACTERS] */
0xFEFF, /* ZERO WIDTH NO-BREAK SPACE */
...range(0xFFF9, 0xFFFC), /* [CONTROL CHARACTERS] */
...range(0x1D173, 0x1D17A), /* [MUSICAL CONTROL CHARACTERS] */
...range(0x0080, 0x009f) /* [CONTROL CHARACTERS] */,
0x06dd /* ARABIC END OF AYAH */,
0x070f /* SYRIAC ABBREVIATION MARK */,
0x180e /* MONGOLIAN VOWEL SEPARATOR */,
0x200c /* ZERO WIDTH NON-JOINER */,
0x200d /* ZERO WIDTH JOINER */,
0x2028 /* LINE SEPARATOR */,
0x2029 /* PARAGRAPH SEPARATOR */,
0x2060 /* WORD JOINER */,
0x2061 /* FUNCTION APPLICATION */,
0x2062 /* INVISIBLE TIMES */,
0x2063 /* INVISIBLE SEPARATOR */,
...range(0x206a, 0x206f) /* [CONTROL CHARACTERS] */,
0xfeff /* ZERO WIDTH NO-BREAK SPACE */,
...range(0xfff9, 0xfffc) /* [CONTROL CHARACTERS] */,
...range(0x1d173, 0x1d17a) /* [MUSICAL CONTROL CHARACTERS] */,

@@ -510,5 +510,5 @@ /**

*/
...range(0xE000, 0xF8FF), /* [PRIVATE USE, PLANE 0] */
...range(0xF0000, 0xFFFFD), /* [PRIVATE USE, PLANE 15] */
...range(0x100000, 0x10FFFD), /* [PRIVATE USE, PLANE 16] */
...range(0xe000, 0xf8ff) /* [PRIVATE USE, PLANE 0] */,
...range(0xf0000, 0xffffd) /* [PRIVATE USE, PLANE 15] */,
...range(0x100000, 0x10fffd) /* [PRIVATE USE, PLANE 16] */,

@@ -519,19 +519,19 @@ /**

*/
...range(0xFDD0, 0xFDEF), /* [NONCHARACTER CODE POINTS] */
...range(0xFFFE, 0xFFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x1FFFE, 0x1FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x2FFFE, 0x2FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x3FFFE, 0x3FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x4FFFE, 0x4FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x5FFFE, 0x5FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x6FFFE, 0x6FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x7FFFE, 0x7FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x8FFFE, 0x8FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x9FFFE, 0x9FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0xAFFFE, 0xAFFFF), /* [NONCHARACTER CODE POINTS] */
...range(0xBFFFE, 0xBFFFF), /* [NONCHARACTER CODE POINTS] */
...range(0xCFFFE, 0xCFFFF), /* [NONCHARACTER CODE POINTS] */
...range(0xDFFFE, 0xDFFFF), /* [NONCHARACTER CODE POINTS] */
...range(0xEFFFE, 0xEFFFF), /* [NONCHARACTER CODE POINTS] */
...range(0x10FFFE, 0x10FFFF), /* [NONCHARACTER CODE POINTS] */
...range(0xfdd0, 0xfdef) /* [NONCHARACTER CODE POINTS] */,
...range(0xfffe, 0xffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x1fffe, 0x1ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x2fffe, 0x2ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x3fffe, 0x3ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x4fffe, 0x4ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x5fffe, 0x5ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x6fffe, 0x6ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x7fffe, 0x7ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x8fffe, 0x8ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x9fffe, 0x9ffff) /* [NONCHARACTER CODE POINTS] */,
...range(0xafffe, 0xaffff) /* [NONCHARACTER CODE POINTS] */,
...range(0xbfffe, 0xbffff) /* [NONCHARACTER CODE POINTS] */,
...range(0xcfffe, 0xcffff) /* [NONCHARACTER CODE POINTS] */,
...range(0xdfffe, 0xdffff) /* [NONCHARACTER CODE POINTS] */,
...range(0xefffe, 0xeffff) /* [NONCHARACTER CODE POINTS] */,
...range(0x10fffe, 0x10ffff) /* [NONCHARACTER CODE POINTS] */,

@@ -542,3 +542,3 @@ /**

*/
...range(0xD800, 0xDFFF),
...range(0xd800, 0xdfff),

@@ -549,7 +549,7 @@ /**

*/
0xFFF9, /* INTERLINEAR ANNOTATION ANCHOR */
0xFFFA, /* INTERLINEAR ANNOTATION SEPARATOR */
0xFFFB, /* INTERLINEAR ANNOTATION TERMINATOR */
0xFFFC, /* OBJECT REPLACEMENT CHARACTER */
0xFFFD, /* REPLACEMENT CHARACTER */
0xfff9 /* INTERLINEAR ANNOTATION ANCHOR */,
0xfffa /* INTERLINEAR ANNOTATION SEPARATOR */,
0xfffb /* INTERLINEAR ANNOTATION TERMINATOR */,
0xfffc /* OBJECT REPLACEMENT CHARACTER */,
0xfffd /* REPLACEMENT CHARACTER */,

@@ -560,3 +560,3 @@ /**

*/
...range(0x2FF0, 0x2FFB), /* [IDEOGRAPHIC DESCRIPTION CHARACTERS] */
...range(0x2ff0, 0x2ffb) /* [IDEOGRAPHIC DESCRIPTION CHARACTERS] */,

@@ -567,17 +567,17 @@ /**

*/
0x0340, /* COMBINING GRAVE TONE MARK */
0x0341, /* COMBINING ACUTE TONE MARK */
0x200E, /* LEFT-TO-RIGHT MARK */
0x200F, /* RIGHT-TO-LEFT MARK */
0x202A, /* LEFT-TO-RIGHT EMBEDDING */
0x202B, /* RIGHT-TO-LEFT EMBEDDING */
0x202C, /* POP DIRECTIONAL FORMATTING */
0x202D, /* LEFT-TO-RIGHT OVERRIDE */
0x202E, /* RIGHT-TO-LEFT OVERRIDE */
0x206A, /* INHIBIT SYMMETRIC SWAPPING */
0x206B, /* ACTIVATE SYMMETRIC SWAPPING */
0x206C, /* INHIBIT ARABIC FORM SHAPING */
0x206D, /* ACTIVATE ARABIC FORM SHAPING */
0x206E, /* NATIONAL DIGIT SHAPES */
0x206F, /* NOMINAL DIGIT SHAPES */
0x0340 /* COMBINING GRAVE TONE MARK */,
0x0341 /* COMBINING ACUTE TONE MARK */,
0x200e /* LEFT-TO-RIGHT MARK */,
0x200f /* RIGHT-TO-LEFT MARK */,
0x202a /* LEFT-TO-RIGHT EMBEDDING */,
0x202b /* RIGHT-TO-LEFT EMBEDDING */,
0x202c /* POP DIRECTIONAL FORMATTING */,
0x202d /* LEFT-TO-RIGHT OVERRIDE */,
0x202e /* RIGHT-TO-LEFT OVERRIDE */,
0x206a /* INHIBIT SYMMETRIC SWAPPING */,
0x206b /* ACTIVATE SYMMETRIC SWAPPING */,
0x206c /* INHIBIT ARABIC FORM SHAPING */,
0x206d /* ACTIVATE ARABIC FORM SHAPING */,
0x206e /* NATIONAL DIGIT SHAPES */,
0x206f /* NOMINAL DIGIT SHAPES */,

@@ -588,5 +588,5 @@ /**

*/
0xE0001, /* LANGUAGE TAG */
...range(0xE0020, 0xE007F) /* [TAGGING CHARACTERS] */
])
0xe0001 /* LANGUAGE TAG */,
...range(0xe0020, 0xe007f) /* [TAGGING CHARACTERS] */,
]);

@@ -598,37 +598,37 @@ /**

const bidirectional_r_al = new Set([
0x05BE,
0x05C0,
0x05C3,
...range(0x05D0, 0x05EA),
...range(0x05F0, 0x05F4),
0x061B,
0x061F,
...range(0x0621, 0x063A),
...range(0x0640, 0x064A),
...range(0x066D, 0x066F),
...range(0x0671, 0x06D5),
0x06DD,
...range(0x06E5, 0x06E6),
...range(0x06FA, 0x06FE),
...range(0x0700, 0x070D),
0x05be,
0x05c0,
0x05c3,
...range(0x05d0, 0x05ea),
...range(0x05f0, 0x05f4),
0x061b,
0x061f,
...range(0x0621, 0x063a),
...range(0x0640, 0x064a),
...range(0x066d, 0x066f),
...range(0x0671, 0x06d5),
0x06dd,
...range(0x06e5, 0x06e6),
...range(0x06fa, 0x06fe),
...range(0x0700, 0x070d),
0x0710,
...range(0x0712, 0x072C),
...range(0x0780, 0x07A5),
0x07B1,
0x200F,
0xFB1D,
...range(0xFB1F, 0xFB28),
...range(0xFB2A, 0xFB36),
...range(0xFB38, 0xFB3C),
0xFB3E,
...range(0xFB40, 0xFB41),
...range(0xFB43, 0xFB44),
...range(0xFB46, 0xFBB1),
...range(0xFBD3, 0xFD3D),
...range(0xFD50, 0xFD8F),
...range(0xFD92, 0xFDC7),
...range(0xFDF0, 0xFDFC),
...range(0xFE70, 0xFE74),
...range(0xFE76, 0xFEFC),
])
...range(0x0712, 0x072c),
...range(0x0780, 0x07a5),
0x07b1,
0x200f,
0xfb1d,
...range(0xfb1f, 0xfb28),
...range(0xfb2a, 0xfb36),
...range(0xfb38, 0xfb3c),
0xfb3e,
...range(0xfb40, 0xfb41),
...range(0xfb43, 0xfb44),
...range(0xfb46, 0xfbb1),
...range(0xfbd3, 0xfd3d),
...range(0xfd50, 0xfd8f),
...range(0xfd92, 0xfdc7),
...range(0xfdf0, 0xfdfc),
...range(0xfe70, 0xfe74),
...range(0xfe76, 0xfefc),
]);

@@ -640,31 +640,31 @@ /**

const bidirectional_l = new Set([
...range(0x0041, 0x005A),
...range(0x0061, 0x007A),
0x00AA,
0x00B5,
0x00BA,
...range(0x00C0, 0x00D6),
...range(0x00D8, 0x00F6),
...range(0x00F8, 0x0220),
...range(0x0041, 0x005a),
...range(0x0061, 0x007a),
0x00aa,
0x00b5,
0x00ba,
...range(0x00c0, 0x00d6),
...range(0x00d8, 0x00f6),
...range(0x00f8, 0x0220),
...range(0x0222, 0x0233),
...range(0x0250, 0x02AD),
...range(0x02B0, 0x02B8),
...range(0x02BB, 0x02C1),
...range(0x02D0, 0x02D1),
...range(0x02E0, 0x02E4),
0x02EE,
0x037A,
...range(0x0250, 0x02ad),
...range(0x02b0, 0x02b8),
...range(0x02bb, 0x02c1),
...range(0x02d0, 0x02d1),
...range(0x02e0, 0x02e4),
0x02ee,
0x037a,
0x0386,
...range(0x0388, 0x038A),
0x038C,
...range(0x038E, 0x03A1),
...range(0x03A3, 0x03CE),
...range(0x03D0, 0x03F5),
...range(0x0388, 0x038a),
0x038c,
...range(0x038e, 0x03a1),
...range(0x03a3, 0x03ce),
...range(0x03d0, 0x03f5),
...range(0x0400, 0x0482),
...range(0x048A, 0x04CE),
...range(0x04D0, 0x04F5),
...range(0x04F8, 0x04F9),
...range(0x0500, 0x050F),
...range(0x048a, 0x04ce),
...range(0x04d0, 0x04f5),
...range(0x04f8, 0x04f9),
...range(0x0500, 0x050f),
...range(0x0531, 0x0556),
...range(0x0559, 0x055F),
...range(0x0559, 0x055f),
...range(0x0561, 0x0587),

@@ -674,4 +674,4 @@ 0x0589,

...range(0x0905, 0x0939),
...range(0x093D, 0x0940),
...range(0x0949, 0x094C),
...range(0x093d, 0x0940),
...range(0x0949, 0x094c),
0x0950,

@@ -681,324 +681,324 @@ ...range(0x0958, 0x0961),

...range(0x0982, 0x0983),
...range(0x0985, 0x098C),
...range(0x098F, 0x0990),
...range(0x0993, 0x09A8),
...range(0x09AA, 0x09B0),
0x09B2,
...range(0x09B6, 0x09B9),
...range(0x09BE, 0x09C0),
...range(0x09C7, 0x09C8),
...range(0x09CB, 0x09CC),
0x09D7,
...range(0x09DC, 0x09DD),
...range(0x09DF, 0x09E1),
...range(0x09E6, 0x09F1),
...range(0x09F4, 0x09FA),
...range(0x0A05, 0x0A0A),
...range(0x0A0F, 0x0A10),
...range(0x0A13, 0x0A28),
...range(0x0A2A, 0x0A30),
...range(0x0A32, 0x0A33),
...range(0x0A35, 0x0A36),
...range(0x0A38, 0x0A39),
...range(0x0A3E, 0x0A40),
...range(0x0A59, 0x0A5C),
0x0A5E,
...range(0x0A66, 0x0A6F),
...range(0x0A72, 0x0A74),
0x0A83,
...range(0x0A85, 0x0A8B),
0x0A8D,
...range(0x0A8F, 0x0A91),
...range(0x0A93, 0x0AA8),
...range(0x0AAA, 0x0AB0),
...range(0x0AB2, 0x0AB3),
...range(0x0AB5, 0x0AB9),
...range(0x0ABD, 0x0AC0),
0x0AC9,
...range(0x0ACB, 0x0ACC),
0x0AD0,
0x0AE0,
...range(0x0AE6, 0x0AEF),
...range(0x0B02, 0x0B03),
...range(0x0B05, 0x0B0C),
...range(0x0B0F, 0x0B10),
...range(0x0B13, 0x0B28),
...range(0x0B2A, 0x0B30),
...range(0x0B32, 0x0B33),
...range(0x0B36, 0x0B39),
...range(0x0B3D, 0x0B3E),
0x0B40,
...range(0x0B47, 0x0B48),
...range(0x0B4B, 0x0B4C),
0x0B57,
...range(0x0B5C, 0x0B5D),
...range(0x0B5F, 0x0B61),
...range(0x0B66, 0x0B70),
0x0B83,
...range(0x0B85, 0x0B8A),
...range(0x0B8E, 0x0B90),
...range(0x0B92, 0x0B95),
...range(0x0B99, 0x0B9A),
0x0B9C,
...range(0x0B9E, 0x0B9F),
...range(0x0BA3, 0x0BA4),
...range(0x0BA8, 0x0BAA),
...range(0x0BAE, 0x0BB5),
...range(0x0BB7, 0x0BB9),
...range(0x0BBE, 0x0BBF),
...range(0x0BC1, 0x0BC2),
...range(0x0BC6, 0x0BC8),
...range(0x0BCA, 0x0BCC),
0x0BD7,
...range(0x0BE7, 0x0BF2),
...range(0x0C01, 0x0C03),
...range(0x0C05, 0x0C0C),
...range(0x0C0E, 0x0C10),
...range(0x0C12, 0x0C28),
...range(0x0C2A, 0x0C33),
...range(0x0C35, 0x0C39),
...range(0x0C41, 0x0C44),
...range(0x0C60, 0x0C61),
...range(0x0C66, 0x0C6F),
...range(0x0C82, 0x0C83),
...range(0x0C85, 0x0C8C),
...range(0x0C8E, 0x0C90),
...range(0x0C92, 0x0CA8),
...range(0x0CAA, 0x0CB3),
...range(0x0CB5, 0x0CB9),
0x0CBE,
...range(0x0CC0, 0x0CC4),
...range(0x0CC7, 0x0CC8),
...range(0x0CCA, 0x0CCB),
...range(0x0CD5, 0x0CD6),
0x0CDE,
...range(0x0CE0, 0x0CE1),
...range(0x0CE6, 0x0CEF),
...range(0x0D02, 0x0D03),
...range(0x0D05, 0x0D0C),
...range(0x0D0E, 0x0D10),
...range(0x0D12, 0x0D28),
...range(0x0D2A, 0x0D39),
...range(0x0D3E, 0x0D40),
...range(0x0D46, 0x0D48),
...range(0x0D4A, 0x0D4C),
0x0D57,
...range(0x0D60, 0x0D61),
...range(0x0D66, 0x0D6F),
...range(0x0D82, 0x0D83),
...range(0x0D85, 0x0D96),
...range(0x0D9A, 0x0DB1),
...range(0x0DB3, 0x0DBB),
0x0DBD,
...range(0x0DC0, 0x0DC6),
...range(0x0DCF, 0x0DD1),
...range(0x0DD8, 0x0DDF),
...range(0x0DF2, 0x0DF4),
...range(0x0E01, 0x0E30),
...range(0x0E32, 0x0E33),
...range(0x0E40, 0x0E46),
...range(0x0E4F, 0x0E5B),
...range(0x0E81, 0x0E82),
0x0E84,
...range(0x0E87, 0x0E88),
0x0E8A,
0x0E8D,
...range(0x0E94, 0x0E97),
...range(0x0E99, 0x0E9F),
...range(0x0EA1, 0x0EA3),
0x0EA5,
0x0EA7,
...range(0x0EAA, 0x0EAB),
...range(0x0EAD, 0x0EB0),
...range(0x0EB2, 0x0EB3),
0x0EBD,
...range(0x0EC0, 0x0EC4),
0x0EC6,
...range(0x0ED0, 0x0ED9),
...range(0x0EDC, 0x0EDD),
...range(0x0F00, 0x0F17),
...range(0x0F1A, 0x0F34),
0x0F36,
0x0F38,
...range(0x0F3E, 0x0F47),
...range(0x0F49, 0x0F6A),
0x0F7F,
0x0F85,
...range(0x0F88, 0x0F8B),
...range(0x0FBE, 0x0FC5),
...range(0x0FC7, 0x0FCC),
0x0FCF,
...range(0x0985, 0x098c),
...range(0x098f, 0x0990),
...range(0x0993, 0x09a8),
...range(0x09aa, 0x09b0),
0x09b2,
...range(0x09b6, 0x09b9),
...range(0x09be, 0x09c0),
...range(0x09c7, 0x09c8),
...range(0x09cb, 0x09cc),
0x09d7,
...range(0x09dc, 0x09dd),
...range(0x09df, 0x09e1),
...range(0x09e6, 0x09f1),
...range(0x09f4, 0x09fa),
...range(0x0a05, 0x0a0a),
...range(0x0a0f, 0x0a10),
...range(0x0a13, 0x0a28),
...range(0x0a2a, 0x0a30),
...range(0x0a32, 0x0a33),
...range(0x0a35, 0x0a36),
...range(0x0a38, 0x0a39),
...range(0x0a3e, 0x0a40),
...range(0x0a59, 0x0a5c),
0x0a5e,
...range(0x0a66, 0x0a6f),
...range(0x0a72, 0x0a74),
0x0a83,
...range(0x0a85, 0x0a8b),
0x0a8d,
...range(0x0a8f, 0x0a91),
...range(0x0a93, 0x0aa8),
...range(0x0aaa, 0x0ab0),
...range(0x0ab2, 0x0ab3),
...range(0x0ab5, 0x0ab9),
...range(0x0abd, 0x0ac0),
0x0ac9,
...range(0x0acb, 0x0acc),
0x0ad0,
0x0ae0,
...range(0x0ae6, 0x0aef),
...range(0x0b02, 0x0b03),
...range(0x0b05, 0x0b0c),
...range(0x0b0f, 0x0b10),
...range(0x0b13, 0x0b28),
...range(0x0b2a, 0x0b30),
...range(0x0b32, 0x0b33),
...range(0x0b36, 0x0b39),
...range(0x0b3d, 0x0b3e),
0x0b40,
...range(0x0b47, 0x0b48),
...range(0x0b4b, 0x0b4c),
0x0b57,
...range(0x0b5c, 0x0b5d),
...range(0x0b5f, 0x0b61),
...range(0x0b66, 0x0b70),
0x0b83,
...range(0x0b85, 0x0b8a),
...range(0x0b8e, 0x0b90),
...range(0x0b92, 0x0b95),
...range(0x0b99, 0x0b9a),
0x0b9c,
...range(0x0b9e, 0x0b9f),
...range(0x0ba3, 0x0ba4),
...range(0x0ba8, 0x0baa),
...range(0x0bae, 0x0bb5),
...range(0x0bb7, 0x0bb9),
...range(0x0bbe, 0x0bbf),
...range(0x0bc1, 0x0bc2),
...range(0x0bc6, 0x0bc8),
...range(0x0bca, 0x0bcc),
0x0bd7,
...range(0x0be7, 0x0bf2),
...range(0x0c01, 0x0c03),
...range(0x0c05, 0x0c0c),
...range(0x0c0e, 0x0c10),
...range(0x0c12, 0x0c28),
...range(0x0c2a, 0x0c33),
...range(0x0c35, 0x0c39),
...range(0x0c41, 0x0c44),
...range(0x0c60, 0x0c61),
...range(0x0c66, 0x0c6f),
...range(0x0c82, 0x0c83),
...range(0x0c85, 0x0c8c),
...range(0x0c8e, 0x0c90),
...range(0x0c92, 0x0ca8),
...range(0x0caa, 0x0cb3),
...range(0x0cb5, 0x0cb9),
0x0cbe,
...range(0x0cc0, 0x0cc4),
...range(0x0cc7, 0x0cc8),
...range(0x0cca, 0x0ccb),
...range(0x0cd5, 0x0cd6),
0x0cde,
...range(0x0ce0, 0x0ce1),
...range(0x0ce6, 0x0cef),
...range(0x0d02, 0x0d03),
...range(0x0d05, 0x0d0c),
...range(0x0d0e, 0x0d10),
...range(0x0d12, 0x0d28),
...range(0x0d2a, 0x0d39),
...range(0x0d3e, 0x0d40),
...range(0x0d46, 0x0d48),
...range(0x0d4a, 0x0d4c),
0x0d57,
...range(0x0d60, 0x0d61),
...range(0x0d66, 0x0d6f),
...range(0x0d82, 0x0d83),
...range(0x0d85, 0x0d96),
...range(0x0d9a, 0x0db1),
...range(0x0db3, 0x0dbb),
0x0dbd,
...range(0x0dc0, 0x0dc6),
...range(0x0dcf, 0x0dd1),
...range(0x0dd8, 0x0ddf),
...range(0x0df2, 0x0df4),
...range(0x0e01, 0x0e30),
...range(0x0e32, 0x0e33),
...range(0x0e40, 0x0e46),
...range(0x0e4f, 0x0e5b),
...range(0x0e81, 0x0e82),
0x0e84,
...range(0x0e87, 0x0e88),
0x0e8a,
0x0e8d,
...range(0x0e94, 0x0e97),
...range(0x0e99, 0x0e9f),
...range(0x0ea1, 0x0ea3),
0x0ea5,
0x0ea7,
...range(0x0eaa, 0x0eab),
...range(0x0ead, 0x0eb0),
...range(0x0eb2, 0x0eb3),
0x0ebd,
...range(0x0ec0, 0x0ec4),
0x0ec6,
...range(0x0ed0, 0x0ed9),
...range(0x0edc, 0x0edd),
...range(0x0f00, 0x0f17),
...range(0x0f1a, 0x0f34),
0x0f36,
0x0f38,
...range(0x0f3e, 0x0f47),
...range(0x0f49, 0x0f6a),
0x0f7f,
0x0f85,
...range(0x0f88, 0x0f8b),
...range(0x0fbe, 0x0fc5),
...range(0x0fc7, 0x0fcc),
0x0fcf,
...range(0x1000, 0x1021),
...range(0x1023, 0x1027),
...range(0x1029, 0x102A),
0x102C,
...range(0x1029, 0x102a),
0x102c,
0x1031,
0x1038,
...range(0x1040, 0x1057),
...range(0x10A0, 0x10C5),
...range(0x10D0, 0x10F8),
0x10FB,
...range(0x10a0, 0x10c5),
...range(0x10d0, 0x10f8),
0x10fb,
...range(0x1100, 0x1159),
...range(0x115F, 0x11A2),
...range(0x11A8, 0x11F9),
...range(0x115f, 0x11a2),
...range(0x11a8, 0x11f9),
...range(0x1200, 0x1206),
...range(0x1208, 0x1246),
0x1248,
...range(0x124A, 0x124D),
...range(0x124a, 0x124d),
...range(0x1250, 0x1256),
0x1258,
...range(0x125A, 0x125D),
...range(0x125a, 0x125d),
...range(0x1260, 0x1286),
0x1288,
...range(0x128A, 0x128D),
...range(0x1290, 0x12AE),
0x12B0,
...range(0x12B2, 0x12B5),
...range(0x12B8, 0x12BE),
0x12C0,
...range(0x12C2, 0x12C5),
...range(0x12C8, 0x12CE),
...range(0x12D0, 0x12D6),
...range(0x12D8, 0x12EE),
...range(0x12F0, 0x130E),
...range(0x128a, 0x128d),
...range(0x1290, 0x12ae),
0x12b0,
...range(0x12b2, 0x12b5),
...range(0x12b8, 0x12be),
0x12c0,
...range(0x12c2, 0x12c5),
...range(0x12c8, 0x12ce),
...range(0x12d0, 0x12d6),
...range(0x12d8, 0x12ee),
...range(0x12f0, 0x130e),
0x1310,
...range(0x1312, 0x1315),
...range(0x1318, 0x131E),
...range(0x1318, 0x131e),
...range(0x1320, 0x1346),
...range(0x1348, 0x135A),
...range(0x1361, 0x137C),
...range(0x13A0, 0x13F4),
...range(0x1348, 0x135a),
...range(0x1361, 0x137c),
...range(0x13a0, 0x13f4),
...range(0x1401, 0x1676),
...range(0x1681, 0x169A),
...range(0x16A0, 0x16F0),
...range(0x1700, 0x170C),
...range(0x170E, 0x1711),
...range(0x1681, 0x169a),
...range(0x16a0, 0x16f0),
...range(0x1700, 0x170c),
...range(0x170e, 0x1711),
...range(0x1720, 0x1731),
...range(0x1735, 0x1736),
...range(0x1740, 0x1751),
...range(0x1760, 0x176C),
...range(0x176E, 0x1770),
...range(0x1780, 0x17B6),
...range(0x17BE, 0x17C5),
...range(0x17C7, 0x17C8),
...range(0x17D4, 0x17DA),
0x17DC,
...range(0x17E0, 0x17E9),
...range(0x1760, 0x176c),
...range(0x176e, 0x1770),
...range(0x1780, 0x17b6),
...range(0x17be, 0x17c5),
...range(0x17c7, 0x17c8),
...range(0x17d4, 0x17da),
0x17dc,
...range(0x17e0, 0x17e9),
...range(0x1810, 0x1819),
...range(0x1820, 0x1877),
...range(0x1880, 0x18A8),
...range(0x1E00, 0x1E9B),
...range(0x1EA0, 0x1EF9),
...range(0x1F00, 0x1F15),
...range(0x1F18, 0x1F1D),
...range(0x1F20, 0x1F45),
...range(0x1F48, 0x1F4D),
...range(0x1F50, 0x1F57),
0x1F59,
0x1F5B,
0x1F5D,
...range(0x1F5F, 0x1F7D),
...range(0x1F80, 0x1FB4),
...range(0x1FB6, 0x1FBC),
0x1FBE,
...range(0x1FC2, 0x1FC4),
...range(0x1FC6, 0x1FCC),
...range(0x1FD0, 0x1FD3),
...range(0x1FD6, 0x1FDB),
...range(0x1FE0, 0x1FEC),
...range(0x1FF2, 0x1FF4),
...range(0x1FF6, 0x1FFC),
0x200E,
...range(0x1880, 0x18a8),
...range(0x1e00, 0x1e9b),
...range(0x1ea0, 0x1ef9),
...range(0x1f00, 0x1f15),
...range(0x1f18, 0x1f1d),
...range(0x1f20, 0x1f45),
...range(0x1f48, 0x1f4d),
...range(0x1f50, 0x1f57),
0x1f59,
0x1f5b,
0x1f5d,
...range(0x1f5f, 0x1f7d),
...range(0x1f80, 0x1fb4),
...range(0x1fb6, 0x1fbc),
0x1fbe,
...range(0x1fc2, 0x1fc4),
...range(0x1fc6, 0x1fcc),
...range(0x1fd0, 0x1fd3),
...range(0x1fd6, 0x1fdb),
...range(0x1fe0, 0x1fec),
...range(0x1ff2, 0x1ff4),
...range(0x1ff6, 0x1ffc),
0x200e,
0x2071,
0x207F,
0x207f,
0x2102,
0x2107,
...range(0x210A, 0x2113),
...range(0x210a, 0x2113),
0x2115,
...range(0x2119, 0x211D),
...range(0x2119, 0x211d),
0x2124,
0x2126,
0x2128,
...range(0x212A, 0x212D),
...range(0x212F, 0x2131),
...range(0x212a, 0x212d),
...range(0x212f, 0x2131),
...range(0x2133, 0x2139),
...range(0x213D, 0x213F),
...range(0x213d, 0x213f),
...range(0x2145, 0x2149),
...range(0x2160, 0x2183),
...range(0x2336, 0x237A),
...range(0x2336, 0x237a),
0x2395,
...range(0x249C, 0x24E9),
...range(0x249c, 0x24e9),
...range(0x3005, 0x3007),
...range(0x3021, 0x3029),
...range(0x3031, 0x3035),
...range(0x3038, 0x303C),
...range(0x3038, 0x303c),
...range(0x3041, 0x3096),
...range(0x309D, 0x309F),
...range(0x30A1, 0x30FA),
...range(0x30FC, 0x30FF),
...range(0x3105, 0x312C),
...range(0x3131, 0x318E),
...range(0x3190, 0x31B7),
...range(0x31F0, 0x321C),
...range(0x309d, 0x309f),
...range(0x30a1, 0x30fa),
...range(0x30fc, 0x30ff),
...range(0x3105, 0x312c),
...range(0x3131, 0x318e),
...range(0x3190, 0x31b7),
...range(0x31f0, 0x321c),
...range(0x3220, 0x3243),
...range(0x3260, 0x327B),
...range(0x327F, 0x32B0),
...range(0x32C0, 0x32CB),
...range(0x32D0, 0x32FE),
...range(0x3260, 0x327b),
...range(0x327f, 0x32b0),
...range(0x32c0, 0x32cb),
...range(0x32d0, 0x32fe),
...range(0x3300, 0x3376),
...range(0x337B, 0x33DD),
...range(0x33E0, 0x33FE),
...range(0x3400, 0x4DB5),
...range(0x4E00, 0x9FA5),
...range(0xA000, 0xA48C),
...range(0xAC00, 0xD7A3),
...range(0xD800, 0xFA2D),
...range(0xFA30, 0xFA6A),
...range(0xFB00, 0xFB06),
...range(0xFB13, 0xFB17),
...range(0xFF21, 0xFF3A),
...range(0xFF41, 0xFF5A),
...range(0xFF66, 0xFFBE),
...range(0xFFC2, 0xFFC7),
...range(0xFFCA, 0xFFCF),
...range(0xFFD2, 0xFFD7),
...range(0xFFDA, 0xFFDC),
...range(0x10300, 0x1031E),
...range(0x337b, 0x33dd),
...range(0x33e0, 0x33fe),
...range(0x3400, 0x4db5),
...range(0x4e00, 0x9fa5),
...range(0xa000, 0xa48c),
...range(0xac00, 0xd7a3),
...range(0xd800, 0xfa2d),
...range(0xfa30, 0xfa6a),
...range(0xfb00, 0xfb06),
...range(0xfb13, 0xfb17),
...range(0xff21, 0xff3a),
...range(0xff41, 0xff5a),
...range(0xff66, 0xffbe),
...range(0xffc2, 0xffc7),
...range(0xffca, 0xffcf),
...range(0xffd2, 0xffd7),
...range(0xffda, 0xffdc),
...range(0x10300, 0x1031e),
...range(0x10320, 0x10323),
...range(0x10330, 0x1034A),
...range(0x10330, 0x1034a),
...range(0x10400, 0x10425),
...range(0x10428, 0x1044D),
...range(0x1D000, 0x1D0F5),
...range(0x1D100, 0x1D126),
...range(0x1D12A, 0x1D166),
...range(0x1D16A, 0x1D172),
...range(0x1D183, 0x1D184),
...range(0x1D18C, 0x1D1A9),
...range(0x1D1AE, 0x1D1DD),
...range(0x1D400, 0x1D454),
...range(0x1D456, 0x1D49C),
...range(0x1D49E, 0x1D49F),
0x1D4A2,
...range(0x1D4A5, 0x1D4A6),
...range(0x1D4A9, 0x1D4AC),
...range(0x1D4AE, 0x1D4B9),
0x1D4BB,
...range(0x1D4BD, 0x1D4C0),
...range(0x1D4C2, 0x1D4C3),
...range(0x1D4C5, 0x1D505),
...range(0x1D507, 0x1D50A),
...range(0x1D50D, 0x1D514),
...range(0x1D516, 0x1D51C),
...range(0x1D51E, 0x1D539),
...range(0x1D53B, 0x1D53E),
...range(0x1D540, 0x1D544),
0x1D546,
...range(0x1D54A, 0x1D550),
...range(0x1D552, 0x1D6A3),
...range(0x1D6A8, 0x1D7C9),
...range(0x20000, 0x2A6D6),
...range(0x2F800, 0x2FA1D),
...range(0xF0000, 0xFFFFD),
...range(0x100000, 0x10FFFD)
])
...range(0x10428, 0x1044d),
...range(0x1d000, 0x1d0f5),
...range(0x1d100, 0x1d126),
...range(0x1d12a, 0x1d166),
...range(0x1d16a, 0x1d172),
...range(0x1d183, 0x1d184),
...range(0x1d18c, 0x1d1a9),
...range(0x1d1ae, 0x1d1dd),
...range(0x1d400, 0x1d454),
...range(0x1d456, 0x1d49c),
...range(0x1d49e, 0x1d49f),
0x1d4a2,
...range(0x1d4a5, 0x1d4a6),
...range(0x1d4a9, 0x1d4ac),
...range(0x1d4ae, 0x1d4b9),
0x1d4bb,
...range(0x1d4bd, 0x1d4c0),
...range(0x1d4c2, 0x1d4c3),
...range(0x1d4c5, 0x1d505),
...range(0x1d507, 0x1d50a),
...range(0x1d50d, 0x1d514),
...range(0x1d516, 0x1d51c),
...range(0x1d51e, 0x1d539),
...range(0x1d53b, 0x1d53e),
...range(0x1d540, 0x1d544),
0x1d546,
...range(0x1d54a, 0x1d550),
...range(0x1d552, 0x1d6a3),
...range(0x1d6a8, 0x1d7c9),
...range(0x20000, 0x2a6d6),
...range(0x2f800, 0x2fa1d),
...range(0xf0000, 0xffffd),
...range(0x100000, 0x10fffd),
]);

@@ -1011,3 +1011,3 @@ module.exports = {

bidirectional_r_al,
bidirectional_l
}
bidirectional_l,
};

@@ -7,5 +7,10 @@ 'use strict';

/* eslint-disable-next-line security/detect-non-literal-fs-filename */
const memory = fs.readFileSync(path.resolve(__dirname, '../code-points.mem'));
let offset = 0;
/**
* Loads each code points sequence from buffer.
* @returns {bitfield}
*/
function read() {

@@ -35,2 +40,2 @@ const size = memory.readUInt32BE(offset);

bidirectional_l,
}
};

@@ -1,15 +0,21 @@

'use strict'
'use strict';
/**
* Create an array of numbers.
* @param {number} from
* @param {number} to
* @returns {number[]}
*/
function range(from, to) {
// TODO: make this inlined.
const list = new Array(to - from + 1)
const list = new Array(to - from + 1);
for(let i = 0; i < list.length; ++i) {
list[i] = from + i
for (let i = 0; i < list.length; i += 1) {
list[i] = from + i;
}
return list
return list;
}
module.exports = {
range
}
range,
};
{
"name": "saslprep",
"version": "1.0.2",
"version": "1.0.3",
"description": "SASLprep: Stringprep Profile for User Names and Passwords, rfc4013.",
"main": "index.js",
"scripts": {
"test": "ava",
"test": "npm run lint && npm run unit-test",
"lint": "npx eslint --quiet .",
"unit-test": "npx jest",
"gen-code-points": "node generate-code-points.js > code-points.mem"

@@ -31,9 +33,41 @@ },

"devDependencies": {
"ava": "^0.25.0",
"eslint-plugin-prettier": "^2.1.2",
"prettier": "^1.4.4"
"@nodertc/eslint-config": "^0.2.1",
"eslint": "^5.16.0",
"jest": "^23.6.0",
"prettier": "^1.14.3"
},
"dependencies": {
"sparse-bitfield": "^3.0.3"
},
"eslintConfig": {
"extends": "@nodertc",
"rules": {
"camelcase": "off",
"no-continue": "off"
},
"overrides": [
{
"files": [
"test/*.js"
],
"env": {
"jest": true
},
"rules": {
"require-jsdoc": "off"
}
}
]
},
"jest": {
"modulePaths": [
"<rootDir>"
],
"testMatch": [
"**/test/*.js"
],
"testPathIgnorePatterns": [
"<rootDir>/node_modules/"
]
}
}

@@ -31,2 +31,2 @@ # saslprep

MIT, 2017 (c) Dmitriy Tsvettsikh
MIT, 2017-2019 (c) Dmitriy Tsvettsikh

@@ -1,70 +0,76 @@

import test from 'ava'
import saslprep from '../'
'use strict';
const chr = String.fromCodePoint
const saslprep = require('..');
test('should work with liatin letters', (t) => {
const str = 'user'
t.is(saslprep(str), str)
})
const chr = String.fromCodePoint;
test('should work be case preserved', (t) => {
const str = 'USER'
t.is(saslprep(str), str)
})
test('should work with liatin letters', () => {
const str = 'user';
expect(saslprep(str)).toEqual(str);
});
test('should remove `mapped to nothing` characters', (t) => {
t.is(saslprep('I\u00ADX'), 'IX')
})
test('should work be case preserved', () => {
const str = 'USER';
expect(saslprep(str)).toEqual(str);
});
test('should replace `Non-ASCII space characters` with space', (t) => {
t.is(saslprep('a\u00A0b'), 'a\u0020b')
})
test('should work with high code points (> U+FFFF)', () => {
const str = '\uD83D\uDE00';
expect(saslprep(str, { allowUnassigned: true })).toEqual(str);
});
test('should normalize as NFKC', (t) => {
t.is(saslprep('\u00AA'), 'a')
t.is(saslprep('\u2168'), 'IX')
})
test('should remove `mapped to nothing` characters', () => {
expect(saslprep('I\u00ADX')).toEqual('IX');
});
test('should throws when prohibited characters', (t) => {
test('should replace `Non-ASCII space characters` with space', () => {
expect(saslprep('a\u00A0b')).toEqual('a\u0020b');
});
test('should normalize as NFKC', () => {
expect(saslprep('\u00AA')).toEqual('a');
expect(saslprep('\u2168')).toEqual('IX');
});
test('should throws when prohibited characters', () => {
// C.2.1 ASCII control characters
t.throws(() => saslprep('a\u007Fb'))
expect(() => saslprep('a\u007Fb')).toThrow();
// C.2.2 Non-ASCII control characters
t.throws(() => saslprep('a\u06DDb'))
expect(() => saslprep('a\u06DDb')).toThrow();
// C.3 Private use
t.throws(() => saslprep('a\uE000b'))
expect(() => saslprep('a\uE000b')).toThrow();
// C.4 Non-character code points
t.throws(() => saslprep(`a${chr(0x1FFFE)}b`))
expect(() => saslprep(`a${chr(0x1fffe)}b`)).toThrow();
// C.5 Surrogate codes
t.throws(() => saslprep('a\uD800b'))
expect(() => saslprep('a\uD800b')).toThrow();
// C.6 Inappropriate for plain text
t.throws(() => saslprep('a\uFFF9b'))
expect(() => saslprep('a\uFFF9b')).toThrow();
// C.7 Inappropriate for canonical representation
t.throws(() => saslprep('a\u2FF0b'))
expect(() => saslprep('a\u2FF0b')).toThrow();
// C.8 Change display properties or are deprecated
t.throws(() => saslprep('a\u200Eb'))
expect(() => saslprep('a\u200Eb')).toThrow();
// C.9 Tagging characters
t.throws(() => saslprep(`a${chr(0xE0001)}b`))
})
expect(() => saslprep(`a${chr(0xe0001)}b`)).toThrow();
});
test('should not containt RandALCat and LCat bidi', (t) => {
t.throws(() => saslprep('a\u06DD\u00AAb'))
})
test('should not containt RandALCat and LCat bidi', () => {
expect(() => saslprep('a\u06DD\u00AAb')).toThrow();
});
test('RandALCat should be first and last', (t) => {
t.notThrows(() => saslprep('\u0627\u0031\u0628'))
t.throws(() => saslprep('\u0627\u0031'))
})
test('RandALCat should be first and last', () => {
expect(() => saslprep('\u0627\u0031\u0628')).not.toThrow();
expect(() => saslprep('\u0627\u0031')).toThrow();
});
test('should handle unassigned code points', (t) => {
t.throws(() => saslprep('a\u0487'))
t.notThrows(() => saslprep('a\u0487', {allowUnassigned: true}))
})
test('should handle unassigned code points', () => {
expect(() => saslprep('a\u0487')).toThrow();
expect(() => saslprep('a\u0487', { allowUnassigned: true })).not.toThrow();
});

@@ -1,15 +0,16 @@

import { setFlagsFromString } from 'v8'
import { range } from '../lib/util'
import test from 'ava'
'use strict';
const { setFlagsFromString } = require('v8');
const { range } = require('../lib/util');
// 984 by default.
setFlagsFromString('--stack_size=500')
setFlagsFromString('--stack_size=500');
test('should work', (t) => {
const list = range(1, 3)
t.deepEqual(list, [1, 2, 3])
})
test('should work', () => {
const list = range(1, 3);
expect(list).toEqual([1, 2, 3]);
});
test('should work for large ranges', (t) => {
t.notThrows(() => range(1, 1e6))
})
test('should work for large ranges', () => {
expect(() => range(1, 1e6)).not.toThrow();
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc