@graview/core 0.1.27 → 0.1.29

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 (505) 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 +153 -0
  13. package/dist/app-places.js.map +1 -0
  14. package/dist/arrange.d.ts +2 -2
  15. package/dist/arrange.d.ts.map +1 -1
  16. package/dist/arrange.js +2 -2
  17. package/dist/arrange.js.map +1 -1
  18. package/dist/arrangement-words.d.ts +3 -0
  19. package/dist/arrangement-words.d.ts.map +1 -0
  20. package/dist/arrangement-words.js +50 -0
  21. package/dist/arrangement-words.js.map +1 -0
  22. package/dist/arrangement.d.ts +25 -3
  23. package/dist/arrangement.d.ts.map +1 -1
  24. package/dist/arrangement.js +36 -32
  25. package/dist/arrangement.js.map +1 -1
  26. package/dist/arranging.d.ts.map +1 -1
  27. package/dist/arranging.js +19 -8
  28. package/dist/arranging.js.map +1 -1
  29. package/dist/bind.d.ts +3 -0
  30. package/dist/bind.d.ts.map +1 -1
  31. package/dist/bind.js.map +1 -1
  32. package/dist/capabilities.js +1 -1
  33. package/dist/capabilities.js.map +1 -1
  34. package/dist/capital.d.ts +2 -0
  35. package/dist/capital.d.ts.map +1 -1
  36. package/dist/capital.js +2 -0
  37. package/dist/capital.js.map +1 -1
  38. package/dist/check.d.ts +3 -0
  39. package/dist/check.d.ts.map +1 -1
  40. package/dist/check.js +3 -0
  41. package/dist/check.js.map +1 -1
  42. package/dist/city.d.ts +58 -50
  43. package/dist/city.d.ts.map +1 -1
  44. package/dist/city.js +160 -147
  45. package/dist/city.js.map +1 -1
  46. package/dist/cli/check/brand.js +1 -1
  47. package/dist/cli/check/brand.js.map +1 -1
  48. package/dist/cli/check/clock-rules.d.ts +4 -0
  49. package/dist/cli/check/clock-rules.d.ts.map +1 -0
  50. package/dist/cli/check/clock-rules.js +26 -0
  51. package/dist/cli/check/clock-rules.js.map +1 -0
  52. package/dist/cli/check/field-sight.d.ts +11 -0
  53. package/dist/cli/check/field-sight.d.ts.map +1 -0
  54. package/dist/cli/check/field-sight.js +113 -0
  55. package/dist/cli/check/field-sight.js.map +1 -0
  56. package/dist/cli/check/index.d.ts +2 -0
  57. package/dist/cli/check/index.d.ts.map +1 -1
  58. package/dist/cli/check/index.js +2 -0
  59. package/dist/cli/check/index.js.map +1 -1
  60. package/dist/cli/check/lenses.d.ts +1 -1
  61. package/dist/cli/check/lenses.d.ts.map +1 -1
  62. package/dist/cli/check/lenses.js +43 -2
  63. package/dist/cli/check/lenses.js.map +1 -1
  64. package/dist/cli/check/relations.d.ts.map +1 -1
  65. package/dist/cli/check/relations.js +2 -1
  66. package/dist/cli/check/relations.js.map +1 -1
  67. package/dist/cli/check.d.ts.map +1 -1
  68. package/dist/cli/check.js +7 -4
  69. package/dist/cli/check.js.map +1 -1
  70. package/dist/cli/describe.d.ts.map +1 -1
  71. package/dist/cli/describe.js +44 -3
  72. package/dist/cli/describe.js.map +1 -1
  73. package/dist/cli/docs.d.ts.map +1 -1
  74. package/dist/cli/docs.js +4 -3
  75. package/dist/cli/docs.js.map +1 -1
  76. package/dist/cli/types.d.ts.map +1 -1
  77. package/dist/cli/types.js +10 -1
  78. package/dist/cli/types.js.map +1 -1
  79. package/dist/clock-readers.d.ts +18 -0
  80. package/dist/clock-readers.d.ts.map +1 -0
  81. package/dist/clock-readers.js +70 -0
  82. package/dist/clock-readers.js.map +1 -0
  83. package/dist/clock.d.ts +30 -0
  84. package/dist/clock.d.ts.map +1 -0
  85. package/dist/clock.js +41 -0
  86. package/dist/clock.js.map +1 -0
  87. package/dist/columns.d.ts.map +1 -1
  88. package/dist/columns.js +2 -1
  89. package/dist/columns.js.map +1 -1
  90. package/dist/conformance/fixtures.d.ts.map +1 -1
  91. package/dist/conformance/fixtures.js +326 -43
  92. package/dist/conformance/fixtures.js.map +1 -1
  93. package/dist/days.d.ts +53 -4
  94. package/dist/days.d.ts.map +1 -1
  95. package/dist/days.js +136 -16
  96. package/dist/days.js.map +1 -1
  97. package/dist/describe.d.ts +1 -0
  98. package/dist/describe.d.ts.map +1 -1
  99. package/dist/describe.js +1 -0
  100. package/dist/describe.js.map +1 -1
  101. package/dist/document/act-findings.d.ts.map +1 -1
  102. package/dist/document/act-findings.js +13 -3
  103. package/dist/document/act-findings.js.map +1 -1
  104. package/dist/document/amount.d.ts +4 -0
  105. package/dist/document/amount.d.ts.map +1 -0
  106. package/dist/document/amount.js +22 -0
  107. package/dist/document/amount.js.map +1 -0
  108. package/dist/document/block-context.d.ts.map +1 -1
  109. package/dist/document/block-context.js +1 -0
  110. package/dist/document/block-context.js.map +1 -1
  111. package/dist/document/blocks.d.ts +13 -3
  112. package/dist/document/blocks.d.ts.map +1 -1
  113. package/dist/document/blocks.js +56 -12
  114. package/dist/document/blocks.js.map +1 -1
  115. package/dist/document/compile-checked.d.ts.map +1 -1
  116. package/dist/document/compile-checked.js +3 -2
  117. package/dist/document/compile-checked.js.map +1 -1
  118. package/dist/document/compile.d.ts.map +1 -1
  119. package/dist/document/compile.js +30 -7
  120. package/dist/document/compile.js.map +1 -1
  121. package/dist/document/compiled.d.ts +4 -2
  122. package/dist/document/compiled.d.ts.map +1 -1
  123. package/dist/document/compiled.js +52 -21
  124. package/dist/document/compiled.js.map +1 -1
  125. package/dist/document/describe-coverage.d.ts.map +1 -1
  126. package/dist/document/describe-coverage.js +2 -1
  127. package/dist/document/describe-coverage.js.map +1 -1
  128. package/dist/document/describe-place.d.ts +6 -2
  129. package/dist/document/describe-place.d.ts.map +1 -1
  130. package/dist/document/describe-place.js +14 -8
  131. package/dist/document/describe-place.js.map +1 -1
  132. package/dist/document/diff.d.ts +2 -0
  133. package/dist/document/diff.d.ts.map +1 -1
  134. package/dist/document/diff.js +78 -7
  135. package/dist/document/diff.js.map +1 -1
  136. package/dist/document/durations.d.ts +8 -0
  137. package/dist/document/durations.d.ts.map +1 -0
  138. package/dist/document/durations.js +82 -0
  139. package/dist/document/durations.js.map +1 -0
  140. package/dist/document/edit.d.ts +1 -1
  141. package/dist/document/edit.d.ts.map +1 -1
  142. package/dist/document/edit.js +434 -34
  143. package/dist/document/edit.js.map +1 -1
  144. package/dist/document/expr/evaluate.d.ts +1 -1
  145. package/dist/document/expr/evaluate.d.ts.map +1 -1
  146. package/dist/document/expr/evaluate.js +17 -4
  147. package/dist/document/expr/evaluate.js.map +1 -1
  148. package/dist/document/field-spec.d.ts.map +1 -1
  149. package/dist/document/field-spec.js +15 -1
  150. package/dist/document/field-spec.js.map +1 -1
  151. package/dist/document/format-findings.d.ts +4 -0
  152. package/dist/document/format-findings.d.ts.map +1 -0
  153. package/dist/document/format-findings.js +39 -0
  154. package/dist/document/format-findings.js.map +1 -0
  155. package/dist/document/format-rules.d.ts +8 -0
  156. package/dist/document/format-rules.d.ts.map +1 -0
  157. package/dist/document/format-rules.js +19 -0
  158. package/dist/document/format-rules.js.map +1 -0
  159. package/dist/document/format-words.d.ts +9 -0
  160. package/dist/document/format-words.d.ts.map +1 -0
  161. package/dist/document/format-words.js +29 -0
  162. package/dist/document/format-words.js.map +1 -0
  163. package/dist/document/graview-template.d.ts +2 -2
  164. package/dist/document/migrate.d.ts +1 -0
  165. package/dist/document/migrate.d.ts.map +1 -1
  166. package/dist/document/migrate.js +45 -1
  167. package/dist/document/migrate.js.map +1 -1
  168. package/dist/document/money.d.ts +14 -0
  169. package/dist/document/money.d.ts.map +1 -0
  170. package/dist/document/money.js +14 -0
  171. package/dist/document/money.js.map +1 -0
  172. package/dist/document/policy-words.d.ts +33 -0
  173. package/dist/document/policy-words.d.ts.map +1 -0
  174. package/dist/document/policy-words.js +69 -0
  175. package/dist/document/policy-words.js.map +1 -0
  176. package/dist/document/rule-line.d.ts.map +1 -1
  177. package/dist/document/rule-line.js +16 -12
  178. package/dist/document/rule-line.js.map +1 -1
  179. package/dist/document/rules.d.ts.map +1 -1
  180. package/dist/document/rules.js +6 -5
  181. package/dist/document/rules.js.map +1 -1
  182. package/dist/document/schema.d.ts +62 -19
  183. package/dist/document/schema.d.ts.map +1 -1
  184. package/dist/document/schema.js +30 -4
  185. package/dist/document/schema.js.map +1 -1
  186. package/dist/document/template-parse.d.ts.map +1 -1
  187. package/dist/document/template-parse.js +9 -2
  188. package/dist/document/template-parse.js.map +1 -1
  189. package/dist/document/template.d.ts +3 -13
  190. package/dist/document/template.d.ts.map +1 -1
  191. package/dist/document/template.js +27 -28
  192. package/dist/document/template.js.map +1 -1
  193. package/dist/document/thumbnail.d.ts.map +1 -1
  194. package/dist/document/thumbnail.js +4 -3
  195. package/dist/document/thumbnail.js.map +1 -1
  196. package/dist/document/to-document.d.ts +0 -1
  197. package/dist/document/to-document.d.ts.map +1 -1
  198. package/dist/document/to-document.js +19 -2
  199. package/dist/document/to-document.js.map +1 -1
  200. package/dist/document/view-specs.d.ts.map +1 -1
  201. package/dist/document/view-specs.js +3 -0
  202. package/dist/document/view-specs.js.map +1 -1
  203. package/dist/document/views.d.ts +2 -0
  204. package/dist/document/views.d.ts.map +1 -1
  205. package/dist/document/views.js +18 -6
  206. package/dist/document/views.js.map +1 -1
  207. package/dist/document.schema.json +63 -6
  208. package/dist/excerpt-of.d.ts +14 -0
  209. package/dist/excerpt-of.d.ts.map +1 -0
  210. package/dist/excerpt-of.js +120 -0
  211. package/dist/excerpt-of.js.map +1 -0
  212. package/dist/excerpt.d.ts +9 -0
  213. package/dist/excerpt.d.ts.map +1 -0
  214. package/dist/excerpt.js +43 -0
  215. package/dist/excerpt.js.map +1 -0
  216. package/dist/field-sight.d.ts +33 -0
  217. package/dist/field-sight.d.ts.map +1 -0
  218. package/dist/field-sight.js +313 -0
  219. package/dist/field-sight.js.map +1 -0
  220. package/dist/forms.d.ts +1 -0
  221. package/dist/forms.d.ts.map +1 -1
  222. package/dist/forms.js +1 -0
  223. package/dist/forms.js.map +1 -1
  224. package/dist/graph/archived.d.ts +25 -0
  225. package/dist/graph/archived.d.ts.map +1 -0
  226. package/dist/graph/archived.js +16 -0
  227. package/dist/graph/archived.js.map +1 -0
  228. package/dist/graph/diff.d.ts.map +1 -1
  229. package/dist/graph/diff.js +2 -1
  230. package/dist/graph/diff.js.map +1 -1
  231. package/dist/graph/graph.d.ts +37 -13
  232. package/dist/graph/graph.d.ts.map +1 -1
  233. package/dist/graph/graph.js +86 -40
  234. package/dist/graph/graph.js.map +1 -1
  235. package/dist/graph/tracked.d.ts +8 -8
  236. package/dist/graph/tracked.d.ts.map +1 -1
  237. package/dist/graph/tracked.js +15 -20
  238. package/dist/graph/tracked.js.map +1 -1
  239. package/dist/graph/types.d.ts +16 -8
  240. package/dist/graph/types.d.ts.map +1 -1
  241. package/dist/graph/types.js.map +1 -1
  242. package/dist/import/coerce.d.ts +45 -0
  243. package/dist/import/coerce.d.ts.map +1 -0
  244. package/dist/import/coerce.js +252 -0
  245. package/dist/import/coerce.js.map +1 -0
  246. package/dist/import/csv.d.ts +16 -0
  247. package/dist/import/csv.d.ts.map +1 -0
  248. package/dist/import/csv.js +77 -0
  249. package/dist/import/csv.js.map +1 -0
  250. package/dist/import/index.d.ts +17 -0
  251. package/dist/import/index.d.ts.map +1 -0
  252. package/dist/import/index.js +13 -0
  253. package/dist/import/index.js.map +1 -0
  254. package/dist/import/mapping.d.ts +99 -0
  255. package/dist/import/mapping.d.ts.map +1 -0
  256. package/dist/import/mapping.js +182 -0
  257. package/dist/import/mapping.js.map +1 -0
  258. package/dist/import/rows.d.ts +116 -0
  259. package/dist/import/rows.d.ts.map +1 -0
  260. package/dist/import/rows.js +584 -0
  261. package/dist/import/rows.js.map +1 -0
  262. package/dist/index.d.ts +38 -21
  263. package/dist/index.d.ts.map +1 -1
  264. package/dist/index.js +27 -16
  265. package/dist/index.js.map +1 -1
  266. package/dist/invariants/engine.d.ts +5 -1
  267. package/dist/invariants/engine.d.ts.map +1 -1
  268. package/dist/invariants/engine.js +4 -3
  269. package/dist/invariants/engine.js.map +1 -1
  270. package/dist/invariants/types.d.ts +18 -3
  271. package/dist/invariants/types.d.ts.map +1 -1
  272. package/dist/json-schema.d.ts +1 -0
  273. package/dist/json-schema.d.ts.map +1 -1
  274. package/dist/json-schema.js +2 -0
  275. package/dist/json-schema.js.map +1 -1
  276. package/dist/labels.d.ts.map +1 -1
  277. package/dist/labels.js +2 -1
  278. package/dist/labels.js.map +1 -1
  279. package/dist/lines.d.ts +1 -0
  280. package/dist/lines.d.ts.map +1 -1
  281. package/dist/lines.js +5 -3
  282. package/dist/lines.js.map +1 -1
  283. package/dist/markdown.d.ts +102 -0
  284. package/dist/markdown.d.ts.map +1 -0
  285. package/dist/markdown.js +460 -0
  286. package/dist/markdown.js.map +1 -0
  287. package/dist/mutations/arg-shape.d.ts +95 -0
  288. package/dist/mutations/arg-shape.d.ts.map +1 -0
  289. package/dist/mutations/arg-shape.js +101 -0
  290. package/dist/mutations/arg-shape.js.map +1 -0
  291. package/dist/mutations/define-mutation.d.ts +48 -2
  292. package/dist/mutations/define-mutation.d.ts.map +1 -1
  293. package/dist/mutations/define-mutation.js +103 -36
  294. package/dist/mutations/define-mutation.js.map +1 -1
  295. package/dist/mutations/derive-edits.d.ts +16 -1
  296. package/dist/mutations/derive-edits.d.ts.map +1 -1
  297. package/dist/mutations/derive-edits.js +67 -28
  298. package/dist/mutations/derive-edits.js.map +1 -1
  299. package/dist/mutations/derive-repeats.d.ts +8 -0
  300. package/dist/mutations/derive-repeats.d.ts.map +1 -0
  301. package/dist/mutations/derive-repeats.js +118 -0
  302. package/dist/mutations/derive-repeats.js.map +1 -0
  303. package/dist/mutations/derived-names.d.ts +20 -0
  304. package/dist/mutations/derived-names.d.ts.map +1 -0
  305. package/dist/mutations/derived-names.js +19 -0
  306. package/dist/mutations/derived-names.js.map +1 -0
  307. package/dist/mutations/form.d.ts +21 -1
  308. package/dist/mutations/form.d.ts.map +1 -1
  309. package/dist/mutations/form.js +19 -2
  310. package/dist/mutations/form.js.map +1 -1
  311. package/dist/mutations/invalid-arguments.d.ts +14 -0
  312. package/dist/mutations/invalid-arguments.d.ts.map +1 -0
  313. package/dist/mutations/invalid-arguments.js +18 -0
  314. package/dist/mutations/invalid-arguments.js.map +1 -0
  315. package/dist/mutations/keep-link.d.ts +27 -0
  316. package/dist/mutations/keep-link.d.ts.map +1 -0
  317. package/dist/mutations/keep-link.js +56 -0
  318. package/dist/mutations/keep-link.js.map +1 -0
  319. package/dist/mutations/kept-arguments.d.ts +26 -0
  320. package/dist/mutations/kept-arguments.d.ts.map +1 -0
  321. package/dist/mutations/kept-arguments.js +77 -0
  322. package/dist/mutations/kept-arguments.js.map +1 -0
  323. package/dist/mutations/node-ref.d.ts +0 -80
  324. package/dist/mutations/node-ref.d.ts.map +1 -1
  325. package/dist/mutations/node-ref.js +0 -93
  326. package/dist/mutations/node-ref.js.map +1 -1
  327. package/dist/mutations/types.d.ts +17 -1
  328. package/dist/mutations/types.d.ts.map +1 -1
  329. package/dist/mutations/words.d.ts +0 -13
  330. package/dist/mutations/words.d.ts.map +1 -1
  331. package/dist/mutations/words.js +1 -12
  332. package/dist/mutations/words.js.map +1 -1
  333. package/dist/ops/kept-fields.d.ts +7 -0
  334. package/dist/ops/kept-fields.d.ts.map +1 -0
  335. package/dist/ops/kept-fields.js +24 -0
  336. package/dist/ops/kept-fields.js.map +1 -0
  337. package/dist/ops/lineage.d.ts +37 -0
  338. package/dist/ops/lineage.d.ts.map +1 -0
  339. package/dist/ops/lineage.js +26 -0
  340. package/dist/ops/lineage.js.map +1 -0
  341. package/dist/ops/log.d.ts.map +1 -1
  342. package/dist/ops/log.js +1 -0
  343. package/dist/ops/log.js.map +1 -1
  344. package/dist/ops/provenance.d.ts +68 -0
  345. package/dist/ops/provenance.d.ts.map +1 -0
  346. package/dist/ops/provenance.js +83 -0
  347. package/dist/ops/provenance.js.map +1 -0
  348. package/dist/ops/types.d.ts +25 -0
  349. package/dist/ops/types.d.ts.map +1 -1
  350. package/dist/ops/withheld.d.ts +25 -2
  351. package/dist/ops/withheld.d.ts.map +1 -1
  352. package/dist/ops/withheld.js +6 -15
  353. package/dist/ops/withheld.js.map +1 -1
  354. package/dist/permissions/policy.d.ts +6 -1
  355. package/dist/permissions/policy.d.ts.map +1 -1
  356. package/dist/permissions/policy.js +31 -11
  357. package/dist/permissions/policy.js.map +1 -1
  358. package/dist/permissions/sight.d.ts +40 -2
  359. package/dist/permissions/sight.d.ts.map +1 -1
  360. package/dist/permissions/sight.js +25 -2
  361. package/dist/permissions/sight.js.map +1 -1
  362. package/dist/permissions/types.d.ts +21 -0
  363. package/dist/permissions/types.d.ts.map +1 -1
  364. package/dist/permissions/types.js.map +1 -1
  365. package/dist/places.d.ts +0 -49
  366. package/dist/places.d.ts.map +1 -1
  367. package/dist/places.js +2 -141
  368. package/dist/places.js.map +1 -1
  369. package/dist/provenance.d.ts +14 -0
  370. package/dist/provenance.d.ts.map +1 -0
  371. package/dist/provenance.js +13 -0
  372. package/dist/provenance.js.map +1 -0
  373. package/dist/repeat-words.d.ts +13 -0
  374. package/dist/repeat-words.d.ts.map +1 -0
  375. package/dist/repeat-words.js +56 -0
  376. package/dist/repeat-words.js.map +1 -0
  377. package/dist/repeat.d.ts +59 -0
  378. package/dist/repeat.d.ts.map +1 -0
  379. package/dist/repeat.js +155 -0
  380. package/dist/repeat.js.map +1 -0
  381. package/dist/scaffold/project.d.ts.map +1 -1
  382. package/dist/scaffold/project.js +13 -0
  383. package/dist/scaffold/project.js.map +1 -1
  384. package/dist/scaffold/ui.js +2 -2
  385. package/dist/scene-districts.d.ts +2 -1
  386. package/dist/scene-districts.d.ts.map +1 -1
  387. package/dist/scene-districts.js +2 -1
  388. package/dist/scene-districts.js.map +1 -1
  389. package/dist/scene.d.ts +4 -2
  390. package/dist/scene.d.ts.map +1 -1
  391. package/dist/scene.js +2 -1
  392. package/dist/scene.js.map +1 -1
  393. package/dist/schema/amount-mark.d.ts +13 -0
  394. package/dist/schema/amount-mark.d.ts.map +1 -0
  395. package/dist/schema/amount-mark.js +20 -0
  396. package/dist/schema/amount-mark.js.map +1 -0
  397. package/dist/schema/amount-words.d.ts +12 -0
  398. package/dist/schema/amount-words.d.ts.map +1 -0
  399. package/dist/schema/amount-words.js +31 -0
  400. package/dist/schema/amount-words.js.map +1 -0
  401. package/dist/schema/app-link-field.d.ts +4 -0
  402. package/dist/schema/app-link-field.d.ts.map +1 -0
  403. package/dist/schema/app-link-field.js +19 -0
  404. package/dist/schema/app-link-field.js.map +1 -0
  405. package/dist/schema/app-link.d.ts +41 -0
  406. package/dist/schema/app-link.d.ts.map +1 -0
  407. package/dist/schema/app-link.js +40 -0
  408. package/dist/schema/app-link.js.map +1 -0
  409. package/dist/schema/define-node.d.ts +25 -94
  410. package/dist/schema/define-node.d.ts.map +1 -1
  411. package/dist/schema/define-node.js +3 -247
  412. package/dist/schema/define-node.js.map +1 -1
  413. package/dist/schema/field-words.d.ts +45 -0
  414. package/dist/schema/field-words.d.ts.map +1 -0
  415. package/dist/schema/field-words.js +124 -0
  416. package/dist/schema/field-words.js.map +1 -0
  417. package/dist/schema/json-schema.d.ts +6 -1
  418. package/dist/schema/json-schema.d.ts.map +1 -1
  419. package/dist/schema/json-schema.js +83 -2
  420. package/dist/schema/json-schema.js.map +1 -1
  421. package/dist/schema/markdown-field.d.ts +4 -0
  422. package/dist/schema/markdown-field.d.ts.map +1 -0
  423. package/dist/schema/markdown-field.js +20 -0
  424. package/dist/schema/markdown-field.js.map +1 -0
  425. package/dist/schema/markdown.d.ts +6 -0
  426. package/dist/schema/markdown.d.ts.map +1 -0
  427. package/dist/schema/markdown.js +27 -0
  428. package/dist/schema/markdown.js.map +1 -0
  429. package/dist/schema/reading.d.ts +86 -0
  430. package/dist/schema/reading.d.ts.map +1 -0
  431. package/dist/schema/reading.js +270 -0
  432. package/dist/schema/reading.js.map +1 -0
  433. package/dist/schema/repeat-field.d.ts +5 -0
  434. package/dist/schema/repeat-field.d.ts.map +1 -0
  435. package/dist/schema/repeat-field.js +20 -0
  436. package/dist/schema/repeat-field.js.map +1 -0
  437. package/dist/schema/schema.d.ts.map +1 -1
  438. package/dist/schema/schema.js +5 -1
  439. package/dist/schema/schema.js.map +1 -1
  440. package/dist/schema/to-json-schema.d.ts +14 -0
  441. package/dist/schema/to-json-schema.d.ts.map +1 -0
  442. package/dist/schema/to-json-schema.js +616 -0
  443. package/dist/schema/to-json-schema.js.map +1 -0
  444. package/dist/schema/typed-field-builders.d.ts +8 -0
  445. package/dist/schema/typed-field-builders.d.ts.map +1 -0
  446. package/dist/schema/typed-field-builders.js +30 -0
  447. package/dist/schema/typed-field-builders.js.map +1 -0
  448. package/dist/schema/typed-field-of.d.ts +4 -0
  449. package/dist/schema/typed-field-of.d.ts.map +1 -0
  450. package/dist/schema/typed-field-of.js +14 -0
  451. package/dist/schema/typed-field-of.js.map +1 -0
  452. package/dist/schema/typed-fields.d.ts +11 -0
  453. package/dist/schema/typed-fields.d.ts.map +1 -0
  454. package/dist/schema/typed-fields.js +16 -0
  455. package/dist/schema/typed-fields.js.map +1 -0
  456. package/dist/schema/types.d.ts +14 -0
  457. package/dist/schema/types.d.ts.map +1 -1
  458. package/dist/schema/value-words.d.ts +21 -0
  459. package/dist/schema/value-words.d.ts.map +1 -0
  460. package/dist/schema/value-words.js +32 -0
  461. package/dist/schema/value-words.js.map +1 -0
  462. package/dist/search.d.ts +91 -4
  463. package/dist/search.d.ts.map +1 -1
  464. package/dist/search.js +290 -59
  465. package/dist/search.js.map +1 -1
  466. package/dist/seat.d.ts +19 -0
  467. package/dist/seat.d.ts.map +1 -0
  468. package/dist/seat.js +19 -0
  469. package/dist/seat.js.map +1 -0
  470. package/dist/seen.d.ts +15 -33
  471. package/dist/seen.d.ts.map +1 -1
  472. package/dist/seen.js +44 -135
  473. package/dist/seen.js.map +1 -1
  474. package/dist/store.d.ts +46 -1
  475. package/dist/store.d.ts.map +1 -1
  476. package/dist/store.js +121 -22
  477. package/dist/store.js.map +1 -1
  478. package/dist/theme/types.d.ts +7 -1
  479. package/dist/theme/types.d.ts.map +1 -1
  480. package/dist/theme/types.js.map +1 -1
  481. package/dist/typed.d.ts +12 -3
  482. package/dist/typed.d.ts.map +1 -1
  483. package/dist/typed.js.map +1 -1
  484. package/dist/validate-graph.d.ts.map +1 -1
  485. package/dist/validate-graph.js +3 -10
  486. package/dist/validate-graph.js.map +1 -1
  487. package/dist/version.d.ts +1 -1
  488. package/dist/version.js +1 -1
  489. package/dist/views/types.d.ts +57 -8
  490. package/dist/views/types.d.ts.map +1 -1
  491. package/dist/views/types.js +22 -3
  492. package/dist/views/types.js.map +1 -1
  493. package/dist/village.d.ts +63 -0
  494. package/dist/village.d.ts.map +1 -0
  495. package/dist/village.js +143 -0
  496. package/dist/village.js.map +1 -0
  497. package/dist/watched.d.ts +12 -45
  498. package/dist/watched.d.ts.map +1 -1
  499. package/dist/watched.js +7 -119
  500. package/dist/watched.js.map +1 -1
  501. package/dist/words.d.ts +33 -0
  502. package/dist/words.d.ts.map +1 -0
  503. package/dist/words.js +36 -0
  504. package/dist/words.js.map +1 -0
  505. package/package.json +37 -2
