@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,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Producer schema DSL.
|
|
3
|
+
*
|
|
4
|
+
* A {@link Producer} describes how to turn one XML node into one typed value. It
|
|
5
|
+
* is the single recursive unit of a schema: an object producer's fields are
|
|
6
|
+
* themselves producers, an array producer's item is a producer, and so on all
|
|
7
|
+
* the way down. {@link SchemaParser.produce} interprets this tree.
|
|
8
|
+
*
|
|
9
|
+
* Five kinds, each built by a combinator:
|
|
10
|
+
* - `scalar` — a leaf: text (or an attribute) decoded into `T`.
|
|
11
|
+
* - `object` — a fixed set of named fields, each a producer.
|
|
12
|
+
* - `array` — a repeated subtree: `each` selects item nodes, `item` produces one.
|
|
13
|
+
* - `oneOf` — an honest discriminated union (shared `base` + tagged `branches`).
|
|
14
|
+
* - `custom` — the sole escape hatch, handed a narrow {@link NodeLens}.
|
|
15
|
+
*
|
|
16
|
+
* Absence model (see CONTEXT.md): a `required` field that is missing nulls its
|
|
17
|
+
* *nearest enclosing object*; arrays *drop* null items (recording a warning);
|
|
18
|
+
* only the document root throws. `required` is opt-in, so nothing cascades unless
|
|
19
|
+
* a schema author asks for it.
|
|
20
|
+
*/
|
|
21
|
+
import { parseDate, parseFloat, parseInt, parseBoolean, parseQualityClass, } from "../decoders/type-decoders.js";
|
|
22
|
+
/** A leaf producer with an explicit decoder. */
|
|
23
|
+
export function scalar(opts) {
|
|
24
|
+
return { kind: "scalar", ...opts };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build a leaf from a decoder + optional `at`, without ever writing
|
|
28
|
+
* `at: undefined` (which `exactOptionalPropertyTypes` rejects).
|
|
29
|
+
*/
|
|
30
|
+
function leaf(decode, at, opts) {
|
|
31
|
+
return scalar({ decode, ...(at !== undefined ? { at } : {}), ...opts });
|
|
32
|
+
}
|
|
33
|
+
/** Raw trimmed text (`string | null`). */
|
|
34
|
+
export function text(at, opts = {}) {
|
|
35
|
+
return leaf((raw) => raw, at, opts);
|
|
36
|
+
}
|
|
37
|
+
/** Precision-preserving ISO date/dateTime string (`string | null`). */
|
|
38
|
+
export function date(at, opts = {}) {
|
|
39
|
+
return leaf(parseDate, at, opts);
|
|
40
|
+
}
|
|
41
|
+
/** Decimal number (`number | null`). */
|
|
42
|
+
export function number_(at, opts = {}) {
|
|
43
|
+
return leaf(parseFloat, at, opts);
|
|
44
|
+
}
|
|
45
|
+
/** Integer (`number | null`). */
|
|
46
|
+
export function integer(at, opts = {}) {
|
|
47
|
+
return leaf(parseInt, at, opts);
|
|
48
|
+
}
|
|
49
|
+
/** Boolean (`boolean | null`), understanding BRO's `ja`/`nee`. */
|
|
50
|
+
export function boolean_(at, opts = {}) {
|
|
51
|
+
return leaf(parseBoolean, at, opts);
|
|
52
|
+
}
|
|
53
|
+
/** BRO quality class (`number | null`), understanding `"klasse2"` and `"2"`. */
|
|
54
|
+
export function qualityClass(at, opts = {}) {
|
|
55
|
+
return leaf(parseQualityClass, at, opts);
|
|
56
|
+
}
|
|
57
|
+
/** A fixed set of named fields. Output type is inferred from `fields`. */
|
|
58
|
+
export function object_(opts) {
|
|
59
|
+
const { fields, ...meta } = opts;
|
|
60
|
+
return { kind: "object", fields, ...meta };
|
|
61
|
+
}
|
|
62
|
+
/** A repeated subtree. `each` selects item nodes; `item` produces one value. */
|
|
63
|
+
export function array(opts) {
|
|
64
|
+
const { each, item, ...meta } = opts;
|
|
65
|
+
return { kind: "array", each, item, ...meta };
|
|
66
|
+
}
|
|
67
|
+
/** The escape hatch: a decoder handed a relative-only {@link NodeLens}. */
|
|
68
|
+
export function custom(opts) {
|
|
69
|
+
const { produce, ...meta } = opts;
|
|
70
|
+
return { kind: "custom", produce, ...meta };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* An honest discriminated union. `base` fields are parsed once; the first branch
|
|
74
|
+
* whose `when` XPath exists is parsed and merged, with its literal `tag` written
|
|
75
|
+
* under `tagAs`.
|
|
76
|
+
*
|
|
77
|
+
* The output type is **inferred**: a discriminated union keyed on `tagAs`, each
|
|
78
|
+
* member being the shared `base` fields plus that branch's `fields` plus the
|
|
79
|
+
* literal `tag`. Presence is honoured throughout (`omit` → optional key).
|
|
80
|
+
*/
|
|
81
|
+
export function oneOf(opts) {
|
|
82
|
+
const { tagAs, base = {}, branches, ...meta } = opts;
|
|
83
|
+
return { kind: "oneOf", tagAs, base, branches, ...meta };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=producer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"producer.js","sourceRoot":"","sources":["../../src/core/producer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generic schema-driven XML parser
|
|
2
|
+
* Generic schema-driven XML parser.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* and
|
|
6
|
-
* The same
|
|
4
|
+
* Interprets a {@link Producer} schema against a document — recursing through
|
|
5
|
+
* nested objects, arrays, unions and custom decoders — and produces typed
|
|
6
|
+
* output. The same interpreter drives every data type (CPT, Bore, ...) and the
|
|
7
|
+
* public {@link BROParser.parseCustom} surface.
|
|
7
8
|
*/
|
|
8
|
-
import type { XMLAdapter,
|
|
9
|
+
import type { XMLAdapter, Namespaces } from "../types/index.js";
|
|
10
|
+
import type { ObjectProducer } from "./producer.js";
|
|
9
11
|
export declare class SchemaParser {
|
|
10
12
|
private adapter;
|
|
11
13
|
private namespaces;
|
|
12
14
|
constructor(adapter: XMLAdapter, namespaces: Namespaces);
|
|
13
15
|
/**
|
|
14
|
-
*
|
|
16
|
+
* Interpret a {@link Producer} schema against a document, recursing through
|
|
17
|
+
* nested objects, arrays, unions and custom decoders.
|
|
15
18
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
19
|
+
* The top-level producer must be an object (a registration object's fields).
|
|
20
|
+
* Warnings from the absence model (dropped array items) are returned rather
|
|
21
|
+
* than logged, so callers can fold them into `meta.warnings`.
|
|
22
|
+
*
|
|
23
|
+
* @throws {BROParseError} `MISSING_REQUIRED_FIELD` when a `required` field is
|
|
24
|
+
* missing at the document root (nested required failures null their object
|
|
25
|
+
* instead — see the absence model).
|
|
20
26
|
*/
|
|
21
|
-
|
|
27
|
+
produce<T>(doc: Document, root: ObjectProducer<T>, rootPath?: string): {
|
|
28
|
+
value: T;
|
|
29
|
+
warnings: Array<string>;
|
|
30
|
+
};
|
|
22
31
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
* Resolve the schema root: the first child of `rootPath` (the registration
|
|
33
|
+
* object under `dispatchDocument`), or the document itself when unspecified.
|
|
34
|
+
*/
|
|
35
|
+
private resolveRoot;
|
|
36
|
+
private get nsResolver();
|
|
37
|
+
private xpath;
|
|
38
|
+
private xpathAll;
|
|
39
|
+
/** Run one producer against `node` (the enclosing context node). */
|
|
40
|
+
private run;
|
|
41
|
+
/**
|
|
42
|
+
* Build an object by running each field. Applies the presence + absence model:
|
|
43
|
+
* a missing `required` field nulls the whole object (or throws at the root); a
|
|
44
|
+
* missing `omit` field drops its key; a missing `optional` field keeps its
|
|
45
|
+
* empty value.
|
|
28
46
|
*/
|
|
29
|
-
private
|
|
47
|
+
private runObject;
|
|
48
|
+
/** Run a discriminated union: base fields once, then the first matching branch. */
|
|
49
|
+
private runOneOf;
|
|
50
|
+
/** The "empty" value a producer yields when its node is absent. */
|
|
51
|
+
private emptyValue;
|
|
52
|
+
/** A relative-only lens over `node` for custom producers. */
|
|
53
|
+
private makeLens;
|
|
30
54
|
}
|
|
31
55
|
//# sourceMappingURL=schema-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-parser.d.ts","sourceRoot":"","sources":["../../src/core/schema-parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema-parser.d.ts","sourceRoot":"","sources":["../../src/core/schema-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAsB,cAAc,EAAY,MAAM,eAAe,CAAC;AAqBlF,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;gBADV,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU;IAGhC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,CAAC,EACP,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE;IAexC;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,QAAQ;IAIhB,oEAAoE;IACpE,OAAO,CAAC,GAAG;IA2CX;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAoCjB,mFAAmF;IACnF,OAAO,CAAC,QAAQ;IAkChB,mEAAmE;IACnE,OAAO,CAAC,UAAU;IAWlB,6DAA6D;IAC7D,OAAO,CAAC,QAAQ;CAgBjB"}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generic schema-driven XML parser
|
|
2
|
+
* Generic schema-driven XML parser.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* and
|
|
6
|
-
* The same
|
|
4
|
+
* Interprets a {@link Producer} schema against a document — recursing through
|
|
5
|
+
* nested objects, arrays, unions and custom decoders — and produces typed
|
|
6
|
+
* output. The same interpreter drives every data type (CPT, Bore, ...) and the
|
|
7
|
+
* public {@link BROParser.parseCustom} surface.
|
|
7
8
|
*/
|
|
8
9
|
import { BROParseError } from "../types/index.js";
|
|
10
|
+
/** Trimmed text content of a node, or `null` when empty. */
|
|
11
|
+
function readText(node) {
|
|
12
|
+
const trimmed = node.textContent?.trim();
|
|
13
|
+
if (!trimmed) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return trimmed;
|
|
17
|
+
}
|
|
9
18
|
export class SchemaParser {
|
|
10
19
|
adapter;
|
|
11
20
|
namespaces;
|
|
@@ -14,88 +23,184 @@ export class SchemaParser {
|
|
|
14
23
|
this.namespaces = namespaces;
|
|
15
24
|
}
|
|
16
25
|
/**
|
|
17
|
-
*
|
|
26
|
+
* Interpret a {@link Producer} schema against a document, recursing through
|
|
27
|
+
* nested objects, arrays, unions and custom decoders.
|
|
28
|
+
*
|
|
29
|
+
* The top-level producer must be an object (a registration object's fields).
|
|
30
|
+
* Warnings from the absence model (dropped array items) are returned rather
|
|
31
|
+
* than logged, so callers can fold them into `meta.warnings`.
|
|
18
32
|
*
|
|
19
|
-
* @
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* @returns Parsed data object with fields from schema
|
|
33
|
+
* @throws {BROParseError} `MISSING_REQUIRED_FIELD` when a `required` field is
|
|
34
|
+
* missing at the document root (nested required failures null their object
|
|
35
|
+
* instead — see the absence model).
|
|
23
36
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
produce(doc, root, rootPath) {
|
|
38
|
+
const rootElement = this.resolveRoot(doc, rootPath);
|
|
39
|
+
const self = root.at ? this.xpath(rootElement, root.at) : rootElement;
|
|
40
|
+
if (!self) {
|
|
41
|
+
throw new BROParseError(`Root element not found: ${root.at ?? rootPath ?? "."}`, {
|
|
42
|
+
code: "MISSING_ROOT",
|
|
43
|
+
path: root.at ?? rootPath,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const warnings = [];
|
|
47
|
+
const value = this.runObject(self, root, warnings, true).value;
|
|
48
|
+
return { value, warnings };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolve the schema root: the first child of `rootPath` (the registration
|
|
52
|
+
* object under `dispatchDocument`), or the document itself when unspecified.
|
|
53
|
+
*/
|
|
54
|
+
resolveRoot(doc, rootPath) {
|
|
55
|
+
if (!rootPath) {
|
|
56
|
+
return doc;
|
|
57
|
+
}
|
|
58
|
+
let root = this.xpath(doc, `.//${rootPath}/*[1]`);
|
|
59
|
+
root ??= this.xpath(doc, `//*[local-name()='${rootPath}']/*[1]`);
|
|
60
|
+
if (!root) {
|
|
61
|
+
throw new BROParseError(`Root element not found: ${rootPath}`, {
|
|
62
|
+
code: "MISSING_ROOT",
|
|
63
|
+
path: rootPath,
|
|
64
|
+
});
|
|
39
65
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
66
|
+
return root;
|
|
67
|
+
}
|
|
68
|
+
get nsResolver() {
|
|
69
|
+
return (prefix) => (prefix ? (this.namespaces[prefix] ?? null) : null);
|
|
70
|
+
}
|
|
71
|
+
xpath(from, query) {
|
|
72
|
+
return this.adapter.evaluateXPath(from, query, this.nsResolver);
|
|
73
|
+
}
|
|
74
|
+
xpathAll(from, query) {
|
|
75
|
+
return this.adapter.evaluateXPathAll(from, query, this.nsResolver);
|
|
76
|
+
}
|
|
77
|
+
/** Run one producer against `node` (the enclosing context node). */
|
|
78
|
+
run(node, producer, warnings) {
|
|
79
|
+
// Resolve this producer's own node (relative to the enclosing node).
|
|
80
|
+
const self = producer.at ? this.xpath(node, producer.at) : node;
|
|
81
|
+
if (!self) {
|
|
82
|
+
return { value: this.emptyValue(producer), satisfied: false };
|
|
83
|
+
}
|
|
84
|
+
switch (producer.kind) {
|
|
85
|
+
case "scalar": {
|
|
86
|
+
const raw = readText(self);
|
|
87
|
+
return { value: producer.decode(raw), satisfied: raw !== null };
|
|
46
88
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
89
|
+
case "custom": {
|
|
90
|
+
return { value: producer.produce(this.makeLens(self)), satisfied: true };
|
|
91
|
+
}
|
|
92
|
+
case "object": {
|
|
93
|
+
return this.runObject(self, producer, warnings, false);
|
|
94
|
+
}
|
|
95
|
+
case "array": {
|
|
96
|
+
const items = this.xpathAll(self, producer.each);
|
|
97
|
+
const out = [];
|
|
98
|
+
for (const itemNode of items) {
|
|
99
|
+
const outcome = this.run(itemNode, producer.item, warnings);
|
|
100
|
+
if (!outcome.satisfied) {
|
|
101
|
+
// Structured items (object/oneOf) that fail a required field are a
|
|
102
|
+
// meaningful data loss; an empty scalar in a code list is not.
|
|
103
|
+
if (producer.item.kind !== "scalar") {
|
|
104
|
+
warnings.push(`Dropped an item from array "${producer.each}": required data was missing`);
|
|
105
|
+
}
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
out.push(outcome.value);
|
|
56
109
|
}
|
|
57
|
-
|
|
58
|
-
|
|
110
|
+
return { value: out, satisfied: items.length > 0 };
|
|
111
|
+
}
|
|
112
|
+
case "oneOf": {
|
|
113
|
+
return this.runOneOf(self, producer, warnings);
|
|
59
114
|
}
|
|
60
115
|
}
|
|
61
|
-
return result;
|
|
62
116
|
}
|
|
63
117
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* @returns Extracted and resolved value
|
|
118
|
+
* Build an object by running each field. Applies the presence + absence model:
|
|
119
|
+
* a missing `required` field nulls the whole object (or throws at the root); a
|
|
120
|
+
* missing `omit` field drops its key; a missing `optional` field keeps its
|
|
121
|
+
* empty value.
|
|
69
122
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
123
|
+
runObject(self, producer, warnings, isRoot) {
|
|
124
|
+
const obj = {};
|
|
125
|
+
for (const [key, field] of Object.entries(producer.fields)) {
|
|
126
|
+
const outcome = this.run(self, field, warnings);
|
|
127
|
+
if (outcome.satisfied) {
|
|
128
|
+
obj[key] = outcome.value;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const presence = field.presence ?? "optional";
|
|
132
|
+
if (presence === "required") {
|
|
133
|
+
if (isRoot) {
|
|
134
|
+
throw new BROParseError(`Required field missing or invalid: ${key}`, {
|
|
135
|
+
code: "MISSING_REQUIRED_FIELD",
|
|
136
|
+
field: key,
|
|
137
|
+
xpath: field.at,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
// Object-local failure: null the nearest enclosing object.
|
|
141
|
+
return { value: null, satisfied: false };
|
|
142
|
+
}
|
|
143
|
+
if (presence === "omit") {
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
obj[key] = outcome.value;
|
|
84
147
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
148
|
+
return { value: obj, satisfied: true };
|
|
149
|
+
}
|
|
150
|
+
/** Run a discriminated union: base fields once, then the first matching branch. */
|
|
151
|
+
runOneOf(self, producer, warnings) {
|
|
152
|
+
// Assign each field, honouring `presence: "omit"` (skip the key when absent).
|
|
153
|
+
const assign = (target, node, fields) => {
|
|
154
|
+
for (const [key, field] of Object.entries(fields)) {
|
|
155
|
+
const outcome = this.run(node, field, warnings);
|
|
156
|
+
if (outcome.satisfied || (field.presence ?? "optional") !== "omit") {
|
|
157
|
+
target[key] = outcome.value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const base = {};
|
|
162
|
+
assign(base, self, producer.base);
|
|
163
|
+
for (const branch of producer.branches) {
|
|
164
|
+
if (!this.xpath(self, branch.when)) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const branchNode = branch.at ? this.xpath(self, branch.at) : self;
|
|
168
|
+
const merged = { ...base, [producer.tagAs]: branch.tag };
|
|
169
|
+
if (branchNode) {
|
|
170
|
+
assign(merged, branchNode, branch.fields);
|
|
171
|
+
}
|
|
172
|
+
return { value: merged, satisfied: true };
|
|
88
173
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
174
|
+
// No branch matched: absent.
|
|
175
|
+
return { value: null, satisfied: false };
|
|
176
|
+
}
|
|
177
|
+
/** The "empty" value a producer yields when its node is absent. */
|
|
178
|
+
emptyValue(producer) {
|
|
179
|
+
switch (producer.kind) {
|
|
180
|
+
case "scalar":
|
|
181
|
+
return producer.decode(null);
|
|
182
|
+
case "array":
|
|
183
|
+
return [];
|
|
184
|
+
default:
|
|
185
|
+
return null;
|
|
97
186
|
}
|
|
98
|
-
|
|
187
|
+
}
|
|
188
|
+
/** A relative-only lens over `node` for custom producers. */
|
|
189
|
+
makeLens(node) {
|
|
190
|
+
const at = (xpath) => {
|
|
191
|
+
const found = this.xpath(node, xpath);
|
|
192
|
+
return found ? readText(found) : null;
|
|
193
|
+
};
|
|
194
|
+
return {
|
|
195
|
+
name: () => {
|
|
196
|
+
const localName = node.localName;
|
|
197
|
+
return typeof localName === "string" ? localName : null;
|
|
198
|
+
},
|
|
199
|
+
text: () => readText(node),
|
|
200
|
+
textAt: at,
|
|
201
|
+
attr: at,
|
|
202
|
+
all: (xpath) => this.xpathAll(node, xpath).map((n) => this.makeLens(n)),
|
|
203
|
+
};
|
|
99
204
|
}
|
|
100
205
|
}
|
|
101
206
|
//# sourceMappingURL=schema-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-parser.js","sourceRoot":"","sources":["../../src/core/schema-parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema-parser.js","sourceRoot":"","sources":["../../src/core/schema-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* supported by this library. Uses graceful degradation for same
|
|
6
6
|
* major versions with warnings.
|
|
7
7
|
*/
|
|
8
|
-
export type DataType = "CPT" | "BHR-GT" | "BHR-G";
|
|
8
|
+
export type DataType = "CPT" | "BHR-GT" | "BHR-G" | "GMW" | "GLD";
|
|
9
9
|
/**
|
|
10
10
|
* Schema version info
|
|
11
11
|
*/
|
|
@@ -22,6 +22,8 @@ export declare const SUPPORTED_VERSIONS: {
|
|
|
22
22
|
readonly CPT: SchemaVersionInfo;
|
|
23
23
|
readonly "BHR-GT": SchemaVersionInfo;
|
|
24
24
|
readonly "BHR-G": SchemaVersionInfo;
|
|
25
|
+
readonly GMW: SchemaVersionInfo;
|
|
26
|
+
readonly GLD: SchemaVersionInfo;
|
|
25
27
|
};
|
|
26
28
|
/**
|
|
27
29
|
* Result of version detection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-detector.d.ts","sourceRoot":"","sources":["../../src/core/version-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"version-detector.d.ts","sourceRoot":"","sources":["../../src/core/version-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AAElE;;GAEG;AACH,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyFD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB;AA4DD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,QAAQ,EACb,YAAY,EAAE,QAAQ,GACrB,sBAAsB,CA6GxB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,GACZ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiC/D"}
|
|
@@ -59,6 +59,29 @@ const KNOWN_VERSIONS = {
|
|
|
59
59
|
description: "Dispatch BHR-G schema version 3.0",
|
|
60
60
|
},
|
|
61
61
|
],
|
|
62
|
+
GMW: [
|
|
63
|
+
{
|
|
64
|
+
namespace: "http://www.broservices.nl/xsd/dsgmw/1.1",
|
|
65
|
+
version: "1.1",
|
|
66
|
+
majorVersion: 1,
|
|
67
|
+
description: "Dispatch GMW schema version 1.1",
|
|
68
|
+
},
|
|
69
|
+
// Older known versions
|
|
70
|
+
{
|
|
71
|
+
namespace: "http://www.broservices.nl/xsd/dsgmw/1.0",
|
|
72
|
+
version: "1.0",
|
|
73
|
+
majorVersion: 1,
|
|
74
|
+
description: "Dispatch GMW schema version 1.0",
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
GLD: [
|
|
78
|
+
{
|
|
79
|
+
namespace: "http://www.broservices.nl/xsd/dsgld/1.0",
|
|
80
|
+
version: "1.0",
|
|
81
|
+
majorVersion: 1,
|
|
82
|
+
description: "Dispatch GLD schema version 1.0",
|
|
83
|
+
},
|
|
84
|
+
],
|
|
62
85
|
};
|
|
63
86
|
/**
|
|
64
87
|
* Get the supported (primary) version for a data type
|
|
@@ -75,6 +98,8 @@ export const SUPPORTED_VERSIONS = {
|
|
|
75
98
|
CPT: getSupportedVersion("CPT"),
|
|
76
99
|
"BHR-GT": getSupportedVersion("BHR-GT"),
|
|
77
100
|
"BHR-G": getSupportedVersion("BHR-G"),
|
|
101
|
+
GMW: getSupportedVersion("GMW"),
|
|
102
|
+
GLD: getSupportedVersion("GLD"),
|
|
78
103
|
};
|
|
79
104
|
/**
|
|
80
105
|
* Extract version from namespace URI
|
|
@@ -105,6 +130,12 @@ function detectDataTypeFromNamespace(namespace) {
|
|
|
105
130
|
if (namespace.includes("/dsbhrg/")) {
|
|
106
131
|
return "BHR-G";
|
|
107
132
|
}
|
|
133
|
+
if (namespace.includes("/dsgmw/")) {
|
|
134
|
+
return "GMW";
|
|
135
|
+
}
|
|
136
|
+
if (namespace.includes("/dsgld/")) {
|
|
137
|
+
return "GLD";
|
|
138
|
+
}
|
|
108
139
|
return null;
|
|
109
140
|
}
|
|
110
141
|
/**
|
|
@@ -118,6 +149,10 @@ function getParserMethodName(dataType) {
|
|
|
118
149
|
return "parseBHRGT";
|
|
119
150
|
case "BHR-G":
|
|
120
151
|
return "parseBHRG";
|
|
152
|
+
case "GMW":
|
|
153
|
+
return "parseGMW";
|
|
154
|
+
case "GLD":
|
|
155
|
+
return "parseGLD";
|
|
121
156
|
}
|
|
122
157
|
}
|
|
123
158
|
/**
|
|
@@ -218,6 +253,8 @@ export function detectAndValidateVersion(doc, expectedType) {
|
|
|
218
253
|
CPT: SUPPORTED_VERSIONS.CPT.namespace,
|
|
219
254
|
"BHR-GT": SUPPORTED_VERSIONS["BHR-GT"].namespace,
|
|
220
255
|
"BHR-G": SUPPORTED_VERSIONS["BHR-G"].namespace,
|
|
256
|
+
GMW: SUPPORTED_VERSIONS.GMW.namespace,
|
|
257
|
+
GLD: SUPPORTED_VERSIONS.GLD.namespace,
|
|
221
258
|
},
|
|
222
259
|
hint: "This does not appear to be a supported BRO XML document.",
|
|
223
260
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-detector.js","sourceRoot":"","sources":["../../src/core/version-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAclD;;;;;;GAMG;AACH,MAAM,cAAc,GAA+C;IACjE,GAAG,EAAE;QACH;YACE,SAAS,EAAE,yCAAyC;YACpD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,iCAAiC;SAC/C;QACD,uBAAuB;QACvB;YACE,SAAS,EAAE,yCAAyC;YACpD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,iCAAiC;SAC/C;KACF;IACD,QAAQ,EAAE;QACR;YACE,SAAS,EAAE,4CAA4C;YACvD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,oCAAoC;SAClD;QACD,uBAAuB;QACvB;YACE,SAAS,EAAE,4CAA4C;YACvD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,oCAAoC;SAClD;KACF;IACD,OAAO,EAAE;QACP;YACE,SAAS,EAAE,0CAA0C;YACrD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,mCAAmC;SACjD;QACD,uBAAuB;QACvB;YACE,SAAS,EAAE,0CAA0C;YACrD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,mCAAmC;SACjD;KACF;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,wDAAwD;IACxD,oEAAoE;IACpE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"version-detector.js","sourceRoot":"","sources":["../../src/core/version-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/decoders/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/decoders/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC"}
|