@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
@@ -34,6 +34,16 @@ import { NOTION_EDGE, NOTION_FITS, NOTION_LEFT_ALONE, NOTION_READ_ONLY, notionFi
34
34
  * type `NOTION_EDGE`): its value is the ids of the pages it reaches, every
35
35
  * one of them — Notion lists 25 on a page and the rest through the
36
36
  * property's own endpoint, which is followed — and it is written whole.
37
+ * - SEVERAL DATA SOURCES of one database are kept by one transport, each
38
+ * its own resource (`sources`): a pull reads each in turn, with a cursor
39
+ * of its own, and a push writes each page to the source its resource is.
40
+ * - THE PROPERTIES A MAPPING NEEDS ARE MADE (`make`): a name that finds no
41
+ * property, and has a property to make, is given one by changing the
42
+ * data source (PATCH /data_sources/{id}), each pull that finds it missing;
43
+ * a relation's is made to the source of this transport it links. Nothing
44
+ * there is renamed or deleted, and a property of another type is said and
45
+ * left. What was made is said in the pull's `said`, as every note is the
46
+ * first time.
37
47
  * - Notion asking us to slow down (429) is waited out as its `Retry-After`
38
48
  * says, within a bound; a refused secret (401) and a database the
39
49
  * integration cannot see (404) are said as sentences that say what to do.
