@bedrock-engineer/bro-xml-parser 0.2.0 → 0.3.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 (47) hide show
  1. package/dist/browser.d.ts +1 -1
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js.map +1 -1
  4. package/dist/node.d.ts +1 -1
  5. package/dist/node.d.ts.map +1 -1
  6. package/dist/node.js.map +1 -1
  7. package/dist/resolvers/bhrg-resolvers.d.ts +3 -18
  8. package/dist/resolvers/bhrg-resolvers.d.ts.map +1 -1
  9. package/dist/resolvers/bhrg-resolvers.js +294 -41
  10. package/dist/resolvers/bhrg-resolvers.js.map +1 -1
  11. package/dist/resolvers/bore-resolver-utils.d.ts +21 -2
  12. package/dist/resolvers/bore-resolver-utils.d.ts.map +1 -1
  13. package/dist/resolvers/bore-resolver-utils.js +69 -22
  14. package/dist/resolvers/bore-resolver-utils.js.map +1 -1
  15. package/dist/resolvers/bore-resolvers.d.ts +34 -17
  16. package/dist/resolvers/bore-resolvers.d.ts.map +1 -1
  17. package/dist/resolvers/bore-resolvers.js +342 -175
  18. package/dist/resolvers/bore-resolvers.js.map +1 -1
  19. package/dist/resolvers/cpt-resolvers.d.ts +1 -8
  20. package/dist/resolvers/cpt-resolvers.d.ts.map +1 -1
  21. package/dist/resolvers/cpt-resolvers.js +2 -29
  22. package/dist/resolvers/cpt-resolvers.js.map +1 -1
  23. package/dist/resolvers/type-resolvers.d.ts +12 -4
  24. package/dist/resolvers/type-resolvers.d.ts.map +1 -1
  25. package/dist/resolvers/type-resolvers.js +12 -4
  26. package/dist/resolvers/type-resolvers.js.map +1 -1
  27. package/dist/resolvers.d.ts +3 -2
  28. package/dist/resolvers.d.ts.map +1 -1
  29. package/dist/resolvers.js +4 -2
  30. package/dist/resolvers.js.map +1 -1
  31. package/dist/schemas/bhrg-schema.d.ts.map +1 -1
  32. package/dist/schemas/bhrg-schema.js +35 -8
  33. package/dist/schemas/bhrg-schema.js.map +1 -1
  34. package/dist/schemas/bore-schema.d.ts.map +1 -1
  35. package/dist/schemas/bore-schema.js +46 -11
  36. package/dist/schemas/bore-schema.js.map +1 -1
  37. package/dist/schemas/common-fields.d.ts +16 -0
  38. package/dist/schemas/common-fields.d.ts.map +1 -0
  39. package/dist/schemas/common-fields.js +31 -0
  40. package/dist/schemas/common-fields.js.map +1 -0
  41. package/dist/schemas/cpt-schema.d.ts.map +1 -1
  42. package/dist/schemas/cpt-schema.js +20 -10
  43. package/dist/schemas/cpt-schema.js.map +1 -1
  44. package/dist/types/index.d.ts +465 -49
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/dist/types/index.js.map +1 -1
  47. package/package.json +3 -2
