@mailwoman/tiger 9.4.0 → 10.1.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 (130) hide show
  1. package/lib/block-group.ts +7 -7
  2. package/lib/class-code.ts +387 -266
  3. package/lib/constants.ts +7 -6
  4. package/lib/{county-subdivision.ts → county/subdivision.ts} +7 -7
  5. package/lib/county.ts +7 -7
  6. package/lib/files.ts +37 -20
  7. package/lib/functional-status.ts +6 -4
  8. package/lib/geoid.ts +44 -26
  9. package/lib/index.ts +1 -1
  10. package/lib/legal-statistical-area.ts +7 -5
  11. package/lib/{sdk/schema.ts → schema.ts} +32 -42
  12. package/lib/state.ts +23 -20
  13. package/lib/tabulation-block.ts +4 -4
  14. package/lib/tract.ts +3 -3
  15. package/out/block-group.d.ts +7 -7
  16. package/out/class-code.d.ts +387 -266
  17. package/out/class-code.d.ts.map +1 -1
  18. package/out/class-code.js +387 -266
  19. package/out/class-code.js.map +1 -1
  20. package/out/constants.d.ts +7 -6
  21. package/out/constants.d.ts.map +1 -1
  22. package/out/constants.js +3 -3
  23. package/out/{county-subdivision.d.ts → county/subdivision.d.ts} +8 -8
  24. package/out/county/subdivision.d.ts.map +1 -0
  25. package/out/{county-subdivision.js → county/subdivision.js} +1 -1
  26. package/out/county/subdivision.js.map +1 -0
  27. package/out/county.d.ts +7 -7
  28. package/out/county.js +1 -1
  29. package/out/files.d.ts +21 -13
  30. package/out/files.d.ts.map +1 -1
  31. package/out/files.js +27 -13
  32. package/out/files.js.map +1 -1
  33. package/out/functional-status.d.ts +6 -4
  34. package/out/functional-status.d.ts.map +1 -1
  35. package/out/functional-status.js +6 -4
  36. package/out/functional-status.js.map +1 -1
  37. package/out/geoid.d.ts +34 -16
  38. package/out/geoid.d.ts.map +1 -1
  39. package/out/geoid.js +16 -10
  40. package/out/geoid.js.map +1 -1
  41. package/out/index.d.ts +1 -1
  42. package/out/index.js +1 -1
  43. package/out/legal-statistical-area.d.ts +7 -5
  44. package/out/legal-statistical-area.d.ts.map +1 -1
  45. package/out/legal-statistical-area.js +7 -5
  46. package/out/legal-statistical-area.js.map +1 -1
  47. package/out/{sdk/schema.d.ts → schema.d.ts} +26 -20
  48. package/out/schema.d.ts.map +1 -0
  49. package/out/{sdk/schema.js → schema.js} +12 -31
  50. package/out/schema.js.map +1 -0
  51. package/out/sdk/download.d.ts +7 -15
  52. package/out/sdk/download.d.ts.map +1 -1
  53. package/out/sdk/download.js +5 -14
  54. package/out/sdk/download.js.map +1 -1
  55. package/out/sdk/fetch.d.ts +32 -29
  56. package/out/sdk/fetch.d.ts.map +1 -1
  57. package/out/sdk/fetch.js +18 -53
  58. package/out/sdk/fetch.js.map +1 -1
  59. package/out/sdk/redistricting.d.ts +29 -15
  60. package/out/sdk/redistricting.d.ts.map +1 -1
  61. package/out/sdk/redistricting.js +47 -36
  62. package/out/sdk/redistricting.js.map +1 -1
  63. package/out/sdk/state/TIGERTabulatedBlockEntity.d.ts +2 -2
  64. package/out/sdk/state/TIGERTabulatedBlockEntity.d.ts.map +1 -1
  65. package/out/sdk/state/TIGERTabulatedBlockEntity.js +3 -3
  66. package/out/sdk/state/TIGERTabulatedBlockEntity.js.map +1 -1
  67. package/out/sdk/state/TIGERTractEntity.d.ts.map +1 -1
  68. package/out/sdk/state/TIGERTractEntity.js.map +1 -1
  69. package/out/sdk/state/block-operations.d.ts +3 -2
  70. package/out/sdk/state/block-operations.d.ts.map +1 -1
  71. package/out/sdk/state/block-operations.js +4 -3
  72. package/out/sdk/state/block-operations.js.map +1 -1
  73. package/out/sdk/{state/index.d.ts → state.d.ts} +1 -1
  74. package/out/sdk/state.d.ts.map +1 -0
  75. package/out/sdk/{state/index.js → state.js} +1 -1
  76. package/out/sdk/state.js.map +1 -0
  77. package/out/sdk/tsconfig.tsbuildinfo +1 -0
  78. package/out/state.d.ts +45 -42
  79. package/out/state.d.ts.map +1 -1
  80. package/out/state.js +17 -14
  81. package/out/state.js.map +1 -1
  82. package/out/tabulation-block.d.ts +4 -4
  83. package/out/tools/{race-dots-map.d.ts → race/dots/map.d.ts} +24 -10
  84. package/out/tools/race/dots/map.d.ts.map +1 -0
  85. package/out/tools/{race-dots-map.js → race/dots/map.js} +10 -6
  86. package/out/tools/race/dots/map.js.map +1 -0
  87. package/out/tools/race/dots.d.ts +47 -0
  88. package/out/tools/race/dots.d.ts.map +1 -0
  89. package/out/tools/{race-dots.js → race/dots.js} +10 -27
  90. package/out/tools/race/dots.js.map +1 -0
  91. package/out/tools/serve-range.d.ts +13 -7
  92. package/out/tools/serve-range.d.ts.map +1 -1
  93. package/out/tools/serve-range.js +9 -7
  94. package/out/tools/serve-range.js.map +1 -1
  95. package/out/tools/tsconfig.tsbuildinfo +1 -0
  96. package/out/tract.d.ts +3 -3
  97. package/out/tsconfig.test.tsbuildinfo +1 -1
  98. package/package.json +59 -42
  99. package/sdk/download.ts +41 -0
  100. package/{lib/sdk → sdk}/fetch.ts +54 -62
  101. package/{lib/sdk → sdk}/redistricting.ts +57 -40
  102. package/{lib/sdk → sdk}/state/TIGERTabulatedBlockEntity.ts +3 -3
  103. package/{lib/sdk → sdk}/state/block-operations.ts +5 -4
  104. package/{lib/tools/race-dots-map.ts → tools/race/dots/map.ts} +30 -12
  105. package/{lib/tools/race-dots.ts → tools/race/dots.ts} +14 -31
  106. package/{lib/tools → tools}/serve-range.ts +15 -9
  107. package/lib/sdk/download.ts +0 -49
  108. package/lib/sdk/index.ts +0 -10
  109. package/lib/tools/index.ts +0 -11
  110. package/out/county-subdivision.d.ts.map +0 -1
  111. package/out/county-subdivision.js.map +0 -1
  112. package/out/sdk/index.d.ts +0 -10
  113. package/out/sdk/index.d.ts.map +0 -1
  114. package/out/sdk/index.js +0 -10
  115. package/out/sdk/index.js.map +0 -1
  116. package/out/sdk/schema.d.ts.map +0 -1
  117. package/out/sdk/schema.js.map +0 -1
  118. package/out/sdk/state/index.d.ts.map +0 -1
  119. package/out/sdk/state/index.js.map +0 -1
  120. package/out/tools/index.d.ts +0 -11
  121. package/out/tools/index.d.ts.map +0 -1
  122. package/out/tools/index.js +0 -11
  123. package/out/tools/index.js.map +0 -1
  124. package/out/tools/race-dots-map.d.ts.map +0 -1
  125. package/out/tools/race-dots-map.js.map +0 -1
  126. package/out/tools/race-dots.d.ts +0 -61
  127. package/out/tools/race-dots.d.ts.map +0 -1
  128. package/out/tools/race-dots.js.map +0 -1
  129. /package/{lib/sdk → sdk}/state/TIGERTractEntity.ts +0 -0
  130. /package/{lib/sdk/state/index.ts → sdk/state.ts} +0 -0
