Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions data/resources.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ const resources = [
'special-casing':
'https://unicode.org/Public/3.2-Update/SpecialCasing-3.2.0.txt',
'line-break': 'https://unicode.org/Public/3.2-Update/LineBreak-3.2.0.txt',
'arabic-shaping':
'https://unicode.org/Public/3.2-Update/ArabicShaping-3.2.0.txt',
},
{
version: '4.0.0',
Expand All @@ -135,6 +137,8 @@ const resources = [
'special-casing':
'https://unicode.org/Public/4.0-Update/SpecialCasing-4.0.0.txt',
'line-break': 'https://unicode.org/Public/4.0-Update/LineBreak-4.0.0.txt',
'arabic-shaping':
'https://unicode.org/Public/4.0-Update/ArabicShaping-4.0.0.txt',
},
{
version: '4.0.1',
Expand All @@ -155,6 +159,8 @@ const resources = [
'special-casing':
'https://unicode.org/Public/4.0-Update1/SpecialCasing-4.0.1.txt',
'line-break': 'https://unicode.org/Public/4.0-Update1/LineBreak-4.0.1.txt',
'arabic-shaping':
'https://unicode.org/Public/4.0-Update1/ArabicShaping-4.0.1.txt',
},
{
version: '4.1.0',
Expand All @@ -176,6 +182,8 @@ const resources = [
'special-casing': 'https://unicode.org/Public/4.1.0/ucd/SpecialCasing.txt',
'bidi-mirroring': 'https://unicode.org/Public/4.1.0/ucd/BidiMirroring.txt',
'line-break': 'https://unicode.org/Public/4.1.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/4.1.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/4.1.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -203,6 +211,8 @@ const resources = [
'special-casing': 'https://unicode.org/Public/5.0.0/ucd/SpecialCasing.txt',
'bidi-mirroring': 'https://unicode.org/Public/5.0.0/ucd/BidiMirroring.txt',
'line-break': 'https://unicode.org/Public/5.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/5.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/5.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -230,6 +240,8 @@ const resources = [
'special-casing': 'https://unicode.org/Public/5.1.0/ucd/SpecialCasing.txt',
'bidi-mirroring': 'https://unicode.org/Public/5.1.0/ucd/BidiMirroring.txt',
'line-break': 'https://unicode.org/Public/5.1.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/5.1.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/5.1.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -257,6 +269,8 @@ const resources = [
'special-casing': 'https://unicode.org/Public/5.2.0/ucd/SpecialCasing.txt',
'bidi-mirroring': 'https://unicode.org/Public/5.2.0/ucd/BidiMirroring.txt',
'line-break': 'https://unicode.org/Public/5.2.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/5.2.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/5.2.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -290,6 +304,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/6.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/6.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/6.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/6.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -324,6 +340,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/6.1.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/6.1.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/6.1.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/6.1.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -358,6 +376,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/6.2.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/6.2.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/6.2.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/6.2.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -393,6 +413,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/6.3.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/6.3.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/6.3.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/6.3.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -428,6 +450,8 @@ const resources = [
'bidi-mirroring': 'https://unicode.org/Public/7.0.0/ucd/BidiMirroring.txt',
'bidi-brackets': 'https://unicode.org/Public/7.0.0/ucd/BidiBrackets.txt',
'line-break': 'https://unicode.org/Public/7.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/7.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/7.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -463,6 +487,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/8.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/8.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/8.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/8.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -498,6 +524,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/9.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/9.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/9.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/9.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -533,6 +561,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/10.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/10.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/10.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -570,6 +600,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/11.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/11.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/11.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -617,6 +649,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/12.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/12.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/12.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/12.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -664,6 +698,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/12.1.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/12.1.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/12.1.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/12.1.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -711,6 +747,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/13.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/13.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/13.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -758,6 +796,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/14.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/14.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/14.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/14.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -805,6 +845,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/15.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/15.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/15.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -852,6 +894,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/15.1.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/15.1.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/15.1.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/15.1.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -899,6 +943,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/16.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/16.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/16.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/16.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -946,6 +992,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/17.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/17.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/17.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/17.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down Expand Up @@ -993,6 +1041,8 @@ const resources = [
'indic-syllabic-category':
'https://unicode.org/Public/18.0.0/ucd/IndicSyllabicCategory.txt',
'line-break': 'https://unicode.org/Public/18.0.0/ucd/LineBreak.txt',
'arabic-shaping':
'https://unicode.org/Public/18.0.0/ucd/ArabicShaping.txt',
'grapheme-cluster-break':
'https://unicode.org/Public/18.0.0/ucd/auxiliary/GraphemeBreakProperty.txt',
'word-break':
Expand Down
7 changes: 7 additions & 0 deletions index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import parseSpecialCasing from './scripts/parse-special-casing.mjs';
import parseSimpleCaseMapping from './scripts/parse-simple-case-mapping.mjs';
import parseGraphemeWordSentenceBreak from './scripts/parse-grapheme-word-sentence-break.mjs';
import parseVerticalOrientation from './scripts/parse-vertical-orientation.mjs';
import parseArabicShaping from './scripts/parse-arabic-shaping.mjs';
import parseEmoji from './scripts/parse-emoji.mjs';
import parseEmojiSequences from './scripts/parse-emoji-sequences.mjs';
import parseNames from './scripts/parse-names.mjs';
Expand Down Expand Up @@ -169,6 +170,12 @@ const generateData = async (version) => {
'map': await parseVerticalOrientation(version),
'type': 'Vertical_Orientation',
}));
console.log('Parsing Unicode v%s `Joining_Type`…', version);
utils.extend(dirMap, await utils.writeFiles({
'version': version,
'map': await parseArabicShaping(version),
'type': 'Joining_Type',
}));
console.log('Parsing Unicode v%s binary emoji properties…', version);
utils.extend(dirMap, await utils.writeFiles({
'version': version,
Expand Down
1 change: 1 addition & 0 deletions scripts/download.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ const TYPES = [
'word-break',
'sentence-break',
'vertical-orientation',
'arabic-shaping',
'emoji',
'emoji-sequences',
'emoji-test',
Expand Down
27 changes: 27 additions & 0 deletions scripts/parse-arabic-shaping.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import utils from './utils.mjs';
import regenerate from 'regenerate';

const parseArabicShaping = async (version) => {
const source = await utils.readDataFile(version, 'arabic-shaping');
if (!source) {
return;
}
const map = {};
const lines = source.split('\n');
for (const line of lines) {
if (!line || /^#/.test(line)) {
continue;
}
// Format: `0600; ARABIC NUMBER SIGN; U; No_Joining_Group`.
// Field 1 (schematic name) is a comment; field 2 is the
// Joining_Type value; field 3 (Joining_Group) is out of scope.
const data = line.trim().split(';');
const codePoint = parseInt(data[0].trim(), 16);
const joiningType = data[2].trim();
map[joiningType] ??= regenerate();
map[joiningType].add(codePoint);
}
return map;
};

export default parseArabicShaping;
4 changes: 4 additions & 0 deletions tests/tests.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,9 @@ suite(`The generated latest Unicode js`, () => {
[...map.entries()]
);
});
test('Joining_Type/Dual_Joining should match the snapshot', async (t) => {
const { default: data } = await import(`../output/unicode-${newest}/Joining_Type/Dual_Joining/ranges.mjs`);
t.assert.snapshot(data);
});
});

Loading