@graview/core 0.1.28 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/dist/amount-input.d.ts +21 -0
- package/dist/amount-input.d.ts.map +1 -0
- package/dist/amount-input.js +96 -0
- package/dist/amount-input.js.map +1 -0
- package/dist/answer-seen.d.ts +38 -0
- package/dist/answer-seen.d.ts.map +1 -0
- package/dist/answer-seen.js +122 -0
- package/dist/answer-seen.js.map +1 -0
- package/dist/app-places.d.ts +56 -0
- package/dist/app-places.d.ts.map +1 -0
- package/dist/app-places.js +203 -0
- package/dist/app-places.js.map +1 -0
- package/dist/app.d.ts +16 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/arrange.d.ts +4 -2
- package/dist/arrange.d.ts.map +1 -1
- package/dist/arrange.js +4 -2
- package/dist/arrange.js.map +1 -1
- package/dist/arrangement-words.d.ts +3 -0
- package/dist/arrangement-words.d.ts.map +1 -0
- package/dist/arrangement-words.js +50 -0
- package/dist/arrangement-words.js.map +1 -0
- package/dist/arrangement.d.ts +43 -3
- package/dist/arrangement.d.ts.map +1 -1
- package/dist/arrangement.js +69 -31
- package/dist/arrangement.js.map +1 -1
- package/dist/arranging.d.ts.map +1 -1
- package/dist/arranging.js +36 -14
- package/dist/arranging.js.map +1 -1
- package/dist/bind.d.ts +3 -0
- package/dist/bind.d.ts.map +1 -1
- package/dist/bind.js.map +1 -1
- package/dist/blocks.d.ts +1 -1
- package/dist/blocks.d.ts.map +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/check.d.ts +3 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +3 -0
- package/dist/check.js.map +1 -1
- package/dist/city.d.ts +58 -50
- package/dist/city.d.ts.map +1 -1
- package/dist/city.js +160 -147
- package/dist/city.js.map +1 -1
- package/dist/cli/check/brand.d.ts.map +1 -1
- package/dist/cli/check/brand.js +30 -2
- package/dist/cli/check/brand.js.map +1 -1
- package/dist/cli/check/clock-rules.d.ts +4 -0
- package/dist/cli/check/clock-rules.d.ts.map +1 -0
- package/dist/cli/check/clock-rules.js +26 -0
- package/dist/cli/check/clock-rules.js.map +1 -0
- package/dist/cli/check/field-sight.d.ts +11 -0
- package/dist/cli/check/field-sight.d.ts.map +1 -0
- package/dist/cli/check/field-sight.js +113 -0
- package/dist/cli/check/field-sight.js.map +1 -0
- package/dist/cli/check/index.d.ts +2 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +2 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/lenses.d.ts +1 -1
- package/dist/cli/check/lenses.d.ts.map +1 -1
- package/dist/cli/check/lenses.js +48 -2
- package/dist/cli/check/lenses.js.map +1 -1
- package/dist/cli/check/relations.d.ts +23 -0
- package/dist/cli/check/relations.d.ts.map +1 -1
- package/dist/cli/check/relations.js +55 -4
- package/dist/cli/check/relations.js.map +1 -1
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +7 -4
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +32 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +71 -7
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/docs.d.ts.map +1 -1
- package/dist/cli/docs.js +4 -3
- package/dist/cli/docs.js.map +1 -1
- package/dist/cli/doctor.d.ts +18 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +58 -5
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/document-schema.d.ts +2 -0
- package/dist/cli/document-schema.d.ts.map +1 -1
- package/dist/cli/document-schema.js +154 -5
- package/dist/cli/document-schema.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js +16 -2
- package/dist/cli/types.js.map +1 -1
- package/dist/clock-readers.d.ts +18 -0
- package/dist/clock-readers.d.ts.map +1 -0
- package/dist/clock-readers.js +70 -0
- package/dist/clock-readers.js.map +1 -0
- package/dist/clock.d.ts +30 -0
- package/dist/clock.d.ts.map +1 -0
- package/dist/clock.js +41 -0
- package/dist/clock.js.map +1 -0
- package/dist/columns.d.ts.map +1 -1
- package/dist/columns.js +2 -1
- package/dist/columns.js.map +1 -1
- package/dist/conformance/fixtures.d.ts.map +1 -1
- package/dist/conformance/fixtures.js +491 -43
- package/dist/conformance/fixtures.js.map +1 -1
- package/dist/coverage-words.d.ts +18 -0
- package/dist/coverage-words.d.ts.map +1 -0
- package/dist/coverage-words.js +18 -0
- package/dist/coverage-words.js.map +1 -0
- package/dist/days.d.ts +53 -4
- package/dist/days.d.ts.map +1 -1
- package/dist/days.js +136 -16
- package/dist/days.js.map +1 -1
- package/dist/describe.d.ts +1 -0
- package/dist/describe.d.ts.map +1 -1
- package/dist/describe.js +1 -0
- package/dist/describe.js.map +1 -1
- package/dist/document/act-findings.d.ts.map +1 -1
- package/dist/document/act-findings.js +32 -4
- package/dist/document/act-findings.js.map +1 -1
- package/dist/document/amount.d.ts +4 -0
- package/dist/document/amount.d.ts.map +1 -0
- package/dist/document/amount.js +22 -0
- package/dist/document/amount.js.map +1 -0
- package/dist/document/block-context.d.ts.map +1 -1
- package/dist/document/block-context.js +1 -0
- package/dist/document/block-context.js.map +1 -1
- package/dist/document/blocks.d.ts +33 -10
- package/dist/document/blocks.d.ts.map +1 -1
- package/dist/document/blocks.js +139 -25
- package/dist/document/blocks.js.map +1 -1
- package/dist/document/brand-check.d.ts +5 -0
- package/dist/document/brand-check.d.ts.map +1 -1
- package/dist/document/brand-check.js +16 -2
- package/dist/document/brand-check.js.map +1 -1
- package/dist/document/compile-checked.d.ts.map +1 -1
- package/dist/document/compile-checked.js +12 -4
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compile.d.ts +0 -2
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +49 -24
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +6 -2
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +94 -26
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/computed-values.d.ts +3 -0
- package/dist/document/computed-values.d.ts.map +1 -1
- package/dist/document/computed-values.js +12 -2
- package/dist/document/computed-values.js.map +1 -1
- package/dist/document/describe-coverage.d.ts +3 -0
- package/dist/document/describe-coverage.d.ts.map +1 -1
- package/dist/document/describe-coverage.js +14 -6
- package/dist/document/describe-coverage.js.map +1 -1
- package/dist/document/describe-place.d.ts +6 -2
- package/dist/document/describe-place.d.ts.map +1 -1
- package/dist/document/describe-place.js +17 -9
- package/dist/document/describe-place.js.map +1 -1
- package/dist/document/diff.d.ts +2 -0
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +70 -11
- package/dist/document/diff.js.map +1 -1
- package/dist/document/durations.d.ts +8 -0
- package/dist/document/durations.d.ts.map +1 -0
- package/dist/document/durations.js +82 -0
- package/dist/document/durations.js.map +1 -0
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +436 -27
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +26 -1
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +55 -4
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/field-spec.d.ts.map +1 -1
- package/dist/document/field-spec.js +15 -1
- package/dist/document/field-spec.js.map +1 -1
- package/dist/document/format-findings.d.ts +4 -0
- package/dist/document/format-findings.d.ts.map +1 -0
- package/dist/document/format-findings.js +39 -0
- package/dist/document/format-findings.js.map +1 -0
- package/dist/document/format-rules.d.ts +8 -0
- package/dist/document/format-rules.d.ts.map +1 -0
- package/dist/document/format-rules.js +19 -0
- package/dist/document/format-rules.js.map +1 -0
- package/dist/document/format-words.d.ts +9 -0
- package/dist/document/format-words.d.ts.map +1 -0
- package/dist/document/format-words.js +31 -0
- package/dist/document/format-words.js.map +1 -0
- package/dist/document/framework-path.d.ts +11 -0
- package/dist/document/framework-path.d.ts.map +1 -0
- package/dist/document/framework-path.js +122 -0
- package/dist/document/framework-path.js.map +1 -0
- package/dist/document/graview-template.d.ts +2 -2
- package/dist/document/index.d.ts +2 -2
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/index.js +1 -1
- package/dist/document/index.js.map +1 -1
- package/dist/document/linked-findings.d.ts +5 -0
- package/dist/document/linked-findings.d.ts.map +1 -0
- package/dist/document/linked-findings.js +100 -0
- package/dist/document/linked-findings.js.map +1 -0
- package/dist/document/migrate.d.ts +1 -0
- package/dist/document/migrate.d.ts.map +1 -1
- package/dist/document/migrate.js +48 -1
- package/dist/document/migrate.js.map +1 -1
- package/dist/document/money.d.ts +14 -0
- package/dist/document/money.d.ts.map +1 -0
- package/dist/document/money.js +14 -0
- package/dist/document/money.js.map +1 -0
- package/dist/document/policy-words.d.ts +4 -0
- package/dist/document/policy-words.d.ts.map +1 -1
- package/dist/document/policy-words.js +34 -4
- package/dist/document/policy-words.js.map +1 -1
- package/dist/document/right-names.d.ts +10 -0
- package/dist/document/right-names.d.ts.map +1 -0
- package/dist/document/right-names.js +57 -0
- package/dist/document/right-names.js.map +1 -0
- package/dist/document/rule-line.d.ts.map +1 -1
- package/dist/document/rule-line.js +16 -12
- package/dist/document/rule-line.js.map +1 -1
- package/dist/document/rules.d.ts.map +1 -1
- package/dist/document/rules.js +15 -6
- package/dist/document/rules.js.map +1 -1
- package/dist/document/schema.d.ts +142 -22
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +86 -10
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template-parse.d.ts.map +1 -1
- package/dist/document/template-parse.js +45 -5
- package/dist/document/template-parse.js.map +1 -1
- package/dist/document/template.d.ts +16 -14
- package/dist/document/template.d.ts.map +1 -1
- package/dist/document/template.js +52 -30
- package/dist/document/template.js.map +1 -1
- package/dist/document/thumbnail.d.ts.map +1 -1
- package/dist/document/thumbnail.js +4 -3
- package/dist/document/thumbnail.js.map +1 -1
- package/dist/document/to-document.d.ts +0 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +30 -2
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/view-specs.d.ts.map +1 -1
- package/dist/document/view-specs.js +3 -0
- package/dist/document/view-specs.js.map +1 -1
- package/dist/document/views.d.ts +38 -4
- package/dist/document/views.d.ts.map +1 -1
- package/dist/document/views.js +81 -26
- package/dist/document/views.js.map +1 -1
- package/dist/document.schema.json +1184 -141
- package/dist/excerpt-of.d.ts +14 -0
- package/dist/excerpt-of.d.ts.map +1 -0
- package/dist/excerpt-of.js +120 -0
- package/dist/excerpt-of.js.map +1 -0
- package/dist/excerpt.d.ts +9 -0
- package/dist/excerpt.d.ts.map +1 -0
- package/dist/excerpt.js +43 -0
- package/dist/excerpt.js.map +1 -0
- package/dist/field-sight.d.ts +33 -0
- package/dist/field-sight.d.ts.map +1 -0
- package/dist/field-sight.js +313 -0
- package/dist/field-sight.js.map +1 -0
- package/dist/forms.d.ts +2 -0
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +3 -0
- package/dist/forms.js.map +1 -1
- package/dist/graph/archived.d.ts +34 -0
- package/dist/graph/archived.d.ts.map +1 -0
- package/dist/graph/archived.js +25 -0
- package/dist/graph/archived.js.map +1 -0
- package/dist/graph/diff.d.ts +16 -0
- package/dist/graph/diff.d.ts.map +1 -1
- package/dist/graph/diff.js +20 -1
- package/dist/graph/diff.js.map +1 -1
- package/dist/graph/graph.d.ts +37 -13
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +84 -41
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/tracked.d.ts +8 -8
- package/dist/graph/tracked.d.ts.map +1 -1
- package/dist/graph/tracked.js +15 -20
- package/dist/graph/tracked.js.map +1 -1
- package/dist/graph/types.d.ts +16 -8
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/graph/types.js.map +1 -1
- package/dist/grid-sort.d.ts +20 -0
- package/dist/grid-sort.d.ts.map +1 -0
- package/dist/grid-sort.js +58 -0
- package/dist/grid-sort.js.map +1 -0
- package/dist/history.d.ts +88 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +146 -0
- package/dist/history.js.map +1 -0
- package/dist/import/coerce.d.ts +45 -0
- package/dist/import/coerce.d.ts.map +1 -0
- package/dist/import/coerce.js +252 -0
- package/dist/import/coerce.js.map +1 -0
- package/dist/import/csv.d.ts +16 -0
- package/dist/import/csv.d.ts.map +1 -0
- package/dist/import/csv.js +77 -0
- package/dist/import/csv.js.map +1 -0
- package/dist/import/index.d.ts +17 -0
- package/dist/import/index.d.ts.map +1 -0
- package/dist/import/index.js +13 -0
- package/dist/import/index.js.map +1 -0
- package/dist/import/mapping.d.ts +99 -0
- package/dist/import/mapping.d.ts.map +1 -0
- package/dist/import/mapping.js +182 -0
- package/dist/import/mapping.js.map +1 -0
- package/dist/import/rows.d.ts +116 -0
- package/dist/import/rows.d.ts.map +1 -0
- package/dist/import/rows.js +584 -0
- package/dist/import/rows.js.map +1 -0
- package/dist/index.d.ts +53 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -18
- package/dist/index.js.map +1 -1
- package/dist/invariants/engine.d.ts +5 -1
- package/dist/invariants/engine.d.ts.map +1 -1
- package/dist/invariants/engine.js +4 -3
- package/dist/invariants/engine.js.map +1 -1
- package/dist/invariants/types.d.ts +18 -3
- package/dist/invariants/types.d.ts.map +1 -1
- package/dist/json-schema.d.ts +1 -0
- package/dist/json-schema.d.ts.map +1 -1
- package/dist/json-schema.js +2 -0
- package/dist/json-schema.js.map +1 -1
- package/dist/kind-list.d.ts +78 -0
- package/dist/kind-list.d.ts.map +1 -0
- package/dist/kind-list.js +176 -0
- package/dist/kind-list.js.map +1 -0
- package/dist/labels.d.ts.map +1 -1
- package/dist/labels.js +2 -1
- package/dist/labels.js.map +1 -1
- package/dist/lines.d.ts +1 -0
- package/dist/lines.d.ts.map +1 -1
- package/dist/lines.js +5 -3
- package/dist/lines.js.map +1 -1
- package/dist/linked.d.ts +95 -0
- package/dist/linked.d.ts.map +1 -0
- package/dist/linked.js +181 -0
- package/dist/linked.js.map +1 -0
- package/dist/markdown.d.ts +102 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +460 -0
- package/dist/markdown.js.map +1 -0
- package/dist/mutations/arg-shape.d.ts +95 -0
- package/dist/mutations/arg-shape.d.ts.map +1 -0
- package/dist/mutations/arg-shape.js +101 -0
- package/dist/mutations/arg-shape.js.map +1 -0
- package/dist/mutations/define-mutation.d.ts +48 -2
- package/dist/mutations/define-mutation.d.ts.map +1 -1
- package/dist/mutations/define-mutation.js +103 -36
- package/dist/mutations/define-mutation.js.map +1 -1
- package/dist/mutations/derive-edits.d.ts +16 -1
- package/dist/mutations/derive-edits.d.ts.map +1 -1
- package/dist/mutations/derive-edits.js +146 -56
- package/dist/mutations/derive-edits.js.map +1 -1
- package/dist/mutations/derive-repeats.d.ts +8 -0
- package/dist/mutations/derive-repeats.d.ts.map +1 -0
- package/dist/mutations/derive-repeats.js +118 -0
- package/dist/mutations/derive-repeats.js.map +1 -0
- package/dist/mutations/derived-names.d.ts +22 -0
- package/dist/mutations/derived-names.d.ts.map +1 -0
- package/dist/mutations/derived-names.js +21 -0
- package/dist/mutations/derived-names.js.map +1 -0
- package/dist/mutations/edit-start.d.ts +28 -0
- package/dist/mutations/edit-start.d.ts.map +1 -0
- package/dist/mutations/edit-start.js +24 -0
- package/dist/mutations/edit-start.js.map +1 -0
- package/dist/mutations/form.d.ts +33 -1
- package/dist/mutations/form.d.ts.map +1 -1
- package/dist/mutations/form.js +23 -2
- package/dist/mutations/form.js.map +1 -1
- package/dist/mutations/invalid-arguments.d.ts +14 -0
- package/dist/mutations/invalid-arguments.d.ts.map +1 -0
- package/dist/mutations/invalid-arguments.js +18 -0
- package/dist/mutations/invalid-arguments.js.map +1 -0
- package/dist/mutations/keep-link.d.ts +27 -0
- package/dist/mutations/keep-link.d.ts.map +1 -0
- package/dist/mutations/keep-link.js +56 -0
- package/dist/mutations/keep-link.js.map +1 -0
- package/dist/mutations/kept-arguments.d.ts +26 -0
- package/dist/mutations/kept-arguments.d.ts.map +1 -0
- package/dist/mutations/kept-arguments.js +77 -0
- package/dist/mutations/kept-arguments.js.map +1 -0
- package/dist/mutations/node-ref.d.ts +0 -80
- package/dist/mutations/node-ref.d.ts.map +1 -1
- package/dist/mutations/node-ref.js +0 -93
- package/dist/mutations/node-ref.js.map +1 -1
- package/dist/mutations/types.d.ts +17 -1
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/mutations/words.d.ts +0 -13
- package/dist/mutations/words.d.ts.map +1 -1
- package/dist/mutations/words.js +1 -12
- package/dist/mutations/words.js.map +1 -1
- package/dist/navigate.d.ts +13 -0
- package/dist/navigate.d.ts.map +1 -0
- package/dist/navigate.js +13 -0
- package/dist/navigate.js.map +1 -0
- package/dist/ops/digest.d.ts +33 -0
- package/dist/ops/digest.d.ts.map +1 -0
- package/dist/ops/digest.js +47 -0
- package/dist/ops/digest.js.map +1 -0
- package/dist/ops/kept-fields.d.ts +7 -0
- package/dist/ops/kept-fields.d.ts.map +1 -0
- package/dist/ops/kept-fields.js +24 -0
- package/dist/ops/kept-fields.js.map +1 -0
- package/dist/ops/lineage.d.ts +43 -0
- package/dist/ops/lineage.d.ts.map +1 -0
- package/dist/ops/lineage.js +27 -0
- package/dist/ops/lineage.js.map +1 -0
- package/dist/ops/log.d.ts +6 -0
- package/dist/ops/log.d.ts.map +1 -1
- package/dist/ops/log.js +20 -12
- package/dist/ops/log.js.map +1 -1
- package/dist/ops/provenance.d.ts +68 -0
- package/dist/ops/provenance.d.ts.map +1 -0
- package/dist/ops/provenance.js +83 -0
- package/dist/ops/provenance.js.map +1 -0
- package/dist/ops/suggestions.d.ts +26 -0
- package/dist/ops/suggestions.d.ts.map +1 -0
- package/dist/ops/suggestions.js +21 -0
- package/dist/ops/suggestions.js.map +1 -0
- package/dist/ops/tidying.d.ts +48 -0
- package/dist/ops/tidying.d.ts.map +1 -0
- package/dist/ops/tidying.js +84 -0
- package/dist/ops/tidying.js.map +1 -0
- package/dist/ops/types.d.ts +42 -0
- package/dist/ops/types.d.ts.map +1 -1
- package/dist/ops/undo.d.ts.map +1 -1
- package/dist/ops/undo.js +10 -0
- package/dist/ops/undo.js.map +1 -1
- package/dist/ops/withheld.d.ts +25 -2
- package/dist/ops/withheld.d.ts.map +1 -1
- package/dist/ops/withheld.js +6 -15
- package/dist/ops/withheld.js.map +1 -1
- package/dist/past.d.ts +35 -0
- package/dist/past.d.ts.map +1 -0
- package/dist/past.js +173 -0
- package/dist/past.js.map +1 -0
- package/dist/permissions/policy.d.ts +13 -1
- package/dist/permissions/policy.d.ts.map +1 -1
- package/dist/permissions/policy.js +44 -9
- package/dist/permissions/policy.js.map +1 -1
- package/dist/permissions/sight.d.ts +40 -2
- package/dist/permissions/sight.d.ts.map +1 -1
- package/dist/permissions/sight.js +25 -2
- package/dist/permissions/sight.js.map +1 -1
- package/dist/permissions/types.d.ts +21 -0
- package/dist/permissions/types.d.ts.map +1 -1
- package/dist/permissions/types.js.map +1 -1
- package/dist/places.d.ts +6 -51
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +50 -144
- package/dist/places.js.map +1 -1
- package/dist/provenance.d.ts +14 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +13 -0
- package/dist/provenance.js.map +1 -0
- package/dist/repeat-words.d.ts +13 -0
- package/dist/repeat-words.d.ts.map +1 -0
- package/dist/repeat-words.js +56 -0
- package/dist/repeat-words.js.map +1 -0
- package/dist/repeat.d.ts +59 -0
- package/dist/repeat.d.ts.map +1 -0
- package/dist/repeat.js +155 -0
- package/dist/repeat.js.map +1 -0
- package/dist/scaffold/agents.d.ts.map +1 -1
- package/dist/scaffold/agents.js +13 -0
- package/dist/scaffold/agents.js.map +1 -1
- package/dist/scaffold/project.d.ts.map +1 -1
- package/dist/scaffold/project.js +18 -0
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/ui.d.ts.map +1 -1
- package/dist/scaffold/ui.js +17 -7
- package/dist/scaffold/ui.js.map +1 -1
- package/dist/scene-districts.d.ts +2 -1
- package/dist/scene-districts.d.ts.map +1 -1
- package/dist/scene-districts.js +2 -1
- package/dist/scene-districts.js.map +1 -1
- package/dist/scene.d.ts +4 -2
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +2 -1
- package/dist/scene.js.map +1 -1
- package/dist/schema/amount-mark.d.ts +13 -0
- package/dist/schema/amount-mark.d.ts.map +1 -0
- package/dist/schema/amount-mark.js +20 -0
- package/dist/schema/amount-mark.js.map +1 -0
- package/dist/schema/amount-words.d.ts +12 -0
- package/dist/schema/amount-words.d.ts.map +1 -0
- package/dist/schema/amount-words.js +31 -0
- package/dist/schema/amount-words.js.map +1 -0
- package/dist/schema/app-address.d.ts +5 -0
- package/dist/schema/app-address.d.ts.map +1 -0
- package/dist/schema/app-address.js +10 -0
- package/dist/schema/app-address.js.map +1 -0
- package/dist/schema/app-link-field.d.ts +4 -0
- package/dist/schema/app-link-field.d.ts.map +1 -0
- package/dist/schema/app-link-field.js +19 -0
- package/dist/schema/app-link-field.js.map +1 -0
- package/dist/schema/app-link.d.ts +38 -0
- package/dist/schema/app-link.d.ts.map +1 -0
- package/dist/schema/app-link.js +38 -0
- package/dist/schema/app-link.js.map +1 -0
- package/dist/schema/define-node.d.ts +39 -92
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +8 -246
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/field-words.d.ts +45 -0
- package/dist/schema/field-words.d.ts.map +1 -0
- package/dist/schema/field-words.js +124 -0
- package/dist/schema/field-words.js.map +1 -0
- package/dist/schema/files.d.ts +8 -0
- package/dist/schema/files.d.ts.map +1 -1
- package/dist/schema/files.js.map +1 -1
- package/dist/schema/json-schema.d.ts +6 -1
- package/dist/schema/json-schema.d.ts.map +1 -1
- package/dist/schema/json-schema.js +101 -2
- package/dist/schema/json-schema.js.map +1 -1
- package/dist/schema/linked-field.d.ts +6 -0
- package/dist/schema/linked-field.d.ts.map +1 -0
- package/dist/schema/linked-field.js +34 -0
- package/dist/schema/linked-field.js.map +1 -0
- package/dist/schema/linked-reads.d.ts +20 -0
- package/dist/schema/linked-reads.d.ts.map +1 -0
- package/dist/schema/linked-reads.js +69 -0
- package/dist/schema/linked-reads.js.map +1 -0
- package/dist/schema/linked-schema.d.ts +5 -0
- package/dist/schema/linked-schema.d.ts.map +1 -0
- package/dist/schema/linked-schema.js +9 -0
- package/dist/schema/linked-schema.js.map +1 -0
- package/dist/schema/linked.d.ts +147 -0
- package/dist/schema/linked.d.ts.map +1 -0
- package/dist/schema/linked.js +151 -0
- package/dist/schema/linked.js.map +1 -0
- package/dist/schema/markdown-field.d.ts +4 -0
- package/dist/schema/markdown-field.d.ts.map +1 -0
- package/dist/schema/markdown-field.js +20 -0
- package/dist/schema/markdown-field.js.map +1 -0
- package/dist/schema/markdown.d.ts +6 -0
- package/dist/schema/markdown.d.ts.map +1 -0
- package/dist/schema/markdown.js +27 -0
- package/dist/schema/markdown.js.map +1 -0
- package/dist/schema/reading.d.ts +86 -0
- package/dist/schema/reading.d.ts.map +1 -0
- package/dist/schema/reading.js +325 -0
- package/dist/schema/reading.js.map +1 -0
- package/dist/schema/repeat-field.d.ts +5 -0
- package/dist/schema/repeat-field.d.ts.map +1 -0
- package/dist/schema/repeat-field.js +20 -0
- package/dist/schema/repeat-field.js.map +1 -0
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +12 -1
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/to-json-schema.d.ts +14 -0
- package/dist/schema/to-json-schema.d.ts.map +1 -0
- package/dist/schema/to-json-schema.js +616 -0
- package/dist/schema/to-json-schema.js.map +1 -0
- package/dist/schema/typed-field-builders.d.ts +8 -0
- package/dist/schema/typed-field-builders.d.ts.map +1 -0
- package/dist/schema/typed-field-builders.js +30 -0
- package/dist/schema/typed-field-builders.js.map +1 -0
- package/dist/schema/typed-field-of.d.ts +4 -0
- package/dist/schema/typed-field-of.d.ts.map +1 -0
- package/dist/schema/typed-field-of.js +14 -0
- package/dist/schema/typed-field-of.js.map +1 -0
- package/dist/schema/typed-fields.d.ts +11 -0
- package/dist/schema/typed-fields.d.ts.map +1 -0
- package/dist/schema/typed-fields.js +16 -0
- package/dist/schema/typed-fields.js.map +1 -0
- package/dist/schema/types.d.ts +31 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/value-words.d.ts +21 -0
- package/dist/schema/value-words.d.ts.map +1 -0
- package/dist/schema/value-words.js +32 -0
- package/dist/schema/value-words.js.map +1 -0
- package/dist/search.d.ts +91 -4
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +317 -54
- package/dist/search.js.map +1 -1
- package/dist/seat-of.d.ts +9 -0
- package/dist/seat-of.d.ts.map +1 -0
- package/dist/seat-of.js +14 -0
- package/dist/seat-of.js.map +1 -0
- package/dist/seat.d.ts +19 -0
- package/dist/seat.d.ts.map +1 -0
- package/dist/seat.js +19 -0
- package/dist/seat.js.map +1 -0
- package/dist/seen.d.ts +15 -45
- package/dist/seen.d.ts.map +1 -1
- package/dist/seen.js +49 -135
- package/dist/seen.js.map +1 -1
- package/dist/store.d.ts +104 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +214 -30
- package/dist/store.js.map +1 -1
- package/dist/theme/derive.d.ts +16 -0
- package/dist/theme/derive.d.ts.map +1 -1
- package/dist/theme/derive.js +14 -0
- package/dist/theme/derive.js.map +1 -1
- package/dist/theme/marks.d.ts +19 -2
- package/dist/theme/marks.d.ts.map +1 -1
- package/dist/theme/marks.js +67 -2
- package/dist/theme/marks.js.map +1 -1
- package/dist/theme/types.d.ts +14 -3
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/tidying.d.ts +62 -0
- package/dist/tidying.d.ts.map +1 -0
- package/dist/tidying.js +131 -0
- package/dist/tidying.js.map +1 -0
- package/dist/typed.d.ts +12 -3
- package/dist/typed.d.ts.map +1 -1
- package/dist/typed.js.map +1 -1
- package/dist/validate-graph.d.ts.map +1 -1
- package/dist/validate-graph.js +3 -10
- package/dist/validate-graph.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/via.d.ts.map +1 -1
- package/dist/via.js +2 -1
- package/dist/via.js.map +1 -1
- package/dist/views/address.d.ts +13 -0
- package/dist/views/address.d.ts.map +1 -0
- package/dist/views/address.js +29 -0
- package/dist/views/address.js.map +1 -0
- package/dist/views/types.d.ts +106 -8
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js +24 -4
- package/dist/views/types.js.map +1 -1
- package/dist/village.d.ts +63 -0
- package/dist/village.d.ts.map +1 -0
- package/dist/village.js +143 -0
- package/dist/village.js.map +1 -0
- package/dist/watched.d.ts +12 -45
- package/dist/watched.d.ts.map +1 -1
- package/dist/watched.js +7 -119
- package/dist/watched.js.map +1 -1
- package/dist/words.d.ts +33 -0
- package/dist/words.d.ts.map +1 -0
- package/dist/words.js +36 -0
- package/dist/words.js.map +1 -0
- package/package.json +57 -2
package/dist/graph/tracked.js
CHANGED
|
@@ -16,11 +16,6 @@ export class TrackedReader {
|
|
|
16
16
|
reads() {
|
|
17
17
|
return [...this.seen];
|
|
18
18
|
}
|
|
19
|
-
mark(node) {
|
|
20
|
-
if (node)
|
|
21
|
-
this.seen.add(node.id);
|
|
22
|
-
return node;
|
|
23
|
-
}
|
|
24
19
|
markAll(nodes) {
|
|
25
20
|
for (const node of nodes)
|
|
26
21
|
this.seen.add(node.id);
|
|
@@ -35,35 +30,35 @@ export class TrackedReader {
|
|
|
35
30
|
}
|
|
36
31
|
getNode(id) {
|
|
37
32
|
this.seen.add(id);
|
|
38
|
-
return this.
|
|
33
|
+
return this.inner.getNode(id);
|
|
39
34
|
}
|
|
40
35
|
has(id) {
|
|
41
36
|
this.seen.add(id);
|
|
42
37
|
return this.inner.has(id);
|
|
43
38
|
}
|
|
44
|
-
allNodes() {
|
|
45
|
-
return this.markAll(this.inner.allNodes());
|
|
39
|
+
allNodes(options) {
|
|
40
|
+
return this.markAll(this.inner.allNodes(options));
|
|
46
41
|
}
|
|
47
|
-
allEdges() {
|
|
48
|
-
return this.markEdges(this.inner.allEdges());
|
|
42
|
+
allEdges(options) {
|
|
43
|
+
return this.markEdges(this.inner.allEdges(options));
|
|
49
44
|
}
|
|
50
|
-
nodesOfKind(kind) {
|
|
51
|
-
return this.markAll(this.inner.nodesOfKind(kind));
|
|
45
|
+
nodesOfKind(kind, options) {
|
|
46
|
+
return this.markAll(this.inner.nodesOfKind(kind, options));
|
|
52
47
|
}
|
|
53
|
-
edgesOfKind(kind) {
|
|
54
|
-
return this.markEdges(this.inner.edgesOfKind(kind));
|
|
48
|
+
edgesOfKind(kind, options) {
|
|
49
|
+
return this.markEdges(this.inner.edgesOfKind(kind, options));
|
|
55
50
|
}
|
|
56
|
-
out(id, kind) {
|
|
51
|
+
out(id, kind, options) {
|
|
57
52
|
this.seen.add(id);
|
|
58
|
-
return this.markAll(this.inner.out(id, kind));
|
|
53
|
+
return this.markAll(this.inner.out(id, kind, options));
|
|
59
54
|
}
|
|
60
|
-
in(id, kind) {
|
|
55
|
+
in(id, kind, options) {
|
|
61
56
|
this.seen.add(id);
|
|
62
|
-
return this.markAll(this.inner.in(id, kind));
|
|
57
|
+
return this.markAll(this.inner.in(id, kind, options));
|
|
63
58
|
}
|
|
64
|
-
neighbors(id) {
|
|
59
|
+
neighbors(id, options) {
|
|
65
60
|
this.seen.add(id);
|
|
66
|
-
return this.markAll(this.inner.neighbors(id));
|
|
61
|
+
return this.markAll(this.inner.neighbors(id, options));
|
|
67
62
|
}
|
|
68
63
|
}
|
|
69
64
|
//# sourceMappingURL=tracked.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracked.js","sourceRoot":"","sources":["../../src/graph/tracked.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracked.js","sourceRoot":"","sources":["../../src/graph/tracked.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IAGK;IAFZ,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAEtD,sDAAsD;IACtD,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEO,OAAO,CAAc,KAAU;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,SAAS,CAAC,KAAkB;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,OAAwB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,OAAwB;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAsB,IAAO,EAAE,OAAwB;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,OAAwB;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,IAAa,EAAE,OAAwB;QACrD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,EAAE,CAAC,EAAU,EAAE,IAAa,EAAE,OAAwB;QACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAwB;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;CACF"}
|
package/dist/graph/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ArchivedOption } from "./archived.js";
|
|
1
2
|
export interface GraphEdge {
|
|
2
3
|
readonly kind: string;
|
|
3
4
|
readonly from: string;
|
|
@@ -10,21 +11,28 @@ export interface GraphNodeBase {
|
|
|
10
11
|
readonly kind: string;
|
|
11
12
|
}
|
|
12
13
|
export type AnyGraphNode = GraphNodeBase & Record<string, unknown>;
|
|
13
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* The read surface a mutation sees. Every method here is instrumented.
|
|
16
|
+
*
|
|
17
|
+
* A read that LISTS records reaches the live ones unless it asks for the
|
|
18
|
+
* archived (FR-173): `{ archived: true }` for those only, `"all"` for both.
|
|
19
|
+
* A link is listed when both its ends are reached. A read BY ID — `getNode`,
|
|
20
|
+
* `has` — finds a record archived or not, as its own page does.
|
|
21
|
+
*/
|
|
14
22
|
export interface GraphReader<N extends GraphNodeBase = AnyGraphNode> {
|
|
15
23
|
getNode(id: string): N | undefined;
|
|
16
|
-
allNodes(): N[];
|
|
17
|
-
allEdges(): GraphEdge[];
|
|
18
|
-
nodesOfKind<K extends N["kind"]>(kind: K): Extract<N, {
|
|
24
|
+
allNodes(options?: ArchivedOption): N[];
|
|
25
|
+
allEdges(options?: ArchivedOption): GraphEdge[];
|
|
26
|
+
nodesOfKind<K extends N["kind"]>(kind: K, options?: ArchivedOption): Extract<N, {
|
|
19
27
|
kind: K;
|
|
20
28
|
}>[];
|
|
21
|
-
edgesOfKind(kind: string): GraphEdge[];
|
|
29
|
+
edgesOfKind(kind: string, options?: ArchivedOption): GraphEdge[];
|
|
22
30
|
/** Nodes reached by following `kind` edges out of `id`. */
|
|
23
|
-
out(id: string, kind?: string): N[];
|
|
31
|
+
out(id: string, kind?: string, options?: ArchivedOption): N[];
|
|
24
32
|
/** Nodes with a `kind` edge pointing at `id`. */
|
|
25
|
-
in(id: string, kind?: string): N[];
|
|
33
|
+
in(id: string, kind?: string, options?: ArchivedOption): N[];
|
|
26
34
|
/** Every node one edge away, in either direction. */
|
|
27
|
-
neighbors(id: string): N[];
|
|
35
|
+
neighbors(id: string, options?: ArchivedOption): N[];
|
|
28
36
|
has(id: string): boolean;
|
|
29
37
|
}
|
|
30
38
|
export interface GraphSnapshot<N extends GraphNodeBase = AnyGraphNode> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE9C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE9C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,aAAa,GAAG,YAAY;IACjE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,EAAE,CAAC;IAChD,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IAC/F,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,EAAE,CAAC;IACjE,2DAA2D;IAC3D,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IAC9D,iDAAiD;IACjD,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IAC7D,qDAAqD;IACrD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IACrD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,aAAa,GAAG,YAAY;IACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CACtC"}
|
package/dist/graph/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAQA,mEAAmE;AACnE,MAAM,UAAU,MAAM,CAAC,IAAe;IACpC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** A grid's order, as a declaration writes it. */
|
|
2
|
+
export type GridSort = string | {
|
|
3
|
+
readonly by: string;
|
|
4
|
+
readonly direction?: "asc" | "desc";
|
|
5
|
+
};
|
|
6
|
+
/** The order in its whole form, or nothing where it is not one. */
|
|
7
|
+
export declare function gridSortOf(sort: unknown): {
|
|
8
|
+
readonly by: string;
|
|
9
|
+
readonly direction: "asc" | "desc";
|
|
10
|
+
} | undefined;
|
|
11
|
+
/** What a grid's order is wrong with, in a sentence, or nothing: a field the kind does not have, or a direction that is not one. */
|
|
12
|
+
export declare function gridSortProblem(sort: unknown, fields: readonly string[], kind: string): string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* `items` in the order `sort` says: by the field's value — numbers as
|
|
15
|
+
* numbers, words and dates as words in the page's order — the ones with
|
|
16
|
+
* none last whichever way it runs, and the order they came in where two are
|
|
17
|
+
* the same. Unsaid, as they came.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sortForGrid<T>(items: readonly T[], sort: unknown, read: (item: T, field: string) => unknown): readonly T[];
|
|
20
|
+
//# sourceMappingURL=grid-sort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-sort.d.ts","sourceRoot":"","sources":["../src/grid-sort.ts"],"names":[],"mappings":"AAWA,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAAC;AAE7F,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAAG,SAAS,CAMjH;AAED,oIAAoI;AACpI,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO1G;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,EAAE,CAc1H"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* THE ORDER A GRID LENS DRAWS ITS ROWS, COLUMNS OR CARDS IN (2026-10-15).
|
|
3
|
+
*
|
|
4
|
+
* "Releases by era" listed its releases in the order they were written. A
|
|
5
|
+
* coverage lens takes `sort` for its rows and `columnSort` for its columns,
|
|
6
|
+
* and a status board `sort` for the cards in each column, written as a
|
|
7
|
+
* kind's list writes its order: a field (`"released"`), or
|
|
8
|
+
* `{ "by": "released", "direction": "desc" }`. `label` is the record's name.
|
|
9
|
+
* One comparison, so the picture and `describePlace` say the same order.
|
|
10
|
+
*/
|
|
11
|
+
/** The order in its whole form, or nothing where it is not one. */
|
|
12
|
+
export function gridSortOf(sort) {
|
|
13
|
+
if (typeof sort === "string" && sort.length > 0)
|
|
14
|
+
return { by: sort, direction: "asc" };
|
|
15
|
+
if (typeof sort !== "object" || sort === null)
|
|
16
|
+
return undefined;
|
|
17
|
+
const { by, direction } = sort;
|
|
18
|
+
if (typeof by !== "string" || by.length === 0)
|
|
19
|
+
return undefined;
|
|
20
|
+
return { by, direction: direction === "desc" ? "desc" : "asc" };
|
|
21
|
+
}
|
|
22
|
+
/** What a grid's order is wrong with, in a sentence, or nothing: a field the kind does not have, or a direction that is not one. */
|
|
23
|
+
export function gridSortProblem(sort, fields, kind) {
|
|
24
|
+
const whole = gridSortOf(sort);
|
|
25
|
+
if (!whole)
|
|
26
|
+
return `an order is a field, like "released", or { "by": "released", "direction": "asc" | "desc" }`;
|
|
27
|
+
const direction = typeof sort === "object" && sort !== null ? sort.direction : undefined;
|
|
28
|
+
if (direction !== undefined && direction !== "asc" && direction !== "desc")
|
|
29
|
+
return `an order runs "asc" or "desc", not "${String(direction)}"`;
|
|
30
|
+
if (whole.by !== "label" && !fields.includes(whole.by))
|
|
31
|
+
return `${kind} has no field "${whole.by}" to order by (it has ${fields.length > 0 ? fields.map((field) => `"${field}"`).join(", ") : "none"}, and "label", its name)`;
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* `items` in the order `sort` says: by the field's value — numbers as
|
|
36
|
+
* numbers, words and dates as words in the page's order — the ones with
|
|
37
|
+
* none last whichever way it runs, and the order they came in where two are
|
|
38
|
+
* the same. Unsaid, as they came.
|
|
39
|
+
*/
|
|
40
|
+
export function sortForGrid(items, sort, read) {
|
|
41
|
+
const whole = gridSortOf(sort);
|
|
42
|
+
if (!whole)
|
|
43
|
+
return items;
|
|
44
|
+
const flip = whole.direction === "desc" ? -1 : 1;
|
|
45
|
+
return items
|
|
46
|
+
.map((item, at) => ({ item, at, value: read(item, whole.by) }))
|
|
47
|
+
.sort((a, b) => {
|
|
48
|
+
const none = (a.value === undefined || a.value === null || a.value === "" ? 1 : 0) - (b.value === undefined || b.value === null || b.value === "" ? 1 : 0);
|
|
49
|
+
if (none !== 0)
|
|
50
|
+
return none;
|
|
51
|
+
if (a.value === b.value || a.value === undefined || a.value === null)
|
|
52
|
+
return a.at - b.at;
|
|
53
|
+
const order = typeof a.value === "number" && typeof b.value === "number" ? a.value - b.value : String(a.value).localeCompare(String(b.value), undefined, { numeric: true });
|
|
54
|
+
return order === 0 ? a.at - b.at : order * flip;
|
|
55
|
+
})
|
|
56
|
+
.map((one) => one.item);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=grid-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-sort.js","sourceRoot":"","sources":["../src/grid-sort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACvF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAA6C,CAAC;IACxE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAClE,CAAC;AAED,oIAAoI;AACpI,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,MAAyB,EAAE,IAAY;IACpF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,4FAA4F,CAAC;IAChH,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAAgC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,uCAAuC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;IAC/I,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,IAAI,kBAAkB,KAAK,CAAC,EAAE,yBAAyB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,0BAA0B,CAAC;IAC/N,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAI,KAAmB,EAAE,IAAa,EAAE,IAAyC;IAC1G,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC9D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3J,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5K,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IAClD,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { nameOfAuthor } from "./who.js";
|
|
2
|
+
import type { Author } from "./ops/types.js";
|
|
3
|
+
import type { Principal } from "./permissions/types.js";
|
|
4
|
+
import type { AnySchema } from "./schema/schema.js";
|
|
5
|
+
import type { PastDeclaration, Store } from "./store.js";
|
|
6
|
+
/** Who made a change, as a timeline marks it: the reader, another person, an agent, or the app itself (a rule, a sync, a migration). */
|
|
7
|
+
export type Maker = "you" | "person" | "agent" | "app";
|
|
8
|
+
/**
|
|
9
|
+
* A CHANGE TO THE DECLARATION AT A MOMENT, as the host knows it: the seq it
|
|
10
|
+
* took effect at (the ops before it were made under the one before), the
|
|
11
|
+
* sentence it said ("Added a Budget kind"), and — so the past is drawn
|
|
12
|
+
* under it — the declaration itself. An epoch with a `change` (a migration)
|
|
13
|
+
* is one too, read from the log without the host.
|
|
14
|
+
*/
|
|
15
|
+
export interface DeclarationMark {
|
|
16
|
+
readonly seq: number;
|
|
17
|
+
readonly sentence: string;
|
|
18
|
+
readonly at?: string;
|
|
19
|
+
readonly author?: Author;
|
|
20
|
+
/** The declaration from this seq on; absent, the past is drawn under the next one the host does say, else the store's own. */
|
|
21
|
+
readonly declaration?: PastDeclaration;
|
|
22
|
+
}
|
|
23
|
+
/** What a host keeps of a script (worker) view: its code at a moment, as it registers it. */
|
|
24
|
+
export type ViewVersion = {
|
|
25
|
+
readonly source: string;
|
|
26
|
+
} | Readonly<Record<string, unknown>>;
|
|
27
|
+
/**
|
|
28
|
+
* WHAT THE HOST KEEPS OUTSIDE THE LOG, handed to playback: the declaration
|
|
29
|
+
* changes it knows (with the declaration each began), and a script view's
|
|
30
|
+
* code as it stood at a seq — `null` when the view did not exist then,
|
|
31
|
+
* `undefined` when the host does not know (the view is drawn as it is now).
|
|
32
|
+
*/
|
|
33
|
+
export interface HistoryHost {
|
|
34
|
+
readonly declarations?: readonly DeclarationMark[];
|
|
35
|
+
readonly viewAt?: (name: string, seq: number) => ViewVersion | null | undefined;
|
|
36
|
+
}
|
|
37
|
+
/** One gesture on the timeline, or one declaration change made outside the log. */
|
|
38
|
+
export interface PlaybackTick {
|
|
39
|
+
/** The moment just after it: `pastOf(store, seq)` shows it made. */
|
|
40
|
+
readonly seq: number;
|
|
41
|
+
/** The seq of its first op; equal to `seq` for a declaration change the log holds no op of. */
|
|
42
|
+
readonly from: number;
|
|
43
|
+
/** When it was made, when said. */
|
|
44
|
+
readonly at: string | undefined;
|
|
45
|
+
readonly batch: string | undefined;
|
|
46
|
+
readonly maker: Maker;
|
|
47
|
+
readonly author: Author | undefined;
|
|
48
|
+
/** What it was, in a sentence: the gesture's intent, or the declaration's change. */
|
|
49
|
+
readonly said: string;
|
|
50
|
+
/** A change to the declaration: a bigger tick. */
|
|
51
|
+
readonly declaration: boolean;
|
|
52
|
+
/** Something this seat may not see happened here (FR-16): said, and nothing more. */
|
|
53
|
+
readonly withheld: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** Who made a change, for the reader `me`. A system or a rule is the app itself; an agent acting for a person is still an agent. */
|
|
56
|
+
export declare function makerOf(author: Author, me?: Principal): Maker;
|
|
57
|
+
/**
|
|
58
|
+
* THE TIMELINE OF A STORE: one tick per gesture, in the order they ended,
|
|
59
|
+
* then each declaration change at its seq — on the gesture that made it
|
|
60
|
+
* when one ends there, else a tick of its own. Read through a seat's view
|
|
61
|
+
* of the store (`seenBy`), a change it may not see is a tick that says only
|
|
62
|
+
* that something happened.
|
|
63
|
+
*/
|
|
64
|
+
export declare function ticksOf<S extends AnySchema>(store: Store<S>, options?: {
|
|
65
|
+
readonly me?: Principal;
|
|
66
|
+
readonly declarations?: readonly DeclarationMark[];
|
|
67
|
+
}): PlaybackTick[];
|
|
68
|
+
type Declared = Pick<AnySchema, "kinds" | "tryDefinition">;
|
|
69
|
+
/**
|
|
70
|
+
* WHAT A DECLARATION CHANGE DID, IN A SENTENCE, from the one before and the
|
|
71
|
+
* one after: "Added a Budget kind", "Added due and priority to Task",
|
|
72
|
+
* "Removed the Note kind". Kinds first, then fields and links of the kinds
|
|
73
|
+
* both have. "Changed the declaration" when nothing it names moved.
|
|
74
|
+
*/
|
|
75
|
+
export declare function declarationSentence(before: Declared | undefined, after: Declared): string;
|
|
76
|
+
/**
|
|
77
|
+
* THE GESTURES "RESTORE TO HERE" TAKES BACK, as one undo (`store.undo`):
|
|
78
|
+
* every gesture after `seq` still standing, but not an undo whose every
|
|
79
|
+
* target came after `seq` too — those two cancel already, and taking the
|
|
80
|
+
* undo back would put its target back. Empty when nothing after `seq`
|
|
81
|
+
* stands. Whether the undo may run is the store's to judge (`canUndo`,
|
|
82
|
+
* and the policy when it runs).
|
|
83
|
+
*/
|
|
84
|
+
export declare function restoreBatches<S extends AnySchema>(store: Store<S>, seq: number): string[];
|
|
85
|
+
/** Who made a tick, in words, for a reader who has the app's people and seats: "you", "Claude", "Ann". */
|
|
86
|
+
export declare function makerWords(tick: PlaybackTick, context: Parameters<typeof nameOfAuthor>[1]): string;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
package/dist/history.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE APP'S HISTORY, PLAYED BACK (Roadmap f-playback): `@graview/core/history`.
|
|
3
|
+
*
|
|
4
|
+
* `pastOf(store, when)` (`@graview/core/past`) is the app as it stood;
|
|
5
|
+
* this is what a timeline reads around it — one tick per gesture, marked by
|
|
6
|
+
* who made it, the bigger ticks where the declaration changed with the
|
|
7
|
+
* sentence it said, and the gestures a "Restore to here" takes back as one
|
|
8
|
+
* change. Its own entry, because nothing here is needed before somebody
|
|
9
|
+
* opens the past: the timeline fetches it when they do.
|
|
10
|
+
*
|
|
11
|
+
* What the log does not hold — a script view's code, an asset's bytes —
|
|
12
|
+
* is the host's, and it hands it through `HistoryHost`.
|
|
13
|
+
*/
|
|
14
|
+
import { capitalize } from "./capital.js";
|
|
15
|
+
import { humanizeField, nounOf } from "./schema/define-node.js";
|
|
16
|
+
import { nameOfAuthor } from "./who.js";
|
|
17
|
+
/** Who made a change, for the reader `me`. A system or a rule is the app itself; an agent acting for a person is still an agent. */
|
|
18
|
+
export function makerOf(author, me) {
|
|
19
|
+
if (author.kind === "agent")
|
|
20
|
+
return "agent";
|
|
21
|
+
if (author.kind !== "human")
|
|
22
|
+
return "app";
|
|
23
|
+
if (author.onBehalfOf !== undefined)
|
|
24
|
+
return "person";
|
|
25
|
+
return author.id === undefined || me?.id === undefined || author.id === me.id ? "you" : "person";
|
|
26
|
+
}
|
|
27
|
+
const opsSeen = (batch) => batch.ops.filter((op) => op.withheld !== true);
|
|
28
|
+
/**
|
|
29
|
+
* THE TIMELINE OF A STORE: one tick per gesture, in the order they ended,
|
|
30
|
+
* then each declaration change at its seq — on the gesture that made it
|
|
31
|
+
* when one ends there, else a tick of its own. Read through a seat's view
|
|
32
|
+
* of the store (`seenBy`), a change it may not see is a tick that says only
|
|
33
|
+
* that something happened.
|
|
34
|
+
*/
|
|
35
|
+
export function ticksOf(store, options = {}) {
|
|
36
|
+
const ticks = store.batches().map((batch) => {
|
|
37
|
+
const first = batch.ops[0];
|
|
38
|
+
const last = batch.ops.at(-1);
|
|
39
|
+
const withheld = opsSeen(batch).length === 0;
|
|
40
|
+
return {
|
|
41
|
+
seq: last.seq + 1,
|
|
42
|
+
from: first.seq,
|
|
43
|
+
at: last.at,
|
|
44
|
+
batch: batch.id,
|
|
45
|
+
maker: withheld ? "person" : makerOf(batch.author, options.me),
|
|
46
|
+
author: withheld ? undefined : batch.author,
|
|
47
|
+
said: batch.intent,
|
|
48
|
+
declaration: false,
|
|
49
|
+
withheld,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
const marks = [
|
|
53
|
+
...store.log
|
|
54
|
+
.epochs()
|
|
55
|
+
.filter((epoch) => epoch.change !== undefined)
|
|
56
|
+
.map((epoch) => ({ seq: epoch.seq, sentence: epoch.change, ...(epoch.at ? { at: epoch.at } : {}) })),
|
|
57
|
+
...(options.declarations ?? []),
|
|
58
|
+
];
|
|
59
|
+
for (const mark of marks) {
|
|
60
|
+
if (mark.seq < store.log.horizon || mark.seq > store.log.length)
|
|
61
|
+
continue;
|
|
62
|
+
const at = ticks.findIndex((tick) => tick.seq === mark.seq);
|
|
63
|
+
if (at >= 0 && !ticks[at].withheld) {
|
|
64
|
+
ticks[at] = { ...ticks[at], declaration: true, said: mark.sentence };
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
ticks.push({
|
|
68
|
+
seq: mark.seq,
|
|
69
|
+
from: mark.seq,
|
|
70
|
+
at: mark.at,
|
|
71
|
+
batch: undefined,
|
|
72
|
+
maker: mark.author ? makerOf(mark.author, options.me) : "app",
|
|
73
|
+
author: mark.author,
|
|
74
|
+
said: mark.sentence,
|
|
75
|
+
declaration: true,
|
|
76
|
+
withheld: false,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return ticks.sort((a, b) => a.seq - b.seq || Number(a.batch !== undefined) - Number(b.batch !== undefined));
|
|
80
|
+
}
|
|
81
|
+
const fieldsOf = (schema, kind) => {
|
|
82
|
+
const fields = schema.tryDefinition(kind)?.fields;
|
|
83
|
+
return Object.keys(fields?.shape ?? {});
|
|
84
|
+
};
|
|
85
|
+
const edgesOf = (schema, kind) => Object.keys(schema.tryDefinition(kind)?.edges ?? {});
|
|
86
|
+
const kindWords = (schema, kind) => capitalize(nounOf(schema.tryDefinition(kind), kind));
|
|
87
|
+
const article = (word) => (/^[aeiou]/i.test(word) ? "an" : "a");
|
|
88
|
+
const listed = (items) => (items.length <= 1 ? items.join("") : `${items.slice(0, -1).join(", ")} and ${items.at(-1)}`);
|
|
89
|
+
/**
|
|
90
|
+
* WHAT A DECLARATION CHANGE DID, IN A SENTENCE, from the one before and the
|
|
91
|
+
* one after: "Added a Budget kind", "Added due and priority to Task",
|
|
92
|
+
* "Removed the Note kind". Kinds first, then fields and links of the kinds
|
|
93
|
+
* both have. "Changed the declaration" when nothing it names moved.
|
|
94
|
+
*/
|
|
95
|
+
export function declarationSentence(before, after) {
|
|
96
|
+
const was = new Set(before?.kinds ?? []);
|
|
97
|
+
const now = new Set(after.kinds);
|
|
98
|
+
const parts = [];
|
|
99
|
+
const added = [...now].filter((kind) => !was.has(kind));
|
|
100
|
+
const removed = [...was].filter((kind) => !now.has(kind));
|
|
101
|
+
if (added.length === 1)
|
|
102
|
+
parts.push(`added ${article(kindWords(after, added[0]))} ${kindWords(after, added[0])} kind`);
|
|
103
|
+
else if (added.length > 1)
|
|
104
|
+
parts.push(`added the ${listed(added.map((kind) => kindWords(after, kind)))} kinds`);
|
|
105
|
+
if (removed.length > 0)
|
|
106
|
+
parts.push(`removed the ${listed(removed.map((kind) => kindWords(before, kind)))} kind${removed.length > 1 ? "s" : ""}`);
|
|
107
|
+
for (const kind of [...now].filter((one) => was.has(one))) {
|
|
108
|
+
const then = new Set([...fieldsOf(before, kind), ...edgesOf(before, kind)]);
|
|
109
|
+
const since = [...fieldsOf(after, kind), ...edgesOf(after, kind)];
|
|
110
|
+
const more = since.filter((name) => !then.has(name)).map((name) => humanizeField(name).toLowerCase());
|
|
111
|
+
const fewer = [...then].filter((name) => !since.includes(name)).map((name) => humanizeField(name).toLowerCase());
|
|
112
|
+
if (more.length > 0)
|
|
113
|
+
parts.push(`added ${listed(more)} to ${kindWords(after, kind)}`);
|
|
114
|
+
if (fewer.length > 0)
|
|
115
|
+
parts.push(`removed ${listed(fewer)} from ${kindWords(after, kind)}`);
|
|
116
|
+
}
|
|
117
|
+
return parts.length > 0 ? capitalize(parts.join("; ")) : "Changed the declaration";
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* THE GESTURES "RESTORE TO HERE" TAKES BACK, as one undo (`store.undo`):
|
|
121
|
+
* every gesture after `seq` still standing, but not an undo whose every
|
|
122
|
+
* target came after `seq` too — those two cancel already, and taking the
|
|
123
|
+
* undo back would put its target back. Empty when nothing after `seq`
|
|
124
|
+
* stands. Whether the undo may run is the store's to judge (`canUndo`,
|
|
125
|
+
* and the policy when it runs).
|
|
126
|
+
*/
|
|
127
|
+
export function restoreBatches(store, seq) {
|
|
128
|
+
const ops = store.log.all();
|
|
129
|
+
const position = new Map(ops.map((op) => [op.id, op.seq]));
|
|
130
|
+
return store
|
|
131
|
+
.batches()
|
|
132
|
+
.filter((batch) => !batch.undone && batch.ops[0].seq >= seq)
|
|
133
|
+
.filter((batch) => !batch.ops.every((op) => op.undoes !== undefined && (position.get(op.undoes) ?? -1) >= seq))
|
|
134
|
+
.map((batch) => batch.id);
|
|
135
|
+
}
|
|
136
|
+
/** Who made a tick, in words, for a reader who has the app's people and seats: "you", "Claude", "Ann". */
|
|
137
|
+
export function makerWords(tick, context) {
|
|
138
|
+
if (tick.withheld)
|
|
139
|
+
return "Someone";
|
|
140
|
+
if (tick.maker === "you")
|
|
141
|
+
return "you";
|
|
142
|
+
if (!tick.author)
|
|
143
|
+
return "the app";
|
|
144
|
+
return nameOfAuthor(tick.author, context);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { FieldSpec } from "../document/schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* A CELL, READ AS THE FIELD IT GOES IN (FR-177). A spreadsheet holds what a
|
|
4
|
+
* person typed: "Sep 10, 2023", "$1,200.50", "12 kg", "✓", "In progress".
|
|
5
|
+
* A field holds what the declaration says it holds — an ISO day, a number,
|
|
6
|
+
* a boolean, one of its options — so each cell is read by its field's type,
|
|
7
|
+
* and a cell that cannot be read is said back in words rather than guessed.
|
|
8
|
+
*/
|
|
9
|
+
export type Coerced = {
|
|
10
|
+
readonly ok: true;
|
|
11
|
+
readonly value: unknown;
|
|
12
|
+
} | {
|
|
13
|
+
readonly ok: false;
|
|
14
|
+
readonly why: string;
|
|
15
|
+
};
|
|
16
|
+
export interface CoerceOptions {
|
|
17
|
+
/** `3/4/2024` is the 4th of March read day first, the 3rd of April otherwise (US). */
|
|
18
|
+
readonly dayFirst?: boolean;
|
|
19
|
+
/** How an option reads to a person, where it is not the option itself: the kind's `display.format`. */
|
|
20
|
+
readonly optionWords?: (option: string) => string;
|
|
21
|
+
}
|
|
22
|
+
/** A day, as `YYYY-MM-DD`: ISO, US `M/D/YYYY` (or day first), "Sep 10, 2023", "10 September 2023", a spreadsheet's serial day. */
|
|
23
|
+
export declare function readDay(input: unknown, options?: CoerceOptions): string | undefined;
|
|
24
|
+
/** A day and a time, as `YYYY-MM-DDTHH:MM`: the day as `readDay` reads it, then "14:30", "2:30 PM" or "2pm". */
|
|
25
|
+
export declare function readDateTime(input: unknown, options?: CoerceOptions): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* A number, however a sheet wrote it: "$1,200.50", "USD 40", "12 kg",
|
|
28
|
+
* "(300)" for a loss, "15%" for 0.15. One number per cell; text before or
|
|
29
|
+
* after it — a currency, a unit — is set aside, text between two numbers
|
|
30
|
+
* is not a number.
|
|
31
|
+
*/
|
|
32
|
+
export declare function readNumber(input: unknown): number | undefined;
|
|
33
|
+
/** A yes or a no: yes/no, true/false, x, ✓, 1/0. */
|
|
34
|
+
export declare function readBoolean(input: unknown): boolean | undefined;
|
|
35
|
+
/** One of a field's options, by the option itself or its words, case and spacing aside. */
|
|
36
|
+
export declare function readOption(input: unknown, options: readonly string[], words?: (option: string) => string): string | undefined;
|
|
37
|
+
/** Several values in one cell: split on semicolons and line breaks, and on commas when there were none. */
|
|
38
|
+
export declare function splitCell(text: string): string[];
|
|
39
|
+
/** A cell read as a field of this spec. Blank cells are not handed here. */
|
|
40
|
+
export declare function coerceCell(spec: FieldSpec, input: unknown, said: string, options?: CoerceOptions): Coerced;
|
|
41
|
+
/** "a, b or c". */
|
|
42
|
+
export declare function orList(items: readonly string[]): string;
|
|
43
|
+
/** "a, b and c". */
|
|
44
|
+
export declare function andList(items: readonly string[]): string;
|
|
45
|
+
//# sourceMappingURL=coerce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../../src/import/coerce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAOvD;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,uGAAuG;IACvG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD;AAoBD,kIAAkI;AAClI,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,GAAG,SAAS,CAgCvF;AASD,gHAAgH;AAChH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,GAAG,SAAS,CA6B5F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoB7D;AAKD,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAM/D;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAU7H;AAED,2GAA2G;AAC3G,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGhD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAwE9G;AAED,mBAAmB;AACnB,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGvD;AAED,oBAAoB;AACpB,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGxD"}
|