@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
@@ -12,8 +12,12 @@ export declare const FIELD_NAME: RegExp;
12
12
  * `tended-by.name` would read as a subtraction.
13
13
  */
14
14
  export declare const EDGE_NAME: RegExp;
15
- /** `image` and `file` hold what the host stored (FR-162): a `FileValue`, its `href` a path on the host. */
16
- export declare const FIELD_TYPES: readonly ["string", "text", "number", "integer", "boolean", "date", "datetime", "enum", "list", "url", "email", "image", "file"];
15
+ /**
16
+ * `image` and `file` hold what the host stored (FR-162): a `FileValue`, its
17
+ * `href` a path on the host. `phone` and `place` are words drawn as a link to
18
+ * call and to a map; `duration` is a whole number of minutes, said "1 h 30 min".
19
+ */
20
+ export declare const FIELD_TYPES: readonly ["string", "text", "number", "integer", "boolean", "date", "datetime", "enum", "list", "url", "email", "image", "file", "app-link", "phone", "place", "duration"];
17
21
  export type FieldType = (typeof FIELD_TYPES)[number];
18
22
  export declare const FieldSpec: z.ZodMiniObject<{
19
23
  type: z.ZodMiniEnum<{
@@ -27,9 +31,13 @@ export declare const FieldSpec: z.ZodMiniObject<{
27
31
  email: "email";
28
32
  url: "url";
29
33
  datetime: "datetime";
30
- image: "image";
31
- text: "text";
34
+ duration: "duration";
32
35
  list: "list";
36
+ text: "text";
37
+ image: "image";
38
+ phone: "phone";
39
+ place: "place";
40
+ "app-link": "app-link";
33
41
  }>;
34
42
  required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
35
43
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -48,11 +56,13 @@ export declare const FieldSpec: z.ZodMiniObject<{
48
56
  duration: "duration";
49
57
  money: "money";
50
58
  percent: "percent";
59
+ markdown: "markdown";
51
60
  }>>;
52
61
  min: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
53
62
  max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
54
63
  step: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
55
64
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
65
+ repeats: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
56
66
  }, z.core.$strict>;
57
67
  export type FieldSpec = z.infer<typeof FieldSpec>;
58
68
  export declare const EdgeSpec: z.ZodMiniObject<{
@@ -65,6 +75,7 @@ export declare const EdgeSpec: z.ZodMiniObject<{
65
75
  inverse: z.ZodMiniOptional<z.ZodMiniString<string>>;
66
76
  appendOnly: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
67
77
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
78
+ tidying: z.ZodMiniOptional<z.ZodMiniLiteral<"never">>;
68
79
  }, z.core.$strict>;
69
80
  export type EdgeSpec = z.infer<typeof EdgeSpec>;
70
81
  /** A computed field: its expression, or the expression with the words it is shown by (FR-83). */
@@ -90,9 +101,13 @@ export declare const KindSpec: z.ZodMiniObject<{
90
101
  email: "email";
91
102
  url: "url";
92
103
  datetime: "datetime";
93
- image: "image";
94
- text: "text";
104
+ duration: "duration";
95
105
  list: "list";
106
+ text: "text";
107
+ image: "image";
108
+ phone: "phone";
109
+ place: "place";
110
+ "app-link": "app-link";
96
111
  }>;
97
112
  required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
98
113
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -111,11 +126,13 @@ export declare const KindSpec: z.ZodMiniObject<{
111
126
  duration: "duration";
112
127
  money: "money";
113
128
  percent: "percent";
129
+ markdown: "markdown";
114
130
  }>>;
115
131
  min: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
116
132
  max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
117
133
  step: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
118
134
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
135
+ repeats: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
119
136
  }, z.core.$strict>>;
120
137
  label: z.ZodMiniOptional<z.ZodMiniString<string>>;
121
138
  describe: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -142,6 +159,7 @@ export declare const KindSpec: z.ZodMiniObject<{
142
159
  inverse: z.ZodMiniOptional<z.ZodMiniString<string>>;
143
160
  appendOnly: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
144
161
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
162
+ tidying: z.ZodMiniOptional<z.ZodMiniLiteral<"never">>;
145
163
  }, z.core.$strict>>>;
146
164
  computed: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
147
165
  expr: z.ZodMiniString<string>;
@@ -151,6 +169,11 @@ export declare const KindSpec: z.ZodMiniObject<{
151
169
  fieldRoles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
152
170
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
153
171
  people: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
172
+ archives: z.ZodMiniOptional<z.ZodMiniLiteral<false>>;
173
+ tidying: z.ZodMiniOptional<z.ZodMiniEnum<{
174
+ never: "never";
175
+ "no-links": "no-links";
176
+ }>>;
154
177
  }, z.core.$strict>;
155
178
  export type KindSpec = z.infer<typeof KindSpec>;
156
179
  /** A value an effect writes: a literal, `$arg`, `$subject`, `$new`, `$now`, `$today`, or `{ expr }`. */
@@ -210,9 +233,13 @@ export declare const ActSpec: z.ZodMiniObject<{
210
233
  email: "email";
211
234
  url: "url";
212
235
  datetime: "datetime";
213
- image: "image";
214
- text: "text";
236
+ duration: "duration";
215
237
  list: "list";
238
+ text: "text";
239
+ image: "image";
240
+ phone: "phone";
241
+ place: "place";
242
+ "app-link": "app-link";
216
243
  }>;
217
244
  required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
218
245
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -231,11 +258,13 @@ export declare const ActSpec: z.ZodMiniObject<{
231
258
  duration: "duration";
232
259
  money: "money";
233
260
  percent: "percent";
261
+ markdown: "markdown";
234
262
  }>>;
235
263
  min: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
236
264
  max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
237
265
  step: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
238
266
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
267
+ repeats: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
239
268
  }, z.core.$strict>>>;
