@cantoo/fontkit 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-module.mjs +4448 -1142
- package/dist/browser-module.mjs.map +1 -1
- package/dist/browser.cjs +4449 -1142
- package/dist/browser.cjs.map +1 -1
- package/dist/main.cjs +4449 -1142
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +4448 -1142
- package/dist/module.mjs.map +1 -1
- package/package.json +4 -1
- package/src/CmapProcessor.js +60 -21
- package/src/DFont.js +114 -14
- package/src/TTFFont.js +260 -62
- package/src/TrueTypeCollection.js +59 -15
- package/src/WOFF2Font.js +128 -22
- package/src/WOFFFont.js +45 -8
- package/src/aat/AATFeatureMap.js +83 -40
- package/src/aat/AATLayoutEngine.js +34 -2
- package/src/aat/AATLookupTable.js +24 -6
- package/src/aat/AATMorxProcessor.js +202 -65
- package/src/aat/AATStateMachine.js +35 -3
- package/src/base.js +20 -1
- package/src/cff/CFFCharsets.js +3 -0
- package/src/cff/CFFDict.js +81 -11
- package/src/cff/CFFEncodings.js +2 -0
- package/src/cff/CFFFont.js +120 -24
- package/src/cff/CFFIndex.js +66 -9
- package/src/cff/CFFOperand.js +53 -28
- package/src/cff/CFFPointer.js +41 -2
- package/src/cff/CFFPrivateDict.js +34 -24
- package/src/cff/CFFStandardStrings.js +68 -67
- package/src/cff/CFFTop.js +161 -68
- package/src/decorators.js +34 -15
- package/src/encodings.js +133 -116
- package/src/fs.js +10 -0
- package/src/glyph/BBox.js +14 -0
- package/src/glyph/CFFGlyph.js +293 -152
- package/src/glyph/COLRGlyph.js +40 -5
- package/src/glyph/Glyph.js +72 -13
- package/src/glyph/GlyphVariationProcessor.js +158 -62
- package/src/glyph/Path.js +119 -32
- package/src/glyph/SBIXGlyph.js +57 -8
- package/src/glyph/StandardNames.js +1 -0
- package/src/glyph/TTFGlyph.js +203 -63
- package/src/glyph/TTFGlyphEncoder.js +58 -26
- package/src/glyph/WOFF2Glyph.js +25 -6
- package/src/layout/GlyphPosition.js +6 -0
- package/src/layout/GlyphRun.js +28 -10
- package/src/layout/KernProcessor.js +63 -4
- package/src/layout/LayoutEngine.js +99 -26
- package/src/layout/Script.js +52 -26
- package/src/layout/UnicodeLayoutEngine.js +34 -10
- package/src/opentype/GPOSProcessor.js +156 -45
- package/src/opentype/GSUBProcessor.js +92 -33
- package/src/opentype/GlyphInfo.js +53 -5
- package/src/opentype/GlyphIterator.js +51 -2
- package/src/opentype/OTLayoutEngine.js +66 -8
- package/src/opentype/OTProcessor.js +284 -71
- package/src/opentype/ShapingPlan.js +52 -5
- package/src/opentype/shapers/ArabicShaper.js +27 -8
- package/src/opentype/shapers/DefaultShaper.js +54 -10
- package/src/opentype/shapers/HangulShaper.js +120 -42
- package/src/opentype/shapers/HebrewShaper.js +50 -16
- package/src/opentype/shapers/IndicShaper.js +159 -44
- package/src/opentype/shapers/ThaiShaper.js +50 -19
- package/src/opentype/shapers/UniversalShaper.js +83 -17
- package/src/opentype/shapers/index.js +48 -35
- package/src/opentype/shapers/indic-data.js +2 -2
- package/src/packages/unicode-properties/data-trie.js +2 -1
- package/src/packages/unicode-properties/data.js +13 -1
- package/src/packages/unicode-properties/dist/index.cjs +23 -10
- package/src/packages/unicode-properties/dist/index.cjs.map +2 -2
- package/src/packages/unicode-properties/dist/index.mjs +22 -10
- package/src/packages/unicode-properties/dist/index.mjs.map +2 -2
- package/src/packages/unicode-properties/generate.js +3 -4
- package/src/packages/unicode-properties/index.js +95 -30
- package/src/packages/unicode-properties/package.json +1 -1
- package/src/packages/unicode-trie/builder.js +146 -29
- package/src/packages/unicode-trie/dist/builder.cjs +135 -25
- package/src/packages/unicode-trie/dist/builder.cjs.map +2 -2
- package/src/packages/unicode-trie/dist/builder.mjs +134 -25
- package/src/packages/unicode-trie/dist/builder.mjs.map +2 -2
- package/src/packages/unicode-trie/dist/index.cjs +22 -9
- package/src/packages/unicode-trie/dist/index.cjs.map +2 -2
- package/src/packages/unicode-trie/dist/index.mjs +21 -9
- package/src/packages/unicode-trie/dist/index.mjs.map +2 -2
- package/src/packages/unicode-trie/index.js +63 -12
- package/src/packages/unicode-trie/package.json +1 -1
- package/src/packages/unicode-trie/swap.js +15 -2
- package/src/subset/CFFSubset.js +112 -22
- package/src/subset/Subset.js +23 -3
- package/src/subset/TTFSubset.js +84 -41
- package/src/tables/BASE.js +28 -27
- package/src/tables/COLR.js +10 -9
- package/src/tables/CPAL.js +2 -1
- package/src/tables/DSIG.js +8 -7
- package/src/tables/EBDT.js +10 -4
- package/src/tables/EBLC.js +70 -10
- package/src/tables/GDEF.js +18 -17
- package/src/tables/GPOS.js +153 -90
- package/src/tables/GSUB.js +50 -39
- package/src/tables/HVAR.js +51 -5
- package/src/tables/JSTF.js +17 -16
- package/src/tables/LTSH.js +4 -3
- package/src/tables/OS2.js +50 -49
- package/src/tables/PCLT.js +16 -15
- package/src/tables/STAT.js +46 -6
- package/src/tables/VDMX.js +18 -17
- package/src/tables/VORG.js +8 -7
- package/src/tables/WOFF2Directory.js +57 -9
- package/src/tables/WOFFDirectory.js +32 -20
- package/src/tables/aat.js +160 -35
- package/src/tables/avar.js +1 -0
- package/src/tables/bsln.js +3 -2
- package/src/tables/cmap.js +83 -63
- package/src/tables/cvt.js +1 -0
- package/src/tables/directory.js +56 -28
- package/src/tables/feat.js +24 -2
- package/src/tables/fpgm.js +1 -0
- package/src/tables/fvar.js +32 -4
- package/src/tables/gasp.js +6 -5
- package/src/tables/glyf.js +2 -1
- package/src/tables/gvar.js +29 -2
- package/src/tables/hdmx.js +18 -7
- package/src/tables/head.js +17 -16
- package/src/tables/hhea.js +15 -14
- package/src/tables/hmtx.js +18 -2
- package/src/tables/index.js +1 -5
- package/src/tables/just.js +15 -4
- package/src/tables/kern.js +84 -47
- package/src/tables/loca.js +23 -10
- package/src/tables/maxp.js +16 -15
- package/src/tables/morx.js +27 -20
- package/src/tables/name.js +120 -39
- package/src/tables/opbd.js +2 -1
- package/src/tables/opentype.js +126 -91
- package/src/tables/post.js +18 -11
- package/src/tables/prep.js +1 -0
- package/src/tables/sbix.js +12 -1
- package/src/tables/variations.js +29 -9
- package/src/tables/vhea.js +15 -14
- package/src/tables/vmtx.js +20 -4
- package/src/utils.js +15 -0
package/src/encodings.js
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Gets an encoding name from platform, encoding, and language ids.
|
|
3
3
|
* Returned encoding names can be used in iconv-lite to decode text.
|
|
4
|
+
* @param {number} platformID
|
|
5
|
+
* @param {number} encodingID
|
|
6
|
+
* @param {number} [languageID]
|
|
7
|
+
* @returns {string | null | undefined}
|
|
4
8
|
*/
|
|
5
9
|
export function getEncoding(platformID, encodingID, languageID = 0) {
|
|
6
10
|
if (platformID === 1 && MAC_LANGUAGE_ENCODINGS[languageID]) {
|
|
7
11
|
return MAC_LANGUAGE_ENCODINGS[languageID];
|
|
8
12
|
}
|
|
9
|
-
|
|
13
|
+
|
|
10
14
|
return ENCODINGS[platformID][encodingID];
|
|
11
15
|
}
|
|
12
16
|
|
|
17
|
+
/** @type {Set<string>} */
|
|
13
18
|
const SINGLE_BYTE_ENCODINGS = new Set(['x-mac-roman', 'x-mac-cyrillic', 'iso-8859-6', 'iso-8859-8']);
|
|
19
|
+
|
|
20
|
+
/** @type {Record<string, string>} */
|
|
14
21
|
const MAC_ENCODINGS = {
|
|
15
22
|
'x-mac-croatian': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ',
|
|
16
23
|
'x-mac-gaelic': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ',
|
|
@@ -22,8 +29,13 @@ const MAC_ENCODINGS = {
|
|
|
22
29
|
'x-mac-turkish': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ'
|
|
23
30
|
};
|
|
24
31
|
|
|
32
|
+
/** @type {Map<string, Map<number, number>>} */
|
|
25
33
|
const encodingCache = new Map();
|
|
26
34
|
|
|
35
|
+
/**
|
|
36
|
+
* @param {string} encoding
|
|
37
|
+
* @returns {Map<number, number> | undefined}
|
|
38
|
+
*/
|
|
27
39
|
export function getEncodingMapping(encoding) {
|
|
28
40
|
let cached = encodingCache.get(encoding);
|
|
29
41
|
if (cached) {
|
|
@@ -47,13 +59,13 @@ export function getEncodingMapping(encoding) {
|
|
|
47
59
|
// TextEncoder only supports utf8, whereas TextDecoder supports legacy encodings.
|
|
48
60
|
// Use this to create a mapping of code points.
|
|
49
61
|
let decoder = new TextDecoder(encoding);
|
|
50
|
-
let
|
|
62
|
+
let bytes = new Uint8Array(0x80);
|
|
51
63
|
for (let i = 0; i < 0x80; i++) {
|
|
52
|
-
|
|
64
|
+
bytes[i] = 0x80 + i;
|
|
53
65
|
}
|
|
54
66
|
|
|
55
67
|
let res = new Map();
|
|
56
|
-
let s = decoder.decode(
|
|
68
|
+
let s = decoder.decode(bytes);
|
|
57
69
|
for (let i = 0; i < 0x80; i++) {
|
|
58
70
|
res.set(s.charCodeAt(i), 0x80 + i);
|
|
59
71
|
}
|
|
@@ -61,41 +73,44 @@ export function getEncodingMapping(encoding) {
|
|
|
61
73
|
encodingCache.set(encoding, res);
|
|
62
74
|
return res;
|
|
63
75
|
}
|
|
76
|
+
|
|
77
|
+
return undefined;
|
|
64
78
|
}
|
|
65
79
|
|
|
66
80
|
// Map of platform ids to encoding ids.
|
|
81
|
+
/** @type {(string | null)[][]} */
|
|
67
82
|
export const ENCODINGS = [
|
|
68
83
|
// unicode
|
|
69
84
|
['utf-16be', 'utf-16be', 'utf-16be', 'utf-16be', 'utf-16be', 'utf-16be', 'utf-16be'],
|
|
70
|
-
|
|
85
|
+
|
|
71
86
|
// macintosh
|
|
72
87
|
// Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/
|
|
73
|
-
// 0
|
|
74
|
-
// 1
|
|
75
|
-
// 2
|
|
76
|
-
// 3
|
|
77
|
-
// 4
|
|
78
|
-
// 5
|
|
79
|
-
// 6
|
|
80
|
-
// 7
|
|
81
|
-
// 8
|
|
82
|
-
// 9
|
|
83
|
-
// 10
|
|
84
|
-
// 11
|
|
85
|
-
// 12
|
|
86
|
-
// 13
|
|
87
|
-
// 14
|
|
88
|
-
// 15
|
|
89
|
-
// 16
|
|
88
|
+
// 0 Roman 17 Malayalam
|
|
89
|
+
// 1 Japanese 18 Sinhalese
|
|
90
|
+
// 2 Traditional Chinese 19 Burmese
|
|
91
|
+
// 3 Korean 20 Khmer
|
|
92
|
+
// 4 Arabic 21 Thai
|
|
93
|
+
// 5 Hebrew 22 Laotian
|
|
94
|
+
// 6 Greek 23 Georgian
|
|
95
|
+
// 7 Russian 24 Armenian
|
|
96
|
+
// 8 RSymbol 25 Simplified Chinese
|
|
97
|
+
// 9 Devanagari 26 Tibetan
|
|
98
|
+
// 10 Gurmukhi 27 Mongolian
|
|
99
|
+
// 11 Gujarati 28 Geez
|
|
100
|
+
// 12 Oriya 29 Slavic
|
|
101
|
+
// 13 Bengali 30 Vietnamese
|
|
102
|
+
// 14 Tamil 31 Sindhi
|
|
103
|
+
// 15 Telugu 32 (Uninterpreted)
|
|
104
|
+
// 16 Kannada
|
|
90
105
|
['x-mac-roman', 'shift-jis', 'big5', 'euc-kr', 'iso-8859-6', 'iso-8859-8',
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
106
|
+
'x-mac-greek', 'x-mac-cyrillic', 'x-mac-symbol', 'x-mac-devanagari', 'x-mac-gurmukhi', 'x-mac-gujarati',
|
|
107
|
+
'Oriya', 'Bengali', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhalese',
|
|
108
|
+
'Burmese', 'Khmer', 'iso-8859-11', 'Laotian', 'Georgian', 'Armenian', 'gbk',
|
|
109
|
+
'Tibetan', 'Mongolian', 'Geez', 'x-mac-ce', 'Vietnamese', 'Sindhi'],
|
|
110
|
+
|
|
96
111
|
// ISO (deprecated)
|
|
97
112
|
['ascii', null, 'iso-8859-1'],
|
|
98
|
-
|
|
113
|
+
|
|
99
114
|
// windows
|
|
100
115
|
// Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx
|
|
101
116
|
['symbol', 'utf-16be', 'shift-jis', 'gb18030', 'big5', 'euc-kr', 'johab', null, null, null, 'utf-16be']
|
|
@@ -103,6 +118,7 @@ export const ENCODINGS = [
|
|
|
103
118
|
|
|
104
119
|
// Overrides for Mac scripts by language id.
|
|
105
120
|
// See http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt
|
|
121
|
+
/** @type {Record<number, string>} */
|
|
106
122
|
export const MAC_LANGUAGE_ENCODINGS = {
|
|
107
123
|
15: 'x-mac-icelandic',
|
|
108
124
|
17: 'x-mac-turkish',
|
|
@@ -122,98 +138,99 @@ export const MAC_LANGUAGE_ENCODINGS = {
|
|
|
122
138
|
};
|
|
123
139
|
|
|
124
140
|
// Map of platform ids to BCP-47 language codes.
|
|
141
|
+
/** @type {Array<Record<number, string>>} */
|
|
125
142
|
export const LANGUAGES = [
|
|
126
143
|
// unicode
|
|
127
|
-
|
|
128
|
-
|
|
144
|
+
{},
|
|
145
|
+
|
|
129
146
|
{ // macintosh
|
|
130
|
-
0: 'en',
|
|
131
|
-
1: 'fr',
|
|
132
|
-
2: 'de',
|
|
133
|
-
3: 'it',
|
|
134
|
-
4: 'nl',
|
|
135
|
-
5: 'sv',
|
|
136
|
-
6: 'es',
|
|
137
|
-
7: 'da',
|
|
138
|
-
8: 'pt',
|
|
139
|
-
9: 'no',
|
|
140
|
-
10: 'he',
|
|
141
|
-
11: 'ja',
|
|
142
|
-
12: 'ar',
|
|
143
|
-
13: 'fi',
|
|
144
|
-
14: 'el',
|
|
145
|
-
15: 'is',
|
|
146
|
-
16: 'mt',
|
|
147
|
-
17: 'tr',
|
|
148
|
-
18: 'hr',
|
|
149
|
-
19: 'zh-Hant',
|
|
150
|
-
20: 'ur',
|
|
151
|
-
21: 'hi',
|
|
152
|
-
22: 'th',
|
|
153
|
-
23: 'ko',
|
|
154
|
-
24: 'lt',
|
|
155
|
-
25: 'pl',
|
|
156
|
-
26: 'hu',
|
|
157
|
-
27: 'es',
|
|
158
|
-
28: 'lv',
|
|
159
|
-
29: 'se',
|
|
147
|
+
0: 'en', 30: 'fo', 60: 'ks', 90: 'rw',
|
|
148
|
+
1: 'fr', 31: 'fa', 61: 'ku', 91: 'rn',
|
|
149
|
+
2: 'de', 32: 'ru', 62: 'sd', 92: 'ny',
|
|
150
|
+
3: 'it', 33: 'zh', 63: 'bo', 93: 'mg',
|
|
151
|
+
4: 'nl', 34: 'nl-BE', 64: 'ne', 94: 'eo',
|
|
152
|
+
5: 'sv', 35: 'ga', 65: 'sa', 128: 'cy',
|
|
153
|
+
6: 'es', 36: 'sq', 66: 'mr', 129: 'eu',
|
|
154
|
+
7: 'da', 37: 'ro', 67: 'bn', 130: 'ca',
|
|
155
|
+
8: 'pt', 38: 'cz', 68: 'as', 131: 'la',
|
|
156
|
+
9: 'no', 39: 'sk', 69: 'gu', 132: 'qu',
|
|
157
|
+
10: 'he', 40: 'si', 70: 'pa', 133: 'gn',
|
|
158
|
+
11: 'ja', 41: 'yi', 71: 'or', 134: 'ay',
|
|
159
|
+
12: 'ar', 42: 'sr', 72: 'ml', 135: 'tt',
|
|
160
|
+
13: 'fi', 43: 'mk', 73: 'kn', 136: 'ug',
|
|
161
|
+
14: 'el', 44: 'bg', 74: 'ta', 137: 'dz',
|
|
162
|
+
15: 'is', 45: 'uk', 75: 'te', 138: 'jv',
|
|
163
|
+
16: 'mt', 46: 'be', 76: 'si', 139: 'su',
|
|
164
|
+
17: 'tr', 47: 'uz', 77: 'my', 140: 'gl',
|
|
165
|
+
18: 'hr', 48: 'kk', 78: 'km', 141: 'af',
|
|
166
|
+
19: 'zh-Hant', 49: 'az-Cyrl', 79: 'lo', 142: 'br',
|
|
167
|
+
20: 'ur', 50: 'az-Arab', 80: 'vi', 143: 'iu',
|
|
168
|
+
21: 'hi', 51: 'hy', 81: 'id', 144: 'gd',
|
|
169
|
+
22: 'th', 52: 'ka', 82: 'tl', 145: 'gv',
|
|
170
|
+
23: 'ko', 53: 'mo', 83: 'ms', 146: 'ga',
|
|
171
|
+
24: 'lt', 54: 'ky', 84: 'ms-Arab', 147: 'to',
|
|
172
|
+
25: 'pl', 55: 'tg', 85: 'am', 148: 'el-polyton',
|
|
173
|
+
26: 'hu', 56: 'tk', 86: 'ti', 149: 'kl',
|
|
174
|
+
27: 'es', 57: 'mn-CN', 87: 'om', 150: 'az',
|
|
175
|
+
28: 'lv', 58: 'mn', 88: 'so', 151: 'nn',
|
|
176
|
+
29: 'se', 59: 'ps', 89: 'sw'
|
|
160
177
|
},
|
|
161
|
-
|
|
178
|
+
|
|
162
179
|
// ISO (deprecated)
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
{ // windows
|
|
166
|
-
0x0436: 'af',
|
|
167
|
-
0x041C: 'sq',
|
|
168
|
-
0x0484: 'gsw',
|
|
169
|
-
0x045E: 'am',
|
|
170
|
-
0x1401: 'ar-DZ',
|
|
171
|
-
0x3C01: 'ar-BH',
|
|
172
|
-
0x0C01: 'ar',
|
|
173
|
-
0x0801: 'ar-IQ',
|
|
174
|
-
0x2C01: 'ar-JO',
|
|
175
|
-
0x3401: 'ar-KW',
|
|
176
|
-
0x3001: 'ar-LB',
|
|
177
|
-
0x1001: 'ar-LY',
|
|
178
|
-
0x1801: 'ary',
|
|
179
|
-
0x2001: 'ar-OM',
|
|
180
|
-
0x4001: 'ar-QA',
|
|
181
|
-
0x0401: 'ar-SA',
|
|
182
|
-
0x2801: 'ar-SY',
|
|
183
|
-
0x1C01: 'aeb',
|
|
184
|
-
0x3801: 'ar-AE',
|
|
185
|
-
0x2401: 'ar-YE',
|
|
186
|
-
0x042B: 'hy',
|
|
187
|
-
0x044D: 'as',
|
|
188
|
-
0x082C: 'az-Cyrl',
|
|
189
|
-
0x042C: 'az',
|
|
190
|
-
0x046D: 'ba',
|
|
191
|
-
0x042D: 'eu',
|
|
192
|
-
0x0423: 'be',
|
|
193
|
-
0x0845: 'bn',
|
|
194
|
-
0x0445: 'bn-IN',
|
|
195
|
-
0x201A: 'bs-Cyrl',
|
|
196
|
-
0x141A: 'bs',
|
|
197
|
-
0x047E: 'br',
|
|
198
|
-
0x0402: 'bg',
|
|
199
|
-
0x0403: 'ca',
|
|
200
|
-
0x0C04: 'zh-HK',
|
|
201
|
-
0x1404: 'zh-MO',
|
|
202
|
-
0x0804: 'zh',
|
|
203
|
-
0x1004: 'zh-SG',
|
|
204
|
-
0x0404: 'zh-TW',
|
|
205
|
-
0x0483: 'co',
|
|
206
|
-
0x041A: 'hr',
|
|
207
|
-
0x101A: 'hr-BA',
|
|
208
|
-
0x0405: 'cs',
|
|
209
|
-
0x0406: 'da',
|
|
210
|
-
0x048C: 'prs',
|
|
211
|
-
0x0465: 'dv',
|
|
212
|
-
0x0813: 'nl-BE',
|
|
213
|
-
0x0413: 'nl',
|
|
214
|
-
0x0C09: 'en-AU',
|
|
215
|
-
0x2809: 'en-BZ',
|
|
216
|
-
0x1009: 'en-CA',
|
|
217
|
-
0x2409: 'en-029',
|
|
180
|
+
{},
|
|
181
|
+
|
|
182
|
+
{ // windows
|
|
183
|
+
0x0436: 'af', 0x4009: 'en-IN', 0x0487: 'rw', 0x0432: 'tn',
|
|
184
|
+
0x041C: 'sq', 0x1809: 'en-IE', 0x0441: 'sw', 0x045B: 'si',
|
|
185
|
+
0x0484: 'gsw', 0x2009: 'en-JM', 0x0457: 'kok', 0x041B: 'sk',
|
|
186
|
+
0x045E: 'am', 0x4409: 'en-MY', 0x0412: 'ko', 0x0424: 'sl',
|
|
187
|
+
0x1401: 'ar-DZ', 0x1409: 'en-NZ', 0x0440: 'ky', 0x2C0A: 'es-AR',
|
|
188
|
+
0x3C01: 'ar-BH', 0x3409: 'en-PH', 0x0454: 'lo', 0x400A: 'es-BO',
|
|
189
|
+
0x0C01: 'ar', 0x4809: 'en-SG', 0x0426: 'lv', 0x340A: 'es-CL',
|
|
190
|
+
0x0801: 'ar-IQ', 0x1C09: 'en-ZA', 0x0427: 'lt', 0x240A: 'es-CO',
|
|
191
|
+
0x2C01: 'ar-JO', 0x2C09: 'en-TT', 0x082E: 'dsb', 0x140A: 'es-CR',
|
|
192
|
+
0x3401: 'ar-KW', 0x0809: 'en-GB', 0x046E: 'lb', 0x1C0A: 'es-DO',
|
|
193
|
+
0x3001: 'ar-LB', 0x0409: 'en', 0x042F: 'mk', 0x300A: 'es-EC',
|
|
194
|
+
0x1001: 'ar-LY', 0x3009: 'en-ZW', 0x083E: 'ms-BN', 0x440A: 'es-SV',
|
|
195
|
+
0x1801: 'ary', 0x0425: 'et', 0x043E: 'ms', 0x100A: 'es-GT',
|
|
196
|
+
0x2001: 'ar-OM', 0x0438: 'fo', 0x044C: 'ml', 0x480A: 'es-HN',
|
|
197
|
+
0x4001: 'ar-QA', 0x0464: 'fil', 0x043A: 'mt', 0x080A: 'es-MX',
|
|
198
|
+
0x0401: 'ar-SA', 0x040B: 'fi', 0x0481: 'mi', 0x4C0A: 'es-NI',
|
|
199
|
+
0x2801: 'ar-SY', 0x080C: 'fr-BE', 0x047A: 'arn', 0x180A: 'es-PA',
|
|
200
|
+
0x1C01: 'aeb', 0x0C0C: 'fr-CA', 0x044E: 'mr', 0x3C0A: 'es-PY',
|
|
201
|
+
0x3801: 'ar-AE', 0x040C: 'fr', 0x047C: 'moh', 0x280A: 'es-PE',
|
|
202
|
+
0x2401: 'ar-YE', 0x140C: 'fr-LU', 0x0450: 'mn', 0x500A: 'es-PR',
|
|
203
|
+
0x042B: 'hy', 0x180C: 'fr-MC', 0x0850: 'mn-CN', 0x0C0A: 'es',
|
|
204
|
+
0x044D: 'as', 0x100C: 'fr-CH', 0x0461: 'ne', 0x040A: 'es',
|
|
205
|
+
0x082C: 'az-Cyrl', 0x0462: 'fy', 0x0414: 'nb', 0x540A: 'es-US',
|
|
206
|
+
0x042C: 'az', 0x0456: 'gl', 0x0814: 'nn', 0x380A: 'es-UY',
|
|
207
|
+
0x046D: 'ba', 0x0437: 'ka', 0x0482: 'oc', 0x200A: 'es-VE',
|
|
208
|
+
0x042D: 'eu', 0x0C07: 'de-AT', 0x0448: 'or', 0x081D: 'sv-FI',
|
|
209
|
+
0x0423: 'be', 0x0407: 'de', 0x0463: 'ps', 0x041D: 'sv',
|
|
210
|
+
0x0845: 'bn', 0x1407: 'de-LI', 0x0415: 'pl', 0x045A: 'syr',
|
|
211
|
+
0x0445: 'bn-IN', 0x1007: 'de-LU', 0x0416: 'pt', 0x0428: 'tg',
|
|
212
|
+
0x201A: 'bs-Cyrl', 0x0807: 'de-CH', 0x0816: 'pt-PT', 0x085F: 'tzm',
|
|
213
|
+
0x141A: 'bs', 0x0408: 'el', 0x0446: 'pa', 0x0449: 'ta',
|
|
214
|
+
0x047E: 'br', 0x046F: 'kl', 0x046B: 'qu-BO', 0x0444: 'tt',
|
|
215
|
+
0x0402: 'bg', 0x0447: 'gu', 0x086B: 'qu-EC', 0x044A: 'te',
|
|
216
|
+
0x0403: 'ca', 0x0468: 'ha', 0x0C6B: 'qu', 0x041E: 'th',
|
|
217
|
+
0x0C04: 'zh-HK', 0x040D: 'he', 0x0418: 'ro', 0x0451: 'bo',
|
|
218
|
+
0x1404: 'zh-MO', 0x0439: 'hi', 0x0417: 'rm', 0x041F: 'tr',
|
|
219
|
+
0x0804: 'zh', 0x040E: 'hu', 0x0419: 'ru', 0x0442: 'tk',
|
|
220
|
+
0x1004: 'zh-SG', 0x040F: 'is', 0x243B: 'smn', 0x0480: 'ug',
|
|
221
|
+
0x0404: 'zh-TW', 0x0470: 'ig', 0x103B: 'smj-NO', 0x0422: 'uk',
|
|
222
|
+
0x0483: 'co', 0x0421: 'id', 0x143B: 'smj', 0x042E: 'hsb',
|
|
223
|
+
0x041A: 'hr', 0x045D: 'iu', 0x0C3B: 'se-FI', 0x0420: 'ur',
|
|
224
|
+
0x101A: 'hr-BA', 0x085D: 'iu-Latn', 0x043B: 'se', 0x0843: 'uz-Cyrl',
|
|
225
|
+
0x0405: 'cs', 0x083C: 'ga', 0x083B: 'se-SE', 0x0443: 'uz',
|
|
226
|
+
0x0406: 'da', 0x0434: 'xh', 0x203B: 'sms', 0x042A: 'vi',
|
|
227
|
+
0x048C: 'prs', 0x0435: 'zu', 0x183B: 'sma-NO', 0x0452: 'cy',
|
|
228
|
+
0x0465: 'dv', 0x0410: 'it', 0x1C3B: 'sms', 0x0488: 'wo',
|
|
229
|
+
0x0813: 'nl-BE', 0x0810: 'it-CH', 0x044F: 'sa', 0x0485: 'sah',
|
|
230
|
+
0x0413: 'nl', 0x0411: 'ja', 0x1C1A: 'sr-Cyrl-BA', 0x0478: 'ii',
|
|
231
|
+
0x0C09: 'en-AU', 0x044B: 'kn', 0x0C1A: 'sr', 0x046A: 'yo',
|
|
232
|
+
0x2809: 'en-BZ', 0x043F: 'kk', 0x181A: 'sr-Latn-BA',
|
|
233
|
+
0x1009: 'en-CA', 0x0453: 'km', 0x081A: 'sr-Latn',
|
|
234
|
+
0x2409: 'en-029', 0x0486: 'quc', 0x046C: 'nso'
|
|
218
235
|
}
|
|
219
236
|
];
|
package/src/fs.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { create } from './base';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @param {string | import('fs').PathLike} filename
|
|
6
|
+
* @param {string | Uint8Array} [postscriptName]
|
|
7
|
+
* @returns {import('../types/fontkit').OpenedFont | null | undefined}
|
|
8
|
+
*/
|
|
4
9
|
export function openSync(filename, postscriptName) {
|
|
5
10
|
let buffer = fs.readFileSync(filename);
|
|
6
11
|
return create(buffer, postscriptName);
|
|
7
12
|
}
|
|
8
13
|
|
|
14
|
+
/**
|
|
15
|
+
* @param {string | import('fs').PathLike} filename
|
|
16
|
+
* @param {string | Uint8Array} [postscriptName]
|
|
17
|
+
* @returns {Promise<import('../types/fontkit').OpenedFont | null | undefined>}
|
|
18
|
+
*/
|
|
9
19
|
export async function open(filename, postscriptName) {
|
|
10
20
|
let buffer = await fs.promises.readFile(filename);
|
|
11
21
|
return create(buffer, postscriptName);
|
package/src/glyph/BBox.js
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
* Represents a glyph bounding box
|
|
3
3
|
*/
|
|
4
4
|
export default class BBox {
|
|
5
|
+
/**
|
|
6
|
+
* @param {number} [minX]
|
|
7
|
+
* @param {number} [minY]
|
|
8
|
+
* @param {number} [maxX]
|
|
9
|
+
* @param {number} [maxY]
|
|
10
|
+
*/
|
|
5
11
|
constructor(minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity) {
|
|
6
12
|
/**
|
|
7
13
|
* The minimum X position in the bounding box
|
|
@@ -44,6 +50,11 @@ export default class BBox {
|
|
|
44
50
|
return this.maxY - this.minY;
|
|
45
51
|
}
|
|
46
52
|
|
|
53
|
+
/**
|
|
54
|
+
* @param {number} x
|
|
55
|
+
* @param {number} y
|
|
56
|
+
* @returns {void}
|
|
57
|
+
*/
|
|
47
58
|
addPoint(x, y) {
|
|
48
59
|
if (Math.abs(x) !== Infinity) {
|
|
49
60
|
if (x < this.minX) {
|
|
@@ -66,6 +77,9 @@ export default class BBox {
|
|
|
66
77
|
}
|
|
67
78
|
}
|
|
68
79
|
|
|
80
|
+
/**
|
|
81
|
+
* @returns {BBox}
|
|
82
|
+
*/
|
|
69
83
|
copy() {
|
|
70
84
|
return new BBox(this.minX, this.minY, this.maxX, this.maxY);
|
|
71
85
|
}
|