@bedrock-engineer/bro-xml-parser 0.3.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.
- package/README.md +21 -12
- package/dist/browser.d.ts +15 -5
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +7 -5
- package/dist/browser.js.map +1 -1
- package/dist/core/columns.d.ts +80 -0
- package/dist/core/columns.d.ts.map +1 -0
- package/dist/core/columns.js +100 -0
- package/dist/core/columns.js.map +1 -0
- package/dist/core/producer.d.ts +216 -0
- package/dist/core/producer.d.ts.map +1 -0
- package/dist/core/producer.js +85 -0
- package/dist/core/producer.js.map +1 -0
- package/dist/core/schema-parser.d.ts +41 -17
- package/dist/core/schema-parser.d.ts.map +1 -1
- package/dist/core/schema-parser.js +178 -73
- package/dist/core/schema-parser.js.map +1 -1
- package/dist/core/version-detector.d.ts +3 -1
- package/dist/core/version-detector.d.ts.map +1 -1
- package/dist/core/version-detector.js +37 -0
- package/dist/core/version-detector.js.map +1 -1
- package/dist/decoders/constants.d.ts +2 -0
- package/dist/decoders/constants.d.ts.map +1 -0
- package/dist/decoders/constants.js +2 -0
- package/dist/decoders/constants.js.map +1 -0
- package/dist/decoders/type-decoders.d.ts +38 -0
- package/dist/decoders/type-decoders.d.ts.map +1 -0
- package/dist/decoders/type-decoders.js +134 -0
- package/dist/decoders/type-decoders.js.map +1 -0
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +16 -0
- package/dist/namespaces.js.map +1 -1
- package/dist/node.d.ts +15 -5
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +7 -5
- package/dist/node.js.map +1 -1
- package/dist/parser.d.ts +69 -19
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +103 -29
- package/dist/parser.js.map +1 -1
- package/dist/producers.d.ts +36 -0
- package/dist/producers.d.ts.map +1 -0
- package/dist/producers.js +35 -0
- package/dist/producers.js.map +1 -0
- package/dist/resolvers/gld-resolvers.d.ts +30 -0
- package/dist/resolvers/gld-resolvers.d.ts.map +1 -0
- package/dist/resolvers/gld-resolvers.js +76 -0
- package/dist/resolvers/gld-resolvers.js.map +1 -0
- package/dist/resolvers/gmw-resolvers.d.ts +37 -0
- package/dist/resolvers/gmw-resolvers.d.ts.map +1 -0
- package/dist/resolvers/gmw-resolvers.js +101 -0
- package/dist/resolvers/gmw-resolvers.js.map +1 -0
- package/dist/resolvers.d.ts +2 -0
- package/dist/resolvers.d.ts.map +1 -1
- package/dist/resolvers.js +4 -0
- package/dist/resolvers.js.map +1 -1
- package/dist/schema-presets.d.ts +67 -16
- package/dist/schema-presets.d.ts.map +1 -1
- package/dist/schema-presets.js +51 -114
- package/dist/schema-presets.js.map +1 -1
- package/dist/schemas/bhrg-schema.d.ts +528 -9
- package/dist/schemas/bhrg-schema.d.ts.map +1 -1
- package/dist/schemas/bhrg-schema.js +330 -189
- package/dist/schemas/bhrg-schema.js.map +1 -1
- package/dist/schemas/bhrgt-analysis.d.ts +1057 -0
- package/dist/schemas/bhrgt-analysis.d.ts.map +1 -0
- package/dist/schemas/bhrgt-analysis.js +454 -0
- package/dist/schemas/bhrgt-analysis.js.map +1 -0
- package/dist/schemas/bore-schema.d.ts +773 -9
- package/dist/schemas/bore-schema.d.ts.map +1 -1
- package/dist/schemas/bore-schema.js +344 -292
- package/dist/schemas/bore-schema.js.map +1 -1
- package/dist/schemas/common-fields.d.ts +50 -5
- package/dist/schemas/common-fields.d.ts.map +1 -1
- package/dist/schemas/common-fields.js +70 -19
- package/dist/schemas/common-fields.js.map +1 -1
- package/dist/schemas/cpt-schema.d.ts +126 -9
- package/dist/schemas/cpt-schema.d.ts.map +1 -1
- package/dist/schemas/cpt-schema.js +182 -285
- package/dist/schemas/cpt-schema.js.map +1 -1
- package/dist/schemas/generated/gld.generated.d.ts +9 -0
- package/dist/schemas/generated/gld.generated.d.ts.map +1 -0
- package/dist/schemas/generated/gld.generated.js +19 -0
- package/dist/schemas/generated/gld.generated.js.map +1 -0
- package/dist/schemas/gld-schema.d.ts +92 -0
- package/dist/schemas/gld-schema.d.ts.map +1 -0
- package/dist/schemas/gld-schema.js +88 -0
- package/dist/schemas/gld-schema.js.map +1 -0
- package/dist/schemas/gmw-schema.d.ts +180 -0
- package/dist/schemas/gmw-schema.d.ts.map +1 -0
- package/dist/schemas/gmw-schema.js +131 -0
- package/dist/schemas/gmw-schema.js.map +1 -0
- package/dist/types/index.d.ts +51 -1421
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/schema-presets.js
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Schema presets for common extraction patterns
|
|
2
|
+
* Schema presets for common extraction patterns.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
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
|
|
20
|
+
* const result = parser.parseCustom(xml, {
|
|
17
21
|
* ...presets.CPT_METADATA_ONLY,
|
|
18
|
-
* customField:
|
|
19
|
-
* };
|
|
22
|
+
* customField: p.text('./my/custom/path'),
|
|
23
|
+
* }, 'CPT');
|
|
20
24
|
* ```
|
|
21
25
|
*/
|
|
22
|
-
import
|
|
23
|
-
import
|
|
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:
|
|
32
|
-
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:
|
|
39
|
-
deliveredLocation:
|
|
40
|
-
|
|
41
|
-
|
|
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:
|
|
57
|
-
qualityRegime:
|
|
58
|
-
researchReportDate:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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:
|
|
84
|
-
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:
|
|
91
|
-
deliveredLocation:
|
|
92
|
-
|
|
93
|
-
|
|
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:
|
|
109
|
-
qualityRegime:
|
|
110
|
-
researchReportDate:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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:
|
|
138
|
-
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:
|
|
145
|
-
deliveredLocation:
|
|
146
|
-
|
|
147
|
-
|
|
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:
|
|
163
|
-
qualityRegime:
|
|
164
|
-
researchReportDate:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"schema-presets.js","sourceRoot":"","sources":["../src/schema-presets.ts"],"names":[],"mappings":"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"}
|