@mailwoman/soil 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 (115) hide show
  1. package/README.md +118 -116
  2. package/lib/index.ts +66 -98
  3. package/lib/paths.ts +24 -0
  4. package/lib/schema.ts +188 -120
  5. package/lib/vocabulary.ts +40 -107
  6. package/out/index.d.ts +52 -70
  7. package/out/index.d.ts.map +1 -1
  8. package/out/index.js +24 -72
  9. package/out/index.js.map +1 -1
  10. package/out/paths.d.ts +19 -0
  11. package/out/paths.d.ts.map +1 -0
  12. package/out/paths.js +21 -0
  13. package/out/paths.js.map +1 -0
  14. package/out/schema.d.ts +187 -119
  15. package/out/schema.d.ts.map +1 -1
  16. package/out/schema.js +31 -31
  17. package/out/schema.js.map +1 -1
  18. package/out/sdk/acquire.d.ts +15 -24
  19. package/out/sdk/acquire.d.ts.map +1 -1
  20. package/out/sdk/acquire.js +5 -20
  21. package/out/sdk/acquire.js.map +1 -1
  22. package/out/sdk/build-soil.d.ts +67 -70
  23. package/out/sdk/build-soil.d.ts.map +1 -1
  24. package/out/sdk/build-soil.js +65 -95
  25. package/out/sdk/build-soil.js.map +1 -1
  26. package/out/sdk/cell-tiers.d.ts +7 -19
  27. package/out/sdk/cell-tiers.d.ts.map +1 -1
  28. package/out/sdk/cell-tiers.js +19 -38
  29. package/out/sdk/cell-tiers.js.map +1 -1
  30. package/out/sdk/cells.d.ts +15 -41
  31. package/out/sdk/cells.d.ts.map +1 -1
  32. package/out/sdk/cells.js +11 -38
  33. package/out/sdk/cells.js.map +1 -1
  34. package/out/sdk/client.d.ts +23 -48
  35. package/out/sdk/client.d.ts.map +1 -1
  36. package/out/sdk/client.js +19 -63
  37. package/out/sdk/client.js.map +1 -1
  38. package/out/sdk/download.d.ts +24 -47
  39. package/out/sdk/download.d.ts.map +1 -1
  40. package/out/sdk/download.js +14 -54
  41. package/out/sdk/download.js.map +1 -1
  42. package/out/sdk/ingest/chunk.d.ts +77 -0
  43. package/out/sdk/ingest/chunk.d.ts.map +1 -0
  44. package/out/sdk/{ingest-chunk.js → ingest/chunk.js} +19 -17
  45. package/out/sdk/ingest/chunk.js.map +1 -0
  46. package/out/sdk/ingest/worker.d.ts +9 -0
  47. package/out/sdk/ingest/worker.d.ts.map +1 -0
  48. package/out/{scripts/ingest-chunk.js → sdk/ingest/worker.js} +11 -10
  49. package/out/sdk/ingest/worker.js.map +1 -0
  50. package/out/sdk/ingest.d.ts +40 -52
  51. package/out/sdk/ingest.d.ts.map +1 -1
  52. package/out/sdk/ingest.js +18 -61
  53. package/out/sdk/ingest.js.map +1 -1
  54. package/out/sdk/measure-resolutions.d.ts +5 -16
  55. package/out/sdk/measure-resolutions.d.ts.map +1 -1
  56. package/out/sdk/measure-resolutions.js +3 -15
  57. package/out/sdk/measure-resolutions.js.map +1 -1
  58. package/out/sdk/reduce.d.ts +33 -59
  59. package/out/sdk/reduce.d.ts.map +1 -1
  60. package/out/sdk/reduce.js +47 -78
  61. package/out/sdk/reduce.js.map +1 -1
  62. package/out/sdk/survey-area.d.ts +16 -48
  63. package/out/sdk/survey-area.d.ts.map +1 -1
  64. package/out/sdk/survey-area.js +33 -77
  65. package/out/sdk/survey-area.js.map +1 -1
  66. package/out/sdk/tabular.d.ts +32 -31
  67. package/out/sdk/tabular.d.ts.map +1 -1
  68. package/out/sdk/tabular.js +58 -56
  69. package/out/sdk/tabular.js.map +1 -1
  70. package/out/sdk/test-kit.d.ts +57 -0
  71. package/out/sdk/test-kit.d.ts.map +1 -0
  72. package/out/{test-kit.js → sdk/test-kit.js} +18 -39
  73. package/out/sdk/test-kit.js.map +1 -0
  74. package/out/sdk/verify.d.ts +15 -51
  75. package/out/sdk/verify.d.ts.map +1 -1
  76. package/out/sdk/verify.js +19 -77
  77. package/out/sdk/verify.js.map +1 -1
  78. package/out/vocabulary.d.ts +37 -103
  79. package/out/vocabulary.d.ts.map +1 -1
  80. package/out/vocabulary.js +34 -107
  81. package/out/vocabulary.js.map +1 -1
  82. package/package.json +36 -190
  83. package/{lib/sdk → sdk}/acquire.ts +17 -27
  84. package/{lib/sdk → sdk}/build-soil.ts +114 -128
  85. package/{lib/sdk → sdk}/cell-tiers.ts +20 -39
  86. package/{lib/sdk → sdk}/cells.ts +17 -43
  87. package/sdk/client.ts +147 -0
  88. package/sdk/download.ts +131 -0
  89. package/{lib/sdk/ingest-chunk.ts → sdk/ingest/chunk.ts} +34 -26
  90. package/{lib/scripts/ingest-chunk.ts → sdk/ingest/worker.ts} +10 -9
  91. package/sdk/ingest.ts +253 -0
  92. package/{lib/sdk → sdk}/measure-resolutions.ts +5 -16
  93. package/sdk/reduce.ts +344 -0
  94. package/{lib/sdk → sdk}/survey-area.ts +39 -83
  95. package/{lib/sdk → sdk}/tabular.ts +62 -59
  96. package/{lib → sdk}/test-kit.ts +18 -40
  97. package/{lib/sdk → sdk}/verify.ts +29 -85
  98. package/lib/sdk/client.ts +0 -184
  99. package/lib/sdk/download.ts +0 -161
  100. package/lib/sdk/index.ts +0 -20
  101. package/lib/sdk/ingest.ts +0 -278
  102. package/lib/sdk/reduce.ts +0 -375
  103. package/out/scripts/ingest-chunk.d.ts +0 -11
  104. package/out/scripts/ingest-chunk.d.ts.map +0 -1
  105. package/out/scripts/ingest-chunk.js.map +0 -1
  106. package/out/sdk/index.d.ts +0 -20
  107. package/out/sdk/index.d.ts.map +0 -1
  108. package/out/sdk/index.js +0 -20
  109. package/out/sdk/index.js.map +0 -1
  110. package/out/sdk/ingest-chunk.d.ts +0 -73
  111. package/out/sdk/ingest-chunk.d.ts.map +0 -1
  112. package/out/sdk/ingest-chunk.js.map +0 -1
  113. package/out/test-kit.d.ts +0 -79
  114. package/out/test-kit.d.ts.map +0 -1
  115. package/out/test-kit.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"survey-area.js","sourceRoot":"","sources":["../../lib/sdk/survey-area.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"survey-area.js","sourceRoot":"","sources":["../../sdk/survey-area.ts"],"names":[],"mappings":"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"}
@@ -3,27 +3,24 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * The pipe-delimited NASIS export inside a survey-area archive: which file holds which table, which
7
- * column sits at which position, and the authority's own declared domains.
6
+ * Reads the pipe-delimited NASIS export inside a survey-area archive. It maps files to tables and columns to
7
+ * positions, then reads the authority's declared domains.
8
8
  *
9
- * THE FILES CARRY NO HEADER AND THE ARCHIVE SHIPS THE SCHEMA. `mstab.txt` maps a logical table name to
10
- * the file base name that holds it (`component` → `comp.txt`, `sacatalog` → `sacatlog.txt` — neither is
11
- * guessable), and `mstabcol.txt` gives every column's ordinal position. So the reader looks the positions
12
- * up rather than hard-coding them, and {@link readTable} THROWS on a requested column the shipped
13
- * dictionary does not declare. A reader that quietly returned `undefined` for a renamed column would turn
14
- * "the source changed" into "there is none of it", at exactly the measurement boundary where that lie
15
- * costs the most.
9
+ * The files have no headers. The archive supplies their schema. `mstab.txt` maps each logical table name to a
10
+ * filename (`component` → `comp.txt`, `sacatalog` → `sacatlog.txt`). The filenames cannot be inferred. `mstabcol.txt`
11
+ * gives each column's ordinal position. The reader looks up those positions instead of hard-coding them.
12
+ * {@link readTable} throws when a requested column is absent from the shipped dictionary. An `undefined` result
13
+ * for a renamed column would turn a source change into an apparent absence. That would corrupt the measurement.
16
14
  *
17
- * QUOTE HANDLING IS NOT OPTIONAL HERE, AND THE MEASUREMENT determines the result. `sacatlog.txt` holds 594 newline
18
- * bytes and exactly ONE record: its `fgdcmetadata` column carries a 43,251-character XML document with
19
- * embedded newlines. `mstabcol.txt` — the column dictionary itself — holds 913 newlines and 865 records.
20
- * A line-splitting reader gets 594 malformed rows from a one-row file, every one of them well-formed
21
- * enough to keep going.
15
+ * Quote handling affects the parsed result. `sacatlog.txt` contains 594 newline bytes and one record. Its
16
+ * `fgdcmetadata` column contains a 43,251-character XML document with embedded newlines. `mstabcol.txt`, the column
17
+ * dictionary, contains 913 newlines and 865 records. A line-splitting reader would create 594 malformed rows from
18
+ * the one-row `sacatlog.txt` file. Each malformed row would still look valid enough to process.
22
19
  *
23
- * THE DECLARED DOMAINS COME OUT OF THE ARCHIVE TOO, which is stronger than transcribing them.
24
- * `msdomdet.txt` carries every `Choice` column's members WITH the authority's own prose definition —
25
- * capability classes 1 through 8, subclasses `c`/`e`/`s`/`w`, the 28 conditional farmland
26
- * classifications, the six component kinds. The layer stores them and validates against them.
20
+ * The archive also supplies its declared domains. Those values remove the need to transcribe them by hand.
21
+ * `msdomdet.txt` lists every `Choice` column's members and the authority's prose definition. It includes
22
+ * capability classes 1 through 8, subclasses `c`/`e`/`s`/`w`, 28 conditional farmland classifications and six
23
+ * component kinds. The layer stores and validates those values.
27
24
  */
28
25
  import { type PathBuilderLike } from "path-ts";
29
26
  /**
@@ -31,7 +28,7 @@ import { type PathBuilderLike } from "path-ts";
31
28
  */
32
29
  export type TabularRow = ReadonlyArray<string>;
33
30
  /**
34
- * The archive's own description of itself: table → file, and table → column positions.
31
+ * Maps each table to a file and to its column positions, as recorded in the archive's dictionary.
35
32
  */
36
33
  export interface TabularDictionary {
37
34
  /**
@@ -52,8 +49,9 @@ export declare function readTabularDictionary(tabularDirectory: PathBuilderLike)
52
49
  /**
53
50
  * A reader over one logical table, projecting the columns a caller names.
54
51
  *
55
- * The projection is by NAME and a missing name throws, which is the whole point: this is the shape that produced the
56
- * repository's worst measurement bugs, where a silently dropped column read downstream as an empty world.
52
+ * The projection selects columns by name and throws when a name is missing.
53
+ * This prevents a silently dropped column from appearing downstream as an empty dataset,
54
+ * the failure behind the repository's worst measurement bugs.
57
55
  */
58
56
  export interface TabularTable {
59
57
  /**
@@ -66,10 +64,10 @@ export interface TabularTable {
66
64
  recordCount: number;
67
65
  }
68
66
  /**
69
- * Read a logical SSURGO table, projecting `wanted` columns.
67
+ * Read a logical ssurgo table, projecting `wanted` columns.
70
68
  *
71
- * @throws {Error} When the archive declares no file for the table, when a requested column is not in the shipped
72
- * dictionary, or when a record is narrower than the position a requested column sits at.
69
+ * @throws {Error} When the archive declares no file for the table, when a requested column is not in
70
+ * the shipped dictionary, or when a record is narrower than the position a requested column sits at.
73
71
  */
74
72
  export declare function readTable(tabularDirectory: PathBuilderLike, dictionary: TabularDictionary, table: string, wanted: ReadonlyArray<string>): Promise<TabularTable>;
75
73
  /**
@@ -92,15 +90,18 @@ export declare function readDeclaredDomains(tabularDirectory: PathBuilderLike):
92
90
  */
93
91
  export declare function domainCodes(members: ReadonlyArray<DomainMember>, domain: string): Set<string>;
94
92
  /**
95
- * `M/D/YYYY H:MM:SS` (and the `MM/DD/YYYY HH:MM:SS` the tabular export writes) to an ISO date.
93
+ * `M/D/yyyy H:MM:SS` (and the `MM/DD/yyyy HH:MM:SS` the tabular export writes) to an ISO date.
96
94
  *
97
- * The two channels spell the same instant differently — Soil Data Access answers `9/9/2025 1:57:25 PM` and the shipped
98
- * `sacatlog.txt` writes `09/09/2025 13:57:25` — and the download URL needs `2025-09-09`. Parsing to a date rather than
99
- * slicing the string is what makes both channels agree.
95
+ * Soil Data Access writes `9/9/2025 1:57:25 PM`.
96
+ * The shipped `sacatlog.txt` writes the same instant as `09/09/2025 13:57:25`.
100
97
  *
101
- * @throws {Error} When the value is not one of those shapes. A freshness date guessed wrong asks the download host for
102
- * a file that does not exist, and the host answers 400 rather than 404, which reads as a bad request rather than a
103
- * bad date.
98
+ * The download URL needs `2025-09-09`.
99
+ * Both channels agree only when the code parses the value as a date instead of slicing the string.
100
+ *
101
+ * @throws {Error} When the value is not one of those shapes.
102
+ * An incorrect freshness date requests a nonexistent file.
103
+ * The host returns 400 for the request.
104
+ * A 404 would identify a missing file.
104
105
  */
105
106
  export declare function saverestToISODate(value: string): string;
106
107
  //# sourceMappingURL=tabular.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabular.d.ts","sourceRoot":"","sources":["../../lib/sdk/tabular.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAQ,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAGpD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AA2B9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACzD;AAuBD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,gBAAgB,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+BzG;AAYD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3C;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC9B,gBAAgB,EAAE,eAAe,EACjC,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,YAAY,CAAC,CA+CvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CAChB;AASD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAWpG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAU7F;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYvD"}
1
+ {"version":3,"file":"tabular.d.ts","sourceRoot":"","sources":["../../sdk/tabular.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAe,KAAK,eAAe,EAAsB,MAAM,SAAS,CAAA;AAG/E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAqB9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACzD;AA0BD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,gBAAgB,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgCzG;AAYD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3C;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC9B,gBAAgB,EAAE,eAAe,EACjC,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,YAAY,CAAC,CA+CvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAYD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAWpG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAU7F;AAED;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYvD"}
@@ -3,59 +3,53 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * The pipe-delimited NASIS export inside a survey-area archive: which file holds which table, which
7
- * column sits at which position, and the authority's own declared domains.
6
+ * Reads the pipe-delimited NASIS export inside a survey-area archive. It maps files to tables and columns to
7
+ * positions, then reads the authority's declared domains.
8
8
  *
9
- * THE FILES CARRY NO HEADER AND THE ARCHIVE SHIPS THE SCHEMA. `mstab.txt` maps a logical table name to
10
- * the file base name that holds it (`component` → `comp.txt`, `sacatalog` → `sacatlog.txt` — neither is
11
- * guessable), and `mstabcol.txt` gives every column's ordinal position. So the reader looks the positions
12
- * up rather than hard-coding them, and {@link readTable} THROWS on a requested column the shipped
13
- * dictionary does not declare. A reader that quietly returned `undefined` for a renamed column would turn
14
- * "the source changed" into "there is none of it", at exactly the measurement boundary where that lie
15
- * costs the most.
9
+ * The files have no headers. The archive supplies their schema. `mstab.txt` maps each logical table name to a
10
+ * filename (`component` → `comp.txt`, `sacatalog` → `sacatlog.txt`). The filenames cannot be inferred. `mstabcol.txt`
11
+ * gives each column's ordinal position. The reader looks up those positions instead of hard-coding them.
12
+ * {@link readTable} throws when a requested column is absent from the shipped dictionary. An `undefined` result
13
+ * for a renamed column would turn a source change into an apparent absence. That would corrupt the measurement.
16
14
  *
17
- * QUOTE HANDLING IS NOT OPTIONAL HERE, AND THE MEASUREMENT determines the result. `sacatlog.txt` holds 594 newline
18
- * bytes and exactly ONE record: its `fgdcmetadata` column carries a 43,251-character XML document with
19
- * embedded newlines. `mstabcol.txt` — the column dictionary itself — holds 913 newlines and 865 records.
20
- * A line-splitting reader gets 594 malformed rows from a one-row file, every one of them well-formed
21
- * enough to keep going.
15
+ * Quote handling affects the parsed result. `sacatlog.txt` contains 594 newline bytes and one record. Its
16
+ * `fgdcmetadata` column contains a 43,251-character XML document with embedded newlines. `mstabcol.txt`, the column
17
+ * dictionary, contains 913 newlines and 865 records. A line-splitting reader would create 594 malformed rows from
18
+ * the one-row `sacatlog.txt` file. Each malformed row would still look valid enough to process.
22
19
  *
23
- * THE DECLARED DOMAINS COME OUT OF THE ARCHIVE TOO, which is stronger than transcribing them.
24
- * `msdomdet.txt` carries every `Choice` column's members WITH the authority's own prose definition —
25
- * capability classes 1 through 8, subclasses `c`/`e`/`s`/`w`, the 28 conditional farmland
26
- * classifications, the six component kinds. The layer stores them and validates against them.
20
+ * The archive also supplies its declared domains. Those values remove the need to transcribe them by hand.
21
+ * `msdomdet.txt` lists every `Choice` column's members and the authority's prose definition. It includes
22
+ * capability classes 1 through 8, subclasses `c`/`e`/`s`/`w`, 28 conditional farmland classifications and six
23
+ * component kinds. The layer stores and validates those values.
27
24
  */
28
25
  import { readLocalBuffer } from "@mailwoman/core/fs/readers";
29
- import { join } from "path-ts";
26
+ import { stringifyJSON } from "@mailwoman/core/json";
27
+ import { PathBuilder, resolvePathBuilder } from "path-ts";
30
28
  import { CSVSpliterator } from "spliterator";
31
29
  /**
32
30
  * Read one pipe-delimited export file into rows.
33
31
  *
34
- * `enableQuoteHandling` is what makes the embedded newlines above survive; `header: false` is what keeps the first
35
- * record from being eaten, since these files carry none.
32
+ * Quote-aware parsing preserves embedded newlines; `header: false` keeps the first record
33
+ * because these files have no header.
36
34
  */
37
35
  async function readPipeDelimited(path) {
38
36
  const rows = [];
39
37
  for (const row of CSVSpliterator.from(await readLocalBuffer(path), {
40
- mode: "array",
41
38
  header: false,
42
39
  columnDelimiter: "|",
43
- enableQuoteHandling: true,
44
40
  })) {
45
- // `String` ON A DECLARED STRING IS NOT REDUNDANT HERE. The emitter's array mode is TYPED `string[]` and coerces
46
- // numeric-looking columns at RUNTIME — measured: `mukey` comes back as the number 412818, not `"412818"` — so a row
47
- // passed through untouched stops joining against the shapefile's own `MUKEY`. An empty column arrives as `""`
48
- // rather than as null, which is why nothing here has to decide what a missing value means.
49
- rows.push(row.map((value) => String(value)));
41
+ rows.push(row);
50
42
  }
51
43
  return rows;
52
44
  }
53
45
  /**
54
46
  * Column positions in `mstab.txt` and `mstabcol.txt` themselves.
55
47
  *
56
- * These two are the ONLY positions this module hard-codes, and they cannot be looked up because they are what the
57
- * lookup is built from. Both files declare themselves in `mstabcol.txt`, so the assertions below check the bootstrap
58
- * against the archive's own account of it rather than trusting it.
48
+ * This module hard-codes only these two positions.
49
+ * It cannot look them up because they initialize the lookup.
50
+ *
51
+ * `mstabcol.txt` declares positions for both files.
52
+ * The assertions below check the bootstrap against the archive's own dictionary.
59
53
  */
60
54
  const MSTAB_TABLE_NAME = 0;
61
55
  const MSTAB_FILE_NAME = 4;
@@ -63,9 +57,10 @@ const MSTABCOL_TABLE_NAME = 0;
63
57
  const MSTABCOL_POSITION = 1;
64
58
  const MSTABCOL_COLUMN_NAME = 2;
65
59
  /**
66
- * Declared widths of the two bootstrap files, asserted before either is read as a dictionary. A different width means
67
- * the metadata format changed, and reading positions out of a changed format is how a builder mis-reads every column at
68
- * once.
60
+ * Declared widths of the two bootstrap files, asserted before either is read as a dictionary.
61
+ *
62
+ * A different width means the metadata format changed.
63
+ * Changed-format positions could misread every column.
69
64
  */
70
65
  const MSTAB_WIDTH = 5;
71
66
  const MSTABCOL_WIDTH = 14;
@@ -75,8 +70,9 @@ const MSTABCOL_WIDTH = 14;
75
70
  * @throws {Error} When either bootstrap file is missing or is not the declared width.
76
71
  */
77
72
  export async function readTabularDictionary(tabularDirectory) {
78
- const mstab = await readPipeDelimited(join(tabularDirectory, "mstab.txt"));
79
- const mstabcol = await readPipeDelimited(join(tabularDirectory, "mstabcol.txt"));
73
+ const directory = PathBuilder.from(tabularDirectory);
74
+ const mstab = await readPipeDelimited(directory("mstab.txt"));
75
+ const mstabcol = await readPipeDelimited(directory("mstabcol.txt"));
80
76
  assertWidth(mstab, MSTAB_WIDTH, "mstab.txt");
81
77
  assertWidth(mstabcol, MSTABCOL_WIDTH, "mstabcol.txt");
82
78
  const files = new Map();
@@ -103,30 +99,30 @@ function assertWidth(rows, width, name) {
103
99
  }
104
100
  }
105
101
  /**
106
- * Read a logical SSURGO table, projecting `wanted` columns.
102
+ * Read a logical ssurgo table, projecting `wanted` columns.
107
103
  *
108
- * @throws {Error} When the archive declares no file for the table, when a requested column is not in the shipped
109
- * dictionary, or when a record is narrower than the position a requested column sits at.
104
+ * @throws {Error} When the archive declares no file for the table, when a requested column is not in
105
+ * the shipped dictionary, or when a record is narrower than the position a requested column sits at.
110
106
  */
111
107
  export async function readTable(tabularDirectory, dictionary, table, wanted) {
112
108
  const file = dictionary.files.get(table);
113
109
  if (!file) {
114
- throw new Error(`soil tabular: the archive's mstab.txt declares no file for table ${JSON.stringify(table)}`);
110
+ throw new Error(`soil tabular: the archive's mstab.txt declares no file for table ${stringifyJSON(table)}`);
115
111
  }
116
112
  const positions = dictionary.columns.get(table);
117
113
  if (!positions) {
118
- throw new Error(`soil tabular: the archive's mstabcol.txt declares no columns for table ${JSON.stringify(table)}`);
114
+ throw new Error(`soil tabular: the archive's mstabcol.txt declares no columns for table ${stringifyJSON(table)}`);
119
115
  }
120
116
  const projection = [];
121
117
  for (const column of wanted) {
122
118
  const position = positions.get(column);
123
119
  if (position === undefined) {
124
- throw new Error(`soil tabular: table ${table} declares no column ${JSON.stringify(column)} — the shipped dictionary names ${positions.size} columns, and projecting away a column a caller asked for would read downstream as an absence`);
120
+ throw new Error(`soil tabular: table ${table} declares no column ${stringifyJSON(column)} — the shipped dictionary names ${positions.size} columns, and projecting away a column a caller asked for would read downstream as an absence`);
125
121
  }
126
122
  projection.push([column, position]);
127
123
  }
128
124
  const rows = [];
129
- const raw = await readPipeDelimited(join(tabularDirectory, `${file}.txt`));
125
+ const raw = await readPipeDelimited(resolvePathBuilder(tabularDirectory, `${file}.txt`));
130
126
  for (const [index, row] of raw.entries()) {
131
127
  const record = {};
132
128
  for (const [column, position] of projection) {
@@ -140,9 +136,12 @@ export async function readTable(tabularDirectory, dictionary, table, wanted) {
140
136
  return { rows, recordCount: raw.length };
141
137
  }
142
138
  /**
143
- * Column positions in `msdomdet.txt`. Declared in `mstabcol.txt` under table `msdomdet`, so unlike the two bootstrap
144
- * files above these could be looked up — they are named here because the domain read runs before any dictionary-driven
145
- * read and the file is five columns wide by its own declaration.
139
+ * Column positions in `msdomdet.txt`.
140
+ *
141
+ * Declared in `mstabcol.txt` under table `msdomdet`, so unlike the two bootstrap
142
+ * files above these could be looked up.
143
+ * They are listed here because the domain read runs before any dictionary-driven read
144
+ * and the file is five columns wide by its own declaration.
146
145
  */
147
146
  const MSDOMDET_WIDTH = 5;
148
147
  /**
@@ -151,7 +150,7 @@ const MSDOMDET_WIDTH = 5;
151
150
  * @throws {Error} When the file is not the declared width.
152
151
  */
153
152
  export async function readDeclaredDomains(tabularDirectory) {
154
- const rows = await readPipeDelimited(join(tabularDirectory, "msdomdet.txt"));
153
+ const rows = await readPipeDelimited(resolvePathBuilder(tabularDirectory, "msdomdet.txt"));
155
154
  assertWidth(rows, MSDOMDET_WIDTH, "msdomdet.txt");
156
155
  return rows.map((row) => ({
157
156
  domain: row[0],
@@ -173,21 +172,24 @@ export function domainCodes(members, domain) {
173
172
  return codes;
174
173
  }
175
174
  /**
176
- * `M/D/YYYY H:MM:SS` (and the `MM/DD/YYYY HH:MM:SS` the tabular export writes) to an ISO date.
175
+ * `M/D/yyyy H:MM:SS` (and the `MM/DD/yyyy HH:MM:SS` the tabular export writes) to an ISO date.
176
+ *
177
+ * Soil Data Access writes `9/9/2025 1:57:25 PM`.
178
+ * The shipped `sacatlog.txt` writes the same instant as `09/09/2025 13:57:25`.
177
179
  *
178
- * The two channels spell the same instant differently — Soil Data Access answers `9/9/2025 1:57:25 PM` and the shipped
179
- * `sacatlog.txt` writes `09/09/2025 13:57:25` — and the download URL needs `2025-09-09`. Parsing to a date rather than
180
- * slicing the string is what makes both channels agree.
180
+ * The download URL needs `2025-09-09`.
181
+ * Both channels agree only when the code parses the value as a date instead of slicing the string.
181
182
  *
182
- * @throws {Error} When the value is not one of those shapes. A freshness date guessed wrong asks the download host for
183
- * a file that does not exist, and the host answers 400 rather than 404, which reads as a bad request rather than a
184
- * bad date.
183
+ * @throws {Error} When the value is not one of those shapes.
184
+ * An incorrect freshness date requests a nonexistent file.
185
+ * The host returns 400 for the request.
186
+ * A 404 would identify a missing file.
185
187
  */
186
- // repo-health-ignore export-name-affix -- parses the survey's M/D/YYYY form; `isoDate` formats a Date and reads none.
188
+ // repo-health-ignore export-name-affix -- parses the survey's M/D/yyyy form; `isoDate` formats a Date and reads none.
187
189
  export function saverestToISODate(value) {
188
190
  const matched = /^(\d{1,2})\/(\d{1,2})\/(\d{4})/u.exec(value.trim());
189
191
  if (!matched) {
190
- throw new Error(`soil tabular: cannot read ${JSON.stringify(value)} as a saverest date — expected M/D/YYYY, which is what both Soil Data Access and the shipped sacatlog.txt write`);
192
+ throw new Error(`soil tabular: cannot read ${stringifyJSON(value)} as a saverest date — expected M/D/YYYY, which is what both Soil Data Access and the shipped sacatlog.txt write`);
191
193
  }
192
194
  const [, month, day, year] = matched;
193
195
  return `${year}-${month.padStart(2, "0")}-${day.padStart(2, "0")}`;
@@ -1 +1 @@
1
- {"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../lib/sdk/tabular.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../sdk/tabular.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ */
6
+ import type { SoilComponentTable, SoilMapUnitTable } from "#schema";
7
+ import type { SoilDelineation, SoilFeatureSource } from "#sdk/ingest";
8
+ import type { SurveyAreaAttributes } from "#sdk/survey-area";
9
+ /**
10
+ * Where the fixture geometry sits — central Iowa, so the cells it produces
11
+ * are the ones a real build would use.
12
+ */
13
+ export declare const FIXTURE_ORIGIN: {
14
+ lat: number;
15
+ lon: number;
16
+ };
17
+ /**
18
+ * Degrees per fixture square side, about 1.6 km here — several resolution-9 cells across,
19
+ * so a square has both an interior and a fringe.
20
+ */
21
+ export declare const FIXTURE_SIDE = 0.015;
22
+ /**
23
+ * The fixture map units, each exercising exactly one reading.
24
+ */
25
+ export declare function fixtureMapUnits(areaSymbol?: string): SoilMapUnitTable[];
26
+ /**
27
+ * The fixture components; `mu-mixed` is 45/35/20 across three classes, the case a
28
+ * winner-class schema would report as class 2 and this one as a mixture.
29
+ */
30
+ export declare function fixtureComponents(): SoilComponentTable[];
31
+ /**
32
+ * The declared domains a fixture build validates and stores, matching what the real `msdomdet.txt` ships.
33
+ */
34
+ export declare function fixtureDomains(): SurveyAreaAttributes["domains"];
35
+ /**
36
+ * The fixture delineations include mixed, class-8, water and unrated squares, plus a `notcom` square.
37
+ * They sit left to right, each on its own ground area.
38
+ */
39
+ export declare function fixtureDelineations(areaSymbol?: string): SoilDelineation[];
40
+ /**
41
+ * The outline covering every fixture delineation, with margin because the coverage
42
+ * test keeps only cells lying wholly inside the outline.
43
+ */
44
+ export declare function fixtureOutline(margin?: number): {
45
+ type: "Polygon";
46
+ coordinates: number[][][];
47
+ };
48
+ /**
49
+ * A feature source over hand-built delineations.
50
+ */
51
+ export declare function fixtureSource(delineations: SoilDelineation[], areaSymbol?: string): SoilFeatureSource;
52
+ /**
53
+ * One fixture survey area's attributes; `areaAcres` is left NULL on purpose so the area
54
+ * cross-check compares against the authority rather than this package's own arithmetic.
55
+ */
56
+ export declare function fixtureAttributes(areaSymbol?: string): SurveyAreaAttributes;
57
+ //# sourceMappingURL=test-kit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kit.d.ts","sourceRoot":"","sources":["../../sdk/test-kit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,cAAc;IAAK,GAAG;IAAQ,GAAG;CAAS,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAQ,CAAA;AAEjC;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,SAAU,GAAG,gBAAgB,EAAE,CAoExE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,EAAE,CAcxD;AAwBD;;GAEG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAiBhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,SAAU,GAAG,eAAe,EAAE,CAU3E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAO,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;CAAE,CAS5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,UAAU,SAAU,GAAG,iBAAiB,CAatG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,SAAU,GAAG,oBAAoB,CAe5E"}
@@ -2,38 +2,22 @@
2
2
  * @copyright Sister Software
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
- *
6
- * Hand-built survey areas for the fixture rung: geometry, attributes and an outline, with no network and
7
- * no GDAL in the loop.
8
- *
9
- * A FIXTURE RUNG THAT COULD ONLY RUN THROUGH ogr2ogr WOULD TEST THE CONVERSION ON THE MACHINES THAT HAVE
10
- * IT AND NOTHING AT ALL ON THE ONES THAT DO NOT. What these fixtures exercise is the whole database half —
11
- * the declared-domain check, the cell classification, the area-weighted reduction, the four absence
12
- * shares, the coverage rows, the manifest and the seal.
13
- *
14
- * THE ABSENCE CASES ARE THE POINT, AND IOWA HAS NONE OF THEM. Every Iowa survey area is fully digitized,
15
- * so `NOTCOM`, `NOTPUB` and access-denied map units never appear in the live build — which means the only
16
- * place `nodata_share` can be exercised is here. The same is true of a component whose rating is NULL for
17
- * the not-rateable reason and of a class-8 rating: both exist in Iowa but sparsely, and a fixture pins the
18
- * behaviour rather than hoping a county contains one.
19
5
  */
20
- // The exterior and hole ring builders live in `@mailwoman/spatial` — a winding convention rather than this
21
- // product's geometry, and a second copy of it is a second place for a hole to stop being one.
6
+ // The exterior and hole ring builders live in `@mailwoman/spatial`; a second copy
7
+ // is a second place for a hole to stop being one.
22
8
  import { rectangleRing } from "@mailwoman/spatial";
23
9
  /**
24
- * Re-exported so a fixture in another workspace builds its rings the same way this one does.
25
- */
26
- /**
27
- * Where the fixture geometry sits — central Iowa, so the cells it produces are the ones a real build would use.
10
+ * Where the fixture geometry sits — central Iowa, so the cells it produces
11
+ * are the ones a real build would use.
28
12
  */
29
13
  export const FIXTURE_ORIGIN = { lat: 41.6, lon: -93.6 };
30
14
  /**
31
- * Degrees per fixture square side. About 1.6 km at this latitude — several resolution-9 cells across, so a fixture
32
- * square has both an interior and a fringe.
15
+ * Degrees per fixture square side, about 1.6 km here — several resolution-9 cells across,
16
+ * so a square has both an interior and a fringe.
33
17
  */
34
18
  export const FIXTURE_SIDE = 0.015;
35
19
  /**
36
- * The fixture map units. Each one exists to exercise exactly one reading.
20
+ * The fixture map units, each exercising exactly one reading.
37
21
  */
38
22
  export function fixtureMapUnits(areaSymbol = "XX001") {
39
23
  return [
@@ -105,8 +89,8 @@ export function fixtureMapUnits(areaSymbol = "XX001") {
105
89
  ];
106
90
  }
107
91
  /**
108
- * The fixture components. `mu-mixed` is 45/35/20 across three classes, which is the case a winner-class schema would
109
- * report as "class 2" and this one reports as a mixture.
92
+ * The fixture components; `mu-mixed` is 45/35/20 across three classes, the case a
93
+ * winner-class schema would report as class 2 and this one as a mixture.
110
94
  */
111
95
  export function fixtureComponents() {
112
96
  return [
@@ -114,9 +98,10 @@ export function fixtureComponents() {
114
98
  component("co-mixed-2", "mu-mixed", 35, "Series", "3", "e"),
115
99
  component("co-mixed-3", "mu-mixed", 20, "Series", "6", "s"),
116
100
  component("co-class8", "mu-class8", 100, "Series", "8", "s"),
117
- // A miscellaneous area with no rating: NOT RATEABLE, which is not the same as unrated and not the same as class 8.
101
+ // A miscellaneous area with no rating is not rateable.
102
+ // That differs from unrated soil and class 8.
118
103
  component("co-water", "mu-water", 100, "Miscellaneous area", null, null),
119
- // A named soil the survey did not rate: UNRATED.
104
+ // A soil type the survey did not rate: unrated.
120
105
  component("co-unrated", "mu-unrated", 100, "Series", null, null),
121
106
  // A minority component small enough to fall under the truncation floor once the lattice splits it.
122
107
  component("co-tail", "mu-mixed", 1, "Series", "7", "e"),
@@ -155,8 +140,8 @@ export function fixtureDomains() {
155
140
  return members;
156
141
  }
157
142
  /**
158
- * The fixture delineations: a mixed square, a class-8 square, a water square, an unrated square, and a `NOTCOM` square,
159
- * laid out left to right so each occupies its own ground.
143
+ * The fixture delineations include mixed, class-8, water and unrated squares, plus a `notcom` square.
144
+ * They sit left to right, each on its own ground area.
160
145
  */
161
146
  export function fixtureDelineations(areaSymbol = "XX001") {
162
147
  const { lat, lon } = FIXTURE_ORIGIN;
@@ -169,12 +154,8 @@ export function fixtureDelineations(areaSymbol = "XX001") {
169
154
  }));
170
155
  }
171
156
  /**
172
- * The outline covering every fixture delineation, with margin — the survey area's own footprint.
173
- *
174
- * The margin is nearly a degree because the coverage test is CONSERVATIVE: `interiorCoverageCellSet` keeps only cells
175
- * lying wholly inside the outline, and a resolution-6 cell is about 36 km across. An outline the size of the fixture
176
- * squares yields zero interior cells and the build refuses — correctly, since an artifact with no coverage rows answers
177
- * unknown everywhere while reporting success.
157
+ * The outline covering every fixture delineation, with margin because the coverage
158
+ * test keeps only cells lying wholly inside the outline.
178
159
  */
179
160
  export function fixtureOutline(margin = 0.75) {
180
161
  const { lat, lon } = FIXTURE_ORIGIN;
@@ -203,10 +184,8 @@ export function fixtureSource(delineations, areaSymbol = "XX001") {
203
184
  };
204
185
  }
205
186
  /**
206
- * One fixture survey area's attributes.
207
- *
208
- * `areaAcres` is left NULL on purpose: the area cross-check compares against what the AUTHORITY publishes, and a
209
- * fixture that invented an acreage would be checking this package's arithmetic against itself.
187
+ * One fixture survey area's attributes; `areaAcres` is left NULL on purpose so the area
188
+ * cross-check compares against the authority rather than this package's own arithmetic.
210
189
  */
211
190
  export function fixtureAttributes(areaSymbol = "XX001") {
212
191
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kit.js","sourceRoot":"","sources":["../../sdk/test-kit.ts"],"names":[],"mappings":"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"}