@graview/core 0.1.62 → 0.1.63

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.
Files changed (328) hide show
  1. package/dist/app.d.ts +12 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js.map +1 -1
  4. package/dist/arranging.js +2 -2
  5. package/dist/arranging.js.map +1 -1
  6. package/dist/cli/check/index.d.ts +1 -0
  7. package/dist/cli/check/index.d.ts.map +1 -1
  8. package/dist/cli/check/index.js +1 -0
  9. package/dist/cli/check/index.js.map +1 -1
  10. package/dist/cli/check/workflows.d.ts +11 -0
  11. package/dist/cli/check/workflows.d.ts.map +1 -0
  12. package/dist/cli/check/workflows.js +20 -0
  13. package/dist/cli/check/workflows.js.map +1 -0
  14. package/dist/cli/check.d.ts.map +1 -1
  15. package/dist/cli/check.js +2 -1
  16. package/dist/cli/check.js.map +1 -1
  17. package/dist/cli/describe.d.ts.map +1 -1
  18. package/dist/cli/describe.js +31 -1
  19. package/dist/cli/describe.js.map +1 -1
  20. package/dist/cli/document-schema.d.ts.map +1 -1
  21. package/dist/cli/document-schema.js +9 -0
  22. package/dist/cli/document-schema.js.map +1 -1
  23. package/dist/compose.d.ts +1 -1
  24. package/dist/compose.d.ts.map +1 -1
  25. package/dist/document/amount.d.ts +1 -1
  26. package/dist/document/amount.d.ts.map +1 -1
  27. package/dist/document/amount.js +2 -2
  28. package/dist/document/amount.js.map +1 -1
  29. package/dist/document/blocks.d.ts.map +1 -1
  30. package/dist/document/blocks.js +17 -1
  31. package/dist/document/blocks.js.map +1 -1
  32. package/dist/document/compile-checked.d.ts.map +1 -1
  33. package/dist/document/compile-checked.js +4 -2
  34. package/dist/document/compile-checked.js.map +1 -1
  35. package/dist/document/compile.d.ts.map +1 -1
  36. package/dist/document/compile.js +48 -9
  37. package/dist/document/compile.js.map +1 -1
  38. package/dist/document/compiled.d.ts +14 -0
  39. package/dist/document/compiled.d.ts.map +1 -1
  40. package/dist/document/compiled.js +39 -4
  41. package/dist/document/compiled.js.map +1 -1
  42. package/dist/document/connection-findings.js +82 -17
  43. package/dist/document/connection-findings.js.map +1 -1
  44. package/dist/document/connection-spec.d.ts +32 -1
  45. package/dist/document/connection-spec.d.ts.map +1 -1
  46. package/dist/document/connection-spec.js +54 -8
  47. package/dist/document/connection-spec.js.map +1 -1
  48. package/dist/document/derives-findings.d.ts +4 -0
  49. package/dist/document/derives-findings.d.ts.map +1 -0
  50. package/dist/document/derives-findings.js +68 -0
  51. package/dist/document/derives-findings.js.map +1 -0
  52. package/dist/document/describe-forms.js +2 -2
  53. package/dist/document/describe-forms.js.map +1 -1
  54. package/dist/document/diff.d.ts +6 -0
  55. package/dist/document/diff.d.ts.map +1 -1
  56. package/dist/document/diff.js +43 -1
  57. package/dist/document/diff.js.map +1 -1
  58. package/dist/document/edit.d.ts +1 -1
  59. package/dist/document/edit.d.ts.map +1 -1
  60. package/dist/document/edit.js +263 -22
  61. package/dist/document/edit.js.map +1 -1
  62. package/dist/document/expr/evaluate.d.ts +7 -0
  63. package/dist/document/expr/evaluate.d.ts.map +1 -1
  64. package/dist/document/expr/evaluate.js.map +1 -1
  65. package/dist/document/format-words.d.ts +1 -0
  66. package/dist/document/format-words.d.ts.map +1 -1
  67. package/dist/document/format-words.js +2 -2
  68. package/dist/document/format-words.js.map +1 -1
  69. package/dist/document/kept-in-step-with.d.ts +20 -0
  70. package/dist/document/kept-in-step-with.d.ts.map +1 -0
  71. package/dist/document/kept-in-step-with.js +38 -0
  72. package/dist/document/kept-in-step-with.js.map +1 -0
  73. package/dist/document/kept-in-step.d.ts.map +1 -1
  74. package/dist/document/kept-in-step.js +3 -1
  75. package/dist/document/kept-in-step.js.map +1 -1
  76. package/dist/document/money.d.ts +10 -2
  77. package/dist/document/money.d.ts.map +1 -1
  78. package/dist/document/money.js +14 -5
  79. package/dist/document/money.js.map +1 -1
  80. package/dist/document/policy-words.d.ts +2 -0
  81. package/dist/document/policy-words.d.ts.map +1 -1
  82. package/dist/document/policy-words.js +11 -1
  83. package/dist/document/policy-words.js.map +1 -1
  84. package/dist/document/schema.d.ts +36 -1
  85. package/dist/document/schema.d.ts.map +1 -1
  86. package/dist/document/schema.js +44 -7
  87. package/dist/document/schema.js.map +1 -1
  88. package/dist/document/template-parse.d.ts.map +1 -1
  89. package/dist/document/template-parse.js +7 -1
  90. package/dist/document/template-parse.js.map +1 -1
  91. package/dist/document/template.d.ts +2 -0
  92. package/dist/document/template.d.ts.map +1 -1
  93. package/dist/document/template.js +10 -1
  94. package/dist/document/template.js.map +1 -1
  95. package/dist/document/to-document.js +2 -2
  96. package/dist/document/to-document.js.map +1 -1
  97. package/dist/document/workflow-spec.d.ts +72 -0
  98. package/dist/document/workflow-spec.d.ts.map +1 -0
  99. package/dist/document/workflow-spec.js +45 -0
  100. package/dist/document/workflow-spec.js.map +1 -0
  101. package/dist/document.schema.json +840 -4
  102. package/dist/history.d.ts.map +1 -1
  103. package/dist/history.js +2 -0
  104. package/dist/history.js.map +1 -1
  105. package/dist/index.d.ts +6 -4
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +3 -2
  108. package/dist/index.js.map +1 -1
  109. package/dist/installation.d.ts +1 -1
  110. package/dist/job-findings.d.ts +5 -0
  111. package/dist/job-findings.d.ts.map +1 -1
  112. package/dist/job-findings.js +9 -3
  113. package/dist/job-findings.js.map +1 -1
  114. package/dist/keep-linked.d.ts +45 -0
  115. package/dist/keep-linked.d.ts.map +1 -0
  116. package/dist/keep-linked.js +188 -0
  117. package/dist/keep-linked.js.map +1 -0
  118. package/dist/mutations/derive-edits.js +2 -2
  119. package/dist/mutations/propose-changes.d.ts +24 -0
  120. package/dist/mutations/propose-changes.d.ts.map +1 -0
  121. package/dist/mutations/propose-changes.js +30 -0
  122. package/dist/mutations/propose-changes.js.map +1 -0
  123. package/dist/mutations/vote-suggestion.d.ts +30 -0
  124. package/dist/mutations/vote-suggestion.d.ts.map +1 -1
  125. package/dist/mutations/vote-suggestion.js +23 -0
  126. package/dist/mutations/vote-suggestion.js.map +1 -1
  127. package/dist/mutations/words.js +3 -3
  128. package/dist/ops/digest.d.ts +3 -1
  129. package/dist/ops/digest.d.ts.map +1 -1
  130. package/dist/ops/digest.js +7 -2
  131. package/dist/ops/digest.js.map +1 -1
  132. package/dist/ops/lineage.d.ts +19 -2
  133. package/dist/ops/lineage.d.ts.map +1 -1
  134. package/dist/ops/lineage.js +8 -4
  135. package/dist/ops/lineage.js.map +1 -1
  136. package/dist/ops/log.d.ts.map +1 -1
  137. package/dist/ops/log.js +13 -2
  138. package/dist/ops/log.js.map +1 -1
  139. package/dist/ops/suggestions.d.ts +47 -5
  140. package/dist/ops/suggestions.d.ts.map +1 -1
  141. package/dist/ops/suggestions.js +88 -13
  142. package/dist/ops/suggestions.js.map +1 -1
  143. package/dist/ops/tidying.d.ts.map +1 -1
  144. package/dist/ops/tidying.js +6 -1
  145. package/dist/ops/tidying.js.map +1 -1
  146. package/dist/ops/types.d.ts +28 -0
  147. package/dist/ops/types.d.ts.map +1 -1
  148. package/dist/ops/undo.d.ts.map +1 -1
  149. package/dist/ops/undo.js +17 -0
  150. package/dist/ops/undo.js.map +1 -1
  151. package/dist/permissions/policy.d.ts +7 -0
  152. package/dist/permissions/policy.d.ts.map +1 -1
  153. package/dist/permissions/policy.js +12 -0
  154. package/dist/permissions/policy.js.map +1 -1
  155. package/dist/permissions/types.d.ts +27 -0
  156. package/dist/permissions/types.d.ts.map +1 -1
  157. package/dist/permissions/types.js.map +1 -1
  158. package/dist/places.d.ts +10 -0
  159. package/dist/places.d.ts.map +1 -1
  160. package/dist/places.js +35 -1
  161. package/dist/places.js.map +1 -1
  162. package/dist/scene.d.ts +2 -0
  163. package/dist/scene.d.ts.map +1 -1
  164. package/dist/scene.js +2 -0
  165. package/dist/scene.js.map +1 -1
  166. package/dist/schema/amount-mark.d.ts +2 -0
  167. package/dist/schema/amount-mark.d.ts.map +1 -1
  168. package/dist/schema/amount-mark.js.map +1 -1
  169. package/dist/schema/amount-words.js +2 -2
  170. package/dist/schema/amount-words.js.map +1 -1
  171. package/dist/schema/choice-words.js +2 -2
  172. package/dist/schema/define-node.d.ts +8 -2
  173. package/dist/schema/define-node.d.ts.map +1 -1
  174. package/dist/schema/define-node.js +2 -2
  175. package/dist/schema/define-node.js.map +1 -1
  176. package/dist/schema/humanize.d.ts +17 -0
  177. package/dist/schema/humanize.d.ts.map +1 -1
  178. package/dist/schema/humanize.js +28 -1
  179. package/dist/schema/humanize.js.map +1 -1
  180. package/dist/schema/reading.d.ts +8 -0
  181. package/dist/schema/reading.d.ts.map +1 -1
  182. package/dist/schema/reading.js +16 -2
  183. package/dist/schema/reading.js.map +1 -1
  184. package/dist/schema/types.d.ts +8 -0
  185. package/dist/schema/types.d.ts.map +1 -1
  186. package/dist/schema/value-words.js +2 -2
  187. package/dist/schema/value-words.js.map +1 -1
  188. package/dist/starting-document.d.ts +16 -3
  189. package/dist/starting-document.d.ts.map +1 -1
  190. package/dist/starting-document.js +32 -5
  191. package/dist/starting-document.js.map +1 -1
  192. package/dist/store.d.ts +47 -2
  193. package/dist/store.d.ts.map +1 -1
  194. package/dist/store.js +176 -13
  195. package/dist/store.js.map +1 -1
  196. package/dist/sync/connection.d.ts +24 -5
  197. package/dist/sync/connection.d.ts.map +1 -1
  198. package/dist/sync/connection.js +160 -27
  199. package/dist/sync/connection.js.map +1 -1
  200. package/dist/sync/engine.d.ts +83 -0
  201. package/dist/sync/engine.d.ts.map +1 -1
  202. package/dist/sync/engine.js +152 -1
  203. package/dist/sync/engine.js.map +1 -1
  204. package/dist/sync/google-calendar.d.ts.map +1 -1
  205. package/dist/sync/google-calendar.js +18 -1
  206. package/dist/sync/google-calendar.js.map +1 -1
  207. package/dist/sync/guest-words.d.ts +9 -0
  208. package/dist/sync/guest-words.d.ts.map +1 -0
  209. package/dist/sync/guest-words.js +41 -0
  210. package/dist/sync/guest-words.js.map +1 -0
  211. package/dist/sync/index.d.ts +8 -5
  212. package/dist/sync/index.d.ts.map +1 -1
  213. package/dist/sync/index.js +2 -0
  214. package/dist/sync/index.js.map +1 -1
  215. package/dist/sync/notion-stub.d.ts +4 -1
  216. package/dist/sync/notion-stub.d.ts.map +1 -1
  217. package/dist/sync/notion-stub.js +40 -0
  218. package/dist/sync/notion-stub.js.map +1 -1
  219. package/dist/sync/notion.d.ts +43 -2
  220. package/dist/sync/notion.d.ts.map +1 -1
  221. package/dist/sync/notion.js +274 -140
  222. package/dist/sync/notion.js.map +1 -1
  223. package/dist/sync/status.d.ts +43 -0
  224. package/dist/sync/status.d.ts.map +1 -0
  225. package/dist/sync/status.js +45 -0
  226. package/dist/sync/status.js.map +1 -0
  227. package/dist/sync/types.d.ts +55 -0
  228. package/dist/sync/types.d.ts.map +1 -1
  229. package/dist/sync/types.js.map +1 -1
  230. package/dist/tidying.d.ts +53 -4
  231. package/dist/tidying.d.ts.map +1 -1
  232. package/dist/tidying.js +110 -8
  233. package/dist/tidying.js.map +1 -1
  234. package/dist/validate-graph.d.ts +2 -1
  235. package/dist/validate-graph.d.ts.map +1 -1
  236. package/dist/validate-graph.js +32 -1
  237. package/dist/validate-graph.js.map +1 -1
  238. package/dist/version.d.ts +1 -1
  239. package/dist/version.js +1 -1
  240. package/dist/words.d.ts +4 -1
  241. package/dist/words.d.ts.map +1 -1
  242. package/dist/words.js +4 -1
  243. package/dist/words.js.map +1 -1
  244. package/dist/workflow-shape.d.ts +217 -0
  245. package/dist/workflow-shape.d.ts.map +1 -0
  246. package/dist/workflow-shape.js +31 -0
  247. package/dist/workflow-shape.js.map +1 -0
  248. package/dist/workflows/findings.d.ts +13 -0
  249. package/dist/workflows/findings.d.ts.map +1 -0
  250. package/dist/workflows/findings.js +157 -0
  251. package/dist/workflows/findings.js.map +1 -0
  252. package/dist/workflows/generate-words.d.ts +12 -0
  253. package/dist/workflows/generate-words.d.ts.map +1 -0
  254. package/dist/workflows/generate-words.js +25 -0
  255. package/dist/workflows/generate-words.js.map +1 -0
  256. package/dist/workflows/generate.d.ts +59 -0
  257. package/dist/workflows/generate.d.ts.map +1 -0
  258. package/dist/workflows/generate.js +165 -0
  259. package/dist/workflows/generate.js.map +1 -0
  260. package/dist/workflows/judging.d.ts +17 -0
  261. package/dist/workflows/judging.d.ts.map +1 -0
  262. package/dist/workflows/judging.js +11 -0
  263. package/dist/workflows/judging.js.map +1 -0
  264. package/dist/workflows/next.d.ts +18 -0
  265. package/dist/workflows/next.d.ts.map +1 -0
  266. package/dist/workflows/next.js +75 -0
  267. package/dist/workflows/next.js.map +1 -0
  268. package/dist/workflows/on-the-map.d.ts +70 -0
  269. package/dist/workflows/on-the-map.d.ts.map +1 -0
  270. package/dist/workflows/on-the-map.js +94 -0
  271. package/dist/workflows/on-the-map.js.map +1 -0
  272. package/dist/workflows/policies.d.ts +39 -0
  273. package/dist/workflows/policies.d.ts.map +1 -0
  274. package/dist/workflows/policies.js +95 -0
  275. package/dist/workflows/policies.js.map +1 -0
  276. package/dist/workflows/resolve.d.ts +55 -0
  277. package/dist/workflows/resolve.d.ts.map +1 -0
  278. package/dist/workflows/resolve.js +57 -0
  279. package/dist/workflows/resolve.js.map +1 -0
  280. package/dist/workflows/schedule.d.ts +28 -0
  281. package/dist/workflows/schedule.d.ts.map +1 -0
  282. package/dist/workflows/schedule.js +160 -0
  283. package/dist/workflows/schedule.js.map +1 -0
  284. package/dist/workflows/step-act.d.ts +6 -0
  285. package/dist/workflows/step-act.d.ts.map +1 -0
  286. package/dist/workflows/step-act.js +79 -0
  287. package/dist/workflows/step-act.js.map +1 -0
  288. package/dist/workflows/step-agent.d.ts +4 -0
  289. package/dist/workflows/step-agent.d.ts.map +1 -0
  290. package/dist/workflows/step-agent.js +55 -0
  291. package/dist/workflows/step-agent.js.map +1 -0
  292. package/dist/workflows/step-archive.d.ts +8 -0
  293. package/dist/workflows/step-archive.d.ts.map +1 -0
  294. package/dist/workflows/step-archive.js +74 -0
  295. package/dist/workflows/step-archive.js.map +1 -0
  296. package/dist/workflows/step-classify.d.ts +23 -0
  297. package/dist/workflows/step-classify.d.ts.map +1 -0
  298. package/dist/workflows/step-classify.js +143 -0
  299. package/dist/workflows/step-classify.js.map +1 -0
  300. package/dist/workflows/step-generate.d.ts +7 -0
  301. package/dist/workflows/step-generate.d.ts.map +1 -0
  302. package/dist/workflows/step-generate.js +185 -0
  303. package/dist/workflows/step-generate.js.map +1 -0
  304. package/dist/workflows/steps.d.ts +75 -0
  305. package/dist/workflows/steps.d.ts.map +1 -0
  306. package/dist/workflows/steps.js +40 -0
  307. package/dist/workflows/steps.js.map +1 -0
  308. package/dist/workflows/triggered.d.ts +22 -0
  309. package/dist/workflows/triggered.d.ts.map +1 -0
  310. package/dist/workflows/triggered.js +52 -0
  311. package/dist/workflows/triggered.js.map +1 -0
  312. package/dist/workflows/values.d.ts +28 -0
  313. package/dist/workflows/values.d.ts.map +1 -0
  314. package/dist/workflows/values.js +75 -0
  315. package/dist/workflows/values.js.map +1 -0
  316. package/dist/workflows/words.d.ts +10 -0
  317. package/dist/workflows/words.d.ts.map +1 -0
  318. package/dist/workflows/words.js +30 -0
  319. package/dist/workflows/words.js.map +1 -0
  320. package/dist/workflows/world.d.ts +23 -0
  321. package/dist/workflows/world.d.ts.map +1 -0
  322. package/dist/workflows/world.js +50 -0
  323. package/dist/workflows/world.js.map +1 -0
  324. package/dist/workflows.d.ts +35 -0
  325. package/dist/workflows.d.ts.map +1 -0
  326. package/dist/workflows.js +20 -0
  327. package/dist/workflows.js.map +1 -0
  328. package/package.json +8 -2
