@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
package/dist/search.js CHANGED
@@ -1,10 +1,17 @@
1
1
  import { addressOf } from "./address.js";
2
+ import { isArchived } from "./graph/archived.js";
3
+ import { leftAlone } from "./ops/tidying.js";
2
4
  import { arrangeable, asksForThePast, conditionHolds } from "./arrangement.js";
3
- import { describeArg } from "./mutations/node-ref.js";
4
- import { actTitle, humanizeField, isCurrent, labelOf, pluralLabel, pluralOf as pluralOfKind, readableFields, tellApart } from "./schema/define-node.js";
5
+ import { describeArg } from "./mutations/arg-shape.js";
6
+ import { actTitle, humanizeField, isCurrent, labelOf, pluralLabel, pluralOf as pluralOfKind } from "./schema/define-node.js";
7
+ import { readableFields, tellApart } from "./schema/reading.js";
8
+ import { FIELD_SIGHT } from "./permissions/sight.js";
5
9
  import { hidesFrom, seesId } from "./seen.js";
6
- import { kindPath, placePath, sharesItsName } from "./views/types.js";
10
+ import { kindPath, onePerPicture, placePath, sharesItsName } from "./views/types.js";
7
11
  import { capitalize, listed } from "./capital.js";
12
+ import { markdownWords } from "./excerpt-of.js";
13
+ /** Near hits fill in when the exact record hits are fewer than this. */
14
+ export const NEAR_BELOW = 5;
8
15
  /*
9
16
  * SQUEEZED TEXT. Case, diacritics and punctuation aside — "Café-Noir" and
10
17
  * "cafe noir" are the same words to a person typing. Words stay separate,
@@ -131,7 +138,8 @@ function textsRead(definition, node) {
131
138
  */
132
139
  if (typeof node[field.key] === "boolean")
133
140
  continue;
134
- texts.push({ field: field.key, reading: field.label, text: field.value });
141
+ // Markdown is found by its words and shown as words (FR-180): "**van**" is "van" in a hit's line.
142
+ texts.push({ field: field.key, reading: field.label, text: field.markdown ? markdownWords(field.value) : field.value });
135
143
  }
136
144
  return texts;
137
145
  }
@@ -160,7 +168,154 @@ export function searchableFields(schema, kind) {
160
168
  }
161
169
  return fields;
162
170
  }