@@ -0,0 +1,143 @@
1
+ const byId = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
2
+ /*
3
+ * WHAT STANDS ON THE GROUND: the roads between the plots, and the blocks on
4
+ * each — a module of its own beside the map (`city.ts`), because the scene
5
+ * fetches the ground only when it first rises, and the map is laid out
6
+ * before it does.
7
+ */
8
+ /** The roads between placed kinds: one per pair joined by any declared edge. */
9
+ export function roadsOf(schema, map) {
10
+ const kinds = [...map.keys()].sort(byId);
11
+ const roads = [];
12
+ for (let i = 0; i < kinds.length; i++) {
13
+ for (let j = i + 1; j < kinds.length; j++) {
14
+ const a = kinds[i];
15
+ const b = kinds[j];
16
+ const edges = [];
17
+ for (const [from, to] of [
18
+ [a, b],
19
+ [b, a],
20
+ ]) {
21
+ const definition = schema.tryDefinition(from);
22
+ for (const [name, declaration] of Object.entries(definition?.edges ?? {})) {
23
+ const targets = declaration.to === "*" ? schema.kinds : declaration.to;
24
+ if (targets.includes(to))
25
+ edges.push(name);
26
+ }
27
+ }
28
+ if (edges.length > 0)
29
+ roads.push({ from: a, to: b, edges });
30
+ }
31
+ }
32
+ return roads;
33
+ }
34
+ /*
35
+ * THE VILLAGE ON A PLOT. From altitude a district stands one building per
36
+ * member on its plot's own sub-lattice. Pure arithmetic on the map, so it
37
+ * lives with the map: the scene draws it, and so does a picture of an app
38
+ * drawn without a browser.
39
+ */
40
+ /** The most buildings a plot of this side holds: a sub-lattice of side+1 to a side, minus the square in the middle. */
41
+ export function villageCap(side) {
42
+ const n = side + 1;
43
+ return n * n - squareCells(n).length;
44
+ }
45
+ /** The sub-cells of an n×n sub-lattice that make the village square: the middle one, or the middle four; a 2×2 has no room for one. */
46
+ function squareCells(n) {
47
+ if (n < 3)
48
+ return [];
49
+ if (n % 2 === 1) {
50
+ const mid = (n - 1) / 2;
51
+ return [[mid, mid]];
52
+ }
53
+ const a = n / 2 - 1;
54
+ const b = n / 2;
55
+ return [
56
+ [a, a],
57
+ [b, a],
58
+ [a, b],
59
+ [b, b],
60
+ ];
61
+ }
62
+ /** A stable number in [0, 1) from an id, so a village is not a barracks and does not reshuffle on every render. */
63
+ export function heightOf(id) {
64
+ let h = 2166136261;
65
+ for (let i = 0; i < id.length; i++)
66
+ h = Math.imul(h ^ id.charCodeAt(i), 16777619);
67
+ return ((h >>> 0) % 1000) / 1000;
68
+ }
69
+ /**
70
+ * WHERE THE MEMBERS STAND. One building per member on the plot's own
71
+ * sub-lattice, back to front so the near ones are drawn last; the middle
72
+ * of the plot is the village square, where the nameplate and the kind's
73
+ * landmark stand, so no building is under them. Past the cap the rest are
74
+ * a number on the curb.
75
+ */
76
+ export function villageOf(plot, memberIds) {
77
+ const n = plot.side + 1;
78
+ const square = new Set(squareCells(n).map(([c, r]) => `${c},${r}`));
79
+ const pitch = plot.side / n;
80
+ const cells = [];
81
+ for (let r = 0; r < n; r++)
82
+ for (let c = 0; c < n; c++)
83
+ if (!square.has(`${c},${r}`))
84
+ cells.push([c, r]);
85
+ // Back to front: a smaller col+row is further from the viewer on a 2:1 lattice.
86
+ cells.sort((a, b) => a[0] + a[1] - (b[0] + b[1]) || a[0] - b[0]);
87
+ const shown = memberIds.slice(0, cells.length);
88
+ const buildings = shown.map((id, i) => {
89
+ const [c, r] = cells[i];
90
+ return {
91
+ id,
92
+ col: plot.col + (c + 0.5) * pitch,
93
+ row: plot.row + (r + 0.5) * pitch,
94
+ footprint: pitch * 0.62,
95
+ height: 0.55 + heightOf(id) * 0.7,
96
+ };
97
+ });
98
+ return { buildings, rest: Math.max(0, memberIds.length - shown.length) };
99
+ }
100
+ /** How tall a block of each tier stands, as a share of its footprint: done lies flat. */
101
+ export const TIER_HEIGHT = { done: 0.12, waiting: 0.55, active: 1.05 };
102
+ /**
103
+ * THE BLOCKS ON A PLOT, A ROW PER VALUE. `lanes` holds each row's record
104
+ * ids, back row first; the plot is cut into that many rows across its
105
+ * depth, every block the same size so a row's length is its count, at the
106
+ * largest size the fullest row fits — and never smaller than an eighth of
107
+ * the plot, past which a row is cut and the rest counted where it begins.
108
+ */
109
+ export function districtBlocks(plot, lanes, heights = []) {
110
+ const side = plot.side;
111
+ const depth = side / Math.max(1, lanes.length);
112
+ const most = Math.max(1, ...lanes.map((lane) => lane.length));
113
+ let pitch = depth;
114
+ for (let k = 1; depth / k >= side / 8 - 1e-9; k++) {
115
+ pitch = depth / k;
116
+ if (k * Math.floor(side / pitch + 1e-9) >= most)
117
+ break;
118
+ }
119
+ const deep = Math.max(1, Math.floor(depth / pitch + 1e-9));
120
+ const across = Math.max(1, Math.floor(side / pitch + 1e-9));
121
+ const spread = side / across;
122
+ const blocks = [];
123
+ const rests = [];
124
+ lanes.forEach((ids, lane) => {
125
+ const shown = ids.slice(0, deep * across);
126
+ shown.forEach((id, n) => {
127
+ blocks.push({
128
+ id,
129
+ lane,
130
+ col: plot.col + ((n % across) + 0.5) * spread,
131
+ row: plot.row + lane * depth + (Math.floor(n / across) + 0.5) * pitch,
132
+ footprint: Math.min(spread, pitch) * 0.66,
133
+ height: heights[lane] ?? TIER_HEIGHT.waiting,
134
+ });
135
+ });
136
+ if (ids.length > shown.length)
137
+ rests.push({ lane, count: ids.length - shown.length, col: plot.col - 0.15, row: plot.row + (lane + 0.5) * depth });
138
+ });
139
+ // Back to front: a smaller col+row is further from the viewer.
140
+ blocks.sort((a, b) => a.col + a.row - (b.col + b.row) || a.col - b.col);
141
+ return { blocks, rests };
142
+ }
143
+ //# sourceMappingURL=village.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"village.js","sourceRoot":"","sources":["../src/village.ts"],"names":[],"mappings":"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"}
package/dist/watched.d.ts CHANGED
@@ -10,16 +10,13 @@
10
10
  * then refused, which is an act offered to somebody who may not take it.
