@bedrock-engineer/bro-xml-parser 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +21 -12
  2. package/dist/browser.d.ts +15 -5
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +7 -5
  5. package/dist/browser.js.map +1 -1
  6. package/dist/core/columns.d.ts +80 -0
  7. package/dist/core/columns.d.ts.map +1 -0
  8. package/dist/core/columns.js +100 -0
  9. package/dist/core/columns.js.map +1 -0
  10. package/dist/core/producer.d.ts +216 -0
  11. package/dist/core/producer.d.ts.map +1 -0
  12. package/dist/core/producer.js +85 -0
  13. package/dist/core/producer.js.map +1 -0
  14. package/dist/core/schema-parser.d.ts +41 -17
  15. package/dist/core/schema-parser.d.ts.map +1 -1
  16. package/dist/core/schema-parser.js +178 -73
  17. package/dist/core/schema-parser.js.map +1 -1
  18. package/dist/core/version-detector.d.ts +3 -1
  19. package/dist/core/version-detector.d.ts.map +1 -1
  20. package/dist/core/version-detector.js +37 -0
  21. package/dist/core/version-detector.js.map +1 -1
  22. package/dist/decoders/constants.d.ts +2 -0
  23. package/dist/decoders/constants.d.ts.map +1 -0
  24. package/dist/decoders/constants.js +2 -0
  25. package/dist/decoders/constants.js.map +1 -0
  26. package/dist/decoders/type-decoders.d.ts +38 -0
  27. package/dist/decoders/type-decoders.d.ts.map +1 -0
  28. package/dist/decoders/type-decoders.js +134 -0
  29. package/dist/decoders/type-decoders.js.map +1 -0
  30. package/dist/namespaces.d.ts.map +1 -1
  31. package/dist/namespaces.js +16 -0
  32. package/dist/namespaces.js.map +1 -1
  33. package/dist/node.d.ts +15 -5
  34. package/dist/node.d.ts.map +1 -1
  35. package/dist/node.js +7 -5
  36. package/dist/node.js.map +1 -1
  37. package/dist/parser.d.ts +69 -19
  38. package/dist/parser.d.ts.map +1 -1
  39. package/dist/parser.js +103 -29
  40. package/dist/parser.js.map +1 -1
  41. package/dist/producers.d.ts +36 -0
  42. package/dist/producers.d.ts.map +1 -0
  43. package/dist/producers.js +35 -0
  44. package/dist/producers.js.map +1 -0
  45. package/dist/resolvers/bhrg-resolvers.d.ts +3 -18
  46. package/dist/resolvers/bhrg-resolvers.d.ts.map +1 -1
  47. package/dist/resolvers/bhrg-resolvers.js +294 -41
  48. package/dist/resolvers/bhrg-resolvers.js.map +1 -1
  49. package/dist/resolvers/bore-resolver-utils.d.ts +21 -2
  50. package/dist/resolvers/bore-resolver-utils.d.ts.map +1 -1
  51. package/dist/resolvers/bore-resolver-utils.js +69 -22
  52. package/dist/resolvers/bore-resolver-utils.js.map +1 -1
  53. package/dist/resolvers/bore-resolvers.d.ts +34 -17
  54. package/dist/resolvers/bore-resolvers.d.ts.map +1 -1
  55. package/dist/resolvers/bore-resolvers.js +342 -175
  56. package/dist/resolvers/bore-resolvers.js.map +1 -1
  57. package/dist/resolvers/cpt-resolvers.d.ts +1 -8
  58. package/dist/resolvers/cpt-resolvers.d.ts.map +1 -1
  59. package/dist/resolvers/cpt-resolvers.js +2 -29
  60. package/dist/resolvers/cpt-resolvers.js.map +1 -1
  61. package/dist/resolvers/gld-resolvers.d.ts +30 -0
  62. package/dist/resolvers/gld-resolvers.d.ts.map +1 -0
  63. package/dist/resolvers/gld-resolvers.js +76 -0
  64. package/dist/resolvers/gld-resolvers.js.map +1 -0
  65. package/dist/resolvers/gmw-resolvers.d.ts +37 -0
  66. package/dist/resolvers/gmw-resolvers.d.ts.map +1 -0
  67. package/dist/resolvers/gmw-resolvers.js +101 -0
  68. package/dist/resolvers/gmw-resolvers.js.map +1 -0
  69. package/dist/resolvers/type-resolvers.d.ts +12 -4
  70. package/dist/resolvers/type-resolvers.d.ts.map +1 -1
  71. package/dist/resolvers/type-resolvers.js +12 -4
  72. package/dist/resolvers/type-resolvers.js.map +1 -1
  73. package/dist/resolvers.d.ts +5 -2
  74. package/dist/resolvers.d.ts.map +1 -1
  75. package/dist/resolvers.js +8 -2
  76. package/dist/resolvers.js.map +1 -1
  77. package/dist/schema-presets.d.ts +67 -16
  78. package/dist/schema-presets.d.ts.map +1 -1
  79. package/dist/schema-presets.js +51 -114
  80. package/dist/schema-presets.js.map +1 -1
  81. package/dist/schemas/bhrg-schema.d.ts +528 -9
  82. package/dist/schemas/bhrg-schema.d.ts.map +1 -1
  83. package/dist/schemas/bhrg-schema.js +330 -162
  84. package/dist/schemas/bhrg-schema.js.map +1 -1
  85. package/dist/schemas/bhrgt-analysis.d.ts +1057 -0
  86. package/dist/schemas/bhrgt-analysis.d.ts.map +1 -0
  87. package/dist/schemas/bhrgt-analysis.js +454 -0
  88. package/dist/schemas/bhrgt-analysis.js.map +1 -0
  89. package/dist/schemas/bore-schema.d.ts +773 -9
  90. package/dist/schemas/bore-schema.d.ts.map +1 -1
  91. package/dist/schemas/bore-schema.js +344 -257
  92. package/dist/schemas/bore-schema.js.map +1 -1
  93. package/dist/schemas/common-fields.d.ts +61 -0
  94. package/dist/schemas/common-fields.d.ts.map +1 -0
  95. package/dist/schemas/common-fields.js +82 -0
  96. package/dist/schemas/common-fields.js.map +1 -0
  97. package/dist/schemas/cpt-schema.d.ts +126 -9
  98. package/dist/schemas/cpt-schema.d.ts.map +1 -1
  99. package/dist/schemas/cpt-schema.js +182 -275
  100. package/dist/schemas/cpt-schema.js.map +1 -1
  101. package/dist/schemas/generated/gld.generated.d.ts +9 -0
  102. package/dist/schemas/generated/gld.generated.d.ts.map +1 -0
  103. package/dist/schemas/generated/gld.generated.js +19 -0
  104. package/dist/schemas/generated/gld.generated.js.map +1 -0
  105. package/dist/schemas/gld-schema.d.ts +92 -0
  106. package/dist/schemas/gld-schema.d.ts.map +1 -0
  107. package/dist/schemas/gld-schema.js +88 -0
  108. package/dist/schemas/gld-schema.js.map +1 -0
  109. package/dist/schemas/gmw-schema.d.ts +180 -0
  110. package/dist/schemas/gmw-schema.d.ts.map +1 -0
  111. package/dist/schemas/gmw-schema.js +131 -0
  112. package/dist/schemas/gmw-schema.js.map +1 -0
  113. package/dist/types/index.d.ts +51 -1005
  114. package/dist/types/index.d.ts.map +1 -1
  115. package/dist/types/index.js.map +1 -1
  116. package/package.json +3 -2
