@fgv/ts-bcp47 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/{src/bcp47 → bcp47}/bcp47Subtags/converters.d.ts +0 -0
  2. package/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
  3. package/{src/bcp47 → bcp47}/bcp47Subtags/converters.js +1 -1
  4. package/{src/bcp47 → bcp47}/bcp47Subtags/index.d.ts +0 -0
  5. package/bcp47/bcp47Subtags/index.d.ts.map +1 -0
  6. package/{src/iana/jar/language-subtags/converters.js → bcp47/bcp47Subtags/index.js} +8 -6
  7. package/{src/bcp47 → bcp47}/bcp47Subtags/model.d.ts +0 -0
  8. package/bcp47/bcp47Subtags/model.d.ts.map +1 -0
  9. package/{src/bcp47/overrides → bcp47/bcp47Subtags}/model.js +1 -1
  10. package/{src/bcp47 → bcp47}/bcp47Subtags/validate.d.ts +0 -0
  11. package/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
  12. package/bcp47/bcp47Subtags/validate.js +74 -0
  13. package/{src/bcp47 → bcp47}/common.d.ts +0 -0
  14. package/bcp47/common.d.ts.map +1 -0
  15. package/bcp47/common.js +59 -0
  16. package/{src/bcp47 → bcp47}/helpers.d.ts +0 -0
  17. package/bcp47/helpers.d.ts.map +1 -0
  18. package/bcp47/helpers.js +103 -0
  19. package/{src/bcp47 → bcp47}/index.d.ts +0 -0
  20. package/bcp47/index.d.ts.map +1 -0
  21. package/bcp47/index.js +27 -0
  22. package/bcp47/languageRegistryData.d.ts +88 -0
  23. package/bcp47/languageRegistryData.d.ts.map +1 -0
  24. package/bcp47/languageRegistryData.js +144 -0
  25. package/{src/bcp47 → bcp47}/languageTag.d.ts +6 -0
  26. package/bcp47/languageTag.d.ts.map +1 -0
  27. package/bcp47/languageTag.js +344 -0
  28. package/{src/bcp47 → bcp47}/languageTagParser.d.ts +0 -0
  29. package/bcp47/languageTagParser.d.ts.map +1 -0
  30. package/bcp47/languageTagParser.js +310 -0
  31. package/{src/bcp47 → bcp47}/match/chooser.d.ts +1 -1
  32. package/bcp47/match/chooser.d.ts.map +1 -0
  33. package/bcp47/match/chooser.js +92 -0
  34. package/{src/bcp47 → bcp47}/match/common.d.ts +0 -0
  35. package/bcp47/match/common.d.ts.map +1 -0
  36. package/bcp47/match/common.js +42 -0
  37. package/{src/bcp47 → bcp47}/match/index.d.ts +0 -0
  38. package/bcp47/match/index.d.ts.map +1 -0
  39. package/{src/iana/jar/language-subtags/registry/converters.js → bcp47/match/index.js} +10 -23
  40. package/{src/bcp47 → bcp47}/match/similarity.d.ts +0 -0
  41. package/bcp47/match/similarity.d.ts.map +1 -0
  42. package/bcp47/match/similarity.js +230 -0
  43. package/{src/bcp47 → bcp47}/normalization/baseNormalizer.d.ts +0 -0
  44. package/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
  45. package/bcp47/normalization/baseNormalizer.js +114 -0
  46. package/{src/bcp47 → bcp47}/normalization/canonicalNormalizer.d.ts +0 -0
  47. package/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
  48. package/bcp47/normalization/canonicalNormalizer.js +110 -0
  49. package/{src/bcp47 → bcp47}/normalization/common.d.ts +0 -0
  50. package/bcp47/normalization/common.d.ts.map +1 -0
  51. package/bcp47/normalization/common.js +82 -0
  52. package/{src/bcp47 → bcp47}/normalization/index.d.ts +0 -0
  53. package/bcp47/normalization/index.d.ts.map +1 -0
  54. package/{src/bcp47 → bcp47}/normalization/index.js +1 -1
  55. package/{src/bcp47 → bcp47}/normalization/normalizeTag.d.ts +0 -0
  56. package/bcp47/normalization/normalizeTag.d.ts.map +1 -0
  57. package/bcp47/normalization/normalizeTag.js +105 -0
  58. package/{src/bcp47 → bcp47}/normalization/preferredTagNormalizer.d.ts +0 -0
  59. package/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
  60. package/bcp47/normalization/preferredTagNormalizer.js +178 -0
  61. package/{src/bcp47 → bcp47}/overrides/converters.d.ts +0 -0
  62. package/bcp47/overrides/converters.d.ts.map +1 -0
  63. package/bcp47/overrides/converters.js +75 -0
  64. package/{src/bcp47 → bcp47}/overrides/defaultRegistries.d.ts +0 -0
  65. package/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
  66. package/bcp47/overrides/defaultRegistries.js +42 -0
  67. package/{src/bcp47 → bcp47}/overrides/index.d.ts +0 -0
  68. package/bcp47/overrides/index.d.ts.map +1 -0
  69. package/bcp47/overrides/index.js +30 -0
  70. package/{src/bcp47 → bcp47}/overrides/model.d.ts +0 -0
  71. package/bcp47/overrides/model.d.ts.map +1 -0
  72. package/bcp47/overrides/model.js +24 -0
  73. package/{src/bcp47 → bcp47}/overrides/overridesRegistry.d.ts +0 -0
  74. package/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
  75. package/bcp47/overrides/overridesRegistry.js +112 -0
  76. package/{src/bcp47 → bcp47}/validation/baseValidator.d.ts +0 -0
  77. package/bcp47/validation/baseValidator.d.ts.map +1 -0
  78. package/bcp47/validation/baseValidator.js +111 -0
  79. package/{src/bcp47 → bcp47}/validation/common.d.ts +0 -0
  80. package/bcp47/validation/common.d.ts.map +1 -0
  81. package/bcp47/validation/common.js +84 -0
  82. package/{src/bcp47 → bcp47}/validation/index.d.ts +0 -0
  83. package/bcp47/validation/index.d.ts.map +1 -0
  84. package/{src/iana/jar/language-subtags → bcp47/validation}/index.js +14 -17
  85. package/{src/bcp47 → bcp47}/validation/isCanonical.d.ts +0 -0
  86. package/bcp47/validation/isCanonical.d.ts.map +1 -0
  87. package/bcp47/validation/isCanonical.js +101 -0
  88. package/{src/bcp47 → bcp47}/validation/isInPreferredForm.d.ts +0 -0
  89. package/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
  90. package/bcp47/validation/isInPreferredForm.js +73 -0
  91. package/{src/bcp47 → bcp47}/validation/isStrictlyValid.d.ts +0 -0
  92. package/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
  93. package/bcp47/validation/isStrictlyValid.js +98 -0
  94. package/{src/bcp47 → bcp47}/validation/isValid.d.ts +0 -0
  95. package/bcp47/validation/isValid.d.ts.map +1 -0
  96. package/bcp47/validation/isValid.js +115 -0
  97. package/{src/bcp47 → bcp47}/validation/isWellFormed.d.ts +0 -0
  98. package/bcp47/validation/isWellFormed.d.ts.map +1 -0
  99. package/bcp47/validation/isWellFormed.js +98 -0
  100. package/{src/bcp47 → bcp47}/validation/validateTag.d.ts +0 -0
  101. package/bcp47/validation/validateTag.d.ts.map +1 -0
  102. package/bcp47/validation/validateTag.js +159 -0
  103. package/{src/iana → iana}/common/converters.d.ts +0 -0
  104. package/iana/common/converters.d.ts.map +1 -0
  105. package/iana/common/converters.js +84 -0
  106. package/{src/iana → iana}/common/model.d.ts +0 -0
  107. package/iana/common/model.d.ts.map +1 -0
  108. package/{src/unsd/csv → iana/common}/model.js +1 -1
  109. package/{src/iana → iana}/common/registeredItems.d.ts +0 -0
  110. package/iana/common/registeredItems.d.ts.map +1 -0
  111. package/iana/common/registeredItems.js +124 -0
  112. package/{src/iana → iana}/common/utils.d.ts +0 -0
  113. package/iana/common/utils.d.ts.map +1 -0
  114. package/iana/common/utils.js +34 -0
  115. package/{src/iana → iana}/common/validate.d.ts +0 -0
  116. package/iana/common/validate.d.ts.map +1 -0
  117. package/iana/common/validate.js +61 -0
  118. package/{src/iana → iana}/converters.d.ts +0 -0
  119. package/iana/converters.d.ts.map +1 -0
  120. package/{src/iana/jar/model.js → iana/converters.js} +8 -8
  121. package/{src/iana → iana}/defaultRegistries.d.ts +0 -0
  122. package/iana/defaultRegistries.d.ts.map +1 -0
  123. package/iana/defaultRegistries.js +42 -0
  124. package/{src/iana → iana}/index.d.ts +0 -0
  125. package/iana/index.d.ts.map +1 -0
  126. package/{src/iana → iana}/index.js +1 -1
  127. package/{src/iana → iana}/jar/converters.d.ts +0 -0
  128. package/iana/jar/converters.d.ts.map +1 -0
  129. package/{src/iana → iana}/jar/converters.js +1 -1
  130. package/{src/iana → iana}/jar/index.d.ts +0 -0
  131. package/iana/jar/index.d.ts.map +1 -0
  132. package/{src/iana/jar/language-subtags/tags → iana/jar}/index.js +4 -8
  133. package/{src/iana → iana}/jar/jarConverters.d.ts +0 -0
  134. package/iana/jar/jarConverters.d.ts.map +1 -0
  135. package/iana/jar/jarConverters.js +85 -0
  136. package/{src/iana → iana}/jar/jarModel.d.ts +0 -0
  137. package/iana/jar/jarModel.d.ts.map +1 -0
  138. package/{src/iana/common/model.js → iana/jar/jarModel.js} +1 -1
  139. package/{src/iana → iana}/jar/language-subtags/converters.d.ts +0 -0
  140. package/iana/jar/language-subtags/converters.d.ts.map +1 -0
  141. package/{src/iana/jar/language-subtags/model.js → iana/jar/language-subtags/converters.js} +3 -3
  142. package/{src/iana → iana}/jar/language-subtags/index.d.ts +0 -0
  143. package/iana/jar/language-subtags/index.d.ts.map +1 -0
  144. package/{src/utils → iana/jar/language-subtags}/index.js +18 -4
  145. package/{src/iana → iana}/jar/language-subtags/model.d.ts +0 -0
  146. package/iana/jar/language-subtags/model.d.ts.map +1 -0
  147. package/{src/unsd/common.js → iana/jar/language-subtags/model.js} +29 -1
  148. package/{src/iana → iana}/jar/language-subtags/registry/converters.d.ts +0 -0
  149. package/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
  150. package/{src/iana/language-subtags/common.js → iana/jar/language-subtags/registry/converters.js} +35 -1
  151. package/{src/iana → iana}/jar/language-subtags/registry/index.d.ts +0 -0
  152. package/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
  153. package/{src/bcp47/bcp47Subtags → iana/jar/language-subtags/registry}/index.js +28 -27
  154. package/{src/iana → iana}/jar/language-subtags/registry/model.d.ts +0 -0
  155. package/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
  156. package/iana/jar/language-subtags/registry/model.js +41 -0
  157. package/{src/iana → iana}/jar/language-subtags/tags/converters.d.ts +0 -0
  158. package/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
  159. package/iana/jar/language-subtags/tags/converters.js +128 -0
  160. package/{src/iana → iana}/jar/language-subtags/tags/index.d.ts +0 -0
  161. package/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
  162. package/{src/iana/converters.js → iana/jar/language-subtags/tags/index.js} +10 -8
  163. package/{src/iana → iana}/jar/language-subtags/tags/model.d.ts +0 -0
  164. package/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
  165. package/{src/unsd/csv/index.js → iana/jar/language-subtags/tags/model.js} +1 -29
  166. package/{src/iana → iana}/jar/language-subtags/tags/tagValidation.d.ts +0 -0
  167. package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
  168. package/iana/jar/language-subtags/tags/tagValidation.js +70 -0
  169. package/{src/iana → iana}/jar/language-subtags/tags/validate.d.ts +0 -0
  170. package/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
  171. package/iana/jar/language-subtags/tags/validate.js +87 -0
  172. package/{src/iana → iana}/jar/model.d.ts +0 -0
  173. package/iana/jar/model.d.ts.map +1 -0
  174. package/{src/iana/jar/language-subtags/registry/index.js → iana/jar/model.js} +26 -27
  175. package/{src/iana → iana}/language-subtags/common.d.ts +0 -0
  176. package/iana/language-subtags/common.d.ts.map +1 -0
  177. package/iana/language-subtags/common.js +24 -0
  178. package/{src/iana → iana}/language-subtags/converters.d.ts +0 -0
  179. package/iana/language-subtags/converters.d.ts.map +1 -0
  180. package/iana/language-subtags/converters.js +200 -0
  181. package/{src/iana → iana}/language-subtags/index.d.ts +0 -0
  182. package/iana/language-subtags/index.d.ts.map +1 -0
  183. package/{src/iana → iana}/language-subtags/index.js +1 -1
  184. package/{src/iana → iana}/language-subtags/jarConverters.d.ts +12 -12
  185. package/iana/language-subtags/jarConverters.d.ts.map +1 -0
  186. package/iana/language-subtags/jarConverters.js +213 -0
  187. package/{src/iana → iana}/language-subtags/model.d.ts +0 -0
  188. package/iana/language-subtags/model.d.ts.map +1 -0
  189. package/iana/language-subtags/model.js +24 -0
  190. package/{src/iana → iana}/language-subtags/scope.d.ts +0 -0
  191. package/iana/language-subtags/scope.d.ts.map +1 -0
  192. package/iana/language-subtags/scope.js +179 -0
  193. package/{src/iana → iana}/language-subtags/subtagRegistry.d.ts +0 -0
  194. package/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
  195. package/iana/language-subtags/subtagRegistry.js +149 -0
  196. package/{src/iana → iana}/language-subtags/validate.d.ts +0 -0
  197. package/iana/language-subtags/validate.d.ts.map +1 -0
  198. package/{src/iana → iana}/language-subtags/validate.js +1 -1
  199. package/{src/iana → iana}/language-tag-extensions/converters.d.ts +0 -0
  200. package/iana/language-tag-extensions/converters.d.ts.map +1 -0
  201. package/iana/language-tag-extensions/converters.js +87 -0
  202. package/{src/iana → iana}/language-tag-extensions/extensionsRegistry.d.ts +0 -0
  203. package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
  204. package/iana/language-tag-extensions/extensionsRegistry.js +104 -0
  205. package/{src/iana → iana}/language-tag-extensions/extensionsScope.d.ts +0 -0
  206. package/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
  207. package/iana/language-tag-extensions/extensionsScope.js +77 -0
  208. package/{src/iana → iana}/language-tag-extensions/index.d.ts +0 -0
  209. package/iana/language-tag-extensions/index.d.ts.map +1 -0
  210. package/{src/iana → iana}/language-tag-extensions/index.js +1 -1
  211. package/{src/iana → iana}/language-tag-extensions/jarConverters.d.ts +0 -0
  212. package/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
  213. package/iana/language-tag-extensions/jarConverters.js +102 -0
  214. package/{src/iana → iana}/language-tag-extensions/model.d.ts +0 -0
  215. package/iana/language-tag-extensions/model.d.ts.map +1 -0
  216. package/{src/bcp47/overrides/defaultRegistries.js → iana/language-tag-extensions/model.js} +1 -19
  217. package/{src/iana → iana}/language-tag-extensions/validate.d.ts +0 -0
  218. package/iana/language-tag-extensions/validate.d.ts.map +1 -0
  219. package/iana/language-tag-extensions/validate.js +36 -0
  220. package/{src/iana → iana}/languageRegistries.d.ts +0 -0
  221. package/iana/languageRegistries.d.ts.map +1 -0
  222. package/iana/languageRegistries.js +56 -0
  223. package/{src/iana → iana}/model.d.ts +0 -0
  224. package/iana/model.d.ts.map +1 -0
  225. package/{src/iana → iana}/model.js +1 -1
  226. package/{src/iana → iana}/validate.d.ts +0 -0
  227. package/iana/validate.d.ts.map +1 -0
  228. package/{src/iana → iana}/validate.js +1 -1
  229. package/{src/index.d.ts → index.d.ts} +0 -0
  230. package/index.d.ts.map +1 -0
  231. package/{src/index.js → index.js} +1 -1
  232. package/package.json +1 -1
  233. package/{src/unsd → unsd}/areas.d.ts +0 -0
  234. package/unsd/areas.d.ts.map +1 -0
  235. package/unsd/areas.js +96 -0
  236. package/{src/unsd → unsd}/common.d.ts +0 -0
  237. package/unsd/common.d.ts.map +1 -0
  238. package/unsd/common.js +24 -0
  239. package/{src/unsd → unsd}/csv/converters.d.ts +0 -0
  240. package/unsd/csv/converters.d.ts.map +1 -0
  241. package/unsd/csv/converters.js +70 -0
  242. package/{src/unsd → unsd}/csv/index.d.ts +0 -0
  243. package/unsd/csv/index.d.ts.map +1 -0
  244. package/{src/iana/jar → unsd/csv}/index.js +1 -1
  245. package/{src/unsd → unsd}/csv/model.d.ts +0 -0
  246. package/unsd/csv/model.d.ts.map +1 -0
  247. package/{src/unsd/index.js → unsd/csv/model.js} +1 -21
  248. package/{src/unsd → unsd}/defaultRegistries.d.ts +0 -0
  249. package/unsd/defaultRegistries.d.ts.map +1 -0
  250. package/unsd/defaultRegistries.js +42 -0
  251. package/{src/unsd → unsd}/index.d.ts +0 -0
  252. package/unsd/index.d.ts.map +1 -0
  253. package/unsd/index.js +44 -0
  254. package/{src/unsd → unsd}/regionCodes.d.ts +0 -0
  255. package/unsd/regionCodes.d.ts.map +1 -0
  256. package/unsd/regionCodes.js +121 -0
  257. package/{src/unsd → unsd}/regions.d.ts +0 -0
  258. package/unsd/regions.d.ts.map +1 -0
  259. package/unsd/regions.js +77 -0
  260. package/{src/utils → utils}/index.d.ts +0 -0
  261. package/utils/index.d.ts.map +1 -0
  262. package/{src/utils/jsonHelpers.js → utils/index.js} +17 -6
  263. package/{src/utils → utils}/jsonHelpers.d.ts +0 -0
  264. package/utils/jsonHelpers.d.ts.map +1 -0
  265. package/{src/iana/jar/language-subtags/tags/model.js → utils/jsonHelpers.js} +7 -2
  266. package/{src/utils → utils}/validationHelpers.d.ts +0 -0
  267. package/utils/validationHelpers.d.ts.map +1 -0
  268. package/utils/validationHelpers.js +88 -0
  269. package/src/bcp47/bcp47Subtags/converters.d.ts.map +0 -1
  270. package/src/bcp47/bcp47Subtags/index.d.ts.map +0 -1
  271. package/src/bcp47/bcp47Subtags/model.d.ts.map +0 -1
  272. package/src/bcp47/bcp47Subtags/model.js +0 -24
  273. package/src/bcp47/bcp47Subtags/validate.d.ts.map +0 -1
  274. package/src/bcp47/bcp47Subtags/validate.js +0 -74
  275. package/src/bcp47/common.d.ts.map +0 -1
  276. package/src/bcp47/common.js +0 -59
  277. package/src/bcp47/helpers.d.ts.map +0 -1
  278. package/src/bcp47/helpers.js +0 -103
  279. package/src/bcp47/index.d.ts.map +0 -1
  280. package/src/bcp47/index.js +0 -27
  281. package/src/bcp47/languageTag.d.ts.map +0 -1
  282. package/src/bcp47/languageTag.js +0 -342
  283. package/src/bcp47/languageTagParser.d.ts.map +0 -1
  284. package/src/bcp47/languageTagParser.js +0 -310
  285. package/src/bcp47/match/chooser.d.ts.map +0 -1
  286. package/src/bcp47/match/chooser.js +0 -92
  287. package/src/bcp47/match/common.d.ts.map +0 -1
  288. package/src/bcp47/match/common.js +0 -42
  289. package/src/bcp47/match/index.d.ts.map +0 -1
  290. package/src/bcp47/match/index.js +0 -45
  291. package/src/bcp47/match/similarity.d.ts.map +0 -1
  292. package/src/bcp47/match/similarity.js +0 -230
  293. package/src/bcp47/normalization/baseNormalizer.d.ts.map +0 -1
  294. package/src/bcp47/normalization/baseNormalizer.js +0 -114
  295. package/src/bcp47/normalization/canonicalNormalizer.d.ts.map +0 -1
  296. package/src/bcp47/normalization/canonicalNormalizer.js +0 -110
  297. package/src/bcp47/normalization/common.d.ts.map +0 -1
  298. package/src/bcp47/normalization/common.js +0 -82
  299. package/src/bcp47/normalization/index.d.ts.map +0 -1
  300. package/src/bcp47/normalization/normalizeTag.d.ts.map +0 -1
  301. package/src/bcp47/normalization/normalizeTag.js +0 -105
  302. package/src/bcp47/normalization/preferredTagNormalizer.d.ts.map +0 -1
  303. package/src/bcp47/normalization/preferredTagNormalizer.js +0 -178
  304. package/src/bcp47/overrides/converters.d.ts.map +0 -1
  305. package/src/bcp47/overrides/converters.js +0 -75
  306. package/src/bcp47/overrides/defaultRegistries.d.ts.map +0 -1
  307. package/src/bcp47/overrides/index.d.ts.map +0 -1
  308. package/src/bcp47/overrides/index.js +0 -30
  309. package/src/bcp47/overrides/model.d.ts.map +0 -1
  310. package/src/bcp47/overrides/overridesRegistry.d.ts.map +0 -1
  311. package/src/bcp47/overrides/overridesRegistry.js +0 -112
  312. package/src/bcp47/validation/baseValidator.d.ts.map +0 -1
  313. package/src/bcp47/validation/baseValidator.js +0 -111
  314. package/src/bcp47/validation/common.d.ts.map +0 -1
  315. package/src/bcp47/validation/common.js +0 -84
  316. package/src/bcp47/validation/index.d.ts.map +0 -1
  317. package/src/bcp47/validation/index.js +0 -51
  318. package/src/bcp47/validation/isCanonical.d.ts.map +0 -1
  319. package/src/bcp47/validation/isCanonical.js +0 -101
  320. package/src/bcp47/validation/isInPreferredForm.d.ts.map +0 -1
  321. package/src/bcp47/validation/isInPreferredForm.js +0 -73
  322. package/src/bcp47/validation/isStrictlyValid.d.ts.map +0 -1
  323. package/src/bcp47/validation/isStrictlyValid.js +0 -98
  324. package/src/bcp47/validation/isValid.d.ts.map +0 -1
  325. package/src/bcp47/validation/isValid.js +0 -115
  326. package/src/bcp47/validation/isWellFormed.d.ts.map +0 -1
  327. package/src/bcp47/validation/isWellFormed.js +0 -98
  328. package/src/bcp47/validation/validateTag.d.ts.map +0 -1
  329. package/src/bcp47/validation/validateTag.js +0 -159
  330. package/src/iana/common/converters.d.ts.map +0 -1
  331. package/src/iana/common/converters.js +0 -84
  332. package/src/iana/common/model.d.ts.map +0 -1
  333. package/src/iana/common/registeredItems.d.ts.map +0 -1
  334. package/src/iana/common/registeredItems.js +0 -124
  335. package/src/iana/common/utils.d.ts.map +0 -1
  336. package/src/iana/common/utils.js +0 -34
  337. package/src/iana/common/validate.d.ts.map +0 -1
  338. package/src/iana/common/validate.js +0 -61
  339. package/src/iana/converters.d.ts.map +0 -1
  340. package/src/iana/defaultRegistries.d.ts.map +0 -1
  341. package/src/iana/defaultRegistries.js +0 -42
  342. package/src/iana/index.d.ts.map +0 -1
  343. package/src/iana/jar/converters.d.ts.map +0 -1
  344. package/src/iana/jar/index.d.ts.map +0 -1
  345. package/src/iana/jar/jarConverters.d.ts.map +0 -1
  346. package/src/iana/jar/jarConverters.js +0 -85
  347. package/src/iana/jar/jarModel.d.ts.map +0 -1
  348. package/src/iana/jar/jarModel.js +0 -24
  349. package/src/iana/jar/language-subtags/converters.d.ts.map +0 -1
  350. package/src/iana/jar/language-subtags/index.d.ts.map +0 -1
  351. package/src/iana/jar/language-subtags/model.d.ts.map +0 -1
  352. package/src/iana/jar/language-subtags/registry/converters.d.ts.map +0 -1
  353. package/src/iana/jar/language-subtags/registry/index.d.ts.map +0 -1
  354. package/src/iana/jar/language-subtags/registry/model.d.ts.map +0 -1
  355. package/src/iana/jar/language-subtags/registry/model.js +0 -41
  356. package/src/iana/jar/language-subtags/tags/converters.d.ts.map +0 -1
  357. package/src/iana/jar/language-subtags/tags/converters.js +0 -128
  358. package/src/iana/jar/language-subtags/tags/index.d.ts.map +0 -1
  359. package/src/iana/jar/language-subtags/tags/model.d.ts.map +0 -1
  360. package/src/iana/jar/language-subtags/tags/tagValidation.d.ts.map +0 -1
  361. package/src/iana/jar/language-subtags/tags/tagValidation.js +0 -70
  362. package/src/iana/jar/language-subtags/tags/validate.d.ts.map +0 -1
  363. package/src/iana/jar/language-subtags/tags/validate.js +0 -87
  364. package/src/iana/jar/model.d.ts.map +0 -1
  365. package/src/iana/language-subtags/common.d.ts.map +0 -1
  366. package/src/iana/language-subtags/converters.d.ts.map +0 -1
  367. package/src/iana/language-subtags/converters.js +0 -200
  368. package/src/iana/language-subtags/index.d.ts.map +0 -1
  369. package/src/iana/language-subtags/jarConverters.d.ts.map +0 -1
  370. package/src/iana/language-subtags/jarConverters.js +0 -213
  371. package/src/iana/language-subtags/model.d.ts.map +0 -1
  372. package/src/iana/language-subtags/model.js +0 -24
  373. package/src/iana/language-subtags/scope.d.ts.map +0 -1
  374. package/src/iana/language-subtags/scope.js +0 -179
  375. package/src/iana/language-subtags/subtagRegistry.d.ts.map +0 -1
  376. package/src/iana/language-subtags/subtagRegistry.js +0 -149
  377. package/src/iana/language-subtags/validate.d.ts.map +0 -1
  378. package/src/iana/language-tag-extensions/converters.d.ts.map +0 -1
  379. package/src/iana/language-tag-extensions/converters.js +0 -87
  380. package/src/iana/language-tag-extensions/extensionsRegistry.d.ts.map +0 -1
  381. package/src/iana/language-tag-extensions/extensionsRegistry.js +0 -104
  382. package/src/iana/language-tag-extensions/extensionsScope.d.ts.map +0 -1
  383. package/src/iana/language-tag-extensions/extensionsScope.js +0 -77
  384. package/src/iana/language-tag-extensions/index.d.ts.map +0 -1
  385. package/src/iana/language-tag-extensions/jarConverters.d.ts.map +0 -1
  386. package/src/iana/language-tag-extensions/jarConverters.js +0 -102
  387. package/src/iana/language-tag-extensions/model.d.ts.map +0 -1
  388. package/src/iana/language-tag-extensions/model.js +0 -24
  389. package/src/iana/language-tag-extensions/validate.d.ts.map +0 -1
  390. package/src/iana/language-tag-extensions/validate.js +0 -36
  391. package/src/iana/languageRegistries.d.ts.map +0 -1
  392. package/src/iana/languageRegistries.js +0 -56
  393. package/src/iana/model.d.ts.map +0 -1
  394. package/src/iana/validate.d.ts.map +0 -1
  395. package/src/index.d.ts.map +0 -1
  396. package/src/unsd/areas.d.ts.map +0 -1
  397. package/src/unsd/areas.js +0 -96
  398. package/src/unsd/common.d.ts.map +0 -1
  399. package/src/unsd/csv/converters.d.ts.map +0 -1
  400. package/src/unsd/csv/converters.js +0 -70
  401. package/src/unsd/csv/index.d.ts.map +0 -1
  402. package/src/unsd/csv/model.d.ts.map +0 -1
  403. package/src/unsd/defaultRegistries.d.ts.map +0 -1
  404. package/src/unsd/defaultRegistries.js +0 -42
  405. package/src/unsd/index.d.ts.map +0 -1
  406. package/src/unsd/regionCodes.d.ts.map +0 -1
  407. package/src/unsd/regionCodes.js +0 -121
  408. package/src/unsd/regions.d.ts.map +0 -1
  409. package/src/unsd/regions.js +0 -77
  410. package/src/utils/index.d.ts.map +0 -1
  411. package/src/utils/jsonHelpers.d.ts.map +0 -1
  412. package/src/utils/validationHelpers.d.ts.map +0 -1
  413. package/src/utils/validationHelpers.js +0 -88
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/iana/language-subtags/index.ts"],"names":[],"mappings":"AAsBA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jarConverters.d.ts","sourceRoot":"","sources":["../../../../src/iana/language-subtags/jarConverters.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAIjC,OAAO,EAAyB,MAAM,EAAE,MAAM,eAAe,CAAC;AAO9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,sEAkB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,qEAkB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,oEAe5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,oEAe5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,qEAe7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,8EActC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,0EAclC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,kEAQzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,oGAAgC,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"}
@@ -1,213 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFyQ29udmVydGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pYW5hL2xhbmd1YWdlLXN1YnRhZ3MvamFyQ29udmVydGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlILHVGQUF5RTtBQUV6RSw0Q0FBOEQ7QUFDOUQscURBQXVFO0FBRXZFLDRDQUF3RDtBQUN4RCx3REFBbUU7QUFDbkUsNEVBQWdGO0FBRWhGOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxxQkFBVSxDQUFDLGVBQWUsQ0FDeEQ7SUFDSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxxQkFBVSxDQUFDLGVBQWUsQ0FBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUU7SUFDdkYsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtJQUN2RyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxxQkFBVSxDQUFDLFdBQVcsRUFBRTtJQUN2RSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSw2QkFBZ0IsRUFBRTtJQUNyRCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxxQkFBVSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO0lBQ2pGLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLDZCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7SUFDL0UsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFD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QSxjQUFjLEdBQUcscUJBQVUsQ0FBQyxtQkFBbUIsQ0FBdUIsTUFBTSxFQUFFO0lBQ3ZGLFFBQVEsRUFBRSwwQkFBa0I7SUFDNUIsT0FBTyxFQUFFLHlCQUFpQjtJQUMxQixNQUFNLEVBQUUsd0JBQWdCO0lBQ3hCLE1BQU0sRUFBRSx3QkFBZ0I7SUFDeEIsT0FBTyxFQUFFLHlCQUFpQjtJQUMxQixhQUFhLEVBQUUsa0NBQTBCO0lBQ3pDLFNBQVMsRUFBRSw4QkFBc0I7Q0FDcEMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDVSxRQUFBLFlBQVksR0FBRyxJQUFBLDBCQUFhLEVBQUMsc0JBQWMsQ0FBQyxDQUFDO0FBRTFEOzs7Ozs7R0FNRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLElBQVk7SUFDdkQsT0FBTyxJQUFBLDBCQUFtQixFQUFDLElBQUksRUFBRSxvQkFBWSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUZELHdFQUVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsSUFBWTtJQUN0RCxPQUFPLG9CQUFTLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1FBQ2xELHFCQUFxQixFQUFFLENBQUM7S0FDM0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sSUFBQSwyQ0FBMkIsRUFBQyxzQkFBYyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVBELHNFQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCAqIGFzIEl0ZW1zIGZyb20gJy4vbW9kZWwnO1xuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvbW9kZWwnO1xuaW1wb3J0ICogYXMgVGFnQ29udmVydGVycyBmcm9tICcuLi9qYXIvbGFuZ3VhZ2Utc3VidGFncy90YWdzL2NvbnZlcnRlcnMnO1xuXG5pbXBvcnQgeyBDb252ZXJ0ZXJzLCBSZWNvcmRKYXIsIFJlc3VsdCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgZGF0ZWRSZWdpc3RyeSwgeWVhck1vbnRoRGF5U3BlYyB9IGZyb20gJy4uL2NvbW1vbi9jb252ZXJ0ZXJzJztcblxuaW1wb3J0IHsgY29udmVydEpzb25GaWxlU3luYyB9IGZyb20gJ0BmZ3YvdHMtanNvbi9maWxlJztcbmltcG9ydCB7IGRhdGVkUmVnaXN0cnlGcm9tSmFyUmVjb3JkcyB9IGZyb20gJy4uL2phci9qYXJDb252ZXJ0ZXJzJztcbmltcG9ydCB7IHJlZ2lzdHJ5U2NvcGVUeXBlIH0gZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvY29udmVydGVycyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkTGFuZ3VhZ2UgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5MYW5ndWFnZVN1YnRhZ1JlZ2lzdHJ5RW50cnksIEl0ZW1zLlJlZ2lzdGVyZWRMYW5ndWFnZT4oXG4gICAge1xuICAgICAgICB0eXBlOiB7IGZyb206ICdUeXBlJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTwnbGFuZ3VhZ2UnPihbJ2xhbmd1YWdlJ10pIH0sXG4gICAgICAgIHN1YnRhZzogeyBmcm9tOiAnU3VidGFnJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLnRhZ09yU3RhcnRPZlRhZ1JhbmdlKFRhZ0NvbnZlcnRlcnMubGFuZ3VhZ2VTdWJ0YWcpIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7IGZyb206ICdEZXNjcmlwdGlvbicsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSB9LFxuICAgICAgICBhZGRlZDogeyBmcm9tOiAnQWRkZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMgfSxcbiAgICAgICAgY29tbWVudHM6IHsgZnJvbTogJ0NvbW1lbnRzJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5LCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBkZXByZWNhdGVkOiB7IGZyb206ICdEZXByZWNhdGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBtYWNyb2xhbmd1YWdlOiB7IGZyb206ICdNYWNyb2xhbmd1YWdlJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmxhbmd1YWdlU3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBwcmVmZXJyZWRWYWx1ZTogeyBmcm9tOiAnUHJlZmVycmVkLVZhbHVlJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmxhbmd1YWdlU3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBzY29wZTogeyBmcm9tOiAnU2NvcGUnLCBjb252ZXJ0ZXI6IHJlZ2lzdHJ5U2NvcGVUeXBlLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBzdXBwcmVzc1NjcmlwdDogeyBmcm9tOiAnU3VwcHJlc3MtU2NyaXB0JywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLnNjcmlwdFN1YnRhZywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgc3VidGFnUmFuZ2VFbmQ6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5lbmRPZlRhZ1JhbmdlT3JVbmRlZmluZWQoVGFnQ29udmVydGVycy5sYW5ndWFnZVN1YnRhZyksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdsYW5ndWFnZSBzdWJ0YWcnLFxuICAgIH1cbik7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkRXh0TGFuZyA9IENvbnZlcnRlcnMudHJhbnNmb3JtT2JqZWN0PE1vZGVsLkV4dExhbmdTdWJ0YWdSZWdpc3RyeUVudHJ5LCBJdGVtcy5SZWdpc3RlcmVkRXh0TGFuZz4oXG4gICAge1xuICAgICAgICB0eXBlOiB7IGZyb206ICdUeXBlJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTwnZXh0bGFuZyc+KFsnZXh0bGFuZyddKSB9LFxuICAgICAgICBzdWJ0YWc6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5leHRsYW5nU3VidGFnIH0sXG4gICAgICAgIHByZWZlcnJlZFZhbHVlOiB7IGZyb206ICdQcmVmZXJyZWQtVmFsdWUnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlIH0sXG4gICAgICAgIHByZWZpeDogeyBmcm9tOiAnUHJlZml4JywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmV4dGxhbmdQcmVmaXggfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgZnJvbTogJ0Rlc2NyaXB0aW9uJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5IH0sXG4gICAgICAgIGFkZGVkOiB7IGZyb206ICdBZGRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYyB9LFxuICAgICAgICBjb21tZW50czogeyBmcm9tOiAnQ29tbWVudHMnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IHsgZnJvbTogJ0RlcHJlY2F0ZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIG1hY3JvbGFuZ3VhZ2U6IHsgZnJvbTogJ01hY3JvbGFuZ3VhZ2UnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMubGFuZ3VhZ2VTdWJ0YWcsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHNjb3BlOiB7IGZyb206ICdTY29wZScsIGNvbnZlcnRlcjogcmVnaXN0cnlTY29wZVR5cGUsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHN1cHByZXNzU2NyaXB0OiB7IGZyb206ICdTdXBwcmVzcy1TY3JpcHQnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuc2NyaXB0U3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnZXh0bGFuZyBzdWJ0YWcnLFxuICAgIH1cbik7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkU2NyaXB0ID0gQ29udmVydGVycy50cmFuc2Zvcm1PYmplY3Q8TW9kZWwuU2NyaXB0U3VidGFnUmVnaXN0cnlFbnRyeSwgSXRlbXMuUmVnaXN0ZXJlZFNjcmlwdD4oXG4gICAge1xuICAgICAgICB0eXBlOiB7IGZyb206ICdUeXBlJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTwnc2NyaXB0Jz4oWydzY3JpcHQnXSkgfSxcbiAgICAgICAgc3VidGFnOiB7IGZyb206ICdTdWJ0YWcnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMudGFnT3JTdGFydE9mVGFnUmFuZ2UoVGFnQ29udmVydGVycy5zY3JpcHRTdWJ0YWcpIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7IGZyb206ICdEZXNjcmlwdGlvbicsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSB9LFxuICAgICAgICBhZGRlZDogeyBmcm9tOiAnQWRkZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMgfSxcbiAgICAgICAgY29tbWVudHM6IHsgZnJvbTogJ0NvbW1lbnRzJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5LCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBkZXByZWNhdGVkOiB7IGZyb206ICdEZXByZWNhdGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBwcmVmZXJyZWRWYWx1ZTogeyBmcm9tOiAnUHJlZmVycmVkLVZhbHVlJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLnNjcmlwdFN1YnRhZywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgc3VidGFnUmFuZ2VFbmQ6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5lbmRPZlRhZ1JhbmdlT3JVbmRlZmluZWQoVGFnQ29udmVydGVycy5zY3JpcHRTdWJ0YWcpLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnc2NyaXB0IHN1YnRhZycsXG4gICAgfVxuKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyZWRSZWdpb24gPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5SZWdpb25TdWJ0YWdSZWdpc3RyeUVudHJ5LCBJdGVtcy5SZWdpc3RlcmVkUmVnaW9uPihcbiAgICB7XG4gICAgICAgIHR5cGU6IHsgZnJvbTogJ1R5cGUnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuZW51bWVyYXRlZFZhbHVlPCdyZWdpb24nPihbJ3JlZ2lvbiddKSB9LFxuICAgICAgICBzdWJ0YWc6IHsgZnJvbTogJ1N1YnRhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy50YWdPclN0YXJ0T2ZUYWdSYW5nZShUYWdDb252ZXJ0ZXJzLnJlZ2lvblN1YnRhZykgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgZnJvbTogJ0Rlc2NyaXB0aW9uJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5IH0sXG4gICAgICAgIGFkZGVkOiB7IGZyb206ICdBZGRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYyB9LFxuICAgICAgICBjb21tZW50czogeyBmcm9tOiAnQ29tbWVudHMnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IHsgZnJvbTogJ0RlcHJlY2F0ZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHByZWZlcnJlZFZhbHVlOiB7IGZyb206ICdQcmVmZXJyZWQtVmFsdWUnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMucmVnaW9uU3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBzdWJ0YWdSYW5nZUVuZDogeyBmcm9tOiAnU3VidGFnJywgY29udmVydGVyOiBUYWdDb252ZXJ0ZXJzLmVuZE9mVGFnUmFuZ2VPclVuZGVmaW5lZChUYWdDb252ZXJ0ZXJzLnJlZ2lvblN1YnRhZyksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdyZWdpb24gc3VidGFnJyxcbiAgICB9XG4pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJlZFZhcmlhbnQgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5WYXJpYW50U3VidGFnUmVnaXN0cnlFbnRyeSwgSXRlbXMuUmVnaXN0ZXJlZFZhcmlhbnQ+KFxuICAgIHtcbiAgICAgICAgdHlwZTogeyBmcm9tOiAnVHlwZScsIGNvbnZlcnRlcjogQ29udmVydGVycy5lbnVtZXJhdGVkVmFsdWU8J3ZhcmlhbnQnPihbJ3ZhcmlhbnQnXSkgfSxcbiAgICAgICAgc3VidGFnOiB7IGZyb206ICdTdWJ0YWcnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMudmFyaWFudFN1YnRhZyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyBmcm9tOiAnRGVzY3JpcHRpb24nLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXkgfSxcbiAgICAgICAgYWRkZWQ6IHsgZnJvbTogJ0FkZGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjIH0sXG4gICAgICAgIGNvbW1lbnRzOiB7IGZyb206ICdDb21tZW50cycsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSwgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgZGVwcmVjYXRlZDogeyBmcm9tOiAnRGVwcmVjYXRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgcHJlZmVycmVkVmFsdWU6IHsgZnJvbTogJ1ByZWZlcnJlZC1WYWx1ZScsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy52YXJpYW50U3VidGFnLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBwcmVmaXg6IHsgZnJvbTogJ1ByZWZpeCcsIGNvbnZlcnRlcjogQ29udmVydGVycy5hcnJheU9mKFRhZ0NvbnZlcnRlcnMuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlKSwgb3B0aW9uYWw6IHRydWUgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ3ZhcmlhbnQgc3VidGFnJyxcbiAgICB9XG4pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWcgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5HcmFuZGZhdGhlcmVkVGFnUmVnaXN0cnlFbnRyeSwgSXRlbXMuUmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWc+KFxuICAgIHtcbiAgICAgICAgdHlwZTogeyBmcm9tOiAnVHlwZScsIGNvbnZlcnRlcjogQ29udmVydGVycy5lbnVtZXJhdGVkVmFsdWU8J2dyYW5kZmF0aGVyZWQnPihbJ2dyYW5kZmF0aGVyZWQnXSkgfSxcbiAgICAgICAgdGFnOiB7IGZyb206ICdUYWcnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuZ3JhbmRmYXRoZXJlZFRhZyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyBmcm9tOiAnRGVzY3JpcHRpb24nLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXkgfSxcbiAgICAgICAgYWRkZWQ6IHsgZnJvbTogJ0FkZGVkJywgY29udmVydGVyOiB5ZWFyTW9udGhEYXlTcGVjIH0sXG4gICAgICAgIGNvbW1lbnRzOiB7IGZyb206ICdDb21tZW50cycsIGNvbnZlcnRlcjogQ29udmVydGVycy5zdHJpbmdBcnJheSwgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgZGVwcmVjYXRlZDogeyBmcm9tOiAnRGVwcmVjYXRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgcHJlZmVycmVkVmFsdWU6IHsgZnJvbTogJ1ByZWZlcnJlZC1WYWx1ZScsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5leHRlbmRlZExhbmd1YWdlUmFuZ2UsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdncmFuZGZhdGhlcmVkIHRhZycsXG4gICAgfVxuKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyZWRSZWR1bmRhbnRUYWcgPSBDb252ZXJ0ZXJzLnRyYW5zZm9ybU9iamVjdDxNb2RlbC5SZWR1bmRhbnRUYWdSZWdpc3RyeUVudHJ5LCBJdGVtcy5SZWdpc3RlcmVkUmVkdW5kYW50VGFnPihcbiAgICB7XG4gICAgICAgIHR5cGU6IHsgZnJvbTogJ1R5cGUnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuZW51bWVyYXRlZFZhbHVlPCdyZWR1bmRhbnQnPihbJ3JlZHVuZGFudCddKSB9LFxuICAgICAgICB0YWc6IHsgZnJvbTogJ1RhZycsIGNvbnZlcnRlcjogVGFnQ29udmVydGVycy5yZWR1bmRhbnRUYWcgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgZnJvbTogJ0Rlc2NyaXB0aW9uJywgY29udmVydGVyOiBDb252ZXJ0ZXJzLnN0cmluZ0FycmF5IH0sXG4gICAgICAgIGFkZGVkOiB7IGZyb206ICdBZGRlZCcsIGNvbnZlcnRlcjogeWVhck1vbnRoRGF5U3BlYyB9LFxuICAgICAgICBjb21tZW50czogeyBmcm9tOiAnQ29tbWVudHMnLCBjb252ZXJ0ZXI6IENvbnZlcnRlcnMuc3RyaW5nQXJyYXksIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIGRlcHJlY2F0ZWQ6IHsgZnJvbTogJ0RlcHJlY2F0ZWQnLCBjb252ZXJ0ZXI6IHllYXJNb250aERheVNwZWMsIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIHByZWZlcnJlZFZhbHVlOiB7IGZyb206ICdQcmVmZXJyZWQtVmFsdWUnLCBjb252ZXJ0ZXI6IFRhZ0NvbnZlcnRlcnMuZXh0ZW5kZWRMYW5ndWFnZVJhbmdlLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAncmVkdW5kYW50IHRhZycsXG4gICAgfVxuKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyZWRJdGVtID0gQ29udmVydGVycy5kaXNjcmltaW5hdGVkT2JqZWN0PEl0ZW1zLlJlZ2lzdGVyZWRJdGVtPignVHlwZScsIHtcbiAgICBsYW5ndWFnZTogcmVnaXN0ZXJlZExhbmd1YWdlLFxuICAgIGV4dGxhbmc6IHJlZ2lzdGVyZWRFeHRMYW5nLFxuICAgIHNjcmlwdDogcmVnaXN0ZXJlZFNjcmlwdCxcbiAgICByZWdpb246IHJlZ2lzdGVyZWRSZWdpb24sXG4gICAgdmFyaWFudDogcmVnaXN0ZXJlZFZhcmlhbnQsXG4gICAgZ3JhbmRmYXRoZXJlZDogcmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWcsXG4gICAgcmVkdW5kYW50OiByZWdpc3RlcmVkUmVkdW5kYW50VGFnLFxufSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RyeUZpbGUgPSBkYXRlZFJlZ2lzdHJ5KHJlZ2lzdGVyZWRJdGVtKTtcblxuLyoqXG4gKiBMb2FkcyBhIEpTT04tZm9ybWF0IGxhbmd1YWdlIHN1YnRhZyByZWdpc3RyeSBmaWxlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgc3RyaW5nIHBhdGggZnJvbSB3aGljaCB0aGUgcmVnaXN0cnkgaXMgdG8gYmUgbG9hZGVkLlxuICogQHJldHVybnMgYFN1Y2Nlc3NgIHdpdGggdGhlIHJlc3VsdGluZyB7QGxpbmsgSWFuYS5MYW5ndWFnZVN1YnRhZ3MuTW9kZWwuUmVnaXN0cnlGaWxlIHwgcmVnaXN0cnkgZmlsZX1cbiAqIG9yIGBGYWlsdXJlYCB3aXRoIGRldGFpbHMgaWYgYW4gZXJyb3Igb2NjdXJzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkSnNvblN1YnRhZ1JlZ2lzdHJ5RmlsZVN5bmMocGF0aDogc3RyaW5nKTogUmVzdWx0PEl0ZW1zLlJlZ2lzdHJ5RmlsZT4ge1xuICAgIHJldHVybiBjb252ZXJ0SnNvbkZpbGVTeW5jKHBhdGgsIHJlZ2lzdHJ5RmlsZSk7XG59XG5cbi8qKlxuICogTG9hZHMgYSB0ZXh0IChKQVIpIGZvcm1hdCBsYW5ndWFnZSBzdWJ0YWcgcmVnaXN0cnkgZmlsZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHN0cmluZyBwYXRoIGZyb20gd2hpY2ggdGhlIHJlZ2lzdHJ5IGlzIHRvIGJlIGxvYWRlZC5cbiAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIHRoZSByZXN1bHRpbmcge0BsaW5rIElhbmEuTGFuZ3VhZ2VTdWJ0YWdzLk1vZGVsLlJlZ2lzdHJ5RmlsZSB8IHJlZ2lzdHJ5IGZpbGV9XG4gKiBvciBgRmFpbHVyZWAgd2l0aCBkZXRhaWxzIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFR4dFN1YnRhZ1JlZ2lzdHJ5RmlsZVN5bmMocGF0aDogc3RyaW5nKTogUmVzdWx0PEl0ZW1zLlJlZ2lzdHJ5RmlsZT4ge1xuICAgIHJldHVybiBSZWNvcmRKYXIucmVhZFJlY29yZEphckZpbGVTeW5jKHBhdGgsIHtcbiAgICAgICAgYXJyYXlGaWVsZHM6IFsnQ29tbWVudHMnLCAnRGVzY3JpcHRpb24nLCAnUHJlZml4J10sXG4gICAgICAgIGZpeGVkQ29udGludWF0aW9uU2l6ZTogMSxcbiAgICB9KS5vblN1Y2Nlc3MoKGphcikgPT4ge1xuICAgICAgICByZXR1cm4gZGF0ZWRSZWdpc3RyeUZyb21KYXJSZWNvcmRzKHJlZ2lzdGVyZWRJdGVtKS5jb252ZXJ0KGphcik7XG4gICAgfSk7XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/iana/language-subtags/model.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWFuYS9sYW5ndWFnZS1zdWJ0YWdzL21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvbW9kZWwnO1xuXG5pbXBvcnQge1xuICAgIEV4dExhbmdTdWJ0YWcsXG4gICAgRXh0ZW5kZWRMYW5ndWFnZVJhbmdlLFxuICAgIEdyYW5kZmF0aGVyZWRUYWcsXG4gICAgTGFuZ3VhZ2VTdWJ0YWcsXG4gICAgUmVkdW5kYW50VGFnLFxuICAgIFJlZ2lvblN1YnRhZyxcbiAgICBTY3JpcHRTdWJ0YWcsXG4gICAgVmFyaWFudFN1YnRhZyxcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5pbXBvcnQgeyBEYXRlZFJlZ2lzdHJ5IH0gZnJvbSAnLi4vY29tbW9uL21vZGVsJztcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFN1YnRhZzxUVFlQRSBleHRlbmRzIE1vZGVsLlJlZ2lzdHJ5RW50cnlUeXBlLCBUVEFHIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgcmVhZG9ubHkgdHlwZTogVFRZUEU7XG4gICAgcmVhZG9ubHkgc3VidGFnOiBUVEFHO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFN1YnRhZ1dpdGhSYW5nZTxUVFlQRSBleHRlbmRzIE1vZGVsLlJlZ2lzdHJ5RW50cnlUeXBlLCBUVEFHIGV4dGVuZHMgc3RyaW5nPlxuICAgIGV4dGVuZHMgUmVnaXN0ZXJlZFN1YnRhZzxUVFlQRSwgVFRBRz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6IFRUWVBFO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogVFRBRztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IFRUQUc7XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyZWRUYWc8VFRZUEUgZXh0ZW5kcyBNb2RlbC5SZWdpc3RyeUVudHJ5VHlwZSwgVFRBRyBleHRlbmRzIHN0cmluZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6IFRUWVBFO1xuICAgIHJlYWRvbmx5IHRhZzogVFRBRztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBSZWdpc3RlcmVkVGFnT3JTdWJ0YWc8VFRZUEUgZXh0ZW5kcyBNb2RlbC5SZWdpc3RyeUVudHJ5VHlwZSwgVFRBRyBleHRlbmRzIHN0cmluZz4gPVxuICAgIHwgUmVnaXN0ZXJlZFN1YnRhZzxUVFlQRSwgVFRBRz5cbiAgICB8IFJlZ2lzdGVyZWRTdWJ0YWdXaXRoUmFuZ2U8VFRZUEUsIFRUQUc+XG4gICAgfCBSZWdpc3RlcmVkVGFnPFRUWVBFLCBUVEFHPjtcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZExhbmd1YWdlIGV4dGVuZHMgUmVnaXN0ZXJlZFN1YnRhZ1dpdGhSYW5nZTwnbGFuZ3VhZ2UnLCBMYW5ndWFnZVN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdsYW5ndWFnZSc7XG4gICAgcmVhZG9ubHkgc3VidGFnOiBMYW5ndWFnZVN1YnRhZztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgYWRkZWQ6IE1vZGVsLlllYXJNb250aERheVNwZWM7XG5cbiAgICByZWFkb25seSBjb21tZW50cz86IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGRlcHJlY2F0ZWQ/OiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuXG4gICAgcmVhZG9ubHkgbWFjcm9sYW5ndWFnZT86IExhbmd1YWdlU3VidGFnO1xuICAgIHJlYWRvbmx5IHByZWZlcnJlZFZhbHVlPzogTGFuZ3VhZ2VTdWJ0YWc7XG4gICAgcmVhZG9ubHkgc2NvcGU/OiBNb2RlbC5SZWdpc3RyeUVudHJ5U2NvcGU7XG4gICAgcmVhZG9ubHkgc3VwcHJlc3NTY3JpcHQ/OiBTY3JpcHRTdWJ0YWc7XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IExhbmd1YWdlU3VidGFnO1xufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlcmVkRXh0TGFuZyBleHRlbmRzIFJlZ2lzdGVyZWRTdWJ0YWc8J2V4dGxhbmcnLCBFeHRMYW5nU3VidGFnPiB7XG4gICAgcmVhZG9ubHkgdHlwZTogJ2V4dGxhbmcnO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogRXh0TGFuZ1N1YnRhZztcbiAgICByZWFkb25seSBwcmVmZXJyZWRWYWx1ZTogRXh0ZW5kZWRMYW5ndWFnZVJhbmdlO1xuICAgIHJlYWRvbmx5IHByZWZpeDogTGFuZ3VhZ2VTdWJ0YWc7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGFkZGVkOiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuXG4gICAgcmVhZG9ubHkgY29tbWVudHM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBkZXByZWNhdGVkPzogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IG1hY3JvbGFuZ3VhZ2U/OiBMYW5ndWFnZVN1YnRhZztcbiAgICByZWFkb25seSBzY29wZT86IE1vZGVsLlJlZ2lzdHJ5RW50cnlTY29wZTtcbiAgICByZWFkb25seSBzdXBwcmVzc1NjcmlwdD86IFNjcmlwdFN1YnRhZztcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFNjcmlwdCBleHRlbmRzIFJlZ2lzdGVyZWRTdWJ0YWdXaXRoUmFuZ2U8J3NjcmlwdCcsIFNjcmlwdFN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdzY3JpcHQnO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogU2NyaXB0U3VidGFnO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhZGRlZDogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IGNvbW1lbnRzPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IE1vZGVsLlllYXJNb250aERheVNwZWM7XG4gICAgcmVhZG9ubHkgcHJlZmVycmVkVmFsdWU/OiBTY3JpcHRTdWJ0YWc7XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IFNjcmlwdFN1YnRhZztcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFJlZ2lvbiBleHRlbmRzIFJlZ2lzdGVyZWRTdWJ0YWdXaXRoUmFuZ2U8J3JlZ2lvbicsIFJlZ2lvblN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdyZWdpb24nO1xuICAgIHJlYWRvbmx5IHN1YnRhZzogUmVnaW9uU3VidGFnO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhZGRlZDogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IGNvbW1lbnRzPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IE1vZGVsLlllYXJNb250aERheVNwZWM7XG4gICAgcmVhZG9ubHkgcHJlZmVycmVkVmFsdWU/OiBSZWdpb25TdWJ0YWc7XG5cbiAgICByZWFkb25seSBzdWJ0YWdSYW5nZUVuZD86IFJlZ2lvblN1YnRhZztcbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFZhcmlhbnQgZXh0ZW5kcyBSZWdpc3RlcmVkU3VidGFnPCd2YXJpYW50JywgVmFyaWFudFN1YnRhZz4ge1xuICAgIHJlYWRvbmx5IHR5cGU6ICd2YXJpYW50JztcbiAgICByZWFkb25seSBzdWJ0YWc6IFZhcmlhbnRTdWJ0YWc7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGFkZGVkOiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuXG4gICAgcmVhZG9ubHkgY29tbWVudHM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBkZXByZWNhdGVkPzogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcbiAgICByZWFkb25seSBwcmVmZXJyZWRWYWx1ZT86IFZhcmlhbnRTdWJ0YWc7XG4gICAgcmVhZG9ubHkgcHJlZml4PzogRXh0ZW5kZWRMYW5ndWFnZVJhbmdlW107XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyZWRHcmFuZGZhdGhlcmVkVGFnIGV4dGVuZHMgUmVnaXN0ZXJlZFRhZzwnZ3JhbmRmYXRoZXJlZCcsIEdyYW5kZmF0aGVyZWRUYWc+IHtcbiAgICByZWFkb25seSB0eXBlOiAnZ3JhbmRmYXRoZXJlZCc7XG4gICAgcmVhZG9ubHkgdGFnOiBHcmFuZGZhdGhlcmVkVGFnO1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmdbXTtcbiAgICByZWFkb25seSBhZGRlZDogTW9kZWwuWWVhck1vbnRoRGF5U3BlYztcblxuICAgIHJlYWRvbmx5IGNvbW1lbnRzPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IE1vZGVsLlllYXJNb250aERheVNwZWM7XG4gICAgcmVhZG9ubHkgcHJlZmVycmVkVmFsdWU/OiBFeHRlbmRlZExhbmd1YWdlUmFuZ2U7XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyZWRSZWR1bmRhbnRUYWcgZXh0ZW5kcyBSZWdpc3RlcmVkVGFnPCdyZWR1bmRhbnQnLCBSZWR1bmRhbnRUYWc+IHtcbiAgICByZWFkb25seSB0eXBlOiAncmVkdW5kYW50JztcbiAgICByZWFkb25seSB0YWc6IFJlZHVuZGFudFRhZztcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgYWRkZWQ6IE1vZGVsLlllYXJNb250aERheVNwZWM7XG5cbiAgICByZWFkb25seSBjb21tZW50cz86IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGRlcHJlY2F0ZWQ/OiBNb2RlbC5ZZWFyTW9udGhEYXlTcGVjO1xuICAgIHJlYWRvbmx5IHByZWZlcnJlZFZhbHVlPzogRXh0ZW5kZWRMYW5ndWFnZVJhbmdlO1xufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgUmVnaXN0ZXJlZFN1YnRhZ0l0ZW0gPSBSZWdpc3RlcmVkTGFuZ3VhZ2UgfCBSZWdpc3RlcmVkRXh0TGFuZyB8IFJlZ2lzdGVyZWRTY3JpcHQgfCBSZWdpc3RlcmVkUmVnaW9uIHwgUmVnaXN0ZXJlZFZhcmlhbnQ7XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBSZWdpc3RlcmVkVGFnSXRlbSA9IFJlZ2lzdGVyZWRHcmFuZGZhdGhlcmVkVGFnIHwgUmVnaXN0ZXJlZFJlZHVuZGFudFRhZztcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFJlZ2lzdGVyZWRJdGVtID0gUmVnaXN0ZXJlZFN1YnRhZ0l0ZW0gfCBSZWdpc3RlcmVkVGFnSXRlbTtcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFJlZ2lzdHJ5RmlsZSA9IERhdGVkUmVnaXN0cnk8UmVnaXN0ZXJlZEl0ZW0+O1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../../src/iana/language-subtags/scope.ts"],"names":[],"mappings":"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"}
@@ -1,179 +0,0 @@
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
- exports.RedundantTagScope = exports.GrandfatheredTagScope = exports.VariantSubtagScope = exports.RegionSubtagScope = exports.ScriptSubtagScope = exports.ExtLangSubtagScope = exports.LanguageSubtagScope = void 0;
25
- const tags_1 = require("../jar/language-subtags/tags");
26
- const ts_utils_1 = require("@fgv/ts-utils");
27
- const utils_1 = require("../../utils");
28
- const registeredItems_1 = require("../common/registeredItems");
29
- /**
30
- * @internal
31
- */
32
- class SubtagScope extends registeredItems_1.RegisteredItemScope {
33
- constructor(type, validate) {
34
- super(type, validate);
35
- }
36
- add(entry) {
37
- return this._validateEntry(entry).onSuccess(() => {
38
- this._items.set(entry.subtag, entry);
39
- return (0, ts_utils_1.succeed)(true);
40
- });
41
- }
42
- _validateEntry(entry) {
43
- return this._validateKey(entry.subtag);
44
- }
45
- }
46
- /**
47
- * @internal
48
- */
49
- class SubtagScopeWithRange extends SubtagScope {
50
- constructor(type, validate) {
51
- super(type, validate);
52
- }
53
- add(entry) {
54
- return this._validateEntry(entry).onSuccess(() => {
55
- return this._addRange(entry);
56
- });
57
- }
58
- _validateEntry(entry) {
59
- var _a;
60
- const start = entry.subtag;
61
- const end = (_a = entry.subtagRangeEnd) !== null && _a !== void 0 ? _a : '';
62
- if (end) {
63
- return (0, ts_utils_1.allSucceed)([this._validateKey(start), this._validateKey(end), this._validateRange(start, end)], true);
64
- }
65
- return this._validateKey(start);
66
- }
67
- _validateRange(start, end) {
68
- return start < end ? (0, ts_utils_1.succeed)(true) : (0, ts_utils_1.fail)(`${start}..${end}: invalid range`);
69
- }
70
- _addRange(entry) {
71
- this._items.set(entry.subtag, entry);
72
- if (entry.subtagRangeEnd) {
73
- let next = this._nextInRange(entry.subtag, entry.subtagRangeEnd);
74
- while (next) {
75
- const e = (0, utils_1.sanitizeJson)({ ...entry, subtag: next, subtagRangeEnd: undefined });
76
- this._items.set(next, e);
77
- next = this._nextInRange(next, entry.subtagRangeEnd);
78
- }
79
- }
80
- return (0, ts_utils_1.succeed)(true);
81
- }
82
- _nextInRange(current, end) {
83
- if (current >= end) {
84
- return undefined;
85
- }
86
- const next = Array.from(current);
87
- for (let i = next.length - 1; i >= 0; i--) {
88
- if (next[i].toLowerCase() < 'z') {
89
- next[i] = String.fromCharCode(next[i].charCodeAt(0) + 1);
90
- break;
91
- }
92
- else {
93
- next[i] = 'a';
94
- }
95
- }
96
- return this._validate.toCanonical(next.join('')).getValueOrThrow();
97
- }
98
- }
99
- /**
100
- * @internal
101
- */
102
- class TagScope extends registeredItems_1.RegisteredItemScope {
103
- constructor(type, validate) {
104
- super(type, validate);
105
- }
106
- add(entry) {
107
- return this._validateEntry(entry).onSuccess(() => {
108
- this._items.set(entry.tag, entry);
109
- return (0, ts_utils_1.succeed)(true);
110
- });
111
- }
112
- _validateEntry(entry) {
113
- return this._validateKey(entry.tag);
114
- }
115
- }
116
- /**
117
- * @public
118
- */
119
- class LanguageSubtagScope extends SubtagScopeWithRange {
120
- constructor() {
121
- super('language', tags_1.Validate.languageSubtag);
122
- }
123
- }
124
- exports.LanguageSubtagScope = LanguageSubtagScope;
125
- /**
126
- * @public
127
- */
128
- class ExtLangSubtagScope extends SubtagScope {
129
- constructor() {
130
- super('extlang', tags_1.Validate.extlangSubtag);
131
- }
132
- }
133
- exports.ExtLangSubtagScope = ExtLangSubtagScope;
134
- /**
135
- * @public
136
- */
137
- class ScriptSubtagScope extends SubtagScopeWithRange {
138
- constructor() {
139
- super('script', tags_1.Validate.scriptSubtag);
140
- }
141
- }
142
- exports.ScriptSubtagScope = ScriptSubtagScope;
143
- /**
144
- * @public
145
- */
146
- class RegionSubtagScope extends SubtagScopeWithRange {
147
- constructor() {
148
- super('region', tags_1.Validate.regionSubtag);
149
- }
150
- }
151
- exports.RegionSubtagScope = RegionSubtagScope;
152
- /**
153
- * @public
154
- */
155
- class VariantSubtagScope extends SubtagScope {
156
- constructor() {
157
- super('variant', tags_1.Validate.variantSubtag);
158
- }
159
- }
160
- exports.VariantSubtagScope = VariantSubtagScope;
161
- /**
162
- * @public
163
- */
164
- class GrandfatheredTagScope extends TagScope {
165
- constructor() {
166
- super('grandfathered', tags_1.Validate.grandfatheredTag);
167
- }
168
- }
169
- exports.GrandfatheredTagScope = GrandfatheredTagScope;
170
- /**
171
- * @public
172
- */
173
- class RedundantTagScope extends TagScope {
174
- constructor() {
175
- super('redundant', tags_1.Validate.redundantTag);
176
- }
177
- }
178
- exports.RedundantTagScope = RedundantTagScope;
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWFuYS9sYW5ndWFnZS1zdWJ0YWdzL3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7OztBQUtILHVEQVNzQztBQUN0Qyw0Q0FBa0U7QUFDbEUsdUNBQThEO0FBRTlELCtEQUFnRTtBQUVoRTs7R0FFRztBQUNILE1BQU0sV0FJSixTQUFRLHFDQUF1QztJQUM3QyxZQUFzQixJQUFXLEVBQUUsUUFBaUM7UUFDaEUsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sR0FBRyxDQUFDLEtBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDSjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxvQkFJSixTQUFRLFdBQStCO0lBQ3JDLFlBQXNCLElBQVcsRUFBRSxRQUFpQztRQUNoRSxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxHQUFHLENBQUMsS0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFD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QyxTQUFTLEVBQUUsZUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDSjtBQUpELGdEQUlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLFFBQTZFO0lBQ3BIO1FBQ0ksS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0o7QUFKRCxzREFJQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxRQUFpRTtJQUNwRztRQUNJLEtBQUssQ0FBQyxXQUFXLEVBQUUsZUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQUpELDhDQUlDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCAqIGFzIEl0ZW1zIGZyb20gJy4vbW9kZWwnO1xuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi4vamFyL2xhbmd1YWdlLXN1YnRhZ3MvcmVnaXN0cnkvbW9kZWwnO1xuXG5pbXBvcnQge1xuICAgIEV4dExhbmdTdWJ0YWcsXG4gICAgR3JhbmRmYXRoZXJlZFRhZyxcbiAgICBMYW5ndWFnZVN1YnRhZyxcbiAgICBSZWR1bmRhbnRUYWcsXG4gICAgUmVnaW9uU3VidGFnLFxuICAgIFNjcmlwdFN1YnRhZyxcbiAgICBWYWxpZGF0ZSxcbiAgICBWYXJpYW50U3VidGFnLFxufSBmcm9tICcuLi9qYXIvbGFuZ3VhZ2Utc3VidGFncy90YWdzJztcbmltcG9ydCB7IFJlc3VsdCwgYWxsU3VjY2VlZCwgZmFpbCwgc3VjY2VlZCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkhlbHBlcnMsIHNhbml0aXplSnNvbiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgUmVnaXN0ZXJlZEl0ZW1TY29wZSB9IGZyb20gJy4uL2NvbW1vbi9yZWdpc3RlcmVkSXRlbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5jbGFzcyBTdWJ0YWdTY29wZTxcbiAgICBUVFlQRSBleHRlbmRzIE1vZGVsLlJlZ2lzdHJ5RW50cnlUeXBlLFxuICAgIFRUQUcgZXh0ZW5kcyBzdHJpbmcsXG4gICAgVElURU0gZXh0ZW5kcyBJdGVtcy5SZWdpc3RlcmVkU3VidGFnPFRUWVBFLCBUVEFHPlxuPiBleHRlbmRzIFJlZ2lzdGVyZWRJdGVtU2NvcGU8VFRZUEUsIFRUQUcsIFRJVEVNPiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHR5cGU6IFRUWVBFLCB2YWxpZGF0ZTogVmFsaWRhdGlvbkhlbHBlcnM8VFRBRz4pIHtcbiAgICAgICAgc3VwZXIodHlwZSwgdmFsaWRhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQoZW50cnk6IFRJVEVNKTogUmVzdWx0PHRydWU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRW50cnkoZW50cnkpLm9uU3VjY2VzcygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtcy5zZXQoZW50cnkuc3VidGFnLCBlbnRyeSk7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF92YWxpZGF0ZUVudHJ5KGVudHJ5OiBUSVRFTSk6IFJlc3VsdDx0cnVlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUtleShlbnRyeS5zdWJ0YWcpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuY2xhc3MgU3VidGFnU2NvcGVXaXRoUmFuZ2U8XG4gICAgVFRZUEUgZXh0ZW5kcyBNb2RlbC5SZWdpc3RyeUVudHJ5VHlwZSxcbiAgICBUVEFHIGV4dGVuZHMgc3RyaW5nLFxuICAgIFRJVEVNIGV4dGVuZHMgSXRlbXMuUmVnaXN0ZXJlZFN1YnRhZ1dpdGhSYW5nZTxUVFlQRSwgVFRBRz5cbj4gZXh0ZW5kcyBTdWJ0YWdTY29wZTxUVFlQRSwgVFRBRywgVElURU0+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IodHlwZTogVFRZUEUsIHZhbGlkYXRlOiBWYWxpZGF0aW9uSGVscGVyczxUVEFHPikge1xuICAgICAgICBzdXBlcih0eXBlLCB2YWxpZGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZChlbnRyeTogVElURU0pOiBSZXN1bHQ8dHJ1ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVFbnRyeShlbnRyeSkub25TdWNjZXNzKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZGRSYW5nZShlbnRyeSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdmFsaWRhdGVFbnRyeShlbnRyeTogVElURU0pOiBSZXN1bHQ8dHJ1ZT4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IGVudHJ5LnN1YnRhZztcbiAgICAgICAgY29uc3QgZW5kID0gZW50cnkuc3VidGFnUmFuZ2VFbmQgPz8gKCcnIGFzIFRUQUcpO1xuICAgICAgICBpZiAoZW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxsU3VjY2VlZChbdGhpcy5fdmFsaWRhdGVLZXkoc3RhcnQpLCB0aGlzLl92YWxpZGF0ZUtleShlbmQpLCB0aGlzLl92YWxpZGF0ZVJhbmdlKHN0YXJ0LCBlbmQpXSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlS2V5KHN0YXJ0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRlUmFuZ2Uoc3RhcnQ6IFRUQUcsIGVuZDogVFRBRyk6IFJlc3VsdDx0cnVlPiB7XG4gICAgICAgIHJldHVybiBzdGFydCA8IGVuZCA/IHN1Y2NlZWQodHJ1ZSkgOiBmYWlsKGAke3N0YXJ0fS4uJHtlbmR9OiBpbnZhbGlkIHJhbmdlYCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9hZGRSYW5nZShlbnRyeTogVElURU0pOiBSZXN1bHQ8dHJ1ZT4ge1xuICAgICAgICB0aGlzLl9pdGVtcy5zZXQoZW50cnkuc3VidGFnLCBlbnRyeSk7XG4gICAgICAgIGlmIChlbnRyeS5zdWJ0YWdSYW5nZUVuZCkge1xuICAgICAgICAgICAgbGV0IG5leHQgPSB0aGlzLl9uZXh0SW5SYW5nZShlbnRyeS5zdWJ0YWcsIGVudHJ5LnN1YnRhZ1JhbmdlRW5kKTtcbiAgICAgICAgICAgIHdoaWxlIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHNhbml0aXplSnNvbih7IC4uLmVudHJ5LCBzdWJ0YWc6IG5leHQsIHN1YnRhZ1JhbmdlRW5kOiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXRlbXMuc2V0KG5leHQsIGUpO1xuICAgICAgICAgICAgICAgIG5leHQgPSB0aGlzLl9uZXh0SW5SYW5nZShuZXh0LCBlbnRyeS5zdWJ0YWdSYW5nZUVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9uZXh0SW5SYW5nZShjdXJyZW50OiBUVEFHLCBlbmQ6IFRUQUcpOiBUVEFHIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPj0gZW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHQgPSBBcnJheS5mcm9tKGN1cnJlbnQpO1xuICAgICAgICBmb3IgKGxldCBpID0gbmV4dC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKG5leHRbaV0udG9Mb3dlckNhc2UoKSA8ICd6Jykge1xuICAgICAgICAgICAgICAgIG5leHRbaV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHRbaV0uY2hhckNvZGVBdCgwKSArIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0W2ldID0gJ2EnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZS50b0Nhbm9uaWNhbChuZXh0LmpvaW4oJycpKS5nZXRWYWx1ZU9yVGhyb3coKTtcbiAgICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmNsYXNzIFRhZ1Njb3BlPFxuICAgIFRUWVBFIGV4dGVuZHMgTW9kZWwuUmVnaXN0cnlFbnRyeVR5cGUsXG4gICAgVFRBRyBleHRlbmRzIHN0cmluZyxcbiAgICBUSVRFTSBleHRlbmRzIEl0ZW1zLlJlZ2lzdGVyZWRUYWc8VFRZUEUsIFRUQUc+XG4+IGV4dGVuZHMgUmVnaXN0ZXJlZEl0ZW1TY29wZTxUVFlQRSwgVFRBRywgVElURU0+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IodHlwZTogVFRZUEUsIHZhbGlkYXRlOiBWYWxpZGF0aW9uSGVscGVyczxUVEFHPikge1xuICAgICAgICBzdXBlcih0eXBlLCB2YWxpZGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZChlbnRyeTogVElURU0pOiBSZXN1bHQ8dHJ1ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVFbnRyeShlbnRyeSkub25TdWNjZXNzKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zLnNldChlbnRyeS50YWcsIGVudHJ5KTtcbiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRlRW50cnkoZW50cnk6IFRJVEVNKTogUmVzdWx0PHRydWU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlS2V5KGVudHJ5LnRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIExhbmd1YWdlU3VidGFnU2NvcGUgZXh0ZW5kcyBTdWJ0YWdTY29wZVdpdGhSYW5nZTwnbGFuZ3VhZ2UnLCBMYW5ndWFnZVN1YnRhZywgSXRlbXMuUmVnaXN0ZXJlZExhbmd1YWdlPiB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignbGFuZ3VhZ2UnLCBWYWxpZGF0ZS5sYW5ndWFnZVN1YnRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEV4dExhbmdTdWJ0YWdTY29wZSBleHRlbmRzIFN1YnRhZ1Njb3BlPCdleHRsYW5nJywgRXh0TGFuZ1N1YnRhZywgSXRlbXMuUmVnaXN0ZXJlZEV4dExhbmc+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdleHRsYW5nJywgVmFsaWRhdGUuZXh0bGFuZ1N1YnRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFNjcmlwdFN1YnRhZ1Njb3BlIGV4dGVuZHMgU3VidGFnU2NvcGVXaXRoUmFuZ2U8J3NjcmlwdCcsIFNjcmlwdFN1YnRhZywgSXRlbXMuUmVnaXN0ZXJlZFNjcmlwdD4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3NjcmlwdCcsIFZhbGlkYXRlLnNjcmlwdFN1YnRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlZ2lvblN1YnRhZ1Njb3BlIGV4dGVuZHMgU3VidGFnU2NvcGVXaXRoUmFuZ2U8J3JlZ2lvbicsIFJlZ2lvblN1YnRhZywgSXRlbXMuUmVnaXN0ZXJlZFJlZ2lvbj4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3JlZ2lvbicsIFZhbGlkYXRlLnJlZ2lvblN1YnRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFZhcmlhbnRTdWJ0YWdTY29wZSBleHRlbmRzIFN1YnRhZ1Njb3BlPCd2YXJpYW50JywgVmFyaWFudFN1YnRhZywgSXRlbXMuUmVnaXN0ZXJlZFZhcmlhbnQ+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCd2YXJpYW50JywgVmFsaWRhdGUudmFyaWFudFN1YnRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYW5kZmF0aGVyZWRUYWdTY29wZSBleHRlbmRzIFRhZ1Njb3BlPCdncmFuZGZhdGhlcmVkJywgR3JhbmRmYXRoZXJlZFRhZywgSXRlbXMuUmVnaXN0ZXJlZEdyYW5kZmF0aGVyZWRUYWc+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdncmFuZGZhdGhlcmVkJywgVmFsaWRhdGUuZ3JhbmRmYXRoZXJlZFRhZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlZHVuZGFudFRhZ1Njb3BlIGV4dGVuZHMgVGFnU2NvcGU8J3JlZHVuZGFudCcsIFJlZHVuZGFudFRhZywgSXRlbXMuUmVnaXN0ZXJlZFJlZHVuZGFudFRhZz4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3JlZHVuZGFudCcsIFZhbGlkYXRlLnJlZHVuZGFudFRhZyk7XG4gICAgfVxufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"subtagRegistry.d.ts","sourceRoot":"","sources":["../../../../src/iana/language-subtags/subtagRegistry.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,MAAM,EAAiB,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E;;GAEG;AACH,qBAAa,sBAAsB;IAC/B,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IAC3C,SAAgB,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAmC;IACvF,SAAgB,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAkC;IACpF,SAAgB,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAiC;IACjF,SAAgB,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAiC;IACjF,SAAgB,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAkC;IAEpF,SAAgB,WAAW,EAAE,KAAK,CAAC,mBAAmB,CAAmC;IACzF,SAAgB,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAmC;IAC5F,SAAgB,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAmC;IACxF,SAAgB,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAmC;IAErF,SAAgB,aAAa,EAAE,KAAK,CAAC,qBAAqB,CAAqC;IAC/F,SAAgB,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAiC;IAEnF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;IAE1C;;;;OAIG;IACH,SAAS,aAAa,QAAQ,EAAE,YAAY;WAuC9B,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC;WAM9D,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC;WAI7D,WAAW,IAAI,MAAM,CAAC,sBAAsB,CAAC;WAI7C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;WAOlD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;WAOlE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;CAMlF"}