@graview/core 0.1.61 → 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 (464) hide show
  1. package/README.md +13 -1
  2. package/dist/app-places.d.ts.map +1 -1
  3. package/dist/app-places.js +2 -2
  4. package/dist/app-places.js.map +1 -1
  5. package/dist/app.d.ts +22 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/arranging.js +2 -2
  9. package/dist/arranging.js.map +1 -1
  10. package/dist/capabilities.js +1 -1
  11. package/dist/capabilities.js.map +1 -1
  12. package/dist/cli/check/hidden-reads.d.ts.map +1 -1
  13. package/dist/cli/check/hidden-reads.js +26 -0
  14. package/dist/cli/check/hidden-reads.js.map +1 -1
  15. package/dist/cli/check/index.d.ts +2 -0
  16. package/dist/cli/check/index.d.ts.map +1 -1
  17. package/dist/cli/check/index.js +2 -0
  18. package/dist/cli/check/index.js.map +1 -1
  19. package/dist/cli/check/tidying.d.ts +14 -0
  20. package/dist/cli/check/tidying.d.ts.map +1 -0
  21. package/dist/cli/check/tidying.js +24 -0
  22. package/dist/cli/check/tidying.js.map +1 -0
  23. package/dist/cli/check/workflows.d.ts +11 -0
  24. package/dist/cli/check/workflows.d.ts.map +1 -0
  25. package/dist/cli/check/workflows.js +20 -0
  26. package/dist/cli/check/workflows.js.map +1 -0
  27. package/dist/cli/check.d.ts.map +1 -1
  28. package/dist/cli/check.js +3 -1
  29. package/dist/cli/check.js.map +1 -1
  30. package/dist/cli/describe.d.ts.map +1 -1
  31. package/dist/cli/describe.js +45 -2
  32. package/dist/cli/describe.js.map +1 -1
  33. package/dist/cli/document-schema.d.ts.map +1 -1
  34. package/dist/cli/document-schema.js +15 -2
  35. package/dist/cli/document-schema.js.map +1 -1
  36. package/dist/cli/index.js +1 -1
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/compose.d.ts +11 -3
  39. package/dist/compose.d.ts.map +1 -1
  40. package/dist/compose.js +12 -2
  41. package/dist/compose.js.map +1 -1
  42. package/dist/css/sanitize.d.ts +125 -0
  43. package/dist/css/sanitize.d.ts.map +1 -0
  44. package/dist/css/sanitize.js +989 -0
  45. package/dist/css/sanitize.js.map +1 -0
  46. package/dist/css/tables.d.ts +55 -0
  47. package/dist/css/tables.d.ts.map +1 -0
  48. package/dist/css/tables.js +137 -0
  49. package/dist/css/tables.js.map +1 -0
  50. package/dist/css.d.ts +20 -0
  51. package/dist/css.d.ts.map +1 -0
  52. package/dist/css.js +19 -0
  53. package/dist/css.js.map +1 -0
  54. package/dist/days.d.ts +15 -0
  55. package/dist/days.d.ts.map +1 -1
  56. package/dist/days.js +21 -0
  57. package/dist/days.js.map +1 -1
  58. package/dist/describe.d.ts +1 -1
  59. package/dist/describe.d.ts.map +1 -1
  60. package/dist/document/act-findings.d.ts.map +1 -1
  61. package/dist/document/act-findings.js +80 -1
  62. package/dist/document/act-findings.js.map +1 -1
  63. package/dist/document/amount.d.ts +1 -1
  64. package/dist/document/amount.d.ts.map +1 -1
  65. package/dist/document/amount.js +2 -2
  66. package/dist/document/amount.js.map +1 -1
  67. package/dist/document/blocks.d.ts.map +1 -1
  68. package/dist/document/blocks.js +17 -1
  69. package/dist/document/blocks.js.map +1 -1
  70. package/dist/document/brand-check.d.ts +15 -1
  71. package/dist/document/brand-check.d.ts.map +1 -1
  72. package/dist/document/brand-check.js +80 -0
  73. package/dist/document/brand-check.js.map +1 -1
  74. package/dist/document/brand.d.ts.map +1 -1
  75. package/dist/document/brand.js +2 -0
  76. package/dist/document/brand.js.map +1 -1
  77. package/dist/document/compile-checked.d.ts.map +1 -1
  78. package/dist/document/compile-checked.js +5 -2
  79. package/dist/document/compile-checked.js.map +1 -1
  80. package/dist/document/compile.d.ts.map +1 -1
  81. package/dist/document/compile.js +96 -16
  82. package/dist/document/compile.js.map +1 -1
  83. package/dist/document/compiled.d.ts +32 -3
  84. package/dist/document/compiled.d.ts.map +1 -1
  85. package/dist/document/compiled.js +123 -12
  86. package/dist/document/compiled.js.map +1 -1
  87. package/dist/document/connection-findings.js +165 -22
  88. package/dist/document/connection-findings.js.map +1 -1
  89. package/dist/document/connection-spec.d.ts +38 -1
  90. package/dist/document/connection-spec.d.ts.map +1 -1
  91. package/dist/document/connection-spec.js +71 -7
  92. package/dist/document/connection-spec.js.map +1 -1
  93. package/dist/document/covers.d.ts +48 -0
  94. package/dist/document/covers.d.ts.map +1 -0
  95. package/dist/document/covers.js +90 -0
  96. package/dist/document/covers.js.map +1 -0
  97. package/dist/document/derives-findings.d.ts +4 -0
  98. package/dist/document/derives-findings.d.ts.map +1 -0
  99. package/dist/document/derives-findings.js +68 -0
  100. package/dist/document/derives-findings.js.map +1 -0
  101. package/dist/document/describe-forms.js +2 -2
  102. package/dist/document/describe-forms.js.map +1 -1
  103. package/dist/document/describe-place.d.ts +3 -0
  104. package/dist/document/describe-place.d.ts.map +1 -1
  105. package/dist/document/describe-place.js +11 -0
  106. package/dist/document/describe-place.js.map +1 -1
  107. package/dist/document/described.d.ts +28 -0
  108. package/dist/document/described.d.ts.map +1 -1
  109. package/dist/document/diff.d.ts +6 -0
  110. package/dist/document/diff.d.ts.map +1 -1
  111. package/dist/document/diff.js +53 -2
  112. package/dist/document/diff.js.map +1 -1
  113. package/dist/document/edit.d.ts +1 -1
  114. package/dist/document/edit.d.ts.map +1 -1
  115. package/dist/document/edit.js +366 -29
  116. package/dist/document/edit.js.map +1 -1
  117. package/dist/document/expr/evaluate.d.ts +17 -1
  118. package/dist/document/expr/evaluate.d.ts.map +1 -1
  119. package/dist/document/expr/evaluate.js +110 -2
  120. package/dist/document/expr/evaluate.js.map +1 -1
  121. package/dist/document/expr/index.d.ts +1 -0
  122. package/dist/document/expr/index.d.ts.map +1 -1
  123. package/dist/document/expr/index.js +2 -0
  124. package/dist/document/expr/index.js.map +1 -1
  125. package/dist/document/expr/typing.d.ts +24 -0
  126. package/dist/document/expr/typing.d.ts.map +1 -0
  127. package/dist/document/expr/typing.js +219 -0
  128. package/dist/document/expr/typing.js.map +1 -0
  129. package/dist/document/expr/when.d.ts +52 -0
  130. package/dist/document/expr/when.d.ts.map +1 -0
  131. package/dist/document/expr/when.js +215 -0
  132. package/dist/document/expr/when.js.map +1 -0
  133. package/dist/document/expr-type-findings.d.ts +5 -0
  134. package/dist/document/expr-type-findings.d.ts.map +1 -0
  135. package/dist/document/expr-type-findings.js +90 -0
  136. package/dist/document/expr-type-findings.js.map +1 -0
  137. package/dist/document/format-words.d.ts +1 -0
  138. package/dist/document/format-words.d.ts.map +1 -1
  139. package/dist/document/format-words.js +2 -2
  140. package/dist/document/format-words.js.map +1 -1
  141. package/dist/document/index.d.ts +6 -3
  142. package/dist/document/index.d.ts.map +1 -1
  143. package/dist/document/index.js +5 -2
  144. package/dist/document/index.js.map +1 -1
  145. package/dist/document/kept-in-step-with.d.ts +20 -0
  146. package/dist/document/kept-in-step-with.d.ts.map +1 -0
  147. package/dist/document/kept-in-step-with.js +38 -0
  148. package/dist/document/kept-in-step-with.js.map +1 -0
  149. package/dist/document/kept-in-step.d.ts.map +1 -1
  150. package/dist/document/kept-in-step.js +3 -1
  151. package/dist/document/kept-in-step.js.map +1 -1
  152. package/dist/document/linked-findings.js +1 -1
  153. package/dist/document/linked-findings.js.map +1 -1
  154. package/dist/document/money.d.ts +10 -2
  155. package/dist/document/money.d.ts.map +1 -1
  156. package/dist/document/money.js +14 -5
  157. package/dist/document/money.js.map +1 -1
  158. package/dist/document/policy-words.d.ts +2 -0
  159. package/dist/document/policy-words.d.ts.map +1 -1
  160. package/dist/document/policy-words.js +11 -1
  161. package/dist/document/policy-words.js.map +1 -1
  162. package/dist/document/rule-line.d.ts +7 -3
  163. package/dist/document/rule-line.d.ts.map +1 -1
  164. package/dist/document/rule-line.js +17 -2
  165. package/dist/document/rule-line.js.map +1 -1
  166. package/dist/document/rule-reads.d.ts.map +1 -1
  167. package/dist/document/rule-reads.js +3 -1
  168. package/dist/document/rule-reads.js.map +1 -1
  169. package/dist/document/rules.d.ts +30 -0
  170. package/dist/document/rules.d.ts.map +1 -1
  171. package/dist/document/rules.js +74 -0
  172. package/dist/document/rules.js.map +1 -1
  173. package/dist/document/schema.d.ts +110 -2
  174. package/dist/document/schema.d.ts.map +1 -1
  175. package/dist/document/schema.js +125 -10
  176. package/dist/document/schema.js.map +1 -1
  177. package/dist/document/template-parse.d.ts.map +1 -1
  178. package/dist/document/template-parse.js +7 -1
  179. package/dist/document/template-parse.js.map +1 -1
  180. package/dist/document/template.d.ts +2 -0
  181. package/dist/document/template.d.ts.map +1 -1
  182. package/dist/document/template.js +10 -1
  183. package/dist/document/template.js.map +1 -1
  184. package/dist/document/to-document.d.ts.map +1 -1
  185. package/dist/document/to-document.js +5 -3
  186. package/dist/document/to-document.js.map +1 -1
  187. package/dist/document/workflow-spec.d.ts +72 -0
  188. package/dist/document/workflow-spec.d.ts.map +1 -0
  189. package/dist/document/workflow-spec.js +45 -0
  190. package/dist/document/workflow-spec.js.map +1 -0
  191. package/dist/document.schema.json +1143 -50
  192. package/dist/history.d.ts.map +1 -1
  193. package/dist/history.js +2 -0
  194. package/dist/history.js.map +1 -1
  195. package/dist/index.d.ts +11 -8
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +8 -5
  198. package/dist/index.js.map +1 -1
  199. package/dist/installation.d.ts +1 -1
  200. package/dist/invariants/types.d.ts +7 -2
  201. package/dist/invariants/types.d.ts.map +1 -1
  202. package/dist/job-findings.d.ts +5 -0
  203. package/dist/job-findings.d.ts.map +1 -1
  204. package/dist/job-findings.js +9 -3
  205. package/dist/job-findings.js.map +1 -1
  206. package/dist/keep-linked.d.ts +45 -0
  207. package/dist/keep-linked.d.ts.map +1 -0
  208. package/dist/keep-linked.js +188 -0
  209. package/dist/keep-linked.js.map +1 -0
  210. package/dist/lines.d.ts.map +1 -1
  211. package/dist/lines.js +6 -2
  212. package/dist/lines.js.map +1 -1
  213. package/dist/mutations/derive-edits.js +2 -2
  214. package/dist/mutations/propose-changes.d.ts +24 -0
  215. package/dist/mutations/propose-changes.d.ts.map +1 -0
  216. package/dist/mutations/propose-changes.js +30 -0
  217. package/dist/mutations/propose-changes.js.map +1 -0
  218. package/dist/mutations/types.d.ts +9 -0
  219. package/dist/mutations/types.d.ts.map +1 -1
  220. package/dist/mutations/vote-suggestion.d.ts +97 -0
  221. package/dist/mutations/vote-suggestion.d.ts.map +1 -0
  222. package/dist/mutations/vote-suggestion.js +59 -0
  223. package/dist/mutations/vote-suggestion.js.map +1 -0
  224. package/dist/mutations/words.js +3 -3
  225. package/dist/navigate.d.ts +7 -3
  226. package/dist/navigate.d.ts.map +1 -1
  227. package/dist/navigate.js +7 -3
  228. package/dist/navigate.js.map +1 -1
  229. package/dist/ops/digest.d.ts +3 -1
  230. package/dist/ops/digest.d.ts.map +1 -1
  231. package/dist/ops/digest.js +7 -2
  232. package/dist/ops/digest.js.map +1 -1
  233. package/dist/ops/lineage.d.ts +29 -2
  234. package/dist/ops/lineage.d.ts.map +1 -1
  235. package/dist/ops/lineage.js +12 -4
  236. package/dist/ops/lineage.js.map +1 -1
  237. package/dist/ops/log.d.ts.map +1 -1
  238. package/dist/ops/log.js +13 -2
  239. package/dist/ops/log.js.map +1 -1
  240. package/dist/ops/suggestions.d.ts +75 -1
  241. package/dist/ops/suggestions.d.ts.map +1 -1
  242. package/dist/ops/suggestions.js +123 -6
  243. package/dist/ops/suggestions.js.map +1 -1
  244. package/dist/ops/tidying.d.ts.map +1 -1
  245. package/dist/ops/tidying.js +6 -1
  246. package/dist/ops/tidying.js.map +1 -1
  247. package/dist/ops/types.d.ts +41 -0
  248. package/dist/ops/types.d.ts.map +1 -1
  249. package/dist/ops/types.js.map +1 -1
  250. package/dist/ops/undo.d.ts.map +1 -1
  251. package/dist/ops/undo.js +17 -0
  252. package/dist/ops/undo.js.map +1 -1
  253. package/dist/permissions/policy.d.ts +7 -0
  254. package/dist/permissions/policy.d.ts.map +1 -1
  255. package/dist/permissions/policy.js +12 -0
  256. package/dist/permissions/policy.js.map +1 -1
  257. package/dist/permissions/types.d.ts +27 -0
  258. package/dist/permissions/types.d.ts.map +1 -1
  259. package/dist/permissions/types.js.map +1 -1
  260. package/dist/place-names.d.ts +42 -0
  261. package/dist/place-names.d.ts.map +1 -0
  262. package/dist/place-names.js +43 -0
  263. package/dist/place-names.js.map +1 -0
  264. package/dist/places.d.ts +12 -0
  265. package/dist/places.d.ts.map +1 -1
  266. package/dist/places.js +37 -1
  267. package/dist/places.js.map +1 -1
  268. package/dist/scene.d.ts +2 -0
  269. package/dist/scene.d.ts.map +1 -1
  270. package/dist/scene.js +2 -0
  271. package/dist/scene.js.map +1 -1
  272. package/dist/schema/amount-mark.d.ts +2 -0
  273. package/dist/schema/amount-mark.d.ts.map +1 -1
  274. package/dist/schema/amount-mark.js.map +1 -1
  275. package/dist/schema/amount-words.js +2 -2
  276. package/dist/schema/amount-words.js.map +1 -1
  277. package/dist/schema/choice-words.js +2 -2
  278. package/dist/schema/define-node.d.ts +8 -2
  279. package/dist/schema/define-node.d.ts.map +1 -1
  280. package/dist/schema/define-node.js +2 -2
  281. package/dist/schema/define-node.js.map +1 -1
  282. package/dist/schema/humanize.d.ts +17 -0
  283. package/dist/schema/humanize.d.ts.map +1 -1
  284. package/dist/schema/humanize.js +28 -1
  285. package/dist/schema/humanize.js.map +1 -1
  286. package/dist/schema/reading.d.ts +8 -0
  287. package/dist/schema/reading.d.ts.map +1 -1
  288. package/dist/schema/reading.js +16 -2
  289. package/dist/schema/reading.js.map +1 -1
  290. package/dist/schema/types.d.ts +8 -0
  291. package/dist/schema/types.d.ts.map +1 -1
  292. package/dist/schema/value-words.js +2 -2
  293. package/dist/schema/value-words.js.map +1 -1
  294. package/dist/starting-document.d.ts +47 -2
  295. package/dist/starting-document.d.ts.map +1 -1
  296. package/dist/starting-document.js +66 -8
  297. package/dist/starting-document.js.map +1 -1
  298. package/dist/store.d.ts +75 -1
  299. package/dist/store.d.ts.map +1 -1
  300. package/dist/store.js +305 -29
  301. package/dist/store.js.map +1 -1
  302. package/dist/sync/connection.d.ts +35 -6
  303. package/dist/sync/connection.d.ts.map +1 -1
  304. package/dist/sync/connection.js +252 -47
  305. package/dist/sync/connection.js.map +1 -1
  306. package/dist/sync/engine.d.ts +83 -0
  307. package/dist/sync/engine.d.ts.map +1 -1
  308. package/dist/sync/engine.js +157 -4
  309. package/dist/sync/engine.js.map +1 -1
  310. package/dist/sync/google-calendar.d.ts +8 -0
  311. package/dist/sync/google-calendar.d.ts.map +1 -1
  312. package/dist/sync/google-calendar.js +30 -3
  313. package/dist/sync/google-calendar.js.map +1 -1
  314. package/dist/sync/guest-words.d.ts +9 -0
  315. package/dist/sync/guest-words.d.ts.map +1 -0
  316. package/dist/sync/guest-words.js +41 -0
  317. package/dist/sync/guest-words.js.map +1 -0
  318. package/dist/sync/guests.d.ts +44 -0
  319. package/dist/sync/guests.d.ts.map +1 -0
  320. package/dist/sync/guests.js +57 -0
  321. package/dist/sync/guests.js.map +1 -0
  322. package/dist/sync/index.d.ts +8 -5
  323. package/dist/sync/index.d.ts.map +1 -1
  324. package/dist/sync/index.js +2 -0
  325. package/dist/sync/index.js.map +1 -1
  326. package/dist/sync/notion-stub.d.ts +4 -1
  327. package/dist/sync/notion-stub.d.ts.map +1 -1
  328. package/dist/sync/notion-stub.js +40 -0
  329. package/dist/sync/notion-stub.js.map +1 -1
  330. package/dist/sync/notion.d.ts +43 -2
  331. package/dist/sync/notion.d.ts.map +1 -1
  332. package/dist/sync/notion.js +274 -140
  333. package/dist/sync/notion.js.map +1 -1
  334. package/dist/sync/status.d.ts +43 -0
  335. package/dist/sync/status.d.ts.map +1 -0
  336. package/dist/sync/status.js +45 -0
  337. package/dist/sync/status.js.map +1 -0
  338. package/dist/sync/types.d.ts +64 -0
  339. package/dist/sync/types.d.ts.map +1 -1
  340. package/dist/sync/types.js.map +1 -1
  341. package/dist/testing.js +1 -1
  342. package/dist/testing.js.map +1 -1
  343. package/dist/theme/contrast.d.ts +2 -0
  344. package/dist/theme/contrast.d.ts.map +1 -1
  345. package/dist/theme/contrast.js +4 -0
  346. package/dist/theme/contrast.js.map +1 -1
  347. package/dist/theme/ground.d.ts +1 -2
  348. package/dist/theme/ground.d.ts.map +1 -1
  349. package/dist/theme/ground.js +2 -5
  350. package/dist/theme/ground.js.map +1 -1
  351. package/dist/theme/marks.d.ts +14 -2
  352. package/dist/theme/marks.d.ts.map +1 -1
  353. package/dist/theme/marks.js +20 -3
  354. package/dist/theme/marks.js.map +1 -1
  355. package/dist/theme/types.d.ts +22 -0
  356. package/dist/theme/types.d.ts.map +1 -1
  357. package/dist/theme/types.js.map +1 -1
  358. package/dist/tidying.d.ts +79 -4
  359. package/dist/tidying.d.ts.map +1 -1
  360. package/dist/tidying.js +216 -9
  361. package/dist/tidying.js.map +1 -1
  362. package/dist/trait-vocabulary.d.ts +17 -0
  363. package/dist/trait-vocabulary.d.ts.map +1 -0
  364. package/dist/trait-vocabulary.js +16 -0
  365. package/dist/trait-vocabulary.js.map +1 -0
  366. package/dist/traits.d.ts +14 -7
  367. package/dist/traits.d.ts.map +1 -1
  368. package/dist/traits.js +33 -12
  369. package/dist/traits.js.map +1 -1
  370. package/dist/validate-graph.d.ts +2 -1
  371. package/dist/validate-graph.d.ts.map +1 -1
  372. package/dist/validate-graph.js +32 -1
  373. package/dist/validate-graph.js.map +1 -1
  374. package/dist/version.d.ts +1 -1
  375. package/dist/version.js +1 -1
  376. package/dist/words.d.ts +4 -1
  377. package/dist/words.d.ts.map +1 -1
  378. package/dist/words.js +4 -1
  379. package/dist/words.js.map +1 -1
  380. package/dist/workflow-shape.d.ts +217 -0
  381. package/dist/workflow-shape.d.ts.map +1 -0
  382. package/dist/workflow-shape.js +31 -0
  383. package/dist/workflow-shape.js.map +1 -0
  384. package/dist/workflows/findings.d.ts +13 -0
  385. package/dist/workflows/findings.d.ts.map +1 -0
  386. package/dist/workflows/findings.js +157 -0
  387. package/dist/workflows/findings.js.map +1 -0
  388. package/dist/workflows/generate-words.d.ts +12 -0
  389. package/dist/workflows/generate-words.d.ts.map +1 -0
  390. package/dist/workflows/generate-words.js +25 -0
  391. package/dist/workflows/generate-words.js.map +1 -0
  392. package/dist/workflows/generate.d.ts +59 -0
  393. package/dist/workflows/generate.d.ts.map +1 -0
  394. package/dist/workflows/generate.js +165 -0
  395. package/dist/workflows/generate.js.map +1 -0
  396. package/dist/workflows/judging.d.ts +17 -0
  397. package/dist/workflows/judging.d.ts.map +1 -0
  398. package/dist/workflows/judging.js +11 -0
  399. package/dist/workflows/judging.js.map +1 -0
  400. package/dist/workflows/next.d.ts +18 -0
  401. package/dist/workflows/next.d.ts.map +1 -0
  402. package/dist/workflows/next.js +75 -0
  403. package/dist/workflows/next.js.map +1 -0
  404. package/dist/workflows/on-the-map.d.ts +70 -0
  405. package/dist/workflows/on-the-map.d.ts.map +1 -0
  406. package/dist/workflows/on-the-map.js +94 -0
  407. package/dist/workflows/on-the-map.js.map +1 -0
  408. package/dist/workflows/policies.d.ts +39 -0
  409. package/dist/workflows/policies.d.ts.map +1 -0
  410. package/dist/workflows/policies.js +95 -0
  411. package/dist/workflows/policies.js.map +1 -0
  412. package/dist/workflows/resolve.d.ts +55 -0
  413. package/dist/workflows/resolve.d.ts.map +1 -0
  414. package/dist/workflows/resolve.js +57 -0
  415. package/dist/workflows/resolve.js.map +1 -0
  416. package/dist/workflows/schedule.d.ts +28 -0
  417. package/dist/workflows/schedule.d.ts.map +1 -0
  418. package/dist/workflows/schedule.js +160 -0
  419. package/dist/workflows/schedule.js.map +1 -0
  420. package/dist/workflows/step-act.d.ts +6 -0
  421. package/dist/workflows/step-act.d.ts.map +1 -0
  422. package/dist/workflows/step-act.js +79 -0
  423. package/dist/workflows/step-act.js.map +1 -0
  424. package/dist/workflows/step-agent.d.ts +4 -0
  425. package/dist/workflows/step-agent.d.ts.map +1 -0
  426. package/dist/workflows/step-agent.js +55 -0
  427. package/dist/workflows/step-agent.js.map +1 -0
  428. package/dist/workflows/step-archive.d.ts +8 -0
  429. package/dist/workflows/step-archive.d.ts.map +1 -0
  430. package/dist/workflows/step-archive.js +74 -0
  431. package/dist/workflows/step-archive.js.map +1 -0
  432. package/dist/workflows/step-classify.d.ts +23 -0
  433. package/dist/workflows/step-classify.d.ts.map +1 -0
  434. package/dist/workflows/step-classify.js +143 -0
  435. package/dist/workflows/step-classify.js.map +1 -0
  436. package/dist/workflows/step-generate.d.ts +7 -0
  437. package/dist/workflows/step-generate.d.ts.map +1 -0
  438. package/dist/workflows/step-generate.js +185 -0
  439. package/dist/workflows/step-generate.js.map +1 -0
  440. package/dist/workflows/steps.d.ts +75 -0
  441. package/dist/workflows/steps.d.ts.map +1 -0
  442. package/dist/workflows/steps.js +40 -0
  443. package/dist/workflows/steps.js.map +1 -0
  444. package/dist/workflows/triggered.d.ts +22 -0
  445. package/dist/workflows/triggered.d.ts.map +1 -0
  446. package/dist/workflows/triggered.js +52 -0
  447. package/dist/workflows/triggered.js.map +1 -0
  448. package/dist/workflows/values.d.ts +28 -0
  449. package/dist/workflows/values.d.ts.map +1 -0
  450. package/dist/workflows/values.js +75 -0
  451. package/dist/workflows/values.js.map +1 -0
  452. package/dist/workflows/words.d.ts +10 -0
  453. package/dist/workflows/words.d.ts.map +1 -0
  454. package/dist/workflows/words.js +30 -0
  455. package/dist/workflows/words.js.map +1 -0
  456. package/dist/workflows/world.d.ts +23 -0
  457. package/dist/workflows/world.d.ts.map +1 -0
  458. package/dist/workflows/world.js +50 -0
  459. package/dist/workflows/world.js.map +1 -0
  460. package/dist/workflows.d.ts +35 -0
  461. package/dist/workflows.d.ts.map +1 -0
  462. package/dist/workflows.js +20 -0
  463. package/dist/workflows.js.map +1 -0
  464. package/package.json +18 -2