@@ -27,6 +27,9 @@
27
27
  export { parseFloat, parseInt, parseBoolean, parseDate, parseQualityClass, } from "./resolvers/type-resolvers.js";
28
28
  export { parseGMLLocation } from "./resolvers/gml-resolvers.js";
29
29
  export { processCPTResult } from "./resolvers/measurement-resolver.js";
30
- export { processBHRGTLayerData, processBoreholeSampleAnalysis, processBoredIntervals, processSampledIntervals, processCompletedIntervals, processNotDescribedIntervals, processRegistrationHistory, processReportHistory, } from "./resolvers/bore-resolvers.js";
31
- export { processBHRGLayerData, processBHRGBoredIntervals, processBHRGSampledIntervals, processBHRGRegistrationHistory, processBHRGReportHistory, } from "./resolvers/bhrg-resolvers.js";
30
+ export { processBHRGTLayerData, processBoreholeSampleAnalysis, processBoredIntervals, processSampledIntervals, processCompletedIntervals, processNotDescribedIntervals, processReportHistory, } from "./resolvers/bore-resolvers.js";
31
+ export { processRegistrationHistory } from "./resolvers/bore-resolver-utils.js";
32
+ export { processBHRGLayerData, processBHRGBoredIntervals, processBHRGSampledIntervals, processBHRGReportHistory, } from "./resolvers/bhrg-resolvers.js";
33
+ export { processMonitoringTubes, processIntermediateEvents, processSurveyBoreholeResearchIds, } from "./resolvers/gmw-resolvers.js";
34
+ export { processMonitoringPoint, processMonitoringNets, processObservations, } from "./resolvers/gld-resolvers.js";
32
35
  //# sourceMappingURL=resolvers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC"}