@@ -1,3 +1,4 @@
1
+ import { parseDate, parseBoolean } from "./type-resolvers.js";
1
2
  /**
2
3
  * Creates a reusable namespace resolver function
3
4
  *
@@ -144,28 +145,7 @@ export function createLayerParser(config) {
144
145
  [config.requiredFields.soilNameKey]: soilName,
145
146
  };
146
147
  // Extract optional fields
147
- for (const field of config.optionalFields) {
148
- const fieldNode = adapter.evaluateXPath(layerNode, field.xpath, nsResolver);
149
- const textContent = fieldNode?.textContent?.trim() ?? null;
150
- if (field.transform) {
151
- // Apply custom transform function
152
- const transformed = field.transform(textContent);
153
- if (field.omitIfEmpty && (transformed === null || transformed === undefined)) {
154
- continue;
155
- }
156
- layer[field.key] = transformed;
157
- }
158
- else if (field.omitIfEmpty) {
159
- // Only set property if value exists
160
- if (textContent) {
161
- layer[field.key] = textContent;
162
- }
163
- }
164
- else {
165
- // Always set, using null for missing values
166
- layer[field.key] = textContent;
167
- }
168
- }
148
+ Object.assign(layer, extractOptionalFields(config.optionalFields, layerNode, adapter, namespaces));
169
149
  // Call post-process callback for complex nested fields
170
150
  if (config.postProcess) {
171
151
  config.postProcess(layerNode, layer, adapter, namespaces);
@@ -175,6 +155,42 @@ export function createLayerParser(config) {
175
155
  return layers;
176
156
  };
177
157
  }
158
+ /**
159
+ * Extract a set of optional fields into a typed `Partial<T>` the caller can
160
+ * spread into a layer object (or Object.assign onto one).
161
+ *
162
+ * Shared by createLayerParser and bespoke layer parsers so the omitIfEmpty /
163
+ * transform semantics stay identical everywhere. The only assertion is where a
164
+ * field's `transform` (typed `=> unknown`) or the raw text is committed to its
165
+ * declared property type - the inherent XML-to-typed-value boundary.
166
+ */
167
+ export function extractOptionalFields(fields, layerNode, adapter, namespaces) {
168
+ const nsResolver = createNamespaceResolver(namespaces);
169
+ const out = {};
170
+ const set = (key, value) => {
171
+ out[key] = value;
172
+ };
173
+ for (const field of fields) {
174
+ const fieldNode = adapter.evaluateXPath(layerNode, field.xpath, nsResolver);
175
+ const textContent = fieldNode?.textContent?.trim() ?? null;
176
+ if (field.transform) {
177
+ const transformed = field.transform(textContent);
178
+ if (field.omitIfEmpty && (transformed === null || transformed === undefined)) {
179
+ continue;
180
+ }
181
+ set(field.key, transformed);
182
+ }
183
+ else if (field.omitIfEmpty) {
184
+ if (textContent) {
185
+ set(field.key, textContent);
186
+ }
187
+ }
188
+ else {
189
+ set(field.key, textContent);
190
+ }
191
+ }
192
+ return out;
193
+ }
178
194
  /**
179
195
  * Parse space-separated comma-delimited pairs from CSV text
180
196
  *
@@ -269,4 +285,35 @@ export function parseCSVRows(csvText, parseRow) {
269
285
  }
270
286
  return results;
271
287
  }
288
+ /**
289
+ * Parse the BRO registration history.
290
+ *
291
+ * Shared by every registration type (CPT, BHR-GT, BHR-G): the `registrationHistory`
292
+ * element is a direct child of the registration object and its children are all
293
+ * `brocom:*`, identical across domains - only the container's ds-namespace differs,
294
+ * which we sidestep with a namespace-agnostic local-name() match.
295
+ */
296
+ export function processRegistrationHistory(_value, context) {
297
+ const { element, adapter, namespaces } = context;
298
+ const nsResolver = createNamespaceResolver(namespaces);
299
+ const historyNode = adapter.evaluateXPath(element, "./*[local-name()='registrationHistory']", nsResolver);
300
+ if (!historyNode) {
301
+ return null;
302
+ }
303
+ const getText = createXPathTextGetter(historyNode, adapter, namespaces);
304
+ return {
305
+ objectRegistrationTime: parseDate(getText("./brocom:objectRegistrationTime")),
306
+ registrationStatus: getText("./brocom:registrationStatus"),
307
+ registrationCompletionTime: parseDate(getText("./brocom:registrationCompletionTime")),
308
+ latestCorrectionTime: parseDate(getText("./brocom:latestCorrectionTime")),
309
+ latestAdditionTime: parseDate(getText("./brocom:latestAdditionTime")),
310
+ underReviewTime: parseDate(getText("./brocom:underReviewTime")),
311
+ deregistrationTime: parseDate(getText("./brocom:deregistrationTime")),
312
+ reregistrationTime: parseDate(getText("./brocom:reregistrationTime")),
313
+ corrected: parseBoolean(getText("./brocom:corrected")),
314
+ underReview: parseBoolean(getText("./brocom:underReview")),
315
+ deregistered: parseBoolean(getText("./brocom:deregistered")),
316
+ reregistered: parseBoolean(getText("./brocom:reregistered")),
317
+ };
318
+ }
272
319
  //# sourceMappingURL=bore-resolver-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bore-resolver-utils.js","sourceRoot":"","sources":["../../src/resolvers/bore-resolver-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bore-resolver-utils.js","sourceRoot":"","sources":["../../src/resolvers/bore-resolver-utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAK9D;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAsB;IAC5D,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAiB,EACjB,OAAmB,EACnB,UAAsB;IAEtB,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEvD,OAAO,CAAC,KAAa,EAAiB,EAAE;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAgB,EAChB,SAAiB,EACjB,OAAmB,EACnB,UAAsB;IAEtB,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,YAAY,CAC1B,WAAiB,EACjB,YAAoB,EACpB,KAAyD,EACzD,OAAmB,EACnB,UAAsB;IAEtB,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA2CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA4B;IAK5B,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC9C,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAEvD,0BAA0B;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,0BAA0B;YAC1B,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAC7C,SAAS,EACT,MAAM,CAAC,cAAc,CAAC,aAAa,EACnC,UAAU,CACX,CAAC;YAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAC7C,SAAS,EACT,MAAM,CAAC,cAAc,CAAC,aAAa,EACnC,UAAU,CACX,CAAC;YAEF,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CACxC,SAAS,EACT,MAAM,CAAC,cAAc,CAAC,QAAQ,EAC9B,UAAU,CACX,CAAC;YAEF,4CAA4C;YAC5C,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC9D,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;YAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEzD,gDAAgD;YAChD,MAAM,KAAK,GAAG;gBACZ,aAAa;gBACb,aAAa;gBACb,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,QAAQ;aACzC,CAAC;YAEP,0BAA0B;YAC1B,MAAM,CAAC,MAAM,CACX,KAAK,EACL,qBAAqB,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7E,CAAC;YAEF,uDAAuD;YACvD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoC,EACpC,SAAe,EACf,OAAmB,EACnB,UAAsB;IAEtB,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,GAAG,GAAe,EAAE,CAAC;IAE3B,MAAM,GAAG,GAAG,CAAC,GAAY,EAAE,KAAc,EAAQ,EAAE;QACjD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAmB,CAAC;IACjC,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAE3D,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,CAAC,EAAE,CAAC;gBAC7E,SAAS;YACX,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAkC,EAClC,SAAmD;IAEnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE3C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAkC,EAClC,QAA8C;IAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEjC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAqB,EACrB,OAAwB;IAExB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CACvC,OAAO,EACP,yCAAyC,EACzC,UAAU,CACX,CAAC;IACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAExE,OAAO;QACL,sBAAsB,EAAE,SAAS,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC7E,kBAAkB,EAAE,OAAO,CAAC,6BAA6B,CAAC;QAC1D,0BAA0B,EAAE,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACrF,oBAAoB,EAAE,SAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACzE,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACrE,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC/D,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACrE,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACrE,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACtD,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC1D,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC5D,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC"}
