@graview/core 0.1.28 → 0.1.30

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 (647) hide show
  1. package/README.md +17 -0
  2. package/dist/amount-input.d.ts +21 -0
  3. package/dist/amount-input.d.ts.map +1 -0
  4. package/dist/amount-input.js +96 -0
  5. package/dist/amount-input.js.map +1 -0
  6. package/dist/answer-seen.d.ts +38 -0
  7. package/dist/answer-seen.d.ts.map +1 -0
  8. package/dist/answer-seen.js +122 -0
  9. package/dist/answer-seen.js.map +1 -0
  10. package/dist/app-places.d.ts +56 -0
  11. package/dist/app-places.d.ts.map +1 -0
  12. package/dist/app-places.js +203 -0
  13. package/dist/app-places.js.map +1 -0
  14. package/dist/app.d.ts +16 -0
  15. package/dist/app.d.ts.map +1 -1
  16. package/dist/app.js.map +1 -1
  17. package/dist/arrange.d.ts +4 -2
  18. package/dist/arrange.d.ts.map +1 -1
  19. package/dist/arrange.js +4 -2
  20. package/dist/arrange.js.map +1 -1
  21. package/dist/arrangement-words.d.ts +3 -0
  22. package/dist/arrangement-words.d.ts.map +1 -0
  23. package/dist/arrangement-words.js +50 -0
  24. package/dist/arrangement-words.js.map +1 -0
  25. package/dist/arrangement.d.ts +43 -3
  26. package/dist/arrangement.d.ts.map +1 -1
  27. package/dist/arrangement.js +69 -31
  28. package/dist/arrangement.js.map +1 -1
  29. package/dist/arranging.d.ts.map +1 -1
  30. package/dist/arranging.js +36 -14
  31. package/dist/arranging.js.map +1 -1
  32. package/dist/bind.d.ts +3 -0
  33. package/dist/bind.d.ts.map +1 -1
  34. package/dist/bind.js.map +1 -1
  35. package/dist/blocks.d.ts +1 -1
  36. package/dist/blocks.d.ts.map +1 -1
  37. package/dist/capabilities.js +1 -1
  38. package/dist/capabilities.js.map +1 -1
  39. package/dist/check.d.ts +3 -0
  40. package/dist/check.d.ts.map +1 -1
  41. package/dist/check.js +3 -0
  42. package/dist/check.js.map +1 -1
  43. package/dist/city.d.ts +58 -50
  44. package/dist/city.d.ts.map +1 -1
  45. package/dist/city.js +160 -147
  46. package/dist/city.js.map +1 -1
  47. package/dist/cli/check/brand.d.ts.map +1 -1
  48. package/dist/cli/check/brand.js +30 -2
  49. package/dist/cli/check/brand.js.map +1 -1
  50. package/dist/cli/check/clock-rules.d.ts +4 -0
  51. package/dist/cli/check/clock-rules.d.ts.map +1 -0
  52. package/dist/cli/check/clock-rules.js +26 -0
  53. package/dist/cli/check/clock-rules.js.map +1 -0
  54. package/dist/cli/check/field-sight.d.ts +11 -0
  55. package/dist/cli/check/field-sight.d.ts.map +1 -0
  56. package/dist/cli/check/field-sight.js +113 -0
  57. package/dist/cli/check/field-sight.js.map +1 -0
  58. package/dist/cli/check/index.d.ts +2 -0
  59. package/dist/cli/check/index.d.ts.map +1 -1
  60. package/dist/cli/check/index.js +2 -0
  61. package/dist/cli/check/index.js.map +1 -1
  62. package/dist/cli/check/lenses.d.ts +1 -1
  63. package/dist/cli/check/lenses.d.ts.map +1 -1
  64. package/dist/cli/check/lenses.js +48 -2
  65. package/dist/cli/check/lenses.js.map +1 -1
  66. package/dist/cli/check/relations.d.ts +23 -0
  67. package/dist/cli/check/relations.d.ts.map +1 -1
  68. package/dist/cli/check/relations.js +55 -4
  69. package/dist/cli/check/relations.js.map +1 -1
  70. package/dist/cli/check.d.ts.map +1 -1
  71. package/dist/cli/check.js +7 -4
  72. package/dist/cli/check.js.map +1 -1
  73. package/dist/cli/create.d.ts.map +1 -1
  74. package/dist/cli/create.js +32 -0
  75. package/dist/cli/create.js.map +1 -1
  76. package/dist/cli/describe.d.ts.map +1 -1
  77. package/dist/cli/describe.js +71 -7
  78. package/dist/cli/describe.js.map +1 -1
  79. package/dist/cli/docs.d.ts.map +1 -1
  80. package/dist/cli/docs.js +4 -3
  81. package/dist/cli/docs.js.map +1 -1
  82. package/dist/cli/doctor.d.ts +18 -1
  83. package/dist/cli/doctor.d.ts.map +1 -1
  84. package/dist/cli/doctor.js +58 -5
  85. package/dist/cli/doctor.js.map +1 -1
  86. package/dist/cli/document-schema.d.ts +2 -0
  87. package/dist/cli/document-schema.d.ts.map +1 -1
  88. package/dist/cli/document-schema.js +154 -5
  89. package/dist/cli/document-schema.js.map +1 -1
  90. package/dist/cli/index.d.ts +1 -1
  91. package/dist/cli/index.d.ts.map +1 -1
  92. package/dist/cli/types.d.ts.map +1 -1
  93. package/dist/cli/types.js +16 -2
  94. package/dist/cli/types.js.map +1 -1
  95. package/dist/clock-readers.d.ts +18 -0
  96. package/dist/clock-readers.d.ts.map +1 -0
  97. package/dist/clock-readers.js +70 -0
  98. package/dist/clock-readers.js.map +1 -0
  99. package/dist/clock.d.ts +30 -0
  100. package/dist/clock.d.ts.map +1 -0
  101. package/dist/clock.js +41 -0
  102. package/dist/clock.js.map +1 -0
  103. package/dist/columns.d.ts.map +1 -1
  104. package/dist/columns.js +2 -1
  105. package/dist/columns.js.map +1 -1
  106. package/dist/conformance/fixtures.d.ts.map +1 -1
  107. package/dist/conformance/fixtures.js +491 -43
  108. package/dist/conformance/fixtures.js.map +1 -1
  109. package/dist/coverage-words.d.ts +18 -0
  110. package/dist/coverage-words.d.ts.map +1 -0
  111. package/dist/coverage-words.js +18 -0
  112. package/dist/coverage-words.js.map +1 -0
  113. package/dist/days.d.ts +53 -4
  114. package/dist/days.d.ts.map +1 -1
  115. package/dist/days.js +136 -16
  116. package/dist/days.js.map +1 -1
  117. package/dist/describe.d.ts +1 -0
  118. package/dist/describe.d.ts.map +1 -1
  119. package/dist/describe.js +1 -0
  120. package/dist/describe.js.map +1 -1
  121. package/dist/document/act-findings.d.ts.map +1 -1
  122. package/dist/document/act-findings.js +32 -4
  123. package/dist/document/act-findings.js.map +1 -1
  124. package/dist/document/amount.d.ts +4 -0
  125. package/dist/document/amount.d.ts.map +1 -0
  126. package/dist/document/amount.js +22 -0
  127. package/dist/document/amount.js.map +1 -0
  128. package/dist/document/block-context.d.ts.map +1 -1
  129. package/dist/document/block-context.js +1 -0
  130. package/dist/document/block-context.js.map +1 -1
  131. package/dist/document/blocks.d.ts +33 -10
  132. package/dist/document/blocks.d.ts.map +1 -1
  133. package/dist/document/blocks.js +139 -25
  134. package/dist/document/blocks.js.map +1 -1
  135. package/dist/document/brand-check.d.ts +5 -0
  136. package/dist/document/brand-check.d.ts.map +1 -1
  137. package/dist/document/brand-check.js +16 -2
  138. package/dist/document/brand-check.js.map +1 -1
  139. package/dist/document/compile-checked.d.ts.map +1 -1
  140. package/dist/document/compile-checked.js +12 -4
  141. package/dist/document/compile-checked.js.map +1 -1
  142. package/dist/document/compile.d.ts +0 -2
  143. package/dist/document/compile.d.ts.map +1 -1
  144. package/dist/document/compile.js +49 -24
  145. package/dist/document/compile.js.map +1 -1
  146. package/dist/document/compiled.d.ts +6 -2
  147. package/dist/document/compiled.d.ts.map +1 -1
  148. package/dist/document/compiled.js +94 -26
  149. package/dist/document/compiled.js.map +1 -1
  150. package/dist/document/computed-values.d.ts +3 -0
  151. package/dist/document/computed-values.d.ts.map +1 -1
  152. package/dist/document/computed-values.js +12 -2
  153. package/dist/document/computed-values.js.map +1 -1
  154. package/dist/document/describe-coverage.d.ts +3 -0
  155. package/dist/document/describe-coverage.d.ts.map +1 -1
  156. package/dist/document/describe-coverage.js +14 -6
  157. package/dist/document/describe-coverage.js.map +1 -1
  158. package/dist/document/describe-place.d.ts +6 -2
  159. package/dist/document/describe-place.d.ts.map +1 -1
  160. package/dist/document/describe-place.js +17 -9
  161. package/dist/document/describe-place.js.map +1 -1
  162. package/dist/document/diff.d.ts +2 -0
  163. package/dist/document/diff.d.ts.map +1 -1
  164. package/dist/document/diff.js +70 -11
  165. package/dist/document/diff.js.map +1 -1
  166. package/dist/document/durations.d.ts +8 -0
  167. package/dist/document/durations.d.ts.map +1 -0
  168. package/dist/document/durations.js +82 -0
  169. package/dist/document/durations.js.map +1 -0
  170. package/dist/document/edit.d.ts +1 -1
  171. package/dist/document/edit.d.ts.map +1 -1
  172. package/dist/document/edit.js +436 -27
  173. package/dist/document/edit.js.map +1 -1
  174. package/dist/document/expr/evaluate.d.ts +26 -1
  175. package/dist/document/expr/evaluate.d.ts.map +1 -1
  176. package/dist/document/expr/evaluate.js +55 -4
  177. package/dist/document/expr/evaluate.js.map +1 -1
  178. package/dist/document/field-spec.d.ts.map +1 -1
  179. package/dist/document/field-spec.js +15 -1
  180. package/dist/document/field-spec.js.map +1 -1
  181. package/dist/document/format-findings.d.ts +4 -0
  182. package/dist/document/format-findings.d.ts.map +1 -0
  183. package/dist/document/format-findings.js +39 -0
  184. package/dist/document/format-findings.js.map +1 -0
  185. package/dist/document/format-rules.d.ts +8 -0
  186. package/dist/document/format-rules.d.ts.map +1 -0
  187. package/dist/document/format-rules.js +19 -0
  188. package/dist/document/format-rules.js.map +1 -0
  189. package/dist/document/format-words.d.ts +9 -0
  190. package/dist/document/format-words.d.ts.map +1 -0
  191. package/dist/document/format-words.js +31 -0
  192. package/dist/document/format-words.js.map +1 -0
  193. package/dist/document/framework-path.d.ts +11 -0
  194. package/dist/document/framework-path.d.ts.map +1 -0
  195. package/dist/document/framework-path.js +122 -0
  196. package/dist/document/framework-path.js.map +1 -0
  197. package/dist/document/graview-template.d.ts +2 -2
  198. package/dist/document/index.d.ts +2 -2
  199. package/dist/document/index.d.ts.map +1 -1
  200. package/dist/document/index.js +1 -1
  201. package/dist/document/index.js.map +1 -1
  202. package/dist/document/linked-findings.d.ts +5 -0
  203. package/dist/document/linked-findings.d.ts.map +1 -0
  204. package/dist/document/linked-findings.js +100 -0
  205. package/dist/document/linked-findings.js.map +1 -0
  206. package/dist/document/migrate.d.ts +1 -0
  207. package/dist/document/migrate.d.ts.map +1 -1
  208. package/dist/document/migrate.js +48 -1
  209. package/dist/document/migrate.js.map +1 -1
  210. package/dist/document/money.d.ts +14 -0
  211. package/dist/document/money.d.ts.map +1 -0
  212. package/dist/document/money.js +14 -0
  213. package/dist/document/money.js.map +1 -0
  214. package/dist/document/policy-words.d.ts +4 -0
  215. package/dist/document/policy-words.d.ts.map +1 -1
  216. package/dist/document/policy-words.js +34 -4
  217. package/dist/document/policy-words.js.map +1 -1
  218. package/dist/document/right-names.d.ts +10 -0
  219. package/dist/document/right-names.d.ts.map +1 -0
  220. package/dist/document/right-names.js +57 -0
  221. package/dist/document/right-names.js.map +1 -0
  222. package/dist/document/rule-line.d.ts.map +1 -1
  223. package/dist/document/rule-line.js +16 -12
  224. package/dist/document/rule-line.js.map +1 -1
  225. package/dist/document/rules.d.ts.map +1 -1
  226. package/dist/document/rules.js +15 -6
  227. package/dist/document/rules.js.map +1 -1
  228. package/dist/document/schema.d.ts +142 -22
  229. package/dist/document/schema.d.ts.map +1 -1
  230. package/dist/document/schema.js +86 -10
  231. package/dist/document/schema.js.map +1 -1
  232. package/dist/document/template-parse.d.ts.map +1 -1
  233. package/dist/document/template-parse.js +45 -5
  234. package/dist/document/template-parse.js.map +1 -1
  235. package/dist/document/template.d.ts +16 -14
  236. package/dist/document/template.d.ts.map +1 -1
  237. package/dist/document/template.js +52 -30
  238. package/dist/document/template.js.map +1 -1
  239. package/dist/document/thumbnail.d.ts.map +1 -1
  240. package/dist/document/thumbnail.js +4 -3
  241. package/dist/document/thumbnail.js.map +1 -1
  242. package/dist/document/to-document.d.ts +0 -1
  243. package/dist/document/to-document.d.ts.map +1 -1
  244. package/dist/document/to-document.js +30 -2
  245. package/dist/document/to-document.js.map +1 -1
  246. package/dist/document/view-specs.d.ts.map +1 -1
  247. package/dist/document/view-specs.js +3 -0
  248. package/dist/document/view-specs.js.map +1 -1
  249. package/dist/document/views.d.ts +38 -4
  250. package/dist/document/views.d.ts.map +1 -1
  251. package/dist/document/views.js +81 -26
  252. package/dist/document/views.js.map +1 -1
  253. package/dist/document.schema.json +1184 -141
  254. package/dist/excerpt-of.d.ts +14 -0
  255. package/dist/excerpt-of.d.ts.map +1 -0
  256. package/dist/excerpt-of.js +120 -0
  257. package/dist/excerpt-of.js.map +1 -0
  258. package/dist/excerpt.d.ts +9 -0
  259. package/dist/excerpt.d.ts.map +1 -0
  260. package/dist/excerpt.js +43 -0
  261. package/dist/excerpt.js.map +1 -0
  262. package/dist/field-sight.d.ts +33 -0
  263. package/dist/field-sight.d.ts.map +1 -0
  264. package/dist/field-sight.js +313 -0
  265. package/dist/field-sight.js.map +1 -0
  266. package/dist/forms.d.ts +2 -0
  267. package/dist/forms.d.ts.map +1 -1
  268. package/dist/forms.js +3 -0
  269. package/dist/forms.js.map +1 -1
  270. package/dist/graph/archived.d.ts +34 -0
  271. package/dist/graph/archived.d.ts.map +1 -0
  272. package/dist/graph/archived.js +25 -0
  273. package/dist/graph/archived.js.map +1 -0
  274. package/dist/graph/diff.d.ts +16 -0
  275. package/dist/graph/diff.d.ts.map +1 -1
  276. package/dist/graph/diff.js +20 -1
  277. package/dist/graph/diff.js.map +1 -1
  278. package/dist/graph/graph.d.ts +37 -13
  279. package/dist/graph/graph.d.ts.map +1 -1
  280. package/dist/graph/graph.js +84 -41
  281. package/dist/graph/graph.js.map +1 -1
  282. package/dist/graph/tracked.d.ts +8 -8
  283. package/dist/graph/tracked.d.ts.map +1 -1
  284. package/dist/graph/tracked.js +15 -20
  285. package/dist/graph/tracked.js.map +1 -1
  286. package/dist/graph/types.d.ts +16 -8
  287. package/dist/graph/types.d.ts.map +1 -1
  288. package/dist/graph/types.js.map +1 -1
  289. package/dist/grid-sort.d.ts +20 -0
  290. package/dist/grid-sort.d.ts.map +1 -0
  291. package/dist/grid-sort.js +58 -0
  292. package/dist/grid-sort.js.map +1 -0
  293. package/dist/history.d.ts +88 -0
  294. package/dist/history.d.ts.map +1 -0
  295. package/dist/history.js +146 -0
  296. package/dist/history.js.map +1 -0
  297. package/dist/import/coerce.d.ts +45 -0
  298. package/dist/import/coerce.d.ts.map +1 -0
  299. package/dist/import/coerce.js +252 -0
  300. package/dist/import/coerce.js.map +1 -0
  301. package/dist/import/csv.d.ts +16 -0
  302. package/dist/import/csv.d.ts.map +1 -0
  303. package/dist/import/csv.js +77 -0
  304. package/dist/import/csv.js.map +1 -0
  305. package/dist/import/index.d.ts +17 -0
  306. package/dist/import/index.d.ts.map +1 -0
  307. package/dist/import/index.js +13 -0
  308. package/dist/import/index.js.map +1 -0
  309. package/dist/import/mapping.d.ts +99 -0
  310. package/dist/import/mapping.d.ts.map +1 -0
  311. package/dist/import/mapping.js +182 -0
  312. package/dist/import/mapping.js.map +1 -0
  313. package/dist/import/rows.d.ts +116 -0
  314. package/dist/import/rows.d.ts.map +1 -0
  315. package/dist/import/rows.js +584 -0
  316. package/dist/import/rows.js.map +1 -0
  317. package/dist/index.d.ts +53 -26
  318. package/dist/index.d.ts.map +1 -1
  319. package/dist/index.js +38 -18
  320. package/dist/index.js.map +1 -1
  321. package/dist/invariants/engine.d.ts +5 -1
  322. package/dist/invariants/engine.d.ts.map +1 -1
  323. package/dist/invariants/engine.js +4 -3
  324. package/dist/invariants/engine.js.map +1 -1
  325. package/dist/invariants/types.d.ts +18 -3
  326. package/dist/invariants/types.d.ts.map +1 -1
  327. package/dist/json-schema.d.ts +1 -0
  328. package/dist/json-schema.d.ts.map +1 -1
  329. package/dist/json-schema.js +2 -0
  330. package/dist/json-schema.js.map +1 -1
  331. package/dist/kind-list.d.ts +78 -0
  332. package/dist/kind-list.d.ts.map +1 -0
  333. package/dist/kind-list.js +176 -0
  334. package/dist/kind-list.js.map +1 -0
  335. package/dist/labels.d.ts.map +1 -1
  336. package/dist/labels.js +2 -1
  337. package/dist/labels.js.map +1 -1
  338. package/dist/lines.d.ts +1 -0
  339. package/dist/lines.d.ts.map +1 -1
  340. package/dist/lines.js +5 -3
  341. package/dist/lines.js.map +1 -1
  342. package/dist/linked.d.ts +95 -0
  343. package/dist/linked.d.ts.map +1 -0
  344. package/dist/linked.js +181 -0
  345. package/dist/linked.js.map +1 -0
  346. package/dist/markdown.d.ts +102 -0
  347. package/dist/markdown.d.ts.map +1 -0
  348. package/dist/markdown.js +460 -0
  349. package/dist/markdown.js.map +1 -0
  350. package/dist/mutations/arg-shape.d.ts +95 -0
  351. package/dist/mutations/arg-shape.d.ts.map +1 -0
  352. package/dist/mutations/arg-shape.js +101 -0
  353. package/dist/mutations/arg-shape.js.map +1 -0
  354. package/dist/mutations/define-mutation.d.ts +48 -2
  355. package/dist/mutations/define-mutation.d.ts.map +1 -1
  356. package/dist/mutations/define-mutation.js +103 -36
  357. package/dist/mutations/define-mutation.js.map +1 -1
  358. package/dist/mutations/derive-edits.d.ts +16 -1
  359. package/dist/mutations/derive-edits.d.ts.map +1 -1
  360. package/dist/mutations/derive-edits.js +146 -56
  361. package/dist/mutations/derive-edits.js.map +1 -1
  362. package/dist/mutations/derive-repeats.d.ts +8 -0
  363. package/dist/mutations/derive-repeats.d.ts.map +1 -0
  364. package/dist/mutations/derive-repeats.js +118 -0
  365. package/dist/mutations/derive-repeats.js.map +1 -0
  366. package/dist/mutations/derived-names.d.ts +22 -0
  367. package/dist/mutations/derived-names.d.ts.map +1 -0
  368. package/dist/mutations/derived-names.js +21 -0
  369. package/dist/mutations/derived-names.js.map +1 -0
  370. package/dist/mutations/edit-start.d.ts +28 -0
  371. package/dist/mutations/edit-start.d.ts.map +1 -0
  372. package/dist/mutations/edit-start.js +24 -0
  373. package/dist/mutations/edit-start.js.map +1 -0
  374. package/dist/mutations/form.d.ts +33 -1
  375. package/dist/mutations/form.d.ts.map +1 -1
  376. package/dist/mutations/form.js +23 -2
  377. package/dist/mutations/form.js.map +1 -1
  378. package/dist/mutations/invalid-arguments.d.ts +14 -0
  379. package/dist/mutations/invalid-arguments.d.ts.map +1 -0
  380. package/dist/mutations/invalid-arguments.js +18 -0
  381. package/dist/mutations/invalid-arguments.js.map +1 -0
  382. package/dist/mutations/keep-link.d.ts +27 -0
  383. package/dist/mutations/keep-link.d.ts.map +1 -0
  384. package/dist/mutations/keep-link.js +56 -0
  385. package/dist/mutations/keep-link.js.map +1 -0
  386. package/dist/mutations/kept-arguments.d.ts +26 -0
  387. package/dist/mutations/kept-arguments.d.ts.map +1 -0
  388. package/dist/mutations/kept-arguments.js +77 -0
  389. package/dist/mutations/kept-arguments.js.map +1 -0
  390. package/dist/mutations/node-ref.d.ts +0 -80
  391. package/dist/mutations/node-ref.d.ts.map +1 -1
  392. package/dist/mutations/node-ref.js +0 -93
  393. package/dist/mutations/node-ref.js.map +1 -1
  394. package/dist/mutations/types.d.ts +17 -1
  395. package/dist/mutations/types.d.ts.map +1 -1
  396. package/dist/mutations/words.d.ts +0 -13
  397. package/dist/mutations/words.d.ts.map +1 -1
  398. package/dist/mutations/words.js +1 -12
  399. package/dist/mutations/words.js.map +1 -1
  400. package/dist/navigate.d.ts +13 -0
  401. package/dist/navigate.d.ts.map +1 -0
  402. package/dist/navigate.js +13 -0
  403. package/dist/navigate.js.map +1 -0
  404. package/dist/ops/digest.d.ts +33 -0
  405. package/dist/ops/digest.d.ts.map +1 -0
  406. package/dist/ops/digest.js +47 -0
  407. package/dist/ops/digest.js.map +1 -0
  408. package/dist/ops/kept-fields.d.ts +7 -0
  409. package/dist/ops/kept-fields.d.ts.map +1 -0
  410. package/dist/ops/kept-fields.js +24 -0
  411. package/dist/ops/kept-fields.js.map +1 -0
  412. package/dist/ops/lineage.d.ts +43 -0
  413. package/dist/ops/lineage.d.ts.map +1 -0
  414. package/dist/ops/lineage.js +27 -0
  415. package/dist/ops/lineage.js.map +1 -0
  416. package/dist/ops/log.d.ts +6 -0
  417. package/dist/ops/log.d.ts.map +1 -1
  418. package/dist/ops/log.js +20 -12
  419. package/dist/ops/log.js.map +1 -1
  420. package/dist/ops/provenance.d.ts +68 -0
  421. package/dist/ops/provenance.d.ts.map +1 -0
  422. package/dist/ops/provenance.js +83 -0
  423. package/dist/ops/provenance.js.map +1 -0
  424. package/dist/ops/suggestions.d.ts +26 -0
  425. package/dist/ops/suggestions.d.ts.map +1 -0
  426. package/dist/ops/suggestions.js +21 -0
  427. package/dist/ops/suggestions.js.map +1 -0
  428. package/dist/ops/tidying.d.ts +48 -0
  429. package/dist/ops/tidying.d.ts.map +1 -0
  430. package/dist/ops/tidying.js +84 -0
  431. package/dist/ops/tidying.js.map +1 -0
  432. package/dist/ops/types.d.ts +42 -0
  433. package/dist/ops/types.d.ts.map +1 -1
  434. package/dist/ops/undo.d.ts.map +1 -1
  435. package/dist/ops/undo.js +10 -0
  436. package/dist/ops/undo.js.map +1 -1
  437. package/dist/ops/withheld.d.ts +25 -2
  438. package/dist/ops/withheld.d.ts.map +1 -1
  439. package/dist/ops/withheld.js +6 -15
  440. package/dist/ops/withheld.js.map +1 -1
  441. package/dist/past.d.ts +35 -0
  442. package/dist/past.d.ts.map +1 -0
  443. package/dist/past.js +173 -0
  444. package/dist/past.js.map +1 -0
  445. package/dist/permissions/policy.d.ts +13 -1
  446. package/dist/permissions/policy.d.ts.map +1 -1
  447. package/dist/permissions/policy.js +44 -9
  448. package/dist/permissions/policy.js.map +1 -1
  449. package/dist/permissions/sight.d.ts +40 -2
  450. package/dist/permissions/sight.d.ts.map +1 -1
  451. package/dist/permissions/sight.js +25 -2
  452. package/dist/permissions/sight.js.map +1 -1
  453. package/dist/permissions/types.d.ts +21 -0
  454. package/dist/permissions/types.d.ts.map +1 -1
  455. package/dist/permissions/types.js.map +1 -1
  456. package/dist/places.d.ts +6 -51
  457. package/dist/places.d.ts.map +1 -1
  458. package/dist/places.js +50 -144
  459. package/dist/places.js.map +1 -1
  460. package/dist/provenance.d.ts +14 -0
  461. package/dist/provenance.d.ts.map +1 -0
  462. package/dist/provenance.js +13 -0
  463. package/dist/provenance.js.map +1 -0
  464. package/dist/repeat-words.d.ts +13 -0
  465. package/dist/repeat-words.d.ts.map +1 -0
  466. package/dist/repeat-words.js +56 -0
  467. package/dist/repeat-words.js.map +1 -0
  468. package/dist/repeat.d.ts +59 -0
  469. package/dist/repeat.d.ts.map +1 -0
  470. package/dist/repeat.js +155 -0
  471. package/dist/repeat.js.map +1 -0
  472. package/dist/scaffold/agents.d.ts.map +1 -1
  473. package/dist/scaffold/agents.js +13 -0
  474. package/dist/scaffold/agents.js.map +1 -1
  475. package/dist/scaffold/project.d.ts.map +1 -1
  476. package/dist/scaffold/project.js +18 -0
  477. package/dist/scaffold/project.js.map +1 -1
  478. package/dist/scaffold/ui.d.ts.map +1 -1
  479. package/dist/scaffold/ui.js +17 -7
  480. package/dist/scaffold/ui.js.map +1 -1
  481. package/dist/scene-districts.d.ts +2 -1
  482. package/dist/scene-districts.d.ts.map +1 -1
  483. package/dist/scene-districts.js +2 -1
  484. package/dist/scene-districts.js.map +1 -1
  485. package/dist/scene.d.ts +4 -2
  486. package/dist/scene.d.ts.map +1 -1
  487. package/dist/scene.js +2 -1
  488. package/dist/scene.js.map +1 -1
  489. package/dist/schema/amount-mark.d.ts +13 -0
  490. package/dist/schema/amount-mark.d.ts.map +1 -0
  491. package/dist/schema/amount-mark.js +20 -0
  492. package/dist/schema/amount-mark.js.map +1 -0
  493. package/dist/schema/amount-words.d.ts +12 -0
  494. package/dist/schema/amount-words.d.ts.map +1 -0
  495. package/dist/schema/amount-words.js +31 -0
  496. package/dist/schema/amount-words.js.map +1 -0
  497. package/dist/schema/app-address.d.ts +5 -0
  498. package/dist/schema/app-address.d.ts.map +1 -0
  499. package/dist/schema/app-address.js +10 -0
  500. package/dist/schema/app-address.js.map +1 -0
  501. package/dist/schema/app-link-field.d.ts +4 -0
  502. package/dist/schema/app-link-field.d.ts.map +1 -0
  503. package/dist/schema/app-link-field.js +19 -0
  504. package/dist/schema/app-link-field.js.map +1 -0
  505. package/dist/schema/app-link.d.ts +38 -0
  506. package/dist/schema/app-link.d.ts.map +1 -0
  507. package/dist/schema/app-link.js +38 -0
  508. package/dist/schema/app-link.js.map +1 -0
  509. package/dist/schema/define-node.d.ts +39 -92
  510. package/dist/schema/define-node.d.ts.map +1 -1
  511. package/dist/schema/define-node.js +8 -246
  512. package/dist/schema/define-node.js.map +1 -1
  513. package/dist/schema/field-words.d.ts +45 -0
  514. package/dist/schema/field-words.d.ts.map +1 -0
  515. package/dist/schema/field-words.js +124 -0
  516. package/dist/schema/field-words.js.map +1 -0
  517. package/dist/schema/files.d.ts +8 -0
  518. package/dist/schema/files.d.ts.map +1 -1
  519. package/dist/schema/files.js.map +1 -1
  520. package/dist/schema/json-schema.d.ts +6 -1
  521. package/dist/schema/json-schema.d.ts.map +1 -1
  522. package/dist/schema/json-schema.js +101 -2
  523. package/dist/schema/json-schema.js.map +1 -1
  524. package/dist/schema/linked-field.d.ts +6 -0
  525. package/dist/schema/linked-field.d.ts.map +1 -0
  526. package/dist/schema/linked-field.js +34 -0
  527. package/dist/schema/linked-field.js.map +1 -0
  528. package/dist/schema/linked-reads.d.ts +20 -0
  529. package/dist/schema/linked-reads.d.ts.map +1 -0
  530. package/dist/schema/linked-reads.js +69 -0
  531. package/dist/schema/linked-reads.js.map +1 -0
  532. package/dist/schema/linked-schema.d.ts +5 -0
  533. package/dist/schema/linked-schema.d.ts.map +1 -0
  534. package/dist/schema/linked-schema.js +9 -0
  535. package/dist/schema/linked-schema.js.map +1 -0
  536. package/dist/schema/linked.d.ts +147 -0
  537. package/dist/schema/linked.d.ts.map +1 -0
  538. package/dist/schema/linked.js +151 -0
  539. package/dist/schema/linked.js.map +1 -0
  540. package/dist/schema/markdown-field.d.ts +4 -0
  541. package/dist/schema/markdown-field.d.ts.map +1 -0
  542. package/dist/schema/markdown-field.js +20 -0
  543. package/dist/schema/markdown-field.js.map +1 -0
  544. package/dist/schema/markdown.d.ts +6 -0
  545. package/dist/schema/markdown.d.ts.map +1 -0
  546. package/dist/schema/markdown.js +27 -0
  547. package/dist/schema/markdown.js.map +1 -0
  548. package/dist/schema/reading.d.ts +86 -0
  549. package/dist/schema/reading.d.ts.map +1 -0
  550. package/dist/schema/reading.js +325 -0
  551. package/dist/schema/reading.js.map +1 -0
  552. package/dist/schema/repeat-field.d.ts +5 -0
  553. package/dist/schema/repeat-field.d.ts.map +1 -0
  554. package/dist/schema/repeat-field.js +20 -0
  555. package/dist/schema/repeat-field.js.map +1 -0
  556. package/dist/schema/schema.d.ts.map +1 -1
  557. package/dist/schema/schema.js +12 -1
  558. package/dist/schema/schema.js.map +1 -1
  559. package/dist/schema/to-json-schema.d.ts +14 -0
  560. package/dist/schema/to-json-schema.d.ts.map +1 -0
  561. package/dist/schema/to-json-schema.js +616 -0
  562. package/dist/schema/to-json-schema.js.map +1 -0
  563. package/dist/schema/typed-field-builders.d.ts +8 -0
  564. package/dist/schema/typed-field-builders.d.ts.map +1 -0
  565. package/dist/schema/typed-field-builders.js +30 -0
  566. package/dist/schema/typed-field-builders.js.map +1 -0
  567. package/dist/schema/typed-field-of.d.ts +4 -0
  568. package/dist/schema/typed-field-of.d.ts.map +1 -0
  569. package/dist/schema/typed-field-of.js +14 -0
  570. package/dist/schema/typed-field-of.js.map +1 -0
  571. package/dist/schema/typed-fields.d.ts +11 -0
  572. package/dist/schema/typed-fields.d.ts.map +1 -0
  573. package/dist/schema/typed-fields.js +16 -0
  574. package/dist/schema/typed-fields.js.map +1 -0
  575. package/dist/schema/types.d.ts +31 -0
  576. package/dist/schema/types.d.ts.map +1 -1
  577. package/dist/schema/value-words.d.ts +21 -0
  578. package/dist/schema/value-words.d.ts.map +1 -0
  579. package/dist/schema/value-words.js +32 -0
  580. package/dist/schema/value-words.js.map +1 -0
  581. package/dist/search.d.ts +91 -4
  582. package/dist/search.d.ts.map +1 -1
  583. package/dist/search.js +317 -54
  584. package/dist/search.js.map +1 -1
  585. package/dist/seat-of.d.ts +9 -0
  586. package/dist/seat-of.d.ts.map +1 -0
  587. package/dist/seat-of.js +14 -0
  588. package/dist/seat-of.js.map +1 -0
  589. package/dist/seat.d.ts +19 -0
  590. package/dist/seat.d.ts.map +1 -0
  591. package/dist/seat.js +19 -0
  592. package/dist/seat.js.map +1 -0
  593. package/dist/seen.d.ts +15 -45
  594. package/dist/seen.d.ts.map +1 -1
  595. package/dist/seen.js +49 -135
  596. package/dist/seen.js.map +1 -1
  597. package/dist/store.d.ts +104 -1
  598. package/dist/store.d.ts.map +1 -1
  599. package/dist/store.js +214 -30
  600. package/dist/store.js.map +1 -1
  601. package/dist/theme/derive.d.ts +16 -0
  602. package/dist/theme/derive.d.ts.map +1 -1
  603. package/dist/theme/derive.js +14 -0
  604. package/dist/theme/derive.js.map +1 -1
  605. package/dist/theme/marks.d.ts +19 -2
  606. package/dist/theme/marks.d.ts.map +1 -1
  607. package/dist/theme/marks.js +67 -2
  608. package/dist/theme/marks.js.map +1 -1
  609. package/dist/theme/types.d.ts +14 -3
  610. package/dist/theme/types.d.ts.map +1 -1
  611. package/dist/theme/types.js.map +1 -1
  612. package/dist/tidying.d.ts +62 -0
  613. package/dist/tidying.d.ts.map +1 -0
  614. package/dist/tidying.js +131 -0
  615. package/dist/tidying.js.map +1 -0
  616. package/dist/typed.d.ts +12 -3
  617. package/dist/typed.d.ts.map +1 -1
  618. package/dist/typed.js.map +1 -1
  619. package/dist/validate-graph.d.ts.map +1 -1
  620. package/dist/validate-graph.js +3 -10
  621. package/dist/validate-graph.js.map +1 -1
  622. package/dist/version.d.ts +1 -1
  623. package/dist/version.js +1 -1
  624. package/dist/via.d.ts.map +1 -1
  625. package/dist/via.js +2 -1
  626. package/dist/via.js.map +1 -1
  627. package/dist/views/address.d.ts +13 -0
  628. package/dist/views/address.d.ts.map +1 -0
  629. package/dist/views/address.js +29 -0
  630. package/dist/views/address.js.map +1 -0
  631. package/dist/views/types.d.ts +106 -8
  632. package/dist/views/types.d.ts.map +1 -1
  633. package/dist/views/types.js +24 -4
  634. package/dist/views/types.js.map +1 -1
  635. package/dist/village.d.ts +63 -0
  636. package/dist/village.d.ts.map +1 -0
  637. package/dist/village.js +143 -0
  638. package/dist/village.js.map +1 -0
  639. package/dist/watched.d.ts +12 -45
  640. package/dist/watched.d.ts.map +1 -1
  641. package/dist/watched.js +7 -119
  642. package/dist/watched.js.map +1 -1
  643. package/dist/words.d.ts +33 -0
  644. package/dist/words.d.ts.map +1 -0
  645. package/dist/words.js +36 -0
  646. package/dist/words.js.map +1 -0
  647. package/package.json +57 -2
