@mailwoman/codex 9.2.0 → 9.3.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 (275) 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 +3 -3
  30. package/{jp → lib/jp}/prefecture.ts +7 -5
  31. package/{normalize.ts → lib/normalize.ts} +15 -1
  32. package/{nz → lib/nz}/delivery-service.ts +1 -1
  33. package/{nz → lib/nz}/index.ts +2 -2
  34. package/{postcode-systems.ts → lib/postcode-systems.ts} +40 -24
  35. package/{tools → lib/tools}/build-country-surface-lexicon.ts +10 -9
  36. package/{tools → lib/tools}/export-country-surfaces.ts +8 -8
  37. package/{tools → lib/tools}/generate-country-population.ts +4 -5
  38. package/{tools → lib/tools}/generate-country-reference.ts +4 -5
  39. package/{tools → lib/tools}/generate-official-languages.ts +7 -9
  40. package/{tools → lib/tools}/index.ts +3 -3
  41. package/{us → lib/us}/index.ts +8 -8
  42. package/{us → lib/us}/po-box.ts +1 -1
  43. package/{us → lib/us}/street-directional.ts +2 -2
  44. package/{us → lib/us}/street-suffix.ts +1 -1
  45. package/{us → lib/us}/unit-designator.ts +1 -1
  46. package/{us → lib/us}/zipcode.ts +1 -1
  47. package/out/address-system-conventions.d.ts +1 -1
  48. package/out/address-system-conventions.d.ts.map +1 -1
  49. package/out/address-system-conventions.js +8 -8
  50. package/out/address-system-conventions.js.map +1 -1
  51. package/out/au/delivery-service.d.ts.map +1 -1
  52. package/out/au/delivery-service.js.map +1 -1
  53. package/out/au/index.d.ts +4 -4
  54. package/out/au/index.d.ts.map +1 -1
  55. package/out/au/index.js +4 -4
  56. package/out/au/index.js.map +1 -1
  57. package/out/au/level-designator.d.ts.map +1 -1
  58. package/out/au/level-designator.js.map +1 -1
  59. package/out/au/postcode.d.ts.map +1 -1
  60. package/out/au/postcode.js.map +1 -1
  61. package/out/au/state.d.ts.map +1 -1
  62. package/out/au/state.js.map +1 -1
  63. package/out/ca/index.d.ts +3 -3
  64. package/out/ca/index.d.ts.map +1 -1
  65. package/out/ca/index.js +3 -3
  66. package/out/ca/index.js.map +1 -1
  67. package/out/ca/postal-code.d.ts +1 -1
  68. package/out/ca/postal-code.d.ts.map +1 -1
  69. package/out/ca/postal-code.js.map +1 -1
  70. package/out/ca/province.d.ts.map +1 -1
  71. package/out/ca/province.js +1 -1
  72. package/out/ca/province.js.map +1 -1
  73. package/out/ca/street-type.d.ts.map +1 -1
  74. package/out/ca/street-type.js +9 -12
  75. package/out/ca/street-type.js.map +1 -1
  76. package/out/country/codes.d.ts.map +1 -1
  77. package/out/country/codes.js.map +1 -1
  78. package/out/country/country.d.ts +13 -11
  79. package/out/country/country.d.ts.map +1 -1
  80. package/out/country/country.js +35 -13
  81. package/out/country/country.js.map +1 -1
  82. package/out/country/display-names.d.ts.map +1 -1
  83. package/out/country/display-names.js.map +1 -1
  84. package/out/country/index.d.ts +10 -10
  85. package/out/country/index.d.ts.map +1 -1
  86. package/out/country/index.js +10 -10
  87. package/out/country/index.js.map +1 -1
  88. package/out/country/names.d.ts.map +1 -1
  89. package/out/country/names.js.map +1 -1
  90. package/out/country/official-languages.d.ts.map +1 -1
  91. package/out/country/official-languages.js.map +1 -1
  92. package/out/country/population.d.ts.map +1 -1
  93. package/out/country/population.js.map +1 -1
  94. package/out/country/reference-data.d.ts.map +1 -1
  95. package/out/country/reference-data.js.map +1 -1
  96. package/out/country/reference.d.ts +1 -1
  97. package/out/country/reference.d.ts.map +1 -1
  98. package/out/country/reference.js +2 -2
  99. package/out/country/reference.js.map +1 -1
  100. package/out/country/subdivision.d.ts.map +1 -1
  101. package/out/country/subdivision.js +4 -4
  102. package/out/country/subdivision.js.map +1 -1
  103. package/out/de/bundesland.d.ts.map +1 -1
  104. package/out/de/bundesland.js.map +1 -1
  105. package/out/de/index.d.ts +3 -3
  106. package/out/de/index.d.ts.map +1 -1
  107. package/out/de/index.js +3 -3
  108. package/out/de/index.js.map +1 -1
  109. package/out/de/postleitzahl.d.ts.map +1 -1
  110. package/out/de/postleitzahl.js.map +1 -1
  111. package/out/de/street-type.d.ts.map +1 -1
  112. package/out/de/street-type.js.map +1 -1
  113. package/out/es/codigo-postal.d.ts +11 -0
  114. package/out/es/codigo-postal.d.ts.map +1 -1
  115. package/out/es/codigo-postal.js +20 -3
  116. package/out/es/codigo-postal.js.map +1 -1
  117. package/out/es/index.d.ts +1 -1
  118. package/out/es/index.d.ts.map +1 -1
  119. package/out/es/index.js +1 -1
  120. package/out/es/index.js.map +1 -1
  121. package/out/fr/cedex.d.ts +1 -1
  122. package/out/fr/cedex.d.ts.map +1 -1
  123. package/out/fr/cedex.js +1 -1
  124. package/out/fr/cedex.js.map +1 -1
  125. package/out/fr/code-postal.d.ts +2 -2
  126. package/out/fr/code-postal.d.ts.map +1 -1
  127. package/out/fr/code-postal.js +2 -2
  128. package/out/fr/code-postal.js.map +1 -1
  129. package/out/fr/departement.d.ts +2 -2
  130. package/out/fr/departement.d.ts.map +1 -1
  131. package/out/fr/departement.js +3 -0
  132. package/out/fr/departement.js.map +1 -1
  133. package/out/fr/index.d.ts +5 -5
  134. package/out/fr/index.d.ts.map +1 -1
  135. package/out/fr/index.js +5 -5
  136. package/out/fr/index.js.map +1 -1
  137. package/out/fr/region.d.ts.map +1 -1
  138. package/out/fr/region.js +1 -1
  139. package/out/fr/region.js.map +1 -1
  140. package/out/fr/voie.d.ts.map +1 -1
  141. package/out/fr/voie.js +4 -11
  142. package/out/fr/voie.js.map +1 -1
  143. package/out/gb/country.d.ts.map +1 -1
  144. package/out/gb/country.js +1 -9
  145. package/out/gb/country.js.map +1 -1
  146. package/out/gb/index.d.ts +4 -4
  147. package/out/gb/index.d.ts.map +1 -1
  148. package/out/gb/index.js +4 -4
  149. package/out/gb/index.js.map +1 -1
  150. package/out/gb/postcode-area.d.ts +1 -1
  151. package/out/gb/postcode-area.d.ts.map +1 -1
  152. package/out/gb/postcode-area.js.map +1 -1
  153. package/out/gb/postcode.d.ts.map +1 -1
  154. package/out/gb/postcode.js.map +1 -1
  155. package/out/gb/street-type.d.ts +1 -1
  156. package/out/gb/street-type.d.ts.map +1 -1
  157. package/out/gb/street-type.js +1 -1
  158. package/out/gb/street-type.js.map +1 -1
  159. package/out/index.d.ts +12 -12
  160. package/out/index.d.ts.map +1 -1
  161. package/out/index.js +12 -12
  162. package/out/index.js.map +1 -1
  163. package/out/it/cap.d.ts +11 -0
  164. package/out/it/cap.d.ts.map +1 -1
  165. package/out/it/cap.js +19 -2
  166. package/out/it/cap.js.map +1 -1
  167. package/out/it/index.d.ts +1 -1
  168. package/out/it/index.d.ts.map +1 -1
  169. package/out/it/index.js +1 -1
  170. package/out/it/index.js.map +1 -1
  171. package/out/jp/address-unit.d.ts.map +1 -1
  172. package/out/jp/address-unit.js.map +1 -1
  173. package/out/jp/index.d.ts +3 -3
  174. package/out/jp/index.d.ts.map +1 -1
  175. package/out/jp/index.js +3 -3
  176. package/out/jp/index.js.map +1 -1
  177. package/out/jp/postal-code.d.ts.map +1 -1
  178. package/out/jp/postal-code.js.map +1 -1
  179. package/out/jp/prefecture.d.ts +4 -1
  180. package/out/jp/prefecture.d.ts.map +1 -1
  181. package/out/jp/prefecture.js +6 -5
  182. package/out/jp/prefecture.js.map +1 -1
  183. package/out/level-semantics.d.ts.map +1 -1
  184. package/out/level-semantics.js.map +1 -1
  185. package/out/normalize.d.ts +8 -0
  186. package/out/normalize.d.ts.map +1 -1
  187. package/out/normalize.js +14 -1
  188. package/out/normalize.js.map +1 -1
  189. package/out/nz/delivery-service.d.ts +1 -1
  190. package/out/nz/delivery-service.d.ts.map +1 -1
  191. package/out/nz/delivery-service.js +1 -1
  192. package/out/nz/delivery-service.js.map +1 -1
  193. package/out/nz/index.d.ts +2 -2
  194. package/out/nz/index.d.ts.map +1 -1
  195. package/out/nz/index.js +2 -2
  196. package/out/nz/index.js.map +1 -1
  197. package/out/nz/postcode.d.ts.map +1 -1
  198. package/out/nz/postcode.js.map +1 -1
  199. package/out/postcode-systems.d.ts +26 -15
  200. package/out/postcode-systems.d.ts.map +1 -1
  201. package/out/postcode-systems.js +38 -23
  202. package/out/postcode-systems.js.map +1 -1
  203. package/out/tools/build-country-surface-lexicon.d.ts +1 -1
  204. package/out/tools/build-country-surface-lexicon.d.ts.map +1 -1
  205. package/out/tools/build-country-surface-lexicon.js +10 -9
  206. package/out/tools/build-country-surface-lexicon.js.map +1 -1
  207. package/out/tools/export-country-surfaces.d.ts +1 -1
  208. package/out/tools/export-country-surfaces.d.ts.map +1 -1
  209. package/out/tools/export-country-surfaces.js +7 -7
  210. package/out/tools/export-country-surfaces.js.map +1 -1
  211. package/out/tools/generate-country-population.d.ts.map +1 -1
  212. package/out/tools/generate-country-population.js +4 -4
  213. package/out/tools/generate-country-population.js.map +1 -1
  214. package/out/tools/generate-country-reference.d.ts.map +1 -1
  215. package/out/tools/generate-country-reference.js +4 -4
  216. package/out/tools/generate-country-reference.js.map +1 -1
  217. package/out/tools/generate-official-languages.d.ts.map +1 -1
  218. package/out/tools/generate-official-languages.js +7 -7
  219. package/out/tools/generate-official-languages.js.map +1 -1
  220. package/out/tools/index.d.ts +3 -3
  221. package/out/tools/index.d.ts.map +1 -1
  222. package/out/tools/index.js +3 -3
  223. package/out/tools/index.js.map +1 -1
  224. package/out/us/floor-designator.d.ts.map +1 -1
  225. package/out/us/floor-designator.js.map +1 -1
  226. package/out/us/index.d.ts +8 -8
  227. package/out/us/index.d.ts.map +1 -1
  228. package/out/us/index.js +8 -8
  229. package/out/us/index.js.map +1 -1
  230. package/out/us/military-address.d.ts.map +1 -1
  231. package/out/us/military-address.js.map +1 -1
  232. package/out/us/po-box.d.ts +1 -1
  233. package/out/us/po-box.d.ts.map +1 -1
  234. package/out/us/po-box.js +1 -1
  235. package/out/us/po-box.js.map +1 -1
  236. package/out/us/state.d.ts.map +1 -1
  237. package/out/us/state.js.map +1 -1
  238. package/out/us/street-directional.d.ts.map +1 -1
  239. package/out/us/street-directional.js +2 -2
  240. package/out/us/street-directional.js.map +1 -1
  241. package/out/us/street-suffix.d.ts +1 -1
  242. package/out/us/street-suffix.d.ts.map +1 -1
  243. package/out/us/street-suffix.js +1 -1
  244. package/out/us/street-suffix.js.map +1 -1
  245. package/out/us/unit-designator.d.ts +1 -1
  246. package/out/us/unit-designator.d.ts.map +1 -1
  247. package/out/us/unit-designator.js +1 -1
  248. package/out/us/unit-designator.js.map +1 -1
  249. package/out/us/zipcode.d.ts +1 -1
  250. package/out/us/zipcode.d.ts.map +1 -1
  251. package/out/us/zipcode.js +1 -1
  252. package/out/us/zipcode.js.map +1 -1
  253. package/package.json +70 -269
  254. package/country/index.ts +0 -17
  255. /package/{au → lib/au}/delivery-service.ts +0 -0
  256. /package/{au → lib/au}/level-designator.ts +0 -0
  257. /package/{au → lib/au}/postcode.ts +0 -0
  258. /package/{au → lib/au}/state.ts +0 -0
  259. /package/{country → lib/country}/display-names.ts +0 -0
  260. /package/{country → lib/country}/names.ts +0 -0
  261. /package/{country → lib/country}/official-languages.ts +0 -0
  262. /package/{country → lib/country}/population.ts +0 -0
  263. /package/{country → lib/country}/reference-data.ts +0 -0
  264. /package/{de → lib/de}/bundesland.ts +0 -0
  265. /package/{de → lib/de}/postleitzahl.ts +0 -0
  266. /package/{de → lib/de}/street-type.ts +0 -0
  267. /package/{gb → lib/gb}/postcode.ts +0 -0
  268. /package/{jp → lib/jp}/address-unit.ts +0 -0
  269. /package/{jp → lib/jp}/postal-code.ts +0 -0
  270. /package/{level-semantics.ts → lib/level-semantics.ts} +0 -0
  271. /package/{nz → lib/nz}/postcode.ts +0 -0
  272. /package/{us → lib/us}/floor-designator.ts +0 -0
  273. /package/{us → lib/us}/military-address.ts +0 -0
  274. /package/{us → lib/us}/state.ts +0 -0
  275. /package/{us → lib/us}/street-suffix.json +0 -0
