@fgv/ts-bcp47 0.5.0

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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +141 -0
  3. package/bcp47/bcp47Subtags/converters.d.ts +9 -0
  4. package/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
  5. package/bcp47/bcp47Subtags/converters.js +57 -0
  6. package/bcp47/bcp47Subtags/index.d.ts +5 -0
  7. package/bcp47/bcp47Subtags/index.d.ts.map +1 -0
  8. package/bcp47/bcp47Subtags/index.js +54 -0
  9. package/bcp47/bcp47Subtags/model.d.ts +18 -0
  10. package/bcp47/bcp47Subtags/model.d.ts.map +1 -0
  11. package/bcp47/bcp47Subtags/model.js +24 -0
  12. package/bcp47/bcp47Subtags/validate.d.ts +16 -0
  13. package/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
  14. package/bcp47/bcp47Subtags/validate.js +74 -0
  15. package/bcp47/common.d.ts +38 -0
  16. package/bcp47/common.d.ts.map +1 -0
  17. package/bcp47/common.js +59 -0
  18. package/bcp47/helpers.d.ts +66 -0
  19. package/bcp47/helpers.d.ts.map +1 -0
  20. package/bcp47/helpers.js +103 -0
  21. package/bcp47/index.d.ts +7 -0
  22. package/bcp47/index.d.ts.map +1 -0
  23. package/bcp47/index.js +27 -0
  24. package/bcp47/languageTag.d.ts +208 -0
  25. package/bcp47/languageTag.d.ts.map +1 -0
  26. package/bcp47/languageTag.js +342 -0
  27. package/bcp47/languageTagParser.d.ts +123 -0
  28. package/bcp47/languageTagParser.d.ts.map +1 -0
  29. package/bcp47/languageTagParser.js +310 -0
  30. package/bcp47/match/chooser.d.ts +70 -0
  31. package/bcp47/match/chooser.d.ts.map +1 -0
  32. package/bcp47/match/chooser.js +92 -0
  33. package/bcp47/match/common.d.ts +24 -0
  34. package/bcp47/match/common.d.ts.map +1 -0
  35. package/bcp47/match/common.js +42 -0
  36. package/bcp47/match/index.d.ts +4 -0
  37. package/bcp47/match/index.d.ts.map +1 -0
  38. package/bcp47/match/index.js +45 -0
  39. package/bcp47/match/similarity.d.ts +24 -0
  40. package/bcp47/match/similarity.d.ts.map +1 -0
  41. package/bcp47/match/similarity.js +230 -0
  42. package/bcp47/normalization/baseNormalizer.d.ts +36 -0
  43. package/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
  44. package/bcp47/normalization/baseNormalizer.js +114 -0
  45. package/bcp47/normalization/canonicalNormalizer.d.ts +22 -0
  46. package/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
  47. package/bcp47/normalization/canonicalNormalizer.js +110 -0
  48. package/bcp47/normalization/common.d.ts +23 -0
  49. package/bcp47/normalization/common.d.ts.map +1 -0
  50. package/bcp47/normalization/common.js +82 -0
  51. package/bcp47/normalization/index.d.ts +5 -0
  52. package/bcp47/normalization/index.d.ts.map +1 -0
  53. package/bcp47/normalization/index.js +47 -0
  54. package/bcp47/normalization/normalizeTag.d.ts +59 -0
  55. package/bcp47/normalization/normalizeTag.d.ts.map +1 -0
  56. package/bcp47/normalization/normalizeTag.js +105 -0
  57. package/bcp47/normalization/preferredTagNormalizer.d.ts +26 -0
  58. package/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
  59. package/bcp47/normalization/preferredTagNormalizer.js +178 -0
  60. package/bcp47/overrides/converters.d.ts +19 -0
  61. package/bcp47/overrides/converters.d.ts.map +1 -0
  62. package/bcp47/overrides/converters.js +75 -0
  63. package/bcp47/overrides/defaultRegistries.d.ts +12 -0
  64. package/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
  65. package/bcp47/overrides/defaultRegistries.js +42 -0
  66. package/bcp47/overrides/index.d.ts +3 -0
  67. package/bcp47/overrides/index.d.ts.map +1 -0
  68. package/bcp47/overrides/index.js +30 -0
  69. package/bcp47/overrides/model.d.ts +11 -0
  70. package/bcp47/overrides/model.d.ts.map +1 -0
  71. package/bcp47/overrides/model.js +24 -0
  72. package/bcp47/overrides/overridesRegistry.d.ts +32 -0
  73. package/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
  74. package/bcp47/overrides/overridesRegistry.js +101 -0
  75. package/bcp47/validation/baseValidator.d.ts +35 -0
  76. package/bcp47/validation/baseValidator.d.ts.map +1 -0
  77. package/bcp47/validation/baseValidator.js +111 -0
  78. package/bcp47/validation/common.d.ts +23 -0
  79. package/bcp47/validation/common.d.ts.map +1 -0
  80. package/bcp47/validation/common.js +84 -0
  81. package/bcp47/validation/index.d.ts +7 -0
  82. package/bcp47/validation/index.d.ts.map +1 -0
  83. package/bcp47/validation/index.js +51 -0
  84. package/bcp47/validation/isCanonical.d.ts +22 -0
  85. package/bcp47/validation/isCanonical.d.ts.map +1 -0
  86. package/bcp47/validation/isCanonical.js +101 -0
  87. package/bcp47/validation/isInPreferredForm.d.ts +15 -0
  88. package/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
  89. package/bcp47/validation/isInPreferredForm.js +73 -0
  90. package/bcp47/validation/isStrictlyValid.d.ts +18 -0
  91. package/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
  92. package/bcp47/validation/isStrictlyValid.js +98 -0
  93. package/bcp47/validation/isValid.d.ts +24 -0
  94. package/bcp47/validation/isValid.d.ts.map +1 -0
  95. package/bcp47/validation/isValid.js +115 -0
  96. package/bcp47/validation/isWellFormed.d.ts +22 -0
  97. package/bcp47/validation/isWellFormed.d.ts.map +1 -0
  98. package/bcp47/validation/isWellFormed.js +98 -0
  99. package/bcp47/validation/validateTag.d.ts +97 -0
  100. package/bcp47/validation/validateTag.d.ts.map +1 -0
  101. package/bcp47/validation/validateTag.js +159 -0
  102. package/data/bcp/overrides.json +21 -0
  103. package/data/iana/language-subtags.json +77295 -0
  104. package/data/iana/language-tag-extensions.json +42 -0
  105. package/data/unsd/m49.csv +250 -0
  106. package/iana/common/converters.d.ts +31 -0
  107. package/iana/common/converters.d.ts.map +1 -0
  108. package/iana/common/converters.js +84 -0
  109. package/iana/common/model.d.ts +30 -0
  110. package/iana/common/model.d.ts.map +1 -0
  111. package/iana/common/model.js +24 -0
  112. package/iana/common/registeredItems.d.ts +30 -0
  113. package/iana/common/registeredItems.d.ts.map +1 -0
  114. package/iana/common/registeredItems.js +124 -0
  115. package/iana/common/utils.d.ts +7 -0
  116. package/iana/common/utils.d.ts.map +1 -0
  117. package/iana/common/utils.js +34 -0
  118. package/iana/common/validate.d.ts +19 -0
  119. package/iana/common/validate.d.ts.map +1 -0
  120. package/iana/common/validate.js +61 -0
  121. package/iana/converters.d.ts +4 -0
  122. package/iana/converters.d.ts.map +1 -0
  123. package/iana/converters.js +54 -0
  124. package/iana/defaultRegistries.d.ts +12 -0
  125. package/iana/defaultRegistries.d.ts.map +1 -0
  126. package/iana/defaultRegistries.js +42 -0
  127. package/iana/index.d.ts +9 -0
  128. package/iana/index.d.ts.map +1 -0
  129. package/iana/index.js +64 -0
  130. package/iana/jar/converters.d.ts +4 -0
  131. package/iana/jar/converters.d.ts.map +1 -0
  132. package/iana/jar/converters.js +54 -0
  133. package/iana/jar/index.d.ts +4 -0
  134. package/iana/jar/index.d.ts.map +1 -0
  135. package/iana/jar/index.js +52 -0
  136. package/iana/jar/jarConverters.d.ts +17 -0
  137. package/iana/jar/jarConverters.d.ts.map +1 -0
  138. package/iana/jar/jarConverters.js +85 -0
  139. package/iana/jar/jarModel.d.ts +11 -0
  140. package/iana/jar/jarModel.d.ts.map +1 -0
  141. package/iana/jar/jarModel.js +24 -0
  142. package/iana/jar/language-subtags/converters.d.ts +4 -0
  143. package/iana/jar/language-subtags/converters.d.ts.map +1 -0
  144. package/iana/jar/language-subtags/converters.js +52 -0
  145. package/iana/jar/language-subtags/index.d.ts +4 -0
  146. package/iana/jar/language-subtags/index.d.ts.map +1 -0
  147. package/iana/jar/language-subtags/index.js +54 -0
  148. package/iana/jar/language-subtags/model.d.ts +4 -0
  149. package/iana/jar/language-subtags/model.d.ts.map +1 -0
  150. package/iana/jar/language-subtags/model.js +52 -0
  151. package/iana/jar/language-subtags/registry/converters.d.ts +10 -0
  152. package/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
  153. package/iana/jar/language-subtags/registry/converters.js +58 -0
  154. package/iana/jar/language-subtags/registry/index.d.ts +4 -0
  155. package/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
  156. package/iana/jar/language-subtags/registry/index.js +55 -0
  157. package/iana/jar/language-subtags/registry/model.d.ts +88 -0
  158. package/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
  159. package/iana/jar/language-subtags/registry/model.js +41 -0
  160. package/iana/jar/language-subtags/tags/converters.d.ts +55 -0
  161. package/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
  162. package/iana/jar/language-subtags/tags/converters.js +128 -0
  163. package/iana/jar/language-subtags/tags/index.d.ts +5 -0
  164. package/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
  165. package/iana/jar/language-subtags/tags/index.js +56 -0
  166. package/iana/jar/language-subtags/tags/model.d.ts +42 -0
  167. package/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
  168. package/iana/jar/language-subtags/tags/model.js +24 -0
  169. package/iana/jar/language-subtags/tags/tagValidation.d.ts +11 -0
  170. package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
  171. package/iana/jar/language-subtags/tags/tagValidation.js +70 -0
  172. package/iana/jar/language-subtags/tags/validate.d.ts +36 -0
  173. package/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
  174. package/iana/jar/language-subtags/tags/validate.js +87 -0
  175. package/iana/jar/model.d.ts +4 -0
  176. package/iana/jar/model.d.ts.map +1 -0
  177. package/iana/jar/model.js +54 -0
  178. package/iana/language-subtags/common.d.ts +5 -0
  179. package/iana/language-subtags/common.d.ts.map +1 -0
  180. package/iana/language-subtags/common.js +24 -0
  181. package/iana/language-subtags/converters.d.ts +52 -0
  182. package/iana/language-subtags/converters.d.ts.map +1 -0
  183. package/iana/language-subtags/converters.js +200 -0
  184. package/iana/language-subtags/index.d.ts +7 -0
  185. package/iana/language-subtags/index.d.ts.map +1 -0
  186. package/iana/language-subtags/index.js +60 -0
  187. package/iana/language-subtags/jarConverters.d.ts +55 -0
  188. package/iana/language-subtags/jarConverters.d.ts.map +1 -0
  189. package/iana/language-subtags/jarConverters.js +213 -0
  190. package/iana/language-subtags/model.d.ts +144 -0
  191. package/iana/language-subtags/model.d.ts.map +1 -0
  192. package/iana/language-subtags/model.js +24 -0
  193. package/iana/language-subtags/scope.d.ts +77 -0
  194. package/iana/language-subtags/scope.d.ts.map +1 -0
  195. package/iana/language-subtags/scope.js +179 -0
  196. package/iana/language-subtags/subtagRegistry.d.ts +36 -0
  197. package/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
  198. package/iana/language-subtags/subtagRegistry.js +139 -0
  199. package/iana/language-subtags/validate.d.ts +2 -0
  200. package/iana/language-subtags/validate.d.ts.map +1 -0
  201. package/iana/language-subtags/validate.js +39 -0
  202. package/iana/language-tag-extensions/converters.d.ts +23 -0
  203. package/iana/language-tag-extensions/converters.d.ts.map +1 -0
  204. package/iana/language-tag-extensions/converters.js +87 -0
  205. package/iana/language-tag-extensions/extensionsRegistry.d.ts +26 -0
  206. package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
  207. package/iana/language-tag-extensions/extensionsRegistry.js +94 -0
  208. package/iana/language-tag-extensions/extensionsScope.d.ts +20 -0
  209. package/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
  210. package/iana/language-tag-extensions/extensionsScope.js +77 -0
  211. package/iana/language-tag-extensions/index.d.ts +6 -0
  212. package/iana/language-tag-extensions/index.d.ts.map +1 -0
  213. package/iana/language-tag-extensions/index.js +56 -0
  214. package/iana/language-tag-extensions/jarConverters.d.ts +28 -0
  215. package/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
  216. package/iana/language-tag-extensions/jarConverters.js +102 -0
  217. package/iana/language-tag-extensions/model.d.ts +40 -0
  218. package/iana/language-tag-extensions/model.d.ts.map +1 -0
  219. package/iana/language-tag-extensions/model.js +24 -0
  220. package/iana/language-tag-extensions/validate.d.ts +7 -0
  221. package/iana/language-tag-extensions/validate.d.ts.map +1 -0
  222. package/iana/language-tag-extensions/validate.js +36 -0
  223. package/iana/languageRegistries.d.ts +13 -0
  224. package/iana/languageRegistries.d.ts.map +1 -0
  225. package/iana/languageRegistries.js +49 -0
  226. package/iana/model.d.ts +4 -0
  227. package/iana/model.d.ts.map +1 -0
  228. package/iana/model.js +54 -0
  229. package/iana/validate.d.ts +2 -0
  230. package/iana/validate.d.ts.map +1 -0
  231. package/iana/validate.js +39 -0
  232. package/index.d.ts +5 -0
  233. package/index.d.ts.map +1 -0
  234. package/index.js +54 -0
  235. package/package.json +64 -0
  236. package/unsd/areas.d.ts +29 -0
  237. package/unsd/areas.d.ts.map +1 -0
  238. package/unsd/areas.js +96 -0
  239. package/unsd/common.d.ts +49 -0
  240. package/unsd/common.d.ts.map +1 -0
  241. package/unsd/common.js +24 -0
  242. package/unsd/csv/converters.d.ts +21 -0
  243. package/unsd/csv/converters.d.ts.map +1 -0
  244. package/unsd/csv/converters.js +70 -0
  245. package/unsd/csv/index.d.ts +4 -0
  246. package/unsd/csv/index.d.ts.map +1 -0
  247. package/unsd/csv/index.js +52 -0
  248. package/unsd/csv/model.d.ts +22 -0
  249. package/unsd/csv/model.d.ts.map +1 -0
  250. package/unsd/csv/model.js +24 -0
  251. package/unsd/defaultRegistries.d.ts +12 -0
  252. package/unsd/defaultRegistries.d.ts.map +1 -0
  253. package/unsd/defaultRegistries.js +42 -0
  254. package/unsd/index.d.ts +4 -0
  255. package/unsd/index.d.ts.map +1 -0
  256. package/unsd/index.js +44 -0
  257. package/unsd/regionCodes.d.ts +38 -0
  258. package/unsd/regionCodes.d.ts.map +1 -0
  259. package/unsd/regionCodes.js +111 -0
  260. package/unsd/regions.d.ts +21 -0
  261. package/unsd/regions.d.ts.map +1 -0
  262. package/unsd/regions.js +77 -0
  263. package/utils/index.d.ts +3 -0
  264. package/utils/index.d.ts.map +1 -0
  265. package/utils/index.js +40 -0
  266. package/utils/jsonHelpers.d.ts +2 -0
  267. package/utils/jsonHelpers.d.ts.map +1 -0
  268. package/utils/jsonHelpers.js +29 -0
  269. package/utils/validationHelpers.d.ts +47 -0
  270. package/utils/validationHelpers.d.ts.map +1 -0
  271. package/utils/validationHelpers.js +88 -0
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.loadTxtSubtagRegistryFileSync = exports.loadJsonSubtagRegistryFileSync = exports.registryFile = exports.registeredItem = exports.registeredRedundantTag = exports.registeredGrandfatheredTag = exports.registeredVariant = exports.registeredRegion = exports.registeredScript = exports.registeredExtLang = exports.registeredLanguage = void 0;
48
+ const TagConverters = __importStar(require("../jar/language-subtags/tags/converters"));
49
+ const ts_utils_1 = require("@fgv/ts-utils");
50
+ const converters_1 = require("../common/converters");
51
+ const file_1 = require("@fgv/ts-json/file");
52
+ const jarConverters_1 = require("../jar/jarConverters");
53
+ const converters_2 = require("../jar/language-subtags/registry/converters");
54
+ /**
55
+ * @internal
56
+ */
57
+ exports.registeredLanguage = ts_utils_1.Converters.transformObject({
58
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['language']) },
59
+ subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.languageSubtag) },
60
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
61
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
62
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
63
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
64
+ macrolanguage: { from: 'Macrolanguage', converter: TagConverters.languageSubtag, optional: true },
65
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.languageSubtag, optional: true },
66
+ scope: { from: 'Scope', converter: converters_2.registryScopeType, optional: true },
67
+ suppressScript: { from: 'Suppress-Script', converter: TagConverters.scriptSubtag, optional: true },
68
+ subtagRangeEnd: { from: 'Subtag', converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.languageSubtag), optional: true },
69
+ }, {
70
+ strict: true,
71
+ description: 'language subtag',
72
+ });
73
+ /**
74
+ * @internal
75
+ */
76
+ exports.registeredExtLang = ts_utils_1.Converters.transformObject({
77
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['extlang']) },
78
+ subtag: { from: 'Subtag', converter: TagConverters.extlangSubtag },
79
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.extendedLanguageRange },
80
+ prefix: { from: 'Prefix', converter: TagConverters.extlangPrefix },
81
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
82
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
83
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
84
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
85
+ macrolanguage: { from: 'Macrolanguage', converter: TagConverters.languageSubtag, optional: true },
86
+ scope: { from: 'Scope', converter: converters_2.registryScopeType, optional: true },
87
+ suppressScript: { from: 'Suppress-Script', converter: TagConverters.scriptSubtag, optional: true },
88
+ }, {
89
+ strict: true,
90
+ description: 'extlang subtag',
91
+ });
92
+ /**
93
+ * @internal
94
+ */
95
+ exports.registeredScript = ts_utils_1.Converters.transformObject({
96
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['script']) },
97
+ subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.scriptSubtag) },
98
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
99
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
100
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
101
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
102
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.scriptSubtag, optional: true },
103
+ subtagRangeEnd: { from: 'Subtag', converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.scriptSubtag), optional: true },
104
+ }, {
105
+ strict: true,
106
+ description: 'script subtag',
107
+ });
108
+ /**
109
+ * @internal
110
+ */
111
+ exports.registeredRegion = ts_utils_1.Converters.transformObject({
112
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['region']) },
113
+ subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.regionSubtag) },
114
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
115
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
116
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
117
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
118
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.regionSubtag, optional: true },
119
+ subtagRangeEnd: { from: 'Subtag', converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.regionSubtag), optional: true },
120
+ }, {
121
+ strict: true,
122
+ description: 'region subtag',
123
+ });
124
+ /**
125
+ * @internal
126
+ */
127
+ exports.registeredVariant = ts_utils_1.Converters.transformObject({
128
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['variant']) },
129
+ subtag: { from: 'Subtag', converter: TagConverters.variantSubtag },
130
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
131
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
132
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
133
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
134
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.variantSubtag, optional: true },
135
+ prefix: { from: 'Prefix', converter: ts_utils_1.Converters.arrayOf(TagConverters.extendedLanguageRange), optional: true },
136
+ }, {
137
+ strict: true,
138
+ description: 'variant subtag',
139
+ });
140
+ /**
141
+ * @internal
142
+ */
143
+ exports.registeredGrandfatheredTag = ts_utils_1.Converters.transformObject({
144
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['grandfathered']) },
145
+ tag: { from: 'Tag', converter: TagConverters.grandfatheredTag },
146
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
147
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
148
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
149
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
150
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.extendedLanguageRange, optional: true },
151
+ }, {
152
+ strict: true,
153
+ description: 'grandfathered tag',
154
+ });
155
+ /**
156
+ * @internal
157
+ */
158
+ exports.registeredRedundantTag = ts_utils_1.Converters.transformObject({
159
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['redundant']) },
160
+ tag: { from: 'Tag', converter: TagConverters.redundantTag },
161
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
162
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
163
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
164
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
165
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.extendedLanguageRange, optional: true },
166
+ }, {
167
+ strict: true,
168
+ description: 'redundant tag',
169
+ });
170
+ /**
171
+ * @internal
172
+ */
173
+ exports.registeredItem = ts_utils_1.Converters.discriminatedObject('Type', {
174
+ language: exports.registeredLanguage,
175
+ extlang: exports.registeredExtLang,
176
+ script: exports.registeredScript,
177
+ region: exports.registeredRegion,
178
+ variant: exports.registeredVariant,
179
+ grandfathered: exports.registeredGrandfatheredTag,
180
+ redundant: exports.registeredRedundantTag,
181
+ });
182
+ /**
183
+ * @internal
184
+ */
185
+ exports.registryFile = (0, converters_1.datedRegistry)(exports.registeredItem);
186
+ /**
187
+ * Loads a JSON-format language subtag registry file.
188
+ * @param path - The string path from which the registry is to be loaded.
189
+ * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}
190
+ * or `Failure` with details if an error occurs.
191
+ * @internal
192
+ */
193
+ function loadJsonSubtagRegistryFileSync(path) {
194
+ return (0, file_1.convertJsonFileSync)(path, exports.registryFile);
195
+ }
196
+ exports.loadJsonSubtagRegistryFileSync = loadJsonSubtagRegistryFileSync;
197
+ /**
198
+ * Loads a text (JAR) format language subtag registry file.
199
+ * @param path - The string path from which the registry is to be loaded.
200
+ * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}
201
+ * or `Failure` with details if an error occurs.
202
+ * @internal
203
+ */
204
+ function loadTxtSubtagRegistryFileSync(path) {
205
+ return ts_utils_1.RecordJar.readRecordJarFileSync(path, {
206
+ arrayFields: ['Comments', 'Description', 'Prefix'],
207
+ fixedContinuationSize: 1,
208
+ }).onSuccess((jar) => {
209
+ return (0, jarConverters_1.datedRegistryFromJarRecords)(exports.registeredItem).convert(jar);
210
+ });
211
+ }
212
+ exports.loadTxtSubtagRegistryFileSync = loadTxtSubtagRegistryFileSync;
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFyQ29udmVydGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pYW5hL2xhbmd1YWdlLXN1YnRhZ3MvamFyQ29udmVydGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlILHVGQUF5RTtBQUV6RSw0Q0FBOEQ7QUFDOUQscURBQXVFO0FBRXZFLDRDQUF3RDtBQUN4RCx3REFBbUU7QUFDbkUsNEVBQWdGO0FBRWhGOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxxQkFBVSxDQUFDLGVBQWUsQ0FDeEQ7SUFDSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxxQkFBVSxDQUFDLGVBQWUsQ0FBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUU7SUFDdkYsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtJQUN2RyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxxQkFBVSxDQUFDLFdBQVcsRUFBRTtJQUN2RSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSw2QkFBZ0IsRUFBRTtJQUNyRCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxxQkFBVSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO0lBQ2pGLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLDZCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7SUFDL0UsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLGNB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QUFjLEdBQUcscUJBQVUsQ0FBQyxtQkFBbUIsQ0FBdUIsTUFBTSxFQUFFO0lBQ3ZGLFFBQVEsRUFBRSwwQkFBa0I7SUFDNUIsT0FBTyxFQUFFLHlCQUFpQjtJQUMxQixNQUFNLEVBQUUsd0JBQWdCO0lBQ3hCLE1BQU0sRUFBRSx3QkFBZ0I7SUFDeEIsT0FBTyxFQUFFLHlCQUFpQjtJQUMxQixhQUFhLEVBQUUsa0NBQTBCO0lBQ3pDLFNBQVMsRUFBRSw4QkFBc0I7Q0FDcEMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDVSxRQUFBLFlBQVksR0FBRyxJQUFBLDBCQUFhLEVBQUMsc0JBQWMsQ0FBQyxDQUFDO0FBRTFEOzs7Ozs7R0FNRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLElBQVk7SUFDdkQsT0FBTyxJQUFBLDBCQUFtQixFQUFDLElBQUksRUFBRSxvQkFBWSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUZELHdFQUVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsSUFBWTtJQUN0RCxPQUFPLG9CQUFTLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1FBQ2xELHFCQUFxQixFQUFFLENBQUM7S0FDM0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sSUFBQSwyQ0FBMkIsRUFBQyxzQkFBYyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVBELHNFQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCAqIGFzIEl0ZW1zIGZyb20gJy4vbW9kZWwnO1xuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvbW9kZWwnO1xuaW1wb3J0ICogYXMgVGFnQ29udmVydGVycyBmcm9tICcuLi9qYXIvbGFuZ3VhZ2Utc3VidGFncy90YWdzL2NvbnZlcnRlcnMnO1xuXG5pbXBvcnQgeyBDb252ZXJ0ZXJzLCBSZWNvcmRKYXIsIFJlc3VsdCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgZGF0ZWRSZWdpc3RyeSwgeWVhck1vbnRoRGF5U3BlYyB9IGZyb20gJy4uL2NvbW1vbi9jb252ZXJ0ZXJzJztcblxuaW1wb3J0IHsgY29udmVydEpzb25GaWxlU3luYyB9IGZyb20gJ0BmZ3YvdHMtanNvbi9maWxlJztcbmltcG9ydCB7IGRhdGVkUmVnaXN0cnlGcm9tSmFyUmVjb3JkcyB9IGZyb20gJy4uL2phci9qYXJDb252ZXJ0ZXJzJztcbmltcG9ydCB7IHJlZ2lzdHJ5U2NvcGVUeXBlIH0gZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvY29udmVydGVycyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkTGFuZ3VhZ2UgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5MYW5ndWFnZVN1YnRhZ1JlZ2lzdHJ5RW50cnksIEl0ZW1zLlJlZ2lzdGVyZWRMYW5ndWFnZT4oXG4gICAge1xuICAgICAgICB0eXBlOiB7IGZyb206ICdUeXBlJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTwnbGFuZ3VhZ2UnPihbJ2xhbmd1YWdlJ10pIH0sXG4gICAgICAgIHN1YnRhZzogeyBmcm9tOiAnU3VidGFnJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLnRhZ09yU3RhcnRPZlRhZ1JhbmdlKFRhZ0NvbnZlcnRlcnMubGFuZ3VhZ2VTdWJ0YWcpIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7IGZyb206ICdEZXNjcmlwdGlvbicsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSB9LFxuICAgICAgICBhZGRlZDogeyBmcm9tOiAnQWRkZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMgfSxcbiAgICAgICAgY29tbWVudHM6IHsgZnJvbTogJ0NvbW1lbnRzJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5LCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBkZXByZWNhdGVkOiB7IGZyb206ICdEZXByZWNhdGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBtYWNyb2xhbmd1YWdlOiB7IGZyb206ICdNYWNyb2xhbmd1YWdlJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmxhbmd1YWdlU3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBwcmVmZXJyZWRWYWx1ZTogeyBmcm9tOiAnUHJlZmVycmVkLVZhbHVlJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmxhbmd1YWdlU3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBzY29wZTogeyBmcm9tOiAnU2NvcGUnLCBjb252ZXJ0ZXI6IHJlZ2lzdHJ5U2NvcGVUeXBlLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBzdXBwcmVzc1NjcmlwdDogeyBmcm9tOiAnU3VwcHJlc3MtU2NyaXB0JywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLnNjcmlwdFN1YnRhZywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgc3VidGFnUmFuZ2VFbmQ6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5lbmRPZlRhZ1JhbmdlT3JVbmRlZmluZWQoVGFnQ29udmVydGVycy5sYW5ndWFnZVN1YnRhZyksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdsYW5ndWFnZSBzdWJ0YWcnLFxuICAgIH1cbik7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkRXh0TGFuZyA9IENvbnZlcnRlcnMudHJhbnNmb3JtT2JqZWN0PE1vZGVsLkV4dExhbmdTdWJ0YWdSZWdpc3RyeUVudHJ5LCBJdGVtcy5SZWdpc3RlcmVkRXh0TGFuZz4oXG4gICAge1xuICAgICAgICB0eXBlOiB7IGZyb206ICdUeXBlJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTwnZXh0bGFuZyc+KFsnZXh0bGFuZyddKSB9LFxuICAgICAgICBzdWJ0YWc6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5leHRsYW5nU3VidGFnIH0sXG4gICAgICAgIHByZWZlcnJlZFZhbHVlOiB7IGZyb206ICdQcmVmZXJyZWQtVmFsdWUnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlIH0sXG4gICAgICAgIHByZWZpeDogeyBmcm9tOiAnUHJlZml4JywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmV4dGxhbmdQcmVmaXggfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgZnJvbTogJ0Rlc2NyaXB0aW9uJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5IH0sXG4gICAgICAgIGFkZGVkOiB7IGZyb206ICdBZGRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYyB9LFxuICAgICAgICBjb21tZW50czogeyBmcm9tOiAnQ29tbWVudHMnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IHsgZnJvbTogJ0RlcHJlY2F0ZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIG1hY3JvbGFuZ3VhZ2U6IHsgZnJvbTogJ01hY3JvbGFuZ3VhZ2UnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMubGFuZ3VhZ2VTdWJ0YWcsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHNjb3BlOiB7IGZyb206ICdTY29wZScsIGNvbnZlcnRlcjogcmVnaXN0cnlTY29wZVR5cGUsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHN1cHByZXNzU2NyaXB0OiB7IGZyb206ICdTdXBwcmVzcy1TY3JpcHQnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuc2NyaXB0U3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnZXh0bGFuZyBzdWJ0YWcnLFxuICAgIH1cbik7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkU2NyaXB0ID0gQ29udmVydGVycy50cmFuc2Zvcm1PYmplY3Q8TW9kZWwuU2NyaXB0U3VidGFnUmVnaXN0cnlFbnRyeSwgSXRlbXMuUmVnaXN0ZXJlZFNjcmlwdD4oXG4gICAge1xuICAgICAgICB0eXBlOiB7IGZyb206ICdUeXBlJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTwnc2NyaXB0Jz4oWydzY3JpcHQnXSkgfSxcbiAgICAgICAgc3VidGFnOiB7IGZyb206ICdTdWJ0YWcnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMudGFnT3JTdGFydE9mVGFnUmFuZ2UoVGFnQ29udmVydGVycy5zY3JpcHRTdWJ0YWcpIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7IGZyb206ICdEZXNjcmlwdGlvbicsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSB9LFxuICAgICAgICBhZGRlZDogeyBmcm9tOiAnQWRkZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMgfSxcbiAgICAgICAgY29tbWVudHM6IHsgZnJvbTogJ0NvbW1lbnRzJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5LCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBkZXByZWNhdGVkOiB7IGZyb206ICdEZXByZWNhdGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBwcmVmZXJyZWRWYWx1ZTogeyBmcm9tOiAnUHJlZmVycmVkLVZhbHVlJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLnNjcmlwdFN1YnRhZywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgc3VidGFnUmFuZ2VFbmQ6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5lbmRPZlRhZ1JhbmdlT3JVbmRlZmluZWQoVGFnQ29udmVydGVycy5zY3JpcHRTdWJ0YWcpLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnc2NyaXB0IHN1YnRhZycsXG4gICAgfVxuKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyZWRSZWdpb24gPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5SZWdpb25TdWJ0YWdSZWdpc3RyeUVudHJ5LCBJdGVtcy5SZWdpc3RlcmVkUmVnaW9uPihcbiAgICB7XG4gICAgICAgIHR5cGU6IHsgZnJvbTogJ1R5cGUnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuZW51bWVyYXRlZFZhbHVlPCdyZWdpb24nPihbJ3JlZ2lvbiddKSB9LFxuICAgICAgICBzdWJ0YWc6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy50YWdPclN0YXJ0T2ZUYWdSYW5nZShUYWdDb252ZXJ0ZXJzLnJlZ2lvblN1YnRhZykgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgZnJvbTogJ0Rlc2NyaXB0aW9uJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5IH0sXG4gICAgICAgIGFkZGVkOiB7IGZyb206ICdBZGRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYyB9LFxuICAgICAgICBjb21tZW50czogeyBmcm9tOiAnQ29tbWVudHMnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IHsgZnJvbTogJ0RlcHJlY2F0ZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHByZWZlcnJlZFZhbHVlOiB7IGZyb206ICdQcmVmZXJyZWQtVmFsdWUnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMucmVnaW9uU3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBzdWJ0YWdSYW5nZUVuZDogeyBmcm9tOiAnU3VidGFnJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmVuZE9mVGFnUmFuZ2VPclVuZGVmaW5lZChUYWdDb252ZXJ0ZXJzLnJlZ2lvblN1YnRhZyksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdyZWdpb24gc3VidGFnJyxcbiAgICB9XG4pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJlZFZhcmlhbnQgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5WYXJpYW50U3VidGFnUmVnaXN0cnlFbnRyeSwgSXRlbXMuUmVnaXN0ZXJlZFZhcmlhbnQ+KFxuICAgIHtcbiAgICAgICAgdHlwZTogeyBmcm9tOiAnVHlwZScsIGNvbnZlcnRlcjogQ29udmVydGVycy5lbnVtZXJhdGVkVmFsdWU8J3ZhcmlhbnQnPihbJ3ZhcmlhbnQnXSkgfSxcbiAgICAgICAgc3VidGFnOiB7IGZyb206ICdTdWJ0YWcnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMudmFyaWFudFN1YnRhZyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyBmcm9tOiAnRGVzY3JpcHRpb24nLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXkgfSxcbiAgICAgICAgYWRkZWQ6IHsgZnJvbTogJ0FkZGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjIH0sXG4gICAgICAgIGNvbW1lbnRzOiB7IGZyb206ICdDb21tZW50cycsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSwgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgZGVwcmVjYXRlZDogeyBmcm9tOiAnRGVwcmVjYXRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgcHJlZmVycmVkVmFsdWU6IHsgZnJvbTogJ1ByZWZlcnJlZC1WYWx1ZScsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy52YXJpYW50U3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBwcmVmaXg6IHsgZnJvbTogJ1ByZWZpeCcsIGNvbnZlcnRlcjogQ29udmVydGVycy5hcnJheU9mKFRhZ0NvbnZlcnRlcnMuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlKSwgb3B0aW9uYWw6IHRydWUgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ3ZhcmlhbnQgc3VidGFnJyxcbiAgICB9XG4pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWcgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5HcmFuZGZhdGhlcmVkVGFnUmVnaXN0cnlFbnRyeSwgSXRlbXMuUmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWc+KFxuICAgIHtcbiAgICAgICAgdHlwZTogeyBmcm9tOiAnVHlwZScsIGNvbnZlcnRlcjogQ29udmVydGVycy5lbnVtZXJhdGVkVmFsdWU8J2dyYW5kZmF0aGVyZWQnPihbJ2dyYW5kZmF0aGVyZWQnXSkgfSxcbiAgICAgICAgdGFnOiB7IGZyb206ICdUYWcnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuZ3JhbmRmYXRoZXJlZFRhZyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyBmcm9tOiAnRGVzY3JpcHRpb24nLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXkgfSxcbiAgICAgICAgYWRkZWQ6IHsgZnJvbTogJ0FkZGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjIH0sXG4gICAgICAgIGNvbW1lbnRzOiB7IGZyb206ICdDb21tZW50cycsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSwgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgZGVwcmVjYXRlZDogeyBmcm9tOiAnRGVwcmVjYXRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgcHJlZmVycmVkVmFsdWU6IHsgZnJvbTogJ1ByZWZlcnJlZC1WYWx1ZScsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5leHRlbmRlZExhbmd1YWdlUmFuZ2UsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdncmFuZGZhdGhlcmVkIHRhZycsXG4gICAgfVxuKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyZWRSZWR1bmRhbnRUYWcgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5SZWR1bmRhbnRUYWdSZWdpc3RyeUVudHJ5LCBJdGVtcy5SZWdpc3RlcmVkUmVkdW5kYW50VGFnPihcbiAgICB7XG4gICAgICAgIHR5cGU6IHsgZnJvbTogJ1R5cGUnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuZW51bWVyYXRlZFZhbHVlPCdyZWR1bmRhbnQnPihbJ3JlZHVuZGFudCddKSB9LFxuICAgICAgICB0YWc6IHsgZnJvbTogJ1RhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5yZWR1bmRhbnRUYWcgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgZnJvbTogJ0Rlc2NyaXB0aW9uJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5IH0sXG4gICAgICAgIGFkZGVkOiB7IGZyb206ICdBZGRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYyB9LFxuICAgICAgICBjb21tZW50czogeyBmcm9tOiAnQ29tbWVudHMnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IHsgZnJvbTogJ0RlcHJlY2F0ZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHByZWZlcnJlZFZhbHVlOiB7IGZyb206ICdQcmVmZXJyZWQtVmFsdWUnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAncmVkdW5kYW50IHRhZycsXG4gICAgfVxuKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyZWRJdGVtID0gQ29udmVydGVycy5kaXNjcmltaW5hdGVkT2JqZWN0PEl0ZW1zLlJlZ2lzdGVyZWRJdGVtPignVHlwZScsIHtcbiAgICBsYW5ndWFnZTogcmVnaXN0ZXJlZExhbmd1YWdlLFxuICAgIGV4dGxhbmc6IHJlZ2lzdGVyZWRFeHRMYW5nLFxuICAgIHNjcmlwdDogcmVnaXN0ZXJlZFNjcmlwdCxcbiAgICByZWdpb246IHJlZ2lzdGVyZWRSZWdpb24sXG4gICAgdmFyaWFudDogcmVnaXN0ZXJlZFZhcmlhbnQsXG4gICAgZ3JhbmRmYXRoZXJlZDogcmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWcsXG4gICAgcmVkdW5kYW50OiByZWdpc3RlcmVkUmVkdW5kYW50VGFnLFxufSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RyeUZpbGUgPSBkYXRlZFJlZ2lzdHJ5KHJlZ2lzdGVyZWRJdGVtKTtcblxuLyoqXG4gKiBMb2FkcyBhIEpTT04tZm9ybWF0IGxhbmd1YWdlIHN1YnRhZyByZWdpc3RyeSBmaWxlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgc3RyaW5nIHBhdGggZnJvbSB3aGljaCB0aGUgcmVnaXN0cnkgaXMgdG8gYmUgbG9hZGVkLlxuICogQHJldHVybnMgYFN1Y2Nlc3NgIHdpdGggdGhlIHJlc3VsdGluZyB7QGxpbmsgSWFuYS5MYW5ndWFnZVN1YnRhZ3MuTW9kZWwuUmVnaXN0cnlGaWxlIHwgcmVnaXN0cnkgZmlsZX1cbiAqIG9yIGBGYWlsdXJlYCB3aXRoIGRldGFpbHMgaWYgYW4gZXJyb3Igb2NjdXJzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkSnNvblN1YnRhZ1JlZ2lzdHJ5RmlsZVN5bmMocGF0aDogc3RyaW5nKTogUmVzdWx0PEl0ZW1zLlJlZ2lzdHJ5RmlsZT4ge1xuICAgIHJldHVybiBjb252ZXJ0SnNvbkZpbGVTeW5jKHBhdGgsIHJlZ2lzdHJ5RmlsZSk7XG59XG5cbi8qKlxuICogTG9hZHMgYSB0ZXh0IChKQVIpIGZvcm1hdCBsYW5ndWFnZSBzdWJ0YWcgcmVnaXN0cnkgZmlsZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHN0cmluZyBwYXRoIGZyb20gd2hpY2ggdGhlIHJlZ2lzdHJ5IGlzIHRvIGJlIGxvYWRlZC5cbiAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIHRoZSByZXN1bHRpbmcge0BsaW5rIElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLk1vZGVsLlJlZ2lzdHJ5RmlsZSB8IHJlZ2lzdHJ5IGZpbGV9XG4gKiBvciBgRmFpbHVyZWAgd2l0aCBkZXRhaWxzIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFR4dFN1YnRhZ1JlZ2lzdHJ5RmlsZVN5bmMocGF0aDogc3RyaW5nKTogUmVzdWx0PEl0ZW1zLlJlZ2lzdHJ5RmlsZT4ge1xuICAgIHJldHVybiBSZWNvcmRKYXIucmVhZFJlY29yZEphckZpbGVTeW5jKHBhdGgsIHtcbiAgICAgICAgYXJyYXlGaWVsZHM6IFsnQ29tbWVudHMnLCAnRGVzY3JpcHRpb24nLCAnUHJlZml4J10sXG4gICAgICAgIGZpeGVkQ29udGludWF0aW9uU2l6ZTogMSxcbiAgICB9KS5vblN1Y2Nlc3MoKGphcikgPT4ge1xuICAgICAgICByZXR1cm4gZGF0ZWRSZWdpc3RyeUZyb21KYXJSZWNvcmRzKHJlZ2lzdGVyZWRJdGVtKS5jb252ZXJ0KGphcik7XG4gICAgfSk7XG59XG4iXX0=
@@ -0,0 +1,144 @@
1
+ import * as Model from '../jar/language-subtags/registry/model';
2
+ import { ExtLangSubtag, ExtendedLanguageRange, GrandfatheredTag, LanguageSubtag, RedundantTag, RegionSubtag, ScriptSubtag, VariantSubtag } from './common';
3
+ import { DatedRegistry } from '../common/model';
4
+ /**
5
+ * @public
6
+ */
7
+ export interface RegisteredSubtag<TTYPE extends Model.RegistryEntryType, TTAG extends string> {
8
+ readonly type: TTYPE;
9
+ readonly subtag: TTAG;
10
+ readonly description: string[];
11
+ }
12
+ /**
13
+ * @public
14
+ */
15
+ export interface RegisteredSubtagWithRange<TTYPE extends Model.RegistryEntryType, TTAG extends string> extends RegisteredSubtag<TTYPE, TTAG> {
16
+ readonly type: TTYPE;
17
+ readonly subtag: TTAG;
18
+ readonly description: string[];
19
+ readonly subtagRangeEnd?: TTAG;
20
+ }
21
+ /**
22
+ * @public
23
+ */
24
+ export interface RegisteredTag<TTYPE extends Model.RegistryEntryType, TTAG extends string> {
25
+ readonly type: TTYPE;
26
+ readonly tag: TTAG;
27
+ readonly description: string[];
28
+ }
29
+ /**
30
+ * @public
31
+ */
32
+ export type RegisteredTagOrSubtag<TTYPE extends Model.RegistryEntryType, TTAG extends string> = RegisteredSubtag<TTYPE, TTAG> | RegisteredSubtagWithRange<TTYPE, TTAG> | RegisteredTag<TTYPE, TTAG>;
33
+ /**
34
+ * @public
35
+ */
36
+ export interface RegisteredLanguage extends RegisteredSubtagWithRange<'language', LanguageSubtag> {
37
+ readonly type: 'language';
38
+ readonly subtag: LanguageSubtag;
39
+ readonly description: string[];
40
+ readonly added: Model.YearMonthDaySpec;
41
+ readonly comments?: string[];
42
+ readonly deprecated?: Model.YearMonthDaySpec;
43
+ readonly macrolanguage?: LanguageSubtag;
44
+ readonly preferredValue?: LanguageSubtag;
45
+ readonly scope?: Model.RegistryEntryScope;
46
+ readonly suppressScript?: ScriptSubtag;
47
+ readonly subtagRangeEnd?: LanguageSubtag;
48
+ }
49
+ /**
50
+ * @public
51
+ */
52
+ export interface RegisteredExtLang extends RegisteredSubtag<'extlang', ExtLangSubtag> {
53
+ readonly type: 'extlang';
54
+ readonly subtag: ExtLangSubtag;
55
+ readonly preferredValue: ExtendedLanguageRange;
56
+ readonly prefix: LanguageSubtag;
57
+ readonly description: string[];
58
+ readonly added: Model.YearMonthDaySpec;
59
+ readonly comments?: string[];
60
+ readonly deprecated?: Model.YearMonthDaySpec;
61
+ readonly macrolanguage?: LanguageSubtag;
62
+ readonly scope?: Model.RegistryEntryScope;
63
+ readonly suppressScript?: ScriptSubtag;
64
+ }
65
+ /**
66
+ * @public
67
+ */
68
+ export interface RegisteredScript extends RegisteredSubtagWithRange<'script', ScriptSubtag> {
69
+ readonly type: 'script';
70
+ readonly subtag: ScriptSubtag;
71
+ readonly description: string[];
72
+ readonly added: Model.YearMonthDaySpec;
73
+ readonly comments?: string[];
74
+ readonly deprecated?: Model.YearMonthDaySpec;
75
+ readonly preferredValue?: ScriptSubtag;
76
+ readonly subtagRangeEnd?: ScriptSubtag;
77
+ }
78
+ /**
79
+ * @public
80
+ */
81
+ export interface RegisteredRegion extends RegisteredSubtagWithRange<'region', RegionSubtag> {
82
+ readonly type: 'region';
83
+ readonly subtag: RegionSubtag;
84
+ readonly description: string[];
85
+ readonly added: Model.YearMonthDaySpec;
86
+ readonly comments?: string[];
87
+ readonly deprecated?: Model.YearMonthDaySpec;
88
+ readonly preferredValue?: RegionSubtag;
89
+ readonly subtagRangeEnd?: RegionSubtag;
90
+ }
91
+ /**
92
+ * @public
93
+ */
94
+ export interface RegisteredVariant extends RegisteredSubtag<'variant', VariantSubtag> {
95
+ readonly type: 'variant';
96
+ readonly subtag: VariantSubtag;
97
+ readonly description: string[];
98
+ readonly added: Model.YearMonthDaySpec;
99
+ readonly comments?: string[];
100
+ readonly deprecated?: Model.YearMonthDaySpec;
101
+ readonly preferredValue?: VariantSubtag;
102
+ readonly prefix?: ExtendedLanguageRange[];
103
+ }
104
+ /**
105
+ * @public
106
+ */
107
+ export interface RegisteredGrandfatheredTag extends RegisteredTag<'grandfathered', GrandfatheredTag> {
108
+ readonly type: 'grandfathered';
109
+ readonly tag: GrandfatheredTag;
110
+ readonly description: string[];
111
+ readonly added: Model.YearMonthDaySpec;
112
+ readonly comments?: string[];
113
+ readonly deprecated?: Model.YearMonthDaySpec;
114
+ readonly preferredValue?: ExtendedLanguageRange;
115
+ }
116
+ /**
117
+ * @public
118
+ */
119
+ export interface RegisteredRedundantTag extends RegisteredTag<'redundant', RedundantTag> {
120
+ readonly type: 'redundant';
121
+ readonly tag: RedundantTag;
122
+ readonly description: string[];
123
+ readonly added: Model.YearMonthDaySpec;
124
+ readonly comments?: string[];
125
+ readonly deprecated?: Model.YearMonthDaySpec;
126
+ readonly preferredValue?: ExtendedLanguageRange;
127
+ }
128
+ /**
129
+ * @public
130
+ */
131
+ export type RegisteredSubtagItem = RegisteredLanguage | RegisteredExtLang | RegisteredScript | RegisteredRegion | RegisteredVariant;
132
+ /**
133
+ * @public
134
+ */
135
+ export type RegisteredTagItem = RegisteredGrandfatheredTag | RegisteredRedundantTag;
136
+ /**
137
+ * @public
138
+ */
139
+ export type RegisteredItem = RegisteredSubtagItem | RegisteredTagItem;
140
+ /**
141
+ * @public
142
+ */
143
+ export type RegistryFile = DatedRegistry<RegisteredItem>;
144
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/iana/language-subtags/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWFuYS9sYW5ndWFnZS1zdWJ0YWdzL21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvbW9kZWwnO1xuXG5pbXBvcnQge1xuICAgIEV4dExhbmdTdWJ0YWcsXG4gICAgRXh0ZW5kZWRMYW5ndWFnZVJhbmdlLFxuICAgIEdyYW5kZmF0aGVyZWRUYWcsXG4gICAgTGFuZ3VhZ2VTdWJ0YWcsXG4gICAgUmVkdW5kYW50VGFnLFxuICAgIFJlZ2lvblN1YnRhZyxcbiAgICBTY3JpcHRTdWJ0YWcsXG4gICAgVmFyaWFudFN1YnRhZyxcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5pbXBvcnQgeyBEYXRlZFJlZ2lzdHJ5IH0gZnJvbSAnLi4vY29tbW9uL21vZGVsJztcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFN1YnRhZzxUVFlQRSBleHRlbmRzIE1vZGVsLlJlZ2lzdHJ5RW50cnlUeXBlLCBUVEFHIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgcmVhZG9ubHkgdHlwZTogVFRZUEU7XG4gICAgcmVhZG9ubHkgc3VidGFnOiBUVEFHO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFN1YnRhZ1dpdGhSYW5nZTxUVFlQRSBleHRlbmRzIE1vZGVsLlJlZ2lzdHJ5RW50cnlUeXBlLCBUVEFHIGV4dGVuZHMgc3RyaW5nPlxuICAgIGV4dGVuZHMgUmVnaXN0ZXJlZFN1YnRhZzxUVFlQRSwgVFRBRz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6IFRUWVBFO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogVFRBRztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IFRUQUc7XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyZWRUYWc8VFRZUEUgZXh0ZW5kcyBNb2RlbC5SZWdpc3RyeUVudHJ5VHlwZSwgVFRBRyBleHRlbmRzIHN0cmluZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6IFRUWVBFO1xuICAgIHJlYWRvbmx5IHRhZzogVFRBRztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBSZWdpc3RlcmVkVGFnT3JTdWJ0YWc8VFRZUEUgZXh0ZW5kcyBNb2RlbC5SZWdpc3RyeUVudHJ5VHlwZSwgVFRBRyBleHRlbmRzIHN0cmluZz4gPVxuICAgIHwgUmVnaXN0ZXJlZFN1YnRhZzxUVFlQRSwgVFRBRz5cbiAgICB8IFJlZ2lzdGVyZWRTdWJ0YWdXaXRoUmFuZ2U8VFRZUEUsIFRUQUc+XG4gICAgfCBSZWdpc3RlcmVkVGFnPFRUWVBFLCBUVEFHPjtcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZExhbmd1YWdlIGV4dGVuZHMgUmVnaXN0ZXJlZFN1YnRhZ1dpdGhSYW5nZTwnbGFuZ3VhZ2UnLCBMYW5ndWFnZVN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdsYW5ndWFnZSc7XG4gICAgcmVhZG9ubHkgc3VidGFnOiBMYW5ndWFnZVN1YnRhZztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgYWRkZWQ6IE1vZGVsLlllYXJNb250aERheVNwZWM7XG5cbiAgICByZWFkb25seSBjb21tZW50cz86IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGRlcHJlY2F0ZWQ/OiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuXG4gICAgcmVhZG9ubHkgbWFjcm9sYW5ndWFnZT86IExhbmd1YWdlU3VidGFnO1xuICAgIHJlYWRvbmx5IHByZWZlcnJlZFZhbHVlPzogTGFuZ3VhZ2VTdWJ0YWc7XG4gICAgcmVhZG9ubHkgc2NvcGU/OiBNb2RlbC5SZWdpc3RyeUVudHJ5U2NvcGU7XG4gICAgcmVhZG9ubHkgc3VwcHJlc3NTY3JpcHQ/OiBTY3JpcHRTdWJ0YWc7XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IExhbmd1YWdlU3VidGFnO1xufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlcmVkRXh0TGFuZyBleHRlbmRzIFJlZ2lzdGVyZWRTdWJ0YWc8J2V4dGxhbmcnLCBFeHRMYW5nU3VidGFnPiB7XG4gICAgcmVhZG9ubHkgdHlwZTogJ2V4dGxhbmcnO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogRXh0TGFuZ1N1YnRhZztcbiAgICByZWFkb25seSBwcmVmZXJyZWRWYWx1ZTogRXh0ZW5kZWRMYW5ndWFnZVJhbmdlO1xuICAgIHJlYWRvbmx5IHByZWZpeDogTGFuZ3VhZ2VTdWJ0YWc7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGFkZGVkOiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuXG4gICAgcmVhZG9ubHkgY29tbWVudHM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBkZXByZWNhdGVkPzogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IG1hY3JvbGFuZ3VhZ2U/OiBMYW5ndWFnZVN1YnRhZztcbiAgICByZWFkb25seSBzY29wZT86IE1vZGVsLlJlZ2lzdHJ5RW50cnlTY29wZTtcbiAgICByZWFkb25seSBzdXBwcmVzc1NjcmlwdD86IFNjcmlwdFN1YnRhZztcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFNjcmlwdCBleHRlbmRzIFJlZ2lzdGVyZWRTdWJ0YWdXaXRoUmFuZ2U8J3NjcmlwdCcsIFNjcmlwdFN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdzY3JpcHQnO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogU2NyaXB0U3VidGFnO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhZGRlZDogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IGNvbW1lbnRzPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IE1vZGVsLlllYXJNb250aERheVNwZWM7XG4gICAgcmVhZG9ubHkgcHJlZmVycmVkVmFsdWU/OiBTY3JpcHRTdWJ0YWc7XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IFNjcmlwdFN1YnRhZztcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFJlZ2lvbiBleHRlbmRzIFJlZ2lzdGVyZWRTdWJ0YWdXaXRoUmFuZ2U8J3JlZ2lvbicsIFJlZ2lvblN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdyZWdpb24nO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogUmVnaW9uU3VidGFnO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhZGRlZDogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IGNvbW1lbnRzPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IE1vZGVsLlllYXJNb250aERheVNwZWM7XG4gICAgcmVhZG9ubHkgcHJlZmVycmVkVmFsdWU/OiBSZWdpb25TdWJ0YWc7XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IFJlZ2lvblN1YnRhZztcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFZhcmlhbnQgZXh0ZW5kcyBSZWdpc3RlcmVkU3VidGFnPCd2YXJpYW50JywgVmFyaWFudFN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICd2YXJpYW50JztcbiAgICByZWFkb25seSBzdWJ0YWc6IFZhcmlhbnRTdWJ0YWc7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGFkZGVkOiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuXG4gICAgcmVhZG9ubHkgY29tbWVudHM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBkZXByZWNhdGVkPzogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcbiAgICByZWFkb25seSBwcmVmZXJyZWRWYWx1ZT86IFZhcmlhbnRTdWJ0YWc7XG4gICAgcmVhZG9ubHkgcHJlZml4PzogRXh0ZW5kZWRMYW5ndWFnZVJhbmdlW107XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyZWRHcmFuZGZhdGhlcmVkVGFnIGV4dGVuZHMgUmVnaXN0ZXJlZFRhZzwnZ3JhbmRmYXRoZXJlZCcsIEdyYW5kZmF0aGVyZWRUYWc+IHtcbiAgICByZWFkb25seSB0eXBlOiAnZ3JhbmRmYXRoZXJlZCc7XG4gICAgcmVhZG9ubHkgdGFnOiBHcmFuZGZhdGhlcmVkVGFnO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhZGRlZDogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IGNvbW1lbnRzPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IE1vZGVsLlllYXJNb250aERheVNwZWM7XG4gICAgcmVhZG9ubHkgcHJlZmVycmVkVmFsdWU/OiBFeHRlbmRlZExhbmd1YWdlUmFuZ2U7XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyZWRSZWR1bmRhbnRUYWcgZXh0ZW5kcyBSZWdpc3RlcmVkVGFnPCdyZWR1bmRhbnQnLCBSZWR1bmRhbnRUYWc+IHtcbiAgICByZWFkb25seSB0eXBlOiAncmVkdW5kYW50JztcbiAgICByZWFkb25seSB0YWc6IFJlZHVuZGFudFRhZztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgYWRkZWQ6IE1vZGVsLlllYXJNb250aERheVNwZWM7XG5cbiAgICByZWFkb25seSBjb21tZW50cz86IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGRlcHJlY2F0ZWQ/OiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuICAgIHJlYWRvbmx5IHByZWZlcnJlZFZhbHVlPzogRXh0ZW5kZWRMYW5ndWFnZVJhbmdlO1xufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgUmVnaXN0ZXJlZFN1YnRhZ0l0ZW0gPSBSZWdpc3RlcmVkTGFuZ3VhZ2UgfCBSZWdpc3RlcmVkRXh0TGFuZyB8IFJlZ2lzdGVyZWRTY3JpcHQgfCBSZWdpc3RlcmVkUmVnaW9uIHwgUmVnaXN0ZXJlZFZhcmlhbnQ7XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBSZWdpc3RlcmVkVGFnSXRlbSA9IFJlZ2lzdGVyZWRHcmFuZGZhdGhlcmVkVGFnIHwgUmVnaXN0ZXJlZFJlZHVuZGFudFRhZztcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFJlZ2lzdGVyZWRJdGVtID0gUmVnaXN0ZXJlZFN1YnRhZ0l0ZW0gfCBSZWdpc3RlcmVkVGFnSXRlbTtcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFJlZ2lzdHJ5RmlsZSA9IERhdGVkUmVnaXN0cnk8UmVnaXN0ZXJlZEl0ZW0+O1xuIl19
@@ -0,0 +1,77 @@
1
+ import * as Items from './model';
2
+ import * as Model from '../jar/language-subtags/registry/model';
3
+ import { ExtLangSubtag, GrandfatheredTag, LanguageSubtag, RedundantTag, RegionSubtag, ScriptSubtag, VariantSubtag } from '../jar/language-subtags/tags';
4
+ import { Result } from '@fgv/ts-utils';
5
+ import { ValidationHelpers } from '../../utils';
6
+ import { RegisteredItemScope } from '../common/registeredItems';
7
+ /**
8
+ * @internal
9
+ */
10
+ declare class SubtagScope<TTYPE extends Model.RegistryEntryType, TTAG extends string, TITEM extends Items.RegisteredSubtag<TTYPE, TTAG>> extends RegisteredItemScope<TTYPE, TTAG, TITEM> {
11
+ protected constructor(type: TTYPE, validate: ValidationHelpers<TTAG>);
12
+ add(entry: TITEM): Result<true>;
13
+ protected _validateEntry(entry: TITEM): Result<true>;
14
+ }
15
+ /**
16
+ * @internal
17
+ */
18
+ declare class SubtagScopeWithRange<TTYPE extends Model.RegistryEntryType, TTAG extends string, TITEM extends Items.RegisteredSubtagWithRange<TTYPE, TTAG>> extends SubtagScope<TTYPE, TTAG, TITEM> {
19
+ protected constructor(type: TTYPE, validate: ValidationHelpers<TTAG>);
20
+ add(entry: TITEM): Result<true>;
21
+ protected _validateEntry(entry: TITEM): Result<true>;
22
+ protected _validateRange(start: TTAG, end: TTAG): Result<true>;
23
+ protected _addRange(entry: TITEM): Result<true>;
24
+ protected _nextInRange(current: TTAG, end: TTAG): TTAG | undefined;
25
+ }
26
+ /**
27
+ * @internal
28
+ */
29
+ declare class TagScope<TTYPE extends Model.RegistryEntryType, TTAG extends string, TITEM extends Items.RegisteredTag<TTYPE, TTAG>> extends RegisteredItemScope<TTYPE, TTAG, TITEM> {
30
+ protected constructor(type: TTYPE, validate: ValidationHelpers<TTAG>);
31
+ add(entry: TITEM): Result<true>;
32
+ protected _validateEntry(entry: TITEM): Result<true>;
33
+ }
34
+ /**
35
+ * @public
36
+ */
37
+ export declare class LanguageSubtagScope extends SubtagScopeWithRange<'language', LanguageSubtag, Items.RegisteredLanguage> {
38
+ constructor();
39
+ }
40
+ /**
41
+ * @public
42
+ */
43
+ export declare class ExtLangSubtagScope extends SubtagScope<'extlang', ExtLangSubtag, Items.RegisteredExtLang> {
44
+ constructor();
45
+ }
46
+ /**
47
+ * @public
48
+ */
49
+ export declare class ScriptSubtagScope extends SubtagScopeWithRange<'script', ScriptSubtag, Items.RegisteredScript> {
50
+ constructor();
51
+ }
52
+ /**
53
+ * @public
54
+ */
55
+ export declare class RegionSubtagScope extends SubtagScopeWithRange<'region', RegionSubtag, Items.RegisteredRegion> {
56
+ constructor();
57
+ }
58
+ /**
59
+ * @public
60
+ */
61
+ export declare class VariantSubtagScope extends SubtagScope<'variant', VariantSubtag, Items.RegisteredVariant> {
62
+ constructor();
63
+ }
64
+ /**
65
+ * @public
66
+ */
67
+ export declare class GrandfatheredTagScope extends TagScope<'grandfathered', GrandfatheredTag, Items.RegisteredGrandfatheredTag> {
68
+ constructor();
69
+ }
70
+ /**
71
+ * @public
72
+ */
73
+ export declare class RedundantTagScope extends TagScope<'redundant', RedundantTag, Items.RegisteredRedundantTag> {
74
+ constructor();
75
+ }
76
+ export {};
77
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/iana/language-subtags/scope.ts"],"names":[],"mappings":"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"}