@graview/core 0.1.29 → 0.1.32
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 +11 -1
- package/dist/app-places.d.ts +2 -2
- package/dist/app-places.d.ts.map +1 -1
- package/dist/app-places.js +53 -3
- package/dist/app-places.js.map +1 -1
- package/dist/app.d.ts +24 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/arrange.d.ts +3 -1
- package/dist/arrange.d.ts.map +1 -1
- package/dist/arrange.js +3 -1
- package/dist/arrange.js.map +1 -1
- package/dist/arrangement.d.ts +18 -0
- package/dist/arrangement.d.ts.map +1 -1
- package/dist/arrangement.js +34 -0
- package/dist/arrangement.js.map +1 -1
- package/dist/arranging.d.ts.map +1 -1
- package/dist/arranging.js +17 -6
- package/dist/arranging.js.map +1 -1
- package/dist/blocks.d.ts +1 -1
- package/dist/blocks.d.ts.map +1 -1
- package/dist/catalog.d.ts +312 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +459 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cli/check/brand.d.ts.map +1 -1
- package/dist/cli/check/brand.js +29 -1
- package/dist/cli/check/brand.js.map +1 -1
- package/dist/cli/check/lenses.d.ts.map +1 -1
- package/dist/cli/check/lenses.js +6 -1
- 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 +53 -3
- package/dist/cli/check/relations.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 +27 -4
- package/dist/cli/describe.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 +163 -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 +6 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/conformance/fixtures.d.ts.map +1 -1
- package/dist/conformance/fixtures.js +165 -0
- 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 +7 -1
- package/dist/days.d.ts.map +1 -1
- package/dist/days.js +10 -4
- package/dist/days.js.map +1 -1
- package/dist/document/act-findings.d.ts.map +1 -1
- package/dist/document/act-findings.js +21 -3
- package/dist/document/act-findings.js.map +1 -1
- package/dist/document/blocks.d.ts +20 -7
- package/dist/document/blocks.d.ts.map +1 -1
- package/dist/document/blocks.js +85 -15
- 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 +19 -17
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +2 -0
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +51 -12
- 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/connection-findings.d.ts +6 -0
- package/dist/document/connection-findings.d.ts.map +1 -0
- package/dist/document/connection-findings.js +110 -0
- package/dist/document/connection-findings.js.map +1 -0
- package/dist/document/connection-spec.d.ts +38 -0
- package/dist/document/connection-spec.d.ts.map +1 -0
- package/dist/document/connection-spec.js +43 -0
- package/dist/document/connection-spec.js.map +1 -0
- 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 +12 -5
- package/dist/document/describe-coverage.js.map +1 -1
- package/dist/document/describe-place.d.ts.map +1 -1
- package/dist/document/describe-place.js +3 -1
- package/dist/document/describe-place.js.map +1 -1
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +39 -8
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +251 -15
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +25 -0
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +38 -0
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/format-words.d.ts +1 -1
- package/dist/document/format-words.d.ts.map +1 -1
- package/dist/document/format-words.js +3 -1
- package/dist/document/format-words.js.map +1 -1
- 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/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.map +1 -1
- package/dist/document/migrate.js +4 -1
- package/dist/document/migrate.js.map +1 -1
- package/dist/document/policy-words.d.ts +2 -0
- package/dist/document/policy-words.d.ts.map +1 -1
- package/dist/document/policy-words.js +16 -1
- 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/rules.d.ts.map +1 -1
- package/dist/document/rules.js +13 -5
- package/dist/document/rules.js.map +1 -1
- package/dist/document/schema.d.ts +86 -8
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +64 -7
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template-parse.d.ts.map +1 -1
- package/dist/document/template-parse.js +36 -3
- package/dist/document/template-parse.js.map +1 -1
- package/dist/document/template.d.ts +13 -1
- package/dist/document/template.d.ts.map +1 -1
- package/dist/document/template.js +29 -9
- package/dist/document/template.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +12 -0
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/views.d.ts +36 -4
- package/dist/document/views.d.ts.map +1 -1
- package/dist/document/views.js +64 -21
- package/dist/document/views.js.map +1 -1
- package/dist/document.schema.json +1184 -51
- package/dist/field-sight.js +2 -2
- package/dist/field-sight.js.map +1 -1
- package/dist/forms.d.ts +1 -0
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +2 -0
- package/dist/forms.js.map +1 -1
- package/dist/graph/archived.d.ts +9 -0
- package/dist/graph/archived.d.ts.map +1 -1
- package/dist/graph/archived.js +9 -0
- package/dist/graph/archived.js.map +1 -1
- package/dist/graph/diff.d.ts +16 -0
- package/dist/graph/diff.d.ts.map +1 -1
- package/dist/graph/diff.js +18 -0
- package/dist/graph/diff.js.map +1 -1
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +5 -8
- package/dist/graph/graph.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/index.d.ts +18 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/installation.d.ts +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/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/mutations/arg-shape.d.ts +2 -0
- package/dist/mutations/arg-shape.d.ts.map +1 -1
- package/dist/mutations/arg-shape.js +4 -0
- package/dist/mutations/arg-shape.js.map +1 -1
- package/dist/mutations/derive-edits.d.ts.map +1 -1
- package/dist/mutations/derive-edits.js +89 -38
- package/dist/mutations/derive-edits.js.map +1 -1
- package/dist/mutations/derived-names.d.ts +3 -1
- package/dist/mutations/derived-names.d.ts.map +1 -1
- package/dist/mutations/derived-names.js +5 -3
- package/dist/mutations/derived-names.js.map +1 -1
- 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 +14 -0
- package/dist/mutations/form.d.ts.map +1 -1
- package/dist/mutations/form.js +5 -1
- package/dist/mutations/form.js.map +1 -1
- package/dist/mutations/kept-arguments.js +2 -2
- package/dist/mutations/kept-arguments.js.map +1 -1
- package/dist/mutations/types.d.ts +1 -1
- package/dist/mutations/types.d.ts.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/lineage.d.ts +13 -0
- package/dist/ops/lineage.d.ts.map +1 -1
- package/dist/ops/lineage.js +6 -4
- package/dist/ops/lineage.js.map +1 -1
- package/dist/ops/log.d.ts +6 -0
- package/dist/ops/log.d.ts.map +1 -1
- package/dist/ops/log.js +19 -12
- package/dist/ops/log.js.map +1 -1
- 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 +17 -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/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 +8 -1
- package/dist/permissions/policy.d.ts.map +1 -1
- package/dist/permissions/policy.js +20 -5
- package/dist/permissions/policy.js.map +1 -1
- package/dist/places.d.ts +6 -2
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +48 -3
- package/dist/places.js.map +1 -1
- 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 +8 -0
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/ui.d.ts.map +1 -1
- package/dist/scaffold/ui.js +18 -5
- package/dist/scaffold/ui.js.map +1 -1
- 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.d.ts +1 -4
- package/dist/schema/app-link.d.ts.map +1 -1
- package/dist/schema/app-link.js +5 -7
- package/dist/schema/app-link.js.map +1 -1
- package/dist/schema/define-node.d.ts +16 -0
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +6 -0
- package/dist/schema/define-node.js.map +1 -1
- 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.map +1 -1
- package/dist/schema/json-schema.js +19 -1
- 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/reading.d.ts.map +1 -1
- package/dist/schema/reading.js +82 -27
- package/dist/schema/reading.js.map +1 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +11 -4
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/types.d.ts +17 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +30 -2
- 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/seen.d.ts +0 -12
- package/dist/seen.d.ts.map +1 -1
- package/dist/seen.js +5 -0
- package/dist/seen.js.map +1 -1
- package/dist/store.d.ts +58 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +96 -11
- package/dist/store.js.map +1 -1
- package/dist/subscription-shape.d.ts +135 -0
- package/dist/subscription-shape.d.ts.map +1 -0
- package/dist/subscription-shape.js +55 -0
- package/dist/subscription-shape.js.map +1 -0
- package/dist/subscriptions.d.ts +68 -0
- package/dist/subscriptions.d.ts.map +1 -0
- package/dist/subscriptions.js +425 -0
- package/dist/subscriptions.js.map +1 -0
- package/dist/sync/connection-filter.d.ts +12 -0
- package/dist/sync/connection-filter.d.ts.map +1 -0
- package/dist/sync/connection-filter.js +34 -0
- package/dist/sync/connection-filter.js.map +1 -0
- package/dist/sync/connection.d.ts +65 -0
- package/dist/sync/connection.d.ts.map +1 -0
- package/dist/sync/connection.js +148 -0
- package/dist/sync/connection.js.map +1 -0
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +4 -0
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/google-calendar.d.ts +27 -2
- package/dist/sync/google-calendar.d.ts.map +1 -1
- package/dist/sync/google-calendar.js +55 -14
- package/dist/sync/google-calendar.js.map +1 -1
- package/dist/sync/index.d.ts +3 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -0
- package/dist/sync/index.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 +7 -2
- 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 +1 -1
- package/dist/typed.d.ts.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 +52 -3
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js +4 -3
- package/dist/views/types.js.map +1 -1
- package/dist/wall-time.d.ts +60 -0
- package/dist/wall-time.d.ts.map +1 -0
- package/dist/wall-time.js +111 -0
- package/dist/wall-time.js.map +1 -0
- package/dist/when-typed.d.ts +15 -0
- package/dist/when-typed.d.ts.map +1 -0
- package/dist/when-typed.js +158 -0
- package/dist/when-typed.js.map +1 -0
- package/dist/words.d.ts +6 -1
- package/dist/words.d.ts.map +1 -1
- package/dist/words.js +6 -1
- package/dist/words.js.map +1 -1
- package/package.json +29 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as z from "./zod.js";
|
|
2
|
+
import { type LinkedRelation } from "./linked.js";
|
|
3
|
+
/** The schema a relation to another app is kept in, in zod/mini: `kind:id`, or a list of them. */
|
|
4
|
+
export declare function linkedSchema(relation: LinkedRelation): z.ZodMiniType;
|
|
5
|
+
//# sourceMappingURL=linked-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked-schema.d.ts","sourceRoot":"","sources":["../../src/schema/linked-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3E,kGAAkG;AAClG,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,WAAW,CAOpE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as z from "./zod.js";
|
|
2
|
+
import { linkedRefOf, markLinked } from "./linked.js";
|
|
3
|
+
/** The schema a relation to another app is kept in, in zod/mini: `kind:id`, or a list of them. */
|
|
4
|
+
export function linkedSchema(relation) {
|
|
5
|
+
const one = z.string().check(z.maxLength(300), z.refine((value) => linkedRefOf(value, relation) !== undefined, `a record of ${relation.kinds.join(" or ")} in ${relation.address}, as "<kind>:<id>"`));
|
|
6
|
+
const schema = relation.cardinality === "one" ? one : z.array(one).check(z.maxLength(200));
|
|
7
|
+
return markLinked(relation.description ? schema.check(z.describe(relation.description)) : schema, relation);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=linked-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked-schema.js","sourceRoot":"","sources":["../../src/schema/linked-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAE3E,kGAAkG;AAClG,MAAM,UAAU,YAAY,CAAC,QAAwB;IACnD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAC1B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAChB,CAAC,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,SAAS,EAAE,eAAe,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,CAAC,OAAO,oBAAoB,CAAC,CAC/J,CAAC;IACF,MAAM,MAAM,GAAkB,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,OAAO,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9G,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/** A kind in another app, as a relation's `to` names it: `@` + the app's address + `/` + the kind. */
|
|
2
|
+
export declare const LINKED_TARGET: RegExp;
|
|
3
|
+
/**
|
|
4
|
+
* THE APP AND THE KIND A RELATION'S TARGET NAMES — or undefined when it names
|
|
5
|
+
* a kind of this document. The address is what an app-link field would
|
|
6
|
+
* hold for that app: `@nick/house/house` is the kind `house` of `@nick/house`;
|
|
7
|
+
* `@app_kf5eydr9z58jzf/house` of the app with that id; `@https://x.dev/a/house`
|
|
8
|
+
* of the app at `https://x.dev/a`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseLinkedTarget(target: string): {
|
|
11
|
+
readonly address: string;
|
|
12
|
+
readonly kind: string;
|
|
13
|
+
} | undefined;
|
|
14
|
+
/** Whether a relation's target is a kind in another app. */
|
|
15
|
+
export declare const isLinkedTarget: (target: unknown) => target is string;
|
|
16
|
+
/** A relation to another app's kinds, as its declaration says it. */
|
|
17
|
+
export interface LinkedRelation {
|
|
18
|
+
/** The other app's address: `@nick/house`, an app id, or an http(s) address. */
|
|
19
|
+
readonly address: string;
|
|
20
|
+
/** Its kinds the relation may link. */
|
|
21
|
+
readonly kinds: readonly string[];
|
|
22
|
+
readonly cardinality: "one" | "many";
|
|
23
|
+
/** The relation's own sentence, where the declaration gave one. */
|
|
24
|
+
readonly description?: string;
|
|
25
|
+
}
|
|
26
|
+
/** One record in another app: which app, which kind, which id. */
|
|
27
|
+
export interface LinkedRecordRef {
|
|
28
|
+
readonly address: string;
|
|
29
|
+
readonly kind: string;
|
|
30
|
+
readonly id: string;
|
|
31
|
+
}
|
|
32
|
+
/** What a link keeps for a far record: `house:h1`. */
|
|
33
|
+
export declare const linkedValue: (ref: Pick<LinkedRecordRef, "kind" | "id">) => string;
|
|
34
|
+
/** The far record a kept value names, read against its relation; undefined when it names none. */
|
|
35
|
+
export declare function linkedRefOf(value: unknown, relation: Pick<LinkedRelation, "address" | "kinds">): LinkedRecordRef | undefined;
|
|
36
|
+
/** Every far record a link's value names — one, or each of many — in order. */
|
|
37
|
+
export declare function linkedRefsOf(value: unknown, relation: Pick<LinkedRelation, "address" | "kinds">): readonly LinkedRecordRef[];
|
|
38
|
+
/** Marks a schema as holding links to records of another app. */
|
|
39
|
+
export declare const markLinked: <T extends object>(schema: T, relation: LinkedRelation) => T;
|
|
40
|
+
/** The relation to another app a field holds — under optional, default and nullable — or undefined. */
|
|
41
|
+
export declare function linkedRelationOf(schema: unknown): LinkedRelation | undefined;
|
|
42
|
+
/** A definition's relations to other apps, by the field each is kept in. */
|
|
43
|
+
export declare function linkedRelations(definition: {
|
|
44
|
+
readonly fields?: unknown;
|
|
45
|
+
} | undefined): ReadonlyMap<string, LinkedRelation>;
|
|
46
|
+
/** A relation as a document declares it: where it goes, how many, and its sentence. */
|
|
47
|
+
interface DeclaredRelation {
|
|
48
|
+
readonly to: readonly string[] | "*";
|
|
49
|
+
readonly cardinality?: "one" | "many" | undefined;
|
|
50
|
+
readonly description?: string | undefined;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The relation to another app a document's relation declares, or undefined
|
|
54
|
+
* for one within the document. Only a relation whose every target is a kind
|
|
55
|
+
* of ONE other app is one (`graview check` says `linked-mixed` and
|
|
56
|
+
* `linked-apps` of the rest).
|
|
57
|
+
*/
|
|
58
|
+
export declare function linkedRelationOfSpec(edge: DeclaredRelation): LinkedRelation | undefined;
|
|
59
|
+
/** Whether a document's relation reaches out of the document at all: any of its targets names another app. */
|
|
60
|
+
export declare const reachesAnotherApp: (edge: DeclaredRelation) => boolean;
|
|
61
|
+
/** A document kind's relations within the document, its relations to other apps aside. */
|
|
62
|
+
export declare function localEdges<E extends DeclaredRelation>(edges: Readonly<Record<string, E>> | undefined): Record<string, E>;
|
|
63
|
+
/** A document kind's relations to other apps, by name. */
|
|
64
|
+
export declare function linkedEdges(edges: Readonly<Record<string, DeclaredRelation>> | undefined): Map<string, LinkedRelation>;
|
|
65
|
+
/** A far record as the host says it to one viewer. */
|
|
66
|
+
export interface LinkedRecord {
|
|
67
|
+
readonly address: string;
|
|
68
|
+
readonly kind: string;
|
|
69
|
+
readonly id: string;
|
|
70
|
+
/** What it is called in its own app: its label there. */
|
|
71
|
+
readonly label: string;
|
|
72
|
+
/** Its describe line there, where its kind has one. */
|
|
73
|
+
readonly describe?: string;
|
|
74
|
+
/** Its card's lines there — a glance at it, field by field, in words — after its title. */
|
|
75
|
+
readonly card?: readonly {
|
|
76
|
+
readonly label: string;
|
|
77
|
+
readonly text: string;
|
|
78
|
+
}[];
|
|
79
|
+
/** The fields this viewer may see there, as values, for an expression to walk (`forHouse.listPrice`). Nothing they may not see. */
|
|
80
|
+
readonly fields: Readonly<Record<string, unknown>>;
|
|
81
|
+
/** Where it opens in its own app: a path on the host or an http(s) address. */
|
|
82
|
+
readonly href?: string;
|
|
83
|
+
/** Its app's name, as the host says it. */
|
|
84
|
+
readonly app?: string;
|
|
85
|
+
}
|
|
86
|
+
/** The host's answer for one far record and one viewer: the record; `{ denied: true }` when they may not open its app; null when there is no such record. */
|
|
87
|
+
export type LinkedRecordAnswer = LinkedRecord | {
|
|
88
|
+
readonly denied: true;
|
|
89
|
+
} | null;
|
|
90
|
+
/** Who is looking, as the host is told: a principal. */
|
|
91
|
+
export type LinkedViewer = {
|
|
92
|
+
readonly kind: string;
|
|
93
|
+
readonly id?: string | undefined;
|
|
94
|
+
readonly roles?: readonly string[] | undefined;
|
|
95
|
+
};
|
|
96
|
+
/** What linking asks the host for: records of these kinds in that app, matching words. */
|
|
97
|
+
export interface LinkedSearch {
|
|
98
|
+
readonly address: string;
|
|
99
|
+
readonly kinds: readonly string[];
|
|
100
|
+
/** Words a person typed; empty for the first few. */
|
|
101
|
+
readonly query: string;
|
|
102
|
+
readonly limit: number;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* THE HOST'S WAY TO READ ANOTHER APP'S RECORDS (FR-171), beside `resolveApp`
|
|
106
|
+
* and handed where it is — `mount`, `<Embed>`, `GraviewProvider` and the
|
|
107
|
+
* routed face (`PagesApp`) — as `linkedRecords`. Every call is AS THE VIEWER:
|
|
108
|
+
* what it answers is what that viewer may see in the far app, and a viewer
|
|
109
|
+
* who may not open that app is answered `{ denied: true }`. A throw is
|
|
110
|
+
* taken as null.
|
|
111
|
+
*/
|
|
112
|
+
export interface LinkedRecords {
|
|
113
|
+
/** One far record: its label, describe line, card and the fields this viewer may see; denied; or null. */
|
|
114
|
+
resolve(ref: LinkedRecordRef, viewer: LinkedViewer): Promise<LinkedRecordAnswer>;
|
|
115
|
+
/** The records a link may pick, for this viewer: at most `limit`, best first; denied when they may not open the app. */
|
|
116
|
+
find(search: LinkedSearch, viewer: LinkedViewer): Promise<readonly LinkedRecord[] | {
|
|
117
|
+
readonly denied: true;
|
|
118
|
+
}>;
|
|
119
|
+
/**
|
|
120
|
+
* THE NAVIGATION SEAM: open the far record in its own app. Where a host
|
|
121
|
+
* gives it, pressing a linked record calls it rather than following its
|
|
122
|
+
* `href` (an app on the same host opening in place); otherwise the
|
|
123
|
+
* record's `href` is followed.
|
|
124
|
+
*/
|
|
125
|
+
open?(ref: LinkedRecordRef, viewer: LinkedViewer): void;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* A FAR RECORD AS AN EXPRESSION READS IT, at once: the host's answer once it
|
|
129
|
+
* is in; `denied`; or `unread` — not asked yet, not answered yet, no host to
|
|
130
|
+
* ask, or no such record. An expression never waits and never throws for
|
|
131
|
+
* one: it reads nothing, and says which.
|
|
132
|
+
*/
|
|
133
|
+
export type LinkedRead = {
|
|
134
|
+
readonly record: LinkedRecord;
|
|
135
|
+
} | {
|
|
136
|
+
readonly denied: true;
|
|
137
|
+
} | {
|
|
138
|
+
readonly unread: true;
|
|
139
|
+
};
|
|
140
|
+
/** How the rule language reads a far record: at once, from what has been answered. */
|
|
141
|
+
export type LinkedReader = (ref: LinkedRecordRef) => LinkedRead;
|
|
142
|
+
/** Read far records through `reader` for every expression judged over `graph`; undefined stops. */
|
|
143
|
+
export declare function readLinkedThrough(graph: object, reader: LinkedReader | undefined): void;
|
|
144
|
+
/** The reader a graph's far records are read through, if any. */
|
|
145
|
+
export declare const linkedReaderOf: (graph: object) => LinkedReader | undefined;
|
|
146
|
+
export {};
|
|
147
|
+
//# sourceMappingURL=linked.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked.d.ts","sourceRoot":"","sources":["../../src/schema/linked.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { isAppAddress } from "./app-address.js";
|
|
2
|
+
/*
|
|
3
|
+
* Nothing of zod here: the rule language reads a link through this module,
|
|
4
|
+
* and a page that judges a rule carries no zod for it. A schema's
|
|
5
|
+
* definition is read where zod keeps it; the schema a link is kept in is
|
|
6
|
+
* `linked-schema.ts`'s.
|
|
7
|
+
*/
|
|
8
|
+
const defOf = (schema) => typeof schema === "object" && schema !== null ? schema._zod?.def : undefined;
|
|
9
|
+
/*
|
|
10
|
+
* A RELATION TO A KIND IN ANOTHER APP (FR-171, the full relation).
|
|
11
|
+
*
|
|
12
|
+
* 0.1.29's `app-link` field named another app. This names a RECORD there:
|
|
13
|
+
* a relation whose `to` is `@<app address>/<kind>` —
|
|
14
|
+
*
|
|
15
|
+
* "edges": { "forHouse": { "to": ["@nick/house/house"], "cardinality": "one" } }
|
|
16
|
+
*
|
|
17
|
+
* — and linking one picks a record in that app; the far document is never
|
|
18
|
+
* touched. The record that links keeps which one, as a value of its own
|
|
19
|
+
* (`house:h1`, the far kind and its id), so the edit that sets it, its undo,
|
|
20
|
+
* its history and who may see it are the reading app's like any field's.
|
|
21
|
+
* What the far record IS — its card, its describe line, the fields this
|
|
22
|
+
* viewer may see there — is the host's to say, as the viewer
|
|
23
|
+
* (`LinkedRecords`); a viewer who may not open the far app sees "linked
|
|
24
|
+
* record (no access)" and nothing of it.
|
|
25
|
+
*
|
|
26
|
+
* This module is what a page builds a document's fields with, and what the
|
|
27
|
+
* rule language reads a link through, so it holds that and no more. What
|
|
28
|
+
* draws one is `@graview/primitives`'s, fetched with the first one drawn;
|
|
29
|
+
* the in-memory host, the history of a far change and the words for a
|
|
30
|
+
* relation are `@graview/core/linked`'s.
|
|
31
|
+
*/
|
|
32
|
+
/** A kind in another app, as a relation's `to` names it: `@` + the app's address + `/` + the kind. */
|
|
33
|
+
export const LINKED_TARGET = /^@(?:https?:\/\/[^\s<>"'`\\#?]+|[A-Za-z0-9][\w.~-]*(?:\/[\w.~-]+)*)\/[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
|
|
34
|
+
/**
|
|
35
|
+
* THE APP AND THE KIND A RELATION'S TARGET NAMES — or undefined when it names
|
|
36
|
+
* a kind of this document. The address is what an app-link field would
|
|
37
|
+
* hold for that app: `@nick/house/house` is the kind `house` of `@nick/house`;
|
|
38
|
+
* `@app_kf5eydr9z58jzf/house` of the app with that id; `@https://x.dev/a/house`
|
|
39
|
+
* of the app at `https://x.dev/a`.
|
|
40
|
+
*/
|
|
41
|
+
export function parseLinkedTarget(target) {
|
|
42
|
+
if (typeof target !== "string" || !target.startsWith("@") || !LINKED_TARGET.test(target))
|
|
43
|
+
return undefined;
|
|
44
|
+
const cut = target.lastIndexOf("/");
|
|
45
|
+
const body = target.slice(0, cut);
|
|
46
|
+
const kind = target.slice(cut + 1);
|
|
47
|
+
// `@owner/app` keeps its @, as an app-link holds it; an id or an http(s) address does not have one.
|
|
48
|
+
const address = /^@https?:\/\//.test(body) || !body.includes("/") ? body.slice(1) : body;
|
|
49
|
+
return isAppAddress(address) ? { address, kind } : undefined;
|
|
50
|
+
}
|
|
51
|
+
/** Whether a relation's target is a kind in another app. */
|
|
52
|
+
export const isLinkedTarget = (target) => typeof target === "string" && parseLinkedTarget(target) !== undefined;
|
|
53
|
+
/*
|
|
54
|
+
* WHAT A LINK KEEPS: `<kind>:<id>` — the far kind and the id its app knows
|
|
55
|
+
* it by. A kind is a word with no colon, so the first colon divides them.
|
|
56
|
+
*/
|
|
57
|
+
const KEPT = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*:\S[^\n]{0,199}$/;
|
|
58
|
+
/** What a link keeps for a far record: `house:h1`. */
|
|
59
|
+
export const linkedValue = (ref) => `${ref.kind}:${ref.id}`;
|
|
60
|
+
/** The far record a kept value names, read against its relation; undefined when it names none. */
|
|
61
|
+
export function linkedRefOf(value, relation) {
|
|
62
|
+
if (typeof value !== "string" || !KEPT.test(value))
|
|
63
|
+
return undefined;
|
|
64
|
+
const at = value.indexOf(":");
|
|
65
|
+
const kind = value.slice(0, at);
|
|
66
|
+
return relation.kinds.includes(kind) ? { address: relation.address, kind, id: value.slice(at + 1) } : undefined;
|
|
67
|
+
}
|
|
68
|
+
/** Every far record a link's value names — one, or each of many — in order. */
|
|
69
|
+
export function linkedRefsOf(value, relation) {
|
|
70
|
+
const values = Array.isArray(value) ? value : value === undefined || value === null ? [] : [value];
|
|
71
|
+
return values.flatMap((one) => {
|
|
72
|
+
const ref = linkedRefOf(one, relation);
|
|
73
|
+
return ref ? [ref] : [];
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/*
|
|
77
|
+
* WHICH FIELDS HOLD A LINK TO ANOTHER APP: a mark on the schema's def, as an
|
|
78
|
+
* app-link is marked, carrying the relation — so a clone shares it, a
|
|
79
|
+
* wrapper holds it inside, and every face, tool and checker reads the
|
|
80
|
+
* relation from the field the record keeps it in.
|
|
81
|
+
*/
|
|
82
|
+
const LINKED = Symbol.for("@graview/core:linked");
|
|
83
|
+
/** Marks a schema as holding links to records of another app. */
|
|
84
|
+
export const markLinked = (schema, relation) => (Object.defineProperty(defOf(schema), LINKED, { value: relation, enumerable: true }), schema);
|
|
85
|
+
/** The relation to another app a field holds — under optional, default and nullable — or undefined. */
|
|
86
|
+
export function linkedRelationOf(schema) {
|
|
87
|
+
const def = defOf(schema);
|
|
88
|
+
return def ? (def[LINKED] ?? linkedRelationOf(def.innerType)) : undefined;
|
|
89
|
+
}
|
|
90
|
+
/** A definition's relations to other apps, by the field each is kept in. */
|
|
91
|
+
export function linkedRelations(definition) {
|
|
92
|
+
const shape = definition?.fields?.shape ?? {};
|
|
93
|
+
const found = new Map();
|
|
94
|
+
for (const [field, schema] of Object.entries(shape)) {
|
|
95
|
+
const relation = linkedRelationOf(schema);
|
|
96
|
+
if (relation)
|
|
97
|
+
found.set(field, relation);
|
|
98
|
+
}
|
|
99
|
+
return found;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The relation to another app a document's relation declares, or undefined
|
|
103
|
+
* for one within the document. Only a relation whose every target is a kind
|
|
104
|
+
* of ONE other app is one (`graview check` says `linked-mixed` and
|
|
105
|
+
* `linked-apps` of the rest).
|
|
106
|
+
*/
|
|
107
|
+
export function linkedRelationOfSpec(edge) {
|
|
108
|
+
if (edge.to === "*" || edge.to.length === 0)
|
|
109
|
+
return undefined;
|
|
110
|
+
const targets = edge.to.map(parseLinkedTarget);
|
|
111
|
+
if (targets.some((target) => !target))
|
|
112
|
+
return undefined;
|
|
113
|
+
const address = targets[0].address;
|
|
114
|
+
if (targets.some((target) => target.address !== address))
|
|
115
|
+
return undefined;
|
|
116
|
+
return { address, kinds: [...new Set(targets.map((target) => target.kind))], cardinality: edge.cardinality ?? "many", ...(edge.description ? { description: edge.description } : {}) };
|
|
117
|
+
}
|
|
118
|
+
/** Whether a document's relation reaches out of the document at all: any of its targets names another app. */
|
|
119
|
+
export const reachesAnotherApp = (edge) => edge.to !== "*" && edge.to.some((target) => typeof target === "string" && target.startsWith("@"));
|
|
120
|
+
/** A document kind's relations within the document, its relations to other apps aside. */
|
|
121
|
+
export function localEdges(edges) {
|
|
122
|
+
return Object.fromEntries(Object.entries(edges ?? {}).filter(([, edge]) => !reachesAnotherApp(edge)));
|
|
123
|
+
}
|
|
124
|
+
/** A document kind's relations to other apps, by name. */
|
|
125
|
+
export function linkedEdges(edges) {
|
|
126
|
+
const found = new Map();
|
|
127
|
+
for (const [name, edge] of Object.entries(edges ?? {})) {
|
|
128
|
+
const relation = linkedRelationOfSpec(edge);
|
|
129
|
+
if (relation)
|
|
130
|
+
found.set(name, relation);
|
|
131
|
+
}
|
|
132
|
+
return found;
|
|
133
|
+
}
|
|
134
|
+
/*
|
|
135
|
+
* WHERE A GRAPH'S FAR RECORDS ARE READ FROM, for whoever is looking at it:
|
|
136
|
+
* a page registers its store's graph once, with the reader of its viewer,
|
|
137
|
+
* and every computed field, rule and template judged over that graph walks
|
|
138
|
+
* a link through it. A seat's own graph (`store.seenBy`) is registered by
|
|
139
|
+
* whoever serves the seat. A graph with none reads every far record unread.
|
|
140
|
+
*/
|
|
141
|
+
const READERS = new WeakMap();
|
|
142
|
+
/** Read far records through `reader` for every expression judged over `graph`; undefined stops. */
|
|
143
|
+
export function readLinkedThrough(graph, reader) {
|
|
144
|
+
if (reader)
|
|
145
|
+
READERS.set(graph, reader);
|
|
146
|
+
else
|
|
147
|
+
READERS.delete(graph);
|
|
148
|
+
}
|
|
149
|
+
/** The reader a graph's far records are read through, if any. */
|
|
150
|
+
export const linkedReaderOf = (graph) => READERS.get(graph);
|
|
151
|
+
//# sourceMappingURL=linked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked.js","sourceRoot":"","sources":["../../src/schema/linked.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../../src/schema/reading.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"reading.d.ts","sourceRoot":"","sources":["../../src/schema/reading.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAYnF,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAWhE;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAC1E,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,GAC5D,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BrB;AAGD,wEAAwE;AACxE,wBAAgB,YAAY,CAC1B,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3D,MAAM,CAKR;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,OAAO,GAAE;IACP,mFAAmF;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAChD;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,iHAAiH;IACjH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACL,SAAS,aAAa,EAAE,CAkI1B;AA4DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAI1G;AAED,qFAAqF;AACrF,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAa5J"}
|
package/dist/schema/reading.js
CHANGED
|
@@ -3,6 +3,7 @@ import { fieldWords, labelOf, nounOf } from "./define-node.js";
|
|
|
3
3
|
import { valueWords } from "./value-words.js";
|
|
4
4
|
import { filesOf } from "./files.js";
|
|
5
5
|
import { isAppLinkField } from "./app-link.js";
|
|
6
|
+
import { linkedRefsOf, linkedRelationOf } from "./linked.js";
|
|
6
7
|
import { repeatingDateAsRead } from "../repeat-words.js";
|
|
7
8
|
import { isRepeatField } from "../repeat.js";
|
|
8
9
|
import { isMarkdownField } from "./markdown.js";
|
|
@@ -95,6 +96,13 @@ function saysAsWords(line, value) {
|
|
|
95
96
|
export function readableFields(node, definition, options = {}) {
|
|
96
97
|
const display = definition?.display;
|
|
97
98
|
const skip = new Set([...NOT_A_FIELD, ...(display?.hide ?? [])]);
|
|
99
|
+
/*
|
|
100
|
+
* A FIELD CALLED `label` IS THE NAME ONLY WHERE IT IS WHAT THE RECORD IS
|
|
101
|
+
* CALLED. A release named by its `name` whose `label` is "Parlophone"
|
|
102
|
+
* keeps its record label as a fact like any other field.
|
|
103
|
+
*/
|
|
104
|
+
if (typeof node["label"] === "string" && definition?.label && !labelOf(definition, node).includes(node["label"]))
|
|
105
|
+
skip.delete("label");
|
|
98
106
|
const said = (options.said ?? []).filter((text) => Boolean(text));
|
|
99
107
|
const stems = said
|
|
100
108
|
.filter((text) => text.endsWith("…"))
|
|
@@ -114,7 +122,14 @@ export function readableFields(node, definition, options = {}) {
|
|
|
114
122
|
// Unchosen, a glance leads with who made the record and when, where the kind's roles say (`fieldRoles.who`, `.when`).
|
|
115
123
|
const roles = definition?.fieldRoles;
|
|
116
124
|
const chosen = options.glance ? (display?.glance ?? [roles?.["who"], roles?.["when"]].filter((key) => !!key)) : pageOrder(display?.page);
|
|
117
|
-
|
|
125
|
+
/*
|
|
126
|
+
* A GLANCE THE DECLARATION CHOSE IS SAID EXACTLY: its fields and no
|
|
127
|
+
* others. It was the order only, so a card went on to say whatever came
|
|
128
|
+
* next in the kind — a finding's confidence, after its author took it
|
|
129
|
+
* out of the glance, still read "Critical · Security · High".
|
|
130
|
+
*/
|
|
131
|
+
const exact = options.glance && display?.glance !== undefined;
|
|
132
|
+
const keys = [...new Set(exact ? chosen : [...chosen, ...declaredOrder(definition), ...Object.keys(node)])].filter((key) => Object.hasOwn(node, key));
|
|
118
133
|
const entries = keys.map((key) => [key, node[key]]);
|
|
119
134
|
for (const [key, value] of entries) {
|
|
120
135
|
if (skip.has(key) || value === undefined || value === null)
|
|
@@ -130,6 +145,15 @@ export function readableFields(node, definition, options = {}) {
|
|
|
130
145
|
const markdown = !format && typeof value === "string" && isMarkdownField(schema);
|
|
131
146
|
if (app && options.glance)
|
|
132
147
|
continue;
|
|
148
|
+
/*
|
|
149
|
+
* A RECORD IN ANOTHER APP (FR-171) is drawn as that record — its card and
|
|
150
|
+
* describe line, read there as the viewer — never as what the link keeps
|
|
151
|
+
* (`house:h1`); a glance leaves it out of its words, as it does an app.
|
|
152
|
+
*/
|
|
153
|
+
const relation = format ? undefined : linkedRelationOf(schema);
|
|
154
|
+
const linked = relation ? { relation, refs: linkedRefsOf(value, relation) } : undefined;
|
|
155
|
+
if (linked && (options.glance || linked.refs.length === 0))
|
|
156
|
+
continue;
|
|
133
157
|
/*
|
|
134
158
|
* A NESTED OBJECT HAS NO ONE-LINE RENDERING, and inventing one is worse
|
|
135
159
|
* than leaving it to a view that knows what it is.
|
|
@@ -159,30 +183,32 @@ export function readableFields(node, definition, options = {}) {
|
|
|
159
183
|
const href = typedHref(typed, value);
|
|
160
184
|
// A number said as its field declares it: money in the app's currency, a fraction as a percent ("$10,000", never 10000).
|
|
161
185
|
const amount = !format && !typed && typeof value === "number" ? amountOf(definition?.fields?.shape?.[key]) : undefined;
|
|
162
|
-
const whole =
|
|
163
|
-
?
|
|
164
|
-
:
|
|
165
|
-
?
|
|
166
|
-
:
|
|
167
|
-
(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
:
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
?
|
|
183
|
-
: typeof value === "string" &&
|
|
184
|
-
?
|
|
185
|
-
:
|
|
186
|
+
const whole = linked
|
|
187
|
+
? linked.refs.length > 1 ? `${linked.refs.length} linked records` : "linked record"
|
|
188
|
+
: format
|
|
189
|
+
? format(value)
|
|
190
|
+
: amount
|
|
191
|
+
? sayAmount(value, amount)
|
|
192
|
+
: typedWords(typed, value, options.locale) ??
|
|
193
|
+
(Array.isArray(value) || typeof value === "boolean"
|
|
194
|
+
? // Nobody says "false". A boolean is a state, and the words for a
|
|
195
|
+
// state are words.
|
|
196
|
+
stored
|
|
197
|
+
: typeof value === "string" && repeated !== undefined
|
|
198
|
+
? repeated
|
|
199
|
+
: /*
|
|
200
|
+
* A DAY AS A PERSON READS IT ("Aug 28, 2026"), on a glance and in a
|
|
201
|
+
* record's facts alike; the edit control holds it as it is written
|
|
202
|
+
* (`stored`). And a CHOICE as it is declared — its `display.format`,
|
|
203
|
+
* else the value spoken — never the code it is kept as ("tue").
|
|
204
|
+
*/
|
|
205
|
+
typeof value === "string" && ISO_DAY.test(value)
|
|
206
|
+
? dayAsRead(value, options.locale)
|
|
207
|
+
: typeof value === "string" && ISO_MOMENT.test(value)
|
|
208
|
+
? momentAsRead(value, options.locale)
|
|
209
|
+
: typeof value === "string" && isChoice(definition, key)
|
|
210
|
+
? valueWords(definition, key, value)
|
|
211
|
+
: stored);
|
|
186
212
|
const long = typeof value === "string" && isLongText(definition, key, whole);
|
|
187
213
|
/*
|
|
188
214
|
* A GLANCE SAYS PROSE BY ITS START (FR-180): its first paragraph, line
|
|
@@ -198,11 +224,40 @@ export function readableFields(node, definition, options = {}) {
|
|
|
198
224
|
const alone =
|
|
199
225
|
// A yes or no the kind words itself ("Not yet inducted") is said whole; "Inducted: not yet inducted" said it twice (W-187).
|
|
200
226
|
typeof value === "number" ? `${label} ${text}` : typeof value === "boolean" && !format ? `${label}: ${text.toLowerCase()}` : text;
|
|
201
|
-
fields.push({ key, label, value: text, stored, alone, long, ...(markdown ? { markdown: true } : {}), ...(files[0] ? { files } : {}), ...(app ? { app } : {}), ...(href ? { href } : {}), ...(isRepeatField(shapeOf?.[`${key}Repeat`]) ? { repeats: true } : {}) });
|
|
227
|
+
fields.push({ key, label, value: text, stored, alone, long, ...(markdown ? { markdown: true } : {}), ...(files[0] ? { files } : {}), ...(app ? { app } : {}), ...(linked ? { linked } : {}), ...(href ? { href } : {}), ...(isRepeatField(shapeOf?.[`${key}Repeat`]) ? { repeats: true } : {}) });
|
|
202
228
|
if (options.limit !== undefined && fields.length >= options.limit)
|
|
203
229
|
break;
|
|
204
230
|
}
|
|
205
|
-
return fields;
|
|
231
|
+
return namedWhereAlike(fields, definition);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* A CHOICE SAID WITH ITS FIELD'S NAME WHERE ANOTHER FIELD SHOWN BESIDE IT
|
|
235
|
+
* SHARES A CHOICE: a finding's severity and its confidence can both be
|
|
236
|
+
* "high", and a card reading "Critical · Security · High" did not say
|
|
237
|
+
* which was high. Alone on a chip, each of those reads "Confidence: high";
|
|
238
|
+
* a choice no field beside it shares is said bare.
|
|
239
|
+
*/
|
|
240
|
+
function namedWhereAlike(fields, definition) {
|
|
241
|
+
const choices = new Map();
|
|
242
|
+
for (const field of fields) {
|
|
243
|
+
const options = choicesOf(definition, field.key);
|
|
244
|
+
if (options)
|
|
245
|
+
choices.set(field.key, new Set(options.map((option) => valueWords(definition, field.key, option).toLowerCase())));
|
|
246
|
+
}
|
|
247
|
+
if (choices.size < 2)
|
|
248
|
+
return fields;
|
|
249
|
+
return fields.map((field) => {
|
|
250
|
+
const own = choices.get(field.key);
|
|
251
|
+
const alike = own !== undefined && [...choices].some(([key, others]) => key !== field.key && [...own].some((word) => others.has(word)));
|
|
252
|
+
return alike ? { ...field, alone: `${field.label}: ${field.value.toLowerCase()}` } : field;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
/** A choice field's choices (`z.enum`), under optional, default and nullable; undefined when it is not one. */
|
|
256
|
+
function choicesOf(definition, key) {
|
|
257
|
+
let at = definition?.fields?.shape?.[key];
|
|
258
|
+
for (let depth = 0; depth < 6 && at?._zod?.def?.innerType !== undefined; depth++)
|
|
259
|
+
at = at._zod.def.innerType;
|
|
260
|
+
return at?._zod?.def?.type === "enum" && at._zod.def.entries ? Object.values(at._zod.def.entries).map(String) : undefined;
|
|
206
261
|
}
|
|
207
262
|
/** Whether a field is one of a declared set of values (`z.enum`), under optional, default and nullable. */
|
|
208
263
|
function isChoice(definition, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reading.js","sourceRoot":"","sources":["../../src/schema/reading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAsB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD;;;;;;;GAOG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,KAA0E,EAC1E,YAA6D;IAE7D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACnC,4EAA4E;YAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1D,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnI,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,wEAAwE;YACxE,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/G,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;gBACzB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAC1B,UAAyC,EACzC,IAA4D;IAE5D,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;AACrD,CAAC;AAGD,wEAAwE;AACxE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAGrD,iHAAiH;AACjH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,IAAI,MAAM,CAAC,gBAAgB,OAAO,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA6B,EAC7B,UAAyC,EACzC,UAqBI,EAAE;IAEN,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,IAAI;SACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,OAAO,GAAI,UAAU,EAAE,MAA0D,EAAE,KAAK,CAAC;IAC/F;;;;;;;;OAQG;IACH,sHAAsH;IACtH,MAAM,KAAK,GAAG,UAAU,EAAE,UAAU,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxJ,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACrI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAU,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACrE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACtC,4FAA4F;QAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM;YAAE,SAAS;QACzC,4EAA4E;QAC5E,MAAM,MAAM,GAAI,UAAU,EAAE,MAA0D,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QACrG,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM;YAAE,SAAS;QACpC;;;;;;;;;;;;;;;WAeG;QACH,MAAM,MAAM,GACV,CAAC,KAAK,CAAC,CAAC,CAAC;YACT,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,MAAM,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QAC7C,gFAAgF;QAChF,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjJ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxO,+EAA+E;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,yHAAyH;QACzH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAE,UAAU,EAAE,MAA0D,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5K,MAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,SAAS,CAAC,KAAe,EAAE,MAAM,CAAC;gBACpC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;oBAC1C,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS;wBACnD,CAAC,CAAC,iEAAiE;4BACjE,mBAAmB;4BACnB,MAAM;wBACR,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS;4BACnD,CAAC,CAAC,QAAQ;4BACZ,CAAC,CAAC;;;;;iCAKG;gCACH,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;oCAChD,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;oCAClC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;wCACrD,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;wCACrC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;4CACtD,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC;4CACpC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7E;;;;WAIG;QACH,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE3H,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACjF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAAE,SAAS;QACzI,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,KAAK;QACT,4HAA4H;QAC5H,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpI,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrR,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2GAA2G;AAC3G,SAAS,QAAQ,CAAC,UAAyC,EAAE,GAAW;IACtE,IAAI,EAAE,GAAI,UAAU,EAAE,MAA0D,EAAE,KAAK,EAAE,CAAC,GAAG,CAA4E,CAAC;IAC1K,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,KAAK,SAAS,EAAE,KAAK,EAAE;QAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAsB,CAAC;IAC1H,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;AACxC,CAAC;AAED,uEAAuE;AACvE,SAAS,aAAa,CAAC,UAAyC;IAC9D,MAAM,KAAK,GAAI,UAAU,EAAE,MAA0D,EAAE,KAAK,CAAC;IAC7F,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAE,UAAgD,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1H,CAAC;AAED,iGAAiG;AACjG,SAAS,SAAS,CAAC,IAA4B;IAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,iHAAiH;AACjH,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,iGAAiG;AACjG,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,8DAA8D;AAC9D,SAAS,YAAY,CAAC,MAAe;IACnC,IAAI,EAAE,GAAG,MAAiG,CAAC;IAC3G,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,KAAK,SAAS,EAAE,KAAK,EAAE;QAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAsB,CAAC;IAC1H,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,UAAyC,EAAE,GAAW,EAAE,KAAc;IAC/F,MAAM,KAAK,GAAG,YAAY,CAAE,UAAU,EAAE,MAA0D,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClH,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1I,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;AAC5F,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAqC,UAAyC,EAAE,MAAoB;IAC9H,MAAM,IAAI,GAAG,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,IAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAsB;QAClC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;QAC7E,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9E,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;IACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
|
|
1
|
+
{"version":3,"file":"reading.js","sourceRoot":"","sources":["../../src/schema/reading.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/schema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MARKS } from "../graph/archived.js";
|
|
2
2
|
import * as z from "./zod.js";
|
|
3
3
|
export class SchemaError extends Error {
|
|
4
4
|
hint;
|
|
@@ -98,10 +98,17 @@ computed) {
|
|
|
98
98
|
if (!parser) {
|
|
99
99
|
throw new SchemaError(`Unknown node kind "${kind}"`, `Declared kinds: ${[...byKind.keys()].join(", ")}`);
|
|
100
100
|
}
|
|
101
|
-
// The
|
|
102
|
-
const
|
|
101
|
+
// The framework's marks — archived (FR-173), left alone — are not fields the kind declares: kept, never judged.
|
|
102
|
+
const fields = {};
|
|
103
|
+
const marks = {};
|
|
104
|
+
for (const [key, value] of Object.entries(node)) {
|
|
105
|
+
if (!MARKS.has(key))
|
|
106
|
+
fields[key] = value;
|
|
107
|
+
else if (value === true)
|
|
108
|
+
marks[key] = true;
|
|
109
|
+
}
|
|
103
110
|
const parsed = parser.parse(fields);
|
|
104
|
-
return
|
|
111
|
+
return Object.keys(marks).length > 0 ? { ...parsed, ...marks } : parsed;
|
|
105
112
|
},
|
|
106
113
|
__node: undefined,
|
|
107
114
|
};
|