@@ -42,14 +42,69 @@ export interface SyncReport {
42
42
  /** Records the remote deleted: removed here through `removeInbound`, or, without one, kept here and no longer synced. */
43
43
  readonly gone: readonly string[];
44
44
  readonly offline: boolean;
45
+ /**
46
+ * What the transport did to the remote, or found there, said as
47
+ * sentences: "Made 3 properties in Notion: Status, Due and Owner".
48
+ * Absent when it said nothing new.
49
+ */
50
+ readonly said?: readonly string[];
45
51
  /**
46
52
  * What the remote said when it could not be reached, in its transport's
47
53
  * words — a secret it refused, a database not shared — so a host says
48
54
  * why rather than only that. Absent when the run reached it.
49
55
  */
50
56
  readonly problem?: string;
57
+ /**
58
+ * WHOM THE PASS INVITED AND TOOK OFF (Roadmap
59
+ * f-sync-guest-changes-in-history), record by record, for a connection
60
+ * that keeps guests (`SyncOptions.guests`): only writes that reached the
61
+ * remote — one it refused, or the connection held, invited nobody — and
62
+ * the people the record reaches who were left out, and why. Absent when
63
+ * no write said its guests.
64
+ */
65
+ readonly guests?: readonly GuestChange[];
51
66
  readonly state: SyncState;
52
67
  }