@@ -10,24 +10,26 @@
10
10
  *
11
11
  * It is the shared source of truth for "which systems can this shape be" — consumed by the postcode
12
12
  * anchor (to narrow which systems' street vocabularies it checks) and, in time, by the runtime
13
- * pipeline's locale gate (so its format→locale scoring derives from the same patterns rather than
13
+ * pipeline's `@mailwoman/locale-hint` stage (so its format→locale scoring derives from the same patterns rather than
14
14
  * a second, divergent copy). The point is to unify the DATA, not to couple the modules: callers
15
15
  * depend on this pure function, never on each other.
16
16
  *
17
17
  * Note this is a SHAPE test, not a gazetteer-membership test. A bare `68161` matches the US,
18
- * German, AND French 5-digit shapes, so it returns `["us", "de", "fr"]` — the shape alone cannot
19
- * split the numeric-postcode systems. The anchor uses real gazetteer membership for the finer
18
+ * German, French, Spanish and Italian 5-digit shapes, so it returns `["us", "de", "fr", "es", "it"]` —
19
+ * the shape alone cannot split the numeric-postcode systems. The anchor uses real gazetteer membership for the finer
20
20
  * call; this function answers the coarser, model-free "which systems is this shape even eligible
21
21
  * for".
22
22
  */
