From e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Mon, 16 Nov 2020 00:10:28 +0100 Subject: api, login, auth --- node_modules/saslprep/generate-code-points.js | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 node_modules/saslprep/generate-code-points.js (limited to 'node_modules/saslprep/generate-code-points.js') diff --git a/node_modules/saslprep/generate-code-points.js b/node_modules/saslprep/generate-code-points.js new file mode 100644 index 0000000..c5162ca --- /dev/null +++ b/node_modules/saslprep/generate-code-points.js @@ -0,0 +1,51 @@ +'use strict'; + +const bitfield = require('sparse-bitfield'); +const codePoints = require('./lib/code-points'); + +const unassigned_code_points = bitfield(); +const commonly_mapped_to_nothing = bitfield(); +const non_ascii_space_characters = bitfield(); +const prohibited_characters = bitfield(); +const bidirectional_r_al = bitfield(); +const bidirectional_l = bitfield(); + +/** + * Iterare over code points and + * convert it into an buffer. + * @param {bitfield} bits + * @param {Array} src + * @returns {Buffer} + */ +function traverse(bits, src) { + for (const code of src.keys()) { + bits.set(code, true); + } + + const buffer = bits.toBuffer(); + return Buffer.concat([createSize(buffer), buffer]); +} + +/** + * @param {Buffer} buffer + * @returns {Buffer} + */ +function createSize(buffer) { + const buf = Buffer.alloc(4); + buf.writeUInt32BE(buffer.length); + + return buf; +} + +const memory = []; + +memory.push( + traverse(unassigned_code_points, codePoints.unassigned_code_points), + traverse(commonly_mapped_to_nothing, codePoints.commonly_mapped_to_nothing), + traverse(non_ascii_space_characters, codePoints.non_ASCII_space_characters), + traverse(prohibited_characters, codePoints.prohibited_characters), + traverse(bidirectional_r_al, codePoints.bidirectional_r_al), + traverse(bidirectional_l, codePoints.bidirectional_l) +); + +process.stdout.write(Buffer.concat(memory)); -- cgit v1.2.3