11
11
  *
12
12
  * A page is watched when the harness defined `globalThis.__graviewWatch`
13
- * before the app ran. Anywhere else this is one property read.
13
+ * before the app ran. Anywhere else this is one property read. The store
14
+ * hands itself over and the watch works out the names, what a seat may not
15
+ * see and who has signed what — work that was done here, and downloaded by
16
+ * every reader of a hosted page for a harness's sake, until the ninth walk
17
+ * needed the room (the hosted page's budget).
14
18
  */
15
- import type { Policy, Refusal } from "./permissions/types.js";
16
- import type { AnySchema } from "./schema/schema.js";
17
- import type { Principal } from "./permissions/types.js";
18
- /** The declaration's names, and the words it has for them. */
19
- export declare function tellTheWatchItsNames(schema: AnySchema, mutations: Iterable<{
20
- readonly name: string;
21
- readonly title?: string;
22
- }>, policy: Policy | undefined): void;
19
+ import type { Principal, Refusal } from "./permissions/types.js";
23
20
  /**
24
21
  * THE STORE ITSELF, for a harness that measures whether a person got a job
25
22
  * done (`scripts/verify-journeys.mjs`). It drives the page as a person
@@ -32,41 +29,11 @@ export declare function tellTheWatchOfAnAuthor(id: string | undefined): void;
32
29
  /** A press reached the store and the policy refused it. */
33
30
  export declare function tellTheWatchOfARefusal(refusal: Refusal, author: string | undefined): void;
34
31
  /**
35
- * WHAT THIS SEAT MAY NOT SEE, for a watching harness to hold every screen
36
- * to: the names (and email addresses) of the records the policy's `sees`
37
- * keeps from it, less any a record it may see shares. A storefront showed
38
- * a stranger every customer by name; the watch says so wherever one is.
32
+ * WHAT THIS SEAT MAY NOT SEE, and who has signed what, for a watching
33
+ * harness to hold every screen to ("shown-what-is-not-theirs"): the store
34
+ * and the seat are handed over, and the watch reads them
35
+ * (`scripts/lib/watch.mjs`), as it reads a store's names. Which surface is
36
+ * telling (`from`): two embeds on one page may sit two different seats down.
39
37
  */
40
- export declare function tellTheWatchWhatIsUnseen(store: {
41
- readonly policy?: {
42
- readonly sees?: readonly unknown[];
43
- };
44
- readonly graph: {
45
- allNodes(): readonly ({
46
- id: string;
47
- kind: string;
48
- } & Record<string, unknown>)[];
49
- };
50
- readonly schema: AnySchema;
51
- sees(principal: Principal, id: string): boolean;
52
- }, principal: Principal,
53
- /** Which surface is telling: two embeds on one page may sit two different seats down. */
54
- from?: string): void;
55
- /**
56
- * WHO HAS AUTHORED, for a watching harness: every author id in the log that
57
- * names no record — a migration ("ship:migration"), a seat — is an
58
- * identifier, and no screen says one.
59
- */
60
- export declare function tellTheWatchItsAuthors(store: {
61
- readonly graph: {
62
- getNode(id: string): unknown;
63
- };
64
- readonly log: {
65
- all(): readonly {
66
- readonly author: {
67
- readonly id?: string;
68
- };
69
- }[];
70
- };
71
- }): void;
38
+ export declare function tellTheWatchWhatIsUnseen(store: unknown, principal: Principal, from?: string): void;
72
39
  //# sourceMappingURL=watched.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"watched.d.ts","sourceRoot":"","sources":["../src/watched.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAWxD,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACvE,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,IAAI,CAsEN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGnE;AAED,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE;IACL,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,IAAI,SAAS,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;KAAE,CAAC;IACpG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD,EACD,SAAS,EAAE,SAAS;AACpB,yFAAyF;AACzF,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAWN;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE;QAAE,GAAG,IAAI,SAAS;YAAE,QAAQ,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;CACnF,GAAG,IAAI,CAKP"}
1
+ {"version":3,"file":"watched.d.ts","sourceRoot":"","sources":["../src/watched.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAWjE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGnE;AAED,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEzF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAElG"}
package/dist/watched.js CHANGED
@@ -1,91 +1,4 @@
1
- import { humanizeField, labelOf } from "./schema/define-node.js";
2
1
  const theWatch = () => globalThis.__graviewWatch;
3
- /** The declaration's names, and the words it has for them. */
4
- export function tellTheWatchItsNames(schema, mutations, policy) {
5
- const watch = theWatch();
6
- if (!watch?.learn)
7
- return;
8
- const ids = [];
9
- const words = [];
10
- /*
11
- * THE KEY'S WORDS WHERE THE DECLARATION HAS ITS OWN. "Vin" over a field
12
- * the kind calls "VIN", "suv" in a picker the record says "SUV" in: a
13
- * single word passes for prose, so these are caught only where they are
14
- * the whole of what is shown.
15
- */
16
- const unsaid = [];
17
- for (const definition of schema.definitions) {
18
- ids.push(definition.kind);
19
- // A kind with a noun of its own is never shown by its id: "vehicle" where the declaration says "car".
20
- if (definition.noun && humanizeField(definition.kind).toLowerCase() !== definition.noun.toLowerCase())
21
- unsaid.push(definition.kind);
22
- const fieldsOf = definition.fields.shape ?? {};
23
- for (const [key, field] of Object.entries(fieldsOf)) {
24
- const declared = definition.display?.labels?.[key];
25
- if (declared !== undefined && humanizeField(key) !== declared)
26
- unsaid.push(humanizeField(key));
27
- const entries = field?.def?.entries;
28
- const format = definition.display?.format?.[key];
29
- for (const value of entries && typeof entries === "object" ? Object.values(entries) : []) {
30
- if (typeof value !== "string")
31
- continue;
32
- ids.push(value);
33
- if (!format)
34
- continue;
35
- const said = format(value);
36
- /*
37
- * The raw value only where the declaration says the same word another
38
- * way ("suv" for "SUV"): a value that is an ordinary word ("open",
39
- * "new") is a word the interface also says, and its spoken form
40
- * ("Mon") one a calendar prints.
41
- */
42
- if (said !== value && said.toLowerCase() === value.toLowerCase())
43
- unsaid.push(value);
44
- }
45
- }
46
- words.push(definition.plural ?? "", definition.noun ?? "", definition.description ?? "");
47
- const shape = definition.fields.shape ?? {};
48
- ids.push(...Object.keys(shape));
49
- for (const label of Object.values(definition.display?.labels ?? {}))
50
- words.push(label);
51
- for (const [name, edge] of Object.entries(definition.edges ?? {})) {
52
- ids.push(name);
53
- // An edge's name spoken ("Drives", "On show at") where it has words of its own ("the test drives booked in it").
54
- if (edge.description || edge.inverse)
55
- unsaid.push(humanizeField(name));
56
- words.push(edge.description ?? "", edge.inverse ?? "");
57
- }
58
- }
59
- for (const mutation of mutations) {
60
- ids.push(mutation.name);
61
- words.push(mutation.title ?? "");
62
- }
63
- for (const grant of policy?.grants ?? [])
64
- if (grant.roles !== "*")
65
- ids.push(...grant.roles);
66
- ids.push(...(policy?.roles ?? []));
67
- // A word one kind declares is never another's key: "Status" is a test drive's own label even where a car says "Availability".
68
- const declared = new Set();
69
- for (const definition of schema.definitions) {
70
- // A kind's own words: what a picker asks for ("Owner") is a noun, not an edge's name.
71
- declared.add(definition.plural ?? "");
72
- declared.add(humanizeField(definition.noun ?? definition.kind));
73
- for (const label of Object.values(definition.display?.labels ?? {}))
74
- declared.add(label);
75
- const fieldsOf = definition.fields.shape ?? {};
76
- for (const [key, field] of Object.entries(fieldsOf)) {
77
- const format = definition.display?.format?.[key];
78
- const entries = field?.def?.entries;
79
- if (!format && !definition.display?.labels?.[key])
80
- declared.add(humanizeField(key));
81
- // A value is said by its format, or spoken plainly where there is none ("Given", a talk's state).
82
- if (entries && typeof entries === "object")
83
- for (const value of Object.values(entries))
84
- declared.add(format ? format(value) : humanizeField(String(value)));
85
- }
86
- }
87
- watch.learn({ ids, words: words.filter(Boolean), unsaid: [...new Set(unsaid)].filter((word) => !declared.has(word)) });
88
- }
89
2
  /**
90
3
  * THE STORE ITSELF, for a harness that measures whether a person got a job
91
4
  * done (`scripts/verify-journeys.mjs`). It drives the page as a person
@@ -106,38 +19,13 @@ export function tellTheWatchOfARefusal(refusal, author) {
106
19
  theWatch()?.refused?.({ ...refusal, ...(author === undefined ? {} : { author }) });
107
20
  }
108
21
  /**
109
- * WHAT THIS SEAT MAY NOT SEE, for a watching harness to hold every screen
110
- * to: the names (and email addresses) of the records the policy's `sees`
111
- * keeps from it, less any a record it may see shares. A storefront showed
112
- * a stranger every customer by name; the watch says so wherever one is.
22
+ * WHAT THIS SEAT MAY NOT SEE, and who has signed what, for a watching
23
+ * harness to hold every screen to ("shown-what-is-not-theirs"): the store
24
+ * and the seat are handed over, and the watch reads them
25
+ * (`scripts/lib/watch.mjs`), as it reads a store's names. Which surface is
26
+ * telling (`from`): two embeds on one page may sit two different seats down.
113
27
  */
114
- export function tellTheWatchWhatIsUnseen(store, principal,
115
- /** Which surface is telling: two embeds on one page may sit two different seats down. */
116
- from) {
117
- const watch = theWatch();
118
- if (!watch?.unseen || !store.policy?.sees?.length)
119
- return;
120
- const unseen = new Set();
121
- const seen = new Set();
122
- for (const node of store.graph.allNodes()) {
123
- const definition = store.schema.tryDefinition(node.kind);
124
- const said = [labelOf(definition, node), ...Object.values(node).filter((value) => typeof value === "string" && /^[^\s@]+@[^\s@]+$/.test(value))];
125
- for (const word of said)
126
- (store.sees(principal, node.id) ? seen : unseen).add(word);
127
- }
128
- watch.unseen({ words: [...unseen].filter((word) => word.length >= 5 && !seen.has(word)), ...(from ? { from } : {}) });
129
- }
130
- /**
131
- * WHO HAS AUTHORED, for a watching harness: every author id in the log that
132
- * names no record — a migration ("ship:migration"), a seat — is an
133
- * identifier, and no screen says one.
134
- */
135
- export function tellTheWatchItsAuthors(store) {
136
- const watch = theWatch();
137
- if (!watch?.learn)
138
- return;
139
- const ids = [...new Set(store.log.all().map((op) => op.author.id).filter((id) => typeof id === "string" && store.graph.getNode(id) === undefined))];
140
- if (ids.length > 0)
141
- watch.learn({ ids, words: [] });
28
+ export function tellTheWatchWhatIsUnseen(store, principal, from) {
29
+ theWatch()?.seat?.(store, principal, from);
142
30
  }
143
31
  //# sourceMappingURL=watched.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watched.js","sourceRoot":"","sources":["../src/watched.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watched.js","sourceRoot":"","sources":["../src/watched.ts"],"names":[],"mappings":"AA2BA,MAAM,QAAQ,GAAG,GAAsB,EAAE,CAAE,UAAyC,CAAC,cAAc,CAAC;AAEpG;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,EAAsB;IAC3D,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO;IAC7B,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,MAA0B;IACjF,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc,EAAE,SAAoB,EAAE,IAAa;IAC1F,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `@graview/core/words` — A RECORD, AN ARGUMENT AND A REFUSAL, SAID.
3
+ *
4
+ * A record read as a person reads it (`readableFields`, `pageSections`,
5
+ * `isLongText`, `describeNode`), two records of one name told apart
6
+ * (`tellApart`), what an argument asks for (`argShape`, `describeArg`), an
7
+ * argument and a refusal in the record's own words (`argumentWords`,
8
+ * `failureWords`), the channel a change came through (`viaSaid`), a
9
+ * field's value and a relation in the declaration's words (`valueWords`,
10
+ * `edgeWords`), and an amount asked for as it is said (`amountBox`,
11
+ * `amountInBox`, `readAmount`).
12
+ *
13
+ * Apart from `@graview/core` because a bundler places a whole file in a
14
+ * page's first chunk when the first chunk can reach it and any chunk uses
15
+ * it (FR-179): each of these is said by a face as it draws a record, a form
16
+ * as it asks, or the seat as it answers — all fetched as they are first
17
+ * drawn or asked — and never by the bar and the frame a page draws first.
18
+ * The types (`ReadableField`, `FieldSection`, `ArgShape`) stay on
19
+ * `@graview/core`.
20
+ */
21
+ export { describeNode, isLongText, pageSections, readableFields, tellApart } from "./schema/reading.js";
22
+ export { argShape, describeArg } from "./mutations/arg-shape.js";
23
+ export { argumentWords, failureWords } from "./mutations/words.js";
24
+ export { viaSaid } from "./via.js";
25
+ export { edgeWords, valueWords } from "./schema/value-words.js";
26
+ export { repeatAsRead, repeatingDateAsRead } from "./repeat-words.js";
27
+ export { excerptOf } from "./excerpt-of.js";
28
+ export { isMarkdownField } from "./schema/markdown.js";
29
+ export { fieldSays, mapsHref, parseDuration, sayDuration, sayPhone, telHref, typedHref, typedWords } from "./schema/field-words.js";
30
+ export { typedFieldOf } from "./schema/typed-field-of.js";
31
+ export { amountBox, amountInBox, readAmount } from "./amount-input.js";
32
+ export type { AmountBox } from "./amount-input.js";
33
+ //# sourceMappingURL=words.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/words.js ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `@graview/core/words` — A RECORD, AN ARGUMENT AND A REFUSAL, SAID.
3
+ *
4
+ * A record read as a person reads it (`readableFields`, `pageSections`,
5
+ * `isLongText`, `describeNode`), two records of one name told apart
6
+ * (`tellApart`), what an argument asks for (`argShape`, `describeArg`), an
7
+ * argument and a refusal in the record's own words (`argumentWords`,
8
+ * `failureWords`), the channel a change came through (`viaSaid`), a
9
+ * field's value and a relation in the declaration's words (`valueWords`,
10
+ * `edgeWords`), and an amount asked for as it is said (`amountBox`,
11
+ * `amountInBox`, `readAmount`).
12
+ *
13
+ * Apart from `@graview/core` because a bundler places a whole file in a
14
+ * page's first chunk when the first chunk can reach it and any chunk uses
15
+ * it (FR-179): each of these is said by a face as it draws a record, a form
16
+ * as it asks, or the seat as it answers — all fetched as they are first
17
+ * drawn or asked — and never by the bar and the frame a page draws first.
18
+ * The types (`ReadableField`, `FieldSection`, `ArgShape`) stay on
19
+ * `@graview/core`.
20
+ */
21
+ export { describeNode, isLongText, pageSections, readableFields, tellApart } from "./schema/reading.js";
22
+ export { argShape, describeArg } from "./mutations/arg-shape.js";
23
+ export { argumentWords, failureWords } from "./mutations/words.js";
24
+ export { viaSaid } from "./via.js";
25
+ export { edgeWords, valueWords } from "./schema/value-words.js";
26
+ // A date that repeats, in words: "Every Tuesday, next Oct 27".
27
+ export { repeatAsRead, repeatingDateAsRead } from "./repeat-words.js";
28
+ // A text's start at a glance, Markdown's syntax taken out (FR-180): what a row, a card, a describe line and a search hit say of prose.
29
+ export { excerptOf } from "./excerpt-of.js";
30
+ // Whether a field is written in Markdown (FR-180), as a record is read.
31
+ export { isMarkdownField } from "./schema/markdown.js";
32
+ // A phone, a place and a duration, said, linked, and read from what was typed.
33
+ export { fieldSays, mapsHref, parseDuration, sayDuration, sayPhone, telHref, typedHref, typedWords } from "./schema/field-words.js";
34
+ export { typedFieldOf } from "./schema/typed-field-of.js";
35
+ export { amountBox, amountInBox, readAmount } from "./amount-input.js";
36
+ //# sourceMappingURL=words.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,+DAA+D;AAC/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtE,uIAAuI;AACvI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,wEAAwE;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graview/core",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -33,6 +33,10 @@
33
33
  "types": "./dist/scene.d.ts",
34
34
  "default": "./dist/scene.js"
35
35
  },
