@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.
Files changed (74) hide show
  1. package/BUILD +116 -0
  2. package/CHANGELOG.md +290 -0
  3. package/LICENSE.md +0 -0
  4. package/README.md +0 -0
  5. package/index.ts +43 -0
  6. package/package.json +2 -2
  7. package/polyfill.ts +23 -0
  8. package/scripts/aliases.ts +70 -0
  9. package/scripts/likely-subtags.ts +20 -0
  10. package/should-polyfill.ts +10 -0
  11. package/src/aliases.generated.ts +1137 -0
  12. package/src/canonicalizer.ts +272 -0
  13. package/src/emitter.ts +39 -0
  14. package/src/likelySubtags.generated.ts +1870 -0
  15. package/src/parser.ts +259 -0
  16. package/src/types.ts +63 -0
  17. package/tests/index.test.ts +24 -0
  18. package/tests/parser.test.ts +204 -0
  19. package/tsconfig.json +5 -0
  20. package/index.d.ts +0 -6
  21. package/index.d.ts.map +0 -1
  22. package/index.js +0 -42
  23. package/lib/index.d.ts +0 -6
  24. package/lib/index.d.ts.map +0 -1
  25. package/lib/index.js +0 -31
  26. package/lib/polyfill.d.ts +0 -2
  27. package/lib/polyfill.d.ts.map +0 -1
  28. package/lib/polyfill.js +0 -24
  29. package/lib/should-polyfill.d.ts +0 -2
  30. package/lib/should-polyfill.d.ts.map +0 -1
  31. package/lib/should-polyfill.js +0 -8
  32. package/lib/src/aliases.generated.d.ts +0 -5
  33. package/lib/src/aliases.generated.d.ts.map +0 -1
  34. package/lib/src/aliases.generated.js +0 -1137
  35. package/lib/src/canonicalizer.d.ts +0 -20
  36. package/lib/src/canonicalizer.d.ts.map +0 -1
  37. package/lib/src/canonicalizer.js +0 -219
  38. package/lib/src/emitter.d.ts +0 -4
  39. package/lib/src/emitter.d.ts.map +0 -1
  40. package/lib/src/emitter.js +0 -28
  41. package/lib/src/likelySubtags.generated.d.ts +0 -2
  42. package/lib/src/likelySubtags.generated.d.ts.map +0 -1
  43. package/lib/src/likelySubtags.generated.js +0 -1870
  44. package/lib/src/parser.d.ts +0 -10
  45. package/lib/src/parser.d.ts.map +0 -1
  46. package/lib/src/parser.js +0 -233
  47. package/lib/src/types.d.ts +0 -33
  48. package/lib/src/types.d.ts.map +0 -1
  49. package/lib/src/types.js +0 -1
  50. package/polyfill.d.ts +0 -2
  51. package/polyfill.d.ts.map +0 -1
  52. package/polyfill.iife.js +0 -3512
  53. package/polyfill.js +0 -26
  54. package/should-polyfill.d.ts +0 -2
  55. package/should-polyfill.d.ts.map +0 -1
  56. package/should-polyfill.js +0 -12
  57. package/src/aliases.generated.d.ts +0 -5
  58. package/src/aliases.generated.d.ts.map +0 -1
  59. package/src/aliases.generated.js +0 -1140
  60. package/src/canonicalizer.d.ts +0 -20
  61. package/src/canonicalizer.d.ts.map +0 -1
  62. package/src/canonicalizer.js +0 -224
  63. package/src/emitter.d.ts +0 -4
  64. package/src/emitter.d.ts.map +0 -1
  65. package/src/emitter.js +0 -33
  66. package/src/likelySubtags.generated.d.ts +0 -2
  67. package/src/likelySubtags.generated.d.ts.map +0 -1
  68. package/src/likelySubtags.generated.js +0 -1873
  69. package/src/parser.d.ts +0 -10
  70. package/src/parser.d.ts.map +0 -1
  71. package/src/parser.js +0 -243
  72. package/src/types.d.ts +0 -33
  73. package/src/types.d.ts.map +0 -1
  74. package/src/types.js +0 -2