23
- import { normalizeAuPostcode } from "./au/index.js";
24
- import { normalizeCaPostalCode } from "./ca/index.js";
25
- import { normalizePLZ } from "./de/index.js";
26
- import { normalizeCodePostal } from "./fr/index.js";
27
- import { normalizeUkPostcode } from "./gb/index.js";
28
- import { normalizeJpPostalCode } from "./jp/index.js";
29
- import { normalizeNZPostcode } from "./nz/index.js";
30
- import { isZipCode } from "./us/index.js";
23
+ import { normalizeAuPostcode } from "#au/index";
24
+ import { normalizeCaPostalCode } from "#ca/index";
25
+ import { normalizePLZ } from "#de/index";
26
+ import { normalizeCodigoPostal } from "#es/index";
27
+ import { normalizeCodePostal } from "#fr/index";
28
+ import { normalizeUkPostcode } from "#gb/index";
29
+ import { normalizeCAP } from "#it/index";
30
+ import { normalizeJpPostalCode } from "#jp/index";
31
+ import { normalizeNZPostcode } from "#nz/index";
32
+ import { isZipCode } from "#us/index";
31
33
  /**
32
34
  * Per-system membership test: each entry returns true when the string is accepted by that system's own postcode shape
33
35
  * (after that system's normalization — so `D-68161` reaches `de`, `1012 LM` reaches nothing here since NL has no slice
@@ -37,12 +39,19 @@ const SYSTEM_ACCEPTS = [
37
39
  ["us", (s) => isZipCode(s)],
38
40
  ["de", (s) => normalizePLZ(s) !== null],
39
41
  ["fr", (s) => normalizeCodePostal(s) !== null],
42
+ ["es", (s) => normalizeCodigoPostal(s) !== null],
43
+ ["it", (s) => normalizeCAP(s) !== null],
40
44
  ["ca", (s) => normalizeCaPostalCode(s) !== null],
41
45
  ["gb", (s) => normalizeUkPostcode(s) !== null],
42
46
  ["jp", (s) => normalizeJpPostalCode(s) !== null],
43
47
  ["au", (s) => normalizeAuPostcode(s) !== null],
44
48
  ["nz", (s) => normalizeNZPostcode(s) !== null],
45
49
  ];
50
+ /**
51
+ * Every address system with a postcode shape, in {@link SYSTEM_ACCEPTS} order. The one list a consumer that needs the
52
+ * universe of systems (rather than the systems a given code fits) should read, so it cannot drift from the table.
53
+ */
54
+ export const SYSTEM_CODES = SYSTEM_ACCEPTS.map(([system]) => system);
46
55
  /**
47
56
  * Every address system whose own postcode shape accepts `postcode`. Empty when no system recognizes the shape (e.g. a
48
57
  * bare `27`, or a 7-digit run). O(number of systems) — a handful of cheap regex tests, run only on the few
@@ -142,22 +151,28 @@ export function isUnitGradePostcodeHit(parsed, resolverName) {
142
151
  * Membership is earned by a full-panel measurement, the same bar {@link UNIT_GRADE_POSTCODE} sets for CA. Coordinate
143
152
  * p50 on the OpenAddresses panels, locality-first (the default) against the postcode point:
144
153
  *
145
- * | country | rows | locality-first | postcode point | verdict |
146
- * | ------- | ----: | -------------: | -------------: | ------------------------------------------------------------------ |
147
- * | **DE** | 2,997 | 5.84 km | **1.24 km** | postcode, on EVERY percentile incl. p99 (21.50 → 10.57) |
148
- * | FR | 3,000 | **0.97 km** | 2.64 km | locality, closer on 77.5% of rows |
149
- * | IT | 2,833 | **1.34 km** | 3.05 km | locality, closer on 66.4% |
150
- * | ES | 2,929 | **0.68 km** | 0.97 km | locality, but near a coin flip — 46.1% of rows prefer the postcode |
151
- * | US | 577 | **2.28 km** | 4.15 km | locality (see below) |
154
+ * | country | rows | locality-first | postcode point | verdict |
155
+ * | ------- | ----: | -------------: | -------------: | ---------------------------------------------------------------------- |
156
+ * | **DE** | 2,997 | 5.84 km | **1.24 km** | postcode, on EVERY percentile incl. p99 (21.50 → 10.57) |
157
+ * | FR | 3,000 | **0.97 km** | 2.64 km | locality, closer on 77.5% of rows |
158
+ * | IT | 2,833 | **1.34 km** | 3.05 km | locality, closer on 66.4% |
159
+ * | ES | 2,929 | **0.68 km** | 0.97 km | locality, but near a coin flip — 46.1% of rows prefer the postcode |
160
+ * | US | 577 | **2.28 km** | 4.15 km | locality (see below) |
161
+ * | **JP** | 586 | 4.93 km | **0.48 km** | postcode, closer on 97.3% of rows (p90 13.55 → 1.21, p99 19.63 → 3.54) |
152
162
  *
153
163
  * **The US row is measured on the population production actually sends to the ladder.** Its rooftop cascade is US-only
154
164
  * by construction (`selectAddressPointsDB` composes `address-points-us-<slug>.db`), and it serves 94.2% of US queries,
155
- * so only 577 of 10,000 panel rows reach an admin decision at all. Those are the rows no rooftop or interpolation shard
156
- * could place, which skews rural — exactly where a locality centroid sits close and a ZIP zone is wide. Measured over
157
- * all 10,000 rows instead, the US looks like a postcode-first country (2.41 km vs 3.63); that is a selection effect,
158
- * and it is why this table reports 577 rows for the US and full panels for the others, which have no such cascade.
165
+ * so only 577 of 10,000 panel rows reach an admin decision at all. Those are the rows no rooftop or interpolation
166
+ * extract could place, which skews rural — exactly where a locality centroid sits close and a ZIP zone is wide.
167
+ * Measured over all 10,000 rows instead, the US looks like a postcode-first country (2.41 km vs 3.63); that is a
168
+ * selection effect, and it is why this table reports 577 rows for the US and full panels for the others, which have no
169
+ * such cascade.
170
+ *
171
+ * **The JP row is the JP board through the served path** (`jp-served-resolve.run.ts`, 2,000 rows, seed 42): the 586
172
+ * rows carrying a postcode the candidate table keys, graded on the row's own entrance point — the locality-first answer
173
+ * is the municipality centroid, the postcode answer the code's 町域 centroid from the WOF extract.
159
174
  */