@@ -8,7 +8,7 @@ import { NOTION_FITS, NOTION_INFERABLE, NOTION_READ_ONLY, NOTION_SECRET, notionF
8
8
  import { startAndEndOf } from "../wall-time.js";
9
9
  import { weekdayOf } from "../sync/recurrence.js";
10
10
  import { error, warning } from "./findings.js";
11
- import { ConnectionSpec } from "./connection-spec.js";
11
+ import { ConnectionSpec, notionSourcesOf } from "./connection-spec.js";
12
12
  /*
13
13
  * A DECLARED CONNECTION, JUDGED (`connections.<name>`): what its shape
14
14
  * cannot say — that the kind and its fields are this document's and of the
@@ -59,7 +59,7 @@ function secretIn(value, at) {
59
59
  }
60
60
  const KEYS = {
61
61
  "google-calendar": "system, calendar, auth, kind, fields, filter, direction, conflicts, every, paused and description",
62
- notion: "system, database, source, auth, kind, properties, direction, conflicts, every, paused and description",
62
+ notion: "system, database, source, auth, kind, properties, sources, create, direction, conflicts, every, paused and description",
63
63
  };
64
64
  /** A shape the connection does not have, at its place: an unknown key, or a value of the wrong kind. */
65
65
  function shapeFinding(at, raw, issue) {
@@ -74,6 +74,16 @@ function shapeFinding(at, raw, issue) {
74
74
  }
75
75
  return error("shape", path, issue.message);
76
76
  }
77
+ /**
78
+ * A COMPUTED FIELD MAPPED INTO A CONNECTION (Roadmap f-keep-linked): worked
79
+ * out here and sent, read-only on the way out — so a connection that only
80
+ * reads has nothing to send it with.
81
+ */
82
+ function computedProblem(kind, field, what, direction) {
83
+ if (direction !== "read")
84
+ return undefined;
85
+ return (path) => error("connection-computed-read", path, `${kind}'s ${field} is worked out here, so it is only ever sent, and this connection only reads: ${what} would never be kept`, `make the connection "both", or map a stored field to ${what}`);
86
+ }
77
87
  /** No such kind, said once for the connection. */
78
88
  function noKind(at, document, kind, what) {
79
89
  return error("connection-kind", `${at}.kind`, `there is no kind called ${kind} for ${what} to be`, `name one of ${Object.keys(document.kinds).join(", ")}`);
@@ -89,6 +99,14 @@ function googleConnection(at, name, connection, document, app) {
89
99
  const seen = new Map();
90
100
  for (const [theirs, ours] of mapped) {
91
101
  const path = `${at}.fields.${theirs}`;
102
+ // A computed field (Roadmap f-keep-linked) is worked out here, so it is sent and never read back: an event's words or times, never its guests or weekdays.
103
+ if (!kind.fields[ours] && kind.computed?.[ours] !== undefined && theirs !== "guests" && theirs !== "days") {
104
+ const problem = computedProblem(connection.kind, ours, theirs === "summary" ? "the event's title" : `the event's ${theirs}`, connection.direction);
105
+ if (problem)
106
+ findings.push(problem(path));
107
+ seen.set(ours, theirs);
108
+ continue;
109
+ }
92
110
  if (!kind.fields[ours]) {
93
111
  findings.push(theirs === "guests"
94
112
  ? error("connection-guests-field", path, `${connection.kind} has no field called ${ours} to hold the event's guests`, `name a list field holding their addresses, or an email field, or add one`, { fixes: [addressesField(connection.kind, ours, `Add ${humanizeField(ours)} to ${connection.kind}`)] })
@@ -155,23 +173,64 @@ function googleConnection(at, name, connection, document, app) {
155
173
  return findings;
156
174
  }
157
175
  function notionConnection(at, connection, document, app) {
176
+ if (connection.sources) {
177
+ const findings = [];
178
+ // One form or the other: several sources each say their own kind and properties.
179
+ for (const key of ["kind", "source", "properties"]) {
180
+ if (connection[key] !== undefined)
181
+ findings.push(error("connection-sources", `${at}.${key}`, `this connection names its sources, each with its kind and properties, and ${key} is said for each source there`, `move ${key} into the source it belongs to, or drop sources`));
182
+ }
183
+ const kinds = new Map();
184
+ const named = new Map();
185
+ const sources = notionSourcesOf(connection);
186
+ sources.forEach((source, index) => {
187
+ const where = `${at}.sources.${index}`;
188
+ const twice = kinds.get(source.kind);
189
+ if (twice !== undefined) {
190
+ findings.push(error("connection-sources", `${where}.kind`, `sources ${twice} and ${index} both keep ${source.kind}, and each kind is kept by one data source`, `name another kind here, or drop one of them`));
191
+ return;
192
+ }
193
+ kinds.set(source.kind, index);
194
+ const key = source.source.toLowerCase().replace(/[^a-z0-9]/g, "");
195
+ const same = named.get(key);
196
+ if (same !== undefined)
197
+ findings.push(error("connection-sources", `${where}.source`, `sources ${same} and ${index} both name the data source ${source.source}, and one data source holds the pages of one kind`, "name each data source once"));
198
+ named.set(key, index);
199
+ findings.push(...notionSource(where, connection, source, document, app));
200
+ });
201
+ return findings;
202
+ }
203
+ if (connection.kind === undefined)
204
+ return [error("connection-kind", `${at}.kind`, "a Notion connection names the kind its pages are, or its sources, each with the kind it keeps", `say "kind", or "sources": [{ "source", "kind" }]`)];
205
+ return notionSource(at, connection, notionSourcesOf(connection)[0], document, app);
206
+ }
207
+ /** One data source of a Notion connection, judged at `at` (the connection, or one of its sources): its kind, and each property it maps. */
208
+ function notionSource(at, connection, source, document, app) {
158
209
  const findings = [];
159
- const kind = document.kinds[connection.kind];
210
+ const kindName = source.kind;
211
+ const kind = document.kinds[kindName];
160
212
  if (!kind)
161
- return [noKind(at, document, connection.kind, "the database's pages")];
213
+ return [noKind(at, document, kindName, "the database's pages")];
162
214
  let mapped;
163
215
  const relations = [];
164
- if (connection.properties) {
216
+ if (source.properties) {
165
217
  mapped = [];
166
218
  const seen = new Map();
167
219
  const edges = kind.edges ?? {};
168
- for (const [field, property] of Object.entries(connection.properties)) {
220
+ for (const [field, property] of Object.entries(source.properties)) {
169
221
  const path = `${at}.properties.${field}`;
170
222
  const name = typeof property === "string" ? property : property.name;
171
223
  const declared = typeof property === "string" ? undefined : property.type;
224
+ if (!kind.fields[field] && !edges[field] && kind.computed?.[field] !== undefined) {
225
+ const problem = declared === "relation" ? (where) => error("connection-relation", where, `the property ${name} is a relation, the pages it links, and ${field} is worked out to a value`, `map ${field} to a property that holds a value`) : computedProblem(kindName, field, `the property ${name}`, connection.direction);
226
+ if (problem)
227
+ findings.push(problem(path));
228
+ seen.set(name, field);
229
+ continue;
230
+ }
172
231
  if (!kind.fields[field] && !edges[field]) {
173
232
  const names = [...Object.keys(kind.fields), ...Object.keys(edges)];
174
- findings.push(error("connection-field", path, `${connection.kind} has no field or relation called ${field} to hold the property ${name}`, `name one of ${names.join(", ")}`));
233
+ findings.push(error("connection-field", path, `${kindName} has no field or relation called ${field} to hold the property ${name}`, `name one of ${names.join(", ")}`));
175
234
  continue;
176
235
  }
177
236
  const twice = seen.get(name);
@@ -181,10 +240,10 @@ function notionConnection(at, connection, document, app) {
181
240
  if (!kind.fields[field]) {
182
241
  // One of the kind's relations, held by a relation property: its pages are records another Notion connection keeps.
183
242
  if (declared && declared !== "relation") {
184
- findings.push(error("connection-relation", path, `${field} is a relation of ${connection.kind}, and the property ${name} is a ${declared}: a relation is held by a relation property, the pages it links`, `name a relation property, or map a field of ${connection.kind} to ${name}`));
243
+ findings.push(error("connection-relation", path, `${field} is a relation of ${kindName}, and the property ${name} is a ${declared}: a relation is held by a relation property, the pages it links`, `name a relation property, or map a field of ${kindName} to ${name}`));
185
244
  continue;
186
245
  }
187
- const problem = relationTarget(connection.kind, field, edges[field].to, document);
246
+ const problem = relationTarget(kindName, field, edges[field].to, document);
188
247
  if (problem) {
189
248
  findings.push(error("connection-relation-target", path, problem.message, problem.fix));
190
249
  continue;
@@ -193,7 +252,7 @@ function notionConnection(at, connection, document, app) {
193
252
  continue;
194
253
  }
195
254
  if (declared === "relation") {
196
- findings.push(error("connection-relation", path, `the property ${name} is a relation, the pages it links, and ${field} is a field of ${connection.kind}, which holds one value`, `declare a relation of ${connection.kind} to the kind those pages are, and map it to ${name}`));
255
+ findings.push(error("connection-relation", path, `the property ${name} is a relation, the pages it links, and ${field} is a field of ${kindName}, which holds one value`, `declare a relation of ${kindName} to the kind those pages are, and map it to ${name}`));
197
256
  continue;
198
257
  }
199
258
  mapped.push(field);
@@ -211,20 +270,20 @@ function notionConnection(at, connection, document, app) {
211
270
  findings.push(warning("connection-read-only", path, `${name} is a people property, which is read from Notion and never written: a change to ${field} here stays here`));
212
271
  }
213
272
  }
214
- if (mapped.length === 0 && Object.keys(connection.properties).length === 0) {
273
+ if (mapped.length === 0 && Object.keys(source.properties).length === 0) {
215
274
  findings.push(error("connection-properties", `${at}.properties`, "the connection maps no property, so nothing would be kept in step", "map a field to a property, or drop properties to match them by name"));
216
275
  }
217
276
  }
218
277
  else {
219
278
  mapped = Object.entries(kind.fields).filter(([, spec]) => NOTION_INFERABLE.has(spec.type)).map(([field]) => field);
220
279
  if (mapped.length === 0)
221
- findings.push(error("connection-properties", `${at}.kind`, `${connection.kind} has no field a Notion property could be held in`, "give it a string, number, date, enum, list or boolean field"));
280
+ findings.push(error("connection-properties", `${at}.kind`, `${kindName} has no field a Notion property could be held in`, "give it a string, number, date, enum, list or boolean field"));
222
281
  }
223
282
  if (app && mapped.length > 0) {
224
- findings.push(...landing(at, connection.kind, mapped, { made: "a page made in the database", fields: "the page's fields", change: "a change in Notion", deleted: "a page archived in Notion", theirs: "Notion pages", one: "a Notion page", part: "a Notion property", things: "pages" }, app, document));
283
+ findings.push(...landing(at, kindName, mapped, { made: "a page made in the database", fields: "the page's fields", change: "a change in Notion", deleted: "a page archived in Notion", theirs: "Notion pages", one: "a Notion page", part: "a Notion property", things: "pages" }, app, document));
225
284
  }
226
285
  if (app)
227
- findings.push(...linking(connection.kind, relations, document, app, { where: (relation) => `${at}.properties.${relation}`, made: "a link made in Notion", taken: "a link taken away in Notion", leave: (relation) => `leave ${relation} out of properties` }));
286
+ findings.push(...linking(kindName, relations, document, app, { where: (relation) => `${at}.properties.${relation}`, made: "a link made in Notion", taken: "a link taken away in Notion", leave: (relation) => `leave ${relation} out of properties` }));
228
287
  return findings;
229
288
  }
230
289
  /** Whether a field holds a guest's addresses: a list of them (of strings, or of nothing said), or one email. */
@@ -254,10 +313,15 @@ function guestsVia(at, name, connection, guests, kind, document, app) {
254
313
  }
255
314
  const reached = edge.to[0];
256
315
  const people = document.kinds[reached];
316
+ // The cap is a count of guests: a whole number above 0, or no cap at all (Roadmap f-sync-guest-changes-in-history).
317
+ const max = guests.max;
318
+ const capped = max !== undefined && !(Number.isInteger(max) && max > 0) ? [error("connection-guests-max", `${path}.max`, `max is the most guests one event invites, a whole number above 0, and it is ${max}`, "say a whole number above 0, or leave max out to invite everyone")] : [];
319
+ if (capped.length > 0 && !people)
320
+ return capped;
257
321
  // A relation to a kind that is not there is the document's finding, said once where the relation is.
258
322
  if (!people)
259
323
  return [];
260
- const findings = [];
324
+ const findings = [...capped];
261
325
  const emails = guests.emails ?? "emails";
262
326
  const invite = guests.invite ?? "inviteMe";
263
327
  const plural = capitalize(people.plural ?? `${people.noun ?? humanizeField(reached).toLowerCase()}s`);
@@ -299,8 +363,9 @@ function guestsVia(at, name, connection, guests, kind, document, app) {
299
363
  function relationTarget(kindName, relation, to, document) {
300
364
  const kept = new Set(Object.values(document.connections ?? {})
301
365
  .map((raw) => raw)
302
- .filter((raw) => raw.system === "notion" && typeof raw.kind === "string")
303
- .map((raw) => String(raw.kind)));
366
+ .filter((raw) => raw.system === "notion")
367
+ .flatMap((raw) => notionSourcesOf(raw).map((one) => one.kind))
368
+ .filter((kind) => typeof kind === "string"));
304
369
  const keptBy = kept.size > 0 ? `the Notion connections here keep ${[...kept].join(", ")}` : "no other Notion connection is declared";
305
370
  if (to === "*")
306
371
  return { message: `${kindName}'s ${relation} reaches any kind, and a Notion relation links the pages of one database`, fix: `say the kind it reaches with "to", and keep that kind with a Notion connection of its own` };
@@ -1 +1 @@
1
- {"version":3,"file":"connection-findings.js","sourceRoot":"","sources":["../../src/document/connection-findings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-findings.js","sourceRoot":"","sources":["../../src/document/connection-findings.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare const ConnectionSpec: z.ZodMiniLazy<z.ZodMiniDiscriminatedUnion<[
27
27
  emails: z.ZodMiniOptional<z.ZodMiniString<string>>;
28
28
  invite: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniLiteral<false>]>>;
29
29
  notify: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
30
+ max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
30
31
  }, z.core.$strict>]>>;
31
32
  }, z.core.$strict>;
32
33
  filter: z.ZodMiniOptional<z.ZodMiniObject<{
@@ -56,13 +57,25 @@ export declare const ConnectionSpec: z.ZodMiniLazy<z.ZodMiniDiscriminatedUnion<[
56
57
  env: z.ZodMiniString<string>;
57
58
  file: z.ZodMiniOptional<z.ZodMiniString<string>>;
58
59
  }, z.core.$strict>>;
59
- kind: z.ZodMiniString<string>;
60
+ kind: z.ZodMiniOptional<z.ZodMiniString<string>>;
60
61
  properties: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
61
62
  name: z.ZodMiniString<string>;
62
63
  type: z.ZodMiniEnum<{
63
64
  [x: string]: string;
64
65
  }>;
65
66
  }, z.core.$strict>]>>>;
67
+ sources: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
68
+ source: z.ZodMiniString<string>;
69
+ kind: z.ZodMiniString<string>;
70
+ description: z.ZodMiniOptional<z.ZodMiniString<string>>;
71
+ properties: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
72
+ name: z.ZodMiniString<string>;
73
+ type: z.ZodMiniEnum<{
74
+ [x: string]: string;
75
+ }>;
76
+ }, z.core.$strict>]>>>;
77
+ }, z.core.$strict>>>;
78
+ create: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
66
79
  direction: z.ZodMiniEnum<{
67
80
  read: "read";
68
81
  both: "both";
@@ -82,4 +95,22 @@ export type GoogleCalendarConnectionSpec = Extract<ConnectionSpec, {
82
95
  export type NotionConnectionSpec = Extract<ConnectionSpec, {
83
96
  system: "notion";
84
97
  }>;
98
+ /** One data source a Notion connection keeps in step with one kind, and the resource its pages are to the engine. */
99
+ export interface NotionSourceSpec {
100
+ /** The data source by its name or id; absent when the database holds one. */
101
+ readonly source?: string;
102
+ readonly kind: string;
103
+ readonly properties?: NotionConnectionSpec["properties"];
104
+ readonly description?: string;
105
+ /** What the engine calls its pages, kept in its links: `pages` for a connection of one source, `pages:<kind>` for each of `sources`. */
106
+ readonly resource: string;
107
+ }
108
+ /**
109
+ * A NOTION CONNECTION'S DATA SOURCES, each with its kind: its `sources`, or
110
+ * the one its top names (`source`, `kind`, `properties`). Read loosely, so
111
+ * the checker can ask it of a connection it is still judging.
112
+ */
113
+ export declare function notionSourcesOf(connection: Pick<NotionConnectionSpec, "source" | "kind" | "properties" | "sources">): readonly NotionSourceSpec[];
114
+ /** The kinds a connection keeps: a calendar's one, or each of a Notion connection's sources'. */
115
+ export declare function connectionKinds(connection: ConnectionSpec): readonly string[];
85
116
  //# sourceMappingURL=connection-spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-spec.d.ts","sourceRoot":"","sources":["../../src/document/connection-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AA0HtC;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAoC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAClG,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"connection-spec.d.ts","sourceRoot":"","sources":["../../src/document/connection-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AAuJtC;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAAoC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAClG,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAEjF,qHAAqH;AACrH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,wIAAwI;IACxI,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC,GAAG,SAAS,gBAAgB,EAAE,CAMjJ;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAE7E"}
@@ -51,7 +51,10 @@ function build() {
51
51
  * is invited while their `invite` toggle is on (`inviteMe`; `false`
52
52
  * says the app has no toggle and every address is invited). Google's
53
53
  * invitation emails go out only with `notify: true`; the default is
54
- * quiet.
54
+ * quiet. `max` is the most guests one event invites (Roadmap
55
+ * f-sync-guest-changes-in-history): an event that would invite somebody
56
+ * past it is held unsent, and said; `graview check` refuses one that
57
+ * is not a whole number above 0.
55
58
  */
56
59
  fields: z.strictObject({
57
60
  summary: fieldName,
@@ -60,7 +63,7 @@ function build() {
60
63
  days: z.optional(fieldName),
61
64
  location: z.optional(fieldName),
62
65
  description: z.optional(fieldName),
63
- guests: z.optional(z.union([fieldName, z.strictObject({ via: edgeName, emails: z.optional(fieldName), invite: z.optional(z.union([fieldName, z.literal(false)])), notify: z.optional(z.boolean()) })], 'guests names a field holding the addresses, or { "via": "<relation>", "emails"?, "invite"?, "notify"? } to invite the people a relation reaches')),
66
+ guests: z.optional(z.union([fieldName, z.strictObject({ via: edgeName, emails: z.optional(fieldName), invite: z.optional(z.union([fieldName, z.literal(false)])), notify: z.optional(z.boolean()), max: z.optional(z.number()) })], 'guests names a field holding the addresses, or { "via": "<relation>", "emails"?, "invite"?, "notify"?, "max"? } to invite the people a relation reaches')),
64
67
  }),
65
68
  /* Absent: the whole calendar. `{ color }`: the events of one of Google's colors, by name. `{ tag }`: those whose title carries a word like "#graview", kept in the title here or not (`keep`). */
66
69
  filter: z.optional(z.strictObject({ color: z.optional(str(1, 40)), tag: z.optional(str(1, 40)), keep: z.optional(z.boolean()) })),
@@ -83,13 +86,35 @@ function build() {
83
86
  * A key of `properties` may name one of the kind's RELATIONS (edges) in
84
87
  * place of a field, held by a Notion relation property: its links are the
85
88
  * pages the property reaches, each a record another Notion connection of
86
- * the app keeps (`"reindeer": "Reindeer Fleet"`, or with
87
- * `"type": "relation"`). Matched by name, a relation whose name a
88
- * relation property has is kept too.
89
+ * the app keeps, or another source of this one (`"reindeer": "Reindeer
90
+ * Fleet"`, or with `"type": "relation"`). Matched by name, a relation
91
+ * whose name a relation property has is kept too.
92
+ *
93
+ * SEVERAL DATA SOURCES OF ONE DATABASE, EACH ITS OWN KIND (`sources`, in
94
+ * place of `source`, `kind` and `properties`): each names its data source
95
+ * by name or id, the kind its pages are, and its own `properties`. A
96
+ * relation between two of them is a Notion relation property, as it is
97
+ * between two connections.
98
+ *
99
+ * THE PROPERTIES IT NEEDS ARE MADE: a field mapped to a property the data
100
+ * source lacks is given one, of the type the field is held in, on the
101
+ * first pass and whenever one goes missing — never renamed, never
102
+ * deleted, and one there of another type is said and left. `create:
103
+ * false` turns that off; a connection that only reads makes none.
89
104
  */
90
105
  const notionTypes = [...Object.keys(NOTION_FITS), "relation"];
91
106
  const keptName = z.string().check(z.regex(EDGE_NAME, 'a key of properties is one of the kind\'s fields or relations, like "dueDate" or "reindeer"'));
92
107
  const notionType = z.enum(notionTypes, `a property's type is one a connection keeps in step: ${notionTypes.join(", ")}`);
108
+ /* This kind's field or relation → the data source's property, by its name in Notion, or `{ name, type }` with its type. */
109
+ const properties = z.optional(z.record(keptName, z.union([str(1, 100), z.strictObject({ name: str(1, 100), type: notionType })])));
110
+ /* One data source of the database and the kind its pages are. */
111
+ const NotionSource = z.strictObject({
112
+ /* The data source, by its name in Notion or its id. */
113
+ source: str(1, 200),
114
+ kind: kindName,
115
+ description: z.optional(sentence),
116
+ properties,
117
+ });
93
118
  const Notion = z.strictObject({
94
119
  system: z.literal("notion"),
95
120
  description: z.optional(sentence),
@@ -98,9 +123,13 @@ function build() {
98
123
  /* The data source, by its name in Notion or its id, when the database holds several. */
99
124
  source: z.optional(str(1, 200)),
100
125
  auth,
101
- kind: kindName,
102
- /* This kind's field or relation → the database's property, by its name in Notion, or `{ name, type }` with its type. */
103
- properties: z.optional(z.record(keptName, z.union([str(1, 100), z.strictObject({ name: str(1, 100), type: notionType })]))),
126
+ /* The kind its pages are; absent when `sources` names a kind for each. */
127
+ kind: z.optional(kindName),
128
+ properties,
129
+ /* Several data sources of the database, each kept in step with its own kind (in place of source, kind and properties). */
130
+ sources: z.optional(z.array(NotionSource).check(z.minLength(1), z.maxLength(20))),
131
+ /* Whether a property a mapped field lacks is made in Notion (true unless said). */
132
+ create: z.optional(z.boolean()),
104
133
  direction,
105
134
  conflicts,
106
135
  every,
@@ -115,4 +144,21 @@ let built;
115
144
  * database. It never holds a secret.
116
145
  */
117
146
  export const ConnectionSpec = z.lazy(() => (built ??= build()));
147
+ /**
148
+ * A NOTION CONNECTION'S DATA SOURCES, each with its kind: its `sources`, or
149
+ * the one its top names (`source`, `kind`, `properties`). Read loosely, so
150
+ * the checker can ask it of a connection it is still judging.
151
+ */
152
+ export function notionSourcesOf(connection) {
153
+ if (connection.sources && connection.sources.length > 0) {
154
+ return connection.sources.map((one) => ({ source: one.source, kind: one.kind, ...(one.properties ? { properties: one.properties } : {}), ...(one.description ? { description: one.description } : {}), resource: `pages:${one.kind}` }));
155
+ }
156
+ if (connection.kind === undefined)
157
+ return [];
158
+ return [{ ...(connection.source ? { source: connection.source } : {}), kind: connection.kind, ...(connection.properties ? { properties: connection.properties } : {}), resource: "pages" }];
159
+ }
160
+ /** The kinds a connection keeps: a calendar's one, or each of a Notion connection's sources'. */
161
+ export function connectionKinds(connection) {
162
+ return connection.system === "notion" ? notionSourcesOf(connection).map((one) => one.kind) : [connection.kind];
163
+ }
118
164
  //# sourceMappingURL=connection-spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-spec.js","sourceRoot":"","sources":["../../src/document/connection-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-spec.js","sourceRoot":"","sources":["../../src/document/connection-spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Finding } from "./findings.js";
2
+ import type { GraviewDocument } from "./schema.js";
3
+ export declare function derivesFindings(document: GraviewDocument): Finding[];
4
+ //# sourceMappingURL=derives-findings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derives-findings.d.ts","sourceRoot":"","sources":["../../src/document/derives-findings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAYnD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,EAAE,CAqDpE"}
@@ -0,0 +1,68 @@
1
+ import { nounOf } from "../schema/define-node.js";
2
+ import { analyzeExpr } from "./expr/analyze.js";
3
+ import { parseExpr } from "./expr/parse.js";
4
+ import { error } from "./findings.js";
5
+ import { isRecord } from "./respell.js";
6
+ /*
7
+ * WHAT A KIND FOLLOWS (Roadmap f-keep-linked), judged with the checker: a
8
+ * kind it follows that the app has and that is not itself; a relation
9
+ * joining the two, from either end; fields of its own it sets, never one
10
+ * worked out; values worked out from the source (`{ "expr": … }`) or
11
+ * written as they are, never an argument, since no act is asked; and
12
+ * expressions that read what the source has. An expression that does not
13
+ * parse is the compile's to say (`expression`).
14
+ */
15
+ export function derivesFindings(document) {
16
+ const out = [];
17
+ const said = (kind) => nounOf(document.kinds[kind], kind);
18
+ for (const [kind, spec] of Object.entries(document.kinds)) {
19
+ const derives = spec.derives;
20
+ if (!derives)
21
+ continue;
22
+ const at = `kinds.${kind}.derives`;
23
+ const source = document.kinds[derives.from];
24
+ if (!source || derives.from === kind) {
25
+ const others = Object.keys(document.kinds).filter((k) => k !== kind);
26
+ out.push(error("derives-kind", `${at}.from`, derives.from === kind ? `${said(kind)} cannot follow itself` : `"${derives.from}" is not a kind this app has, for ${said(kind)} to follow`, others.length > 0 ? `name one of ${others.join(", ")}` : "add the kind it follows first"));
27
+ continue;
28
+ }
29
+ const pointsAt = (edge, target) => edge !== undefined && (edge.to === "*" || edge.to.includes(target));
30
+ if (!pointsAt(spec.edges?.[derives.via], derives.from) && !pointsAt(source.edges?.[derives.via], kind)) {
31
+ const joining = [
32
+ ...Object.entries(spec.edges ?? {}).filter(([, e]) => pointsAt(e, derives.from)).map(([name]) => name),
33
+ ...Object.entries(source.edges ?? {}).filter(([, e]) => pointsAt(e, kind)).map(([name]) => name),
34
+ ];
35
+ out.push(error("derives-relation", `${at}.via`, `"${derives.via}" does not join ${said(kind)} to ${said(derives.from)}, so no ${said(kind)} has ${said(derives.from)} to follow`, joining.length > 0 ? `name ${joining.length === 1 ? "the relation that does" : "one of the relations that do"}: ${joining.join(", ")}` : `declare a relation of ${kind} to ${derives.from} (or of ${derives.from} to ${kind}) first`));
36
+ }
37
+ for (const [field, value] of Object.entries(derives.set)) {
38
+ const here = `${at}.set.${field}`;
39
+ if (!spec.fields[field]) {
40
+ if (spec.computed?.[field] !== undefined)
41
+ out.push(error("computed-written", here, `${kind}'s ${field} is worked out, not written: it cannot follow ${said(derives.from)}`, "set the stored fields it is worked out from"));
42
+ else
43
+ out.push(error("derives-field", here, `${said(kind)} has no field "${field}" to take from ${said(derives.from)}`, `set one of ${Object.keys(spec.fields).join(", ")}`));
44
+ continue;
45
+ }
46
+ if (typeof value === "string" && /^\$[A-Za-z]/.test(value)) {
47
+ out.push(error("derives-value", here, `"${value}" names an argument, and no act asks for one when ${said(kind)} follows ${said(derives.from)}`, `work it out from ${said(derives.from)} with { "expr": "…" }, or write the value as it is`));
48
+ continue;
49
+ }
50
+ if (!isRecord(value) || typeof value.expr !== "string")
51
+ continue;
52
+ let names;
53
+ try {
54
+ names = analyzeExpr(parseExpr(value.expr)).names;
55
+ }
56
+ catch {
57
+ continue;
58
+ }
59
+ for (const name of names) {
60
+ if (name === "to" || source.fields[name] || source.edges?.[name] || source.computed?.[name] !== undefined)
61
+ continue;
62
+ out.push(error("derives-name", here, `${said(derives.from)} has no field or relation called "${name}" for ${kind}'s ${field} to be worked out from`, `read one of ${[...Object.keys(source.fields), ...Object.keys(source.computed ?? {})].join(", ")}; "to" is the ${said(kind)} itself`));
63
+ }
64
+ }
65
+ }
66
+ return out;
67
+ }
68
+ //# sourceMappingURL=derives-findings.js.map