@fgv/ts-bcp47 0.9.6 → 2.0.2-alpha.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 (554) hide show
  1. package/dist/ts-bcp47.d.ts +2554 -0
  2. package/dist/tsdoc-metadata.json +11 -0
  3. package/lib/data/bcp/overrides.json +20 -0
  4. package/lib/data/iana/language-subtags.json +57439 -0
  5. package/{data → lib/data}/iana/language-tag-extensions.json +2 -6
  6. package/lib/data/unsd/m49.json +3723 -0
  7. package/lib/index.d.ts +6 -0
  8. package/lib/index.d.ts.map +1 -0
  9. package/lib/index.js +57 -0
  10. package/lib/index.js.map +1 -0
  11. package/lib/packlets/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
  12. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/converters.js +2 -1
  13. package/lib/packlets/bcp47/bcp47Subtags/converters.js.map +1 -0
  14. package/lib/packlets/bcp47/bcp47Subtags/index.d.ts.map +1 -0
  15. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/index.js +1 -1
  16. package/lib/packlets/bcp47/bcp47Subtags/index.js.map +1 -0
  17. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/model.d.ts +3 -1
  18. package/lib/packlets/bcp47/bcp47Subtags/model.d.ts.map +1 -0
  19. package/lib/packlets/bcp47/bcp47Subtags/model.js +24 -0
  20. package/lib/packlets/bcp47/bcp47Subtags/model.js.map +1 -0
  21. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/validate.d.ts +2 -2
  22. package/lib/packlets/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
  23. package/lib/packlets/bcp47/bcp47Subtags/validate.js +74 -0
  24. package/lib/packlets/bcp47/bcp47Subtags/validate.js.map +1 -0
  25. package/{bcp47 → lib/packlets/bcp47}/common.d.ts +4 -4
  26. package/lib/packlets/bcp47/common.d.ts.map +1 -0
  27. package/lib/packlets/bcp47/common.js +59 -0
  28. package/lib/packlets/bcp47/common.js.map +1 -0
  29. package/{bcp47 → lib/packlets/bcp47}/helpers.d.ts +8 -8
  30. package/lib/packlets/bcp47/helpers.d.ts.map +1 -0
  31. package/lib/packlets/bcp47/helpers.js +103 -0
  32. package/lib/packlets/bcp47/helpers.js.map +1 -0
  33. package/lib/packlets/bcp47/index.d.ts +10 -0
  34. package/lib/packlets/bcp47/index.d.ts.map +1 -0
  35. package/lib/packlets/bcp47/index.js +68 -0
  36. package/lib/packlets/bcp47/index.js.map +1 -0
  37. package/{bcp47 → lib/packlets/bcp47}/languageRegistryData.d.ts +26 -27
  38. package/lib/packlets/bcp47/languageRegistryData.d.ts.map +1 -0
  39. package/lib/packlets/bcp47/languageRegistryData.js +206 -0
  40. package/lib/packlets/bcp47/languageRegistryData.js.map +1 -0
  41. package/{bcp47 → lib/packlets/bcp47}/languageTag.d.ts +12 -13
  42. package/lib/packlets/bcp47/languageTag.d.ts.map +1 -0
  43. package/lib/packlets/bcp47/languageTag.js +390 -0
  44. package/lib/packlets/bcp47/languageTag.js.map +1 -0
  45. package/{bcp47 → lib/packlets/bcp47}/languageTagParser.d.ts +13 -14
  46. package/lib/packlets/bcp47/languageTagParser.d.ts.map +1 -0
  47. package/lib/packlets/bcp47/languageTagParser.js +303 -0
  48. package/lib/packlets/bcp47/languageTagParser.js.map +1 -0
  49. package/{bcp47 → lib/packlets/bcp47}/match/chooser.d.ts +8 -8
  50. package/lib/packlets/bcp47/match/chooser.d.ts.map +1 -0
  51. package/lib/packlets/bcp47/match/chooser.js +92 -0
  52. package/lib/packlets/bcp47/match/chooser.js.map +1 -0
  53. package/lib/packlets/bcp47/match/common.d.ts.map +1 -0
  54. package/lib/packlets/bcp47/match/common.js +52 -0
  55. package/lib/packlets/bcp47/match/common.js.map +1 -0
  56. package/lib/packlets/bcp47/match/index.d.ts +4 -0
  57. package/lib/packlets/bcp47/match/index.d.ts.map +1 -0
  58. package/lib/packlets/bcp47/match/index.js +45 -0
  59. package/lib/packlets/bcp47/match/index.js.map +1 -0
  60. package/lib/packlets/bcp47/match/similarity.d.ts.map +1 -0
  61. package/lib/packlets/bcp47/match/similarity.js +230 -0
  62. package/lib/packlets/bcp47/match/similarity.js.map +1 -0
  63. package/lib/packlets/bcp47/normalization/baseNormalizer.d.ts +35 -0
  64. package/lib/packlets/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
  65. package/lib/packlets/bcp47/normalization/baseNormalizer.js +116 -0
  66. package/lib/packlets/bcp47/normalization/baseNormalizer.js.map +1 -0
  67. package/lib/packlets/bcp47/normalization/canonicalNormalizer.d.ts +22 -0
  68. package/lib/packlets/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
  69. package/lib/packlets/bcp47/normalization/canonicalNormalizer.js +113 -0
  70. package/lib/packlets/bcp47/normalization/canonicalNormalizer.js.map +1 -0
  71. package/{bcp47 → lib/packlets/bcp47}/normalization/common.d.ts +1 -1
  72. package/lib/packlets/bcp47/normalization/common.d.ts.map +1 -0
  73. package/lib/packlets/bcp47/normalization/common.js +82 -0
  74. package/lib/packlets/bcp47/normalization/common.js.map +1 -0
  75. package/lib/packlets/bcp47/normalization/index.d.ts.map +1 -0
  76. package/{bcp47 → lib/packlets/bcp47}/normalization/index.js +1 -1
  77. package/lib/packlets/bcp47/normalization/index.js.map +1 -0
  78. package/{bcp47 → lib/packlets/bcp47}/normalization/normalizeTag.d.ts +6 -6
  79. package/lib/packlets/bcp47/normalization/normalizeTag.d.ts.map +1 -0
  80. package/lib/packlets/bcp47/normalization/normalizeTag.js +105 -0
  81. package/lib/packlets/bcp47/normalization/normalizeTag.js.map +1 -0
  82. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.d.ts +27 -0
  83. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
  84. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.js +204 -0
  85. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.js.map +1 -0
  86. package/lib/packlets/bcp47/overrides/converters.d.ts +19 -0
  87. package/lib/packlets/bcp47/overrides/converters.d.ts.map +1 -0
  88. package/lib/packlets/bcp47/overrides/converters.js +76 -0
  89. package/lib/packlets/bcp47/overrides/converters.js.map +1 -0
  90. package/lib/packlets/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
  91. package/lib/packlets/bcp47/overrides/defaultRegistries.js +42 -0
  92. package/lib/packlets/bcp47/overrides/defaultRegistries.js.map +1 -0
  93. package/lib/packlets/bcp47/overrides/index.d.ts.map +1 -0
  94. package/lib/packlets/bcp47/overrides/index.js +30 -0
  95. package/lib/packlets/bcp47/overrides/index.js.map +1 -0
  96. package/lib/packlets/bcp47/overrides/model.d.ts +11 -0
  97. package/lib/packlets/bcp47/overrides/model.d.ts.map +1 -0
  98. package/lib/packlets/bcp47/overrides/model.js +24 -0
  99. package/lib/packlets/bcp47/overrides/model.js.map +1 -0
  100. package/{bcp47 → lib/packlets/bcp47}/overrides/overridesRegistry.d.ts +8 -8
  101. package/lib/packlets/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
  102. package/lib/packlets/bcp47/overrides/overridesRegistry.js +113 -0
  103. package/lib/packlets/bcp47/overrides/overridesRegistry.js.map +1 -0
  104. package/lib/packlets/bcp47/validation/baseValidator.d.ts +35 -0
  105. package/lib/packlets/bcp47/validation/baseValidator.d.ts.map +1 -0
  106. package/lib/packlets/bcp47/validation/baseValidator.js +113 -0
  107. package/lib/packlets/bcp47/validation/baseValidator.js.map +1 -0
  108. package/{bcp47 → lib/packlets/bcp47}/validation/common.d.ts +1 -1
  109. package/lib/packlets/bcp47/validation/common.d.ts.map +1 -0
  110. package/lib/packlets/bcp47/validation/common.js +84 -0
  111. package/lib/packlets/bcp47/validation/common.js.map +1 -0
  112. package/lib/packlets/bcp47/validation/index.d.ts.map +1 -0
  113. package/{bcp47 → lib/packlets/bcp47}/validation/index.js +1 -1
  114. package/lib/packlets/bcp47/validation/index.js.map +1 -0
  115. package/lib/packlets/bcp47/validation/isCanonical.d.ts +22 -0
  116. package/lib/packlets/bcp47/validation/isCanonical.d.ts.map +1 -0
  117. package/lib/packlets/bcp47/validation/isCanonical.js +106 -0
  118. package/lib/packlets/bcp47/validation/isCanonical.js.map +1 -0
  119. package/{bcp47 → lib/packlets/bcp47}/validation/isInPreferredForm.d.ts +4 -4
  120. package/lib/packlets/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
  121. package/lib/packlets/bcp47/validation/isInPreferredForm.js +73 -0
  122. package/lib/packlets/bcp47/validation/isInPreferredForm.js.map +1 -0
  123. package/lib/packlets/bcp47/validation/isStrictlyValid.d.ts +18 -0
  124. package/lib/packlets/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
  125. package/lib/packlets/bcp47/validation/isStrictlyValid.js +98 -0
  126. package/lib/packlets/bcp47/validation/isStrictlyValid.js.map +1 -0
  127. package/lib/packlets/bcp47/validation/isValid.d.ts +24 -0
  128. package/lib/packlets/bcp47/validation/isValid.d.ts.map +1 -0
  129. package/lib/packlets/bcp47/validation/isValid.js +119 -0
  130. package/lib/packlets/bcp47/validation/isValid.js.map +1 -0
  131. package/lib/packlets/bcp47/validation/isWellFormed.d.ts +22 -0
  132. package/lib/packlets/bcp47/validation/isWellFormed.d.ts.map +1 -0
  133. package/lib/packlets/bcp47/validation/isWellFormed.js +102 -0
  134. package/lib/packlets/bcp47/validation/isWellFormed.js.map +1 -0
  135. package/{bcp47 → lib/packlets/bcp47}/validation/validateTag.d.ts +9 -9
  136. package/lib/packlets/bcp47/validation/validateTag.d.ts.map +1 -0
  137. package/lib/packlets/bcp47/validation/validateTag.js +159 -0
  138. package/lib/packlets/bcp47/validation/validateTag.js.map +1 -0
  139. package/{iana → lib/packlets/iana}/common/converters.d.ts +2 -2
  140. package/lib/packlets/iana/common/converters.d.ts.map +1 -0
  141. package/lib/packlets/iana/common/converters.js +85 -0
  142. package/lib/packlets/iana/common/converters.js.map +1 -0
  143. package/{iana → lib/packlets/iana}/common/model.d.ts +1 -1
  144. package/lib/packlets/iana/common/model.d.ts.map +1 -0
  145. package/lib/packlets/iana/common/model.js +24 -0
  146. package/lib/packlets/iana/common/model.js.map +1 -0
  147. package/lib/packlets/iana/common/registeredItems.d.ts.map +1 -0
  148. package/lib/packlets/iana/common/registeredItems.js +124 -0
  149. package/lib/packlets/iana/common/registeredItems.js.map +1 -0
  150. package/lib/packlets/iana/common/utils.d.ts.map +1 -0
  151. package/lib/packlets/iana/common/utils.js +34 -0
  152. package/lib/packlets/iana/common/utils.js.map +1 -0
  153. package/{iana → lib/packlets/iana}/common/validate.d.ts +1 -1
  154. package/lib/packlets/iana/common/validate.d.ts.map +1 -0
  155. package/lib/packlets/iana/common/validate.js +62 -0
  156. package/lib/packlets/iana/common/validate.js.map +1 -0
  157. package/lib/packlets/iana/converters.d.ts.map +1 -0
  158. package/{iana → lib/packlets/iana}/converters.js +1 -1
  159. package/lib/packlets/iana/converters.js.map +1 -0
  160. package/lib/packlets/iana/defaultRegistries.d.ts.map +1 -0
  161. package/lib/packlets/iana/defaultRegistries.js +42 -0
  162. package/lib/packlets/iana/defaultRegistries.js.map +1 -0
  163. package/{iana → lib/packlets/iana}/index.d.ts +4 -2
  164. package/lib/packlets/iana/index.d.ts.map +1 -0
  165. package/{iana/jar/language-subtags/tags → lib/packlets/iana}/index.js +18 -6
  166. package/lib/packlets/iana/index.js.map +1 -0
  167. package/lib/packlets/iana/jar/converters.d.ts.map +1 -0
  168. package/{iana → lib/packlets/iana}/jar/converters.js +1 -1
  169. package/lib/packlets/iana/jar/converters.js.map +1 -0
  170. package/lib/packlets/iana/jar/index.d.ts +5 -0
  171. package/lib/packlets/iana/jar/index.d.ts.map +1 -0
  172. package/{unsd/csv → lib/packlets/iana/jar}/index.js +4 -2
  173. package/lib/packlets/iana/jar/index.js.map +1 -0
  174. package/{iana → lib/packlets/iana}/jar/jarConverters.d.ts +5 -5
  175. package/lib/packlets/iana/jar/jarConverters.d.ts.map +1 -0
  176. package/lib/packlets/iana/jar/jarConverters.js +86 -0
  177. package/lib/packlets/iana/jar/jarConverters.js.map +1 -0
  178. package/{iana → lib/packlets/iana}/jar/jarModel.d.ts +1 -1
  179. package/lib/packlets/iana/jar/jarModel.d.ts.map +1 -0
  180. package/lib/packlets/iana/jar/jarModel.js +24 -0
  181. package/lib/packlets/iana/jar/jarModel.js.map +1 -0
  182. package/lib/packlets/iana/jar/language-subtags/converters.d.ts.map +1 -0
  183. package/{iana → lib/packlets/iana}/jar/language-subtags/converters.js +1 -1
  184. package/lib/packlets/iana/jar/language-subtags/converters.js.map +1 -0
  185. package/lib/packlets/iana/jar/language-subtags/index.d.ts +5 -0
  186. package/lib/packlets/iana/jar/language-subtags/index.d.ts.map +1 -0
  187. package/{iana/jar/language-subtags/registry → lib/packlets/iana/jar/language-subtags}/index.js +29 -28
  188. package/lib/packlets/iana/jar/language-subtags/index.js.map +1 -0
  189. package/lib/packlets/iana/jar/language-subtags/model.d.ts.map +1 -0
  190. package/{iana → lib/packlets/iana}/jar/language-subtags/model.js +1 -1
  191. package/lib/packlets/iana/jar/language-subtags/model.js.map +1 -0
  192. package/lib/packlets/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
  193. package/lib/packlets/iana/jar/language-subtags/registry/converters.js +59 -0
  194. package/lib/packlets/iana/jar/language-subtags/registry/converters.js.map +1 -0
  195. package/lib/packlets/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
  196. package/{iana/jar/language-subtags → lib/packlets/iana/jar/language-subtags/registry}/index.js +23 -22
  197. package/lib/packlets/iana/jar/language-subtags/registry/index.js.map +1 -0
  198. package/{iana → lib/packlets/iana}/jar/language-subtags/registry/model.d.ts +12 -12
  199. package/lib/packlets/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
  200. package/lib/packlets/iana/jar/language-subtags/registry/model.js +46 -0
  201. package/lib/packlets/iana/jar/language-subtags/registry/model.js.map +1 -0
  202. package/lib/packlets/iana/jar/language-subtags/tags/converters.d.ts +55 -0
  203. package/lib/packlets/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
  204. package/lib/packlets/iana/jar/language-subtags/tags/converters.js +129 -0
  205. package/lib/packlets/iana/jar/language-subtags/tags/converters.js.map +1 -0
  206. package/lib/packlets/iana/jar/language-subtags/tags/index.d.ts +6 -0
  207. package/lib/packlets/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
  208. package/lib/packlets/iana/jar/language-subtags/tags/index.js +58 -0
  209. package/lib/packlets/iana/jar/language-subtags/tags/index.js.map +1 -0
  210. package/lib/packlets/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
  211. package/lib/packlets/iana/jar/language-subtags/tags/model.js +24 -0
  212. package/lib/packlets/iana/jar/language-subtags/tags/model.js.map +1 -0
  213. package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
  214. package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.js +70 -0
  215. package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.js.map +1 -0
  216. package/lib/packlets/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
  217. package/lib/packlets/iana/jar/language-subtags/tags/validate.js +88 -0
  218. package/lib/packlets/iana/jar/language-subtags/tags/validate.js.map +1 -0
  219. package/lib/packlets/iana/jar/model.d.ts.map +1 -0
  220. package/{iana → lib/packlets/iana}/jar/model.js +1 -1
  221. package/lib/packlets/iana/jar/model.js.map +1 -0
  222. package/lib/packlets/iana/language-subtags/common.d.ts.map +1 -0
  223. package/lib/packlets/iana/language-subtags/common.js +24 -0
  224. package/lib/packlets/iana/language-subtags/common.js.map +1 -0
  225. package/lib/packlets/iana/language-subtags/converters.d.ts +52 -0
  226. package/lib/packlets/iana/language-subtags/converters.d.ts.map +1 -0
  227. package/lib/packlets/iana/language-subtags/converters.js +209 -0
  228. package/lib/packlets/iana/language-subtags/converters.js.map +1 -0
  229. package/{iana → lib/packlets/iana}/language-subtags/index.d.ts +4 -3
  230. package/lib/packlets/iana/language-subtags/index.d.ts.map +1 -0
  231. package/{iana → lib/packlets/iana}/language-subtags/index.js +10 -8
  232. package/lib/packlets/iana/language-subtags/index.js.map +1 -0
  233. package/{iana → lib/packlets/iana}/language-subtags/jarConverters.d.ts +8 -8
  234. package/lib/packlets/iana/language-subtags/jarConverters.d.ts.map +1 -0
  235. package/lib/packlets/iana/language-subtags/jarConverters.js +237 -0
  236. package/lib/packlets/iana/language-subtags/jarConverters.js.map +1 -0
  237. package/{iana → lib/packlets/iana}/language-subtags/model.d.ts +15 -15
  238. package/lib/packlets/iana/language-subtags/model.d.ts.map +1 -0
  239. package/lib/packlets/iana/language-subtags/model.js +24 -0
  240. package/lib/packlets/iana/language-subtags/model.js.map +1 -0
  241. package/{iana → lib/packlets/iana}/language-subtags/scope.d.ts +12 -12
  242. package/lib/packlets/iana/language-subtags/scope.d.ts.map +1 -0
  243. package/lib/packlets/iana/language-subtags/scope.js +179 -0
  244. package/lib/packlets/iana/language-subtags/scope.js.map +1 -0
  245. package/{iana → lib/packlets/iana}/language-subtags/subtagRegistry.d.ts +1 -1
  246. package/lib/packlets/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
  247. package/lib/packlets/iana/language-subtags/subtagRegistry.js +150 -0
  248. package/lib/packlets/iana/language-subtags/subtagRegistry.js.map +1 -0
  249. package/lib/packlets/iana/language-subtags/validate.d.ts.map +1 -0
  250. package/{iana → lib/packlets/iana}/language-subtags/validate.js +1 -1
  251. package/lib/packlets/iana/language-subtags/validate.js.map +1 -0
  252. package/lib/packlets/iana/language-tag-extensions/converters.d.ts +22 -0
  253. package/lib/packlets/iana/language-tag-extensions/converters.d.ts.map +1 -0
  254. package/lib/packlets/iana/language-tag-extensions/converters.js +86 -0
  255. package/lib/packlets/iana/language-tag-extensions/converters.js.map +1 -0
  256. package/{iana → lib/packlets/iana}/language-tag-extensions/extensionsRegistry.d.ts +2 -2
  257. package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
  258. package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.js +105 -0
  259. package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.js.map +1 -0
  260. package/{iana → lib/packlets/iana}/language-tag-extensions/extensionsScope.d.ts +3 -3
  261. package/lib/packlets/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
  262. package/lib/packlets/iana/language-tag-extensions/extensionsScope.js +77 -0
  263. package/lib/packlets/iana/language-tag-extensions/extensionsScope.js.map +1 -0
  264. package/{iana → lib/packlets/iana}/language-tag-extensions/index.d.ts +3 -2
  265. package/lib/packlets/iana/language-tag-extensions/index.d.ts.map +1 -0
  266. package/{iana → lib/packlets/iana}/language-tag-extensions/index.js +6 -4
  267. package/lib/packlets/iana/language-tag-extensions/index.js.map +1 -0
  268. package/{iana → lib/packlets/iana}/language-tag-extensions/jarConverters.d.ts +2 -3
  269. package/lib/packlets/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
  270. package/lib/packlets/iana/language-tag-extensions/jarConverters.js +79 -0
  271. package/lib/packlets/iana/language-tag-extensions/jarConverters.js.map +1 -0
  272. package/{iana → lib/packlets/iana}/language-tag-extensions/model.d.ts +5 -6
  273. package/lib/packlets/iana/language-tag-extensions/model.d.ts.map +1 -0
  274. package/lib/packlets/iana/language-tag-extensions/model.js +25 -0
  275. package/lib/packlets/iana/language-tag-extensions/model.js.map +1 -0
  276. package/{iana → lib/packlets/iana}/language-tag-extensions/validate.d.ts +2 -2
  277. package/lib/packlets/iana/language-tag-extensions/validate.d.ts.map +1 -0
  278. package/lib/packlets/iana/language-tag-extensions/validate.js +36 -0
  279. package/lib/packlets/iana/language-tag-extensions/validate.js.map +1 -0
  280. package/lib/packlets/iana/languageRegistries.d.ts.map +1 -0
  281. package/lib/packlets/iana/languageRegistries.js +56 -0
  282. package/lib/packlets/iana/languageRegistries.js.map +1 -0
  283. package/lib/packlets/iana/model.d.ts.map +1 -0
  284. package/{iana → lib/packlets/iana}/model.js +1 -1
  285. package/lib/packlets/iana/model.js.map +1 -0
  286. package/lib/packlets/iana/validate.d.ts.map +1 -0
  287. package/{iana → lib/packlets/iana}/validate.js +1 -1
  288. package/lib/packlets/iana/validate.js.map +1 -0
  289. package/lib/packlets/unsd/areas.d.ts +29 -0
  290. package/lib/packlets/unsd/areas.d.ts.map +1 -0
  291. package/lib/packlets/unsd/areas.js +96 -0
  292. package/lib/packlets/unsd/areas.js.map +1 -0
  293. package/lib/packlets/unsd/common.d.ts +49 -0
  294. package/lib/packlets/unsd/common.d.ts.map +1 -0
  295. package/lib/packlets/unsd/common.js +24 -0
  296. package/lib/packlets/unsd/common.js.map +1 -0
  297. package/{unsd → lib/packlets/unsd}/csv/converters.d.ts +7 -4
  298. package/lib/packlets/unsd/csv/converters.d.ts.map +1 -0
  299. package/lib/packlets/unsd/csv/converters.js +78 -0
  300. package/lib/packlets/unsd/csv/converters.js.map +1 -0
  301. package/lib/packlets/unsd/csv/index.d.ts.map +1 -0
  302. package/{iana/jar → lib/packlets/unsd/csv}/index.js +1 -1
  303. package/lib/packlets/unsd/csv/index.js.map +1 -0
  304. package/lib/packlets/unsd/csv/model.d.ts +22 -0
  305. package/lib/packlets/unsd/csv/model.d.ts.map +1 -0
  306. package/lib/packlets/unsd/csv/model.js +24 -0
  307. package/lib/packlets/unsd/csv/model.js.map +1 -0
  308. package/lib/packlets/unsd/defaultRegistries.d.ts.map +1 -0
  309. package/lib/packlets/unsd/defaultRegistries.js +42 -0
  310. package/lib/packlets/unsd/defaultRegistries.js.map +1 -0
  311. package/{unsd → lib/packlets/unsd}/index.d.ts +2 -0
  312. package/lib/packlets/unsd/index.d.ts.map +1 -0
  313. package/lib/packlets/unsd/index.js +58 -0
  314. package/lib/packlets/unsd/index.js.map +1 -0
  315. package/{unsd → lib/packlets/unsd}/regionCodes.d.ts +7 -7
  316. package/lib/packlets/unsd/regionCodes.d.ts.map +1 -0
  317. package/lib/packlets/unsd/regionCodes.js +122 -0
  318. package/lib/packlets/unsd/regionCodes.js.map +1 -0
  319. package/lib/packlets/unsd/regions.d.ts +21 -0
  320. package/lib/packlets/unsd/regions.d.ts.map +1 -0
  321. package/lib/packlets/unsd/regions.js +77 -0
  322. package/lib/packlets/unsd/regions.js.map +1 -0
  323. package/lib/packlets/utils/index.d.ts.map +1 -0
  324. package/{utils → lib/packlets/utils}/index.js +1 -1
  325. package/lib/packlets/utils/index.js.map +1 -0
  326. package/lib/packlets/utils/jsonHelpers.d.ts.map +1 -0
  327. package/lib/packlets/utils/jsonHelpers.js +29 -0
  328. package/lib/packlets/utils/jsonHelpers.js.map +1 -0
  329. package/lib/packlets/utils/public.d.ts +2 -0
  330. package/lib/packlets/utils/public.d.ts.map +1 -0
  331. package/lib/packlets/utils/public.js +28 -0
  332. package/lib/packlets/utils/public.js.map +1 -0
  333. package/{utils → lib/packlets/utils}/validationHelpers.d.ts +9 -10
  334. package/lib/packlets/utils/validationHelpers.d.ts.map +1 -0
  335. package/lib/packlets/utils/validationHelpers.js +120 -0
  336. package/lib/packlets/utils/validationHelpers.js.map +1 -0
  337. package/package.json +73 -67
  338. package/bcp47/bcp47Subtags/converters.d.ts.map +0 -1
  339. package/bcp47/bcp47Subtags/index.d.ts.map +0 -1
  340. package/bcp47/bcp47Subtags/model.d.ts.map +0 -1
  341. package/bcp47/bcp47Subtags/model.js +0 -24
  342. package/bcp47/bcp47Subtags/validate.d.ts.map +0 -1
  343. package/bcp47/bcp47Subtags/validate.js +0 -74
  344. package/bcp47/common.d.ts.map +0 -1
  345. package/bcp47/common.js +0 -59
  346. package/bcp47/helpers.d.ts.map +0 -1
  347. package/bcp47/helpers.js +0 -103
  348. package/bcp47/index.d.ts +0 -7
  349. package/bcp47/index.d.ts.map +0 -1
  350. package/bcp47/index.js +0 -27
  351. package/bcp47/languageRegistryData.d.ts.map +0 -1
  352. package/bcp47/languageRegistryData.js +0 -209
  353. package/bcp47/languageTag.d.ts.map +0 -1
  354. package/bcp47/languageTag.js +0 -390
  355. package/bcp47/languageTagParser.d.ts.map +0 -1
  356. package/bcp47/languageTagParser.js +0 -302
  357. package/bcp47/match/chooser.d.ts.map +0 -1
  358. package/bcp47/match/chooser.js +0 -92
  359. package/bcp47/match/common.d.ts.map +0 -1
  360. package/bcp47/match/common.js +0 -51
  361. package/bcp47/match/index.d.ts +0 -4
  362. package/bcp47/match/index.d.ts.map +0 -1
  363. package/bcp47/match/index.js +0 -45
  364. package/bcp47/match/similarity.d.ts.map +0 -1
  365. package/bcp47/match/similarity.js +0 -230
  366. package/bcp47/normalization/baseNormalizer.d.ts +0 -36
  367. package/bcp47/normalization/baseNormalizer.d.ts.map +0 -1
  368. package/bcp47/normalization/baseNormalizer.js +0 -114
  369. package/bcp47/normalization/canonicalNormalizer.d.ts +0 -22
  370. package/bcp47/normalization/canonicalNormalizer.d.ts.map +0 -1
  371. package/bcp47/normalization/canonicalNormalizer.js +0 -113
  372. package/bcp47/normalization/common.d.ts.map +0 -1
  373. package/bcp47/normalization/common.js +0 -82
  374. package/bcp47/normalization/index.d.ts.map +0 -1
  375. package/bcp47/normalization/normalizeTag.d.ts.map +0 -1
  376. package/bcp47/normalization/normalizeTag.js +0 -105
  377. package/bcp47/normalization/preferredTagNormalizer.d.ts +0 -27
  378. package/bcp47/normalization/preferredTagNormalizer.d.ts.map +0 -1
  379. package/bcp47/normalization/preferredTagNormalizer.js +0 -209
  380. package/bcp47/overrides/converters.d.ts +0 -19
  381. package/bcp47/overrides/converters.d.ts.map +0 -1
  382. package/bcp47/overrides/converters.js +0 -75
  383. package/bcp47/overrides/defaultRegistries.d.ts.map +0 -1
  384. package/bcp47/overrides/defaultRegistries.js +0 -42
  385. package/bcp47/overrides/index.d.ts.map +0 -1
  386. package/bcp47/overrides/index.js +0 -30
  387. package/bcp47/overrides/model.d.ts +0 -11
  388. package/bcp47/overrides/model.d.ts.map +0 -1
  389. package/bcp47/overrides/model.js +0 -24
  390. package/bcp47/overrides/overridesRegistry.d.ts.map +0 -1
  391. package/bcp47/overrides/overridesRegistry.js +0 -112
  392. package/bcp47/validation/baseValidator.d.ts +0 -35
  393. package/bcp47/validation/baseValidator.d.ts.map +0 -1
  394. package/bcp47/validation/baseValidator.js +0 -111
  395. package/bcp47/validation/common.d.ts.map +0 -1
  396. package/bcp47/validation/common.js +0 -84
  397. package/bcp47/validation/index.d.ts.map +0 -1
  398. package/bcp47/validation/isCanonical.d.ts +0 -22
  399. package/bcp47/validation/isCanonical.d.ts.map +0 -1
  400. package/bcp47/validation/isCanonical.js +0 -104
  401. package/bcp47/validation/isInPreferredForm.d.ts.map +0 -1
  402. package/bcp47/validation/isInPreferredForm.js +0 -73
  403. package/bcp47/validation/isStrictlyValid.d.ts +0 -18
  404. package/bcp47/validation/isStrictlyValid.d.ts.map +0 -1
  405. package/bcp47/validation/isStrictlyValid.js +0 -98
  406. package/bcp47/validation/isValid.d.ts +0 -24
  407. package/bcp47/validation/isValid.d.ts.map +0 -1
  408. package/bcp47/validation/isValid.js +0 -115
  409. package/bcp47/validation/isWellFormed.d.ts +0 -22
  410. package/bcp47/validation/isWellFormed.d.ts.map +0 -1
  411. package/bcp47/validation/isWellFormed.js +0 -98
  412. package/bcp47/validation/validateTag.d.ts.map +0 -1
  413. package/bcp47/validation/validateTag.js +0 -159
  414. package/data/bcp/overrides.json +0 -21
  415. package/data/iana/language-subtags.json +0 -77295
  416. package/data/unsd/m49.json +0 -251
  417. package/iana/common/converters.d.ts.map +0 -1
  418. package/iana/common/converters.js +0 -84
  419. package/iana/common/model.d.ts.map +0 -1
  420. package/iana/common/model.js +0 -24
  421. package/iana/common/registeredItems.d.ts.map +0 -1
  422. package/iana/common/registeredItems.js +0 -124
  423. package/iana/common/utils.d.ts.map +0 -1
  424. package/iana/common/utils.js +0 -34
  425. package/iana/common/validate.d.ts.map +0 -1
  426. package/iana/common/validate.js +0 -61
  427. package/iana/converters.d.ts.map +0 -1
  428. package/iana/defaultRegistries.d.ts.map +0 -1
  429. package/iana/defaultRegistries.js +0 -42
  430. package/iana/index.d.ts.map +0 -1
  431. package/iana/index.js +0 -64
  432. package/iana/jar/converters.d.ts.map +0 -1
  433. package/iana/jar/index.d.ts.map +0 -1
  434. package/iana/jar/jarConverters.d.ts.map +0 -1
  435. package/iana/jar/jarConverters.js +0 -85
  436. package/iana/jar/jarModel.d.ts.map +0 -1
  437. package/iana/jar/jarModel.js +0 -24
  438. package/iana/jar/language-subtags/converters.d.ts.map +0 -1
  439. package/iana/jar/language-subtags/index.d.ts.map +0 -1
  440. package/iana/jar/language-subtags/model.d.ts.map +0 -1
  441. package/iana/jar/language-subtags/registry/converters.d.ts.map +0 -1
  442. package/iana/jar/language-subtags/registry/converters.js +0 -58
  443. package/iana/jar/language-subtags/registry/index.d.ts +0 -4
  444. package/iana/jar/language-subtags/registry/index.d.ts.map +0 -1
  445. package/iana/jar/language-subtags/registry/model.d.ts.map +0 -1
  446. package/iana/jar/language-subtags/registry/model.js +0 -41
  447. package/iana/jar/language-subtags/tags/converters.d.ts +0 -55
  448. package/iana/jar/language-subtags/tags/converters.d.ts.map +0 -1
  449. package/iana/jar/language-subtags/tags/converters.js +0 -128
  450. package/iana/jar/language-subtags/tags/index.d.ts +0 -5
  451. package/iana/jar/language-subtags/tags/index.d.ts.map +0 -1
  452. package/iana/jar/language-subtags/tags/model.d.ts.map +0 -1
  453. package/iana/jar/language-subtags/tags/model.js +0 -24
  454. package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +0 -1
  455. package/iana/jar/language-subtags/tags/tagValidation.js +0 -70
  456. package/iana/jar/language-subtags/tags/validate.d.ts.map +0 -1
  457. package/iana/jar/language-subtags/tags/validate.js +0 -87
  458. package/iana/jar/model.d.ts.map +0 -1
  459. package/iana/language-subtags/common.d.ts.map +0 -1
  460. package/iana/language-subtags/common.js +0 -24
  461. package/iana/language-subtags/converters.d.ts +0 -52
  462. package/iana/language-subtags/converters.d.ts.map +0 -1
  463. package/iana/language-subtags/converters.js +0 -200
  464. package/iana/language-subtags/index.d.ts.map +0 -1
  465. package/iana/language-subtags/jarConverters.d.ts.map +0 -1
  466. package/iana/language-subtags/jarConverters.js +0 -213
  467. package/iana/language-subtags/model.d.ts.map +0 -1
  468. package/iana/language-subtags/model.js +0 -24
  469. package/iana/language-subtags/scope.d.ts.map +0 -1
  470. package/iana/language-subtags/scope.js +0 -179
  471. package/iana/language-subtags/subtagRegistry.d.ts.map +0 -1
  472. package/iana/language-subtags/subtagRegistry.js +0 -149
  473. package/iana/language-subtags/validate.d.ts.map +0 -1
  474. package/iana/language-tag-extensions/converters.d.ts +0 -23
  475. package/iana/language-tag-extensions/converters.d.ts.map +0 -1
  476. package/iana/language-tag-extensions/converters.js +0 -87
  477. package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +0 -1
  478. package/iana/language-tag-extensions/extensionsRegistry.js +0 -104
  479. package/iana/language-tag-extensions/extensionsScope.d.ts.map +0 -1
  480. package/iana/language-tag-extensions/extensionsScope.js +0 -77
  481. package/iana/language-tag-extensions/index.d.ts.map +0 -1
  482. package/iana/language-tag-extensions/jarConverters.d.ts.map +0 -1
  483. package/iana/language-tag-extensions/jarConverters.js +0 -102
  484. package/iana/language-tag-extensions/model.d.ts.map +0 -1
  485. package/iana/language-tag-extensions/model.js +0 -24
  486. package/iana/language-tag-extensions/validate.d.ts.map +0 -1
  487. package/iana/language-tag-extensions/validate.js +0 -36
  488. package/iana/languageRegistries.d.ts.map +0 -1
  489. package/iana/languageRegistries.js +0 -56
  490. package/iana/model.d.ts.map +0 -1
  491. package/iana/validate.d.ts.map +0 -1
  492. package/index.d.ts +0 -6
  493. package/index.d.ts.map +0 -1
  494. package/index.js +0 -56
  495. package/unsd/areas.d.ts +0 -29
  496. package/unsd/areas.d.ts.map +0 -1
  497. package/unsd/areas.js +0 -96
  498. package/unsd/common.d.ts +0 -49
  499. package/unsd/common.d.ts.map +0 -1
  500. package/unsd/common.js +0 -24
  501. package/unsd/csv/converters.d.ts.map +0 -1
  502. package/unsd/csv/converters.js +0 -70
  503. package/unsd/csv/index.d.ts +0 -4
  504. package/unsd/csv/index.d.ts.map +0 -1
  505. package/unsd/csv/model.d.ts +0 -22
  506. package/unsd/csv/model.d.ts.map +0 -1
  507. package/unsd/csv/model.js +0 -24
  508. package/unsd/defaultRegistries.d.ts.map +0 -1
  509. package/unsd/defaultRegistries.js +0 -42
  510. package/unsd/index.d.ts.map +0 -1
  511. package/unsd/index.js +0 -44
  512. package/unsd/regionCodes.d.ts.map +0 -1
  513. package/unsd/regionCodes.js +0 -121
  514. package/unsd/regions.d.ts +0 -21
  515. package/unsd/regions.d.ts.map +0 -1
  516. package/unsd/regions.js +0 -77
  517. package/utils/index.d.ts.map +0 -1
  518. package/utils/jsonHelpers.d.ts.map +0 -1
  519. package/utils/jsonHelpers.js +0 -29
  520. package/utils/public.d.ts +0 -2
  521. package/utils/public.d.ts.map +0 -1
  522. package/utils/public.js +0 -28
  523. package/utils/validationHelpers.d.ts.map +0 -1
  524. package/utils/validationHelpers.js +0 -120
  525. /package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/converters.d.ts +0 -0
  526. /package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/index.d.ts +0 -0
  527. /package/{bcp47 → lib/packlets/bcp47}/match/common.d.ts +0 -0
  528. /package/{bcp47 → lib/packlets/bcp47}/match/similarity.d.ts +0 -0
  529. /package/{bcp47 → lib/packlets/bcp47}/normalization/index.d.ts +0 -0
  530. /package/{bcp47 → lib/packlets/bcp47}/overrides/defaultRegistries.d.ts +0 -0
  531. /package/{bcp47 → lib/packlets/bcp47}/overrides/index.d.ts +0 -0
  532. /package/{bcp47 → lib/packlets/bcp47}/validation/index.d.ts +0 -0
  533. /package/{iana → lib/packlets/iana}/common/registeredItems.d.ts +0 -0
  534. /package/{iana → lib/packlets/iana}/common/utils.d.ts +0 -0
  535. /package/{iana → lib/packlets/iana}/converters.d.ts +0 -0
  536. /package/{iana → lib/packlets/iana}/defaultRegistries.d.ts +0 -0
  537. /package/{iana → lib/packlets/iana}/jar/converters.d.ts +0 -0
  538. /package/{iana → lib/packlets/iana}/jar/language-subtags/converters.d.ts +0 -0
  539. /package/{iana → lib/packlets/iana}/jar/language-subtags/model.d.ts +0 -0
  540. /package/{iana → lib/packlets/iana}/jar/language-subtags/registry/converters.d.ts +0 -0
  541. /package/{iana/jar/language-subtags → lib/packlets/iana/jar/language-subtags/registry}/index.d.ts +0 -0
  542. /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/model.d.ts +0 -0
  543. /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/tagValidation.d.ts +0 -0
  544. /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/validate.d.ts +0 -0
  545. /package/{iana → lib/packlets/iana}/jar/model.d.ts +0 -0
  546. /package/{iana → lib/packlets/iana}/language-subtags/common.d.ts +0 -0
  547. /package/{iana → lib/packlets/iana}/language-subtags/validate.d.ts +0 -0
  548. /package/{iana → lib/packlets/iana}/languageRegistries.d.ts +0 -0
  549. /package/{iana → lib/packlets/iana}/model.d.ts +0 -0
  550. /package/{iana → lib/packlets/iana}/validate.d.ts +0 -0
  551. /package/{iana/jar → lib/packlets/unsd/csv}/index.d.ts +0 -0
  552. /package/{unsd → lib/packlets/unsd}/defaultRegistries.d.ts +0 -0
  553. /package/{utils → lib/packlets/utils}/index.d.ts +0 -0
  554. /package/{utils → lib/packlets/utils}/jsonHelpers.d.ts +0 -0