160
- export const AREA_POSTCODE_FINER_THAN_LOCALITY = new Set(["DE"]);
175
+ export const AREA_POSTCODE_FINER_THAN_LOCALITY = new Set(["DE", "JP"]);
161
176
  /**
162
177
  * True when this country's area-grade postal code outranks its locality. Absent or unknown country → false, so the
163
178
  * locality-first convention is what an unscoped query gets.
@@ -1 +1 @@
1
- {"version":3,"file":"postcode-systems.js","sourceRoot":"","sources":["../postcode-systems.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postcode-systems.js","sourceRoot":"","sources":["../lib/postcode-systems.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@
34
34
  *
35
35
  * Source of truth: `@mailwoman/codex` (COUNTRY_SURFACE_FORMS + ISO2_TO_NAME) — the SAME data the
36
36
  * corpus-python bridge `country-surfaces.json` is generated from (export-country-surfaces.ts), so
37
- * the channel and the corpus shard synthesizer cannot diverge on what a country surface IS.
37
+ * the channel and the corpus extract synthesizer cannot diverge on what a country surface IS.
38
38
  *
39
39
  * Output: data/gazetteer/country-surface-lexicon-v1.json (small, committed, provenance-tracked).
40
40
  * Regenerate: `node codex/tools/build-country-surface-lexicon.ts`
@@ -1 +1 @@
1
- {"version":3,"file":"build-country-surface-lexicon.d.ts","sourceRoot":"","sources":["../../tools/build-country-surface-lexicon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG"}
1
+ {"version":3,"file":"build-country-surface-lexicon.d.ts","sourceRoot":"","sources":["../../lib/tools/build-country-surface-lexicon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG"}
@@ -34,16 +34,17 @@
34
34
  *
35
35
  * Source of truth: `@mailwoman/codex` (COUNTRY_SURFACE_FORMS + ISO2_TO_NAME) — the SAME data the
36
36
  * corpus-python bridge `country-surfaces.json` is generated from (export-country-surfaces.ts), so
37
- * the channel and the corpus shard synthesizer cannot diverge on what a country surface IS.
37
+ * the channel and the corpus extract synthesizer cannot diverge on what a country surface IS.
38
38
  *
39
39
  * Output: data/gazetteer/country-surface-lexicon-v1.json (small, committed, provenance-tracked).
40
40
  * Regenerate: `node codex/tools/build-country-surface-lexicon.ts`
41
41
  */