163
- const TIER = { exact: 0, prefix: 1, word: 2, part: 3, field: 4 };
171
+ const TIER = { exact: 0, prefix: 1, word: 2, part: 3, field: 4, near: 5 };
172
+ /*
173
+ * NEAR WORDS, WITH NO MODEL. A word typed is near a word of the record when
174
+ * they are one form of a word ("plants", "planted", "planting" are "plant")
175
+ * or one slip apart — a letter missing, extra, wrong or two swapped — in a
176
+ * word of four to seven letters, two in a longer one. A short word is never
177
+ * near another: "van" is not "can". A number is never near another either.
178
+ */
179
+ /** Words a near search does without when others were typed: "the florist" asks for the florist. */
180
+ const SMALL_WORDS = new Set(["a", "an", "the", "of", "and", "or", "for", "to", "in", "on", "at", "by", "with", "my", "our", "is"]);
181
+ /** A word's plain form: plurals, -ing and -ed taken off, and a closing e, so "baked" and "bake" agree. */
182
+ export function stemOf(word) {
183
+ let stem = word;
184
+ if (stem.length > 4 && stem.endsWith("ies"))
185
+ stem = `${stem.slice(0, -3)}y`;
186
+ else if (stem.length > 4 && /(ss|x|ch|sh|z)es$/.test(stem))
187
+ stem = stem.slice(0, -2);
188
+ else if (stem.length > 3 && stem.endsWith("s") && !/(ss|us|is)$/.test(stem))
189
+ stem = stem.slice(0, -1);
190
+ for (const end of ["ing", "ed"]) {
191
+ if (stem.length > end.length + 2 && stem.endsWith(end)) {
192
+ stem = stem.slice(0, -end.length);
193
+ // "running" is "run", "planned" is "plan"; "falling" stays "fall".
194
+ if (/([b-df-hj-km-np-rtv-z])\1$/.test(stem))
195
+ stem = stem.slice(0, -1);
196
+ break;
197
+ }
198
+ }
199
+ return stem.length > 3 && stem.endsWith("e") ? stem.slice(0, -1) : stem;
200
+ }
201
+ /** The slips between two words — insertions, deletions, substitutions and swaps of neighbors — or `most + 1` once it is past `most`. */
202
+ export function slipsBetween(a, b, most) {
203
+ if (Math.abs(a.length - b.length) > most)
204
+ return most + 1;
205
+ let before = [];
206
+ let previous = Array.from({ length: b.length + 1 }, (_, at) => at);
207
+ for (let i = 1; i <= a.length; i++) {
208
+ const row = [i];
209
+ let least = i;
210
+ for (let j = 1; j <= b.length; j++) {
211
+ let slips = Math.min(previous[j] + 1, row[j - 1] + 1, previous[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
212
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1])
213
+ slips = Math.min(slips, before[j - 2] + 1);
214
+ row[j] = slips;
215
+ if (slips < least)
216
+ least = slips;
217
+ }
218
+ if (least > most)
219
+ return most + 1;
220
+ before = previous;
221
+ previous = row;
222
+ }
223
+ return previous[b.length];
224
+ }
225
+ /*
226
+ * Whether one typed word is near one word of a record, kept per typed word:
227
+ * a Find box asks the same word of the same vocabulary on every keystroke
228
+ * that does not change it, and a catalog's vocabulary is the size of its
229
+ * words, not of its records.
230
+ */
231
+ const nearHeld = new Map();
232
+ function nearWord(word, token) {
233
+ let held = nearHeld.get(word);
234
+ if (!held) {
235
+ if (nearHeld.size >= 64)
236
+ nearHeld.clear();
237
+ nearHeld.set(word, (held = new Map()));
238
+ }
239
+ let by = held.get(token);
240
+ if (by === undefined) {
241
+ by = nearWordOnce(word, token) ?? null;
242
+ held.set(token, by);
243
+ }
244
+ return by ?? undefined;
245
+ }
246
+ function nearWordOnce(word, token) {
247
+ if (/\d/.test(word))
248
+ return undefined;
249
+ const stem = stemOf(word);
250
+ if (stem.length >= 3 && (stemOf(token) === stem || (stem.length >= 4 && token.startsWith(stem))))
251
+ return "stem";
252
+ const most = word.length < 4 ? 0 : word.length <= 7 ? 1 : 2;
253
+ if (most === 0)
254
+ return undefined;
255
+ if (slipsBetween(word, token, most) <= most)
256
+ return "spelling";
257
+ // A slip in a word still being typed: "flowr" is the start of "flowers".
258
+ if (word.length >= 5) {
259
+ for (let length = word.length - most; length <= word.length + most; length++) {
260
+ if (length < token.length && slipsBetween(word, token.slice(0, length), most) <= most)
261
+ return "spelling";
262
+ }
263
+ }
264
+ return undefined;
265
+ }
266
+ /**
267
+ * Whether a record is near the words: every word typed (the small ones
268
+ * aside, when there are others) found on it as typed or near, at least one
269
+ * of them near. The why names the first near one — the word typed, the
270
+ * record's word that answered it, the field it is in.
271
+ */
272
+ function nearNode(texts, asked) {
273
+ const words = asked.length > 1 ? asked.filter((word) => !SMALL_WORDS.has(word)) : asked;
274
+ if (words.length === 0)
275
+ return undefined;
276
+ let first;
277
+ for (const word of words) {
278
+ let found;
279
+ for (const text of texts) {
280
+ for (const token of foldedOf(text.text).tokens) {
281
+ if (token.startsWith(word)) {
282
+ found = { text, matched: token };
283
+ break;
284
+ }
285
+ const by = found ? undefined : nearWord(word, token);
286
+ if (by)
287
+ found = { text, matched: token, by };
288
+ }
289
+ if (found && !found.by)
290
+ break;
291
+ }
292
+ if (!found)
293
+ return undefined;
294
+ if (found.by && !first)
295
+ first = { text: found.text, asked: word, matched: found.matched, by: found.by };
296
+ }
297
+ if (!first)
298
+ return undefined;
299
+ return { field: first.text.field, reading: first.text.reading, fragment: fragmentOf(first.text.text, [first.matched]), strength: "near", asked: first.asked, matched: first.matched, by: first.by };
300
+ }
301
+ /** The most characters of a ranker's `matched` a hit says: "flowers", not a paragraph. */
302
+ export const MATCHED_MOST = 80;
303
+ /** The why of a hit a host's ranker found: the field carrying the word it named, else the name. */
304
+ function meantBy(texts, words, matched) {
305
+ const asked = tokensOf(words).filter((word) => !SMALL_WORDS.has(word)).join(" ") || words;
306
+ const said = matched === undefined ? [] : tokensOf(matched);
307
+ const text = (said.length > 0 && texts.find((one) => said.every((word) => foldedOf(one.text).tokens.some((token) => token.startsWith(word))))) || texts[0];
308
+ return {
309
+ field: text.field,
310
+ reading: text.reading,
311
+ fragment: fragmentOf(text.text, said),
312
+ strength: "near",
313
+ asked,
314
+ // A host's words, kept to a word or a phrase: the strip says it, and an agent reads it as the host's (`markHits`).
315
+ matched: (matched ?? text.text).slice(0, MATCHED_MOST),
316
+ by: "meaning",
317
+ };
318
+ }
164
319
  /**
165
320
  * Whether a node answers the words, and why.
166
321
  *
@@ -232,8 +387,13 @@ function kindStrength(schema, kind, words) {
232
387
  */