@@ -0,0 +1,209 @@
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.loadLanguageSubtagsJsonFileSync = exports.registryFile = exports.registeredItem = exports.registeredRedundantTag = exports.registeredGrandfatheredTag = exports.registeredVariant = exports.registeredRegion = exports.registeredScript = exports.registeredExtLang = exports.registeredLanguage = exports.extendedLanguageRange = exports.Tags = void 0;
48
+ /* eslint-disable @rushstack/typedef-var */
49
+ const TagConverters = __importStar(require("../jar/language-subtags/tags/converters"));
50
+ exports.Tags = TagConverters;
51
+ const ts_utils_1 = require("@fgv/ts-utils");
52
+ const converters_1 = require("../common/converters");
53
+ const ts_json_1 = require("@fgv/ts-json");
54
+ const converters_2 = require("../jar/language-subtags/registry/converters");
55
+ /**
56
+ * @public
57
+ */
58
+ exports.extendedLanguageRange = TagConverters.extendedLanguageRange;
59
+ /**
60
+ * @internal
61
+ */
62
+ exports.registeredLanguage = ts_utils_1.Converters.strictObject({
63
+ type: ts_utils_1.Converters.enumeratedValue(['language']),
64
+ subtag: TagConverters.languageSubtag,
65
+ description: ts_utils_1.Converters.stringArray,
66
+ added: converters_1.yearMonthDaySpec,
67
+ comments: ts_utils_1.Converters.stringArray,
68
+ deprecated: converters_1.yearMonthDaySpec,
69
+ macrolanguage: TagConverters.languageSubtag,
70
+ preferredValue: TagConverters.languageSubtag,
71
+ scope: converters_2.registryScopeType,
72
+ suppressScript: TagConverters.scriptSubtag,
73
+ subtagRangeEnd: TagConverters.languageSubtag
74
+ }, {
75
+ description: 'language subtag registry entry',
76
+ optionalFields: [
77
+ 'comments',
78
+ 'deprecated',
79
+ 'macrolanguage',
80
+ 'preferredValue',
81
+ 'scope',
82
+ 'suppressScript',
83
+ 'subtagRangeEnd'
84
+ ]
85
+ });
86
+ /**
87
+ * @internal
88
+ */
89
+ exports.registeredExtLang = ts_utils_1.Converters.strictObject({
90
+ type: ts_utils_1.Converters.enumeratedValue(['extlang']),
91
+ subtag: TagConverters.tagOrStartOfTagRange(TagConverters.extlangSubtag),
92
+ preferredValue: TagConverters.extendedLanguageRange,
93
+ prefix: TagConverters.extlangPrefix,
94
+ description: ts_utils_1.Converters.stringArray,
95
+ added: converters_1.yearMonthDaySpec,
96
+ comments: ts_utils_1.Converters.stringArray,
97
+ deprecated: converters_1.yearMonthDaySpec,
98
+ macrolanguage: TagConverters.languageSubtag,
99
+ scope: converters_2.registryScopeType,
100
+ suppressScript: TagConverters.scriptSubtag
101
+ }, {
102
+ description: 'extlang subtag registry entry',
103
+ optionalFields: ['comments', 'deprecated', 'macrolanguage', 'scope', 'suppressScript']
104
+ });
105
+ /**
106
+ * @internal
107
+ */
108
+ exports.registeredScript = ts_utils_1.Converters.strictObject({
109
+ type: ts_utils_1.Converters.enumeratedValue(['script']),
110
+ subtag: TagConverters.scriptSubtag,
111
+ description: ts_utils_1.Converters.stringArray,
112
+ added: converters_1.yearMonthDaySpec,
113
+ comments: ts_utils_1.Converters.stringArray,
114
+ deprecated: converters_1.yearMonthDaySpec,
115
+ preferredValue: TagConverters.scriptSubtag,
116
+ subtagRangeEnd: TagConverters.scriptSubtag
117
+ }, {
118
+ description: 'script subtag registry entry',
119
+ optionalFields: ['comments', 'deprecated', 'preferredValue', 'subtagRangeEnd']
120
+ });
121
+ /**
122
+ * @internal
123
+ */
124
+ exports.registeredRegion = ts_utils_1.Converters.strictObject({
125
+ type: ts_utils_1.Converters.enumeratedValue(['region']),
126
+ subtag: TagConverters.regionSubtag,
127
+ description: ts_utils_1.Converters.stringArray,
128
+ added: converters_1.yearMonthDaySpec,
129
+ comments: ts_utils_1.Converters.stringArray,
130
+ deprecated: converters_1.yearMonthDaySpec,
131
+ preferredValue: TagConverters.regionSubtag,
132
+ subtagRangeEnd: TagConverters.regionSubtag
133
+ }, {
134
+ description: 'region subtag registry entry',
135
+ optionalFields: ['comments', 'deprecated', 'preferredValue', 'subtagRangeEnd']
136
+ });
137
+ /**
138
+ * @internal
139
+ */
140
+ exports.registeredVariant = ts_utils_1.Converters.strictObject({
141
+ type: ts_utils_1.Converters.enumeratedValue(['variant']),
142
+ subtag: TagConverters.variantSubtag,
143
+ description: ts_utils_1.Converters.stringArray,
144
+ added: converters_1.yearMonthDaySpec,
145
+ comments: ts_utils_1.Converters.stringArray,
146
+ deprecated: converters_1.yearMonthDaySpec,
147
+ preferredValue: TagConverters.variantSubtag,
148
+ prefix: ts_utils_1.Converters.arrayOf(TagConverters.extendedLanguageRange)
149
+ }, {
150
+ description: 'variant subtag registry entry',
151
+ optionalFields: ['comments', 'deprecated', 'preferredValue', 'prefix']
152
+ });
153
+ /**
154
+ * @internal
155
+ */
156
+ exports.registeredGrandfatheredTag = ts_utils_1.Converters.strictObject({
157
+ type: ts_utils_1.Converters.enumeratedValue(['grandfathered']),
158
+ tag: TagConverters.grandfatheredTag,
159
+ description: ts_utils_1.Converters.stringArray,
160
+ added: converters_1.yearMonthDaySpec,
161
+ comments: ts_utils_1.Converters.stringArray,
162
+ deprecated: converters_1.yearMonthDaySpec,
163
+ preferredValue: TagConverters.extendedLanguageRange
164
+ }, {
165
+ description: 'grandfathered tag registry entry',
166
+ optionalFields: ['comments', 'deprecated', 'preferredValue']
167
+ });
168
+ /**
169
+ * @internal
170
+ */
171
+ exports.registeredRedundantTag = ts_utils_1.Converters.strictObject({
172
+ type: ts_utils_1.Converters.enumeratedValue(['redundant']),
173
+ tag: TagConverters.redundantTag,
174
+ description: ts_utils_1.Converters.stringArray,
175
+ added: converters_1.yearMonthDaySpec,
176
+ comments: ts_utils_1.Converters.stringArray,
177
+ deprecated: converters_1.yearMonthDaySpec,
178
+ preferredValue: TagConverters.extendedLanguageRange
179
+ }, {
180
+ description: 'redundant tag registry entry',
181
+ optionalFields: ['comments', 'deprecated', 'preferredValue']
182
+ });
183
+ /**
184
+ * @internal
185
+ */
186
+ exports.registeredItem = ts_utils_1.Converters.discriminatedObject('type', {
187
+ language: exports.registeredLanguage,
188
+ extlang: exports.registeredExtLang,
189
+ script: exports.registeredScript,
190
+ region: exports.registeredRegion,
191
+ variant: exports.registeredVariant,
192
+ grandfathered: exports.registeredGrandfatheredTag,
193
+ redundant: exports.registeredRedundantTag
194
+ });
195
+ /**
196
+ * @internal
197
+ */
198
+ exports.registryFile = (0, converters_1.datedRegistry)(exports.registeredItem);
199
+ /**
200
+ * @public
201
+ * @param path - String path from which file is to be loaded.
202
+ * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}
203
+ * or `Failure` with details if an error occurs.
204
+ */
205
+ function loadLanguageSubtagsJsonFileSync(path) {
206
+ return ts_json_1.File.convertJsonFileSync(path, exports.registryFile);
207
+ }
208
+ exports.loadLanguageSubtagsJsonFileSync = loadLanguageSubtagsJsonFileSync;
209
+ //# sourceMappingURL=converters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../../../src/packlets/iana/language-subtags/converters.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2022 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/* eslint-disable @rushstack/typedef-var */\n\nimport * as TagConverters from '../jar/language-subtags/tags/converters';\nimport * as Model from './model';\n\nimport { Converter, Converters, Result } from '@fgv/ts-utils';\nimport { datedRegistry, yearMonthDaySpec } from '../common/converters';\n\nimport { File } from '@fgv/ts-json';\nimport { registryScopeType } from '../jar/language-subtags/registry/converters';\n\nexport { TagConverters as Tags };\n\n/**\n * @public\n */\nexport const extendedLanguageRange = TagConverters.extendedLanguageRange;\n\n/**\n * @internal\n */\nexport const registeredLanguage: Converter<Model.IRegisteredLanguage, unknown> =\n Converters.strictObject<Model.IRegisteredLanguage>(\n {\n type: Converters.enumeratedValue<'language'>(['language']),\n subtag: TagConverters.languageSubtag,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n macrolanguage: TagConverters.languageSubtag,\n preferredValue: TagConverters.languageSubtag,\n scope: registryScopeType,\n suppressScript: TagConverters.scriptSubtag,\n subtagRangeEnd: TagConverters.languageSubtag\n },\n {\n description: 'language subtag registry entry',\n optionalFields: [\n 'comments',\n 'deprecated',\n 'macrolanguage',\n 'preferredValue',\n 'scope',\n 'suppressScript',\n 'subtagRangeEnd'\n ]\n }\n );\n\n/**\n * @internal\n */\nexport const registeredExtLang: Converter<Model.IRegisteredExtLang, unknown> =\n Converters.strictObject<Model.IRegisteredExtLang>(\n {\n type: Converters.enumeratedValue<'extlang'>(['extlang']),\n subtag: TagConverters.tagOrStartOfTagRange(TagConverters.extlangSubtag),\n preferredValue: TagConverters.extendedLanguageRange,\n prefix: TagConverters.extlangPrefix,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n macrolanguage: TagConverters.languageSubtag,\n scope: registryScopeType,\n suppressScript: TagConverters.scriptSubtag\n },\n {\n description: 'extlang subtag registry entry',\n optionalFields: ['comments', 'deprecated', 'macrolanguage', 'scope', 'suppressScript']\n }\n );\n\n/**\n * @internal\n */\nexport const registeredScript: Converter<Model.IRegisteredScript, unknown> =\n Converters.strictObject<Model.IRegisteredScript>(\n {\n type: Converters.enumeratedValue<'script'>(['script']),\n subtag: TagConverters.scriptSubtag,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n preferredValue: TagConverters.scriptSubtag,\n subtagRangeEnd: TagConverters.scriptSubtag\n },\n {\n description: 'script subtag registry entry',\n optionalFields: ['comments', 'deprecated', 'preferredValue', 'subtagRangeEnd']\n }\n );\n\n/**\n * @internal\n */\nexport const registeredRegion: Converter<Model.IRegisteredRegion, unknown> =\n Converters.strictObject<Model.IRegisteredRegion>(\n {\n type: Converters.enumeratedValue<'region'>(['region']),\n subtag: TagConverters.regionSubtag,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n preferredValue: TagConverters.regionSubtag,\n subtagRangeEnd: TagConverters.regionSubtag\n },\n {\n description: 'region subtag registry entry',\n optionalFields: ['comments', 'deprecated', 'preferredValue', 'subtagRangeEnd']\n }\n );\n\n/**\n * @internal\n */\nexport const registeredVariant: Converter<Model.IRegisteredVariant, unknown> =\n Converters.strictObject<Model.IRegisteredVariant>(\n {\n type: Converters.enumeratedValue<'variant'>(['variant']),\n subtag: TagConverters.variantSubtag,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n preferredValue: TagConverters.variantSubtag,\n prefix: Converters.arrayOf(TagConverters.extendedLanguageRange)\n },\n {\n description: 'variant subtag registry entry',\n optionalFields: ['comments', 'deprecated', 'preferredValue', 'prefix']\n }\n );\n\n/**\n * @internal\n */\nexport const registeredGrandfatheredTag: Converter<Model.IRegisteredGrandfatheredTag, unknown> =\n Converters.strictObject<Model.IRegisteredGrandfatheredTag>(\n {\n type: Converters.enumeratedValue<'grandfathered'>(['grandfathered']),\n tag: TagConverters.grandfatheredTag,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n preferredValue: TagConverters.extendedLanguageRange\n },\n {\n description: 'grandfathered tag registry entry',\n optionalFields: ['comments', 'deprecated', 'preferredValue']\n }\n );\n\n/**\n * @internal\n */\nexport const registeredRedundantTag: Converter<Model.IRegisteredRedundantTag, unknown> =\n Converters.strictObject<Model.IRegisteredRedundantTag>(\n {\n type: Converters.enumeratedValue<'redundant'>(['redundant']),\n tag: TagConverters.redundantTag,\n description: Converters.stringArray,\n added: yearMonthDaySpec,\n comments: Converters.stringArray,\n deprecated: yearMonthDaySpec,\n preferredValue: TagConverters.extendedLanguageRange\n },\n {\n description: 'redundant tag registry entry',\n optionalFields: ['comments', 'deprecated', 'preferredValue']\n }\n );\n\n/**\n * @internal\n */\nexport const registeredItem = Converters.discriminatedObject<Model.RegisteredItem>('type', {\n language: registeredLanguage,\n extlang: registeredExtLang,\n script: registeredScript,\n region: registeredRegion,\n variant: registeredVariant,\n grandfathered: registeredGrandfatheredTag,\n redundant: registeredRedundantTag\n});\n\n/**\n * @internal\n */\nexport const registryFile = datedRegistry(registeredItem);\n\n/**\n * @public\n * @param path - String path from which file is to be loaded.\n * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}\n * or `Failure` with details if an error occurs.\n */\nexport function loadLanguageSubtagsJsonFileSync(path: string): Result<Model.RegistryFile> {\n return File.convertJsonFileSync(path, registryFile);\n}\n"]}
@@ -1,7 +1,8 @@
1
- export * from './common';
2
- export { LanguageSubtagRegistry } from './subtagRegistry';
3
1
  import * as Converters from './converters';
