@mailwoman/tiger 9.2.0 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{block-group.ts → lib/block-group.ts} +4 -4
- package/{class-code.ts → lib/class-code.ts} +1 -1
- package/{constants.ts → lib/constants.ts} +5 -5
- package/{county-subdivision.ts → lib/county-subdivision.ts} +4 -4
- package/{county.ts → lib/county.ts} +4 -4
- package/{files.ts → lib/files.ts} +1 -1
- package/{geoid.ts → lib/geoid.ts} +3 -4
- package/lib/index.ts +18 -0
- package/{sdk → lib/sdk}/download.ts +6 -8
- package/{sdk → lib/sdk}/fetch.ts +28 -53
- package/lib/sdk/index.ts +10 -0
- package/{sdk → lib/sdk}/redistricting.ts +91 -16
- package/{sdk → lib/sdk}/schema.ts +36 -0
- package/{sdk → lib/sdk}/state/block-operations.ts +1 -1
- package/lib/sdk/state/index.ts +9 -0
- package/{state.ts → lib/state.ts} +2 -2
- package/{tabulation-block.ts → lib/tabulation-block.ts} +2 -2
- package/{tools → lib/tools}/index.ts +3 -3
- package/{tools → lib/tools}/race-dots-map.ts +4 -5
- package/{tools → lib/tools}/race-dots.ts +7 -8
- package/{tools → lib/tools}/serve-range.ts +18 -12
- package/{tract.ts → lib/tract.ts} +2 -2
- package/out/block-group.d.ts +4 -4
- package/out/block-group.d.ts.map +1 -1
- package/out/block-group.js.map +1 -1
- package/out/class-code.d.ts +1 -1
- package/out/class-code.d.ts.map +1 -1
- package/out/class-code.js +1 -1
- package/out/class-code.js.map +1 -1
- package/out/constants.d.ts +5 -5
- package/out/constants.d.ts.map +1 -1
- package/out/constants.js.map +1 -1
- package/out/county-subdivision.d.ts +4 -4
- package/out/county-subdivision.d.ts.map +1 -1
- package/out/county-subdivision.js.map +1 -1
- package/out/county.d.ts +4 -4
- package/out/county.d.ts.map +1 -1
- package/out/county.js.map +1 -1
- package/out/files.d.ts +1 -1
- package/out/files.d.ts.map +1 -1
- package/out/files.js.map +1 -1
- package/out/functional-status.d.ts.map +1 -1
- package/out/functional-status.js.map +1 -1
- package/out/geoid.d.ts +1 -2
- package/out/geoid.d.ts.map +1 -1
- package/out/geoid.js.map +1 -1
- package/out/index.d.ts +12 -12
- package/out/index.d.ts.map +1 -1
- package/out/index.js +12 -12
- package/out/index.js.map +1 -1
- package/out/legal-statistical-area.d.ts.map +1 -1
- package/out/legal-statistical-area.js.map +1 -1
- package/out/sdk/download.d.ts.map +1 -1
- package/out/sdk/download.js +6 -7
- package/out/sdk/download.js.map +1 -1
- package/out/sdk/fetch.d.ts.map +1 -1
- package/out/sdk/fetch.js +15 -34
- package/out/sdk/fetch.js.map +1 -1
- package/out/sdk/index.d.ts +4 -4
- package/out/sdk/index.d.ts.map +1 -1
- package/out/sdk/index.js +4 -4
- package/out/sdk/index.js.map +1 -1
- package/out/sdk/redistricting.d.ts +29 -0
- package/out/sdk/redistricting.d.ts.map +1 -1
- package/out/sdk/redistricting.js +71 -15
- package/out/sdk/redistricting.js.map +1 -1
- package/out/sdk/schema.d.ts +12 -9
- package/out/sdk/schema.d.ts.map +1 -1
- package/out/sdk/schema.js +19 -0
- package/out/sdk/schema.js.map +1 -1
- package/out/sdk/state/TIGERTabulatedBlockEntity.d.ts.map +1 -1
- package/out/sdk/state/TIGERTabulatedBlockEntity.js.map +1 -1
- package/out/sdk/state/TIGERTractEntity.d.ts.map +1 -1
- package/out/sdk/state/TIGERTractEntity.js.map +1 -1
- package/out/sdk/state/block-operations.d.ts.map +1 -1
- package/out/sdk/state/block-operations.js +1 -1
- package/out/sdk/state/block-operations.js.map +1 -1
- package/out/sdk/state/index.d.ts +3 -3
- package/out/sdk/state/index.d.ts.map +1 -1
- package/out/sdk/state/index.js +3 -3
- package/out/sdk/state/index.js.map +1 -1
- package/out/state.d.ts +2 -2
- package/out/state.d.ts.map +1 -1
- package/out/state.js.map +1 -1
- package/out/tabulation-block.d.ts +2 -2
- package/out/tabulation-block.d.ts.map +1 -1
- package/out/tabulation-block.js.map +1 -1
- package/out/tools/index.d.ts +3 -3
- package/out/tools/index.d.ts.map +1 -1
- package/out/tools/index.js +3 -3
- package/out/tools/index.js.map +1 -1
- package/out/tools/race-dots-map.d.ts.map +1 -1
- package/out/tools/race-dots-map.js +4 -4
- package/out/tools/race-dots-map.js.map +1 -1
- package/out/tools/race-dots.d.ts.map +1 -1
- package/out/tools/race-dots.js +6 -7
- package/out/tools/race-dots.js.map +1 -1
- package/out/tools/serve-range.d.ts +2 -3
- package/out/tools/serve-range.d.ts.map +1 -1
- package/out/tools/serve-range.js +16 -10
- package/out/tools/serve-range.js.map +1 -1
- package/out/tract.d.ts +2 -2
- package/out/tract.d.ts.map +1 -1
- package/out/tract.js.map +1 -1
- package/out/tsconfig.test.tsbuildinfo +1 -0
- package/package.json +38 -7
- package/index.ts +0 -18
- package/out/tsconfig.tsbuildinfo +0 -1
- package/sdk/index.ts +0 -10
- package/sdk/state/index.ts +0 -9
- /package/{functional-status.ts → lib/functional-status.ts} +0 -0
- /package/{legal-statistical-area.ts → lib/legal-statistical-area.ts} +0 -0
- /package/{sdk → lib/sdk}/state/TIGERTabulatedBlockEntity.ts +0 -0
- /package/{sdk → lib/sdk}/state/TIGERTractEntity.ts +0 -0
package/out/sdk/fetch.js
CHANGED
|
@@ -23,18 +23,15 @@
|
|
|
23
23
|
* GeoJSONSeq` (mapping shapefile columns to the schema, WGS84 for geometry levels) → batched
|
|
24
24
|
* inserts. Re-running a state replaces its rows.
|
|
25
25
|
*/
|
|
26
|
-
import { spawn } from "node:child_process";
|
|
27
|
-
import { mkdir } from "node:fs/promises";
|
|
28
|
-
import { dirname, join } from "node:path";
|
|
29
|
-
import { DatabaseSync } from "node:sqlite";
|
|
30
26
|
import { APIClient, pluckResponseData } from "@mailwoman/core/api";
|
|
27
|
+
import { mailwomanDataRoot } from "@mailwoman/core/data-root";
|
|
28
|
+
import { makeDirectories } from "@mailwoman/core/fs/writers";
|
|
31
29
|
import { extractZipEntries } from "@mailwoman/core/fs/zip";
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import { initializeTIGERSchema, TIGER_PRAGMAS } from "./schema.js";
|
|
30
|
+
import { ogr2ogrGeoJSONSeq } from "@mailwoman/spatial/tools/ogr-stream";
|
|
31
|
+
import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
32
|
+
import { dirname, join } from "path-ts";
|
|
33
|
+
import { downloadIfNeeded } from "#sdk/download";
|
|
34
|
+
import { initializeTIGERSchema, TIGER_PRAGMAS } from "#sdk/schema";
|
|
38
35
|
const CENSUS_HOST = "https://www2.census.gov";
|
|
39
36
|
const DEFAULT_DATA_ROOT = mailwomanDataRoot();
|
|
40
37
|
const LEVEL_DIR = {
|
|
@@ -138,16 +135,15 @@ export async function* fetchTIGER(options) {
|
|
|
138
135
|
// the per-table idempotent delete keeps a re-fetch (newer vintage) clean. The download CACHE stays
|
|
139
136
|
// vintage-partitioned below so zips don't collide across vintages.
|
|
140
137
|
const outPath = options.outPath ?? join(dataRoot, "tiger", "tiger.db");
|
|
141
|
-
await
|
|
142
|
-
await
|
|
138
|
+
await makeDirectories(cacheDir);
|
|
139
|
+
await makeDirectories(dirname(outPath));
|
|
143
140
|
// Source units: one (per-state) for block/place; one per county for addrfeat.
|
|
144
141
|
const geoCodes = level === "addrfeat" ? await discoverCounties(state, vintage) : [""];
|
|
145
142
|
if (level === "addrfeat" && !geoCodes.length) {
|
|
146
143
|
throw new Error(`No ADDRFEAT counties found for state ${state} vintage ${vintage}`);
|
|
147
144
|
}
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
const kdb = new DatabaseClient({ database: db });
|
|
145
|
+
const kdb = new DatabaseClient(outPath);
|
|
146
|
+
kdb.exec(TIGER_PRAGMAS);
|
|
151
147
|
await initializeTIGERSchema(kdb);
|
|
152
148
|
/**
|
|
153
149
|
* `level` picks the table AND the row shape, but nothing ties them at the type level: {@link buildRow} returns the
|
|
@@ -206,7 +202,7 @@ export async function* fetchTIGER(options) {
|
|
|
206
202
|
const layer = `tl_${vintage}_${unit}_${level}`;
|
|
207
203
|
const shpPath = join(cacheDir, layer + ".shp");
|
|
208
204
|
yield { phase: "extract", file: layer + ".shp" };
|
|
209
|
-
const
|
|
205
|
+
const args = [
|
|
210
206
|
"-f",
|
|
211
207
|
"GeoJSONSeq",
|
|
212
208
|
"-t_srs",
|
|
@@ -215,20 +211,8 @@ export async function* fetchTIGER(options) {
|
|
|
215
211
|
selectSQL(level, layer, options.county),
|
|
216
212
|
"/vsistdout/",
|
|
217
213
|
shpPath,
|
|
218
|
-
]
|
|
219
|
-
|
|
220
|
-
child.stderr.on("data", (d) => (stderr += d));
|
|
221
|
-
const exited = new Promise((resolve) => {
|
|
222
|
-
child.on("close", (code) => resolve(code ?? 0));
|
|
223
|
-
});
|
|
224
|
-
// GeoJSONSeq is line-delimited; per-line `tryParsingJSON` so a malformed record is
|
|
225
|
-
// tolerated (skipped), not thrown.
|
|
226
|
-
for await (const line of TextSpliterator.fromAsync(child.stdout)) {
|
|
227
|
-
if (!line)
|
|
228
|
-
continue;
|
|
229
|
-
const feat = tryParsingJSON(line);
|
|
230
|
-
if (!feat)
|
|
231
|
-
continue;
|
|
214
|
+
];
|
|
215
|
+
for await (const feat of ogr2ogrGeoJSONSeq(args, layer)) {
|
|
232
216
|
if (!feat.properties)
|
|
233
217
|
continue;
|
|
234
218
|
if (level === "tabblock20" && !feat.geometry)
|
|
@@ -240,12 +224,9 @@ export async function* fetchTIGER(options) {
|
|
|
240
224
|
}
|
|
241
225
|
}
|
|
242
226
|
await flush();
|
|
243
|
-
const code = await exited;
|
|
244
|
-
if (code !== 0)
|
|
245
|
-
throw new Error(`ogr2ogr exited ${code} on ${layer}: ${stderr.slice(0, 500)}`);
|
|
246
227
|
yield { phase: "load", inserted, total: 0 };
|
|
247
228
|
}
|
|
248
|
-
|
|
229
|
+
kdb.exec("PRAGMA wal_checkpoint(TRUNCATE);");
|
|
249
230
|
return { outPath, table, inserted };
|
|
250
231
|
}
|
|
251
232
|
finally {
|
package/out/sdk/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../sdk/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../lib/sdk/fetch.ts"],"names":[],"mappings":"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"}
|
package/out/sdk/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
|
-
export * from "
|
|
7
|
-
export * from "
|
|
8
|
-
export * from "
|
|
9
|
-
export * from "
|
|
6
|
+
export * from "#sdk/fetch";
|
|
7
|
+
export * from "#sdk/redistricting";
|
|
8
|
+
export * from "#sdk/schema";
|
|
9
|
+
export * from "#sdk/state/index";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/out/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
package/out/sdk/index.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
|
-
export * from "
|
|
7
|
-
export * from "
|
|
8
|
-
export * from "
|
|
9
|
-
export * from "
|
|
6
|
+
export * from "#sdk/fetch";
|
|
7
|
+
export * from "#sdk/redistricting";
|
|
8
|
+
export * from "#sdk/schema";
|
|
9
|
+
export * from "#sdk/state/index";
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/out/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
|
@@ -15,6 +15,35 @@
|
|
|
15
15
|
*
|
|
16
16
|
* https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171/
|
|
17
17
|
*/
|
|
18
|
+
/**
|
|
19
|
+
* Segment 2: FILEID|STUSAB|CHARITER|CIFSN|LOGRECNO(4)| P3×71 | P4×73 | H1×3 — 152 fields, H1 at the tail. Verified
|
|
20
|
+
* against the real file: `ca000022020.pl`'s state row reads 14,392,140 / 13,475,623 / 916,517, the published CA 2020
|
|
21
|
+
* figures. `occupied + vacant === housing_units` is the invariant that distinguishes a correct offset from a plausible
|
|
22
|
+
* one, and {@link parseH1} refuses a row where it does not hold.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SEG2_FIELD_COUNT = 152;
|
|
25
|
+
/**
|
|
26
|
+
* H0010001 — total housing units, the third-from-last field of a segment-2 row.
|
|
27
|
+
*/
|
|
28
|
+
export declare const H1_TOTAL: number;
|
|
29
|
+
/**
|
|
30
|
+
* H0010002 — occupied housing units, the second-from-last field.
|
|
31
|
+
*/
|
|
32
|
+
export declare const H1_OCCUPIED: number;
|
|
33
|
+
/**
|
|
34
|
+
* H0010003 — vacant housing units, the last field (and so the one that carries a CRLF file's trailing CR).
|
|
35
|
+
*/
|
|
36
|
+
export declare const H1_VACANT: number;
|
|
37
|
+
export interface H1Counts {
|
|
38
|
+
housing_units: number;
|
|
39
|
+
occupied: number;
|
|
40
|
+
vacant: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The three H1 counts from one segment-2 row. The last field carries CRLF's trailing CR when the file has one, so each
|
|
44
|
+
* field is trimmed before it is read as a number; a row whose counts do not add up is refused rather than stored.
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseH1(fields: readonly string[]): H1Counts;
|
|
18
47
|
export interface FetchRedistrictingOptions {
|
|
19
48
|
/**
|
|
20
49
|
* Two-digit state FIPS, e.g. `"06"`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redistricting.d.ts","sourceRoot":"","sources":["../../sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"redistricting.d.ts","sourceRoot":"","sources":["../../lib/sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgCH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC;;GAEG;AACH,eAAO,MAAM,QAAQ,QAAuB,CAAA;AAC5C;;GAEG;AACH,eAAO,MAAM,WAAW,QAAuB,CAAA;AAC/C;;GAEG;AACH,eAAO,MAAM,SAAS,QAAuB,CAAA;AAE7C,MAAM,WAAW,QAAQ;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAsB3D;AAiBD,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CAChB;AAcD;;GAEG;AACH,wBAAuB,kBAAkB,CACxC,OAAO,EAAE,yBAAyB,GAChC,cAAc,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAkInE"}
|
package/out/sdk/redistricting.js
CHANGED
|
@@ -15,16 +15,15 @@
|
|
|
15
15
|
*
|
|
16
16
|
* https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171/
|
|
17
17
|
*/
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { DatabaseSync } from "node:sqlite";
|
|
18
|
+
import { mailwomanDataRoot } from "@mailwoman/core/data-root";
|
|
19
|
+
import { makeDirectories } from "@mailwoman/core/fs/writers";
|
|
21
20
|
import { extractZipEntries } from "@mailwoman/core/fs/zip";
|
|
22
|
-
import { DatabaseClient } from "@mailwoman/
|
|
23
|
-
import {
|
|
21
|
+
import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
22
|
+
import { dirname, join } from "path-ts";
|
|
24
23
|
import { TextSpliterator } from "spliterator";
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
24
|
+
import { downloadIfNeeded } from "#sdk/download";
|
|
25
|
+
import { initializeTIGERSchema, TIGER_PRAGMAS } from "#sdk/schema";
|
|
26
|
+
import { AdminLevel1CodeToAbbreviation, StateName } from "#state";
|
|
28
27
|
const REDISTRICTING_BASE = "https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171";
|
|
29
28
|
const DEFAULT_DATA_ROOT = mailwomanDataRoot();
|
|
30
29
|
/**
|
|
@@ -40,6 +39,46 @@ const GEO_GEOCODE = 9;
|
|
|
40
39
|
*/
|
|
41
40
|
const SEG_LOGRECNO = 4;
|
|
42
41
|
const P2 = (fieldNo) => 76 + (fieldNo - 1);
|
|
42
|
+
/**
|
|
43
|
+
* Segment 2: FILEID|STUSAB|CHARITER|CIFSN|LOGRECNO(4)| P3×71 | P4×73 | H1×3 — 152 fields, H1 at the tail. Verified
|
|
44
|
+
* against the real file: `ca000022020.pl`'s state row reads 14,392,140 / 13,475,623 / 916,517, the published CA 2020
|
|
45
|
+
* figures. `occupied + vacant === housing_units` is the invariant that distinguishes a correct offset from a plausible
|
|
46
|
+
* one, and {@link parseH1} refuses a row where it does not hold.
|
|
47
|
+
*/
|
|
48
|
+
export const SEG2_FIELD_COUNT = 152;
|
|
49
|
+
/**
|
|
50
|
+
* H0010001 — total housing units, the third-from-last field of a segment-2 row.
|
|
51
|
+
*/
|
|
52
|
+
export const H1_TOTAL = SEG2_FIELD_COUNT - 3;
|
|
53
|
+
/**
|
|
54
|
+
* H0010002 — occupied housing units, the second-from-last field.
|
|
55
|
+
*/
|
|
56
|
+
export const H1_OCCUPIED = SEG2_FIELD_COUNT - 2;
|
|
57
|
+
/**
|
|
58
|
+
* H0010003 — vacant housing units, the last field (and so the one that carries a CRLF file's trailing CR).
|
|
59
|
+
*/
|
|
60
|
+
export const H1_VACANT = SEG2_FIELD_COUNT - 1;
|
|
61
|
+
/**
|
|
62
|
+
* The three H1 counts from one segment-2 row. The last field carries CRLF's trailing CR when the file has one, so each
|
|
63
|
+
* field is trimmed before it is read as a number; a row whose counts do not add up is refused rather than stored.
|
|
64
|
+
*/
|
|
65
|
+
export function parseH1(fields) {
|
|
66
|
+
if (fields.length !== SEG2_FIELD_COUNT) {
|
|
67
|
+
throw new Error(`segment 2 row has ${fields.length} fields, expected ${SEG2_FIELD_COUNT}`);
|
|
68
|
+
}
|
|
69
|
+
const counts = {
|
|
70
|
+
housing_units: Number(fields[H1_TOTAL].trim()),
|
|
71
|
+
occupied: Number(fields[H1_OCCUPIED].trim()),
|
|
72
|
+
vacant: Number(fields[H1_VACANT].trim()),
|
|
73
|
+
};
|
|
74
|
+
if (![counts.housing_units, counts.occupied, counts.vacant].every(Number.isInteger)) {
|
|
75
|
+
throw new Error(`segment 2 row carries a non-integer H1 count: ${fields.slice(H1_TOTAL).join("|")}`);
|
|
76
|
+
}
|
|
77
|
+
if (counts.occupied + counts.vacant !== counts.housing_units) {
|
|
78
|
+
throw new Error(`segment 2 row breaks the H1 invariant: occupied ${counts.occupied} + vacant ${counts.vacant} != housing_units ${counts.housing_units} (LOGRECNO ${fields[SEG_LOGRECNO]})`);
|
|
79
|
+
}
|
|
80
|
+
return counts;
|
|
81
|
+
}
|
|
43
82
|
/**
|
|
44
83
|
* The eight P2 categories that partition the total (P0020001), in `pl_block` column order.
|
|
45
84
|
*/
|
|
@@ -82,8 +121,8 @@ export async function* fetchRedistricting(options) {
|
|
|
82
121
|
const cacheDir = join(dataRoot, "census", "redistricting", String(vintage), state);
|
|
83
122
|
// Same stable `tiger.db` default as fetchTIGER — pl_block lives alongside tabblock20 in one DB.
|
|
84
123
|
const outPath = options.outPath ?? join(dataRoot, "tiger", "tiger.db");
|
|
85
|
-
await
|
|
86
|
-
await
|
|
124
|
+
await makeDirectories(cacheDir);
|
|
125
|
+
await makeDirectories(dirname(outPath));
|
|
87
126
|
const zipName = `${fileAbbr}${vintage}.pl.zip`;
|
|
88
127
|
const zipPath = join(cacheDir, zipName);
|
|
89
128
|
const url = `${REDISTRICTING_BASE}/${dirName}/${zipName}`;
|
|
@@ -92,6 +131,7 @@ export async function* fetchRedistricting(options) {
|
|
|
92
131
|
await extractZipEntries(zipPath, cacheDir);
|
|
93
132
|
const geoPath = join(cacheDir, `${fileAbbr}geo${vintage}.pl`);
|
|
94
133
|
const seg1Path = join(cacheDir, `${fileAbbr}00001${vintage}.pl`);
|
|
134
|
+
const seg2Path = join(cacheDir, `${fileAbbr}00002${vintage}.pl`);
|
|
95
135
|
yield { phase: "extract", file: `${fileAbbr}geo${vintage}.pl` };
|
|
96
136
|
// Pass 1: header → LOGRECNO → GEOID for the blocks we want.
|
|
97
137
|
const prefix = options.county ? state + options.county : state;
|
|
@@ -107,9 +147,19 @@ export async function* fetchRedistricting(options) {
|
|
|
107
147
|
});
|
|
108
148
|
const total = logToGeoid.size;
|
|
109
149
|
yield { phase: "header", blocks: total };
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const
|
|
150
|
+
// Pass 1b: segment 2 → H1 housing counts for the mapped LOGRECNOs. Read before segment 1 so a block's P2 and H1
|
|
151
|
+
// land in one row; a mapped block with no segment-2 row is a data defect the load refuses, never a zero.
|
|
152
|
+
const h1ByLogrecno = new Map();
|
|
153
|
+
await eachLine(seg2Path, (line) => {
|
|
154
|
+
const f = line.split("|");
|
|
155
|
+
const logrecno = f[SEG_LOGRECNO] ?? "";
|
|
156
|
+
if (!logToGeoid.has(logrecno))
|
|
157
|
+
return;
|
|
158
|
+
h1ByLogrecno.set(logrecno, parseH1(f));
|
|
159
|
+
});
|
|
160
|
+
yield { phase: "extract", file: `${fileAbbr}00002${vintage}.pl` };
|
|
161
|
+
const kdb = new DatabaseClient(outPath);
|
|
162
|
+
kdb.exec(TIGER_PRAGMAS);
|
|
113
163
|
await initializeTIGERSchema(kdb);
|
|
114
164
|
try {
|
|
115
165
|
// Idempotent re-run: drop the rows we're about to (re)load.
|
|
@@ -132,11 +182,17 @@ export async function* fetchRedistricting(options) {
|
|
|
132
182
|
if (!line)
|
|
133
183
|
continue;
|
|
134
184
|
const f = line.split("|");
|
|
135
|
-
const
|
|
185
|
+
const logrecno = f[SEG_LOGRECNO] ?? "";
|
|
186
|
+
const geoid = logToGeoid.get(logrecno);
|
|
136
187
|
if (!geoid)
|
|
137
188
|
continue;
|
|
189
|
+
const h1 = h1ByLogrecno.get(logrecno);
|
|
190
|
+
if (!h1) {
|
|
191
|
+
throw new Error(`block ${geoid} (LOGRECNO ${logrecno}) has a segment-1 row and no segment-2 row`);
|
|
192
|
+
}
|
|
138
193
|
batch.push({
|
|
139
194
|
GEOID: geoid,
|
|
195
|
+
...h1,
|
|
140
196
|
pop_total: Number(f[CATEGORY_INDEX.pop_total] ?? 0),
|
|
141
197
|
hispanic: Number(f[CATEGORY_INDEX.hispanic] ?? 0),
|
|
142
198
|
white: Number(f[CATEGORY_INDEX.white] ?? 0),
|
|
@@ -154,7 +210,7 @@ export async function* fetchRedistricting(options) {
|
|
|
154
210
|
}
|
|
155
211
|
await flush();
|
|
156
212
|
yield { phase: "load", inserted, total };
|
|
157
|
-
|
|
213
|
+
kdb.exec("PRAGMA wal_checkpoint(TRUNCATE);");
|
|
158
214
|
return { outPath, table: "pl_block", inserted };
|
|
159
215
|
}
|
|
160
216
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redistricting.js","sourceRoot":"","sources":["../../sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"redistricting.js","sourceRoot":"","sources":["../../lib/sdk/redistricting.ts"],"names":[],"mappings":"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"}
|
package/out/sdk/schema.d.ts
CHANGED
|
@@ -42,6 +42,18 @@ export interface PLBlockTable {
|
|
|
42
42
|
nhpi: number;
|
|
43
43
|
other: number;
|
|
44
44
|
multi: number;
|
|
45
|
+
/**
|
|
46
|
+
* P.L. 94-171 table H1 — total housing units in the block.
|
|
47
|
+
*/
|
|
48
|
+
housing_units: number;
|
|
49
|
+
/**
|
|
50
|
+
* H1 occupied. `occupied + vacant === housing_units` by construction; the reader refuses a row where it is not.
|
|
51
|
+
*/
|
|
52
|
+
occupied: number;
|
|
53
|
+
/**
|
|
54
|
+
* H1 vacant.
|
|
55
|
+
*/
|
|
56
|
+
vacant: number;
|
|
45
57
|
}
|
|
46
58
|
/**
|
|
47
59
|
* Kysely row type for `tiger_streets` (ADDRFEAT — named street segments + ZIPs, per county).
|
|
@@ -82,14 +94,5 @@ export interface TIGERDatabase {
|
|
|
82
94
|
* indexes.
|
|
83
95
|
*/
|
|
84
96
|
export declare const TIGER_PRAGMAS = "\nPRAGMA auto_vacuum = INCREMENTAL;\nPRAGMA page_size = 4096;\nPRAGMA cache_size = 10000;\nPRAGMA journal_mode = WAL;\n";
|
|
85
|
-
/**
|
|
86
|
-
* Create the TIGER tables + indexes via the Kysely schema-builder (the house idiom). Idempotent (`IF NOT EXISTS`). Pass
|
|
87
|
-
* a {@link DatabaseClient} (or any `Kysely`) over the TIGER DB; run {@link TIGER_PRAGMAS} first. `us_state`/`tract`
|
|
88
|
-
* aren't in {@link TIGERDatabase} (created here but not queried via Kysely) — `createTable` takes any table name, so
|
|
89
|
-
* that's fine.
|
|
90
|
-
*
|
|
91
|
-
* The `text(N)` length hints in the prior raw DDL were documentary only (SQLite uses TEXT affinity regardless); the
|
|
92
|
-
* lengths live on the {@link TIGERBlockTable} interface instead.
|
|
93
|
-
*/
|
|
94
97
|
export declare function initializeTIGERSchema(db: Kysely<TIGERDatabase>): Promise<void>;
|
|
95
98
|
//# sourceMappingURL=schema.d.ts.map
|
package/out/sdk/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../sdk/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../lib/sdk/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,eAAe,CAAA;IAC3B,QAAQ,EAAE,YAAY,CAAA;IACtB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,YAAY,EAAE,eAAe,CAAA;CAC7B;AAED;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,4HAKzB,CAAA;AA8BD,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHpF"}
|
package/out/sdk/schema.js
CHANGED
|
@@ -34,6 +34,21 @@ PRAGMA journal_mode = WAL;
|
|
|
34
34
|
* The `text(N)` length hints in the prior raw DDL were documentary only (SQLite uses TEXT affinity regardless); the
|
|
35
35
|
* lengths live on the {@link TIGERBlockTable} interface instead.
|
|
36
36
|
*/
|
|
37
|
+
/**
|
|
38
|
+
* Refuse a `pl_block` built before the H1 columns existed. `createTable(...).ifNotExists()` leaves an older table as it
|
|
39
|
+
* is, and the next load would fail on the first insert with a message about a column, not about the cause. The table is
|
|
40
|
+
* derived (the redistricting command reloads it state by state), so the remedy is a rebuild: drop it and re-run
|
|
41
|
+
* `mailwoman tiger redistricting` for each state you hold. Databases are never patched in place.
|
|
42
|
+
*/
|
|
43
|
+
async function assertPLBlockShape(db) {
|
|
44
|
+
const columns = await sql `select name from pragma_table_info('pl_block')`.execute(db);
|
|
45
|
+
const names = new Set(columns.rows.map((row) => row.name));
|
|
46
|
+
for (const required of ["housing_units", "occupied", "vacant"]) {
|
|
47
|
+
if (!names.has(required)) {
|
|
48
|
+
throw new Error(`pl_block predates its H1 columns (missing ${required}). It is a derived table: drop it and re-run \`mailwoman tiger redistricting\` for each state, which reloads P2 and H1 together.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
37
52
|
export async function initializeTIGERSchema(db) {
|
|
38
53
|
await db.schema
|
|
39
54
|
.createTable("us_state")
|
|
@@ -98,10 +113,14 @@ export async function initializeTIGERSchema(db) {
|
|
|
98
113
|
.addColumn("nhpi", "integer", (c) => c.notNull())
|
|
99
114
|
.addColumn("other", "integer", (c) => c.notNull())
|
|
100
115
|
.addColumn("multi", "integer", (c) => c.notNull())
|
|
116
|
+
.addColumn("housing_units", "integer", (c) => c.notNull())
|
|
117
|
+
.addColumn("occupied", "integer", (c) => c.notNull())
|
|
118
|
+
.addColumn("vacant", "integer", (c) => c.notNull())
|
|
101
119
|
// pl_block is small (no geometry) and always probed by its GEOID PK (1:1 join to tabblock20), so
|
|
102
120
|
// cluster it WITHOUT ROWID — one B-tree probe per join, no separate rowid + PK-index pair.
|
|
103
121
|
.modifyEnd(sql `without rowid`)
|
|
104
122
|
.execute();
|
|
123
|
+
await assertPLBlockShape(db);
|
|
105
124
|
await db.schema
|
|
106
125
|
.createTable("tiger_streets")
|
|
107
126
|
.ifNotExists()
|
package/out/sdk/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../sdk/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,GAAG,EAAe,MAAM,QAAQ,CAAA;AAEzC,OAAO,EAAkB,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../lib/sdk/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TIGERTabulatedBlockEntity.d.ts","sourceRoot":"","sources":["../../../sdk/state/TIGERTabulatedBlockEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,qIAUC,CAAA"}
|
|
1
|
+
{"version":3,"file":"TIGERTabulatedBlockEntity.d.ts","sourceRoot":"","sources":["../../../lib/sdk/state/TIGERTabulatedBlockEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,qIAUC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TIGERTabulatedBlockEntity.js","sourceRoot":"","sources":["../../../sdk/state/TIGERTabulatedBlockEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAC/C;IACC,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,iBAAiB;IAC/B,aAAa,CAAC,cAAc;IAC5B,aAAa,CAAC,gBAAgB;IAC9B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,YAAY;IAC1B,aAAa,CAAC,UAAU;CAEzB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"TIGERTabulatedBlockEntity.js","sourceRoot":"","sources":["../../../lib/sdk/state/TIGERTabulatedBlockEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAC/C;IACC,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,iBAAiB;IAC/B,aAAa,CAAC,cAAc;IAC5B,aAAa,CAAC,gBAAgB;IAC9B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,YAAY;IAC1B,aAAa,CAAC,UAAU;CAEzB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TIGERTractEntity.d.ts","sourceRoot":"","sources":["../../../sdk/state/TIGERTractEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAA;IAExB;;;;;OAKG;IACH,QAAQ,EAAE,cAAc,CAAA;IAExB;;;;;;OAMG;IACH,OAAO,EAAE,aAAa,CAAA;CACtB"}
|
|
1
|
+
{"version":3,"file":"TIGERTractEntity.d.ts","sourceRoot":"","sources":["../../../lib/sdk/state/TIGERTractEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAA;IAExB;;;;;OAKG;IACH,QAAQ,EAAE,cAAc,CAAA;IAExB;;;;;;OAMG;IACH,OAAO,EAAE,aAAa,CAAA;CACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TIGERTractEntity.js","sourceRoot":"","sources":["../../../sdk/state/TIGERTractEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"TIGERTractEntity.js","sourceRoot":"","sources":["../../../lib/sdk/state/TIGERTractEntity.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-operations.d.ts","sourceRoot":"","sources":["../../../sdk/state/block-operations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,oBAAoB,CAAA;AAG9E,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,MAAM,QAAQ,CAAA;AAEf,MAAM,WAAW,8BAA8B;IAC9C,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,eAAe,CAAA;IACzB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B;AAID;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,6BAA6B;IACnE,KAAK,EAAE,cAAc,CAAA;IACrB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,GAAG,UAAU,EAAE,EAAE,aAAa,GAAG,iBAAiB,CAS9G;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,2BAA2B,CAS3G"}
|
|
1
|
+
{"version":3,"file":"block-operations.d.ts","sourceRoot":"","sources":["../../../lib/sdk/state/block-operations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,oBAAoB,CAAA;AAG9E,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,MAAM,QAAQ,CAAA;AAEf,MAAM,WAAW,8BAA8B;IAC9C,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,eAAe,CAAA;IACzB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B;AAID;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,6BAA6B;IACnE,KAAK,EAAE,cAAc,CAAA;IACrB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,GAAG,UAAU,EAAE,EAAE,aAAa,GAAG,iBAAiB,CAS9G;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,2BAA2B,CAS3G"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
|
-
import { wellKnownGeometryToGeoJSON } from "@mailwoman/spatial/
|
|
6
|
+
import { wellKnownGeometryToGeoJSON } from "@mailwoman/spatial/well-known-text";
|
|
7
7
|
/**
|
|
8
8
|
* Given a row from the TIGER tabulated block table, parses it into a GeoJSON feature.
|
|
9
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-operations.js","sourceRoot":"","sources":["../../../sdk/state/block-operations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"block-operations.js","sourceRoot":"","sources":["../../../lib/sdk/state/block-operations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AA8B/E;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,GAAG,UAAU,EAAiB;IAC1F,MAAM,OAAO,GAAsB;QAClC,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,UAAU,CAAC,KAAK;QACpB,QAAQ,EAAE,0BAA0B,CAAsB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACjG,UAAU;KACV,CAAA;IAED,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wCAAwC,CAAC,IAAqB;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAEjD,MAAM,iBAAiB,GAAgC;QACtD,IAAI,EAAE,mBAAmB;QACzB,QAAQ;KACR,CAAA;IAED,OAAO,iBAAiB,CAAA;AACzB,CAAC;AAED,YAAY"}
|
package/out/sdk/state/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
|
-
export * from "
|
|
7
|
-
export * from "
|
|
8
|
-
export * from "
|
|
6
|
+
export * from "#sdk/state/block-operations";
|
|
7
|
+
export * from "#sdk/state/TIGERTabulatedBlockEntity";
|
|
8
|
+
export * from "#sdk/state/TIGERTractEntity";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sdk/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/sdk/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sCAAsC,CAAA;AACpD,cAAc,6BAA6B,CAAA"}
|
package/out/sdk/state/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
|
-
export * from "
|
|
7
|
-
export * from "
|
|
8
|
-
export * from "
|
|
6
|
+
export * from "#sdk/state/block-operations";
|
|
7
|
+
export * from "#sdk/state/TIGERTabulatedBlockEntity";
|
|
8
|
+
export * from "#sdk/state/TIGERTractEntity";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sdk/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/sdk/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sCAAsC,CAAA;AACpD,cAAc,6BAA6B,CAAA"}
|
package/out/state.d.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
6
|
import type { GeoFeature, MultiPolygonLiteral } from "@mailwoman/spatial";
|
|
7
|
-
import type { GeoIDPart } from "
|
|
8
|
-
import type { TIGERTabulatedBlockProperties } from "
|
|
7
|
+
import type { GeoIDPart } from "#geoid";
|
|
8
|
+
import type { TIGERTabulatedBlockProperties } from "#tabulation-block";
|
|
9
9
|
/**
|
|
10
10
|
* FIPS codes for US States.
|
|
11
11
|
*
|