@graview/core 0.1.62 → 0.1.64

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 (340) 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/brand-check.d.ts.map +1 -1
  33. package/dist/document/brand-check.js +8 -2
  34. package/dist/document/brand-check.js.map +1 -1
  35. package/dist/document/compile-checked.d.ts.map +1 -1
  36. package/dist/document/compile-checked.js +4 -2
  37. package/dist/document/compile-checked.js.map +1 -1
  38. package/dist/document/compile.d.ts.map +1 -1
  39. package/dist/document/compile.js +48 -9
  40. package/dist/document/compile.js.map +1 -1
  41. package/dist/document/compiled.d.ts +14 -0
  42. package/dist/document/compiled.d.ts.map +1 -1
  43. package/dist/document/compiled.js +39 -4
  44. package/dist/document/compiled.js.map +1 -1
  45. package/dist/document/connection-findings.js +93 -21
  46. package/dist/document/connection-findings.js.map +1 -1
  47. package/dist/document/connection-spec.d.ts +54 -1
  48. package/dist/document/connection-spec.d.ts.map +1 -1
  49. package/dist/document/connection-spec.js +76 -8
  50. package/dist/document/connection-spec.js.map +1 -1
  51. package/dist/document/derives-findings.d.ts +4 -0
  52. package/dist/document/derives-findings.d.ts.map +1 -0
  53. package/dist/document/derives-findings.js +68 -0
  54. package/dist/document/derives-findings.js.map +1 -0
  55. package/dist/document/describe-forms.js +2 -2
  56. package/dist/document/describe-forms.js.map +1 -1
  57. package/dist/document/diff.d.ts +6 -0
  58. package/dist/document/diff.d.ts.map +1 -1
  59. package/dist/document/diff.js +43 -1
  60. package/dist/document/diff.js.map +1 -1
  61. package/dist/document/edit.d.ts +1 -1
  62. package/dist/document/edit.d.ts.map +1 -1
  63. package/dist/document/edit.js +264 -23
  64. package/dist/document/edit.js.map +1 -1
  65. package/dist/document/expr/evaluate.d.ts +7 -0
  66. package/dist/document/expr/evaluate.d.ts.map +1 -1
  67. package/dist/document/expr/evaluate.js +29 -2
  68. package/dist/document/expr/evaluate.js.map +1 -1
  69. package/dist/document/format-words.d.ts +1 -0
  70. package/dist/document/format-words.d.ts.map +1 -1
  71. package/dist/document/format-words.js +2 -2
  72. package/dist/document/format-words.js.map +1 -1
  73. package/dist/document/kept-in-step-with.d.ts +20 -0
  74. package/dist/document/kept-in-step-with.d.ts.map +1 -0
  75. package/dist/document/kept-in-step-with.js +38 -0
  76. package/dist/document/kept-in-step-with.js.map +1 -0
  77. package/dist/document/kept-in-step.d.ts.map +1 -1
  78. package/dist/document/kept-in-step.js +3 -1
  79. package/dist/document/kept-in-step.js.map +1 -1
  80. package/dist/document/money.d.ts +10 -2
  81. package/dist/document/money.d.ts.map +1 -1
  82. package/dist/document/money.js +14 -5
  83. package/dist/document/money.js.map +1 -1
  84. package/dist/document/policy-words.d.ts +2 -0
  85. package/dist/document/policy-words.d.ts.map +1 -1
  86. package/dist/document/policy-words.js +11 -1
  87. package/dist/document/policy-words.js.map +1 -1
  88. package/dist/document/schema.d.ts +46 -1
  89. package/dist/document/schema.d.ts.map +1 -1
  90. package/dist/document/schema.js +48 -8
  91. package/dist/document/schema.js.map +1 -1
  92. package/dist/document/template-parse.d.ts.map +1 -1
  93. package/dist/document/template-parse.js +7 -1
  94. package/dist/document/template-parse.js.map +1 -1
  95. package/dist/document/template.d.ts +2 -0
  96. package/dist/document/template.d.ts.map +1 -1
  97. package/dist/document/template.js +10 -1
  98. package/dist/document/template.js.map +1 -1
  99. package/dist/document/to-document.js +2 -2
  100. package/dist/document/to-document.js.map +1 -1
  101. package/dist/document/workflow-spec.d.ts +72 -0
  102. package/dist/document/workflow-spec.d.ts.map +1 -0
  103. package/dist/document/workflow-spec.js +45 -0
  104. package/dist/document/workflow-spec.js.map +1 -0
  105. package/dist/document.schema.json +883 -4
  106. package/dist/head.d.ts +81 -0
  107. package/dist/head.d.ts.map +1 -0
  108. package/dist/head.js +123 -0
  109. package/dist/head.js.map +1 -0
  110. package/dist/history.d.ts.map +1 -1
  111. package/dist/history.js +2 -0
  112. package/dist/history.js.map +1 -1
  113. package/dist/index.d.ts +7 -5
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +4 -3
  116. package/dist/index.js.map +1 -1
  117. package/dist/installation.d.ts +1 -1
  118. package/dist/job-findings.d.ts +5 -0
  119. package/dist/job-findings.d.ts.map +1 -1
  120. package/dist/job-findings.js +9 -3
  121. package/dist/job-findings.js.map +1 -1
  122. package/dist/keep-linked.d.ts +45 -0
  123. package/dist/keep-linked.d.ts.map +1 -0
  124. package/dist/keep-linked.js +188 -0
  125. package/dist/keep-linked.js.map +1 -0
  126. package/dist/mutations/derive-edits.js +2 -2
  127. package/dist/mutations/propose-changes.d.ts +24 -0
  128. package/dist/mutations/propose-changes.d.ts.map +1 -0
  129. package/dist/mutations/propose-changes.js +30 -0
  130. package/dist/mutations/propose-changes.js.map +1 -0
  131. package/dist/mutations/vote-suggestion.d.ts +30 -0
  132. package/dist/mutations/vote-suggestion.d.ts.map +1 -1
  133. package/dist/mutations/vote-suggestion.js +23 -0
  134. package/dist/mutations/vote-suggestion.js.map +1 -1
  135. package/dist/mutations/words.js +3 -3
  136. package/dist/ops/digest.d.ts +3 -1
  137. package/dist/ops/digest.d.ts.map +1 -1
  138. package/dist/ops/digest.js +7 -2
  139. package/dist/ops/digest.js.map +1 -1
  140. package/dist/ops/lineage.d.ts +19 -2
  141. package/dist/ops/lineage.d.ts.map +1 -1
  142. package/dist/ops/lineage.js +8 -4
  143. package/dist/ops/lineage.js.map +1 -1
  144. package/dist/ops/log.d.ts.map +1 -1
  145. package/dist/ops/log.js +13 -2
  146. package/dist/ops/log.js.map +1 -1
  147. package/dist/ops/suggestions.d.ts +47 -5
  148. package/dist/ops/suggestions.d.ts.map +1 -1
  149. package/dist/ops/suggestions.js +88 -13
  150. package/dist/ops/suggestions.js.map +1 -1
  151. package/dist/ops/tidying.d.ts.map +1 -1
  152. package/dist/ops/tidying.js +6 -1
  153. package/dist/ops/tidying.js.map +1 -1
  154. package/dist/ops/types.d.ts +28 -0
  155. package/dist/ops/types.d.ts.map +1 -1
  156. package/dist/ops/undo.d.ts.map +1 -1
  157. package/dist/ops/undo.js +17 -0
  158. package/dist/ops/undo.js.map +1 -1
  159. package/dist/permissions/policy.d.ts +7 -0
  160. package/dist/permissions/policy.d.ts.map +1 -1
  161. package/dist/permissions/policy.js +12 -0
  162. package/dist/permissions/policy.js.map +1 -1
  163. package/dist/permissions/types.d.ts +27 -0
  164. package/dist/permissions/types.d.ts.map +1 -1
  165. package/dist/permissions/types.js.map +1 -1
  166. package/dist/places.d.ts +10 -0
  167. package/dist/places.d.ts.map +1 -1
  168. package/dist/places.js +35 -1
  169. package/dist/places.js.map +1 -1
  170. package/dist/scene.d.ts +2 -0
  171. package/dist/scene.d.ts.map +1 -1
  172. package/dist/scene.js +2 -0
  173. package/dist/scene.js.map +1 -1
  174. package/dist/schema/amount-mark.d.ts +2 -0
  175. package/dist/schema/amount-mark.d.ts.map +1 -1
  176. package/dist/schema/amount-mark.js.map +1 -1
  177. package/dist/schema/amount-words.js +2 -2
  178. package/dist/schema/amount-words.js.map +1 -1
  179. package/dist/schema/choice-words.js +2 -2
  180. package/dist/schema/define-node.d.ts +8 -2
  181. package/dist/schema/define-node.d.ts.map +1 -1
  182. package/dist/schema/define-node.js +2 -2
  183. package/dist/schema/define-node.js.map +1 -1
  184. package/dist/schema/humanize.d.ts +17 -0
  185. package/dist/schema/humanize.d.ts.map +1 -1
  186. package/dist/schema/humanize.js +28 -1
  187. package/dist/schema/humanize.js.map +1 -1
  188. package/dist/schema/reading.d.ts +8 -0
  189. package/dist/schema/reading.d.ts.map +1 -1
  190. package/dist/schema/reading.js +16 -2
  191. package/dist/schema/reading.js.map +1 -1
  192. package/dist/schema/types.d.ts +8 -0
  193. package/dist/schema/types.d.ts.map +1 -1
  194. package/dist/schema/value-words.js +2 -2
  195. package/dist/schema/value-words.js.map +1 -1
  196. package/dist/starting-document.d.ts +16 -3
  197. package/dist/starting-document.d.ts.map +1 -1
  198. package/dist/starting-document.js +32 -5
  199. package/dist/starting-document.js.map +1 -1
  200. package/dist/store.d.ts +47 -2
  201. package/dist/store.d.ts.map +1 -1
  202. package/dist/store.js +176 -13
  203. package/dist/store.js.map +1 -1
  204. package/dist/sync/connection.d.ts +24 -5
  205. package/dist/sync/connection.d.ts.map +1 -1
  206. package/dist/sync/connection.js +168 -31
  207. package/dist/sync/connection.js.map +1 -1
  208. package/dist/sync/engine.d.ts +97 -0
  209. package/dist/sync/engine.d.ts.map +1 -1
  210. package/dist/sync/engine.js +159 -1
  211. package/dist/sync/engine.js.map +1 -1
  212. package/dist/sync/google-calendar.d.ts.map +1 -1
  213. package/dist/sync/google-calendar.js +18 -1
  214. package/dist/sync/google-calendar.js.map +1 -1
  215. package/dist/sync/guest-words.d.ts +9 -0
  216. package/dist/sync/guest-words.d.ts.map +1 -0
  217. package/dist/sync/guest-words.js +41 -0
  218. package/dist/sync/guest-words.js.map +1 -0
  219. package/dist/sync/index.d.ts +8 -5
  220. package/dist/sync/index.d.ts.map +1 -1
  221. package/dist/sync/index.js +2 -0
  222. package/dist/sync/index.js.map +1 -1
  223. package/dist/sync/notion-stub.d.ts +4 -1
  224. package/dist/sync/notion-stub.d.ts.map +1 -1
  225. package/dist/sync/notion-stub.js +40 -0
  226. package/dist/sync/notion-stub.js.map +1 -1
  227. package/dist/sync/notion.d.ts +44 -2
  228. package/dist/sync/notion.d.ts.map +1 -1
  229. package/dist/sync/notion.js +289 -143
  230. package/dist/sync/notion.js.map +1 -1
  231. package/dist/sync/status.d.ts +43 -0
  232. package/dist/sync/status.d.ts.map +1 -0
  233. package/dist/sync/status.js +46 -0
  234. package/dist/sync/status.js.map +1 -0
  235. package/dist/sync/types.d.ts +60 -0
  236. package/dist/sync/types.d.ts.map +1 -1
  237. package/dist/sync/types.js.map +1 -1
  238. package/dist/theme/marks.d.ts +12 -0
  239. package/dist/theme/marks.d.ts.map +1 -1
  240. package/dist/theme/marks.js +5 -0
  241. package/dist/theme/marks.js.map +1 -1
  242. package/dist/tidying.d.ts +53 -4
  243. package/dist/tidying.d.ts.map +1 -1
  244. package/dist/tidying.js +110 -8
  245. package/dist/tidying.js.map +1 -1
  246. package/dist/validate-graph.d.ts +2 -1
  247. package/dist/validate-graph.d.ts.map +1 -1
  248. package/dist/validate-graph.js +32 -1
  249. package/dist/validate-graph.js.map +1 -1
  250. package/dist/version.d.ts +1 -1
  251. package/dist/version.js +1 -1
  252. package/dist/words.d.ts +4 -1
  253. package/dist/words.d.ts.map +1 -1
  254. package/dist/words.js +4 -1
  255. package/dist/words.js.map +1 -1
  256. package/dist/workflow-shape.d.ts +223 -0
  257. package/dist/workflow-shape.d.ts.map +1 -0
  258. package/dist/workflow-shape.js +31 -0
  259. package/dist/workflow-shape.js.map +1 -0
  260. package/dist/workflows/findings.d.ts +13 -0
  261. package/dist/workflows/findings.d.ts.map +1 -0
  262. package/dist/workflows/findings.js +157 -0
  263. package/dist/workflows/findings.js.map +1 -0
  264. package/dist/workflows/generate-words.d.ts +12 -0
  265. package/dist/workflows/generate-words.d.ts.map +1 -0
  266. package/dist/workflows/generate-words.js +25 -0
  267. package/dist/workflows/generate-words.js.map +1 -0
  268. package/dist/workflows/generate.d.ts +59 -0
  269. package/dist/workflows/generate.d.ts.map +1 -0
  270. package/dist/workflows/generate.js +165 -0
  271. package/dist/workflows/generate.js.map +1 -0
  272. package/dist/workflows/judging.d.ts +17 -0
  273. package/dist/workflows/judging.d.ts.map +1 -0
  274. package/dist/workflows/judging.js +11 -0
  275. package/dist/workflows/judging.js.map +1 -0
  276. package/dist/workflows/next.d.ts +18 -0
  277. package/dist/workflows/next.d.ts.map +1 -0
  278. package/dist/workflows/next.js +75 -0
  279. package/dist/workflows/next.js.map +1 -0
  280. package/dist/workflows/on-the-map.d.ts +79 -0
  281. package/dist/workflows/on-the-map.d.ts.map +1 -0
  282. package/dist/workflows/on-the-map.js +96 -0
  283. package/dist/workflows/on-the-map.js.map +1 -0
  284. package/dist/workflows/policies.d.ts +39 -0
  285. package/dist/workflows/policies.d.ts.map +1 -0
  286. package/dist/workflows/policies.js +95 -0
  287. package/dist/workflows/policies.js.map +1 -0
  288. package/dist/workflows/resolve.d.ts +55 -0
  289. package/dist/workflows/resolve.d.ts.map +1 -0
  290. package/dist/workflows/resolve.js +57 -0
  291. package/dist/workflows/resolve.js.map +1 -0
  292. package/dist/workflows/schedule.d.ts +28 -0
  293. package/dist/workflows/schedule.d.ts.map +1 -0
  294. package/dist/workflows/schedule.js +160 -0
  295. package/dist/workflows/schedule.js.map +1 -0
  296. package/dist/workflows/step-act.d.ts +6 -0
  297. package/dist/workflows/step-act.d.ts.map +1 -0
  298. package/dist/workflows/step-act.js +79 -0
  299. package/dist/workflows/step-act.js.map +1 -0
  300. package/dist/workflows/step-agent.d.ts +4 -0
  301. package/dist/workflows/step-agent.d.ts.map +1 -0
  302. package/dist/workflows/step-agent.js +55 -0
  303. package/dist/workflows/step-agent.js.map +1 -0
  304. package/dist/workflows/step-archive.d.ts +8 -0
  305. package/dist/workflows/step-archive.d.ts.map +1 -0
  306. package/dist/workflows/step-archive.js +74 -0
  307. package/dist/workflows/step-archive.js.map +1 -0
  308. package/dist/workflows/step-classify.d.ts +25 -0
  309. package/dist/workflows/step-classify.d.ts.map +1 -0
  310. package/dist/workflows/step-classify.js +160 -0
  311. package/dist/workflows/step-classify.js.map +1 -0
  312. package/dist/workflows/step-generate.d.ts +7 -0
  313. package/dist/workflows/step-generate.d.ts.map +1 -0
  314. package/dist/workflows/step-generate.js +185 -0
  315. package/dist/workflows/step-generate.js.map +1 -0
  316. package/dist/workflows/steps.d.ts +75 -0
  317. package/dist/workflows/steps.d.ts.map +1 -0
  318. package/dist/workflows/steps.js +40 -0
  319. package/dist/workflows/steps.js.map +1 -0
  320. package/dist/workflows/triggered.d.ts +35 -0
  321. package/dist/workflows/triggered.d.ts.map +1 -0
  322. package/dist/workflows/triggered.js +69 -0
  323. package/dist/workflows/triggered.js.map +1 -0
  324. package/dist/workflows/values.d.ts +28 -0
  325. package/dist/workflows/values.d.ts.map +1 -0
  326. package/dist/workflows/values.js +75 -0
  327. package/dist/workflows/values.js.map +1 -0
  328. package/dist/workflows/words.d.ts +10 -0
  329. package/dist/workflows/words.d.ts.map +1 -0
  330. package/dist/workflows/words.js +30 -0
  331. package/dist/workflows/words.js.map +1 -0
  332. package/dist/workflows/world.d.ts +23 -0
  333. package/dist/workflows/world.d.ts.map +1 -0
  334. package/dist/workflows/world.js +50 -0
  335. package/dist/workflows/world.js.map +1 -0
  336. package/dist/workflows.d.ts +35 -0
  337. package/dist/workflows.d.ts.map +1 -0
  338. package/dist/workflows.js +20 -0
  339. package/dist/workflows.js.map +1 -0
  340. package/package.json +12 -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, guestsInField, guestsViaRelation, 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(", ")}`);
@@ -85,10 +95,20 @@ function googleConnection(at, name, connection, document, app) {
85
95
  return [noKind(at, document, connection.kind, "the calendar's events")];
86
96
  const typeOf = (field) => kind.fields[field]?.type;
87
97
  const weekly = connection.fields.days !== undefined;
88
- const mapped = Object.entries(connection.fields).filter((entry) => typeof entry[1] === "string");
98
+ // The guests in a field are judged where they are named: `"guests": "<field>"`, or `{ "field" }` (request:guests-field-form-takes-max).
99
+ const inField = guestsInField(connection.fields.guests);
100
+ const mapped = Object.entries(connection.fields).flatMap(([theirs, ours]) => (typeof ours === "string" ? [[theirs, ours]] : theirs === "guests" && inField ? [[theirs, inField.field]] : []));
89
101
  const seen = new Map();
90
102
  for (const [theirs, ours] of mapped) {
91
- const path = `${at}.fields.${theirs}`;
103
+ const path = `${at}.fields.${theirs}${theirs === "guests" && typeof connection.fields.guests === "object" ? ".field" : ""}`;
104
+ // 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.
105
+ if (!kind.fields[ours] && kind.computed?.[ours] !== undefined && theirs !== "guests" && theirs !== "days") {
106
+ const problem = computedProblem(connection.kind, ours, theirs === "summary" ? "the event's title" : `the event's ${theirs}`, connection.direction);
107
+ if (problem)
108
+ findings.push(problem(path));
109
+ seen.set(ours, theirs);
110
+ continue;
111
+ }
92
112
  if (!kind.fields[ours]) {
93
113
  findings.push(theirs === "guests"
94
114
  ? 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}`)] })
@@ -132,8 +152,11 @@ function googleConnection(at, name, connection, document, app) {
132
152
  if (!weekly && start && end && WHEN.has(start) && WHEN.has(end) && start !== end) {
133
153
  findings.push(error("connection-when", `${at}.fields.end`, `${connection.fields.start} is a ${start} and ${connection.fields.end} a ${end}, and an event is all-day or timed at both ends`, "make both dates (all-day events) or both datetimes (timed events)"));
134
154
  }
135
- if (typeof connection.fields.guests === "object")
136
- findings.push(...guestsVia(at, name, connection, connection.fields.guests, kind, document, app));
155
+ if (inField)
156
+ findings.push(...guestsCapped(`${at}.fields.guests`, inField.max));
157
+ const viaRelation = guestsViaRelation(connection.fields.guests);
158
+ if (viaRelation)
159
+ findings.push(...guestsVia(at, name, connection, viaRelation, kind, document, app));
137
160
  const filter = connection.filter;
138
161
  if (filter) {
139
162
  if (filter.color && filter.tag)
@@ -155,23 +178,64 @@ function googleConnection(at, name, connection, document, app) {
155
178
  return findings;
156
179
  }
157
180
  function notionConnection(at, connection, document, app) {
181
+ if (connection.sources) {
182
+ const findings = [];
183
+ // One form or the other: several sources each say their own kind and properties.
184
+ for (const key of ["kind", "source", "properties"]) {
185
+ if (connection[key] !== undefined)
186
+ 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`));
187
+ }
188
+ const kinds = new Map();
189
+ const named = new Map();
190
+ const sources = notionSourcesOf(connection);
191
+ sources.forEach((source, index) => {
192
+ const where = `${at}.sources.${index}`;
193
+ const twice = kinds.get(source.kind);
194
+ if (twice !== undefined) {
195
+ 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`));
196
+ return;
197
+ }
198
+ kinds.set(source.kind, index);
199
+ const key = source.source.toLowerCase().replace(/[^a-z0-9]/g, "");
200
+ const same = named.get(key);
201
+ if (same !== undefined)
202
+ 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"));
203
+ named.set(key, index);
204
+ findings.push(...notionSource(where, connection, source, document, app));
205
+ });
206
+ return findings;
207
+ }
208
+ if (connection.kind === undefined)
209
+ 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" }]`)];
210
+ return notionSource(at, connection, notionSourcesOf(connection)[0], document, app);
211
+ }
212
+ /** One data source of a Notion connection, judged at `at` (the connection, or one of its sources): its kind, and each property it maps. */
213
+ function notionSource(at, connection, source, document, app) {
158
214
  const findings = [];
159
- const kind = document.kinds[connection.kind];
215
+ const kindName = source.kind;
216
+ const kind = document.kinds[kindName];
160
217
  if (!kind)
161
- return [noKind(at, document, connection.kind, "the database's pages")];
218
+ return [noKind(at, document, kindName, "the database's pages")];
162
219
  let mapped;
163
220
  const relations = [];
164
- if (connection.properties) {
221
+ if (source.properties) {
165
222
  mapped = [];
166
223
  const seen = new Map();
167
224
  const edges = kind.edges ?? {};
168
- for (const [field, property] of Object.entries(connection.properties)) {
225
+ for (const [field, property] of Object.entries(source.properties)) {
169
226
  const path = `${at}.properties.${field}`;
170
227
  const name = typeof property === "string" ? property : property.name;
171
228
  const declared = typeof property === "string" ? undefined : property.type;
229
+ if (!kind.fields[field] && !edges[field] && kind.computed?.[field] !== undefined) {
230
+ 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);
231
+ if (problem)
232
+ findings.push(problem(path));
233
+ seen.set(name, field);
234
+ continue;
235
+ }
172
236
  if (!kind.fields[field] && !edges[field]) {
173
237
  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(", ")}`));
238
+ 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
239
  continue;
176
240
  }
177
241
  const twice = seen.get(name);
@@ -181,10 +245,10 @@ function notionConnection(at, connection, document, app) {
181
245
  if (!kind.fields[field]) {
182
246
  // One of the kind's relations, held by a relation property: its pages are records another Notion connection keeps.
183
247
  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}`));
248
+ 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
249
  continue;
186
250
  }
187
- const problem = relationTarget(connection.kind, field, edges[field].to, document);
251
+ const problem = relationTarget(kindName, field, edges[field].to, document);
188
252
  if (problem) {
189
253
  findings.push(error("connection-relation-target", path, problem.message, problem.fix));
190
254
  continue;
@@ -193,7 +257,7 @@ function notionConnection(at, connection, document, app) {
193
257
  continue;
194
258
  }
195
259
  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}`));
260
+ 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
261
  continue;
198
262
  }
199
263
  mapped.push(field);
@@ -211,26 +275,30 @@ function notionConnection(at, connection, document, app) {
211
275
  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
276
  }
213
277
  }
214
- if (mapped.length === 0 && Object.keys(connection.properties).length === 0) {
278
+ if (mapped.length === 0 && Object.keys(source.properties).length === 0) {
215
279
  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
280
  }
217
281
  }
218
282
  else {
219
283
  mapped = Object.entries(kind.fields).filter(([, spec]) => NOTION_INFERABLE.has(spec.type)).map(([field]) => field);
220
284
  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"));
285
+ 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
286
  }
223
287
  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));
288
+ 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
289
  }
226
290
  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` }));
