@mailwoman/codex 9.2.0 → 9.4.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 (295) hide show
  1. package/README.md +4 -4
  2. package/{address-system-conventions.ts → lib/address-system-conventions.ts} +9 -9
  3. package/{au → lib/au}/index.ts +4 -4
  4. package/{ca → lib/ca}/index.ts +3 -3
  5. package/{ca → lib/ca}/postal-code.ts +1 -1
  6. package/{ca → lib/ca}/province.ts +1 -1
  7. package/{ca → lib/ca}/street-type.ts +10 -12
  8. package/{country → lib/country}/codes.ts +1 -1
  9. package/{country → lib/country}/country.ts +43 -14
  10. package/lib/country/index.ts +17 -0
  11. package/{country → lib/country}/reference.ts +2 -2
  12. package/{country → lib/country}/subdivision.ts +4 -4
  13. package/{de → lib/de}/index.ts +3 -3
  14. package/{es → lib/es}/codigo-postal.ts +22 -4
  15. package/{es → lib/es}/index.ts +1 -1
  16. package/{fr → lib/fr}/cedex.ts +1 -1
  17. package/{fr → lib/fr}/code-postal.ts +2 -2
  18. package/{fr → lib/fr}/departement.ts +5 -2
  19. package/{fr → lib/fr}/index.ts +5 -5
  20. package/{fr → lib/fr}/region.ts +1 -1
  21. package/{fr → lib/fr}/voie.ts +5 -13
  22. package/{gb → lib/gb}/country.ts +2 -10
  23. package/{gb → lib/gb}/index.ts +4 -4
  24. package/{gb → lib/gb}/postcode-area.ts +1 -1
  25. package/{gb → lib/gb}/street-type.ts +1 -1
  26. package/{index.ts → lib/index.ts} +13 -12
  27. package/{it → lib/it}/cap.ts +21 -3
  28. package/{it → lib/it}/index.ts +1 -1
  29. package/{jp → lib/jp}/index.ts +4 -3
  30. package/lib/jp/municipality-register.ts +62 -0
  31. package/{jp → lib/jp}/prefecture.ts +7 -5
  32. package/lib/kr/index.ts +10 -0
  33. package/lib/kr/sigungu-register.ts +294 -0
  34. package/{normalize.ts → lib/normalize.ts} +15 -1
  35. package/{nz → lib/nz}/delivery-service.ts +1 -1
  36. package/{nz → lib/nz}/index.ts +2 -2
  37. package/{postcode-systems.ts → lib/postcode-systems.ts} +40 -24
  38. package/lib/register-completion.ts +24 -0
  39. package/{tools → lib/tools}/build-country-surface-lexicon.ts +10 -9
  40. package/{tools → lib/tools}/export-country-surfaces.ts +8 -8
  41. package/{tools → lib/tools}/generate-country-population.ts +4 -5
  42. package/{tools → lib/tools}/generate-country-reference.ts +4 -5
  43. package/{tools → lib/tools}/generate-official-languages.ts +7 -9
  44. package/{tools → lib/tools}/index.ts +3 -3
  45. package/{us → lib/us}/index.ts +8 -8
  46. package/{us → lib/us}/po-box.ts +1 -1
  47. package/{us → lib/us}/street-directional.ts +2 -2
  48. package/{us → lib/us}/street-suffix.ts +1 -1
  49. package/{us → lib/us}/unit-designator.ts +1 -1
  50. package/{us → lib/us}/zipcode.ts +1 -1
  51. package/out/address-system-conventions.d.ts +1 -1
  52. package/out/address-system-conventions.d.ts.map +1 -1
  53. package/out/address-system-conventions.js +8 -8
  54. package/out/address-system-conventions.js.map +1 -1
  55. package/out/au/delivery-service.d.ts.map +1 -1
  56. package/out/au/delivery-service.js.map +1 -1
  57. package/out/au/index.d.ts +4 -4
  58. package/out/au/index.d.ts.map +1 -1
  59. package/out/au/index.js +4 -4
  60. package/out/au/index.js.map +1 -1
  61. package/out/au/level-designator.d.ts.map +1 -1
  62. package/out/au/level-designator.js.map +1 -1
  63. package/out/au/postcode.d.ts.map +1 -1
  64. package/out/au/postcode.js.map +1 -1
  65. package/out/au/state.d.ts.map +1 -1
  66. package/out/au/state.js.map +1 -1
  67. package/out/ca/index.d.ts +3 -3
  68. package/out/ca/index.d.ts.map +1 -1
  69. package/out/ca/index.js +3 -3
  70. package/out/ca/index.js.map +1 -1
  71. package/out/ca/postal-code.d.ts +1 -1
  72. package/out/ca/postal-code.d.ts.map +1 -1
  73. package/out/ca/postal-code.js.map +1 -1
  74. package/out/ca/province.d.ts.map +1 -1
  75. package/out/ca/province.js +1 -1
  76. package/out/ca/province.js.map +1 -1
  77. package/out/ca/street-type.d.ts.map +1 -1
  78. package/out/ca/street-type.js +9 -12
  79. package/out/ca/street-type.js.map +1 -1
  80. package/out/country/codes.d.ts.map +1 -1
  81. package/out/country/codes.js.map +1 -1
  82. package/out/country/country.d.ts +13 -11
  83. package/out/country/country.d.ts.map +1 -1
  84. package/out/country/country.js +35 -13
  85. package/out/country/country.js.map +1 -1
  86. package/out/country/display-names.d.ts.map +1 -1
  87. package/out/country/display-names.js.map +1 -1
  88. package/out/country/index.d.ts +10 -10
  89. package/out/country/index.d.ts.map +1 -1
  90. package/out/country/index.js +10 -10
  91. package/out/country/index.js.map +1 -1
  92. package/out/country/names.d.ts.map +1 -1
  93. package/out/country/names.js.map +1 -1
  94. package/out/country/official-languages.d.ts.map +1 -1
  95. package/out/country/official-languages.js.map +1 -1
  96. package/out/country/population.d.ts.map +1 -1
  97. package/out/country/population.js.map +1 -1
  98. package/out/country/reference-data.d.ts.map +1 -1
  99. package/out/country/reference-data.js.map +1 -1
  100. package/out/country/reference.d.ts +1 -1
  101. package/out/country/reference.d.ts.map +1 -1
  102. package/out/country/reference.js +2 -2
  103. package/out/country/reference.js.map +1 -1
  104. package/out/country/subdivision.d.ts.map +1 -1
  105. package/out/country/subdivision.js +4 -4
  106. package/out/country/subdivision.js.map +1 -1
  107. package/out/de/bundesland.d.ts.map +1 -1
  108. package/out/de/bundesland.js.map +1 -1
  109. package/out/de/index.d.ts +3 -3
  110. package/out/de/index.d.ts.map +1 -1
  111. package/out/de/index.js +3 -3
  112. package/out/de/index.js.map +1 -1
  113. package/out/de/postleitzahl.d.ts.map +1 -1
  114. package/out/de/postleitzahl.js.map +1 -1
  115. package/out/de/street-type.d.ts.map +1 -1
  116. package/out/de/street-type.js.map +1 -1
  117. package/out/es/codigo-postal.d.ts +11 -0
  118. package/out/es/codigo-postal.d.ts.map +1 -1
  119. package/out/es/codigo-postal.js +20 -3
  120. package/out/es/codigo-postal.js.map +1 -1
  121. package/out/es/index.d.ts +1 -1
  122. package/out/es/index.d.ts.map +1 -1
  123. package/out/es/index.js +1 -1
  124. package/out/es/index.js.map +1 -1
  125. package/out/fr/cedex.d.ts +1 -1
  126. package/out/fr/cedex.d.ts.map +1 -1
  127. package/out/fr/cedex.js +1 -1
  128. package/out/fr/cedex.js.map +1 -1
  129. package/out/fr/code-postal.d.ts +2 -2
  130. package/out/fr/code-postal.d.ts.map +1 -1
  131. package/out/fr/code-postal.js +2 -2
  132. package/out/fr/code-postal.js.map +1 -1
  133. package/out/fr/departement.d.ts +2 -2
  134. package/out/fr/departement.d.ts.map +1 -1
  135. package/out/fr/departement.js +3 -0
  136. package/out/fr/departement.js.map +1 -1
  137. package/out/fr/index.d.ts +5 -5
  138. package/out/fr/index.d.ts.map +1 -1
  139. package/out/fr/index.js +5 -5
  140. package/out/fr/index.js.map +1 -1
  141. package/out/fr/region.d.ts.map +1 -1
  142. package/out/fr/region.js +1 -1
  143. package/out/fr/region.js.map +1 -1
  144. package/out/fr/voie.d.ts.map +1 -1
  145. package/out/fr/voie.js +4 -11
  146. package/out/fr/voie.js.map +1 -1
  147. package/out/gb/country.d.ts.map +1 -1
  148. package/out/gb/country.js +1 -9
  149. package/out/gb/country.js.map +1 -1
  150. package/out/gb/index.d.ts +4 -4
  151. package/out/gb/index.d.ts.map +1 -1
  152. package/out/gb/index.js +4 -4
  153. package/out/gb/index.js.map +1 -1
  154. package/out/gb/postcode-area.d.ts +1 -1
  155. package/out/gb/postcode-area.d.ts.map +1 -1
  156. package/out/gb/postcode-area.js.map +1 -1
  157. package/out/gb/postcode.d.ts.map +1 -1
  158. package/out/gb/postcode.js.map +1 -1
  159. package/out/gb/street-type.d.ts +1 -1
  160. package/out/gb/street-type.d.ts.map +1 -1
  161. package/out/gb/street-type.js +1 -1
  162. package/out/gb/street-type.js.map +1 -1
  163. package/out/index.d.ts +12 -12
  164. package/out/index.d.ts.map +1 -1
  165. package/out/index.js +12 -12
  166. package/out/index.js.map +1 -1
  167. package/out/it/cap.d.ts +11 -0
  168. package/out/it/cap.d.ts.map +1 -1
  169. package/out/it/cap.js +19 -2
  170. package/out/it/cap.js.map +1 -1
  171. package/out/it/index.d.ts +1 -1
  172. package/out/it/index.d.ts.map +1 -1
  173. package/out/it/index.js +1 -1
  174. package/out/it/index.js.map +1 -1
  175. package/out/jp/address-unit.d.ts.map +1 -1
  176. package/out/jp/address-unit.js.map +1 -1
  177. package/out/jp/index.d.ts +4 -3
  178. package/out/jp/index.d.ts.map +1 -1
  179. package/out/jp/index.js +4 -3
  180. package/out/jp/index.js.map +1 -1
  181. package/out/jp/municipality-register.d.ts +48 -0
  182. package/out/jp/municipality-register.d.ts.map +1 -0
  183. package/out/jp/municipality-register.js +41 -0
  184. package/out/jp/municipality-register.js.map +1 -0
  185. package/out/jp/postal-code.d.ts.map +1 -1
  186. package/out/jp/postal-code.js.map +1 -1
  187. package/out/jp/prefecture.d.ts +4 -1
  188. package/out/jp/prefecture.d.ts.map +1 -1
  189. package/out/jp/prefecture.js +6 -5
  190. package/out/jp/prefecture.js.map +1 -1
  191. package/out/kr/index.d.ts +10 -0
  192. package/out/kr/index.d.ts.map +1 -0
  193. package/out/kr/index.js +10 -0
  194. package/out/kr/index.js.map +1 -0
  195. package/out/kr/sigungu-register.d.ts +37 -0
  196. package/out/kr/sigungu-register.d.ts.map +1 -0
  197. package/out/kr/sigungu-register.js +283 -0
  198. package/out/kr/sigungu-register.js.map +1 -0
  199. package/out/level-semantics.d.ts.map +1 -1
  200. package/out/level-semantics.js.map +1 -1
  201. package/out/normalize.d.ts +8 -0
  202. package/out/normalize.d.ts.map +1 -1
  203. package/out/normalize.js +14 -1
  204. package/out/normalize.js.map +1 -1
  205. package/out/nz/delivery-service.d.ts +1 -1
  206. package/out/nz/delivery-service.d.ts.map +1 -1
  207. package/out/nz/delivery-service.js +1 -1
  208. package/out/nz/delivery-service.js.map +1 -1
  209. package/out/nz/index.d.ts +2 -2
  210. package/out/nz/index.d.ts.map +1 -1
  211. package/out/nz/index.js +2 -2
  212. package/out/nz/index.js.map +1 -1
  213. package/out/nz/postcode.d.ts.map +1 -1
  214. package/out/nz/postcode.js.map +1 -1
  215. package/out/postcode-systems.d.ts +26 -15
  216. package/out/postcode-systems.d.ts.map +1 -1
  217. package/out/postcode-systems.js +38 -23
  218. package/out/postcode-systems.js.map +1 -1
  219. package/out/register-completion.d.ts +14 -0
  220. package/out/register-completion.d.ts.map +1 -0
  221. package/out/register-completion.js +23 -0
  222. package/out/register-completion.js.map +1 -0
  223. package/out/tools/build-country-surface-lexicon.d.ts +1 -1
  224. package/out/tools/build-country-surface-lexicon.d.ts.map +1 -1
  225. package/out/tools/build-country-surface-lexicon.js +10 -9
  226. package/out/tools/build-country-surface-lexicon.js.map +1 -1
  227. package/out/tools/export-country-surfaces.d.ts +1 -1
  228. package/out/tools/export-country-surfaces.d.ts.map +1 -1
  229. package/out/tools/export-country-surfaces.js +7 -7
  230. package/out/tools/export-country-surfaces.js.map +1 -1
  231. package/out/tools/generate-country-population.d.ts.map +1 -1
  232. package/out/tools/generate-country-population.js +4 -4
  233. package/out/tools/generate-country-population.js.map +1 -1
  234. package/out/tools/generate-country-reference.d.ts.map +1 -1
  235. package/out/tools/generate-country-reference.js +4 -4
  236. package/out/tools/generate-country-reference.js.map +1 -1
  237. package/out/tools/generate-official-languages.d.ts.map +1 -1
  238. package/out/tools/generate-official-languages.js +7 -7
  239. package/out/tools/generate-official-languages.js.map +1 -1
  240. package/out/tools/index.d.ts +3 -3
  241. package/out/tools/index.d.ts.map +1 -1
  242. package/out/tools/index.js +3 -3
  243. package/out/tools/index.js.map +1 -1
  244. package/out/us/floor-designator.d.ts.map +1 -1
  245. package/out/us/floor-designator.js.map +1 -1
  246. package/out/us/index.d.ts +8 -8
  247. package/out/us/index.d.ts.map +1 -1
  248. package/out/us/index.js +8 -8
  249. package/out/us/index.js.map +1 -1
  250. package/out/us/military-address.d.ts.map +1 -1
  251. package/out/us/military-address.js.map +1 -1
  252. package/out/us/po-box.d.ts +1 -1
  253. package/out/us/po-box.d.ts.map +1 -1
  254. package/out/us/po-box.js +1 -1
  255. package/out/us/po-box.js.map +1 -1
  256. package/out/us/state.d.ts.map +1 -1
  257. package/out/us/state.js.map +1 -1
  258. package/out/us/street-directional.d.ts.map +1 -1
  259. package/out/us/street-directional.js +2 -2
  260. package/out/us/street-directional.js.map +1 -1
  261. package/out/us/street-suffix.d.ts +1 -1
  262. package/out/us/street-suffix.d.ts.map +1 -1
  263. package/out/us/street-suffix.js +1 -1
  264. package/out/us/street-suffix.js.map +1 -1
  265. package/out/us/unit-designator.d.ts +1 -1
  266. package/out/us/unit-designator.d.ts.map +1 -1
  267. package/out/us/unit-designator.js +1 -1
  268. package/out/us/unit-designator.js.map +1 -1
  269. package/out/us/zipcode.d.ts +1 -1
  270. package/out/us/zipcode.d.ts.map +1 -1
  271. package/out/us/zipcode.js +1 -1
  272. package/out/us/zipcode.js.map +1 -1
  273. package/package.json +78 -267
  274. package/country/index.ts +0 -17
  275. /package/{au → lib/au}/delivery-service.ts +0 -0
  276. /package/{au → lib/au}/level-designator.ts +0 -0
  277. /package/{au → lib/au}/postcode.ts +0 -0
  278. /package/{au → lib/au}/state.ts +0 -0
  279. /package/{country → lib/country}/display-names.ts +0 -0
  280. /package/{country → lib/country}/names.ts +0 -0
  281. /package/{country → lib/country}/official-languages.ts +0 -0
  282. /package/{country → lib/country}/population.ts +0 -0
  283. /package/{country → lib/country}/reference-data.ts +0 -0
  284. /package/{de → lib/de}/bundesland.ts +0 -0
  285. /package/{de → lib/de}/postleitzahl.ts +0 -0
  286. /package/{de → lib/de}/street-type.ts +0 -0
  287. /package/{gb → lib/gb}/postcode.ts +0 -0
  288. /package/{jp → lib/jp}/address-unit.ts +0 -0
  289. /package/{jp → lib/jp}/postal-code.ts +0 -0
  290. /package/{level-semantics.ts → lib/level-semantics.ts} +0 -0
  291. /package/{nz → lib/nz}/postcode.ts +0 -0
  292. /package/{us → lib/us}/floor-designator.ts +0 -0
  293. /package/{us → lib/us}/military-address.ts +0 -0
  294. /package/{us → lib/us}/state.ts +0 -0
  295. /package/{us → lib/us}/street-suffix.json +0 -0
