@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
@@ -1,279 +1,186 @@
1
1
  /**
2
- * CPT (Cone Penetration Test) schema definition
2
+ * CPT (Cone Penetration Test) schema.
3
3
  *
4
- * Defines 44 metadata fields for CPT data.
5
- * Each field specifies:
6
- * - xpath: location in XML document
7
- * - resolver: function to convert/parse value (optional)
8
- * - attribute: which property to extract (optional, defaults to textContent)
9
- * - required: whether field is mandatory (optional, defaults to false)
4
+ * Maps the dscpt/1.1 registration object to {@link CPTData}. Most of the ~60
5
+ * metadata fields are scalars; the embedded measurement CSV (`data`) and the
6
+ * dissipation-test time-series (`dissipationTests`) are {@link custom} producers
7
+ * driven by a {@link NodeLens}.
8
+ *
9
+ * Field coverage is verified against the official XSD with
10
+ * `npm run check:xsd-coverage`.
10
11
  */
11
- import * as typeResolvers from "../resolvers/type-resolvers.js";
12
- import * as gmlResolvers from "../resolvers/gml-resolvers.js";
13
- import * as measurementResolvers from "../resolvers/measurement-resolver.js";
14
- import * as cptResolvers from "../resolvers/cpt-resolvers.js";
15
- export const CPT_SCHEMA = {
16
- // === Core Identification ===
17
- broId: {
18
- xpath: "brocom:broId",
19
- },
20
- qualityRegime: {
21
- xpath: "brocom:qualityRegime",
22
- },
23
- deliveryAccountableParty: {
24
- xpath: "brocom:deliveryAccountableParty",
25
- },
26
- researchReportDate: {
27
- xpath: "./dscpt:researchReportDate",
28
- resolver: typeResolvers.parseDate,
29
- },
30
- // Measurement timing (OGC O&M timestamps on the conePenetrationTest observation)
31
- conePenetrationTestPhenomenonTime: {
32
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrationTest/om:phenomenonTime/gml:TimeInstant/gml:timePosition",
33
- resolver: typeResolvers.parseDate,
34
- },
35
- conePenetrationTestResultTime: {
36
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrationTest/om:resultTime/gml:TimeInstant/gml:timePosition",
37
- resolver: typeResolvers.parseDate,
38
- },
39
- cptStandard: {
40
- xpath: "./dscpt:cptStandard",
41
- },
42
- // === Location ===
43
- deliveredLocation: {
44
- xpath: "./dscpt:deliveredLocation/cptcommon:location",
45
- resolver: gmlResolvers.parseGMLLocation,
46
- },
47
- standardizedLocation: {
48
- xpath: "./dscpt:standardizedLocation/brocom:location",
49
- resolver: gmlResolvers.parseGMLLocation,
50
- },
51
- horizontalPositioningDate: {
52
- xpath: "./dscpt:deliveredLocation/cptcommon:horizontalPositioningDate",
53
- resolver: typeResolvers.parseDate,
54
- },
55
- horizontalPositioningMethod: {
56
- xpath: "./dscpt:deliveredLocation/cptcommon:horizontalPositioningMethod",
57
- },
58
- // === Vertical Position ===
59
- deliveredVerticalPositionOffset: {
60
- xpath: "./dscpt:deliveredVerticalPosition/cptcommon:offset",
61
- resolver: typeResolvers.parseFloat,
62
- },
63
- deliveredVerticalPositionDatum: {
64
- xpath: "./dscpt:deliveredVerticalPosition/cptcommon:verticalDatum",
65
- },
66
- deliveredVerticalPositionReferencePoint: {
67
- xpath: "./dscpt:deliveredVerticalPosition/cptcommon:localVerticalReferencePoint",
68
- },
69
- verticalPositioningDate: {
70
- xpath: "./dscpt:deliveredVerticalPosition/cptcommon:verticalPositioningDate",
71
- resolver: typeResolvers.parseDate,
72
- },
73
- verticalPositioningMethod: {
74
- xpath: "./dscpt:deliveredVerticalPosition/cptcommon:verticalPositioningMethod",
75
- },
76
- // === Survey Context ===
77
- deliveryContext: {
78
- xpath: "./dscpt:deliveryContext",
79
- },
80
- surveyPurpose: {
81
- xpath: "./dscpt:surveyPurpose",
82
- },
83
- additionalInvestigationPerformed: {
84
- xpath: "./dscpt:additionalInvestigationPerformed",
85
- resolver: typeResolvers.parseBoolean,
86
- },
87
- // === Test Metadata ===
88
- cptMethod: {
89
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:cptMethod",
90
- },
91
- stopCriterion: {
92
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:stopCriterion",
93
- },
94
- sensorAzimuth: {
95
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:sensorAzimuth",
96
- resolver: typeResolvers.parseFloat,
97
- },
98
- dissipationtestPerformed: {
99
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:dissipationTestPerformed",
100
- resolver: typeResolvers.parseBoolean,
101
- },
102
- qualityClass: {
103
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:qualityClass",
104
- resolver: typeResolvers.parseQualityClass,
105
- },
106
- groundwaterLevel: {
107
- xpath: "./dscpt:additionalInvestigation/cptcommon:groundwaterLevel",
108
- resolver: typeResolvers.parseFloat,
109
- },
110
- // === Additional Investigation ===
111
- investigationDate: {
112
- xpath: "./dscpt:additionalInvestigation/cptcommon:investigationDate",
113
- resolver: typeResolvers.parseDate,
114
- },
115
- conditions: {
116
- xpath: "./dscpt:additionalInvestigation/cptcommon:conditions",
117
- },
118
- surfaceDescription: {
119
- xpath: "./dscpt:additionalInvestigation/cptcommon:surfaceDescription",
120
- },
121
- removedLayers: {
122
- xpath: ".",
123
- resolver: cptResolvers.processRemovedLayers,
124
- },
125
- predrilledDepth: {
126
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:trajectory/cptcommon:predrilledDepth",
127
- resolver: typeResolvers.parseFloat,
128
- },
129
- finalDepth: {
130
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:trajectory/cptcommon:finalDepth",
131
- resolver: typeResolvers.parseFloat,
132
- },
133
- // === Processing Flags ===
134
- finalProcessingDate: {
135
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:finalProcessingDate",
136
- resolver: typeResolvers.parseDate,
137
- },
138
- signalProcessingPerformed: {
139
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:procedure/cptcommon:signalProcessingPerformed",
140
- resolver: typeResolvers.parseBoolean,
141
- },
142
- interruptionProcessingPerformed: {
143
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:procedure/cptcommon:interruptionProcessingPerformed",
144
- resolver: typeResolvers.parseBoolean,
145
- },
146
- expertCorrectionPerformed: {
147
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:procedure/cptcommon:expertCorrectionPerformed",
148
- resolver: typeResolvers.parseBoolean,
149
- },
150
- // === Equipment Specifications ===
151
- cptDescription: {
152
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:description",
153
- },
154
- cptType: {
155
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:conePenetrometerType",
156
- },
157
- coneSurfaceArea: {
158
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:coneSurfaceArea",
159
- resolver: typeResolvers.parseInt,
160
- },
161
- coneDiameter: {
162
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:coneDiameter",
163
- resolver: typeResolvers.parseInt,
164
- },
165
- coneSurfaceQuotient: {
166
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:coneSurfaceQuotient",
167
- resolver: typeResolvers.parseFloat,
168
- },
169
- coneToFrictionSleeveDistance: {
170
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:coneToFrictionSleeveDistance",
171
- resolver: typeResolvers.parseInt,
172
- },
173
- coneToFrictionSleeveSurfaceArea: {
174
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:frictionSleeveSurfaceArea",
175
- resolver: typeResolvers.parseInt,
176
- },
177
- coneToFrictionSleeveSurfaceQuotient: {
178
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:frictionSleeveSurfaceQuotient",
179
- resolver: typeResolvers.parseFloat,
180
- },
181
- // === Zero-Load Measurements (Equipment Calibration) ===
182
- // Cone Resistance
183
- zlmConeResistanceBefore: {
184
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:coneResistanceBefore",
185
- resolver: typeResolvers.parseFloat,
186
- },
187
- zlmConeResistanceAfter: {
188
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:coneResistanceAfter",
189
- resolver: typeResolvers.parseFloat,
190
- },
191
- // Inclination East-West
192
- zlmInclinationEwBefore: {
193
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:inclinationEWBefore",
194
- resolver: typeResolvers.parseInt,
195
- },
196
- zlmInclinationEwAfter: {
197
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:inclinationEWAfter",
198
- resolver: typeResolvers.parseInt,
199
- },
200
- // Inclination North-South
201
- zlmInclinationNsBefore: {
202
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:inclinationNSBefore",
203
- resolver: typeResolvers.parseInt,
204
- },
205
- zlmInclinationNsAfter: {
206
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:inclinationNSAfter",
207
- resolver: typeResolvers.parseInt,
208
- },
209
- // Inclination Resultant
210
- zlmInclinationResultantBefore: {
211
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:inclinationResultantBefore",
212
- resolver: typeResolvers.parseInt,
213
- },
214
- zlmInclinationResultantAfter: {
215
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:inclinationResultantAfter",
216
- resolver: typeResolvers.parseInt,
217
- },
218
- // Local Friction
219
- zlmLocalFrictionBefore: {
220
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:localFrictionBefore",
221
- resolver: typeResolvers.parseFloat,
222
- },
223
- zlmLocalFrictionAfter: {
224
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:localFrictionAfter",
225
- resolver: typeResolvers.parseFloat,
226
- },
227
- // Pore Pressure U1
228
- zlmPorePressureU1Before: {
229
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:porePressureU1Before",
230
- resolver: typeResolvers.parseFloat,
231
- },
232
- zlmPorePressureU1After: {
233
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:porePressureU1After",
234
- resolver: typeResolvers.parseFloat,
235
- },
236
- // Pore Pressure U2
237
- zlmPorePressureU2Before: {
238
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:porePressureU2Before",
239
- resolver: typeResolvers.parseFloat,
240
- },
241
- zlmPorePressureU2After: {
242
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:porePressureU2After",
243
- resolver: typeResolvers.parseFloat,
244
- },
245
- // Pore Pressure U3
246
- zlmPorePressureU3Before: {
247
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:porePressureU3Before",
248
- resolver: typeResolvers.parseFloat,
249
- },
250
- zlmPorePressureU3After: {
251
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:porePressureU3After",
252
- resolver: typeResolvers.parseFloat,
253
- },
254
- // Electrical Conductivity
255
- zlmElectricalConductivityBefore: {
256
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:electricalConductivityBefore",
257
- resolver: typeResolvers.parseFloat,
258
- },
259
- zlmElectricalConductivityAfter: {
260
- xpath: "./dscpt:conePenetrometerSurvey/cptcommon:conePenetrometer/cptcommon:zeroLoadMeasurement/cptcommon:electricalConductivityAfter",
261
- resolver: typeResolvers.parseFloat,
262
- },
263
- // === Measurement Data ===
264
- data: {
265
- xpath: "./dscpt:conePenetrometerSurvey",
266
- resolver: measurementResolvers.processCPTResult,
267
- },
268
- // === Dissipation Tests ===
269
- dissipationTests: {
270
- xpath: "./dscpt:conePenetrometerSurvey",
271
- resolver: measurementResolvers.processDissipationTests,
272
- },
273
- // === Administrative History ===
274
- registrationHistory: {
275
- xpath: ".",
276
- resolver: cptResolvers.processCPTRegistrationHistory,
277
- },
278
- };
12
+ import { object_, array, custom, scalar, text, date, number_, integer, boolean_, qualityClass, } from "../core/producer.js";
13
+ import { COMMON_REGISTRATION_PRODUCERS, REGISTRATION_HISTORY, gmlLocation, } from "./common-fields.js";
14
+ import { decodeColumns, col } from "../core/columns.js";
15
+ import { parseFloat } from "../decoders/type-decoders.js";
16
+ const SURVEY = "./dscpt:conePenetrometerSurvey";
17
+ const CONE = `${SURVEY}/cptcommon:conePenetrometer`;
18
+ const ZLM = `${CONE}/cptcommon:zeroLoadMeasurement`;
19
+ const VPOS = "./dscpt:deliveredVerticalPosition";
20
+ /** Fixed columns of a dissipation-test time-series. */
21
+ const DISSIPATION_COLUMNS = [
22
+ { name: "elapsedTime", parse: col.num },
23
+ { name: "coneResistance", parse: col.num, optional: true },
24
+ { name: "porePressureU1", parse: col.num, optional: true },
25
+ { name: "porePressureU2", parse: col.num, optional: true },
26
+ { name: "porePressureU3", parse: col.num, optional: true },
27
+ ];
28
+ /**
29
+ * Parse the embedded measurement CSV from the `conePenetrometerSurvey` node.
30
+ *
31
+ * The `parameters` element flags (ja/nee) which columns are present, in
32
+ * document order; the CSV in `values` always carries every column, so the
33
+ * decode spec maps only the flagged positions (others are skipped with `null`).
34
+ * Rows are then sorted by penetration length (BRO does not guarantee depth order
35
+ * in the values block).
36
+ */
37
+ function parseMeasurements(lens) {
38
+ const enc = (attr, fallback) => lens.attr(`.//swe:encoding/swe:TextEncoding/@${attr}`) ?? fallback;
39
+ const decimalSeparator = enc("decimalSeparator", ".");
40
+ if (decimalSeparator !== ".") {
41
+ console.warn(`Non-standard decimal separator: ${decimalSeparator} (expected ".")`);
42
+ }
43
+ // A spec entry per parameter position, in document order: a column for the
44
+ // "ja" positions, `null` (skip) for the rest. Scope to the first `parameters`
45
+ // block — dissipation tests carry their own values/encoding.
46
+ const parameters = lens.all(".//cptcommon:parameters")[0];
47
+ const spec = (parameters ? parameters.all("./*") : []).map((param) => {
48
+ const columnName = param.name();
49
+ const included = (param.text() ?? "").toLowerCase() === "ja";
50
+ return columnName && included ? { name: columnName, parse: col.num } : null;
51
+ });
52
+ if (spec.every((c) => c === null)) {
53
+ return [];
54
+ }
55
+ const rows = decodeColumns(lens.textAt(".//cptcommon:values"), spec, {
56
+ rowSeparator: enc("blockSeparator", ";"),
57
+ colSeparator: enc("tokenSeparator", ","),
58
+ })
59
+ // Drop all-null rows.
60
+ .filter((m) => Object.values(m).some((v) => v !== null && v !== undefined));
61
+ return rows.sort((a, b) => a.penetrationLength - b.penetrationLength);
62
+ }
63
+ /**
64
+ * A dissipation test's pore-pressure decay CSV. Kept custom because the row/col
65
+ * separators are read from the test's own `swe:TextEncoding`.
66
+ */
67
+ const DISSIPATION_MEASUREMENTS = custom({
68
+ produce: (test) => {
69
+ const enc = "./cptcommon:disResult/swe:encoding/swe:TextEncoding";
70
+ return decodeColumns(test.textAt("./cptcommon:disResult/cptcommon:values"), DISSIPATION_COLUMNS, {
71
+ rowSeparator: test.attr(`${enc}/@blockSeparator`) ?? ";",
72
+ colSeparator: test.attr(`${enc}/@tokenSeparator`) ?? ",",
73
+ });
74
+ },
75
+ });
76
+ /**
77
+ * One dissipation test (pore-pressure decay time-series at a fixed depth), a
78
+ * sibling of the cone-penetration test inside `conePenetrometerSurvey`.
79
+ */
80
+ const DISSIPATION_TEST = object_({
81
+ fields: {
82
+ penetrationLength: scalar({
83
+ at: "./cptcommon:penetrationLength",
84
+ decode: (raw) => parseFloat(raw) ?? 0,
85
+ }),
86
+ phenomenonTime: date("./om:phenomenonTime//gml:timePosition"),
87
+ measurements: DISSIPATION_MEASUREMENTS,
88
+ },
89
+ });
90
+ /** A layer removed before the CPT was performed (e.g. asphalt, gravel fill). */
91
+ const REMOVED_LAYER = object_({
92
+ fields: {
93
+ sequenceNumber: integer("./cptcommon:sequenceNumber"),
94
+ upperBoundary: number_("./cptcommon:upperBoundary"),
95
+ lowerBoundary: number_("./cptcommon:lowerBoundary"),
96
+ description: text("./cptcommon:description"),
97
+ },
98
+ });
99
+ export const CPT_PRODUCER = object_({
100
+ fields: {
101
+ // === Core identification (shared brocom fields) ===
102
+ ...COMMON_REGISTRATION_PRODUCERS,
103
+ researchOperator: text("./dscpt:researchOperator"),
104
+ researchReportDate: date("./dscpt:researchReportDate"),
105
+ // Measurement timing (OGC O&M timestamps on the conePenetrationTest observation)
106
+ conePenetrationTestPhenomenonTime: date(`${SURVEY}/cptcommon:conePenetrationTest/om:phenomenonTime/gml:TimeInstant/gml:timePosition`),
107
+ conePenetrationTestResultTime: date(`${SURVEY}/cptcommon:conePenetrationTest/om:resultTime/gml:TimeInstant/gml:timePosition`),
108
+ cptStandard: text("./dscpt:cptStandard"),
109
+ // === Location ===
110
+ deliveredLocation: gmlLocation("./dscpt:deliveredLocation/cptcommon:location"),
111
+ standardizedLocation: gmlLocation("./dscpt:standardizedLocation/brocom:location"),
112
+ coordinateTransformation: text("./dscpt:standardizedLocation/brocom:coordinateTransformation"),
113
+ horizontalPositioningDate: date("./dscpt:deliveredLocation/cptcommon:horizontalPositioningDate"),
114
+ horizontalPositioningMethod: text("./dscpt:deliveredLocation/cptcommon:horizontalPositioningMethod"),
115
+ horizontalPositioningOperator: text("./dscpt:deliveredLocation/cptcommon:horizontalPositioningOperator"),
116
+ // === Vertical position ===
117
+ deliveredVerticalPositionOffset: number_(`${VPOS}/cptcommon:offset`),
118
+ deliveredVerticalPositionDatum: text(`${VPOS}/cptcommon:verticalDatum`),
119
+ deliveredVerticalPositionReferencePoint: text(`${VPOS}/cptcommon:localVerticalReferencePoint`),
120
+ waterDepth: number_(`${VPOS}/cptcommon:waterDepth`),
121
+ verticalPositioningDate: date(`${VPOS}/cptcommon:verticalPositioningDate`),
122
+ verticalPositioningMethod: text(`${VPOS}/cptcommon:verticalPositioningMethod`),
123
+ verticalPositioningOperator: text(`${VPOS}/cptcommon:verticalPositioningOperator`),
124
+ // === Survey context ===
125
+ deliveryContext: text("./dscpt:deliveryContext"),
126
+ surveyPurpose: text("./dscpt:surveyPurpose"),
127
+ additionalInvestigationPerformed: boolean_("./dscpt:additionalInvestigationPerformed"),
128
+ // === Test metadata ===
129
+ cptMethod: text(`${SURVEY}/cptcommon:cptMethod`),
130
+ stopCriterion: text(`${SURVEY}/cptcommon:stopCriterion`),
131
+ sensorAzimuth: number_(`${SURVEY}/cptcommon:sensorAzimuth`),
132
+ dissipationtestPerformed: boolean_(`${SURVEY}/cptcommon:dissipationTestPerformed`),
133
+ qualityClass: qualityClass(`${SURVEY}/cptcommon:qualityClass`),
134
+ groundwaterLevel: number_("./dscpt:additionalInvestigation/cptcommon:groundwaterLevel"),
135
+ // === Additional investigation ===
136
+ investigationDate: date("./dscpt:additionalInvestigation/cptcommon:investigationDate"),
137
+ conditions: text("./dscpt:additionalInvestigation/cptcommon:conditions"),
138
+ surfaceDescription: text("./dscpt:additionalInvestigation/cptcommon:surfaceDescription"),
139
+ removedLayers: array({
140
+ each: "./dscpt:additionalInvestigation/cptcommon:removedLayer",
141
+ item: REMOVED_LAYER,
142
+ }),
143
+ predrilledDepth: number_(`${SURVEY}/cptcommon:trajectory/cptcommon:predrilledDepth`),
144
+ finalDepth: number_(`${SURVEY}/cptcommon:trajectory/cptcommon:finalDepth`),
145
+ // === Processing flags ===
146
+ finalProcessingDate: date(`${SURVEY}/cptcommon:finalProcessingDate`),
147
+ signalProcessingPerformed: boolean_(`${SURVEY}/cptcommon:procedure/cptcommon:signalProcessingPerformed`),
148
+ interruptionProcessingPerformed: boolean_(`${SURVEY}/cptcommon:procedure/cptcommon:interruptionProcessingPerformed`),
149
+ expertCorrectionPerformed: boolean_(`${SURVEY}/cptcommon:procedure/cptcommon:expertCorrectionPerformed`),
150
+ // === Equipment specifications ===
151
+ cptDescription: text(`${CONE}/cptcommon:description`),
152
+ cptType: text(`${CONE}/cptcommon:conePenetrometerType`),
153
+ coneSurfaceArea: integer(`${CONE}/cptcommon:coneSurfaceArea`),
154
+ coneDiameter: integer(`${CONE}/cptcommon:coneDiameter`),
155
+ coneSurfaceQuotient: number_(`${CONE}/cptcommon:coneSurfaceQuotient`),
156
+ coneToFrictionSleeveDistance: integer(`${CONE}/cptcommon:coneToFrictionSleeveDistance`),
157
+ coneToFrictionSleeveSurfaceArea: integer(`${CONE}/cptcommon:frictionSleeveSurfaceArea`),
158
+ coneToFrictionSleeveSurfaceQuotient: number_(`${CONE}/cptcommon:frictionSleeveSurfaceQuotient`),
159
+ // === Zero-load measurements (equipment calibration) ===
160
+ zlmConeResistanceBefore: number_(`${ZLM}/cptcommon:coneResistanceBefore`),
161
+ zlmConeResistanceAfter: number_(`${ZLM}/cptcommon:coneResistanceAfter`),
162
+ zlmInclinationEwBefore: integer(`${ZLM}/cptcommon:inclinationEWBefore`),
163
+ zlmInclinationEwAfter: integer(`${ZLM}/cptcommon:inclinationEWAfter`),
164
+ zlmInclinationNsBefore: integer(`${ZLM}/cptcommon:inclinationNSBefore`),
165
+ zlmInclinationNsAfter: integer(`${ZLM}/cptcommon:inclinationNSAfter`),
166
+ zlmInclinationResultantBefore: integer(`${ZLM}/cptcommon:inclinationResultantBefore`),
167
+ zlmInclinationResultantAfter: integer(`${ZLM}/cptcommon:inclinationResultantAfter`),
168
+ zlmLocalFrictionBefore: number_(`${ZLM}/cptcommon:localFrictionBefore`),
169
+ zlmLocalFrictionAfter: number_(`${ZLM}/cptcommon:localFrictionAfter`),
170
+ zlmPorePressureU1Before: number_(`${ZLM}/cptcommon:porePressureU1Before`),
171
+ zlmPorePressureU1After: number_(`${ZLM}/cptcommon:porePressureU1After`),
172
+ zlmPorePressureU2Before: number_(`${ZLM}/cptcommon:porePressureU2Before`),
173
+ zlmPorePressureU2After: number_(`${ZLM}/cptcommon:porePressureU2After`),
174
+ zlmPorePressureU3Before: number_(`${ZLM}/cptcommon:porePressureU3Before`),
175
+ zlmPorePressureU3After: number_(`${ZLM}/cptcommon:porePressureU3After`),
176
+ zlmElectricalConductivityBefore: number_(`${ZLM}/cptcommon:electricalConductivityBefore`),
177
+ zlmElectricalConductivityAfter: number_(`${ZLM}/cptcommon:electricalConductivityAfter`),
178
+ // === Measurement data (embedded CSV) ===
179
+ data: custom({ at: SURVEY, produce: parseMeasurements }),
180
+ // === Dissipation tests ===
181
+ dissipationTests: array({ at: SURVEY, each: ".//cptcommon:dissipationTest", item: DISSIPATION_TEST }),
182
+ // === Administrative history ===
183
+ registrationHistory: REGISTRATION_HISTORY,
184
+ },
185
+ });
279
186
  //# sourceMappingURL=cpt-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cpt-schema.js","sourceRoot":"","sources":["../../src/schemas/cpt-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpt-schema.js","sourceRoot":"","sources":["../../src/schemas/cpt-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Schema } from "../../types/index.js";