package/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
@@ -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/src/parser.js DELETED
@@ -1,243 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseUnicodeLocaleId = exports.parseUnicodeLanguageId = exports.isUnicodeVariantSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.isUnicodeLanguageSubtag = exports.SEPARATOR = void 0;
4
- var tslib_1 = require("tslib");
5
- var ALPHANUM_1_8 = /^[a-z0-9]{1,8}$/i;
6
- var ALPHANUM_2_8 = /^[a-z0-9]{2,8}$/i;
7
- var ALPHANUM_3_8 = /^[a-z0-9]{3,8}$/i;
8
- var KEY_REGEX = /^[a-z0-9][a-z]$/i;
9
- var TYPE_REGEX = /^[a-z0-9]{3,8}$/i;
10
- var ALPHA_4 = /^[a-z]{4}$/i;
11
- // alphanum-[tTuUxX]
12
- var OTHER_EXTENSION_TYPE = /^[0-9a-svwyz]$/i;
13
- var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;
14
- var UNICODE_VARIANT_SUBTAG_REGEX = /^([a-z0-9]{5,8}|[0-9][a-z0-9]{3})$/i;
15
- var UNICODE_LANGUAGE_SUBTAG_REGEX = /^([a-z]{2,3}|[a-z]{5,8})$/i;
16
- var TKEY_REGEX = /^[a-z][0-9]$/i;
17
- exports.SEPARATOR = '-';
18
- function isUnicodeLanguageSubtag(lang) {
19
- return UNICODE_LANGUAGE_SUBTAG_REGEX.test(lang);
20
- }
21
- exports.isUnicodeLanguageSubtag = isUnicodeLanguageSubtag;
22
- function isStructurallyValidLanguageTag(tag) {
23
- try {
24
- parseUnicodeLanguageId(tag.split(exports.SEPARATOR));
25
- }
26
- catch (e) {
27
- return false;
28
- }
29
- return true;
30
- }
31
- exports.isStructurallyValidLanguageTag = isStructurallyValidLanguageTag;
32
- function isUnicodeRegionSubtag(region) {
33
- return UNICODE_REGION_SUBTAG_REGEX.test(region);
34
- }
35
- exports.isUnicodeRegionSubtag = isUnicodeRegionSubtag;
36
- function isUnicodeScriptSubtag(script) {
37
- return ALPHA_4.test(script);
38
- }
39
- exports.isUnicodeScriptSubtag = isUnicodeScriptSubtag;
40
- function isUnicodeVariantSubtag(variant) {
41
- return UNICODE_VARIANT_SUBTAG_REGEX.test(variant);
42
- }
43
- exports.isUnicodeVariantSubtag = isUnicodeVariantSubtag;
44
- function parseUnicodeLanguageId(chunks) {
45
- if (typeof chunks === 'string') {
46
- chunks = chunks.split(exports.SEPARATOR);
47
- }
48
- var lang = chunks.shift();
49
- if (!lang) {
50
- throw new RangeError('Missing unicode_language_subtag');
51
- }
52
- if (lang === 'root') {
53
- return { lang: 'root', variants: [] };
54
- }
55
- // unicode_language_subtag
56
- if (!isUnicodeLanguageSubtag(lang)) {
57
- throw new RangeError('Malformed unicode_language_subtag');
58
- }
59
- var script;
60
- // unicode_script_subtag
61
- if (chunks.length && isUnicodeScriptSubtag(chunks[0])) {
62
- script = chunks.shift();
63
- }
64
- var region;
65
- // unicode_region_subtag
66
- if (chunks.length && isUnicodeRegionSubtag(chunks[0])) {
67
- region = chunks.shift();
68
- }
69
- var variants = {};
70
- while (chunks.length && isUnicodeVariantSubtag(chunks[0])) {
71
- var variant = chunks.shift();
72
- if (variant in variants) {
73
- throw new RangeError("Duplicate variant \"".concat(variant, "\""));
74
- }
75
- variants[variant] = 1;
76
- }
77
- return {
78
- lang: lang,
79
- script: script,
80
- region: region,
81
- variants: Object.keys(variants),
82
- };
83
- }
84
- exports.parseUnicodeLanguageId = parseUnicodeLanguageId;
85
- function parseUnicodeExtension(chunks) {
86
- var keywords = [];
87
- var keyword;
88
- while (chunks.length && (keyword = parseKeyword(chunks))) {
89
- keywords.push(keyword);
90
- }
91
- if (keywords.length) {
92
- return {
93
- type: 'u',
94
- keywords: keywords,
95
- attributes: [],
96
- };
97
- }
98
- // Mix of attributes & keywords
99
- // Check for attributes first
100
- var attributes = [];
101
- while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
102
- attributes.push(chunks.shift());
103
- }
104
- while (chunks.length && (keyword = parseKeyword(chunks))) {
105
- keywords.push(keyword);
106
- }
107
- if (keywords.length || attributes.length) {
108
- return {
109
- type: 'u',
110
- attributes: attributes,
111
- keywords: keywords,
112
- };
113
- }
114
- throw new RangeError('Malformed unicode_extension');
115
- }
116
- function parseKeyword(chunks) {
117
- var key;
118
- if (!KEY_REGEX.test(chunks[0])) {
119
- return;
120
- }
121
- key = chunks.shift();
122
- var type = [];
123
- while (chunks.length && TYPE_REGEX.test(chunks[0])) {
124
- type.push(chunks.shift());
125
- }
126
- var value = '';
127
- if (type.length) {
128
- value = type.join(exports.SEPARATOR);
129
- }
130
- return [key, value];
131
- }
132
- function parseTransformedExtension(chunks) {
133
- var lang;
134
- try {
135
- lang = parseUnicodeLanguageId(chunks);
136
- }
137
- catch (e) {
138
- // Try just parsing tfield
139
- }
140
- var fields = [];
141
- while (chunks.length && TKEY_REGEX.test(chunks[0])) {
142
- var key = chunks.shift();
143
- var value = [];
144
- while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
145
- value.push(chunks.shift());
146
- }
147
- if (!value.length) {
148
- throw new RangeError("Missing tvalue for tkey \"".concat(key, "\""));
149
- }
150
- fields.push([key, value.join(exports.SEPARATOR)]);
151
- }
152
- if (fields.length) {
153
- return {
154
- type: 't',
155
- fields: fields,
156
- lang: lang,
157
- };
158
- }
159
- throw new RangeError('Malformed transformed_extension');
160
- }
161
- function parsePuExtension(chunks) {
162
- var exts = [];
163
- while (chunks.length && ALPHANUM_1_8.test(chunks[0])) {
164
- exts.push(chunks.shift());
165
- }
166
- if (exts.length) {
167
- return {
168
- type: 'x',
169
- value: exts.join(exports.SEPARATOR),
170
- };
171
- }
172
- throw new RangeError('Malformed private_use_extension');
173
- }
174
- function parseOtherExtensionValue(chunks) {
175
- var exts = [];
176
- while (chunks.length && ALPHANUM_2_8.test(chunks[0])) {
177
- exts.push(chunks.shift());
178
- }
179
- if (exts.length) {
180
- return exts.join(exports.SEPARATOR);
181
- }
182
- return '';
183
- }
184
- function parseExtensions(chunks) {
185
- if (!chunks.length) {
186
- return { extensions: [] };
187
- }
188
- var extensions = [];
189
- var unicodeExtension;
190
- var transformedExtension;
191
- var puExtension;
192
- var otherExtensionMap = {};
193
- do {
194
- var type = chunks.shift();
195
- switch (type) {
196
- case 'u':
197
- case 'U':
198
- if (unicodeExtension) {
199
- throw new RangeError('There can only be 1 -u- extension');
200
- }
201
- unicodeExtension = parseUnicodeExtension(chunks);
202
- extensions.push(unicodeExtension);
203
- break;
204
- case 't':
205
- case 'T':
206
- if (transformedExtension) {
207
- throw new RangeError('There can only be 1 -t- extension');
208
- }
209
- transformedExtension = parseTransformedExtension(chunks);
210
- extensions.push(transformedExtension);
211
- break;
212
- case 'x':
213
- case 'X':
214
- if (puExtension) {
215
- throw new RangeError('There can only be 1 -x- extension');
216
- }
217
- puExtension = parsePuExtension(chunks);
218
- extensions.push(puExtension);
219
- break;
220
- default:
221
- if (!OTHER_EXTENSION_TYPE.test(type)) {
222
- throw new RangeError('Malformed extension type');
223
- }
224
- if (type in otherExtensionMap) {
225
- throw new RangeError("There can only be 1 -".concat(type, "- extension"));
226
- }
227
- var extension = {
228
- type: type,
229
- value: parseOtherExtensionValue(chunks),
230
- };
231
- otherExtensionMap[extension.type] = extension;
232
- extensions.push(extension);
233
- break;
234
- }
235
- } while (chunks.length);
236
- return { extensions: extensions };
237
- }
238
- function parseUnicodeLocaleId(locale) {
239
- var chunks = locale.split(exports.SEPARATOR);
240
- var lang = parseUnicodeLanguageId(chunks);
241
- return (0, tslib_1.__assign)({ lang: lang }, parseExtensions(chunks));
242
- }
243
- exports.parseUnicodeLocaleId = parseUnicodeLocaleId;
package/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
@@ -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/src/types.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });