@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
package/out/index.js CHANGED
@@ -3,42 +3,9 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * The `soil.db` reader — what the soil survey assigns at a coordinate, and on what basis.
7
- *
8
- * THREE ANSWERS, AND KEEPING THEM APART IS THE WHOLE JOB.
9
- *
10
- * 1. `designated` — the survey mapped this location and the cell's class distribution is the answer.
11
- * 2. `designated_no_rating` — the survey mapped this location and rated nothing there. A cell that is
12
- * 100% `unrated_share` or `notrateable_share` is `designated`-complete and carries no capability
13
- * reading whatsoever, and that is not a corner case: 17.1% of national components carry no capability
14
- * rating.
15
- * 3. `unknown` — no coverage row. Outside any published survey area, or inside one where the polygon
16
- * exists and the soil mapping behind it does not.
17
- *
18
- * READINGS 2 AND 3 LOOK THE SAME FROM A CLASS CODE AND ARE OPPOSITE ANSWERS FROM THE READER. A layer that
19
- * could not tell them apart would report unmapped ground as unrated ground, which is one of the four
20
- * absences this whole layer exists to keep separate.
21
- *
22
- * THE ANSWER IS A DISTRIBUTION, AND THE TOP CLASS ALWAYS ARRIVES WITH THE SHARE IT RESTS ON. NRCS's own
23
- * `muaggatt` ships `niccdcd` beside `niccdcdpct` for exactly this reason, with an observed minimum of 2%.
24
- * A caller that wants one class may take `topClass`; it cannot take it without also being handed
25
- * `topClassShare`, because a 2% plurality and an 85% majority are different claims.
26
- *
27
- * NEITHER READING IS A STATEMENT ABOUT WHETHER THE LAND CAN BE FARMED. The layer reports what the soil
28
- * survey assigns to the map unit covering a location, which is a fact about the map. NRCS states that its
29
- * data "do not eliminate the need for onsite sampling, testing, and detailed study of specific sites for
30
- * intensive uses" and are "intended for planning purposes only" — so `limits` carries the authority's own
31
- * exclusions on every answer.
32
- *
33
- * THE PROBE IS ONE PRIMARY-KEY READ. The reduction is single-resolution and one row per cell, which is
34
- * what makes it the spine key: a coordinate becomes a cell, the cell becomes a row, and the geometry tier
35
- * underneath is never touched at read time. The unsimplified rings are there for a caller that wants to
36
- * re-derive the claim, not for the probe.
37
- *
38
- * THE READER IS SYNCHRONOUS AND USES RAW PREPARED STATEMENTS, matching the resolution ladder's existing
39
- * shape. The DDL that created these tables IS Kysely — see `schema.ts`.
6
+ * Synchronous reader for `soil.db` that returns the soil survey's capability-class distribution at a coordinate.
40
7
  */
41
- import { parseJSONStrict } from "@mailwoman/core/json";
8
+ import { parseJSONStrict, stringifyJSON } from "@mailwoman/core/json";
42
9
  import { assertCoverageNotEmpty, singleManifestRow, toLayerManifest, } from "@mailwoman/core/layers";
43
10
  import { shortCellToInt } from "@mailwoman/spatial";
44
11
  import { readCoverageAt } from "@mailwoman/spatial/h3/coverage";
@@ -47,29 +14,28 @@ import { latLngToCell } from "h3-js";
47
14
  import { SOIL_LAYER_NAME_PREFIX, SSURGO_PRODUCT_LIMITS } from "#vocabulary";
48
15
  export { FarmlandScope, farmlandScope, SSURGO_PRODUCT_LIMITS } from "#vocabulary";
49
16
  /**
50
- * What the layer can say about a coordinate.
17
+ * The kinds of answer the layer gives for a coordinate, where `DesignatedNoRating`
18
+ * and `Unknown` must stay apart.
51
19
  */
52
20
  export const SoilReadingKind = {
53
21
  /**
54
- * The survey mapped this location and assigns at least one capability class here.
22
+ * The survey mapped this location and assigns at least one capability class.
55
23
  */
56
24
  Designated: "designated",
57
25
  /**
58
- * The survey mapped this location and rated nothing here — every share is an absence share.
26
+ * The survey mapped this location and assigned no rating.
27
+ * Every share is reported as an absence share.
59
28
  */
60
29
  DesignatedNoRating: "designated_no_rating",
61
30
  /**
62
- * No coverage row. Unmapped by this authority, and never a low-capability reading.
31
+ * The layer has no coverage for this location.
32
+ * This does not imply low capability.
63
33
  */
64
34
  Unknown: "unknown",
65
35
  };
