@ifc-lite/ids-authoring 0.0.0-stage → 0.2.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/LICENSE +373 -0
- package/README.md +469 -2
- package/dist/bsdd/cache.d.ts +37 -0
- package/dist/bsdd/cache.d.ts.map +1 -0
- package/dist/bsdd/cache.js +116 -0
- package/dist/bsdd/cache.js.map +1 -0
- package/dist/bsdd/contract.d.ts +31 -0
- package/dist/bsdd/contract.d.ts.map +1 -0
- package/dist/bsdd/contract.js +185 -0
- package/dist/bsdd/contract.js.map +1 -0
- package/dist/bsdd/dictionary.d.ts +42 -0
- package/dist/bsdd/dictionary.d.ts.map +1 -0
- package/dist/bsdd/dictionary.js +115 -0
- package/dist/bsdd/dictionary.js.map +1 -0
- package/dist/bsdd/generator.d.ts +82 -0
- package/dist/bsdd/generator.d.ts.map +1 -0
- package/dist/bsdd/generator.js +155 -0
- package/dist/bsdd/generator.js.map +1 -0
- package/dist/bsdd/http-source.d.ts +15 -0
- package/dist/bsdd/http-source.d.ts.map +1 -0
- package/dist/bsdd/http-source.js +196 -0
- package/dist/bsdd/http-source.js.map +1 -0
- package/dist/bsdd/idb-store.d.ts +16 -0
- package/dist/bsdd/idb-store.d.ts.map +1 -0
- package/dist/bsdd/idb-store.js +58 -0
- package/dist/bsdd/idb-store.js.map +1 -0
- package/dist/bsdd/insert.d.ts +55 -0
- package/dist/bsdd/insert.d.ts.map +1 -0
- package/dist/bsdd/insert.js +105 -0
- package/dist/bsdd/insert.js.map +1 -0
- package/dist/bsdd/mapping.d.ts +62 -0
- package/dist/bsdd/mapping.d.ts.map +1 -0
- package/dist/bsdd/mapping.js +163 -0
- package/dist/bsdd/mapping.js.map +1 -0
- package/dist/bsdd/picker.d.ts +91 -0
- package/dist/bsdd/picker.d.ts.map +1 -0
- package/dist/bsdd/picker.js +151 -0
- package/dist/bsdd/picker.js.map +1 -0
- package/dist/bsdd/types.d.ts +162 -0
- package/dist/bsdd/types.d.ts.map +1 -0
- package/dist/bsdd/types.js +26 -0
- package/dist/bsdd/types.js.map +1 -0
- package/dist/bsdd/uri-health.d.ts +65 -0
- package/dist/bsdd/uri-health.d.ts.map +1 -0
- package/dist/bsdd/uri-health.js +110 -0
- package/dist/bsdd/uri-health.js.map +1 -0
- package/dist/canonical-json.d.ts +7 -0
- package/dist/canonical-json.d.ts.map +1 -0
- package/dist/canonical-json.js +20 -0
- package/dist/canonical-json.js.map +1 -0
- package/dist/comments/view.d.ts +37 -0
- package/dist/comments/view.d.ts.map +1 -0
- package/dist/comments/view.js +61 -0
- package/dist/comments/view.js.map +1 -0
- package/dist/compound/expand.d.ts +5 -0
- package/dist/compound/expand.d.ts.map +1 -0
- package/dist/compound/expand.js +135 -0
- package/dist/compound/expand.js.map +1 -0
- package/dist/compound/from-bsdd.d.ts +9 -0
- package/dist/compound/from-bsdd.d.ts.map +1 -0
- package/dist/compound/from-bsdd.js +166 -0
- package/dist/compound/from-bsdd.js.map +1 -0
- package/dist/diff/align.d.ts +42 -0
- package/dist/diff/align.d.ts.map +1 -0
- package/dist/diff/align.js +78 -0
- package/dist/diff/align.js.map +1 -0
- package/dist/diff/changelog-text.d.ts +39 -0
- package/dist/diff/changelog-text.d.ts.map +1 -0
- package/dist/diff/changelog-text.js +120 -0
- package/dist/diff/changelog-text.js.map +1 -0
- package/dist/diff/changelog.d.ts +28 -0
- package/dist/diff/changelog.d.ts.map +1 -0
- package/dist/diff/changelog.js +173 -0
- package/dist/diff/changelog.js.map +1 -0
- package/dist/diff/compare.d.ts +25 -0
- package/dist/diff/compare.d.ts.map +1 -0
- package/dist/diff/compare.js +150 -0
- package/dist/diff/compare.js.map +1 -0
- package/dist/diff/diff.d.ts +13 -0
- package/dist/diff/diff.d.ts.map +1 -0
- package/dist/diff/diff.js +140 -0
- package/dist/diff/diff.js.map +1 -0
- package/dist/diff/index.d.ts +5 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +7 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/patch.d.ts +10 -0
- package/dist/diff/patch.d.ts.map +1 -0
- package/dist/diff/patch.js +177 -0
- package/dist/diff/patch.js.map +1 -0
- package/dist/diff/types.d.ts +201 -0
- package/dist/diff/types.d.ts.map +1 -0
- package/dist/diff/types.js +5 -0
- package/dist/diff/types.js.map +1 -0
- package/dist/document/fields.d.ts +33 -0
- package/dist/document/fields.d.ts.map +1 -0
- package/dist/document/fields.js +117 -0
- package/dist/document/fields.js.map +1 -0
- package/dist/document/from-ids.d.ts +32 -0
- package/dist/document/from-ids.d.ts.map +1 -0
- package/dist/document/from-ids.js +47 -0
- package/dist/document/from-ids.js.map +1 -0
- package/dist/document/node-index.d.ts +32 -0
- package/dist/document/node-index.d.ts.map +1 -0
- package/dist/document/node-index.js +127 -0
- package/dist/document/node-index.js.map +1 -0
- package/dist/document/types.d.ts +170 -0
- package/dist/document/types.d.ts.map +1 -0
- package/dist/document/types.js +19 -0
- package/dist/document/types.js.map +1 -0
- package/dist/gate/bsdd.d.ts +12 -0
- package/dist/gate/bsdd.d.ts.map +1 -0
- package/dist/gate/bsdd.js +17 -0
- package/dist/gate/bsdd.js.map +1 -0
- package/dist/gate/check.d.ts +6 -0
- package/dist/gate/check.d.ts.map +1 -0
- package/dist/gate/check.js +125 -0
- package/dist/gate/check.js.map +1 -0
- package/dist/gate/context.d.ts +51 -0
- package/dist/gate/context.d.ts.map +1 -0
- package/dist/gate/context.js +74 -0
- package/dist/gate/context.js.map +1 -0
- package/dist/gate/grounding-pset.d.ts +5 -0
- package/dist/gate/grounding-pset.d.ts.map +1 -0
- package/dist/gate/grounding-pset.js +179 -0
- package/dist/gate/grounding-pset.js.map +1 -0
- package/dist/gate/grounding.d.ts +48 -0
- package/dist/gate/grounding.d.ts.map +1 -0
- package/dist/gate/grounding.js +146 -0
- package/dist/gate/grounding.js.map +1 -0
- package/dist/gate/rank.d.ts +28 -0
- package/dist/gate/rank.d.ts.map +1 -0
- package/dist/gate/rank.js +68 -0
- package/dist/gate/rank.js.map +1 -0
- package/dist/gate/structural.d.ts +43 -0
- package/dist/gate/structural.d.ts.map +1 -0
- package/dist/gate/structural.js +175 -0
- package/dist/gate/structural.js.map +1 -0
- package/dist/gate/types.d.ts +45 -0
- package/dist/gate/types.d.ts.map +1 -0
- package/dist/gate/types.js +5 -0
- package/dist/gate/types.js.map +1 -0
- package/dist/gate/values.d.ts +19 -0
- package/dist/gate/values.d.ts.map +1 -0
- package/dist/gate/values.js +124 -0
- package/dist/gate/values.js.map +1 -0
- package/dist/headless/apply-gated.d.ts +32 -0
- package/dist/headless/apply-gated.d.ts.map +1 -0
- package/dist/headless/apply-gated.js +26 -0
- package/dist/headless/apply-gated.js.map +1 -0
- package/dist/headless/diff.d.ts +41 -0
- package/dist/headless/diff.d.ts.map +1 -0
- package/dist/headless/diff.js +116 -0
- package/dist/headless/diff.js.map +1 -0
- package/dist/headless/node-path.d.ts +10 -0
- package/dist/headless/node-path.d.ts.map +1 -0
- package/dist/headless/node-path.js +24 -0
- package/dist/headless/node-path.js.map +1 -0
- package/dist/headless/read.d.ts +26 -0
- package/dist/headless/read.d.ts.map +1 -0
- package/dist/headless/read.js +78 -0
- package/dist/headless/read.js.map +1 -0
- package/dist/headless/schema-lookup.d.ts +52 -0
- package/dist/headless/schema-lookup.d.ts.map +1 -0
- package/dist/headless/schema-lookup.js +77 -0
- package/dist/headless/schema-lookup.js.map +1 -0
- package/dist/headless/write.d.ts +46 -0
- package/dist/headless/write.d.ts.map +1 -0
- package/dist/headless/write.js +103 -0
- package/dist/headless/write.js.map +1 -0
- package/dist/history/history.d.ts +90 -0
- package/dist/history/history.d.ts.map +1 -0
- package/dist/history/history.js +86 -0
- package/dist/history/history.js.map +1 -0
- package/dist/history/persistence.d.ts +33 -0
- package/dist/history/persistence.d.ts.map +1 -0
- package/dist/history/persistence.js +71 -0
- package/dist/history/persistence.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/lint/context.d.ts +15 -0
- package/dist/lint/context.d.ts.map +1 -0
- package/dist/lint/context.js +24 -0
- package/dist/lint/context.js.map +1 -0
- package/dist/lint/docs.d.ts +18 -0
- package/dist/lint/docs.d.ts.map +1 -0
- package/dist/lint/docs.js +117 -0
- package/dist/lint/docs.js.map +1 -0
- package/dist/lint/engine.d.ts +21 -0
- package/dist/lint/engine.d.ts.map +1 -0
- package/dist/lint/engine.js +123 -0
- package/dist/lint/engine.js.map +1 -0
- package/dist/lint/fix.d.ts +27 -0
- package/dist/lint/fix.d.ts.map +1 -0
- package/dist/lint/fix.js +22 -0
- package/dist/lint/fix.js.map +1 -0
- package/dist/lint/precision.d.ts +51 -0
- package/dist/lint/precision.d.ts.map +1 -0
- package/dist/lint/precision.js +64 -0
- package/dist/lint/precision.js.map +1 -0
- package/dist/lint/rules/bsdd.d.ts +5 -0
- package/dist/lint/rules/bsdd.d.ts.map +1 -0
- package/dist/lint/rules/bsdd.js +123 -0
- package/dist/lint/rules/bsdd.js.map +1 -0
- package/dist/lint/rules/card.d.ts +10 -0
- package/dist/lint/rules/card.d.ts.map +1 -0
- package/dist/lint/rules/card.js +140 -0
- package/dist/lint/rules/card.js.map +1 -0
- package/dist/lint/rules/doc-ver-part.d.ts +7 -0
- package/dist/lint/rules/doc-ver-part.d.ts.map +1 -0
- package/dist/lint/rules/doc-ver-part.js +155 -0
- package/dist/lint/rules/doc-ver-part.js.map +1 -0
- package/dist/lint/rules/entity.d.ts +12 -0
- package/dist/lint/rules/entity.d.ts.map +1 -0
- package/dist/lint/rules/entity.js +215 -0
- package/dist/lint/rules/entity.js.map +1 -0
- package/dist/lint/rules/index.d.ts +4 -0
- package/dist/lint/rules/index.d.ts.map +1 -0
- package/dist/lint/rules/index.js +63 -0
- package/dist/lint/rules/index.js.map +1 -0
- package/dist/lint/rules/pdt-att.d.ts +7 -0
- package/dist/lint/rules/pdt-att.d.ts.map +1 -0
- package/dist/lint/rules/pdt-att.js +209 -0
- package/dist/lint/rules/pdt-att.js.map +1 -0
- package/dist/lint/rules/pset.d.ts +12 -0
- package/dist/lint/rules/pset.d.ts.map +1 -0
- package/dist/lint/rules/pset.js +263 -0
- package/dist/lint/rules/pset.js.map +1 -0
- package/dist/lint/rules/regex.d.ts +6 -0
- package/dist/lint/rules/regex.d.ts.map +1 -0
- package/dist/lint/rules/regex.js +184 -0
- package/dist/lint/rules/regex.js.map +1 -0
- package/dist/lint/rules/spec-doc.d.ts +5 -0
- package/dist/lint/rules/spec-doc.d.ts.map +1 -0
- package/dist/lint/rules/spec-doc.js +132 -0
- package/dist/lint/rules/spec-doc.js.map +1 -0
- package/dist/lint/rules/spec.d.ts +24 -0
- package/dist/lint/rules/spec.d.ts.map +1 -0
- package/dist/lint/rules/spec.js +162 -0
- package/dist/lint/rules/spec.js.map +1 -0
- package/dist/lint/rules/units.d.ts +4 -0
- package/dist/lint/rules/units.d.ts.map +1 -0
- package/dist/lint/rules/units.js +101 -0
- package/dist/lint/rules/units.js.map +1 -0
- package/dist/lint/rules/util.d.ts +37 -0
- package/dist/lint/rules/util.d.ts.map +1 -0
- package/dist/lint/rules/util.js +117 -0
- package/dist/lint/rules/util.js.map +1 -0
- package/dist/lint/rules/value-sites.d.ts +28 -0
- package/dist/lint/rules/value-sites.d.ts.map +1 -0
- package/dist/lint/rules/value-sites.js +81 -0
- package/dist/lint/rules/value-sites.js.map +1 -0
- package/dist/lint/rules/values.d.ts +22 -0
- package/dist/lint/rules/values.d.ts.map +1 -0
- package/dist/lint/rules/values.js +237 -0
- package/dist/lint/rules/values.js.map +1 -0
- package/dist/lint/rules/xsd-regex.d.ts +34 -0
- package/dist/lint/rules/xsd-regex.d.ts.map +1 -0
- package/dist/lint/rules/xsd-regex.js +149 -0
- package/dist/lint/rules/xsd-regex.js.map +1 -0
- package/dist/lint/solver/sample.d.ts +3 -0
- package/dist/lint/solver/sample.d.ts.map +1 -0
- package/dist/lint/solver/sample.js +134 -0
- package/dist/lint/solver/sample.js.map +1 -0
- package/dist/lint/solver/solver.d.ts +39 -0
- package/dist/lint/solver/solver.d.ts.map +1 -0
- package/dist/lint/solver/solver.js +126 -0
- package/dist/lint/solver/solver.js.map +1 -0
- package/dist/lint/suppress.d.ts +12 -0
- package/dist/lint/suppress.d.ts.map +1 -0
- package/dist/lint/suppress.js +56 -0
- package/dist/lint/suppress.js.map +1 -0
- package/dist/lint/types.d.ts +162 -0
- package/dist/lint/types.d.ts.map +1 -0
- package/dist/lint/types.js +5 -0
- package/dist/lint/types.js.map +1 -0
- package/dist/lint/walk.d.ts +20 -0
- package/dist/lint/walk.d.ts.map +1 -0
- package/dist/lint/walk.js +47 -0
- package/dist/lint/walk.js.map +1 -0
- package/dist/match/cascade.d.ts +53 -0
- package/dist/match/cascade.d.ts.map +1 -0
- package/dist/match/cascade.js +135 -0
- package/dist/match/cascade.js.map +1 -0
- package/dist/match/reidentify.d.ts +46 -0
- package/dist/match/reidentify.d.ts.map +1 -0
- package/dist/match/reidentify.js +67 -0
- package/dist/match/reidentify.js.map +1 -0
- package/dist/merge/comments.d.ts +13 -0
- package/dist/merge/comments.d.ts.map +1 -0
- package/dist/merge/comments.js +61 -0
- package/dist/merge/comments.js.map +1 -0
- package/dist/merge/index.d.ts +4 -0
- package/dist/merge/index.d.ts.map +1 -0
- package/dist/merge/index.js +6 -0
- package/dist/merge/index.js.map +1 -0
- package/dist/merge/keys.d.ts +22 -0
- package/dist/merge/keys.d.ts.map +1 -0
- package/dist/merge/keys.js +54 -0
- package/dist/merge/keys.js.map +1 -0
- package/dist/merge/merge.d.ts +8 -0
- package/dist/merge/merge.d.ts.map +1 -0
- package/dist/merge/merge.js +206 -0
- package/dist/merge/merge.js.map +1 -0
- package/dist/merge/order.d.ts +11 -0
- package/dist/merge/order.d.ts.map +1 -0
- package/dist/merge/order.js +117 -0
- package/dist/merge/order.js.map +1 -0
- package/dist/merge/sidecar.d.ts +12 -0
- package/dist/merge/sidecar.d.ts.map +1 -0
- package/dist/merge/sidecar.js +64 -0
- package/dist/merge/sidecar.js.map +1 -0
- package/dist/merge/types.d.ts +50 -0
- package/dist/merge/types.d.ts.map +1 -0
- package/dist/merge/types.js +5 -0
- package/dist/merge/types.js.map +1 -0
- package/dist/merge/view.d.ts +28 -0
- package/dist/merge/view.d.ts.map +1 -0
- package/dist/merge/view.js +35 -0
- package/dist/merge/view.js.map +1 -0
- package/dist/ops/draft.d.ts +33 -0
- package/dist/ops/draft.d.ts.map +1 -0
- package/dist/ops/draft.js +253 -0
- package/dist/ops/draft.js.map +1 -0
- package/dist/ops/json-schema-lite.d.ts +41 -0
- package/dist/ops/json-schema-lite.d.ts.map +1 -0
- package/dist/ops/json-schema-lite.js +119 -0
- package/dist/ops/json-schema-lite.js.map +1 -0
- package/dist/ops/schema-values.d.ts +5 -0
- package/dist/ops/schema-values.d.ts.map +1 -0
- package/dist/ops/schema-values.js +233 -0
- package/dist/ops/schema-values.js.map +1 -0
- package/dist/ops/schema.d.ts +27 -0
- package/dist/ops/schema.d.ts.map +1 -0
- package/dist/ops/schema.js +258 -0
- package/dist/ops/schema.js.map +1 -0
- package/dist/ops/sidecar-ops.d.ts +85 -0
- package/dist/ops/sidecar-ops.d.ts.map +1 -0
- package/dist/ops/sidecar-ops.js +5 -0
- package/dist/ops/sidecar-ops.js.map +1 -0
- package/dist/ops/types.d.ts +400 -0
- package/dist/ops/types.d.ts.map +1 -0
- package/dist/ops/types.js +5 -0
- package/dist/ops/types.js.map +1 -0
- package/dist/ops/units.d.ts +4 -0
- package/dist/ops/units.d.ts.map +1 -0
- package/dist/ops/units.js +75 -0
- package/dist/ops/units.js.map +1 -0
- package/dist/reducer/apply.d.ts +33 -0
- package/dist/reducer/apply.d.ts.map +1 -0
- package/dist/reducer/apply.js +123 -0
- package/dist/reducer/apply.js.map +1 -0
- package/dist/reducer/comment-ops.d.ts +18 -0
- package/dist/reducer/comment-ops.d.ts.map +1 -0
- package/dist/reducer/comment-ops.js +104 -0
- package/dist/reducer/comment-ops.js.map +1 -0
- package/dist/reducer/edit.d.ts +38 -0
- package/dist/reducer/edit.d.ts.map +1 -0
- package/dist/reducer/edit.js +126 -0
- package/dist/reducer/edit.js.map +1 -0
- package/dist/reducer/facet-ops.d.ts +20 -0
- package/dist/reducer/facet-ops.d.ts.map +1 -0
- package/dist/reducer/facet-ops.js +184 -0
- package/dist/reducer/facet-ops.js.map +1 -0
- package/dist/reducer/meta-ops.d.ts +20 -0
- package/dist/reducer/meta-ops.d.ts.map +1 -0
- package/dist/reducer/meta-ops.js +52 -0
- package/dist/reducer/meta-ops.js.map +1 -0
- package/dist/reducer/spec-ops.d.ts +29 -0
- package/dist/reducer/spec-ops.d.ts.map +1 -0
- package/dist/reducer/spec-ops.js +181 -0
- package/dist/reducer/spec-ops.js.map +1 -0
- package/dist/reducer/test-ops.d.ts +15 -0
- package/dist/reducer/test-ops.d.ts.map +1 -0
- package/dist/reducer/test-ops.js +90 -0
- package/dist/reducer/test-ops.js.map +1 -0
- package/dist/reducer/value-ops.d.ts +26 -0
- package/dist/reducer/value-ops.d.ts.map +1 -0
- package/dist/reducer/value-ops.js +173 -0
- package/dist/reducer/value-ops.js.map +1 -0
- package/dist/render/describe.d.ts +20 -0
- package/dist/render/describe.d.ts.map +1 -0
- package/dist/render/describe.js +47 -0
- package/dist/render/describe.js.map +1 -0
- package/dist/revision/index.d.ts +4 -0
- package/dist/revision/index.d.ts.map +1 -0
- package/dist/revision/index.js +7 -0
- package/dist/revision/index.js.map +1 -0
- package/dist/revision/revision.d.ts +79 -0
- package/dist/revision/revision.d.ts.map +1 -0
- package/dist/revision/revision.js +120 -0
- package/dist/revision/revision.js.map +1 -0
- package/dist/revision/sha256.d.ts +3 -0
- package/dist/revision/sha256.d.ts.map +1 -0
- package/dist/revision/sha256.js +69 -0
- package/dist/revision/sha256.js.map +1 -0
- package/dist/revision/verify.d.ts +21 -0
- package/dist/revision/verify.d.ts.map +1 -0
- package/dist/revision/verify.js +51 -0
- package/dist/revision/verify.js.map +1 -0
- package/dist/revision/view.d.ts +36 -0
- package/dist/revision/view.d.ts.map +1 -0
- package/dist/revision/view.js +32 -0
- package/dist/revision/view.js.map +1 -0
- package/dist/sidecar/idsz.d.ts +14 -0
- package/dist/sidecar/idsz.d.ts.map +1 -0
- package/dist/sidecar/idsz.js +58 -0
- package/dist/sidecar/idsz.js.map +1 -0
- package/dist/sidecar/sidecar-schema.d.ts +4 -0
- package/dist/sidecar/sidecar-schema.d.ts.map +1 -0
- package/dist/sidecar/sidecar-schema.js +69 -0
- package/dist/sidecar/sidecar-schema.js.map +1 -0
- package/dist/sidecar/sidecar.d.ts +102 -0
- package/dist/sidecar/sidecar.d.ts.map +1 -0
- package/dist/sidecar/sidecar.js +160 -0
- package/dist/sidecar/sidecar.js.map +1 -0
- package/dist/testing/index.d.ts +6 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/junit.d.ts +10 -0
- package/dist/testing/junit.d.ts.map +1 -0
- package/dist/testing/junit.js +51 -0
- package/dist/testing/junit.js.map +1 -0
- package/dist/testing/outcome.d.ts +10 -0
- package/dist/testing/outcome.d.ts.map +1 -0
- package/dist/testing/outcome.js +22 -0
- package/dist/testing/outcome.js.map +1 -0
- package/dist/testing/runner.d.ts +72 -0
- package/dist/testing/runner.d.ts.map +1 -0
- package/dist/testing/runner.js +60 -0
- package/dist/testing/runner.js.map +1 -0
- package/dist/testing/types.d.ts +60 -0
- package/dist/testing/types.d.ts.map +1 -0
- package/dist/testing/types.js +5 -0
- package/dist/testing/types.js.map +1 -0
- package/dist/testing/view.d.ts +31 -0
- package/dist/testing/view.d.ts.map +1 -0
- package/dist/testing/view.js +30 -0
- package/dist/testing/view.js.map +1 -0
- package/dist/uuid.d.ts +39 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +84 -0
- package/dist/uuid.js.map +1 -0
- package/package.json +56 -3
|
@@ -0,0 +1,63 @@
|
|
|
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 { ENT_001, ENT_002, ENT_003, ENT_004, ENT_005 } from './entity.js';
|
|
5
|
+
import { ATT_001, ATT_002, PDT_001, PDT_002, PDT_003 } from './pdt-att.js';
|
|
6
|
+
import { DOC_001, PART_001, VER_001 } from './doc-ver-part.js';
|
|
7
|
+
import { CARD_001, CARD_002, CARD_003, CARD_004 } from './card.js';
|
|
8
|
+
import { SPEC_001, SPEC_002, SPEC_003, SPEC_007, SPEC_008 } from './spec.js';
|
|
9
|
+
import { SPEC_005, SPEC_006, SPEC_009 } from './spec-doc.js';
|
|
10
|
+
import { REGEX_001, REGEX_002, REGEX_003, REGEX_004 } from './regex.js';
|
|
11
|
+
import { UNIT_001, VAL_008 } from './units.js';
|
|
12
|
+
import { VAL_001, VAL_002, VAL_003, VAL_004, VAL_005, VAL_006 } from './values.js';
|
|
13
|
+
import { PROP_001, PROP_002, PROP_003, PSET_001, PSET_002, PSET_003 } from './pset.js';
|
|
14
|
+
import { BSDD_001, BSDD_002, BSDD_003 } from './bsdd.js';
|
|
15
|
+
export const LINT_RULES = [
|
|
16
|
+
ENT_001,
|
|
17
|
+
ENT_002,
|
|
18
|
+
ENT_003,
|
|
19
|
+
ENT_004,
|
|
20
|
+
ENT_005,
|
|
21
|
+
PDT_001,
|
|
22
|
+
PDT_002,
|
|
23
|
+
PDT_003,
|
|
24
|
+
ATT_001,
|
|
25
|
+
ATT_002,
|
|
26
|
+
PSET_001,
|
|
27
|
+
PSET_002,
|
|
28
|
+
PSET_003,
|
|
29
|
+
PROP_001,
|
|
30
|
+
PROP_002,
|
|
31
|
+
PROP_003,
|
|
32
|
+
VAL_001,
|
|
33
|
+
VAL_002,
|
|
34
|
+
VAL_003,
|
|
35
|
+
VAL_004,
|
|
36
|
+
VAL_005,
|
|
37
|
+
VAL_006,
|
|
38
|
+
VAL_008,
|
|
39
|
+
UNIT_001,
|
|
40
|
+
REGEX_001,
|
|
41
|
+
REGEX_002,
|
|
42
|
+
REGEX_003,
|
|
43
|
+
REGEX_004,
|
|
44
|
+
CARD_001,
|
|
45
|
+
CARD_002,
|
|
46
|
+
CARD_003,
|
|
47
|
+
CARD_004,
|
|
48
|
+
SPEC_001,
|
|
49
|
+
SPEC_002,
|
|
50
|
+
SPEC_003,
|
|
51
|
+
SPEC_005,
|
|
52
|
+
SPEC_006,
|
|
53
|
+
SPEC_007,
|
|
54
|
+
SPEC_008,
|
|
55
|
+
SPEC_009,
|
|
56
|
+
DOC_001,
|
|
57
|
+
VER_001,
|
|
58
|
+
PART_001,
|
|
59
|
+
BSDD_001,
|
|
60
|
+
BSDD_002,
|
|
61
|
+
BSDD_003,
|
|
62
|
+
];
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAK/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SpecRule } from '../types.js';
|
|
2
|
+
export declare const PDT_001: SpecRule;
|
|
3
|
+
export declare const PDT_003: SpecRule;
|
|
4
|
+
export declare const PDT_002: SpecRule;
|
|
5
|
+
export declare const ATT_001: SpecRule;
|
|
6
|
+
export declare const ATT_002: SpecRule;
|
|
7
|
+
//# sourceMappingURL=pdt-att.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdt-att.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/pdt-att.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAwB,QAAQ,EAAY,MAAM,aAAa,CAAC;AAgD5E,eAAO,MAAM,OAAO,EAAE,QAoBrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QA2BrB,CAAC;AAUF,eAAO,MAAM,OAAO,EAAE,QAqCrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QAoCrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QAgCrB,CAAC"}
|
|
@@ -0,0 +1,209 @@
|
|
|
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 { inheritanceChain } from '../../gate/context.js';
|
|
5
|
+
import { rankCandidates } from '../../gate/rank.js';
|
|
6
|
+
import { fixIds, quickFix } from '../fix.js';
|
|
7
|
+
import { at } from '../walk.js';
|
|
8
|
+
import { setValues } from './entity.js';
|
|
9
|
+
import { applicabilityEntityNames, entityNameSites, gated, literals, single, tables } from './util.js';
|
|
10
|
+
/** Predefined-type literals outside the entity's enumeration, per site. */
|
|
11
|
+
function pdtProblems(spec, ctx, declared) {
|
|
12
|
+
const out = [];
|
|
13
|
+
for (const site of entityNameSites(spec)) {
|
|
14
|
+
const name = single(site.constraint);
|
|
15
|
+
if (!name || !site.pdt)
|
|
16
|
+
continue;
|
|
17
|
+
for (const value of literals(site.pdt)) {
|
|
18
|
+
for (const v of spec.versions) {
|
|
19
|
+
const info = tables(ctx, v).entities.get(name.toUpperCase());
|
|
20
|
+
if (!info || info.predefinedTypes.length === 0 || info.predefinedTypes.includes(value))
|
|
21
|
+
continue;
|
|
22
|
+
if (declared(info.name, value))
|
|
23
|
+
continue;
|
|
24
|
+
out.push({ site, entity: info.name, value, enumeration: info.predefinedTypes, userDefinable: info.predefinedTypes.includes('USERDEFINED') });
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
function pdtField(field) {
|
|
32
|
+
return field === 'entity.name' ? 'entity.predefinedType' : 'partOf.entity.predefinedType';
|
|
33
|
+
}
|
|
34
|
+
function nearest(p, code, n) {
|
|
35
|
+
const field = pdtField(p.site.field);
|
|
36
|
+
const ranked = rankCandidates(p.value, p.enumeration, { minScore: 0.4, limit: n });
|
|
37
|
+
const exactCase = p.enumeration.find((e) => e.toUpperCase() === p.value.toUpperCase());
|
|
38
|
+
const picks = exactCase ? [exactCase] : ranked.map((c) => c.value);
|
|
39
|
+
return picks.map((pick) => quickFix(`Use ${pick}`, code, p.site.view.facetId, `${field}|${p.value}|${pick}`, [
|
|
40
|
+
setValues(p.site.view.facetId, field, literals(p.site.pdt).map((v) => (v === p.value ? pick : v))),
|
|
41
|
+
]));
|
|
42
|
+
}
|
|
43
|
+
export const PDT_001 = {
|
|
44
|
+
code: 'IDSL-PDT-001',
|
|
45
|
+
area: 'PDT',
|
|
46
|
+
scope: 'spec',
|
|
47
|
+
kind: 'static',
|
|
48
|
+
defaultSeverity: 'error',
|
|
49
|
+
title: 'Predefined type not in the entity enumeration',
|
|
50
|
+
rationale: "The predefinedType is not a member of the entity's PredefinedType enumeration in this IFC version, and the enumeration has no USERDEFINED member, so no element can carry it. Predefined types are compared case-sensitively.",
|
|
51
|
+
fix: 'Replace it by the closest enumeration value.',
|
|
52
|
+
example: '<entity><name><simpleValue>IFCSITE</simpleValue></name><predefinedType><simpleValue>FOO</simpleValue></predefinedType></entity>',
|
|
53
|
+
check(spec, { ctx, doc }) {
|
|
54
|
+
return pdtProblems(spec, ctx, () => false)
|
|
55
|
+
.filter((p) => !p.userDefinable)
|
|
56
|
+
.map((p) => ({
|
|
57
|
+
...at(p.site.view, pdtField(p.site.field)),
|
|
58
|
+
message: `"${p.value}" is not a predefined type of ${p.entity}`,
|
|
59
|
+
fixes: gated(doc, ctx, nearest(p, this.code, 3)),
|
|
60
|
+
}));
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export const PDT_003 = {
|
|
64
|
+
code: 'IDSL-PDT-003',
|
|
65
|
+
area: 'PDT',
|
|
66
|
+
scope: 'spec',
|
|
67
|
+
kind: 'static',
|
|
68
|
+
defaultSeverity: 'info',
|
|
69
|
+
title: 'Undeclared user-defined predefined type',
|
|
70
|
+
rationale: 'The value is not in the PredefinedType enumeration, but the enumeration has USERDEFINED, so IDS matches it against the ObjectType (occurrences) or ElementType / ProcessType (types) of elements whose PredefinedType is USERDEFINED. That is valid (buildingSMART corpus: entity/pass-a_predefined_type_may_specify_a_user_defined_object_type), but it is also what a typo of an enumeration value looks like. Declaring it records that it is intentional.',
|
|
71
|
+
fix: 'Replace it by the closest enumeration value, or declare it as a user-defined type in the Studio sidecar.',
|
|
72
|
+
example: '<entity><name><simpleValue>IFCWALL</simpleValue></name><predefinedType><simpleValue>PARAPETT</simpleValue></predefinedType></entity>',
|
|
73
|
+
check(spec, { ctx, doc }) {
|
|
74
|
+
const decls = doc.meta.custom.userDefinedTypes;
|
|
75
|
+
const declared = (entity, value) => decls.some((d) => d.entity.toUpperCase() === entity.toUpperCase() && d.value.toUpperCase() === value.toUpperCase());
|
|
76
|
+
return pdtProblems(spec, ctx, declared)
|
|
77
|
+
.filter((p) => p.userDefinable)
|
|
78
|
+
.map((p) => {
|
|
79
|
+
const declare = quickFix(`Declare "${p.value}" as a user-defined type of ${p.entity}`, this.code, p.site.view.facetId, `declare|${p.value}`, [
|
|
80
|
+
{ kind: 'meta.custom.declareUserDefinedType', payload: { entity: p.entity, value: p.value } },
|
|
81
|
+
]);
|
|
82
|
+
return {
|
|
83
|
+
...at(p.site.view, pdtField(p.site.field)),
|
|
84
|
+
message: `"${p.value}" is not a predefined type of ${p.entity}; it only matches user-defined types`,
|
|
85
|
+
fixes: gated(doc, ctx, [...nearest(p, this.code, 2), declare]),
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
/** The attribute holding a user-defined type for `entity`. */
|
|
91
|
+
function userTypeAttribute(ctx, versions, entity) {
|
|
92
|
+
for (const attr of ['ObjectType', 'ElementType', 'ProcessType']) {
|
|
93
|
+
if (versions.every((v) => inheritanceChain(tables(ctx, v), entity).some((e) => e.attributes.includes(attr))))
|
|
94
|
+
return attr;
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
export const PDT_002 = {
|
|
99
|
+
code: 'IDSL-PDT-002',
|
|
100
|
+
area: 'PDT',
|
|
101
|
+
scope: 'spec',
|
|
102
|
+
kind: 'static',
|
|
103
|
+
defaultSeverity: 'info',
|
|
104
|
+
title: 'USERDEFINED predefined type without an ObjectType requirement',
|
|
105
|
+
rationale: 'An element with PredefinedType USERDEFINED is meant to say what it is in ObjectType (ElementType for types, ProcessType for process types). A specification that selects USERDEFINED elements without requiring that attribute accepts elements that never say what they are (IDS issues #178, #447).',
|
|
106
|
+
fix: 'Add a requirement that the ObjectType (or ElementType / ProcessType) attribute is present.',
|
|
107
|
+
references: ['https://github.com/buildingSMART/IDS/issues/178', 'https://github.com/buildingSMART/IDS/issues/447'],
|
|
108
|
+
example: '<entity><name><simpleValue>IFCWALL</simpleValue></name><predefinedType><simpleValue>USERDEFINED</simpleValue></predefinedType></entity>',
|
|
109
|
+
check(spec, { ctx, doc }) {
|
|
110
|
+
const out = [];
|
|
111
|
+
const attrs = new Set([...spec.applicability, ...spec.requirements].flatMap((f) => (f.facet.type === 'attribute' ? literals(f.facet.name).map((n) => n.toLowerCase()) : [])));
|
|
112
|
+
for (const view of spec.applicability) {
|
|
113
|
+
if (view.facet.type !== 'entity' || !literals(view.facet.predefinedType).includes('USERDEFINED'))
|
|
114
|
+
continue;
|
|
115
|
+
const entity = single(view.facet.name);
|
|
116
|
+
const attr = entity ? userTypeAttribute(ctx, spec.versions, entity) : undefined;
|
|
117
|
+
if (!attr || attrs.has(attr.toLowerCase()))
|
|
118
|
+
continue;
|
|
119
|
+
const fix = quickFix(`Require ${attr}`, this.code, view.facetId, attr, [
|
|
120
|
+
{
|
|
121
|
+
kind: 'facet.add',
|
|
122
|
+
payload: {
|
|
123
|
+
specId: spec.specId,
|
|
124
|
+
section: 'requirements',
|
|
125
|
+
facetId: fixIds(this.code, view.facetId, 'facet')(),
|
|
126
|
+
facet: { type: 'attribute', name: { kind: 'equals', value: attr } },
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
]);
|
|
130
|
+
out.push({ ...at(view, 'entity.predefinedType'), message: `USERDEFINED elements are selected but ${attr} is not required`, fixes: gated(doc, ctx, [fix]) });
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
export const ATT_001 = {
|
|
136
|
+
code: 'IDSL-ATT-001',
|
|
137
|
+
area: 'ATT',
|
|
138
|
+
scope: 'spec',
|
|
139
|
+
kind: 'static',
|
|
140
|
+
defaultSeverity: 'error',
|
|
141
|
+
title: 'Attribute not defined on the entity',
|
|
142
|
+
rationale: 'The attribute does not exist on any applicability entity, including inherited attributes, so an attribute requirement always fails and an attribute applicability selects nothing. Attribute names are the EXPRESS names (Name, Description, ObjectType, Tag, …).',
|
|
143
|
+
fix: 'Replace it by the closest attribute of the entity.',
|
|
144
|
+
example: '<entity><name><simpleValue>IFCWALL</simpleValue></name></entity> + <attribute><name><simpleValue>Nmae</simpleValue></name></attribute>',
|
|
145
|
+
check(spec, { ctx, doc }) {
|
|
146
|
+
const entities = applicabilityEntityNames(spec);
|
|
147
|
+
if (!entities.length)
|
|
148
|
+
return [];
|
|
149
|
+
const out = [];
|
|
150
|
+
for (const view of [...spec.applicability, ...spec.requirements]) {
|
|
151
|
+
if (view.facet.type !== 'attribute')
|
|
152
|
+
continue;
|
|
153
|
+
const facet = view.facet;
|
|
154
|
+
for (const name of literals(facet.name)) {
|
|
155
|
+
for (const v of spec.versions) {
|
|
156
|
+
const t = tables(ctx, v);
|
|
157
|
+
const chains = entities.map((e) => inheritanceChain(t, e));
|
|
158
|
+
if (chains.some((c) => c.length === 0))
|
|
159
|
+
continue; // unknown entity: the audit reports it
|
|
160
|
+
const pool = [...new Set(chains.flatMap((c) => c.flatMap((e) => e.attributes)))];
|
|
161
|
+
if (pool.some((a) => a.toLowerCase() === name.toLowerCase()))
|
|
162
|
+
continue;
|
|
163
|
+
const picks = rankCandidates(name, pool, { minScore: 0.4, limit: 3 }).map((c) => c.value);
|
|
164
|
+
const fixes = picks.map((p) => quickFix(`Use ${p}`, this.code, view.facetId, `${name}|${p}`, [setValues(view.facetId, 'attribute.name', literals(facet.name).map((x) => (x === name ? p : x)))]));
|
|
165
|
+
out.push({ ...at(view, 'attribute.name'), message: `attribute "${name}" is not defined on ${chains.map((c) => c[0].name).join(' / ')} (${v})`, fixes: gated(doc, ctx, fixes) });
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return out;
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
export const ATT_002 = {
|
|
174
|
+
code: 'IDSL-ATT-002',
|
|
175
|
+
area: 'ATT',
|
|
176
|
+
scope: 'spec',
|
|
177
|
+
kind: 'static',
|
|
178
|
+
defaultSeverity: 'warning',
|
|
179
|
+
title: 'Value check on an entity-typed attribute',
|
|
180
|
+
rationale: 'The attribute holds a reference to another entity (for example ObjectPlacement or OwnerHistory), not a simple value, so a value constraint on it cannot match. Only its existence can be checked.',
|
|
181
|
+
fix: 'Remove the value so the facet checks existence only.',
|
|
182
|
+
example: '<attribute><name><simpleValue>ObjectPlacement</simpleValue></name><value><simpleValue>x</simpleValue></value></attribute>',
|
|
183
|
+
check(spec, { ctx, doc }) {
|
|
184
|
+
const entities = applicabilityEntityNames(spec);
|
|
185
|
+
if (entities.length !== 1)
|
|
186
|
+
return [];
|
|
187
|
+
const out = [];
|
|
188
|
+
for (const view of [...spec.applicability, ...spec.requirements]) {
|
|
189
|
+
if (view.facet.type !== 'attribute' || !view.facet.value)
|
|
190
|
+
continue;
|
|
191
|
+
const name = single(view.facet.name);
|
|
192
|
+
if (!name)
|
|
193
|
+
continue;
|
|
194
|
+
const complex = spec.versions.find((v) => {
|
|
195
|
+
const meta = ctx.attributes[v].get(name.toLowerCase());
|
|
196
|
+
const chain = inheritanceChain(tables(ctx, v), entities[0]).map((e) => e.name.toUpperCase());
|
|
197
|
+
return !!meta && !chain.some((e) => meta.simpleValueEntities.includes(e)) && chain.some((e) => meta.complexEntities.includes(e));
|
|
198
|
+
});
|
|
199
|
+
if (!complex)
|
|
200
|
+
continue;
|
|
201
|
+
const fix = quickFix('Check existence only', this.code, view.facetId, 'value', [
|
|
202
|
+
{ kind: 'facet.setField', payload: { facetId: view.facetId, field: 'attribute.value', value: null } },
|
|
203
|
+
]);
|
|
204
|
+
out.push({ ...at(view, 'attribute.value'), message: `${name} is an entity-typed attribute in ${complex}; its value cannot be compared`, fixes: gated(doc, ctx, [fix]) });
|
|
205
|
+
}
|
|
206
|
+
return out;
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
//# sourceMappingURL=pdt-att.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdt-att.js","sourceRoot":"","sources":["../../../src/lint/rules/pdt-att.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Property-set and property rules: IDSL-PSET-001 … 003, IDSL-PROP-001 … 003. */
|
|
2
|
+
import type { IfcPropertyInfo } from '@ifc-lite/data';
|
|
3
|
+
import type { SpecRule } from '../types.js';
|
|
4
|
+
export declare const PSET_001: SpecRule;
|
|
5
|
+
export declare const PSET_002: SpecRule;
|
|
6
|
+
export declare const PSET_003: SpecRule;
|
|
7
|
+
export declare const PROP_001: SpecRule;
|
|
8
|
+
/** The standard data type of a property (IfcLabel for enumerations, as the audit). */
|
|
9
|
+
export declare function expectedDataType(prop: IfcPropertyInfo | undefined): string | undefined;
|
|
10
|
+
export declare const PROP_002: SpecRule;
|
|
11
|
+
export declare const PROP_003: SpecRule;
|
|
12
|
+
//# sourceMappingURL=pset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pset.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/pset.ts"],"names":[],"mappings":"AAIA,iFAAiF;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,gBAAgB,CAAC;AAM1E,OAAO,KAAK,EAAmC,QAAQ,EAAY,MAAM,aAAa,CAAC;AAsCvF,eAAO,MAAM,QAAQ,EAAE,QAuCtB,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,QAmCtB,CAAC;AASF,eAAO,MAAM,QAAQ,EAAE,QAgCtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QAgCtB,CAAC;AAUF,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtF;AAED,eAAO,MAAM,QAAQ,EAAE,QA2BtB,CAAC;AAeF,eAAO,MAAM,QAAQ,EAAE,QAuBtB,CAAC"}
|
|
@@ -0,0 +1,263 @@
|
|
|
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 { isReservedPsetName } from '../../gate/grounding-pset.js';
|
|
5
|
+
import { rankCandidates } from '../../gate/rank.js';
|
|
6
|
+
import { quickFix } from '../fix.js';
|
|
7
|
+
import { at } from '../walk.js';
|
|
8
|
+
import { setValues } from './entity.js';
|
|
9
|
+
import { applicabilityEntityNames, gated, isSubtypeOf, listSome, literals, single, tables } from './util.js';
|
|
10
|
+
function propertySites(spec) {
|
|
11
|
+
return [...spec.applicability, ...spec.requirements].flatMap((view) => (view.facet.type === 'property' ? [{ view, facet: view.facet }] : []));
|
|
12
|
+
}
|
|
13
|
+
/** The standard property (and its set) per version, when both names are literals. */
|
|
14
|
+
function standardProperty(t, facet) {
|
|
15
|
+
const psetName = single(facet.propertySet);
|
|
16
|
+
const pset = psetName ? t.psets.get(psetName) : undefined;
|
|
17
|
+
if (!pset)
|
|
18
|
+
return undefined;
|
|
19
|
+
const name = single(facet.baseName);
|
|
20
|
+
return { pset, prop: name ? pset.properties.find((p) => p.name === name) : undefined };
|
|
21
|
+
}
|
|
22
|
+
/** `applicableEntities` plus each class's companion type (mirrors the audit, #1441). */
|
|
23
|
+
function applicableWithTypes(t, pset) {
|
|
24
|
+
const out = new Set(pset.applicableEntities);
|
|
25
|
+
for (const name of pset.applicableEntities) {
|
|
26
|
+
const e = t.entities.get(name.toUpperCase());
|
|
27
|
+
if (e?.typeEntity)
|
|
28
|
+
out.add(e.typeEntity);
|
|
29
|
+
else if (t.entities.has(`${name.toUpperCase()}TYPE`))
|
|
30
|
+
out.add(`${name}Type`);
|
|
31
|
+
}
|
|
32
|
+
return [...out];
|
|
33
|
+
}
|
|
34
|
+
function psetApplies(t, pset, entity) {
|
|
35
|
+
return applicableWithTypes(t, pset).some((a) => isSubtypeOf(t, entity, a));
|
|
36
|
+
}
|
|
37
|
+
export const PSET_001 = {
|
|
38
|
+
code: 'IDSL-PSET-001',
|
|
39
|
+
area: 'PSET',
|
|
40
|
+
scope: 'spec',
|
|
41
|
+
kind: 'static',
|
|
42
|
+
defaultSeverity: 'warning',
|
|
43
|
+
title: 'Standard property set not applicable to the entity',
|
|
44
|
+
rationale: "The standard property set is not defined for any applicability entity (per its applicable entities, including subtypes and companion type objects). Authoring tools will not offer it on those elements, so the requirement is likely to fail on every model. The audit reports the same mismatch; lint adds the applicable alternatives.",
|
|
45
|
+
fix: 'Switch to an applicable standard set that defines the same property.',
|
|
46
|
+
example: '<entity><name><simpleValue>IFCDOOR</simpleValue></name></entity> + <property><propertySet><simpleValue>Pset_WallCommon</simpleValue></propertySet>…',
|
|
47
|
+
check(spec, { ctx, doc }) {
|
|
48
|
+
const entities = applicabilityEntityNames(spec);
|
|
49
|
+
if (!entities.length)
|
|
50
|
+
return [];
|
|
51
|
+
const out = [];
|
|
52
|
+
for (const { view, facet } of propertySites(spec)) {
|
|
53
|
+
const psetName = single(facet.propertySet);
|
|
54
|
+
if (!psetName)
|
|
55
|
+
continue;
|
|
56
|
+
const version = spec.versions.find((v) => {
|
|
57
|
+
const t = tables(ctx, v);
|
|
58
|
+
const pset = t.psets.get(psetName);
|
|
59
|
+
if (!pset || !pset.applicableEntities.length || entities.some((e) => !t.entities.has(e)))
|
|
60
|
+
return false;
|
|
61
|
+
return !entities.some((e) => psetApplies(t, pset, e));
|
|
62
|
+
});
|
|
63
|
+
if (!version)
|
|
64
|
+
continue;
|
|
65
|
+
const t = tables(ctx, version);
|
|
66
|
+
const name = single(facet.baseName);
|
|
67
|
+
const alternatives = name
|
|
68
|
+
? (t.psetsByProperty.get(name) ?? []).filter((p) => p !== psetName && entities.some((e) => psetApplies(t, t.psets.get(p), e))).slice(0, 3)
|
|
69
|
+
: [];
|
|
70
|
+
const fixes = alternatives.map((p) => quickFix(`Use ${p}`, this.code, view.facetId, p, [setValues(view.facetId, 'property.propertySet', [p])]));
|
|
71
|
+
out.push({
|
|
72
|
+
...at(view, 'property.propertySet'),
|
|
73
|
+
message: `${psetName} is not applicable to ${listSome(entities.map((e) => t.entities.get(e)?.name ?? e))} (${version})`,
|
|
74
|
+
fixes: gated(doc, ctx, fixes),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const PROJECT_PREFIX = 'Project_';
|
|
81
|
+
export const PSET_002 = {
|
|
82
|
+
code: 'IDSL-PSET-002',
|
|
83
|
+
area: 'PSET',
|
|
84
|
+
scope: 'spec',
|
|
85
|
+
kind: 'static',
|
|
86
|
+
defaultSeverity: 'error',
|
|
87
|
+
title: 'Custom property set with a reserved prefix',
|
|
88
|
+
rationale: 'The prefixes Pset_ and Qto_ are reserved for sets published by buildingSMART. A set with such a name that is not a standard set of the IFC version is either a typo of a standard name or a custom set that must use its own prefix. (Qto_ names cannot be verified for IFC2X3 and IFC4, whose tables have no quantity sets; they are not flagged.)',
|
|
89
|
+
fix: 'Use the closest standard set, or rename it with a project prefix and declare it as a custom set.',
|
|
90
|
+
example: '<propertySet><simpleValue>Pset_MyCompanyData</simpleValue></propertySet>',
|
|
91
|
+
check(spec, { ctx, doc }) {
|
|
92
|
+
const out = [];
|
|
93
|
+
for (const { view, facet } of propertySites(spec)) {
|
|
94
|
+
const psetName = single(facet.propertySet);
|
|
95
|
+
if (!psetName || !isReservedPsetName(psetName))
|
|
96
|
+
continue;
|
|
97
|
+
const version = spec.versions.find((v) => {
|
|
98
|
+
const t = tables(ctx, v);
|
|
99
|
+
return !t.psets.has(psetName) && !(psetName.startsWith('Qto_') && !t.hasQuantitySets);
|
|
100
|
+
});
|
|
101
|
+
if (!version)
|
|
102
|
+
continue;
|
|
103
|
+
const t = tables(ctx, version);
|
|
104
|
+
const near = rankCandidates(psetName, t.psetNames, { minScore: 0.6, limit: 2 }).map((c) => quickFix(`Use ${c.value}`, this.code, view.facetId, c.value, [setValues(view.facetId, 'property.propertySet', [c.value])]));
|
|
105
|
+
const renamed = PROJECT_PREFIX + psetName.slice(psetName.indexOf('_') + 1);
|
|
106
|
+
const declared = doc.meta.custom.psets.some((p) => p.name === renamed);
|
|
107
|
+
const rename = quickFix(`Rename to ${renamed} (custom set)`, this.code, view.facetId, renamed, [
|
|
108
|
+
...(declared ? [] : [{ kind: 'meta.custom.declarePset', payload: { decl: { name: renamed } } }]),
|
|
109
|
+
setValues(view.facetId, 'property.propertySet', [renamed]),
|
|
110
|
+
]);
|
|
111
|
+
out.push({ ...at(view, 'property.propertySet'), message: `${psetName} uses a reserved prefix but is not a standard set (${version})`, fixes: gated(doc, ctx, [...near, rename]) });
|
|
112
|
+
}
|
|
113
|
+
return out;
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
function backing(t, dataType) {
|
|
117
|
+
return dataType ? t.dataTypes.get(dataType.toUpperCase())?.backingType : undefined;
|
|
118
|
+
}
|
|
119
|
+
const NUMERIC_BACKING = new Set(['xs:double', 'xs:integer', 'xs:decimal', 'xs:float']);
|
|
120
|
+
const NUMBER = /^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;
|
|
121
|
+
export const PSET_003 = {
|
|
122
|
+
code: 'IDSL-PSET-003',
|
|
123
|
+
area: 'PSET',
|
|
124
|
+
scope: 'spec',
|
|
125
|
+
kind: 'static',
|
|
126
|
+
defaultSeverity: 'warning',
|
|
127
|
+
title: 'Quantity set with a non-measure data type or value',
|
|
128
|
+
rationale: 'Quantities (Qto_ sets) are always numeric measures (length, area, volume, count, weight, time). A Qto_ requirement with a text data type such as IFCLABEL, or a non-numeric value, can never be satisfied by a real quantity.',
|
|
129
|
+
fix: "Use the quantity's standard data type (where the tables define it).",
|
|
130
|
+
example: '<property dataType="IFCLABEL"><propertySet><simpleValue>Qto_WallBaseQuantities</simpleValue></propertySet><baseName><simpleValue>Length</simpleValue></baseName></property>',
|
|
131
|
+
check(spec, { ctx, doc }) {
|
|
132
|
+
const out = [];
|
|
133
|
+
for (const { view, facet } of propertySites(spec)) {
|
|
134
|
+
const psetName = single(facet.propertySet);
|
|
135
|
+
if (!psetName?.startsWith('Qto_'))
|
|
136
|
+
continue;
|
|
137
|
+
const dt = single(facet.dataType);
|
|
138
|
+
const t = tables(ctx, spec.versions[0]);
|
|
139
|
+
const b = backing(t, dt);
|
|
140
|
+
if (dt && b && !NUMERIC_BACKING.has(b)) {
|
|
141
|
+
const expected = spec.versions.map((v) => standardProperty(tables(ctx, v), facet)?.prop?.dataType).find(Boolean);
|
|
142
|
+
const fix = expected
|
|
143
|
+
? quickFix(`Use ${expected.toUpperCase()}`, this.code, view.facetId, 'dt', [setValues(view.facetId, 'property.dataType', [expected.toUpperCase()])])
|
|
144
|
+
: undefined;
|
|
145
|
+
out.push({ ...at(view, 'property.dataType'), message: `${psetName} holds numeric quantities, but the data type is ${dt.toUpperCase()} (${b})`, fixes: gated(doc, ctx, [fix]) });
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const text = literals(facet.value).filter((v) => !NUMBER.test(v.trim()));
|
|
149
|
+
if (text.length)
|
|
150
|
+
out.push({ ...at(view, 'property.value'), message: `${psetName} holds numeric quantities, but the value ${text.map((v) => `"${v}"`).join(', ')} is not a number` });
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
export const PROP_001 = {
|
|
156
|
+
code: 'IDSL-PROP-001',
|
|
157
|
+
area: 'PROP',
|
|
158
|
+
scope: 'spec',
|
|
159
|
+
kind: 'static',
|
|
160
|
+
defaultSeverity: 'error',
|
|
161
|
+
title: 'Property not in the standard property set',
|
|
162
|
+
rationale: 'The standard set does not define this property, so no conforming model carries it there. It is usually a typo, or a property that lives in another standard set.',
|
|
163
|
+
fix: 'Use the closest property of the set, or the standard set that defines this property.',
|
|
164
|
+
example: '<propertySet><simpleValue>Pset_DoorCommon</simpleValue></propertySet><baseName><simpleValue>FireRatng</simpleValue></baseName>',
|
|
165
|
+
check(spec, { ctx, doc }) {
|
|
166
|
+
const out = [];
|
|
167
|
+
for (const { view, facet } of propertySites(spec)) {
|
|
168
|
+
const name = single(facet.baseName);
|
|
169
|
+
if (!name)
|
|
170
|
+
continue;
|
|
171
|
+
const version = spec.versions.find((v) => {
|
|
172
|
+
const s = standardProperty(tables(ctx, v), facet);
|
|
173
|
+
return s && !s.prop;
|
|
174
|
+
});
|
|
175
|
+
if (!version)
|
|
176
|
+
continue;
|
|
177
|
+
const t = tables(ctx, version);
|
|
178
|
+
const pset = standardProperty(t, facet)?.pset;
|
|
179
|
+
const own = rankCandidates(name, pset.properties.map((p) => p.name), { minScore: 0.4, limit: 2 }).map((c) => quickFix(`Use ${c.value}`, this.code, view.facetId, c.value, [setValues(view.facetId, 'property.baseName', [c.value])]));
|
|
180
|
+
const elsewhere = (t.psetsByProperty.get(name) ?? []).slice(0, 2).map((p) => quickFix(`Use ${p}.${name}`, this.code, view.facetId, `pset|${p}`, [setValues(view.facetId, 'property.propertySet', [p])]));
|
|
181
|
+
out.push({ ...at(view, 'property.baseName'), message: `"${name}" is not a property of ${pset.name} (${version})`, fixes: gated(doc, ctx, [...own, ...elsewhere]) });
|
|
182
|
+
}
|
|
183
|
+
return out;
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
const TEMPLATE_FOR_KIND = {
|
|
187
|
+
single: 'IFCPROPERTYSINGLEVALUE',
|
|
188
|
+
enumeration: 'IFCPROPERTYENUMERATEDVALUE',
|
|
189
|
+
list: 'IFCPROPERTYLISTVALUE',
|
|
190
|
+
bounded: 'IFCPROPERTYBOUNDEDVALUE',
|
|
191
|
+
reference: 'IFCPROPERTYREFERENCEVALUE',
|
|
192
|
+
};
|
|
193
|
+
/** The standard data type of a property (IfcLabel for enumerations, as the audit). */
|
|
194
|
+
export function expectedDataType(prop) {
|
|
195
|
+
return prop?.dataType ?? (prop?.kind === 'enumeration' ? 'IfcLabel' : undefined);
|
|
196
|
+
}
|
|
197
|
+
export const PROP_002 = {
|
|
198
|
+
code: 'IDSL-PROP-002',
|
|
199
|
+
area: 'PROP',
|
|
200
|
+
scope: 'spec',
|
|
201
|
+
kind: 'static',
|
|
202
|
+
defaultSeverity: 'warning',
|
|
203
|
+
title: 'Data type differs from the standard property',
|
|
204
|
+
rationale: 'The dataType differs from the type the standard property set declares for this property. Conforming models carry the standard type, so the requirement fails on them; value comparison also follows the data type.',
|
|
205
|
+
fix: 'Set the standard data type.',
|
|
206
|
+
example: '<property dataType="IFCREAL"><propertySet><simpleValue>Pset_WallCommon</simpleValue></propertySet><baseName><simpleValue>IsExternal</simpleValue></baseName></property>',
|
|
207
|
+
check(spec, { ctx, doc }) {
|
|
208
|
+
const out = [];
|
|
209
|
+
for (const { view, facet } of propertySites(spec)) {
|
|
210
|
+
const dt = single(facet.dataType)?.toUpperCase();
|
|
211
|
+
if (!dt)
|
|
212
|
+
continue;
|
|
213
|
+
for (const v of spec.versions) {
|
|
214
|
+
const prop = standardProperty(tables(ctx, v), facet)?.prop;
|
|
215
|
+
const expected = expectedDataType(prop)?.toUpperCase();
|
|
216
|
+
if (!prop || !expected || expected === dt || TEMPLATE_FOR_KIND[prop.kind] === dt)
|
|
217
|
+
continue;
|
|
218
|
+
const fix = quickFix(`Use ${expected}`, this.code, view.facetId, expected, [setValues(view.facetId, 'property.dataType', [expected])]);
|
|
219
|
+
out.push({ ...at(view, 'property.dataType'), message: `${single(facet.propertySet)}.${prop.name} is ${expected} in the standard, not ${dt} (${v})`, fixes: gated(doc, ctx, [fix]) });
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return out;
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
function numericLooking(facet) {
|
|
227
|
+
const c = facet.value;
|
|
228
|
+
if (!c)
|
|
229
|
+
return false;
|
|
230
|
+
if (c.type === 'bounds')
|
|
231
|
+
return [c.minInclusive, c.maxInclusive, c.minExclusive, c.maxExclusive].some((x) => x !== undefined);
|
|
232
|
+
return c.type !== 'simpleValue' && !!c.base && NUMERIC_BACKING.has(c.base);
|
|
233
|
+
}
|
|
234
|
+
function standardTypeIn(ctx, versions, facet) {
|
|
235
|
+
const types = new Set(versions.map((v) => expectedDataType(standardProperty(tables(ctx, v), facet)?.prop)?.toUpperCase()));
|
|
236
|
+
const [only] = types;
|
|
237
|
+
return types.size === 1 ? only : undefined;
|
|
238
|
+
}
|
|
239
|
+
export const PROP_003 = {
|
|
240
|
+
code: 'IDSL-PROP-003',
|
|
241
|
+
area: 'PROP',
|
|
242
|
+
scope: 'spec',
|
|
243
|
+
kind: 'static',
|
|
244
|
+
defaultSeverity: 'info',
|
|
245
|
+
title: 'Numeric constraint without a data type',
|
|
246
|
+
rationale: 'The value is a numeric range or a numeric restriction, but the property has no dataType. The data type decides how values are compared (and which unit applies), so checkers may compare such a value as text or skip it.',
|
|
247
|
+
fix: "Add the standard property's data type (when the set is standard).",
|
|
248
|
+
example: '<property><propertySet>…</propertySet><baseName>…</baseName><value><xs:restriction base="xs:double"><xs:minInclusive value="0"/></xs:restriction></value></property>',
|
|
249
|
+
check(spec, { ctx, doc }) {
|
|
250
|
+
const out = [];
|
|
251
|
+
for (const { view, facet } of propertySites(spec)) {
|
|
252
|
+
if (facet.dataType || !numericLooking(facet))
|
|
253
|
+
continue;
|
|
254
|
+
const dt = standardTypeIn(ctx, spec.versions, facet);
|
|
255
|
+
const fix = dt
|
|
256
|
+
? quickFix(`Add dataType ${dt}`, this.code, view.facetId, dt, [{ kind: 'facet.setField', payload: { facetId: view.facetId, field: 'property.dataType', value: { kind: 'equals', value: dt } } }])
|
|
257
|
+
: undefined;
|
|
258
|
+
out.push({ ...at(view, 'property.value'), message: `numeric value on ${single(facet.baseName) ?? 'a property'} without a dataType`, fixes: gated(doc, ctx, [fix]) });
|
|
259
|
+
}
|
|
260
|
+
return out;
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
//# sourceMappingURL=pset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pset.js","sourceRoot":"","sources":["../../../src/lint/rules/pset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/regex.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAsB,QAAQ,EAAY,MAAM,aAAa,CAAC;AAuC1E,eAAO,MAAM,SAAS,EAAE,QAwBvB,CAAC;AAKF,eAAO,MAAM,SAAS,EAAE,QA0BvB,CAAC;AAuCF,eAAO,MAAM,SAAS,EAAE,QA6BvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QAsBvB,CAAC"}
|