240
269
  effects: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
241
270
  create: z.ZodMiniString<string>;
@@ -295,17 +324,13 @@ export declare const GrantSpec: z.ZodMiniObject<{
295
324
  self: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
296
325
  ownEnd: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
297
326
  }, z.core.$strict>;
298
- /**
299
- * Who sees which kinds — the framework's `Sight`, one meaning (FR-02).
300
- * Absent: everyone sees everything. Present: a kind no sight names is seen
301
- * by nobody but the system (a host that gives its owners everything serves
302
- * them as the system, or names them in a sight).
303
- */
304
327
  export declare const SightSpec: z.ZodMiniObject<{
305
328
  roles: z.ZodMiniUnion<readonly [z.ZodMiniArray<z.ZodMiniString<string>>, z.ZodMiniLiteral<"*">]>;
306
329
  kinds: z.ZodMiniArray<z.ZodMiniString<string>>;
307
330
  own: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
308
331
  via: z.ZodMiniOptional<z.ZodMiniString<string>>;
332
+ fields: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
333
+ hide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
309
334
  }, z.core.$strict>;
310
335
  export type SightSpec = z.infer<typeof SightSpec>;
311
336
  export declare const PolicySpec: z.ZodMiniObject<{
@@ -322,13 +347,16 @@ export declare const PolicySpec: z.ZodMiniObject<{
322
347
  kinds: z.ZodMiniArray<z.ZodMiniString<string>>;
323
348
  own: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
324
349
  via: z.ZodMiniOptional<z.ZodMiniString<string>>;
350
+ fields: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
351
+ hide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
325
352
  }, z.core.$strict>>>;
326
353
  }, z.core.$strict>;
327
354
  export type PolicySpec = z.infer<typeof PolicySpec>;
328
355
  /**
329
356
  * The installation's look and its money: an accent color the palette is
330
357
  * derived from, and the currency and locale a sum is said in wherever a
331
- * block names none (FR-100). Any of them may stand alone.
358
+ * block names none (FR-100) — the locale its days, times and numbers are
359
+ * said in too (FR-178), "en-US" when absent. Any of them may stand alone.
332
360
  */
333
361
  export declare const BrandSpec: z.ZodMiniObject<{
334
362
  accent: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -339,7 +367,9 @@ export declare const BrandSpec: z.ZodMiniObject<{
339
367
  src: z.ZodMiniString<string>;
340
368
  alt: z.ZodMiniOptional<z.ZodMiniString<string>>;
341
369
  }, z.core.$strict>]>>;
