@fgv/ts-bcp47 0.9.6 → 2.0.1-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 (555) hide show
  1. package/.cache/build.lint/_eslint-R7SFxnrl.json +481 -0
  2. package/dist/ts-bcp47.d.ts +2554 -0
  3. package/dist/tsdoc-metadata.json +11 -0
  4. package/lib/data/bcp/overrides.json +20 -0
  5. package/lib/data/iana/language-subtags.json +57439 -0
  6. package/{data → lib/data}/iana/language-tag-extensions.json +2 -6
  7. package/lib/data/unsd/m49.json +3723 -0
  8. package/lib/index.d.ts +6 -0
  9. package/lib/index.d.ts.map +1 -0
  10. package/lib/index.js +57 -0
  11. package/lib/index.js.map +1 -0
  12. package/lib/packlets/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
  13. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/converters.js +2 -1
  14. package/lib/packlets/bcp47/bcp47Subtags/converters.js.map +1 -0
  15. package/lib/packlets/bcp47/bcp47Subtags/index.d.ts.map +1 -0
  16. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/index.js +1 -1
  17. package/lib/packlets/bcp47/bcp47Subtags/index.js.map +1 -0
  18. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/model.d.ts +3 -1
  19. package/lib/packlets/bcp47/bcp47Subtags/model.d.ts.map +1 -0
  20. package/lib/packlets/bcp47/bcp47Subtags/model.js +24 -0
  21. package/lib/packlets/bcp47/bcp47Subtags/model.js.map +1 -0
  22. package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/validate.d.ts +2 -2
  23. package/lib/packlets/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
  24. package/lib/packlets/bcp47/bcp47Subtags/validate.js +74 -0
  25. package/lib/packlets/bcp47/bcp47Subtags/validate.js.map +1 -0
  26. package/{bcp47 → lib/packlets/bcp47}/common.d.ts +4 -4
  27. package/lib/packlets/bcp47/common.d.ts.map +1 -0
  28. package/lib/packlets/bcp47/common.js +59 -0
  29. package/lib/packlets/bcp47/common.js.map +1 -0
  30. package/{bcp47 → lib/packlets/bcp47}/helpers.d.ts +8 -8
  31. package/lib/packlets/bcp47/helpers.d.ts.map +1 -0
  32. package/lib/packlets/bcp47/helpers.js +103 -0
  33. package/lib/packlets/bcp47/helpers.js.map +1 -0
  34. package/lib/packlets/bcp47/index.d.ts +10 -0
  35. package/lib/packlets/bcp47/index.d.ts.map +1 -0
  36. package/lib/packlets/bcp47/index.js +68 -0
  37. package/lib/packlets/bcp47/index.js.map +1 -0
  38. package/{bcp47 → lib/packlets/bcp47}/languageRegistryData.d.ts +26 -27
  39. package/lib/packlets/bcp47/languageRegistryData.d.ts.map +1 -0
  40. package/lib/packlets/bcp47/languageRegistryData.js +206 -0
  41. package/lib/packlets/bcp47/languageRegistryData.js.map +1 -0
  42. package/{bcp47 → lib/packlets/bcp47}/languageTag.d.ts +12 -13
  43. package/lib/packlets/bcp47/languageTag.d.ts.map +1 -0
  44. package/lib/packlets/bcp47/languageTag.js +390 -0
  45. package/lib/packlets/bcp47/languageTag.js.map +1 -0
  46. package/{bcp47 → lib/packlets/bcp47}/languageTagParser.d.ts +13 -14
  47. package/lib/packlets/bcp47/languageTagParser.d.ts.map +1 -0
  48. package/lib/packlets/bcp47/languageTagParser.js +303 -0
  49. package/lib/packlets/bcp47/languageTagParser.js.map +1 -0
  50. package/{bcp47 → lib/packlets/bcp47}/match/chooser.d.ts +8 -8
  51. package/lib/packlets/bcp47/match/chooser.d.ts.map +1 -0
  52. package/lib/packlets/bcp47/match/chooser.js +92 -0
  53. package/lib/packlets/bcp47/match/chooser.js.map +1 -0
  54. package/lib/packlets/bcp47/match/common.d.ts.map +1 -0
  55. package/lib/packlets/bcp47/match/common.js +52 -0
  56. package/lib/packlets/bcp47/match/common.js.map +1 -0
  57. package/lib/packlets/bcp47/match/index.d.ts +4 -0
  58. package/lib/packlets/bcp47/match/index.d.ts.map +1 -0
  59. package/lib/packlets/bcp47/match/index.js +45 -0
  60. package/lib/packlets/bcp47/match/index.js.map +1 -0
  61. package/lib/packlets/bcp47/match/similarity.d.ts.map +1 -0
  62. package/lib/packlets/bcp47/match/similarity.js +230 -0
  63. package/lib/packlets/bcp47/match/similarity.js.map +1 -0
  64. package/lib/packlets/bcp47/normalization/baseNormalizer.d.ts +35 -0
  65. package/lib/packlets/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
  66. package/lib/packlets/bcp47/normalization/baseNormalizer.js +116 -0
  67. package/lib/packlets/bcp47/normalization/baseNormalizer.js.map +1 -0
  68. package/lib/packlets/bcp47/normalization/canonicalNormalizer.d.ts +22 -0
  69. package/lib/packlets/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
  70. package/lib/packlets/bcp47/normalization/canonicalNormalizer.js +113 -0
  71. package/lib/packlets/bcp47/normalization/canonicalNormalizer.js.map +1 -0
  72. package/{bcp47 → lib/packlets/bcp47}/normalization/common.d.ts +1 -1
  73. package/lib/packlets/bcp47/normalization/common.d.ts.map +1 -0
  74. package/lib/packlets/bcp47/normalization/common.js +82 -0
  75. package/lib/packlets/bcp47/normalization/common.js.map +1 -0
  76. package/lib/packlets/bcp47/normalization/index.d.ts.map +1 -0
  77. package/{bcp47 → lib/packlets/bcp47}/normalization/index.js +1 -1
  78. package/lib/packlets/bcp47/normalization/index.js.map +1 -0
  79. package/{bcp47 → lib/packlets/bcp47}/normalization/normalizeTag.d.ts +6 -6
  80. package/lib/packlets/bcp47/normalization/normalizeTag.d.ts.map +1 -0
  81. package/lib/packlets/bcp47/normalization/normalizeTag.js +105 -0
  82. package/lib/packlets/bcp47/normalization/normalizeTag.js.map +1 -0
  83. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.d.ts +27 -0
  84. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
  85. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.js +204 -0
  86. package/lib/packlets/bcp47/normalization/preferredTagNormalizer.js.map +1 -0
  87. package/lib/packlets/bcp47/overrides/converters.d.ts +19 -0
  88. package/lib/packlets/bcp47/overrides/converters.d.ts.map +1 -0
  89. package/lib/packlets/bcp47/overrides/converters.js +76 -0
  90. package/lib/packlets/bcp47/overrides/converters.js.map +1 -0
  91. package/lib/packlets/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
  92. package/lib/packlets/bcp47/overrides/defaultRegistries.js +42 -0
  93. package/lib/packlets/bcp47/overrides/defaultRegistries.js.map +1 -0
  94. package/lib/packlets/bcp47/overrides/index.d.ts.map +1 -0
  95. package/lib/packlets/bcp47/overrides/index.js +30 -0
  96. package/lib/packlets/bcp47/overrides/index.js.map +1 -0
  97. package/lib/packlets/bcp47/overrides/model.d.ts +11 -0
  98. package/lib/packlets/bcp47/overrides/model.d.ts.map +1 -0
  99. package/lib/packlets/bcp47/overrides/model.js +24 -0
  100. package/lib/packlets/bcp47/overrides/model.js.map +1 -0
  101. package/{bcp47 → lib/packlets/bcp47}/overrides/overridesRegistry.d.ts +8 -8
  102. package/lib/packlets/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
  103. package/lib/packlets/bcp47/overrides/overridesRegistry.js +113 -0
  104. package/lib/packlets/bcp47/overrides/overridesRegistry.js.map +1 -0
  105. package/lib/packlets/bcp47/validation/baseValidator.d.ts +35 -0
  106. package/lib/packlets/bcp47/validation/baseValidator.d.ts.map +1 -0
  107. package/lib/packlets/bcp47/validation/baseValidator.js +113 -0
  108. package/lib/packlets/bcp47/validation/baseValidator.js.map +1 -0
  109. package/{bcp47 → lib/packlets/bcp47}/validation/common.d.ts +1 -1
  110. package/lib/packlets/bcp47/validation/common.d.ts.map +1 -0
  111. package/lib/packlets/bcp47/validation/common.js +84 -0
  112. package/lib/packlets/bcp47/validation/common.js.map +1 -0
  113. package/lib/packlets/bcp47/validation/index.d.ts.map +1 -0
  114. package/{bcp47 → lib/packlets/bcp47}/validation/index.js +1 -1
  115. package/lib/packlets/bcp47/validation/index.js.map +1 -0
  116. package/lib/packlets/bcp47/validation/isCanonical.d.ts +22 -0
  117. package/lib/packlets/bcp47/validation/isCanonical.d.ts.map +1 -0
  118. package/lib/packlets/bcp47/validation/isCanonical.js +106 -0
  119. package/lib/packlets/bcp47/validation/isCanonical.js.map +1 -0
  120. package/{bcp47 → lib/packlets/bcp47}/validation/isInPreferredForm.d.ts +4 -4
  121. package/lib/packlets/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
  122. package/lib/packlets/bcp47/validation/isInPreferredForm.js +73 -0
  123. package/lib/packlets/bcp47/validation/isInPreferredForm.js.map +1 -0
  124. package/lib/packlets/bcp47/validation/isStrictlyValid.d.ts +18 -0
  125. package/lib/packlets/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
  126. package/lib/packlets/bcp47/validation/isStrictlyValid.js +98 -0
  127. package/lib/packlets/bcp47/validation/isStrictlyValid.js.map +1 -0
  128. package/lib/packlets/bcp47/validation/isValid.d.ts +24 -0
  129. package/lib/packlets/bcp47/validation/isValid.d.ts.map +1 -0
  130. package/lib/packlets/bcp47/validation/isValid.js +119 -0
  131. package/lib/packlets/bcp47/validation/isValid.js.map +1 -0
  132. package/lib/packlets/bcp47/validation/isWellFormed.d.ts +22 -0
  133. package/lib/packlets/bcp47/validation/isWellFormed.d.ts.map +1 -0
  134. package/lib/packlets/bcp47/validation/isWellFormed.js +102 -0
  135. package/lib/packlets/bcp47/validation/isWellFormed.js.map +1 -0
  136. package/{bcp47 → lib/packlets/bcp47}/validation/validateTag.d.ts +9 -9
  137. package/lib/packlets/bcp47/validation/validateTag.d.ts.map +1 -0
  138. package/lib/packlets/bcp47/validation/validateTag.js +159 -0
  139. package/lib/packlets/bcp47/validation/validateTag.js.map +1 -0
  140. package/{iana → lib/packlets/iana}/common/converters.d.ts +2 -2
  141. package/lib/packlets/iana/common/converters.d.ts.map +1 -0
  142. package/lib/packlets/iana/common/converters.js +85 -0
  143. package/lib/packlets/iana/common/converters.js.map +1 -0
  144. package/{iana → lib/packlets/iana}/common/model.d.ts +1 -1
  145. package/lib/packlets/iana/common/model.d.ts.map +1 -0
  146. package/lib/packlets/iana/common/model.js +24 -0
  147. package/lib/packlets/iana/common/model.js.map +1 -0
  148. package/lib/packlets/iana/common/registeredItems.d.ts.map +1 -0
  149. package/lib/packlets/iana/common/registeredItems.js +124 -0
  150. package/lib/packlets/iana/common/registeredItems.js.map +1 -0
  151. package/lib/packlets/iana/common/utils.d.ts.map +1 -0
  152. package/lib/packlets/iana/common/utils.js +34 -0
  153. package/lib/packlets/iana/common/utils.js.map +1 -0
  154. package/{iana → lib/packlets/iana}/common/validate.d.ts +1 -1
  155. package/lib/packlets/iana/common/validate.d.ts.map +1 -0
  156. package/lib/packlets/iana/common/validate.js +62 -0
  157. package/lib/packlets/iana/common/validate.js.map +1 -0
  158. package/lib/packlets/iana/converters.d.ts.map +1 -0
  159. package/{iana → lib/packlets/iana}/converters.js +1 -1
  160. package/lib/packlets/iana/converters.js.map +1 -0
  161. package/lib/packlets/iana/defaultRegistries.d.ts.map +1 -0
  162. package/lib/packlets/iana/defaultRegistries.js +42 -0
  163. package/lib/packlets/iana/defaultRegistries.js.map +1 -0
  164. package/{iana → lib/packlets/iana}/index.d.ts +4 -2
  165. package/lib/packlets/iana/index.d.ts.map +1 -0
  166. package/{iana/jar/language-subtags/tags → lib/packlets/iana}/index.js +18 -6
  167. package/lib/packlets/iana/index.js.map +1 -0
  168. package/lib/packlets/iana/jar/converters.d.ts.map +1 -0
  169. package/{iana → lib/packlets/iana}/jar/converters.js +1 -1
  170. package/lib/packlets/iana/jar/converters.js.map +1 -0
  171. package/lib/packlets/iana/jar/index.d.ts +5 -0
  172. package/lib/packlets/iana/jar/index.d.ts.map +1 -0
  173. package/{unsd/csv → lib/packlets/iana/jar}/index.js +4 -2
  174. package/lib/packlets/iana/jar/index.js.map +1 -0
  175. package/{iana → lib/packlets/iana}/jar/jarConverters.d.ts +5 -5
  176. package/lib/packlets/iana/jar/jarConverters.d.ts.map +1 -0
  177. package/lib/packlets/iana/jar/jarConverters.js +86 -0
  178. package/lib/packlets/iana/jar/jarConverters.js.map +1 -0
  179. package/{iana → lib/packlets/iana}/jar/jarModel.d.ts +1 -1
  180. package/lib/packlets/iana/jar/jarModel.d.ts.map +1 -0
  181. package/lib/packlets/iana/jar/jarModel.js +24 -0
  182. package/lib/packlets/iana/jar/jarModel.js.map +1 -0
  183. package/lib/packlets/iana/jar/language-subtags/converters.d.ts.map +1 -0
  184. package/{iana → lib/packlets/iana}/jar/language-subtags/converters.js +1 -1
  185. package/lib/packlets/iana/jar/language-subtags/converters.js.map +1 -0
  186. package/lib/packlets/iana/jar/language-subtags/index.d.ts +5 -0
  187. package/lib/packlets/iana/jar/language-subtags/index.d.ts.map +1 -0
  188. package/{iana/jar/language-subtags/registry → lib/packlets/iana/jar/language-subtags}/index.js +29 -28
  189. package/lib/packlets/iana/jar/language-subtags/index.js.map +1 -0
  190. package/lib/packlets/iana/jar/language-subtags/model.d.ts.map +1 -0
  191. package/{iana → lib/packlets/iana}/jar/language-subtags/model.js +1 -1
  192. package/lib/packlets/iana/jar/language-subtags/model.js.map +1 -0
  193. package/lib/packlets/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
  194. package/lib/packlets/iana/jar/language-subtags/registry/converters.js +59 -0
  195. package/lib/packlets/iana/jar/language-subtags/registry/converters.js.map +1 -0
  196. package/lib/packlets/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
  197. package/{iana/jar/language-subtags → lib/packlets/iana/jar/language-subtags/registry}/index.js +23 -22
  198. package/lib/packlets/iana/jar/language-subtags/registry/index.js.map +1 -0
  199. package/{iana → lib/packlets/iana}/jar/language-subtags/registry/model.d.ts +12 -12
  200. package/lib/packlets/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
  201. package/lib/packlets/iana/jar/language-subtags/registry/model.js +46 -0
  202. package/lib/packlets/iana/jar/language-subtags/registry/model.js.map +1 -0
  203. package/lib/packlets/iana/jar/language-subtags/tags/converters.d.ts +55 -0
  204. package/lib/packlets/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
  205. package/lib/packlets/iana/jar/language-subtags/tags/converters.js +129 -0
  206. package/lib/packlets/iana/jar/language-subtags/tags/converters.js.map +1 -0
  207. package/lib/packlets/iana/jar/language-subtags/tags/index.d.ts +6 -0
  208. package/lib/packlets/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
  209. package/lib/packlets/iana/jar/language-subtags/tags/index.js +58 -0
  210. package/lib/packlets/iana/jar/language-subtags/tags/index.js.map +1 -0
  211. package/lib/packlets/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
  212. package/lib/packlets/iana/jar/language-subtags/tags/model.js +24 -0
  213. package/lib/packlets/iana/jar/language-subtags/tags/model.js.map +1 -0
  214. package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
  215. package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.js +70 -0
  216. package/lib/packlets/iana/jar/language-subtags/tags/tagValidation.js.map +1 -0
  217. package/lib/packlets/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
  218. package/lib/packlets/iana/jar/language-subtags/tags/validate.js +88 -0
  219. package/lib/packlets/iana/jar/language-subtags/tags/validate.js.map +1 -0
  220. package/lib/packlets/iana/jar/model.d.ts.map +1 -0
  221. package/{iana → lib/packlets/iana}/jar/model.js +1 -1
  222. package/lib/packlets/iana/jar/model.js.map +1 -0
  223. package/lib/packlets/iana/language-subtags/common.d.ts.map +1 -0
  224. package/lib/packlets/iana/language-subtags/common.js +24 -0
  225. package/lib/packlets/iana/language-subtags/common.js.map +1 -0
  226. package/lib/packlets/iana/language-subtags/converters.d.ts +52 -0
  227. package/lib/packlets/iana/language-subtags/converters.d.ts.map +1 -0
  228. package/lib/packlets/iana/language-subtags/converters.js +209 -0
  229. package/lib/packlets/iana/language-subtags/converters.js.map +1 -0
  230. package/{iana → lib/packlets/iana}/language-subtags/index.d.ts +4 -3
  231. package/lib/packlets/iana/language-subtags/index.d.ts.map +1 -0
  232. package/{iana → lib/packlets/iana}/language-subtags/index.js +10 -8
  233. package/lib/packlets/iana/language-subtags/index.js.map +1 -0
  234. package/{iana → lib/packlets/iana}/language-subtags/jarConverters.d.ts +8 -8
  235. package/lib/packlets/iana/language-subtags/jarConverters.d.ts.map +1 -0
  236. package/lib/packlets/iana/language-subtags/jarConverters.js +237 -0
  237. package/lib/packlets/iana/language-subtags/jarConverters.js.map +1 -0
  238. package/{iana → lib/packlets/iana}/language-subtags/model.d.ts +15 -15
  239. package/lib/packlets/iana/language-subtags/model.d.ts.map +1 -0
  240. package/lib/packlets/iana/language-subtags/model.js +24 -0
  241. package/lib/packlets/iana/language-subtags/model.js.map +1 -0
  242. package/{iana → lib/packlets/iana}/language-subtags/scope.d.ts +12 -12
  243. package/lib/packlets/iana/language-subtags/scope.d.ts.map +1 -0
  244. package/lib/packlets/iana/language-subtags/scope.js +179 -0
  245. package/lib/packlets/iana/language-subtags/scope.js.map +1 -0
  246. package/{iana → lib/packlets/iana}/language-subtags/subtagRegistry.d.ts +1 -1
  247. package/lib/packlets/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
  248. package/lib/packlets/iana/language-subtags/subtagRegistry.js +150 -0
  249. package/lib/packlets/iana/language-subtags/subtagRegistry.js.map +1 -0
  250. package/lib/packlets/iana/language-subtags/validate.d.ts.map +1 -0
  251. package/{iana → lib/packlets/iana}/language-subtags/validate.js +1 -1
  252. package/lib/packlets/iana/language-subtags/validate.js.map +1 -0
  253. package/lib/packlets/iana/language-tag-extensions/converters.d.ts +22 -0
  254. package/lib/packlets/iana/language-tag-extensions/converters.d.ts.map +1 -0
  255. package/lib/packlets/iana/language-tag-extensions/converters.js +86 -0
  256. package/lib/packlets/iana/language-tag-extensions/converters.js.map +1 -0
  257. package/{iana → lib/packlets/iana}/language-tag-extensions/extensionsRegistry.d.ts +2 -2
  258. package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
  259. package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.js +105 -0
  260. package/lib/packlets/iana/language-tag-extensions/extensionsRegistry.js.map +1 -0
  261. package/{iana → lib/packlets/iana}/language-tag-extensions/extensionsScope.d.ts +3 -3
  262. package/lib/packlets/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
  263. package/lib/packlets/iana/language-tag-extensions/extensionsScope.js +77 -0
  264. package/lib/packlets/iana/language-tag-extensions/extensionsScope.js.map +1 -0
  265. package/{iana → lib/packlets/iana}/language-tag-extensions/index.d.ts +3 -2
  266. package/lib/packlets/iana/language-tag-extensions/index.d.ts.map +1 -0
  267. package/{iana → lib/packlets/iana}/language-tag-extensions/index.js +6 -4
  268. package/lib/packlets/iana/language-tag-extensions/index.js.map +1 -0
  269. package/{iana → lib/packlets/iana}/language-tag-extensions/jarConverters.d.ts +2 -3
  270. package/lib/packlets/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
  271. package/lib/packlets/iana/language-tag-extensions/jarConverters.js +79 -0
  272. package/lib/packlets/iana/language-tag-extensions/jarConverters.js.map +1 -0
  273. package/{iana → lib/packlets/iana}/language-tag-extensions/model.d.ts +5 -6
  274. package/lib/packlets/iana/language-tag-extensions/model.d.ts.map +1 -0
  275. package/lib/packlets/iana/language-tag-extensions/model.js +25 -0
  276. package/lib/packlets/iana/language-tag-extensions/model.js.map +1 -0
  277. package/{iana → lib/packlets/iana}/language-tag-extensions/validate.d.ts +2 -2
  278. package/lib/packlets/iana/language-tag-extensions/validate.d.ts.map +1 -0
  279. package/lib/packlets/iana/language-tag-extensions/validate.js +36 -0
  280. package/lib/packlets/iana/language-tag-extensions/validate.js.map +1 -0
  281. package/lib/packlets/iana/languageRegistries.d.ts.map +1 -0
  282. package/lib/packlets/iana/languageRegistries.js +56 -0
  283. package/lib/packlets/iana/languageRegistries.js.map +1 -0
  284. package/lib/packlets/iana/model.d.ts.map +1 -0
  285. package/{iana → lib/packlets/iana}/model.js +1 -1
  286. package/lib/packlets/iana/model.js.map +1 -0
  287. package/lib/packlets/iana/validate.d.ts.map +1 -0
  288. package/{iana → lib/packlets/iana}/validate.js +1 -1
  289. package/lib/packlets/iana/validate.js.map +1 -0
  290. package/lib/packlets/unsd/areas.d.ts +29 -0
  291. package/lib/packlets/unsd/areas.d.ts.map +1 -0
  292. package/lib/packlets/unsd/areas.js +96 -0
  293. package/lib/packlets/unsd/areas.js.map +1 -0
  294. package/lib/packlets/unsd/common.d.ts +49 -0
  295. package/lib/packlets/unsd/common.d.ts.map +1 -0
  296. package/lib/packlets/unsd/common.js +24 -0
  297. package/lib/packlets/unsd/common.js.map +1 -0
  298. package/{unsd → lib/packlets/unsd}/csv/converters.d.ts +7 -4
  299. package/lib/packlets/unsd/csv/converters.d.ts.map +1 -0
  300. package/lib/packlets/unsd/csv/converters.js +78 -0
  301. package/lib/packlets/unsd/csv/converters.js.map +1 -0
  302. package/lib/packlets/unsd/csv/index.d.ts.map +1 -0
  303. package/{iana/jar → lib/packlets/unsd/csv}/index.js +1 -1
  304. package/lib/packlets/unsd/csv/index.js.map +1 -0
  305. package/lib/packlets/unsd/csv/model.d.ts +22 -0
  306. package/lib/packlets/unsd/csv/model.d.ts.map +1 -0
  307. package/lib/packlets/unsd/csv/model.js +24 -0
  308. package/lib/packlets/unsd/csv/model.js.map +1 -0
  309. package/lib/packlets/unsd/defaultRegistries.d.ts.map +1 -0
  310. package/lib/packlets/unsd/defaultRegistries.js +42 -0
  311. package/lib/packlets/unsd/defaultRegistries.js.map +1 -0
  312. package/{unsd → lib/packlets/unsd}/index.d.ts +2 -0
  313. package/lib/packlets/unsd/index.d.ts.map +1 -0
  314. package/lib/packlets/unsd/index.js +58 -0
  315. package/lib/packlets/unsd/index.js.map +1 -0
  316. package/{unsd → lib/packlets/unsd}/regionCodes.d.ts +7 -7
  317. package/lib/packlets/unsd/regionCodes.d.ts.map +1 -0
  318. package/lib/packlets/unsd/regionCodes.js +122 -0
  319. package/lib/packlets/unsd/regionCodes.js.map +1 -0
  320. package/lib/packlets/unsd/regions.d.ts +21 -0
  321. package/lib/packlets/unsd/regions.d.ts.map +1 -0
  322. package/lib/packlets/unsd/regions.js +77 -0
  323. package/lib/packlets/unsd/regions.js.map +1 -0
  324. package/lib/packlets/utils/index.d.ts.map +1 -0
  325. package/{utils → lib/packlets/utils}/index.js +1 -1
  326. package/lib/packlets/utils/index.js.map +1 -0
  327. package/lib/packlets/utils/jsonHelpers.d.ts.map +1 -0
  328. package/lib/packlets/utils/jsonHelpers.js +29 -0
  329. package/lib/packlets/utils/jsonHelpers.js.map +1 -0
  330. package/lib/packlets/utils/public.d.ts +2 -0
  331. package/lib/packlets/utils/public.d.ts.map +1 -0
  332. package/lib/packlets/utils/public.js +28 -0
  333. package/lib/packlets/utils/public.js.map +1 -0
  334. package/{utils → lib/packlets/utils}/validationHelpers.d.ts +9 -10
  335. package/lib/packlets/utils/validationHelpers.d.ts.map +1 -0
  336. package/lib/packlets/utils/validationHelpers.js +120 -0
  337. package/lib/packlets/utils/validationHelpers.js.map +1 -0
  338. package/package.json +73 -67
  339. package/bcp47/bcp47Subtags/converters.d.ts.map +0 -1
  340. package/bcp47/bcp47Subtags/index.d.ts.map +0 -1
  341. package/bcp47/bcp47Subtags/model.d.ts.map +0 -1
  342. package/bcp47/bcp47Subtags/model.js +0 -24
  343. package/bcp47/bcp47Subtags/validate.d.ts.map +0 -1
  344. package/bcp47/bcp47Subtags/validate.js +0 -74
  345. package/bcp47/common.d.ts.map +0 -1
  346. package/bcp47/common.js +0 -59
  347. package/bcp47/helpers.d.ts.map +0 -1
  348. package/bcp47/helpers.js +0 -103
  349. package/bcp47/index.d.ts +0 -7
  350. package/bcp47/index.d.ts.map +0 -1
  351. package/bcp47/index.js +0 -27
  352. package/bcp47/languageRegistryData.d.ts.map +0 -1
  353. package/bcp47/languageRegistryData.js +0 -209
  354. package/bcp47/languageTag.d.ts.map +0 -1
  355. package/bcp47/languageTag.js +0 -390
  356. package/bcp47/languageTagParser.d.ts.map +0 -1
  357. package/bcp47/languageTagParser.js +0 -302
  358. package/bcp47/match/chooser.d.ts.map +0 -1
  359. package/bcp47/match/chooser.js +0 -92
  360. package/bcp47/match/common.d.ts.map +0 -1
  361. package/bcp47/match/common.js +0 -51
  362. package/bcp47/match/index.d.ts +0 -4
  363. package/bcp47/match/index.d.ts.map +0 -1
  364. package/bcp47/match/index.js +0 -45
  365. package/bcp47/match/similarity.d.ts.map +0 -1
  366. package/bcp47/match/similarity.js +0 -230
  367. package/bcp47/normalization/baseNormalizer.d.ts +0 -36
  368. package/bcp47/normalization/baseNormalizer.d.ts.map +0 -1
  369. package/bcp47/normalization/baseNormalizer.js +0 -114
  370. package/bcp47/normalization/canonicalNormalizer.d.ts +0 -22
  371. package/bcp47/normalization/canonicalNormalizer.d.ts.map +0 -1
  372. package/bcp47/normalization/canonicalNormalizer.js +0 -113
  373. package/bcp47/normalization/common.d.ts.map +0 -1
  374. package/bcp47/normalization/common.js +0 -82
  375. package/bcp47/normalization/index.d.ts.map +0 -1
  376. package/bcp47/normalization/normalizeTag.d.ts.map +0 -1
  377. package/bcp47/normalization/normalizeTag.js +0 -105
  378. package/bcp47/normalization/preferredTagNormalizer.d.ts +0 -27
  379. package/bcp47/normalization/preferredTagNormalizer.d.ts.map +0 -1
  380. package/bcp47/normalization/preferredTagNormalizer.js +0 -209
  381. package/bcp47/overrides/converters.d.ts +0 -19
  382. package/bcp47/overrides/converters.d.ts.map +0 -1
  383. package/bcp47/overrides/converters.js +0 -75
  384. package/bcp47/overrides/defaultRegistries.d.ts.map +0 -1
  385. package/bcp47/overrides/defaultRegistries.js +0 -42
  386. package/bcp47/overrides/index.d.ts.map +0 -1
  387. package/bcp47/overrides/index.js +0 -30
  388. package/bcp47/overrides/model.d.ts +0 -11
  389. package/bcp47/overrides/model.d.ts.map +0 -1
  390. package/bcp47/overrides/model.js +0 -24
  391. package/bcp47/overrides/overridesRegistry.d.ts.map +0 -1
  392. package/bcp47/overrides/overridesRegistry.js +0 -112
  393. package/bcp47/validation/baseValidator.d.ts +0 -35
  394. package/bcp47/validation/baseValidator.d.ts.map +0 -1
  395. package/bcp47/validation/baseValidator.js +0 -111
  396. package/bcp47/validation/common.d.ts.map +0 -1
  397. package/bcp47/validation/common.js +0 -84
  398. package/bcp47/validation/index.d.ts.map +0 -1
  399. package/bcp47/validation/isCanonical.d.ts +0 -22
  400. package/bcp47/validation/isCanonical.d.ts.map +0 -1
  401. package/bcp47/validation/isCanonical.js +0 -104
  402. package/bcp47/validation/isInPreferredForm.d.ts.map +0 -1
  403. package/bcp47/validation/isInPreferredForm.js +0 -73
  404. package/bcp47/validation/isStrictlyValid.d.ts +0 -18
  405. package/bcp47/validation/isStrictlyValid.d.ts.map +0 -1
  406. package/bcp47/validation/isStrictlyValid.js +0 -98
  407. package/bcp47/validation/isValid.d.ts +0 -24
  408. package/bcp47/validation/isValid.d.ts.map +0 -1
  409. package/bcp47/validation/isValid.js +0 -115
  410. package/bcp47/validation/isWellFormed.d.ts +0 -22
  411. package/bcp47/validation/isWellFormed.d.ts.map +0 -1
  412. package/bcp47/validation/isWellFormed.js +0 -98
  413. package/bcp47/validation/validateTag.d.ts.map +0 -1
  414. package/bcp47/validation/validateTag.js +0 -159
  415. package/data/bcp/overrides.json +0 -21
  416. package/data/iana/language-subtags.json +0 -77295
  417. package/data/unsd/m49.json +0 -251
  418. package/iana/common/converters.d.ts.map +0 -1
  419. package/iana/common/converters.js +0 -84
  420. package/iana/common/model.d.ts.map +0 -1
  421. package/iana/common/model.js +0 -24
  422. package/iana/common/registeredItems.d.ts.map +0 -1
  423. package/iana/common/registeredItems.js +0 -124
  424. package/iana/common/utils.d.ts.map +0 -1
  425. package/iana/common/utils.js +0 -34
  426. package/iana/common/validate.d.ts.map +0 -1
  427. package/iana/common/validate.js +0 -61
  428. package/iana/converters.d.ts.map +0 -1
  429. package/iana/defaultRegistries.d.ts.map +0 -1
  430. package/iana/defaultRegistries.js +0 -42
  431. package/iana/index.d.ts.map +0 -1
  432. package/iana/index.js +0 -64
  433. package/iana/jar/converters.d.ts.map +0 -1
  434. package/iana/jar/index.d.ts.map +0 -1
  435. package/iana/jar/jarConverters.d.ts.map +0 -1
  436. package/iana/jar/jarConverters.js +0 -85
  437. package/iana/jar/jarModel.d.ts.map +0 -1
  438. package/iana/jar/jarModel.js +0 -24
  439. package/iana/jar/language-subtags/converters.d.ts.map +0 -1
  440. package/iana/jar/language-subtags/index.d.ts.map +0 -1
  441. package/iana/jar/language-subtags/model.d.ts.map +0 -1
  442. package/iana/jar/language-subtags/registry/converters.d.ts.map +0 -1
  443. package/iana/jar/language-subtags/registry/converters.js +0 -58
  444. package/iana/jar/language-subtags/registry/index.d.ts +0 -4
  445. package/iana/jar/language-subtags/registry/index.d.ts.map +0 -1
  446. package/iana/jar/language-subtags/registry/model.d.ts.map +0 -1
  447. package/iana/jar/language-subtags/registry/model.js +0 -41
  448. package/iana/jar/language-subtags/tags/converters.d.ts +0 -55
  449. package/iana/jar/language-subtags/tags/converters.d.ts.map +0 -1
  450. package/iana/jar/language-subtags/tags/converters.js +0 -128
  451. package/iana/jar/language-subtags/tags/index.d.ts +0 -5
  452. package/iana/jar/language-subtags/tags/index.d.ts.map +0 -1
  453. package/iana/jar/language-subtags/tags/model.d.ts.map +0 -1
  454. package/iana/jar/language-subtags/tags/model.js +0 -24
  455. package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +0 -1
  456. package/iana/jar/language-subtags/tags/tagValidation.js +0 -70
  457. package/iana/jar/language-subtags/tags/validate.d.ts.map +0 -1
  458. package/iana/jar/language-subtags/tags/validate.js +0 -87
  459. package/iana/jar/model.d.ts.map +0 -1
  460. package/iana/language-subtags/common.d.ts.map +0 -1
  461. package/iana/language-subtags/common.js +0 -24
  462. package/iana/language-subtags/converters.d.ts +0 -52
  463. package/iana/language-subtags/converters.d.ts.map +0 -1
  464. package/iana/language-subtags/converters.js +0 -200
  465. package/iana/language-subtags/index.d.ts.map +0 -1
  466. package/iana/language-subtags/jarConverters.d.ts.map +0 -1
  467. package/iana/language-subtags/jarConverters.js +0 -213
  468. package/iana/language-subtags/model.d.ts.map +0 -1
  469. package/iana/language-subtags/model.js +0 -24
  470. package/iana/language-subtags/scope.d.ts.map +0 -1
  471. package/iana/language-subtags/scope.js +0 -179
  472. package/iana/language-subtags/subtagRegistry.d.ts.map +0 -1
  473. package/iana/language-subtags/subtagRegistry.js +0 -149
  474. package/iana/language-subtags/validate.d.ts.map +0 -1
  475. package/iana/language-tag-extensions/converters.d.ts +0 -23
  476. package/iana/language-tag-extensions/converters.d.ts.map +0 -1
  477. package/iana/language-tag-extensions/converters.js +0 -87
  478. package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +0 -1
  479. package/iana/language-tag-extensions/extensionsRegistry.js +0 -104
  480. package/iana/language-tag-extensions/extensionsScope.d.ts.map +0 -1
  481. package/iana/language-tag-extensions/extensionsScope.js +0 -77
  482. package/iana/language-tag-extensions/index.d.ts.map +0 -1
  483. package/iana/language-tag-extensions/jarConverters.d.ts.map +0 -1
  484. package/iana/language-tag-extensions/jarConverters.js +0 -102
  485. package/iana/language-tag-extensions/model.d.ts.map +0 -1
  486. package/iana/language-tag-extensions/model.js +0 -24
  487. package/iana/language-tag-extensions/validate.d.ts.map +0 -1
  488. package/iana/language-tag-extensions/validate.js +0 -36
  489. package/iana/languageRegistries.d.ts.map +0 -1
  490. package/iana/languageRegistries.js +0 -56
  491. package/iana/model.d.ts.map +0 -1
  492. package/iana/validate.d.ts.map +0 -1
  493. package/index.d.ts +0 -6
  494. package/index.d.ts.map +0 -1
  495. package/index.js +0 -56
  496. package/unsd/areas.d.ts +0 -29
  497. package/unsd/areas.d.ts.map +0 -1
  498. package/unsd/areas.js +0 -96
  499. package/unsd/common.d.ts +0 -49
  500. package/unsd/common.d.ts.map +0 -1
  501. package/unsd/common.js +0 -24
  502. package/unsd/csv/converters.d.ts.map +0 -1
  503. package/unsd/csv/converters.js +0 -70
  504. package/unsd/csv/index.d.ts +0 -4
  505. package/unsd/csv/index.d.ts.map +0 -1
  506. package/unsd/csv/model.d.ts +0 -22
  507. package/unsd/csv/model.d.ts.map +0 -1
  508. package/unsd/csv/model.js +0 -24
  509. package/unsd/defaultRegistries.d.ts.map +0 -1
  510. package/unsd/defaultRegistries.js +0 -42
  511. package/unsd/index.d.ts.map +0 -1
  512. package/unsd/index.js +0 -44
  513. package/unsd/regionCodes.d.ts.map +0 -1
  514. package/unsd/regionCodes.js +0 -121
  515. package/unsd/regions.d.ts +0 -21
  516. package/unsd/regions.d.ts.map +0 -1
  517. package/unsd/regions.js +0 -77
  518. package/utils/index.d.ts.map +0 -1
  519. package/utils/jsonHelpers.d.ts.map +0 -1
  520. package/utils/jsonHelpers.js +0 -29
  521. package/utils/public.d.ts +0 -2
  522. package/utils/public.d.ts.map +0 -1
  523. package/utils/public.js +0 -28
  524. package/utils/validationHelpers.d.ts.map +0 -1
  525. package/utils/validationHelpers.js +0 -120
  526. /package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/converters.d.ts +0 -0
  527. /package/{bcp47 → lib/packlets/bcp47}/bcp47Subtags/index.d.ts +0 -0
  528. /package/{bcp47 → lib/packlets/bcp47}/match/common.d.ts +0 -0
  529. /package/{bcp47 → lib/packlets/bcp47}/match/similarity.d.ts +0 -0
  530. /package/{bcp47 → lib/packlets/bcp47}/normalization/index.d.ts +0 -0
  531. /package/{bcp47 → lib/packlets/bcp47}/overrides/defaultRegistries.d.ts +0 -0
  532. /package/{bcp47 → lib/packlets/bcp47}/overrides/index.d.ts +0 -0
  533. /package/{bcp47 → lib/packlets/bcp47}/validation/index.d.ts +0 -0
  534. /package/{iana → lib/packlets/iana}/common/registeredItems.d.ts +0 -0
  535. /package/{iana → lib/packlets/iana}/common/utils.d.ts +0 -0
  536. /package/{iana → lib/packlets/iana}/converters.d.ts +0 -0
  537. /package/{iana → lib/packlets/iana}/defaultRegistries.d.ts +0 -0
  538. /package/{iana → lib/packlets/iana}/jar/converters.d.ts +0 -0
  539. /package/{iana → lib/packlets/iana}/jar/language-subtags/converters.d.ts +0 -0
  540. /package/{iana → lib/packlets/iana}/jar/language-subtags/model.d.ts +0 -0
  541. /package/{iana → lib/packlets/iana}/jar/language-subtags/registry/converters.d.ts +0 -0
  542. /package/{iana/jar/language-subtags → lib/packlets/iana/jar/language-subtags/registry}/index.d.ts +0 -0
  543. /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/model.d.ts +0 -0
  544. /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/tagValidation.d.ts +0 -0
  545. /package/{iana → lib/packlets/iana}/jar/language-subtags/tags/validate.d.ts +0 -0
  546. /package/{iana → lib/packlets/iana}/jar/model.d.ts +0 -0
  547. /package/{iana → lib/packlets/iana}/language-subtags/common.d.ts +0 -0
  548. /package/{iana → lib/packlets/iana}/language-subtags/validate.d.ts +0 -0
  549. /package/{iana → lib/packlets/iana}/languageRegistries.d.ts +0 -0
  550. /package/{iana → lib/packlets/iana}/model.d.ts +0 -0
  551. /package/{iana → lib/packlets/iana}/validate.d.ts +0 -0
  552. /package/{iana/jar → lib/packlets/unsd/csv}/index.d.ts +0 -0
  553. /package/{unsd → lib/packlets/unsd}/defaultRegistries.d.ts +0 -0
  554. /package/{utils → lib/packlets/utils}/index.d.ts +0 -0
  555. /package/{utils → lib/packlets/utils}/jsonHelpers.d.ts +0 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/packlets/unsd/csv/model.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG","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 Iana from '../../iana';\n\n/**\n * @internal\n */\nexport interface IM49CsvRow {\n globalCode: Iana.Model.UnM49RegionCode;\n globalName: string;\n regionCode?: Iana.Model.UnM49RegionCode;\n regionName?: string;\n subRegionCode?: Iana.Model.UnM49RegionCode;\n subRegionName?: string;\n intermediateRegionCode?: Iana.Model.UnM49RegionCode;\n intermediateRegionName?: string;\n countryOrArea: string;\n m49Code: Iana.Model.UnM49RegionCode;\n isoAlpha2RegionCode?: Iana.Model.IsoAlpha2RegionCode;\n isoAlpha3RegionCode?: Iana.Model.IsoAlpha3RegionCode;\n leastDevelopedCountry: boolean;\n landLockedDevelopingCountry: boolean;\n smallIslandDevelopingState: boolean;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRegistries.d.ts","sourceRoot":"","sources":["../../../src/packlets/unsd/defaultRegistries.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,CAAa;IAExD,WAAkB,WAAW,IAAI,WAAW,CAK3C;CACF"}
@@ -0,0 +1,42 @@
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.DefaultRegistries = void 0;
25
+ const regionCodes_1 = require("./regionCodes");
26
+ /**
27
+ * @public
28
+ */
29
+ class DefaultRegistries {
30
+ static get regionCodes() {
31
+ if (!this._regionCodes) {
32
+ this._regionCodes = regionCodes_1.RegionCodes.loadDefault().orThrow();
33
+ }
34
+ return this._regionCodes;
35
+ }
36
+ }
37
+ exports.DefaultRegistries = DefaultRegistries;
38
+ /**
39
+ * @internal
40
+ */
41
+ DefaultRegistries._regionCodes = undefined;
42
+ //# sourceMappingURL=defaultRegistries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRegistries.js","sourceRoot":"","sources":["../../../src/packlets/unsd/defaultRegistries.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEH,+CAA4C;AAE5C;;GAEG;AACH,MAAa,iBAAiB;IAMrB,MAAM,KAAK,WAAW;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,yBAAW,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;SACzD;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;;AAXH,8CAYC;AAXC;;GAEG;AACc,8BAAY,GAAiB,SAAS,CAAC","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 { RegionCodes } from './regionCodes';\n\n/**\n * @public\n */\nexport class DefaultRegistries {\n /**\n * @internal\n */\n protected static _regionCodes?: RegionCodes = undefined;\n\n public static get regionCodes(): RegionCodes {\n if (!this._regionCodes) {\n this._regionCodes = RegionCodes.loadDefault().orThrow();\n }\n return this._regionCodes;\n }\n}\n"]}
@@ -1,4 +1,6 @@
1
+ import * as Csv from './csv';
1
2
  export * from './common';
2
3
  export { DefaultRegistries } from './defaultRegistries';
3
4
  export { RegionCodes } from './regionCodes';
5
+ export { Csv };
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/packlets/unsd/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,58 @@
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
+ 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
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.Csv = exports.RegionCodes = exports.DefaultRegistries = void 0;
51
+ const Csv = __importStar(require("./csv"));
52
+ exports.Csv = Csv;
53
+ __exportStar(require("./common"), exports);
54
+ var defaultRegistries_1 = require("./defaultRegistries");
55
+ Object.defineProperty(exports, "DefaultRegistries", { enumerable: true, get: function () { return defaultRegistries_1.DefaultRegistries; } });
56
+ var regionCodes_1 = require("./regionCodes");
57
+ Object.defineProperty(exports, "RegionCodes", { enumerable: true, get: function () { return regionCodes_1.RegionCodes; } });
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/packlets/unsd/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAKpB,kBAAG;AAHZ,2CAAyB;AACzB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,6CAA4C;AAAnC,0GAAA,WAAW,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 Csv from './csv';\n\nexport * from './common';\nexport { DefaultRegistries } from './defaultRegistries';\nexport { RegionCodes } from './regionCodes';\nexport { Csv };\n"]}
@@ -1,9 +1,9 @@
1
+ import * as Iana from '../iana';
1
2
  import * as Model from './csv/model';
2
- import { CountryOrArea, Region } from './common';
3
3
  import { Result } from '@fgv/ts-utils';
4
+ import { ICountryOrArea, Region } from './common';
4
5
  import { Areas } from './areas';
5
6
  import { Regions } from './regions';
6
- import { UnM49RegionCode } from '../iana/model';
7
7
  /**
8
8
  * @public
9
9
  */
@@ -14,12 +14,12 @@ export declare class RegionCodes {
14
14
  * @internal
15
15
  */
16
16
  protected constructor();
17
- static create(rows: Model.M49CsvRow[]): Result<RegionCodes>;
17
+ static create(rows: Model.IM49CsvRow[]): Result<RegionCodes>;
18
18
  static createFromJson(from: unknown): Result<RegionCodes>;
19
19
  static loadDefault(): Result<RegionCodes>;
20
20
  static loadCsv(path: string): Result<RegionCodes>;
21
- tryGetRegionOrArea(code: UnM49RegionCode): Region | CountryOrArea | undefined;
22
- getIsContained(container: Region, contained: CountryOrArea | Region): boolean;
21
+ tryGetRegionOrArea(code: Iana.Model.UnM49RegionCode): Region | ICountryOrArea | undefined;
22
+ getIsContained(container: Region, contained: ICountryOrArea | Region): boolean;
23
23
  /**
24
24
  * Imports a single parsed row of UN M.49 region code data
25
25
  * @param row - The parsed row to be imported.
@@ -27,7 +27,7 @@ export declare class RegionCodes {
27
27
  * imported, or `Failure` with details if an error occurs.
28
28
  * @internal
29
29
  */
30
- protected _importRow(row: Model.M49CsvRow): Result<true>;
30
+ protected _importRow(row: Model.IM49CsvRow): Result<true>;
31
31
  /**
32
32
  * Imports multiple parsed rows from UN M.49 region code data
33
33
  * @param rows - The parsed rows to be imported.
@@ -35,6 +35,6 @@ export declare class RegionCodes {
35
35
  * imported, or `Failure` with details if an error occurs.
36
36
  * @internal
37
37
  */
38
- protected _importRows(rows: Model.M49CsvRow[]): Result<true>;
38
+ protected _importRows(rows: Model.IM49CsvRow[]): Result<true>;
39
39
  }
40
40
  //# sourceMappingURL=regionCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regionCodes.d.ts","sourceRoot":"","sources":["../../../src/packlets/unsd/regionCodes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,MAAM,EAAuB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,WAAW;IACtB,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAE7B;;OAEG;IACH,SAAS;WAKK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;WAOrD,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;WAIlD,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;WAIlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;IAMjD,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS;IAKzF,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,GAAG,OAAO;IAWrF;;;;;;OAMG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAqCzD;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;CAM9D"}
@@ -0,0 +1,122 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
24
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.RegionCodes = void 0;
28
+ const ts_utils_1 = require("@fgv/ts-utils");
29
+ const converters_1 = require("./csv/converters");
30
+ // eslint-disable-next-line @rushstack/packlets/mechanics
31
+ const m49_json_1 = __importDefault(require("../../data/unsd/m49.json"));
32
+ const areas_1 = require("./areas");
33
+ const regions_1 = require("./regions");
34
+ /**
35
+ * @public
36
+ */
37
+ class RegionCodes {
38
+ /**
39
+ * @internal
40
+ */
41
+ constructor() {
42
+ this.regions = new regions_1.Regions();
43
+ this.areas = new areas_1.Areas();
44
+ }
45
+ static create(rows) {
46
+ const codes = new RegionCodes();
47
+ return codes._importRows(rows).onSuccess(() => {
48
+ return (0, ts_utils_1.succeed)(codes);
49
+ });
50
+ }
51
+ static createFromJson(from) {
52
+ return converters_1.m49CsvFile.convert(from).onSuccess(RegionCodes.create);
53
+ }
54
+ static loadDefault() {
55
+ return this.createFromJson(m49_json_1.default);
56
+ }
57
+ static loadCsv(path) {
58
+ return (0, converters_1.loadM49csvFileSync)(path).onSuccess((rows) => {
59
+ return this.create(rows);
60
+ });
61
+ }
62
+ tryGetRegionOrArea(code) {
63
+ var _a;
64
+ /* c8 ignore next - numeric area not allowed in bcp-47 so right side of ?? shouldn't be hit. */
65
+ return (_a = this.regions.tryGetRegion(code)) !== null && _a !== void 0 ? _a : this.areas.tryGetArea(code);
66
+ }
67
+ getIsContained(container, contained) {
68
+ let next = contained;
69
+ while (next) {
70
+ if (next === container) {
71
+ return true;
72
+ }
73
+ next = next.tier !== 'global' ? next.parent : undefined;
74
+ }
75
+ return false;
76
+ }
77
+ /**
78
+ * Imports a single parsed row of UN M.49 region code data
79
+ * @param row - The parsed row to be imported.
80
+ * @returns `Success` with `true` if the row was successfully
81
+ * imported, or `Failure` with details if an error occurs.
82
+ * @internal
83
+ */
84
+ _importRow(row) {
85
+ return this.regions
86
+ .getOrAddRegionChildRegion('region', this.regions.global, row.regionCode, row.regionName)
87
+ .onSuccess((region) => {
88
+ return this.regions.getOrAddRegionChildRegion('subRegion', region, row.subRegionCode, row.subRegionName);
89
+ })
90
+ .onSuccess((region) => {
91
+ return this.regions.getOrAddRegionChildRegion('intermediateRegion', region, row.intermediateRegionCode, row.intermediateRegionName);
92
+ })
93
+ .onSuccess((region) => {
94
+ return this.areas.addArea({
95
+ name: row.countryOrArea,
96
+ code: row.m49Code,
97
+ tier: 'area',
98
+ parent: region,
99
+ isoAlpha2: row.isoAlpha2RegionCode,
100
+ isoAlpha3: row.isoAlpha3RegionCode,
101
+ leastDevelopedCountry: row.leastDevelopedCountry,
102
+ landlockedDevelopingCountry: row.landLockedDevelopingCountry,
103
+ smallIslandDevelopingState: row.smallIslandDevelopingState
104
+ });
105
+ })
106
+ .onSuccess(() => {
107
+ return (0, ts_utils_1.succeed)(true);
108
+ });
109
+ }
110
+ /**
111
+ * Imports multiple parsed rows from UN M.49 region code data
112
+ * @param rows - The parsed rows to be imported.
113
+ * @returns `Success` with `true` if the rows were successfully
114
+ * imported, or `Failure` with details if an error occurs.
115
+ * @internal
116
+ */
117
+ _importRows(rows) {
118
+ return (0, ts_utils_1.allSucceed)(rows.map((row) => this._importRow(row)), true);
119
+ }
120
+ }
121
+ exports.RegionCodes = RegionCodes;
122
+ //# sourceMappingURL=regionCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regionCodes.js","sourceRoot":"","sources":["../../../src/packlets/unsd/regionCodes.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\nimport * as Iana from '../iana';\nimport * as Model from './csv/model';\n\nimport { Result, allSucceed, succeed } from '@fgv/ts-utils';\nimport { ICountryOrArea, Region } from './common';\nimport { loadM49csvFileSync, m49CsvFile } from './csv/converters';\n\n// eslint-disable-next-line @rushstack/packlets/mechanics\nimport defaultRegions from '../../data/unsd/m49.json';\nimport { Areas } from './areas';\nimport { Regions } from './regions';\n\n/**\n * @public\n */\nexport class RegionCodes {\n public readonly regions: Regions;\n public readonly areas: Areas;\n\n /**\n * @internal\n */\n protected constructor() {\n this.regions = new Regions();\n this.areas = new Areas();\n }\n\n public static create(rows: Model.IM49CsvRow[]): Result<RegionCodes> {\n const codes = new RegionCodes();\n return codes._importRows(rows).onSuccess(() => {\n return succeed(codes);\n });\n }\n\n public static createFromJson(from: unknown): Result<RegionCodes> {\n return m49CsvFile.convert(from).onSuccess(RegionCodes.create);\n }\n\n public static loadDefault(): Result<RegionCodes> {\n return this.createFromJson(defaultRegions);\n }\n\n public static loadCsv(path: string): Result<RegionCodes> {\n return loadM49csvFileSync(path).onSuccess((rows) => {\n return this.create(rows);\n });\n }\n\n public tryGetRegionOrArea(code: Iana.Model.UnM49RegionCode): Region | ICountryOrArea | undefined {\n /* c8 ignore next - numeric area not allowed in bcp-47 so right side of ?? shouldn't be hit. */\n return this.regions.tryGetRegion(code) ?? this.areas.tryGetArea(code);\n }\n\n public getIsContained(container: Region, contained: ICountryOrArea | Region): boolean {\n let next: Region | ICountryOrArea | undefined = contained;\n while (next) {\n if (next === container) {\n return true;\n }\n next = next.tier !== 'global' ? next.parent : undefined;\n }\n return false;\n }\n\n /**\n * Imports a single parsed row of UN M.49 region code data\n * @param row - The parsed row to be imported.\n * @returns `Success` with `true` if the row was successfully\n * imported, or `Failure` with details if an error occurs.\n * @internal\n */\n protected _importRow(row: Model.IM49CsvRow): Result<true> {\n return this.regions\n .getOrAddRegionChildRegion('region', this.regions.global, row.regionCode, row.regionName)\n .onSuccess((region) => {\n return this.regions.getOrAddRegionChildRegion(\n 'subRegion',\n region,\n row.subRegionCode,\n row.subRegionName\n );\n })\n .onSuccess((region) => {\n return this.regions.getOrAddRegionChildRegion(\n 'intermediateRegion',\n region,\n row.intermediateRegionCode,\n row.intermediateRegionName\n );\n })\n .onSuccess((region) => {\n return this.areas.addArea({\n name: row.countryOrArea,\n code: row.m49Code,\n tier: 'area',\n parent: region,\n isoAlpha2: row.isoAlpha2RegionCode,\n isoAlpha3: row.isoAlpha3RegionCode,\n leastDevelopedCountry: row.leastDevelopedCountry,\n landlockedDevelopingCountry: row.landLockedDevelopingCountry,\n smallIslandDevelopingState: row.smallIslandDevelopingState\n });\n })\n .onSuccess(() => {\n return succeed(true);\n });\n }\n\n /**\n * Imports multiple parsed rows from UN M.49 region code data\n * @param rows - The parsed rows to be imported.\n * @returns `Success` with `true` if the rows were successfully\n * imported, or `Failure` with details if an error occurs.\n * @internal\n */\n protected _importRows(rows: Model.IM49CsvRow[]): Result<true> {\n return allSucceed(\n rows.map((row) => this._importRow(row)),\n true\n );\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { Result } from '@fgv/ts-utils';
2
+ import * as Iana from '../iana';
3
+ import { IGlobalRegion, IntermediateRegionTier, Region } from './common';
4
+ export declare const GlobalRegionName: string;
5
+ export declare const GlobalRegionCode: Iana.Model.UnM49RegionCode;
6
+ /**
7
+ * @public
8
+ */
9
+ export declare class Regions {
10
+ readonly global: IGlobalRegion;
11
+ /**
12
+ * @internal
13
+ */
14
+ protected readonly _regions: Map<Iana.Model.UnM49RegionCode, Region>;
15
+ constructor();
16
+ tryGetRegion(from: Iana.Model.UnM49RegionCode): Region | undefined;
17
+ getRegion(from: Iana.Model.UnM49RegionCode): Result<Region>;
18
+ getOrAddRegionChildRegion(tier: IntermediateRegionTier, parent: Region, code: Iana.Model.UnM49RegionCode | undefined, name: string | undefined): Result<Region>;
19
+ getAll(): Region[];
20
+ }
21
+ //# sourceMappingURL=regions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regions.d.ts","sourceRoot":"","sources":["../../../src/packlets/unsd/regions.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAiB,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGzE,eAAO,MAAM,gBAAgB,EAAE,MAAgB,CAAC;AAChD,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAqD,CAAC;AAGhG;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,MAAM,EAAE,aAAa,CAAC;IACtC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;;IAO9D,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,GAAG,SAAS;IAIlE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAK3D,yBAAyB,CAC9B,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,EAC5C,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,CAAC,MAAM,CAAC;IA+BV,MAAM,IAAI,MAAM,EAAE;CAG1B"}
@@ -0,0 +1,77 @@
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.Regions = exports.GlobalRegionCode = exports.GlobalRegionName = void 0;
25
+ const ts_utils_1 = require("@fgv/ts-utils");
26
+ /* eslint-disable @typescript-eslint/naming-convention */
27
+ exports.GlobalRegionName = 'World';
28
+ exports.GlobalRegionCode = '001';
29
+ /* eslint-enable @typescript-eslint/naming-convention */
30
+ /**
31
+ * @public
32
+ */
33
+ class Regions {
34
+ constructor() {
35
+ this.global = { name: exports.GlobalRegionName, code: exports.GlobalRegionCode, tier: 'global', regions: [], areas: [] };
36
+ this._regions = new Map();
37
+ }
38
+ tryGetRegion(from) {
39
+ return this._regions.get(from);
40
+ }
41
+ getRegion(from) {
42
+ const got = this._regions.get(from);
43
+ return got ? (0, ts_utils_1.succeed)(got) : (0, ts_utils_1.fail)(`${from}: region not found`);
44
+ }
45
+ getOrAddRegionChildRegion(tier, parent, code, name) {
46
+ if (!code && !name) {
47
+ return (0, ts_utils_1.succeed)(parent);
48
+ }
49
+ else if (!code || !name) {
50
+ return (0, ts_utils_1.fail)(`${code}(${name}): code and name must both be present`);
51
+ }
52
+ const existing = this._regions.get(code);
53
+ if (existing) {
54
+ if (existing.name !== name) {
55
+ return (0, ts_utils_1.fail)(`${code}: cannot add ${name} - already exists as ${existing.name}`);
56
+ }
57
+ if (existing.tier !== tier) {
58
+ return (0, ts_utils_1.fail)(`${code}: cannot add ${name} as tier ${tier} - already exists as tier ${existing.tier}`);
59
+ }
60
+ if (existing.parent !== parent) {
61
+ const haveParent = `${existing.parent.code}/${existing.parent.name}`;
62
+ const wantParent = `${parent.code}/${parent.name}`;
63
+ return (0, ts_utils_1.fail)(`${code}: cannot add ${name} with parent ${wantParent} - already exists with parent ${haveParent}`);
64
+ }
65
+ return (0, ts_utils_1.succeed)(existing);
66
+ }
67
+ const added = { name, code, tier, parent, regions: [], areas: [] };
68
+ this._regions.set(code, added);
69
+ parent.regions.push(added);
70
+ return (0, ts_utils_1.succeed)(added);
71
+ }
72
+ getAll() {
73
+ return Array.from(this._regions.values());
74
+ }
75
+ }
76
+ exports.Regions = Regions;
77
+ //# sourceMappingURL=regions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regions.js","sourceRoot":"","sources":["../../../src/packlets/unsd/regions.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\nimport { Result, fail, succeed } from '@fgv/ts-utils';\nimport * as Iana from '../iana';\nimport { IGlobalRegion, IntermediateRegionTier, Region } from './common';\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport const GlobalRegionName: string = 'World';\nexport const GlobalRegionCode: Iana.Model.UnM49RegionCode = '001' as Iana.Model.UnM49RegionCode;\n/* eslint-enable @typescript-eslint/naming-convention */\n\n/**\n * @public\n */\nexport class Regions {\n public readonly global: IGlobalRegion;\n /**\n * @internal\n */\n protected readonly _regions: Map<Iana.Model.UnM49RegionCode, Region>;\n\n public constructor() {\n this.global = { name: GlobalRegionName, code: GlobalRegionCode, tier: 'global', regions: [], areas: [] };\n this._regions = new Map();\n }\n\n public tryGetRegion(from: Iana.Model.UnM49RegionCode): Region | undefined {\n return this._regions.get(from);\n }\n\n public getRegion(from: Iana.Model.UnM49RegionCode): Result<Region> {\n const got = this._regions.get(from);\n return got ? succeed(got) : fail(`${from}: region not found`);\n }\n\n public getOrAddRegionChildRegion(\n tier: IntermediateRegionTier,\n parent: Region,\n code: Iana.Model.UnM49RegionCode | undefined,\n name: string | undefined\n ): Result<Region> {\n if (!code && !name) {\n return succeed(parent);\n } else if (!code || !name) {\n return fail(`${code}(${name}): code and name must both be present`);\n }\n\n const existing = this._regions.get(code);\n if (existing) {\n if (existing.name !== name) {\n return fail(`${code}: cannot add ${name} - already exists as ${existing.name}`);\n }\n if (existing.tier !== tier) {\n return fail(`${code}: cannot add ${name} as tier ${tier} - already exists as tier ${existing.tier}`);\n }\n if (existing.parent !== parent) {\n const haveParent = `${existing.parent.code}/${existing.parent.name}`;\n const wantParent = `${parent.code}/${parent.name}`;\n return fail(\n `${code}: cannot add ${name} with parent ${wantParent} - already exists with parent ${haveParent}`\n );\n }\n return succeed(existing);\n }\n\n const added = { name, code, tier, parent, regions: [], areas: [] };\n this._regions.set(code, added);\n parent.regions.push(added);\n return succeed(added);\n }\n\n public getAll(): Region[] {\n return Array.from(this._regions.values());\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/packlets/utils/index.ts"],"names":[],"mappings":"AAsBA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
@@ -37,4 +37,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  __exportStar(require("./jsonHelpers"), exports);
39
39
  __exportStar(require("./validationHelpers"), exports);
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILGdEQUE4QjtBQUM5QixzREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9qc29uSGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRpb25IZWxwZXJzJztcbiJdfQ==
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/packlets/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,sDAAoC","sourcesContent":["/*\n * Copyright (c) 2021 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\nexport * from './jsonHelpers';\nexport * from './validationHelpers';\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonHelpers.d.ts","sourceRoot":"","sources":["../../../src/packlets/utils/jsonHelpers.ts"],"names":[],"mappings":"AAsBA,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAE1C"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2021 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.sanitizeJson = void 0;
25
+ function sanitizeJson(from) {
26
+ return JSON.parse(JSON.stringify(from));
27
+ }
28
+ exports.sanitizeJson = sanitizeJson;
29
+ //# sourceMappingURL=jsonHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonHelpers.js","sourceRoot":"","sources":["../../../src/packlets/utils/jsonHelpers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEH,SAAgB,YAAY,CAAI,IAAO;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAM,CAAC;AAC/C,CAAC;AAFD,oCAEC","sourcesContent":["/*\n * Copyright (c) 2021 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\nexport function sanitizeJson<T>(from: T): T {\n return JSON.parse(JSON.stringify(from)) as T;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { Normalizer, ValidationHelpers, IValidationHelpersConstructorParams as ValidationHelpersConstructorParams } from './validationHelpers';
2
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/packlets/utils/public.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mCAAmC,IAAI,kCAAkC,EAC1E,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,28 @@
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
+ // istanbul ignore file
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ValidationHelpers = void 0;
26
+ var validationHelpers_1 = require("./validationHelpers");
27
+ Object.defineProperty(exports, "ValidationHelpers", { enumerable: true, get: function () { return validationHelpers_1.ValidationHelpers; } });
28
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/packlets/utils/public.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,uBAAuB;;;AAEvB,yDAI6B;AAF3B,sHAAA,iBAAiB,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// istanbul ignore file\n\nexport {\n Normalizer,\n ValidationHelpers,\n IValidationHelpersConstructorParams as ValidationHelpersConstructorParams\n} from './validationHelpers';\n"]}