@formatjs/intl-getcanonicallocales 2.0.2 → 2.0.3
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/BUILD +116 -0
- package/CHANGELOG.md +290 -0
- package/LICENSE.md +0 -0
- package/README.md +0 -0
- package/index.ts +43 -0
- package/package.json +2 -2
- package/polyfill.ts +23 -0
- package/scripts/aliases.ts +70 -0
- package/scripts/likely-subtags.ts +20 -0
- package/should-polyfill.ts +10 -0
- package/src/aliases.generated.ts +1137 -0
- package/src/canonicalizer.ts +272 -0
- package/src/emitter.ts +39 -0
- package/src/likelySubtags.generated.ts +1870 -0
- package/src/parser.ts +259 -0
- package/src/types.ts +63 -0
- package/tests/index.test.ts +24 -0
- package/tests/parser.test.ts +204 -0
- package/tsconfig.json +5 -0
- package/index.d.ts +0 -6
- package/index.d.ts.map +0 -1
- package/index.js +0 -42
- package/lib/index.d.ts +0 -6
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -31
- package/lib/polyfill.d.ts +0 -2
- package/lib/polyfill.d.ts.map +0 -1
- package/lib/polyfill.js +0 -24
- package/lib/should-polyfill.d.ts +0 -2
- package/lib/should-polyfill.d.ts.map +0 -1
- package/lib/should-polyfill.js +0 -8
- package/lib/src/aliases.generated.d.ts +0 -5
- package/lib/src/aliases.generated.d.ts.map +0 -1
- package/lib/src/aliases.generated.js +0 -1137
- package/lib/src/canonicalizer.d.ts +0 -20
- package/lib/src/canonicalizer.d.ts.map +0 -1
- package/lib/src/canonicalizer.js +0 -219
- package/lib/src/emitter.d.ts +0 -4
- package/lib/src/emitter.d.ts.map +0 -1
- package/lib/src/emitter.js +0 -28
- package/lib/src/likelySubtags.generated.d.ts +0 -2
- package/lib/src/likelySubtags.generated.d.ts.map +0 -1
- package/lib/src/likelySubtags.generated.js +0 -1870
- package/lib/src/parser.d.ts +0 -10
- package/lib/src/parser.d.ts.map +0 -1
- package/lib/src/parser.js +0 -233
- package/lib/src/types.d.ts +0 -33
- package/lib/src/types.d.ts.map +0 -1
- package/lib/src/types.js +0 -1
- package/polyfill.d.ts +0 -2
- package/polyfill.d.ts.map +0 -1
- package/polyfill.iife.js +0 -3512
- package/polyfill.js +0 -26
- package/should-polyfill.d.ts +0 -2
- package/should-polyfill.d.ts.map +0 -1
- package/should-polyfill.js +0 -12
- package/src/aliases.generated.d.ts +0 -5
- package/src/aliases.generated.d.ts.map +0 -1
- package/src/aliases.generated.js +0 -1140
- package/src/canonicalizer.d.ts +0 -20
- package/src/canonicalizer.d.ts.map +0 -1
- package/src/canonicalizer.js +0 -224
- package/src/emitter.d.ts +0 -4
- package/src/emitter.d.ts.map +0 -1
- package/src/emitter.js +0 -33
- package/src/likelySubtags.generated.d.ts +0 -2
- package/src/likelySubtags.generated.d.ts.map +0 -1
- package/src/likelySubtags.generated.js +0 -1873
- package/src/parser.d.ts +0 -10
- package/src/parser.d.ts.map +0 -1
- package/src/parser.js +0 -243
- package/src/types.d.ts +0 -33
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -2
package/lib/src/parser.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { UnicodeLocaleId, UnicodeLanguageId } from './types';
|
|
2
|
-
export declare const SEPARATOR = "-";
|
|
3
|
-
export declare function isUnicodeLanguageSubtag(lang: string): boolean;
|
|
4
|
-
export declare function isStructurallyValidLanguageTag(tag: string): boolean;
|
|
5
|
-
export declare function isUnicodeRegionSubtag(region: string): boolean;
|
|
6
|
-
export declare function isUnicodeScriptSubtag(script: string): boolean;
|
|
7
|
-
export declare function isUnicodeVariantSubtag(variant: string): boolean;
|
|
8
|
-
export declare function parseUnicodeLanguageId(chunks: string[] | string): UnicodeLanguageId;
|
|
9
|
-
export declare function parseUnicodeLocaleId(locale: string): UnicodeLocaleId;
|
|
10
|
-
//# sourceMappingURL=parser.d.ts.map
|
package/lib/src/parser.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-getcanonicallocales/src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EAMlB,MAAM,SAAS,CAAA;AAiBhB,eAAO,MAAM,SAAS,MAAM,CAAA;AAE5B,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GACxB,iBAAiB,CAuCnB;AA8JD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAOpE"}
|
package/lib/src/parser.js
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
var ALPHANUM_1_8 = /^[a-z0-9]{1,8}$/i;
|
|
3
|
-
var ALPHANUM_2_8 = /^[a-z0-9]{2,8}$/i;
|
|
4
|
-
var ALPHANUM_3_8 = /^[a-z0-9]{3,8}$/i;
|
|
5
|
-
var KEY_REGEX = /^[a-z0-9][a-z]$/i;
|
|
6
|
-
var TYPE_REGEX = /^[a-z0-9]{3,8}$/i;
|
|
7
|
-
var ALPHA_4 = /^[a-z]{4}$/i;
|
|
8
|
-
// alphanum-[tTuUxX]
|
|
9
|
-
var OTHER_EXTENSION_TYPE = /^[0-9a-svwyz]$/i;
|
|
10
|
-
var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;
|
|
11
|
-
var UNICODE_VARIANT_SUBTAG_REGEX = /^([a-z0-9]{5,8}|[0-9][a-z0-9]{3})$/i;
|
|
12
|
-
var UNICODE_LANGUAGE_SUBTAG_REGEX = /^([a-z]{2,3}|[a-z]{5,8})$/i;
|
|
13
|
-
var TKEY_REGEX = /^[a-z][0-9]$/i;
|
|
14
|
-
export var SEPARATOR = '-';
|
|
15
|
-
export function isUnicodeLanguageSubtag(lang) {
|
|
16
|
-
return UNICODE_LANGUAGE_SUBTAG_REGEX.test(lang);
|
|
17
|
-
}
|
|
18
|
-
export function isStructurallyValidLanguageTag(tag) {
|
|
19
|
-
try {
|
|
20
|
-
parseUnicodeLanguageId(tag.split(SEPARATOR));
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
export function isUnicodeRegionSubtag(region) {
|
|
28
|
-
return UNICODE_REGION_SUBTAG_REGEX.test(region);
|
|
29
|
-
}
|
|
30
|
-
export function isUnicodeScriptSubtag(script) {
|
|
31
|
-
return ALPHA_4.test(script);
|
|
32
|
-
}
|
|
33
|
-
export function isUnicodeVariantSubtag(variant) {
|
|
34
|
-
return UNICODE_VARIANT_SUBTAG_REGEX.test(variant);
|
|
35
|
-
}
|
|
36
|
-
export function parseUnicodeLanguageId(chunks) {
|
|
37
|
-
if (typeof chunks === 'string') {
|
|
38
|
-
chunks = chunks.split(SEPARATOR);
|
|
39
|
-
}
|
|
40
|
-
var lang = chunks.shift();
|
|
41
|
-
if (!lang) {
|
|
42
|
-
throw new RangeError('Missing unicode_language_subtag');
|
|
43
|
-
}
|
|
44
|
-
if (lang === 'root') {
|
|
45
|
-
return { lang: 'root', variants: [] };
|
|
46
|
-
}
|
|
47
|
-
// unicode_language_subtag
|
|
48
|
-
if (!isUnicodeLanguageSubtag(lang)) {
|
|
49
|
-
throw new RangeError('Malformed unicode_language_subtag');
|
|
50
|
-
}
|
|
51
|
-
var script;
|
|
52
|
-
// unicode_script_subtag
|
|
53
|
-
if (chunks.length && isUnicodeScriptSubtag(chunks[0])) {
|
|
54
|
-
script = chunks.shift();
|
|
55
|
-
}
|
|
56
|
-
var region;
|
|
57
|
-
// unicode_region_subtag
|
|
58
|
-
if (chunks.length && isUnicodeRegionSubtag(chunks[0])) {
|
|
59
|
-
region = chunks.shift();
|
|
60
|
-
}
|
|
61
|
-
var variants = {};
|
|
62
|
-
while (chunks.length && isUnicodeVariantSubtag(chunks[0])) {
|
|
63
|
-
var variant = chunks.shift();
|
|
64
|
-
if (variant in variants) {
|
|
65
|
-
throw new RangeError("Duplicate variant \"".concat(variant, "\""));
|
|
66
|
-
}
|
|
67
|
-
variants[variant] = 1;
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
lang: lang,
|
|
71
|
-
script: script,
|
|
72
|
-
region: region,
|
|
73
|
-
variants: Object.keys(variants),
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
function parseUnicodeExtension(chunks) {
|
|
77
|
-
var keywords = [];
|
|
78
|
-
var keyword;
|
|
79
|
-
while (chunks.length && (keyword = parseKeyword(chunks))) {
|
|
80
|
-
keywords.push(keyword);
|
|
81
|
-
}
|
|
82
|
-
if (keywords.length) {
|
|
83
|
-
return {
|
|
84
|
-
type: 'u',
|
|
85
|
-
keywords: keywords,
|
|
86
|
-
attributes: [],
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
// Mix of attributes & keywords
|
|
90
|
-
// Check for attributes first
|
|
91
|
-
var attributes = [];
|
|
92
|
-
while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
|
|
93
|
-
attributes.push(chunks.shift());
|
|
94
|
-
}
|
|
95
|
-
while (chunks.length && (keyword = parseKeyword(chunks))) {
|
|
96
|
-
keywords.push(keyword);
|
|
97
|
-
}
|
|
98
|
-
if (keywords.length || attributes.length) {
|
|
99
|
-
return {
|
|
100
|
-
type: 'u',
|
|
101
|
-
attributes: attributes,
|
|
102
|
-
keywords: keywords,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
throw new RangeError('Malformed unicode_extension');
|
|
106
|
-
}
|
|
107
|
-
function parseKeyword(chunks) {
|
|
108
|
-
var key;
|
|
109
|
-
if (!KEY_REGEX.test(chunks[0])) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
key = chunks.shift();
|
|
113
|
-
var type = [];
|
|
114
|
-
while (chunks.length && TYPE_REGEX.test(chunks[0])) {
|
|
115
|
-
type.push(chunks.shift());
|
|
116
|
-
}
|
|
117
|
-
var value = '';
|
|
118
|
-
if (type.length) {
|
|
119
|
-
value = type.join(SEPARATOR);
|
|
120
|
-
}
|
|
121
|
-
return [key, value];
|
|
122
|
-
}
|
|
123
|
-
function parseTransformedExtension(chunks) {
|
|
124
|
-
var lang;
|
|
125
|
-
try {
|
|
126
|
-
lang = parseUnicodeLanguageId(chunks);
|
|
127
|
-
}
|
|
128
|
-
catch (e) {
|
|
129
|
-
// Try just parsing tfield
|
|
130
|
-
}
|
|
131
|
-
var fields = [];
|
|
132
|
-
while (chunks.length && TKEY_REGEX.test(chunks[0])) {
|
|
133
|
-
var key = chunks.shift();
|
|
134
|
-
var value = [];
|
|
135
|
-
while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
|
|
136
|
-
value.push(chunks.shift());
|
|
137
|
-
}
|
|
138
|
-
if (!value.length) {
|
|
139
|
-
throw new RangeError("Missing tvalue for tkey \"".concat(key, "\""));
|
|
140
|
-
}
|
|
141
|
-
fields.push([key, value.join(SEPARATOR)]);
|
|
142
|
-
}
|
|
143
|
-
if (fields.length) {
|
|
144
|
-
return {
|
|
145
|
-
type: 't',
|
|
146
|
-
fields: fields,
|
|
147
|
-
lang: lang,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
throw new RangeError('Malformed transformed_extension');
|
|
151
|
-
}
|
|
152
|
-
function parsePuExtension(chunks) {
|
|
153
|
-
var exts = [];
|
|
154
|
-
while (chunks.length && ALPHANUM_1_8.test(chunks[0])) {
|
|
155
|
-
exts.push(chunks.shift());
|
|
156
|
-
}
|
|
157
|
-
if (exts.length) {
|
|
158
|
-
return {
|
|
159
|
-
type: 'x',
|
|
160
|
-
value: exts.join(SEPARATOR),
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
throw new RangeError('Malformed private_use_extension');
|
|
164
|
-
}
|
|
165
|
-
function parseOtherExtensionValue(chunks) {
|
|
166
|
-
var exts = [];
|
|
167
|
-
while (chunks.length && ALPHANUM_2_8.test(chunks[0])) {
|
|
168
|
-
exts.push(chunks.shift());
|
|
169
|
-
}
|
|
170
|
-
if (exts.length) {
|
|
171
|
-
return exts.join(SEPARATOR);
|
|
172
|
-
}
|
|
173
|
-
return '';
|
|
174
|
-
}
|
|
175
|
-
function parseExtensions(chunks) {
|
|
176
|
-
if (!chunks.length) {
|
|
177
|
-
return { extensions: [] };
|
|
178
|
-
}
|
|
179
|
-
var extensions = [];
|
|
180
|
-
var unicodeExtension;
|
|
181
|
-
var transformedExtension;
|
|
182
|
-
var puExtension;
|
|
183
|
-
var otherExtensionMap = {};
|
|
184
|
-
do {
|
|
185
|
-
var type = chunks.shift();
|
|
186
|
-
switch (type) {
|
|
187
|
-
case 'u':
|
|
188
|
-
case 'U':
|
|
189
|
-
if (unicodeExtension) {
|
|
190
|
-
throw new RangeError('There can only be 1 -u- extension');
|
|
191
|
-
}
|
|
192
|
-
unicodeExtension = parseUnicodeExtension(chunks);
|
|
193
|
-
extensions.push(unicodeExtension);
|
|
194
|
-
break;
|
|
195
|
-
case 't':
|
|
196
|
-
case 'T':
|
|
197
|
-
if (transformedExtension) {
|
|
198
|
-
throw new RangeError('There can only be 1 -t- extension');
|
|
199
|
-
}
|
|
200
|
-
transformedExtension = parseTransformedExtension(chunks);
|
|
201
|
-
extensions.push(transformedExtension);
|
|
202
|
-
break;
|
|
203
|
-
case 'x':
|
|
204
|
-
case 'X':
|
|
205
|
-
if (puExtension) {
|
|
206
|
-
throw new RangeError('There can only be 1 -x- extension');
|
|
207
|
-
}
|
|
208
|
-
puExtension = parsePuExtension(chunks);
|
|
209
|
-
extensions.push(puExtension);
|
|
210
|
-
break;
|
|
211
|
-
default:
|
|
212
|
-
if (!OTHER_EXTENSION_TYPE.test(type)) {
|
|
213
|
-
throw new RangeError('Malformed extension type');
|
|
214
|
-
}
|
|
215
|
-
if (type in otherExtensionMap) {
|
|
216
|
-
throw new RangeError("There can only be 1 -".concat(type, "- extension"));
|
|
217
|
-
}
|
|
218
|
-
var extension = {
|
|
219
|
-
type: type,
|
|
220
|
-
value: parseOtherExtensionValue(chunks),
|
|
221
|
-
};
|
|
222
|
-
otherExtensionMap[extension.type] = extension;
|
|
223
|
-
extensions.push(extension);
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
} while (chunks.length);
|
|
227
|
-
return { extensions: extensions };
|
|
228
|
-
}
|
|
229
|
-
export function parseUnicodeLocaleId(locale) {
|
|
230
|
-
var chunks = locale.split(SEPARATOR);
|
|
231
|
-
var lang = parseUnicodeLanguageId(chunks);
|
|
232
|
-
return __assign({ lang: lang }, parseExtensions(chunks));
|
|
233
|
-
}
|
package/lib/src/types.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export interface UnicodeLocaleId {
|
|
2
|
-
lang: UnicodeLanguageId;
|
|
3
|
-
extensions: Array<UnicodeExtension | TransformedExtension | PuExtension | OtherExtension>;
|
|
4
|
-
}
|
|
5
|
-
export interface UnicodeLanguageId {
|
|
6
|
-
lang: string;
|
|
7
|
-
script?: string;
|
|
8
|
-
region?: string;
|
|
9
|
-
variants: string[];
|
|
10
|
-
}
|
|
11
|
-
export declare type KV = [string, string] | [string];
|
|
12
|
-
export interface Extension {
|
|
13
|
-
type: string;
|
|
14
|
-
}
|
|
15
|
-
export interface UnicodeExtension extends Extension {
|
|
16
|
-
type: 'u';
|
|
17
|
-
keywords: KV[];
|
|
18
|
-
attributes: string[];
|
|
19
|
-
}
|
|
20
|
-
export interface TransformedExtension extends Extension {
|
|
21
|
-
type: 't';
|
|
22
|
-
fields: KV[];
|
|
23
|
-
lang?: UnicodeLanguageId;
|
|
24
|
-
}
|
|
25
|
-
export interface PuExtension extends Extension {
|
|
26
|
-
type: 'x';
|
|
27
|
-
value: string;
|
|
28
|
-
}
|
|
29
|
-
export interface OtherExtension extends Extension {
|
|
30
|
-
type: 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 'v' | 'w' | 'y' | 'z';
|
|
31
|
-
value: string;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=types.d.ts.map
|
package/lib/src/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-getcanonicallocales/src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAA;IACvB,UAAU,EAAE,KAAK,CACf,gBAAgB,GAAG,oBAAoB,GAAG,WAAW,GAAG,cAAc,CACvE,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,oBAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAE5C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,EAAE,EAAE,CAAA;IACd,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,EAAE,EAAE,CAAA;IACZ,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB;AACD,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,IAAI,EACA,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAA;IACP,KAAK,EAAE,MAAM,CAAA;CACd"}
|
package/lib/src/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/polyfill.d.ts
DELETED
package/polyfill.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-getcanonicallocales/polyfill.ts"],"names":[],"mappings":""}
|