291
+ 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
292
  return findings;
229
293
  }
230
294
  /** Whether a field holds a guest's addresses: a list of them (of strings, or of nothing said), or one email. */
231
295
  const holdsAddresses = (spec) => spec.type === "email" || (spec.type === "list" && (spec.of === undefined || spec.of === "string"));
232
296
  /** The fix that adds a list of addresses to a kind, as an edit a host applies. */
233
297
  const addressesField = (kind, field, label) => ({ label, edits: [{ op: "add-field", kind, field, type: "list", of: "string" }] });
298
+ /** The cap is a count of guests: a whole number above 0, or no cap at all (Roadmap f-sync-guest-changes-in-history) — in a field's form as in a relation's. */
299
+ function guestsCapped(path, max) {
300
+ return 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")] : [];
301
+ }
234
302
  /**
235
303
  * THE GUESTS THROUGH A RELATION, JUDGED (Roadmap f-calendar-guests-mapping):
236
304
  * that `via` is one relation of the kind to one kind, that the kind it
@@ -254,10 +322,13 @@ function guestsVia(at, name, connection, guests, kind, document, app) {
254
322
  }
255
323
  const reached = edge.to[0];
256
324
  const people = document.kinds[reached];
325
+ const capped = guestsCapped(path, guests.max);
326
+ if (capped.length > 0 && !people)
327
+ return capped;
257
328
  // A relation to a kind that is not there is the document's finding, said once where the relation is.
258
329
  if (!people)
259
330
  return [];
260
- const findings = [];
331
+ const findings = [...capped];
261
332
  const emails = guests.emails ?? "emails";
262
333
  const invite = guests.invite ?? "inviteMe";
263
334
  const plural = capitalize(people.plural ?? `${people.noun ?? humanizeField(reached).toLowerCase()}s`);
@@ -299,8 +370,9 @@ function guestsVia(at, name, connection, guests, kind, document, app) {
299
370
  function relationTarget(kindName, relation, to, document) {
300
371
  const kept = new Set(Object.values(document.connections ?? {})
301
372
  .map((raw) => raw)
302
- .filter((raw) => raw.system === "notion" && typeof raw.kind === "string")
303
- .map((raw) => String(raw.kind)));
373
+ .filter((raw) => raw.system === "notion")
374
+ .flatMap((raw) => notionSourcesOf(raw).map((one) => one.kind))
375
+ .filter((kind) => typeof kind === "string"));
304
376
  const keptBy = kept.size > 0 ? `the Notion connections here keep ${[...kept].join(", ")}` : "no other Notion connection is declared";
305
377
  if (to === "*")
306
378
  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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"}
@@ -23,10 +23,15 @@ export declare const ConnectionSpec: z.ZodMiniLazy<z.ZodMiniDiscriminatedUnion<[
23
23
  location: z.ZodMiniOptional<z.ZodMiniString<string>>;
24
24
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
25
25
  guests: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
26
+ field: z.ZodMiniString<string>;
27
+ notify: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
28
+ max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
29
+ }, z.core.$strict>, z.ZodMiniObject<{
26
30
  via: z.ZodMiniString<string>;
27
31
  emails: z.ZodMiniOptional<z.ZodMiniString<string>>;
28
32
  invite: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniLiteral<false>]>>;
29
33
  notify: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
34
+ max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
30
35
  }, z.core.$strict>]>>;
31
36
  }, z.core.$strict>;
32
37
  filter: z.ZodMiniOptional<z.ZodMiniObject<{
@@ -56,13 +61,25 @@ export declare const ConnectionSpec: z.ZodMiniLazy<z.ZodMiniDiscriminatedUnion<[
56
61
  env: z.ZodMiniString<string>;
57
62
  file: z.ZodMiniOptional<z.ZodMiniString<string>>;
58
63
  }, z.core.$strict>>;
59
- kind: z.ZodMiniString<string>;
64
+ kind: z.ZodMiniOptional<z.ZodMiniString<string>>;
60
65
  properties: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
61
66
  name: z.ZodMiniString<string>;
62
67
  type: z.ZodMiniEnum<{
63
68
  [x: string]: string;
64
69
  }>;
65
70
  }, z.core.$strict>]>>>;
71
+ sources: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
72
+ source: z.ZodMiniString<string>;
73
+ kind: z.ZodMiniString<string>;
74
+ description: z.ZodMiniOptional<z.ZodMiniString<string>>;
75
+ properties: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
76
+ name: z.ZodMiniString<string>;
77
+ type: z.ZodMiniEnum<{
78
+ [x: string]: string;
79
+ }>;
80
+ }, z.core.$strict>]>>>;
81
+ }, z.core.$strict>>>;
82
+ create: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
66
83
  direction: z.ZodMiniEnum<{
67
84
  read: "read";
68
85
  both: "both";
@@ -82,4 +99,40 @@ export type GoogleCalendarConnectionSpec = Extract<ConnectionSpec, {
82
99
  export type NotionConnectionSpec = Extract<ConnectionSpec, {
83
100
  system: "notion";
84
101
  }>;
102
+ /** A Google calendar connection's guests, in any of their forms. */
103
+ export type GuestsSpec = NonNullable<GoogleCalendarConnectionSpec["fields"]["guests"]>;
104
+ /** The guests typed in a field, said whole: `{ field, notify?, max? }`. */
105
+ export type GuestsInField = Extract<GuestsSpec, {
106
+ readonly field: string;
107
+ }>;
108
+ /** The guests reached through a relation: `{ via, emails?, invite?, notify?, max? }`. */
109
+ export type GuestsViaRelation = Extract<GuestsSpec, {
110
+ readonly via: string;
111
+ }>;
112
+ /**
113
+ * THE GUESTS IN A FIELD, whichever way they are said
114
+ * (request:guests-field-form-takes-max): `"guests": "<field>"` is
115
+ * `{ field: "<field>" }`. Undefined for the relation form, or no guests.
116
+ */
117
+ export declare function guestsInField(guests: GuestsSpec | undefined): GuestsInField | undefined;
118
+ /** The guests reached through a relation, or undefined for the field forms. */
119
+ export declare function guestsViaRelation(guests: GuestsSpec | undefined): GuestsViaRelation | undefined;
120
+ /** One data source a Notion connection keeps in step with one kind, and the resource its pages are to the engine. */
121
+ export interface NotionSourceSpec {
122
+ /** The data source by its name or id; absent when the database holds one. */
123
+ readonly source?: string;
124
+ readonly kind: string;
125
+ readonly properties?: NotionConnectionSpec["properties"];
126
+ readonly description?: string;
127
+ /** What the engine calls its pages, kept in its links: `pages` for a connection of one source, `pages:<kind>` for each of `sources`. */
128
+ readonly resource: string;
129
+ }
130
+ /**
131
+ * A NOTION CONNECTION'S DATA SOURCES, each with its kind: its `sources`, or
132
+ * the one its top names (`source`, `kind`, `properties`). Read loosely, so
133
+ * the checker can ask it of a connection it is still judging.
134
+ */
135
+ export declare function notionSourcesOf(connection: Pick<NotionConnectionSpec, "source" | "kind" | "properties" | "sources">): readonly NotionSourceSpec[];
136
+ /** The kinds a connection keeps: a calendar's one, or each of a Notion connection's sources'. */
137
+ export declare function connectionKinds(connection: ConnectionSpec): readonly string[];
85
138
  //# 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;AA6JtC;;;;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,oEAAoE;AACpE,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvF,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC5E,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAIvF;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAE/F;AAED,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,12 @@ 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. The field form takes them too, as