@@ -3,10 +3,10 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Minimal static file server that honours HTTP Range requests (206) — Python's `http.server` does
7
- * not, and PMTiles reads via Range, so it can't be served by it. Used to preview/render a local
6
+ * Minimal static file server that honors http Range requests (206) — Python's `http.server` does
7
+ * not. PMTiles reads via Range, so this server cannot serve it. Used to preview/render a local
8
8
  * `.pmtiles` tileset (e.g. the race-dot map, via `mailwoman tiger race-dots-map --serve`). Not for
9
- * production; the deployed tiles go through the tile worker.
9
+ * production. the deployed tiles go through the tile worker.
10
10
  *
11
11
  * Internal helper module — no standalone command.
12
12
  */
@@ -16,11 +16,15 @@ import { type Server } from "node:http";
16
16
  */
17
17
  export interface ServeRangeOptions {
18
18
  /**
19
- * Directory to serve. Default `/tmp`.
19
+ * Directory to serve.
20
+ *
21
+ * Default `/tmp`.
20
22
  */
21
23
  dir?: string;
22
24
  /**
23
- * Port to listen on. Default 8899.
25
+ * Port to listen on.
26
+ *
27
+ * Default 8899.
24
28
  */
25
29
  port?: number;
26
30
  }
@@ -33,8 +37,10 @@ export interface RangeServer extends AsyncDisposable {
33
37
  server: Server;
34
38
  }