@@ -171,17 +181,44 @@ function valuesOf(page) {
171
181
  export function notionVersion(page) {
172
182
  return `${String(page["last_edited_time"] ?? "")}~${hashOf(valuesOf(page))}`;
173
183
  }
174
- const readCursor = (cursor) => {
184
+ const oneCursor = (parsed) => parsed && typeof parsed.swept === "number" ? { swept: parsed.swept, ...(typeof parsed.since === "string" ? { since: parsed.since } : {}) } : undefined;
185
+ /** Each resource's cursor: a connection of one source keeps its own as it always has; one of several keeps them by resource (`by`). */
186
+ const readCursors = (cursor) => {
187
+ const out = new Map();
175
188
  if (!cursor)
176
- return undefined;
189
+ return out;
177
190
  try {
178
191
  const parsed = JSON.parse(cursor);
179
- return typeof parsed.swept === "number" ? { swept: parsed.swept, ...(typeof parsed.since === "string" ? { since: parsed.since } : {}) } : undefined;
192
+ const single = oneCursor(parsed);
193
+ if (single)
194
+ out.set("pages", single);
195
+ for (const [resource, one] of Object.entries(parsed.by ?? {})) {
196
+ const read = oneCursor(one);
197
+ if (read)
198
+ out.set(resource, read);
199
+ }
180
200
  }
181
201
  catch {
182
- return undefined;
202
+ // A cursor this build cannot read is a whole read, as none is.
183
203
  }
204
+ return out;
184
205
  };
206
+ /** A property's settings as Notion takes them when one is made. */
207
+ function madeSettings(made, linked) {
208
+ switch (made.type) {
209
+ case "select":
210
+ case "multi_select":
211
+ return { [made.type]: { options: (made.options ?? []).map((name) => ({ name })) } };
212
+ case "number":
213
+ return { number: { format: "number" } };
214
+ case "relation":
215
+ return { relation: { data_source_id: linked, type: "single_property", single_property: {} } };
216
+ default:
217
+ return { [made.type]: {} };
218
+ }
219
+ }
220
+ /** "Status, Due and Owner". */
221
+ const listed = (names) => (names.length <= 1 ? names.join("") : `${names.slice(0, -1).join(", ")} and ${names.at(-1)}`);
185
222
  export function notion(options) {
186
223
  const doFetch = options.fetch ?? globalThis.fetch;
187
224
  const base = options.baseUrl ?? NOTION_API;
@@ -191,10 +228,13 @@ export function notion(options) {
191
228
  const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
192
229
  const maxWait = options.maxWait ?? 60_000;
193
230
  const said = new Set();
231
+ /* What was said for the first time since the last pull returned: the pull's `said`. */
232
+ let fresh = [];
194
233
  const note = (line) => {
195
234
  if (said.has(line))
196
235
  return;
197
236
  said.add(line);
237
+ fresh.push(line);
198
238
  options.say?.(line);
199
239
  };
200
240
  /** One request, Notion's rate limit waited out; anything but a yes thrown as a `NotionError`. */
@@ -233,11 +273,11 @@ export function notion(options) {
233
273
  throw new NotionError(`notion: HTTP ${response.status}${code ? ` ${code}` : ""}${said ? `: ${said}` : ""}`, response.status, code);
234
274
  }
235
275
  };
236
- /** The data source this connection keeps in step: the database's only one, or the one `source` names. */
237
- let sourceId;
238
- const dataSource = async () => {
239
- if (sourceId)
240
- return sourceId;
276
+ /** The database, read once: its title and its data sources. */
277
+ let held;
278
+ const databaseOf = async () => {
279
+ if (held)
280
+ return held;
241
281
  let answer;
242
282
  try {
243
283
  answer = await call("GET", `/databases/${encodeURIComponent(databaseId)}`);
@@ -251,88 +291,216 @@ export function notion(options) {
251
291
  }
252
292
  throw error;
253
293
  }
254
- const sources = (answer["data_sources"] ?? []).map((one) => ({ id: String(one["id"]), name: String(one["name"] ?? "") }));
255
- const title = (answer["title"] ?? []).map((part) => String(part["plain_text"] ?? "")).join("") || databaseId;
256
- const named = options.source;
257
- const chosen = named
258
- ? (sources.find((one) => notionKey(one.id) === notionKey(named)) ?? sources.find((one) => one.name === named) ?? sources.find((one) => loose(one.name) === loose(named)))
259
- : sources.length === 1
260
- ? sources[0]
261
- : undefined;
262
- if (!chosen) {
263
- const list = sources.map((one) => one.name || one.id).join(", ");
264
- throw new NotionError(named
265
- ? `notion: the database ${title} has no data source ${named}; it holds ${list || "none"}`
266
- : `notion: the database ${title} holds ${sources.length} data sources — ${list} — so the connection says which with source`, 400, "validation_error");
267
- }
268
- sourceId = chosen.id;
269
- return chosen.id;
270
- };
271
- /** The data source's properties, by name — and a sentence when the integration cannot see it. */
272
- let schema;
273
- const database = async () => {
274
- const answer = await call("GET", `/data_sources/${encodeURIComponent(await dataSource())}`);
275
- const properties = new Map();
276
- for (const [name, property] of Object.entries(answer["properties"] ?? {})) {
277
- const type = String(property["type"]);
278
- const options = property[type]?.["options"] ?? [];
279
- properties.set(name, { name, type, options: options.map((option) => String(option["name"])) });
280
- }
281
- schema = properties;
282
- return properties;
283
- };
284
- /** The mapping's names, each to the property it finds: by name, loosely, and the title for `titleRef`. */
285
- const resolve = (properties) => {
286
- const found = resolveRefs(properties);
287
- // What is kept in step by nothing, said once: a formula, a rollup, a relation no relation here holds.
288
- const held = new Set([...found.values()].map((property) => property.name));
289
- const alone = [...properties.values()].filter((property) => !NOTION_FITS[property.type] && !held.has(property.name));
290
- if (alone.length > 0) {
291
- note(`left alone in Notion: ${alone.map((property) => `${property.name} (${property.type}${NOTION_LEFT_ALONE[property.type] ? `: ${NOTION_LEFT_ALONE[property.type]}` : ""})`).join(", ")}`);
292
- }
293
- return found;
294
+ held = {
295
+ title: (answer["title"] ?? []).map((part) => String(part["plain_text"] ?? "")).join("") || databaseId,
296
+ sources: (answer["data_sources"] ?? []).map((one) => ({ id: String(one["id"]), name: String(one["name"] ?? "") })),
297
+ };
298
+ return held;
294
299
  };
295
- const resolveRefs = (properties) => {
296
- const found = new Map();
297
- if (!options.refs) {
298
- for (const property of properties.values())
299
- if (NOTION_FITS[property.type])
300
- found.set(property.name, property);
300
+ const declared = options.sources ?? [
301
+ {
302
+ resource: "pages",
303
+ ...(options.source ? { source: options.source } : {}),
304
+ ...(options.refs ? { refs: options.refs } : {}),
305
+ ...(options.quiet ? { quiet: options.quiet } : {}),
306
+ ...(options.titleRef ? { titleRef: options.titleRef } : {}),
307
+ ...(options.make ? { make: options.make } : {}),
308
+ },
309
+ ];
310
+ /** One data source, kept as one resource: its id, its properties, and the pages it reads and writes. */
311
+ const keeper = (spec) => {
312
+ let sourceId;
313
+ /** Its id: the database's only source, or the one `source` names. */
314
+ const dataSource = async () => {
315
+ if (sourceId)
316
+ return sourceId;
317
+ const { title, sources } = await databaseOf();
318
+ const named = spec.source;
319
+ const chosen = named
320
+ ? (sources.find((one) => notionKey(one.id) === notionKey(named)) ?? sources.find((one) => one.name === named) ?? sources.find((one) => loose(one.name) === loose(named)))
321
+ : sources.length === 1
322
+ ? sources[0]
323
+ : undefined;
324
+ if (!chosen) {
325
+ const list = sources.map((one) => one.name || one.id).join(", ");
326
+ throw new NotionError(named
327
+ ? `notion: the database ${title} has no data source ${named}; it holds ${list || "none"}`
328
+ : `notion: the database ${title} holds ${sources.length} data sources — ${list} — so the connection says which with source`, 400, "validation_error");
329
+ }
330
+ sourceId = chosen.id;
331
+ return chosen.id;
332
+ };
333
+ /** Its properties, by name. */
334
+ let schema;
335
+ const readSchema = async () => {
336
+ const answer = await call("GET", `/data_sources/${encodeURIComponent(await dataSource())}`);
337
+ const properties = new Map();
338
+ for (const [name, property] of Object.entries(answer["properties"] ?? {})) {
339
+ const type = String(property["type"]);
340
+ const listed = property[type]?.["options"] ?? [];
341
+ properties.set(name, { name, type, options: listed.map((option) => String(option["name"])) });
342
+ }
343
+ schema = properties;
344
+ return properties;
345
+ };
346
+ /** The property a mapping's name finds: by name, loosely, and the title for `titleRef`. */
347
+ const find = (properties, ref) => {
348
+ const byLoose = [...properties.values()].find((property) => loose(property.name) === loose(ref));
349
+ return properties.get(ref) ?? byLoose ?? (ref === spec.titleRef ? [...properties.values()].find((property) => property.type === "title") : undefined);
350
+ };
351
+ /**
352
+ * THE PROPERTIES IT LACKS, MADE: each name of `make` that finds no
353
+ * property is given one in a single change of the data source; a
354
+ * relation's links the source of the resource it names. Said once, as
355
+ * a sentence; a refusal is said and the pass goes on without them.
356
+ */
357
+ const makeMissing = async (properties) => {
358
+ if (!spec.make)
359
+ return properties;
360
+ const wanted = {};
361
+ const names = [];
362
+ for (const [ref, made] of Object.entries(spec.make)) {
363
+ if (find(properties, ref))
364
+ continue;
365
+ let linked;
366
+ if (made.type === "relation") {
367
+ const other = keepers.find((one) => one.resource === made.to);
368
+ if (!other)
369
+ continue;
370
+ linked = await other.dataSource();
371
+ }
372
+ const name = made.name ?? ref;
373
+ wanted[name] = madeSettings(made, linked);
374
+ names.push(name);
375
+ }
376
+ if (names.length === 0)
377
+ return properties;
378
+ try {
379
+ await call("PATCH", `/data_sources/${encodeURIComponent(await dataSource())}`, { properties: wanted });
380
+ }
381
+ catch (error) {
382
+ note(`could not make ${listed(names)} in Notion: ${error instanceof Error ? error.message.replace(/^notion: /, "") : String(error)}`);
383
+ return properties;
384
+ }
385
+ note(`Made ${names.length} ${names.length === 1 ? "property" : "properties"} in Notion${declared.length > 1 ? ` for ${spec.resource.replace(/^pages:/, "")}` : ""}: ${listed(names)}`);
386
+ return readSchema();
387
+ };
388
+ /** The mapping's names, each to the property it finds. */
389
+ const resolve = (properties) => {
390
+ const found = resolveRefs(properties);
391
+ // What is kept in step by nothing, said once: a formula, a rollup, a relation no relation here holds.
392
+ const kept = new Set([...found.values()].map((property) => property.name));
393
+ const alone = [...properties.values()].filter((property) => !NOTION_FITS[property.type] && !kept.has(property.name));
394
+ if (alone.length > 0) {
395
+ note(`left alone in Notion: ${alone.map((property) => `${property.name} (${property.type}${NOTION_LEFT_ALONE[property.type] ? `: ${NOTION_LEFT_ALONE[property.type]}` : ""})`).join(", ")}`);
396
+ }
301
397
  return found;
302
- }
303
- const byLoose = new Map([...properties.values()].map((property) => [loose(property.name), property]));
304
- const title = [...properties.values()].find((property) => property.type === "title");
305
- const missing = [];
306
- for (const [ref, fieldType] of Object.entries(options.refs)) {
307
- const property = properties.get(ref) ?? byLoose.get(loose(ref)) ?? (ref === options.titleRef ? title : undefined);
308
- if (!property) {
309
- if (!options.quiet?.includes(ref))
310
- missing.push(ref);
311
- continue;
398
+ };
399
+ const resolveRefs = (properties) => {
400
+ const found = new Map();
401
+ if (!spec.refs) {
402
+ for (const property of properties.values())
403
+ if (NOTION_FITS[property.type])
404
+ found.set(property.name, property);
405
+ return found;
312
406
  }
313
- if (fieldType === NOTION_EDGE || property.type === "relation") {
314
- if (fieldType === NOTION_EDGE && property.type === "relation")
315
- found.set(ref, property);
316
- else if (fieldType === NOTION_EDGE)
317
- note(`${ref}: the property ${property.name} is a ${property.type} property, and a relation holds only a relation property, so it is left out`);
318
- else
319
- note(`${ref}: the property ${property.name} is a relation, which a relation of the kind holds and a field does not, so it is left out`);
320
- continue;
407
+ const missing = [];
408
+ for (const [ref, fieldType] of Object.entries(spec.refs)) {
409
+ const property = find(properties, ref);
410
+ if (!property) {
411
+ if (!spec.quiet?.includes(ref))
412
+ missing.push(ref);
413
+ continue;
414
+ }
415
+ if (fieldType === NOTION_EDGE || property.type === "relation") {
416
+ if (fieldType === NOTION_EDGE && property.type === "relation")
417
+ found.set(ref, property);
418
+ else if (fieldType === NOTION_EDGE)
419
+ note(`${ref}: the property ${property.name} is a ${property.type} property, and a relation holds only a relation property, so it is left out`);
420
+ else
421
+ note(`${ref}: the property ${property.name} is a relation, which a relation of the kind holds and a field does not, so it is left out`);
422
+ continue;
423
+ }
424
+ if (!NOTION_FITS[property.type]) {
425
+ note(`${ref}: the property ${property.name} is a ${property.type} property, which is not kept in step, so it is left out`);
426
+ continue;
427
+ }
428
+ if (fieldType && !notionFits(property.type, fieldType)) {
429
+ note(`${ref}: the property ${property.name} is a ${property.type} property, and a ${fieldType} field cannot hold it, so it is left out`);
430
+ continue;
431
+ }
432
+ found.set(ref, property);
321
433
  }
322
- if (!NOTION_FITS[property.type]) {
323
- note(`${ref}: the property ${property.name} is a ${property.type} property, which is not kept in step, so it is left out`);
324
- continue;
434
+ if (missing.length > 0)
435
+ note(`no property in the ${declared.length > 1 ? `data source for ${spec.resource.replace(/^pages:/, "")}` : "database"} for ${missing.join(", ")}, so ${missing.length === 1 ? "it is" : "they are"} not kept in step`);
436
+ return found;
437
+ };
438
+ /** Every page of one query: edited on or after `since`, oldest first; without it, the whole source. */
439
+ const query = async (since) => {
440
+ const pages = [];
441
+ let start;
442
+ for (;;) {
443
+ const answer = await call("POST", `/data_sources/${encodeURIComponent(await dataSource())}/query`, {
444
+ page_size: options.pageSize ?? 100,
445
+ sorts: [{ timestamp: "last_edited_time", direction: "ascending" }],
446
+ ...(since ? { filter: { timestamp: "last_edited_time", last_edited_time: { on_or_after: since } } } : {}),
447
+ ...(start ? { start_cursor: start } : {}),
448
+ });
449
+ pages.push(...(answer["results"] ?? []));
450
+ if (answer["has_more"] === true && typeof answer["next_cursor"] === "string") {
451
+ start = answer["next_cursor"];
452
+ continue;
453
+ }
454
+ return pages;
325
455
  }
326
- if (fieldType && !notionFits(property.type, fieldType)) {
327
- note(`${ref}: the property ${property.name} is a ${property.type} property, and a ${fieldType} field cannot hold it, so it is left out`);
328
- continue;
456
+ };
457
+ /** Whether a page this sync knew is gone from the source: archived, in the trash, moved out, or not there at all. */
458
+ const goneFromSource = async (id) => {
459
+ try {
460
+ const page = await call("GET", `/pages/${encodeURIComponent(id)}`);
461
+ const parent = page["parent"];
462
+ return page["archived"] === true || page["in_trash"] === true || notionKey(String(parent?.["data_source_id"] ?? "")) !== notionKey(await dataSource());
329
463
  }
330
- found.set(ref, property);
331
- }
332
- if (missing.length > 0)
333
- note(`no property in the database for ${missing.join(", ")}, so ${missing.length === 1 ? "it is" : "they are"} not kept in step`);
334
- return found;
464
+ catch (error) {
465
+ if (error instanceof NotionError && error.status === 404)
466
+ return true;
467
+ throw error;
468
+ }
469
+ };
470
+ /** Its properties as this pass keeps them: read, what it lacks made, resolved. */
471
+ const ready = async () => resolve(await makeMissing(await readSchema()));
472
+ return {
473
+ resource: spec.resource,
474
+ dataSource,
475
+ ready,
476
+ /** What a push resolves against: the properties the last pull read, or read now. */
477
+ resolved: async () => (schema ? resolve(schema) : ready()),
478
+ async pull(at, resolved, time) {
479
+ const whole = !at || time - at.swept >= (options.sweepEvery ?? DEFAULT_SWEEP);
480
+ const pages = await query(whole ? undefined : at.since);
481
+ let since = at?.since;
482
+ const changes = [];
483
+ for (const page of pages) {
484
+ const edited = String(page["last_edited_time"] ?? "");
485
+ if (edited && (!since || edited > since))
486
+ since = edited;
487
+ const archived = page["archived"] === true || page["in_trash"] === true;
488
+ changes.push({ resource: spec.resource, id: String(page["id"]), version: notionVersion(page), ...(archived ? { deleted: true } : { fields: await fieldsOf(page, resolved) }) });
489
+ }
490
+ if (whole && options.known) {
491
+ const listedHere = new Set(pages.map((page) => notionKey(String(page["id"]))));
492
+ for (const id of options.known(spec.resource)) {
493
+ if (listedHere.has(notionKey(id)))
494
+ continue;
495
+ if (await goneFromSource(id))
496
+ changes.push({ resource: spec.resource, id, version: "gone", deleted: true });
497
+ }
498
+ }
499
+ return { changes, cursor: { ...(since ? { since } : {}), swept: whole ? time : at.swept } };
500
+ },
501
+ };
335
502
  };
503
+ const keepers = declared.map(keeper);
336
504
  const fieldsOf = async (page, resolved) => {
337
505
  const properties = page["properties"] ?? {};
338
506
  const out = {};
@@ -363,72 +531,38 @@ export function notion(options) {
363
531
  return ids.length > 0 ? ids : null;
364
532
  }
365
533
  };
366
- /** Every page of one query: edited on or after `since`, oldest first; without it, the whole database. */
367
- const query = async (since) => {
368
- const pages = [];
369
- let start;
370
- for (;;) {
371
- const answer = await call("POST", `/data_sources/${encodeURIComponent(await dataSource())}/query`, {
372
- page_size: options.pageSize ?? 100,
373
- sorts: [{ timestamp: "last_edited_time", direction: "ascending" }],
374
- ...(since ? { filter: { timestamp: "last_edited_time", last_edited_time: { on_or_after: since } } } : {}),
375
- ...(start ? { start_cursor: start } : {}),
376
- });
377
- pages.push(...(answer["results"] ?? []));
378
- if (answer["has_more"] === true && typeof answer["next_cursor"] === "string") {
379
- start = answer["next_cursor"];
380
- continue;
381
- }
382
- return pages;
383
- }
384
- };
385
- /** Whether a page this sync knew is gone from the database: archived, in the trash, moved out, or not there at all. */
386
- const goneFromDatabase = async (id) => {
387
- try {
388
- const page = await call("GET", `/pages/${encodeURIComponent(id)}`);
389
- const parent = page["parent"];
390
- return page["archived"] === true || page["in_trash"] === true || notionKey(String(parent?.["data_source_id"] ?? "")) !== notionKey(await dataSource());
391
- }
392
- catch (error) {
393
- if (error instanceof NotionError && error.status === 404)
394
- return true;
395
- throw error;
396
- }
397
- };
398
534
  return {
399
535
  name: "notion",
400
536
  async pull(cursor) {
401
- const resolved = resolve(await database());
402
- const at = readCursor(cursor);
537
+ fresh = [];
403
538
  const time = now();
404
- const whole = !at || time - at.swept >= (options.sweepEvery ?? DEFAULT_SWEEP);
405
- const pages = await query(whole ? undefined : at.since);
406
- let since = at?.since;
539
+ const cursors = readCursors(cursor);
540
+ // Every source made ready first: a relation made on one links another's source.
541
+ const resolved = new Map();
542
+ for (const one of keepers)
543
+ resolved.set(one.resource, await one.ready());
407
544
  const changes = [];
408
- for (const page of pages) {
409
- const edited = String(page["last_edited_time"] ?? "");
410
- if (edited && (!since || edited > since))
411
- since = edited;
412
- const archived = page["archived"] === true || page["in_trash"] === true;
413
- changes.push({ resource: "pages", id: String(page["id"]), version: notionVersion(page), ...(archived ? { deleted: true } : { fields: await fieldsOf(page, resolved) }) });
414
- }
415
- if (whole && options.known) {
416
- const listed = new Set(pages.map((page) => notionKey(String(page["id"]))));
417
- for (const id of options.known()) {
418
- if (listed.has(notionKey(id)))
419
- continue;
420
- if (await goneFromDatabase(id))
421
- changes.push({ resource: "pages", id, version: "gone", deleted: true });
422
- }
545
+ const next = new Map();
546
+ for (const one of keepers) {
547
+ const pulled = await one.pull(cursors.get(one.resource), resolved.get(one.resource), time);
548
+ changes.push(...pulled.changes);
549
+ next.set(one.resource, pulled.cursor);
423
550
  }
424
- return { changes, cursor: JSON.stringify({ ...(since ? { since } : {}), swept: whole ? time : at.swept }) };
551
+ // One source of `pages` keeps its cursor as it always has; several keep theirs by resource.
552
+ const only = keepers.length === 1 && keepers[0].resource === "pages" ? next.get("pages") : undefined;
553
+ const written = only ?? { by: Object.fromEntries(next) };
554
+ const said = fresh;
555
+ fresh = [];
556
+ return { changes, cursor: JSON.stringify(written), ...(said.length > 0 ? { said } : {}) };
425
557
  },
426
558
  async push(writes) {
427
- const resolved = resolve(schema ?? (await database()));
428
559
  const acks = [];
429
560
  for (const write of writes) {
430
561
  try {
431
- acks.push(await one(write, resolved));
562
+ const one = keepers.find((keeper) => keeper.resource === write.resource) ?? (keepers.length === 1 ? keepers[0] : undefined);
563
+ if (!one)
564
+ throw new Error(`notion: no data source here keeps ${write.resource}`);
565
+ acks.push(await writeOne(write, await one.resolved(), one.dataSource));
432
566
  }
433
567
  catch (error) {
434
568
  // One refusal is not a failed run: the engine keeps the local state for this write and says so.
@@ -438,7 +572,7 @@ export function notion(options) {
438
572
  return acks;
439
573
  },
440
574
  };
441
- async function one(write, resolved) {
575
+ async function writeOne(write, resolved, dataSource) {
442
576
  if (write.deleted && write.id) {
443
577
  try {
444
578
  await call("PATCH", `/pages/${encodeURIComponent(write.id)}`, { in_trash: true });
@@ -1 +1 @@
1
- {"version":3,"file":"notion.js","sourceRoot":"","sources":["../../src/sync/notion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notion.js","sourceRoot":"","sources":["../../src/sync/notion.ts"],"names":[],"mappings":"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"}