58
+ * `{ field, notify?, max? }` (request:guests-field-form-takes-max):
59
+ * `"guests": "<field>"` is `{ "field": "<field>" }` said short.
55
60
  */
56
61
  fields: z.strictObject({
57
62
  summary: fieldName,
@@ -60,7 +65,11 @@ function build() {
60
65
  days: z.optional(fieldName),
61
66
  location: z.optional(fieldName),
62
67
  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')),
68
+ guests: z.optional(z.union([
69
+ fieldName,
70
+ z.strictObject({ field: fieldName, notify: z.optional(z.boolean()), max: z.optional(z.number()) }),
71
+ 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()) }),
72
+ ], 'guests names a field holding the addresses (or { "field": "<field>", "notify"?, "max"? }), or { "via": "<relation>", "emails"?, "invite"?, "notify"?, "max"? } to invite the people a relation reaches')),
64
73
  }),
65
74
  /* 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
75
  filter: z.optional(z.strictObject({ color: z.optional(str(1, 40)), tag: z.optional(str(1, 40)), keep: z.optional(z.boolean()) })),
@@ -83,13 +92,35 @@ function build() {
83
92
  * A key of `properties` may name one of the kind's RELATIONS (edges) in
84
93
  * place of a field, held by a Notion relation property: its links are the
85
94
  * 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.
95
+ * the app keeps, or another source of this one (`"reindeer": "Reindeer
96
+ * Fleet"`, or with `"type": "relation"`). Matched by name, a relation
97
+ * whose name a relation property has is kept too.
98
+ *
99
+ * SEVERAL DATA SOURCES OF ONE DATABASE, EACH ITS OWN KIND (`sources`, in
100
+ * place of `source`, `kind` and `properties`): each names its data source
101
+ * by name or id, the kind its pages are, and its own `properties`. A
102
+ * relation between two of them is a Notion relation property, as it is
103
+ * between two connections.
104
+ *
105
+ * THE PROPERTIES IT NEEDS ARE MADE: a field mapped to a property the data
106
+ * source lacks is given one, of the type the field is held in, on the
107
+ * first pass and whenever one goes missing — never renamed, never
108
+ * deleted, and one there of another type is said and left. `create:
109
+ * false` turns that off; a connection that only reads makes none.
89
110
  */