66
36
  /**
67
- * Read a sealed `soil.db`.
68
- *
69
- * Everything that would make the reader answer a well-formed wrong thing is refused at CONSTRUCTION rather than at
70
- * query time: a manifest naming a different product, a coverage table with no rows, a vocabulary with no classes. Each
71
- * of those would otherwise present as a reader that simply always answers `unknown`, which on a receipt is
72
- * indistinguishable from a region the authority genuinely has not surveyed.
37
+ * Reads a sealed `soil.db`, throwing at construction on a manifest for a different product,
38
+ * an empty coverage table, an empty class vocabulary, or a missing share weighting.
73
39
  */
74
40
  export class SoilCapabilityLookup {
75
41
  identity;
@@ -96,14 +62,13 @@ export class SoilCapabilityLookup {
96
62
  this.#selectCoverage = this.#database.prepare("SELECT h3_cell, completeness, basis, observed_rows FROM layer_coverage WHERE h3_cell = ?");
97
63
  }
98
64
  /**
99
- * What the soil survey assigns at this coordinate.
65
+ * Returns what the soil survey assigns at this coordinate.
100
66
  */
101
67
  lookup(latitude, longitude) {
102
68
  const indexCell = latLngToCell(latitude, longitude, this.identity.indexResolution);
103
69
  const coverage = this.#readCoverage(indexCell);
104
- // COVERAGE QUALIFIES THE READING, and without it there is nothing to report. Unlike a polygon hit — which is a
105
- // determination at a location and needs no coverage row to be true — every answer this layer gives is a per-cell
106
- // summary, so a summary row without a coverage row would state a determination outside the authority's footprint.
70
+ // Every answer is a per-cell summary, so a cell outside the coverage table
71
+ // is unknown even if a summary row exists.
107
72
  if (!coverage) {
108
73
  return {
109
74
  kind: SoilReadingKind.Unknown,
@@ -113,9 +78,8 @@ export class SoilCapabilityLookup {
113
78
  }
114
79
  const row = this.#selectCell.get(shortCellToInt(indexCell));
115
80
  if (!row) {
116
- // A coverage row without a summary row means the coverage cell is designated and this finer cell holds nothing —
117
- // the survey-area edge. Unknown rather than "no rating": the authority's statement covers the coverage cell, and
118
- // this location may be outside the delineations it covers.
81
+ // At a survey-area edge the coarser coverage cell is covered and this index cell
82
+ // has no delineation, so the location may be outside the survey.
119
83
  return {
120
84
  kind: SoilReadingKind.Unknown,
121
85
  coverage,
@@ -150,23 +114,15 @@ export class SoilCapabilityLookup {
150
114
  [Symbol.dispose]() {
151
115
  this.#database.destroy();
152
116
  }
153
- /**
154
- * The coverage row for the index cell's parent at the coverage resolution.
155
- */
156
117
  #readCoverage(indexCell) {
157
118
  return readCoverageAt(this.#selectCoverage, indexCell, this.identity.coverageResolution);
158
119
  }
159
120
  /**
160
- * Which survey area a coordinate falls in, by the delineation bounds each area's row carries.
121
+ * Returns the first survey area whose bounding rectangle contains the coordinate.
122
+ * overlapping rectangles may give the wrong area near a corner.
161
123
  *
162
- * A rectangle rather than the outline, and that is honest about what it is: the answer names WHICH published survey
163
- * the reading came from, and two neighbouring counties' rectangles overlap at their corners. The reading itself does
164
- * not depend on it — the cell row is the answer — so a corner ambiguity costs a label rather than a determination.
165
- *
166
- * A LINEAR SCAN, WHICH THE PILOT'S 99 SURVEY AREAS MAKE FREE AND A NATIONAL BUILD WOULD NOT. It returns on the first
167
- * containing rectangle, so the pilot costs a few dozen comparisons per geocode. At the 3,380 survey areas the country
168
- * holds this wants a bounding-box index; it is left as a scan because a structure sized for a set this build does not
169
- * hold would be untested at the size it was built for.
124
+ * This affects only the `surveyArea` label.
125
+ * A spatial index would be needed to avoid the linear scan for thousands of areas.
170
126
  */
171
127
  #surveyAreaAt(latitude, longitude) {
172
128
  for (const [index, bounds] of this.#bounds.entries()) {
@@ -180,18 +136,14 @@ export class SoilCapabilityLookup {
180
136
  return undefined;
181
137
  }
182
138
  }
183
- /**
184
- * Read and check the layer's identity.
185
- */
186
139
  function readIdentity(database, databasePath) {
187
140
  const manifestRows = database.prepare("SELECT * FROM layer_manifest").all();
188
- // The name's SUFFIX names the region a build covers, so the reader checks the prefix rather than a whole name — which
189
- // is why it asserts its own identity instead of taking `parseManifestRows`: one authority, one product, one rating
190
- // vocabulary per artifact, over whichever survey areas were built.
141
+ // The layer name ends with the region the build covers, so the reader checks only the prefix
142
+ // rather than `parseManifestRows`, which compares whole names.
191
143
  const row = singleManifestRow(manifestRows, `soil reader: ${databasePath}`);
192
144
  const name = String(row.name);
193
145
  if (!name.startsWith(SOIL_LAYER_NAME_PREFIX)) {
194
- throw new Error(`soil reader: ${databasePath} is layer ${JSON.stringify(name)}, which is not a ${JSON.stringify(SOIL_LAYER_NAME_PREFIX)} layer — one authority, one product, one rating vocabulary per artifact`);
146
+ throw new Error(`soil reader: ${databasePath} is layer ${stringifyJSON(name)}, which is not a ${stringifyJSON(SOIL_LAYER_NAME_PREFIX)} layer — one authority, one product, one rating vocabulary per artifact`);
195
147
  }
196
148
  const manifest = toLayerManifest(row);
197
149
  const spineKeys = manifest.spineKeys;
@@ -241,7 +193,7 @@ function readIdentity(database, databasePath) {
241
193
  })),
242
194
  classCodes: [...definitions.keys()],
243
195
  weighting: { code: weighting.code, description: weighting.definition },
244
- databasePath,
196
+ databasePath: databasePath.toString(),
245
197
  },
246
198
  definitions,
247
199
  bounds: areaRows.map((area) => ({
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EACN,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,GAGf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAe,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAGpC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B;;OAEG;IACH,UAAU,EAAE,YAAY;IACxB;;OAEG;IACH,kBAAkB,EAAE,sBAAsB;IAC1C;;OAEG;IACH,OAAO,EAAE,SAAS;CACT,CAAA;AA2HV;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAoB;IACvB,QAAQ,CAAmB;IAE3B,SAAS,CAA8B;IACvC,WAAW,CAAuC;IAClD,eAAe,CAAuC;IACtD,YAAY,CAAqB;IACjC,mBAAmB,CAAwB;IAC3C,OAAO,CAA2E;IAE3F,YAAY,OAAoC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAe,OAAO,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3F,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;YAEnE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;YACjC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAA;YACxC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAA;YACxD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YAExB,MAAM,KAAK,CAAA;QACZ,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CACxC,iMAAiM,CACjM,CAAA;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAC5C,0FAA0F,CAC1F,CAAA;IACF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAgB,EAAE,SAAiB;QAChD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAW,CAAA;QAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9C,+GAA+G;QAC/G,iHAAiH;QACjH,kHAAkH;QAClH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO;gBACN,IAAI,EAAE,eAAe,CAAC,OAAO;gBAC7B,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,qBAAqB;aAC7B,CAAA;QACF,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAa9C,CAAA;QAEZ,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,iHAAiH;YACjH,iHAAiH;YACjH,2DAA2D;YAC3D,OAAO;gBACN,IAAI,EAAE,eAAe,CAAC,OAAO;gBAC7B,QAAQ;gBACR,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,qBAAqB;aAC7B,CAAA;QACF,CAAC;QAED,MAAM,YAAY,GAA+B;YAChD,WAAW,EAAE,eAAe,CAAyB,GAAG,CAAC,YAAY,CAAC;YACtE,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;YACvC,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC;YAC/E,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY;SAC9B,CAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC1D,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEnF,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,kBAAkB;YACrF,YAAY;YACZ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,QAAQ;YACR,cAAc,EAAE,SAAS;YACzB,MAAM,EAAE,qBAAqB;SAC7B,CAAA;IACF,CAAC;IAEM,CAAC,MAAM,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACzF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,QAAgB,EAAE,SAAiB;QAChD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IACC,SAAS,IAAI,MAAM,CAAC,MAAM;gBAC1B,SAAS,IAAI,MAAM,CAAC,MAAM;gBAC1B,QAAQ,IAAI,MAAM,CAAC,MAAM;gBACzB,QAAQ,IAAI,MAAM,CAAC,MAAM,EACxB,CAAC;gBACF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YACvC,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAA;IACjB,CAAC;CACD;AAED;;GAEG;AACH,SAAS,YAAY,CACpB,QAAsC,EACtC,YAAoB;IAMpB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAExE,CAAA;IAED,sHAAsH;IACtH,mHAAmH;IACnH,mEAAmE;IACnE,MAAM,GAAG,GAAG,iBAAiB,CAAC,YAAY,EAAE,gBAAgB,YAAY,EAAE,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACd,gBAAgB,YAAY,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,yEAAyE,CAChM,CAAA;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAEpC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,2BAA2B,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,aAAa,GAAI,QAAQ,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAA;IAE7G,sBAAsB,CAAC,aAAa,EAAE,gBAAgB,YAAY,EAAE,EAAE,yCAAyC,CAAC,CAAA;IAEhH,MAAM,QAAQ,GAAG,QAAQ;SACvB,OAAO,CACP,gNAAgN,CAChN;SACA,GAAG,EAaH,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACd,gBAAgB,YAAY,gIAAgI,CAC5J,CAAA;IACF,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAErF,IAAI,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACd,gBAAgB,YAAY,gDAAgD,CAAC,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,+HAA+H,CAC9O,CAAA;IACF,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE7C,KAAK,MAAM,aAAa,IAAI,QAAQ;SAClC,OAAO,CAAC,kGAAkG,CAAC;SAC3G,GAAG,EAAiD,EAAE,CAAC;QACxD,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACd,gBAAgB,YAAY,8GAA8G,CAC1I,CAAA;IACF,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ;SACxB,OAAO,CAAC,+EAA+E,CAAC;SACxF,GAAG,EAAsD,CAAA;IAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACd,gBAAgB,YAAY,mHAAmH,CAC/I,CAAA;IACF,CAAC;IAED,OAAO;QACN,QAAQ,EAAE;YACT,QAAQ;YACR,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU;YACxC,kBAAkB,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAE;YAChD,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;gBACzC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB;gBAC3C,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;aAChC,CAAC,CAAC;YACH,UAAU,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YACnC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,UAAU,EAAE;YACtE,YAAY;SACZ;QACD,WAAW;QACX,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,MAAM,EAAE,IAAI,CAAC,OAAO;SACpB,CAAC,CAAC;KACH,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
package/out/paths.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Where the soil layer database and its download caches live under the data root's `db/` group.
7
+ */
8
+ import type { PathBuilder, PathBuilderLike } from "path-ts";
9
+ /**
10
+ * `<dataRoot>/db/soil`.
11
+ */
12
+ export declare function soilDatabaseRoot(dataRoot: PathBuilderLike): PathBuilder;
13
+ /**
14
+ * `$MAILWOMAN_DATA_ROOT/db/soil`, read when a path is requested.
15
+ *
16
+ * @see {@link soilDatabaseRoot} for another data root.
17
+ */
18
+ export declare const soilDatabasePath: PathBuilder;
19
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../lib/paths.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,WAAW,CAEvE;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAA8C,CAAA"}
package/out/paths.js ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Where the soil layer database and its download caches live under the data root's `db/` group.
7
+ */
8
+ import { databaseRootPath, dataRootPath } from "@mailwoman/core/data-root";
9
+ /**
10
+ * `<dataRoot>/db/soil`.
11
+ */
12
+ export function soilDatabaseRoot(dataRoot) {
13
+ return databaseRootPath(dataRoot)("soil");
14
+ }
15
+ /**
16
+ * `$MAILWOMAN_DATA_ROOT/db/soil`, read when a path is requested.
17
+ *
18
+ * @see {@link soilDatabaseRoot} for another data root.
19
+ */
20
+ export const soilDatabasePath = soilDatabaseRoot(dataRootPath());
21
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../lib/paths.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG1E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAyB;IACzD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAA"}