package/dist/resolvers.js CHANGED
@@ -31,7 +31,13 @@ export { parseGMLLocation } from "./resolvers/gml-resolvers.js";
31
31
  // Re-export measurement resolvers
32
32
  export { processCPTResult } from "./resolvers/measurement-resolver.js";
33
33
  // Re-export bore resolvers (BHR-GT)
34
- export { processBHRGTLayerData, processBoreholeSampleAnalysis, processBoredIntervals, processSampledIntervals, processCompletedIntervals, processNotDescribedIntervals, processRegistrationHistory, processReportHistory, } from "./resolvers/bore-resolvers.js";
34
+ export { processBHRGTLayerData, processBoreholeSampleAnalysis, processBoredIntervals, processSampledIntervals, processCompletedIntervals, processNotDescribedIntervals, processReportHistory, } from "./resolvers/bore-resolvers.js";
35
+ // Registration history is shared across all registration types.
36
+ export { processRegistrationHistory } from "./resolvers/bore-resolver-utils.js";
35
37
  // Re-export BHR-G resolvers
36
- export { processBHRGLayerData, processBHRGBoredIntervals, processBHRGSampledIntervals, processBHRGRegistrationHistory, processBHRGReportHistory, } from "./resolvers/bhrg-resolvers.js";
38
+ export { processBHRGLayerData, processBHRGBoredIntervals, processBHRGSampledIntervals, processBHRGReportHistory, } from "./resolvers/bhrg-resolvers.js";
39
+ // Re-export GMW resolvers
40
+ export { processMonitoringTubes, processIntermediateEvents, processSurveyBoreholeResearchIds, } from "./resolvers/gmw-resolvers.js";
41
+ // Re-export GLD resolvers
42
+ export { processMonitoringPoint, processMonitoringNets, processObservations, } from "./resolvers/gld-resolvers.js";
37
43
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,2BAA2B;AAC3B,OAAO,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,oCAAoC;AACpC,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAEvC,4BAA4B;AAC5B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,2BAA2B;AAC3B,OAAO,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,oCAAoC;AACpC,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAEvC,gEAAgE;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,4BAA4B;AAC5B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,0BAA0B;AAC1B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AAEtC,0BAA0B;AAC1B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC"}
@@ -1,59 +1,110 @@
1
1
  /**
2
- * Schema presets for common extraction patterns
2
+ * Schema presets for common extraction patterns.
3
3
  *
4
- * These presets can be used directly or extended for custom needs.
4
+ * Each preset is a bare map of field name → {@link Producer}, built from the
5
+ * `producers` authoring surface. Pass one to {@link BROParser.parseCustom}; the
6
+ * return type is inferred from the map (each field's producer output type, plus
7
+ * `meta`). Presets can be used directly or spread into a larger custom map.
5
8
  *
6
9
  * @example
7
10
  * ```typescript
8
- * import { BROParser, presets } from '@bedrock-engineer/bro-xml';
11
+ * import { BROParser, presets, producers as p } from '@bedrock-engineer/bro-xml';
9
12
  *
10
13
  * const parser = new BROParser(new XMLAdapter());
11
14
  *
12
15
  * // Use a preset directly
13
16
  * const locationData = parser.parseCustom(xml, presets.CPT_LOCATION_ONLY, 'CPT');
17
+ * locationData.deliveredLocation; // Location | null — inferred
14
18
  *
15
19
  * // Or extend a preset
16
- * const mySchema = {
20
+ * const result = parser.parseCustom(xml, {
17
21
  * ...presets.CPT_METADATA_ONLY,
18
- * customField: { xpath: './my/custom/path' }
19
- * };
22
+ * customField: p.text('./my/custom/path'),
23
+ * }, 'CPT');
20
24
  * ```
21
25
  */