2
+ export declare const GLD_SCALARS: Schema;
3
+ export interface GLDScalars {
4
+ /** `dsgld:researchFirstDate` (0..1, date) */
5
+ researchFirstDate: string | null;
6
+ /** `dsgld:researchLastDate` (0..1, date) */
7
+ researchLastDate: string | null;
8
+ }
9
+ //# sourceMappingURL=gld.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gld.generated.d.ts","sourceRoot":"","sources":["../../../src/schemas/generated/gld.generated.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,eAAO,MAAM,WAAW,EAAE,MASzB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC"}
@@ -0,0 +1,19 @@
1
+ // GENERATED by `npm run codegen:schema` - DO NOT EDIT.
2
+ // Source XSD: https://schema.broservices.nl/xsd/dsgld/1.0/dsgld-messages.xsd
3
+ //
4
+ // Scalar SchemaField bindings + result type for the GLD registration
5
+ // object, derived from the XSD. Complex/array fields are hand-written in the
6
+ // domain schema/types; re-run codegen after an XSD bump and let the coverage
7
+ // checker (npm run check:xsd-coverage) prove completeness.
8
+ import * as typeResolvers from "../../resolvers/type-resolvers.js";
9
+ export const GLD_SCALARS = {
10
+ researchFirstDate: {
11
+ xpath: "./dsgld:researchFirstDate",
12
+ resolver: typeResolvers.parseDate,
13
+ },
14
+ researchLastDate: {
15
+ xpath: "./dsgld:researchLastDate",
16
+ resolver: typeResolvers.parseDate,
17
+ },
18
+ };
19
+ //# sourceMappingURL=gld.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gld.generated.js","sourceRoot":"","sources":["../../../src/schemas/generated/gld.generated.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,6EAA6E;AAC7E,EAAE;AACF,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,2DAA2D;AAG3D,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AAEnE,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC,iBAAiB,EAAE;QACjB,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE,aAAa,CAAC,SAAS;KAClC;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,aAAa,CAAC,SAAS;KAClC;CACF,CAAC"}