342
- favicon: z.ZodMiniOptional<z.ZodMiniString<string>>;
370
+ favicon: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
371
+ emoji: z.ZodMiniString<string>;
372
+ }, z.core.$strict>]>>;
343
373
  typography: z.ZodMiniOptional<z.ZodMiniObject<{
344
374
  display: z.ZodMiniOptional<z.ZodMiniString<string>>;
345
375
  body: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -370,6 +400,28 @@ export declare const PagesSpec: z.ZodMiniObject<{
370
400
  primary: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
371
401
  scene: z.ZodMiniOptional<z.ZodMiniString<string>>;
372
402
  pages: z.ZodMiniOptional<z.ZodMiniString<string>>;
403
+ lists: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
404
+ filters: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
405
+ sort: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
406
+ by: z.ZodMiniString<string>;
407
+ direction: z.ZodMiniOptional<z.ZodMiniEnum<{
408
+ desc: "desc";
409
+ asc: "asc";
410
+ }>>;
411
+ then: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
412
+ by: z.ZodMiniString<string>;
413
+ direction: z.ZodMiniOptional<z.ZodMiniEnum<{
414
+ desc: "desc";
415
+ asc: "asc";
416
+ }>>;
417
+ }, z.core.$strict>]>>;
418
+ }, z.core.$strict>]>>;
419
+ group: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
420
+ by: z.ZodMiniString<string>;
421
+ order: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
422
+ closed: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
423
+ }, z.core.$strict>]>>;
424
+ }, z.core.$strict>>>;
373
425
  }, z.core.$loose>;
374
426
  export declare const DocumentSpec: z.ZodMiniObject<{
375
427
  $schema: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -394,9 +446,13 @@ export declare const DocumentSpec: z.ZodMiniObject<{
394
446
  email: "email";
395
447
  url: "url";
396
448
  datetime: "datetime";
397
- image: "image";
398
- text: "text";
449
+ duration: "duration";
399
450
  list: "list";
451
+ text: "text";
452
+ image: "image";
453
+ phone: "phone";
454
+ place: "place";
455
+ "app-link": "app-link";
400
456
  }>;
401
457
  required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
402
458
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -415,11 +471,13 @@ export declare const DocumentSpec: z.ZodMiniObject<{
415
471
  duration: "duration";
416
472
  money: "money";
417
473
  percent: "percent";
474
+ markdown: "markdown";
418
475
  }>>;
419
476
  min: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
420
477
  max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
421
478
  step: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
422
479
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
480
+ repeats: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
423
481
  }, z.core.$strict>>;
424
482
  label: z.ZodMiniOptional<z.ZodMiniString<string>>;
425
483
  describe: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -446,6 +504,7 @@ export declare const DocumentSpec: z.ZodMiniObject<{
446
504
  inverse: z.ZodMiniOptional<z.ZodMiniString<string>>;
447
505
  appendOnly: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
448
506
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
507
+ tidying: z.ZodMiniOptional<z.ZodMiniLiteral<"never">>;
449
508
  }, z.core.$strict>>>;
450
509
  computed: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
451
510
  expr: z.ZodMiniString<string>;
@@ -455,6 +514,11 @@ export declare const DocumentSpec: z.ZodMiniObject<{
455
514
  fieldRoles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
456
515
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
457
516
  people: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
517
+ archives: z.ZodMiniOptional<z.ZodMiniLiteral<false>>;
518
+ tidying: z.ZodMiniOptional<z.ZodMiniEnum<{
519
+ never: "never";
520
+ "no-links": "no-links";
521
+ }>>;
458
522
  }, z.core.$strict>>;
459
523
  computed: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
460
524
  expr: z.ZodMiniString<string>;
@@ -490,9 +554,13 @@ export declare const DocumentSpec: z.ZodMiniObject<{
490
554
  email: "email";
491
555
  url: "url";
492
556
  datetime: "datetime";
493
- image: "image";
494
- text: "text";
557
+ duration: "duration";
495
558
  list: "list";
559
+ text: "text";
560
+ image: "image";
561
+ phone: "phone";
562
+ place: "place";
563
+ "app-link": "app-link";
496
564
  }>;