42
- import { mkdirSync, writeFileSync } from "node:fs";
43
- import { dirname, resolve } from "node:path";
44
- import { COUNTRY_SURFACE_FORMS, ISO2_TO_NAME } from "../country/country.js";
45
- import { wordNorm, wordNormLower } from "../normalize.js";
46
- import { US_STATE_ABBREVIATIONS, US_STATE_NAMES } from "../us/state.js";
42
+ import { makeDirectories, writeLocalTextFile } from "@mailwoman/core/fs/writers";
43
+ import { repoRootPath } from "@mailwoman/core/paths";
44
+ import { dirname } from "path-ts";
45
+ import { COUNTRY_SURFACE_FORMS, ISO2_TO_NAME } from "#country/country";
46
+ import { wordNorm, wordNormLower } from "#normalize";
47
+ import { US_STATE_ABBREVIATIONS, US_STATE_NAMES } from "#us/state";
47
48
  /**
48
49
  * Ambiguous entries printed before the list is truncated.
49
50
  */
@@ -58,7 +59,7 @@ const SLOTS = ["country_surface", "country_ambiguous"];
58
59
  * Committed output path (a codex-derived artifact, like export-country-surfaces.ts — no argv, so the no-process-globals
59
60
  * lint policy holds; codex stays zero-runtime-dep).
60
61
  */
61
- const OUTPUT = resolve(import.meta.dirname, "../../../data/gazetteer/country-surface-lexicon-v1.json");
62
+ const OUTPUT = repoRootPath("data", "gazetteer", "country-surface-lexicon-v1.json");
62
63
  /**
63
64
  * THE shared word-normalization rule (identical to build-gazetteer-anchor-lexicon.mjs and mirrored in
64
65
  * gazetteer_char_paint on both sides): per whitespace-word, strip LEADING/TRAILING characters that are not Unicode
@@ -141,8 +142,8 @@ const lexicon = {
141
142
  entries: Object.fromEntries([...entries].toSorted(([a], [b]) => a.localeCompare(b))),
142
143
  code_entries: Object.fromEntries([...codeEntries].toSorted(([a], [b]) => a.localeCompare(b))),
143
144
  };
144
- mkdirSync(dirname(OUTPUT), { recursive: true });
145
- writeFileSync(OUTPUT, JSON.stringify(lexicon, null, 1) + "\n");
145
+ await makeDirectories(dirname(OUTPUT));
146
+ await writeLocalTextFile(JSON.stringify(lexicon, null, 1) + "\n", OUTPUT);
146
147
  process.stderr.write(`wrote ${OUTPUT}: ${entries.size} entries + ${codeEntries.size} code_entries, ` +
147
148
  `max_ngram=${maxNgram}, ${ambiguousEntries.length} ambiguous: ${ambiguousEntries.slice(0, MAX_LISTED_AMBIGUOUS).join(", ")}${ambiguousEntries.length > MAX_LISTED_AMBIGUOUS ? ", …" : ""}\n`);
148
149
  //# sourceMappingURL=build-country-surface-lexicon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-country-surface-lexicon.js","sourceRoot":"","sources":["../../tools/build-country-surface-lexicon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-country-surface-lexicon.js","sourceRoot":"","sources":["../../lib/tools/build-country-surface-lexicon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAElE;;GAEG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAA;AAElC,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAA;AACxD,MAAM,KAAK,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAA;AAEtD;;;GAGG;AACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,iCAAiC,CAAC,CAAA;AAEnF;;;;;GAKG;AACH;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,CAAS,EAAW,EAAE;IAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAE9C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,wBAAwB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpG,CAAC,CAAA;AAED,qGAAqG;AACrG,mGAAmG;AACnG,qDAAqD;AACrD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AACxE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,sBAA2C,CAAC,CAAA;AAEnF;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAExH,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAExH,wFAAwF;AACxF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAC,gBAAgB;AAC1D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAC,sBAAsB;AACpE,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB,SAAS,GAAG,CAAC,OAAe;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAExB,IAAI,CAAC,CAAC;QAAE,OAAM;IAEd,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QAErC,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,gGAAgG;QAChG,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxF,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QAExD,OAAM;IACP,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAE5B,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3C,4FAA4F;IAC5F,oBAAoB;IACpB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACjD,CAAC;AAED,qGAAqG;AACrG,kGAAkG;AAClG,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;AACF,CAAC;AAED,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;IACrC,GAAG,CAAC,IAAI,CAAC,CAAA;AACV,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAElH,MAAM,OAAO,GAAG;IACf,OAAO,EAAE,CAAC;IACV,YAAY,EACX,8GAA8G;IAC/G,WAAW,EAAE,KAAK,CAAC,MAAM;IACzB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE;QACN,SAAS,EACR,wFAAwF;YACxF,+GAA+G;QAChH,OAAO,EACN,uKAAuK;QACxK,YAAY,EACX,mLAAmL;QACpL,IAAI,EAAE,gHAAgH;QACtH,OAAO,EACN,4HAA4H;KAC7H;IACD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7F,CAAA;AAED,MAAM,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AACtC,MAAM,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;AAEzE,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,SAAS,MAAM,KAAK,OAAO,CAAC,IAAI,cAAc,WAAW,CAAC,IAAI,iBAAiB;IAC9E,aAAa,QAAQ,KAAK,gBAAgB,CAAC,MAAM,eAAe,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAC7L,CAAA"}
@@ -4,7 +4,7 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
6
  * codex → corpus-python bridge: emit the authoritative country surface forms as JSON so the Python
7
- * shard generators can synthesize address tails ("…, USA" / "…, United States of America") without
7
+ * extract generators can synthesize address tails ("…, USA" / "…, United States of America") without
8
8
  * re-deriving the country name/alias data. `@mailwoman/codex` stays the single source of truth
9
9
  * (COUNTRY_SURFACE_FORMS + ISO2_TO_NAME, salvaged from isp-nexus spatial/countries); this writes a
10
10
  * snapshot the language boundary can't import directly.
@@ -1 +1 @@
1
- {"version":3,"file":"export-country-surfaces.d.ts","sourceRoot":"","sources":["../../tools/export-country-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"export-country-surfaces.d.ts","sourceRoot":"","sources":["../../lib/tools/export-country-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -4,16 +4,16 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
6
  * codex → corpus-python bridge: emit the authoritative country surface forms as JSON so the Python
7
- * shard generators can synthesize address tails ("…, USA" / "…, United States of America") without
7
+ * extract generators can synthesize address tails ("…, USA" / "…, United States of America") without
8
8
  * re-deriving the country name/alias data. `@mailwoman/codex` stays the single source of truth
9
9
  * (COUNTRY_SURFACE_FORMS + ISO2_TO_NAME, salvaged from isp-nexus spatial/countries); this writes a
10
10
  * snapshot the language boundary can't import directly.
11
11
  *
12
12
  * Regenerate: `node codex/tools/export-country-surfaces.ts` (writes the corpus-python data file).
13
13
  */
