@fgv/ts-bcp47 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +141 -0
  3. package/bcp47/bcp47Subtags/converters.d.ts +9 -0
  4. package/bcp47/bcp47Subtags/converters.d.ts.map +1 -0
  5. package/bcp47/bcp47Subtags/converters.js +57 -0
  6. package/bcp47/bcp47Subtags/index.d.ts +5 -0
  7. package/bcp47/bcp47Subtags/index.d.ts.map +1 -0
  8. package/bcp47/bcp47Subtags/index.js +54 -0
  9. package/bcp47/bcp47Subtags/model.d.ts +18 -0
  10. package/bcp47/bcp47Subtags/model.d.ts.map +1 -0
  11. package/bcp47/bcp47Subtags/model.js +24 -0
  12. package/bcp47/bcp47Subtags/validate.d.ts +16 -0
  13. package/bcp47/bcp47Subtags/validate.d.ts.map +1 -0
  14. package/bcp47/bcp47Subtags/validate.js +74 -0
  15. package/bcp47/common.d.ts +38 -0
  16. package/bcp47/common.d.ts.map +1 -0
  17. package/bcp47/common.js +59 -0
  18. package/bcp47/helpers.d.ts +66 -0
  19. package/bcp47/helpers.d.ts.map +1 -0
  20. package/bcp47/helpers.js +103 -0
  21. package/bcp47/index.d.ts +7 -0
  22. package/bcp47/index.d.ts.map +1 -0
  23. package/bcp47/index.js +27 -0
  24. package/bcp47/languageTag.d.ts +208 -0
  25. package/bcp47/languageTag.d.ts.map +1 -0
  26. package/bcp47/languageTag.js +342 -0
  27. package/bcp47/languageTagParser.d.ts +123 -0
  28. package/bcp47/languageTagParser.d.ts.map +1 -0
  29. package/bcp47/languageTagParser.js +310 -0
  30. package/bcp47/match/chooser.d.ts +70 -0
  31. package/bcp47/match/chooser.d.ts.map +1 -0
  32. package/bcp47/match/chooser.js +92 -0
  33. package/bcp47/match/common.d.ts +24 -0
  34. package/bcp47/match/common.d.ts.map +1 -0
  35. package/bcp47/match/common.js +42 -0
  36. package/bcp47/match/index.d.ts +4 -0
  37. package/bcp47/match/index.d.ts.map +1 -0
  38. package/bcp47/match/index.js +45 -0
  39. package/bcp47/match/similarity.d.ts +24 -0
  40. package/bcp47/match/similarity.d.ts.map +1 -0
  41. package/bcp47/match/similarity.js +230 -0
  42. package/bcp47/normalization/baseNormalizer.d.ts +36 -0
  43. package/bcp47/normalization/baseNormalizer.d.ts.map +1 -0
  44. package/bcp47/normalization/baseNormalizer.js +114 -0
  45. package/bcp47/normalization/canonicalNormalizer.d.ts +22 -0
  46. package/bcp47/normalization/canonicalNormalizer.d.ts.map +1 -0
  47. package/bcp47/normalization/canonicalNormalizer.js +110 -0
  48. package/bcp47/normalization/common.d.ts +23 -0
  49. package/bcp47/normalization/common.d.ts.map +1 -0
  50. package/bcp47/normalization/common.js +82 -0
  51. package/bcp47/normalization/index.d.ts +5 -0
  52. package/bcp47/normalization/index.d.ts.map +1 -0
  53. package/bcp47/normalization/index.js +47 -0
  54. package/bcp47/normalization/normalizeTag.d.ts +59 -0
  55. package/bcp47/normalization/normalizeTag.d.ts.map +1 -0
  56. package/bcp47/normalization/normalizeTag.js +105 -0
  57. package/bcp47/normalization/preferredTagNormalizer.d.ts +26 -0
  58. package/bcp47/normalization/preferredTagNormalizer.d.ts.map +1 -0
  59. package/bcp47/normalization/preferredTagNormalizer.js +178 -0
  60. package/bcp47/overrides/converters.d.ts +19 -0
  61. package/bcp47/overrides/converters.d.ts.map +1 -0
  62. package/bcp47/overrides/converters.js +75 -0
  63. package/bcp47/overrides/defaultRegistries.d.ts +12 -0
  64. package/bcp47/overrides/defaultRegistries.d.ts.map +1 -0
  65. package/bcp47/overrides/defaultRegistries.js +42 -0
  66. package/bcp47/overrides/index.d.ts +3 -0
  67. package/bcp47/overrides/index.d.ts.map +1 -0
  68. package/bcp47/overrides/index.js +30 -0
  69. package/bcp47/overrides/model.d.ts +11 -0
  70. package/bcp47/overrides/model.d.ts.map +1 -0
  71. package/bcp47/overrides/model.js +24 -0
  72. package/bcp47/overrides/overridesRegistry.d.ts +32 -0
  73. package/bcp47/overrides/overridesRegistry.d.ts.map +1 -0
  74. package/bcp47/overrides/overridesRegistry.js +101 -0
  75. package/bcp47/validation/baseValidator.d.ts +35 -0
  76. package/bcp47/validation/baseValidator.d.ts.map +1 -0
  77. package/bcp47/validation/baseValidator.js +111 -0
  78. package/bcp47/validation/common.d.ts +23 -0
  79. package/bcp47/validation/common.d.ts.map +1 -0
  80. package/bcp47/validation/common.js +84 -0
  81. package/bcp47/validation/index.d.ts +7 -0
  82. package/bcp47/validation/index.d.ts.map +1 -0
  83. package/bcp47/validation/index.js +51 -0
  84. package/bcp47/validation/isCanonical.d.ts +22 -0
  85. package/bcp47/validation/isCanonical.d.ts.map +1 -0
  86. package/bcp47/validation/isCanonical.js +101 -0
  87. package/bcp47/validation/isInPreferredForm.d.ts +15 -0
  88. package/bcp47/validation/isInPreferredForm.d.ts.map +1 -0
  89. package/bcp47/validation/isInPreferredForm.js +73 -0
  90. package/bcp47/validation/isStrictlyValid.d.ts +18 -0
  91. package/bcp47/validation/isStrictlyValid.d.ts.map +1 -0
  92. package/bcp47/validation/isStrictlyValid.js +98 -0
  93. package/bcp47/validation/isValid.d.ts +24 -0
  94. package/bcp47/validation/isValid.d.ts.map +1 -0
  95. package/bcp47/validation/isValid.js +115 -0
  96. package/bcp47/validation/isWellFormed.d.ts +22 -0
  97. package/bcp47/validation/isWellFormed.d.ts.map +1 -0
  98. package/bcp47/validation/isWellFormed.js +98 -0
  99. package/bcp47/validation/validateTag.d.ts +97 -0
  100. package/bcp47/validation/validateTag.d.ts.map +1 -0
  101. package/bcp47/validation/validateTag.js +159 -0
  102. package/data/bcp/overrides.json +21 -0
  103. package/data/iana/language-subtags.json +77295 -0
  104. package/data/iana/language-tag-extensions.json +42 -0
  105. package/data/unsd/m49.csv +250 -0
  106. package/iana/common/converters.d.ts +31 -0
  107. package/iana/common/converters.d.ts.map +1 -0
  108. package/iana/common/converters.js +84 -0
  109. package/iana/common/model.d.ts +30 -0
  110. package/iana/common/model.d.ts.map +1 -0
  111. package/iana/common/model.js +24 -0
  112. package/iana/common/registeredItems.d.ts +30 -0
  113. package/iana/common/registeredItems.d.ts.map +1 -0
  114. package/iana/common/registeredItems.js +124 -0
  115. package/iana/common/utils.d.ts +7 -0
  116. package/iana/common/utils.d.ts.map +1 -0
  117. package/iana/common/utils.js +34 -0
  118. package/iana/common/validate.d.ts +19 -0
  119. package/iana/common/validate.d.ts.map +1 -0
  120. package/iana/common/validate.js +61 -0
  121. package/iana/converters.d.ts +4 -0
  122. package/iana/converters.d.ts.map +1 -0
  123. package/iana/converters.js +54 -0
  124. package/iana/defaultRegistries.d.ts +12 -0
  125. package/iana/defaultRegistries.d.ts.map +1 -0
  126. package/iana/defaultRegistries.js +42 -0
  127. package/iana/index.d.ts +9 -0
  128. package/iana/index.d.ts.map +1 -0
  129. package/iana/index.js +64 -0
  130. package/iana/jar/converters.d.ts +4 -0
  131. package/iana/jar/converters.d.ts.map +1 -0
  132. package/iana/jar/converters.js +54 -0
  133. package/iana/jar/index.d.ts +4 -0
  134. package/iana/jar/index.d.ts.map +1 -0
  135. package/iana/jar/index.js +52 -0
  136. package/iana/jar/jarConverters.d.ts +17 -0
  137. package/iana/jar/jarConverters.d.ts.map +1 -0
  138. package/iana/jar/jarConverters.js +85 -0
  139. package/iana/jar/jarModel.d.ts +11 -0
  140. package/iana/jar/jarModel.d.ts.map +1 -0
  141. package/iana/jar/jarModel.js +24 -0
  142. package/iana/jar/language-subtags/converters.d.ts +4 -0
  143. package/iana/jar/language-subtags/converters.d.ts.map +1 -0
  144. package/iana/jar/language-subtags/converters.js +52 -0
  145. package/iana/jar/language-subtags/index.d.ts +4 -0
  146. package/iana/jar/language-subtags/index.d.ts.map +1 -0
  147. package/iana/jar/language-subtags/index.js +54 -0
  148. package/iana/jar/language-subtags/model.d.ts +4 -0
  149. package/iana/jar/language-subtags/model.d.ts.map +1 -0
  150. package/iana/jar/language-subtags/model.js +52 -0
  151. package/iana/jar/language-subtags/registry/converters.d.ts +10 -0
  152. package/iana/jar/language-subtags/registry/converters.d.ts.map +1 -0
  153. package/iana/jar/language-subtags/registry/converters.js +58 -0
  154. package/iana/jar/language-subtags/registry/index.d.ts +4 -0
  155. package/iana/jar/language-subtags/registry/index.d.ts.map +1 -0
  156. package/iana/jar/language-subtags/registry/index.js +55 -0
  157. package/iana/jar/language-subtags/registry/model.d.ts +88 -0
  158. package/iana/jar/language-subtags/registry/model.d.ts.map +1 -0
  159. package/iana/jar/language-subtags/registry/model.js +41 -0
  160. package/iana/jar/language-subtags/tags/converters.d.ts +55 -0
  161. package/iana/jar/language-subtags/tags/converters.d.ts.map +1 -0
  162. package/iana/jar/language-subtags/tags/converters.js +128 -0
  163. package/iana/jar/language-subtags/tags/index.d.ts +5 -0
  164. package/iana/jar/language-subtags/tags/index.d.ts.map +1 -0
  165. package/iana/jar/language-subtags/tags/index.js +56 -0
  166. package/iana/jar/language-subtags/tags/model.d.ts +42 -0
  167. package/iana/jar/language-subtags/tags/model.d.ts.map +1 -0
  168. package/iana/jar/language-subtags/tags/model.js +24 -0
  169. package/iana/jar/language-subtags/tags/tagValidation.d.ts +11 -0
  170. package/iana/jar/language-subtags/tags/tagValidation.d.ts.map +1 -0
  171. package/iana/jar/language-subtags/tags/tagValidation.js +70 -0
  172. package/iana/jar/language-subtags/tags/validate.d.ts +36 -0
  173. package/iana/jar/language-subtags/tags/validate.d.ts.map +1 -0
  174. package/iana/jar/language-subtags/tags/validate.js +87 -0
  175. package/iana/jar/model.d.ts +4 -0
  176. package/iana/jar/model.d.ts.map +1 -0
  177. package/iana/jar/model.js +54 -0
  178. package/iana/language-subtags/common.d.ts +5 -0
  179. package/iana/language-subtags/common.d.ts.map +1 -0
  180. package/iana/language-subtags/common.js +24 -0
  181. package/iana/language-subtags/converters.d.ts +52 -0
  182. package/iana/language-subtags/converters.d.ts.map +1 -0
  183. package/iana/language-subtags/converters.js +200 -0
  184. package/iana/language-subtags/index.d.ts +7 -0
  185. package/iana/language-subtags/index.d.ts.map +1 -0
  186. package/iana/language-subtags/index.js +60 -0
  187. package/iana/language-subtags/jarConverters.d.ts +55 -0
  188. package/iana/language-subtags/jarConverters.d.ts.map +1 -0
  189. package/iana/language-subtags/jarConverters.js +213 -0
  190. package/iana/language-subtags/model.d.ts +144 -0
  191. package/iana/language-subtags/model.d.ts.map +1 -0
  192. package/iana/language-subtags/model.js +24 -0
  193. package/iana/language-subtags/scope.d.ts +77 -0
  194. package/iana/language-subtags/scope.d.ts.map +1 -0
  195. package/iana/language-subtags/scope.js +179 -0
  196. package/iana/language-subtags/subtagRegistry.d.ts +36 -0
  197. package/iana/language-subtags/subtagRegistry.d.ts.map +1 -0
  198. package/iana/language-subtags/subtagRegistry.js +139 -0
  199. package/iana/language-subtags/validate.d.ts +2 -0
  200. package/iana/language-subtags/validate.d.ts.map +1 -0
  201. package/iana/language-subtags/validate.js +39 -0
  202. package/iana/language-tag-extensions/converters.d.ts +23 -0
  203. package/iana/language-tag-extensions/converters.d.ts.map +1 -0
  204. package/iana/language-tag-extensions/converters.js +87 -0
  205. package/iana/language-tag-extensions/extensionsRegistry.d.ts +26 -0
  206. package/iana/language-tag-extensions/extensionsRegistry.d.ts.map +1 -0
  207. package/iana/language-tag-extensions/extensionsRegistry.js +94 -0
  208. package/iana/language-tag-extensions/extensionsScope.d.ts +20 -0
  209. package/iana/language-tag-extensions/extensionsScope.d.ts.map +1 -0
  210. package/iana/language-tag-extensions/extensionsScope.js +77 -0
  211. package/iana/language-tag-extensions/index.d.ts +6 -0
  212. package/iana/language-tag-extensions/index.d.ts.map +1 -0
  213. package/iana/language-tag-extensions/index.js +56 -0
  214. package/iana/language-tag-extensions/jarConverters.d.ts +28 -0
  215. package/iana/language-tag-extensions/jarConverters.d.ts.map +1 -0
  216. package/iana/language-tag-extensions/jarConverters.js +102 -0
  217. package/iana/language-tag-extensions/model.d.ts +40 -0
  218. package/iana/language-tag-extensions/model.d.ts.map +1 -0
  219. package/iana/language-tag-extensions/model.js +24 -0
  220. package/iana/language-tag-extensions/validate.d.ts +7 -0
  221. package/iana/language-tag-extensions/validate.d.ts.map +1 -0
  222. package/iana/language-tag-extensions/validate.js +36 -0
  223. package/iana/languageRegistries.d.ts +13 -0
  224. package/iana/languageRegistries.d.ts.map +1 -0
  225. package/iana/languageRegistries.js +49 -0
  226. package/iana/model.d.ts +4 -0
  227. package/iana/model.d.ts.map +1 -0
  228. package/iana/model.js +54 -0
  229. package/iana/validate.d.ts +2 -0
  230. package/iana/validate.d.ts.map +1 -0
  231. package/iana/validate.js +39 -0
  232. package/index.d.ts +5 -0
  233. package/index.d.ts.map +1 -0
  234. package/index.js +54 -0
  235. package/package.json +64 -0
  236. package/unsd/areas.d.ts +29 -0
  237. package/unsd/areas.d.ts.map +1 -0
  238. package/unsd/areas.js +96 -0
  239. package/unsd/common.d.ts +49 -0
  240. package/unsd/common.d.ts.map +1 -0
  241. package/unsd/common.js +24 -0
  242. package/unsd/csv/converters.d.ts +21 -0
  243. package/unsd/csv/converters.d.ts.map +1 -0
  244. package/unsd/csv/converters.js +70 -0
  245. package/unsd/csv/index.d.ts +4 -0
  246. package/unsd/csv/index.d.ts.map +1 -0
  247. package/unsd/csv/index.js +52 -0
  248. package/unsd/csv/model.d.ts +22 -0
  249. package/unsd/csv/model.d.ts.map +1 -0
  250. package/unsd/csv/model.js +24 -0
  251. package/unsd/defaultRegistries.d.ts +12 -0
  252. package/unsd/defaultRegistries.d.ts.map +1 -0
  253. package/unsd/defaultRegistries.js +42 -0
  254. package/unsd/index.d.ts +4 -0
  255. package/unsd/index.d.ts.map +1 -0
  256. package/unsd/index.js +44 -0
  257. package/unsd/regionCodes.d.ts +38 -0
  258. package/unsd/regionCodes.d.ts.map +1 -0
  259. package/unsd/regionCodes.js +111 -0
  260. package/unsd/regions.d.ts +21 -0
  261. package/unsd/regions.d.ts.map +1 -0
  262. package/unsd/regions.js +77 -0
  263. package/utils/index.d.ts +3 -0
  264. package/utils/index.d.ts.map +1 -0
  265. package/utils/index.js +40 -0
  266. package/utils/jsonHelpers.d.ts +2 -0
  267. package/utils/jsonHelpers.d.ts.map +1 -0
  268. package/utils/jsonHelpers.js +29 -0
  269. package/utils/validationHelpers.d.ts +47 -0
  270. package/utils/validationHelpers.d.ts.map +1 -0
  271. package/utils/validationHelpers.js +88 -0