90
111
  const notionTypes = [...Object.keys(NOTION_FITS), "relation"];
91
112
  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
113
  const notionType = z.enum(notionTypes, `a property's type is one a connection keeps in step: ${notionTypes.join(", ")}`);
114
+ /* This kind's field or relation → the data source's property, by its name in Notion, or `{ name, type }` with its type. */
115
+ const properties = z.optional(z.record(keptName, z.union([str(1, 100), z.strictObject({ name: str(1, 100), type: notionType })])));
116
+ /* One data source of the database and the kind its pages are. */
117
+ const NotionSource = z.strictObject({
118
+ /* The data source, by its name in Notion or its id. */
119
+ source: str(1, 200),
120
+ kind: kindName,
121
+ description: z.optional(sentence),
122
+ properties,
123
+ });
93
124
  const Notion = z.strictObject({
94
125
  system: z.literal("notion"),
95
126
  description: z.optional(sentence),
@@ -98,9 +129,13 @@ function build() {
98
129
  /* The data source, by its name in Notion or its id, when the database holds several. */
99
130
  source: z.optional(str(1, 200)),
100
131
  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 })]))),
132
+ /* The kind its pages are; absent when `sources` names a kind for each. */
133
+ kind: z.optional(kindName),
134
+ properties,
135
+ /* Several data sources of the database, each kept in step with its own kind (in place of source, kind and properties). */
136
+ sources: z.optional(z.array(NotionSource).check(z.minLength(1), z.maxLength(20))),
137
+ /* Whether a property a mapped field lacks is made in Notion (true unless said). */
138
+ create: z.optional(z.boolean()),
104
139
  direction,