497
565
  required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
498
566
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -511,11 +579,13 @@ export declare const DocumentSpec: z.ZodMiniObject<{
511
579
  duration: "duration";
512
580
  money: "money";
513
581
  percent: "percent";
582
+ markdown: "markdown";
514
583
  }>>;
515
584
  min: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
516
585
  max: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
517
586
  step: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
518
587
  renamedFrom: z.ZodMiniOptional<z.ZodMiniString<string>>;
588
+ repeats: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
519
589
  }, z.core.$strict>>>;
520
590
  effects: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
521
591
  create: z.ZodMiniString<string>;
@@ -573,10 +643,36 @@ export declare const DocumentSpec: z.ZodMiniObject<{
573
643
  kinds: z.ZodMiniArray<z.ZodMiniString<string>>;
574
644
  own: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
575
645
  via: z.ZodMiniOptional<z.ZodMiniString<string>>;
646
+ fields: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
647
+ hide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
576
648
  }, z.core.$strict>>>;
577
649
  }, z.core.$strict>>;
578
650
  modules: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
579
- lenses: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
651
+ lenses: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
652
+ create: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
653
+ options: z.ZodMiniOptional<z.ZodMiniObject<{
654
+ sort: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
655
+ by: z.ZodMiniString<string>;
656
+ direction: z.ZodMiniOptional<z.ZodMiniEnum<{
657
+ desc: "desc";
658
+ asc: "asc";
659
+ }>>;
660
+ }, z.core.$strict>]>>;
661
+ columnSort: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
662
+ by: z.ZodMiniString<string>;
663
+ direction: z.ZodMiniOptional<z.ZodMiniEnum<{
664
+ desc: "desc";
665
+ asc: "asc";
666
+ }>>;
667
+ }, z.core.$strict>]>>;
668
+ horizon: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniNumber<number>, z.ZodMiniObject<{
669
+ years: z.ZodMiniNumber<number>;
670
+ title: z.ZodMiniString<string>;
671
+ from: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
672
+ to: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
673
+ }, z.core.$loose>]>>;
674
+ }, z.core.$loose>>;
675
+ }, z.core.$loose>>>;
580
676
  pages: z.ZodMiniOptional<z.ZodMiniObject<{
581
677
  order: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
582
678
  hide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
@@ -584,6 +680,28 @@ export declare const DocumentSpec: z.ZodMiniObject<{
584
680
  primary: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
585
681
  scene: z.ZodMiniOptional<z.ZodMiniString<string>>;
586
682
  pages: z.ZodMiniOptional<z.ZodMiniString<string>>;
683
+ lists: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
684
+ filters: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
685
+ sort: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
686
+ by: z.ZodMiniString<string>;
687
+ direction: z.ZodMiniOptional<z.ZodMiniEnum<{
688
+ desc: "desc";
689
+ asc: "asc";
690
+ }>>;
691
+ then: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
692
+ by: z.ZodMiniString<string>;
693
+ direction: z.ZodMiniOptional<z.ZodMiniEnum<{
694
+ desc: "desc";
695
+ asc: "asc";
696
+ }>>;
697
+ }, z.core.$strict>]>>;
698
+ }, z.core.$strict>]>>;
699
+ group: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
700
+ by: z.ZodMiniString<string>;
701
+ order: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
702
+ closed: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
703
+ }, z.core.$strict>]>>;
704
+ }, z.core.$strict>>>;
587
705
  }, z.core.$loose>>;
588
706
  views: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
589
707
  card: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnknown>>;
@@ -599,7 +717,9 @@ export declare const DocumentSpec: z.ZodMiniObject<{
599
717
  src: z.ZodMiniString<string>;
600
718
  alt: z.ZodMiniOptional<z.ZodMiniString<string>>;
601
719
  }, z.core.$strict>]>>;
