@bedrock-engineer/bro-xml-parser 0.6.0 → 0.7.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 +12 -4
- package/dist/browser.d.ts +2 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/colors.d.ts +17 -16
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +6 -6
- package/dist/colors.js.map +1 -1
- package/dist/core/producer.d.ts +13 -4
- package/dist/core/producer.d.ts.map +1 -1
- package/dist/core/producer.js.map +1 -1
- package/dist/core/schema-parser.d.ts +14 -0
- package/dist/core/schema-parser.d.ts.map +1 -1
- package/dist/core/schema-parser.js +44 -11
- 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 +93 -93
- package/dist/core/version-detector.js.map +1 -1
- package/dist/namespaces.d.ts +21 -0
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +36 -0
- package/dist/namespaces.js.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js.map +1 -1
- package/dist/parser.d.ts +16 -2
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +44 -44
- package/dist/parser.js.map +1 -1
- package/dist/producers.d.ts +3 -5
- package/dist/producers.d.ts.map +1 -1
- package/dist/producers.js +3 -5
- package/dist/producers.js.map +1 -1
- package/dist/reference-codes/describe.d.ts +4 -0
- package/dist/reference-codes/describe.d.ts.map +1 -1
- package/dist/reference-codes/describe.js +8 -4
- package/dist/reference-codes/describe.js.map +1 -1
- package/dist/schemas/bhrg-schema.d.ts +483 -483
- package/dist/schemas/bhrg-schema.js +1 -1
- package/dist/schemas/bhrg-types.d.ts +18 -18
- package/dist/schemas/bhrg-types.d.ts.map +1 -1
- package/dist/schemas/bhrgt-analysis.d.ts +53 -53
- package/dist/schemas/bhrgt-analysis.js +3 -3
- package/dist/schemas/bhrgt-analysis.js.map +1 -1
- package/dist/schemas/bore-schema.d.ts +99 -99
- package/dist/schemas/bore-schema.js +1 -1
- package/dist/schemas/bore-schema.js.map +1 -1
- package/dist/schemas/bore-types.d.ts +18 -18
- package/dist/schemas/bore-types.d.ts.map +1 -1
- package/dist/schemas/common-fields.d.ts +4 -61
- package/dist/schemas/common-fields.d.ts.map +1 -1
- package/dist/schemas/common-fields.js +5 -47
- package/dist/schemas/common-fields.js.map +1 -1
- package/dist/schemas/cpt-schema.d.ts +27 -27
- package/dist/schemas/gld-schema.d.ts +12 -12
- package/dist/schemas/gmw-schema.d.ts +60 -60
- package/dist/types/index.d.ts +44 -17
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,16 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
TypeScript parser library for Dutch [Basisregistratie Ondergrond](https://basisregistratieondergrond.nl/) (BRO) XML data, focussing on geotechnical and geological data.
|
|
6
6
|
|
|
7
|
-
The [BRO contains many registration object types](https://basisregistratieondergrond.nl/inhoud-bro/registratieobjecten/). This library currently only covers
|
|
7
|
+
The [BRO contains many registration object types](https://basisregistratieondergrond.nl/inhoud-bro/registratieobjecten/). This library currently only covers five:
|
|
8
8
|
|
|
9
9
|
1. **CPT** (Cone Penetration Test)
|
|
10
10
|
2. **BHR-GT** (Geotechnical Borehole)
|
|
11
11
|
3. **BHR-G** (Geological Borehole)
|
|
12
|
+
4. **GMW** (Groundwater Monitoring Well)
|
|
13
|
+
5. **GLD** (Groundwater Level)
|
|
12
14
|
|
|
13
15
|
Support for more registration object types is desired but not our curent focus. PRs are welcome.
|
|
14
16
|
|
|
15
17
|
**Live demo:** [bro.bedrock.engineer](https://bro.bedrock.engineer/) ([source](https://github.com/bedrock-engineer/bro-xml-app))
|
|
16
18
|
|
|
19
|
+
## Why the web?
|
|
20
|
+
|
|
21
|
+
Geoscience and hydrology tooling leans heavily on Python. While Python and its scientific and geospatial ecosystem is unmatched for analysis and calculation, it is not the most suitable platform for displaying the contents of BRO/XML and being able to distribute that. Here, the web is unbeatable and the web's language is JavaScript.
|
|
22
|
+
|
|
23
|
+
Why TypeScript, then? Mostly a quality-of-life choice for developers. The BRO/XML schema is encoded as types so the shape of every parsed object is known while you write it.
|
|
24
|
+
This gives useful autocompletion and lets the compiler catch mistakes before. It makes the parser pleasant to build on.
|
|
25
|
+
|
|
17
26
|
## Installation
|
|
18
27
|
|
|
19
28
|
No dependencies in the browser.
|
|
@@ -98,9 +107,8 @@ const result = parser.parseCustom(
|
|
|
98
107
|
|
|
99
108
|
The `producers` namespace carries every building block the library uses internally:
|
|
100
109
|
leaf combinators (`text`, `number`, `integer`, `date`, `boolean`, `code`),
|
|
101
|
-
structural combinators (`object`, `array`, `oneOf`, `custom`), the domain
|
|
102
|
-
(`gmlLocation`, `columns`
|
|
103
|
-
`REGISTRATION_HISTORY`) you can spread into a schema.
|
|
110
|
+
structural combinators (`object`, `array`, `oneOf`, `custom`), and the domain
|
|
111
|
+
helpers (`gmlLocation`, `columns` / `col`).
|
|
104
112
|
|
|
105
113
|
## API
|
|
106
114
|
|
package/dist/browser.d.ts
CHANGED
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
export { BROParser } from "./parser.js";
|
|
15
15
|
export { BrowserXMLAdapter as XMLAdapter } from "./adapters/browser-adapter.js";
|
|
16
16
|
export type { CPTData, CPTMeasurement, DissipationMeasurement, BHRGTData, BHRGData, GMWData, GLDData, BROData, BROFileType, Location, ParseMeta, Namespaces, QualityRegime, } from "./types/index.js";
|
|
17
|
-
export type { RegistrationHistory } from "./
|
|
17
|
+
export type { RegistrationHistory } from "./types/index.js";
|
|
18
18
|
export { BROParseError } from "./types/index.js";
|
|
19
19
|
export { SUPPORTED_VERSIONS } from "./core/version-detector.js";
|
|
20
20
|
export type { DataType } from "./core/version-detector.js";
|
|
21
21
|
export { CPT_PRODUCER } from "./schemas/cpt-schema.js";
|
|
22
22
|
export type { DissipationTest, RemovedLayer } from "./types/index.js";
|
|
23
23
|
export { BORE_PRODUCER } from "./schemas/bore-schema.js";
|
|
24
|
-
export type { BHRGTLayer, BHRGTLayerBase, BHRGTSoilLayer, BHRGTRockLayer, RockDescription, RockWeatheringDegree, Grainshape, BoredInterval, SampledInterval, SamplerDetails, CoreRecovery, CompletedInterval, PostSedimentaryDiscontinuity, ExcavatedLayer, BoringVelocityMeasurement, NotDescribedInterval, FluidMudLayer, } from "./schemas/bore-types.js";
|
|
24
|
+
export type { BHRGTLayer, BHRGTLayerBase, BHRGTSoilLayer, BHRGTRockLayer, SoilDescription, RockDescription, RockWeatheringDegree, Grainshape, BoredInterval, SampledInterval, SamplerDetails, CoreRecovery, CompletedInterval, PostSedimentaryDiscontinuity, ExcavatedLayer, BoringVelocityMeasurement, NotDescribedInterval, FluidMudLayer, } from "./schemas/bore-types.js";
|
|
25
25
|
export type { HeightAtSpecificTime, StressAtSpecificSettlement, VolumeChangeAtSpecificTime, ShearStressAtSpecificStrain, HorizontalDeformationDataPoint, BoreholeSampleAnalysis, InvestigatedInterval, WaterContentDetermination, VolumetricMassDensityDetermination, OrganicMatterContentDetermination, CarbonateContentDetermination, VolumetricMassDensityOfSolidsDetermination, MaximumUndrainedShearStrengthDetermination, ParticleSizeDistributionDetermination, ConsistencyLimitsDetermination, SettlementCharacteristicsDetermination, SettlementDeterminationStep, SaturationStageAtCompression, SaturatedPermeabilityDetermination, ShearStressChangeDuringLoadingDetermination, ConsolidationStepAtHorizontalDeformation, ShearStressChangeDuringHorizontalDeformationDetermination, PlasticityAtSpecificWaterContent, SaturatedPermeabilityAtSpecificDensity, SaturatedPermeabilityAtSpecificLoad, MembraneCorrection, DrainageStripCorrection, SpecimenMadeForLoading, SaturationStageAtLoading, ConsolidationStageAtLoading, LoadStage, ConsolidationStageAtHorizontalDeformation, ShearStageAtHorizontalDeformation, } from "./schemas/bhrgt-analysis.js";
|
|
26
26
|
export type { GLDObservation, GLDObservationPoint, GroundwaterMonitoringTubeRef, } from "./schemas/gld-types.js";
|
|
27
27
|
export { BHRG_PRODUCER } from "./schemas/bhrg-schema.js";
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhF,YAAY,EACV,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAmBhF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAmBhF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA6DzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqBzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEjG,2EAA2E;AAC3E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAK5C,sFAAsF;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,6CAA6C;AAC7C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC"}
|
package/dist/colors.d.ts
CHANGED
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
* // Direct lookup
|
|
17
17
|
* const hex = BRO_SOIL_COLORS['lichtBruin']; // '#b79a77'
|
|
18
18
|
*
|
|
19
|
-
* // Helper function (
|
|
20
|
-
* const color = getSoilColor(
|
|
21
|
-
* const unknown = getSoilColor(
|
|
19
|
+
* // Helper function (takes a coded colour value)
|
|
20
|
+
* const color = getSoilColor(layer.colour); // '#b79a77'
|
|
21
|
+
* const unknown = getSoilColor(null); // null
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
+
import type { Coded } from "./core/producer.js";
|
|
24
25
|
/**
|
|
25
26
|
* BRO soil color name to hex color mapping
|
|
26
27
|
*
|
|
@@ -28,32 +29,32 @@
|
|
|
28
29
|
*/
|
|
29
30
|
export declare const BRO_SOIL_COLORS: Record<string, string>;
|
|
30
31
|
/**
|
|
31
|
-
* Get the hex color for a BRO soil
|
|
32
|
+
* Get the hex color for a BRO soil colour code.
|
|
32
33
|
*
|
|
33
|
-
* @param
|
|
34
|
-
* @returns Hex color string, or `null` if the
|
|
34
|
+
* @param colour - A coded colour value (e.g. `layer.colour`), or `null`/`undefined`
|
|
35
|
+
* @returns Hex color string, or `null` if the code is absent or not recognised
|
|
35
36
|
*
|
|
36
37
|
* @example
|
|
37
38
|
* ```typescript
|
|
38
|
-
* getSoilColor(
|
|
39
|
-
* getSoilColor('
|
|
40
|
-
* getSoilColor(
|
|
39
|
+
* getSoilColor(layer.colour); // '#b79a77'
|
|
40
|
+
* getSoilColor({ code: 'lichtBruin', codeSpace }); // '#b79a77'
|
|
41
|
+
* getSoilColor(null); // null
|
|
41
42
|
* ```
|
|
42
43
|
*/
|
|
43
|
-
export declare function getSoilColor(
|
|
44
|
+
export declare function getSoilColor(colour: Coded | null | undefined): string | null;
|
|
44
45
|
/**
|
|
45
|
-
* Get the hex color for a BRO soil
|
|
46
|
+
* Get the hex color for a BRO soil colour code, falling back to a default.
|
|
46
47
|
*
|
|
47
|
-
* @param
|
|
48
|
-
* @param defaultColor - Fallback color returned when the
|
|
49
|
-
* @returns Hex color string, or `defaultColor` if the
|
|
48
|
+
* @param colour - A coded colour value, or `null`/`undefined`
|
|
49
|
+
* @param defaultColor - Fallback color returned when the code is absent or unknown
|
|
50
|
+
* @returns Hex color string, or `defaultColor` if the code is absent or unknown
|
|
50
51
|
*
|
|
51
52
|
* @example
|
|
52
53
|
* ```typescript
|
|
53
|
-
* getSoilColor(
|
|
54
|
+
* getSoilColor(null, '#808080'); // '#808080'
|
|
54
55
|
* ```
|
|
55
56
|
*/
|
|
56
|
-
export declare function getSoilColor(
|
|
57
|
+
export declare function getSoilColor(colour: Coded | null | undefined, defaultColor: string): string;
|
|
57
58
|
/**
|
|
58
59
|
* Check if a color name is a valid BRO soil color
|
|
59
60
|
*
|
package/dist/colors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwDlD,CAAC;AASF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwDlD,CAAC;AASF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;AAC9E;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;AAM7F;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,CAEjD"}
|
package/dist/colors.js
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
* // Direct lookup
|
|
17
17
|
* const hex = BRO_SOIL_COLORS['lichtBruin']; // '#b79a77'
|
|
18
18
|
*
|
|
19
|
-
* // Helper function (
|
|
20
|
-
* const color = getSoilColor(
|
|
21
|
-
* const unknown = getSoilColor(
|
|
19
|
+
* // Helper function (takes a coded colour value)
|
|
20
|
+
* const color = getSoilColor(layer.colour); // '#b79a77'
|
|
21
|
+
* const unknown = getSoilColor(null); // null
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
/**
|
|
@@ -78,9 +78,9 @@ export const BRO_SOIL_COLORS = {
|
|
|
78
78
|
* Normalized lookup map (lowercase keys for case-insensitive matching)
|
|
79
79
|
*/
|
|
80
80
|
const normalizedColorMap = Object.fromEntries(Object.entries(BRO_SOIL_COLORS).map(([key, value]) => [key.toLowerCase(), value]));
|
|
81
|
-
export function getSoilColor(
|
|
82
|
-
const normalized =
|
|
83
|
-
return normalizedColorMap[normalized] ?? defaultColor ?? null;
|
|
81
|
+
export function getSoilColor(colour, defaultColor) {
|
|
82
|
+
const normalized = colour?.code.toLowerCase();
|
|
83
|
+
return (normalized ? normalizedColorMap[normalized] : undefined) ?? defaultColor ?? null;
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Check if a color name is a valid BRO soil color
|
package/dist/colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,gBAAgB;IAChB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IAEtB,iBAAiB;IACjB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IAEtB,iBAAiB;IACjB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IAErB,gBAAgB;IAChB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IAEtB,iBAAiB;IACjB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IAEtB,iBAAiB;IACjB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,SAAS;IAEtB,yDAAyD;IACzD,WAAW,EAAE,SAAS;IACtB,eAAe,EAAE,SAAS;IAC1B,YAAY,EAAE,SAAS;IAEvB,cAAc;IACd,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IAErB,gBAAgB;IAChB,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,SAAS;IAEhB,sEAAsE;IACtE,kDAAkD;IAClD,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS,EAAE,qBAAqB;IACvC,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAA2B,MAAM,CAAC,WAAW,CACnE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAClF,CAAC;AA6BF,MAAM,UAAU,YAAY,CAAC,MAAgC,EAAE,YAAqB;IAClF,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,YAAY,IAAI,IAAI,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,kBAAkB,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/core/producer.d.ts
CHANGED
|
@@ -161,16 +161,25 @@ type PresenceOf<X> = X extends {
|
|
|
161
161
|
type OmitPresenceKeys<F> = {
|
|
162
162
|
[K in keyof F]: PresenceOf<F[K]> extends "omit" ? K : never;
|
|
163
163
|
}[keyof F];
|
|
164
|
+
/**
|
|
165
|
+
* A field's produced value. When an element is absent the runtime nulls only
|
|
166
|
+
* `object`/`oneOf` producers (leaves already carry `null` in their own type, and
|
|
167
|
+
* arrays default to `[]`), so an **optional** object/oneOf field is widened with
|
|
168
|
+
* `| null` to match. `required` fields (never nulled) and `omit` fields (keyed
|
|
169
|
+
* only when present, hence non-null) keep their bare produced type.
|
|
170
|
+
*/
|
|
171
|
+
type FieldValue<X> = PresenceOf<X> extends "required" | "omit" ? Produced<X> : X extends ObjectProducer<unknown, Presence> | OneOfProducer<unknown, Presence> ? Produced<X> | null : Produced<X>;
|
|
164
172
|
/**
|
|
165
173
|
* The output type of an object built from a fields map. A field whose producer
|
|
166
174
|
* has `presence: "omit"` becomes an **optional** key (`key?:`); every other
|
|
167
|
-
* field is a required key.
|
|
168
|
-
*
|
|
175
|
+
* field is a required key. Optional object/oneOf fields are `T | null` (see
|
|
176
|
+
* {@link FieldValue}). Under `exactOptionalPropertyTypes` this exactly mirrors
|
|
177
|
+
* the runtime absence model.
|
|
169
178
|
*/
|
|
170
179
|
export type ProducedFields<F> = Simplify<{
|
|
171
|
-
[K in Exclude<keyof F, OmitPresenceKeys<F>>]:
|
|
180
|
+
[K in Exclude<keyof F, OmitPresenceKeys<F>>]: FieldValue<F[K]>;
|
|
172
181
|
} & {
|
|
173
|
-
[K in OmitPresenceKeys<F>]?:
|
|
182
|
+
[K in OmitPresenceKeys<F>]?: FieldValue<F[K]>;
|
|
174
183
|
}>;
|
|
175
184
|
/** Meta accepted by every combinator, minus `presence` (captured generically). */
|
|
176
185
|
interface BaseMeta {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../src/core/producer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../src/core/producer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producer.js","sourceRoot":"","sources":["../../src/core/producer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"producer.js","sourceRoot":"","sources":["../../src/core/producer.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,12 @@ import type { ObjectProducer } from "./producer.js";
|
|
|
11
11
|
export declare class SchemaParser {
|
|
12
12
|
private adapter;
|
|
13
13
|
private namespaces;
|
|
14
|
+
/**
|
|
15
|
+
* The namespace URIs the XPath resolver binds to. Defaults to the configured
|
|
16
|
+
* {@link namespaces}, but each {@link produce} call re-points it at the exact
|
|
17
|
+
* versions the document declares (see {@link adaptNamespacesToDocument}).
|
|
18
|
+
*/
|
|
19
|
+
private activeNamespaces;
|
|
14
20
|
constructor(adapter: XMLAdapter, namespaces: Namespaces);
|
|
15
21
|
/**
|
|
16
22
|
* Interpret a {@link Producer} schema against a document, recursing through
|
|
@@ -28,6 +34,14 @@ export declare class SchemaParser {
|
|
|
28
34
|
value: T;
|
|
29
35
|
warnings: Array<string>;
|
|
30
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Adapt the configured namespaces to the versions this document declares.
|
|
39
|
+
*
|
|
40
|
+
* BRO declares every namespace on the root element, so its `xmlns`/`xmlns:*`
|
|
41
|
+
* attributes are the full set of URIs in play. Reading them lets the resolver
|
|
42
|
+
* bind to the document's actual minor version (e.g. `dsbhrg/3` vs `/3.1`).
|
|
43
|
+
*/
|
|
44
|
+
private namespacesForDocument;
|
|
31
45
|
/**
|
|
32
46
|
* Resolve the schema root: the first child of `rootPath` (the registration
|
|
33
47
|
* object under `dispatchDocument`), or the document itself when unspecified.
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAGhE,OAAO,KAAK,EAAsB,cAAc,EAAsB,MAAM,eAAe,CAAC;AA4B5F,qBAAa,YAAY;IASrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IATpB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAa;gBAG3B,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU;IAKhC;;;;;;;;;;;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;IAqBxC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,QAAQ;IAIhB,oEAAoE;IACpE,OAAO,CAAC,GAAG;IAoDX;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAoCjB,mFAAmF;IACnF,OAAO,CAAC,QAAQ;IAkChB,mEAAmE;IACnE,OAAO,CAAC,UAAU;IAalB,6DAA6D;IAC7D,OAAO,CAAC,QAAQ;CAgBjB"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* public {@link BROParser.parseCustom} surface.
|
|
8
8
|
*/
|
|
9
9
|
import { BROParseError } from "../types/index.js";
|
|
10
|
+
import { adaptNamespacesToDocument } from "../namespaces.js";
|
|
10
11
|
/** Trimmed text content of a node, or `null` when empty. */
|
|
11
12
|
function readText(node) {
|
|
12
13
|
const trimmed = node.textContent?.trim();
|
|
@@ -23,9 +24,16 @@ function isLeafKind(kind) {
|
|
|
23
24
|
export class SchemaParser {
|
|
24
25
|
adapter;
|
|
25
26
|
namespaces;
|
|
27
|
+
/**
|
|
28
|
+
* The namespace URIs the XPath resolver binds to. Defaults to the configured
|
|
29
|
+
* {@link namespaces}, but each {@link produce} call re-points it at the exact
|
|
30
|
+
* versions the document declares (see {@link adaptNamespacesToDocument}).
|
|
31
|
+
*/
|
|
32
|
+
activeNamespaces;
|
|
26
33
|
constructor(adapter, namespaces) {
|
|
27
34
|
this.adapter = adapter;
|
|
28
35
|
this.namespaces = namespaces;
|
|
36
|
+
this.activeNamespaces = namespaces;
|
|
29
37
|
}
|
|
30
38
|
/**
|
|
31
39
|
* Interpret a {@link Producer} schema against a document, recursing through
|
|
@@ -40,17 +48,42 @@ export class SchemaParser {
|
|
|
40
48
|
* instead — see the absence model).
|
|
41
49
|
*/
|
|
42
50
|
produce(doc, root, rootPath) {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
const previousNamespaces = this.activeNamespaces;
|
|
52
|
+
this.activeNamespaces = this.namespacesForDocument(doc);
|
|
53
|
+
try {
|
|
54
|
+
const rootElement = this.resolveRoot(doc, rootPath);
|
|
55
|
+
const self = root.at ? this.xpath(rootElement, root.at) : rootElement;
|
|
56
|
+
if (!self) {
|
|
57
|
+
throw new BROParseError(`Root element not found: ${root.at ?? rootPath ?? "."}`, {
|
|
58
|
+
code: "MISSING_ROOT",
|
|
59
|
+
path: root.at ?? rootPath,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const warnings = [];
|
|
63
|
+
const value = this.runObject(self, root, warnings, true).value;
|
|
64
|
+
return { value, warnings };
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
this.activeNamespaces = previousNamespaces;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Adapt the configured namespaces to the versions this document declares.
|
|
72
|
+
*
|
|
73
|
+
* BRO declares every namespace on the root element, so its `xmlns`/`xmlns:*`
|
|
74
|
+
* attributes are the full set of URIs in play. Reading them lets the resolver
|
|
75
|
+
* bind to the document's actual minor version (e.g. `dsbhrg/3` vs `/3.1`).
|
|
76
|
+
*/
|
|
77
|
+
namespacesForDocument(doc) {
|
|
78
|
+
const attributes = doc.documentElement.attributes;
|
|
79
|
+
const declaredUris = [];
|
|
80
|
+
for (let i = 0; i < attributes.length; i++) {
|
|
81
|
+
const attribute = attributes.item(i);
|
|
82
|
+
if (attribute && (attribute.name === "xmlns" || attribute.name.startsWith("xmlns:"))) {
|
|
83
|
+
declaredUris.push(attribute.value);
|
|
84
|
+
}
|
|
50
85
|
}
|
|
51
|
-
|
|
52
|
-
const value = this.runObject(self, root, warnings, true).value;
|
|
53
|
-
return { value, warnings };
|
|
86
|
+
return adaptNamespacesToDocument(this.namespaces, declaredUris);
|
|
54
87
|
}
|
|
55
88
|
/**
|
|
56
89
|
* Resolve the schema root: the first child of `rootPath` (the registration
|
|
@@ -71,7 +104,7 @@ export class SchemaParser {
|
|
|
71
104
|
return root;
|
|
72
105
|
}
|
|
73
106
|
get nsResolver() {
|
|
74
|
-
return (prefix) => (prefix ? (this.
|
|
107
|
+
return (prefix) => (prefix ? (this.activeNamespaces[prefix] ?? null) : null);
|
|
75
108
|
}
|
|
76
109
|
xpath(from, query) {
|
|
77
110
|
return this.adapter.evaluateXPath(from, query, this.nsResolver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-parser.js","sourceRoot":"","sources":["../../src/core/schema-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-parser.js","sourceRoot":"","sources":["../../src/core/schema-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAM7D,4DAA4D;AAC5D,SAAS,QAAQ,CAAC,IAAU;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,GAA0B,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE,oFAAoF;AACpF,SAAS,UAAU,CAAC,IAAyC;IAC3D,OAAO,UAAU,CAAC,GAAG,CAAC,IAAgB,CAAC,CAAC;AAC1C,CAAC;AASD,MAAM,OAAO,YAAY;IASb;IACA;IATV;;;;OAIG;IACK,gBAAgB,CAAa;IAErC,YACU,OAAmB,EACnB,UAAsB;QADtB,YAAO,GAAP,OAAO,CAAY;QACnB,eAAU,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO,CACL,GAAa,EACb,IAAuB,EACvB,QAAiB;QAEjB,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACtE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,aAAa,CAAC,2BAA2B,IAAI,CAAC,EAAE,IAAI,QAAQ,IAAI,GAAG,EAAE,EAAE;oBAC/E,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,QAAQ;iBAC1B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAU,CAAC;YACpE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CAAC,GAAa;QACzC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC;QAClD,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACrF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,GAAa,EAAE,QAAiB;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,QAAQ,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,QAAQ,SAAS,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,2BAA2B,QAAQ,EAAE,EAAE;gBAC7D,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,IAAU,EAAE,KAAa;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAEO,QAAQ,CAAC,IAAU,EAAE,KAAa;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,oEAAoE;IAC5D,GAAG,CAAC,IAAU,EAAE,QAAqC,EAAE,QAAuB;QACpF,qEAAqE;QACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAChE,CAAC;QAED,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxD,SAAS,EAAE,GAAG,KAAK,IAAI;iBACxB,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnD,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7E,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC3E,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAmB,EAAE,CAAC;gBAC/B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;wBACvB,mEAAmE;wBACnE,4EAA4E;wBAC5E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,IAAI,CACX,+BAA+B,QAAQ,CAAC,IAAI,8BAA8B,CAC3E,CAAC;wBACJ,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,SAAS,CACf,IAAU,EACV,QAA2C,EAC3C,QAAuB,EACvB,MAAe;QAEf,MAAM,GAAG,GAA4B,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC;YAC9C,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,aAAa,CAAC,sCAAsC,GAAG,EAAE,EAAE;wBACnE,IAAI,EAAE,wBAAwB;wBAC9B,KAAK,EAAE,GAAG;wBACV,KAAK,EAAE,KAAK,CAAC,EAAE;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,2DAA2D;gBAC3D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,mFAAmF;IAC3E,QAAQ,CACd,IAAU,EACV,QAA2B,EAC3B,QAAuB;QAEvB,8EAA8E;QAC9E,MAAM,MAAM,GAAG,CAAC,MAA+B,EAAE,IAAU,EAAE,MAAmD,EAAQ,EAAE;YACxH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAChD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;oBACnE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,MAAM,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;YAClF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,6BAA6B;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,mEAAmE;IAC3D,UAAU,CAAC,QAAqC;QACtD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,OAAO;gBACV,OAAO,EAAE,CAAC;YACZ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,6DAA6D;IACrD,QAAQ,CAAC,IAAU;QACzB,MAAM,EAAE,GAAG,CAAC,KAAa,EAAiB,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC;QACF,OAAO;YACL,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,SAAS,GAAI,IAAyB,CAAC,SAAS,CAAC;gBACvD,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACxE,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* supported by this library. Uses graceful degradation for same
|
|
6
6
|
* major versions with warnings.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
import type { BROFileType } from "../types/index.js";
|
|
9
|
+
/** Alias of the canonical {@link BROFileType} union (single source in `types/index`). */
|
|
10
|
+
export type DataType = BROFileType;
|
|
9
11
|
/**
|
|
10
12
|
* Schema version info
|
|
11
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-detector.d.ts","sourceRoot":"","sources":["../../src/core/version-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"version-detector.d.ts","sourceRoot":"","sources":["../../src/core/version-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,yFAAyF;AACzF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC;;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;AAmHD;;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;AAmCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,QAAQ,EACb,YAAY,EAAE,QAAQ,GACrB,sBAAsB,CA2HxB;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"}
|