@mailwoman/corpus 10.6.0 → 10.7.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 (223) hide show
  1. package/data/PROVENANCE.md +24 -0
  2. package/data/address-source-register.json +18948 -8757
  3. package/data/corpus-source-inputs.json +4756 -0
  4. package/data/license-decisions.json +7260 -0
  5. package/data/licenses/whosonfirst-licenses.md +3 -2
  6. package/data/reviewed-ve-postcode-tuples.json +5 -72
  7. package/data/source-additions.json +2450 -0
  8. package/data/source-resolutions.json +87 -0
  9. package/data/training-manifests/v0.7.10-gb-county.effective.json +2335 -0
  10. package/data/training-manifests/v0.7.10-gb-county.json +1132 -0
  11. package/data/training-manifests/v0.7.2-address-systems.effective.json +3 -2
  12. package/data/training-manifests/v0.7.7-no-ppd.json +550 -0
  13. package/data/training-manifests/v0.7.8-rights-clean.json +538 -0
  14. package/data/training-manifests/v0.7.9-country-gap.json +1132 -0
  15. package/data/us-situs-sources.json +128 -0
  16. package/lib/adapters/cordis/adapter.ts +1 -1
  17. package/lib/adapters/libpostal-dictionary.ts +23 -3
  18. package/lib/adapters/osm/adapter.ts +42 -11
  19. package/lib/adapters.ts +14 -0
  20. package/lib/az/adapters/opendata/adapter.ts +389 -0
  21. package/lib/bs/adapters/gbpa/adapter.ts +248 -0
  22. package/lib/build/types.ts +16 -0
  23. package/lib/build.ts +21 -0
  24. package/lib/ee/adapters/ads/adapter.ts +18 -0
  25. package/lib/fo/adapters/adressur/adapter.ts +242 -0
  26. package/lib/gb/adapters/os-open/adapter.ts +12 -0
  27. package/lib/gb/county.ts +59 -0
  28. package/lib/gb/os-open/open/names.ts +41 -0
  29. package/lib/gu/adapters/bsp/adapter.ts +434 -0
  30. package/lib/im/adapters/land-registry/adapter.ts +340 -0
  31. package/lib/international/recipes/locale.ts +164 -19
  32. package/lib/li/adapters/llv/adapter.ts +246 -0
  33. package/lib/recipes/bare/postcode.ts +10 -34
  34. package/lib/recipes/country-balanced.ts +95 -78
  35. package/lib/recipes/intersection.ts +22 -30
  36. package/lib/recipes/po/box/cedex/recipe.ts +8 -5
  37. package/lib/recipes/po/box/cedex/sources.ts +2 -23
  38. package/lib/recipes/scaffold.ts +28 -3
  39. package/lib/recipes/sources.ts +112 -1
  40. package/lib/recipes/street/affix.ts +17 -29
  41. package/lib/recipes/sub/venue/context.ts +33 -9
  42. package/lib/recipes/sub/venue/sources.ts +54 -13
  43. package/lib/recipes/sub/venue.ts +68 -23
  44. package/lib/recipes/unit.ts +20 -7
  45. package/lib/registers.ts +33 -0
  46. package/lib/source-register/corpus-inputs.ts +528 -0
  47. package/lib/source-register/effective-manifest.ts +37 -5
  48. package/lib/source-register/types.ts +20 -0
  49. package/lib/south-asia/recipes/register.ts +1 -1
  50. package/lib/tools/overlay/manifest.ts +109 -1
  51. package/lib/tools/source-register/build.ts +47 -1
  52. package/lib/tools/variety-sample.ts +633 -0
  53. package/lib/us/adapters/usgov/nad/adapter.ts +39 -10
  54. package/lib/us/recipes/skeleton-sources.ts +156 -0
  55. package/lib/us/tools/nad-skeletons.ts +395 -0
  56. package/lib/uy/adapters/ide/adapter.ts +275 -0
  57. package/lib/ve/recipes/reviewed-postcode-tail.ts +29 -6
  58. package/out/adapters/cordis/adapter.d.ts +1 -1
  59. package/out/adapters/cordis/adapter.js +1 -1
  60. package/out/adapters/libpostal-dictionary.d.ts +9 -0
  61. package/out/adapters/libpostal-dictionary.d.ts.map +1 -1
  62. package/out/adapters/libpostal-dictionary.js +19 -3
  63. package/out/adapters/libpostal-dictionary.js.map +1 -1
  64. package/out/adapters/osm/adapter.d.ts +12 -1
  65. package/out/adapters/osm/adapter.d.ts.map +1 -1
  66. package/out/adapters/osm/adapter.js +30 -13
  67. package/out/adapters/osm/adapter.js.map +1 -1
  68. package/out/adapters.d.ts.map +1 -1
  69. package/out/adapters.js +14 -0
  70. package/out/adapters.js.map +1 -1
  71. package/out/az/adapters/opendata/adapter.d.ts +88 -0
  72. package/out/az/adapters/opendata/adapter.d.ts.map +1 -0
  73. package/out/az/adapters/opendata/adapter.js +282 -0
  74. package/out/az/adapters/opendata/adapter.js.map +1 -0
  75. package/out/bs/adapters/gbpa/adapter.d.ts +64 -0
  76. package/out/bs/adapters/gbpa/adapter.d.ts.map +1 -0
  77. package/out/bs/adapters/gbpa/adapter.js +187 -0
  78. package/out/bs/adapters/gbpa/adapter.js.map +1 -0
  79. package/out/build/types.d.ts +15 -0
  80. package/out/build/types.d.ts.map +1 -1
  81. package/out/build/types.js.map +1 -1
  82. package/out/build.d.ts.map +1 -1
  83. package/out/build.js +17 -0
  84. package/out/build.js.map +1 -1
  85. package/out/ee/adapters/ads/adapter.d.ts +6 -0
  86. package/out/ee/adapters/ads/adapter.d.ts.map +1 -1
  87. package/out/ee/adapters/ads/adapter.js +16 -0
  88. package/out/ee/adapters/ads/adapter.js.map +1 -1
  89. package/out/fo/adapters/adressur/adapter.d.ts +63 -0
  90. package/out/fo/adapters/adressur/adapter.d.ts.map +1 -0
  91. package/out/fo/adapters/adressur/adapter.js +177 -0
  92. package/out/fo/adapters/adressur/adapter.js.map +1 -0
  93. package/out/gb/adapters/os-open/adapter.d.ts +8 -0
  94. package/out/gb/adapters/os-open/adapter.d.ts.map +1 -1
  95. package/out/gb/adapters/os-open/adapter.js +11 -0
  96. package/out/gb/adapters/os-open/adapter.js.map +1 -1
  97. package/out/gb/county.d.ts +30 -0
  98. package/out/gb/county.d.ts.map +1 -0
  99. package/out/gb/county.js +51 -0
  100. package/out/gb/county.js.map +1 -0
  101. package/out/gb/os-open/open/names.d.ts +17 -0
  102. package/out/gb/os-open/open/names.d.ts.map +1 -1
  103. package/out/gb/os-open/open/names.js +19 -0
  104. package/out/gb/os-open/open/names.js.map +1 -1
  105. package/out/gu/adapters/bsp/adapter.d.ts +83 -0
  106. package/out/gu/adapters/bsp/adapter.d.ts.map +1 -0
  107. package/out/gu/adapters/bsp/adapter.js +346 -0
  108. package/out/gu/adapters/bsp/adapter.js.map +1 -0
  109. package/out/im/adapters/land-registry/adapter.d.ts +68 -0
  110. package/out/im/adapters/land-registry/adapter.d.ts.map +1 -0
  111. package/out/im/adapters/land-registry/adapter.js +261 -0
  112. package/out/im/adapters/land-registry/adapter.js.map +1 -0
  113. package/out/international/recipes/locale.d.ts +24 -4
  114. package/out/international/recipes/locale.d.ts.map +1 -1
  115. package/out/international/recipes/locale.js +107 -15
  116. package/out/international/recipes/locale.js.map +1 -1
  117. package/out/li/adapters/llv/adapter.d.ts +69 -0
  118. package/out/li/adapters/llv/adapter.d.ts.map +1 -0
  119. package/out/li/adapters/llv/adapter.js +181 -0
  120. package/out/li/adapters/llv/adapter.js.map +1 -0
  121. package/out/recipes/bare/postcode.d.ts.map +1 -1
  122. package/out/recipes/bare/postcode.js +9 -30
  123. package/out/recipes/bare/postcode.js.map +1 -1
  124. package/out/recipes/country-balanced.d.ts.map +1 -1
  125. package/out/recipes/country-balanced.js +82 -73
  126. package/out/recipes/country-balanced.js.map +1 -1
  127. package/out/recipes/intersection.d.ts +3 -2
  128. package/out/recipes/intersection.d.ts.map +1 -1
  129. package/out/recipes/intersection.js +20 -26
  130. package/out/recipes/intersection.js.map +1 -1
  131. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -1
  132. package/out/recipes/po/box/cedex/recipe.js +5 -4
  133. package/out/recipes/po/box/cedex/recipe.js.map +1 -1
  134. package/out/recipes/po/box/cedex/sources.d.ts +2 -45
  135. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -1
  136. package/out/recipes/po/box/cedex/sources.js +0 -20
  137. package/out/recipes/po/box/cedex/sources.js.map +1 -1
  138. package/out/recipes/scaffold.d.ts +15 -2
  139. package/out/recipes/scaffold.d.ts.map +1 -1
  140. package/out/recipes/scaffold.js +21 -1
  141. package/out/recipes/scaffold.js.map +1 -1
  142. package/out/recipes/sources.d.ts.map +1 -1
  143. package/out/recipes/sources.js +112 -1
  144. package/out/recipes/sources.js.map +1 -1
  145. package/out/recipes/street/affix.d.ts.map +1 -1
  146. package/out/recipes/street/affix.js +8 -20
  147. package/out/recipes/street/affix.js.map +1 -1
  148. package/out/recipes/sub/venue/context.d.ts +14 -3
  149. package/out/recipes/sub/venue/context.d.ts.map +1 -1
  150. package/out/recipes/sub/venue/context.js +29 -9
  151. package/out/recipes/sub/venue/context.js.map +1 -1
  152. package/out/recipes/sub/venue/sources.d.ts +41 -8
  153. package/out/recipes/sub/venue/sources.d.ts.map +1 -1
  154. package/out/recipes/sub/venue/sources.js +26 -7
  155. package/out/recipes/sub/venue/sources.js.map +1 -1
  156. package/out/recipes/sub/venue.d.ts.map +1 -1
  157. package/out/recipes/sub/venue.js +35 -14
  158. package/out/recipes/sub/venue.js.map +1 -1
  159. package/out/recipes/unit.d.ts +4 -0
  160. package/out/recipes/unit.d.ts.map +1 -1
  161. package/out/recipes/unit.js +7 -6
  162. package/out/recipes/unit.js.map +1 -1
  163. package/out/registers.d.ts +33 -0
  164. package/out/registers.d.ts.map +1 -1
  165. package/out/registers.js +33 -0
  166. package/out/registers.js.map +1 -1
  167. package/out/source-register/corpus-inputs.d.ts +240 -0
  168. package/out/source-register/corpus-inputs.d.ts.map +1 -0
  169. package/out/source-register/corpus-inputs.js +275 -0
  170. package/out/source-register/corpus-inputs.js.map +1 -0
  171. package/out/source-register/effective-manifest.d.ts +2 -0
  172. package/out/source-register/effective-manifest.d.ts.map +1 -1
  173. package/out/source-register/effective-manifest.js +33 -4
  174. package/out/source-register/effective-manifest.js.map +1 -1
  175. package/out/source-register/types.d.ts +21 -1
  176. package/out/source-register/types.d.ts.map +1 -1
  177. package/out/source-register/types.js +20 -0
  178. package/out/source-register/types.js.map +1 -1
  179. package/out/south-asia/recipes/register.js +1 -1
  180. package/out/south-asia/recipes/register.js.map +1 -1
  181. package/out/tools/overlay/manifest.d.ts +7 -0
  182. package/out/tools/overlay/manifest.d.ts.map +1 -1
  183. package/out/tools/overlay/manifest.js +72 -1
  184. package/out/tools/overlay/manifest.js.map +1 -1
  185. package/out/tools/source-register/build.d.ts +9 -0
  186. package/out/tools/source-register/build.d.ts.map +1 -1
  187. package/out/tools/source-register/build.js +25 -3
  188. package/out/tools/source-register/build.js.map +1 -1
  189. package/out/tools/variety-sample.d.ts +196 -0
  190. package/out/tools/variety-sample.d.ts.map +1 -0
  191. package/out/tools/variety-sample.js +417 -0
  192. package/out/tools/variety-sample.js.map +1 -0
  193. package/out/us/adapters/usgov/nad/adapter.d.ts +80 -0
  194. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -1
  195. package/out/us/adapters/usgov/nad/adapter.js +27 -8
  196. package/out/us/adapters/usgov/nad/adapter.js.map +1 -1
  197. package/out/us/recipes/skeleton-sources.d.ts +92 -0
  198. package/out/us/recipes/skeleton-sources.d.ts.map +1 -0
  199. package/out/us/recipes/skeleton-sources.js +121 -0
  200. package/out/us/recipes/skeleton-sources.js.map +1 -0
  201. package/out/us/tools/nad-skeletons.d.ts +120 -0
  202. package/out/us/tools/nad-skeletons.d.ts.map +1 -0
  203. package/out/us/tools/nad-skeletons.js +262 -0
  204. package/out/us/tools/nad-skeletons.js.map +1 -0
  205. package/out/uy/adapters/ide/adapter.d.ts +64 -0
  206. package/out/uy/adapters/ide/adapter.d.ts.map +1 -0
  207. package/out/uy/adapters/ide/adapter.js +206 -0
  208. package/out/uy/adapters/ide/adapter.js.map +1 -0
  209. package/out/ve/recipes/reviewed-postcode-tail.d.ts +6 -2
  210. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -1
  211. package/out/ve/recipes/reviewed-postcode-tail.js +16 -5
  212. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -1
  213. package/package.json +14 -14
  214. package/lib/recipes/unit/sources.ts +0 -44
  215. package/lib/tools/fetch/ppd.ts +0 -121
  216. package/out/recipes/unit/sources.d.ts +0 -28
  217. package/out/recipes/unit/sources.d.ts.map +0 -1
  218. package/out/recipes/unit/sources.js +0 -30
  219. package/out/recipes/unit/sources.js.map +0 -1
  220. package/out/tools/fetch/ppd.d.ts +0 -15
  221. package/out/tools/fetch/ppd.d.ts.map +0 -1
  222. package/out/tools/fetch/ppd.js +0 -86
  223. package/out/tools/fetch/ppd.js.map +0 -1