22
- import type { Schema } from "./types/index.js";
23
26
  /**
24
27
  * CPT: Just the BRO ID and quality regime
25
28
  */
26
- export declare const CPT_ID_ONLY: Schema;
29
+ export declare const CPT_ID_ONLY: {
30
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
31
+ qualityRegime: import("./core/producer.js").ScalarProducer<string | null, "optional">;
32
+ };
27
33
  /**
28
34
  * CPT: Location data only (delivered and standardized coordinates)
29
35
  */
30
- export declare const CPT_LOCATION_ONLY: Schema;
36
+ export declare const CPT_LOCATION_ONLY: {
37
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
38
+ deliveredLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
39
+ standardizedLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
40
+ deliveredVerticalPositionOffset: import("./core/producer.js").ScalarProducer<number | null, "optional">;
41
+ };
31
42
  /**
32
43
  * CPT: Basic metadata without measurement data
33
44
  */
34
- export declare const CPT_METADATA_ONLY: Schema;
45
+ export declare const CPT_METADATA_ONLY: {
46
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
47
+ qualityRegime: import("./core/producer.js").ScalarProducer<string | null, "optional">;
48
+ researchReportDate: import("./core/producer.js").ScalarProducer<string | null, "optional">;
49
+ deliveredLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
50
+ cptStandard: import("./core/producer.js").ScalarProducer<string | null, "optional">;
51
+ qualityClass: import("./core/producer.js").ScalarProducer<number | null, "optional">;
52
+ finalDepth: import("./core/producer.js").ScalarProducer<number | null, "optional">;
53
+ };
35
54
  /**
36
55
  * BHR-GT: Just the BRO ID and quality regime
37
56
  */
38
- export declare const BORE_ID_ONLY: Schema;
57
+ export declare const BORE_ID_ONLY: {
58
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
59
+ qualityRegime: import("./core/producer.js").ScalarProducer<string | null, "optional">;
60
+ };
39
61
  /**
40
62
  * BHR-GT: Location data only
41
63
  */
42
- export declare const BORE_LOCATION_ONLY: Schema;
64
+ export declare const BORE_LOCATION_ONLY: {
65
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
66
+ deliveredLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
67
+ standardizedLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
68
+ deliveredVerticalPositionOffset: import("./core/producer.js").ScalarProducer<number | null, "optional">;
69
+ };
43
70
  /**
44
71
  * BHR-GT: Basic metadata without layer data
45
72
  */