68
+ /** One record's guests as a pass sent them: addresses invited and taken off, sorted, and who was left out. */
69
+ export interface GuestChange {
70
+ readonly localId: string;
71
+ readonly invited: readonly string[];
72
+ readonly removed: readonly string[];
73
+ readonly leftOut?: readonly GuestLeftOut[];
74
+ }
75
+ /**
76
+ * SOMEBODY THE RECORD REACHES WHO WAS NOT INVITED, and why: their Invite
77
+ * me is off (`invite-off`), they have no address (`no-address`), or the
78
+ * record reached is not one of the people the guests are (`not-a-person`).
79
+ */
80
+ export interface GuestLeftOut {
81
+ readonly address?: string;
82
+ /** The record of the person (or the thing reached), by our id. */
83
+ readonly person?: string;
84
+ readonly why: "invite-off" | "no-address" | "not-a-person";
85
+ }
86
+ /**
87
+ * THE GUESTS A CONNECTION KEEPS (Roadmap f-sync-guest-changes-in-history):
88
+ * which of a mapping's fields or relations is the attendees, read as
89
+ * addresses, so a pass can say whom it invited and took off, hold a record
90
+ * over `max`, and keep what it last sent (`SyncState.guests`).
91
+ */
92
+ export interface SyncGuests {
93
+ /** Our field or relation kept as the attendees. */
94
+ readonly field: string;
95
+ /** The addresses a value of it says, in our representation: lowercased, once each. */
96
+ addresses(value: unknown): readonly string[];
97
+ /** The record of the person holding an address, when the app has one: said by their name. */
98
+ whose?(address: string): string | undefined;
99
+ /** The field of a person's addresses, so a seat that may not see it is not told them in the history. */
100
+ readonly emails?: string;
101
+ /** Who the record reaches and is not invited, and why. */
102
+ leftOut?(localId: string): readonly GuestLeftOut[];
103
+ /** The most guests one record invites: a write that invites somebody past it is held unsent, and said. */
104
+ readonly max?: number;
105
+ /** Whether the remote mails the guests a write invites, kept with what was sent. */
106
+ readonly notify?: boolean;
107
+ }
53
108
  /**
54
109
  * One change that did not land, and why. A change coming IN that this
55
110
  * store refused (a policy, an invariant, a host's own `admit`) also names
@@ -136,6 +191,10 @@ export interface SyncOptions<S extends AnySchema> {
136
191
  readonly edge: string;
137
192
  readonly to: string;
138
193
  }): MutationCall | null;
194
+ /** The guests the connection keeps, when it keeps some (Roadmap f-sync-guest-changes-in-history). */
195
+ readonly guests?: SyncGuests;
196
+ /** The clock a pass and a sent guest list are stamped with; the runtime's when absent. */
197
+ now?(): Date;
139
198
  }