602
- favicon: z.ZodMiniOptional<z.ZodMiniString<string>>;
720
+ favicon: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
721
+ emoji: z.ZodMiniString<string>;
722
+ }, z.core.$strict>]>>;
603
723
  typography: z.ZodMiniOptional<z.ZodMiniObject<{
604
724
  display: z.ZodMiniOptional<z.ZodMiniString<string>>;
605
725
  body: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/document/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/document/schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import * as z from "../schema/zod.js";
2
+ import { LINKED_TARGET } from "../schema/linked.js";
2
3
  /*
3
4
  * THE GRAVIEW DECLARATION DOCUMENT, v1 — as data a stranger can hand us.
4
5
  *
@@ -32,22 +33,26 @@ const notInherited = z.refine((n) => !inherited(n), "every object already has th
32
33
  const sized = (min, max) => [...(min === undefined ? [] : [z.minLength(min)]), ...(max === undefined ? [] : [z.maxLength(max)])];
33
34
  const str = (min, max) => z.string().check(...sized(min, max));
34
35
  const some = (of, min, max) => z.array(of).check(...sized(min, max));
35
- const name = (what) => z.string().check(z.regex(NAME, `${what} names are lower-case words joined by hyphens, like "booked-vendor"`));
36
+ const name = (what) => z.string().check(z.regex(NAME, `${what} names are kebab-case, lower-case words joined by hyphens like "tool-note" (field and relation names are camelCase, like "supersededBy")`));
36
37
  /**
37
38
  * A RELATION'S NAME may be kebab-case or one camelCase word. camelCase is
38
39
  * recommended: a rule can then walk it bare (`tendedBy.name`), where
39
40
  * `tended-by.name` would read as a subtraction.
40
41
  */
41
42
  export const EDGE_NAME = /^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$/;
42
- const edgeName = z.string().check(z.regex(EDGE_NAME, 'relation names are one camelCase word, like "tendedBy"'), notInherited);
43
+ const edgeName = z.string().check(z.regex(EDGE_NAME, 'relation names are one camelCase word, like "supersededBy" (kind names are kebab-case, like "tool-note")'), notInherited);
43
44
  const fieldName = z
44
45
  .string()
45
- .check(z.regex(FIELD_NAME, 'field names are one word or camelCase, like "dueDate" — rules say them bare'), z.refine((n) => !RESERVED_FIELDS.has(n), 'a field cannot be called "id" or "kind" — the framework keeps those; try "type" or "category"'), notInherited);
46
+ .check(z.regex(FIELD_NAME, 'field names are one word or camelCase, like "dueDate", so rules say them bare (kind names are kebab-case, like "tool-note")'), z.refine((n) => !RESERVED_FIELDS.has(n), 'a field cannot be called "id" or "kind" — the framework keeps those; try "type" or "category"'), notInherited);
46
47
  const sentence = str(1, 500);
47
48
  const expression = str(1, 2000);
48
49
  const template = str(1, 300);
49
- /** `image` and `file` hold what the host stored (FR-162): a `FileValue`, its `href` a path on the host. */
50
- export const FIELD_TYPES = ["string", "text", "number", "integer", "boolean", "date", "datetime", "enum", "list", "url", "email", "image", "file"];
50
+ /**
51
+ * `image` and `file` hold what the host stored (FR-162): a `FileValue`, its
52
+ * `href` a path on the host. `phone` and `place` are words drawn as a link to
53
+ * call and to a map; `duration` is a whole number of minutes, said "1 h 30 min".
54
+ */
55
+ export const FIELD_TYPES = ["string", "text", "number", "integer", "boolean", "date", "datetime", "enum", "list", "url", "email", "image", "file", "app-link", "phone", "place", "duration"];
51
56
  export const FieldSpec = z
52
57
  .strictObject({
53
58
  type: z.enum(FIELD_TYPES),
@@ -59,13 +64,20 @@ export const FieldSpec = z
59
64
  of: z.optional(z.enum(["string", "number", "date", "image", "file"])),
60
65
  default: z.optional(z.unknown()),
61
66
  unit: z.optional(str(undefined, 12)),
62
- format: z.optional(z.enum(["money", "percent", "duration"])),
67
+ /** How a number is shown (`money`, `percent`, `duration`), or that a `text` field is written in Markdown (FR-180; the checker's `field-format` says which goes where). */
68
+ format: z.optional(z.enum(["money", "percent", "duration", "markdown"])),
63
69
  /** A number's range (FR-114): the least and the most it may be, and the step its values are whole multiples of (JSON Schema's `multipleOf`). */
64
70
  min: z.optional(z.number()),
65
71
  max: z.optional(z.number()),
66
72
  step: z.optional(z.number()),
67
73
  /** The name this field had in the previous version: its values move instead of being dropped. */
68
74
  renamedFrom: z.optional(z.string().check(z.regex(FIELD_NAME))),
75
+ /**
76
+ * A date that repeats (`repeat.ts`): a record may keep, beside the date
77
+ * (its first occurrence), how it repeats under the date's name and
78
+ * `Repeat` — `"startsAtRepeat": { "every": "week", "on": ["tue"] }`.
79
+ */
80
+ repeats: z.optional(z.boolean()),
69
81
  })
70
82
  .check(z.superRefine((f, ctx) => {
71
83
  if (f.type === "enum" && !f.options)
@@ -74,15 +86,26 @@ export const FieldSpec = z
74
86
  ctx.addIssue({ code: "custom", message: '"options" belongs only on an enum field', path: ["options"] });
75
87
  if (f.type !== "list" && f.of)
76
88
  ctx.addIssue({ code: "custom", message: '"of" belongs only on a list field', path: ["of"] });
89
+ if (f.repeats && f.type !== "date" && f.type !== "datetime")
90
+ ctx.addIssue({ code: "custom", message: '"repeats" belongs only on a date or datetime field', path: ["repeats"] });
77
91
  }));
92
+ /**
93
+ * WHERE A RELATION GOES: a kind of this document (`"house"`), or a kind in
94
+ * ANOTHER APP the viewer can open (FR-171) — `@` + the app's address + `/`
95
+ * + its kind: `"@nick/house/house"`, `"@app_kf5eydr9z58jzf/house"`. A link
96
+ * to another app's record picks one there and leaves that app untouched.
97
+ */
98
+ const edgeTarget = z.string().check(z.regex(new RegExp(`${NAME.source}|${LINKED_TARGET.source}`), 'a relation goes to a kind of this document, like "house", or of another app, like "@nick/house/house"'));
78
99
  export const EdgeSpec = z.strictObject({
79
- to: z.union([some(name("kind"), 1), z.literal("*")]),
100
+ to: z.union([some(edgeTarget, 1), z.literal("*")]),
80
101
  cardinality: z.optional(z.enum(["one", "many"])),
81
102
  description: z.optional(sentence),
82
103
  inverse: z.optional(str(1, 80)),
83
104
  appendOnly: z.optional(z.boolean()),
84
105
  /** The name this relation had in the previous version: its links move. */
85
106
  renamedFrom: z.optional(z.string()),
107
+ /** `"never"`: no automated author makes or breaks this relation on its own (`@graview/core/tidying`). */
108
+ tidying: z.optional(z.literal("never")),
86
109
  });
87
110
  /** A computed field: its expression, or the expression with the words it is shown by (FR-83). */
88
111
  export const ComputedSpec = z.union([expression, z.strictObject({ expr: expression, label: z.optional(str(1, 60)), description: z.optional(sentence) })]);
@@ -126,6 +149,10 @@ export const KindSpec = z.strictObject({
126
149
  renamedFrom: z.optional(z.string().check(z.regex(NAME))),
127
150
  /** This kind stands for the people: a record of it whose id is a member's principal id is that member (`$me`, `self`, `own`, `via`, `ownEnd`). */
128
151
  people: z.optional(z.boolean()),
152
+ /** `false`: its records are kept or removed, never archived — the kind is given no `archive-`, `unarchive-` or `merge-<kind>` (FR-173). */
153
+ archives: z.optional(z.literal(false)),
154
+ /** What the app's own actor may do to its records on its own: `"never"` nothing, `"no-links"` all but link and unlink them (`@graview/core/tidying`). */
155
+ tidying: z.optional(z.enum(["never", "no-links"])),
129
156
  });
130
157
  /** A value an effect writes: a literal, `$arg`, `$subject`, `$new`, `$now`, `$today`, or `{ expr }`. */
131
158
  export const ValueSpec = z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.unknown()), z.strictObject({ expr: expression })]);