@@ -3,24 +3,13 @@
3
3
  *
4
4
  * Functions to parse and convert bore-specific data structures
5
5
  */
6
- import type { ResolverContext, BHRGTLayer, BoreholeSampleAnalysis, XMLAdapter, Namespaces, BoredInterval, SampledInterval, CompletedInterval, NotDescribedInterval, RegistrationHistory, ReportHistory } from "../types/index.js";
6
+ import type { ResolverContext, BHRGTLayer, PostSedimentaryDiscontinuity, BoreholeSampleAnalysis, BoredInterval, SampledInterval, CompletedInterval, NotDescribedInterval, ExcavatedLayer, BoringVelocityMeasurement, FluidMudLayer, ReportHistory } from "../types/index.js";
7
7
  /**
8
- * Process bore layer data from descriptiveBoreholeLog element
9
- *
10
- * Uses createLayerParser factory to extract layer elements and convert
11
- * them to BHRGTLayer objects with depth boundaries and soil classification.
12
- *
13
- * Extracts all coded fields from BHR-GT layers including:
14
- * - Boundary determination methods (how boundaries were positioned)
15
- * - Anthropogenic indicator (whether layer is man-made)
16
- * - Tertiary soil constituent
17
- * - Grain shape properties for coarse fractions
8
+ * Parse BHR-GT descriptive-log layers into a discriminated union of soil / rock
9
+ * layers. A layer describes either soil or rock; we branch on which is present
10
+ * so rock layers aren't forced through the soil shape (and vice versa).
18
11
  */