140
199
  /** What one change coming in is, as the acts it lands through: a record made or its fields, and its links. */
141
200
  /**
@@ -203,6 +262,8 @@ export declare class SyncEngine<S extends AnySchema> {
203
262
  linkOf(localId: string): string | undefined;
204
263
  /** Our id of the remote's record, if this engine linked it. */
205
264
  linkedTo(id: string): string | undefined;
265
+ /** The record with the computed fields a connection sends, worked out over the store's graph (Roadmap f-keep-linked); a record or a set of them said by name. */
266
+ private withWorkedOut;
206
267
  /**
207
268
  * A NODE'S VALUES AS THE REMOTE IS COMPARED WITH: its mapped fields, and
208
269
  * each mapped relation as the remote ids of the records it reaches — those
@@ -263,6 +324,28 @@ export declare class SyncEngine<S extends AnySchema> {
263
324
  * be told is stale, and then the conflict we report would be one we caused.
264
325
  */
265
326
  run(): Promise<SyncReport>;
327
+ /** A write's guests on the way out, or undefined when it does not say them. */
328
+ private outgoing;
329
+ /** A record's label, as its kind says it. */
330
+ private labelOf;
331
+ /** Addresses as people say them: the name of the person holding each, once, else the address. */
332
+ private namesOf;
333
+ /**
334
+ * ONE HISTORY LINE FOR WHAT WENT OUT, credited to the connection's system:
335
+ * no primitives, no reads, no writes — it changed nothing here and stands
336
+ * in no undo's way — and the records and fields its sentence read named
337
+ * in `described`, so a seat that may not see them is served it withheld.
338
+ */
339
+ private guestLine;
340
+ /** A write with guests that did not go, said once while it stays the same write refused for the same reason. */
341
+ private refusedLine;
342
+ /**
343
+ * THE PASS'S LINES, IN ONE BATCH: each record's own sentence, and over
344
+ * several the pass's ("Invited 2 people to 3 events"). Appended after
345
+ * the writes went, so a store that will not take them (one opened at a
346
+ * past moment) loses only the words, never the pass.
347
+ */
348
+ private sayGuests;
266
349
  private heldState;