46
- export declare const BORE_METADATA_ONLY: Schema;
73
+ export declare const BORE_METADATA_ONLY: {
74
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
75
+ qualityRegime: import("./core/producer.js").ScalarProducer<string | null, "optional">;
76
+ researchReportDate: import("./core/producer.js").ScalarProducer<string | null, "optional">;
77
+ deliveredLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
78
+ descriptionProcedure: import("./core/producer.js").ScalarProducer<string | null, "optional">;
79
+ finalBoreDepth: import("./core/producer.js").ScalarProducer<number | null, "optional">;
80
+ boreRockReached: import("./core/producer.js").ScalarProducer<boolean | null, "optional">;
81
+ };
47
82
  /**
48
83
  * BHR-G: Just the BRO ID and quality regime
49
84
  */
50
- export declare const BHRG_ID_ONLY: Schema;
85
+ export declare const BHRG_ID_ONLY: {
86
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
87
+ qualityRegime: import("./core/producer.js").ScalarProducer<string | null, "optional">;
88
+ };
51
89
  /**
52
90
  * BHR-G: Location data only
53
91
  */
54
- export declare const BHRG_LOCATION_ONLY: Schema;
92
+ export declare const BHRG_LOCATION_ONLY: {
93
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
94
+ deliveredLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
95
+ standardizedLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
96
+ deliveredVerticalPositionOffset: import("./core/producer.js").ScalarProducer<number | null, "optional">;
97
+ };
55
98
  /**
56
99
  * BHR-G: Basic metadata without layer data
57
100
  */
58
- export declare const BHRG_METADATA_ONLY: Schema;
101
+ export declare const BHRG_METADATA_ONLY: {
102
+ broId: import("./core/producer.js").ScalarProducer<string | null, "optional">;
103
+ qualityRegime: import("./core/producer.js").ScalarProducer<string | null, "optional">;
104
+ researchReportDate: import("./core/producer.js").ScalarProducer<string | null, "optional">;
105
+ deliveredLocation: import("./core/producer.js").CustomProducer<import("./browser.js").Location | null, "optional">;
106
+ descriptionProcedure: import("./core/producer.js").ScalarProducer<string | null, "optional">;
107
+ finalBoreDepth: import("./core/producer.js").ScalarProducer<number | null, "optional">;
108
+ boreRockReached: import("./core/producer.js").ScalarProducer<boolean | null, "optional">;
109
+ };
59
110
  //# sourceMappingURL=schema-presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-presets.d.ts","sourceRoot":"","sources":["../src/schema-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ/C;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAGzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAc/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAoB/B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAchC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAsBhC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAchC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAuBhC,CAAC"}