@@ -1,9 +1,18 @@
1
1
  import * as z from "../schema/zod.js";
2
2
  import { filesOf } from "../schema/files.js";
3
+ import { amountOf } from "../schema/amount-mark.js";
4
+ import { sayAmount } from "../document/amount.js";
5
+ import { dayAsRead, ISO_DAY, ISO_MOMENT, momentAsRead } from "../days.js";
6
+ import { typedFieldOf } from "../schema/typed-field-of.js";
3
7
  import { labelOf } from "../schema/define-node.js";
4
- import { fieldWords, nounOf } from "../schema/define-node.js";
8
+ import { LEFT_ALONE } from "../graph/archived.js";
9
+ import { fieldWords, humanizeField, nounOf } from "../schema/define-node.js";
10
+ import { linkedRelationOf } from "../schema/linked.js";
11
+ import { repeatedBy } from "../repeat.js";
5
12
  import { nodeRefArgs, refTo } from "./node-ref.js";
6
13
  import { ActRefusal } from "../refused.js";
14
+ import { excerpt } from "../excerpt.js";
15
+ import { deriveRepeatMutations } from "./derive-repeats.js";
7
16
  /**
8
17
  * A FIELD YOU COULD SET AT CREATION, YOU CAN CHANGE.
9
18
  *
@@ -159,34 +168,7 @@ export function deriveEditMutations(schema, mutations) {
159
168
  id: refTo([kind]),
160
169
  ...Object.fromEntries(fields.map((field) => [field, z.optional(withoutDefault(shape[field]))])),
161
170
  }),
162
- describe: (args, graph) => {
163
- const node = graph.getNode(args.id);
164
- const label = node ? labelOf(definition, node) : args.id;
165
- /*
166
- * THE CHANGE AS THE RECORD READS IT. The log said "price → 49900"
167
- * and "condition → \"cpo\"" beside a card that says "Price $49,900"
168
- * and "Certified pre-owned": the declaration's own labels and
169
- * formats are the words, and the raw value only where there is none.
170
- */
171
- const display = definition.display;
172
- const quietly = (label) => (label === label.toUpperCase() ? label : label.charAt(0).toLowerCase() + label.slice(1));
173
- const changes = fields
174
- .filter((field) => args[field] !== undefined)
175
- .map((field) => {
176
- const value = args[field];
177
- const format = display?.format?.[field];
178
- let said;
179
- try {
180
- // Files by their names (FR-162), never the host's addresses.
181
- said = format ? String(format(value)) : filesOf(value).length > 0 ? filesOf(value).map((file) => file.name).join(", ") : JSON.stringify(value);
182
- }
183
- catch {
184
- said = JSON.stringify(value);
185
- }
186
- return `${quietly(fieldWords(definition, field))} → ${said}`;
187
- });
188
- return `Change ${label}: ${changes.join(", ") || "nothing"}`;
189
- },
171
+ describe: (args, graph) => editSaid(definition, shape, fields, args, graph),
190
172
  apply(ctx, args) {
191
173
  const patch = {};
192
174
  for (const field of fields) {
@@ -203,6 +185,77 @@ export function deriveEditMutations(schema, mutations) {
203
185
  }
204
186
  return derived;
205
187
  }
188
+ /**
189
+ * A CHANGE SAID AS THE RECORD PAGE SAYS IT: "Changed the stage of Billing
190
+ * across apps to Considering", "Changed the price of Model Y to $49,900
191
+ * and the condition to Certified pre-owned".
192
+ *
193
+ * It read `Change Billing across apps: stage → "considering"` — the field's
194
+ * key, an arrow and the value as it is kept — and that line was heard in
195
+ * Take back, in Activity and when another seat's change was said aloud.
196
+ * Each field is named by its label, each value as the record page says it
197
+ * (a choice by its option's words, money and days in the app's locale, a
198
+ * file by its name, prose by its start, a record in another app as one),
199
+ * and several are one sentence, as a document's acts and the preview say
200
+ * theirs.
201
+ */
202
+ function editSaid(definition, shape, fields, args, graph) {
203
+ const node = graph.getNode(args["id"]);
204
+ const label = node ? labelOf(definition, node) : "a record";
205
+ const said = fields
206
+ .filter((field) => args[field] !== undefined)
207
+ .map((field, at) => {
208
+ const value = args[field];
209
+ // A date's repeat is said by the date it repeats: "the due date to repeat every week".
210
+ const date = repeatedBy(field);
211
+ const repeat = date !== undefined && date in shape;
212
+ const word = fieldWords(definition, repeat ? date : field);
213
+ const named = word === word.toUpperCase() ? word : word.charAt(0).toLowerCase() + word.slice(1);
214
+ return `the ${named}${at === 0 ? ` of ${label}` : ""} to ${repeat ? (value ? `repeat ${everySaid(value)}` : "stop repeating") : valueSaid(definition, shape[field], field, value)}`;
215
+ });
216
+ return said.length === 0 ? `Changed nothing on ${label}` : `Changed ${said.length > 1 ? `${said.slice(0, -1).join(", ")} and ${said.at(-1)}` : said[0]}`;
217
+ }
218
+ /** How often a date repeats, said short: "every week", "every 2 months". */
219
+ const everySaid = (repeat) => `every ${(repeat.interval ?? 1) > 1 ? `${repeat.interval} ${repeat.every}s` : repeat.every}`;
220
+ /** One value as the record page says it, never as it is kept. */
221
+ function valueSaid(definition, schema, field, value) {
222
+ if (value === null || value === "" || (Array.isArray(value) && value.length === 0))
223
+ return "nothing";
224
+ const format = definition.display?.format?.[field];
225
+ try {
226
+ if (format)
227
+ return String(format(value));
228
+ }
229
+ catch {
230
+ // A format that cannot say this value: said the framework's way below.
231
+ }
232
+ // Files by their names (FR-162), never the host's addresses; a record in another app as one (FR-171).
233
+ if (filesOf(value).length > 0)
234
+ return filesOf(value).map((file) => file.name).join(", ");
235
+ if (linkedRelationOf(schema))
236
+ return Array.isArray(value) && value.length > 1 ? `${value.length} linked records` : "a linked record";
237
+ if (Array.isArray(value))
238
+ return value.map((one) => valueSaid(definition, schema, field, one)).join(", ");
239
+ if (typeof value === "boolean")
240
+ return value ? "yes" : "no";
241
+ if (typeof value === "number") {
242
+ // Money, a percent and a measure as the field declares them, "$12,500" and never 12500; a length of time as one, "1 h 30 min".
243
+ const amount = amountOf(schema);
244
+ return amount ? sayAmount(value, amount) : typedFieldOf(schema) === "duration" ? `${value >= 60 ? `${Math.floor(value / 60)} h ` : ""}${value % 60 || value < 60 ? `${value % 60} min` : ""}`.trim() : String(value);
245
+ }
246
+ if (typeof value !== "string")
247
+ return "a new value";
248
+ if (ISO_DAY.test(value))
249
+ return dayAsRead(value);
250
+ if (ISO_MOMENT.test(value))
251
+ return momentAsRead(value);
252
+ // A choice by its option's words; anything else written, by its start (FR-180) and in quotes.
253
+ for (let def = z.defOf(schema); def; def = z.defOf(def.innerType)) {
254
+ if (def.type === "enum")
255
+ return humanizeField(value);
256
+ }
257
+ return `“${excerpt(value, 60)}”`;
258
+ }
206
259
  /**
207
260
  * A FIELD AS AN EDIT ASKS FOR IT: without its default. A default is what a
208
261
  * record is MADE with; an edit that leaves a field out leaves it as it is.
@@ -237,7 +290,8 @@ export function removeVia(mutations, kind) {
237
290
  export function derivedVia(schema, mutations, mutation) {
238
291
  if (!mutation.derived)
239
292
  return undefined;
240
- return mutation.derived.act === "edit"
293
+ // Acting on one occurrence of a repeating date changes the record, as its edit does.
294
+ return mutation.derived.act === "edit" || mutation.derived.act === "skip" || mutation.derived.act === "detach" || mutation.derived.act === "split"
241
295
  ? editVia(schema, mutations, mutation.derived.kind)
242
296
  : removeVia(mutations, mutation.derived.kind);
243
297
  }
@@ -254,40 +308,76 @@ export function derivedVia(schema, mutations, mutation) {
254
308
  * An app that declares its own `remove-<kind>` keeps it.
255
309
  */
256
310
  export function deriveRemoveMutations(schema, mutations) {
311
+ return perKind(schema, mutations).filter((mutation) => mutation.derived?.act === "remove");
312
+ }
313
+ /**
314
+ * SET ASIDE, NEVER LOST (FR-173).
315
+ *
316
+ * A record was present or removed; tidying an app meant deleting. Archive
317
+ * keeps the record — its fields, its links, its history — and takes it out
318
+ * of lists, the Scene, counts, computed fields and rules; its own page and
319
+ * search still find it, marked, with "Bring it back". Merge is two records
320
+ * that are one thing: the kept one (`into`) takes the links, the other is
321
+ * archived with `mergedInto` on its op. Each is a derived act per kind,
322
+ * `archive-<kind>`, `unarchive-<kind>` and `merge-<kind>`, logged and
323
+ * undoable like everything else, and permitted through the acts that make
324
+ * the kind, as a remove is — a grant may name each on its own. An app that
325
+ * declares an act of the same name keeps it.
326
+ */
327
+ export function deriveArchiveMutations(schema, mutations) {
328
+ return perKind(schema, mutations).filter((mutation) => mutation.derived?.act === "archive" || mutation.derived?.act === "unarchive" || mutation.derived?.act === "merge");
329
+ }
330
+ /** The acts every kind is given whatever it declares: remove, archive, unarchive and merge, each on the record as `id`. */
331
+ function perKind(schema, mutations) {
257
332
  const taken = new Set(mutations.map((mutation) => mutation.name));
258
333
  const derived = [];
259
334
  for (const definition of schema.definitions) {
260
335
  const kind = definition.kind;
261
- const name = removeMutationName(kind);
262
- if (taken.has(name))
263
- continue;
264
336
  const noun = nounOf(definition, kind);
265
- derived.push({
266
- name,
267
- derived: { kind, act: "remove" },
268
- title: `Remove the ${noun}`,
269
- description: `Take this ${noun} out of the graph, with every tie it has. Undo puts it back.`,
270
- subject: { kinds: [kind], arg: "id" },
271
- destructive: true,
272
- idempotent: true,
273
- input: z.object({ id: refTo([kind]) }),
274
- describe: (args, graph) => {
275
- const id = args.id;
276
- const node = graph.getNode(id);
277
- // What files go with it (FR-162): the host decides what becomes of their bytes.
278
- // Each file once, however many of its fields hold it.
279
- const files = node ? new Set(Object.values(node).flatMap((value) => filesOf(value).map((file) => file.href))).size : 0;
280
- return `Remove ${node ? labelOf(definition, node) : id}${files ? ` and its ${files} file${files > 1 ? "s" : ""}` : ""}`;
281
- },
282
- apply(ctx, args) {
283
- ctx.removeNode(args.id);
284
- },
285
- });
337
+ const named = (graph, id) => {
338
+ const node = graph.getNode(String(id));
339
+ return node ? labelOf(definition, node) : String(id);
340
+ };
341
+ const ref = refTo([kind]);
342
+ for (const [act, verb, title, description] of [
343
+ ["remove", "Remove", `Remove the ${noun}`, `Take this ${noun} out of the graph, with every tie it has. Undo puts it back.`],
344
+ ["archive", "Archive", `Archive the ${noun}`, `Set this ${noun} aside, with its ties and history kept.`],
345
+ ["unarchive", "Bring back", "Bring it back", `Bring this archived ${noun} back.`],
346
+ ["merge", "Merge", `Merge into another ${noun}`, `The other takes this ${noun}'s ties, and this one is archived.`],
347
+ ["leave-alone", "Leave alone", "Leave this one alone", `Nothing automated changes this ${noun}: tidying passes it by until you allow it again.`],
348
+ ["allow-tidying", "Allow tidying of", "Allow tidying again", `Let tidying change this ${noun} again.`],
349
+ ]) {
350
+ const name = `${act}-${kind}`;
351
+ const marks = act === "leave-alone" || act === "allow-tidying";
352
+ if (taken.has(name) || (!marks && act !== "remove" && definition.archives === false) || (marks && definition.tidying === "never"))
353
+ continue;
354
+ derived.push({
355
+ name,
356
+ derived: { kind, act },
357
+ title,
358
+ description,
359
+ subject: { kinds: [kind], arg: "id" },
360
+ ...(act === "remove" ? { destructive: true } : {}),
361
+ idempotent: true,
362
+ input: z.object(act === "merge" ? { id: ref, into: ref } : { id: ref }),
363
+ describe: (args, graph) => {
364
+ const node = act === "remove" && graph.getNode(String(args["id"]));
365
+ // What files a removed record takes with it (FR-162): the host decides what becomes of their bytes. Each file once, however many of its fields hold it.
366
+ const files = node ? new Set(Object.values(node).flatMap((value) => filesOf(value).map((file) => file.href))).size : 0;
367
+ return `${verb} ${named(graph, args["id"])}${act === "merge" ? ` into ${named(graph, args["into"])}` : ""}${files ? ` and its ${files} file${files > 1 ? "s" : ""}` : ""}`;
368
+ },
369
+ // Leave alone is a mark like archived, set and cleared by a patch: nothing when it is already so.
370
+ apply: marks
371
+ ? (ctx, args) => ctx.patchNode(String(args["id"]), { [LEFT_ALONE]: act === "leave-alone" ? true : undefined })
372
+ : // `removeNode`, `archiveNode`, `unarchiveNode` or `mergeNode`, on the record (and the one it is merged into).
373
+ (ctx, args) => ctx[`${act}Node`](args["id"], args["into"]),
374
+ });
375
+ }
286
376
  }
287
377
  return derived;
288
378
  }
289
- /** Every act the framework derives for a declaration: the edits, then the removes. */
379
+ /** Every act the framework derives for a declaration: the edits, then each kind's remove, archive, unarchive and merge. */
290
380
  export function deriveMutations(schema, mutations) {
291
- return [...deriveEditMutations(schema, mutations), ...deriveRemoveMutations(schema, mutations)];
381
+ return [...deriveEditMutations(schema, mutations), ...perKind(schema, mutations), ...deriveRepeatMutations(schema, mutations)];
292
382
  }
293
383
  //# sourceMappingURL=derive-edits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive-edits.js","sourceRoot":"","sources":["../../src/mutations/derive-edits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive-edits.js","sourceRoot":"","sources":["../../src/mutations/derive-edits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AnySchema } from "../schema/schema.js";
2
+ import type { AnyNodeDefinition } from "../schema/types.js";
3
+ import type { AnyMutationDefinition } from "./types.js";
4
+ /** Which of a kind's dates repeat: those with their repeat declared beside them. */
5
+ export declare function repeatingFields(definition: AnyNodeDefinition): string[];
6
+ /** The acts a kind with a repeating date is given: skip, detach and split, each on the record as `id`. */
7
+ export declare function deriveRepeatMutations<S extends AnySchema>(schema: S, mutations: readonly AnyMutationDefinition<S>[]): AnyMutationDefinition<S>[];
8
+ //# sourceMappingURL=derive-repeats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-repeats.d.ts","sourceRoot":"","sources":["../../src/mutations/derive-repeats.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,KAAK,EAAE,qBAAqB,EAAmB,MAAM,YAAY,CAAC;AAuBzE,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAMvE;AAQD,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAmEhJ"}
@@ -0,0 +1,118 @@
1
+ import * as z from "../schema/zod.js";
2
+ import { dayAsRead } from "../days.js";
3
+ import { labelOf } from "../schema/define-node.js";
4
+ import { isRepeat, isRepeatField, occurrences, repeatedBy, repeatKey } from "../repeat.js";
5
+ import { ActRefusal } from "../refused.js";
6
+ import { refTo } from "./node-ref.js";
7
+ /*
8
+ * ACTING ON ONE OCCURRENCE OF A REPEATING DATE (`repeat.ts`), each a derived
9
+ * act on a kind with a date that repeats, one undo each, and permitted as the
10
+ * kind's edit is:
11
+ *
12
+ * skip-<kind> "Skip this one": the day joins the series' exceptions.
13
+ * detach-<kind> "Change just this one": the occurrence becomes a record
14
+ * of its own — the series' fields and the links it makes,
15
+ * on that day, with what was changed — and an exception on
16
+ * the series.
17
+ * split-<kind> "Change from here": the series ends the day before, and
18
+ * a new one, continuing it (`continues`), starts on that
19
+ * day with what was changed. From its first day, it is the
20
+ * series itself that changes.
21
+ *
22
+ * Each takes the record (`id`), the day (`on`, `YYYY-MM-DD`) and, where the
23
+ * kind has more than one date that repeats, which (`field`); the two that
24
+ * change take any of the kind's fields beside them, as its edit does. A
25
+ * hosted page loads this up front with the store, so it is kept short.
26
+ */
27
+ /** Which of a kind's dates repeat: those with their repeat declared beside them. */
28
+ export function repeatingFields(definition) {
29
+ const shape = definition.fields.shape;
30
+ return Object.keys(shape).flatMap((key) => {
31
+ const date = isRepeatField(shape[key]) ? repeatedBy(key) : undefined;
32
+ return date && shape[date] ? [date] : [];
33
+ });
34
+ }
35
+ const ACTS = [
36
+ ["skip", "Skip this one", "Leave one day out of the series; the rest stay as they are.", "Skip {} on "],
37
+ ["detach", "Change just this one", "Make one day of the series a record of its own, to change apart from the rest.", "Change {} only on "],
38
+ ["split", "Change from here", "End the series the day before, and start it again from that day with what changes.", "Change {} from "],
39
+ ];
40
+ /** The acts a kind with a repeating date is given: skip, detach and split, each on the record as `id`. */
41
+ export function deriveRepeatMutations(schema, mutations) {
42
+ const taken = new Set(mutations.map((mutation) => mutation.name));
43
+ const derived = [];
44
+ for (const definition of schema.definitions) {
45
+ const dates = repeatingFields(definition);
46
+ if (dates.length === 0)
47
+ continue;
48
+ const kind = definition.kind;
49
+ const shape = definition.fields.shape;
50
+ const changes = Object.keys(shape).filter((field) => !(field in (definition.fixed ?? {})));
51
+ const named = (node) => labelOf(definition, node);
52
+ for (const [act, title, description, says] of ACTS) {
53
+ const name = `${act}-${kind}`;
54
+ if (taken.has(name))
55
+ continue;
56
+ derived.push({
57
+ name,
58
+ derived: { kind, act },
59
+ title,
60
+ description,
61
+ subject: { kinds: [kind], arg: "id" },
62
+ // What each writes on the series is how it repeats; what the other two set, they set on the record they make.
63
+ writes: dates.map(repeatKey),
64
+ ...(act === "skip" ? {} : { creates: [kind] }),
65
+ input: z.strictObject({
66
+ id: refTo([kind]),
67
+ on: z.string().check(z.regex(/^\d{4}-\d{2}-\d{2}$/, "a day, like 2026-10-21")),
68
+ ...(dates.length > 1 ? { field: z.optional(z.enum(dates)) } : {}),
69
+ ...(act === "skip" ? {} : Object.fromEntries(changes.map((field) => [field, z.optional(shape[field])]))),
70
+ }),
71
+ describe: (args, graph) => says.replace("{}", named(graph.getNode(String(args["id"])) ?? { id: args["id"] })) + dayAsRead(String(args["on"])),
72
+ apply(ctx, args) {
73
+ const node = ctx.graph.getNode(String(args["id"]));
74
+ const field = String(args["field"] ?? dates[0]);
75
+ const start = node?.[field];
76
+ const repeat = node?.[repeatKey(field)];
77
+ const on = String(args["on"]);
78
+ if (typeof start !== "string" || !isRepeat(repeat))
79
+ throw new ActRefusal(`${named(node ?? { id: args["id"] })} does not repeat`, "refused");
80
+ const at = occurrences(start, repeat, { from: on, to: on })[0];
81
+ if (!at)
82
+ throw new ActRefusal(`${named(node)} does not fall on ${dayAsRead(on)}`, "refused");
83
+ const id = String(node["id"]);
84
+ const given = Object.fromEntries(changes.filter((one) => args[one] !== undefined).map((one) => [one, args[one]]));
85
+ const key = repeatKey(field);
86
+ /** A record of its own, made from the series: its fields and what was changed, and the links it makes. */
87
+ const copy = (fields) => {
88
+ const made = Object.fromEntries(Object.entries({ ...node, ...fields, ...given }).filter(([one, value]) => value != null && one !== "id"));
89
+ const fresh = ctx.freshId(named(made));
90
+ ctx.addNode({ ...made, id: fresh, kind });
91
+ for (const edge of Object.keys(definition.edges ?? {}))
92
+ for (const to of ctx.graph.out(id, edge))
93
+ ctx.addEdge({ kind: edge, from: fresh, to: to.id });
94
+ };
95
+ if (act !== "split") {
96
+ ctx.patchNode(id, { [key]: { ...repeat, except: [...new Set([...(repeat.except ?? []), on])].sort() } });
97
+ if (act === "detach")
98
+ copy({ [field]: at, [key]: null });
99
+ return;
100
+ }
101
+ if (Object.keys(given).length === 0)
102
+ throw new ActRefusal(`Nothing to change: give ${named(node)} from ${dayAsRead(on)} something new`, "invalid");
103
+ // From its first day, "from here" is the whole series.
104
+ if (on <= start.slice(0, 10))
105
+ return ctx.patchNode(id, given);
106
+ const until = new Date(Date.parse(`${on}T00:00:00Z`) - 864e5).toISOString().slice(0, 10);
107
+ const before = repeat.count ? occurrences(start, { ...repeat, except: [] }, { to: until }).length : 0;
108
+ const { count, except, ...rule } = repeat;
109
+ const kept = (keep) => (except?.some(keep) ? { except: except.filter(keep) } : {});
110
+ ctx.patchNode(id, { [key]: { ...rule, until, ...kept((day) => day < on), ...(count ? { count: before } : {}) } });
111
+ copy({ [field]: at, [key]: { ...rule, ...kept((day) => day >= on), ...(count ? { count: count - before } : {}), continues: id } });
112
+ },
113
+ });
114
+ }
115
+ }
116
+ return derived;
117
+ }
118
+ //# sourceMappingURL=derive-repeats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-repeats.js","sourceRoot":"","sources":["../../src/mutations/derive-repeats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * THE ACTS EVERY KIND IS GIVEN, by name: what a grant, a rule's repair or a
3
+ * rename reads to know an act it does not find declared is the framework's.
4
+ * No imports, so the document's words and its compiler can read it without
5
+ * bringing anything with them.
6
+ */
7
+ export declare const DERIVED_ACTS: readonly ["edit", "remove", "archive", "unarchive", "merge", "leave-alone", "allow-tidying"];
8
+ /** The acts a kind with a date that repeats is given besides (`derive-repeats.ts`): skip one, change just one, change from one on. */
9
+ export declare const REPEAT_ACTS: readonly ["skip", "detach", "split"];
10
+ export type DerivedActName = (typeof DERIVED_ACTS)[number] | (typeof REPEAT_ACTS)[number];
11
+ /** Every derived act a kind has, by name. */
12
+ export declare const derivedActsOf: (kind: string) => string[];
13
+ /** The derived act a name says and its kind: `archive-task` → archive, task. */
14
+ export declare function derivedActOf(name: string): {
15
+ readonly act: DerivedActName;
16
+ readonly kind: string;
17
+ } | undefined;
18
+ /** Whether a kind declared `archives: false` (FR-173) is still given this derived act: its edit and remove, never the three that set a record aside. */
19
+ export declare const givenWhenNeverArchived: (act: DerivedActName) => boolean;
20
+ /** Whether a kind the declaration says is never tidied is still given this derived act: all but the two that leave one record alone, which it already is. */
21
+ export declare const givenWhenNeverTidied: (act: DerivedActName) => boolean;
22
+ //# sourceMappingURL=derived-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derived-names.d.ts","sourceRoot":"","sources":["../../src/mutations/derived-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,8FAA+F,CAAC;AAEzH,sIAAsI;AACtI,eAAO,MAAM,WAAW,sCAAuC,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F,6CAA6C;AAC7C,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAM,EAAiD,CAAC;AAErG,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAG9G;AAED,wJAAwJ;AACxJ,eAAO,MAAM,sBAAsB,GAAI,KAAK,cAAc,KAAG,OAAiG,CAAC;AAE/J,6JAA6J;AAC7J,eAAO,MAAM,oBAAoB,GAAI,KAAK,cAAc,KAAG,OAA2D,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * THE ACTS EVERY KIND IS GIVEN, by name: what a grant, a rule's repair or a
3
+ * rename reads to know an act it does not find declared is the framework's.
4
+ * No imports, so the document's words and its compiler can read it without
5
+ * bringing anything with them.
6
+ */
7
+ export const DERIVED_ACTS = ["edit", "remove", "archive", "unarchive", "merge", "leave-alone", "allow-tidying"];
8
+ /** The acts a kind with a date that repeats is given besides (`derive-repeats.ts`): skip one, change just one, change from one on. */
9
+ export const REPEAT_ACTS = ["skip", "detach", "split"];
10
+ /** Every derived act a kind has, by name. */
11
+ export const derivedActsOf = (kind) => DERIVED_ACTS.map((act) => `${act}-${kind}`);
12
+ /** The derived act a name says and its kind: `archive-task` → archive, task. */
13
+ export function derivedActOf(name) {
14
+ const found = /^(edit|remove|archive|unarchive|merge|leave-alone|allow-tidying|skip|detach|split)-(.+)$/.exec(name);
15
+ return found ? { act: found[1], kind: found[2] } : undefined;
16
+ }
17
+ /** Whether a kind declared `archives: false` (FR-173) is still given this derived act: its edit and remove, never the three that set a record aside. */
18
+ export const givenWhenNeverArchived = (act) => act === "edit" || act === "remove" || act === "leave-alone" || act === "allow-tidying";
19
+ /** Whether a kind the declaration says is never tidied is still given this derived act: all but the two that leave one record alone, which it already is. */
20
+ export const givenWhenNeverTidied = (act) => act !== "leave-alone" && act !== "allow-tidying";
21
+ //# sourceMappingURL=derived-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derived-names.js","sourceRoot":"","sources":["../../src/mutations/derived-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,CAAU,CAAC;AAEzH,sIAAsI;AACtI,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAIhE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AAErG,gFAAgF;AAChF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,0FAA0F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpH,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC;AAED,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,eAAe,CAAC;AAE/J,6JAA6J;AAC7J,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,eAAe,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * WHERE A RECORD'S CHANGE STARTS: the record's own values for every field
3
+ * its derived edit asks for (Roadmap f-edit-form-prefilled).
4
+ *
5
+ * "Change the feature" opened with "—" in every field, so a person changing
6
+ * one fact could not see the others and a screen reader heard blanks. The
7
+ * form starts from what the record holds; `changedArgs` sends only what was
8
+ * changed from there, so the rest is left as it is and the change says only
9
+ * what changed. Nothing for any other act, or a subject that is not there.
10
+ *
11
+ * A file of its own, apart from `form.ts`: the scene's ask reads these and
12
+ * nothing else of a form, and a bundler places a whole file where it is
13
+ * reached.
14
+ */
15
+ export declare function editStart(mutation: {
16
+ readonly derived?: {
17
+ readonly act: string;
18
+ };
19
+ readonly subject?: {
20
+ readonly arg: string;
21
+ };
22
+ readonly writes?: readonly string[];
23
+ }, graph: {
24
+ getNode(id: string): Readonly<Record<string, unknown>> | undefined;
25
+ }, args: Readonly<Record<string, unknown>>): Readonly<Record<string, unknown>>;
26
+ /** What a form that started at `start` sends: every argument but those still as they started. */
27
+ export declare function changedArgs(args: Readonly<Record<string, unknown>>, start: Readonly<Record<string, unknown>>): Record<string, unknown>;
28
+ //# sourceMappingURL=edit-start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-start.d.ts","sourceRoot":"","sources":["../../src/mutations/edit-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAC3I,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;CAAE,EAC7E,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAInC;AAED,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEtI"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * WHERE A RECORD'S CHANGE STARTS: the record's own values for every field
3
+ * its derived edit asks for (Roadmap f-edit-form-prefilled).
4
+ *
5
+ * "Change the feature" opened with "—" in every field, so a person changing
6
+ * one fact could not see the others and a screen reader heard blanks. The
7
+ * form starts from what the record holds; `changedArgs` sends only what was
8
+ * changed from there, so the rest is left as it is and the change says only
9
+ * what changed. Nothing for any other act, or a subject that is not there.
10
+ *
11
+ * A file of its own, apart from `form.ts`: the scene's ask reads these and
12
+ * nothing else of a form, and a bundler places a whole file where it is
13
+ * reached.
14
+ */
15
+ export function editStart(mutation, graph, args) {
16
+ const id = mutation.derived?.act === "edit" && mutation.subject ? args[mutation.subject.arg] : undefined;
17
+ const node = typeof id === "string" ? graph.getNode(id) : undefined;
18
+ return node ? Object.fromEntries((mutation.writes ?? []).filter((field) => node[field] !== undefined && node[field] !== null).map((field) => [field, node[field]])) : {};
19
+ }
20
+ /** What a form that started at `start` sends: every argument but those still as they started. */
21
+ export function changedArgs(args, start) {
22
+ return Object.fromEntries(Object.entries(args).filter(([name, value]) => !Object.hasOwn(start, name) || JSON.stringify(value) !== JSON.stringify(start[name])));
23
+ }
24
+ //# sourceMappingURL=edit-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-start.js","sourceRoot":"","sources":["../../src/mutations/edit-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CACvB,QAA2I,EAC3I,KAA6E,EAC7E,IAAuC;IAEvC,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,MAAM,IAAI,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3K,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,WAAW,CAAC,IAAuC,EAAE,KAAwC;IAC3G,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClK,CAAC"}