105
140
  conflicts,
106
141
  every,
@@ -115,4 +150,37 @@ let built;
115
150
  * database. It never holds a secret.
116
151
  */
117
152
  export const ConnectionSpec = z.lazy(() => (built ??= build()));
153
+ /**
154
+ * THE GUESTS IN A FIELD, whichever way they are said
155
+ * (request:guests-field-form-takes-max): `"guests": "<field>"` is
156
+ * `{ field: "<field>" }`. Undefined for the relation form, or no guests.
157
+ */
158
+ export function guestsInField(guests) {
159
+ if (guests === undefined)
160
+ return undefined;
161
+ if (typeof guests === "string")
162
+ return { field: guests };
163
+ return "field" in guests ? guests : undefined;
164
+ }
165
+ /** The guests reached through a relation, or undefined for the field forms. */
166
+ export function guestsViaRelation(guests) {
167
+ return guests !== undefined && typeof guests === "object" && "via" in guests ? guests : undefined;
168
+ }
169
+ /**
170
+ * A NOTION CONNECTION'S DATA SOURCES, each with its kind: its `sources`, or
171
+ * the one its top names (`source`, `kind`, `properties`). Read loosely, so
172
+ * the checker can ask it of a connection it is still judging.
173
+ */
174
+ export function notionSourcesOf(connection) {
175
+ if (connection.sources && connection.sources.length > 0) {
176
+ 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}` }));
177
+ }
178
+ if (connection.kind === undefined)
179
+ return [];
180
+ return [{ ...(connection.source ? { source: connection.source } : {}), kind: connection.kind, ...(connection.properties ? { properties: connection.properties } : {}), resource: "pages" }];
181
+ }
182
+ /** The kinds a connection keeps: a calendar's one, or each of a Notion connection's sources'. */
183
+ export function connectionKinds(connection) {
184
+ return connection.system === "notion" ? notionSourcesOf(connection).map((one) => one.kind) : [connection.kind];
185
+ }
118
186
  //# sourceMappingURL=connection-spec.js.map