package/out/fr/index.d.ts CHANGED
@@ -6,9 +6,9 @@
6
6
  * The French address system (La Poste / ISO 3166-2:FR): street types (voie), postcodes (code
7
7
  * postal), and the admin hierarchy of départements and régions.
8
8
  */
9
- export * from "./cedex.ts";
10
- export * from "./code-postal.ts";
11
- export * from "./departement.ts";
12
- export * from "./region.ts";
13
- export * from "./voie.ts";
9
+ export * from "#fr/cedex";
10
+ export * from "#fr/code-postal";
11
+ export * from "#fr/departement";
12
+ export * from "#fr/region";
13
+ export * from "#fr/voie";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fr/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/fr/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
package/out/fr/index.js CHANGED
@@ -6,9 +6,9 @@
6
6
  * The French address system (La Poste / ISO 3166-2:FR): street types (voie), postcodes (code
7
7
  * postal), and the admin hierarchy of départements and régions.
8
8
  */
9
- export * from "./cedex.js";
10
- export * from "./code-postal.js";
11
- export * from "./departement.js";
12
- export * from "./region.js";
13
- export * from "./voie.js";
9
+ export * from "#fr/cedex";
10
+ export * from "#fr/code-postal";
11
+ export * from "#fr/departement";
12
+ export * from "#fr/region";
13
+ export * from "#fr/voie";
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fr/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/fr/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../fr/region.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB8B,CAAA;AAErD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAA;AAItD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CASrE,CAAA;AAEJ;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAO5F"}
1
+ {"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../lib/fr/region.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB8B,CAAA;AAErD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAA;AAItD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CASrE,CAAA;AAEJ;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAO5F"}
package/out/fr/region.js CHANGED
@@ -12,7 +12,7 @@
12
12
  * commune`. The region is inferred from the département, which is inferred from the postcode (see
13
13
  * `code-postal.ts`).
14
14
  */
15
- import { foldName } from "../normalize.js";
15
+ import { foldName } from "#normalize";
16
16
  /**
17
17
  * ISO 3166-2:FR region code → info, for all 18 régions (13 metropolitan + 5 overseas).
18
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"region.js","sourceRoot":"","sources":["../../fr/region.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"region.js","sourceRoot":"","sources":["../../lib/fr/region.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"voie.d.ts","sourceRoot":"","sources":["../../fr/voie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC4B,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,aAAa,CAAA;AA0BvD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAU1D"}
1
+ {"version":3,"file":"voie.d.ts","sourceRoot":"","sources":["../../lib/fr/voie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC4B,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,aAAa,CAAA;AAoBvD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D"}
package/out/fr/voie.js CHANGED
@@ -16,6 +16,7 @@
16
16
  * So French detection is "is this token a known voie word", position-first — which is why
17
17
  * {@link isFrenchStreetWord} matches a whole token rather than a suffix.
18
18
  */
19
+ import { foldToken } from "#normalize";
19
20
  /**
20
21
  * Canonical French voie type → common written abbreviations. The leading word of a French street name. The first entry
21
22
  * of each list is the most common abbreviation where one exists.
@@ -58,15 +59,11 @@ export const FR_VOIE_TYPES = {
58
59
  * matching. `Allée`/`allee`/`all` all resolve here.
59
60
  */
60
61
  const VOIE_TOKEN_SET = (() => {
61
- const fold = (s) => s
62
- .toLowerCase()
63
- .normalize("NFD")
64
- .replaceAll(/[\u0300-\u036F]/g, "");
65
62
  const out = new Set();
66
63
  for (const canonical of Object.keys(FR_VOIE_TYPES)) {
67
- out.add(fold(canonical));
64
+ out.add(foldToken(canonical));
68
65
  for (const abbr of FR_VOIE_TYPES[canonical]) {
69
- out.add(fold(abbr));
66
+ out.add(foldToken(abbr));
70
67
  }
71
68
  }
72
69
  return out;
@@ -79,11 +76,7 @@ const VOIE_TOKEN_SET = (() => {
79
76
  export function isFrenchStreetWord(token) {
80
77
  if (typeof token !== "string")
81
78
  return false;
82
- const t = token
83
- .toLowerCase()
84
- .normalize("NFD")
85
- .replaceAll(/[\u0300-\u036F]/g, "")
86
- .replaceAll(/[^a-z-]/g, "");
79
+ const t = foldToken(token).replaceAll(/[^a-z-]/g, "");
87
80
  return t.length > 0 && VOIE_TOKEN_SET.has(t);
88
81
  }
89
82
  //# sourceMappingURL=voie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"voie.js","sourceRoot":"","sources":["../../fr/voie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,GAAG,EAAE,CAAC,GAAG,CAAC;IACV,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;IACvB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,WAAW,EAAE,CAAC,KAAK,CAAC;CACiC,CAAA;AAOtD;;;GAGG;AACH,MAAM,cAAc,GAAwB,CAAC,GAAG,EAAE;IACjD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAClC,CAAC;SACC,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IAErC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAqB,EAAE,CAAC;QACxE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAExB,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACpB,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC,CAAC,EAAE,CAAA;AAEJ;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,MAAM,CAAC,GAAG,KAAK;SACb,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAClC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAE5B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"voie.js","sourceRoot":"","sources":["../../lib/fr/voie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,GAAG,EAAE,CAAC,GAAG,CAAC;IACV,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;IACvB,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,WAAW,EAAE,CAAC,KAAK,CAAC;CACiC,CAAA;AAOtD;;;GAGG;AACH,MAAM,cAAc,GAAwB,CAAC,GAAG,EAAE;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAqB,EAAE,CAAC;QACxE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QAE7B,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC,CAAC,EAAE,CAAA;AAEJ;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAErD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"country.d.ts","sourceRoot":"","sources":["../../gb/country.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAKyB,CAAA;AAElD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAA;AAIrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AA0BD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAOtF"}
1
+ {"version":3,"file":"country.d.ts","sourceRoot":"","sources":["../../lib/gb/country.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAKyB,CAAA;AAElD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAA;AAIrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAgBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAOtF"}
package/out/gb/country.js CHANGED
@@ -13,6 +13,7 @@
13
13
  * postcode area (see `postcode-area.ts`). So this file is the coarse admin label, and the
14
14
  * postcode is the thing that actually carries the geography.
15
15
  */
16
+ import { foldName } from "#normalize";
16
17
  /**
17
18
  * ISO 3166-2:GB country code → info, for all four constituent countries.
18
19
  */
@@ -29,15 +30,6 @@ const COUNTRY_CODE_SET = new Set(Object.keys(GB_COUNTRIES));
29
30
  export function isUkCountryCode(input) {
30
31
  return typeof input === "string" && COUNTRY_CODE_SET.has(input.toUpperCase());
31
32
  }
32
- /**
33
- * Lowercase + collapse non-alphanumerics so `Northern Ireland`, `northern-ireland` key alike.
34
- */
35
- function foldName(s) {
36
- return s
37
- .toLowerCase()
38
- .replaceAll(/[^a-z0-9]+/g, " ")
39
- .trim();
40
- }
41
33
  /**
42
34
  * Folded country name / code → ISO 3166-2:GB code, so a surface form maps regardless of casing.
43
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"country.js","sourceRoot":"","sources":["../../gb/country.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACtC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;IACnC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE;CACG,CAAA;AAOlD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;AAEhF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC;SACN,WAAW,EAAE;SACb,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;SAC9B,IAAI,EAAE,CAAA;AACT,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB,GAAuC,CAAC,GAAG,EAAE;IACtE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAoB,EAAE,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC,CAAC,EAAE,CAAA;AAEJ;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAExC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAsB,CAAA;IAE9D,OAAO,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAA;AACzD,CAAC"}
1
+ {"version":3,"file":"country.js","sourceRoot":"","sources":["../../lib/gb/country.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAgBrC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACtC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;IACnC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE;CACG,CAAA;AAOlD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;AAEhF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB,GAAuC,CAAC,GAAG,EAAE;IACtE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAoB,EAAE,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC,CAAC,EAAE,CAAA;AAEJ;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAExC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAsB,CAAA;IAE9D,OAAO,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAA;AACzD,CAAC"}
package/out/gb/index.d.ts CHANGED
@@ -7,8 +7,8 @@
7
7
  * postcode and its Royal-Mail postcode areas, the four constituent countries, and British street
8
8
  * vocabulary.
9
9
  */
10
- export * from "./country.ts";
11
- export * from "./postcode-area.ts";
12
- export * from "./postcode.ts";
13
- export * from "./street-type.ts";
10
+ export * from "#gb/country";
11
+ export * from "#gb/postcode-area";
12
+ export * from "#gb/postcode";
13
+ export * from "#gb/street-type";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../gb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/gb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA"}
package/out/gb/index.js CHANGED
@@ -7,8 +7,8 @@
7
7
  * postcode and its Royal-Mail postcode areas, the four constituent countries, and British street
8
8
  * vocabulary.
9
9
  */
10
- export * from "./country.js";
11
- export * from "./postcode-area.js";
12
- export * from "./postcode.js";
13
- export * from "./street-type.js";
10
+ export * from "#gb/country";
11
+ export * from "#gb/postcode-area";
12
+ export * from "#gb/postcode";
13
+ export * from "#gb/street-type";
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../gb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/gb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA"}
@@ -21,7 +21,7 @@
21
21
  * non-England set with documented border fudges — rather than a tidy prefix rule — is exactly why
22
22
  * a UK postcode is not a county.
23
23
  */
24
- import type { UkCountryCode } from "./country.ts";
24
+ import type { UkCountryCode } from "#gb/country";
25
25
  /**
26
26
  * The explicit non-England postcode areas, area → constituent country. England is intentionally absent: it is the
27
27
  * DEFAULT (the great majority of UK areas are English), so listing it would be both enormous and a maintenance trap.
@@ -1 +1 @@
1
- {"version":3,"file":"postcode-area.d.ts","sourceRoot":"","sources":["../../gb/postcode-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AA2CjD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAIlE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAyB,CAAA;AASpF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAIzE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAQzE"}
1
+ {"version":3,"file":"postcode-area.d.ts","sourceRoot":"","sources":["../../lib/gb/postcode-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AA2ChD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAIlE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAyB,CAAA;AASpF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAIzE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAQzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"postcode-area.js","sourceRoot":"","sources":["../../gb/postcode-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAU,CAAA;AAE9C;;;GAGG;AACH,MAAM,cAAc,GAAG;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,kFAAkF;IACxF,IAAI,EAAE,qBAAqB;CAClB,CAAA;AAEV;;;GAGG;AACH,MAAM,WAAW,GAAG;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,kEAAkE;CAC/D,CAAA;AAEV;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC;IACtE,GAAG,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC;IAC7E,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC;IACrE,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC;CAClE,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEpF;;GAEG;AACH,SAAS,WAAW,CAAC,IAAa;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnC,OAAO,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC7C,kFAAkF;IAClF,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEhD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC"}
1
+ {"version":3,"file":"postcode-area.js","sourceRoot":"","sources":["../../lib/gb/postcode-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAU,CAAA;AAE9C;;;GAGG;AACH,MAAM,cAAc,GAAG;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,kFAAkF;IACxF,IAAI,EAAE,qBAAqB;CAClB,CAAA;AAEV;;;GAGG;AACH,MAAM,WAAW,GAAG;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,kEAAkE;CAC/D,CAAA;AAEV;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC;IACtE,GAAG,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC;IAC7E,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC;IACrE,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAc,CAAC,CAAC,CAAC;CAClE,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEpF;;GAEG;AACH,SAAS,WAAW,CAAC,IAAa;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnC,OAAO,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC7C,kFAAkF;IAClF,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEhD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"postcode.d.ts","sourceRoot":"","sources":["../../gb/postcode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAiBvC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAwC,CAAA;AAExE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CASjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE9D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMtD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOvD"}
1
+ {"version":3,"file":"postcode.d.ts","sourceRoot":"","sources":["../../lib/gb/postcode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAiBvC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAwC,CAAA;AAExE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CASjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE9D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMtD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"postcode.js","sourceRoot":"","sources":["../../gb/postcode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH;;;;;;;;;GASG;AACH;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAI7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAA;AAExE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACxC,iGAAiG;IACjG,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB;QAAE,OAAO,IAAI,CAAA;IACrD,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7D,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAW;IACtC,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAW;IACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAW;IACvC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEzC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"postcode.js","sourceRoot":"","sources":["../../lib/gb/postcode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH;;;;;;;;;GASG;AACH;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAI7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAA;AAExE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACxC,iGAAiG;IACjG,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB;QAAE,OAAO,IAAI,CAAA;IACrD,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7D,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAW;IACtC,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAW;IACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAW;IACvC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEzC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/B,CAAC"}
@@ -23,7 +23,7 @@
23
23
  * (`street`, `road`, `lane`, `avenue`) through the distinctively British (`crescent`, `mews`, `close`, `terrace`) and
24
24
  * the regional/landscape tail (`wynd`, `brae`, `gait`, `croft`, `dene`, `spinney`, `dell`, `hollow`).
25
25
  */
26
- export declare const GB_STREET_TYPES: readonly ["street", "road", "lane", "avenue", "close", "crescent", "court", "drive", "place", "way", "gardens", "grove", "terrace", "mews", "walk", "hill", "green", "park", "rise", "view", "row", "square", "parade", "vale", "wharf", "yard", "gate", "croft", "dene", "end", "fields", "meadow", "brook", "chase", "copse", "dale", "dell", "glen", "hollow", "paddock", "ridge", "spinney", "wynd", "brae", "gait"];
26
+ export declare const GB_STREET_TYPES: readonly ["street", "road", "lane", "avenue", "close", "crescent", "court", "drive", "place", "way", "gardens", "grove", "terrace", "mews", "walk", "hill", "green", "park", "rise", "view", "row", "square", "parade", "vale", "wharf", "yard", "check", "croft", "dene", "end", "fields", "meadow", "brook", "chase", "copse", "dale", "dell", "glen", "hollow", "paddock", "ridge", "spinney", "wynd", "brae", "gait"];
27
27
  /**
28
28
  * A canonical British thoroughfare word (e.g. `street`, `crescent`, `mews`).
29
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"street-type.d.ts","sourceRoot":"","sources":["../../gb/street-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,0ZA8ClB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAIhE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK3D"}
1
+ {"version":3,"file":"street-type.d.ts","sourceRoot":"","sources":["../../lib/gb/street-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,2ZA8ClB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAIhE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK3D"}
@@ -50,7 +50,7 @@ export const GB_STREET_TYPES = [
50
50
  "vale",
51
51
  "wharf",
52
52
  "yard",
53
- "gate",
53
+ "check",
54
54
  "croft",
55
55
  "dene",
56
56
  "end",
@@ -1 +1 @@
1
- {"version":3,"file":"street-type.js","sourceRoot":"","sources":["../../gb/street-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,SAAS;IACT,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;CACG,CAAA;AAOV,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;AAErE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAEvD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"street-type.js","sourceRoot":"","sources":["../../lib/gb/street-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,SAAS;IACT,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;CACG,CAAA;AAOV,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;AAErE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAEvD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC"}
package/out/index.d.ts CHANGED
@@ -20,16 +20,16 @@
20
20
  * (`./level-semantics.ts`) and is namespaced rather than given its own `@mailwoman/codex/<x>`
21
21
  * subpath.
22
22
  */
23
- export { ADDRESS_SYSTEM_CONVENTIONS, conventionsForSystem, type AddressSystemConventions, } from "./address-system-conventions.ts";
24
- export * from "./normalize.ts";
25
- export * as au from "./au/index.ts";
26
- export * as ca from "./ca/index.ts";
27
- export * as de from "./de/index.ts";
28
- export * as fr from "./fr/index.ts";
29
- export * as gb from "./gb/index.ts";
30
- export * as jp from "./jp/index.ts";
31
- export * as levels from "./level-semantics.ts";
32
- export * as nz from "./nz/index.ts";
33
- export { AREA_POSTCODE_FINER_THAN_LOCALITY, areaPostcodeLeadsLocality, candidateSystemsForPostcode, isUnitGradePostcodeHit, type SystemCode, UNIT_GRADE_POSTCODE, } from "./postcode-systems.ts";
34
- export * as us from "./us/index.ts";
23
+ export { ADDRESS_SYSTEM_CONVENTIONS, conventionsForSystem, type AddressSystemConventions, } from "#address-system-conventions";
24
+ export * from "#normalize";
25
+ export * as au from "#au/index";
26
+ export * as ca from "#ca/index";
27
+ export * as de from "#de/index";
28
+ export * as fr from "#fr/index";
29
+ export * as gb from "#gb/index";
30
+ export * as jp from "#jp/index";
31
+ export * as levels from "#level-semantics";
32
+ export * as nz from "#nz/index";
33
+ export { AREA_POSTCODE_FINER_THAN_LOCALITY, areaPostcodeLeadsLocality, candidateSystemsForPostcode, isUnitGradePostcodeHit, SYSTEM_CODES, type SystemCode, UNIT_GRADE_POSTCODE, } from "#postcode-systems";
34
+ export * as us from "#us/index";
35
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACN,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,wBAAwB,GAC7B,MAAM,iCAAiC,CAAA;AAExC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AAEnC,OAAO,EACN,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,KAAK,UAAU,EACf,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACN,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,wBAAwB,GAC7B,MAAM,6BAA6B,CAAA;AAEpC,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAE/B,OAAO,EACN,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,YAAY,EACZ,KAAK,UAAU,EACf,mBAAmB,GACnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA"}
package/out/index.js CHANGED
@@ -20,16 +20,16 @@
20
20
  * (`./level-semantics.ts`) and is namespaced rather than given its own `@mailwoman/codex/<x>`
21
21
  * subpath.
22
22
  */
23
- export { ADDRESS_SYSTEM_CONVENTIONS, conventionsForSystem, } from "./address-system-conventions.js";
24
- export * from "./normalize.js";
25
- export * as au from "./au/index.js";
26
- export * as ca from "./ca/index.js";
27
- export * as de from "./de/index.js";
28
- export * as fr from "./fr/index.js";
29
- export * as gb from "./gb/index.js";
30
- export * as jp from "./jp/index.js";
31
- export * as levels from "./level-semantics.js";
32
- export * as nz from "./nz/index.js";
33
- export { AREA_POSTCODE_FINER_THAN_LOCALITY, areaPostcodeLeadsLocality, candidateSystemsForPostcode, isUnitGradePostcodeHit, UNIT_GRADE_POSTCODE, } from "./postcode-systems.js";
34
- export * as us from "./us/index.js";
23
+ export { ADDRESS_SYSTEM_CONVENTIONS, conventionsForSystem, } from "#address-system-conventions";
24
+ export * from "#normalize";
25
+ export * as au from "#au/index";
26
+ export * as ca from "#ca/index";
27
+ export * as de from "#de/index";
28
+ export * as fr from "#fr/index";
29
+ export * as gb from "#gb/index";
30
+ export * as jp from "#jp/index";
31
+ export * as levels from "#level-semantics";
32
+ export * as nz from "#nz/index";
33
+ export { AREA_POSTCODE_FINER_THAN_LOCALITY, areaPostcodeLeadsLocality, candidateSystemsForPostcode, isUnitGradePostcodeHit, SYSTEM_CODES, UNIT_GRADE_POSTCODE, } from "#postcode-systems";
34
+ export * as us from "#us/index";
35
35
  //# sourceMappingURL=index.js.map
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACN,0BAA0B,EAC1B,oBAAoB,GAEpB,MAAM,iCAAiC,CAAA;AAExC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA;AAEnC,OAAO,EACN,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EAEtB,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACN,0BAA0B,EAC1B,oBAAoB,GAEpB,MAAM,6BAA6B,CAAA;AAEpC,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAE/B,OAAO,EACN,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,YAAY,EAEZ,mBAAmB,GACnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA"}
package/out/it/cap.d.ts CHANGED
@@ -25,8 +25,19 @@ export type CAP = Tagged<string, "CAP">;
25
25
  * Shape of an Italian CAP — five digits.
26
26
  */
27
27
  export declare const CAP_PATTERN: RegExp;
28
+ /**
29
+ * Normalize a CAP surface form to the bare five digits: trim surrounding whitespace (`" 00184 "` → `"00184"`). Returns
30
+ * null when the result is not a five-digit code.
31
+ */
32
+ export declare function normalizeCAP(raw: unknown): CAP | null;
33
+ /**
34
+ * Type-predicate for a (normalized) Italian CAP.
35
+ */
36
+ export declare function isCAP(input: unknown): input is CAP;
28
37
  /**
29
38
  * Narrow a string to a {@link CAP}, or `null` when it is not one.
39
+ *
40
+ * @deprecated Use {@link normalizeCAP}.
30
41
  */
31
42
  export declare function parseCAP(input: string): CAP | null;
32
43
  //# sourceMappingURL=cap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cap.d.ts","sourceRoot":"","sources":["../../it/cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,WAAW,QAAY,CAAA;AAEpC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAIlD"}
1
+ {"version":3,"file":"cap.d.ts","sourceRoot":"","sources":["../../lib/it/cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,WAAW,QAAY,CAAA;AAEpC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,IAAI,CAKrD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAElD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAElD"}
package/out/it/cap.js CHANGED
@@ -15,11 +15,28 @@
15
15
  * Shape of an Italian CAP — five digits.
16
16
  */
17
17
  export const CAP_PATTERN = /^\d{5}$/;
18
+ /**
19
+ * Normalize a CAP surface form to the bare five digits: trim surrounding whitespace (`" 00184 "` → `"00184"`). Returns
20
+ * null when the result is not a five-digit code.
21
+ */
22
+ export function normalizeCAP(raw) {
23
+ if (typeof raw !== "string")
24
+ return null;
25
+ const s = raw.trim();
26
+ return CAP_PATTERN.test(s) ? s : null;
27
+ }
28
+ /**
29
+ * Type-predicate for a (normalized) Italian CAP.
30
+ */
31
+ export function isCAP(input) {
32
+ return typeof input === "string" && CAP_PATTERN.test(input);
33
+ }
18
34
  /**
19
35
  * Narrow a string to a {@link CAP}, or `null` when it is not one.
36
+ *
37
+ * @deprecated Use {@link normalizeCAP}.
20
38
  */
21
39
  export function parseCAP(input) {
22
- const s = input.trim();
23
- return CAP_PATTERN.test(s) ? s : null;
40
+ return normalizeCAP(input);
24
41
  }
25
42
  //# sourceMappingURL=cap.js.map
package/out/it/cap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cap.js","sourceRoot":"","sources":["../../it/cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AAEpC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACrC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAEtB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"cap.js","sourceRoot":"","sources":["../../lib/it/cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AAEpC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAEpB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACrC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC"}
package/out/it/index.d.ts CHANGED
@@ -5,5 +5,5 @@
5
5
  *
6
6
  * Italian (IT) address-system reference data.
7
7
  */
8
- export * from "./cap.ts";
8
+ export * from "#it/cap";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../it/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/it/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,SAAS,CAAA"}
package/out/it/index.js CHANGED
@@ -5,5 +5,5 @@
5
5
  *
6
6
  * Italian (IT) address-system reference data.
7
7
  */
8
- export * from "./cap.js";
8
+ export * from "#it/cap";
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../it/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/it/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"address-unit.d.ts","sourceRoot":"","sources":["../../jp/address-unit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,wDAAyD,CAAA;AAEvF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,iCAAkC,CAAA;AAE/D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAInE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,mBAAmB,CAE5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD"}
1
+ {"version":3,"file":"address-unit.d.ts","sourceRoot":"","sources":["../../lib/jp/address-unit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,wDAAyD,CAAA;AAEvF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,iCAAkC,CAAA;AAE/D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAInE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,mBAAmB,CAE5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"address-unit.js","sourceRoot":"","sources":["../../jp/address-unit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAOvF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAO/D,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAExE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAW;IAChD,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAEzD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;IAEzB,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"address-unit.js","sourceRoot":"","sources":["../../lib/jp/address-unit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAOvF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAO/D,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAExE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAW;IAChD,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAEzD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;IAEzB,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7D,CAAC"}
package/out/jp/index.d.ts CHANGED
@@ -7,7 +7,8 @@
7
7
  * that is the country's most reliable geographic anchor, and the address-unit markers that stand
8
8
  * in for the street names Japan does not use.
9
9
  */
10
- export * from "./address-unit.ts";
11
- export * from "./postal-code.ts";
12
- export * from "./prefecture.ts";
10
+ export * from "#jp/address-unit";
11
+ export * from "#jp/municipality-register";
12
+ export * from "#jp/postal-code";
13
+ export * from "#jp/prefecture";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../jp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/jp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA"}
package/out/jp/index.js CHANGED
@@ -7,7 +7,8 @@
7
7
  * that is the country's most reliable geographic anchor, and the address-unit markers that stand
8
8
  * in for the street names Japan does not use.
9
9
  */
10
- export * from "./address-unit.js";
11
- export * from "./postal-code.js";
12
- export * from "./prefecture.js";
10
+ export * from "#jp/address-unit";
11
+ export * from "#jp/municipality-register";
12
+ export * from "#jp/postal-code";
13
+ export * from "#jp/prefecture";
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../jp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/jp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * The towns whose own name carries the city marker 市 (shi) before the town suffix 町 / 村 (chō / son).
7
+ *
8
+ * A Japanese municipality span closes at 市 in the ordinary case (`富山市`, `神戸市西区`), and a character model
9
+ * learns that boundary from 1,700 cities. A town whose NAME contains 市 defeats it: `中新川郡上市町` reads as the
10
+ * city `上市` plus a district beginning with 町. Over the 1,892 municipalities in Japan Post's KEN_ALL list the
11
+ * shape has six members, so the boundary is stated here rather than learned — a positive attestation from the
12
+ * postal register, consumed after decode by `@mailwoman/neural`'s JP municipality repair. Two of the six (`上市町`,
13
+ * `下市町`) put 市 immediately before the suffix, the boundary the model closes at; the other four are listed for the same
14
+ * repair so an early close inside them is also repaired.
15
+ */
16
+ /**
17
+ * One town from Japan Post's KEN_ALL municipality list whose own name contains 市.
18
+ */
19
+ export interface JapaneseInnerShiTown {
20
+ /**
21
+ * The prefecture, as written (`富山県`).
22
+ */
23
+ prefecture: string;
24
+ /**
25
+ * The county (郡) the town belongs to, as the postal form writes it before the town.
26
+ */
27
+ county: string;
28
+ /**
29
+ * The town's own name with its suffix (`上市町`).
30
+ */
31
+ town: string;
32
+ }
33
+ /**
34
+ * The six towns, from KEN_ALL (1,892 municipalities). Ordered by prefecture code.
35
+ */
36
+ export declare const JP_INNER_SHI_TOWNS: readonly JapaneseInnerShiTown[];
37
+ /**
38
+ * Every surface a municipality span may legitimately close on for these towns: the postal form with the county
39
+ * (`中新川郡上市町`) and the bare town (`上市町`).
40
+ */
41
+ export declare const JP_INNER_SHI_TOWN_NAMES: readonly string[];
42
+ /**
43
+ * The characters a municipality surface must absorb from what follows it to become one of the register's names, or null
44
+ * when no name extends it. `following` is the text after the surface; the answer is a prefix of it. A surface that
45
+ * already IS a register name answers null: nothing to absorb.
46
+ */
47
+ export declare function jpMunicipalityCompletion(surface: string, following: string): string | null;
48
+ //# sourceMappingURL=municipality-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"municipality-register.d.ts","sourceRoot":"","sources":["../../lib/jp/municipality-register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,oBAAoB,EAO7D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAmE,CAAA;AAExH;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1F"}