19
- export declare const processBHRGTLayerData: (value: string | null, context: {
20
- node: Node;
21
- adapter: XMLAdapter;
22
- namespaces: Namespaces;
23
- }) => BHRGTLayer[];
12
+ export declare function processBHRGTLayerData(_value: string | null, context: ResolverContext): Array<BHRGTLayer>;
24
13
  /**
25
14
  * Process borehole sample analysis data from boreholeSampleAnalysis element
26
15
  *
@@ -50,18 +39,46 @@ export declare function processSampledIntervals(_value: string | null, context:
50
39
  * Extracts array of completed intervals with backfill information.
51
40
  */
52
41
  export declare function processCompletedIntervals(_value: string | null, context: ResolverContext): Array<CompletedInterval>;
42
+ /**
43
+ * Process excavated layers from boring element
44
+ *
45
+ * Layers removed by excavation before/during boring.
46
+ */
47
+ export declare function processExcavatedLayers(_value: string | null, context: ResolverContext): Array<ExcavatedLayer>;
48
+ /**
49
+ * Process boring velocity profile from boring element
50
+ *
51
+ * Series of (elapsed time, depth) points describing drilling progress.
52
+ */
53
+ export declare function processBoringVelocity(_value: string | null, context: ResolverContext): Array<BoringVelocityMeasurement>;
54
+ /**
55
+ * Process fluid mud layer from document element
56
+ *
57
+ * Single optional fluid mud (slib) layer recorded at the borehole.
58
+ */
59
+ export declare function processFluidMudLayer(_value: string | null, context: ResolverContext): FluidMudLayer | undefined;
60
+ /**
61
+ * Resolve an organisation identifier (KvK number, or European company
62
+ * registration number as a fallback) from an organisation element.
63
+ */
64
+ export declare function resolveOrganisationId(_value: string | null, context: ResolverContext): string | null;
53
65
  /**
54
66
  * Process not described intervals from boreholeSampleDescription element
55
67
  *
56
68
  * Extracts array of intervals that were not described and the reason.
57
69
  */
58
70
  export declare function processNotDescribedIntervals(_value: string | null, context: ResolverContext): Array<NotDescribedInterval>;
71
+ /**
72
+ * Process post-sedimentary discontinuities from the descriptive borehole log
73
+ *
74
+ * Fractures/fault planes crossing described intervals (e.g. in rock).
75
+ */
76
+ export declare function processPostSedimentaryDiscontinuities(_value: string | null, context: ResolverContext): Array<PostSedimentaryDiscontinuity>;
59
77
  /**
60
78
  * Process registration history from document element
61
79
  *
62
80
  * Extracts BRO registration history information.
63
81
  */
64
- export declare function processRegistrationHistory(_value: string | null, context: ResolverContext): RegistrationHistory | null;
65
82
  /**
66
83
  * Process report history from document element
67
84
  *
@@ -1 +1 @@
1
- {"version":3,"file":"bore-resolvers.d.ts","sourceRoot":"","sources":["../../src/resolvers/bore-resolvers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EAEV,sBAAsB,EAetB,UAAU,EACV,UAAU,EACV,aAAa,EACb,eAAe,EAEf,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAkC3B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;;;;kBAkKhC,CAAC;AAinCH;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,sBAAsB,GAAG,SAAS,CAqGpC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,aAAa,CAAC,CAgCtB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,eAAe,CAAC,CA+DxB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAkC1B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,oBAAoB,CAAC,CA+B7B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,mBAAmB,GAAG,IAAI,CA4B5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,aAAa,GAAG,IAAI,CAyCtB"}
1
+ {"version":3,"file":"bore-resolvers.d.ts","sourceRoot":"","sources":["../../src/resolvers/bore-resolvers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EAKV,4BAA4B,EAC5B,sBAAsB,EAiBtB,aAAa,EACb,eAAe,EAEf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,yBAAyB,EACzB,aAAa,EACb,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAuL3B;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,UAAU,CAAC,CA8DnB;AAyrCD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,sBAAsB,GAAG,SAAS,CAqGpC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,aAAa,CAAC,CAgCtB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,eAAe,CAAC,CAiFxB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAoC1B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,cAAc,CAAC,CA8BvB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,yBAAyB,CAAC,CAiBlC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,aAAa,GAAG,SAAS,CAkB3B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,MAAM,GAAG,IAAI,CAOf;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,oBAAoB,CAAC,CA+B7B;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,KAAK,CAAC,4BAA4B,CAAC,CAoCrC;AAED;;;;GAIG;AAIH;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,eAAe,GACvB,aAAa,GAAG,IAAI,CAyCtB"}