@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,233 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* JSON Schema `$defs` for values and raw IDS content (constraints, facets,
|
|
6
|
+
* specifications, node snapshots). The op schemas in `./schema.ts`
|
|
7
|
+
* reference these. Hand-kept in sync with `./types.ts` and
|
|
8
|
+
* `@ifc-lite/ids`' types; `schema.test.ts` round-trips every corpus
|
|
9
|
+
* document through them.
|
|
10
|
+
*/
|
|
11
|
+
import { ALL_FACET_FIELDS } from '../document/fields.js';
|
|
12
|
+
/** Object schema with `additionalProperties: false`. */
|
|
13
|
+
export function obj(properties, required = []) {
|
|
14
|
+
return { type: 'object', properties, required, additionalProperties: false };
|
|
15
|
+
}
|
|
16
|
+
const ref = (name) => ({ $ref: `#/$defs/${name}` });
|
|
17
|
+
const str = { type: 'string' };
|
|
18
|
+
const num = { type: 'number' };
|
|
19
|
+
const int0 = { type: 'integer', minimum: 0 };
|
|
20
|
+
const bool = { type: 'boolean' };
|
|
21
|
+
const uri = { type: 'string', minLength: 1 };
|
|
22
|
+
const DRAFTS = {
|
|
23
|
+
DraftAny: obj({ kind: { const: 'any' } }, ['kind']),
|
|
24
|
+
DraftEquals: obj({ kind: { const: 'equals' }, value: ref('Scalar') }, ['kind', 'value']),
|
|
25
|
+
DraftOneOf: obj({ kind: { const: 'oneOf' }, values: { type: 'array', items: ref('Scalar'), minItems: 1 }, base: ref('XsdBase') }, ['kind', 'values']),
|
|
26
|
+
DraftPattern: obj({ kind: { const: 'pattern' }, pattern: { type: 'string', minLength: 1 }, base: ref('XsdBase') }, [
|
|
27
|
+
'kind',
|
|
28
|
+
'pattern',
|
|
29
|
+
]),
|
|
30
|
+
DraftRange: obj({
|
|
31
|
+
kind: { const: 'range' },
|
|
32
|
+
min: num,
|
|
33
|
+
minInclusive: bool,
|
|
34
|
+
max: num,
|
|
35
|
+
maxInclusive: bool,
|
|
36
|
+
unit: str,
|
|
37
|
+
base: ref('XsdBase'),
|
|
38
|
+
}, ['kind']),
|
|
39
|
+
DraftLength: obj({ kind: { const: 'length' }, exact: int0, min: int0, max: int0 }, ['kind']),
|
|
40
|
+
DraftDigits: obj({ kind: { const: 'digits' }, total: { type: 'integer', minimum: 1 }, fraction: int0 }, ['kind']),
|
|
41
|
+
DraftAll: obj({ kind: { const: 'all' }, of: { type: 'array', items: ref('ConstraintDraft'), minItems: 1 } }, [
|
|
42
|
+
'kind',
|
|
43
|
+
'of',
|
|
44
|
+
]),
|
|
45
|
+
RawConstraint: obj({ kind: { const: 'raw' }, constraint: ref('IDSConstraint') }, ['kind', 'constraint']),
|
|
46
|
+
};
|
|
47
|
+
const DRAFT_NAMES = Object.keys(DRAFTS).filter((n) => n !== 'RawConstraint');
|
|
48
|
+
const conjunct = { type: 'array', items: ref('IDSConstraint') };
|
|
49
|
+
const IDS_CONTENT = {
|
|
50
|
+
IDSSimpleValue: obj({ type: { const: 'simpleValue' }, value: str }, ['type', 'value']),
|
|
51
|
+
IDSPattern: obj({ type: { const: 'pattern' }, pattern: str, base: str, and: conjunct }, ['type', 'pattern']),
|
|
52
|
+
IDSEnumeration: obj({ type: { const: 'enumeration' }, values: { type: 'array', items: str }, base: str, and: conjunct }, [
|
|
53
|
+
'type',
|
|
54
|
+
'values',
|
|
55
|
+
]),
|
|
56
|
+
IDSBounds: obj({
|
|
57
|
+
type: { const: 'bounds' },
|
|
58
|
+
minInclusive: num,
|
|
59
|
+
maxInclusive: num,
|
|
60
|
+
minExclusive: num,
|
|
61
|
+
maxExclusive: num,
|
|
62
|
+
length: num,
|
|
63
|
+
minLength: num,
|
|
64
|
+
maxLength: num,
|
|
65
|
+
totalDigits: num,
|
|
66
|
+
fractionDigits: num,
|
|
67
|
+
base: str,
|
|
68
|
+
and: conjunct,
|
|
69
|
+
unparseableFacets: { type: 'array', items: obj({ facet: str, rawValue: str }, ['facet', 'rawValue']) },
|
|
70
|
+
}, ['type']),
|
|
71
|
+
IDSConstraint: { oneOf: [ref('IDSSimpleValue'), ref('IDSPattern'), ref('IDSEnumeration'), ref('IDSBounds')] },
|
|
72
|
+
IDSEntityFacet: obj({ type: { const: 'entity' }, name: ref('IDSConstraint'), predefinedType: ref('IDSConstraint') }, [
|
|
73
|
+
'type',
|
|
74
|
+
'name',
|
|
75
|
+
]),
|
|
76
|
+
IDSAttributeFacet: obj({ type: { const: 'attribute' }, name: ref('IDSConstraint'), value: ref('IDSConstraint') }, [
|
|
77
|
+
'type',
|
|
78
|
+
'name',
|
|
79
|
+
]),
|
|
80
|
+
IDSPropertyFacet: obj({
|
|
81
|
+
type: { const: 'property' },
|
|
82
|
+
propertySet: ref('IDSConstraint'),
|
|
83
|
+
baseName: ref('IDSConstraint'),
|
|
84
|
+
dataType: ref('IDSConstraint'),
|
|
85
|
+
value: ref('IDSConstraint'),
|
|
86
|
+
uri,
|
|
87
|
+
}, ['type', 'propertySet', 'baseName']),
|
|
88
|
+
IDSClassificationFacet: obj({ type: { const: 'classification' }, system: ref('IDSConstraint'), value: ref('IDSConstraint'), uri }, ['type']),
|
|
89
|
+
IDSMaterialFacet: obj({ type: { const: 'material' }, value: ref('IDSConstraint'), uri }, ['type']),
|
|
90
|
+
IDSPartOfFacet: obj({ type: { const: 'partOf' }, relation: ref('PartOfRelation'), rawRelation: str, entity: ref('IDSEntityFacet') }, ['type', 'relation']),
|
|
91
|
+
IDSFacet: {
|
|
92
|
+
oneOf: [
|
|
93
|
+
ref('IDSEntityFacet'),
|
|
94
|
+
ref('IDSAttributeFacet'),
|
|
95
|
+
ref('IDSPropertyFacet'),
|
|
96
|
+
ref('IDSClassificationFacet'),
|
|
97
|
+
ref('IDSMaterialFacet'),
|
|
98
|
+
ref('IDSPartOfFacet'),
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
IDSRequirement: obj({
|
|
102
|
+
id: str,
|
|
103
|
+
facet: ref('IDSFacet'),
|
|
104
|
+
optionality: ref('Optionality'),
|
|
105
|
+
cardinalityRaw: str,
|
|
106
|
+
description: str,
|
|
107
|
+
instructions: str,
|
|
108
|
+
}, ['id', 'facet', 'optionality']),
|
|
109
|
+
IDSSpecification: obj({
|
|
110
|
+
id: str,
|
|
111
|
+
name: str,
|
|
112
|
+
description: str,
|
|
113
|
+
instructions: str,
|
|
114
|
+
ifcVersions: { type: 'array', items: ref('IfcVersion') },
|
|
115
|
+
ifcVersionRaw: str,
|
|
116
|
+
identifier: str,
|
|
117
|
+
applicability: obj({ facets: { type: 'array', items: ref('IDSFacet') }, cardinality: str }, ['facets']),
|
|
118
|
+
requirements: { type: 'array', items: ref('IDSRequirement') },
|
|
119
|
+
minOccurs: num,
|
|
120
|
+
maxOccurs: { anyOf: [num, { const: 'unbounded' }] },
|
|
121
|
+
}, ['id', 'name', 'ifcVersions', 'applicability', 'requirements']),
|
|
122
|
+
FacetNodes: obj({
|
|
123
|
+
id: ref('Uuid'),
|
|
124
|
+
constraints: obj(Object.fromEntries(ALL_FACET_FIELDS.map((f) => [f, ref('Uuid')]))),
|
|
125
|
+
}, ['id', 'constraints']),
|
|
126
|
+
SpecNodes: obj({
|
|
127
|
+
id: ref('Uuid'),
|
|
128
|
+
applicability: { type: 'array', items: ref('FacetNodes') },
|
|
129
|
+
requirements: { type: 'array', items: ref('FacetNodes') },
|
|
130
|
+
}, ['id', 'applicability', 'requirements']),
|
|
131
|
+
};
|
|
132
|
+
const vi = ref('ValueInput');
|
|
133
|
+
const FACET_DRAFTS = {
|
|
134
|
+
EntityDraft: obj({ type: { const: 'entity' }, name: vi, predefinedType: vi }, ['type', 'name']),
|
|
135
|
+
AttributeDraft: obj({ type: { const: 'attribute' }, name: vi, value: vi }, ['type', 'name']),
|
|
136
|
+
PropertyDraft: obj({ type: { const: 'property' }, propertySet: vi, baseName: vi, dataType: vi, value: vi, uri }, ['type', 'propertySet', 'baseName']),
|
|
137
|
+
ClassificationDraft: obj({ type: { const: 'classification' }, system: vi, value: vi, uri }, ['type']),
|
|
138
|
+
MaterialDraft: obj({ type: { const: 'material' }, value: vi, uri }, ['type']),
|
|
139
|
+
PartOfDraft: obj({
|
|
140
|
+
type: { const: 'partOf' },
|
|
141
|
+
relation: ref('PartOfRelation'),
|
|
142
|
+
entity: obj({ name: vi, predefinedType: vi }, ['name']),
|
|
143
|
+
}, ['type', 'relation']),
|
|
144
|
+
};
|
|
145
|
+
export const VALUE_DEFS = {
|
|
146
|
+
Uuid: { type: 'string', pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' },
|
|
147
|
+
Scalar: { type: ['string', 'number', 'boolean'] },
|
|
148
|
+
XsdBase: {
|
|
149
|
+
enum: [
|
|
150
|
+
'xs:string',
|
|
151
|
+
'xs:boolean',
|
|
152
|
+
'xs:integer',
|
|
153
|
+
'xs:double',
|
|
154
|
+
'xs:decimal',
|
|
155
|
+
'xs:float',
|
|
156
|
+
'xs:date',
|
|
157
|
+
'xs:dateTime',
|
|
158
|
+
'xs:time',
|
|
159
|
+
'xs:duration',
|
|
160
|
+
'xs:anyURI',
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
IfcVersion: { enum: ['IFC2X3', 'IFC4', 'IFC4X3_ADD2', 'IFC4X3'] },
|
|
164
|
+
PartOfRelation: {
|
|
165
|
+
enum: [
|
|
166
|
+
'IfcRelAggregates',
|
|
167
|
+
'IfcRelAssignsToGroup',
|
|
168
|
+
'IfcRelContainedInSpatialStructure',
|
|
169
|
+
'IfcRelNests',
|
|
170
|
+
'IfcRelVoidsElement',
|
|
171
|
+
'IfcRelFillsElement',
|
|
172
|
+
'IfcRelVoidsElement IfcRelFillsElement',
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
Optionality: { enum: ['required', 'optional', 'prohibited'] },
|
|
176
|
+
Section: { enum: ['applicability', 'requirements'] },
|
|
177
|
+
FacetField: { enum: [...ALL_FACET_FIELDS] },
|
|
178
|
+
...DRAFTS,
|
|
179
|
+
ConstraintDraft: { oneOf: DRAFT_NAMES.map(ref) },
|
|
180
|
+
ValueInput: { oneOf: [...DRAFT_NAMES.map(ref), ref('RawConstraint')] },
|
|
181
|
+
...FACET_DRAFTS,
|
|
182
|
+
FacetDraft: { oneOf: Object.keys(FACET_DRAFTS).map(ref) },
|
|
183
|
+
...IDS_CONTENT,
|
|
184
|
+
CommentThread: obj({
|
|
185
|
+
id: { $ref: '#/$defs/Uuid' },
|
|
186
|
+
resolved: { type: 'boolean' },
|
|
187
|
+
comments: {
|
|
188
|
+
type: 'array',
|
|
189
|
+
minItems: 1,
|
|
190
|
+
items: obj({ author: { type: 'string', minLength: 1 }, at: { type: 'string', minLength: 1 }, text: { type: 'string', minLength: 1 } }, [
|
|
191
|
+
'author',
|
|
192
|
+
'at',
|
|
193
|
+
'text',
|
|
194
|
+
]),
|
|
195
|
+
},
|
|
196
|
+
}, ['id', 'resolved', 'comments']),
|
|
197
|
+
TestExpectation: { enum: ['pass', 'fail', 'notApplicable'] },
|
|
198
|
+
TestCase: obj({
|
|
199
|
+
id: { $ref: '#/$defs/Uuid' },
|
|
200
|
+
name: { type: 'string', minLength: 1 },
|
|
201
|
+
fixture: {
|
|
202
|
+
oneOf: [
|
|
203
|
+
obj({
|
|
204
|
+
kind: { const: 'synthetic' },
|
|
205
|
+
recipe: obj({
|
|
206
|
+
generator: { const: 'ids-testgen/1' },
|
|
207
|
+
ifcVersion: { $ref: '#/$defs/IfcVersion' },
|
|
208
|
+
variant: {
|
|
209
|
+
oneOf: [
|
|
210
|
+
obj({ kind: { const: 'pass' } }, ['kind']),
|
|
211
|
+
obj({ kind: { const: 'fail' }, requirementId: { $ref: '#/$defs/Uuid' } }, ['kind', 'requirementId']),
|
|
212
|
+
obj({ kind: { const: 'notApplicable' } }, ['kind']),
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
}, ['generator', 'ifcVersion', 'variant']),
|
|
216
|
+
}, ['kind', 'recipe']),
|
|
217
|
+
obj({ kind: { const: 'snapshot' }, ifcRef: { type: 'string', minLength: 1 }, entityRefs: { type: 'array', items: { type: 'string' } } }, [
|
|
218
|
+
'kind',
|
|
219
|
+
'ifcRef',
|
|
220
|
+
'entityRefs',
|
|
221
|
+
]),
|
|
222
|
+
obj({ kind: { const: 'file' }, path: { type: 'string', minLength: 1 } }, ['kind', 'path']),
|
|
223
|
+
],
|
|
224
|
+
},
|
|
225
|
+
expect: { $ref: '#/$defs/TestExpectation' },
|
|
226
|
+
expectFailureOn: { type: 'array', items: { $ref: '#/$defs/Uuid' } },
|
|
227
|
+
}, ['id', 'name', 'fixture', 'expect']),
|
|
228
|
+
CustomPsetDecl: obj({
|
|
229
|
+
name: { type: 'string', minLength: 1 },
|
|
230
|
+
properties: { type: 'array', items: obj({ name: { type: 'string', minLength: 1 }, dataType: str }, ['name']) },
|
|
231
|
+
}, ['name']),
|
|
232
|
+
};
|
|
233
|
+
//# sourceMappingURL=schema-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-values.js","sourceRoot":"","sources":["../../src/ops/schema-values.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The op contract as JSON Schema — the single source the runtime validator
|
|
3
|
+
* (`validateOp`) interprets and `getOpJsonSchema()` hands to AI tools, MCP
|
|
4
|
+
* and other non-TypeScript callers (§8: the agent's contract cannot drift
|
|
5
|
+
* from the reducer because both read this object).
|
|
6
|
+
*/
|
|
7
|
+
import { type SchemaError } from './json-schema-lite.js';
|
|
8
|
+
import { type OpKind, type StudioOp } from './types.js';
|
|
9
|
+
/** Every op kind of vocabulary v1, in schema order. */
|
|
10
|
+
export declare const OP_KINDS: OpKind[];
|
|
11
|
+
/**
|
|
12
|
+
* The JSON Schema (2020-12) of one op of vocabulary v1. Self-contained
|
|
13
|
+
* (`$defs` included); safe to embed in an AI tool definition.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getOpJsonSchema(): Record<string, unknown>;
|
|
16
|
+
export type OpValidation = {
|
|
17
|
+
ok: true;
|
|
18
|
+
op: StudioOp;
|
|
19
|
+
} | {
|
|
20
|
+
ok: false;
|
|
21
|
+
errors: SchemaError[];
|
|
22
|
+
};
|
|
23
|
+
/** Runtime check of an untrusted value against the op schema. */
|
|
24
|
+
export declare function validateOp(value: unknown): OpValidation;
|
|
25
|
+
/** Validate an arbitrary named `$def` (used for template expansion). */
|
|
26
|
+
export declare function validateAgainstDef(value: unknown, def: string): SchemaError[];
|
|
27
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/ops/schema.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqNrE,uDAAuD;AACvD,eAAO,MAAM,QAAQ,EAA4B,MAAM,EAAE,CAAC;AAiF1D;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzD;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE7F,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAGvD;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAE7E"}
|
|
@@ -0,0 +1,258 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* The op contract as JSON Schema — the single source the runtime validator
|
|
6
|
+
* (`validateOp`) interprets and `getOpJsonSchema()` hands to AI tools, MCP
|
|
7
|
+
* and other non-TypeScript callers (§8: the agent's contract cannot drift
|
|
8
|
+
* from the reducer because both read this object).
|
|
9
|
+
*/
|
|
10
|
+
import { validateJson } from './json-schema-lite.js';
|
|
11
|
+
import { obj, VALUE_DEFS } from './schema-values.js';
|
|
12
|
+
import { OPS_VERSION } from './types.js';
|
|
13
|
+
const ref = (name) => ({ $ref: `#/$defs/${name}` });
|
|
14
|
+
const str = { type: 'string' };
|
|
15
|
+
const nonEmpty = { type: 'string', minLength: 1 };
|
|
16
|
+
const nullableStr = { type: ['string', 'null'] };
|
|
17
|
+
const index = { type: 'integer', minimum: 0 };
|
|
18
|
+
const uuid = ref('Uuid');
|
|
19
|
+
const versions = { type: 'array', items: ref('IfcVersion'), minItems: 1 };
|
|
20
|
+
const scope = { type: 'array', items: uuid };
|
|
21
|
+
const PAYLOADS = {
|
|
22
|
+
'doc.setInfo': obj({
|
|
23
|
+
field: { enum: ['title', 'copyright', 'version', 'description', 'author', 'date', 'purpose', 'milestone'] },
|
|
24
|
+
value: nullableStr,
|
|
25
|
+
}, ['field', 'value']),
|
|
26
|
+
'spec.add': obj({
|
|
27
|
+
specId: uuid,
|
|
28
|
+
index,
|
|
29
|
+
name: str,
|
|
30
|
+
ifcVersions: versions,
|
|
31
|
+
description: str,
|
|
32
|
+
instructions: str,
|
|
33
|
+
identifier: str,
|
|
34
|
+
cardinality: ref('Optionality'),
|
|
35
|
+
}, ['specId', 'name', 'ifcVersions']),
|
|
36
|
+
'spec.remove': obj({ specId: uuid }, ['specId']),
|
|
37
|
+
'spec.duplicate': obj({ specId: uuid, newSpecId: uuid, nameSuffix: str }, ['specId', 'newSpecId']),
|
|
38
|
+
'spec.move': obj({ specId: uuid, toIndex: index }, ['specId', 'toIndex']),
|
|
39
|
+
'spec.set': obj({ specId: uuid, field: { enum: ['name', 'description', 'instructions', 'identifier'] }, value: nullableStr }, ['specId', 'field', 'value']),
|
|
40
|
+
'spec.setCardinality': obj({ specId: uuid, cardinality: ref('Optionality') }, ['specId', 'cardinality']),
|
|
41
|
+
'spec.setIfcVersions': obj({ specId: uuid, versions }, ['specId', 'versions']),
|
|
42
|
+
'spec.restore': obj({ index, spec: ref('IDSSpecification'), nodes: ref('SpecNodes') }, ['index', 'spec', 'nodes']),
|
|
43
|
+
'spec.patch': obj({
|
|
44
|
+
specId: uuid,
|
|
45
|
+
set: obj({
|
|
46
|
+
name: str,
|
|
47
|
+
description: nullableStr,
|
|
48
|
+
instructions: nullableStr,
|
|
49
|
+
identifier: nullableStr,
|
|
50
|
+
ifcVersions: { type: 'array', items: ref('IfcVersion') },
|
|
51
|
+
ifcVersionRaw: nullableStr,
|
|
52
|
+
minOccurs: { type: ['number', 'null'] },
|
|
53
|
+
maxOccurs: { anyOf: [{ type: ['number', 'null'] }, { const: 'unbounded' }] },
|
|
54
|
+
applicabilityCardinality: nullableStr,
|
|
55
|
+
}),
|
|
56
|
+
}, ['specId', 'set']),
|
|
57
|
+
'facet.add': obj({
|
|
58
|
+
specId: uuid,
|
|
59
|
+
section: ref('Section'),
|
|
60
|
+
facetId: uuid,
|
|
61
|
+
index,
|
|
62
|
+
facet: ref('FacetDraft'),
|
|
63
|
+
optionality: ref('Optionality'),
|
|
64
|
+
description: str,
|
|
65
|
+
instructions: str,
|
|
66
|
+
constraintIds: ref('ConstraintIds'),
|
|
67
|
+
}, ['specId', 'section', 'facetId', 'facet']),
|
|
68
|
+
'facet.remove': obj({ facetId: uuid }, ['facetId']),
|
|
69
|
+
'facet.move': obj({ facetId: uuid, toSpecId: uuid, toSection: ref('Section'), toIndex: index }, [
|
|
70
|
+
'facetId',
|
|
71
|
+
'toIndex',
|
|
72
|
+
]),
|
|
73
|
+
'facet.replace': obj({ facetId: uuid, facet: ref('FacetDraft'), constraintIds: ref('ConstraintIds') }, [
|
|
74
|
+
'facetId',
|
|
75
|
+
'facet',
|
|
76
|
+
]),
|
|
77
|
+
'facet.setField': obj({ facetId: uuid, field: ref('FacetField'), value: { anyOf: [ref('ValueInput'), { type: 'null' }] }, constraintId: uuid }, ['facetId', 'field', 'value']),
|
|
78
|
+
'facet.setRelation': obj({ facetId: uuid, relation: ref('PartOfRelation') }, ['facetId', 'relation']),
|
|
79
|
+
'facet.setUri': obj({ facetId: uuid, uri: { type: ['string', 'null'], minLength: 1 } }, ['facetId', 'uri']),
|
|
80
|
+
'facet.restore': obj({
|
|
81
|
+
specId: uuid,
|
|
82
|
+
section: ref('Section'),
|
|
83
|
+
index,
|
|
84
|
+
facet: ref('IDSFacet'),
|
|
85
|
+
requirement: obj({ optionality: ref('Optionality'), cardinalityRaw: str, description: str, instructions: str }, ['optionality']),
|
|
86
|
+
nodes: ref('FacetNodes'),
|
|
87
|
+
}, ['specId', 'section', 'index', 'facet', 'nodes']),
|
|
88
|
+
'facet.patch': obj({
|
|
89
|
+
facetId: uuid,
|
|
90
|
+
set: obj({
|
|
91
|
+
optionality: ref('Optionality'),
|
|
92
|
+
cardinalityRaw: nullableStr,
|
|
93
|
+
description: nullableStr,
|
|
94
|
+
instructions: nullableStr,
|
|
95
|
+
relation: ref('PartOfRelation'),
|
|
96
|
+
rawRelation: nullableStr,
|
|
97
|
+
uri: nullableStr,
|
|
98
|
+
}),
|
|
99
|
+
}, ['facetId', 'set']),
|
|
100
|
+
'requirement.setOptionality': obj({ facetId: uuid, optionality: ref('Optionality') }, ['facetId', 'optionality']),
|
|
101
|
+
'requirement.set': obj({ facetId: uuid, field: { enum: ['description', 'instructions'] }, value: nullableStr }, ['facetId', 'field', 'value']),
|
|
102
|
+
'value.set': obj({ facetId: uuid, field: ref('FacetField'), value: ref('ValueInput'), constraintId: uuid }, [
|
|
103
|
+
'facetId',
|
|
104
|
+
'field',
|
|
105
|
+
'value',
|
|
106
|
+
]),
|
|
107
|
+
'value.addEnumValue': obj({ facetId: uuid, field: ref('FacetField'), value: ref('Scalar'), constraintId: uuid }, [
|
|
108
|
+
'facetId',
|
|
109
|
+
'field',
|
|
110
|
+
'value',
|
|
111
|
+
]),
|
|
112
|
+
'value.removeEnumValue': obj({ facetId: uuid, field: ref('FacetField'), value: ref('Scalar') }, [
|
|
113
|
+
'facetId',
|
|
114
|
+
'field',
|
|
115
|
+
'value',
|
|
116
|
+
]),
|
|
117
|
+
'meta.custom.declarePset': obj({ decl: ref('CustomPsetDecl'), index }, ['decl']),
|
|
118
|
+
'meta.custom.removePset': obj({ name: nonEmpty }, ['name']),
|
|
119
|
+
'meta.custom.declareUserDefinedType': obj({ entity: nonEmpty, value: nonEmpty, index }, ['entity', 'value']),
|
|
120
|
+
'meta.custom.removeUserDefinedType': obj({ entity: nonEmpty, value: nonEmpty }, ['entity', 'value']),
|
|
121
|
+
'meta.comment.add': obj({ nodeId: uuid, threadId: uuid, author: nonEmpty, at: nonEmpty, text: nonEmpty }, [
|
|
122
|
+
'nodeId',
|
|
123
|
+
'threadId',
|
|
124
|
+
'author',
|
|
125
|
+
'at',
|
|
126
|
+
'text',
|
|
127
|
+
]),
|
|
128
|
+
'meta.comment.reply': obj({ threadId: uuid, author: nonEmpty, at: nonEmpty, text: nonEmpty }, ['threadId', 'author', 'at', 'text']),
|
|
129
|
+
'meta.comment.removeReply': obj({ threadId: uuid }, ['threadId']),
|
|
130
|
+
'meta.comment.resolve': obj({ threadId: uuid, resolved: { type: 'boolean' } }, ['threadId', 'resolved']),
|
|
131
|
+
'meta.comment.removeThread': obj({ threadId: uuid }, ['threadId']),
|
|
132
|
+
'meta.comment.restoreThread': obj({ nodeId: uuid, index, thread: ref('CommentThread') }, ['nodeId', 'index', 'thread']),
|
|
133
|
+
'meta.test.add': obj({ specId: uuid, testCase: ref('TestCase'), index }, ['specId', 'testCase']),
|
|
134
|
+
'meta.test.remove': obj({ testId: uuid }, ['testId']),
|
|
135
|
+
'meta.test.restore': obj({ specId: uuid, index, testCase: ref('TestCase') }, ['specId', 'index', 'testCase']),
|
|
136
|
+
'meta.test.setExpectation': obj({ testId: uuid, expect: ref('TestExpectation'), expectFailureOn: { anyOf: [{ type: 'array', items: uuid }, { type: 'null' }] } }, ['testId', 'expect', 'expectFailureOn']),
|
|
137
|
+
'meta.suppress': obj({
|
|
138
|
+
nodeId: uuid,
|
|
139
|
+
// Rule format and a non-blank reason are gate checks (GATE-SUP-001/002),
|
|
140
|
+
// so an inverse can restore an imported suppression exactly.
|
|
141
|
+
suppression: obj({ rule: str, reason: str, by: str, at: str }, ['rule', 'reason', 'at']),
|
|
142
|
+
index,
|
|
143
|
+
}, ['nodeId', 'suppression']),
|
|
144
|
+
'meta.unsuppress': obj({ nodeId: uuid, rule: str, keepEmpty: { type: 'boolean' } }, ['nodeId', 'rule']),
|
|
145
|
+
'bulk.renameProperty': obj({ fromPset: nonEmpty, fromName: nonEmpty, toPset: nonEmpty, toName: nonEmpty, scope }, ['fromPset', 'fromName', 'toPset', 'toName']),
|
|
146
|
+
'bulk.retargetEntity': obj({ from: nonEmpty, to: nonEmpty, scope }, ['from', 'to']),
|
|
147
|
+
'bulk.applyTemplate': obj({ template: ref('OpTemplate'), params: { type: 'object', additionalProperties: str } }, ['template', 'params']),
|
|
148
|
+
'bulk.fromBsddClass': obj({
|
|
149
|
+
classes: { type: 'array', items: ref('BsddClassSnapshot'), minItems: 1 },
|
|
150
|
+
target: {
|
|
151
|
+
oneOf: [
|
|
152
|
+
obj({ specId: uuid }, ['specId']),
|
|
153
|
+
obj({
|
|
154
|
+
newSpec: obj({ specId: uuid, name: nonEmpty, ifcVersions: versions, index, description: str, identifier: str, cardinality: ref('Optionality') }, ['specId', 'name', 'ifcVersions']),
|
|
155
|
+
}, ['newSpec']),
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
classification: obj({ section: ref('Section'), uri: { type: 'boolean' } }, ['section']),
|
|
159
|
+
entity: obj({ section: ref('Section'), entities: { type: 'array', items: nonEmpty, minItems: 1 } }, ['section']),
|
|
160
|
+
properties: obj({
|
|
161
|
+
select: { type: 'array', items: nonEmpty, minItems: 1 },
|
|
162
|
+
optionality: { enum: ['fromClass', 'required', 'optional'] },
|
|
163
|
+
fallbackPropertySet: nonEmpty,
|
|
164
|
+
uri: { type: 'boolean' },
|
|
165
|
+
}, ['select']),
|
|
166
|
+
}, ['classes', 'target']),
|
|
167
|
+
};
|
|
168
|
+
/** Every op kind of vocabulary v1, in schema order. */
|
|
169
|
+
export const OP_KINDS = Object.keys(PAYLOADS);
|
|
170
|
+
const COMPOUND = new Set(['bulk.renameProperty', 'bulk.retargetEntity', 'bulk.applyTemplate', 'bulk.fromBsddClass']);
|
|
171
|
+
function opDefName(kind) {
|
|
172
|
+
return `Op_${kind.replace(/\./g, '_')}`;
|
|
173
|
+
}
|
|
174
|
+
function buildDefs() {
|
|
175
|
+
const defs = { ...VALUE_DEFS };
|
|
176
|
+
defs.ConstraintIds = VALUE_DEFS.FacetNodes.properties?.constraints ?? {};
|
|
177
|
+
for (const kind of OP_KINDS) {
|
|
178
|
+
defs[opDefName(kind)] = obj({ kind: { const: kind }, opId: uuid, payload: PAYLOADS[kind] }, [
|
|
179
|
+
'kind',
|
|
180
|
+
'opId',
|
|
181
|
+
'payload',
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
184
|
+
defs.TemplateOp = {
|
|
185
|
+
type: 'object',
|
|
186
|
+
properties: {
|
|
187
|
+
kind: { enum: OP_KINDS.filter((k) => !COMPOUND.has(k)) },
|
|
188
|
+
payload: { type: 'object' },
|
|
189
|
+
},
|
|
190
|
+
required: ['kind', 'payload'],
|
|
191
|
+
additionalProperties: false,
|
|
192
|
+
};
|
|
193
|
+
defs.OpTemplate = obj({
|
|
194
|
+
id: nonEmpty,
|
|
195
|
+
title: str,
|
|
196
|
+
params: {
|
|
197
|
+
type: 'array',
|
|
198
|
+
items: obj({ name: { type: 'string', pattern: '^[A-Za-z_][A-Za-z0-9_]*$' }, description: str, default: str }, [
|
|
199
|
+
'name',
|
|
200
|
+
]),
|
|
201
|
+
},
|
|
202
|
+
ops: { type: 'array', items: ref('TemplateOp'), minItems: 1 },
|
|
203
|
+
}, ['id', 'params', 'ops']);
|
|
204
|
+
defs.BsddClassSnapshot = obj({
|
|
205
|
+
uri: nonEmpty,
|
|
206
|
+
code: nonEmpty,
|
|
207
|
+
name: str,
|
|
208
|
+
dictionaryUri: nonEmpty,
|
|
209
|
+
dictionaryName: nonEmpty,
|
|
210
|
+
relatedIfcEntities: { type: 'array', items: obj({ entity: nonEmpty, predefinedType: nonEmpty }, ['entity']) },
|
|
211
|
+
properties: { type: 'array', items: ref('BsddPropertySnapshot') },
|
|
212
|
+
}, ['uri', 'code', 'name', 'dictionaryUri', 'dictionaryName']);
|
|
213
|
+
const num = { type: 'number' };
|
|
214
|
+
defs.BsddPropertySnapshot = obj({
|
|
215
|
+
code: nonEmpty,
|
|
216
|
+
name: str,
|
|
217
|
+
uri: nonEmpty,
|
|
218
|
+
propertySet: nonEmpty,
|
|
219
|
+
dataType: nonEmpty,
|
|
220
|
+
propertyValueKind: nonEmpty,
|
|
221
|
+
dimension: nonEmpty,
|
|
222
|
+
units: { type: 'array', items: nonEmpty },
|
|
223
|
+
allowedValues: { type: 'array', items: obj({ code: nonEmpty, value: str }, ['code']) },
|
|
224
|
+
minInclusive: num,
|
|
225
|
+
maxInclusive: num,
|
|
226
|
+
minExclusive: num,
|
|
227
|
+
maxExclusive: num,
|
|
228
|
+
pattern: nonEmpty,
|
|
229
|
+
isRequired: { type: 'boolean' },
|
|
230
|
+
standardDataType: nonEmpty,
|
|
231
|
+
}, ['code']);
|
|
232
|
+
defs.StudioOp = { oneOf: OP_KINDS.map((k) => ref(opDefName(k))) };
|
|
233
|
+
return defs;
|
|
234
|
+
}
|
|
235
|
+
const DEFS = buildDefs();
|
|
236
|
+
/**
|
|
237
|
+
* The JSON Schema (2020-12) of one op of vocabulary v1. Self-contained
|
|
238
|
+
* (`$defs` included); safe to embed in an AI tool definition.
|
|
239
|
+
*/
|
|
240
|
+
export function getOpJsonSchema() {
|
|
241
|
+
return {
|
|
242
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
243
|
+
$id: `https://ifclite.dev/schemas/ids-authoring/ops-v${OPS_VERSION}.json`,
|
|
244
|
+
title: `IDS Studio operation (opsVersion ${OPS_VERSION})`,
|
|
245
|
+
...structuredClone(DEFS.StudioOp),
|
|
246
|
+
$defs: structuredClone(DEFS),
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/** Runtime check of an untrusted value against the op schema. */
|
|
250
|
+
export function validateOp(value) {
|
|
251
|
+
const errors = validateJson(value, DEFS.StudioOp, DEFS);
|
|
252
|
+
return errors.length === 0 ? { ok: true, op: value } : { ok: false, errors };
|
|
253
|
+
}
|
|
254
|
+
/** Validate an arbitrary named `$def` (used for template expansion). */
|
|
255
|
+
export function validateAgainstDef(value, def) {
|
|
256
|
+
return validateJson(value, ref(def), DEFS);
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/ops/schema.ts"],"names":[],"mappings":"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"}
|