267
350
  /** Records what the remote made of one of our writes. */
268
351
  private linkAfterPush;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ import { computedValues } from "../document/computed-values.js";
1
2
  import { splicedRecord } from "../graph/primitives.js";
2
3
  import { PermissionDeniedError } from "../permissions/types.js";
4
+ import { labelOf, nounOf, pluralOf } from "../schema/define-node.js";
5
+ import { passSaid, recordSaid, refusedSaid } from "./guest-words.js";
3
6
  import { seesId } from "../seen.js";
4
7
  import { NewerFormatError } from "../format-error.js";
5
8
  import { EMPTY_SYNC_STATE, SYNC_STATE_FORMAT, systemAuthor, } from "./types.js";
@@ -10,11 +13,13 @@ export function edgeValue(ids) {
10
13
  const list = Array.isArray(ids) ? [...new Set(ids.filter((id) => typeof id === "string" && id !== ""))].sort() : typeof ids === "string" && ids !== "" ? [ids] : [];
11
14
  return list.length > 0 ? list : null;
12
15
  }
13
- /** Reads a node's mapped values, in OUR field names. */
16
+ /** Reads a node's mapped values, in OUR field names — each as both sides compare it, where the mapping says what people type is looser (`normalize`). */
14
17
  function mappedValues(node, mapping) {
15
18
  const values = {};
16
- for (const ours of Object.keys(mapping.fields))
17
- values[ours] = node[ours];
19
+ for (const ours of Object.keys(mapping.fields)) {
20
+ const normalize = mapping.normalize?.[ours];
21
+ values[ours] = normalize ? normalize(node[ours]) : node[ours];
22
+ }
18
23
  return values;
19
24
  }