@@ -196,6 +223,7 @@ export const GrantSpec = z.strictObject({
196
223
  * by nobody but the system (a host that gives its owners everything serves
197
224
  * them as the system, or names them in a sight).
198
225
  */
226
+ const fieldNames = z.optional(some(name("field"), 1));
199
227
  export const SightSpec = z.strictObject({
200
228
  roles: z.union([some(name("role"), 1), z.literal("*")]),
201
229
  kinds: some(name("kind"), 1),
@@ -203,6 +231,10 @@ export const SightSpec = z.strictObject({
203
231
  own: z.optional(z.boolean()),
204
232
  /** Only the records this relation joins to the principal's own record of the people kind. */
205
233
  via: z.optional(edgeName),
234
+ /** Only these fields of the records it shows (Roadmap f-field-sight); sights add up. */
235
+ fields: fieldNames,
236
+ /** Every field but these of the records it shows: kept from the roles, on every surface, and not theirs to write. */
237
+ hide: fieldNames,
206
238
  });
207
239
  export const PolicySpec = z.strictObject({
208
240
  grants: z.array(GrantSpec),
@@ -211,7 +243,8 @@ export const PolicySpec = z.strictObject({
211
243
  /**
212
244
  * The installation's look and its money: an accent color the palette is
213
245
  * derived from, and the currency and locale a sum is said in wherever a
214
- * block names none (FR-100). Any of them may stand alone.
246
+ * block names none (FR-100) — the locale its days, times and numbers are
247
+ * said in too (FR-178), "en-US" when absent. Any of them may stand alone.
215
248
  */
216
249
  export const BrandSpec = z.strictObject({
217
250
  accent: z.optional(z.string().check(z.regex(/^#[0-9a-fA-F]{6}$/, 'an accent is a color like "#c2577a"'))),
@@ -226,7 +259,8 @@ export const BrandSpec = z.strictObject({
226
259
  * in, how round and how roomy, a hue per kind, and the scheme it prefers.
227
260
  */
228
261
  logo: z.optional(z.union([str(1, MARK_MAX), z.strictObject({ src: str(1, MARK_MAX), alt: z.optional(str(1, 120)) })])),
229
- favicon: z.optional(str(1, MARK_MAX)),
262
+ // A page icon: a mark as the logo is one, or `{ "emoji": "🏡" }` — one standard emoji, the app's mark where it has no logo (`brand-emoji`).
263
+ favicon: z.optional(z.union([str(1, MARK_MAX), z.strictObject({ emoji: z.string() })])),
230
264
  typography: z.optional(z.strictObject({ display: z.optional(str(1, 200)), body: z.optional(str(1, 200)), mono: z.optional(str(1, 200)) })),
231
265
  shape: z.optional(z.strictObject({
232
266
  radius: z.optional(z.number().check(z.minimum(0), z.maximum(32))),
@@ -236,12 +270,43 @@ export const BrandSpec = z.strictObject({
236
270
  scheme: z.optional(z.enum(["light", "dark", "auto"])),
237
271
  });
238
272
  const loose = z.record(z.string(), z.unknown());
273
+ /** A grid lens's order (`grid-sort.ts`): a field, or { by, direction }. */
274
+ const GridSortSpec = z.union([str(1, 120), z.strictObject({ by: str(1, 120), direction: z.optional(z.enum(["asc", "desc"])) })]);
275
+ const Year = z.number().check(z.int(), z.minimum(1), z.maximum(9999));
276
+ /**
277
+ * A lens: checked by `graview check` against the lenses the framework ships
278
+ * (`declaredLenses`), so loose here but for what its page is: `create`,
279
+ * false where the place's page leaves off the forms that begin its kind —
280
+ * and the options whose shape is the same on every lens that takes them:
281
+ * a coverage's `sort` and `columnSort` and a status board's `sort` (the
282
+ * order of its rows, columns or cards), and a calendar's `horizon` (its
283
+ * span of years, reaching its records' first and last unless `from` and
284
+ * `to` pin it).
285
+ */
286
+ const LensSpec = z.looseObject({
287
+ create: z.optional(z.boolean()),
288
+ options: z.optional(z.looseObject({
289
+ sort: z.optional(GridSortSpec),
290
+ columnSort: z.optional(GridSortSpec),
291
+ horizon: z.optional(z.union([z.number().check(z.int(), z.minimum(1), z.maximum(200)), z.looseObject({ years: z.number().check(z.int(), z.minimum(1), z.maximum(200)), title: str(1, 80), from: z.optional(Year), to: z.optional(Year) })])),
292
+ })),
293
+ });
239
294
  /** A kind's view specs: which slots it fills. The blocks are checked in views.ts, sentence by sentence. */
240
295
  const ViewSpecsSpec = z.strictObject({
241
296
  card: z.optional(z.array(z.unknown())),
242
297
  row: z.optional(z.array(z.unknown())),
243
298
  page: z.optional(z.array(z.unknown())),
244
299
  });
300
+ /** A kind's list's declared order (`pages.lists.<kind>.sort`): a key, or a key with a direction and a tiebreak. */
301
+ const ListSortSpec = () => {
302
+ const direction = z.optional(z.enum(["asc", "desc"]));
303
+ return z.union([
304
+ str(1, 120),
305
+ z.strictObject({ by: str(1, 120), direction, then: z.optional(z.union([str(1, 120), z.strictObject({ by: str(1, 120), direction })])) }),
306
+ ]);
307
+ };
308
+ /** A kind's list's declared grouping (`pages.lists.<kind>.group`): a field, or a field with its groups' order and the closed ones. */
309
+ const ListGroupSpec = () => z.union([str(1, 120), z.strictObject({ by: str(1, 120), order: z.optional(some(str(1, 80), undefined, 40)), closed: z.optional(some(str(1, 80), undefined, 40)) })]);
245
310
  /**
246
311
  * THE ARRANGEMENT (FR-80): the kinds in order, the kinds the home leaves
247
312
  * off, the place the app opens on. Loose enough that a document which
@@ -261,6 +326,17 @@ export const PagesSpec = z.looseObject({
261
326
  */
262
327
  scene: z.optional(str(1, 40)),
263
328
  pages: z.optional(str(1, 40)),
329
+ /*
330
+ * What each kind's list offers to filter by, by kind (`pages.lists.request.filters`): fields, relations,
331
+ * `is`, and `<relation>.<field>` for a choice at a relation's far end. Its choice fields stand as chips.
332
+ */
333
+ lists: z.optional(z.record(z.string(), z.strictObject({
334
+ filters: z.optional(some(str(1, 120), undefined, 40)),
335
+ /* The order it opens in: a field, a computed field or `label`, lowest first — or { by, direction, then }. */
336
+ sort: z.optional(ListSortSpec()),
337
+ /* How it opens grouped: a choice or yes-or-no field — or { by, order, closed }, the closed groups last and shut. */
338
+ group: z.optional(ListGroupSpec()),
339
+ }))),
264
340
  });
265
341
  export const DocumentSpec = z.strictObject({
266
342
  /* Where an editor finds this shape as JSON Schema (`@graview/core/document.schema.json`); the compiler reads past it. */
@@ -285,7 +361,7 @@ export const DocumentSpec = z.strictObject({
285
361
  roles: z.optional(z.array(name("role"))),
286
362
  policy: z.optional(PolicySpec),
287
363
  modules: z.optional(loose),
288
- lenses: z.optional(z.array(loose)),
364
+ lenses: z.optional(z.array(LensSpec)),
289
365
  pages: z.optional(PagesSpec),
290
366
  /** Each kind's views by kind, and `home`: the home view, a list of blocks about no one record (FR-81). */
291
367
  views: z.optional(z.record(z.string(), z.union([ViewSpecsSpec, z.array(z.unknown())]))),