2
+ import * as JarConverters from './jarConverters';
4
3
  import * as Model from './model';
5
4
  import * as Validate from './validate';
6
- export { Converters, Model, Validate };
5
+ export * from './common';
6
+ export { LanguageSubtagRegistry } from './subtagRegistry';
7
+ export { Converters, JarConverters, Model, Validate };
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/packlets/iana/language-subtags/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC"}
@@ -36,9 +36,6 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
36
36
  }) : function(o, v) {
37
37
  o["default"] = v;
38
38
  });
39
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
40
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
41
- };
42
39
  var __importStar = (this && this.__importStar) || function (mod) {
43
40
  if (mod && mod.__esModule) return mod;
44
41
  var result = {};
@@ -46,15 +43,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
46
43
  __setModuleDefault(result, mod);
47
44
  return result;
48
45
  };
46
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
47
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
48
+ };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.Validate = exports.Model = exports.Converters = exports.LanguageSubtagRegistry = void 0;
51
- __exportStar(require("./common"), exports);
52
- var subtagRegistry_1 = require("./subtagRegistry");
53
- Object.defineProperty(exports, "LanguageSubtagRegistry", { enumerable: true, get: function () { return subtagRegistry_1.LanguageSubtagRegistry; } });
50
+ exports.Validate = exports.Model = exports.JarConverters = exports.Converters = exports.LanguageSubtagRegistry = void 0;
54
51
  const Converters = __importStar(require("./converters"));