1
+ {"version":3,"file":"schema-presets.d.ts","sourceRoot":"","sources":["../src/schema-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH;;GAEG;AACH,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;CAK7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;CAQ7B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;CAQ9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;CAU9B,CAAC"}
@@ -1,26 +1,30 @@
1
1
  /**
2
- * Schema presets for common extraction patterns
2
+ * Schema presets for common extraction patterns.
3
3
  *
4
- * These presets can be used directly or extended for custom needs.
4
+ * Each preset is a bare map of field name → {@link Producer}, built from the
5
+ * `producers` authoring surface. Pass one to {@link BROParser.parseCustom}; the
6
+ * return type is inferred from the map (each field's producer output type, plus
7
+ * `meta`). Presets can be used directly or spread into a larger custom map.
5
8
  *
6
9
  * @example
7
10
  * ```typescript
8
- * import { BROParser, presets } from '@bedrock-engineer/bro-xml';
11
+ * import { BROParser, presets, producers as p } from '@bedrock-engineer/bro-xml';
9
12
  *
10
13
  * const parser = new BROParser(new XMLAdapter());
11
14
  *
12
15
  * // Use a preset directly
13
16
  * const locationData = parser.parseCustom(xml, presets.CPT_LOCATION_ONLY, 'CPT');
17
+ * locationData.deliveredLocation; // Location | null — inferred
14
18
  *
15
19
  * // Or extend a preset
16
- * const mySchema = {
20
+ * const result = parser.parseCustom(xml, {
17
21
  * ...presets.CPT_METADATA_ONLY,
18
- * customField: { xpath: './my/custom/path' }
19
- * };
22
+ * customField: p.text('./my/custom/path'),
23
+ * }, 'CPT');
20
24
  * ```
21
25
  */
22
- import * as typeResolvers from "./resolvers/type-resolvers.js";
23
- import * as gmlResolvers from "./resolvers/gml-resolvers.js";
26
+ import { text, number_, date, boolean_, qualityClass } from "./core/producer.js";
27
+ import { gmlLocation } from "./schemas/common-fields.js";
24
28
  // ============================================================================
25
29
  // CPT Presets
26
30
  // ============================================================================
@@ -28,50 +32,29 @@ import * as gmlResolvers from "./resolvers/gml-resolvers.js";
28
32
  * CPT: Just the BRO ID and quality regime
29
33
  */
30
34
  export const CPT_ID_ONLY = {
31
- broId: { xpath: "brocom:broId" },
32
- qualityRegime: { xpath: "brocom:qualityRegime" },
35
+ broId: text("brocom:broId"),
36
+ qualityRegime: text("brocom:qualityRegime"),
33
37
  };
34
38
  /**
35
39
  * CPT: Location data only (delivered and standardized coordinates)
36
40
  */
37
41
  export const CPT_LOCATION_ONLY = {
38
- broId: { xpath: "brocom:broId" },
39
- deliveredLocation: {
40
- xpath: "./dscpt:deliveredLocation/cptcommon:location",
41
- resolver: gmlResolvers.parseGMLLocation,
42
- },
43
- standardizedLocation: {
44
- xpath: "./dscpt:standardizedLocation/brocom:location",
45
- resolver: gmlResolvers.parseGMLLocation,
46
- },
47
- deliveredVerticalPositionOffset: {
48
- xpath: "./dscpt:deliveredVerticalPosition/cptcommon:offset",
49
- resolver: typeResolvers.parseFloat,
50
- },
42
+ broId: text("brocom:broId"),
43
+ deliveredLocation: gmlLocation("./dscpt:deliveredLocation/cptcommon:location"),
44
+ standardizedLocation: gmlLocation("./dscpt:standardizedLocation/brocom:location"),
45
+ deliveredVerticalPositionOffset: number_("./dscpt:deliveredVerticalPosition/cptcommon:offset"),
51
46
  };
52
47
  /**
53
48
  * CPT: Basic metadata without measurement data
54
49
  */
55
50
  export const CPT_METADATA_ONLY = {
56
- broId: { xpath: "brocom:broId" },
57
- qualityRegime: { xpath: "brocom:qualityRegime" },
58
- researchReportDate: {
59
- xpath: "./dscpt:researchReportDate",
60
- resolver: typeResolvers.parseDate,
61
- },
62
- deliveredLocation: {
63
- xpath: "./dscpt:deliveredLocation/cptcommon:location",
64
- resolver: gmlResolvers.parseGMLLocation,
65
- },
66
- cptStandard: { xpath: "./dscpt:cptStandard" },
67
- qualityClass: {
68
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:qualityClass",
69
- resolver: typeResolvers.parseQualityClass,
70
- },
71
- finalDepth: {
72
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:trajectory/cptcommon:finalDepth",
73
- resolver: typeResolvers.parseFloat,
74
- },
51
+ broId: text("brocom:broId"),
52
+ qualityRegime: text("brocom:qualityRegime"),
53
+ researchReportDate: date("./dscpt:researchReportDate"),
54
+ deliveredLocation: gmlLocation("./dscpt:deliveredLocation/cptcommon:location"),
55
+ cptStandard: text("./dscpt:cptStandard"),
56
+ qualityClass: qualityClass("./dscpt:conePenetrometerSurvey/cptcommon:qualityClass"),
57
+ finalDepth: number_("./dscpt:conePenetrometerSurvey/cptcommon:trajectory/cptcommon:finalDepth"),
75
58
  };
76
59
  // ============================================================================
77
60
  // BHR-GT (Geotechnical Borehole) Presets
@@ -80,52 +63,29 @@ export const CPT_METADATA_ONLY = {
80
63
  * BHR-GT: Just the BRO ID and quality regime
81
64
  */
82
65
  export const BORE_ID_ONLY = {
83
- broId: { xpath: "brocom:broId" },
84
- qualityRegime: { xpath: "brocom:qualityRegime" },
66
+ broId: text("brocom:broId"),
67
+ qualityRegime: text("brocom:qualityRegime"),
85
68
  };
86
69
  /**
87
70
  * BHR-GT: Location data only
88
71
  */
89
72
  export const BORE_LOCATION_ONLY = {
90
- broId: { xpath: "brocom:broId" },
91
- deliveredLocation: {
92
- xpath: "./dsbhrgt:deliveredLocation/bhrgtcom:location",
93
- resolver: gmlResolvers.parseGMLLocation,
94
- },
95
- standardizedLocation: {
96
- xpath: "./dsbhrgt:standardizedLocation/brocom:location",
97
- resolver: gmlResolvers.parseGMLLocation,
98
- },
99
- deliveredVerticalPositionOffset: {
100
- xpath: "./dsbhrgt:deliveredVerticalPosition/bhrgtcom:offset",
101
- resolver: typeResolvers.parseFloat,
102
- },
73
+ broId: text("brocom:broId"),
74
+ deliveredLocation: gmlLocation("./dsbhrgt:deliveredLocation/bhrgtcom:location"),
75
+ standardizedLocation: gmlLocation("./dsbhrgt:standardizedLocation/brocom:location"),
76
+ deliveredVerticalPositionOffset: number_("./dsbhrgt:deliveredVerticalPosition/bhrgtcom:offset"),
103
77
  };
104
78
  /**
105
79
  * BHR-GT: Basic metadata without layer data
106
80
  */
107
81
  export const BORE_METADATA_ONLY = {
108
- broId: { xpath: "brocom:broId" },
109
- qualityRegime: { xpath: "brocom:qualityRegime" },
110
- researchReportDate: {
111
- xpath: "./dsbhrgt:reportHistory/dsbhrgt:reportStartDate",
112
- resolver: typeResolvers.parseDate,
113
- },
114
- deliveredLocation: {
115
- xpath: "./dsbhrgt:deliveredLocation/bhrgtcom:location",
116
- resolver: gmlResolvers.parseGMLLocation,
117
- },
118
- descriptionProcedure: {
119
- xpath: "./dsbhrgt:boreholeSampleDescription/bhrgtcom:descriptionProcedure",
120
- },
121
- finalBoreDepth: {
122
- xpath: "./dsbhrgt:boring/bhrgtcom:finalDepthBoring",
123
- resolver: typeResolvers.parseFloat,
124
- },
125
- boreRockReached: {
126
- xpath: "./dsbhrgt:boring/bhrgtcom:rockReached",
127
- resolver: typeResolvers.parseBoolean,
128
- },
82
+ broId: text("brocom:broId"),
83
+ qualityRegime: text("brocom:qualityRegime"),
84
+ researchReportDate: date("./dsbhrgt:reportHistory/dsbhrgt:reportStartDate"),
85
+ deliveredLocation: gmlLocation("./dsbhrgt:deliveredLocation/bhrgtcom:location"),
86
+ descriptionProcedure: text("./dsbhrgt:boreholeSampleDescription/bhrgtcom:descriptionProcedure"),
87
+ finalBoreDepth: number_("./dsbhrgt:boring/bhrgtcom:finalDepthBoring"),
88
+ boreRockReached: boolean_("./dsbhrgt:boring/bhrgtcom:rockReached"),
129
89
  };
130
90
  // ============================================================================
131
91
  // BHR-G (Geological Borehole) Presets
@@ -134,51 +94,28 @@ export const BORE_METADATA_ONLY = {
134
94
  * BHR-G: Just the BRO ID and quality regime
135
95
  */
136
96
  export const BHRG_ID_ONLY = {
137
- broId: { xpath: "brocom:broId" },
138
- qualityRegime: { xpath: "brocom:qualityRegime" },
97
+ broId: text("brocom:broId"),
98
+ qualityRegime: text("brocom:qualityRegime"),
139
99
  };
140
100
  /**
141
101
  * BHR-G: Location data only
142
102
  */
143
103
  export const BHRG_LOCATION_ONLY = {
144
- broId: { xpath: "brocom:broId" },
145
- deliveredLocation: {
146
- xpath: "./dsbhrg:deliveredLocation/bhrgcom:location",
147
- resolver: gmlResolvers.parseGMLLocation,
148
- },
149
- standardizedLocation: {
150
- xpath: "./dsbhrg:standardizedLocation/brocom:location",
151
- resolver: gmlResolvers.parseGMLLocation,
152
- },
153
- deliveredVerticalPositionOffset: {
154
- xpath: "./dsbhrg:deliveredVerticalPosition/bhrgcom:offset",
155
- resolver: typeResolvers.parseFloat,
156
- },
104
+ broId: text("brocom:broId"),
105
+ deliveredLocation: gmlLocation("./dsbhrg:deliveredLocation/bhrgcom:location"),
106
+ standardizedLocation: gmlLocation("./dsbhrg:standardizedLocation/brocom:location"),
107
+ deliveredVerticalPositionOffset: number_("./dsbhrg:deliveredVerticalPosition/bhrgcom:offset"),
157
108
  };
158
109
  /**
159
110
  * BHR-G: Basic metadata without layer data
160
111
  */
161
112
  export const BHRG_METADATA_ONLY = {
162
- broId: { xpath: "brocom:broId" },
163
- qualityRegime: { xpath: "brocom:qualityRegime" },
164
- researchReportDate: {
165
- xpath: "./dsbhrg:researchReportDate",
166
- resolver: typeResolvers.parseDate,
167
- },
168
- deliveredLocation: {
169
- xpath: "./dsbhrg:deliveredLocation/bhrgcom:location",
170
- resolver: gmlResolvers.parseGMLLocation,
171
- },
172
- descriptionProcedure: {
173
- xpath: "./dsbhrg:boreholeSampleDescription/bhrgcom:BoreholeSampleDescription/bhrgcom:descriptionProcedure",
174
- },
175
- finalBoreDepth: {
176
- xpath: "./dsbhrg:boring/bhrgcom:Boring/bhrgcom:finalDepthBoring",
177
- resolver: typeResolvers.parseFloat,
178
- },
179
- boreRockReached: {
180
- xpath: "./dsbhrg:boring/bhrgcom:Boring/bhrgcom:rockReached",
181
- resolver: typeResolvers.parseBoolean,
182
- },
113
+ broId: text("brocom:broId"),
114
+ qualityRegime: text("brocom:qualityRegime"),
115
+ researchReportDate: date("./dsbhrg:researchReportDate"),
116
+ deliveredLocation: gmlLocation("./dsbhrg:deliveredLocation/bhrgcom:location"),
117
+ descriptionProcedure: text("./dsbhrg:boreholeSampleDescription/bhrgcom:BoreholeSampleDescription/bhrgcom:descriptionProcedure"),
118
+ finalBoreDepth: number_("./dsbhrg:boring/bhrgcom:Boring/bhrgcom:finalDepthBoring"),
119
+ boreRockReached: boolean_("./dsbhrg:boring/bhrgcom:Boring/bhrgcom:rockReached"),
183
120
  };
184
121
  //# sourceMappingURL=schema-presets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-presets.js","sourceRoot":"","sources":["../src/schema-presets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-presets.js","sourceRoot":"","sources":["../src/schema-presets.ts"],"names":[],"mappings":"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"}