@ifc-lite/ids 3.1.0 → 3.3.1
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 +10 -1
- package/dist/audit/coherence/cardinality.js +4 -1
- package/dist/audit/coherence/cardinality.js.map +1 -1
- package/dist/audit/coherence/index.d.ts +0 -1
- package/dist/audit/coherence/index.d.ts.map +1 -1
- package/dist/audit/coherence/index.js +59 -45
- package/dist/audit/coherence/index.js.map +1 -1
- package/dist/audit/coherence/regex.d.ts +3 -3
- package/dist/audit/coherence/regex.js +3 -3
- package/dist/audit/ifc-schema/attribute-value.d.ts +19 -0
- package/dist/audit/ifc-schema/attribute-value.d.ts.map +1 -0
- package/dist/audit/ifc-schema/attribute-value.js +71 -0
- package/dist/audit/ifc-schema/attribute-value.js.map +1 -0
- package/dist/audit/ifc-schema/datatype-check.d.ts +9 -1
- package/dist/audit/ifc-schema/datatype-check.d.ts.map +1 -1
- package/dist/audit/ifc-schema/datatype-check.js +24 -2
- package/dist/audit/ifc-schema/datatype-check.js.map +1 -1
- package/dist/audit/ifc-schema/entity-requirement.d.ts +21 -0
- package/dist/audit/ifc-schema/entity-requirement.d.ts.map +1 -0
- package/dist/audit/ifc-schema/entity-requirement.js +45 -0
- package/dist/audit/ifc-schema/entity-requirement.js.map +1 -0
- package/dist/audit/ifc-schema/index.d.ts.map +1 -1
- package/dist/audit/ifc-schema/index.js +105 -19
- package/dist/audit/ifc-schema/index.js.map +1 -1
- package/dist/audit/index.d.ts.map +1 -1
- package/dist/audit/index.js +8 -2
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/parser-shim.d.ts +15 -1
- package/dist/audit/parser-shim.d.ts.map +1 -1
- package/dist/audit/parser-shim.js +2 -2
- package/dist/audit/parser-shim.js.map +1 -1
- package/dist/audit/structural/index.d.ts +3 -1
- package/dist/audit/structural/index.d.ts.map +1 -1
- package/dist/audit/structural/index.js +48 -179
- package/dist/audit/structural/index.js.map +1 -1
- package/dist/audit/structural/shapes.d.ts +47 -0
- package/dist/audit/structural/shapes.d.ts.map +1 -0
- package/dist/audit/structural/shapes.js +185 -0
- package/dist/audit/structural/shapes.js.map +1 -0
- package/dist/audit/types.d.ts +9 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/xsd/index.js +1 -1
- package/dist/audit/xsd/index.js.map +1 -1
- package/dist/bounded-cache.d.ts +18 -0
- package/dist/bounded-cache.d.ts.map +1 -0
- package/dist/bounded-cache.js +40 -0
- package/dist/bounded-cache.js.map +1 -0
- package/dist/bridge/data-accessor.d.ts.map +1 -1
- package/dist/bridge/data-accessor.js +49 -25
- package/dist/bridge/data-accessor.js.map +1 -1
- package/dist/bridge/index.d.ts +1 -0
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +1 -0
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/measure-conversion.d.ts +51 -0
- package/dist/bridge/measure-conversion.d.ts.map +1 -0
- package/dist/bridge/measure-conversion.js +106 -0
- package/dist/bridge/measure-conversion.js.map +1 -0
- package/dist/bridge/predefined-property-sets.d.ts +24 -0
- package/dist/bridge/predefined-property-sets.d.ts.map +1 -0
- package/dist/bridge/predefined-property-sets.js +86 -0
- package/dist/bridge/predefined-property-sets.js.map +1 -0
- package/dist/bridge/predefined-types.d.ts +34 -13
- package/dist/bridge/predefined-types.d.ts.map +1 -1
- package/dist/bridge/predefined-types.js +40 -71
- package/dist/bridge/predefined-types.js.map +1 -1
- package/dist/bridge/project-property.d.ts +43 -0
- package/dist/bridge/project-property.d.ts.map +1 -0
- package/dist/bridge/project-property.js +60 -0
- package/dist/bridge/project-property.js.map +1 -0
- package/dist/bridge/properties.d.ts +4 -3
- package/dist/bridge/properties.d.ts.map +1 -1
- package/dist/bridge/properties.js +64 -111
- package/dist/bridge/properties.js.map +1 -1
- package/dist/bridge/property-overlay-resolver.d.ts +10 -0
- package/dist/bridge/property-overlay-resolver.d.ts.map +1 -1
- package/dist/bridge/property-overlay-resolver.js +53 -4
- package/dist/bridge/property-overlay-resolver.js.map +1 -1
- package/dist/bridge/units.d.ts +49 -20
- package/dist/bridge/units.d.ts.map +1 -1
- package/dist/bridge/units.js +134 -84
- package/dist/bridge/units.js.map +1 -1
- package/dist/constraint-types.d.ts +30 -14
- package/dist/constraint-types.d.ts.map +1 -1
- package/dist/constraints/comparators.d.ts +4 -1
- package/dist/constraints/comparators.d.ts.map +1 -1
- package/dist/constraints/comparators.js +6 -1
- package/dist/constraints/comparators.js.map +1 -1
- package/dist/constraints/describe.d.ts.map +1 -1
- package/dist/constraints/describe.js +67 -21
- package/dist/constraints/describe.js.map +1 -1
- package/dist/constraints/match-bounds.d.ts +25 -0
- package/dist/constraints/match-bounds.d.ts.map +1 -0
- package/dist/constraints/match-bounds.js +112 -0
- package/dist/constraints/match-bounds.js.map +1 -0
- package/dist/constraints/match-family.d.ts.map +1 -1
- package/dist/constraints/match-family.js +25 -90
- package/dist/constraints/match-family.js.map +1 -1
- package/dist/constraints/xsd-datetime.js +6 -6
- package/dist/constraints/xsd-examples.d.ts +20 -0
- package/dist/constraints/xsd-examples.d.ts.map +1 -0
- package/dist/constraints/xsd-examples.js +187 -0
- package/dist/constraints/xsd-examples.js.map +1 -0
- package/dist/constraints/xsd-lexical.d.ts +2 -0
- package/dist/constraints/xsd-lexical.d.ts.map +1 -0
- package/dist/constraints/xsd-lexical.js +49 -0
- package/dist/constraints/xsd-lexical.js.map +1 -0
- package/dist/constraints/xsd-order.d.ts +33 -0
- package/dist/constraints/xsd-order.d.ts.map +1 -0
- package/dist/constraints/xsd-order.js +211 -0
- package/dist/constraints/xsd-order.js.map +1 -0
- package/dist/constraints/xsd-regex-ast.d.ts +37 -0
- package/dist/constraints/xsd-regex-ast.d.ts.map +1 -0
- package/dist/constraints/xsd-regex-ast.js +137 -0
- package/dist/constraints/xsd-regex-ast.js.map +1 -0
- package/dist/constraints/xsd-regex-blocks.d.ts +7 -0
- package/dist/constraints/xsd-regex-blocks.d.ts.map +1 -0
- package/dist/constraints/xsd-regex-blocks.js +68 -0
- package/dist/constraints/xsd-regex-blocks.js.map +1 -0
- package/dist/constraints/xsd-regex.d.ts +2 -45
- package/dist/constraints/xsd-regex.d.ts.map +1 -1
- package/dist/constraints/xsd-regex.js +231 -134
- package/dist/constraints/xsd-regex.js.map +1 -1
- package/dist/facets/entity-facet.d.ts.map +1 -1
- package/dist/facets/entity-facet.js +4 -1
- package/dist/facets/entity-facet.js.map +1 -1
- package/dist/facets/partof-facet.d.ts.map +1 -1
- package/dist/facets/partof-facet.js +80 -19
- package/dist/facets/partof-facet.js.map +1 -1
- package/dist/facets/predefined-type-match.d.ts +8 -3
- package/dist/facets/predefined-type-match.d.ts.map +1 -1
- package/dist/facets/predefined-type-match.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/parser/dom.d.ts +4 -0
- package/dist/parser/dom.d.ts.map +1 -1
- package/dist/parser/dom.js +5 -0
- package/dist/parser/dom.js.map +1 -1
- package/dist/parser/parse-restriction.d.ts.map +1 -1
- package/dist/parser/parse-restriction.js +32 -14
- package/dist/parser/parse-restriction.js.map +1 -1
- package/dist/parser/xml-parser.d.ts +7 -4
- package/dist/parser/xml-parser.d.ts.map +1 -1
- package/dist/parser/xml-parser.js +30 -45
- package/dist/parser/xml-parser.js.map +1 -1
- package/dist/preview/audit.d.ts +16 -0
- package/dist/preview/audit.d.ts.map +1 -0
- package/dist/preview/audit.js +58 -0
- package/dist/preview/audit.js.map +1 -0
- package/dist/preview/features.d.ts +30 -0
- package/dist/preview/features.d.ts.map +1 -0
- package/dist/preview/features.js +96 -0
- package/dist/preview/features.js.map +1 -0
- package/dist/preview/parse-ids11.d.ts +9 -0
- package/dist/preview/parse-ids11.d.ts.map +1 -0
- package/dist/preview/parse-ids11.js +90 -0
- package/dist/preview/parse-ids11.js.map +1 -0
- package/dist/preview/partof-nested.d.ts +27 -0
- package/dist/preview/partof-nested.d.ts.map +1 -0
- package/dist/preview/partof-nested.js +61 -0
- package/dist/preview/partof-nested.js.map +1 -0
- package/dist/preview/tolerance.d.ts +15 -0
- package/dist/preview/tolerance.d.ts.map +1 -0
- package/dist/preview/tolerance.js +66 -0
- package/dist/preview/tolerance.js.map +1 -0
- package/dist/preview/types.d.ts +67 -0
- package/dist/preview/types.d.ts.map +1 -0
- package/dist/preview/types.js +5 -0
- package/dist/preview/types.js.map +1 -0
- package/dist/report-types.d.ts +7 -0
- package/dist/report-types.d.ts.map +1 -1
- package/dist/translation/describe-constraint.js +16 -14
- package/dist/translation/describe-constraint.js.map +1 -1
- package/dist/translation/locales/de.d.ts +2 -0
- package/dist/translation/locales/de.d.ts.map +1 -1
- package/dist/translation/locales/de.js +2 -0
- package/dist/translation/locales/de.js.map +1 -1
- package/dist/translation/locales/en.d.ts +2 -0
- package/dist/translation/locales/en.d.ts.map +1 -1
- package/dist/translation/locales/en.js +2 -0
- package/dist/translation/locales/en.js.map +1 -1
- package/dist/translation/locales/fr.d.ts +2 -0
- package/dist/translation/locales/fr.d.ts.map +1 -1
- package/dist/translation/locales/fr.js +2 -0
- package/dist/translation/locales/fr.js.map +1 -1
- package/dist/translation/locales/index.d.ts +1 -0
- package/dist/translation/locales/index.d.ts.map +1 -1
- package/dist/translation/locales/index.js +1 -0
- package/dist/translation/locales/index.js.map +1 -1
- package/dist/translation/locales/it.d.ts +198 -0
- package/dist/translation/locales/it.d.ts.map +1 -0
- package/dist/translation/locales/it.js +235 -0
- package/dist/translation/locales/it.js.map +1 -0
- package/dist/translation/service.d.ts +2 -6
- package/dist/translation/service.d.ts.map +1 -1
- package/dist/translation/service.js +17 -25
- package/dist/translation/service.js.map +1 -1
- package/dist/types.d.ts +26 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/validation/format-failure-reason.js +1 -1
- package/dist/validation/format-failure-reason.js.map +1 -1
- package/dist/validation/pass-rate.d.ts +14 -0
- package/dist/validation/pass-rate.d.ts.map +1 -0
- package/dist/validation/pass-rate.js +25 -0
- package/dist/validation/pass-rate.js.map +1 -0
- package/dist/validation/prohibited-specification.d.ts +31 -0
- package/dist/validation/prohibited-specification.d.ts.map +1 -0
- package/dist/validation/prohibited-specification.js +25 -0
- package/dist/validation/prohibited-specification.js.map +1 -0
- package/dist/validation/validator.d.ts +4 -2
- package/dist/validation/validator.d.ts.map +1 -1
- package/dist/validation/validator.js +23 -18
- package/dist/validation/validator.js.map +1 -1
- package/dist/writer/constraint.d.ts +8 -0
- package/dist/writer/constraint.d.ts.map +1 -0
- package/dist/writer/constraint.js +142 -0
- package/dist/writer/constraint.js.map +1 -0
- package/dist/writer/index.d.ts +48 -0
- package/dist/writer/index.d.ts.map +1 -0
- package/dist/writer/index.js +209 -0
- package/dist/writer/index.js.map +1 -0
- package/dist/writer/xml-lines.d.ts +17 -0
- package/dist/writer/xml-lines.d.ts.map +1 -0
- package/dist/writer/xml-lines.js +69 -0
- package/dist/writer/xml-lines.js.map +1 -0
- package/package.json +5 -5
package/dist/bridge/units.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/bridge/units.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/bridge/units.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
* re-export.
|
|
8
8
|
*/
|
|
9
9
|
/** Union of all constraint types */
|
|
10
|
+
import type { IDS11ToleranceRule } from './preview/types.js';
|
|
10
11
|
export type IDSConstraint = IDSSimpleValue | IDSPatternConstraint | IDSEnumerationConstraint | IDSBoundsConstraint;
|
|
11
12
|
/** Simple value - exact match */
|
|
12
13
|
export interface IDSSimpleValue {
|
|
13
14
|
type: 'simpleValue';
|
|
14
15
|
/** The exact value to match */
|
|
15
16
|
value: string;
|
|
17
|
+
/** IDS 1.1 PREVIEW (#418): numeric tolerance rule; unset means IDS 1.0. */
|
|
18
|
+
toleranceRule?: IDS11ToleranceRule;
|
|
16
19
|
}
|
|
17
20
|
/** Pattern constraint - regex match */
|
|
18
21
|
export interface IDSPatternConstraint {
|
|
@@ -35,9 +38,8 @@ export interface IDSPatternConstraint {
|
|
|
35
38
|
* overwhelmingly common single-family restriction. Matching
|
|
36
39
|
* (`matchConstraint`) and the two description paths
|
|
37
40
|
* (`formatConstraint`, `TranslationService.describeConstraint`)
|
|
38
|
-
* account for it
|
|
39
|
-
*
|
|
40
|
-
* inverted bound in a sibling is not linted.
|
|
41
|
+
* account for it, and so do the IDS-document auditors under `audit/`
|
|
42
|
+
* (coherence and predefined-type checks visit every sibling, IDS-010).
|
|
41
43
|
*/
|
|
42
44
|
and?: readonly IDSConstraint[];
|
|
43
45
|
}
|
|
@@ -46,6 +48,8 @@ export interface IDSEnumerationConstraint {
|
|
|
46
48
|
type: 'enumeration';
|
|
47
49
|
/** List of allowed values */
|
|
48
50
|
values: string[];
|
|
51
|
+
/** IDS 1.1 PREVIEW (#418): numeric tolerance rule; unset means IDS 1.0. */
|
|
52
|
+
toleranceRule?: IDS11ToleranceRule;
|
|
49
53
|
/**
|
|
50
54
|
* The originating `xs:restriction @base` (e.g. `xs:string`,
|
|
51
55
|
* `xs:integer`). Set when the constraint came from an
|
|
@@ -62,9 +66,8 @@ export interface IDSEnumerationConstraint {
|
|
|
62
66
|
* overwhelmingly common single-family restriction. Matching
|
|
63
67
|
* (`matchConstraint`) and the two description paths
|
|
64
68
|
* (`formatConstraint`, `TranslationService.describeConstraint`)
|
|
65
|
-
* account for it
|
|
66
|
-
*
|
|
67
|
-
* inverted bound in a sibling is not linted.
|
|
69
|
+
* account for it, and so do the IDS-document auditors under `audit/`
|
|
70
|
+
* (coherence and predefined-type checks visit every sibling, IDS-010).
|
|
68
71
|
*/
|
|
69
72
|
and?: readonly IDSConstraint[];
|
|
70
73
|
}
|
|
@@ -105,17 +108,30 @@ export interface IDSBoundsConstraint {
|
|
|
105
108
|
* overwhelmingly common single-family restriction. Matching
|
|
106
109
|
* (`matchConstraint`) and the two description paths
|
|
107
110
|
* (`formatConstraint`, `TranslationService.describeConstraint`)
|
|
108
|
-
* account for it
|
|
109
|
-
*
|
|
110
|
-
* inverted bound in a sibling is not linted.
|
|
111
|
+
* account for it, and so do the IDS-document auditors under `audit/`
|
|
112
|
+
* (coherence and predefined-type checks visit every sibling, IDS-010).
|
|
111
113
|
*/
|
|
112
114
|
and?: readonly IDSConstraint[];
|
|
113
115
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
116
|
+
* The bound facets of an `xs:date` / `xs:dateTime` / `xs:time` /
|
|
117
|
+
* `xs:duration` restriction, as their validated lexical text. Those
|
|
118
|
+
* value spaces are not numbers, so the numeric `min*` / `max*` fields
|
|
119
|
+
* above stay unset for them and the bounds live here instead, compared
|
|
120
|
+
* in the base's own order (#7399).
|
|
121
|
+
*/
|
|
122
|
+
temporalBounds?: {
|
|
123
|
+
minInclusive?: string;
|
|
124
|
+
maxInclusive?: string;
|
|
125
|
+
minExclusive?: string;
|
|
126
|
+
maxExclusive?: string;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Facets whose `<xs:*Inclusive|Exclusive|Length|Digits>` element was
|
|
130
|
+
* PRESENT in the source `<xs:restriction>` but whose `@value` is not in
|
|
131
|
+
* the lexical space the facet requires: for a min/max bound, the
|
|
132
|
+
* restriction `@base`'s (#7399); for a length or digit-count facet, a
|
|
133
|
+
* non-negative integer — e.g. a typo'd `"6O"` (letter O), the European
|
|
134
|
+
* decimal `"6,5"`, or `"2024-13-01"` under `xs:date`. Distinct from a facet that was
|
|
119
135
|
* never present at all: the corresponding numeric field above is
|
|
120
136
|
* `undefined` in BOTH cases, but only this list distinguishes "no
|
|
121
137
|
* such constraint" from "the author tried to constrain this and
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"constraint-types.d.ts","sourceRoot":"","sources":["../src/constraint-types.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,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;IACd,2EAA2E;IAC3E,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;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;;;;;;;;;;;OAWG;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,2EAA2E;IAC3E,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;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;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IDS11ToleranceRule } from '../preview/types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Whether an IDS literal could ever match through `compareNumeric` —
|
|
3
4
|
* i.e. it is a strict numeric literal: optional sign, digits, optional
|
|
@@ -34,7 +35,9 @@ export declare function numericEpsilon(castValue: number, actual?: number): numb
|
|
|
34
35
|
* `2022`, which would silently equate dates with their year. Requiring
|
|
35
36
|
* `isWhollyNumeric(...)` on both sides keeps date-like strings opaque.
|
|
36
37
|
*/
|
|
37
|
-
export declare function compareNumeric(expected: string, actual: string | number | boolean
|
|
38
|
+
export declare function compareNumeric(expected: string, actual: string | number | boolean,
|
|
39
|
+
/** IDS 1.1 PREVIEW (#418) rule from the constraint; unset is the IDS 1.0 comparison. */
|
|
40
|
+
toleranceRule?: IDS11ToleranceRule): boolean | undefined;
|
|
38
41
|
/**
|
|
39
42
|
* Compare an IDS boolean literal to a stored value. Per IDS 1.0 spec
|
|
40
43
|
* the literal MUST be lowercase `true` / `false`; uppercase or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAWD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;AACjC,wFAAwF;AACxF,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,GAAG,SAAS,CAarB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAChC,OAAO,GAAG,SAAS,CAgBrB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACjC,eAAe,EAAE,OAAO,GACvB,OAAO,GAAG,SAAS,CAOrB"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* `parseFloat` path that silently equated date-shaped strings.
|
|
11
11
|
*/
|
|
12
12
|
import { isWhollyNumeric } from '@ifc-lite/encoding';
|
|
13
|
+
import { equalsWithIds11Tolerance } from '../preview/tolerance.js';
|
|
13
14
|
/**
|
|
14
15
|
* Whether an IDS literal could ever match through `compareNumeric` —
|
|
15
16
|
* i.e. it is a strict numeric literal: optional sign, digits, optional
|
|
@@ -63,7 +64,9 @@ export function numericEpsilon(castValue, actual) {
|
|
|
63
64
|
* `2022`, which would silently equate dates with their year. Requiring
|
|
64
65
|
* `isWhollyNumeric(...)` on both sides keeps date-like strings opaque.
|
|
65
66
|
*/
|
|
66
|
-
export function compareNumeric(expected, actual
|
|
67
|
+
export function compareNumeric(expected, actual,
|
|
68
|
+
/** IDS 1.1 PREVIEW (#418) rule from the constraint; unset is the IDS 1.0 comparison. */
|
|
69
|
+
toleranceRule) {
|
|
67
70
|
const actualStr = String(actual);
|
|
68
71
|
const expectedIsNumeric = isWhollyNumeric(expected);
|
|
69
72
|
const actualIsNumeric = typeof actual === 'number' || isWhollyNumeric(actualStr);
|
|
@@ -73,6 +76,8 @@ export function compareNumeric(expected, actual) {
|
|
|
73
76
|
const actualNum = typeof actual === 'number' ? actual : parseFloat(actualStr);
|
|
74
77
|
if (Number.isNaN(expectedNum) || Number.isNaN(actualNum))
|
|
75
78
|
return undefined;
|
|
79
|
+
if (toleranceRule === 'ids11-418')
|
|
80
|
+
return equalsWithIds11Tolerance(expectedNum, actualNum);
|
|
76
81
|
return Math.abs(expectedNum - actualNum) <= numericEpsilon(expectedNum, actualNum);
|
|
77
82
|
}
|
|
78
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparators.js","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAe;IAC/D,MAAM,QAAQ,GAAG,kBAAkB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GACP,EAAE,GAAG,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EACnB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;IACJ,OAAO,QAAQ,GAAG,GAAG,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,MAAiC;
|
|
1
|
+
{"version":3,"file":"comparators.js","sourceRoot":"","sources":["../../src/constraints/comparators.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAgCrB;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACxD,MAAM,CA6BR;AAkID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAOlE"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
import { conjunctiveFacetsOf, matchOneFamily, NUMERIC_TOLERANCE, } from './match-family.js';
|
|
5
5
|
import { matchDigitFacets, countDecimalDigits, } from './digit-facets.js';
|
|
6
6
|
import { isStrictNumericLiteral } from './comparators.js';
|
|
7
|
+
import { numericValueOf } from './match-bounds.js';
|
|
8
|
+
import { compareOrdered, isOrderedValue } from './xsd-order.js';
|
|
7
9
|
/**
|
|
8
10
|
* Cap enumeration rendering. These strings are embedded in per-entity
|
|
9
11
|
* validation results — an uncapped 800-value code list produced ~20KB
|
|
@@ -63,13 +65,14 @@ function getBoundsMismatchReason(constraint, actualValue) {
|
|
|
63
65
|
if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
|
|
64
66
|
const facets = formatUnparseableFacets(constraint.unparseableFacets);
|
|
65
67
|
return (`this xs:restriction is malformed and cannot be evaluated: ` +
|
|
66
|
-
`${facets}
|
|
68
|
+
`${facets} ${notReadableAs(constraint)} — fix the IDS specification ` +
|
|
67
69
|
`(every value is being rejected until it is corrected, not just "${actualValue}")`);
|
|
68
70
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
if (constraint.temporalBounds !== undefined) {
|
|
72
|
+
return getTemporalBoundsMismatchReason(constraint, actualValue);
|
|
73
|
+
}
|
|
74
|
+
const num = numericValueOf(actualValue);
|
|
75
|
+
if (num === undefined) {
|
|
73
76
|
return `"${actualValue}" is not a valid number`;
|
|
74
77
|
}
|
|
75
78
|
const violations = [];
|
|
@@ -105,6 +108,43 @@ function getBoundsMismatchReason(constraint, actualValue) {
|
|
|
105
108
|
}
|
|
106
109
|
return `${num} ${violations.join(' and ')}`;
|
|
107
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Why malformed facets could not be read: a min/max bound against the
|
|
113
|
+
* restriction base it failed (#7399), a length or digit count as a
|
|
114
|
+
* non-negative integer.
|
|
115
|
+
*/
|
|
116
|
+
function notReadableAs(constraint) {
|
|
117
|
+
const facets = constraint.unparseableFacets ?? [];
|
|
118
|
+
if (!facets.every((f) => /^(min|max)(In|Ex)clusive$/.test(f.facet))) {
|
|
119
|
+
return 'could not be read (a bound must be a value of the restriction base, a length or digit count a non-negative integer)';
|
|
120
|
+
}
|
|
121
|
+
return constraint.base
|
|
122
|
+
? `is not a valid ${constraint.base} value`
|
|
123
|
+
: 'did not parse as a number';
|
|
124
|
+
}
|
|
125
|
+
function getTemporalBoundsMismatchReason(constraint, actualValue) {
|
|
126
|
+
const t = constraint.temporalBounds ?? {};
|
|
127
|
+
if (typeof actualValue !== 'string' || !isOrderedValue(actualValue, constraint.base)) {
|
|
128
|
+
return `"${actualValue}" is not a valid ${constraint.base ?? 'date, time or duration'} value`;
|
|
129
|
+
}
|
|
130
|
+
const violations = [];
|
|
131
|
+
const check = (bound, op, ok) => {
|
|
132
|
+
if (bound === undefined)
|
|
133
|
+
return;
|
|
134
|
+
const c = compareOrdered(actualValue, bound, constraint.base);
|
|
135
|
+
// XSD leaves some pairs unordered — a zone-less time within 14 hours
|
|
136
|
+
// of a zoned bound, `P366D` against `P1Y` — and those are not accepted.
|
|
137
|
+
if (c === undefined)
|
|
138
|
+
violations.push(`cannot be ordered against ${bound}`);
|
|
139
|
+
else if (!ok(c))
|
|
140
|
+
violations.push(`must be ${op} ${bound}`);
|
|
141
|
+
};
|
|
142
|
+
check(t.minInclusive, '>=', (c) => c >= 0);
|
|
143
|
+
check(t.maxInclusive, '<=', (c) => c <= 0);
|
|
144
|
+
check(t.minExclusive, '>', (c) => c > 0);
|
|
145
|
+
check(t.maxExclusive, '<', (c) => c < 0);
|
|
146
|
+
return `${actualValue} ${violations.join(' and ')}`;
|
|
147
|
+
}
|
|
108
148
|
/**
|
|
109
149
|
* Per-constraint display-string cache. Failure paths format the same
|
|
110
150
|
* constraint for every non-matching entity — millions of times during
|
|
@@ -159,24 +199,30 @@ function formatBounds(constraint) {
|
|
|
159
199
|
// fail-closed behaviour `matchBounds` actually enforces.
|
|
160
200
|
if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
|
|
161
201
|
const facets = formatUnparseableFacets(constraint.unparseableFacets);
|
|
162
|
-
return `a value satisfying the xs:restriction — currently unparseable: ${facets}
|
|
202
|
+
return `a value satisfying the xs:restriction — currently unparseable: ${facets} ${notReadableAs(constraint)}`;
|
|
163
203
|
}
|
|
164
204
|
const parts = [];
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
}
|
|
175
|
-
if (
|
|
176
|
-
parts.push(
|
|
177
|
-
}
|
|
178
|
-
if (
|
|
179
|
-
parts.push(
|
|
205
|
+
// Date, time and duration bounds are kept as their lexemes; numeric
|
|
206
|
+
// ones as numbers. A constraint carries one kind or the other.
|
|
207
|
+
const t = constraint.temporalBounds;
|
|
208
|
+
const minInclusive = t?.minInclusive ?? constraint.minInclusive;
|
|
209
|
+
const maxInclusive = t?.maxInclusive ?? constraint.maxInclusive;
|
|
210
|
+
const minExclusive = t?.minExclusive ?? constraint.minExclusive;
|
|
211
|
+
const maxExclusive = t?.maxExclusive ?? constraint.maxExclusive;
|
|
212
|
+
if (minInclusive !== undefined && maxInclusive !== undefined) {
|
|
213
|
+
return `between ${minInclusive} and ${maxInclusive}`;
|
|
214
|
+
}
|
|
215
|
+
if (minInclusive !== undefined) {
|
|
216
|
+
parts.push(`>= ${minInclusive}`);
|
|
217
|
+
}
|
|
218
|
+
if (maxInclusive !== undefined) {
|
|
219
|
+
parts.push(`<= ${maxInclusive}`);
|
|
220
|
+
}
|
|
221
|
+
if (minExclusive !== undefined) {
|
|
222
|
+
parts.push(`> ${minExclusive}`);
|
|
223
|
+
}
|
|
224
|
+
if (maxExclusive !== undefined) {
|
|
225
|
+
parts.push(`< ${maxExclusive}`);
|
|
180
226
|
}
|
|
181
227
|
if (constraint.totalDigits !== undefined) {
|
|
182
228
|
parts.push(`<= ${constraint.totalDigits} total digits`);
|
|
@@ -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,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/constraints/describe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bounds-family matcher: min/max bounds, string lengths and digit
|
|
3
|
+
* counts. Split out of `match-family.ts` (module-size budget) when bounds
|
|
4
|
+
* learned to compare by their restriction's `@base` (#7399).
|
|
5
|
+
*/
|
|
6
|
+
import type { IDSBoundsConstraint } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* The value a numeric bound compares against: a number as given, or a
|
|
9
|
+
* string whose WHOLE text is a numeric lexeme. `parseFloat` used to read
|
|
10
|
+
* `"2024-12-31"` as 2024 and `"5 m"` as 5, so a non-number satisfied a
|
|
11
|
+
* numeric range by its prefix (#7399).
|
|
12
|
+
*/
|
|
13
|
+
export declare function numericValueOf(actualValue: string | number | boolean): number | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Whether `actualValue` satisfies the `temporalBounds` of an `xs:date` /
|
|
16
|
+
* `xs:dateTime` / `xs:time` / `xs:duration` restriction. A value outside
|
|
17
|
+
* the base's value space, or one XSD leaves unordered against a bound,
|
|
18
|
+
* fails.
|
|
19
|
+
*/
|
|
20
|
+
export declare function matchTemporalBounds(constraint: IDSBoundsConstraint, actualValue: string | number | boolean): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Match against bounds.
|
|
23
|
+
*/
|
|
24
|
+
export declare function matchBounds(constraint: IDSBoundsConstraint, actualValue: string | number | boolean): boolean;
|
|
25
|
+
//# sourceMappingURL=match-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match-bounds.d.ts","sourceRoot":"","sources":["../../src/constraints/match-bounds.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAIzF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GACrC,OAAO,CAgBT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GACrC,OAAO,CA8ET"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { matchDigitFacets } from './digit-facets.js';
|
|
5
|
+
import { compareOrdered, readNumeric } from './xsd-order.js';
|
|
6
|
+
/**
|
|
7
|
+
* The value a numeric bound compares against: a number as given, or a
|
|
8
|
+
* string whose WHOLE text is a numeric lexeme. `parseFloat` used to read
|
|
9
|
+
* `"2024-12-31"` as 2024 and `"5 m"` as 5, so a non-number satisfied a
|
|
10
|
+
* numeric range by its prefix (#7399).
|
|
11
|
+
*/
|
|
12
|
+
export function numericValueOf(actualValue) {
|
|
13
|
+
if (typeof actualValue === 'number')
|
|
14
|
+
return Number.isNaN(actualValue) ? undefined : actualValue;
|
|
15
|
+
if (typeof actualValue !== 'string')
|
|
16
|
+
return undefined;
|
|
17
|
+
return readNumeric(actualValue, 'xs:double');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether `actualValue` satisfies the `temporalBounds` of an `xs:date` /
|
|
21
|
+
* `xs:dateTime` / `xs:time` / `xs:duration` restriction. A value outside
|
|
22
|
+
* the base's value space, or one XSD leaves unordered against a bound,
|
|
23
|
+
* fails.
|
|
24
|
+
*/
|
|
25
|
+
export function matchTemporalBounds(constraint, actualValue) {
|
|
26
|
+
const t = constraint.temporalBounds;
|
|
27
|
+
if (t === undefined)
|
|
28
|
+
return true;
|
|
29
|
+
const cmp = (bound) => compareOrdered(actualValue, bound, constraint.base);
|
|
30
|
+
const holds = (bound, ok) => {
|
|
31
|
+
if (bound === undefined)
|
|
32
|
+
return true;
|
|
33
|
+
const c = cmp(bound);
|
|
34
|
+
return c !== undefined && ok(c);
|
|
35
|
+
};
|
|
36
|
+
return (holds(t.minInclusive, (c) => c >= 0) &&
|
|
37
|
+
holds(t.maxInclusive, (c) => c <= 0) &&
|
|
38
|
+
holds(t.minExclusive, (c) => c > 0) &&
|
|
39
|
+
holds(t.maxExclusive, (c) => c < 0));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Match against bounds.
|
|
43
|
+
*/
|
|
44
|
+
export function matchBounds(constraint, actualValue) {
|
|
45
|
+
// A facet element was present in the source `<xs:restriction>` but
|
|
46
|
+
// its `@value` is not in the lexical space it needs (a typo, a wrong
|
|
47
|
+
// decimal separator, a date under a numeric base, a negative
|
|
48
|
+
// digit-count, …). `parseRestriction` left it unset, the same as a
|
|
49
|
+
// facet that was never present — which would otherwise make this an
|
|
50
|
+
// unconditional pass. Fail closed instead: we cannot verify
|
|
51
|
+
// compliance against a restriction we could not fully parse, so no
|
|
52
|
+
// value passes until the IDS is corrected. See
|
|
53
|
+
// `getBoundsMismatchReason` for the author-facing explanation and
|
|
54
|
+
// `audit/coherence` for the corresponding lint diagnostic.
|
|
55
|
+
if (constraint.unparseableFacets !== undefined && constraint.unparseableFacets.length > 0) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
// String-length facets (xs:length / xs:minLength / xs:maxLength)
|
|
59
|
+
// operate on the textual length, not on numeric magnitude. When any
|
|
60
|
+
// of them are present, evaluate the length constraints first.
|
|
61
|
+
if (constraint.length !== undefined ||
|
|
62
|
+
constraint.minLength !== undefined ||
|
|
63
|
+
constraint.maxLength !== undefined) {
|
|
64
|
+
const str = String(actualValue);
|
|
65
|
+
if (constraint.length !== undefined && str.length !== constraint.length) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (constraint.minLength !== undefined && str.length < constraint.minLength) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (constraint.maxLength !== undefined && str.length > constraint.maxLength) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
// Length-only restrictions don't impose numeric bounds; if the
|
|
75
|
+
// constraint also carries min/max/totalDigits/fractionDigits we
|
|
76
|
+
// fall through to the numeric check below (rare in practice).
|
|
77
|
+
if (constraint.minInclusive === undefined &&
|
|
78
|
+
constraint.maxInclusive === undefined &&
|
|
79
|
+
constraint.minExclusive === undefined &&
|
|
80
|
+
constraint.maxExclusive === undefined &&
|
|
81
|
+
constraint.temporalBounds === undefined &&
|
|
82
|
+
constraint.totalDigits === undefined &&
|
|
83
|
+
constraint.fractionDigits === undefined) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Date, time and duration bounds order in their own value space, and a
|
|
88
|
+
// number never satisfies them.
|
|
89
|
+
if (constraint.temporalBounds !== undefined) {
|
|
90
|
+
return matchTemporalBounds(constraint, actualValue);
|
|
91
|
+
}
|
|
92
|
+
const num = numericValueOf(actualValue);
|
|
93
|
+
if (num === undefined)
|
|
94
|
+
return false;
|
|
95
|
+
if (constraint.minInclusive !== undefined && num < constraint.minInclusive) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
if (constraint.maxInclusive !== undefined && num > constraint.maxInclusive) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
if (constraint.minExclusive !== undefined && num <= constraint.minExclusive) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
if (constraint.maxExclusive !== undefined && num >= constraint.maxExclusive) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
const digitsOk = matchDigitFacets(constraint, actualValue);
|
|
108
|
+
if (digitsOk === false)
|
|
109
|
+
return false;
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=match-bounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match-bounds.js","sourceRoot":"","sources":["../../src/constraints/match-bounds.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match-family.d.ts","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"match-family.d.ts","sourceRoot":"","sources":["../../src/constraints/match-family.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,aAAa,CAAC;AAcrB,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,WAAO,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,GACxB,SAAS,aAAa,EAAE,GAAG,SAAS,CAEtC;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACtC,EAAE,EAAE,OAAO,EACX,UAAU,UAAQ,GACjB,OAAO,CAaT"}
|