55
52
  exports.Converters = Converters;
53
+ const JarConverters = __importStar(require("./jarConverters"));
54
+ exports.JarConverters = JarConverters;
56
55
  const Model = __importStar(require("./model"));
57
56
  exports.Model = Model;
58
57
  const Validate = __importStar(require("./validate"));
59
58
  exports.Validate = Validate;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWFuYS9sYW5ndWFnZS1zdWJ0YWdzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsMkNBQXlCO0FBQ3pCLG1EQUEwRDtBQUFqRCx3SEFBQSxzQkFBc0IsT0FBQTtBQUUvQix5REFBMkM7QUFJbEMsZ0NBQVU7QUFIbkIsK0NBQWlDO0FBR1osc0JBQUs7QUFGMUIscURBQXVDO0FBRVgsNEJBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuZXhwb3J0IHsgTGFuZ3VhZ2VTdWJ0YWdSZWdpc3RyeSB9IGZyb20gJy4vc3VidGFnUmVnaXN0cnknO1xuXG5pbXBvcnQgKiBhcyBDb252ZXJ0ZXJzIGZyb20gJy4vY29udmVydGVycyc7XG5pbXBvcnQgKiBhcyBNb2RlbCBmcm9tICcuL21vZGVsJztcbmltcG9ydCAqIGFzIFZhbGlkYXRlIGZyb20gJy4vdmFsaWRhdGUnO1xuXG5leHBvcnQgeyBDb252ZXJ0ZXJzLCBNb2RlbCwgVmFsaWRhdGUgfTtcbiJdfQ==