36
+ "./city": {
37
+ "types": "./dist/city.d.ts",
38
+ "default": "./dist/city.js"
39
+ },
36
40
  "./check": {
37
41
  "types": "./dist/check.d.ts",
38
42
  "default": "./dist/check.js"
@@ -45,6 +49,30 @@
45
49
  "types": "./dist/arrange.d.ts",
46
50
  "default": "./dist/arrange.js"
47
51
  },
52
+ "./provenance": {
53
+ "types": "./dist/provenance.d.ts",
54
+ "default": "./dist/provenance.js"
55
+ },
56
+ "./markdown": {
57
+ "types": "./dist/markdown.d.ts",
58
+ "default": "./dist/markdown.js"
59
+ },
60
+ "./words": {
61
+ "types": "./dist/words.d.ts",
62
+ "default": "./dist/words.js"
63
+ },
64
+ "./seat": {
65
+ "types": "./dist/seat.d.ts",
66
+ "default": "./dist/seat.js"
67
+ },
68
+ "./field-sight": {
69
+ "types": "./dist/field-sight.d.ts",
70
+ "default": "./dist/field-sight.js"
71
+ },
72
+ "./search": {
73
+ "types": "./dist/search.d.ts",
74
+ "default": "./dist/search.js"
75
+ },
48
76
  "./forms": {
49
77
  "types": "./dist/forms.d.ts",
50
78
  "default": "./dist/forms.js"
@@ -61,6 +89,10 @@
61
89
  "types": "./dist/sync/index.d.ts",
62
90
  "default": "./dist/sync/index.js"
63
91
  },
92
+ "./import": {
93
+ "types": "./dist/import/index.d.ts",
94
+ "default": "./dist/import/index.js"
95
+ },
64
96
  "./snapshot": {
65
97
  "types": "./dist/snapshot.d.ts",
66
98
  "default": "./dist/snapshot.js"
@@ -119,7 +151,10 @@
119
151
  "dist",
120
152
  "README.md"
121
153
  ],
122
- "sideEffects": false,
154
+ "sideEffects": [
155
+ "./dist/field-sight.js",
156
+ "./src/field-sight.ts"
157
+ ],
123
158
  "repository": {
124
159
  "type": "git",
125
160
  "url": "git+https://github.com/en-dash-consulting/graview.git",