@ifc-lite/ids-authoring 0.0.0-stage → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/headless/write.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAkB3D,wEAAwE;AACxE,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAe,EAAE,OAAgB,EAAE,IAAI,GAAG,EAAE,EAAE,MAAgB,EAAE;IACxF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/E,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,CAAC,GAAG,OAAkC,CAAC;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC3B,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,MAAM,KAAK,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,eAAe,CAAC,GAAgB,EAAE,KAAgB;IAChE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,MAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gDAAgD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACnH,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,mCAAmC,IAAI,CAAC,MAAM,wBAAwB;YAC/E,IAAI;SACL,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,GAAmB,EAAE,KAAgB;IACvE,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,KAAgB;IACrD,IAAI,GAAgB,CAAC;IACrB,IAAI,CAAC;QACH,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Undo/redo history (§4). A history entry is one TRANSACTION: an AI
|
|
3
|
+
* proposal, a paste or a template application is one entry, so a single
|
|
4
|
+
* undo reverts it entirely.
|
|
5
|
+
*
|
|
6
|
+
* Everything here is pure: `commit`, `undo` and `redo` return a new
|
|
7
|
+
* `StudioState`. Entries are plain JSON so a host can persist them (see
|
|
8
|
+
* `PersistenceAdapter`) and undo across a reload.
|
|
9
|
+
*
|
|
10
|
+
* Undo and redo replay exact inverses / recorded primitives of ops that
|
|
11
|
+
* already passed the gate, so they do not consult the gate again.
|
|
12
|
+
*/
|
|
13
|
+
import type { StudioDocument } from '../document/types.js';
|
|
14
|
+
import type { PrimitiveOp, StudioOp } from '../ops/types.js';
|
|
15
|
+
import { type ApplyResult } from '../reducer/apply.js';
|
|
16
|
+
import { type Uuid } from '../uuid.js';
|
|
17
|
+
/** Who or what produced a history entry. */
|
|
18
|
+
export type HistorySource = {
|
|
19
|
+
by: 'user';
|
|
20
|
+
userId?: string;
|
|
21
|
+
} | {
|
|
22
|
+
by: 'ai';
|
|
23
|
+
runId: Uuid;
|
|
24
|
+
model: string;
|
|
25
|
+
} | {
|
|
26
|
+
by: 'import';
|
|
27
|
+
format: 'ids' | 'xlsx' | 'csv' | 'yaml' | 'bsdd' | 'template' | 'infer';
|
|
28
|
+
ref?: string;
|
|
29
|
+
};
|
|
30
|
+
export interface HistoryEntry {
|
|
31
|
+
id: Uuid;
|
|
32
|
+
/** The ops as submitted (compound ops kept as such). */
|
|
33
|
+
ops: StudioOp[];
|
|
34
|
+
/** The primitives actually applied; redo replays these. */
|
|
35
|
+
expanded: PrimitiveOp[];
|
|
36
|
+
/** Undo ops, in apply order. */
|
|
37
|
+
inverses: PrimitiveOp[];
|
|
38
|
+
/** ISO timestamp. */
|
|
39
|
+
at: string;
|
|
40
|
+
source?: HistorySource;
|
|
41
|
+
label?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface History {
|
|
44
|
+
past: HistoryEntry[];
|
|
45
|
+
future: HistoryEntry[];
|
|
46
|
+
}
|
|
47
|
+
export interface StudioState {
|
|
48
|
+
doc: StudioDocument;
|
|
49
|
+
history: History;
|
|
50
|
+
}
|
|
51
|
+
export interface CommitInfo {
|
|
52
|
+
at?: string;
|
|
53
|
+
source?: HistorySource;
|
|
54
|
+
label?: string;
|
|
55
|
+
entryId?: Uuid;
|
|
56
|
+
}
|
|
57
|
+
/** Default number of undo steps kept. */
|
|
58
|
+
export declare const DEFAULT_HISTORY_LIMIT = 500;
|
|
59
|
+
export declare function createStudioState(doc: StudioDocument): StudioState;
|
|
60
|
+
/**
|
|
61
|
+
* Apply `ops` as one history entry. Throws `OpApplyError` (state unchanged)
|
|
62
|
+
* when an op does not apply; run `checkOps` first to get data instead.
|
|
63
|
+
*/
|
|
64
|
+
export declare function commit(state: StudioState, ops: readonly StudioOp[], info?: CommitInfo, limit?: number): {
|
|
65
|
+
state: StudioState;
|
|
66
|
+
result: ApplyResult;
|
|
67
|
+
};
|
|
68
|
+
export declare function canUndo(state: StudioState): boolean;
|
|
69
|
+
export declare function canRedo(state: StudioState): boolean;
|
|
70
|
+
/** Revert the latest entry. Returns `state` unchanged when there is nothing to undo. */
|
|
71
|
+
export declare function undo(state: StudioState): StudioState;
|
|
72
|
+
/** Re-apply the most recently undone entry. */
|
|
73
|
+
export declare function redo(state: StudioState): StudioState;
|
|
74
|
+
/**
|
|
75
|
+
* A transaction collects ops applied step by step (e.g. a drag, or an agent
|
|
76
|
+
* iterating in a sandbox) and commits them as ONE history entry.
|
|
77
|
+
*/
|
|
78
|
+
export interface Transaction {
|
|
79
|
+
/** The document with every op applied so far. */
|
|
80
|
+
readonly doc: StudioDocument;
|
|
81
|
+
readonly ops: readonly StudioOp[];
|
|
82
|
+
/** Apply more ops to the preview; throws `OpApplyError` and keeps the previous preview. */
|
|
83
|
+
apply(ops: readonly StudioOp[]): void;
|
|
84
|
+
/** One history entry for everything applied. */
|
|
85
|
+
commit(info?: CommitInfo): StudioState;
|
|
86
|
+
/** Drop everything; returns the state the transaction started from. */
|
|
87
|
+
rollback(): StudioState;
|
|
88
|
+
}
|
|
89
|
+
export declare function beginTransaction(state: StudioState): Transaction;
|
|
90
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/history/history.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5G,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,IAAI,CAAC;IACT,wDAAwD;IACxD,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,2DAA2D;IAC3D,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gCAAgC;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,CAElE;AAED;;;GAGG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,SAAS,QAAQ,EAAE,EACxB,IAAI,GAAE,UAAe,EACrB,KAAK,SAAwB,GAC5B;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAiB7C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEnD;AAED,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAQpD;AAED,+CAA+C;AAC/C,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAQpD;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,SAAS,QAAQ,EAAE,CAAC;IAClC,2FAA2F;IAC3F,KAAK,CAAC,GAAG,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;IACtC,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACvC,uEAAuE;IACvE,QAAQ,IAAI,WAAW,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAqBhE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 { apply } from '../reducer/apply.js';
|
|
5
|
+
import { uuidv7 } from '../uuid.js';
|
|
6
|
+
/** Default number of undo steps kept. */
|
|
7
|
+
export const DEFAULT_HISTORY_LIMIT = 500;
|
|
8
|
+
export function createStudioState(doc) {
|
|
9
|
+
return { doc, history: { past: [], future: [] } };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Apply `ops` as one history entry. Throws `OpApplyError` (state unchanged)
|
|
13
|
+
* when an op does not apply; run `checkOps` first to get data instead.
|
|
14
|
+
*/
|
|
15
|
+
export function commit(state, ops, info = {}, limit = DEFAULT_HISTORY_LIMIT) {
|
|
16
|
+
const result = apply(state.doc, ops);
|
|
17
|
+
if (result.expanded.length === 0)
|
|
18
|
+
return { state, result };
|
|
19
|
+
const entry = {
|
|
20
|
+
id: info.entryId ?? uuidv7(),
|
|
21
|
+
ops: [...ops],
|
|
22
|
+
expanded: result.expanded,
|
|
23
|
+
inverses: result.inverses,
|
|
24
|
+
at: info.at ?? new Date().toISOString(),
|
|
25
|
+
};
|
|
26
|
+
if (info.source)
|
|
27
|
+
entry.source = info.source;
|
|
28
|
+
if (info.label)
|
|
29
|
+
entry.label = info.label;
|
|
30
|
+
const past = [...state.history.past, entry];
|
|
31
|
+
return {
|
|
32
|
+
state: { doc: result.doc, history: { past: past.slice(Math.max(0, past.length - limit)), future: [] } },
|
|
33
|
+
result,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function canUndo(state) {
|
|
37
|
+
return state.history.past.length > 0;
|
|
38
|
+
}
|
|
39
|
+
export function canRedo(state) {
|
|
40
|
+
return state.history.future.length > 0;
|
|
41
|
+
}
|
|
42
|
+
/** Revert the latest entry. Returns `state` unchanged when there is nothing to undo. */
|
|
43
|
+
export function undo(state) {
|
|
44
|
+
const entry = state.history.past[state.history.past.length - 1];
|
|
45
|
+
if (!entry)
|
|
46
|
+
return state;
|
|
47
|
+
const { doc } = apply(state.doc, entry.inverses);
|
|
48
|
+
return {
|
|
49
|
+
doc,
|
|
50
|
+
history: { past: state.history.past.slice(0, -1), future: [entry, ...state.history.future] },
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** Re-apply the most recently undone entry. */
|
|
54
|
+
export function redo(state) {
|
|
55
|
+
const entry = state.history.future[0];
|
|
56
|
+
if (!entry)
|
|
57
|
+
return state;
|
|
58
|
+
const result = apply(state.doc, entry.expanded);
|
|
59
|
+
return {
|
|
60
|
+
doc: result.doc,
|
|
61
|
+
history: { past: [...state.history.past, { ...entry, inverses: result.inverses }], future: state.history.future.slice(1) },
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function beginTransaction(state) {
|
|
65
|
+
let doc = state.doc;
|
|
66
|
+
const ops = [];
|
|
67
|
+
return {
|
|
68
|
+
get doc() {
|
|
69
|
+
return doc;
|
|
70
|
+
},
|
|
71
|
+
get ops() {
|
|
72
|
+
return ops;
|
|
73
|
+
},
|
|
74
|
+
apply(more) {
|
|
75
|
+
doc = apply(doc, more).doc;
|
|
76
|
+
ops.push(...more);
|
|
77
|
+
},
|
|
78
|
+
commit(info) {
|
|
79
|
+
return commit(state, ops, info).state;
|
|
80
|
+
},
|
|
81
|
+
rollback() {
|
|
82
|
+
return state;
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/history/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { STUDIO_SCHEMA_VERSION } from '../document/types.js';
|
|
2
|
+
import type { Uuid } from '../uuid.js';
|
|
3
|
+
import type { StudioState } from './history.js';
|
|
4
|
+
export declare const PERSISTED_FORMAT = "ifc-lite.ids-studio.state";
|
|
5
|
+
export interface PersistedStudioState {
|
|
6
|
+
format: typeof PERSISTED_FORMAT;
|
|
7
|
+
version: typeof STUDIO_SCHEMA_VERSION;
|
|
8
|
+
savedAt: string;
|
|
9
|
+
state: StudioState;
|
|
10
|
+
}
|
|
11
|
+
export interface PersistedSummary {
|
|
12
|
+
docId: Uuid;
|
|
13
|
+
title: string;
|
|
14
|
+
savedAt: string;
|
|
15
|
+
}
|
|
16
|
+
export interface PersistenceAdapter {
|
|
17
|
+
load(docId: Uuid): Promise<PersistedStudioState | undefined>;
|
|
18
|
+
save(snapshot: PersistedStudioState): Promise<void>;
|
|
19
|
+
remove(docId: Uuid): Promise<void>;
|
|
20
|
+
list(): Promise<PersistedSummary[]>;
|
|
21
|
+
}
|
|
22
|
+
export declare function toPersisted(state: StudioState, savedAt?: string): PersistedStudioState;
|
|
23
|
+
/**
|
|
24
|
+
* Validate an untrusted persisted record and return its state. Throws an
|
|
25
|
+
* `Error` naming the first problem.
|
|
26
|
+
*/
|
|
27
|
+
export declare function fromPersisted(value: unknown): StudioState;
|
|
28
|
+
/**
|
|
29
|
+
* In-memory adapter. Records round-trip through JSON, exactly like a real
|
|
30
|
+
* store, so what loads is never the object that was saved.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createMemoryPersistenceAdapter(): PersistenceAdapter;
|
|
33
|
+
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/history/persistence.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,gBAAgB,CAAC;IAChC,OAAO,EAAE,OAAO,qBAAqB,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACrC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,MAAiC,GAAG,oBAAoB,CAEhH;AAUD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CASzD;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,kBAAkB,CAoBnE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
* Persistence boundary for Studio documents and their history.
|
|
6
|
+
*
|
|
7
|
+
* This package ships only the adapter INTERFACE and an in-memory adapter
|
|
8
|
+
* (tests, CLI, server-side sessions). The viewer provides the IndexedDB
|
|
9
|
+
* implementation (FR-A03); nothing here touches browser storage.
|
|
10
|
+
*
|
|
11
|
+
* Adapters store `PersistedStudioState`, a plain-JSON snapshot. Loading
|
|
12
|
+
* validates the format tag and the node-index invariant, so a corrupt or
|
|
13
|
+
* foreign record is refused instead of producing a document whose ids no
|
|
14
|
+
* longer line up.
|
|
15
|
+
*/
|
|
16
|
+
import { verifyNodeIndex } from '../document/node-index.js';
|
|
17
|
+
import { STUDIO_SCHEMA_VERSION } from '../document/types.js';
|
|
18
|
+
export const PERSISTED_FORMAT = 'ifc-lite.ids-studio.state';
|
|
19
|
+
export function toPersisted(state, savedAt = new Date().toISOString()) {
|
|
20
|
+
return { format: PERSISTED_FORMAT, version: STUDIO_SCHEMA_VERSION, savedAt, state };
|
|
21
|
+
}
|
|
22
|
+
function isRecord(v) {
|
|
23
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
24
|
+
}
|
|
25
|
+
function isHistory(v) {
|
|
26
|
+
return isRecord(v) && Array.isArray(v.past) && Array.isArray(v.future);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validate an untrusted persisted record and return its state. Throws an
|
|
30
|
+
* `Error` naming the first problem.
|
|
31
|
+
*/
|
|
32
|
+
export function fromPersisted(value) {
|
|
33
|
+
if (!isRecord(value) || value.format !== PERSISTED_FORMAT)
|
|
34
|
+
throw new Error('not an IDS Studio state record');
|
|
35
|
+
if (value.version !== STUDIO_SCHEMA_VERSION)
|
|
36
|
+
throw new Error(`unsupported IDS Studio state version ${String(value.version)}`);
|
|
37
|
+
const state = value.state;
|
|
38
|
+
if (!isRecord(state) || !isRecord(state.doc) || !isHistory(state.history))
|
|
39
|
+
throw new Error('IDS Studio state record is incomplete');
|
|
40
|
+
const restored = state;
|
|
41
|
+
const problems = verifyNodeIndex(restored.doc);
|
|
42
|
+
if (problems.length)
|
|
43
|
+
throw new Error(`IDS Studio state has an inconsistent node index: ${problems[0]}`);
|
|
44
|
+
return restored;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* In-memory adapter. Records round-trip through JSON, exactly like a real
|
|
48
|
+
* store, so what loads is never the object that was saved.
|
|
49
|
+
*/
|
|
50
|
+
export function createMemoryPersistenceAdapter() {
|
|
51
|
+
const records = new Map();
|
|
52
|
+
return {
|
|
53
|
+
async load(docId) {
|
|
54
|
+
const json = records.get(docId);
|
|
55
|
+
return json === undefined ? undefined : JSON.parse(json);
|
|
56
|
+
},
|
|
57
|
+
async save(snapshot) {
|
|
58
|
+
records.set(snapshot.state.doc.docId, JSON.stringify(snapshot));
|
|
59
|
+
},
|
|
60
|
+
async remove(docId) {
|
|
61
|
+
records.delete(docId);
|
|
62
|
+
},
|
|
63
|
+
async list() {
|
|
64
|
+
return [...records.values()].map((json) => {
|
|
65
|
+
const s = JSON.parse(json);
|
|
66
|
+
return { docId: s.state.doc.docId, title: s.state.doc.ids.info.title, savedAt: s.savedAt };
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/history/persistence.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ifc-lite/ids-authoring — the headless IDS authoring core.
|
|
3
|
+
*
|
|
4
|
+
* Every authoring surface (UI, AI agent, imports, CLI, MCP) changes an IDS
|
|
5
|
+
* only by dispatching the typed operations defined here. See
|
|
6
|
+
* `docs/architecture/ids-studio/03-architecture/02-document-model-and-ops.md`.
|
|
7
|
+
*/
|
|
8
|
+
export { uuidv7, deriveId, isUuid, type Uuid, type UuidV7Source } from './uuid.js';
|
|
9
|
+
export { STUDIO_SCHEMA_VERSION, type StudioDocument, type NodeIndex, type SpecNodes, type FacetNodes, type NodeKind, type NodeLocation, type Section, type StudioMeta, type Provenance, type SourceSpan, type CommentThread, type Suppression, type CustomPsetDecl, type UserDefinedTypeDecl, type RevisionInfo, } from './document/types.js';
|
|
10
|
+
export type { FacetFieldName } from './document/fields.js';
|
|
11
|
+
export { fromIdsDocument, createStudioDocument, type FromIdsOptions } from './document/from-ids.js';
|
|
12
|
+
export { locateNode, verifyNodeIndex } from './document/node-index.js';
|
|
13
|
+
export { OPS_VERSION, type Op, type StudioOp, type PrimitiveOp, type CompoundOp, type OpKind, type OpOfKind, type Scalar, type XsdBase, type ConstraintDraft, type RawConstraint, type ValueInput, type FacetDraft, type ConstraintIds, type InfoField, type SpecCardinality, type SpecTextField, type SpecPatch, type FacetPatch, type RequirementSnapshot, type OpTemplate, type TemplateOp, type CommentDraft, type BsddClassSnapshot, type BsddEntityRef, type BsddNewSpec, type BsddPropertySelection, type BsddPropertySnapshot, } from './ops/types.js';
|
|
14
|
+
export { OP_KINDS, validateOp, getOpJsonSchema, type OpValidation } from './ops/schema.js';
|
|
15
|
+
export { validateJson, type JsonSchema, type SchemaError } from './ops/json-schema-lite.js';
|
|
16
|
+
export { normaliseValue, facetFromDraft, DraftError } from './ops/draft.js';
|
|
17
|
+
export { apply, OpApplyError, type ApplyResult } from './reducer/apply.js';
|
|
18
|
+
export { checkOps } from './gate/check.js';
|
|
19
|
+
export { createGateContext, type GateContext, type VersionTables } from './gate/context.js';
|
|
20
|
+
export type { GateCode, GateCandidate, GateIssue, GateResult } from './gate/types.js';
|
|
21
|
+
export { createStudioState, commit, undo, redo, canUndo, canRedo, beginTransaction, DEFAULT_HISTORY_LIMIT, type StudioState, type History, type HistoryEntry, type HistorySource, type CommitInfo, type Transaction, } from './history/history.js';
|
|
22
|
+
export { toPersisted, fromPersisted, createMemoryPersistenceAdapter, PERSISTED_FORMAT, type PersistenceAdapter, type PersistedStudioState, type PersistedSummary, } from './history/persistence.js';
|
|
23
|
+
export { createSidecar, serializeSidecar, parseSidecar, attachSidecar, fingerprintIds, SIDECAR_FILENAME, SIDECAR_FORMAT, SIDECAR_SNAPSHOT_VERSION, type StudioSidecar, type SidecarSnapshot, type CreateSidecarOptions, type AttachResult, type AttachOptions, } from './sidecar/sidecar.js';
|
|
24
|
+
export { writeIdsz, readIdsz, type IdszContent } from './sidecar/idsz.js';
|
|
25
|
+
export { reidentify, type ReidentifyReport, type ReidentifyOptions } from './match/reidentify.js';
|
|
26
|
+
export type { MatchStep, FacetMatchStep } from './match/cascade.js';
|
|
27
|
+
export * from './diff/index.js';
|
|
28
|
+
export * from './merge/index.js';
|
|
29
|
+
export * from './revision/index.js';
|
|
30
|
+
export * from './testing/index.js';
|
|
31
|
+
export { commentThreads, extractMentions, type CommentAnchor, type CommentThreadView, type CommentView, type CommentsView, } from './comments/view.js';
|
|
32
|
+
export { describeFacet } from './render/describe.js';
|
|
33
|
+
export { createLintContext } from './lint/context.js';
|
|
34
|
+
export { createLinter, lintDocument, lintDocsUrl, type Linter, type LinterOptions } from './lint/engine.js';
|
|
35
|
+
export { checkQuickFix } from './lint/fix.js';
|
|
36
|
+
export { LINT_RULES } from './lint/rules/index.js';
|
|
37
|
+
export { explainXsdPattern, type PatternExplanation } from './lint/rules/xsd-regex.js';
|
|
38
|
+
export type { Diagnostic, DocumentRule, FacetView, Finding, LintArea, LintContext, LintOptions, LintResult, LintRule, LintRuleMeta, LintSeverity, QuickFix, RuleInput, SpecRule, SpecView, SuppressedDiagnostic, } from './lint/types.js';
|
|
39
|
+
export { readStudioDocument, studioDocumentFromIds, parseStudioDocument } from './headless/read.js';
|
|
40
|
+
export { formatIds, writeIdsChecked, writeStudioDocument, type IdsWriter, type WriteOutcome, type WriteFailure, type FormatOutcome, } from './headless/write.js';
|
|
41
|
+
export { nodePath } from './headless/node-path.js';
|
|
42
|
+
export { diffIds, type IdsDiff, type IdsDiffEntry, type IdsDiffChange } from './headless/diff.js';
|
|
43
|
+
export { applyOpsGated, type GatedApplyResult } from './headless/apply-gated.js';
|
|
44
|
+
export { searchSchema, describeEntity, describePset, type SchemaKind, type SchemaHit, type SchemaSearchOptions, type EntityDescription, type PsetDescription, } from './headless/schema-lookup.js';
|
|
45
|
+
export { BsddHttpError, BsddUnavailableError, type BsddAllowedValue, type BsddClass, type BsddClassOptions, type BsddClassProperty, type BsddClassRef, type BsddClassSummary, type BsddDictionary, type BsddSearchPage, type BsddSearchQuery, type BsddSource, type BsddStatus, type BsddUriRecord, } from './bsdd/types.js';
|
|
46
|
+
export { createHttpBsddSource, BSDD_API_BASE, type HttpBsddSourceOptions } from './bsdd/http-source.js';
|
|
47
|
+
export { cardFromClass, cardFromSummary, createBsddSearch, initialPickerFilters, type BsddClassCard, type BsddPickerFilters, type BsddPropertyPreview, type BsddSearch, type BsddSearchOptions, type BsddSearchPhase, type BsddSearchState, type BsddSearchTimers, } from './bsdd/picker.js';
|
|
48
|
+
export { bsddInsertOp, entityChoices, snapshotBsddClass, splitRelatedEntity, type BsddInsertMode, type BsddInsertRequest, } from './bsdd/insert.js';
|
|
49
|
+
export { BSDD_DATA_TYPES, BsddMappingError, mapBsddDataType, mapBsddProperty, type BsddDataTypeRule, type BsddMappingNote, type BsddMappingNoteCode, type BsddPropertyMapping, } from './bsdd/mapping.js';
|
|
50
|
+
export { buildClassTree, effectiveProperties, loadClassesWithAncestors, type BsddClassTreeNode, } from './bsdd/dictionary.js';
|
|
51
|
+
export { planDictionaryIds, previewDictionaryIds, type DictionaryIdsInput, type DictionaryIdsOptions, type DictionaryIdsPlan, type DictionaryIdsPreview, type PlannedSpec, } from './bsdd/generator.js';
|
|
52
|
+
export { checkUriHealth, collectDocUris, createBsddUriIndex, URI_HEALTH_TTL_MS, type BsddUriIndex, type DocUri, type UriHealthOptions, type UriHealthReport, } from './bsdd/uri-health.js';
|
|
53
|
+
export { createCachedBsddSource, createMemoryBsddStore, loadUriIndex, type BsddCacheEntry, type BsddCacheKind, type BsddCacheStore, type CachedBsddSource, type CachedBsddSourceOptions, } from './bsdd/cache.js';
|
|
54
|
+
export { createIndexedDbBsddStore, type IndexedDbBsddStoreOptions } from './bsdd/idb-store.js';
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
* @ifc-lite/ids-authoring — the headless IDS authoring core.
|
|
6
|
+
*
|
|
7
|
+
* Every authoring surface (UI, AI agent, imports, CLI, MCP) changes an IDS
|
|
8
|
+
* only by dispatching the typed operations defined here. See
|
|
9
|
+
* `docs/architecture/ids-studio/03-architecture/02-document-model-and-ops.md`.
|
|
10
|
+
*/
|
|
11
|
+
export { uuidv7, deriveId, isUuid } from './uuid.js';
|
|
12
|
+
// Document model (IDS-016)
|
|
13
|
+
export { STUDIO_SCHEMA_VERSION, } from './document/types.js';
|
|
14
|
+
export { fromIdsDocument, createStudioDocument } from './document/from-ids.js';
|
|
15
|
+
export { locateNode, verifyNodeIndex } from './document/node-index.js';
|
|
16
|
+
// Operation vocabulary v1 (IDS-017, IDS-018)
|
|
17
|
+
export { OPS_VERSION, } from './ops/types.js';
|
|
18
|
+
export { OP_KINDS, validateOp, getOpJsonSchema } from './ops/schema.js';
|
|
19
|
+
export { validateJson } from './ops/json-schema-lite.js';
|
|
20
|
+
export { normaliseValue, facetFromDraft, DraftError } from './ops/draft.js';
|
|
21
|
+
// Reducer (IDS-019)
|
|
22
|
+
export { apply, OpApplyError } from './reducer/apply.js';
|
|
23
|
+
// Grounding gate (IDS-021, IDS-022, IDS-023)
|
|
24
|
+
export { checkOps } from './gate/check.js';
|
|
25
|
+
export { createGateContext } from './gate/context.js';
|
|
26
|
+
// History, transactions, persistence boundary (IDS-024)
|
|
27
|
+
export { createStudioState, commit, undo, redo, canUndo, canRedo, beginTransaction, DEFAULT_HISTORY_LIMIT, } from './history/history.js';
|
|
28
|
+
export { toPersisted, fromPersisted, createMemoryPersistenceAdapter, PERSISTED_FORMAT, } from './history/persistence.js';
|
|
29
|
+
// Sidecar and .idsz bundle (IDS-025)
|
|
30
|
+
export { createSidecar, serializeSidecar, parseSidecar, attachSidecar, fingerprintIds, SIDECAR_FILENAME, SIDECAR_FORMAT, SIDECAR_SNAPSHOT_VERSION, } from './sidecar/sidecar.js';
|
|
31
|
+
export { writeIdsz, readIdsz } from './sidecar/idsz.js';
|
|
32
|
+
// Re-identification (IDS-026)
|
|
33
|
+
export { reidentify } from './match/reidentify.js';
|
|
34
|
+
// Semantic diff and plain-language changelog (IDS-104)
|
|
35
|
+
export * from './diff/index.js';
|
|
36
|
+
// Three-way merge and conflict view model (IDS-106)
|
|
37
|
+
export * from './merge/index.js';
|
|
38
|
+
// Revisions, sign-off and hash chain (IDS-107)
|
|
39
|
+
export * from './revision/index.js';
|
|
40
|
+
// IDS test suites: model, runner, JUnit, view model (IDS-110)
|
|
41
|
+
export * from './testing/index.js';
|
|
42
|
+
// Comment threads in the sidecar (IDS-108)
|
|
43
|
+
export { commentThreads, extractMentions, } from './comments/view.js';
|
|
44
|
+
// Plain-language rendering (IDS-027)
|
|
45
|
+
export { describeFacet } from './render/describe.js';
|
|
46
|
+
// Lint engine (IDS-046)
|
|
47
|
+
export { createLintContext } from './lint/context.js';
|
|
48
|
+
export { createLinter, lintDocument, lintDocsUrl } from './lint/engine.js';
|
|
49
|
+
export { checkQuickFix } from './lint/fix.js';
|
|
50
|
+
export { LINT_RULES } from './lint/rules/index.js';
|
|
51
|
+
export { explainXsdPattern } from './lint/rules/xsd-regex.js';
|
|
52
|
+
// Headless surfaces: CLI, MCP, SDK, Flow (IDS-115, IDS-118)
|
|
53
|
+
export { readStudioDocument, studioDocumentFromIds, parseStudioDocument } from './headless/read.js';
|
|
54
|
+
export { formatIds, writeIdsChecked, writeStudioDocument, } from './headless/write.js';
|
|
55
|
+
export { nodePath } from './headless/node-path.js';
|
|
56
|
+
export { diffIds } from './headless/diff.js';
|
|
57
|
+
export { applyOpsGated } from './headless/apply-gated.js';
|
|
58
|
+
export { searchSchema, describeEntity, describePset, } from './headless/schema-lookup.js';
|
|
59
|
+
// bSDD: source port, HTTP client, picker view model (IDS-069)
|
|
60
|
+
export { BsddHttpError, BsddUnavailableError, } from './bsdd/types.js';
|
|
61
|
+
export { createHttpBsddSource, BSDD_API_BASE } from './bsdd/http-source.js';
|
|
62
|
+
export { cardFromClass, cardFromSummary, createBsddSearch, initialPickerFilters, } from './bsdd/picker.js';
|
|
63
|
+
// bSDD class → classification / entity facets (IDS-070)
|
|
64
|
+
export { bsddInsertOp, entityChoices, snapshotBsddClass, splitRelatedEntity, } from './bsdd/insert.js';
|
|
65
|
+
// bSDD property → requirement mapping table (IDS-071)
|
|
66
|
+
export { BSDD_DATA_TYPES, BsddMappingError, mapBsddDataType, mapBsddProperty, } from './bsdd/mapping.js';
|
|
67
|
+
// Dictionary → IDS generator (IDS-072)
|
|
68
|
+
export { buildClassTree, effectiveProperties, loadClassesWithAncestors, } from './bsdd/dictionary.js';
|
|
69
|
+
export { planDictionaryIds, previewDictionaryIds, } from './bsdd/generator.js';
|
|
70
|
+
// bSDD URI health (IDS-073); its lint rules are in LINT_RULES (IDSL-BSDD-001…003), the gate rule is GATE-BSDD-001
|
|
71
|
+
export { checkUriHealth, collectDocUris, createBsddUriIndex, URI_HEALTH_TTL_MS, } from './bsdd/uri-health.js';
|
|
72
|
+
// bSDD offline cache (IDS-074)
|
|
73
|
+
export { createCachedBsddSource, createMemoryBsddStore, loadUriIndex, } from './bsdd/cache.js';
|
|
74
|
+
export { createIndexedDbBsddStore } from './bsdd/idb-store.js';
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BsddUriIndex } from '../bsdd/uri-health.js';
|
|
2
|
+
import type { CustomPsetDecl } from '../document/types.js';
|
|
3
|
+
import { type GateContext } from '../gate/context.js';
|
|
4
|
+
import type { LintContext } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Load the schema tables (once per process) and build a lint context.
|
|
7
|
+
* Pass an existing gate context to share its tables and custom library,
|
|
8
|
+
* and a bSDD URI index (URI health) to enable the IDSL-BSDD rules.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createLintContext(options?: {
|
|
11
|
+
gate?: GateContext;
|
|
12
|
+
custom?: readonly CustomPsetDecl[];
|
|
13
|
+
bsdd?: BsddUriIndex;
|
|
14
|
+
}): Promise<LintContext>;
|
|
15
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/lint/context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAO,GAC5F,OAAO,CAAC,WAAW,CAAC,CAItB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
/** Building a lint context: the schema tables shared with the grounding gate. */
|
|
5
|
+
import { getAttributes } from '@ifc-lite/data';
|
|
6
|
+
import { createGateContext } from '../gate/context.js';
|
|
7
|
+
/**
|
|
8
|
+
* Load the schema tables (once per process) and build a lint context.
|
|
9
|
+
* Pass an existing gate context to share its tables and custom library,
|
|
10
|
+
* and a bSDD URI index (URI health) to enable the IDSL-BSDD rules.
|
|
11
|
+
*/
|
|
12
|
+
export async function createLintContext(options = {}) {
|
|
13
|
+
const gate = options.gate ?? (await createGateContext({ custom: options.custom, bsdd: options.bsdd }));
|
|
14
|
+
const bsdd = options.bsdd ?? gate.bsdd;
|
|
15
|
+
return { gate, attributes: await loadAttributes(), ...(bsdd ? { bsdd } : {}) };
|
|
16
|
+
}
|
|
17
|
+
const VERSIONS = ['IFC2X3', 'IFC4', 'IFC4X3', 'IFC4X3_ADD2'];
|
|
18
|
+
let shared;
|
|
19
|
+
function loadAttributes() {
|
|
20
|
+
const byName = async (v) => new Map((await getAttributes(v)).map((a) => [a.name.toLowerCase(), a]));
|
|
21
|
+
shared ??= Promise.all(VERSIONS.map(byName)).then(([IFC2X3, IFC4, IFC4X3, IFC4X3_ADD2]) => ({ IFC2X3, IFC4, IFC4X3, IFC4X3_ADD2 }));
|
|
22
|
+
return shared;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lint/context.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,iFAAiF;AAEjF,OAAO,EAAE,aAAa,EAAgD,MAAM,gBAAgB,CAAC;AAG7F,OAAO,EAAE,iBAAiB,EAAoB,MAAM,oBAAoB,CAAC;AAGzE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAA2F,EAAE;IAE7F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,MAAM,QAAQ,GAAgC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAE1F,IAAI,MAAsD,CAAC;AAE3D,SAAS,cAAc;IACrB,MAAM,MAAM,GAAG,KAAK,EAAE,CAAmB,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxI,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACpI,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-rule documentation pages (`docs/guide/ids-lint/*`), rendered from
|
|
3
|
+
* the rule metadata so the docs cannot drift from the catalogue. Written
|
|
4
|
+
* by `packages/ids-authoring/scripts/generate-lint-docs.mjs`; a package
|
|
5
|
+
* test fails when the committed pages are stale.
|
|
6
|
+
*/
|
|
7
|
+
import type { LintRule } from './types.js';
|
|
8
|
+
export declare const LINT_DOCS_DIR = "docs/guide/ids-lint";
|
|
9
|
+
export declare const NAV_BEGIN = "# BEGIN GENERATED ids-lint-nav";
|
|
10
|
+
export declare const NAV_END = "# END GENERATED ids-lint-nav";
|
|
11
|
+
/** Severity as the catalogue tables show it: `info (opt-in)` for rules that are off by default. */
|
|
12
|
+
export declare function severityLabel(rule: LintRule): string;
|
|
13
|
+
export declare function pageName(code: string): string;
|
|
14
|
+
/** Every page of `docs/guide/ids-lint/`, keyed by file name. */
|
|
15
|
+
export declare function renderLintDocs(rules: readonly LintRule[]): Map<string, string>;
|
|
16
|
+
/** The generated block of the mkdocs nav (indented for its place under "User Guide"). */
|
|
17
|
+
export declare function renderLintNav(rules: readonly LintRule[], indent?: string): string;
|
|
18
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/lint/docs.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,eAAO,MAAM,SAAS,mCAAmC,CAAC;AAC1D,eAAO,MAAM,OAAO,iCAAiC,CAAC;AAqBtD,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAyED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAI9E;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAAE,MAAM,SAAW,GAAG,MAAM,CAQnF"}
|