14
- import { writeFileSync } from "node:fs";
15
- import { resolve } from "node:path";
16
- import { COUNTRY_SURFACE_FORMS, ISO2_TO_NAME } from "../country/country.js";
14
+ import { writeLocalTextFile } from "@mailwoman/core/fs/writers";
15
+ import { repoRootPath } from "@mailwoman/core/paths";
16
+ import { COUNTRY_SURFACE_FORMS, ISO2_TO_NAME } from "#country/country";
17
17
  // Merge: rich surface forms where the codex curates them, else the canonical English name for every
18
18
  // ISO 3166-1 alpha-2. Canonical-name-first (the codex's own ordering) so the common form leads.
19
19
  const surfaces = {};
@@ -25,10 +25,10 @@ for (const [iso2, name] of ISO2_TO_NAME) {
25
25
  surfaces[iso2] = [name];
26
26
  }
27
27
  }
28
- const out = resolve(import.meta.dirname, "../../../corpus-python/src/mailwoman_train/data/country-surfaces.json");
29
- writeFileSync(out, JSON.stringify({
28
+ const out = repoRootPath("corpus-python", "src", "mailwoman_train", "data", "country-surfaces.json");
29
+ await writeLocalTextFile(JSON.stringify({
30
30
  _generated: "codex/tools/export-country-surfaces.ts from @mailwoman/codex COUNTRY_SURFACE_FORMS + ISO2_TO_NAME",
31
31
  surfaces,
32
- }, null, 2) + "\n");
32
+ }, null, 2) + "\n", out);
33
33
  process.stderr.write(`wrote ${Object.keys(surfaces).length} countries → ${out}\n`);
34
34
  //# sourceMappingURL=export-country-surfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-country-surfaces.js","sourceRoot":"","sources":["../../tools/export-country-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE3E,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,QAAQ,GAA6B,EAAE,CAAA;AAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;IACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;AACF,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,uEAAuE,CAAC,CAAA;AAEjH,aAAa,CACZ,GAAG,EACH,IAAI,CAAC,SAAS,CACb;IACC,UAAU,EAAE,mGAAmG;IAC/G,QAAQ;CACR,EACD,IAAI,EACJ,CAAC,CACD,GAAG,IAAI,CACR,CAAA;AAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"export-country-surfaces.js","sourceRoot":"","sources":["../../lib/tools/export-country-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEtE,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,QAAQ,GAA6B,EAAE,CAAA;AAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;IACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;AACF,CAAC;AAED,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAEpG,MAAM,kBAAkB,CACvB,IAAI,CAAC,SAAS,CACb;IACC,UAAU,EAAE,mGAAmG;IAC/G,QAAQ;CACR,EACD,IAAI,EACJ,CAAC,CACD,GAAG,IAAI,EACR,GAAG,CACH,CAAA;AAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-country-population.d.ts","sourceRoot":"","sources":["../../tools/generate-country-population.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAoCH;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,GAAE,gCAAqC,EAC9C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,gCAAgC,CAAC,CA8D3C"}
1
+ {"version":3,"file":"generate-country-population.d.ts","sourceRoot":"","sources":["../../lib/tools/generate-country-population.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAmCH;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,GAAE,gCAAqC,EAC9C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,gCAAgC,CAAC,CA8D3C"}
@@ -19,16 +19,16 @@
19
19
  *
20
20
  * Usage: mailwoman dev generate country-population
21
21
  */
22
- import { writeFileSync } from "node:fs";
23
- import { fileURLToPath } from "node:url";
24
22
  import { APIClient, pluckResponseData } from "@mailwoman/core/api";
23
+ import { writeLocalTextFile } from "@mailwoman/core/fs/writers";
24
+ import { resolvePackagePath } from "@mailwoman/core/module/resolvers";
25
25
  const SOURCE = "https://download.geonames.org/export/dump/countryInfo.txt";
26
26
  /**
27
27
  * The committed output path, resolved relative to this module (codex/tools/ → codex/country/). See
28
28
  * `generate-country-reference.ts` for why this is `import.meta.url` rather than a `core` path helper (codex is
29
29
  * zero-runtime-dep and `core` already references `codex` — importing core here would cycle the project graph).
30
30
  */
31
- const DEFAULT_OUT = fileURLToPath(new URL("../country/population.ts", import.meta.url));
31
+ const DEFAULT_OUT = resolvePackagePath("@mailwoman/codex", "lib", "country", "population.ts");
32
32
  /**
33
33
  * Tab positions this tool reads from `countryInfo.txt`'s 19-column rows. Named so the parse states which columns it
34
34
  * believes in; a GeoNames format change fails the count guard below rather than silently reading the wrong column.
@@ -99,7 +99,7 @@ export async function generateCountryPopulation(options = {}, report) {
99
99
  * ISO 3166-1 alpha-2 → population estimate.
100
100
  */
101
101
  export const COUNTRY_POPULATION: Readonly<Record<string, number>> = {`;
102
- writeFileSync(outPath, `${header}\n${body}\n}\n`);
102
+ await writeLocalTextFile(`${header}\n${body}\n}\n`, outPath);
103
103
  report?.(`wrote ${outPath} (${Object.keys(rows).length} countries)`);
104
104
  return { countries: Object.keys(rows).length, outPath };
105
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-country-population.js","sourceRoot":"","sources":["../../tools/generate-country-population.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-country-population.js","sourceRoot":"","sources":["../../lib/tools/generate-country-population.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-country-reference.d.ts","sourceRoot":"","sources":["../../tools/generate-country-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkCH;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf;AA6BD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,OAAO,GAAE,+BAAoC,EAC7C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,+BAA+B,CAAC,CAqE1C"}
1
+ {"version":3,"file":"generate-country-reference.d.ts","sourceRoot":"","sources":["../../lib/tools/generate-country-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf;AA6BD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,OAAO,GAAE,+BAAoC,EAC7C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,+BAA+B,CAAC,CAqE1C"}
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * Usage: mailwoman dev generate country-reference
15
15
  */
16
- import { writeFileSync } from "node:fs";
17
- import { fileURLToPath } from "node:url";
18
16
  import { APIClient, pluckResponseData } from "@mailwoman/core/api";
17
+ import { writeLocalTextFile } from "@mailwoman/core/fs/writers";
18
+ import { resolvePackagePath } from "@mailwoman/core/module/resolvers";
19
19
  const SOURCE = "https://raw.githubusercontent.com/mledoze/countries/master/countries.json";
20
20
  /**
21
21
  * The committed output path, resolved relative to this module (codex/tools/ → codex/country/). The codegen is
@@ -23,7 +23,7 @@ const SOURCE = "https://raw.githubusercontent.com/mledoze/countries/master/count
23
23
  * `import.meta.url` points at the source tree. (`@mailwoman/core`'s `repoRootPath` would also work, but codex is
24
24
  * zero-runtime-dep and `core` already references `codex` — importing core here would cycle the project graph.)
25
25
  */
26
- const DEFAULT_OUT = fileURLToPath(new URL("../country/reference-data.ts", import.meta.url));
26
+ const DEFAULT_OUT = resolvePackagePath("@mailwoman/codex", "lib", "country", "reference-data.ts");
27
27
  function callingCode(country) {
28
28
  const root = (country.idd?.root ?? "").replace("+", "");
29
29
  const suffixes = country.idd?.suffixes ?? [];
@@ -100,7 +100,7 @@ export interface CountryReference {
100
100
 
101
101
  /** ISO 3166-1 alpha-2 → reference. */
102
102
  export const COUNTRY_REFERENCE: Record<string, CountryReference> = {`;