20
25
  /**
@@ -155,6 +160,12 @@ export class SyncEngine {
155
160
  this.reverse = { links, byId: new Map(Object.entries(links).map(([localId, link]) => [link.id, localId])) };
156
161
  return this.reverse.byId.get(id);
157
162
  }
163
+ /** The record with the computed fields a connection sends, worked out over the store's graph (Roadmap f-keep-linked); a record or a set of them said by name. */
164
+ withWorkedOut(node, fields) {
165
+ const { values } = computedValues(this.options.store.schema, this.options.store.graph, node);
166
+ const said = (value) => (Array.isArray(value) ? value.map(said) : value !== null && typeof value === "object" ? value.label : value);
167
+ return { ...node, ...Object.fromEntries(fields.map((field) => [field, said(values[field])])) };
168
+ }
158
169
  /**
159
170
  * A NODE'S VALUES AS THE REMOTE IS COMPARED WITH: its mapped fields, and
160
171
  * each mapped relation as the remote ids of the records it reaches — those
@@ -162,7 +173,7 @@ export class SyncEngine {
162
173
  * no engine has linked yet (made here, not sent) is not in it until it is.
163
174
  */
164
175
  valuesOf(node, mapping) {
165
- const values = mappedValues(node, mapping);
176
+ const values = mappedValues(mapping.computed?.length ? this.withWorkedOut(node, mapping.computed) : node, mapping);
166
177
  if (!mapping.edges)
167
178
  return values;
168
179
  const id = node["id"];
@@ -523,6 +534,7 @@ export class SyncEngine {
523
534
  const policy = this.policy;
524
535
  let offline = false;
525
536
  let problem;
537
+ let said;
526
538
  let links = { ...this.state.links };
527
539
  let cursor = this.state.cursor;
528
540
  const skipped = { ...this.state.skipped };
@@ -553,6 +565,7 @@ export class SyncEngine {
553
565
  try {
554
566
  const result = await this.options.remote.pull(cursor);
555
567
  cursor = result.cursor;
568
+ said = result.said;
556
569
  const byRemoteId = new Map(Object.entries(links).map(([localId, link]) => [`${link.resource}:${link.id}`, localId]));
557
570
  for (const change of result.changes) {
558
571
  const mapping = this.mappingFor(change.resource);
@@ -772,6 +785,33 @@ export class SyncEngine {
772
785
  * limit is discovered.
773
786
  */
774
787
  const deduped = [...new Map(this.pending().map((write) => [write.localId, write])).values()];
788
+ const at = (this.options.now?.() ?? new Date()).toISOString();
789
+ const guests = this.options.guests;
790
+ const guestsKept = { ...this.state.guests };
791
+ const outgoing = new Map();
792
+ const lines = [];
793
+ const changes = [];
794
+ if (guests) {
795
+ for (const write of [...deduped]) {
796
+ const out = this.outgoing(guests, write, links);
797
+ if (!out)
798
+ continue;
799
+ /*
800
+ * OVER THE CAP, HELD: a write that would invite somebody to a record
801
+ * with more guests than the connection invites to one is not sent at
802
+ * all, and said in words — once in the history, on every pass in the
803
+ * report, for as long as it stands.
804
+ */
805
+ if (guests.max !== undefined && out.invited.length > 0 && out.addresses.length > guests.max) {
806
+ const error = `${this.labelOf(write.localId)} has ${out.addresses.length} guests; this connection invites at most ${guests.max}`;
807
+ refused.push({ localId: write.localId, error });
808
+ deduped.splice(deduped.indexOf(write), 1);
809
+ this.refusedLine(guests, write.localId, out, error, at, guestsKept, lines);
810
+ continue;
811
+ }
812
+ outgoing.set(write.localId, out);
813
+ }
814
+ }
775
815
  let queued = deduped;
776
816
  if (!offline && deduped.length > 0) {
777
817
  try {
@@ -779,6 +819,10 @@ export class SyncEngine {
779
819
  for (const ack of acks) {
780
820
  if (ack.error) {
781
821
  refused.push({ localId: ack.localId, error: ack.error });
822
+ // A write the remote refused invited nobody: said once in the history, never counted.
823
+ const out = outgoing.get(ack.localId);
824
+ if (guests && out)
825
+ this.refusedLine(guests, ack.localId, out, ack.error, at, guestsKept, lines);
782
826
  // A refused delete is said once: we stop asking, rather than
783
827
  // being refused again on every pass for as long as we run.
784
828
  if (deduped.find((write) => write.localId === ack.localId)?.deleted) {
@@ -788,6 +832,17 @@ export class SyncEngine {
788
832
  continue;
789
833
  }
790
834
  pushed.push(ack.localId);
835
+ const out = guests ? outgoing.get(ack.localId) : undefined;
836
+ if (guests && out) {
837
+ guestsKept[ack.localId] = { sent: { addresses: out.addresses, notified: guests.notify === true, at } };
838
+ const leftOut = guests.leftOut?.(ack.localId) ?? [];
839
+ if (out.invited.length > 0 || out.removed.length > 0 || leftOut.length > 0)
840
+ changes.push({ localId: ack.localId, invited: out.invited, removed: out.removed, ...(leftOut.length > 0 ? { leftOut } : {}) });
841
+ if (out.invited.length > 0 || out.removed.length > 0)
842
+ lines.push(this.guestLine(guests, ack.localId, out, recordSaid(this.namesOf(guests, out.invited), this.namesOf(guests, out.removed), this.labelOf(ack.localId)), {}));
843
+ }
844
+ else if (deduped.find((write) => write.localId === ack.localId)?.deleted)
845
+ delete guestsKept[ack.localId];
791
846
  links = this.linkAfterPush(links, ack, deduped);
792
847
  }
793
848
  // Anything the remote did not acknowledge at all stays queued rather
@@ -800,6 +855,22 @@ export class SyncEngine {
800
855
  problem = error instanceof Error ? error.message : String(error);
801
856
  }
802
857
  }
858
+ this.sayGuests(lines, changes);
859
+ for (const id of Object.keys(guestsKept))
860
+ if (!links[id] && !this.options.store.graph.getNode(id))
861
+ delete guestsKept[id];
862
+ const lastPass = {
863
+ at,
864
+ offline,
865
+ ...(problem ? { problem } : {}),
866
+ applied: applied.length,
867
+ pushed: pushed.length,
868
+ queued: queued.length,
869
+ conflicts: (this.state.conflicts ?? []).length,
870
+ refused: refused.map(({ localId, error }) => ({ localId, error })),
871
+ invited: changes.reduce((sum, change) => sum + change.invited.length, 0),
872
+ removed: changes.reduce((sum, change) => sum + change.removed.length, 0),
873
+ };
803
874
  this.state = {
804
875
  ...(cursor === undefined ? {} : { cursor }),
805
876
  links,
@@ -808,6 +879,8 @@ export class SyncEngine {
808
879
  ...(this.state.gone ? { gone: this.state.gone } : {}),
809
880
  ...(this.state.unresolved ? { unresolved: this.state.unresolved } : {}),
810
881
  ...(this.state.skipped ? { skipped: this.state.skipped } : {}),
882
+ ...(Object.keys(guestsKept).length > 0 ? { guests: guestsKept } : {}),
883
+ lastPass,
811
884
  };
812
885
  return {
813
886
  system: this.options.mapping.system,
@@ -820,10 +893,90 @@ export class SyncEngine {
820
893
  refused,
821
894
  gone,
822
895
  offline,
896
+ ...(said && said.length > 0 ? { said } : {}),
823
897
  ...(problem ? { problem } : {}),
898
+ ...(changes.length > 0 ? { guests: changes } : {}),
824
899
  state: this.snapshot,
825
900
  };
826
901
  }
902
+ /** A write's guests on the way out, or undefined when it does not say them. */
903
+ outgoing(guests, write, links) {
904
+ if (write.deleted || !write.fields)
905
+ return undefined;
906
+ const mapping = this.mappingFor(write.resource);
907
+ const theirs = mapping ? keptOf(mapping)[guests.field] : undefined;
908
+ if (!mapping || theirs === undefined || !(theirs in write.fields))
909
+ return undefined;
910
+ const sorted = (value) => [...new Set(guests.addresses(value))].sort();
911
+ const addresses = sorted(ourFields({ [theirs]: write.fields[theirs] }, mapping, true)[guests.field]);
912
+ const link = links[write.localId];
913
+ const before = link ? sorted(link.fields[guests.field]) : [];
914
+ return { addresses, invited: addresses.filter((one) => !before.includes(one)), removed: before.filter((one) => !addresses.includes(one)) };
915
+ }
916
+ /** A record's label, as its kind says it. */
917
+ labelOf(localId) {
918
+ const node = this.options.store.graph.getNode(localId);
919
+ return node ? labelOf(this.options.store.schema.tryDefinition(node.kind), node) : localId;
920
+ }
921
+ /** Addresses as people say them: the name of the person holding each, once, else the address. */
922
+ namesOf(guests, addresses) {
923
+ return [...new Set(addresses.map((one) => {
924
+ const person = guests.whose?.(one);
925
+ return person === undefined ? one : this.labelOf(person);
926
+ }))];
927
+ }
928
+ /**
929
+ * ONE HISTORY LINE FOR WHAT WENT OUT, credited to the connection's system:
930
+ * no primitives, no reads, no writes — it changed nothing here and stands
931
+ * in no undo's way — and the records and fields its sentence read named
932
+ * in `described`, so a seat that may not see them is served it withheld.
933
+ */
934
+ guestLine(guests, localId, out, intent, extra) {
935
+ const people = [...out.invited, ...out.removed].map((one) => guests.whose?.(one)).filter((id) => id !== undefined);
936
+ const described = [...new Set([localId, `${localId}#${guests.field}`, ...people, ...(guests.emails ? people.map((id) => `${id}#${guests.emails}`) : [])])];
937
+ const name = this.options.mapping.name;
938
+ return { author: { ...systemAuthor(this.options.mapping.system), ...(name ? { name } : {}) }, intent, primitives: [], reads: [], writes: [], described, sentOut: { invited: out.invited.length, removed: out.removed.length, ...extra } };
939
+ }
940
+ /** A write with guests that did not go, said once while it stays the same write refused for the same reason. */
941
+ refusedLine(guests, localId, out, error, at, kept, lines) {
942
+ if (out.invited.length === 0 && out.removed.length === 0)
943
+ return;
944
+ const was = kept[localId]?.refused;
945
+ if (was && was.error === error && same(was.addresses, out.addresses))
946
+ return;
947
+ kept[localId] = { ...kept[localId], refused: { addresses: out.addresses, error, at } };
948
+ lines.push(this.guestLine(guests, localId, out, refusedSaid(this.namesOf(guests, out.invited), this.namesOf(guests, out.removed), this.labelOf(localId), error), { refused: true }));
949
+ }
950
+ /**
951
+ * THE PASS'S LINES, IN ONE BATCH: each record's own sentence, and over
952
+ * several the pass's ("Invited 2 people to 3 events"). Appended after
953
+ * the writes went, so a store that will not take them (one opened at a
954
+ * past moment) loses only the words, never the pass.
955
+ */
956
+ sayGuests(lines, changes) {
957
+ if (lines.length === 0)
958
+ return;
959
+ let ops = lines;
960
+ if (lines.length > 1) {
961
+ const kind = (id) => String(this.options.store.graph.getNode(id)?.kind ?? "");
962
+ const first = changes[0]?.localId ?? "";
963
+ const noun = nounOf(this.options.store.schema.tryDefinition(kind(first)), kind(first) || "record");
964
+ const plural = kind(first) ? pluralOf(this.options.store.schema, kind(first)) : "records";
965
+ const invited = new Set(changes.flatMap((change) => this.namesOf(this.options.guests, change.invited)));
966
+ const removed = new Set(changes.flatMap((change) => this.namesOf(this.options.guests, change.removed)));
967
+ const sent = passSaid(invited.size, changes.filter((change) => change.invited.length > 0).length, removed.size, changes.filter((change) => change.removed.length > 0).length, noun, plural);
968
+ const held = lines.filter((line) => line.sentOut?.refused).length;
969
+ const notSent = held > 0 ? `${held} not sent` : "";
970
+ const batchIntent = [sent, notSent].filter(Boolean).join("; ");
971
+ ops = lines.map((line) => ({ ...line, batchIntent: batchIntent.charAt(0).toUpperCase() + batchIntent.slice(1) }));
972
+ }
973
+ try {
974
+ this.options.store.append(ops);
975
+ }
976
+ catch {
977
+ // The writes went: the words are the only thing lost.
978
+ }
979
+ }
827
980
  heldState(held) {
828
981
  return held.size > 0 ? { conflicts: [...held.values()] } : {};
829
982
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}