@ifc-lite/ids 3.2.0 → 3.3.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/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/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 +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -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/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/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.map +1 -1
- package/dist/validation/validator.js +14 -11
- 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/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** IDS (Information Delivery Specification) types, per buildingSMART IDS 1.0. */
|
|
2
2
|
import type { IDSConstraint } from './constraint-types.js';
|
|
3
|
+
import type { IDS11FacetInstructions as Ins, IDS11FacetUri as Uri, IDSPreviewFlags } from './preview/types.js';
|
|
3
4
|
/** IDS Document - root container for the specification */
|
|
4
5
|
export interface IDSDocument {
|
|
5
6
|
/** Document metadata */
|
|
@@ -101,7 +102,7 @@ export type RequirementOptionality = 'required' | 'optional' | 'prohibited';
|
|
|
101
102
|
export type IDSFacet = IDSEntityFacet | IDSAttributeFacet | IDSPropertyFacet | IDSClassificationFacet | IDSMaterialFacet | IDSPartOfFacet;
|
|
102
103
|
export type FacetType = IDSFacet['type'];
|
|
103
104
|
/** Entity facet - match by IFC entity type */
|
|
104
|
-
export interface IDSEntityFacet {
|
|
105
|
+
export interface IDSEntityFacet extends Ins {
|
|
105
106
|
type: 'entity';
|
|
106
107
|
/** Entity type name constraint (e.g., "IFCWALL") */
|
|
107
108
|
name: IDSConstraint;
|
|
@@ -109,7 +110,7 @@ export interface IDSEntityFacet {
|
|
|
109
110
|
predefinedType?: IDSConstraint;
|
|
110
111
|
}
|
|
111
112
|
/** Attribute facet - match by IFC attribute value */
|
|
112
|
-
export interface IDSAttributeFacet {
|
|
113
|
+
export interface IDSAttributeFacet extends Ins {
|
|
113
114
|
type: 'attribute';
|
|
114
115
|
/** Attribute name constraint (e.g., "Name", "Description") */
|
|
115
116
|
name: IDSConstraint;
|
|
@@ -117,7 +118,7 @@ export interface IDSAttributeFacet {
|
|
|
117
118
|
value?: IDSConstraint;
|
|
118
119
|
}
|
|
119
120
|
/** Property facet - match by property set and property value */
|
|
120
|
-
export interface IDSPropertyFacet {
|
|
121
|
+
export interface IDSPropertyFacet extends Ins, Uri {
|
|
121
122
|
type: 'property';
|
|
122
123
|
/** Property set name constraint */
|
|
123
124
|
propertySet: IDSConstraint;
|
|
@@ -129,7 +130,7 @@ export interface IDSPropertyFacet {
|
|
|
129
130
|
value?: IDSConstraint;
|
|
130
131
|
}
|
|
131
132
|
/** Classification facet - match by classification reference */
|
|
132
|
-
export interface IDSClassificationFacet {
|
|
133
|
+
export interface IDSClassificationFacet extends Ins, Uri {
|
|
133
134
|
type: 'classification';
|
|
134
135
|
/** Optional classification system name constraint */
|
|
135
136
|
system?: IDSConstraint;
|
|
@@ -137,25 +138,24 @@ export interface IDSClassificationFacet {
|
|
|
137
138
|
value?: IDSConstraint;
|
|
138
139
|
}
|
|
139
140
|
/** Material facet - match by material assignment */
|
|
140
|
-
export interface IDSMaterialFacet {
|
|
141
|
+
export interface IDSMaterialFacet extends Ins, Uri {
|
|
141
142
|
type: 'material';
|
|
142
143
|
/** Optional material value/name constraint */
|
|
143
144
|
value?: IDSConstraint;
|
|
144
145
|
}
|
|
145
146
|
/** PartOf facet - match by spatial/compositional relationship */
|
|
146
|
-
export interface IDSPartOfFacet {
|
|
147
|
+
export interface IDSPartOfFacet extends Ins {
|
|
147
148
|
type: 'partOf';
|
|
148
149
|
/** Relationship type (normalised; defaults to `IfcRelContainedInSpatialStructure` when unrecognised). */
|
|
149
150
|
relation: PartOfRelation;
|
|
150
|
-
/**
|
|
151
|
-
* The relation string as it appeared in the XML, before normalisation.
|
|
152
|
-
* Set when the original value didn't map to a recognised
|
|
153
|
-
* {@link PartOfRelation}. The auditor uses this to flag invalid
|
|
154
|
-
* relation names.
|
|
155
|
-
*/
|
|
151
|
+
/** The XML relation string when it is not a recognised {@link PartOfRelation}; the auditor flags it. */
|
|
156
152
|
rawRelation?: string;
|
|
153
|
+
/** No `relation` in the XML: any part-of relation counts, recursively (IDS 1.0, #7401); `relation` then holds the containment default. */
|
|
154
|
+
anyRelation?: boolean;
|
|
157
155
|
/** Optional entity constraint for the related parent */
|
|
158
156
|
entity?: IDSEntityFacet;
|
|
157
|
+
/** IDS 1.1 PREVIEW (#379, draft PR #380): further facets the related parent must satisfy. */
|
|
158
|
+
facets?: Array<IDSAttributeFacet | IDSPropertyFacet | IDSClassificationFacet | IDSMaterialFacet>;
|
|
159
159
|
}
|
|
160
160
|
export type PartOfRelation = 'IfcRelAggregates' | 'IfcRelAssignsToGroup' | 'IfcRelContainedInSpatialStructure' | 'IfcRelNests' | 'IfcRelVoidsElement' | 'IfcRelFillsElement' | 'IfcRelVoidsElement IfcRelFillsElement';
|
|
161
161
|
export type { IDSConstraint, IDSSimpleValue, IDSPatternConstraint, IDSEnumerationConstraint, IDSBoundsConstraint, } from './constraint-types.js';
|
|
@@ -256,14 +256,13 @@ export interface IFCDataAccessor {
|
|
|
256
256
|
/** Get entity description by express ID */
|
|
257
257
|
getDescription(expressId: number): string | undefined;
|
|
258
258
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
* Per IDS
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
* literal `USERDEFINED` matches from user-name matches.
|
|
259
|
+
* The entity's predefined type as the IDS entity facet reads it - NOT the
|
|
260
|
+
* IFC `ObjectType` attribute (the attribute facet uses `getAttribute`).
|
|
261
|
+
* Per IDS 1.0 a `USERDEFINED` PredefinedType shifts the comparison to the
|
|
262
|
+
* user-defined name in `ObjectType` / `ElementType`; implementations MAY
|
|
263
|
+
* substitute that name here but MUST surface the raw enum via
|
|
264
|
+
* `getPredefinedTypeRaw`. Returns `undefined` when there is no predefined
|
|
265
|
+
* type: an unset or `NOTDEFINED` PredefinedType never falls back to `ObjectType`.
|
|
267
266
|
*/
|
|
268
267
|
getObjectType(expressId: number): string | undefined;
|
|
269
268
|
/**
|
|
@@ -385,18 +384,12 @@ export interface ParentInfo {
|
|
|
385
384
|
expressId: number;
|
|
386
385
|
/** Parent entity type */
|
|
387
386
|
entityType: string;
|
|
388
|
-
/**
|
|
389
|
-
* Parent's raw `PredefinedType` enum token (`BEAM`, `USERDEFINED`,
|
|
390
|
-
* `NOTDEFINED`, …), if available. Mirrors `IFCDataAccessor.getPredefinedTypeRaw`.
|
|
391
|
-
*/
|
|
387
|
+
/** Parent's raw `PredefinedType` token (`BEAM`, `USERDEFINED`, …); mirrors `getPredefinedTypeRaw`. */
|
|
392
388
|
predefinedType?: string;
|
|
393
389
|
/**
|
|
394
|
-
* Parent's user-defined name (`ObjectType`/`ElementType`/`ProcessType`)
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
* `predefinedType` so partOf's predefinedType match can reproduce the
|
|
398
|
-
* same two-branch (raw-token-first, user-name-fallback) semantics
|
|
399
|
-
* `entity-facet.ts` uses for a direct entity check.
|
|
390
|
+
* Parent's user-defined name (`ObjectType`/`ElementType`/`ProcessType`), the
|
|
391
|
+
* USERDEFINED fallback; mirrors `IFCDataAccessor.getObjectType`. Kept apart
|
|
392
|
+
* from `predefinedType` for the raw-token-first match `entity-facet.ts` uses.
|
|
400
393
|
*/
|
|
401
394
|
objectType?: string;
|
|
402
395
|
}
|
|
@@ -418,6 +411,8 @@ export interface ValidatorOptions {
|
|
|
418
411
|
* cannot paint a single frame for the whole run.
|
|
419
412
|
*/
|
|
420
413
|
yieldEveryMs?: number;
|
|
414
|
+
/** IDS 1.1 PREVIEW: required to validate a document that uses 1.1 candidate features. */
|
|
415
|
+
preview?: IDSPreviewFlags;
|
|
421
416
|
}
|
|
422
417
|
/** Validation progress information */
|
|
423
418
|
export interface ValidationProgress {
|
|
@@ -435,7 +430,7 @@ export interface ValidationProgress {
|
|
|
435
430
|
percentage: number;
|
|
436
431
|
}
|
|
437
432
|
/** Supported locales for translation */
|
|
438
|
-
export type SupportedLocale = 'en' | 'de' | 'fr';
|
|
433
|
+
export type SupportedLocale = 'en' | 'de' | 'fr' | 'it';
|
|
439
434
|
/** Translation service interface */
|
|
440
435
|
export interface TranslationService {
|
|
441
436
|
/** Current locale */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,iFAAiF;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,7 +114,7 @@ export function formatRequirementDescription(requirement) {
|
|
|
114
114
|
}
|
|
115
115
|
break;
|
|
116
116
|
case 'partOf': {
|
|
117
|
-
const relName = facet.relation.replace('IfcRel', '').toLowerCase();
|
|
117
|
+
const relName = facet.anyRelation ? 'part of' : facet.relation.replace('IfcRel', '').toLowerCase();
|
|
118
118
|
if (facet.entity) {
|
|
119
119
|
desc = `Must be ${relName} ${formatConstraint(facet.entity.name)}`;
|
|
120
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-failure-reason.js","sourceRoot":"","sources":["../../src/validation/format-failure-reason.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"format-failure-reason.js","sourceRoot":"","sources":["../../src/validation/format-failure-reason.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A prohibited specification (`<applicability maxOccurs="0">`) says the
|
|
3
|
+
* elements it applies to must not exist, so under IDS 1.0 every applicable
|
|
4
|
+
* element is itself a violation (#7403). The specification already fails at
|
|
5
|
+
* set level through cardinality; this module gives each applicable element
|
|
6
|
+
* the per-element check that carries that verdict, so `entityResults`, the
|
|
7
|
+
* pass/fail counts and the status agree, and per-element consumers (result
|
|
8
|
+
* tables, BCF topics and comments) have a reason to show.
|
|
9
|
+
*
|
|
10
|
+
* The check is the specification's first applicability facet evaluated as a
|
|
11
|
+
* `prohibited` requirement. An applicable element satisfies that facet by
|
|
12
|
+
* definition, so the existing prohibited-requirement path in
|
|
13
|
+
* `checkRequirement` fails it and words the failure with the
|
|
14
|
+
* `failures.prohibited` message.
|
|
15
|
+
*
|
|
16
|
+
* A specification with no applicability facets (invalid IDS, but a document
|
|
17
|
+
* built in code can say it) applies to every entity, so its check is an
|
|
18
|
+
* entity facet matching any IFC class: each element still fails with a
|
|
19
|
+
* reason naming its own class.
|
|
20
|
+
*/
|
|
21
|
+
import type { IDSRequirement, IDSSpecification } from '../types.js';
|
|
22
|
+
/**
|
|
23
|
+
* The requirements to evaluate per applicable element of `spec`, read from the
|
|
24
|
+
* spec as it is NOW. Deliberately uncached: callers (the viewer's IDS editor)
|
|
25
|
+
* mutate specifications in place between runs, so a cache keyed by the spec
|
|
26
|
+
* object would replay a stale check list. The validator calls this once per
|
|
27
|
+
* specification per run and reuses the result for every element, which keeps
|
|
28
|
+
* the synthetic requirement's identity stable for its description cache.
|
|
29
|
+
*/
|
|
30
|
+
export declare function requirementsToCheck(spec: IDSSpecification): readonly IDSRequirement[];
|
|
31
|
+
//# sourceMappingURL=prohibited-specification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prohibited-specification.d.ts","sourceRoot":"","sources":["../../src/validation/prohibited-specification.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAkB,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,cAAc,EAAE,CAOrF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
/** Requirement id of the synthetic prohibition check; distinct from the parser's `req-N`. */
|
|
5
|
+
const PROHIBITED_APPLICABILITY_REQUIREMENT_ID = 'applicability-prohibited';
|
|
6
|
+
/** "Any IFC class": what an applicability with no facets selects. Matched case-insensitively. */
|
|
7
|
+
const ANY_ENTITY_FACET = { type: 'entity', name: { type: 'pattern', pattern: 'IFC.*' } };
|
|
8
|
+
/**
|
|
9
|
+
* The requirements to evaluate per applicable element of `spec`, read from the
|
|
10
|
+
* spec as it is NOW. Deliberately uncached: callers (the viewer's IDS editor)
|
|
11
|
+
* mutate specifications in place between runs, so a cache keyed by the spec
|
|
12
|
+
* object would replay a stale check list. The validator calls this once per
|
|
13
|
+
* specification per run and reuses the result for every element, which keeps
|
|
14
|
+
* the synthetic requirement's identity stable for its description cache.
|
|
15
|
+
*/
|
|
16
|
+
export function requirementsToCheck(spec) {
|
|
17
|
+
if (spec.maxOccurs !== 0)
|
|
18
|
+
return spec.requirements;
|
|
19
|
+
const facet = spec.applicability.facets[0] ?? ANY_ENTITY_FACET;
|
|
20
|
+
return [
|
|
21
|
+
...spec.requirements,
|
|
22
|
+
{ id: PROHIBITED_APPLICABILITY_REQUIREMENT_ID, facet, optionality: 'prohibited' },
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=prohibited-specification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prohibited-specification.js","sourceRoot":"","sources":["../../src/validation/prohibited-specification.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyB/D,6FAA6F;AAC7F,MAAM,uCAAuC,GAAG,0BAA0B,CAAC;AAE3E,iGAAiG;AACjG,MAAM,gBAAgB,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAEzG;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAsB;IACxD,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,YAAY,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC;IAC/D,OAAO;QACL,GAAG,IAAI,CAAC,YAAY;QACpB,EAAE,EAAE,EAAE,uCAAuC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE;KAClF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EAGX,mBAAmB,EAInB,oBAAoB,EACpB,mBAAmB,EAEnB,eAAe,EACf,gBAAgB,EAIhB,mBAAmB,EACpB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EAGX,mBAAmB,EAInB,oBAAoB,EACpB,mBAAmB,EAEnB,eAAe,EACf,gBAAgB,EAIhB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AA2BjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAgE/E;AAyDD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,mBAAmB,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAuF9B;AAmbD;wDACwD;AACxD,wBAAgB,gBAAgB,CAC9B,oBAAoB,EAAE,SAAS,mBAAmB,EAAE,GACnD,oBAAoB,CA0CtB"}
|
|
@@ -6,7 +6,9 @@ import { ApplicabilityPropertyIndex } from './property-index.js';
|
|
|
6
6
|
import { UnsafeRegexPatternError } from '@ifc-lite/regex-guard';
|
|
7
7
|
import { formatFailureReason, formatRequirementDescription } from './format-failure-reason.js';
|
|
8
8
|
import { boundedPassRate } from './pass-rate.js';
|
|
9
|
+
import { requirementsToCheck } from './prohibited-specification.js';
|
|
9
10
|
import { BoundedCache } from '../bounded-cache.js';
|
|
11
|
+
import { assertIds11Allowed } from '../preview/features.js';
|
|
10
12
|
export { formatFailureReason } from './format-failure-reason.js';
|
|
11
13
|
/** Memoize a single-argument accessor lookup keyed by express ID. */
|
|
12
14
|
function memoById(fn) {
|
|
@@ -145,6 +147,7 @@ function createYielder(budgetMs) {
|
|
|
145
147
|
*/
|
|
146
148
|
export async function validateIDS(document, accessor, modelInfo, options = {}) {
|
|
147
149
|
const { onProgress } = options;
|
|
150
|
+
assertIds11Allowed(document, options.preview, 'validateIDS'); // ADR-011: no silent 1.1 skips
|
|
148
151
|
const cachedAccessor = createCachedAccessor(accessor);
|
|
149
152
|
const descriptionCache = new Map();
|
|
150
153
|
const maybeYield = createYielder(options.yieldEveryMs ?? 40);
|
|
@@ -237,7 +240,8 @@ async function validateSpecification(spec, accessor, modelInfo, options, descrip
|
|
|
237
240
|
const idsToCheck = maxEntities
|
|
238
241
|
? applicableIds.slice(0, maxEntities)
|
|
239
242
|
: applicableIds;
|
|
240
|
-
// Phase 2:
|
|
243
|
+
// Phase 2: per-entity checks, built per run (specs are edited in place between runs).
|
|
244
|
+
const checks = requirementsToCheck(spec);
|
|
241
245
|
const entityResults = [];
|
|
242
246
|
const totalEntities = idsToCheck.length;
|
|
243
247
|
for (let i = 0; i < totalEntities; i++) {
|
|
@@ -252,7 +256,7 @@ async function validateSpecification(spec, accessor, modelInfo, options, descrip
|
|
|
252
256
|
}
|
|
253
257
|
if ((i & 31) === 0)
|
|
254
258
|
await maybeYield();
|
|
255
|
-
const entityResult = validateEntityRequirements(spec, expressId, modelId, accessor, descriptionCache, translator);
|
|
259
|
+
const entityResult = validateEntityRequirements(spec, checks, expressId, modelId, accessor, descriptionCache, translator);
|
|
256
260
|
// Include result based on options
|
|
257
261
|
if (includePassingEntities || !entityResult.passed) {
|
|
258
262
|
entityResults.push(entityResult);
|
|
@@ -396,15 +400,15 @@ async function findApplicableEntities(spec, accessor, maybeYield, propertyIndex,
|
|
|
396
400
|
/**
|
|
397
401
|
* Validate requirements for a single entity
|
|
398
402
|
*/
|
|
399
|
-
function validateEntityRequirements(spec, expressId, modelId, accessor, descriptionCache, translator) {
|
|
403
|
+
function validateEntityRequirements(spec, checks, expressId, modelId, accessor, descriptionCache, translator) {
|
|
400
404
|
const requirementResults = [];
|
|
401
405
|
let allPassed = true;
|
|
402
|
-
|
|
406
|
+
// A prohibited specification adds a failing check per element (#7403).
|
|
407
|
+
for (const requirement of checks) {
|
|
403
408
|
const result = checkRequirement(requirement, expressId, accessor, descriptionCache, translator);
|
|
404
409
|
requirementResults.push(result);
|
|
405
|
-
if (result.status === 'fail')
|
|
410
|
+
if (result.status === 'fail')
|
|
406
411
|
allPassed = false;
|
|
407
|
-
}
|
|
408
412
|
}
|
|
409
413
|
return {
|
|
410
414
|
expressId,
|
|
@@ -412,7 +416,7 @@ function validateEntityRequirements(spec, expressId, modelId, accessor, descript
|
|
|
412
416
|
entityType: accessor.getEntityType(expressId) || 'Unknown',
|
|
413
417
|
entityName: accessor.getEntityName(expressId),
|
|
414
418
|
globalId: accessor.getGlobalId(expressId),
|
|
415
|
-
passed: allPassed,
|
|
419
|
+
passed: allPassed && spec.maxOccurs !== 0,
|
|
416
420
|
requirementResults,
|
|
417
421
|
};
|
|
418
422
|
}
|
|
@@ -462,9 +466,8 @@ function checkRequirement(requirement, expressId, accessor, descriptionCache, tr
|
|
|
462
466
|
'CLASSIFICATION_MISSING',
|
|
463
467
|
'MATERIAL_MISSING',
|
|
464
468
|
'PARTOF_RELATION_MISSING',
|
|
465
|
-
// The nested predefinedType
|
|
466
|
-
//
|
|
467
|
-
// when it's wholly unset (no PredefinedType, no fallback
|
|
469
|
+
// The nested predefinedType of an entity / partOf facet is an
|
|
470
|
+
// "attribute" of the target entity — when it's wholly unset (no PredefinedType, no fallback
|
|
468
471
|
// ObjectType/parent predefinedType at all) that's the same
|
|
469
472
|
// "wholly absent" shape as ATTRIBUTE_MISSING, not "bad data".
|
|
470
473
|
'PREDEFINED_TYPE_MISSING',
|
|
@@ -495,7 +498,7 @@ function checkRequirement(requirement, expressId, accessor, descriptionCache, tr
|
|
|
495
498
|
if (status === 'fail') {
|
|
496
499
|
failureReason = translator
|
|
497
500
|
? translator.t('failures.prohibited', {
|
|
498
|
-
field: facetResult.actualValue
|
|
501
|
+
field: requirement.facet.type, actual: facetResult.actualValue ?? '?',
|
|
499
502
|
})
|
|
500
503
|
: `Prohibited: found ${facetResult.actualValue}`;
|
|
501
504
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `IDSConstraint` -> `<simpleValue>` or one `<xs:restriction>` holding the
|
|
3
|
+
* primary facet family and its conjunctive `and` siblings.
|
|
4
|
+
*/
|
|
5
|
+
import type { IDSConstraint } from '../types.js';
|
|
6
|
+
import type { XmlLines } from './xml-lines.js';
|
|
7
|
+
export declare function writeConstraint(xml: XmlLines, tag: string, constraint: IDSConstraint): void;
|
|
8
|
+
//# sourceMappingURL=constraint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/writer/constraint.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA+H/C,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI,CAK3F"}
|
|
@@ -0,0 +1,142 @@
|
|
|
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
|
+
function refuse(what) {
|
|
5
|
+
throw new Error(`writeIdsXml: ${what} are not supported by this writer`);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The facet families of one `<xs:restriction>`: the primary constraint and
|
|
9
|
+
* its conjunctive `and` siblings (see `constraint-types.ts`). One restriction
|
|
10
|
+
* holds one base and at most one family of each kind, since XSD ORs sibling
|
|
11
|
+
* patterns and enumerations; anything else has no single-restriction XML and
|
|
12
|
+
* is refused, never written as a weaker or different check.
|
|
13
|
+
*/
|
|
14
|
+
function restrictionFamilies(constraint) {
|
|
15
|
+
const families = [constraint];
|
|
16
|
+
for (const sibling of constraint.and ?? []) {
|
|
17
|
+
if (sibling.type === 'simpleValue')
|
|
18
|
+
refuse('simple values inside a conjunctive restriction');
|
|
19
|
+
if (sibling.and?.length)
|
|
20
|
+
refuse('nested conjunctive restriction facets');
|
|
21
|
+
if (families.some((family) => family.type === sibling.type))
|
|
22
|
+
refuse(`two ${sibling.type} families in one conjunctive restriction`);
|
|
23
|
+
families.push(sibling);
|
|
24
|
+
}
|
|
25
|
+
const bases = new Set(families.map((family) => family.base).filter((base) => base !== undefined));
|
|
26
|
+
if (bases.size > 1)
|
|
27
|
+
refuse('conjunctive restriction facets with different bases');
|
|
28
|
+
return families;
|
|
29
|
+
}
|
|
30
|
+
/** `xs:length`, `xs:minLength`, `xs:maxLength` and the digit counts are `xs:nonNegativeInteger`. */
|
|
31
|
+
function countLexical(facet, value) {
|
|
32
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
33
|
+
throw new Error(`writeIdsXml: ${facet} must be a non-negative integer, got ${value}`);
|
|
34
|
+
}
|
|
35
|
+
return String(value);
|
|
36
|
+
}
|
|
37
|
+
/** Bases whose lexical space has an exponent: `xs:double` and `xs:float`. */
|
|
38
|
+
const EXPONENT_BASES = new Set(['xs:double', 'xs:float']);
|
|
39
|
+
/**
|
|
40
|
+
* A bound in its base's lexical space. `String(1e-7)` is `"1e-7"`, which
|
|
41
|
+
* `xs:decimal` and the integer types cannot read, so the exponent is expanded
|
|
42
|
+
* into plain digits there; the digits are the same, so `parseFloat` reads
|
|
43
|
+
* back the identical number.
|
|
44
|
+
*/
|
|
45
|
+
function boundLexical(facet, value, base) {
|
|
46
|
+
if (!Number.isFinite(value))
|
|
47
|
+
throw new Error(`writeIdsXml: ${facet} must be a finite number, got ${value}`);
|
|
48
|
+
const text = String(value);
|
|
49
|
+
if (EXPONENT_BASES.has(base) || !/e/i.test(text))
|
|
50
|
+
return text;
|
|
51
|
+
return expandExponent(text);
|
|
52
|
+
}
|
|
53
|
+
function expandExponent(text) {
|
|
54
|
+
const match = /^(-?)(\d+)(?:\.(\d+))?e([+-]\d+)$/i.exec(text);
|
|
55
|
+
if (!match)
|
|
56
|
+
return text;
|
|
57
|
+
const [, sign, whole, fraction = '', exponentText] = match;
|
|
58
|
+
const digits = whole + fraction;
|
|
59
|
+
const point = whole.length + Number(exponentText);
|
|
60
|
+
if (point <= 0)
|
|
61
|
+
return `${sign}0.${'0'.repeat(-point)}${digits}`;
|
|
62
|
+
if (point >= digits.length)
|
|
63
|
+
return `${sign}${digits}${'0'.repeat(point - digits.length)}`;
|
|
64
|
+
return `${sign}${digits.slice(0, point)}.${digits.slice(point)}`;
|
|
65
|
+
}
|
|
66
|
+
function writeBounds(xml, constraint, base) {
|
|
67
|
+
if (constraint.unparseableFacets?.length)
|
|
68
|
+
refuse('unparseable bound facets');
|
|
69
|
+
const bounds = [
|
|
70
|
+
['xs:minInclusive', constraint.minInclusive],
|
|
71
|
+
['xs:minExclusive', constraint.minExclusive],
|
|
72
|
+
['xs:maxInclusive', constraint.maxInclusive],
|
|
73
|
+
['xs:maxExclusive', constraint.maxExclusive],
|
|
74
|
+
];
|
|
75
|
+
// Date, time and duration bounds are kept as their validated lexemes, not numbers (#7399).
|
|
76
|
+
const temporal = constraint.temporalBounds;
|
|
77
|
+
const temporalBounds = [
|
|
78
|
+
['xs:minInclusive', temporal?.minInclusive],
|
|
79
|
+
['xs:minExclusive', temporal?.minExclusive],
|
|
80
|
+
['xs:maxInclusive', temporal?.maxInclusive],
|
|
81
|
+
['xs:maxExclusive', temporal?.maxExclusive],
|
|
82
|
+
];
|
|
83
|
+
const counts = [
|
|
84
|
+
['xs:length', constraint.length],
|
|
85
|
+
['xs:minLength', constraint.minLength],
|
|
86
|
+
['xs:maxLength', constraint.maxLength],
|
|
87
|
+
['xs:totalDigits', constraint.totalDigits],
|
|
88
|
+
['xs:fractionDigits', constraint.fractionDigits],
|
|
89
|
+
];
|
|
90
|
+
// With no facet the restriction would be empty, which reads back as an empty enumeration.
|
|
91
|
+
if ([...bounds, ...temporalBounds, ...counts].every(([, value]) => value === undefined))
|
|
92
|
+
refuse('bounds restrictions without any facet');
|
|
93
|
+
for (const [facet, value] of bounds) {
|
|
94
|
+
if (value !== undefined)
|
|
95
|
+
xml.empty(facet, { value: boundLexical(facet, value, base) });
|
|
96
|
+
}
|
|
97
|
+
for (const [facet, value] of temporalBounds) {
|
|
98
|
+
if (value !== undefined)
|
|
99
|
+
xml.empty(facet, { value });
|
|
100
|
+
}
|
|
101
|
+
for (const [facet, value] of counts) {
|
|
102
|
+
if (value !== undefined)
|
|
103
|
+
xml.empty(facet, { value: countLexical(facet, value) });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** The base written when the model carries none: `xs:double` for a numeric bounds restriction, else `xs:string`. */
|
|
107
|
+
function defaultBase(families) {
|
|
108
|
+
const primary = families[0];
|
|
109
|
+
if (primary.type !== 'bounds')
|
|
110
|
+
return 'xs:string';
|
|
111
|
+
const numeric = [primary.minInclusive, primary.minExclusive, primary.maxInclusive, primary.maxExclusive, primary.totalDigits, primary.fractionDigits];
|
|
112
|
+
return numeric.some((value) => value !== undefined) ? 'xs:double' : 'xs:string';
|
|
113
|
+
}
|
|
114
|
+
function writeRestriction(xml, constraint) {
|
|
115
|
+
const families = restrictionFamilies(constraint);
|
|
116
|
+
const base = families.find((family) => family.base !== undefined)?.base ?? defaultBase(families);
|
|
117
|
+
xml.open('xs:restriction', { base });
|
|
118
|
+
for (const family of families) {
|
|
119
|
+
switch (family.type) {
|
|
120
|
+
case 'pattern':
|
|
121
|
+
xml.empty('xs:pattern', { value: family.pattern });
|
|
122
|
+
break;
|
|
123
|
+
case 'enumeration':
|
|
124
|
+
for (const value of family.values)
|
|
125
|
+
xml.empty('xs:enumeration', { value });
|
|
126
|
+
break;
|
|
127
|
+
case 'bounds':
|
|
128
|
+
writeBounds(xml, family, base);
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
xml.close('xs:restriction');
|
|
133
|
+
}
|
|
134
|
+
export function writeConstraint(xml, tag, constraint) {
|
|
135
|
+
xml.open(tag);
|
|
136
|
+
if (constraint.type === 'simpleValue')
|
|
137
|
+
xml.leaf('simpleValue', constraint.value);
|
|
138
|
+
else
|
|
139
|
+
writeRestriction(xml, constraint);
|
|
140
|
+
xml.close(tag);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=constraint.js.map
|