@graview/core 0.1.54 → 0.1.56
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/dist/alias-findings.d.ts +40 -0
- package/dist/alias-findings.d.ts.map +1 -0
- package/dist/alias-findings.js +95 -0
- package/dist/alias-findings.js.map +1 -0
- package/dist/app.d.ts +13 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/arranging.d.ts +6 -1
- package/dist/arranging.d.ts.map +1 -1
- package/dist/arranging.js +21 -3
- package/dist/arranging.js.map +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/catalog.d.ts +32 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +17 -1
- package/dist/catalog.js.map +1 -1
- package/dist/check.d.ts +2 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +2 -0
- package/dist/check.js.map +1 -1
- package/dist/cli/check/aliases.d.ts +11 -0
- package/dist/cli/check/aliases.d.ts.map +1 -0
- package/dist/cli/check/aliases.js +17 -0
- package/dist/cli/check/aliases.js.map +1 -0
- package/dist/cli/check/context.d.ts +2 -0
- package/dist/cli/check/context.d.ts.map +1 -1
- package/dist/cli/check/context.js.map +1 -1
- 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/jobs.d.ts +12 -0
- package/dist/cli/check/jobs.d.ts.map +1 -0
- package/dist/cli/check/jobs.js +25 -0
- package/dist/cli/check/jobs.js.map +1 -0
- package/dist/cli/check.d.ts +13 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +25 -2
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +41 -0
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/document-schema.d.ts.map +1 -1
- package/dist/cli/document-schema.js +7 -0
- package/dist/cli/document-schema.js.map +1 -1
- package/dist/compose.d.ts +99 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +245 -0
- package/dist/compose.js.map +1 -0
- package/dist/conformance/fixtures.d.ts.map +1 -1
- package/dist/conformance/fixtures.js +15 -5
- package/dist/conformance/fixtures.js.map +1 -1
- package/dist/days.d.ts +14 -1
- package/dist/days.d.ts.map +1 -1
- package/dist/days.js +17 -2
- package/dist/days.js.map +1 -1
- package/dist/document/brand-check.d.ts.map +1 -1
- package/dist/document/brand-check.js +6 -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 +11 -5
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +20 -4
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/design-findings.d.ts +32 -0
- package/dist/document/design-findings.d.ts.map +1 -0
- package/dist/document/design-findings.js +593 -0
- package/dist/document/design-findings.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 +303 -16
- package/dist/document/edit.js.map +1 -1
- package/dist/document/field-spec.d.ts.map +1 -1
- package/dist/document/field-spec.js +3 -2
- package/dist/document/field-spec.js.map +1 -1
- package/dist/document/findings.d.ts +8 -2
- package/dist/document/findings.d.ts.map +1 -1
- package/dist/document/findings.js +4 -3
- package/dist/document/findings.js.map +1 -1
- package/dist/document/graview-template.d.ts +3 -3
- package/dist/document/purpose-spec.d.ts +37 -0
- package/dist/document/purpose-spec.d.ts.map +1 -0
- package/dist/document/purpose-spec.js +41 -0
- package/dist/document/purpose-spec.js.map +1 -0
- package/dist/document/schema.d.ts +29 -11
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +26 -0
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template.js +2 -2
- package/dist/document/template.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +5 -1
- package/dist/document/to-document.js.map +1 -1
- package/dist/document.schema.json +146 -2
- package/dist/friction-record.d.ts +52 -0
- package/dist/friction-record.d.ts.map +1 -0
- package/dist/friction-record.js +36 -0
- package/dist/friction-record.js.map +1 -0
- package/dist/friction.d.ts +209 -0
- package/dist/friction.d.ts.map +1 -0
- package/dist/friction.js +302 -0
- package/dist/friction.js.map +1 -0
- package/dist/import/coerce.d.ts.map +1 -1
- package/dist/import/coerce.js +3 -1
- package/dist/import/coerce.js.map +1 -1
- package/dist/import/rows.d.ts +8 -0
- package/dist/import/rows.d.ts.map +1 -1
- package/dist/import/rows.js +19 -3
- package/dist/import/rows.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/job-findings.d.ts +39 -0
- package/dist/job-findings.d.ts.map +1 -0
- package/dist/job-findings.js +171 -0
- package/dist/job-findings.js.map +1 -0
- package/dist/job-shape.d.ts +57 -0
- package/dist/job-shape.d.ts.map +1 -0
- package/dist/job-shape.js +5 -0
- package/dist/job-shape.js.map +1 -0
- package/dist/jobs.d.ts +62 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +112 -0
- package/dist/jobs.js.map +1 -0
- package/dist/learn.d.ts +151 -0
- package/dist/learn.d.ts.map +1 -0
- package/dist/learn.js +520 -0
- package/dist/learn.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 +2 -2
- package/dist/mutations/arg-shape.js.map +1 -1
- package/dist/mutations/define-mutation.d.ts.map +1 -1
- package/dist/mutations/define-mutation.js +25 -2
- package/dist/mutations/define-mutation.js.map +1 -1
- package/dist/mutations/derive-edits.d.ts.map +1 -1
- package/dist/mutations/derive-edits.js +17 -3
- package/dist/mutations/derive-edits.js.map +1 -1
- package/dist/mutations/derive-relations.d.ts +8 -3
- package/dist/mutations/derive-relations.d.ts.map +1 -1
- package/dist/mutations/derive-relations.js +18 -7
- package/dist/mutations/derive-relations.js.map +1 -1
- package/dist/mutations/form.d.ts +2 -0
- package/dist/mutations/form.d.ts.map +1 -1
- package/dist/mutations/form.js +1 -1
- package/dist/mutations/form.js.map +1 -1
- package/dist/mutations/types.d.ts +7 -0
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/ops/tidying.d.ts.map +1 -1
- package/dist/ops/tidying.js +3 -0
- package/dist/ops/tidying.js.map +1 -1
- package/dist/schema/choice-words.d.ts +16 -0
- package/dist/schema/choice-words.d.ts.map +1 -0
- package/dist/schema/choice-words.js +31 -0
- package/dist/schema/choice-words.js.map +1 -0
- package/dist/schema/define-node.d.ts +2 -1
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +3 -15
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/humanize.d.ts +3 -0
- package/dist/schema/humanize.d.ts.map +1 -0
- package/dist/schema/humanize.js +18 -0
- package/dist/schema/humanize.js.map +1 -0
- package/dist/schema/json-schema.d.ts.map +1 -1
- package/dist/schema/json-schema.js +2 -1
- package/dist/schema/json-schema.js.map +1 -1
- package/dist/schema/reading.d.ts.map +1 -1
- package/dist/schema/reading.js +10 -2
- package/dist/schema/reading.js.map +1 -1
- package/dist/schema/types.d.ts +9 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +2 -0
- package/dist/search.js.map +1 -1
- package/dist/sync/connection.js +1 -1
- package/dist/theme/accent.d.ts.map +1 -1
- package/dist/theme/accent.js +2 -2
- package/dist/theme/accent.js.map +1 -1
- package/dist/theme/derive.d.ts +10 -1
- package/dist/theme/derive.d.ts.map +1 -1
- package/dist/theme/derive.js +1 -1
- package/dist/theme/derive.js.map +1 -1
- package/dist/theme/ground-check.d.ts +12 -0
- package/dist/theme/ground-check.d.ts.map +1 -1
- package/dist/theme/ground-check.js +37 -11
- package/dist/theme/ground-check.js.map +1 -1
- package/dist/theme/ground.d.ts +28 -7
- package/dist/theme/ground.d.ts.map +1 -1
- package/dist/theme/ground.js +62 -18
- package/dist/theme/ground.js.map +1 -1
- package/dist/tidying.d.ts +10 -0
- package/dist/tidying.d.ts.map +1 -1
- package/dist/tidying.js +17 -0
- package/dist/tidying.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/when-typed.d.ts +7 -0
- package/dist/when-typed.d.ts.map +1 -1
- package/dist/when-typed.js +24 -0
- package/dist/when-typed.js.map +1 -1
- package/dist/words.d.ts +1 -1
- package/dist/words.d.ts.map +1 -1
- package/dist/words.js +1 -1
- package/dist/words.js.map +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-findings.js","sourceRoot":"","sources":["../../src/document/design-findings.ts"],"names":[],"mappings":"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"}
|
package/dist/document/edit.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export interface EditOptions {
|
|
|
31
31
|
readonly views?: readonly HostView[];
|
|
32
32
|
}
|
|
33
33
|
/** The ops, for tool schemas and the guide. */
|
|
34
|
-
export declare const EDIT_OPS: readonly ["add-kind", "rename-kind", "remove-kind", "add-field", "rename-field", "retype-field", "set-options", "set-range", "set-format", "set-required", "set-default", "set-repeats", "remove-field", "add-relation", "rename-relation", "remove-relation", "add-act", "remove-act", "add-rule", "remove-rule", "set-brand", "set-name", "set-description", "set-label", "set-describe", "set-view", "set-glance", "set-page-fields", "add-lens", "remove-lens", "set-lens-hidden", "set-lens-export", "set-home", "arrange-pages", "set-computed", "set-people", "set-archives", "set-tidying", "add-grant", "remove-grant", "add-sight", "remove-sight"];
|
|
34
|
+
export declare const EDIT_OPS: readonly ["add-kind", "rename-kind", "remove-kind", "add-field", "rename-field", "retype-field", "set-options", "set-range", "set-format", "set-required", "set-default", "set-repeats", "remove-field", "add-relation", "rename-relation", "remove-relation", "add-act", "remove-act", "add-rule", "remove-rule", "set-brand", "set-name", "set-description", "set-label", "set-describe", "set-view", "set-glance", "set-page-fields", "add-lens", "remove-lens", "set-lens-hidden", "set-lens-export", "set-home", "arrange-pages", "set-computed", "set-people", "set-archives", "set-tidying", "add-grant", "remove-grant", "add-sight", "remove-sight", "set-purpose", "add-job", "edit-job", "remove-job", "add-alias", "set-aliases"];
|
|
35
35
|
export type EditOp = (typeof EDIT_OPS)[number];
|
|
36
36
|
/** One edit as `editDocument` takes it: an op from EDIT_OPS and that op's own keys. */
|
|
37
37
|
export type DocumentEdit = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/document/edit.ts"],"names":[],"mappings":"AAMA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/document/edit.ts"],"names":[],"mappings":"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"}
|
package/dist/document/edit.js
CHANGED
|
@@ -14,9 +14,13 @@ const refusedFormat = (format, type) => {
|
|
|
14
14
|
return `${sentence}; ${fix}`;
|
|
15
15
|
};
|
|
16
16
|
import { farEnd } from "./far-end.js";
|
|
17
|
+
import { jobFindings, jobWorldOfDocument } from "../job-findings.js";
|
|
18
|
+
import { JobSpec } from "./purpose-spec.js";
|
|
19
|
+
import { aliasWord, documentAliasFindings } from "../alias-findings.js";
|
|
20
|
+
import { humanizeField, withArticle } from "../schema/define-node.js";
|
|
17
21
|
import { linkedRelationFindings } from "./linked-relation-findings.js";
|
|
18
22
|
import { linkedRelationOfSpec, reachesAnotherApp } from "../schema/linked.js";
|
|
19
|
-
import { ActSpec, EDGE_NAME, EdgeSpec, FIELD_NAME, FIELD_TYPES, FieldSpec, GrantSpec, KindSpec, NAME, RuleSpec, SightSpec, } from "./schema.js";
|
|
23
|
+
import { ActSpec, ALIAS, MOST_ALIASES, EDGE_NAME, EdgeSpec, FIELD_NAME, FIELD_TYPES, FieldSpec, GrantSpec, KindSpec, NAME, RuleSpec, SightSpec, } from "./schema.js";
|
|
20
24
|
import { SHIPPED_LENSES, isShippedLens, SHIPPED_LENS_NAMES, unknownLensOption, viewReference } from "../places.js";
|
|
21
25
|
import { LENSES_THAT_LIST, listsRecords } from "../lenses-that-list.js";
|
|
22
26
|
import { placeSlug, VIEW_REFERENCE } from "../views/types.js";
|
|
@@ -33,7 +37,7 @@ import { isRecord as isObject, respellDocument } from "./respell.js";
|
|
|
33
37
|
import { refName } from "./compiled.js";
|
|
34
38
|
import { localeSentence, timeZoneSentence } from "./diff.js";
|
|
35
39
|
import { accentProblem } from "../theme/accent.js";
|
|
36
|
-
import { groundProblem } from "../theme/ground-check.js";
|
|
40
|
+
import { darkPageFor, groundProblem } from "../theme/ground-check.js";
|
|
37
41
|
import { pageFieldFindings, pageNames, renamedOnPage, withoutOnPage } from "./page-fields.js";
|
|
38
42
|
import { capitalize, listed as listOf } from "../capital.js";
|
|
39
43
|
import { quoted } from "./quote.js";
|
|
@@ -82,6 +86,12 @@ export const EDIT_OPS = [
|
|
|
82
86
|
"remove-grant",
|
|
83
87
|
"add-sight",
|
|
84
88
|
"remove-sight",
|
|
89
|
+
"set-purpose",
|
|
90
|
+
"add-job",
|
|
91
|
+
"edit-job",
|
|
92
|
+
"remove-job",
|
|
93
|
+
"add-alias",
|
|
94
|
+
"set-aliases",
|
|
85
95
|
];
|
|
86
96
|
/** Words the rule language keeps: a field or relation renamed to one could not be named in a rule. */
|
|
87
97
|
const KEYWORDS = new Set(["and", "or", "not", "in", "where", "true", "false", "null"]);
|
|
@@ -102,6 +112,7 @@ function buildShapes() {
|
|
|
102
112
|
const edgeName = z.string().regex(EDGE_NAME, 'relation names are one camelCase word, like "tendedBy"');
|
|
103
113
|
const actName = z.string().regex(NAME, 'act names are lower-case words joined by hyphens, like "mark-paid"');
|
|
104
114
|
const lensTitle = z.string().min(1).max(80);
|
|
115
|
+
const jobName = z.string().regex(NAME, 'job names are lower-case words joined by hyphens, like "unbooked-soon"');
|
|
105
116
|
return {
|
|
106
117
|
"add-kind": z.object({ op: z.literal("add-kind"), kind: kindName, act: z.boolean().optional() }).passthrough(),
|
|
107
118
|
"rename-kind": z.object({ op: z.literal("rename-kind"), kind: kindName, to: kindName, noun: z.string().min(1).max(40).optional(), plural: z.string().min(1).max(40).optional() }).strict(),
|
|
@@ -109,7 +120,7 @@ function buildShapes() {
|
|
|
109
120
|
"add-field": z.object({ op: z.literal("add-field"), kind: kindName, field: fieldName, fill: z.unknown().optional(), spec: z.record(z.string(), z.unknown()).optional() }).passthrough(),
|
|
110
121
|
"rename-field": z.object({ op: z.literal("rename-field"), kind: kindName, field: fieldName, to: fieldName }).strict(),
|
|
111
122
|
"retype-field": z.object({ op: z.literal("retype-field"), kind: kindName, field: fieldName, type: z.enum(FIELD_TYPES), options: z.array(z.string().min(1).max(80)).min(1).max(100).optional(), of: z.enum(["string", "number", "date", "image", "video", "file"]).optional(), format: z.enum(["money", "percent", "duration", "markdown"]).optional() }).strict(),
|
|
112
|
-
"set-options": z.object({ op: z.literal("set-options"), kind: kindName, field: fieldName, add: z.array(z.string().min(1).max(80)).optional(), remove: z.array(z.string().min(1).max(80)).optional() }).strict(),
|
|
123
|
+
"set-options": z.object({ op: z.literal("set-options"), kind: kindName, field: fieldName, add: z.array(z.string().min(1).max(80)).optional(), remove: z.array(z.string().min(1).max(80)).optional(), labels: z.record(z.string().min(1).max(80), z.union([z.string().min(1).max(80), z.null()])).optional() }).strict(),
|
|
113
124
|
"set-format": z.object({ op: z.literal("set-format"), kind: kindName, field: fieldName, format: z.union([z.enum(["money", "percent", "duration", "markdown"]), z.null()]).optional(), unit: z.union([z.string().min(1).max(12), z.null()]).optional() }).strict(),
|
|
114
125
|
"set-range": z.object({ op: z.literal("set-range"), kind: kindName, field: fieldName, min: z.union([z.number(), z.null()]).optional(), max: z.union([z.number(), z.null()]).optional(), step: z.union([z.number().positive(), z.null()]).optional() }).strict(),
|
|
115
126
|
"set-required": z.object({ op: z.literal("set-required"), kind: kindName, field: fieldName, required: z.boolean() }).strict(),
|
|
@@ -229,6 +240,28 @@ function buildShapes() {
|
|
|
229
240
|
"remove-grant": z.object({ op: z.literal("remove-grant") }).passthrough(),
|
|
230
241
|
"add-sight": z.object({ op: z.literal("add-sight") }).passthrough(),
|
|
231
242
|
"remove-sight": z.object({ op: z.literal("remove-sight") }).passthrough(),
|
|
243
|
+
// Who the app is for, in words (Roadmap f-app-jobs); null takes the sentence away.
|
|
244
|
+
"set-purpose": z.object({ op: z.literal("set-purpose"), for: z.union([z.string().min(1).max(300), z.null()]) }).strict(),
|
|
245
|
+
// A job as the document holds one (`purpose.jobs[]`), placed at `at` or last.
|
|
246
|
+
"add-job": z.object({ op: z.literal("add-job"), job: z.record(z.string(), z.unknown()), at: z.number().int().min(0).optional() }).strict(),
|
|
247
|
+
// A job by its name, each key given set, null clearing an optional one.
|
|
248
|
+
"edit-job": z
|
|
249
|
+
.object({
|
|
250
|
+
op: z.literal("edit-job"),
|
|
251
|
+
name: jobName,
|
|
252
|
+
ask: z.string().min(1).max(200).optional(),
|
|
253
|
+
kind: kindName.optional(),
|
|
254
|
+
where: z.union([z.string().min(1).max(2000), z.null()]).optional(),
|
|
255
|
+
sort: z.union([listKey, z.object({ by: listKey, direction: listDirection }).strict(), z.null()]).optional(),
|
|
256
|
+
act: z.union([actName, z.null()]).optional(),
|
|
257
|
+
roles: z.union([z.array(z.string().regex(NAME)).min(1).max(40), z.null()]).optional(),
|
|
258
|
+
})
|
|
259
|
+
.strict(),
|
|
260
|
+
"remove-job": z.object({ op: z.literal("remove-job"), name: jobName }).strict(),
|
|
261
|
+
// Another word people use for a kind, or for one of its fields (Roadmap f-learned-suggestions).
|
|
262
|
+
"add-alias": z.object({ op: z.literal("add-alias"), kind: kindName, field: fieldName.optional(), alias: z.string().min(1).max(40) }).strict(),
|
|
263
|
+
// All of a kind's or a field's other words at once; null or [] takes them away.
|
|
264
|
+
"set-aliases": z.object({ op: z.literal("set-aliases"), kind: kindName, field: fieldName.optional(), aliases: z.union([z.array(z.string().min(1).max(40)).max(MOST_ALIASES), z.null()]) }).strict(),
|
|
232
265
|
};
|
|
233
266
|
}
|
|
234
267
|
let shapes;
|
|
@@ -564,9 +597,48 @@ class Editor {
|
|
|
564
597
|
else if (e.accent !== undefined) {
|
|
565
598
|
if (!/^#[0-9a-fA-F]{6}$/.test(e.accent))
|
|
566
599
|
return this.fail(i, "accent", 'an accent is a color like "#c2577a"');
|
|
567
|
-
|
|
600
|
+
}
|
|
601
|
+
/*
|
|
602
|
+
* The accent and the ground are judged together, as the page draws
|
|
603
|
+
* them: the ground first — the words on it — then the
|
|
604
|
+
* accent on the ground it is actually drawn on, this edit's or the
|
|
605
|
+
* app's (Roadmap f-dark-brand-accent), then the whole palette once
|
|
606
|
+
* more, so what is kept is what `checkBrandContrast` passes.
|
|
607
|
+
*/
|
|
608
|
+
const accent = e.accent === null ? undefined : (e.accent ?? brand["accent"]);
|
|
609
|
+
const ground = e.ground === null ? undefined : (e.ground ?? brand["ground"]);
|
|
610
|
+
const json = (value) => JSON.stringify(value).replace(/","/g, '", "').replace(/":"/g, '": "');
|
|
611
|
+
const fixed = (ground, also = "") => `{"op": "set-brand", "ground": ${json(ground)}${also}}`;
|
|
612
|
+
if (e.ground !== undefined && e.ground !== null) {
|
|
613
|
+
// With the accent the app keeps, the ground is judged with it; an accent this edit also sets is judged on the ground next.
|
|
614
|
+
const refused = groundProblem(e.ground, e.accent === undefined ? accent : undefined);
|
|
568
615
|
if (refused)
|
|
569
|
-
return this.fail(i, "
|
|
616
|
+
return this.fail(i, "ground", refused.sentence, refused.suggestion ? fixed(typeof e.ground === "string" ? refused.suggestion : { ...e.ground, [refused.scheme]: refused.suggestion }) : "pick a lighter color for the light scheme, a darker one for the dark");
|
|
617
|
+
}
|
|
618
|
+
if (accent !== undefined && (e.accent !== undefined || e.ground !== undefined)) {
|
|
619
|
+
const unread = accentProblem(accent, ground);
|
|
620
|
+
if (unread) {
|
|
621
|
+
// A bright accent that reads on a dark page is answered with that pair as well as with a darker shade, never refused outright.
|
|
622
|
+
const page = darkPageFor(accent, ground);
|
|
623
|
+
if (e.accent !== undefined) {
|
|
624
|
+
// The shade is judged on this edit's ground, so the fix carries it.
|
|
625
|
+
const withGround = e.ground !== undefined ? `, "ground": ${json(e.ground)}` : "";
|
|
626
|
+
const fixes = [
|
|
627
|
+
...(unread.suggestion ? [`{"op": "set-brand", "accent": "${unread.suggestion}"${withGround}}`] : []),
|
|
628
|
+
...(page ? [`keep ${accent} on a dark page: {"op": "set-brand", "accent": "${accent}", "ground": ${json(page)}}`] : []),
|
|
629
|
+
];
|
|
630
|
+
return this.fail(i, "accent", unread.sentence, fixes.length > 0 ? capitalize(fixes.join(", or ")) : "pick a color of another hue");
|
|
631
|
+
}
|
|
632
|
+
// The accent the app keeps is judged on the new ground as it was on the old (FR-126).
|
|
633
|
+
return this.fail(i, "ground", unread.sentence, unread.suggestion ? fixed(e.ground, `, "accent": "${unread.suggestion}"`) : "pick another ground, or another accent");
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
if (ground !== undefined && (e.accent !== undefined || e.ground !== undefined)) {
|
|
637
|
+
const refused = groundProblem(ground, accent);
|
|
638
|
+
if (refused)
|
|
639
|
+
return this.fail(i, e.ground !== undefined ? "ground" : "accent", refused.sentence, refused.suggestion ? fixed(typeof ground === "string" ? refused.suggestion : { ...ground, [refused.scheme]: refused.suggestion }) : "pick another ground, or another accent");
|
|
640
|
+
}
|
|
641
|
+
if (e.accent !== undefined && e.accent !== null) {
|
|
570
642
|
brand["accent"] = e.accent;
|
|
571
643
|
this.said.push(`The app's accent color becomes ${e.accent}.`);
|
|
572
644
|
}
|
|
@@ -576,15 +648,6 @@ class Editor {
|
|
|
576
648
|
delete brand["ground"];
|
|
577
649
|
}
|
|
578
650
|
else if (e.ground !== undefined) {
|
|
579
|
-
const accent = brand["accent"];
|
|
580
|
-
const refused = groundProblem(e.ground, accent);
|
|
581
|
-
const fixed = (ground, also = "") => `{"op": "set-brand", "ground": ${JSON.stringify(ground).replace(/","/g, '", "').replace(/":"/g, '": "')}${also}}`;
|
|
582
|
-
if (refused)
|
|
583
|
-
return this.fail(i, "ground", refused.sentence, refused.suggestion ? fixed(typeof e.ground === "string" ? refused.suggestion : { ...e.ground, [refused.scheme]: refused.suggestion }) : "pick a lighter color for the light scheme, a darker one for the dark");
|
|
584
|
-
// The accent the app keeps is judged on the new ground as it was on the old (FR-126).
|
|
585
|
-
const unread = accent ? accentProblem(accent, e.ground) : null;
|
|
586
|
-
if (unread)
|
|
587
|
-
return this.fail(i, "ground", unread.sentence, unread.suggestion ? fixed(e.ground, `, "accent": "${unread.suggestion}"`) : "pick another ground, or another accent");
|
|
588
651
|
brand["ground"] = e.ground;
|
|
589
652
|
this.said.push(groundWords(e.ground));
|
|
590
653
|
}
|
|
@@ -946,7 +1009,144 @@ class Editor {
|
|
|
946
1009
|
case "add-sight":
|
|
947
1010
|
case "remove-sight":
|
|
948
1011
|
return this.policyEdit(i, e);
|
|
1012
|
+
case "set-purpose":
|
|
1013
|
+
return this.setPurpose(e);
|
|
1014
|
+
case "add-job":
|
|
1015
|
+
return this.addJob(i, e);
|
|
1016
|
+
case "edit-job":
|
|
1017
|
+
return this.editJob(i, e);
|
|
1018
|
+
case "remove-job":
|
|
1019
|
+
return this.removeJob(i, e.name);
|
|
1020
|
+
case "add-alias":
|
|
1021
|
+
return this.setAliases(i, e.kind, e.field, [...this.aliasesOf(e.kind, e.field), e.alias], e.alias);
|
|
1022
|
+
case "set-aliases":
|
|
1023
|
+
return this.setAliases(i, e.kind, e.field, e.aliases ?? []);
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
// ── other words for a kind or a field (Roadmap f-learned-suggestions) ──
|
|
1027
|
+
aliasesOf(kind, field) {
|
|
1028
|
+
const spec = this.doc.kinds[kind];
|
|
1029
|
+
return (field ? spec?.fields?.[field]?.aliases : spec?.aliases) ?? [];
|
|
1030
|
+
}
|
|
1031
|
+
/**
|
|
1032
|
+
* A kind's or a field's aliases, as words people search with: lower case,
|
|
1033
|
+
* each once. Refused, in the checker's words, when one is not a word or is
|
|
1034
|
+
* what something else in the app is already called. `added` is the one
|
|
1035
|
+
* word `add-alias` gave, said alone.
|
|
1036
|
+
*/
|
|
1037
|
+
setAliases(i, kind, field, given, added) {
|
|
1038
|
+
const spec = this.kind(i, kind);
|
|
1039
|
+
if (!spec)
|
|
1040
|
+
return;
|
|
1041
|
+
const target = field ? this.field(i, kind, field) : spec;
|
|
1042
|
+
if (!target)
|
|
1043
|
+
return;
|
|
1044
|
+
const said = [...new Set(given.map(aliasWord))];
|
|
1045
|
+
const at = added === undefined ? "aliases" : "alias";
|
|
1046
|
+
for (const [n, word] of said.entries())
|
|
1047
|
+
if (!ALIAS.test(word))
|
|
1048
|
+
return this.fail(i, added === undefined ? `aliases.${n}` : at, `"${word}" is not a word people search with: one to three words of letters and digits`, 'like "supplier" or "wedding venue"');
|
|
1049
|
+
if (said.length > MOST_ALIASES)
|
|
1050
|
+
return this.fail(i, at, `at most ${MOST_ALIASES} other words for one ${field ? "field" : "kind"}`);
|
|
1051
|
+
const before = target.aliases;
|
|
1052
|
+
if (said.length === 0)
|
|
1053
|
+
delete target.aliases;
|
|
1054
|
+
else
|
|
1055
|
+
target.aliases = said;
|
|
1056
|
+
const wrong = documentAliasFindings(this.doc).filter((finding) => finding.path.startsWith(`kinds.${kind}${field ? `.fields.${field}` : ""}.aliases`));
|
|
1057
|
+
if (wrong.length > 0) {
|
|
1058
|
+
if (before === undefined)
|
|
1059
|
+
delete target.aliases;
|
|
1060
|
+
else
|
|
1061
|
+
target.aliases = before;
|
|
1062
|
+
return this.fail(i, at, wrong[0].message, wrong[0].fix);
|
|
1063
|
+
}
|
|
1064
|
+
const whose = field ? `${kind}'s ${field}` : withArticle(spec.noun ?? words(kind));
|
|
1065
|
+
if (added !== undefined)
|
|
1066
|
+
this.said.push(`Search and the seat take “${aliasWord(added)}” as another word for ${whose}.`);
|
|
1067
|
+
else
|
|
1068
|
+
this.said.push(said.length === 0 ? `${capitalize(whose)} has no other words now.` : `Other words for ${whose}: ${listOf(said.map((word) => `“${word}”`))}.`);
|
|
1069
|
+
}
|
|
1070
|
+
// ── who the app is for, and what they come to do (Roadmap f-app-jobs) ──
|
|
1071
|
+
setPurpose(e) {
|
|
1072
|
+
const purpose = { ...(this.doc.purpose ?? {}) };
|
|
1073
|
+
if (e.for === null)
|
|
1074
|
+
delete purpose.for;
|
|
1075
|
+
else
|
|
1076
|
+
purpose.for = e.for;
|
|
1077
|
+
this.keepPurpose(purpose);
|
|
1078
|
+
this.said.push(e.for === null ? "The app no longer says whom it is for." : `The app says it is for ${quotedAtTheEnd(e.for)}`);
|
|
1079
|
+
}
|
|
1080
|
+
/** The purpose as it now stands, or none when it says nothing. */
|
|
1081
|
+
keepPurpose(purpose) {
|
|
1082
|
+
if (Array.isArray(purpose.jobs) && purpose.jobs.length === 0)
|
|
1083
|
+
delete purpose.jobs;
|
|
1084
|
+
if (Object.keys(purpose).length === 0)
|
|
1085
|
+
delete this.doc.purpose;
|
|
1086
|
+
else
|
|
1087
|
+
this.doc.purpose = purpose;
|
|
1088
|
+
}
|
|
1089
|
+
/** The job a name names, or -1 having said why. */
|
|
1090
|
+
jobIndex(i, name) {
|
|
1091
|
+
const jobs = this.doc.purpose?.jobs ?? [];
|
|
1092
|
+
const index = jobs.findIndex((job) => job.name === name);
|
|
1093
|
+
if (index < 0)
|
|
1094
|
+
this.fail(i, "name", `there is no job "${name}"${jobs.length > 0 ? `; the jobs are ${jobs.map((job) => `"${job.name}"`).join(", ")}` : ""}`);
|
|
1095
|
+
return index;
|
|
1096
|
+
}
|
|
1097
|
+
/** A job placed among the others, judged as `graview check` judges it (`job-*`): kept only when nothing is wrong with it. */
|
|
1098
|
+
placeJob(i, job, at, replacing) {
|
|
1099
|
+
const jobs = [...(this.doc.purpose?.jobs ?? [])];
|
|
1100
|
+
if (replacing)
|
|
1101
|
+
jobs[at] = job;
|
|
1102
|
+
else
|
|
1103
|
+
jobs.splice(at, 0, job);
|
|
1104
|
+
const wrong = jobFindings({ ...this.doc.purpose, jobs }, jobWorldOfDocument(this.doc)).filter((finding) => finding.index === at || (finding.code === "jobs-too-many" && !replacing) || (finding.code === "job-name-taken" && jobs[finding.index ?? -1]?.name === job.name));
|
|
1105
|
+
for (const finding of wrong)
|
|
1106
|
+
this.failAs(finding.code, i, finding.code === "jobs-too-many" ? "" : `job.${finding.key ?? ""}`, finding.message, finding.fix);
|
|
1107
|
+
if (wrong.length > 0)
|
|
1108
|
+
return false;
|
|
1109
|
+
this.keepPurpose({ ...(this.doc.purpose ?? {}), jobs });
|
|
1110
|
+
return true;
|
|
1111
|
+
}
|
|
1112
|
+
addJob(i, e) {
|
|
1113
|
+
const parsed = JobSpec.safeParse(e.job);
|
|
1114
|
+
if (!parsed.success)
|
|
1115
|
+
return this.refuse(i, parsed.error.issues.map((issue) => ({ ...issue, path: ["job", ...issue.path] })), "a job");
|
|
1116
|
+
const job = parsed.data;
|
|
1117
|
+
const jobs = this.doc.purpose?.jobs ?? [];
|
|
1118
|
+
if (!this.placeJob(i, job, Math.min(e.at ?? jobs.length, jobs.length), false))
|
|
1119
|
+
return;
|
|
1120
|
+
this.said.push(`A new job, ${quoted(job.ask)}: ${jobWords(this.doc, job)}.`);
|
|
1121
|
+
}
|
|
1122
|
+
editJob(i, e) {
|
|
1123
|
+
const index = this.jobIndex(i, e.name);
|
|
1124
|
+
if (index < 0)
|
|
1125
|
+
return;
|
|
1126
|
+
const job = { ...this.doc.purpose.jobs[index] };
|
|
1127
|
+
const changed = ["ask", "kind", "where", "sort", "act", "roles"].filter((key) => e[key] !== undefined);
|
|
1128
|
+
if (changed.length === 0)
|
|
1129
|
+
return this.fail(i, "", "an edit-job names at least one of ask, kind, where, sort, act or roles to change", `{"op": "edit-job", "name": "${e.name}", "ask": "…"}`);
|
|
1130
|
+
for (const key of changed) {
|
|
1131
|
+
if (e[key] === null) {
|
|
1132
|
+
if (key === "ask" || key === "kind")
|
|
1133
|
+
return this.fail(i, key, `a job always has its ${key}`);
|
|
1134
|
+
delete job[key];
|
|
1135
|
+
}
|
|
1136
|
+
else
|
|
1137
|
+
job[key] = e[key];
|
|
949
1138
|
}
|
|
1139
|
+
if (!this.placeJob(i, job, index, true))
|
|
1140
|
+
return;
|
|
1141
|
+
this.said.push(`The job "${job.name}", ${quoted(job.ask)}, is now ${jobWords(this.doc, job)}.`);
|
|
1142
|
+
}
|
|
1143
|
+
removeJob(i, name) {
|
|
1144
|
+
const index = this.jobIndex(i, name);
|
|
1145
|
+
if (index < 0)
|
|
1146
|
+
return;
|
|
1147
|
+
const [job] = this.doc.purpose.jobs.splice(index, 1);
|
|
1148
|
+
this.keepPurpose({ ...this.doc.purpose });
|
|
1149
|
+
this.said.push(`The job "${job.name}" (${quotedAtTheEnd(job.ask)}) is removed.`);
|
|
950
1150
|
}
|
|
951
1151
|
/** How a record's page orders and groups its facts (FR-148): judged as the compile judges `kinds.<kind>.page`. */
|
|
952
1152
|
setPageFields(i, e) {
|
|
@@ -2090,7 +2290,7 @@ class Editor {
|
|
|
2090
2290
|
gone.push(...this.dropComputed(other, name));
|
|
2091
2291
|
}
|
|
2092
2292
|
}
|
|
2093
|
-
gone.push(...this.pruneViews(swept), ...this.pruneLenses(swept));
|
|
2293
|
+
gone.push(...this.pruneViews(swept), ...this.pruneLenses(swept), ...this.pruneJobs(swept));
|
|
2094
2294
|
// The arrangement names kinds (FR-80): a kind that is gone is no longer ordered or hidden, nor where the app opens.
|
|
2095
2295
|
if (this.doc.pages) {
|
|
2096
2296
|
for (const part of ["order", "hide", "primary"]) {
|
|
@@ -2225,6 +2425,12 @@ class Editor {
|
|
|
2225
2425
|
f.options = e.options ?? f.options;
|
|
2226
2426
|
else
|
|
2227
2427
|
delete f.options;
|
|
2428
|
+
// An option's label goes with the option.
|
|
2429
|
+
if (f.optionLabels) {
|
|
2430
|
+
f.optionLabels = Object.fromEntries(Object.entries(f.optionLabels).filter(([o]) => (f.options ?? []).includes(o)));
|
|
2431
|
+
if (Object.keys(f.optionLabels).length === 0)
|
|
2432
|
+
delete f.optionLabels;
|
|
2433
|
+
}
|
|
2228
2434
|
if (e.type === "list")
|
|
2229
2435
|
f.of = e.of ?? f.of ?? "string";
|
|
2230
2436
|
else
|
|
@@ -2332,12 +2538,34 @@ class Editor {
|
|
|
2332
2538
|
const options = [...f.options.filter((o) => !remove.includes(o)), ...add];
|
|
2333
2539
|
if (options.length === 0)
|
|
2334
2540
|
return this.fail(i, "remove", "a choice keeps at least one option");
|
|
2541
|
+
// What an option is called on screen (Roadmap f-option-labels): a label given sets it, `null` goes back to the option's id spoken.
|
|
2542
|
+
const labels = Object.entries((e.labels ?? {}));
|
|
2543
|
+
const unlabeled = labels.filter(([o]) => !options.includes(o)).map(([o]) => o);
|
|
2544
|
+
if (unlabeled.length)
|
|
2545
|
+
return this.fail(i, "labels", `${e.field} does not offer ${unlabeled.map((o) => `"${o}"`).join(", ")}; label one of ${options.join(", ")}`);
|
|
2546
|
+
if (!add.length && !remove.length && !labels.length)
|
|
2547
|
+
return this.fail(i, "add", 'say what to "add", what to "remove", or the "labels" of options');
|
|
2335
2548
|
f.options = options;
|
|
2549
|
+
const kept = Object.fromEntries(Object.entries((f.optionLabels ?? {})).filter(([o]) => options.includes(o)));
|
|
2550
|
+
for (const [o, label] of labels) {
|
|
2551
|
+
if (label === null)
|
|
2552
|
+
delete kept[o];
|
|
2553
|
+
else
|
|
2554
|
+
kept[o] = label;
|
|
2555
|
+
}
|
|
2556
|
+
if (Object.keys(kept).length > 0)
|
|
2557
|
+
f.optionLabels = kept;
|
|
2558
|
+
else
|
|
2559
|
+
delete f.optionLabels;
|
|
2560
|
+
const spoken = (o) => (kept[o] !== undefined && kept[o] !== o ? `"${o}" (${kept[o]})` : `"${o}"`);
|
|
2336
2561
|
const out = [];
|
|
2337
2562
|
if (add.length)
|
|
2338
|
-
out.push(`now also offers ${add.map(
|
|
2563
|
+
out.push(`now also offers ${add.map(spoken).join(", ")}`);
|
|
2339
2564
|
if (remove.length)
|
|
2340
2565
|
out.push(`no longer offers ${remove.map((o) => `"${o}"`).join(", ")}`);
|
|
2566
|
+
const relabeled = labels.filter(([o]) => !add.includes(o));
|
|
2567
|
+
if (relabeled.length)
|
|
2568
|
+
out.push(relabeled.map(([o, label]) => (label === null ? `says "${o}" as ${humanizeField(o)}` : `says "${o}" as ${label}`)).join(", "));
|
|
2341
2569
|
if (f.default !== undefined && remove.includes(f.default)) {
|
|
2342
2570
|
delete f.default;
|
|
2343
2571
|
out.push("has no default now");
|
|
@@ -2556,6 +2784,13 @@ class Editor {
|
|
|
2556
2784
|
else
|
|
2557
2785
|
delete rule.repairs;
|
|
2558
2786
|
}
|
|
2787
|
+
// A job asks the same question without it: only what people do next is let go.
|
|
2788
|
+
for (const job of (this.doc.purpose?.jobs ?? [])) {
|
|
2789
|
+
if (job.act !== act)
|
|
2790
|
+
continue;
|
|
2791
|
+
delete job.act;
|
|
2792
|
+
gone.push(`what the job "${job.name}" does next`);
|
|
2793
|
+
}
|
|
2559
2794
|
return gone;
|
|
2560
2795
|
}
|
|
2561
2796
|
addRule(i, e) {
|
|
@@ -2585,6 +2820,9 @@ class Editor {
|
|
|
2585
2820
|
for (const r of rule.repairs ?? [])
|
|
2586
2821
|
if (r.act === from)
|
|
2587
2822
|
r.act = to;
|
|
2823
|
+
for (const job of (this.doc.purpose?.jobs ?? []))
|
|
2824
|
+
if (job.act === from)
|
|
2825
|
+
job.act = to;
|
|
2588
2826
|
}
|
|
2589
2827
|
// ── every place a name is said ──
|
|
2590
2828
|
/**
|
|
@@ -2836,8 +3074,46 @@ class Editor {
|
|
|
2836
3074
|
if (JSON.stringify(doc.pages) !== before)
|
|
2837
3075
|
touched.push("the pages");
|
|
2838
3076
|
}
|
|
3077
|
+
// Jobs (Roadmap f-app-jobs): what each is answered by, what its where reads, what it sorts by and the act it names.
|
|
3078
|
+
for (const job of (doc.purpose?.jobs ?? [])) {
|
|
3079
|
+
const before = JSON.stringify(job);
|
|
3080
|
+
if (job.where !== undefined)
|
|
3081
|
+
job.where = exprAt(job.where, new Set([job.kind]));
|
|
3082
|
+
const by = typeof job.sort === "string" ? job.sort : job.sort?.by;
|
|
3083
|
+
if (r.t === "field" && job.kind === r.kind && by === r.from)
|
|
3084
|
+
job.sort = typeof job.sort === "string" ? r.to : { ...job.sort, by: r.to };
|
|
3085
|
+
if (r.t === "kind" && job.kind === r.from)
|
|
3086
|
+
job.kind = r.to;
|
|
3087
|
+
if (job.act !== undefined && r.t === "kind")
|
|
3088
|
+
job.act = renamedAct(job.act, r.from, r.to);
|
|
3089
|
+
if (job.act !== undefined && (r.t === "kind" || r.t === "edge"))
|
|
3090
|
+
job.act = renamedRelationAct(job.act, doc.kinds, r);
|
|
3091
|
+
if (JSON.stringify(job) !== before)
|
|
3092
|
+
touched.push(`the job "${job.name}"`);
|
|
3093
|
+
}
|
|
2839
3094
|
return touched;
|
|
2840
3095
|
}
|
|
3096
|
+
/** Jobs that can no longer be answered as asked go — a where that reads what is going, a kind that is gone — and an order by it is let go. */
|
|
3097
|
+
pruneJobs(r) {
|
|
3098
|
+
const purpose = this.doc.purpose;
|
|
3099
|
+
if (!purpose?.jobs)
|
|
3100
|
+
return [];
|
|
3101
|
+
const gone = [];
|
|
3102
|
+
purpose.jobs = purpose.jobs.filter((job) => {
|
|
3103
|
+
if ((r.t === "kind" && job.kind === r.from) || exprMentions(this.doc, job.where, new Set([job.kind]), r)) {
|
|
3104
|
+
gone.push(`the job "${job.name}"`);
|
|
3105
|
+
return false;
|
|
3106
|
+
}
|
|
3107
|
+
const by = typeof job.sort === "string" ? job.sort : job.sort?.by;
|
|
3108
|
+
if (r.t === "field" && job.kind === r.kind && by === r.from) {
|
|
3109
|
+
delete job.sort;
|
|
3110
|
+
gone.push(`the order of the job "${job.name}"`);
|
|
3111
|
+
}
|
|
3112
|
+
return true;
|
|
3113
|
+
});
|
|
3114
|
+
this.keepPurpose({ ...purpose });
|
|
3115
|
+
return gone;
|
|
3116
|
+
}
|
|
2841
3117
|
/**
|
|
2842
3118
|
* Remove what mentions a field or relation that is going: acts that write or walk
|
|
2843
3119
|
* it, rules that judge it, view blocks that show it; templates that show it fall
|
|
@@ -2934,6 +3210,7 @@ class Editor {
|
|
|
2934
3210
|
delete doc.rules;
|
|
2935
3211
|
gone.push(...this.pruneViews(r));
|
|
2936
3212
|
gone.push(...this.pruneLenses(r));
|
|
3213
|
+
gone.push(...this.pruneJobs(r));
|
|
2937
3214
|
return gone;
|
|
2938
3215
|
}
|
|
2939
3216
|
/** Computed fields being dropped, so a cycle among them ends. */
|
|
@@ -3138,6 +3415,16 @@ class Editor {
|
|
|
3138
3415
|
return said;
|
|
3139
3416
|
}
|
|
3140
3417
|
}
|
|
3418
|
+
/** How a job is answered, in words: "answered by the vendors where status != 'booked', sorted by due, then book". */
|
|
3419
|
+
function jobWords(doc, job) {
|
|
3420
|
+
const sort = typeof job.sort === "string" ? { by: job.sort, direction: "asc" } : job.sort;
|
|
3421
|
+
return [
|
|
3422
|
+
`answered by the ${pluralWords(doc, job.kind).toLowerCase()}${job.where ? ` where ${job.where}` : ""}`,
|
|
3423
|
+
...(sort ? [`sorted by ${sort.by}${sort.direction === "desc" ? ", highest first" : ""}`] : []),
|
|
3424
|
+
...(job.act ? [`then "${job.act}"`] : []),
|
|
3425
|
+
...(job.roles ? [`for ${listOf(job.roles)}`] : []),
|
|
3426
|
+
].join(", ");
|
|
3427
|
+
}
|
|
3141
3428
|
/** What the people and the policy make together, as `graview check` judges it (`checkPeople`), said over the document. */
|
|
3142
3429
|
function peopleProblems(doc, at) {
|
|
3143
3430
|
const out = [];
|