233
388
  let names;
234
389
  const byName = (a, b) => (names ??= new Intl.Collator(undefined, { sensitivity: "base", numeric: true })).compare(a, b);
235
- /** The ranking, as one comparison: how it matched, the kind the person is in, near, current, touched, flagged, alphabetical, id. */
236
- const byRank = (a, b) => a.tier - b.tier ||
390
+ /** The ranking, as one comparison: live before archived, how it matched, the kind the person is in, near, current, touched, flagged, alphabetical, id. */
391
+ const byRank = (a, b) =>
392
+ // A near hit after every exact one, the nearest first.
393
+ (a.nearly ?? 0) - (b.nearly ?? 0) ||
394
+ // An archived record after every live one, however well it matched (FR-173).
395
+ (a.archived ?? 0) - (b.archived ?? 0) ||
396
+ a.tier - b.tier ||
237
397
  a.inKind - b.inKind ||
238
398
  a.near - b.near ||
239
399
  a.past - b.past ||
@@ -266,6 +426,7 @@ export function search(store, query, options = {}) {
266
426
  const isWords = parsed.conditions.filter((condition) => condition.key === "is").map((condition) => condition.value);
267
427
  const past = isWords.includes("any") || isWords.includes("past");
268
428
  const onlyPast = isWords.includes("past") && !isWords.includes("any") && !isWords.includes("current");
429
+ const archived = isWords.includes("archived") ? true : (options.archived ?? "all");
269
430
  const named = (kind, value) => {
270
431
  const asked = squeeze(value);
271
432
  const definition = schema.tryDefinition(kind);
@@ -283,7 +444,7 @@ export function search(store, query, options = {}) {
283
444
  }));
284
445
  const fieldConditions = conditions.filter((condition) => condition.key !== "is");
285
446
  // `is:flagged`, `is:clear` and `is:past` narrow on their own; `is:any` and `is:current` only say which horizon.