@@ -0,0 +1,70 @@
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.loadM49cnvFileSync = exports.m49CsvFile = exports.m49CsvRow = exports.regionTier = void 0;
25
+ const ts_utils_1 = require("@fgv/ts-utils");
26
+ const iana_1 = require("../../iana");
27
+ const csvHelpers_1 = require("@fgv/ts-utils/csvHelpers");
28
+ exports.regionTier = ts_utils_1.Converters.enumeratedValue(['global', 'intermediateRegion', 'region', 'subRegion']);
29
+ const optionalString = ts_utils_1.Converters.string.optional('ignoreErrors');
30
+ const optionalUnM49RegionCode = iana_1.Converters.unM49RegionCode.optional('ignoreErrors');
31
+ const optionalIsoAlpha2RegionCode = iana_1.Converters.isoAlpha2RegionCode.optional('ignoreErrors');
32
+ const optionalIsoAlpha3RegionCode = iana_1.Converters.isoAlpha3RegionCode.optional('ignoreErrors');
33
+ /**
34
+ * @internal
35
+ */
36
+ exports.m49CsvRow = ts_utils_1.Converters.transform({
37
+ globalCode: ts_utils_1.Converters.element(0, iana_1.Converters.unM49RegionCode),
38
+ globalName: ts_utils_1.Converters.element(1, ts_utils_1.Converters.string),
39
+ regionCode: ts_utils_1.Converters.element(2, optionalUnM49RegionCode),
40
+ regionName: ts_utils_1.Converters.element(3, optionalString),
41
+ subRegionCode: ts_utils_1.Converters.element(4, optionalUnM49RegionCode),
42
+ subRegionName: ts_utils_1.Converters.element(5, optionalString),
43
+ intermediateRegionCode: ts_utils_1.Converters.element(6, optionalUnM49RegionCode),
44
+ intermediateRegionName: ts_utils_1.Converters.element(7, optionalString),
45
+ countryOrArea: ts_utils_1.Converters.element(8, ts_utils_1.Converters.string),
46
+ m49Code: ts_utils_1.Converters.element(9, iana_1.Converters.unM49RegionCode),
47
+ isoAlpha2RegionCode: ts_utils_1.Converters.element(10, optionalIsoAlpha2RegionCode),
48
+ isoAlpha3RegionCode: ts_utils_1.Converters.element(11, optionalIsoAlpha3RegionCode),
49
+ leastDevelopedCountry: ts_utils_1.Converters.element(12, ts_utils_1.Converters.string).map((s) => (0, ts_utils_1.succeed)(s === 'x')),
50
+ landLockedDevelopingCountry: ts_utils_1.Converters.element(13, ts_utils_1.Converters.string).map((s) => (0, ts_utils_1.succeed)(s === 'x')),
51
+ smallIslandDevelopingState: ts_utils_1.Converters.element(14, ts_utils_1.Converters.string).map((s) => (0, ts_utils_1.succeed)(s === 'x')),
52
+ });
53
+ /**
54
+ * @internal
55
+ */
56
+ exports.m49CsvFile = ts_utils_1.Converters.arrayOf(exports.m49CsvRow);
57
+ /**
58
+ * Loads a UNSD M.49 registry text (csv) file.
59
+ * @param csvPath - The path from which the file is to be loaded.
60
+ * @returns `Success` with the parsed file contents or `Failure` with
61
+ * details if an error occurs.
62
+ * @internal
63
+ */
64
+ function loadM49cnvFileSync(csvPath) {
65
+ return (0, csvHelpers_1.readCsvFileSync)(csvPath, { delimiter: ';' }).onSuccess((csv) => {
66
+ return exports.m49CsvFile.convert(csv);
67
+ });
68
+ }
69
+ exports.loadM49cnvFileSync = loadM49cnvFileSync;
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bnNkL2Nzdi9jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7OztBQUdILDRDQUE0RDtBQUM1RCxxQ0FBMEQ7QUFFMUQseURBQTJEO0FBRTlDLFFBQUEsVUFBVSxHQUFHLHFCQUFVLENBQUMsZUFBZSxDQUFhLENBQUMsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRTFILE1BQU0sY0FBYyxHQUFHLHFCQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNsRSxNQUFNLHVCQUF1QixHQUFHLGlCQUFjLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4RixNQUFNLDJCQUEyQixHQUFHLGlCQUFjLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ2hHLE1BQU0sMkJBQTJCLEdBQUcsaUJBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFaEc7O0dBRUc7QUFDVSxRQUFBLFNBQVMsR0FBRyxxQkFBVSxDQUFDLFNBQVMsQ0FBa0I7SUFDM0QsVUFBVSxFQUFFLHFCQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxpQkFBYyxDQUFDLGVBQWUsQ0FBQztJQUNqRSxVQUFVLEVBQUUscUJBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLHFCQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3BELFVBQVUsRUFBRSxxQkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUM7SUFDMUQsVUFBVSxFQUFFLHFCQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUM7SUFDakQsYUFBYSxFQUFFLHFCQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQztJQUM3RCxhQUFhLEVBQUUscUJBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQztJQUNwRCxzQkFBc0IsRUFBRSxxQkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUM7SUFDdEUsc0JBQXNCLEVBQUUscUJBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQztJQUM3RCxhQUFhLEVBQUUscUJBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLHFCQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3ZELE9BQU8sRUFBRSxxQkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsaUJBQWMsQ0FBQyxlQUFlLENBQUM7SUFDOUQsbUJBQW1CLEVBQUUscUJBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDO0lBQ3hFLG1CQUFtQixFQUFFLHFCQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQztJQUN4RSxxQkFBcUIsRUFBRSxxQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUscUJBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsa0JBQU8sRUFBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDL0YsMkJBQTJCLEVBQUUscUJBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLHFCQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGtCQUFPLEVBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ3JHLDBCQUEwQixFQUFFLHFCQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxxQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxrQkFBTyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztDQUN2RyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFHLHFCQUFVLENBQUMsT0FBTyxDQUFDLGlCQUFTLENBQUMsQ0FBQztBQUV4RDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFlO0lBQzlDLE9BQU8sSUFBQSw0QkFBZSxFQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2xFLE9BQU8sa0JBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBSkQsZ0RBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi9tb2RlbCc7XG5pbXBvcnQgeyBDb252ZXJ0ZXJzLCBSZXN1bHQsIHN1Y2NlZWQgfSBmcm9tICdAZmd2L3RzLXV0aWxzJztcbmltcG9ydCB7IENvbnZlcnRlcnMgYXMgSWFuYUNvbnZlcnRlcnMgfSBmcm9tICcuLi8uLi9pYW5hJztcbmltcG9ydCB7IFJlZ2lvblRpZXIgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgcmVhZENzdkZpbGVTeW5jIH0gZnJvbSAnQGZndi90cy11dGlscy9jc3ZIZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lvblRpZXIgPSBDb252ZXJ0ZXJzLmVudW1lcmF0ZWRWYWx1ZTxSZWdpb25UaWVyPihbJ2dsb2JhbCcsICdpbnRlcm1lZGlhdGVSZWdpb24nLCAncmVnaW9uJywgJ3N1YlJlZ2lvbiddKTtcblxuY29uc3Qgb3B0aW9uYWxTdHJpbmcgPSBDb252ZXJ0ZXJzLnN0cmluZy5vcHRpb25hbCgnaWdub3JlRXJyb3JzJyk7XG5jb25zdCBvcHRpb25hbFVuTTQ5UmVnaW9uQ29kZSA9IElhbmFDb252ZXJ0ZXJzLnVuTTQ5UmVnaW9uQ29kZS5vcHRpb25hbCgnaWdub3JlRXJyb3JzJyk7XG5jb25zdCBvcHRpb25hbElzb0FscGhhMlJlZ2lvbkNvZGUgPSBJYW5hQ29udmVydGVycy5pc29BbHBoYTJSZWdpb25Db2RlLm9wdGlvbmFsKCdpZ25vcmVFcnJvcnMnKTtcbmNvbnN0IG9wdGlvbmFsSXNvQWxwaGEzUmVnaW9uQ29kZSA9IElhbmFDb252ZXJ0ZXJzLmlzb0FscGhhM1JlZ2lvbkNvZGUub3B0aW9uYWwoJ2lnbm9yZUVycm9ycycpO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgbTQ5Q3N2Um93ID0gQ29udmVydGVycy50cmFuc2Zvcm08TW9kZWwuTTQ5Q3N2Um93Pih7XG4gICAgZ2xvYmFsQ29kZTogQ29udmVydGVycy5lbGVtZW50KDAsIElhbmFDb252ZXJ0ZXJzLnVuTTQ5UmVnaW9uQ29kZSksXG4gICAgZ2xvYmFsTmFtZTogQ29udmVydGVycy5lbGVtZW50KDEsIENvbnZlcnRlcnMuc3RyaW5nKSxcbiAgICByZWdpb25Db2RlOiBDb252ZXJ0ZXJzLmVsZW1lbnQoMiwgb3B0aW9uYWxVbk00OVJlZ2lvbkNvZGUpLFxuICAgIHJlZ2lvbk5hbWU6IENvbnZlcnRlcnMuZWxlbWVudCgzLCBvcHRpb25hbFN0cmluZyksXG4gICAgc3ViUmVnaW9uQ29kZTogQ29udmVydGVycy5lbGVtZW50KDQsIG9wdGlvbmFsVW5NNDlSZWdpb25Db2RlKSxcbiAgICBzdWJSZWdpb25OYW1lOiBDb252ZXJ0ZXJzLmVsZW1lbnQoNSwgb3B0aW9uYWxTdHJpbmcpLFxuICAgIGludGVybWVkaWF0ZVJlZ2lvbkNvZGU6IENvbnZlcnRlcnMuZWxlbWVudCg2LCBvcHRpb25hbFVuTTQ5UmVnaW9uQ29kZSksXG4gICAgaW50ZXJtZWRpYXRlUmVnaW9uTmFtZTogQ29udmVydGVycy5lbGVtZW50KDcsIG9wdGlvbmFsU3RyaW5nKSxcbiAgICBjb3VudHJ5T3JBcmVhOiBDb252ZXJ0ZXJzLmVsZW1lbnQoOCwgQ29udmVydGVycy5zdHJpbmcpLFxuICAgIG00OUNvZGU6IENvbnZlcnRlcnMuZWxlbWVudCg5LCBJYW5hQ29udmVydGVycy51bk00OVJlZ2lvbkNvZGUpLFxuICAgIGlzb0FscGhhMlJlZ2lvbkNvZGU6IENvbnZlcnRlcnMuZWxlbWVudCgxMCwgb3B0aW9uYWxJc29BbHBoYTJSZWdpb25Db2RlKSxcbiAgICBpc29BbHBoYTNSZWdpb25Db2RlOiBDb252ZXJ0ZXJzLmVsZW1lbnQoMTEsIG9wdGlvbmFsSXNvQWxwaGEzUmVnaW9uQ29kZSksXG4gICAgbGVhc3REZXZlbG9wZWRDb3VudHJ5OiBDb252ZXJ0ZXJzLmVsZW1lbnQoMTIsIENvbnZlcnRlcnMuc3RyaW5nKS5tYXAoKHMpID0+IHN1Y2NlZWQocyA9PT0gJ3gnKSksXG4gICAgbGFuZExvY2tlZERldmVsb3BpbmdDb3VudHJ5OiBDb252ZXJ0ZXJzLmVsZW1lbnQoMTMsIENvbnZlcnRlcnMuc3RyaW5nKS5tYXAoKHMpID0+IHN1Y2NlZWQocyA9PT0gJ3gnKSksXG4gICAgc21hbGxJc2xhbmREZXZlbG9waW5nU3RhdGU6IENvbnZlcnRlcnMuZWxlbWVudCgxNCwgQ29udmVydGVycy5zdHJpbmcpLm1hcCgocykgPT4gc3VjY2VlZChzID09PSAneCcpKSxcbn0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgbTQ5Q3N2RmlsZSA9IENvbnZlcnRlcnMuYXJyYXlPZihtNDlDc3ZSb3cpO1xuXG4vKipcbiAqIExvYWRzIGEgVU5TRCBNLjQ5IHJlZ2lzdHJ5IHRleHQgKGNzdikgZmlsZS5cbiAqIEBwYXJhbSBjc3ZQYXRoIC0gVGhlIHBhdGggZnJvbSB3aGljaCB0aGUgZmlsZSBpcyB0byBiZSBsb2FkZWQuXG4gKiBAcmV0dXJucyBgU3VjY2Vzc2Agd2l0aCB0aGUgcGFyc2VkIGZpbGUgY29udGVudHMgb3IgYEZhaWx1cmVgIHdpdGhcbiAqIGRldGFpbHMgaWYgYW4gZXJyb3Igb2NjdXJzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkTTQ5Y252RmlsZVN5bmMoY3N2UGF0aDogc3RyaW5nKTogUmVzdWx0PE1vZGVsLk00OUNzdlJvd1tdPiB7XG4gICAgcmV0dXJuIHJlYWRDc3ZGaWxlU3luYyhjc3ZQYXRoLCB7IGRlbGltaXRlcjogJzsnIH0pLm9uU3VjY2VzcygoY3N2KSA9PiB7XG4gICAgICAgIHJldHVybiBtNDlDc3ZGaWxlLmNvbnZlcnQoY3N2KTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import * as Converters from './converters';
2
+ import * as Model from './model';
3
+ export { Converters, Model };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unsd/csv/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,52 @@
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.Model = exports.Converters = void 0;
48
+ const Converters = __importStar(require("./converters"));
49
+ exports.Converters = Converters;
50
+ const Model = __importStar(require("./model"));
51
+ exports.Model = Model;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5zZC9jc3YvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx5REFBMkM7QUFHbEMsZ0NBQVU7QUFGbkIsK0NBQWlDO0FBRVosc0JBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0ICogYXMgQ29udmVydGVycyBmcm9tICcuL2NvbnZlcnRlcnMnO1xuaW1wb3J0ICogYXMgTW9kZWwgZnJvbSAnLi9tb2RlbCc7XG5cbmV4cG9ydCB7IENvbnZlcnRlcnMsIE1vZGVsIH07XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { IsoAlpha2RegionCode, IsoAlpha3RegionCode, UnM49RegionCode } from '../../iana/model';
2
+ /**
3
+ * @internal
4
+ */
5
+ export interface M49CsvRow {
6
+ globalCode: UnM49RegionCode;
7
+ globalName: string;
8
+ regionCode?: UnM49RegionCode;
9
+ regionName?: string;
10
+ subRegionCode?: UnM49RegionCode;
11
+ subRegionName?: string;
12
+ intermediateRegionCode?: UnM49RegionCode;
13
+ intermediateRegionName?: string;
14
+ countryOrArea: string;
15
+ m49Code: UnM49RegionCode;
16
+ isoAlpha2RegionCode?: IsoAlpha2RegionCode;
17
+ isoAlpha3RegionCode?: IsoAlpha3RegionCode;
18
+ leastDevelopedCountry: boolean;
19
+ landLockedDevelopingCountry: boolean;
20
+ smallIslandDevelopingState: boolean;
21
+ }
22
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/unsd/csv/model.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,2BAA2B,EAAE,OAAO,CAAC;IACrC,0BAA0B,EAAE,OAAO,CAAC;CACvC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022 Erik Fortune
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ * of this software and associated documentation files (the "Software"), to deal
7
+ * in the Software without restriction, including without limitation the rights
8
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the Software is
10
+ * furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5zZC9jc3YvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBJc29BbHBoYTJSZWdpb25Db2RlLCBJc29BbHBoYTNSZWdpb25Db2RlLCBVbk00OVJlZ2lvbkNvZGUgfSBmcm9tICcuLi8uLi9pYW5hL21vZGVsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNNDlDc3ZSb3cge1xuICAgIGdsb2JhbENvZGU6IFVuTTQ5UmVnaW9uQ29kZTtcbiAgICBnbG9iYWxOYW1lOiBzdHJpbmc7XG4gICAgcmVnaW9uQ29kZT86IFVuTTQ5UmVnaW9uQ29kZTtcbiAgICByZWdpb25OYW1lPzogc3RyaW5nO1xuICAgIHN1YlJlZ2lvbkNvZGU/OiBVbk00OVJlZ2lvbkNvZGU7XG4gICAgc3ViUmVnaW9uTmFtZT86IHN0cmluZztcbiAgICBpbnRlcm1lZGlhdGVSZWdpb25Db2RlPzogVW5NNDlSZWdpb25Db2RlO1xuICAgIGludGVybWVkaWF0ZVJlZ2lvbk5hbWU/OiBzdHJpbmc7XG4gICAgY291bnRyeU9yQXJlYTogc3RyaW5nO1xuICAgIG00OUNvZGU6IFVuTTQ5UmVnaW9uQ29kZTtcbiAgICBpc29BbHBoYTJSZWdpb25Db2RlPzogSXNvQWxwaGEyUmVnaW9uQ29kZTtcbiAgICBpc29BbHBoYTNSZWdpb25Db2RlPzogSXNvQWxwaGEzUmVnaW9uQ29kZTtcbiAgICBsZWFzdERldmVsb3BlZENvdW50cnk6IGJvb2xlYW47XG4gICAgbGFuZExvY2tlZERldmVsb3BpbmdDb3VudHJ5OiBib29sZWFuO1xuICAgIHNtYWxsSXNsYW5kRGV2ZWxvcGluZ1N0YXRlOiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { RegionCodes } from './regionCodes';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare class DefaultRegistries {
6
+ /**
7
+ * @internal
8
+ */
9
+ protected static _regionCodes?: RegionCodes;
10
+ static get regionCodes(): RegionCodes;
11
+ }
12
+ //# sourceMappingURL=defaultRegistries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRegistries.d.ts","sourceRoot":"","sources":["../../src/unsd/defaultRegistries.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,iBAAiB;IAC1B;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,CAAa;IAExD,WAAkB,WAAW,IAAI,WAAW,CAK3C;CACJ"}
@@ -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.createFromCsvFile('data/unsd/m49.csv').orThrow();
33
+ }
34
+ return this._regionCodes;
35
+ }
36
+ }
37
+ exports.DefaultRegistries = DefaultRegistries;
38
+ /**
39
+ * @internal
40
+ */
41
+ DefaultRegistries._regionCodes = undefined;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFJlZ2lzdHJpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdW5zZC9kZWZhdWx0UmVnaXN0cmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFFSCwrQ0FBNEM7QUFFNUM7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQU1uQixNQUFNLEtBQUssV0FBVztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLHlCQUFXLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNwRjtRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDOztBQVhMLDhDQVlDO0FBWEc7O0dBRUc7QUFDYyw4QkFBWSxHQUFpQixTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgUmVnaW9uQ29kZXMgfSBmcm9tICcuL3JlZ2lvbkNvZGVzJztcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0UmVnaXN0cmllcyB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfcmVnaW9uQ29kZXM/OiBSZWdpb25Db2RlcyA9IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IHJlZ2lvbkNvZGVzKCk6IFJlZ2lvbkNvZGVzIHtcbiAgICAgICAgaWYgKCF0aGlzLl9yZWdpb25Db2Rlcykge1xuICAgICAgICAgICAgdGhpcy5fcmVnaW9uQ29kZXMgPSBSZWdpb25Db2Rlcy5jcmVhdGVGcm9tQ3N2RmlsZSgnZGF0YS91bnNkL200OS5jc3YnKS5vclRocm93KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2lvbkNvZGVzO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './common';
2
+ export { DefaultRegistries } from './defaultRegistries';
3
+ export { RegionCodes } from './regionCodes';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unsd/index.ts"],"names":[],"mappings":"AAsBA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
package/unsd/index.js ADDED
@@ -0,0 +1,44 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
35
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.RegionCodes = exports.DefaultRegistries = void 0;
39
+ __exportStar(require("./common"), exports);
40
+ var defaultRegistries_1 = require("./defaultRegistries");
41
+ Object.defineProperty(exports, "DefaultRegistries", { enumerable: true, get: function () { return defaultRegistries_1.DefaultRegistries; } });
42
+ var regionCodes_1 = require("./regionCodes");
43
+ Object.defineProperty(exports, "RegionCodes", { enumerable: true, get: function () { return regionCodes_1.RegionCodes; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdW5zZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJDQUF5QjtBQUN6Qix5REFBd0Q7QUFBL0Msc0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsNkNBQTRDO0FBQW5DLDBHQUFBLFdBQVcsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgeyBEZWZhdWx0UmVnaXN0cmllcyB9IGZyb20gJy4vZGVmYXVsdFJlZ2lzdHJpZXMnO1xuZXhwb3J0IHsgUmVnaW9uQ29kZXMgfSBmcm9tICcuL3JlZ2lvbkNvZGVzJztcbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import * as Model from './csv/model';
2
+ import { CountryOrArea, Region } from './common';
3
+ import { Result } from '@fgv/ts-utils';
4
+ import { Areas } from './areas';
5
+ import { Regions } from './regions';
6
+ import { UnM49RegionCode } from '../iana/model';
7
+ /**
8
+ * @public
9
+ */
10
+ export declare class RegionCodes {
11
+ readonly regions: Regions;
12
+ readonly areas: Areas;
13
+ /**
14
+ * @internal
15
+ */
16
+ protected constructor();
17
+ static createFromCsvFile(path: string): Result<RegionCodes>;
18
+ static createFromCsv(rows: Model.M49CsvRow[]): Result<RegionCodes>;
19
+ tryGetRegionOrArea(code: UnM49RegionCode): Region | CountryOrArea | undefined;
20
+ getIsContained(container: Region, contained: CountryOrArea | Region): boolean;
21
+ /**
22
+ * Imports a single parsed row of UN M.49 region code data
23
+ * @param row - The parsed row to be imported.
24
+ * @returns `Success` with `true` if the row was successfully
25
+ * imported, or `Failure` with details if an error occurs.
26
+ * @internal
27
+ */
28
+ protected _importRow(row: Model.M49CsvRow): Result<true>;
29
+ /**
30
+ * Imports multiple parsed rows from UN M.49 region code data
31
+ * @param rows - The parsed rows to be imported.
32
+ * @returns `Success` with `true` if the rows were successfully
33
+ * imported, or `Failure` with details if an error occurs.
34
+ * @internal
35
+ */
36
+ protected _importRows(rows: Model.M49CsvRow[]): Result<true>;
37
+ }
38
+ //# sourceMappingURL=regionCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regionCodes.d.ts","sourceRoot":"","sources":["../../src/unsd/regionCodes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAAuB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD;;GAEG;AACH,qBAAa,WAAW;IACpB,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAE7B;;OAEG;IACH,SAAS;WAKK,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;WAMpD,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAOlE,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS;IAK7E,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,OAAO;IAWpF;;;;;;OAMG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;IAgCxD;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;CAM/D"}
@@ -0,0 +1,111 @@
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.RegionCodes = void 0;
25
+ const ts_utils_1 = require("@fgv/ts-utils");
26
+ const areas_1 = require("./areas");
27
+ const regions_1 = require("./regions");
28
+ const converters_1 = require("./csv/converters");
29
+ /**
30
+ * @public
31
+ */
32
+ class RegionCodes {
33
+ /**
34
+ * @internal
35
+ */
36
+ constructor() {
37
+ this.regions = new regions_1.Regions();
38
+ this.areas = new areas_1.Areas();
39
+ }
40
+ static createFromCsvFile(path) {
41
+ return (0, converters_1.loadM49cnvFileSync)(path).onSuccess((rows) => {
42
+ return this.createFromCsv(rows);
43
+ });
44
+ }
45
+ static createFromCsv(rows) {
46
+ const codes = new RegionCodes();
47
+ return codes._importRows(rows).onSuccess(() => {
48
+ return (0, ts_utils_1.succeed)(codes);
49
+ });
50
+ }
51
+ tryGetRegionOrArea(code) {
52
+ var _a;
53
+ // istanbul ignore next - numeric area not allowed in bcp-47 so right side of ?? shouldn't be hit.
54
+ return (_a = this.regions.tryGetRegion(code)) !== null && _a !== void 0 ? _a : this.areas.tryGetArea(code);
55
+ }
56
+ getIsContained(container, contained) {
57
+ let next = contained;
58
+ while (next) {
59
+ if (next === container) {
60
+ return true;
61
+ }
62
+ next = next.tier !== 'global' ? next.parent : undefined;
63
+ }
64
+ return false;
65
+ }
66
+ /**
67
+ * Imports a single parsed row of UN M.49 region code data
68
+ * @param row - The parsed row to be imported.
69
+ * @returns `Success` with `true` if the row was successfully
70
+ * imported, or `Failure` with details if an error occurs.
71
+ * @internal
72
+ */
73
+ _importRow(row) {
74
+ return this.regions
75
+ .getOrAddRegionChildRegion('region', this.regions.global, row.regionCode, row.regionName)
76
+ .onSuccess((region) => {
77
+ return this.regions.getOrAddRegionChildRegion('subRegion', region, row.subRegionCode, row.subRegionName);
78
+ })
79
+ .onSuccess((region) => {
80
+ return this.regions.getOrAddRegionChildRegion('intermediateRegion', region, row.intermediateRegionCode, row.intermediateRegionName);
81
+ })
82
+ .onSuccess((region) => {
83
+ return this.areas.addArea({
84
+ name: row.countryOrArea,
85
+ code: row.m49Code,
86
+ tier: 'area',
87
+ parent: region,
88
+ isoAlpha2: row.isoAlpha2RegionCode,
89
+ isoAlpha3: row.isoAlpha3RegionCode,
90
+ leastDevelopedCountry: row.leastDevelopedCountry,
91
+ landlockedDevelopingCountry: row.landLockedDevelopingCountry,
92
+ smallIslandDevelopingState: row.smallIslandDevelopingState,
93
+ });
94
+ })
95
+ .onSuccess(() => {
96
+ return (0, ts_utils_1.succeed)(true);
97
+ });
98
+ }
99
+ /**
100
+ * Imports multiple parsed rows from UN M.49 region code data
101
+ * @param rows - The parsed rows to be imported.
102
+ * @returns `Success` with `true` if the rows were successfully
103
+ * imported, or `Failure` with details if an error occurs.
104
+ * @internal
105
+ */
106
+ _importRows(rows) {
107
+ return (0, ts_utils_1.allSucceed)(rows.map((row) => this._importRow(row)), true);
108
+ }
109
+ }
110
+ exports.RegionCodes = RegionCodes;
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uQ29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdW5zZC9yZWdpb25Db2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFLSCw0Q0FBNEQ7QUFFNUQsbUNBQWdDO0FBQ2hDLHVDQUFvQztBQUVwQyxpREFBc0Q7QUFFdEQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFJcEI7O09BRUc7SUFDSDtRQUNJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxpQkFBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGFBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBWTtRQUN4QyxPQUFPLElBQUEsK0JBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBdUI7UUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxJQUFxQjs7UUFDM0Msa0dBQWtHO1FBQ2xHLE9BQU8sTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUNBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLGNBQWMsQ0FBQyxTQUFpQixFQUFFLFNBQWlDO1FBQ3RFLElBQUksSUFBSSxHQUF1QyxTQUFTLENBQUM7UUFDekQsT0FBTyxJQUFJLEVBQUU7WUFDVCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUMzRDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxVQUFVLENBQUMsR0FBb0I7UUFDckMsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNkLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUM7YUFDeEYsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0csQ0FBQyxDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUN6QyxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsQ0FBQyxzQkFBc0IsRUFDMUIsR0FBRyxDQUFDLHNCQUFzQixDQUM3QixDQUFDO1FBQ04sQ0FBQyxDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxhQUFhO2dCQUN2QixJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU87Z0JBQ2pCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFNBQVMsRUFBRSxHQUFHLENBQUMsbUJBQW1CO2dCQUNsQyxTQUFTLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtnQkFDbEMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLHFCQUFxQjtnQkFDaEQsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLDJCQUEyQjtnQkFDNUQsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLDBCQUEwQjthQUM3RCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7YUFDRCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxJQUFBLGtCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sV0FBVyxDQUFDLElBQXVCO1FBQ3pDLE9BQU8sSUFBQSxxQkFBVSxFQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDdkMsSUFBSSxDQUNQLENBQUM7SUFDTixDQUFDO0NBQ0o7QUE3RkQsa0NBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCAqIGFzIE1vZGVsIGZyb20gJy4vY3N2L21vZGVsJztcblxuaW1wb3J0IHsgQ291bnRyeU9yQXJlYSwgUmVnaW9uIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgUmVzdWx0LCBhbGxTdWNjZWVkLCBzdWNjZWVkIH0gZnJvbSAnQGZndi90cy11dGlscyc7XG5cbmltcG9ydCB7IEFyZWFzIH0gZnJvbSAnLi9hcmVhcyc7XG5pbXBvcnQgeyBSZWdpb25zIH0gZnJvbSAnLi9yZWdpb25zJztcbmltcG9ydCB7IFVuTTQ5UmVnaW9uQ29kZSB9IGZyb20gJy4uL2lhbmEvbW9kZWwnO1xuaW1wb3J0IHsgbG9hZE00OWNudkZpbGVTeW5jIH0gZnJvbSAnLi9jc3YvY29udmVydGVycyc7XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgUmVnaW9uQ29kZXMge1xuICAgIHB1YmxpYyByZWFkb25seSByZWdpb25zOiBSZWdpb25zO1xuICAgIHB1YmxpYyByZWFkb25seSBhcmVhczogQXJlYXM7XG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVnaW9ucyA9IG5ldyBSZWdpb25zKCk7XG4gICAgICAgIHRoaXMuYXJlYXMgPSBuZXcgQXJlYXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21Dc3ZGaWxlKHBhdGg6IHN0cmluZyk6IFJlc3VsdDxSZWdpb25Db2Rlcz4ge1xuICAgICAgICByZXR1cm4gbG9hZE00OWNudkZpbGVTeW5jKHBhdGgpLm9uU3VjY2Vzcygocm93cykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRnJvbUNzdihyb3dzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tQ3N2KHJvd3M6IE1vZGVsLk00OUNzdlJvd1tdKTogUmVzdWx0PFJlZ2lvbkNvZGVzPiB7XG4gICAgICAgIGNvbnN0IGNvZGVzID0gbmV3IFJlZ2lvbkNvZGVzKCk7XG4gICAgICAgIHJldHVybiBjb2Rlcy5faW1wb3J0Um93cyhyb3dzKS5vblN1Y2Nlc3MoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoY29kZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJ5R2V0UmVnaW9uT3JBcmVhKGNvZGU6IFVuTTQ5UmVnaW9uQ29kZSk6IFJlZ2lvbiB8IENvdW50cnlPckFyZWEgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIG51bWVyaWMgYXJlYSBub3QgYWxsb3dlZCBpbiBiY3AtNDcgc28gcmlnaHQgc2lkZSBvZiA/PyBzaG91bGRuJ3QgYmUgaGl0LlxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpb25zLnRyeUdldFJlZ2lvbihjb2RlKSA/PyB0aGlzLmFyZWFzLnRyeUdldEFyZWEoY29kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElzQ29udGFpbmVkKGNvbnRhaW5lcjogUmVnaW9uLCBjb250YWluZWQ6IENvdW50cnlPckFyZWEgfCBSZWdpb24pOiBib29sZWFuIHtcbiAgICAgICAgbGV0IG5leHQ6IFJlZ2lvbiB8IENvdW50cnlPckFyZWEgfCB1bmRlZmluZWQgPSBjb250YWluZWQ7XG4gICAgICAgIHdoaWxlIChuZXh0KSB7XG4gICAgICAgICAgICBpZiAobmV4dCA9PT0gY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0ID0gbmV4dC50aWVyICE9PSAnZ2xvYmFsJyA/IG5leHQucGFyZW50IDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbXBvcnRzIGEgc2luZ2xlIHBhcnNlZCByb3cgb2YgVU4gTS40OSByZWdpb24gY29kZSBkYXRhXG4gICAgICogQHBhcmFtIHJvdyAtIFRoZSBwYXJzZWQgcm93IHRvIGJlIGltcG9ydGVkLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIGB0cnVlYCBpZiB0aGUgcm93IHdhcyBzdWNjZXNzZnVsbHlcbiAgICAgKiBpbXBvcnRlZCwgb3IgYEZhaWx1cmVgIHdpdGggZGV0YWlscyBpZiBhbiBlcnJvciBvY2N1cnMuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbXBvcnRSb3cocm93OiBNb2RlbC5NNDlDc3ZSb3cpOiBSZXN1bHQ8dHJ1ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpb25zXG4gICAgICAgICAgICAuZ2V0T3JBZGRSZWdpb25DaGlsZFJlZ2lvbigncmVnaW9uJywgdGhpcy5yZWdpb25zLmdsb2JhbCwgcm93LnJlZ2lvbkNvZGUsIHJvdy5yZWdpb25OYW1lKVxuICAgICAgICAgICAgLm9uU3VjY2VzcygocmVnaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVnaW9ucy5nZXRPckFkZFJlZ2lvbkNoaWxkUmVnaW9uKCdzdWJSZWdpb24nLCByZWdpb24sIHJvdy5zdWJSZWdpb25Db2RlLCByb3cuc3ViUmVnaW9uTmFtZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uU3VjY2VzcygocmVnaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVnaW9ucy5nZXRPckFkZFJlZ2lvbkNoaWxkUmVnaW9uKFxuICAgICAgICAgICAgICAgICAgICAnaW50ZXJtZWRpYXRlUmVnaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgICAgICAgICByb3cuaW50ZXJtZWRpYXRlUmVnaW9uQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgcm93LmludGVybWVkaWF0ZVJlZ2lvbk5hbWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5vblN1Y2Nlc3MoKHJlZ2lvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFyZWFzLmFkZEFyZWEoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiByb3cuY291bnRyeU9yQXJlYSxcbiAgICAgICAgICAgICAgICAgICAgY29kZTogcm93Lm00OUNvZGUsXG4gICAgICAgICAgICAgICAgICAgIHRpZXI6ICdhcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiByZWdpb24sXG4gICAgICAgICAgICAgICAgICAgIGlzb0FscGhhMjogcm93Lmlzb0FscGhhMlJlZ2lvbkNvZGUsXG4gICAgICAgICAgICAgICAgICAgIGlzb0FscGhhMzogcm93Lmlzb0FscGhhM1JlZ2lvbkNvZGUsXG4gICAgICAgICAgICAgICAgICAgIGxlYXN0RGV2ZWxvcGVkQ291bnRyeTogcm93LmxlYXN0RGV2ZWxvcGVkQ291bnRyeSxcbiAgICAgICAgICAgICAgICAgICAgbGFuZGxvY2tlZERldmVsb3BpbmdDb3VudHJ5OiByb3cubGFuZExvY2tlZERldmVsb3BpbmdDb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgICBzbWFsbElzbGFuZERldmVsb3BpbmdTdGF0ZTogcm93LnNtYWxsSXNsYW5kRGV2ZWxvcGluZ1N0YXRlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5vblN1Y2Nlc3MoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW1wb3J0cyBtdWx0aXBsZSBwYXJzZWQgcm93cyBmcm9tIFVOIE0uNDkgcmVnaW9uIGNvZGUgZGF0YVxuICAgICAqIEBwYXJhbSByb3dzIC0gVGhlIHBhcnNlZCByb3dzIHRvIGJlIGltcG9ydGVkLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIGB0cnVlYCBpZiB0aGUgcm93cyB3ZXJlIHN1Y2Nlc3NmdWxseVxuICAgICAqIGltcG9ydGVkLCBvciBgRmFpbHVyZWAgd2l0aCBkZXRhaWxzIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2ltcG9ydFJvd3Mocm93czogTW9kZWwuTTQ5Q3N2Um93W10pOiBSZXN1bHQ8dHJ1ZT4ge1xuICAgICAgICByZXR1cm4gYWxsU3VjY2VlZChcbiAgICAgICAgICAgIHJvd3MubWFwKChyb3cpID0+IHRoaXMuX2ltcG9ydFJvdyhyb3cpKSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { GlobalRegion, IntermediateRegionTier, Region } from './common';
2
+ import { Result } from '@fgv/ts-utils';
3
+ import { UnM49RegionCode } from '../iana/model';
4
+ export declare const GlobalRegionName = "World";
5
+ export declare const GlobalRegionCode: UnM49RegionCode;
6
+ /**
7
+ * @public
8
+ */
9
+ export declare class Regions {
10
+ readonly global: GlobalRegion;
11
+ /**
12
+ * @internal
13
+ */
14
+ protected readonly _regions: Map<UnM49RegionCode, Region>;
15
+ constructor();
16
+ tryGetRegion(from: UnM49RegionCode): Region | undefined;
17
+ getRegion(from: UnM49RegionCode): Result<Region>;
18
+ getOrAddRegionChildRegion(tier: IntermediateRegionTier, parent: Region, code: 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/unsd/regions.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,MAAM,EAAiB,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,gBAAgB,iBAA2B,CAAC;AAGzD;;GAEG;AACH,qBAAa,OAAO;IAChB,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;;IAOnD,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;IAIvD,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAKhD,yBAAyB,CAC5B,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,IAAI,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,CAAC;IA6BV,MAAM,IAAI,MAAM,EAAE;CAG5B"}
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bnNkL3JlZ2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBR0gsNENBQXNEO0FBR3RELHlEQUF5RDtBQUM1QyxRQUFBLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztBQUMzQixRQUFBLGdCQUFnQixHQUFHLEtBQXdCLENBQUM7QUFDekQsd0RBQXdEO0FBRXhEOztHQUVHO0FBQ0gsTUFBYSxPQUFPO0lBT2hCO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSx3QkFBZ0IsRUFBRSxJQUFJLEVBQUUsd0JBQWdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN6RyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFxQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBcUI7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUEsa0JBQU8sRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxlQUFJLEVBQUMsR0FBRyxJQUFJLG9CQUFvQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLHlCQUF5QixDQUM1QixJQUE0QixFQUM1QixNQUFjLEVBQ2QsSUFBaUMsRUFDakMsSUFBd0I7UUFFeEIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNoQixPQUFPLElBQUEsa0JBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjthQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsT0FBTyxJQUFBLGVBQUksRUFBQyxHQUFHLElBQUksSUFBSSxJQUFJLHVDQUF1QyxDQUFDLENBQUM7U0FDdkU7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBQSxlQUFJLEVBQUMsR0FBRyxJQUFJLGdCQUFnQixJQUFJLHdCQUF3QixRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNuRjtZQUNELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBQSxlQUFJLEVBQUMsR0FBRyxJQUFJLGdCQUFnQixJQUFJLFlBQVksSUFBSSw2QkFBNkIsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDeEc7WUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO2dCQUM1QixNQUFNLFVBQVUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JFLE1BQU0sVUFBVSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25ELE9BQU8sSUFBQSxlQUFJLEVBQUMsR0FBRyxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixVQUFVLGlDQUFpQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2FBQ25IO1lBQ0QsT0FBTyxJQUFBLGtCQUFPLEVBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUI7UUFFRCxNQUFNLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsT0FBTyxJQUFBLGtCQUFPLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU07UUFDVCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQTFERCwwQkEwREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIyIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgR2xvYmFsUmVnaW9uLCBJbnRlcm1lZGlhdGVSZWdpb25UaWVyLCBSZWdpb24gfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBSZXN1bHQsIGZhaWwsIHN1Y2NlZWQgfSBmcm9tICdAZmd2L3RzLXV0aWxzJztcbmltcG9ydCB7IFVuTTQ5UmVnaW9uQ29kZSB9IGZyb20gJy4uL2lhbmEvbW9kZWwnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmV4cG9ydCBjb25zdCBHbG9iYWxSZWdpb25OYW1lID0gJ1dvcmxkJztcbmV4cG9ydCBjb25zdCBHbG9iYWxSZWdpb25Db2RlID0gJzAwMScgYXMgVW5NNDlSZWdpb25Db2RlO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWdpb25zIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ2xvYmFsOiBHbG9iYWxSZWdpb247XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZWdpb25zOiBNYXA8VW5NNDlSZWdpb25Db2RlLCBSZWdpb24+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmdsb2JhbCA9IHsgbmFtZTogR2xvYmFsUmVnaW9uTmFtZSwgY29kZTogR2xvYmFsUmVnaW9uQ29kZSwgdGllcjogJ2dsb2JhbCcsIHJlZ2lvbnM6IFtdLCBhcmVhczogW10gfTtcbiAgICAgICAgdGhpcy5fcmVnaW9ucyA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJ5R2V0UmVnaW9uKGZyb206IFVuTTQ5UmVnaW9uQ29kZSk6IFJlZ2lvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWdpb25zLmdldChmcm9tKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVnaW9uKGZyb206IFVuTTQ5UmVnaW9uQ29kZSk6IFJlc3VsdDxSZWdpb24+IHtcbiAgICAgICAgY29uc3QgZ290ID0gdGhpcy5fcmVnaW9ucy5nZXQoZnJvbSk7XG4gICAgICAgIHJldHVybiBnb3QgPyBzdWNjZWVkKGdvdCkgOiBmYWlsKGAke2Zyb219OiByZWdpb24gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9yQWRkUmVnaW9uQ2hpbGRSZWdpb24oXG4gICAgICAgIHRpZXI6IEludGVybWVkaWF0ZVJlZ2lvblRpZXIsXG4gICAgICAgIHBhcmVudDogUmVnaW9uLFxuICAgICAgICBjb2RlOiBVbk00OVJlZ2lvbkNvZGUgfCB1bmRlZmluZWQsXG4gICAgICAgIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgICk6IFJlc3VsdDxSZWdpb24+IHtcbiAgICAgICAgaWYgKCFjb2RlICYmICFuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZChwYXJlbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKCFjb2RlIHx8ICFuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFpbChgJHtjb2RlfSgke25hbWV9KTogY29kZSBhbmQgbmFtZSBtdXN0IGJvdGggYmUgcHJlc2VudGApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLl9yZWdpb25zLmdldChjb2RlKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcubmFtZSAhPT0gbmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGAke2NvZGV9OiBjYW5ub3QgYWRkICR7bmFtZX0gLSBhbHJlYWR5IGV4aXN0cyBhcyAke2V4aXN0aW5nLm5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcudGllciAhPT0gdGllcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGAke2NvZGV9OiBjYW5ub3QgYWRkICR7bmFtZX0gYXMgdGllciAke3RpZXJ9IC0gYWxyZWFkeSBleGlzdHMgYXMgdGllciAke2V4aXN0aW5nLnRpZXJ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcucGFyZW50ICE9PSBwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoYXZlUGFyZW50ID0gYCR7ZXhpc3RpbmcucGFyZW50LmNvZGV9LyR7ZXhpc3RpbmcucGFyZW50Lm5hbWV9YDtcbiAgICAgICAgICAgICAgICBjb25zdCB3YW50UGFyZW50ID0gYCR7cGFyZW50LmNvZGV9LyR7cGFyZW50Lm5hbWV9YDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtjb2RlfTogY2Fubm90IGFkZCAke25hbWV9IHdpdGggcGFyZW50ICR7d2FudFBhcmVudH0gLSBhbHJlYWR5IGV4aXN0cyB3aXRoIHBhcmVudCAke2hhdmVQYXJlbnR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZChleGlzdGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRlZCA9IHsgbmFtZSwgY29kZSwgdGllciwgcGFyZW50LCByZWdpb25zOiBbXSwgYXJlYXM6IFtdIH07XG4gICAgICAgIHRoaXMuX3JlZ2lvbnMuc2V0KGNvZGUsIGFkZGVkKTtcbiAgICAgICAgcGFyZW50LnJlZ2lvbnMucHVzaChhZGRlZCk7XG4gICAgICAgIHJldHVybiBzdWNjZWVkKGFkZGVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWxsKCk6IFJlZ2lvbltdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fcmVnaW9ucy52YWx1ZXMoKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './jsonHelpers';
2
+ export * from './validationHelpers';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAsBA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}