@@ -0,0 +1,177 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `adressur-fo`: the Faroese national address register, `Adressur`, which Umhvørvisstovan (the Faroese
7
+ * Environment Agency) serves as the ArcGIS MapServer layer `adressur/us_adr_husanr/MapServer/0` on
8
+ * `gis.us.fo`.
9
+ *
10
+ * Input is the layer queried whole as GeoJSON (`query?where=1=1&outFields=*&f=geojson&outSR=4326`), one
11
+ * FeatureCollection, or a directory of such page files read in name order. Each feature's `properties`
12
+ * hold the register's columns. The register states no absent value as a sentinel: `house_letter` is the
13
+ * empty string when a number has no letter, and every row carries a street, since Faroese villages name
14
+ * their lanes and paths too (`Heimi í Húsi`, `Suðuri á Bø`).
15
+ *
16
+ * The adapter reads `street_name` as the street, `house_digit` with `house_letter` as the house number
17
+ * (their concatenation equals the register's own `house_no` on every row), `zip` as the postcode and
18
+ * `city` as the postal locality. Two postal localities carry a comma that disambiguates them,
19
+ * `Nes, Eysturoy` and `Syðradalur, Kalsoy`, and the adapter keeps them as the register spells them.
20
+ * `municipality` is left out, because the FO layout prints no region.
21
+ *
22
+ * Umhvørvisstovan grants anyone a free, worldwide right to copy, distribute, publish, modify and combine
23
+ * the data, for commercial and non-commercial use, on condition that the source is credited as
24
+ * `Data from the Faroese Environment Agency, Umhvørvisstovan: Adressur, <date>` and the terms are made
25
+ * available to third parties. Every row records those terms.
26
+ */
27
+ import { formatAddressRow } from "@mailwoman/codex/address/format";
28
+ import { matchCountryPostcode } from "@mailwoman/codex/postcode/country-formats";
29
+ import { readLocalTextFile } from "@mailwoman/core/fs/readers";
30
+ import { tryStat } from "@mailwoman/core/fs/readers/stat";
31
+ import { parseJSONStrict } from "@mailwoman/core/json";
32
+ import { resolvePath } from "path-ts";
33
+ import { Globerator } from "spliterator/node/fs";
34
+ import { UnsupportedCountryError } from "#adapters/errors";
35
+ import { stableSourceIDFromParts } from "#adapters/source-id";
36
+ import { composeHouseNumber } from "#adapters/street-line";
37
+ import { SourceRegister } from "#registers";
38
+ import { AddressRole, countDropped, SurfaceOrigin, } from "#types";
39
+ /**
40
+ * Registry id for this adapter, stamped into every row it emits.
41
+ */
42
+ export const ADRESSUR_FO_ADAPTER_ID = "adressur-fo";
43
+ /**
44
+ * Umhvørvisstovan's `Brúksrættur og treytir` (June 2019).
45
+ * They have no SPDX identifier.
46
+ */
47
+ export const ADRESSUR_FO_LICENSE = "LicenseRef-FO-Umhvorvisstovan-Brukstreytir";
48
+ /**
49
+ * Every jurisdiction this adapter emits, checked against a caller's `--country`.
50
+ */
51
+ export const ADRESSUR_FO_COUNTRIES = ["FO"];
52
+ function present(value) {
53
+ if (value == null)
54
+ return null;
55
+ const trimmed = String(value).trim();
56
+ return trimmed || null;
57
+ }
58
+ /**
59
+ * Maps one record onto the components the corpus asserts, or returns null when the row is refused.
60
+ *
61
+ * Each refusal increments its reason in `dropped`.
62
+ */
63
+ export function componentsForAdressurRecord(record, dropped) {
64
+ const tally = dropped ?? {};
65
+ const street = present(record.street_name);
66
+ if (!street) {
67
+ countDropped(tally, "row:no-street");
68
+ return null;
69
+ }
70
+ const number = composeHouseNumber(present(record.house_digit) ?? "", present(record.house_letter) ?? "");
71
+ if (!number) {
72
+ countDropped(tally, "row:no-house-number");
73
+ return null;
74
+ }
75
+ const components = {
76
+ street,
77
+ house_number: number,
78
+ };
79
+ const postcode = present(record.zip);
80
+ const matched = postcode ? matchCountryPostcode(postcode, "FO") : null;
81
+ if (matched) {
82
+ components.postcode = matched;
83
+ }
84
+ else if (postcode) {
85
+ countDropped(tally, "component:postcode:not-country-format");
86
+ }
87
+ const locality = present(record.city);
88
+ if (locality) {
89
+ components.locality = locality;
90
+ }
91
+ if (!components.locality && !components.postcode) {
92
+ countDropped(tally, "row:no-locality-or-postcode");
93
+ return null;
94
+ }
95
+ return components;
96
+ }
97
+ /**
98
+ * The GeoJSON files an input names: the file itself, or every `.geojson` in a directory, in name order.
99
+ */
100
+ async function pageFiles(inputPath) {
101
+ const stat = await tryStat(inputPath);
102
+ if (!stat?.isDirectory())
103
+ return [inputPath];
104
+ const names = await Globerator.from("*.geojson", {
105
+ cwd: inputPath,
106
+ absolute: false,
107
+ }).toSorted();
108
+ return names.map((name) => `${inputPath}/${name}`);
109
+ }
110
+ export function createAdressurFaroeAdapter() {
111
+ return {
112
+ id: ADRESSUR_FO_ADAPTER_ID,
113
+ defaultLicense: ADRESSUR_FO_LICENSE,
114
+ addressRole: AddressRole.Premise,
115
+ register: SourceRegister.FaroeAdressur,
116
+ surface: SurfaceOrigin.Rendered,
117
+ description: "Adressur (Umhvørvisstovan): the national address register of the Faroe Islands.",
118
+ async *rows(opts) {
119
+ if (opts.country && !ADRESSUR_FO_COUNTRIES.includes(opts.country)) {
120
+ throw new UnsupportedCountryError(ADRESSUR_FO_ADAPTER_ID, ADRESSUR_FO_COUNTRIES, opts.country);
121
+ }
122
+ let emitted = 0;
123
+ for (const file of await pageFiles(resolvePath(opts.inputPath))) {
124
+ // The whole layer is one 20 MB response, so each page is parsed whole.
125
+ const collection = parseJSONStrict(await readLocalTextFile(file));
126
+ if (!Array.isArray(collection.features)) {
127
+ throw new TypeError(`${ADRESSUR_FO_ADAPTER_ID} adapter: ${file} holds no GeoJSON features array`);
128
+ }
129
+ for (const feature of collection.features) {
130
+ if (opts.signal?.aborted)
131
+ return;
132
+ if (opts.limit !== undefined && emitted >= opts.limit)
133
+ return;
134
+ const record = feature.properties;
135
+ if (!record) {
136
+ countDropped(opts, "row:no-properties");
137
+ continue;
138
+ }
139
+ const components = componentsForAdressurRecord(record, opts);
140
+ if (!components)
141
+ continue;
142
+ const rendered = formatAddressRow(components, "FO", {
143
+ singleLine: true,
144
+ });
145
+ if (!rendered) {
146
+ countDropped(opts, "row:render-failed");
147
+ continue;
148
+ }
149
+ for (const tag of rendered.unplaced) {
150
+ countDropped(opts, `component:${tag}:not-rendered`);
151
+ }
152
+ const { raw, components: aligned } = rendered;
153
+ yield {
154
+ raw,
155
+ components: aligned,
156
+ country: "FO",
157
+ locale: "fo-FO",
158
+ source: ADRESSUR_FO_ADAPTER_ID,
159
+ // `address_id` is the register's own identifier, unique per feature.
160
+ source_id: stableSourceIDFromParts(ADRESSUR_FO_ADAPTER_ID, {
161
+ ...aligned,
162
+ address_id: present(record.address_id) ?? "",
163
+ }),
164
+ corpus_version: "",
165
+ license: ADRESSUR_FO_LICENSE,
166
+ };
167
+ emitted++;
168
+ }
169
+ }
170
+ },
171
+ };
172
+ }
173
+ /**
174
+ * The configured adapter instance registered with the corpus builder.
175
+ */
176
+ export const adressurFaroeAdapter = createAdressurFaroeAdapter();
177
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/fo/adapters/adressur/adapter.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,14 @@ export declare const GB_OS_OPEN_PRODUCT_DIRECTORIES: {
62
62
  readonly openNames: "open-names";
63
63
  readonly openRoads: "open-roads";
64
64
  };
65
+ /**
66
+ * The rows `mailwoman corpus run gb-os-open --out $MAILWOMAN_DATA_ROOT/corpus/staging/gb-os-open` writes.
67
+ *
68
+ * The `locale` recipe's GB part and corpus-python's `countries/gb/tuples.py` read
69
+ * their Great Britain address skeletons from this file.
70
+ * The Python reader spells the same path parts.
71
+ */
72
+ export declare function gbOSOpenCanonicalRowsPath(): PathBuilder;
65
73
  /**
66
74
  * The bands the drawn house number comes from.
67
75
  *
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/gb/adapters/os-open/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AASH,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAM3D,OAAO,EACN,wBAAwB,EAIxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAsB,MAAM,wBAAwB,CAAA;AAErF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAuD,KAAK,aAAa,EAAiB,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAW,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,8BAA8B;aAC1C,aAAa,EAAE,iBAAiB;aAChC,SAAS,EAAE,YAAY;aACvB,SAAS,EAAE,YAAY;CACd,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,gBAAgB,EAIpE,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAA;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE;QACR;;WAEG;QACH,YAAY,EAAE,MAAM,CAAA;QACpB;;WAEG;QACH,gBAAgB,EAAE,MAAM,CAAA;QACxB;;WAEG;QACH,kBAAkB,EAAE,MAAM,CAAA;QAC1B;;WAEG;QACH,cAAc,EAAE,MAAM,CAAA;QACtB;;WAEG;QACH,gBAAgB,EAAE,MAAM,CAAA;KACxB,CAAA;IACD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAClD,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;CAC9C;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,8BAA8B,EAAE,WAAW,CAAC,CAAC,CAkB3E;AAiBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI1D;AAqBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAoMzF;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,eAA0B,CAAA"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/gb/adapters/os-open/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAUH,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAM3D,OAAO,EACN,wBAAwB,EAIxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAsB,MAAM,wBAAwB,CAAA;AAErF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAuD,KAAK,aAAa,EAAiB,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAW,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,8BAA8B;aAC1C,aAAa,EAAE,iBAAiB;aAChC,SAAS,EAAE,YAAY;aACvB,SAAS,EAAE,YAAY;CACd,CAAA;AAEV;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAEvD;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,gBAAgB,EAIpE,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAA;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE;QACR;;WAEG;QACH,YAAY,EAAE,MAAM,CAAA;QACpB;;WAEG;QACH,gBAAgB,EAAE,MAAM,CAAA;QACxB;;WAEG;QACH,kBAAkB,EAAE,MAAM,CAAA;QAC1B;;WAEG;QACH,cAAc,EAAE,MAAM,CAAA;QACtB;;WAEG;QACH,gBAAgB,EAAE,MAAM,CAAA;KACxB,CAAA;IACD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAClD,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;CAC9C;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,8BAA8B,EAAE,WAAW,CAAC,CAAC,CAkB3E;AAiBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI1D;AAqBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAoMzF;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,eAA0B,CAAA"}
@@ -32,6 +32,7 @@
32
32
  import { formatAddressRow } from "@mailwoman/codex/address/format";
33
33
  import { titleCaseGB } from "@mailwoman/codex/gb/place-name";
34
34
  import { outwardCode } from "@mailwoman/codex/gb/postcode";
35
+ import { dataRootPath } from "@mailwoman/core/data-root";
35
36
  import { pathExists } from "@mailwoman/core/fs/readers/stat";
36
37
  import { stringifyJSON } from "@mailwoman/core/json";
37
38
  import { mulberry32 } from "@mailwoman/core/random";
@@ -74,6 +75,16 @@ export const GB_OS_OPEN_PRODUCT_DIRECTORIES = {
74
75
  openNames: "open-names",
75
76
  openRoads: "open-roads",
76
77
  };
78
+ /**
79
+ * The rows `mailwoman corpus run gb-os-open --out $MAILWOMAN_DATA_ROOT/corpus/staging/gb-os-open` writes.
80
+ *
81
+ * The `locale` recipe's GB part and corpus-python's `countries/gb/tuples.py` read
82
+ * their Great Britain address skeletons from this file.
83
+ * The Python reader spells the same path parts.
84
+ */
85
+ export function gbOSOpenCanonicalRowsPath() {
86
+ return dataRootPath("corpus", "staging", GB_OS_OPEN_ADAPTER_ID, GB_OS_OPEN_ADAPTER_ID, "canonical.jsonl");
87
+ }
77
88
  /**
78
89
  * The bands the drawn house number comes from.
79
90
  *
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/gb/adapters/os-open/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../lib/gb/adapters/os-open/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAChH,OAAO,EAAE,WAAW,EAAwB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EACN,wBAAwB,EAExB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAyB,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,WAAW,EAA8D,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE/G;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAA;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB,CAAC,IAAI,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC7C,aAAa,EAAE,iBAAiB;IAChC,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;CACd,CAAA;AAEV;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB;IACxC,OAAO,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAA;AAC1G,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAgC;IACzE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACrC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;CACxB,CAAA;AA8ED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,SAA0B;IAE1B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAExC,MAAM,KAAK,GAAG;QACb,aAAa,EAAE,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC;QACjE,SAAS,EAAE,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC;QACzD,SAAS,EAAE,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC;KACzD,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACd,GAAG,qBAAqB,aAAa,IAAI,CAAC,QAAQ,EAAE,mCAAmC,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CACnJ,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CAAC,SAAsB,EAAE,OAAe;IAClE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEvG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,qBAAqB,aAAa,SAAS,CAAC,QAAQ,EAAE,2BAA2B,OAAO,EAAE,CAAC,CAAA;IAC/G,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpD,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAA;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAa;IAChC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;IAEtE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;AACxD,CAAC;AASD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAO,GAA2B,EAAE;IACzE,OAAO;QACN,EAAE,EAAE,qBAAqB;QACzB,cAAc,EAAE,kBAAkB;QAClC,WAAW,EAAE,WAAW,CAAC,OAAO;QAChC,QAAQ,EAAE,cAAc,CAAC,sBAAsB;QAC/C,OAAO,EAAE,aAAa,CAAC,QAAQ;QAC/B,WAAW,EACV,0IAA0I;QAE3I,KAAK,CAAC,CAAC,IAAI,CAAC,IAAoB;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YAC7F,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACxD,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;YAChF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACjE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAEnE,MAAM,OAAO,GAAoB;gBAChC,aAAa,EAAE,CAAC;gBAChB,kBAAkB,EAAE,CAAC;gBACrB,GAAG,EAAE,EAAE;gBACP,uBAAuB,EAAE,CAAC;gBAC1B,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACR,YAAY,EAAE,CAAC;oBACf,gBAAgB,EAAE,CAAC;oBACnB,kBAAkB,EAAE,CAAC;oBACrB,cAAc,EAAE,CAAC;oBACjB,gBAAgB,EAAE,CAAC;iBACnB;gBACD,OAAO,EAAE,CAAC;gBACV,iBAAiB,EAAE,CAAC;gBACpB,UAAU,EAAE,CAAC;gBACb,iBAAiB,EAAE,CAAC;gBACpB,KAAK,EAAE,wBAAwB,EAAE;gBACjC,KAAK,EAAE,wBAAwB,EAAE;aACjC,CAAA;YAED,8FAA8F;YAC9F,MAAM,cAAc,GAAG,yBAAyB,EAAE,CAAA;YAClD,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,MAAM,EAAE,GAAa,EAAE,CAAA;YACvB,MAAM,EAAE,GAAa,EAAE,CAAA;YACvB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;YAE7C,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBACnC,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;oBACnE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC/B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBACvB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAExB,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAA;oBAElD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBACrD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBACrE,CAAC;YACF,CAAC;YAED,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,IAAI,CAAA;YAC3C,OAAO,CAAC,kBAAkB,GAAG,cAAc,CAAC,gBAAgB,CAAA;YAC5D,OAAO,CAAC,OAAO,CAAC,YAAY,GAAG,cAAc,CAAC,mBAAmB,CAAA;YACjE,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,MAAM,CAAA;YAElD,IAAI,cAAc,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC,mBAAmB,CAAA;YACpE,CAAC;YAED,+DAA+D;YAC/D,MAAM,IAAI,GAAG,IAAI,eAAe,CAC/B,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EACxD,wBAAwB,CACxB,CAAA;YAED,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;oBAC3F,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC/D,CAAC;YACF,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;YAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAE3B,IAAI,CAAC,KAAK;oBAAE,SAAQ;gBAEpB,OAAO,CAAC,MAAM,EAAE,CAAA;gBAChB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACpC,CAAC;YAED,6CAA6C;YAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAA;YAE9C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC1E,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBACzB,CAAC;YACF,CAAC;YAED,IAAI,CAAC;gBACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;wBAAE,MAAK;oBAE/B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK;wBAAE,MAAK;oBAEpE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAA;oBAE9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAA;wBAElC,SAAQ;oBACT,CAAC;oBAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAE3B,IAAI,CAAC,KAAK,EAAE,CAAC;wBACZ,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAA;wBAEpC,SAAQ;oBACT,CAAC;oBAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;wBAEhC,SAAQ;oBACT,CAAC;oBAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAA;wBAElC,SAAQ;oBACT,CAAC;oBAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;oBAEzD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,qBAAqB,EAAE;wBAC/D,QAAQ;wBACR,YAAY,EAAE,IAAI,CAAC,EAAE;qBACrB,CAAC,CAAA;oBAEF,MAAM,UAAU,GAA+B;wBAC9C,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC;wBACzC,MAAM;qBACN,CAAA;oBAED,IAAI,QAAQ,EAAE,CAAC;wBACd,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;oBAC/B,CAAC;oBAED,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;oBAE9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;oBAEzE,IAAI,CAAC,QAAQ;wBAAE,SAAQ;oBAEvB,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,CAAC,iBAAiB,EAAE,CAAA;oBAC5B,CAAC;oBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACf,OAAO,CAAC,UAAU,EAAE,CAAA;oBACrB,CAAC;oBAED,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzC,OAAO,CAAC,iBAAiB,EAAE,CAAA;oBAC5B,CAAC;oBAED,MAAM;wBACL,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,qBAAqB;wBAC7B,SAAS,EAAE,QAAQ;wBACnB,cAAc,EAAE,EAAE;wBAClB,OAAO,EAAE,kBAAkB;qBAC3B,CAAA;oBAED,OAAO,CAAC,OAAO,EAAE,CAAA;gBAClB,CAAC;YACF,CAAC;oBAAS,CAAC;gBACV,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;gBAE5B,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,KAAK,qBAAqB,KAAK,OAAO,CAAC,OAAO,eAAe,OAAO,CAAC,aAAa,oBAAoB;oBACrG,WAAW,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAC9C,CAAA;YACF,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * The county or unitary authority of a GB postcode, read from the unit-postcode entries of OS Open Names.
7
+ *
8
+ * A GB address commonly ends its locality with a county, as in `King's Lynn, Norfolk` or
9
+ * `38 High Street, Maidstone, Kent ME14 1JH`. The rows a corpus renders from `gb-os-open` take their
10
+ * region from {@link openConstituentCountryReader}, which answers England, Scotland or Wales, so a model
11
+ * trained on them alone sees no county in the region position and reads `Norfolk` as a locality.
12
+ * OS Open Names publishes one entry per unit postcode with its `COUNTY_UNITARY`, under the same
13
+ * Open Government Licence as the other two products the adapter reads.
14
+ */
15
+ import { PathBuilder, type PathBuilderLike } from "path-ts";
16
+ /**
17
+ * The Open Names product the `gb-os-open` fetch writes under the data root.
18
+ */
19
+ export declare function gbOpenNamesDirectory(): PathBuilder;
20
+ /**
21
+ * Reads every unit postcode of OS Open Names and returns a map from the postcode
22
+ * to its county or unitary authority.
23
+ *
24
+ * A postcode whose entry names no county is left out of the map.
25
+ *
26
+ * @throws When the directory holds no `Data/*.csv`, so a missing product reports itself
27
+ * rather than reading as a map with no county.
28
+ */
29
+ export declare function readCountyOfPostcode(openNamesDirectory?: PathBuilderLike): Promise<Map<string, string>>;
30
+ //# sourceMappingURL=county.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"county.d.ts","sourceRoot":"","sources":["../../lib/gb/county.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAM3D;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACzC,kBAAkB,GAAE,eAAwC,GAC1D,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkB9B"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * The county or unitary authority of a GB postcode, read from the unit-postcode entries of OS Open Names.
7
+ *
8
+ * A GB address commonly ends its locality with a county, as in `King's Lynn, Norfolk` or
9
+ * `38 High Street, Maidstone, Kent ME14 1JH`. The rows a corpus renders from `gb-os-open` take their
10
+ * region from {@link openConstituentCountryReader}, which answers England, Scotland or Wales, so a model
11
+ * trained on them alone sees no county in the region position and reads `Norfolk` as a locality.
12
+ * OS Open Names publishes one entry per unit postcode with its `COUNTY_UNITARY`, under the same
13
+ * Open Government Licence as the other two products the adapter reads.
14
+ */
15
+ import { dataRootPath } from "@mailwoman/core/data-root";
16
+ import { PathBuilder } from "path-ts";
17
+ import { Globerator } from "spliterator/node/fs";
18
+ import { GB_OS_OPEN_ADAPTER_ID, GB_OS_OPEN_PRODUCT_DIRECTORIES } from "#gb/adapters/os-open/adapter";
19
+ import { createOpenNamesReadStats, readOpenNamesPostcodeCounties } from "#gb/os-open/open/names";
20
+ /**
21
+ * The Open Names product the `gb-os-open` fetch writes under the data root.
22
+ */
23
+ export function gbOpenNamesDirectory() {
24
+ return dataRootPath("corpus", "sources", GB_OS_OPEN_ADAPTER_ID, GB_OS_OPEN_PRODUCT_DIRECTORIES.openNames);
25
+ }
26
+ /**
27
+ * Reads every unit postcode of OS Open Names and returns a map from the postcode
28
+ * to its county or unitary authority.
29
+ *
30
+ * A postcode whose entry names no county is left out of the map.
31
+ *
32
+ * @throws When the directory holds no `Data/*.csv`, so a missing product reports itself
33
+ * rather than reading as a map with no county.
34
+ */
35
+ export async function readCountyOfPostcode(openNamesDirectory = gbOpenNamesDirectory()) {
36
+ const directory = PathBuilder.from(openNamesDirectory);
37
+ const files = await Globerator.from("Data/*.csv", { cwd: directory.toString(), absolute: false }).toSorted();
38
+ if (!files.length)
39
+ throw new Error(`${directory.toString()} holds no Data/*.csv`);
40
+ const stats = createOpenNamesReadStats();
41
+ const counties = new Map();
42
+ for (const file of files) {
43
+ for await (const entry of readOpenNamesPostcodeCounties(directory(file).toString(), stats)) {
44
+ if (entry.countyUnitary) {
45
+ counties.set(entry.postcode, entry.countyUnitary);
46
+ }
47
+ }
48
+ }
49
+ return counties;
50
+ }
51
+ //# sourceMappingURL=county.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"county.js","sourceRoot":"","sources":["../../lib/gb/county.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAwB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AACpG,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAEhG;;GAEG;AACH,MAAM,UAAU,oBAAoB;IACnC,OAAO,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,SAAS,CAAC,CAAA;AAC1G,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,kBAAkB,GAAoB,oBAAoB,EAAE;IAE5D,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE5G,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IAEjF,MAAM,KAAK,GAAG,wBAAwB,EAAE,CAAA;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,6BAA6B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5F,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;YAClD,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAA;AAChB,CAAC"}
@@ -83,6 +83,23 @@ export declare function createOpenNamesReadStats(): OpenNamesReadStats;
83
83
  * @param ids When given, only roads whose `ID` is in the set are yielded.
84
84
  */
85
85
  export declare function readOpenNamesRoads(csvPath: string, stats: OpenNamesReadStats, ids?: ReadonlySet<string>): AsyncGenerator<OpenNamesRoad>;
86
+ /**
87
+ * One unit postcode of OS Open Names with the county or unitary authority holding it.
88
+ */
89
+ export interface OpenNamesPostcodeCounty {
90
+ /**
91
+ * The postcode as OS writes it in `NAME1`, such as `ME14 1JH`.
92
+ */
93
+ postcode: string;
94
+ /**
95
+ * The `COUNTY_UNITARY` name, such as `Kent`, or an empty string where OS records none.
96
+ */
97
+ countyUnitary: string;
98
+ }
99
+ /**
100
+ * Streams the unit-postcode rows of one Open Names CSV with their county or unitary authority.
101
+ */
102
+ export declare function readOpenNamesPostcodeCounties(csvPath: string, stats: OpenNamesReadStats): AsyncGenerator<OpenNamesPostcodeCounty>;
86
103
  /**
87
104
  * The settlement's first-listed name from a `POPULATED_PLACE` value.
88
105
  *
@@ -1 +1 @@
1
- {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../../lib/gb/os-open/open/names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAC9B,IAAI,EACJ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,CACT,CAAA;AAOV;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAAoD,CAAA;AAE1G;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED;;;;GAIG;AACH,wBAAuB,kBAAkB,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kBAAkB,EACzB,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACvB,cAAc,CAAC,aAAa,CAAC,CAgC/B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAElE"}
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../../lib/gb/os-open/open/names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAC9B,IAAI,EACJ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,CACT,CAAA;AAOV;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAAoD,CAAA;AAE1G;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED;;;;GAIG;AACH,wBAAuB,kBAAkB,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kBAAkB,EACzB,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACvB,cAAc,CAAC,aAAa,CAAC,CAgC/B;AAOD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,wBAAuB,6BAA6B,CACnD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kBAAkB,GACvB,cAAc,CAAC,uBAAuB,CAAC,CAczC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAElE"}
@@ -96,6 +96,25 @@ export async function* readOpenNamesRoads(csvPath, stats, ids) {
96
96
  };
97
97
  }
98
98
  }
99
+ /**
100
+ * The `LOCAL_TYPE` of the one Open Names entry OS publishes for each unit postcode.
101
+ */
102
+ const OPEN_NAMES_POSTCODE_TYPE = "Postcode";
103
+ /**
104
+ * Streams the unit-postcode rows of one Open Names CSV with their county or unitary authority.
105
+ */
106
+ export async function* readOpenNamesPostcodeCounties(csvPath, stats) {
107
+ for await (const row of CSVSpliterator.fromAsync(csvPath, { header: false })) {
108
+ stats.read++;
109
+ if (row.length !== OPEN_NAMES_COLUMNS.length) {
110
+ stats.malformed++;
111
+ continue;
112
+ }
113
+ if (row[column.LOCAL_TYPE] !== OPEN_NAMES_POSTCODE_TYPE)
114
+ continue;
115
+ yield { postcode: row[column.NAME1].trim(), countyUnitary: row[column.COUNTY_UNITARY].trim() };
116
+ }
117
+ }
99
118
  /**
100
119
  * The settlement's first-listed name from a `POPULATED_PLACE` value.
101
120
  *
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../../../lib/gb/os-open/open/names.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../../../lib/gb/os-open/open/names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `bsp-gu`: the address points of Guam, which the Bureau of Statistics & Plans GIS publishes on the
7
+ * Government of Guam GISWEB Portal as the ArcGIS layer `Address_Point_(Public_View)`.
8
+ *
9
+ * The input is the layer's GeoJSON query pages, one file or a directory of them. The adapter reads
10
+ * `HOUSE_NUM` as the house number, `PRE_DIR` as the street prefix, `STREETNAME` as the street (or the
11
+ * assembled `FullRdNm` when `STREETNAME` is blank), `STR_TYPE` as the street suffix, `UNIT` as the unit
12
+ * and `CITY` (or `PLACENAME` when `CITY` is blank) as the locality. Route roads read `ROUTE 10` with the
13
+ * type `HWY`, which is how the layer's own `FullRdNm` writes them.
14
+ *
15
+ * The layer carries no postcode: its NG911 `Post_Code` column is blank on every feature.
16
+ *
17
+ * `HOUSE_NUM` sometimes pairs the number with a building-permit number (`120 / B19000483`); the number is
18
+ * kept and the permit dropped. `CITY` writes Guam's villages with Chamorro and English spellings
19
+ * (`HAGÅTÑA`, `HAGATNA`; `INARAJAN`, `INALAHAN`) and with typing slips (`BARRIGDAA`, `MANGIL.AO`), so a
20
+ * value is kept only when each of its parts is a village, or a community the villages contain,
21
+ * listed in {@link GUAM_PLACE_NAMES}. A road written `(OFF OF) ROUTE 4A HWY` locates a point near a road
22
+ * rather than on it, and a street naming two roads (`AGUILAR RD / RT 17`) states no single street, so both
23
+ * are refused.
24
+ *
25
+ * The layer states no license. Under the United States position in `packages/corpus/lib/us/AGENTS.md`
26
+ * (Feist), a US public body's address file published without terms restricting its use is elected,
27
+ * and the rows carry the label the US public-body adapters use.
28
+ */
29
+ import { type AdapterOptions, type CanonicalRow, type CorpusAdapter } from "#types";
30
+ /**
31
+ * Registry id for this adapter, stamped into every row it emits.
32
+ */
33
+ export declare const BSP_GU_ADAPTER_ID = "bsp-gu";
34
+ /**
35
+ * The label every row carries, matching the US public-body adapters elected under the Feist reading.
36
+ */
37
+ export declare const BSP_GU_LICENSE = "Public Domain";
38
+ /**
39
+ * Every jurisdiction this adapter emits, checked against a caller's `--country`.
40
+ */
41
+ export declare const BSP_GU_COUNTRIES: readonly string[];
42
+ /**
43
+ * The feature properties the adapter reads from the layer.
44
+ */
45
+ export interface GuamAddressPointRecord {
46
+ FID?: number | null;
47
+ HOUSE_NUM?: string | null;
48
+ PRE_DIR?: string | null;
49
+ STREETNAME?: string | null;
50
+ STR_TYPE?: string | null;
51
+ FullRdNm?: string | null;
52
+ UNIT?: string | null;
53
+ CITY?: string | null;
54
+ PLACENAME?: string | null;
55
+ }
56
+ /**
57
+ * Guam's nineteen villages under each name the layer writes for them,
58
+ * and the communities within a village that `CITY` names on its own
59
+ * (Tumon and Harmon in Tamuning, Ipan in Talofofo, Paasan in Agana Heights, Anigua in Hagåtña), folded.
60
+ */
61
+ export declare const GUAM_PLACE_NAMES: ReadonlySet<string>;
62
+ /**
63
+ * Whether every part of a place value, split at commas, slashes, hyphens and parentheses,
64
+ * is a listed place: `CHALAN PAGO - ORDOT` and `AGANA HEIGHTS (PAASAN)` are, `RADIO, BARRIGADA` is not.
65
+ */
66
+ export declare function isGuamPlaceName(value: string): boolean;
67
+ /**
68
+ * The house number `HOUSE_NUM` states, with a building-permit number written beside
69
+ * it removed, or null when the value is not a house number.
70
+ */
71
+ export declare function guamHouseNumber(value: string): string | null;
72
+ /**
73
+ * Maps one record onto the components the corpus asserts, or returns null when the row is refused.
74
+ *
75
+ * Each refusal and each dropped component increments its reason in `dropped`.
76
+ */
77
+ export declare function componentsForGuamRecord(record: GuamAddressPointRecord, dropped?: Pick<AdapterOptions, "dropped">): CanonicalRow["components"] | null;
78
+ export declare function createGuamAddressPointsAdapter(): CorpusAdapter;
79
+ /**
80
+ * The configured adapter instance registered with the corpus builder.
81
+ */
82
+ export declare const guamAddressPointsAdapter: CorpusAdapter;
83
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../lib/gu/adapters/bsp/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAaH,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAGlB,MAAM,QAAQ,CAAA;AAEf;;GAEG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAAW,CAAA;AAEzD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AA0BD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAuC/C,CAAA;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOtD;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5D;AAkCD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GACvC,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI,CAmGnC;AAeD,wBAAgB,8BAA8B,IAAI,aAAa,CAgF9D;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,eAAmC,CAAA"}