103
- writeFileSync(outPath, `${header}\n${body}\n}\n`);
103
+ await writeLocalTextFile(`${header}\n${body}\n}\n`, outPath);
104
104
  report?.(`wrote ${outPath} (${Object.keys(rows).length} countries)`);
105
105
  return { countries: Object.keys(rows).length, outPath };
106
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-country-reference.js","sourceRoot":"","sources":["../../tools/generate-country-reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-country-reference.js","sourceRoot":"","sources":["../../lib/tools/generate-country-reference.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-official-languages.d.ts","sourceRoot":"","sources":["../../tools/generate-official-languages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAgBH;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CACf;AAsBD;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,GAAE,gCAAqC,EAC9C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,gCAAgC,CAAC,CA2H3C"}
1
+ {"version":3,"file":"generate-official-languages.d.ts","sourceRoot":"","sources":["../../lib/tools/generate-official-languages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAcH;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CACf;AAsBD;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,GAAE,gCAAqC,EAC9C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,gCAAgC,CAAC,CA2H3C"}
@@ -18,17 +18,17 @@
18
18
  * With `cldrDir`, reads cldr-territoryInfo.json + cldr-aliases.json from disk; otherwise fetches
19
19
  * the pinned cldr-core release from jsdelivr.
20
20
  */
21
- import { readFileSync, writeFileSync } from "node:fs";
22
- import { join } from "node:path";
23
- import { fileURLToPath } from "node:url";
24
21
  import { APIClient, pluckResponseData } from "@mailwoman/core/api";
25
- import { parseJSONStrict } from "@mailwoman/core/objects";
22
+ import { readLocalJSONFile } from "@mailwoman/core/fs/readers";
23
+ import { writeLocalFile } from "@mailwoman/core/fs/writers";
24
+ import { resolvePackagePath } from "@mailwoman/core/module/resolvers";
25
+ import { join } from "path-ts";
26
26
  /**
27
27
  * The committed output path, resolved relative to this module (codex/tools/ → codex/country/). The codegen is
28
28
  * repo-only, and in the repo `@mailwoman/codex/tools` always loads from source via the `node` exports condition, so
29
29
  * `import.meta.url` points at the source tree.
30
30
  */
31
- const DEFAULT_OUT = fileURLToPath(new URL("../country/official-languages.ts", import.meta.url));
31
+ const DEFAULT_OUT = resolvePackagePath("@mailwoman/codex", "lib", "country", "official-languages.ts");
32
32
  /**
33
33
  * One call per CLDR supplemental file, against a CDN that throttles. Retry only — the caller makes a handful of
34
34
  * requests, so a rate budget would be ceremony over a burst that never happens.
@@ -36,7 +36,7 @@ const DEFAULT_OUT = fileURLToPath(new URL("../country/official-languages.ts", im
36
36
  const cldrClient = new APIClient({ displayName: "cldr", retry: true });
37
37
  async function loadCLDR(file, cldrDir, cldrVersion) {
38
38
  if (cldrDir) {
39
- return parseJSONStrict(readFileSync(join(cldrDir, `cldr-${file}.json`), "utf8"));
39
+ return await readLocalJSONFile(join(cldrDir, `cldr-${file}.json`));
40
40
  }
41
41
  const url = `https://cdn.jsdelivr.net/npm/cldr-core@${cldrVersion}/supplemental/${file}.json`;
42
42
  return cldrClient.fetch({ url }).then(pluckResponseData);
@@ -142,7 +142,7 @@ export function isOfficialLanguage(country: string, language: string, includeReg
142
142
  return entry.official.includes(lang) || (includeRegional && (entry.regional?.includes(lang) ?? false))
143
143
  }
144
144
  `;
145
- writeFileSync(outPath, header);
145
+ await writeLocalFile(header, outPath);
146
146
  report?.(`Wrote ${outPath}: ${Object.keys(table).length} territories (CLDR ${cldrVersion})`);
147
147
  return { territories: Object.keys(table).length, cldrVersion, outPath };
148
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-official-languages.js","sourceRoot":"","sources":["../../tools/generate-official-languages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-official-languages.js","sourceRoot":"","sources":["../../lib/tools/generate-official-languages.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * Codex operator tools — the `run()`-style modules behind `mailwoman dev generate …` commands. No
7
7
  * argv, no `process.exit`: commands own parsing, rendering, and exit codes.
8
8
  */
9
- export * from "./generate-country-population.ts";
10
- export * from "./generate-country-reference.ts";
11
- export * from "./generate-official-languages.ts";
9
+ export * from "#tools/generate-country-population";
10
+ export * from "#tools/generate-country-reference";
11
+ export * from "#tools/generate-official-languages";
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA"}
@@ -6,7 +6,7 @@
6
6
  * Codex operator tools — the `run()`-style modules behind `mailwoman dev generate …` commands. No
7
7
  * argv, no `process.exit`: commands own parsing, rendering, and exit codes.
8
8
  */
9
- export * from "./generate-country-population.js";
10
- export * from "./generate-country-reference.js";
11
- export * from "./generate-official-languages.js";
9
+ export * from "#tools/generate-country-population";
10
+ export * from "#tools/generate-country-reference";
11
+ export * from "#tools/generate-official-languages";
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"floor-designator.d.ts","sourceRoot":"","sources":["../../us/floor-designator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;EAKgB,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAe9E,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAA8C,CAAA;AAEzG;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAE3C,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IACxE,UAAU,EAAE,qBAAqB,CAAA;IACjC,YAAY,EAAE,MAAM,CAAA;CACpB,GAAG,IAAI,CAOP;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D"}
1
+ {"version":3,"file":"floor-designator.d.ts","sourceRoot":"","sources":["../../lib/us/floor-designator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;EAKgB,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAe9E,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAA8C,CAAA;AAEzG;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAE3C,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IACxE,UAAU,EAAE,qBAAqB,CAAA;IACjC,YAAY,EAAE,MAAM,CAAA;CACpB,GAAG,IAAI,CAOP;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"floor-designator.js","sourceRoot":"","sources":["../../us/floor-designator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA4BH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;IAC9E,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAC9E,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;IAC9E,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;CAC5B,CAAA;AAOjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA+C,CAAC,GAAG,EAAE;IAC3F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiC,CAAA;IAEpD,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACzC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAEjD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACnC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC,CAAC,EAAE,CAAA;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAA;AAEzG;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAoD,MAAM,CAAC,WAAW,CACpH,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CACN,CAAA;AAEpD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IAIrE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACpD,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IAE7E,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kCAAkC,CAAC,UAAU,CAAC,EAAE,CAAA;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAC/F,CAAC"}
1
+ {"version":3,"file":"floor-designator.js","sourceRoot":"","sources":["../../lib/us/floor-designator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA4BH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;IAC9E,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAC9E,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;IAC9E,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;CAC5B,CAAA;AAOjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA+C,CAAC,GAAG,EAAE;IAC3F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiC,CAAA;IAEpD,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACzC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAEjD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACnC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC,CAAC,EAAE,CAAA;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAA;AAEzG;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAoD,MAAM,CAAC,WAAW,CACpH,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CACN,CAAA;AAEpD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IAIrE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACpD,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IAE7E,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kCAAkC,CAAC,UAAU,CAAC,EAAE,CAAA;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAC/F,CAAC"}
package/out/us/index.d.ts CHANGED
@@ -8,12 +8,12 @@
8
8
  * (USPS Pub 28 Chapter 7: APO/FPO/DPO + PSC/CMR/UNIT), ZIP codes, and the state abbreviations
9
9
  * they hang off of.
10
10
  */
11
- export * from "./floor-designator.ts";
12
- export * from "./military-address.ts";
13
- export * from "./po-box.ts";
14
- export * from "./state.ts";
15
- export * from "./street-directional.ts";
16
- export * from "./street-suffix.ts";
17
- export * from "./unit-designator.ts";
18
- export * from "./zipcode.ts";
11
+ export * from "#us/floor-designator";
12
+ export * from "#us/military-address";
13
+ export * from "#us/po-box";
14
+ export * from "#us/state";
15
+ export * from "#us/street-directional";
16
+ export * from "#us/street-suffix";
17
+ export * from "#us/unit-designator";
18
+ export * from "#us/zipcode";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../us/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/us/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
package/out/us/index.js CHANGED
@@ -8,12 +8,12 @@
8
8
  * (USPS Pub 28 Chapter 7: APO/FPO/DPO + PSC/CMR/UNIT), ZIP codes, and the state abbreviations
9
9
  * they hang off of.
10
10
  */
11
- export * from "./floor-designator.js";
12
- export * from "./military-address.js";
13
- export * from "./po-box.js";
14
- export * from "./state.js";
15
- export * from "./street-directional.js";
16
- export * from "./street-suffix.js";
17
- export * from "./unit-designator.js";
18
- export * from "./zipcode.js";
11
+ export * from "#us/floor-designator";
12
+ export * from "#us/military-address";
13
+ export * from "#us/po-box";
14
+ export * from "#us/state";
15
+ export * from "#us/street-directional";
16
+ export * from "#us/street-suffix";
17
+ export * from "#us/unit-designator";
18
+ export * from "#us/zipcode";
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../us/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/us/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"military-address.d.ts","sourceRoot":"","sources":["../../us/military-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAchC,CAAA;AAEV,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7F;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAI1B,CAAA;AAEV,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAmB/B,CAAA;AAEV,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,4BAA4B,CAAA;IAClC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAQD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAkBhF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,wBAAwB,CAAA;IAC9B;;OAEG;IACH,MAAM,EAAE,uBAAuB,CAAA;IAC/B;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;CACX;AAWD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAYhF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE1D"}
1
+ {"version":3,"file":"military-address.d.ts","sourceRoot":"","sources":["../../lib/us/military-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAchC,CAAA;AAEV,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7F;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAI1B,CAAA;AAEV,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAmB/B,CAAA;AAEV,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,4BAA4B,CAAA;IAClC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAQD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAkBhF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,wBAAwB,CAAA;IAC9B;;OAEG;IACH,MAAM,EAAE,uBAAuB,CAAA;IAC/B;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;CACX;AAWD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAYhF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"military-address.js","sourceRoot":"","sources":["../../us/military-address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"military-address.js","sourceRoot":"","sources":["../../lib/us/military-address.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export interface PoBoxMatch {
39
39
  }
40
40
  /**
41
41
  * If `input` is a PO-box phrase ("PO Box 123", "P.O. Box 12-A", "Post Office Box 7"), return the designator phrase and
42
- * the id. Null otherwise. Useful for the corpus po_box shard (split the designator from the number) and for
42
+ * the id. Null otherwise. Useful for the corpus po_box extract (split the designator from the number) and for
43
43
  * resolver/parsing reuse.
44
44
  */
45
45
  export declare function matchPOBox(input: unknown): PoBoxMatch | null;