From 48e1ef1f84c075f0c8e7be1947d7664ace103a08 Mon Sep 17 00:00:00 2001 From: Sergey Kozlov Date: Mon, 30 Jun 2025 18:16:58 +0400 Subject: [PATCH] refactor: inline classes.trie as Uint8Array & drop base64-js usage at runtime --- package.json | 1 - src/classes-trie-data.js | 1 + src/classes.trie | Bin 3977 -> 0 bytes src/generate_data.js | 6 ++++-- src/linebreaker.js | 4 +--- yarn.lock | 5 ----- 6 files changed, 6 insertions(+), 11 deletions(-) create mode 100644 src/classes-trie-data.js delete mode 100644 src/classes.trie diff --git a/package.json b/package.json index 9ce61a7..8ec3d07 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ }, "homepage": "https://github.com/devongovett/linebreaker", "dependencies": { - "base64-js": "0.0.8", "unicode-trie": "^2.0.0" }, "devDependencies": { diff --git a/src/classes-trie-data.js b/src/classes-trie-data.js new file mode 100644 index 0000000..abf3551 --- /dev/null +++ b/src/classes-trie-data.js @@ -0,0 +1 @@ +export default new Uint8Array([0,8,14,0,0,0,0,0,64,230,0,0,1,120,15,135,240,237,157,123,140,93,69,29,199,231,178,187,119,247,222,189,187,237,221,178,165,82,150,210,46,21,88,64,44,104,128,16,2,13,49,148,160,129,2,134,87,20,196,40,143,226,31,149,34,98,195,31,72,48,16,148,240,16,8,24,49,128,52,80,65,165,90,240,5,42,164,74,208,38,109,164,10,34,42,164,32,34,21,37,20,12,242,240,59,156,25,239,236,116,158,103,30,231,150,222,77,62,153,115,206,60,126,191,249,205,111,30,103,206,57,119,239,236,35,228,94,176,22,60,8,158,3,91,192,86,240,22,232,235,39,100,184,223,63,28,3,187,130,5,96,10,28,0,14,118,200,119,4,56,218,16,255,49,240,113,240,9,240,25,176,12,92,0,46,6,151,10,233,190,2,174,6,55,128,111,130,59,192,119,192,106,176,6,252,4,60,12,30,3,27,193,38,150,247,105,22,62,7,182,128,87,193,107,224,109,80,31,32,100,20,204,4,115,192,30,96,111,48,5,22,129,67,193,98,22,127,12,88,202,226,233,249,41,224,76,112,14,56,15,124,30,92,12,46,101,241,87,130,107,193,205,236,252,54,112,247,64,33,255,62,132,63,6,191,100,229,83,253,30,69,184,1,60,1,254,8,158,5,155,250,138,243,23,193,203,236,252,117,132,239,176,60,131,117,66,102,128,89,96,110,189,136,127,145,165,159,172,23,225,94,245,34,45,231,128,122,135,131,25,135,131,35,24,98,90,19,71,35,237,113,82,250,115,33,239,100,143,50,92,56,67,40,239,108,28,47,3,23,128,149,224,178,122,167,190,87,225,248,122,240,13,73,254,29,56,191,73,56,191,19,231,247,130,181,66,94,202,79,89,190,71,132,235,191,193,241,239,192,83,245,194,239,41,180,125,39,16,62,75,211,129,87,192,27,44,111,109,176,8,135,16,206,4,187,12,118,228,206,195,241,194,65,125,61,247,71,220,34,67,188,11,135,34,255,98,112,12,88,10,78,5,159,2,231,130,229,224,66,112,9,184,28,92,1,174,1,55,49,153,183,178,112,21,194,239,130,251,193,67,224,87,96,61,139,219,132,240,41,240,172,70,207,231,133,235,47,225,248,85,137,173,194,241,91,160,54,68,72,3,180,193,28,176,7,216,27,124,16,28,2,142,4,75,192,241,224,20,112,38,56,103,168,40,255,124,132,43,192,151,216,249,165,8,175,24,242,183,217,53,44,207,77,8,111,245,200,191,170,132,172,123,165,60,107,133,243,59,153,143,61,136,107,235,192,250,161,162,63,111,26,114,231,247,224,207,224,121,240,79,240,26,120,27,212,27,197,241,104,195,156,127,182,16,191,187,37,109,143,30,61,226,193,199,129,170,245,232,209,163,71,143,30,61,122,244,232,177,125,177,160,75,239,219,246,105,76,223,15,209,241,129,70,177,151,71,143,15,194,241,61,66,220,97,13,123,254,163,144,230,88,150,238,4,132,139,251,139,253,154,211,112,124,22,43,251,60,132,203,193,197,141,98,63,238,34,186,127,128,227,43,89,190,107,17,222,220,152,190,63,68,185,13,215,86,25,100,223,141,248,251,192,26,240,3,240,67,176,22,220,15,30,232,197,245,226,122,113,189,184,94,92,244,184,135,192,58,240,40,120,119,207,180,66,54,52,170,165,234,250,247,232,209,213,4,174,99,159,64,31,251,43,216,220,40,255,156,238,5,77,222,127,225,250,127,0,105,18,50,8,102,52,167,199,207,194,249,92,48,9,246,5,7,129,67,154,133,94,71,34,92,210,172,126,252,217,121,70,193,215,193,227,160,53,83,207,18,112,5,248,153,34,238,77,233,252,67,109,66,86,128,123,192,230,118,113,109,206,24,33,39,129,175,130,187,192,11,224,25,232,48,15,118,56,3,124,11,252,133,218,112,152,144,69,128,224,254,227,164,225,226,92,228,50,112,125,173,195,35,44,45,231,37,156,239,215,34,228,163,96,57,184,8,172,1,175,128,3,71,112,13,220,7,254,61,50,189,156,29,141,246,232,116,187,245,232,209,163,199,142,196,210,81,243,220,127,60,230,163,83,154,250,248,211,154,219,174,89,120,220,89,136,59,79,202,251,57,156,95,200,174,157,168,121,247,138,190,151,117,125,228,247,178,76,92,164,169,223,37,134,122,83,46,167,235,26,250,46,151,34,221,117,236,218,45,150,50,108,220,174,176,175,10,158,126,53,75,255,61,65,238,3,236,248,231,194,181,135,155,197,187,96,187,225,248,49,28,111,100,231,79,34,124,6,252,141,157,191,140,240,117,240,95,118,78,247,30,233,26,132,239,43,14,227,120,214,112,71,135,185,56,94,129,112,114,184,120,247,112,95,132,7,129,195,134,213,58,111,69,153,71,13,119,244,218,29,28,171,72,203,211,127,145,250,141,32,143,166,63,29,231,159,102,101,44,67,120,1,139,167,123,160,43,217,122,73,87,222,85,195,106,187,243,61,221,235,16,127,203,240,244,60,183,227,124,53,88,3,238,7,15,177,50,214,33,92,207,142,55,34,124,82,35,87,174,207,51,72,247,2,216,2,94,81,200,122,131,149,185,83,171,83,55,27,77,164,29,107,21,123,201,187,182,58,215,231,227,120,33,216,191,149,175,127,185,240,225,46,211,167,10,14,103,54,248,136,193,22,75,52,113,199,225,250,201,45,55,223,72,73,217,186,159,17,177,253,233,187,137,103,183,58,199,116,46,57,159,157,175,64,184,50,147,175,125,89,35,231,202,86,241,238,228,213,66,123,221,216,10,191,215,183,81,182,30,183,50,61,87,117,129,127,85,201,106,199,54,162,247,218,15,128,7,61,219,148,190,15,91,117,29,125,251,247,186,86,231,93,243,29,149,245,158,227,201,227,72,255,39,234,31,138,181,225,230,237,108,30,252,59,244,221,18,65,103,106,199,173,204,151,222,164,229,141,96,13,51,82,189,191,139,126,79,191,17,208,197,83,189,199,70,138,116,187,32,220,109,100,219,252,123,226,218,126,35,238,54,89,196,210,30,26,96,7,186,222,91,156,216,142,58,253,143,25,153,30,191,52,67,123,158,202,108,246,73,15,59,155,152,237,162,179,101,92,255,44,202,88,54,82,124,71,178,156,133,95,24,41,226,46,25,177,231,151,185,28,121,190,6,110,0,55,11,249,111,195,241,93,224,251,224,71,194,245,95,224,248,215,96,61,216,0,254,192,226,158,70,184,89,72,247,15,28,191,204,206,95,71,248,14,59,22,237,49,40,236,23,156,192,242,205,96,215,198,89,56,129,240,183,66,185,11,112,62,53,90,28,31,200,194,67,16,30,49,58,189,252,193,209,233,245,60,26,231,199,26,246,39,104,127,60,113,212,223,126,239,37,78,71,253,151,246,151,159,187,186,105,140,45,203,183,251,106,255,103,156,16,43,109,176,16,44,96,236,233,144,199,149,125,0,110,55,8,212,34,24,122,9,123,60,246,238,49,189,70,255,118,18,226,208,132,100,38,11,233,150,220,176,35,67,140,150,64,93,58,79,13,97,117,216,41,163,76,89,62,109,203,26,59,31,39,189,191,169,29,28,85,159,124,191,230,122,10,250,89,59,208,62,223,16,160,254,57,159,193,143,249,24,209,38,29,159,230,249,120,218,49,41,175,72,159,116,78,72,218,254,54,63,113,249,221,46,191,219,224,254,33,250,0,63,119,181,153,236,83,98,158,49,75,222,28,228,234,183,219,3,253,37,243,232,40,163,67,217,118,148,215,42,182,182,173,218,239,82,66,109,65,199,124,62,103,241,235,13,162,159,195,186,157,182,208,110,227,138,227,58,11,109,243,247,72,23,81,182,125,155,2,242,58,221,199,166,117,33,228,84,237,187,169,199,102,215,251,159,166,112,44,235,148,178,206,117,98,175,187,205,62,114,188,42,45,79,227,106,143,216,237,250,94,240,41,121,124,125,47,225,99,135,22,41,127,63,85,133,255,165,180,137,156,135,142,205,188,79,139,247,144,226,125,91,14,93,117,250,203,215,117,233,114,250,122,14,185,62,247,247,166,246,141,209,127,202,144,67,70,72,253,83,250,68,204,186,219,202,242,213,175,205,200,57,174,201,253,165,138,246,17,251,79,140,246,49,245,81,81,150,124,205,102,163,178,243,14,95,111,171,202,230,215,27,10,121,170,113,180,234,246,137,129,169,93,108,58,132,172,3,84,253,210,213,95,84,54,200,221,30,161,246,142,173,71,153,254,208,32,246,246,207,53,31,229,234,255,101,124,90,246,185,42,250,189,78,207,88,118,55,217,192,54,78,164,186,15,224,227,176,235,250,110,123,232,255,174,109,146,186,255,155,218,208,117,63,95,212,57,247,51,128,156,99,145,105,76,10,177,127,72,93,170,176,117,12,187,187,202,75,237,255,46,101,235,214,137,50,49,199,99,95,159,244,237,239,98,59,184,142,233,156,189,186,4,89,175,70,96,121,45,15,59,242,251,194,110,181,13,183,143,175,95,168,108,50,38,33,94,235,23,142,219,236,188,174,160,159,229,147,159,73,216,198,131,216,247,221,242,115,39,30,210,191,154,16,134,140,175,177,214,102,109,135,235,185,231,68,215,49,138,247,143,208,177,93,244,45,221,218,130,63,159,14,25,23,117,250,134,246,65,87,249,186,252,239,171,152,93,43,102,110,197,164,90,75,153,198,13,121,157,100,234,71,169,169,82,118,110,249,244,175,70,166,143,31,190,186,218,198,189,178,184,174,3,203,234,238,35,95,183,246,73,169,131,79,189,99,203,159,10,144,31,123,77,199,109,63,32,156,115,223,19,215,191,177,246,1,98,181,31,95,7,114,253,199,164,235,178,143,241,247,205,82,232,95,197,189,179,205,175,114,174,205,100,251,136,231,188,61,66,215,45,161,247,114,190,254,107,186,167,75,133,201,190,60,77,85,247,125,220,183,92,237,23,74,236,241,47,244,222,73,94,67,217,250,97,200,253,66,155,148,155,251,99,232,46,202,87,173,29,171,32,164,141,98,221,239,199,26,31,109,243,73,202,241,89,246,43,159,247,16,116,58,199,222,79,73,133,107,95,178,181,151,236,99,49,198,15,83,223,26,151,142,109,125,177,140,62,101,223,197,143,129,44,187,10,223,224,107,71,93,31,225,244,75,231,59,51,157,231,9,250,203,233,102,145,233,223,182,244,145,206,119,152,125,138,115,49,45,101,134,0,45,143,127,51,170,179,101,211,130,168,3,149,51,192,208,217,102,136,233,86,19,210,154,210,155,250,95,83,97,211,150,116,62,91,145,215,103,222,150,251,177,203,55,91,188,126,226,247,71,242,55,73,46,249,203,222,223,136,227,75,195,64,211,18,239,155,183,169,56,14,145,209,240,104,167,144,57,211,117,62,229,254,46,183,97,147,184,181,139,152,207,231,93,92,87,191,73,241,61,161,73,182,234,187,60,213,119,157,38,116,242,124,243,185,218,69,110,223,20,242,124,116,42,91,23,149,94,242,53,85,60,15,229,239,120,109,109,171,178,133,92,7,147,237,76,62,228,226,15,101,218,218,38,55,70,127,48,217,198,116,30,195,127,98,149,239,106,179,80,219,133,234,229,203,140,8,58,208,63,241,185,107,89,93,71,25,62,50,83,216,116,84,34,164,172,144,121,85,135,239,252,145,146,86,201,60,178,95,164,208,203,167,15,197,144,85,86,7,87,91,250,148,163,58,119,189,46,151,17,90,63,87,187,187,230,73,209,191,77,245,182,217,141,151,195,227,71,21,114,38,72,156,241,164,76,29,117,54,140,97,203,144,118,87,249,28,183,159,42,77,12,157,115,217,223,86,239,220,200,62,111,67,238,155,42,159,158,175,73,175,234,15,114,156,216,239,116,118,82,233,161,42,71,165,207,132,65,174,10,149,173,38,36,114,249,136,120,222,167,129,198,241,231,124,178,254,244,175,86,34,76,49,15,151,245,119,174,83,206,62,226,106,167,42,100,250,134,85,218,45,167,236,92,190,18,203,175,101,76,251,168,242,51,125,121,15,183,78,220,158,175,216,112,125,15,72,247,108,70,55,70,217,48,237,251,139,251,212,68,170,167,56,6,138,231,244,207,212,39,228,242,249,59,43,170,125,113,149,157,102,49,116,123,233,68,33,67,87,39,157,44,62,166,187,212,133,183,129,239,220,30,27,217,39,248,239,51,214,132,52,3,194,177,173,110,68,202,107,75,55,32,28,139,249,108,232,246,194,117,105,85,215,249,179,25,217,30,147,236,216,22,166,38,151,28,155,124,151,122,219,226,38,201,182,207,132,7,36,120,155,116,155,253,99,213,95,229,127,147,68,237,135,162,63,250,48,25,136,205,38,182,245,98,138,118,208,217,198,134,239,243,175,144,57,56,214,124,174,91,95,248,190,63,17,91,7,113,206,19,113,181,175,172,147,239,123,29,41,236,169,211,193,199,63,92,159,141,150,133,127,127,195,215,22,46,107,186,50,207,136,67,222,111,114,145,239,139,143,125,92,252,199,38,47,197,119,3,169,159,229,83,25,85,124,147,36,183,183,174,254,46,239,100,150,245,55,158,191,202,239,195,92,231,143,148,239,117,248,142,159,114,217,190,246,119,109,87,87,59,168,202,9,169,191,173,143,135,214,95,102,23,48,39,35,185,229,249,174,63,99,126,123,40,151,93,197,247,135,178,14,123,87,76,202,181,70,75,211,166,244,183,117,199,137,223,239,240,118,219,111,252,134,194,247,44,114,203,149,215,151,161,235,170,33,210,217,107,225,191,117,44,239,91,209,247,74,82,173,239,84,247,105,92,174,107,40,231,51,221,3,214,132,144,234,207,239,181,197,231,47,54,57,54,248,123,160,170,123,206,42,124,149,203,158,205,66,94,79,89,87,149,13,107,82,232,115,143,46,223,167,215,61,203,8,133,148,212,61,149,124,110,219,154,116,204,237,20,107,79,38,7,166,61,170,212,136,253,137,250,110,67,138,231,239,122,218,250,155,235,26,70,28,175,246,32,197,190,86,21,253,217,116,159,174,218,123,169,106,110,20,215,211,169,234,237,211,118,85,217,65,182,137,203,253,92,85,250,113,95,170,66,238,148,36,63,199,62,81,89,127,115,121,38,232,234,11,46,109,175,147,99,90,147,229,240,39,87,155,216,250,129,77,255,208,251,113,159,250,136,251,2,114,254,144,49,40,20,23,255,206,221,71,82,148,25,179,159,170,108,231,178,215,148,10,87,63,22,109,41,218,54,215,92,87,214,143,228,126,239,186,95,151,98,140,170,106,60,41,59,103,249,232,165,26,95,171,234,131,92,166,248,253,111,25,31,149,223,167,81,249,25,63,246,249,94,126,76,42,191,76,95,247,109,75,221,251,71,114,191,174,106,46,113,169,179,233,57,110,206,241,37,119,255,141,61,6,169,252,55,100,140,152,18,202,214,245,45,215,58,135,234,99,107,167,50,243,177,110,92,16,251,145,239,56,201,235,175,107,7,85,187,165,156,63,168,76,254,251,153,252,61,17,249,55,88,109,247,24,101,214,219,162,124,57,173,79,251,133,214,95,254,237,90,23,114,143,127,33,125,196,102,211,80,251,133,18,250,59,96,174,250,203,191,143,215,46,33,43,5,169,231,127,211,216,146,122,190,212,173,155,196,114,124,222,213,138,225,175,85,219,128,215,127,76,40,43,135,159,137,245,207,233,47,101,237,168,138,87,173,159,219,158,182,244,109,191,92,62,33,207,153,226,124,227,211,63,82,248,187,13,147,252,42,230,84,185,254,101,222,11,245,29,111,98,217,143,191,75,25,187,109,66,253,211,5,23,123,218,250,123,183,140,255,33,99,123,174,254,168,27,171,92,236,223,146,242,228,66,53,230,249,60,107,205,189,94,205,109,31,74,147,108,251,27,111,177,198,1,31,66,247,162,121,25,101,199,222,28,246,23,255,106,2,114,58,249,26,79,79,52,233,83,235,172,211,211,151,126,3,92,142,234,26,15,77,99,72,234,185,36,196,63,98,181,91,217,241,40,246,179,30,211,252,234,211,231,66,245,240,89,227,170,224,113,177,215,103,57,198,146,208,54,85,205,213,161,253,40,198,189,141,136,252,77,164,238,255,234,216,214,31,221,54,31,187,202,247,125,31,44,54,161,117,140,165,103,232,119,156,177,136,209,94,38,82,143,25,166,49,84,245,236,209,119,142,140,169,143,110,236,72,61,62,197,30,195,124,235,156,179,237,125,231,181,212,164,106,91,149,93,83,205,99,62,109,40,166,85,61,203,10,25,51,99,216,44,116,254,8,149,21,219,207,99,18,195,62,161,117,41,235,167,190,253,62,85,187,136,253,32,70,155,132,140,187,227,1,246,160,248,252,198,119,10,249,49,218,37,246,252,111,243,79,57,127,217,250,243,191,42,124,72,164,105,57,247,165,204,111,212,137,235,201,216,191,123,23,187,188,86,2,125,83,124,115,179,91,38,84,178,39,52,215,99,160,106,131,156,50,116,215,197,223,170,84,217,65,21,159,155,221,21,200,250,169,244,181,17,67,55,31,121,62,250,168,244,147,211,186,214,101,194,80,166,143,111,169,66,157,44,93,222,178,125,192,52,118,135,182,161,235,28,145,178,236,84,117,179,249,173,75,251,149,45,223,85,102,12,114,219,177,140,28,83,95,207,245,187,193,226,111,105,154,254,79,84,108,159,240,29,119,125,101,198,246,171,216,118,79,45,63,182,254,177,244,75,213,95,67,235,167,91,239,184,248,175,207,90,194,199,223,125,214,8,57,215,101,169,100,168,214,50,33,242,76,235,163,144,53,97,21,107,224,208,245,107,232,189,121,232,254,72,46,59,185,214,251,127]); diff --git a/src/classes.trie b/src/classes.trie deleted file mode 100644 index 34190caba744657da4895d6457b922fc031cc37e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3977 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 diff --git a/src/generate_data.js b/src/generate_data.js index fe90760..b8ab486 100644 --- a/src/generate_data.js +++ b/src/generate_data.js @@ -43,6 +43,8 @@ request('https://www.unicode.org/Public/15.0.0/ucd/LineBreak.txt', function (err trie.setRange(parseInt(start, 16), parseInt(end, 16), classes[type], true); - // write the trie to a file - fs.writeFileSync(new URL('classes.trie', import.meta.url), trie.toBuffer()); + // write the trie Uint8Array to a file + const trieBuffer = trie.toBuffer(); + const output = `export default new Uint8Array([${[...trieBuffer].join(',')}]);\n`; + fs.writeFileSync(new URL('classes-trie-data.js', import.meta.url), output); }); diff --git a/src/linebreaker.js b/src/linebreaker.js index b50bc4c..3cd14c4 100644 --- a/src/linebreaker.js +++ b/src/linebreaker.js @@ -1,10 +1,8 @@ import UnicodeTrie from 'unicode-trie'; -import fs from 'fs'; -import base64 from 'base64-js'; import { BK, CR, LF, NL, SG, WJ, SP, ZWJ, BA, HY, NS, AI, AL, CJ, HL, RI, SA, XX } from './classes'; import { DI_BRK, IN_BRK, CI_BRK, CP_BRK, PR_BRK, pairTable } from './pairs'; +import data from './classes-trie-data.js'; -const data = base64.toByteArray(fs.readFileSync(__dirname + '/classes.trie', 'base64')); const classTrie = new UnicodeTrie(data); const mapClass = function (c) { diff --git a/yarn.lock b/yarn.lock index 78198ea..e5812cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -965,11 +965,6 @@ base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" - integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"