@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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLD (Grondwaterstandonderzoek / groundwater level research) schema.
|
|
3
|
+
*
|
|
4
|
+
* Maps the dsgld/1.0 registration object (`GLD_O`) to {@link GLDData}. The OGC
|
|
5
|
+
* `om:OM_Observation` / WaterML2 subtrees live outside the BRO namespaces, so the
|
|
6
|
+
* coverage checker treats `dsgld:observation` as one opaque leaf; this schema
|
|
7
|
+
* reaches into their internals directly.
|
|
8
|
+
*
|
|
9
|
+
* Coverage is verified with `npm run check:xsd-coverage`.
|
|
10
|
+
*/
|
|
11
|
+
import type { Produced } from "../core/producer.js";
|
|
12
|
+
/** One `{time, value, qualifier}` point of an observation's time-series. */
|
|
13
|
+
declare const OBSERVATION_POINT: import("../core/producer.js").ObjectProducer<{
|
|
14
|
+
time: string | null;
|
|
15
|
+
value: number | null;
|
|
16
|
+
unit: string | null;
|
|
17
|
+
qualifier: string | null;
|
|
18
|
+
}, "optional">;
|
|
19
|
+
/** One groundwater level observation (an OGC `om:OM_Observation`). */
|
|
20
|
+
declare const OBSERVATION: import("../core/producer.js").ObjectProducer<{
|
|
21
|
+
observationId: string | null;
|
|
22
|
+
observationType: string | null;
|
|
23
|
+
status: string | null;
|
|
24
|
+
beginPosition: string | null;
|
|
25
|
+
endPosition: string | null;
|
|
26
|
+
resultTime: string | null;
|
|
27
|
+
airPressureCompensationType: string | null;
|
|
28
|
+
evaluationProcedure: string | null;
|
|
29
|
+
points: {
|
|
30
|
+
time: string | null;
|
|
31
|
+
value: number | null;
|
|
32
|
+
unit: string | null;
|
|
33
|
+
qualifier: string | null;
|
|
34
|
+
}[];
|
|
35
|
+
}, "optional">;
|
|
36
|
+
/** The GMW tube a GLD research pertains to. */
|
|
37
|
+
declare const MONITORING_POINT: import("../core/producer.js").ObjectProducer<{
|
|
38
|
+
broId: string | null;
|
|
39
|
+
tubeNumber: number | null;
|
|
40
|
+
}, "optional">;
|
|
41
|
+
export declare const GLD_PRODUCER: import("../core/producer.js").ObjectProducer<{
|
|
42
|
+
registrationHistory: {
|
|
43
|
+
objectRegistrationTime: string | null;
|
|
44
|
+
registrationStatus: string | null;
|
|
45
|
+
registrationCompletionTime: string | null;
|
|
46
|
+
latestCorrectionTime: string | null;
|
|
47
|
+
latestAdditionTime: string | null;
|
|
48
|
+
underReviewTime: string | null;
|
|
49
|
+
deregistrationTime: string | null;
|
|
50
|
+
reregistrationTime: string | null;
|
|
51
|
+
corrected: boolean | null;
|
|
52
|
+
underReview: boolean | null;
|
|
53
|
+
deregistered: boolean | null;
|
|
54
|
+
reregistered: boolean | null;
|
|
55
|
+
};
|
|
56
|
+
broId: string | null;
|
|
57
|
+
qualityRegime: string | null;
|
|
58
|
+
deliveryAccountableParty: string | null;
|
|
59
|
+
objectIdAccountableParty: string | null;
|
|
60
|
+
deliveryResponsibleParty: string | null;
|
|
61
|
+
researchFirstDate: string | null;
|
|
62
|
+
researchLastDate: string | null;
|
|
63
|
+
monitoringPoint: {
|
|
64
|
+
broId: string | null;
|
|
65
|
+
tubeNumber: number | null;
|
|
66
|
+
};
|
|
67
|
+
groundwaterMonitoringNets: (string | null)[];
|
|
68
|
+
observations: {
|
|
69
|
+
observationId: string | null;
|
|
70
|
+
observationType: string | null;
|
|
71
|
+
status: string | null;
|
|
72
|
+
beginPosition: string | null;
|
|
73
|
+
endPosition: string | null;
|
|
74
|
+
resultTime: string | null;
|
|
75
|
+
airPressureCompensationType: string | null;
|
|
76
|
+
evaluationProcedure: string | null;
|
|
77
|
+
points: {
|
|
78
|
+
time: string | null;
|
|
79
|
+
value: number | null;
|
|
80
|
+
unit: string | null;
|
|
81
|
+
qualifier: string | null;
|
|
82
|
+
}[];
|
|
83
|
+
}[];
|
|
84
|
+
}, "optional">;
|
|
85
|
+
/** The GMW tube reference a GLD pertains to. Inferred from {@link MONITORING_POINT}. @internal */
|
|
86
|
+
export type GroundwaterMonitoringTubeRef = Produced<typeof MONITORING_POINT>;
|
|
87
|
+
/** One `{time, value, qualifier}` point of an observation series. Inferred from {@link OBSERVATION_POINT}. @internal */
|
|
88
|
+
export type GLDObservationPoint = Produced<typeof OBSERVATION_POINT>;
|
|
89
|
+
/** One groundwater level observation. Inferred from {@link OBSERVATION}. @internal */
|
|
90
|
+
export type GLDObservation = Produced<typeof OBSERVATION>;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=gld-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gld-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/gld-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAoBpD,4EAA4E;AAC5E,QAAA,MAAM,iBAAiB;;;;;cASrB,CAAC;AAEH,sEAAsE;AACtE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;cA2Bf,CAAC;AAEH,+CAA+C;AAC/C,QAAA,MAAM,gBAAgB;;;cAMpB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BvB,CAAC;AAEH,kGAAkG;AAClG,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC7E,wHAAwH;AACxH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLD (Grondwaterstandonderzoek / groundwater level research) schema.
|
|
3
|
+
*
|
|
4
|
+
* Maps the dsgld/1.0 registration object (`GLD_O`) to {@link GLDData}. The OGC
|
|
5
|
+
* `om:OM_Observation` / WaterML2 subtrees live outside the BRO namespaces, so the
|
|
6
|
+
* coverage checker treats `dsgld:observation` as one opaque leaf; this schema
|
|
7
|
+
* reaches into their internals directly.
|
|
8
|
+
*
|
|
9
|
+
* Coverage is verified with `npm run check:xsd-coverage`.
|
|
10
|
+
*/
|
|
11
|
+
import { object_, array, text, date, number_, integer, scalar } from "../core/producer.js";
|
|
12
|
+
import { COMMON_REGISTRATION_PRODUCERS, REGISTRATION_HISTORY, } from "./common-fields.js";
|
|
13
|
+
/** Tail of a BRO URN code (`urn:bro:gld:StatusCode:voorlopig` -> `voorlopig`). */
|
|
14
|
+
function urnTail(value) {
|
|
15
|
+
if (!value) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const parts = value.split(":");
|
|
19
|
+
return parts[parts.length - 1] ?? null;
|
|
20
|
+
}
|
|
21
|
+
/** Select a WaterML2 NamedValue parameter by its `om:name/@xlink:href` key. */
|
|
22
|
+
function namedValue(href) {
|
|
23
|
+
return `om:NamedValue[om:name/@xlink:href='${href}']/om:value`;
|
|
24
|
+
}
|
|
25
|
+
/** One `{time, value, qualifier}` point of an observation's time-series. */
|
|
26
|
+
const OBSERVATION_POINT = object_({
|
|
27
|
+
fields: {
|
|
28
|
+
time: date("./wml2:time"),
|
|
29
|
+
value: number_("./wml2:value"),
|
|
30
|
+
unit: text("./wml2:value/@uom"),
|
|
31
|
+
qualifier: text("./wml2:metadata/wml2:TVPMeasurementMetadata/wml2:qualifier/swe:Category/swe:value"),
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
/** One groundwater level observation (an OGC `om:OM_Observation`). */
|
|
35
|
+
const OBSERVATION = object_({
|
|
36
|
+
fields: {
|
|
37
|
+
observationId: text("./@gml:id"),
|
|
38
|
+
observationType: text("./om:metadata/wml2:ObservationMetadata/wml2:parameter/" +
|
|
39
|
+
namedValue("urn:bro:gld:ObservationMetadata:observationType")),
|
|
40
|
+
status: scalar({
|
|
41
|
+
at: "./om:metadata/wml2:ObservationMetadata/wml2:status/@xlink:href",
|
|
42
|
+
decode: urnTail,
|
|
43
|
+
}),
|
|
44
|
+
beginPosition: date("./om:phenomenonTime/gml:TimePeriod/gml:beginPosition"),
|
|
45
|
+
endPosition: date("./om:phenomenonTime/gml:TimePeriod/gml:endPosition"),
|
|
46
|
+
resultTime: date("./om:resultTime/gml:TimeInstant/gml:timePosition"),
|
|
47
|
+
airPressureCompensationType: text("./om:procedure/wml2:ObservationProcess/wml2:parameter/" +
|
|
48
|
+
namedValue("urn:bro:gld:ObservationProcess:airPressureCompensationType")),
|
|
49
|
+
evaluationProcedure: text("./om:procedure/wml2:ObservationProcess/wml2:parameter/" +
|
|
50
|
+
namedValue("urn:bro:gld:ObservationProcess:evaluationProcedure")),
|
|
51
|
+
points: array({
|
|
52
|
+
each: "./om:result/wml2:MeasurementTimeseries/wml2:point/wml2:MeasurementTVP",
|
|
53
|
+
item: OBSERVATION_POINT,
|
|
54
|
+
}),
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
/** The GMW tube a GLD research pertains to. */
|
|
58
|
+
const MONITORING_POINT = object_({
|
|
59
|
+
at: "./dsgld:monitoringPoint/gldcommon:GroundwaterMonitoringTube",
|
|
60
|
+
fields: {
|
|
61
|
+
broId: text("./gldcommon:broId"),
|
|
62
|
+
tubeNumber: integer("./gldcommon:tubeNumber"),
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export const GLD_PRODUCER = object_({
|
|
66
|
+
fields: {
|
|
67
|
+
// === Core identification (shared brocom fields) ===
|
|
68
|
+
...COMMON_REGISTRATION_PRODUCERS,
|
|
69
|
+
// === Scalar fields ===
|
|
70
|
+
researchFirstDate: date("./dsgld:researchFirstDate"),
|
|
71
|
+
researchLastDate: date("./dsgld:researchLastDate"),
|
|
72
|
+
// === Monitoring point (the GMW tube this research pertains to) ===
|
|
73
|
+
monitoringPoint: MONITORING_POINT,
|
|
74
|
+
// === Groundwater monitoring nets (GMN membership) ===
|
|
75
|
+
groundwaterMonitoringNets: array({
|
|
76
|
+
each: "./dsgld:groundwaterMonitoringNet/gldcommon:GroundwaterMonitoringNet",
|
|
77
|
+
item: text("./gldcommon:broId"),
|
|
78
|
+
}),
|
|
79
|
+
// === Observation time-series ===
|
|
80
|
+
observations: array({
|
|
81
|
+
each: "./dsgld:observation/om:OM_Observation",
|
|
82
|
+
item: OBSERVATION,
|
|
83
|
+
}),
|
|
84
|
+
// === Administrative history ===
|
|
85
|
+
registrationHistory: REGISTRATION_HISTORY,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=gld-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gld-schema.js","sourceRoot":"","sources":["../../src/schemas/gld-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,kFAAkF;AAClF,SAAS,OAAO,CAAC,KAAoB;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,sCAAsC,IAAI,aAAa,CAAC;AACjE,CAAC;AAED,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC/B,SAAS,EAAE,IAAI,CACb,mFAAmF,CACpF;KACF;CACF,CAAC,CAAC;AAEH,sEAAsE;AACtE,MAAM,WAAW,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE;QACN,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;QAChC,eAAe,EAAE,IAAI,CACnB,wDAAwD;YACtD,UAAU,CAAC,iDAAiD,CAAC,CAChE;QACD,MAAM,EAAE,MAAM,CAAC;YACb,EAAE,EAAE,gEAAgE;YACpE,MAAM,EAAE,OAAO;SAChB,CAAC;QACF,aAAa,EAAE,IAAI,CAAC,sDAAsD,CAAC;QAC3E,WAAW,EAAE,IAAI,CAAC,oDAAoD,CAAC;QACvE,UAAU,EAAE,IAAI,CAAC,kDAAkD,CAAC;QACpE,2BAA2B,EAAE,IAAI,CAC/B,wDAAwD;YACtD,UAAU,CAAC,4DAA4D,CAAC,CAC3E;QACD,mBAAmB,EAAE,IAAI,CACvB,wDAAwD;YACtD,UAAU,CAAC,oDAAoD,CAAC,CACnE;QACD,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,uEAAuE;YAC7E,IAAI,EAAE,iBAAiB;SACxB,CAAC;KACH;CACF,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,OAAO,CAAC;IAC/B,EAAE,EAAE,6DAA6D;IACjE,MAAM,EAAE;QACN,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC;KAC9C;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;IAClC,MAAM,EAAE;QACN,qDAAqD;QACrD,GAAG,6BAA6B;QAEhC,wBAAwB;QACxB,iBAAiB,EAAE,IAAI,CAAC,2BAA2B,CAAC;QACpD,gBAAgB,EAAE,IAAI,CAAC,0BAA0B,CAAC;QAElD,oEAAoE;QACpE,eAAe,EAAE,gBAAgB;QAEjC,uDAAuD;QACvD,yBAAyB,EAAE,KAAK,CAAC;YAC/B,IAAI,EAAE,qEAAqE;YAC3E,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC;SAChC,CAAC;QAEF,kCAAkC;QAClC,YAAY,EAAE,KAAK,CAAC;YAClB,IAAI,EAAE,uCAAuC;YAC7C,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,iCAAiC;QACjC,mBAAmB,EAAE,oBAAoB;KAC1C;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GMW (Grondwatermonitoringput / groundwater monitoring well) schema.
|
|
3
|
+
*
|
|
4
|
+
* Maps the dsgmw/1.1 registration object (`GMW_PPO` / `GMW_PO` / `GMW_O`, which
|
|
5
|
+
* all share one leaf surface) to {@link GMWData}. The well is array-heavy: one or
|
|
6
|
+
* more monitoring tubes (each with a flattened
|
|
7
|
+
* materialUsed/screen/plainTubePart/sedimentSump/insertedPart surface and its own
|
|
8
|
+
* geo-ohm cables → electrodes), an intermediate-event log, and surveyed
|
|
9
|
+
* borehole-research ids.
|
|
10
|
+
*
|
|
11
|
+
* Field coverage is verified exhaustively against the official XSD with
|
|
12
|
+
* `npm run check:xsd-coverage` (GMW: 0 gaps).
|
|
13
|
+
*
|
|
14
|
+
* Note on the intermediate-event `eventData` diff: the XSD nests, under each
|
|
15
|
+
* `wellHistory/intermediateEvent`, an `eventData` change record whose leaf names
|
|
16
|
+
* (tubeMaterial, glue, electrodePosition, ...) are a subset of the monitoring-tube
|
|
17
|
+
* fields modelled below. That per-event diff is deliberately not expanded; the
|
|
18
|
+
* current-state values live on the tubes.
|
|
19
|
+
*/
|
|
20
|
+
import type { Produced } from "../core/producer.js";
|
|
21
|
+
/** One electrode on a geo-ohm cable. */
|
|
22
|
+
declare const ELECTRODE: import("../core/producer.js").ObjectProducer<{
|
|
23
|
+
electrodeNumber: number | null;
|
|
24
|
+
electrodePackingMaterial: string | null;
|
|
25
|
+
electrodeStatus: string | null;
|
|
26
|
+
electrodePosition: number | null;
|
|
27
|
+
}, "optional">;
|
|
28
|
+
/** One geo-ohm cable running along a monitoring tube. */
|
|
29
|
+
declare const GEO_OHM_CABLE: import("../core/producer.js").ObjectProducer<{
|
|
30
|
+
cableNumber: number | null;
|
|
31
|
+
cableInUse: string | null;
|
|
32
|
+
electrodes: {
|
|
33
|
+
electrodeNumber: number | null;
|
|
34
|
+
electrodePackingMaterial: string | null;
|
|
35
|
+
electrodeStatus: string | null;
|
|
36
|
+
electrodePosition: number | null;
|
|
37
|
+
}[];
|
|
38
|
+
}, "optional">;
|
|
39
|
+
/** One monitoring tube, with its material/screen/insert surface flattened. */
|
|
40
|
+
declare const MONITORING_TUBE: import("../core/producer.js").ObjectProducer<{
|
|
41
|
+
tubeNumber: number | null;
|
|
42
|
+
tubeType: string | null;
|
|
43
|
+
artesianWellCapPresent: boolean | null;
|
|
44
|
+
sedimentSumpPresent: boolean | null;
|
|
45
|
+
numberOfGeoOhmCables: number | null;
|
|
46
|
+
tubeTopDiameter: number | null;
|
|
47
|
+
variableDiameter: boolean | null;
|
|
48
|
+
tubeStatus: string | null;
|
|
49
|
+
tubeTopPosition: number | null;
|
|
50
|
+
tubeTopPositioningMethod: string | null;
|
|
51
|
+
tubePartInserted: boolean | null;
|
|
52
|
+
tubeInUse: string | null;
|
|
53
|
+
tubePackingMaterial: string | null;
|
|
54
|
+
tubeMaterial: string | null;
|
|
55
|
+
glue: string | null;
|
|
56
|
+
screenLength: number | null;
|
|
57
|
+
sockMaterial: string | null;
|
|
58
|
+
screenProtection: string | null;
|
|
59
|
+
screenTopPosition: number | null;
|
|
60
|
+
screenBottomPosition: number | null;
|
|
61
|
+
plainTubePartLength: number | null;
|
|
62
|
+
sedimentSumpLength: number | null;
|
|
63
|
+
insertedPartLength: number | null;
|
|
64
|
+
insertedPartDiameter: number | null;
|
|
65
|
+
insertedPartMaterial: string | null;
|
|
66
|
+
geoOhmCables: {
|
|
67
|
+
cableNumber: number | null;
|
|
68
|
+
cableInUse: string | null;
|
|
69
|
+
electrodes: {
|
|
70
|
+
electrodeNumber: number | null;
|
|
71
|
+
electrodePackingMaterial: string | null;
|
|
72
|
+
electrodeStatus: string | null;
|
|
73
|
+
electrodePosition: number | null;
|
|
74
|
+
}[];
|
|
75
|
+
}[];
|
|
76
|
+
}, "optional">;
|
|
77
|
+
/** One dated well-history event (name + date). */
|
|
78
|
+
declare const GMW_INTERMEDIATE_EVENT: import("../core/producer.js").ObjectProducer<{
|
|
79
|
+
eventName: string | null;
|
|
80
|
+
eventDate: string | null;
|
|
81
|
+
}, "optional">;
|
|
82
|
+
export declare const GMW_PRODUCER: import("../core/producer.js").ObjectProducer<{
|
|
83
|
+
deliveredLocation: import("../browser.js").Location | null;
|
|
84
|
+
standardizedLocation: import("../browser.js").Location | null;
|
|
85
|
+
coordinateTransformation: string | null;
|
|
86
|
+
horizontalPositioningMethod: string | null;
|
|
87
|
+
deliveredVerticalPositionOffset: number | null;
|
|
88
|
+
deliveredVerticalPositionDatum: string | null;
|
|
89
|
+
deliveredVerticalPositionReferencePoint: string | null;
|
|
90
|
+
deliveryContext: string | null;
|
|
91
|
+
registrationHistory: {
|
|
92
|
+
objectRegistrationTime: string | null;
|
|
93
|
+
registrationStatus: string | null;
|
|
94
|
+
registrationCompletionTime: string | null;
|
|
95
|
+
latestCorrectionTime: string | null;
|
|
96
|
+
latestAdditionTime: string | null;
|
|
97
|
+
underReviewTime: string | null;
|
|
98
|
+
deregistrationTime: string | null;
|
|
99
|
+
reregistrationTime: string | null;
|
|
100
|
+
corrected: boolean | null;
|
|
101
|
+
underReview: boolean | null;
|
|
102
|
+
deregistered: boolean | null;
|
|
103
|
+
reregistered: boolean | null;
|
|
104
|
+
};
|
|
105
|
+
broId: string | null;
|
|
106
|
+
qualityRegime: string | null;
|
|
107
|
+
deliveryAccountableParty: string | null;
|
|
108
|
+
objectIdAccountableParty: string | null;
|
|
109
|
+
deliveryResponsibleParty: string | null;
|
|
110
|
+
intermediateEvents: {
|
|
111
|
+
eventName: string | null;
|
|
112
|
+
eventDate: string | null;
|
|
113
|
+
}[];
|
|
114
|
+
nitgCode: string | null;
|
|
115
|
+
withPrehistory: boolean | null;
|
|
116
|
+
constructionStandard: string | null;
|
|
117
|
+
initialFunction: string | null;
|
|
118
|
+
removed: boolean | null;
|
|
119
|
+
numberOfMonitoringTubes: number | null;
|
|
120
|
+
groundLevelStable: string | null;
|
|
121
|
+
wellStability: string | null;
|
|
122
|
+
wellCode: string | null;
|
|
123
|
+
owner: string | null;
|
|
124
|
+
maintenanceResponsibleParty: string | null;
|
|
125
|
+
wellHeadProtector: string | null;
|
|
126
|
+
isAbroad: boolean | null;
|
|
127
|
+
geometricDataPubliclyAvailable: boolean | null;
|
|
128
|
+
groundLevelPosition: number | null;
|
|
129
|
+
groundLevelPositioningMethod: string | null;
|
|
130
|
+
wellConstructionDate: string | null;
|
|
131
|
+
wellRemovalDate: string | null;
|
|
132
|
+
monitoringTubes: {
|
|
133
|
+
tubeNumber: number | null;
|
|
134
|
+
tubeType: string | null;
|
|
135
|
+
artesianWellCapPresent: boolean | null;
|
|
136
|
+
sedimentSumpPresent: boolean | null;
|
|
137
|
+
numberOfGeoOhmCables: number | null;
|
|
138
|
+
tubeTopDiameter: number | null;
|
|
139
|
+
variableDiameter: boolean | null;
|
|
140
|
+
tubeStatus: string | null;
|
|
141
|
+
tubeTopPosition: number | null;
|
|
142
|
+
tubeTopPositioningMethod: string | null;
|
|
143
|
+
tubePartInserted: boolean | null;
|
|
144
|
+
tubeInUse: string | null;
|
|
145
|
+
tubePackingMaterial: string | null;
|
|
146
|
+
tubeMaterial: string | null;
|
|
147
|
+
glue: string | null;
|
|
148
|
+
screenLength: number | null;
|
|
149
|
+
sockMaterial: string | null;
|
|
150
|
+
screenProtection: string | null;
|
|
151
|
+
screenTopPosition: number | null;
|
|
152
|
+
screenBottomPosition: number | null;
|
|
153
|
+
plainTubePartLength: number | null;
|
|
154
|
+
sedimentSumpLength: number | null;
|
|
155
|
+
insertedPartLength: number | null;
|
|
156
|
+
insertedPartDiameter: number | null;
|
|
157
|
+
insertedPartMaterial: string | null;
|
|
158
|
+
geoOhmCables: {
|
|
159
|
+
cableNumber: number | null;
|
|
160
|
+
cableInUse: string | null;
|
|
161
|
+
electrodes: {
|
|
162
|
+
electrodeNumber: number | null;
|
|
163
|
+
electrodePackingMaterial: string | null;
|
|
164
|
+
electrodeStatus: string | null;
|
|
165
|
+
electrodePosition: number | null;
|
|
166
|
+
}[];
|
|
167
|
+
}[];
|
|
168
|
+
}[];
|
|
169
|
+
surveyBoreholeResearchIds: (string | null)[];
|
|
170
|
+
}, "optional">;
|
|
171
|
+
/** One electrode on a geo-ohm cable. Inferred from {@link ELECTRODE}. @internal */
|
|
172
|
+
export type Electrode = Produced<typeof ELECTRODE>;
|
|
173
|
+
/** One geo-ohm cable on a monitoring tube. Inferred from {@link GEO_OHM_CABLE}. @internal */
|
|
174
|
+
export type GeoOhmCable = Produced<typeof GEO_OHM_CABLE>;
|
|
175
|
+
/** One monitoring tube. Inferred from {@link MONITORING_TUBE}. @internal */
|
|
176
|
+
export type MonitoringTube = Produced<typeof MONITORING_TUBE>;
|
|
177
|
+
/** One dated well-history event. Inferred from {@link GMW_INTERMEDIATE_EVENT}. @internal */
|
|
178
|
+
export type GMWIntermediateEvent = Produced<typeof GMW_INTERMEDIATE_EVENT>;
|
|
179
|
+
export {};
|
|
180
|
+
//# sourceMappingURL=gmw-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmw-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/gmw-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,wCAAwC;AACxC,QAAA,MAAM,SAAS;;;;;cAOb,CAAC;AAEH,yDAAyD;AACzD,QAAA,MAAM,aAAa;;;;;;;;;cAMjB,CAAC;AAEH,8EAA8E;AAC9E,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwCnB,CAAC;AAEH,kDAAkD;AAClD,QAAA,MAAM,sBAAsB;;;cAK1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+DvB,CAAC;AAEH,mFAAmF;AACnF,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AACnD,6FAA6F;AAC7F,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,4FAA4F;AAC5F,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GMW (Grondwatermonitoringput / groundwater monitoring well) schema.
|
|
3
|
+
*
|
|
4
|
+
* Maps the dsgmw/1.1 registration object (`GMW_PPO` / `GMW_PO` / `GMW_O`, which
|
|
5
|
+
* all share one leaf surface) to {@link GMWData}. The well is array-heavy: one or
|
|
6
|
+
* more monitoring tubes (each with a flattened
|
|
7
|
+
* materialUsed/screen/plainTubePart/sedimentSump/insertedPart surface and its own
|
|
8
|
+
* geo-ohm cables → electrodes), an intermediate-event log, and surveyed
|
|
9
|
+
* borehole-research ids.
|
|
10
|
+
*
|
|
11
|
+
* Field coverage is verified exhaustively against the official XSD with
|
|
12
|
+
* `npm run check:xsd-coverage` (GMW: 0 gaps).
|
|
13
|
+
*
|
|
14
|
+
* Note on the intermediate-event `eventData` diff: the XSD nests, under each
|
|
15
|
+
* `wellHistory/intermediateEvent`, an `eventData` change record whose leaf names
|
|
16
|
+
* (tubeMaterial, glue, electrodePosition, ...) are a subset of the monitoring-tube
|
|
17
|
+
* fields modelled below. That per-event diff is deliberately not expanded; the
|
|
18
|
+
* current-state values live on the tubes.
|
|
19
|
+
*/
|
|
20
|
+
import { object_, array, text, date, number_, integer, boolean_ } from "../core/producer.js";
|
|
21
|
+
import { COMMON_REGISTRATION_PRODUCERS, REGISTRATION_HISTORY, gmlLocation, } from "./common-fields.js";
|
|
22
|
+
/** One electrode on a geo-ohm cable. */
|
|
23
|
+
const ELECTRODE = object_({
|
|
24
|
+
fields: {
|
|
25
|
+
electrodeNumber: integer("./gmwcommon:electrodeNumber"),
|
|
26
|
+
electrodePackingMaterial: text("./gmwcommon:electrodePackingMaterial"),
|
|
27
|
+
electrodeStatus: text("./gmwcommon:electrodeStatus"),
|
|
28
|
+
electrodePosition: number_("./gmwcommon:electrodePosition"),
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
/** One geo-ohm cable running along a monitoring tube. */
|
|
32
|
+
const GEO_OHM_CABLE = object_({
|
|
33
|
+
fields: {
|
|
34
|
+
cableNumber: integer("./dsgmw:cableNumber"),
|
|
35
|
+
cableInUse: text("./dsgmw:cableInUse"),
|
|
36
|
+
electrodes: array({ each: "./dsgmw:electrode", item: ELECTRODE }),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
/** One monitoring tube, with its material/screen/insert surface flattened. */
|
|
40
|
+
const MONITORING_TUBE = object_({
|
|
41
|
+
fields: {
|
|
42
|
+
tubeNumber: integer("./dsgmw:tubeNumber"),
|
|
43
|
+
tubeType: text("./dsgmw:tubeType"),
|
|
44
|
+
artesianWellCapPresent: boolean_("./dsgmw:artesianWellCapPresent"),
|
|
45
|
+
sedimentSumpPresent: boolean_("./dsgmw:sedimentSumpPresent"),
|
|
46
|
+
numberOfGeoOhmCables: integer("./dsgmw:numberOfGeoOhmCables"),
|
|
47
|
+
tubeTopDiameter: number_("./dsgmw:tubeTopDiameter"),
|
|
48
|
+
variableDiameter: boolean_("./dsgmw:variableDiameter"),
|
|
49
|
+
tubeStatus: text("./dsgmw:tubeStatus"),
|
|
50
|
+
tubeTopPosition: number_("./dsgmw:tubeTopPosition"),
|
|
51
|
+
tubeTopPositioningMethod: text("./dsgmw:tubeTopPositioningMethod"),
|
|
52
|
+
tubePartInserted: boolean_("./dsgmw:tubePartInserted"),
|
|
53
|
+
tubeInUse: text("./dsgmw:tubeInUse"),
|
|
54
|
+
// materialUsed
|
|
55
|
+
tubePackingMaterial: text("./dsgmw:materialUsed/gmwcommon:tubePackingMaterial"),
|
|
56
|
+
tubeMaterial: text("./dsgmw:materialUsed/gmwcommon:tubeMaterial"),
|
|
57
|
+
glue: text("./dsgmw:materialUsed/gmwcommon:glue"),
|
|
58
|
+
// screen
|
|
59
|
+
screenLength: number_("./dsgmw:screen/dsgmw:screenLength"),
|
|
60
|
+
sockMaterial: text("./dsgmw:screen/dsgmw:sockMaterial"),
|
|
61
|
+
screenProtection: text("./dsgmw:screen/dsgmw:screenProtection"),
|
|
62
|
+
screenTopPosition: number_("./dsgmw:screen/dsgmw:screenTopPosition"),
|
|
63
|
+
screenBottomPosition: number_("./dsgmw:screen/dsgmw:screenBottomPosition"),
|
|
64
|
+
// plainTubePart
|
|
65
|
+
plainTubePartLength: number_("./dsgmw:plainTubePart/gmwcommon:plainTubePartLength"),
|
|
66
|
+
// sedimentSump
|
|
67
|
+
sedimentSumpLength: number_("./dsgmw:sedimentSump/gmwcommon:sedimentSumpLength"),
|
|
68
|
+
// insertedPart (present when tubePartInserted is true)
|
|
69
|
+
insertedPartLength: number_("./dsgmw:insertedPart/gmwcommon:insertedPartLength"),
|
|
70
|
+
insertedPartDiameter: number_("./dsgmw:insertedPart/gmwcommon:insertedPartDiameter"),
|
|
71
|
+
insertedPartMaterial: text("./dsgmw:insertedPart/gmwcommon:insertedPartMaterial"),
|
|
72
|
+
geoOhmCables: array({ each: "./dsgmw:geoOhmCable", item: GEO_OHM_CABLE }),
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
/** One dated well-history event (name + date). */
|
|
76
|
+
const GMW_INTERMEDIATE_EVENT = object_({
|
|
77
|
+
fields: {
|
|
78
|
+
eventName: text("./dsgmw:eventName"),
|
|
79
|
+
eventDate: date("./dsgmw:eventDate"),
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
export const GMW_PRODUCER = object_({
|
|
83
|
+
fields: {
|
|
84
|
+
// === Core identification (shared brocom fields) ===
|
|
85
|
+
...COMMON_REGISTRATION_PRODUCERS,
|
|
86
|
+
// === Well metadata ===
|
|
87
|
+
withPrehistory: boolean_("./dsgmw:withPrehistory"),
|
|
88
|
+
deliveryContext: text("./dsgmw:deliveryContext"),
|
|
89
|
+
constructionStandard: text("./dsgmw:constructionStandard"),
|
|
90
|
+
initialFunction: text("./dsgmw:initialFunction"),
|
|
91
|
+
removed: boolean_("./dsgmw:removed"),
|
|
92
|
+
numberOfMonitoringTubes: integer("./dsgmw:numberOfMonitoringTubes"),
|
|
93
|
+
groundLevelStable: text("./dsgmw:groundLevelStable"),
|
|
94
|
+
wellStability: text("./dsgmw:wellStability"),
|
|
95
|
+
nitgCode: text("./dsgmw:nitgCode"),
|
|
96
|
+
wellCode: text("./dsgmw:wellCode"),
|
|
97
|
+
owner: text("./dsgmw:owner"),
|
|
98
|
+
maintenanceResponsibleParty: text("./dsgmw:maintenanceResponsibleParty"),
|
|
99
|
+
wellHeadProtector: text("./dsgmw:wellHeadProtector"),
|
|
100
|
+
isAbroad: boolean_("./dsgmw:isAbroad"),
|
|
101
|
+
geometricDataPubliclyAvailable: boolean_("./dsgmw:geometricDataPubliclyAvailable"),
|
|
102
|
+
// === Location ===
|
|
103
|
+
deliveredLocation: gmlLocation("./dsgmw:deliveredLocation/gmwcommon:location"),
|
|
104
|
+
horizontalPositioningMethod: text("./dsgmw:deliveredLocation/gmwcommon:horizontalPositioningMethod"),
|
|
105
|
+
standardizedLocation: gmlLocation("./dsgmw:standardizedLocation/brocom:location"),
|
|
106
|
+
coordinateTransformation: text("./dsgmw:standardizedLocation/brocom:coordinateTransformation"),
|
|
107
|
+
// === Vertical position ===
|
|
108
|
+
deliveredVerticalPositionOffset: number_("./dsgmw:deliveredVerticalPosition/gmwcommon:offset"),
|
|
109
|
+
deliveredVerticalPositionDatum: text("./dsgmw:deliveredVerticalPosition/gmwcommon:verticalDatum"),
|
|
110
|
+
deliveredVerticalPositionReferencePoint: text("./dsgmw:deliveredVerticalPosition/gmwcommon:localVerticalReferencePoint"),
|
|
111
|
+
groundLevelPosition: number_("./dsgmw:deliveredVerticalPosition/gmwcommon:groundLevelPosition"),
|
|
112
|
+
groundLevelPositioningMethod: text("./dsgmw:deliveredVerticalPosition/gmwcommon:groundLevelPositioningMethod"),
|
|
113
|
+
// === Well history ===
|
|
114
|
+
wellConstructionDate: date("./dsgmw:wellHistory/dsgmw:wellConstructionDate"),
|
|
115
|
+
wellRemovalDate: date("./dsgmw:wellHistory/dsgmw:wellRemovalDate"),
|
|
116
|
+
intermediateEvents: array({
|
|
117
|
+
each: "./dsgmw:wellHistory/dsgmw:intermediateEvent",
|
|
118
|
+
item: GMW_INTERMEDIATE_EVENT,
|
|
119
|
+
}),
|
|
120
|
+
// === Monitoring tubes (with geo-ohm cables / electrodes) ===
|
|
121
|
+
monitoringTubes: array({ each: "./dsgmw:monitoringTube", item: MONITORING_TUBE }),
|
|
122
|
+
// === Related surveys ===
|
|
123
|
+
surveyBoreholeResearchIds: array({
|
|
124
|
+
each: "./dsgmw:survey",
|
|
125
|
+
item: text(".//*[local-name()='broId']"),
|
|
126
|
+
}),
|
|
127
|
+
// === Administrative history ===
|
|
128
|
+
registrationHistory: REGISTRATION_HISTORY,
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=gmw-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmw-schema.js","sourceRoot":"","sources":["../../src/schemas/gmw-schema.ts"],"names":[],"mappings":"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"}
|