@ifc-lite/ids 1.16.0 → 1.16.2
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/dist/audit/coherence/index.d.ts.map +1 -1
- package/dist/audit/coherence/index.js +18 -1
- package/dist/audit/coherence/index.js.map +1 -1
- package/dist/audit/ifc-schema/datatype-check.d.ts +24 -0
- package/dist/audit/ifc-schema/datatype-check.d.ts.map +1 -0
- package/dist/audit/ifc-schema/datatype-check.js +134 -0
- package/dist/audit/ifc-schema/datatype-check.js.map +1 -0
- package/dist/audit/ifc-schema/index.d.ts.map +1 -1
- package/dist/audit/ifc-schema/index.js +34 -130
- package/dist/audit/ifc-schema/index.js.map +1 -1
- package/dist/audit/types.d.ts +1 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/bridge/classifications.js +1 -1
- package/dist/bridge/classifications.js.map +1 -1
- package/dist/bridge/property-overlay-resolver.d.ts.map +1 -1
- package/dist/bridge/property-overlay-resolver.js +63 -37
- package/dist/bridge/property-overlay-resolver.js.map +1 -1
- package/dist/constraint-types.d.ts +17 -0
- package/dist/constraint-types.d.ts.map +1 -1
- package/dist/constraints/describe.d.ts.map +1 -1
- package/dist/constraints/describe.js +25 -0
- package/dist/constraints/describe.js.map +1 -1
- package/dist/constraints/match-family.js +24 -0
- package/dist/constraints/match-family.js.map +1 -1
- package/dist/facets/entity-facet.d.ts.map +1 -1
- package/dist/facets/entity-facet.js +7 -0
- package/dist/facets/entity-facet.js.map +1 -1
- package/dist/parser/parse-restriction.js +32 -15
- package/dist/parser/parse-restriction.js.map +1 -1
- package/dist/types.d.ts +3 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/validation/format-failure-reason.d.ts +15 -0
- package/dist/validation/format-failure-reason.d.ts.map +1 -0
- package/dist/validation/format-failure-reason.js +131 -0
- package/dist/validation/format-failure-reason.js.map +1 -0
- package/dist/validation/validator.d.ts +1 -5
- package/dist/validation/validator.d.ts.map +1 -1
- package/dist/validation/validator.js +39 -139
- package/dist/validation/validator.js.map +1 -1
- package/package.json +5 -4
|
@@ -63,50 +63,76 @@ export function resolveEffectivePropertySets(store, expressId, propertyOverlay)
|
|
|
63
63
|
for (const override of overrides) {
|
|
64
64
|
const psetLower = override.psetName.toLowerCase();
|
|
65
65
|
const propLower = override.propName.toLowerCase();
|
|
66
|
-
|
|
66
|
+
// EVERY set sharing this name, not just the first: an entity can
|
|
67
|
+
// legitimately carry more than one `IfcPropertySet`/`IfcElementQuantity`
|
|
68
|
+
// with the same name — one from the type, one from the occurrence, or
|
|
69
|
+
// several `IfcRelDefinesByProperties` on the occurrence itself (see
|
|
70
|
+
// `collectAllPropertySets`'s doc and pset-lookup.ts's module doc, the
|
|
71
|
+
// settled semantics `getPropertyValue`/`getPropertySets` below already
|
|
72
|
+
// scan). A plain `.find()` here would silently operate on whichever
|
|
73
|
+
// same-named set happens to come first, even when the targeted
|
|
74
|
+
// property lives on a LATER one — see ifc-lite issue for the executed
|
|
75
|
+
// repro (a correction landing on the wrong set, or a delete that
|
|
76
|
+
// silently no-ops).
|
|
77
|
+
const matchingSets = result.filter((p) => p.name.toLowerCase() === psetLower);
|
|
67
78
|
if (override.deleted) {
|
|
68
|
-
|
|
79
|
+
// Remove the property from EVERY same-named set that carries it, not
|
|
80
|
+
// only the first. `getPropertyValue` scans same-named sets in order
|
|
81
|
+
// and returns the first match: leaving a stale copy on a later
|
|
82
|
+
// same-named set would let it resurface on the very next read,
|
|
83
|
+
// making the deletion look like it silently never took effect.
|
|
84
|
+
for (const pset of matchingSets) {
|
|
69
85
|
pset.properties = pset.properties.filter((p) => p.name.toLowerCase() !== propLower);
|
|
70
86
|
}
|
|
71
87
|
continue;
|
|
72
88
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
89
|
+
// The specific same-named set that actually carries this property, if
|
|
90
|
+
// any. An update must land on THAT set — not on the first same-named
|
|
91
|
+
// set, which may carry a different property entirely and would
|
|
92
|
+
// otherwise receive a wrongly-placed duplicate while the real property
|
|
93
|
+
// (on a later same-named set) stays stale.
|
|
94
|
+
const targetSet = matchingSets.find((p) => p.properties.some((prop) => prop.name.toLowerCase() === propLower));
|
|
95
|
+
if (targetSet) {
|
|
96
|
+
const idx = targetSet.properties.findIndex((p) => p.name.toLowerCase() === propLower);
|
|
97
|
+
// Keep the property's OWN stored name/casing AND dataType — only
|
|
98
|
+
// its value changes. The existing entry's `dataType` (resolved by
|
|
99
|
+
// `projectProperty` from the IFC schema, not from this override)
|
|
100
|
+
// is what tells `toBaseSI` whether — and by which dimension — to
|
|
101
|
+
// scale: a non-measure property (IFCLABEL, boolean, identifier)
|
|
102
|
+
// has no scale and passes through untouched.
|
|
103
|
+
const existing = targetSet.properties[idx];
|
|
104
|
+
targetSet.properties[idx] = {
|
|
105
|
+
...existing,
|
|
106
|
+
value: toBaseSI(override.value, existing.dataType, scales),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
else if (matchingSets.length > 0) {
|
|
110
|
+
// No same-named set carries this property yet — a PROPERTY_MISSING
|
|
111
|
+
// correction (#3943): the property is being CREATED, not updated, so
|
|
112
|
+
// there is no existing entry whose `dataType` `toBaseSI` could key
|
|
113
|
+
// off. Fall back to the dataType the override itself carries (see
|
|
114
|
+
// `PropertyOverride.dataType`'s doc) and run it through the SAME
|
|
115
|
+
// `toBaseSI` helper as the branch above.
|
|
116
|
+
//
|
|
117
|
+
// Which same-named set a brand-new property should land on is
|
|
118
|
+
// genuinely ambiguous when more than one exists — IFC does not
|
|
119
|
+
// distinguish between them. We put it on the FIRST same-named set:
|
|
120
|
+
// that matches this function's own pre-existing single-pset
|
|
121
|
+
// behaviour exactly (there is only one candidate when a collision
|
|
122
|
+
// isn't present), and it guarantees the new property is the one
|
|
123
|
+
// `getPropertyValue`'s first-match-wins scan returns on the very
|
|
124
|
+
// next read, regardless of how many same-named sets exist.
|
|
125
|
+
const first = matchingSets[0];
|
|
126
|
+
first.properties.push({
|
|
127
|
+
name: override.propName,
|
|
128
|
+
value: toBaseSI(override.value, override.dataType, scales),
|
|
129
|
+
dataType: override.dataType ?? '',
|
|
130
|
+
});
|
|
106
131
|
}
|
|
107
132
|
else {
|
|
108
|
-
//
|
|
109
|
-
//
|
|
133
|
+
// No same-named set at all yet — a correction whose pset doesn't
|
|
134
|
+
// exist on the entity. Same "no existing entry" dataType reasoning
|
|
135
|
+
// as directly above.
|
|
110
136
|
result.push({
|
|
111
137
|
name: override.psetName,
|
|
112
138
|
properties: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-overlay-resolver.js","sourceRoot":"","sources":["../../src/bridge/property-overlay-resolver.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAM/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAmB,EACnB,SAAiB,EACjB,eAAoD;IAEpD,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtD,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,GAAG,IAAI;QACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;KACnD,CAAC,CAAC,CAAC;IAEJ,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,4DAA4D;IAC5D,yEAAyE;IACzE,qEAAqE;IACrE,qEAAqE;IACrE,8EAA8E;IAC9E,6EAA6E;IAC7E,mEAAmE;IACnE,sBAAsB;IACtB,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE5D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"property-overlay-resolver.js","sourceRoot":"","sources":["../../src/bridge/property-overlay-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,5 +110,22 @@ export interface IDSBoundsConstraint {
|
|
|
110
110
|
* inverted bound in a sibling is not linted.
|
|
111
111
|
*/
|
|
112
112
|
and?: readonly IDSConstraint[];
|
|
113
|
+
/**
|
|
114
|
+
* Facets whose `<xs:*Inclusive|Exclusive|Digits>` element was PRESENT
|
|
115
|
+
* in the source `<xs:restriction>` but whose `@value` could not be
|
|
116
|
+
* parsed as the expected number (`parseFloat`/`parseInt` failed, or a
|
|
117
|
+
* digit-count facet came out negative) — e.g. a typo'd `"6O"` (letter
|
|
118
|
+
* O) or the European decimal `"6,5"`. Distinct from a facet that was
|
|
119
|
+
* never present at all: the corresponding numeric field above is
|
|
120
|
+
* `undefined` in BOTH cases, but only this list distinguishes "no
|
|
121
|
+
* such constraint" from "the author tried to constrain this and
|
|
122
|
+
* failed." `matchBounds` fails closed (rejects every value) when this
|
|
123
|
+
* is non-empty, rather than silently treating a botched restriction
|
|
124
|
+
* as unbounded.
|
|
125
|
+
*/
|
|
126
|
+
unparseableFacets?: readonly {
|
|
127
|
+
readonly facet: string;
|
|
128
|
+
readonly rawValue: string;
|
|
129
|
+
}[];
|
|
113
130
|
}
|
|
114
131
|
//# sourceMappingURL=constraint-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-types.d.ts","sourceRoot":"","sources":["../src/constraint-types.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,CAAC;AAExB,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,uDAAuD;AACvD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint-types.d.ts","sourceRoot":"","sources":["../src/constraint-types.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,CAAC;AAExB,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,uDAAuD;AACvD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAChC;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,aAAa,CAAC;AA+BrB;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACxD,MAAM,CA6BR;
|
|
1
|
+
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,aAAa,CAAC;AA+BrB;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACxD,MAAM,CA6BR;AA6FD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAOlE"}
|
|
@@ -51,7 +51,21 @@ export function getConstraintMismatchReason(constraint, actualValue) {
|
|
|
51
51
|
return 'unknown constraint type';
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Render the `xs:facet="rawValue"` list for a bounds constraint's
|
|
56
|
+
* `unparseableFacets`, shared by the mismatch-reason and
|
|
57
|
+
* expected-value renderers so both name the same broken facet(s).
|
|
58
|
+
*/
|
|
59
|
+
function formatUnparseableFacets(unparseableFacets) {
|
|
60
|
+
return unparseableFacets.map((f) => `xs:${f.facet}="${f.rawValue}"`).join(', ');
|
|
61
|
+
}
|
|
54
62
|
function getBoundsMismatchReason(constraint, actualValue) {
|
|
63
|
+
if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
|
|
64
|
+
const facets = formatUnparseableFacets(constraint.unparseableFacets);
|
|
65
|
+
return (`this xs:restriction is malformed and cannot be evaluated: ` +
|
|
66
|
+
`${facets} did not parse as a number — fix the IDS specification ` +
|
|
67
|
+
`(every value is being rejected until it is corrected, not just "${actualValue}")`);
|
|
68
|
+
}
|
|
55
69
|
const num = typeof actualValue === 'number'
|
|
56
70
|
? actualValue
|
|
57
71
|
: parseFloat(String(actualValue));
|
|
@@ -138,6 +152,17 @@ function formatOneFamily(constraint) {
|
|
|
138
152
|
}
|
|
139
153
|
}
|
|
140
154
|
function formatBounds(constraint) {
|
|
155
|
+
// A facet present in the XML that failed to parse leaves every
|
|
156
|
+
// numeric field on the constraint `undefined` (see
|
|
157
|
+
// `parser/parse-restriction.ts`), which would otherwise fall through
|
|
158
|
+
// to the `'any value'` default below — self-contradictory for a
|
|
159
|
+
// restriction that is rejecting everything. Name the broken facet(s)
|
|
160
|
+
// instead so the "expected" text sent to the spec author matches the
|
|
161
|
+
// fail-closed behaviour `matchBounds` actually enforces.
|
|
162
|
+
if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
|
|
163
|
+
const facets = formatUnparseableFacets(constraint.unparseableFacets);
|
|
164
|
+
return `a value satisfying the xs:restriction — currently unparseable: ${facets} did not parse as a number`;
|
|
165
|
+
}
|
|
141
166
|
const parts = [];
|
|
142
167
|
if (constraint.minInclusive !== undefined &&
|
|
143
168
|
constraint.maxInclusive !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAc/D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,SAAS,gBAAgB,CAAC,MAAgB;IACxC,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,uBAAuB,CAAC;IACrD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAAyB,EACzB,WAAyD;IAEzD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,qEAAqE;IACrE,+DAA+D;IAC/D,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,aAAa,UAAU,CAAC,KAAK,WAAW,WAAW,GAAG,CAAC;QAChE,KAAK,SAAS;YACZ,OAAO,IAAI,WAAW,6BAA6B,UAAU,CAAC,OAAO,GAAG,CAAC;QAC3E,KAAK,aAAa;YAChB,OAAO,IAAI,WAAW,mBAAmB,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACjF,KAAK,QAAQ;YACX,OAAO,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC1D;YACE,OAAO,yBAAyB,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAA+B,EAC/B,WAAsC;IAEtC,MAAM,GAAG,GACP,OAAO,WAAW,KAAK,QAAQ;QAC7B,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,IAAI,WAAW,yBAAyB,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,GAAG,GAAG,UAAU,CAAC,YAAY,GAAG,iBAAiB,EACjD,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,GAAG,GAAG,UAAU,CAAC,YAAY,GAAG,iBAAiB,EACjD,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5E,UAAU,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5E,UAAU,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;QACxD,MAAM,UAAU,GACd,OAAO,WAAW,KAAK,QAAQ;YAC7B,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1B,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3E,UAAU,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,WAAW,eAAe,CAAC,CAAC;YAC9E,CAAC;YACD,IACE,UAAU,CAAC,cAAc,KAAK,SAAS;gBACvC,QAAQ,GAAG,UAAU,CAAC,cAAc,EACpC,CAAC;gBACD,UAAU,CAAC,IAAI,CACb,qBAAqB,UAAU,CAAC,cAAc,kBAAkB,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,IAAI,OAAO,EAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAyB;IACxD,IAAI,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACjD,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAyB;IACzD,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACvC,gEAAgE;IAChE,sEAAsE;IACtE,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe,CAAC,UAAyB;IAChD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,YAAY,UAAU,CAAC,OAAO,GAAG,CAAC;QAC3C,KAAK,aAAa;YAChB,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YACrC,CAAC;YACD,OAAO,UAAU,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;QAClC;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAA+B;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,UAAU,CAAC,YAAY,KAAK,SAAS,EACrC,CAAC;QACD,OAAO,WAAW,UAAU,CAAC,YAAY,QAAQ,UAAU,CAAC,YAAY,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,cAAc,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { compareBoolean, compareNumeric, compareString, isStrictNumericLiteral,
|
|
|
5
5
|
import { isNumericXsdBase, isBooleanXsdBase } from './xsd-cast.js';
|
|
6
6
|
import { translateXsdRegex } from './xsd-regex.js';
|
|
7
7
|
import { matchDigitFacets } from './digit-facets.js';
|
|
8
|
+
import { assertGuardedRegexPattern } from '@ifc-lite/regex-guard';
|
|
8
9
|
/** Tolerance for the bounds matcher's exclusive comparators. */
|
|
9
10
|
export const NUMERIC_TOLERANCE = 1e-6;
|
|
10
11
|
/**
|
|
@@ -126,6 +127,15 @@ function compilePatternRegex(constraint, caseInsensitive) {
|
|
|
126
127
|
return regex;
|
|
127
128
|
}
|
|
128
129
|
function buildPatternRegex(xsdPattern, caseInsensitive) {
|
|
130
|
+
// Reject a catastrophic-backtracking or over-long pattern BEFORE any
|
|
131
|
+
// translation/compilation is attempted. This throws (rather than
|
|
132
|
+
// returning null like the malformed-syntax cases below) because a
|
|
133
|
+
// rejected pattern must surface as a validation failure the caller
|
|
134
|
+
// can see, not silently evaluate to "no match" — see
|
|
135
|
+
// `@ifc-lite/regex-guard`'s doc comment and this package's
|
|
136
|
+
// `validateSpecification`, which turns the thrown error into a
|
|
137
|
+
// failed specification result.
|
|
138
|
+
assertGuardedRegexPattern(xsdPattern);
|
|
129
139
|
// XSD char-class subtraction `[a-z-[aeiou]]` has no JS equivalent;
|
|
130
140
|
// approximate as the positive class (drop the exclusion) so the rest
|
|
131
141
|
// of the pattern still evaluates, matching long-standing behaviour.
|
|
@@ -216,6 +226,20 @@ function matchEnumeration(constraint, actualValue, caseInsensitive) {
|
|
|
216
226
|
* Match against numeric bounds
|
|
217
227
|
*/
|
|
218
228
|
function matchBounds(constraint, actualValue) {
|
|
229
|
+
// A facet element was present in the source `<xs:restriction>` but
|
|
230
|
+
// its `@value` could not be parsed (typo, wrong decimal separator, a
|
|
231
|
+
// negative digit-count facet, …). `parseRestriction` dropped it to
|
|
232
|
+
// `undefined` the same as a facet that was never present at all —
|
|
233
|
+
// which would otherwise make this an unconditional pass (an
|
|
234
|
+
// all-`undefined` bounds constraint satisfies every numeric value).
|
|
235
|
+
// Fail closed instead: we cannot verify compliance against a
|
|
236
|
+
// restriction we could not fully parse, so no value passes until the
|
|
237
|
+
// IDS is corrected. See `getBoundsMismatchReason` for the
|
|
238
|
+
// author-facing explanation and `audit/coherence` for the
|
|
239
|
+
// corresponding lint diagnostic.
|
|
240
|
+
if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
219
243
|
// String-length facets (xs:length / xs:minLength / xs:maxLength)
|
|
220
244
|
// operate on the textual length, not on numeric magnitude. When any
|
|
221
245
|
// of them are present, evaluate the length constraints first.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match-family.js","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmB/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"match-family.js","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-facet.d.ts","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-facet.d.ts","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6CnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,gBAAgB,CAsGlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,eAAe,GACxB,MAAM,EAAE,GAAG,SAAS,CAuCtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAgCV"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { matchConstraint, formatConstraint } from '../constraints/index.js';
|
|
5
5
|
import { IFC2X3_MAPPED_ALIASES, rowsForOccurrence } from './ifc2x3-type-mapping.js';
|
|
6
6
|
import { matchPredefinedType } from './predefined-type-match.js';
|
|
7
|
+
import { assertGuardedRegexPattern } from '@ifc-lite/regex-guard';
|
|
7
8
|
/** IFC entity NAME comparisons are case-insensitive per IDS spec. Predefined
|
|
8
9
|
* types are NOT — see `predefined-type-match.ts`. */
|
|
9
10
|
const IFC_CASE_INSENSITIVE = { caseInsensitive: true };
|
|
@@ -221,6 +222,12 @@ export function getMatchingEntityTypes(constraint, allTypes) {
|
|
|
221
222
|
case 'enumeration':
|
|
222
223
|
return allTypes.filter((t) => constraint.values.some((v) => v.toUpperCase() === t.toUpperCase()));
|
|
223
224
|
case 'pattern':
|
|
225
|
+
// Reject a catastrophic-backtracking or over-long pattern before
|
|
226
|
+
// compiling — this throws (`UnsafeRegexPatternError`), unlike the
|
|
227
|
+
// ordinary-malformed-pattern case below, because a rejected
|
|
228
|
+
// pattern must surface as an error to the caller, not silently
|
|
229
|
+
// resolve to "matches nothing".
|
|
230
|
+
assertGuardedRegexPattern(constraint.pattern);
|
|
224
231
|
try {
|
|
225
232
|
const regex = new RegExp(`^${constraint.pattern}$`, 'i');
|
|
226
233
|
return allTypes.filter((t) => regex.test(t));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-facet.js","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-facet.js","sourceRoot":"","sources":["../../src/facets/entity-facet.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,27 +99,44 @@ function parseRestrictionFamilies(el) {
|
|
|
99
99
|
}
|
|
100
100
|
if (Object.values(facetEls).some((e) => e !== null)) {
|
|
101
101
|
const bounds = { type: 'bounds', base };
|
|
102
|
-
|
|
102
|
+
// Facets present in the XML whose `@value` failed to parse — kept
|
|
103
|
+
// separate from a facet that was simply never present, so
|
|
104
|
+
// `matchBounds` can fail closed instead of silently treating a
|
|
105
|
+
// botched restriction as unbounded (an unparseable minInclusive
|
|
106
|
+
// must NOT read the same as no minInclusive at all).
|
|
107
|
+
const unparseable = [];
|
|
108
|
+
const rawValueOf = (e) => e.getAttribute('value') || e.textContent || '';
|
|
109
|
+
const readNumber = (facet, e) => {
|
|
103
110
|
if (!e)
|
|
104
111
|
return undefined;
|
|
105
|
-
const
|
|
106
|
-
|
|
112
|
+
const raw = rawValueOf(e);
|
|
113
|
+
const v = parseFloat(raw);
|
|
114
|
+
if (Number.isFinite(v))
|
|
115
|
+
return v;
|
|
116
|
+
unparseable.push({ facet, rawValue: raw });
|
|
117
|
+
return undefined;
|
|
107
118
|
};
|
|
108
|
-
const readInt = (e) => {
|
|
119
|
+
const readInt = (facet, e) => {
|
|
109
120
|
if (!e)
|
|
110
121
|
return undefined;
|
|
111
|
-
const
|
|
112
|
-
|
|
122
|
+
const raw = rawValueOf(e);
|
|
123
|
+
const v = parseInt(raw, 10);
|
|
124
|
+
if (Number.isFinite(v) && v >= 0)
|
|
125
|
+
return v;
|
|
126
|
+
unparseable.push({ facet, rawValue: raw });
|
|
127
|
+
return undefined;
|
|
113
128
|
};
|
|
114
|
-
bounds.minInclusive = readNumber(facetEls.minInclusive);
|
|
115
|
-
bounds.maxInclusive = readNumber(facetEls.maxInclusive);
|
|
116
|
-
bounds.minExclusive = readNumber(facetEls.minExclusive);
|
|
117
|
-
bounds.maxExclusive = readNumber(facetEls.maxExclusive);
|
|
118
|
-
bounds.length = readInt(facetEls.length);
|
|
119
|
-
bounds.minLength = readInt(facetEls.minLength);
|
|
120
|
-
bounds.maxLength = readInt(facetEls.maxLength);
|
|
121
|
-
bounds.totalDigits = readInt(facetEls.totalDigits);
|
|
122
|
-
bounds.fractionDigits = readInt(facetEls.fractionDigits);
|
|
129
|
+
bounds.minInclusive = readNumber('minInclusive', facetEls.minInclusive);
|
|
130
|
+
bounds.maxInclusive = readNumber('maxInclusive', facetEls.maxInclusive);
|
|
131
|
+
bounds.minExclusive = readNumber('minExclusive', facetEls.minExclusive);
|
|
132
|
+
bounds.maxExclusive = readNumber('maxExclusive', facetEls.maxExclusive);
|
|
133
|
+
bounds.length = readInt('length', facetEls.length);
|
|
134
|
+
bounds.minLength = readInt('minLength', facetEls.minLength);
|
|
135
|
+
bounds.maxLength = readInt('maxLength', facetEls.maxLength);
|
|
136
|
+
bounds.totalDigits = readInt('totalDigits', facetEls.totalDigits);
|
|
137
|
+
bounds.fractionDigits = readInt('fractionDigits', facetEls.fractionDigits);
|
|
138
|
+
if (unparseable.length > 0)
|
|
139
|
+
bounds.unparseableFacets = unparseable;
|
|
123
140
|
out.push(bounds);
|
|
124
141
|
}
|
|
125
142
|
if (out.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-restriction.js","sourceRoot":"","sources":["../../src/parser/parse-restriction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parse-restriction.js","sourceRoot":"","sources":["../../src/parser/parse-restriction.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IDS (Information Delivery Specification) types
|
|
3
|
-
* Based on buildingSMART IDS 1.0 specification
|
|
4
|
-
*/
|
|
1
|
+
/** IDS (Information Delivery Specification) types, per buildingSMART IDS 1.0. */
|
|
5
2
|
import type { IDSConstraint } from './constraint-types.js';
|
|
6
3
|
/** IDS Document - root container for the specification */
|
|
7
4
|
export interface IDSDocument {
|
|
@@ -219,6 +216,8 @@ export interface IDSSpecificationResult {
|
|
|
219
216
|
entityResults: IDSEntityResult[];
|
|
220
217
|
/** Cardinality result (if minOccurs/maxOccurs specified) */
|
|
221
218
|
cardinalityResult?: IDSCardinalityResult;
|
|
219
|
+
/** Set when unevaluable (e.g. a ReDoS-rejected pattern) — `status` is `'fail'` */
|
|
220
|
+
error?: string;
|
|
222
221
|
}
|
|
223
222
|
/** Cardinality check result */
|
|
224
223
|
export interface IDSCardinalityResult {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Untranslated English formatting for a failed facet check and for a
|
|
3
|
+
* requirement's plain-language description. Split out of `validator.ts`
|
|
4
|
+
* to keep that module under this package's line-count budget — these
|
|
5
|
+
* two functions are pure string formatting with no validation logic.
|
|
6
|
+
*/
|
|
7
|
+
import type { IDSRequirement } from '../types.js';
|
|
8
|
+
import type { FacetCheckResult } from '../facets/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Format a failure reason without translation
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatFailureReason(result: FacetCheckResult): string;
|
|
13
|
+
/** Format a requirement description without translation */
|
|
14
|
+
export declare function formatRequirementDescription(requirement: IDSRequirement): string;
|
|
15
|
+
//# sourceMappingURL=format-failure-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-failure-reason.d.ts","sourceRoot":"","sources":["../../src/validation/format-failure-reason.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAqDpE;AAED,2DAA2D;AAC3D,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAuEhF"}
|