35
39
  /**
36
- * Serve `dir` over localhost with HTTP Range support. Resolves once the server is listening; the caller owns the
37
- * lifetime (dispose it to stop; commands typically hold the process open instead).
40
+ * Serve `dir` over localhost with http Range support.
41
+ *
42
+ * Resolves once the server is listening.
43
+ * The caller owns the lifetime (dispose it to stop. Commands typically hold the process open instead).
38
44
  */
39
45
  export declare function serveWithRangeSupport(options?: ServeRangeOptions, report?: (line: string) => void): Promise<RangeServer>;
40
46
  //# sourceMappingURL=serve-range.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serve-range.d.ts","sourceRoot":"","sources":["../../lib/tools/serve-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAA;AAOhG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACd;AAUD;;;GAGG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,GAAE,iBAAsB,EAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,WAAW,CAAC,CAqDtB"}
1
+ {"version":3,"file":"serve-range.d.ts","sourceRoot":"","sources":["../../tools/serve-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAA;AAOhG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACd;AAUD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,GAAE,iBAAsB,EAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,WAAW,CAAC,CAqDtB"}
@@ -3,17 +3,17 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Minimal static file server that honours HTTP Range requests (206) — Python's `http.server` does
7
- * not, and PMTiles reads via Range, so it can't be served by it. Used to preview/render a local
6
+ * Minimal static file server that honors http Range requests (206) — Python's `http.server` does
7
+ * not. PMTiles reads via Range, so this server cannot serve it. Used to preview/render a local
8
8
  * `.pmtiles` tileset (e.g. the race-dot map, via `mailwoman tiger race-dots-map --serve`). Not for
9
- * production; the deployed tiles go through the tile worker.
9
+ * production. the deployed tiles go through the tile worker.
10
10
  *
11
11
  * Internal helper module — no standalone command.
12
12
  */
13
13
  import { createServer } from "node:http";
14
+ import { tempRootPath } from "@mailwoman/core/data-root";
14
15
  import { statPath } from "@mailwoman/core/fs/readers";
15
16
  import { openReadStream } from "@mailwoman/core/fs/streams";
16
- import { mailwomanTempRoot } from "@mailwoman/core/utils";
17
17
  import { extname, join, normalize } from "path-ts";
18
18
  const TYPES = {
19
19
  ".html": "text/html; charset=utf-8",
@@ -23,11 +23,13 @@ const TYPES = {
23
23
  ".png": "image/png",
24
24
  };
25
25
  /**
26
- * Serve `dir` over localhost with HTTP Range support. Resolves once the server is listening; the caller owns the
27
- * lifetime (dispose it to stop; commands typically hold the process open instead).
26
+ * Serve `dir` over localhost with http Range support.
27
+ *
28
+ * Resolves once the server is listening.
29
+ * The caller owns the lifetime (dispose it to stop. Commands typically hold the process open instead).
28
30
  */
29
31
  export async function serveWithRangeSupport(options = {}, report) {
30
- const dir = options.dir || String(mailwomanTempRoot());
32
+ const dir = options.dir || tempRootPath();
31
33
  const port = options.port ?? 8899;
32
34
  const server = createServer(async (req, res) => {
33
35
  const rel = normalize(decodeURIComponent((req.url || "/").split("?")[0])).replace(/^(\.\.[/\\])+/, "");
@@ -1 +1 @@
1
- {"version":3,"file":"serve-range.js","sourceRoot":"","sources":["../../lib/tools/serve-range.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve-range.js","sourceRoot":"","sources":["../../tools/serve-range.ts"],"names":[],"mappings":"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"}