286
- const narrowingIs = isWords.filter((word) => word === "flagged" || word === "clear" || word === "past");
447
+ const narrowingIs = isWords.filter((word) => word === "flagged" || word === "clear" || word === "past" || word === "archived");
287
448
  const searched = { kinds, past };
288
449
  const empty = { hits: [], words: parsed.words, conditions, searched, byKind: {}, total: 0, matched: [] };
289
450
  if (words.length === 0 && fieldConditions.length === 0 && narrowingIs.length === 0)
@@ -305,10 +466,44 @@ export function search(store, query, options = {}) {
305
466
  * names a record the seat may not open.
306
467
  */
307
468
  const sighted = hidesFrom(store, principal) ? seesId(store, principal) : undefined;
469
+ // A record some of whose fields its sight keeps is searched as the seat is served it: no hit on what it may not read (Roadmap f-field-sight).
470
+ const served = FIELD_SIGHT.keptFrom?.(store, principal) && store.seenBy(principal).graph;
308
471
  const at = (path) => addressOf(path, options.basePath === undefined ? {} : { basePath: options.basePath });
309
472
  const ctx = { schema, graph: store.graph, flagged, ...(today ? { today } : {}) };
310
473
  const ranked = [];
311
474
  const byKind = {};
475
+ // What passed the seat's sight, the kinds and the conditions but not the words: where near hits are looked for.
476
+ const misses = [];
477
+ // Records behind the horizon the words found, while the search kept to the current: offered when the current are few.
478
+ const behind = [];
479
+ const add = (node, kind, definition, current, why, score) => {
480
+ const label = labelOf(definition, node);
481
+ byKind[kind] = (byKind[kind] ?? 0) + 1;
482
+ ranked.push({
483
+ hit: {
484
+ about: "node",
485
+ id: node.id,
486
+ kind,
487
+ label,
488
+ why,
489
+ current,
490
+ flagged: flagged.has(node.id),
491
+ address: at(`${listPath(definition, kind)}/${encodeURIComponent(node.id)}`),
492
+ ...(score === undefined ? {} : { near: true }),
493
+ ...(isArchived(node) ? { archived: true } : {}),
494
+ },
495
+ ...(score === undefined ? {} : { nearly: 2 - score }),
496
+ tier: TIER[why.strength],
497
+ inKind: kind === options.inKind ? 0 : 1,
498
+ near: near.has(node.id) ? 0 : 1,
499
+ past: current ? 0 : 1,
500
+ archived: isArchived(node) ? 1 : 0,
501
+ touched: -(touched.get(node.id) ?? 0),
502
+ flagged: flagged.has(node.id) ? 0 : 1,
503
+ name: label,
504
+ id: node.id,
505
+ });
506
+ };
312
507
  for (const kind of kinds) {
313
508
  const definition = schema.tryDefinition(kind);
314
509
  const own = conditions.filter((condition) => condition.key !== "is" && condition.admittedBy.includes(kind));
@@ -321,12 +516,22 @@ export function search(store, query, options = {}) {
321
516
  * said "add is:any" — to somebody who had just named the past by name.
322
517
  */
323
518
  const namesThePast = asksForThePast(definition, own);
324
- for (const node of store.graph.nodesOfKind(kind)) {
325
- const current = isCurrent(definition, node, today);
326
- if (!past && !namesThePast && !current)
519
+ for (const whole of store.graph.nodesOfKind(kind, { archived })) {
520
+ if (sighted && !sighted(whole.id))
327
521
  continue;
328
- if (sighted && !sighted(node.id))
522
+ // Read as the seat is served it, when its sight keeps some fields: no hit on a field it may not read (Roadmap f-field-sight).
523
+ const node = served ? served.getNode(whole.id) : whole;
524
+ if (!node)
329
525
  continue;
526
+ const current = isCurrent(definition, node, today);
527
+ if (!past && !namesThePast && !current) {
528
+ if (words.length > 0 && isWords.length === 0 && own.every((condition) => conditionHolds(ctx, node, condition))) {
529
+ const why = matchNode(definition, node, parsed.words);
530
+ if (why)
531
+ behind.push({ node, kind, definition, why });
532
+ }
533
+ continue;
534
+ }
330
535
  if (onlyPast && current)
331
536
  continue;
332
537
  if (!own.every((condition) => conditionHolds(ctx, node, condition)))
@@ -340,21 +545,43 @@ export function search(store, query, options = {}) {
340
545
  : own[0]
341
546
  ? { field: own[0].key, reading: humanizeField(own[0].key), fragment: `${own[0].key}:${own[0].value}`, strength: "field" }
342
547
  : { field: "is", reading: "Is", fragment: `is:${narrowingIs[0]}`, strength: "field" };
548
+ if (why)
549
+ add(node, kind, definition, current, why);
550
+ else if (words.length > 0)
551
+ misses.push({ node, kind, definition, current });
552
+ }
553
+ }
554
+ /*
555
+ * THE PAST, WHEN THE CURRENT IS FEW (the tenth walk). A rescue team has
556
+ * one callout under way and 1,458 behind it; "Find anything" for last
557
+ * March's callout by its place found the one under way, or nothing, and
558
+ * said "add is:any for the past" — the query language, to somebody who
559
+ * typed a name. Where the words find no current record at all, the past
560
+ * ones they find are the answer, each said as past, and the search says it
561
+ * looked there; where any current record answers, the past waits for
562
+ * is:any, as it did.
563
+ */
564
+ let widened = false;
565
+ if (behind.length > 0 && ranked.length === 0) {
566
+ widened = true;
567
+ for (const one of behind)
568
+ add(one.node, one.kind, one.definition, false, one.why);
569
+ }
570
+ /*
571
+ * NEAR, WHEN EXACT IS FEW. A typo or another form of the word finds the
572
+ * record the words meant, after every exact hit and said as near; a host's
573
+ * ranker is asked about the same candidates — only what this seat sees —
574
+ * and what it scores arrives on `later`.
575
+ */
576
+ const nearing = options.near !== false && words.length > 0 && ranked.length < NEAR_BELOW && misses.length > 0;
577
+ const spelled = new Set();
578
+ if (nearing) {
579
+ for (const miss of misses) {
580
+ const why = nearNode(textsOf(miss.definition, miss.node), words);
343
581
  if (!why)
344
582
  continue;
345
- const label = labelOf(definition, node);
346
- byKind[kind] = (byKind[kind] ?? 0) + 1;
347
- ranked.push({
348
- hit: { about: "node", id: node.id, kind, label, why, current, flagged: flagged.has(node.id), address: at(`${listPath(definition, kind)}/${encodeURIComponent(node.id)}`) },
349
- tier: TIER[why.strength],
350
- inKind: kind === options.inKind ? 0 : 1,
351
- near: near.has(node.id) ? 0 : 1,
352
- past: current ? 0 : 1,
353
- touched: -(touched.get(node.id) ?? 0),
354
- flagged: flagged.has(node.id) ? 0 : 1,
355
- name: label,
356
- id: node.id,
357
- });
583
+ spelled.add(miss.node.id);
584
+ add(miss.node, miss.kind, miss.definition, miss.current, why, why.by === "stem" ? 0.9 : 0.8);
358
585
  }
359
586
  }
360
587
  /*
@@ -384,8 +611,9 @@ export function search(store, query, options = {}) {
384
611
  ranked.push(declared({ about: "kind", kind, label, why, count: byKind[kind] ?? 0, address: at(listPath(schema.tryDefinition(kind), kind)) }, match.strength, label, `kind:${kind}`));
385
612
  }
386
613
  const places = options.places ?? [];
387
- for (const place of places) {
388
- if (!kinds.includes(place.kind) || (place.across && kept.has(place.across)))
614
+ // A picture over several kinds is found once, under the first of them this seat searches.
615
+ for (const place of onePerPicture(places.filter((one) => kinds.includes(one.kind)))) {
616
+ if (place.across && kept.has(place.across))
389
617
  continue;
390
618
  const strength = strengthOf(place.title, words);
391
619
  if (!strength)
@@ -410,32 +638,57 @@ export function search(store, query, options = {}) {
410
638
  ranked.push(declared({ about: "rule", name: rule.name, label, ...(scoped ? { kind: scoped } : {}), why }, strength, label, `rule:${rule.name}`));
411
639
  }
412
640
  }
413
- ranked.sort(byRank);
414
- const limit = options.limit ?? 50;
415
- const shown = ranked.slice(0, limit).map((entry) => entry.hit);
416
- /*
417
- * Two hits of one name say what tells them apart — a single and its
418
- * album, both "Blue Hour", by the fact that differs; a song and an album,
419
- * both "Gone Digital", by their nouns. Across kinds too: the strip heads
420
- * each kind, but a row is read alone — by the pointer that lands on it,
421
- * by the screen reader that speaks it — and "Gone Digital, Gone Digital"
422
- * is a choice nobody can make.
423
- */
424
- const alike = shown.flatMap((hit) => (hit.about === "node" ? [store.graph.getNode(hit.id)] : [])).filter(Boolean);
425
- const apart = tellApart(alike, (named) => schema.tryDefinition(named));
426
- const hits = shown.map((hit) => (hit.about === "node" && apart.has(hit.id) ? { ...hit, apart: apart.get(hit.id) } : hit));
427
- const total = Object.values(byKind).reduce((sum, count) => sum + count, 0);
428
- const matched = ranked.flatMap((entry) => (entry.hit.about === "node" ? [entry.hit.id] : []));
429
- const acts = options.subject && kinds.includes(String(store.graph.getNode(options.subject)?.kind)) ? actsOn(store, options.subject, parsed.words, { principal }) : [];
430
- return {
431
- hits: [...hits, ...acts],
432
- words: parsed.words,
433
- conditions,
434
- searched,
435
- byKind,
436
- total,
437
- matched,
641
+ const answer = () => {
642
+ ranked.sort(byRank);
643
+ const limit = options.limit ?? 50;
644
+ const shown = ranked.slice(0, limit).map((entry) => entry.hit);
645
+ /*
646
+ * Two hits of one name say what tells them apart — a single and its
647
+ * album, both "Blue Hour", by the fact that differs; a song and an album,
648
+ * both "Gone Digital", by their nouns. Across kinds too: the strip heads
649
+ * each kind, but a row is read alone — by the pointer that lands on it,
650
+ * by the screen reader that speaks it — and "Gone Digital, Gone Digital"
651
+ * is a choice nobody can make.
652
+ */
653
+ const alike = shown.flatMap((hit) => (hit.about === "node" ? [(served || store.graph).getNode(hit.id)] : [])).filter(Boolean);
654
+ const apart = tellApart(alike, (named) => schema.tryDefinition(named));
655
+ const hits = shown.map((hit) => (hit.about === "node" && apart.has(hit.id) ? { ...hit, apart: apart.get(hit.id) } : hit));
656
+ const total = Object.values(byKind).reduce((sum, count) => sum + count, 0);
657
+ const matched = ranked.flatMap((entry) => (entry.hit.about === "node" ? [entry.hit.id] : []));
658
+ const acts = options.subject && kinds.includes(String(store.graph.getNode(options.subject)?.kind)) ? actsOn(store, options.subject, parsed.words, { principal }) : [];
659
+ return { hits: [...hits, ...acts], words: parsed.words, conditions, searched: widened ? { ...searched, past: true } : searched, byKind: { ...byKind }, total, matched };
438
660
  };
661
+ const first = answer();
662
+ const rank = options.rank;
663
+ if (!nearing || !rank)
664
+ return first;
665
+ const candidates = misses
666
+ .filter((miss) => !spelled.has(miss.node.id))
667
+ .map(({ node, kind, definition }) => ({ id: node.id, kind, label: labelOf(definition, node), texts: textsOf(definition, node) }));
668
+ if (candidates.length === 0)
669
+ return first;
670
+ const later = (async () => {
671
+ let scores;
672
+ try {
673
+ scores = await rank(parsed.words, candidates);
674
+ }
675
+ catch {
676
+ return first;
677
+ }
678
+ const missed = new Map(misses.filter((miss) => !spelled.has(miss.node.id)).map((miss) => [miss.node.id, miss]));
679
+ let added = false;
680
+ for (const { id, score, matched } of Array.isArray(scores) ? scores : []) {
681
+ const miss = missed.get(id);
682
+ // Only a candidate it was handed, once, and only a score that says near.
683
+ if (!miss || !(score > 0))
684
+ continue;
685
+ missed.delete(id);
686
+ added = true;
687
+ add(miss.node, miss.kind, miss.definition, miss.current, meantBy(textsOf(miss.definition, miss.node), parsed.words, typeof matched === "string" ? matched : undefined), Math.min(1, score));
688
+ }
689
+ return added ? answer() : first;
690
+ })();
691
+ return { ...first, later };
439
692
  }
440
693
  /**
441
694
  * WHAT CAN BE DONE ABOUT IT: the acts a seat may run on one record, as
@@ -448,10 +701,11 @@ export function search(store, query, options = {}) {
448
701
  * every keystroke, and has no need to rescan the graph to get it.
449
702
  */
450
703
  export function actsOn(store, subjectId, words, options = {}) {
451
- const subject = store.graph.getNode(subjectId);
704
+ const principal = options.principal ?? { kind: "human" };
705
+ // Its name as the seat is served the record: a label never reads a field kept from it (Roadmap f-field-sight).
706
+ const subject = (FIELD_SIGHT.keptFrom?.(store, principal) ? store.seenBy(principal) : store).graph.getNode(subjectId);
452
707
  if (!subject)
453
708
  return [];
454
- const principal = options.principal ?? { kind: "human" };
455
709
  if (store.kindsKeptFrom(principal).has(subject.kind))
456
710
  return [];
457
711
  const asked = tokensOf(words);
@@ -463,6 +717,15 @@ export function actsOn(store, subjectId, words, options = {}) {
463
717
  continue;
464
718
  if (binding.kinds !== "*" && !binding.kinds.includes(subject.kind))
465
719
  continue;
720
+ // Archive is offered on a live record, "Bring it back" on an archived one, and merge only from a live one (FR-173).
721
+ const act = mutation.derived?.act;
722
+ if ((act === "archive" || act === "merge") && isArchived(subject))
723
+ continue;
724
+ if (act === "unarchive" && !isArchived(subject))
725
+ continue;
726
+ // "Leave this one alone" on a record nobody has said it of, "Allow tidying again" on one somebody has.
727
+ if ((act === "leave-alone" && leftAlone(subject)) || (act === "allow-tidying" && !leftAlone(subject)))
728
+ continue;
466
729
  if (!store.permits({ name: mutation.name, args: { [binding.arg]: subject.id } }, principal).ok)
467
730
  continue;
468
731
  const title = actTitle(mutation);
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Principal } from "./permissions/types.js";
2
+ import type { AnySchema } from "./schema/schema.js";
3
+ import type { Store } from "./store.js";
4
+ /** The store a seat's view is of, and the seat; undefined for a store itself. */
5
+ export declare const seatOf: <S extends AnySchema>(store: Store<S>) => {
6
+ readonly store: Store<S>;
7
+ readonly principal: Principal;
8
+ } | undefined;
9
+ //# sourceMappingURL=seat-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-of.d.ts","sourceRoot":"","sources":["../src/seat-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcxC,iFAAiF;AACjF,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,SAAS,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,SACP,CAAC"}