59
+ __exportStar(require("./common"), exports);
60
+ var subtagRegistry_1 = require("./subtagRegistry");
61
+ Object.defineProperty(exports, "LanguageSubtagRegistry", { enumerable: true, get: function () { return subtagRegistry_1.LanguageSubtagRegistry; } });
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/packlets/iana/language-subtags/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yDAA2C;AAOlC,gCAAU;AANnB,+DAAiD;AAM5B,sCAAa;AALlC,+CAAiC;AAKG,sBAAK;AAJzC,qDAAuC;AAII,4BAAQ;AAFnD,2CAAyB;AACzB,mDAA0D;AAAjD,wHAAA,sBAAsB,OAAA","sourcesContent":["/*\n * Copyright (c) 2022 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nimport * as Converters from './converters';\nimport * as JarConverters from './jarConverters';\nimport * as Model from './model';\nimport * as Validate from './validate';\n\nexport * from './common';\nexport { LanguageSubtagRegistry } from './subtagRegistry';\nexport { Converters, JarConverters, Model, Validate };\n"]}
@@ -3,31 +3,31 @@ import { Result } from '@fgv/ts-utils';
3
3
  /**
4
4
  * @internal
5
5
  */
6
- export declare const registeredLanguage: import("@fgv/ts-utils").Converter<Model.RegisteredLanguage, unknown>;
6
+ export declare const registeredLanguage: import("@fgv/ts-utils").Converter<Model.IRegisteredLanguage, unknown>;
7
7
  /**
8
8
  * @internal
9
9
  */
10
- export declare const registeredExtLang: import("@fgv/ts-utils").Converter<Model.RegisteredExtLang, unknown>;
10
+ export declare const registeredExtLang: import("@fgv/ts-utils").Converter<Model.IRegisteredExtLang, unknown>;
11
11
  /**
12
12
  * @internal
13
13
  */
14
- export declare const registeredScript: import("@fgv/ts-utils").Converter<Model.RegisteredScript, unknown>;
14
+ export declare const registeredScript: import("@fgv/ts-utils").Converter<Model.IRegisteredScript, unknown>;
15
15
  /**
16
16
  * @internal
17
17
  */
18
- export declare const registeredRegion: import("@fgv/ts-utils").Converter<Model.RegisteredRegion, unknown>;
18
+ export declare const registeredRegion: import("@fgv/ts-utils").Converter<Model.IRegisteredRegion, unknown>;
19
19
  /**
20
20
  * @internal
21
21
  */
22
- export declare const registeredVariant: import("@fgv/ts-utils").Converter<Model.RegisteredVariant, unknown>;
22
+ export declare const registeredVariant: import("@fgv/ts-utils").Converter<Model.IRegisteredVariant, unknown>;
23
23
  /**
24
24
  * @internal
25
25
  */
26
- export declare const registeredGrandfatheredTag: import("@fgv/ts-utils").Converter<Model.RegisteredGrandfatheredTag, unknown>;
26
+ export declare const registeredGrandfatheredTag: import("@fgv/ts-utils").Converter<Model.IRegisteredGrandfatheredTag, unknown>;
27
27
  /**
28
28
  * @internal
29
29
  */
30
- export declare const registeredRedundantTag: import("@fgv/ts-utils").Converter<Model.RegisteredRedundantTag, unknown>;
30
+ export declare const registeredRedundantTag: import("@fgv/ts-utils").Converter<Model.IRegisteredRedundantTag, unknown>;
31
31
  /**
32
32
  * @internal
33
33
  */
@@ -35,7 +35,7 @@ export declare const registeredItem: import("@fgv/ts-utils").Converter<Model.Reg
35
35
  /**
36
36
  * @internal
37
37
  */
38
- export declare const registryFile: import("@fgv/ts-utils").Converter<import("../model").DatedRegistry<Model.RegisteredItem>, unknown>;
38
+ export declare const registryFile: import("@fgv/ts-utils").Converter<import("../model").IDatedRegistry<Model.RegisteredItem>, unknown>;
39
39
  /**
40
40
  * Loads a JSON-format language subtag registry file.
41
41
  * @param path - The string path from which the registry is to be loaded.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jarConverters.d.ts","sourceRoot":"","sources":["../../../../src/packlets/iana/language-subtags/jarConverters.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAyB,MAAM,EAAE,MAAM,eAAe,CAAC;AAO9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,uEAyB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,sEAqB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,qEAsB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,qEAsB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,sEAsB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,+EAqBtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,2EAqBlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,kEAQzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,qGAAgC,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAOtF"}
@@ -0,0 +1,237 @@
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 ts_json_1 = require("@fgv/ts-json");
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: {
69
+ from: 'Subtag',
70
+ converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.languageSubtag),
71
+ optional: true
72
+ }
73
+ }, {
74
+ strict: true,
75
+ description: 'language subtag'
76
+ });
77
+ /**
78
+ * @internal
79
+ */
80
+ exports.registeredExtLang = ts_utils_1.Converters.transformObject({
81
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['extlang']) },
82
+ subtag: { from: 'Subtag', converter: TagConverters.extlangSubtag },
83
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.extendedLanguageRange },
84
+ prefix: { from: 'Prefix', converter: TagConverters.extlangPrefix },
85
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
86
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
87
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
88
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
89
+ macrolanguage: { from: 'Macrolanguage', converter: TagConverters.languageSubtag, optional: true },
90
+ scope: { from: 'Scope', converter: converters_2.registryScopeType, optional: true },
91
+ suppressScript: { from: 'Suppress-Script', converter: TagConverters.scriptSubtag, optional: true }
92
+ }, {
93
+ strict: true,
94
+ description: 'extlang subtag'
95
+ });
96
+ /**
97
+ * @internal
98
+ */
99
+ exports.registeredScript = ts_utils_1.Converters.transformObject({
100
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['script']) },
101
+ subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.scriptSubtag) },
102
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
103
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
104
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
105
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
106
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.scriptSubtag, optional: true },
107
+ subtagRangeEnd: {
108
+ from: 'Subtag',
109
+ converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.scriptSubtag),
110
+ optional: true
111
+ }
112
+ }, {
113
+ strict: true,
114
+ description: 'script subtag'
115
+ });
116
+ /**
117
+ * @internal
118
+ */
119
+ exports.registeredRegion = ts_utils_1.Converters.transformObject({
120
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['region']) },
121
+ subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.regionSubtag) },
122
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
123
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
124
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
125
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
126
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.regionSubtag, optional: true },
127
+ subtagRangeEnd: {
128
+ from: 'Subtag',
129
+ converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.regionSubtag),
130
+ optional: true
131
+ }
132
+ }, {
133
+ strict: true,
134
+ description: 'region subtag'
135
+ });
136
+ /**
137
+ * @internal
138
+ */
139
+ exports.registeredVariant = ts_utils_1.Converters.transformObject({
140
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['variant']) },
141
+ subtag: { from: 'Subtag', converter: TagConverters.variantSubtag },
142
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
143
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
144
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
145
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
146
+ preferredValue: { from: 'Preferred-Value', converter: TagConverters.variantSubtag, optional: true },
147
+ prefix: {
148
+ from: 'Prefix',
149
+ converter: ts_utils_1.Converters.arrayOf(TagConverters.extendedLanguageRange),
150
+ optional: true
151
+ }
152
+ }, {
153
+ strict: true,
154
+ description: 'variant subtag'
155
+ });
156
+ /**
157
+ * @internal
158
+ */
159
+ exports.registeredGrandfatheredTag = ts_utils_1.Converters.transformObject({
160
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['grandfathered']) },
161
+ tag: { from: 'Tag', converter: TagConverters.grandfatheredTag },
162
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
163
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
164
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
165
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
166
+ preferredValue: {
167
+ from: 'Preferred-Value',
168
+ converter: TagConverters.extendedLanguageRange,
169
+ optional: true
170
+ }
171
+ }, {
172
+ strict: true,
173
+ description: 'grandfathered tag'
174
+ });
175
+ /**
176
+ * @internal
177
+ */
178
+ exports.registeredRedundantTag = ts_utils_1.Converters.transformObject({
179
+ type: { from: 'Type', converter: ts_utils_1.Converters.enumeratedValue(['redundant']) },
180
+ tag: { from: 'Tag', converter: TagConverters.redundantTag },
181
+ description: { from: 'Description', converter: ts_utils_1.Converters.stringArray },
182
+ added: { from: 'Added', converter: converters_1.yearMonthDaySpec },
183
+ comments: { from: 'Comments', converter: ts_utils_1.Converters.stringArray, optional: true },
184
+ deprecated: { from: 'Deprecated', converter: converters_1.yearMonthDaySpec, optional: true },
185
+ preferredValue: {
186
+ from: 'Preferred-Value',
187
+ converter: TagConverters.extendedLanguageRange,
188
+ optional: true
189
+ }
190
+ }, {
191
+ strict: true,
192
+ description: 'redundant tag'
193
+ });
194
+ /**
195
+ * @internal
196
+ */
197
+ exports.registeredItem = ts_utils_1.Converters.discriminatedObject('Type', {
198
+ language: exports.registeredLanguage,
199
+ extlang: exports.registeredExtLang,
200
+ script: exports.registeredScript,
201
+ region: exports.registeredRegion,
202
+ variant: exports.registeredVariant,
203
+ grandfathered: exports.registeredGrandfatheredTag,
204
+ redundant: exports.registeredRedundantTag
205
+ });
206
+ /**
207
+ * @internal
208
+ */
209
+ exports.registryFile = (0, converters_1.datedRegistry)(exports.registeredItem);
210
+ /**
211
+ * Loads a JSON-format language subtag registry file.
212
+ * @param path - The string path from which the registry is to be loaded.
213
+ * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}
214
+ * or `Failure` with details if an error occurs.
215
+ * @internal
216
+ */
217
+ function loadJsonSubtagRegistryFileSync(path) {
218
+ return ts_json_1.File.convertJsonFileSync(path, exports.registryFile);
219
+ }
220
+ exports.loadJsonSubtagRegistryFileSync = loadJsonSubtagRegistryFileSync;
221
+ /**
222
+ * Loads a text (JAR) format language subtag registry file.
223
+ * @param path - The string path from which the registry is to be loaded.
224
+ * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}
225
+ * or `Failure` with details if an error occurs.
226
+ * @internal
227
+ */
228
+ function loadTxtSubtagRegistryFileSync(path) {
229
+ return ts_utils_1.RecordJar.readRecordJarFileSync(path, {
230
+ arrayFields: ['Comments', 'Description', 'Prefix'],
231
+ fixedContinuationSize: 1
232
+ }).onSuccess((jar) => {
233
+ return (0, jarConverters_1.datedRegistryFromJarRecords)(exports.registeredItem).convert(jar);
234
+ });
235
+ }
236
+ exports.loadTxtSubtagRegistryFileSync = loadTxtSubtagRegistryFileSync;
237
+ //# sourceMappingURL=jarConverters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jarConverters.js","sourceRoot":"","sources":["../../../../src/packlets/iana/language-subtags/jarConverters.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2022 Erik Fortune\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/* eslint-disable @rushstack/typedef-var */\n\nimport * as JarModel from '../jar/language-subtags/registry/model';\nimport * as TagConverters from '../jar/language-subtags/tags/converters';\nimport * as Model from './model';\n\nimport { Converters, RecordJar, Result } from '@fgv/ts-utils';\nimport { datedRegistry, yearMonthDaySpec } from '../common/converters';\n\nimport { File } from '@fgv/ts-json';\nimport { datedRegistryFromJarRecords } from '../jar/jarConverters';\nimport { registryScopeType } from '../jar/language-subtags/registry/converters';\n\n/**\n * @internal\n */\nexport const registeredLanguage = Converters.transformObject<\n JarModel.LanguageSubtagRegistryEntry,\n Model.IRegisteredLanguage\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'language'>(['language']) },\n subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.languageSubtag) },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n macrolanguage: { from: 'Macrolanguage', converter: TagConverters.languageSubtag, optional: true },\n preferredValue: { from: 'Preferred-Value', converter: TagConverters.languageSubtag, optional: true },\n scope: { from: 'Scope', converter: registryScopeType, optional: true },\n suppressScript: { from: 'Suppress-Script', converter: TagConverters.scriptSubtag, optional: true },\n subtagRangeEnd: {\n from: 'Subtag',\n converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.languageSubtag),\n optional: true\n }\n },\n {\n strict: true,\n description: 'language subtag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredExtLang = Converters.transformObject<\n JarModel.ExtLangSubtagRegistryEntry,\n Model.IRegisteredExtLang\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'extlang'>(['extlang']) },\n subtag: { from: 'Subtag', converter: TagConverters.extlangSubtag },\n preferredValue: { from: 'Preferred-Value', converter: TagConverters.extendedLanguageRange },\n prefix: { from: 'Prefix', converter: TagConverters.extlangPrefix },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n macrolanguage: { from: 'Macrolanguage', converter: TagConverters.languageSubtag, optional: true },\n scope: { from: 'Scope', converter: registryScopeType, optional: true },\n suppressScript: { from: 'Suppress-Script', converter: TagConverters.scriptSubtag, optional: true }\n },\n {\n strict: true,\n description: 'extlang subtag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredScript = Converters.transformObject<\n JarModel.ScriptSubtagRegistryEntry,\n Model.IRegisteredScript\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'script'>(['script']) },\n subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.scriptSubtag) },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n preferredValue: { from: 'Preferred-Value', converter: TagConverters.scriptSubtag, optional: true },\n subtagRangeEnd: {\n from: 'Subtag',\n converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.scriptSubtag),\n optional: true\n }\n },\n {\n strict: true,\n description: 'script subtag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredRegion = Converters.transformObject<\n JarModel.RegionSubtagRegistryEntry,\n Model.IRegisteredRegion\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'region'>(['region']) },\n subtag: { from: 'Subtag', converter: TagConverters.tagOrStartOfTagRange(TagConverters.regionSubtag) },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n preferredValue: { from: 'Preferred-Value', converter: TagConverters.regionSubtag, optional: true },\n subtagRangeEnd: {\n from: 'Subtag',\n converter: TagConverters.endOfTagRangeOrUndefined(TagConverters.regionSubtag),\n optional: true\n }\n },\n {\n strict: true,\n description: 'region subtag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredVariant = Converters.transformObject<\n JarModel.VariantSubtagRegistryEntry,\n Model.IRegisteredVariant\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'variant'>(['variant']) },\n subtag: { from: 'Subtag', converter: TagConverters.variantSubtag },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n preferredValue: { from: 'Preferred-Value', converter: TagConverters.variantSubtag, optional: true },\n prefix: {\n from: 'Prefix',\n converter: Converters.arrayOf(TagConverters.extendedLanguageRange),\n optional: true\n }\n },\n {\n strict: true,\n description: 'variant subtag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredGrandfatheredTag = Converters.transformObject<\n JarModel.GrandfatheredTagRegistryEntry,\n Model.IRegisteredGrandfatheredTag\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'grandfathered'>(['grandfathered']) },\n tag: { from: 'Tag', converter: TagConverters.grandfatheredTag },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n preferredValue: {\n from: 'Preferred-Value',\n converter: TagConverters.extendedLanguageRange,\n optional: true\n }\n },\n {\n strict: true,\n description: 'grandfathered tag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredRedundantTag = Converters.transformObject<\n JarModel.RedundantTagRegistryEntry,\n Model.IRegisteredRedundantTag\n>(\n {\n type: { from: 'Type', converter: Converters.enumeratedValue<'redundant'>(['redundant']) },\n tag: { from: 'Tag', converter: TagConverters.redundantTag },\n description: { from: 'Description', converter: Converters.stringArray },\n added: { from: 'Added', converter: yearMonthDaySpec },\n comments: { from: 'Comments', converter: Converters.stringArray, optional: true },\n deprecated: { from: 'Deprecated', converter: yearMonthDaySpec, optional: true },\n preferredValue: {\n from: 'Preferred-Value',\n converter: TagConverters.extendedLanguageRange,\n optional: true\n }\n },\n {\n strict: true,\n description: 'redundant tag'\n }\n);\n\n/**\n * @internal\n */\nexport const registeredItem = Converters.discriminatedObject<Model.RegisteredItem>('Type', {\n language: registeredLanguage,\n extlang: registeredExtLang,\n script: registeredScript,\n region: registeredRegion,\n variant: registeredVariant,\n grandfathered: registeredGrandfatheredTag,\n redundant: registeredRedundantTag\n});\n\n/**\n * @internal\n */\nexport const registryFile = datedRegistry(registeredItem);\n\n/**\n * Loads a JSON-format language subtag registry file.\n * @param path - The string path from which the registry is to be loaded.\n * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}\n * or `Failure` with details if an error occurs.\n * @internal\n */\nexport function loadJsonSubtagRegistryFileSync(path: string): Result<Model.RegistryFile> {\n return File.convertJsonFileSync(path, registryFile);\n}\n\n/**\n * Loads a text (JAR) format language subtag registry file.\n * @param path - The string path from which the registry is to be loaded.\n * @returns `Success` with the resulting {@link Iana.LanguageSubtags.Model.RegistryFile | registry file}\n * or `Failure` with details if an error occurs.\n * @internal\n */\nexport function loadTxtSubtagRegistryFileSync(path: string): Result<Model.RegistryFile> {\n return RecordJar.readRecordJarFileSync(path, {\n arrayFields: ['Comments', 'Description', 'Prefix'],\n fixedContinuationSize: 1\n }).onSuccess((jar) => {\n return datedRegistryFromJarRecords(registeredItem).convert(jar);\n });\n}\n"]}