roamjs-components 0.85.2 → 0.85.4

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 (808) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +29 -29
  3. package/components/AutocompleteInput.d.ts +28 -0
  4. package/components/AutocompleteInput.js +121 -0
  5. package/components/AutocompleteInput.js.map +1 -0
  6. package/components/BlockErrorBoundary.d.ts +15 -0
  7. package/components/BlockErrorBoundary.js +28 -0
  8. package/components/BlockErrorBoundary.js.map +1 -0
  9. package/components/BlockInput.d.ts +13 -0
  10. package/components/BlockInput.js +56 -0
  11. package/components/BlockInput.js.map +1 -0
  12. package/components/ComponentContainer.d.ts +10 -0
  13. package/components/ComponentContainer.js +38 -0
  14. package/components/ComponentContainer.js.map +1 -0
  15. package/components/ConfigPage.d.ts +35 -0
  16. package/components/ConfigPage.js +160 -0
  17. package/components/ConfigPage.js.map +1 -0
  18. package/components/ConfigPanels/BlockPanel.d.ts +3 -0
  19. package/components/ConfigPanels/BlockPanel.js +43 -0
  20. package/components/ConfigPanels/BlockPanel.js.map +1 -0
  21. package/components/ConfigPanels/BlocksPanel.d.ts +3 -0
  22. package/components/ConfigPanels/BlocksPanel.js +69 -0
  23. package/components/ConfigPanels/BlocksPanel.js.map +1 -0
  24. package/components/ConfigPanels/CustomPanel.d.ts +3 -0
  25. package/components/ConfigPanels/CustomPanel.js +25 -0
  26. package/components/ConfigPanels/CustomPanel.js.map +1 -0
  27. package/components/ConfigPanels/FlagPanel.d.ts +3 -0
  28. package/components/ConfigPanels/FlagPanel.js +32 -0
  29. package/components/ConfigPanels/FlagPanel.js.map +1 -0
  30. package/components/ConfigPanels/MultiChildPanel.d.ts +9 -0
  31. package/components/ConfigPanels/MultiChildPanel.js +59 -0
  32. package/components/ConfigPanels/MultiChildPanel.js.map +1 -0
  33. package/components/ConfigPanels/MultiTextPanel.d.ts +3 -0
  34. package/components/ConfigPanels/MultiTextPanel.js +15 -0
  35. package/components/ConfigPanels/MultiTextPanel.js.map +1 -0
  36. package/components/ConfigPanels/NumberPanel.d.ts +3 -0
  37. package/components/ConfigPanels/NumberPanel.js +26 -0
  38. package/components/ConfigPanels/NumberPanel.js.map +1 -0
  39. package/components/ConfigPanels/OauthPanel.d.ts +3 -0
  40. package/components/ConfigPanels/OauthPanel.js +82 -0
  41. package/components/ConfigPanels/OauthPanel.js.map +1 -0
  42. package/components/ConfigPanels/PagesPanel.d.ts +3 -0
  43. package/components/ConfigPanels/PagesPanel.js +12 -0
  44. package/components/ConfigPanels/PagesPanel.js.map +1 -0
  45. package/components/ConfigPanels/SelectPanel.d.ts +3 -0
  46. package/components/ConfigPanels/SelectPanel.js +28 -0
  47. package/components/ConfigPanels/SelectPanel.js.map +1 -0
  48. package/components/ConfigPanels/TextPanel.d.ts +3 -0
  49. package/components/ConfigPanels/TextPanel.js +29 -0
  50. package/components/ConfigPanels/TextPanel.js.map +1 -0
  51. package/components/ConfigPanels/TimePanel.d.ts +3 -0
  52. package/components/ConfigPanels/TimePanel.js +35 -0
  53. package/components/ConfigPanels/TimePanel.js.map +1 -0
  54. package/components/ConfigPanels/getBrandColors.d.ts +7 -0
  55. package/components/ConfigPanels/getBrandColors.js +29 -0
  56. package/components/ConfigPanels/getBrandColors.js.map +1 -0
  57. package/components/ConfigPanels/types.d.ts +84 -0
  58. package/components/ConfigPanels/types.js +3 -0
  59. package/components/ConfigPanels/types.js.map +1 -0
  60. package/components/ConfigPanels/useSingleChildValue.d.ts +13 -0
  61. package/components/ConfigPanels/useSingleChildValue.js +44 -0
  62. package/components/ConfigPanels/useSingleChildValue.js.map +1 -0
  63. package/components/CursorMenu.d.ts +21 -0
  64. package/components/CursorMenu.js +182 -0
  65. package/components/CursorMenu.js.map +1 -0
  66. package/components/Description.d.ts +5 -0
  67. package/components/Description.js +17 -0
  68. package/components/Description.js.map +1 -0
  69. package/components/ExtensionApiContext.d.ts +31 -0
  70. package/components/ExtensionApiContext.js +17 -0
  71. package/components/ExtensionApiContext.js.map +1 -0
  72. package/components/ExternalLogin.d.ts +18 -0
  73. package/components/ExternalLogin.js +142 -0
  74. package/components/ExternalLogin.js.map +1 -0
  75. package/components/Filter.d.ts +15 -0
  76. package/components/Filter.js +143 -0
  77. package/components/Filter.js.map +1 -0
  78. package/components/FormDialog.d.ts +55 -0
  79. package/components/FormDialog.js +224 -0
  80. package/components/FormDialog.js.map +1 -0
  81. package/components/Loading.d.ts +4 -0
  82. package/components/Loading.js +36 -0
  83. package/components/Loading.js.map +1 -0
  84. package/components/MenuItemSelect.d.ts +17 -0
  85. package/components/MenuItemSelect.js +24 -0
  86. package/components/MenuItemSelect.js.map +1 -0
  87. package/components/OauthPanel.d.ts +7 -0
  88. package/components/OauthPanel.js +31 -0
  89. package/components/OauthPanel.js.map +1 -0
  90. package/components/OauthSelect.d.ts +5 -0
  91. package/components/OauthSelect.js +26 -0
  92. package/components/OauthSelect.js.map +1 -0
  93. package/components/PageInput.d.ts +6 -0
  94. package/components/PageInput.js +14 -0
  95. package/components/PageInput.js.map +1 -0
  96. package/components/PageLink.d.ts +6 -0
  97. package/components/PageLink.js +32 -0
  98. package/components/PageLink.js.map +1 -0
  99. package/components/ProgressDialog.d.ts +11 -0
  100. package/components/ProgressDialog.js +61 -0
  101. package/components/ProgressDialog.js.map +1 -0
  102. package/components/SimpleAlert.d.ts +15 -0
  103. package/components/SimpleAlert.js +48 -0
  104. package/components/SimpleAlert.js.map +1 -0
  105. package/components/Toast.d.ts +15 -0
  106. package/components/Toast.js +51 -0
  107. package/components/Toast.js.map +1 -0
  108. package/components/index.d.ts +0 -0
  109. package/components/index.js +5 -0
  110. package/components/index.js.map +1 -0
  111. package/components.d.ts +5 -0
  112. package/components.js +171 -0
  113. package/components.js.map +1 -0
  114. package/date/constants.d.ts +3 -0
  115. package/date/constants.js +20 -0
  116. package/date/constants.js.map +1 -0
  117. package/{src/date/index.ts → date/index.d.ts} +3 -3
  118. package/date/index.js +10 -0
  119. package/date/index.js.map +1 -0
  120. package/date/parseNlpDate.d.ts +5 -0
  121. package/date/parseNlpDate.js +227 -0
  122. package/date/parseNlpDate.js.map +1 -0
  123. package/date/parseRoamDateUid.d.ts +2 -0
  124. package/date/parseRoamDateUid.js +8 -0
  125. package/date/parseRoamDateUid.js.map +1 -0
  126. package/dom/addBlockCommand.d.ts +5 -0
  127. package/dom/addBlockCommand.js +54 -0
  128. package/dom/addBlockCommand.js.map +1 -0
  129. package/dom/addKeyboardTriggers.d.ts +11 -0
  130. package/dom/addKeyboardTriggers.js +39 -0
  131. package/dom/addKeyboardTriggers.js.map +1 -0
  132. package/dom/addOldRoamJSDependency.d.ts +2 -0
  133. package/dom/addOldRoamJSDependency.js +11 -0
  134. package/dom/addOldRoamJSDependency.js.map +1 -0
  135. package/dom/addRoamJSDependency.d.ts +2 -0
  136. package/dom/addRoamJSDependency.js +9 -0
  137. package/dom/addRoamJSDependency.js.map +1 -0
  138. package/dom/addScriptAsDependency.d.ts +6 -0
  139. package/dom/addScriptAsDependency.js +17 -0
  140. package/dom/addScriptAsDependency.js.map +1 -0
  141. package/dom/addStyle.d.ts +2 -0
  142. package/dom/addStyle.js +15 -0
  143. package/dom/addStyle.js.map +1 -0
  144. package/dom/constants.d.ts +1 -0
  145. package/dom/constants.js +5 -0
  146. package/dom/constants.js.map +1 -0
  147. package/dom/createBlockObserver.d.ts +7 -0
  148. package/dom/createBlockObserver.js +44 -0
  149. package/dom/createBlockObserver.js.map +1 -0
  150. package/dom/createButtonObserver.d.ts +6 -0
  151. package/dom/createButtonObserver.js +22 -0
  152. package/dom/createButtonObserver.js.map +1 -0
  153. package/dom/createDivObserver.d.ts +2 -0
  154. package/dom/createDivObserver.js +14 -0
  155. package/dom/createDivObserver.js.map +1 -0
  156. package/dom/createHTMLObserver.d.ts +8 -0
  157. package/dom/createHTMLObserver.js +25 -0
  158. package/dom/createHTMLObserver.js.map +1 -0
  159. package/dom/createHashtagObserver.d.ts +5 -0
  160. package/dom/createHashtagObserver.js +17 -0
  161. package/dom/createHashtagObserver.js.map +1 -0
  162. package/dom/createIconButton.d.ts +2 -0
  163. package/dom/createIconButton.js +13 -0
  164. package/dom/createIconButton.js.map +1 -0
  165. package/dom/createObserver.d.ts +2 -0
  166. package/dom/createObserver.js +10 -0
  167. package/dom/createObserver.js.map +1 -0
  168. package/dom/createOverlayObserver.d.ts +2 -0
  169. package/dom/createOverlayObserver.js +7 -0
  170. package/dom/createOverlayObserver.js.map +1 -0
  171. package/dom/createPageObserver.d.ts +2 -0
  172. package/dom/createPageObserver.js +35 -0
  173. package/dom/createPageObserver.js.map +1 -0
  174. package/dom/createPageTitleObserver.d.ts +6 -0
  175. package/dom/createPageTitleObserver.js +32 -0
  176. package/dom/createPageTitleObserver.js.map +1 -0
  177. package/dom/elToTitle.d.ts +2 -0
  178. package/dom/elToTitle.js +23 -0
  179. package/dom/elToTitle.js.map +1 -0
  180. package/dom/genericError.d.ts +3 -0
  181. package/dom/genericError.js +12 -0
  182. package/dom/genericError.js.map +1 -0
  183. package/dom/getActiveUids.d.ts +3 -0
  184. package/dom/getActiveUids.js +7 -0
  185. package/dom/getActiveUids.js.map +1 -0
  186. package/dom/getBlockUidFromTarget.d.ts +2 -0
  187. package/dom/getBlockUidFromTarget.js +34 -0
  188. package/dom/getBlockUidFromTarget.js.map +1 -0
  189. package/dom/getCurrentPageUid.d.ts +2 -0
  190. package/dom/getCurrentPageUid.js +9 -0
  191. package/dom/getCurrentPageUid.js.map +1 -0
  192. package/dom/getDomRefs.d.ts +2 -0
  193. package/dom/getDomRefs.js +13 -0
  194. package/dom/getDomRefs.js.map +1 -0
  195. package/dom/getDropUidOffset.d.ts +5 -0
  196. package/dom/getDropUidOffset.js +28 -0
  197. package/dom/getDropUidOffset.js.map +1 -0
  198. package/dom/getMutatedNodes.d.ts +7 -0
  199. package/dom/getMutatedNodes.js +12 -0
  200. package/dom/getMutatedNodes.js.map +1 -0
  201. package/dom/getPageTitleByHtmlElement.d.ts +2 -0
  202. package/dom/getPageTitleByHtmlElement.js +13 -0
  203. package/dom/getPageTitleByHtmlElement.js.map +1 -0
  204. package/dom/getPageTitleValueByHtmlElement.d.ts +2 -0
  205. package/dom/getPageTitleValueByHtmlElement.js +10 -0
  206. package/dom/getPageTitleValueByHtmlElement.js.map +1 -0
  207. package/dom/getReferenceBlockUid.d.ts +2 -0
  208. package/dom/getReferenceBlockUid.js +19 -0
  209. package/dom/getReferenceBlockUid.js.map +1 -0
  210. package/dom/getRoamUrl.d.ts +2 -0
  211. package/dom/getRoamUrl.js +5 -0
  212. package/dom/getRoamUrl.js.map +1 -0
  213. package/dom/getRoamUrlByPage.d.ts +2 -0
  214. package/dom/getRoamUrlByPage.js +11 -0
  215. package/dom/getRoamUrlByPage.js.map +1 -0
  216. package/dom/getUids.d.ts +3 -0
  217. package/dom/getUids.js +9 -0
  218. package/dom/getUids.js.map +1 -0
  219. package/dom/getUidsFromButton.d.ts +3 -0
  220. package/dom/getUidsFromButton.js +9 -0
  221. package/dom/getUidsFromButton.js.map +1 -0
  222. package/dom/getUidsFromId.d.ts +5 -0
  223. package/dom/getUidsFromId.js +16 -0
  224. package/dom/getUidsFromId.js.map +1 -0
  225. package/{src/dom/index.ts → dom/index.d.ts} +30 -30
  226. package/dom/index.js +64 -0
  227. package/dom/index.js.map +1 -0
  228. package/dom/parseRoamBlocksToHtml.d.ts +11 -0
  229. package/dom/parseRoamBlocksToHtml.js +80 -0
  230. package/dom/parseRoamBlocksToHtml.js.map +1 -0
  231. package/dom/resolveRefs.d.ts +2 -0
  232. package/dom/resolveRefs.js +25 -0
  233. package/dom/resolveRefs.js.map +1 -0
  234. package/{src/events/index.ts → events/index.d.ts} +1 -1
  235. package/events/index.js +9 -0
  236. package/events/index.js.map +1 -0
  237. package/events/watchOnce.d.ts +3 -0
  238. package/events/watchOnce.js +13 -0
  239. package/events/watchOnce.js.map +1 -0
  240. package/{src/hooks/index.ts → hooks/index.d.ts} +2 -2
  241. package/hooks/index.js +11 -0
  242. package/hooks/index.js.map +1 -0
  243. package/hooks/useArrowKeyDown.d.ts +10 -0
  244. package/hooks/useArrowKeyDown.js +55 -0
  245. package/hooks/useArrowKeyDown.js.map +1 -0
  246. package/hooks/useSubTree.d.ts +3 -0
  247. package/hooks/useSubTree.js +12 -0
  248. package/hooks/useSubTree.js.map +1 -0
  249. package/marked/index.d.ts +25 -0
  250. package/marked/index.js +568 -0
  251. package/marked/index.js.map +1 -0
  252. package/package.json +116 -116
  253. package/queries/compileDatalog.d.ts +3 -0
  254. package/queries/compileDatalog.js +64 -0
  255. package/queries/compileDatalog.js.map +1 -0
  256. package/queries/getAllBlockUids.d.ts +2 -0
  257. package/queries/getAllBlockUids.js +7 -0
  258. package/queries/getAllBlockUids.js.map +1 -0
  259. package/queries/getAllBlockUidsAndTexts.d.ts +5 -0
  260. package/queries/getAllBlockUidsAndTexts.js +7 -0
  261. package/queries/getAllBlockUidsAndTexts.js.map +1 -0
  262. package/queries/getAllPageNames.d.ts +2 -0
  263. package/queries/getAllPageNames.js +7 -0
  264. package/queries/getAllPageNames.js.map +1 -0
  265. package/queries/getAttributeValueByBlockAndName.d.ts +5 -0
  266. package/queries/getAttributeValueByBlockAndName.js +12 -0
  267. package/queries/getAttributeValueByBlockAndName.js.map +1 -0
  268. package/queries/getBasicTreeByParentUid.d.ts +3 -0
  269. package/queries/getBasicTreeByParentUid.js +14 -0
  270. package/queries/getBasicTreeByParentUid.js.map +1 -0
  271. package/queries/getBlockUidAndTextIncludingText.d.ts +5 -0
  272. package/queries/getBlockUidAndTextIncludingText.js +8 -0
  273. package/queries/getBlockUidAndTextIncludingText.js.map +1 -0
  274. package/queries/getBlockUidByTextOnPage.d.ts +5 -0
  275. package/queries/getBlockUidByTextOnPage.js +8 -0
  276. package/queries/getBlockUidByTextOnPage.js.map +1 -0
  277. package/queries/getBlockUidsAndTextsReferencingPage.d.ts +5 -0
  278. package/queries/getBlockUidsAndTextsReferencingPage.js +10 -0
  279. package/queries/getBlockUidsAndTextsReferencingPage.js.map +1 -0
  280. package/queries/getBlockUidsByPageTitle.d.ts +2 -0
  281. package/queries/getBlockUidsByPageTitle.js +9 -0
  282. package/queries/getBlockUidsByPageTitle.js.map +1 -0
  283. package/queries/getBlockUidsReferencingBlock.d.ts +2 -0
  284. package/queries/getBlockUidsReferencingBlock.js +5 -0
  285. package/queries/getBlockUidsReferencingBlock.js.map +1 -0
  286. package/queries/getBlockUidsReferencingPage.d.ts +2 -0
  287. package/queries/getBlockUidsReferencingPage.js +7 -0
  288. package/queries/getBlockUidsReferencingPage.js.map +1 -0
  289. package/queries/getBlockUidsWithParentUid.d.ts +2 -0
  290. package/queries/getBlockUidsWithParentUid.js +7 -0
  291. package/queries/getBlockUidsWithParentUid.js.map +1 -0
  292. package/queries/getChildrenLengthByPageUid.d.ts +2 -0
  293. package/queries/getChildrenLengthByPageUid.js +9 -0
  294. package/queries/getChildrenLengthByPageUid.js.map +1 -0
  295. package/queries/getChildrenLengthByParentUid.d.ts +2 -0
  296. package/queries/getChildrenLengthByParentUid.js +8 -0
  297. package/queries/getChildrenLengthByParentUid.js.map +1 -0
  298. package/queries/getCreateTimeByBlockUid.d.ts +2 -0
  299. package/queries/getCreateTimeByBlockUid.js +8 -0
  300. package/queries/getCreateTimeByBlockUid.js.map +1 -0
  301. package/queries/getCurrentUser.d.ts +2 -0
  302. package/queries/getCurrentUser.js +12 -0
  303. package/queries/getCurrentUser.js.map +1 -0
  304. package/queries/getCurrentUserDisplayName.d.ts +2 -0
  305. package/queries/getCurrentUserDisplayName.js +11 -0
  306. package/queries/getCurrentUserDisplayName.js.map +1 -0
  307. package/queries/getCurrentUserEmail.d.ts +2 -0
  308. package/queries/getCurrentUserEmail.js +14 -0
  309. package/queries/getCurrentUserEmail.js.map +1 -0
  310. package/queries/getCurrentUserUid.d.ts +2 -0
  311. package/queries/getCurrentUserUid.js +14 -0
  312. package/queries/getCurrentUserUid.js.map +1 -0
  313. package/queries/getDisplayNameByEmail.d.ts +2 -0
  314. package/queries/getDisplayNameByEmail.js +8 -0
  315. package/queries/getDisplayNameByEmail.js.map +1 -0
  316. package/queries/getDisplayNameByUid.d.ts +2 -0
  317. package/queries/getDisplayNameByUid.js +8 -0
  318. package/queries/getDisplayNameByUid.js.map +1 -0
  319. package/queries/getEditTimeByBlockUid.d.ts +2 -0
  320. package/queries/getEditTimeByBlockUid.js +8 -0
  321. package/queries/getEditTimeByBlockUid.js.map +1 -0
  322. package/queries/getEditedUserEmailByBlockUid.d.ts +2 -0
  323. package/queries/getEditedUserEmailByBlockUid.js +8 -0
  324. package/queries/getEditedUserEmailByBlockUid.js.map +1 -0
  325. package/queries/getFirstChildTextByBlockUid.d.ts +2 -0
  326. package/queries/getFirstChildTextByBlockUid.js +8 -0
  327. package/queries/getFirstChildTextByBlockUid.js.map +1 -0
  328. package/queries/getFirstChildUidByBlockUid.d.ts +2 -0
  329. package/queries/getFirstChildUidByBlockUid.js +7 -0
  330. package/queries/getFirstChildUidByBlockUid.js.map +1 -0
  331. package/queries/getFullTreeByParentUid.d.ts +3 -0
  332. package/queries/getFullTreeByParentUid.js +52 -0
  333. package/queries/getFullTreeByParentUid.js.map +1 -0
  334. package/queries/getLinkedPageTitlesUnderUid.d.ts +2 -0
  335. package/queries/getLinkedPageTitlesUnderUid.js +7 -0
  336. package/queries/getLinkedPageTitlesUnderUid.js.map +1 -0
  337. package/queries/getNthChildUidByBlockUid.d.ts +5 -0
  338. package/queries/getNthChildUidByBlockUid.js +8 -0
  339. package/queries/getNthChildUidByBlockUid.js.map +1 -0
  340. package/queries/getOrderByBlockUid.d.ts +2 -0
  341. package/queries/getOrderByBlockUid.js +8 -0
  342. package/queries/getOrderByBlockUid.js.map +1 -0
  343. package/queries/getPageTitleByBlockUid.d.ts +2 -0
  344. package/queries/getPageTitleByBlockUid.js +8 -0
  345. package/queries/getPageTitleByBlockUid.js.map +1 -0
  346. package/queries/getPageTitleByPageUid.d.ts +2 -0
  347. package/queries/getPageTitleByPageUid.js +13 -0
  348. package/queries/getPageTitleByPageUid.js.map +1 -0
  349. package/queries/getPageTitleReferencesByPageTitle.d.ts +2 -0
  350. package/queries/getPageTitleReferencesByPageTitle.js +7 -0
  351. package/queries/getPageTitleReferencesByPageTitle.js.map +1 -0
  352. package/queries/getPageTitlesAndBlockUidsReferencingPage.d.ts +5 -0
  353. package/queries/getPageTitlesAndBlockUidsReferencingPage.js +10 -0
  354. package/queries/getPageTitlesAndBlockUidsReferencingPage.js.map +1 -0
  355. package/queries/getPageTitlesAndUidsDirectlyReferencingPage.d.ts +5 -0
  356. package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js +10 -0
  357. package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js.map +1 -0
  358. package/queries/getPageTitlesReferencingBlockUid.d.ts +2 -0
  359. package/queries/getPageTitlesReferencingBlockUid.js +5 -0
  360. package/queries/getPageTitlesReferencingBlockUid.js.map +1 -0
  361. package/queries/getPageTitlesStartingWithPrefix.d.ts +2 -0
  362. package/queries/getPageTitlesStartingWithPrefix.js +7 -0
  363. package/queries/getPageTitlesStartingWithPrefix.js.map +1 -0
  364. package/queries/getPageUidByBlockUid.d.ts +2 -0
  365. package/queries/getPageUidByBlockUid.js +8 -0
  366. package/queries/getPageUidByBlockUid.js.map +1 -0
  367. package/queries/getPageUidByPageTitle.d.ts +2 -0
  368. package/queries/getPageUidByPageTitle.js +10 -0
  369. package/queries/getPageUidByPageTitle.js.map +1 -0
  370. package/queries/getPageViewType.d.ts +3 -0
  371. package/queries/getPageViewType.js +10 -0
  372. package/queries/getPageViewType.js.map +1 -0
  373. package/queries/getParentTextByBlockUid.d.ts +2 -0
  374. package/queries/getParentTextByBlockUid.js +8 -0
  375. package/queries/getParentTextByBlockUid.js.map +1 -0
  376. package/queries/getParentTextByBlockUidAndTag.d.ts +5 -0
  377. package/queries/getParentTextByBlockUidAndTag.js +8 -0
  378. package/queries/getParentTextByBlockUidAndTag.js.map +1 -0
  379. package/queries/getParentUidByBlockUid.d.ts +2 -0
  380. package/queries/getParentUidByBlockUid.js +8 -0
  381. package/queries/getParentUidByBlockUid.js.map +1 -0
  382. package/queries/getParentUidsOfBlockUid.d.ts +2 -0
  383. package/queries/getParentUidsOfBlockUid.js +5 -0
  384. package/queries/getParentUidsOfBlockUid.js.map +1 -0
  385. package/queries/getSettingsByEmail.d.ts +3 -0
  386. package/queries/getSettingsByEmail.js +8 -0
  387. package/queries/getSettingsByEmail.js.map +1 -0
  388. package/queries/getShallowTreeByParentUid.d.ts +5 -0
  389. package/queries/getShallowTreeByParentUid.js +10 -0
  390. package/queries/getShallowTreeByParentUid.js.map +1 -0
  391. package/queries/getTextByBlockUid.d.ts +2 -0
  392. package/queries/getTextByBlockUid.js +10 -0
  393. package/queries/getTextByBlockUid.js.map +1 -0
  394. package/queries/index.d.ts +0 -0
  395. package/queries/index.js +5 -0
  396. package/queries/index.js.map +1 -0
  397. package/queries/isLiveBlock.d.ts +2 -0
  398. package/queries/isLiveBlock.js +5 -0
  399. package/queries/isLiveBlock.js.map +1 -0
  400. package/queries/isTagOnPage.d.ts +5 -0
  401. package/queries/isTagOnPage.js +10 -0
  402. package/queries/isTagOnPage.js.map +1 -0
  403. package/queries/normalizePageTitle.d.ts +2 -0
  404. package/queries/normalizePageTitle.js +5 -0
  405. package/queries/normalizePageTitle.js.map +1 -0
  406. package/scripts/index.d.ts +1 -0
  407. package/scripts/index.js +27 -0
  408. package/scripts/index.js.map +1 -0
  409. package/scripts/publishToRoamDepot.d.ts +7 -0
  410. package/scripts/publishToRoamDepot.js +114 -0
  411. package/scripts/publishToRoamDepot.js.map +1 -0
  412. package/testing/mockRoamEnvironment.d.ts +2 -0
  413. package/testing/mockRoamEnvironment.js +1254 -0
  414. package/testing/mockRoamEnvironment.js.map +1 -0
  415. package/types/index.d.ts +389 -0
  416. package/types/index.js +5 -0
  417. package/types/index.js.map +1 -0
  418. package/types/native.d.ts +405 -0
  419. package/types/native.js +5 -0
  420. package/types/native.js.map +1 -0
  421. package/types/query-builder.d.ts +10 -0
  422. package/types/query-builder.js +3 -0
  423. package/types/query-builder.js.map +1 -0
  424. package/types/smartblocks.d.ts +35 -0
  425. package/types/smartblocks.js +3 -0
  426. package/types/smartblocks.js.map +1 -0
  427. package/util/addInputSetting.d.ts +7 -0
  428. package/util/addInputSetting.js +26 -0
  429. package/util/addInputSetting.js.map +1 -0
  430. package/util/apiDelete.d.ts +2 -0
  431. package/util/apiDelete.js +7 -0
  432. package/util/apiDelete.js.map +1 -0
  433. package/util/apiGet.d.ts +2 -0
  434. package/util/apiGet.js +7 -0
  435. package/util/apiGet.js.map +1 -0
  436. package/util/apiPost.d.ts +2 -0
  437. package/util/apiPost.js +7 -0
  438. package/util/apiPost.js.map +1 -0
  439. package/util/apiPut.d.ts +2 -0
  440. package/util/apiPut.js +7 -0
  441. package/util/apiPut.js.map +1 -0
  442. package/util/createOverlayRender.d.ts +4 -0
  443. package/util/createOverlayRender.js +7 -0
  444. package/util/createOverlayRender.js.map +1 -0
  445. package/util/createTagRegex.d.ts +2 -0
  446. package/util/createTagRegex.js +8 -0
  447. package/util/createTagRegex.js.map +1 -0
  448. package/util/dispatchToRegistry.d.ts +3 -0
  449. package/util/dispatchToRegistry.js +8 -0
  450. package/util/dispatchToRegistry.js.map +1 -0
  451. package/util/env.d.ts +4 -0
  452. package/util/env.js +48 -0
  453. package/util/env.js.map +1 -0
  454. package/util/extensionApiContext.d.ts +29 -0
  455. package/util/extensionApiContext.js +18 -0
  456. package/util/extensionApiContext.js.map +1 -0
  457. package/util/extensionDeprecatedWarning.d.ts +5 -0
  458. package/util/extensionDeprecatedWarning.js +40 -0
  459. package/util/extensionDeprecatedWarning.js.map +1 -0
  460. package/util/extractRef.d.ts +2 -0
  461. package/util/extractRef.js +9 -0
  462. package/util/extractRef.js.map +1 -0
  463. package/util/extractTag.d.ts +2 -0
  464. package/util/extractTag.js +16 -0
  465. package/util/extractTag.js.map +1 -0
  466. package/util/focusMainWindowBlock.d.ts +2 -0
  467. package/util/focusMainWindowBlock.js +13 -0
  468. package/util/focusMainWindowBlock.js.map +1 -0
  469. package/util/getAuthorizationHeader.d.ts +2 -0
  470. package/util/getAuthorizationHeader.js +13 -0
  471. package/util/getAuthorizationHeader.js.map +1 -0
  472. package/util/getLocalStorageKey.d.ts +2 -0
  473. package/util/getLocalStorageKey.js +5 -0
  474. package/util/getLocalStorageKey.js.map +1 -0
  475. package/util/getOauth.d.ts +2 -0
  476. package/util/getOauth.js +53 -0
  477. package/util/getOauth.js.map +1 -0
  478. package/util/getOauthAccounts.d.ts +2 -0
  479. package/util/getOauthAccounts.js +23 -0
  480. package/util/getOauthAccounts.js.map +1 -0
  481. package/util/getRenderRoot.d.ts +2 -0
  482. package/util/getRenderRoot.js +19 -0
  483. package/util/getRenderRoot.js.map +1 -0
  484. package/util/getSettingIntFromTree.d.ts +7 -0
  485. package/util/getSettingIntFromTree.js +12 -0
  486. package/util/getSettingIntFromTree.js.map +1 -0
  487. package/util/getSettingValueFromTree.d.ts +8 -0
  488. package/util/getSettingValueFromTree.js +15 -0
  489. package/util/getSettingValueFromTree.js.map +1 -0
  490. package/util/getSettingValuesFromTree.d.ts +7 -0
  491. package/util/getSettingValuesFromTree.js +13 -0
  492. package/util/getSettingValuesFromTree.js.map +1 -0
  493. package/util/getSubTree.d.ts +8 -0
  494. package/util/getSubTree.js +20 -0
  495. package/util/getSubTree.js.map +1 -0
  496. package/util/getToken.d.ts +2 -0
  497. package/util/getToken.js +11 -0
  498. package/util/getToken.js.map +1 -0
  499. package/util/getTokenFromTree.d.ts +3 -0
  500. package/util/getTokenFromTree.js +5 -0
  501. package/util/getTokenFromTree.js.map +1 -0
  502. package/util/getWorkerClient.d.ts +12 -0
  503. package/util/getWorkerClient.js +42 -0
  504. package/util/getWorkerClient.js.map +1 -0
  505. package/util/handleBodyFetch.d.ts +3 -0
  506. package/util/handleBodyFetch.js +22 -0
  507. package/util/handleBodyFetch.js.map +1 -0
  508. package/util/handleFetch.d.ts +13 -0
  509. package/util/handleFetch.js +41 -0
  510. package/util/handleFetch.js.map +1 -0
  511. package/util/handleUrlFetch.d.ts +3 -0
  512. package/util/handleUrlFetch.js +20 -0
  513. package/util/handleUrlFetch.js.map +1 -0
  514. package/util/idToTitle.d.ts +2 -0
  515. package/util/idToTitle.js +9 -0
  516. package/util/idToTitle.js.map +1 -0
  517. package/{src/util/index.ts → util/index.d.ts} +24 -24
  518. package/util/index.js +55 -0
  519. package/util/index.js.map +1 -0
  520. package/util/isControl.d.ts +2 -0
  521. package/util/isControl.js +5 -0
  522. package/util/isControl.js.map +1 -0
  523. package/util/localStorageGet.d.ts +2 -0
  524. package/util/localStorageGet.js +9 -0
  525. package/util/localStorageGet.js.map +1 -0
  526. package/util/localStorageRemove.d.ts +2 -0
  527. package/util/localStorageRemove.js +7 -0
  528. package/util/localStorageRemove.js.map +1 -0
  529. package/util/localStorageSet.d.ts +2 -0
  530. package/util/localStorageSet.js +9 -0
  531. package/util/localStorageSet.js.map +1 -0
  532. package/util/registerExperimentalMode.d.ts +6 -0
  533. package/util/registerExperimentalMode.js +66 -0
  534. package/util/registerExperimentalMode.js.map +1 -0
  535. package/util/registerSmartBlocksCommand.d.ts +3 -0
  536. package/util/registerSmartBlocksCommand.js +24 -0
  537. package/util/registerSmartBlocksCommand.js.map +1 -0
  538. package/util/removeFromRegistry.d.ts +3 -0
  539. package/util/removeFromRegistry.js +8 -0
  540. package/util/removeFromRegistry.js.map +1 -0
  541. package/util/renderOverlay.d.ts +12 -0
  542. package/util/renderOverlay.js +49 -0
  543. package/util/renderOverlay.js.map +1 -0
  544. package/util/renderWithUnmount.d.ts +4 -0
  545. package/util/renderWithUnmount.js +45 -0
  546. package/util/renderWithUnmount.js.map +1 -0
  547. package/util/runExtension.d.ts +11 -0
  548. package/util/runExtension.js +175 -0
  549. package/util/runExtension.js.map +1 -0
  550. package/util/setInputSetting.d.ts +7 -0
  551. package/util/setInputSetting.js +38 -0
  552. package/util/setInputSetting.js.map +1 -0
  553. package/util/setInputSettings.d.ts +7 -0
  554. package/util/setInputSettings.js +29 -0
  555. package/util/setInputSettings.js.map +1 -0
  556. package/util/stripUid.d.ts +3 -0
  557. package/util/stripUid.js +11 -0
  558. package/util/stripUid.js.map +1 -0
  559. package/util/toConfigPageName.d.ts +2 -0
  560. package/util/toConfigPageName.js +5 -0
  561. package/util/toConfigPageName.js.map +1 -0
  562. package/util/toFlexRegex.d.ts +2 -0
  563. package/util/toFlexRegex.js +5 -0
  564. package/util/toFlexRegex.js.map +1 -0
  565. package/writes/clearBlockById.d.ts +2 -0
  566. package/writes/clearBlockById.js +18 -0
  567. package/writes/clearBlockById.js.map +1 -0
  568. package/writes/clearBlockByUid.d.ts +2 -0
  569. package/writes/clearBlockByUid.js +17 -0
  570. package/writes/clearBlockByUid.js.map +1 -0
  571. package/writes/createBlock.d.ts +8 -0
  572. package/writes/createBlock.js +29 -0
  573. package/writes/createBlock.js.map +1 -0
  574. package/writes/createPage.d.ts +7 -0
  575. package/writes/createPage.js +21 -0
  576. package/writes/createPage.js.map +1 -0
  577. package/writes/deleteBlock.d.ts +2 -0
  578. package/writes/deleteBlock.js +11 -0
  579. package/writes/deleteBlock.js.map +1 -0
  580. package/{src/writes/index.ts → writes/index.d.ts} +8 -8
  581. package/writes/index.js +23 -0
  582. package/writes/index.js.map +1 -0
  583. package/writes/openBlockInSidebar.d.ts +2 -0
  584. package/writes/openBlockInSidebar.js +14 -0
  585. package/writes/openBlockInSidebar.js.map +1 -0
  586. package/writes/submitActions.d.ts +8 -0
  587. package/writes/submitActions.js +37 -0
  588. package/writes/submitActions.js.map +1 -0
  589. package/writes/updateActiveBlock.d.ts +2 -0
  590. package/writes/updateActiveBlock.js +18 -0
  591. package/writes/updateActiveBlock.js.map +1 -0
  592. package/writes/updateBlock.d.ts +5 -0
  593. package/writes/updateBlock.js +24 -0
  594. package/writes/updateBlock.js.map +1 -0
  595. package/.eslintrc.json +0 -19
  596. package/.github/workflows/main.yaml +0 -34
  597. package/docs/components.md +0 -32
  598. package/docs/date.md +0 -13
  599. package/docs/dom.md +0 -58
  600. package/docs/events.md +0 -16
  601. package/docs/hooks.md +0 -15
  602. package/docs/marked.md +0 -56
  603. package/docs/queries.md +0 -24
  604. package/docs/scripts.md +0 -20
  605. package/docs/types.md +0 -32
  606. package/docs/util.md +0 -38
  607. package/docs/writes.md +0 -23
  608. package/patches/dotenv+16.3.1.patch +0 -12
  609. package/src/components/AutocompleteInput.tsx +0 -248
  610. package/src/components/BlockErrorBoundary.tsx +0 -35
  611. package/src/components/BlockInput.tsx +0 -117
  612. package/src/components/ComponentContainer.tsx +0 -69
  613. package/src/components/ConfigPage.tsx +0 -320
  614. package/src/components/ConfigPanels/BlockPanel.tsx +0 -60
  615. package/src/components/ConfigPanels/BlocksPanel.tsx +0 -100
  616. package/src/components/ConfigPanels/CustomPanel.tsx +0 -41
  617. package/src/components/ConfigPanels/FlagPanel.tsx +0 -48
  618. package/src/components/ConfigPanels/MultiChildPanel.tsx +0 -99
  619. package/src/components/ConfigPanels/MultiTextPanel.tsx +0 -23
  620. package/src/components/ConfigPanels/NumberPanel.tsx +0 -36
  621. package/src/components/ConfigPanels/OauthPanel.tsx +0 -127
  622. package/src/components/ConfigPanels/PagesPanel.tsx +0 -19
  623. package/src/components/ConfigPanels/SelectPanel.tsx +0 -46
  624. package/src/components/ConfigPanels/TextPanel.tsx +0 -44
  625. package/src/components/ConfigPanels/TimePanel.tsx +0 -45
  626. package/src/components/ConfigPanels/getBrandColors.tsx +0 -31
  627. package/src/components/ConfigPanels/types.ts +0 -111
  628. package/src/components/ConfigPanels/useSingleChildValue.tsx +0 -63
  629. package/src/components/CursorMenu.tsx +0 -286
  630. package/src/components/Description.tsx +0 -31
  631. package/src/components/ExtensionApiContext.tsx +0 -24
  632. package/src/components/ExternalLogin.tsx +0 -190
  633. package/src/components/Filter.tsx +0 -313
  634. package/src/components/FormDialog.tsx +0 -503
  635. package/src/components/Loading.tsx +0 -33
  636. package/src/components/MenuItemSelect.tsx +0 -88
  637. package/src/components/OauthPanel.tsx +0 -62
  638. package/src/components/OauthSelect.tsx +0 -40
  639. package/src/components/PageInput.tsx +0 -17
  640. package/src/components/PageLink.tsx +0 -50
  641. package/src/components/ProgressDialog.tsx +0 -85
  642. package/src/components/SimpleAlert.tsx +0 -103
  643. package/src/components/Toast.tsx +0 -85
  644. package/src/components/index.ts +0 -5
  645. package/src/components.tsx +0 -242
  646. package/src/date/constants.ts +0 -19
  647. package/src/date/parseNlpDate.ts +0 -255
  648. package/src/date/parseRoamDateUid.ts +0 -6
  649. package/src/dom/addBlockCommand.ts +0 -59
  650. package/src/dom/addKeyboardTriggers.ts +0 -52
  651. package/src/dom/addOldRoamJSDependency.ts +0 -10
  652. package/src/dom/addRoamJSDependency.ts +0 -7
  653. package/src/dom/addScriptAsDependency.ts +0 -24
  654. package/src/dom/addStyle.ts +0 -11
  655. package/src/dom/constants.ts +0 -1
  656. package/src/dom/createBlockObserver.ts +0 -44
  657. package/src/dom/createButtonObserver.ts +0 -31
  658. package/src/dom/createDivObserver.ts +0 -15
  659. package/src/dom/createHTMLObserver.ts +0 -44
  660. package/src/dom/createHashtagObserver.ts +0 -22
  661. package/src/dom/createIconButton.ts +0 -13
  662. package/src/dom/createObserver.ts +0 -15
  663. package/src/dom/createOverlayObserver.ts +0 -7
  664. package/src/dom/createPageObserver.ts +0 -37
  665. package/src/dom/createPageTitleObserver.ts +0 -43
  666. package/src/dom/elToTitle.ts +0 -21
  667. package/src/dom/genericError.ts +0 -13
  668. package/src/dom/getActiveUids.ts +0 -6
  669. package/src/dom/getBlockUidFromTarget.ts +0 -39
  670. package/src/dom/getCurrentPageUid.ts +0 -5
  671. package/src/dom/getDomRefs.ts +0 -15
  672. package/src/dom/getDropUidOffset.ts +0 -36
  673. package/src/dom/getMutatedNodes.ts +0 -31
  674. package/src/dom/getPageTitleByHtmlElement.ts +0 -19
  675. package/src/dom/getPageTitleValueByHtmlElement.ts +0 -8
  676. package/src/dom/getReferenceBlockUid.ts +0 -22
  677. package/src/dom/getRoamUrl.ts +0 -6
  678. package/src/dom/getRoamUrlByPage.ts +0 -9
  679. package/src/dom/getUids.ts +0 -9
  680. package/src/dom/getUidsFromButton.ts +0 -9
  681. package/src/dom/getUidsFromId.ts +0 -13
  682. package/src/dom/parseRoamBlocksToHtml.ts +0 -118
  683. package/src/dom/resolveRefs.ts +0 -31
  684. package/src/events/watchOnce.ts +0 -17
  685. package/src/hooks/useArrowKeyDown.ts +0 -72
  686. package/src/hooks/useSubTree.ts +0 -16
  687. package/src/marked/index.ts +0 -619
  688. package/src/queries/compileDatalog.ts +0 -81
  689. package/src/queries/getAllBlockUids.ts +0 -6
  690. package/src/queries/getAllBlockUidsAndTexts.ts +0 -6
  691. package/src/queries/getAllPageNames.ts +0 -6
  692. package/src/queries/getAttributeValueByBlockAndName.ts +0 -23
  693. package/src/queries/getBasicTreeByParentUid.ts +0 -21
  694. package/src/queries/getBlockUidAndTextIncludingText.ts +0 -15
  695. package/src/queries/getBlockUidByTextOnPage.ts +0 -12
  696. package/src/queries/getBlockUidsAndTextsReferencingPage.ts +0 -18
  697. package/src/queries/getBlockUidsByPageTitle.ts +0 -12
  698. package/src/queries/getBlockUidsReferencingBlock.ts +0 -10
  699. package/src/queries/getBlockUidsReferencingPage.ts +0 -13
  700. package/src/queries/getBlockUidsWithParentUid.ts +0 -10
  701. package/src/queries/getChildrenLengthByPageUid.ts +0 -7
  702. package/src/queries/getChildrenLengthByParentUid.ts +0 -6
  703. package/src/queries/getCreateTimeByBlockUid.ts +0 -6
  704. package/src/queries/getCurrentUser.ts +0 -12
  705. package/src/queries/getCurrentUserDisplayName.ts +0 -9
  706. package/src/queries/getCurrentUserEmail.ts +0 -12
  707. package/src/queries/getCurrentUserUid.ts +0 -12
  708. package/src/queries/getDisplayNameByEmail.ts +0 -6
  709. package/src/queries/getDisplayNameByUid.ts +0 -6
  710. package/src/queries/getEditTimeByBlockUid.ts +0 -6
  711. package/src/queries/getEditedUserEmailByBlockUid.ts +0 -6
  712. package/src/queries/getFirstChildTextByBlockUid.ts +0 -8
  713. package/src/queries/getFirstChildUidByBlockUid.ts +0 -6
  714. package/src/queries/getFullTreeByParentUid.ts +0 -60
  715. package/src/queries/getLinkedPageTitlesUnderUid.ts +0 -8
  716. package/src/queries/getNthChildUidByBlockUid.ts +0 -16
  717. package/src/queries/getOrderByBlockUid.ts +0 -6
  718. package/src/queries/getPageTitleByBlockUid.ts +0 -8
  719. package/src/queries/getPageTitleByPageUid.ts +0 -11
  720. package/src/queries/getPageTitleReferencesByPageTitle.ts +0 -13
  721. package/src/queries/getPageTitlesAndBlockUidsReferencingPage.ts +0 -18
  722. package/src/queries/getPageTitlesAndUidsDirectlyReferencingPage.ts +0 -18
  723. package/src/queries/getPageTitlesReferencingBlockUid.ts +0 -10
  724. package/src/queries/getPageTitlesStartingWithPrefix.ts +0 -8
  725. package/src/queries/getPageUidByBlockUid.ts +0 -8
  726. package/src/queries/getPageUidByPageTitle.ts +0 -10
  727. package/src/queries/getPageViewType.ts +0 -11
  728. package/src/queries/getParentTextByBlockUid.ts +0 -6
  729. package/src/queries/getParentTextByBlockUidAndTag.ts +0 -12
  730. package/src/queries/getParentUidByBlockUid.ts +0 -10
  731. package/src/queries/getParentUidsOfBlockUid.ts +0 -10
  732. package/src/queries/getSettingsByEmail.ts +0 -8
  733. package/src/queries/getShallowTreeByParentUid.ts +0 -17
  734. package/src/queries/getTextByBlockUid.ts +0 -8
  735. package/src/queries/index.ts +0 -5
  736. package/src/queries/isLiveBlock.ts +0 -4
  737. package/src/queries/isTagOnPage.ts +0 -12
  738. package/src/queries/normalizePageTitle.ts +0 -4
  739. package/src/scripts/index.ts +0 -2
  740. package/src/scripts/publishToRoamDepot.ts +0 -163
  741. package/src/testing/mockRoamEnvironment.ts +0 -1489
  742. package/src/types/index.ts +0 -260
  743. package/src/types/native.ts +0 -495
  744. package/src/types/query-builder.ts +0 -10
  745. package/src/types/smartblocks.ts +0 -39
  746. package/src/util/addInputSetting.ts +0 -33
  747. package/src/util/apiDelete.ts +0 -5
  748. package/src/util/apiGet.ts +0 -5
  749. package/src/util/apiPost.ts +0 -5
  750. package/src/util/apiPut.ts +0 -5
  751. package/src/util/createOverlayRender.ts +0 -12
  752. package/src/util/createTagRegex.ts +0 -7
  753. package/src/util/dispatchToRegistry.ts +0 -11
  754. package/src/util/env.ts +0 -44
  755. package/src/util/extensionApiContext.ts +0 -17
  756. package/src/util/extensionDeprecatedWarning.ts +0 -57
  757. package/src/util/extractRef.ts +0 -8
  758. package/src/util/extractTag.ts +0 -15
  759. package/src/util/focusMainWindowBlock.ts +0 -13
  760. package/src/util/getAuthorizationHeader.ts +0 -11
  761. package/src/util/getLocalStorageKey.ts +0 -4
  762. package/src/util/getOauth.ts +0 -57
  763. package/src/util/getOauthAccounts.ts +0 -26
  764. package/src/util/getRenderRoot.ts +0 -17
  765. package/src/util/getSettingIntFromTree.ts +0 -18
  766. package/src/util/getSettingValueFromTree.ts +0 -23
  767. package/src/util/getSettingValuesFromTree.ts +0 -20
  768. package/src/util/getSubTree.ts +0 -31
  769. package/src/util/getToken.ts +0 -12
  770. package/src/util/getTokenFromTree.ts +0 -6
  771. package/src/util/getWorkerClient.ts +0 -55
  772. package/src/util/handleBodyFetch.ts +0 -38
  773. package/src/util/handleFetch.ts +0 -70
  774. package/src/util/handleUrlFetch.ts +0 -30
  775. package/src/util/idToTitle.ts +0 -8
  776. package/src/util/isControl.ts +0 -4
  777. package/src/util/localStorageGet.ts +0 -6
  778. package/src/util/localStorageRemove.ts +0 -6
  779. package/src/util/localStorageSet.ts +0 -6
  780. package/src/util/registerExperimentalMode.ts +0 -76
  781. package/src/util/registerSmartBlocksCommand.ts +0 -23
  782. package/src/util/removeFromRegistry.ts +0 -11
  783. package/src/util/renderOverlay.ts +0 -69
  784. package/src/util/renderWithUnmount.ts +0 -50
  785. package/src/util/runExtension.ts +0 -206
  786. package/src/util/setInputSetting.ts +0 -46
  787. package/src/util/setInputSettings.ts +0 -37
  788. package/src/util/stripUid.ts +0 -10
  789. package/src/util/toConfigPageName.ts +0 -3
  790. package/src/util/toFlexRegex.ts +0 -7
  791. package/src/writes/clearBlockById.ts +0 -17
  792. package/src/writes/clearBlockByUid.ts +0 -16
  793. package/src/writes/createBlock.ts +0 -50
  794. package/src/writes/createPage.ts +0 -30
  795. package/src/writes/deleteBlock.ts +0 -9
  796. package/src/writes/openBlockInSidebar.ts +0 -13
  797. package/src/writes/submitActions.ts +0 -54
  798. package/src/writes/updateActiveBlock.ts +0 -17
  799. package/src/writes/updateBlock.ts +0 -33
  800. package/tests/backend.test.tsx +0 -28
  801. package/tests/date.test.ts +0 -26
  802. package/tests/dom.test.tsx +0 -10
  803. package/tests/index.test.tsx +0 -25
  804. package/tests/marked.test.ts +0 -474
  805. package/tests/util/createTagRegex.test.ts +0 -63
  806. package/tests/util/extractTag.test.ts +0 -17
  807. package/tests/util/toFlexRegex.test.ts +0 -7
  808. package/tsconfig.json +0 -26
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockRoamEnvironment.js","sourceRoot":"","sources":["../../src/testing/mockRoamEnvironment.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DatalogClause,\n DatalogConstant,\n DatalogVariable,\n PullBlock,\n} from \"../types/native\";\nimport { parseEDNString } from \"edn-data\";\nimport nanoid from \"nanoid\";\nimport { JSDOM } from \"jsdom\";\n\ntype Graph = {\n state: Record<number, PullBlock>;\n uids: Record<string, number>;\n titles: Record<string, number>;\n};\n\ntype EDNValue =\n | { key: string }\n | { sym: string }\n | string\n | EDNValue[]\n | { list: EDNValue[] }\n | { map: [EDNValue, EDNValue][] };\n\nconst initMockGraph = (): Graph => ({\n state: {},\n uids: {},\n titles: {},\n});\n\nconst getDbId = () => Math.ceil(Math.random() * 1000000);\n\ntype Aggregate = { type: \"aggregate\" };\ntype DatalogPullOption =\n | { type: \"as-expr\"; value: string }\n | { type: \"limit-expr\" }\n | { type: \"default-expr\" };\ntype DatalogPullAttr =\n | DatalogConstant\n | { type: \"wildcard\"; value: \"*\" }\n | {\n type: \"map-spec\";\n entries: {\n key: string | DatalogPullOption;\n value: \"...\" | DatalogPullAttr[];\n }[];\n }\n | { type: \"attr-expr\"; name: string; option: DatalogPullOption };\ntype DatalogPullExpr = {\n type: \"pull\";\n variable: DatalogVariable;\n pattern:\n | { type: \"pattern-name\"; value: string }\n | { type: \"pattern-data-literal\"; value: DatalogPullAttr[] };\n};\ntype DatalogFindElem = DatalogVariable | DatalogPullExpr | Aggregate;\ntype DatalogFind = { type: \"rel\"; elements: DatalogFindElem[] };\n\ntype NodeAssignment = { id: number };\ntype Assignment = Record<string, NodeAssignment | string | number | RegExp>;\nconst isNode = (v: Assignment[string]): v is NodeAssignment =>\n typeof v === \"object\" && v !== null && !(v instanceof RegExp);\n\ntype QueryResult = Record<string, unknown> | Record<string, unknown>[];\nconst resolvePattern = (\n pattern: DatalogPullAttr[],\n result: QueryResult,\n graph: Graph\n): unknown =>\n Array.isArray(result)\n ? result.map((r) => resolvePattern(pattern, r, graph))\n : pattern.some((pat) => pat.type === \"wildcard\")\n ? result\n : Object.fromEntries(\n pattern.flatMap((pat): [string, unknown][] => {\n if (pat.type === \"constant\") {\n return [[pat.value, result[pat.value as keyof PullBlock]]];\n } else if (pat.type === \"attr-expr\") {\n if (pat.option.type === \"as-expr\") {\n return [[pat.option.value, result[pat.name as keyof PullBlock]]];\n } else {\n throw new Error(\n `Unexpected pull attribute expression type: ${pat.option.type}`\n );\n }\n } else if (pat.type === \"map-spec\") {\n return pat.entries.map(({ key, value }) => {\n const k =\n typeof key === \"string\"\n ? key\n : key.type === \"as-expr\"\n ? key.value\n : \"\";\n const nestedResult = result[k] as QueryResult | undefined;\n if (!nestedResult) return [k, []];\n if (value === \"...\") {\n const nestedResults = (\n Array.isArray(nestedResult) ? nestedResult : [nestedResult]\n )\n .map((a) => a[\":db/id\"])\n .filter((id): id is number => typeof id === \"number\")\n .map((id) => graph.state[id]);\n return [k, resolvePattern(pattern, nestedResults, graph)];\n } else {\n return [k, resolvePattern(value, nestedResult, graph)];\n }\n });\n } else {\n throw new Error(`Unexpected pull pattern type: ${pat.type}`);\n }\n })\n );\n\nconst fireQuery = ({\n graph,\n find,\n where,\n}: {\n graph: Graph;\n find: DatalogFind;\n // return-map-spec?\n with?: DatalogVariable[];\n // inputs?\n where: DatalogClause[];\n}) => {\n const getAssignments = (\n where: DatalogClause[],\n initialVars = [] as string[]\n ) => {\n return where.reduce(\n (programs, clause, index) => {\n if (programs.assignments.size === 0 && index > 0) return programs;\n const reconcile = (matches: Assignment[], vars: string[]) => {\n vars.forEach((v) => programs.vars.add(v));\n programs.assignments = new Set(\n Array.from(\n new Set(\n (programs.assignments.size === 0 && index === 0\n ? matches\n : Array.from(programs.assignments).flatMap((dict) =>\n matches.map((dic) => ({\n ...dict,\n ...dic,\n }))\n )\n ).map((a) =>\n // remove duplicate assignments\n JSON.stringify(\n Object.entries(a).sort(([ka], [kb]) => ka.localeCompare(kb))\n )\n )\n )\n ).map((s) => Object.fromEntries(JSON.parse(s)))\n );\n };\n if (clause.type === \"data-pattern\") {\n const [source, relation, target] = clause.arguments;\n if (source.type !== \"variable\") {\n throw new Error(\"Expected source type to be variable\");\n }\n const sourceVar = source.value;\n if (relation.type !== \"constant\") {\n throw new Error(\"Expected relation type to be constant\");\n }\n const rel = relation.value;\n const targetString = target.value.replace(/^\"/, \"\").replace(/\"$/, \"\");\n const targetVar = target.value;\n if (programs.vars.has(sourceVar)) {\n const newAssignments = Array.from(programs.assignments).flatMap(\n (dict): Assignment[] => {\n const sourceEntry = dict[sourceVar];\n if (!isNode(sourceEntry)) {\n throw new Error(\n \"Expected the source variable to map to a node\"\n );\n return [];\n }\n const sourceId = sourceEntry.id;\n if (rel === \":block/refs\") {\n throw new Error(\"TODO\");\n // if (target.type !== \"variable\") {\n // throw new Error(\n // \"Expected target for :block/refs to be a variable\"\n // );\n // return [];\n // }\n // const targetEntry = dict[targetVar];\n // const refs = (\n // isNode(targetEntry)\n // ? [targetEntry.id]\n // : graph.edges.referencesByUid[sourceId] || []\n // ).map((ref) => ({\n // ...dict,\n // [targetVar]: { uid: ref },\n // }));\n // if (refs.length) programs.vars.add(targetVar);\n // return refs;\n } else if (rel === \":block/page\") {\n // if (target.type !== \"variable\") {\n // throw new Error(\n // \"Expected target for :block/page to be a variable\"\n // );\n // return [];\n // }\n // const targetEntry = dict[targetVar];\n // if (graph.edges.pagesByUid[sourceId]) {\n // return [];\n // } else if (isNode(targetEntry)) {\n // return targetEntry.id ===\n // graph.edges.blocksPageByUid[sourceId]\n // ? [dict]\n // : [];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: {\n // uid: graph.edges.blocksPageByUid[sourceId],\n // },\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":node/title\") {\n const sourceTitle = graph.state[sourceId]?.[\":node/title\"];\n if (target.type === \"constant\") {\n if (graph.titles[targetString] === sourceId) {\n return [dict];\n } else {\n return [];\n }\n } else if (target.type === \"underscore\") {\n return [dict];\n } else if (!sourceTitle) {\n return [];\n } else {\n programs.vars.add(targetVar);\n return [\n {\n ...dict,\n [targetVar]: sourceTitle,\n },\n ];\n }\n } else if (rel === \":block/children\") {\n if (target.type !== \"variable\") {\n throw new Error(\n \"Expected target for :block/children to be a variable\"\n );\n }\n const targetEntry = dict[targetVar];\n const children = (\n isNode(targetEntry)\n ? [targetEntry.id]\n : (graph.state[sourceId]?.[\":block/children\"] || []).map(\n (c) => c[\":db/id\"] || 0\n )\n ).map((id) => ({\n ...dict,\n [targetVar]: { id },\n }));\n if (children.length) programs.vars.add(targetVar);\n return children;\n } else if (rel === \":block/parents\") {\n if (target.type !== \"variable\") {\n throw new Error(\n \"Expected target for :block/parents to be a variable\"\n );\n }\n const targetEntry = dict[targetVar];\n const ancestors = (\n isNode(targetEntry)\n ? [targetEntry.id]\n : (graph.state[sourceId]?.[\":block/parents\"] || []).map(\n (d) => d[\":db/id\"] || 0\n )\n ).map((id) => ({\n ...dict,\n [targetVar]: { id },\n }));\n if (ancestors.length) programs.vars.add(targetVar);\n return ancestors;\n } else if (rel === \":block/string\") {\n // if (target.type === \"constant\") {\n // if (graph.edges.blocksByUid[sourceId] === targetString) {\n // return [dict];\n // } else {\n // return [];\n // }\n // } else if (target.type === \"underscore\") {\n // return [dict];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: graph.edges.blocksByUid[sourceId],\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":block/heading\") {\n // if (target.type === \"constant\") {\n // if (\n // graph.edges.headingsByUid[sourceId] ===\n // Number(targetString)\n // ) {\n // return [dict];\n // } else {\n // return [];\n // }\n // } else if (target.type === \"underscore\") {\n // return [dict];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: graph.edges.headingsByUid[sourceId],\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":create/user\") {\n // if (target.type !== \"variable\") {\n // throw new Error(\n // \"Expected target for :create/user to be a variable\"\n // );\n // return [];\n // }\n // const targetEntry = dict[targetVar];\n // const userId = graph.edges.createUserByUid[sourceId];\n // if (isNode(targetEntry)) {\n // return targetEntry.id === userId ? [dict] : [];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: { uid: userId },\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":edit/user\") {\n // if (target.type !== \"variable\") {\n // throw new Error(\n // \"Expected target for :edit/user to be a variable\"\n // );\n // return [];\n // }\n // const targetEntry = dict[targetVar];\n // const userId = graph.edges.editUserByUid[sourceId];\n // if (isNode(targetEntry)) {\n // return targetEntry.id === userId ? [dict] : [];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: { uid: userId },\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":create/time\") {\n // if (target.type === \"constant\") {\n // if (\n // graph.edges.createTimeByUid[sourceId] ===\n // Number(targetString)\n // ) {\n // return [dict];\n // } else {\n // return [];\n // }\n // } else if (target.type === \"underscore\") {\n // return [dict];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: graph.edges.createTimeByUid[sourceId],\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":edit/time\") {\n // if (target.type === \"constant\") {\n // if (\n // graph.edges.editTimeByUid[sourceId] ===\n // Number(targetString)\n // ) {\n // return [dict];\n // } else {\n // return [];\n // }\n // } else if (target.type === \"underscore\") {\n // return [dict];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: graph.edges.editTimeByUid[sourceId],\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":user/display-name\") {\n // if (target.type === \"constant\") {\n // if (\n // graph.edges.userDisplayByUid[sourceId] === targetString\n // ) {\n // return [dict];\n // } else {\n // return [];\n // }\n // } else if (target.type === \"underscore\") {\n // return [dict];\n // } else {\n // programs.vars.add(targetVar);\n // return [\n // {\n // ...dict,\n // [targetVar]: graph.edges.userDisplayByUid[sourceId],\n // },\n // ];\n // }\n throw new Error(\"TODO\");\n } else {\n throw new Error(`Unknown rel: ${rel}`);\n }\n }\n );\n programs.assignments = new Set(newAssignments);\n } else if (\n target.type === \"variable\" &&\n programs.vars.has(targetVar)\n ) {\n const newAssignments = Array.from(programs.assignments).flatMap(\n (_dict) => {\n // const targetEntry = dict[targetVar];\n if (rel === \":block/refs\") {\n // if (!isNode(targetEntry)) {\n // throw new Error(\n // \"Expected the target variable to map to a node in :block/refs\"\n // );\n // return [];\n // }\n // const targetId = targetEntry.id;\n // const refs = (\n // graph.edges.linkedReferencesByUid[targetId] || []\n // ).map((ref) => ({\n // ...dict,\n // [v]: { uid: ref },\n // }));\n // if (refs.length) programs.vars.add(v);\n // return refs;\n throw new Error(\"TODO\");\n } else if (rel === \":block/page\") {\n // if (!isNode(targetEntry)) {\n // throw new Error(\n // \"Expected the target variable to map to a node in :block/page\"\n // );\n // return [];\n // }\n // const targetId = targetEntry.id;\n // if (!graph.edges.pagesByUid[targetId]) {\n // return [];\n // } else {\n // const children = Array.from(\n // graph.edges.descendantsByUid[targetId] || []\n // ).map((d) => ({\n // ...dict,\n // [v]: { uid: d },\n // }));\n // if (children.length) programs.vars.add(v);\n // return children;\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":node/title\") {\n // if (typeof targetEntry !== \"string\") {\n // throw new Error(\n // \"Expected the target variable to map to a string in :block/refs\"\n // );\n // return [];\n // }\n // const page = graph.edges.pageUidByTitle[targetEntry];\n // if (page) {\n // programs.vars.add(v);\n // return [\n // {\n // ...dict,\n // [v]: { uid: page },\n // },\n // ];\n // }\n // return [];\n throw new Error(\"TODO\");\n } else if (rel === \":block/children\") {\n // if (!isNode(targetEntry)) {\n // throw new Error(\n // \"Expected the target variable to map to a node in :block/children\"\n // );\n // }\n // const targetId = targetEntry.id;\n // const parent = graph.edges.parentByUid[targetId];\n // if (parent) {\n // programs.vars.add(v);\n // return [\n // {\n // ...dict,\n // [v]: { uid: parent },\n // },\n // ];\n // } else {\n // return [];\n // }\n throw new Error(\"TODO\");\n } else if (rel === \":block/parents\") {\n // if (!isNode(targetEntry)) {\n // throw new Error(\n // \"Expected the target variable to map to a node in :block/parents\"\n // );\n // return [];\n // }\n // const targetId = targetEntry.id;\n // const ancestors = Array.from(\n // graph.edges.ancestorsByUid[targetId] || []\n // ).map((child) => ({\n // ...dict,\n // [v]: { uid: child },\n // }));\n // if (ancestors.length) programs.vars.add(v);\n // return ancestors;\n throw new Error(\"TODO\");\n } else if (rel === \":block/string\") {\n // if (typeof targetEntry !== \"string\") {\n // throw new Error(\n // \"Expected the target variable to map to a string in :block/string\"\n // );\n // return [];\n // }\n // const blocks = Object.entries(graph.edges.blocksByUid)\n // .filter(([_, v]) => v === targetEntry)\n // .map(([child]) => ({\n // ...dict,\n // [v]: { uid: child },\n // }));\n // if (blocks.length) programs.vars.add(v);\n // return blocks;\n throw new Error(\"TODO\");\n } else if (rel === \":block/heading\") {\n // if (typeof targetEntry !== \"number\") {\n // throw new Error(\n // \"Expected the target variable to map to a number in :block/heading\"\n // );\n // return [];\n // }\n // const blocks = Object.entries(graph.edges.headingsByUid)\n // .filter(([_, v]) => v === targetEntry)\n // .map(([child]) => ({\n // ...dict,\n // [v]: { uid: child },\n // }));\n // if (blocks.length) programs.vars.add(v);\n // return blocks;\n throw new Error(\"TODO\");\n } else if (rel === \":create/user\") {\n // if (!isNode(targetEntry)) {\n // throw new Error(\n // \"Expected the target variable to map to a node in :create/user\"\n // );\n // }\n // const targetId = targetEntry.id;\n // const children = Object.keys(graph.edges.createUserByUid)\n // .filter(\n // (node) => graph.edges.createUserByUid[node] === targetId\n // )\n // .map((d) => ({\n // ...dict,\n // [v]: { uid: d },\n // }));\n // if (children.length) programs.vars.add(v);\n // return children;\n throw new Error(\"TODO\");\n } else if (rel === \":edit/user\") {\n // if (!isNode(targetEntry)) {\n // throw new Error(\n // \"Expected the target variable to map to a node in :edit/user\"\n // );\n // }\n // const targetId = targetEntry.id;\n // const children = Object.keys(graph.edges.editUserByUid)\n // .filter(\n // (node) =>\n // graph.edges.editUserByUid[Number(node)] === targetId\n // )\n // .map((d) => ({\n // ...dict,\n // [v]: { uid: d },\n // }));\n // if (children.length) programs.vars.add(v);\n // return children;\n throw new Error(\"TODO\");\n } else if (rel === \":create/time\") {\n // if (typeof targetEntry !== \"number\") {\n // throw new Error(\n // \"Expected the target variable to map to a number in :create/time\"\n // );\n // }\n // const blocks = Object.entries(graph.edges.createTimeByUid)\n // .filter(([_, v]) => v === targetEntry)\n // .map(([child]) => ({\n // ...dict,\n // [v]: { uid: child },\n // }));\n // if (blocks.length) programs.vars.add(v);\n // return blocks;\n throw new Error(\"TODO\");\n } else if (rel === \":edit/time\") {\n // if (typeof targetEntry !== \"number\") {\n // throw new Error(\n // \"Expected the target variable to map to a number in :edit/time\"\n // );\n // }\n // const blocks = Object.entries(graph.edges.editTimeByUid)\n // .filter(([_, v]) => v === targetEntry)\n // .map(([child]) => ({\n // ...dict,\n // [v]: { uid: child },\n // }));\n // if (blocks.length) programs.vars.add(v);\n // return blocks;\n throw new Error(\"TODO\");\n } else if (rel === \":user/display-name\") {\n // if (typeof targetEntry !== \"string\") {\n // throw new Error(\n // \"Expected the target variable to map to a string in :block/refs\"\n // );\n // }\n // const displayName = targetEntry\n // .replace(/^\"/, \"\")\n // .replace(/\"$/, \"\");\n // const user = graph.edges.userUidByDisplay[displayName];\n // if (user) {\n // programs.vars.add(v);\n // return [\n // {\n // ...dict,\n // [v]: { uid: user },\n // },\n // ];\n // }\n // return [];\n throw new Error(\"TODO\");\n } else {\n throw new Error(`Unknown rel: ${rel}`);\n }\n }\n );\n programs.assignments = new Set(newAssignments);\n } else {\n const matches: Assignment[] | Error =\n rel === \":children/view-type\"\n ? target.type === \"constant\"\n ? Object.values(graph.uids)\n .filter(\n (id) =>\n graph.state[id][\":children/view-type\"] !==\n targetString\n )\n .map((id) => ({ [sourceVar]: { id } }))\n : target.type === \"underscore\"\n ? Object.values(graph.uids).map((id) => ({\n [sourceVar]: { id },\n }))\n : Object.values(graph.uids).map((id) => ({\n [sourceVar]: { id },\n [targetVar]:\n graph.state[id][\":children/view-type\"] || \":bullet\",\n }))\n : rel === \":block/uid\"\n ? target.type === \"constant\"\n ? [{ [sourceVar]: { id: graph.uids[target.value] } }]\n : target.type === \"underscore\"\n ? Object.values(graph.uids).map((id) => ({\n [sourceVar]: { id },\n }))\n : Object.entries(graph.uids).map(([uid, id]) => ({\n [sourceVar]: { id },\n [targetVar]: uid,\n }))\n : new Error(`Unknown rel: ${rel}`);\n /*\n rel === \":block/refs\"\n ? target.type !== \"variable\"\n ? []\n : Object.entries(graph.edges.referencesByUid).flatMap(\n ([source, refs]) =>\n refs.map((ref) => ({\n [v]: { uid: source },\n [targetVar]: { uid: ref },\n }))\n )\n : rel === \":block/page\"\n ? target.type !== \"variable\"\n ? []\n : Object.entries(graph.edges.blocksPageByUid).map(\n ([b, p]) => ({\n [v]: { uid: b },\n [targetVar]: { uid: p },\n })\n )\n : rel === \":node/title\"\n ? target.type === \"constant\"\n ? graph.edges.pageUidByTitle[targetString]\n ? [\n {\n [v]: {\n uid: graph.edges.pageUidByTitle[targetString],\n },\n },\n ]\n : []\n : target.type === \"underscore\"\n ? Object.values(graph.edges.pageUidByTitle).map((uid) => ({\n [v]: { uid },\n }))\n : Object.entries(graph.edges.pageUidByTitle).map(\n ([title, uid]) => ({\n [v]: { uid },\n [targetVar]: title,\n })\n )\n : rel === \":block/children\"\n ? target.type !== \"variable\"\n ? []\n : Object.entries(graph.edges.childrenByUid).flatMap(\n ([source, refs]) =>\n refs.map((ref) => ({\n [v]: { uid: source },\n [targetVar]: { uid: ref },\n }))\n )\n : rel === \":block/parents\"\n ? target.type !== \"variable\"\n ? []\n : Object.entries(graph.edges.ancestorsByUid).flatMap(\n ([source, refs]) =>\n Array.from(refs).map((ref) => ({\n [v]: { uid: source },\n [targetVar]: { uid: ref },\n }))\n )\n : rel === \":block/string\"\n ? target.type === \"constant\"\n ? Object.entries(graph.edges.blocksByUid)\n .filter(([_, text]) => text !== targetString)\n .map(([uid]) => ({ [v]: { uid } }))\n : target.type === \"underscore\"\n ? Object.keys(graph.edges.blocksByUid).map((uid) => ({\n [v]: { uid },\n }))\n : Object.entries(graph.edges.blocksByUid).map(\n ([uid, text]) => ({\n [v]: { uid },\n [targetVar]: text,\n })\n )\n : rel === \":block/heading\"\n ? target.type === \"constant\"\n ? Object.entries(graph.edges.headingsByUid)\n .filter(([_, text]) => text !== Number(targetString))\n .map(([uid]) => ({ [v]: { uid } }))\n : target.type === \"underscore\"\n ? Object.keys(graph.edges.headingsByUid).map((uid) => ({\n [v]: { uid },\n }))\n : Object.entries(graph.edges.headingsByUid).map(\n ([uid, text]) => ({\n [v]: { uid },\n [targetVar]: text,\n })\n )\n : rel === \":create/user\"\n ? target.type !== \"variable\"\n ? []\n : Object.entries(graph.edges.createUserByUid).map(\n ([b, p]) => ({\n [v]: { uid: b },\n [targetVar]: { uid: p },\n })\n )\n : rel === \":edit/user\"\n ? target.type !== \"variable\"\n ? []\n : Object.entries(graph.edges.editUserByUid).map(([b, p]) => ({\n [v]: { uid: b },\n [targetVar]: { uid: p },\n }))\n : rel === \":create/time\"\n ? target.type === \"constant\"\n ? Object.entries(graph.edges.createTimeByUid)\n .filter(([_, text]) => text !== Number(targetString))\n .map(([uid]) => ({ [v]: { uid } }))\n : target.type === \"underscore\"\n ? Object.keys(graph.edges.createTimeByUid).map((uid) => ({\n [v]: { uid },\n }))\n : Object.entries(graph.edges.createTimeByUid).map(\n ([uid, text]) => ({\n [v]: { uid },\n [targetVar]: text,\n })\n )\n : rel === \":edit/time\"\n ? target.type === \"constant\"\n ? Object.entries(graph.edges.editTimeByUid)\n .filter(([_, text]) => text !== Number(targetString))\n .map(([uid]) => ({ [v]: { uid } }))\n : target.type === \"underscore\"\n ? Object.keys(graph.edges.editTimeByUid).map((uid) => ({\n [v]: { uid },\n }))\n : Object.entries(graph.edges.editTimeByUid).map(\n ([uid, text]) => ({\n [v]: { uid },\n [targetVar]: text,\n })\n )\n : rel === \":user/display-name\"\n ? target.type === \"constant\"\n ? graph.edges.userUidByDisplay[targetString]\n ? [\n {\n [v]: {\n uid: graph.edges.userUidByDisplay[targetString],\n },\n },\n ]\n : []\n : target.type === \"underscore\"\n ? Object.values(graph.edges.userUidByDisplay).map((uid) => ({\n [v]: { uid },\n }))\n : Object.entries(graph.edges.userUidByDisplay).map(\n ([title, uid]) => ({\n [v]: { uid },\n [targetVar]: title,\n })\n )*/\n if (matches instanceof Error) {\n throw matches;\n }\n reconcile(\n matches,\n target.type === \"variable\" ? [sourceVar, targetVar] : [sourceVar]\n );\n }\n } else if (\n clause.type === \"or-clause\" ||\n clause.type === \"or-join-clause\"\n ) {\n let matches: Assignment[] = [];\n for (const cls of clause.clauses) {\n const assignments = getAssignments(\n [cls],\n Array.from(programs.vars)\n );\n if (assignments.size) {\n matches = Array.from(assignments);\n break;\n }\n }\n const vars =\n clause.type === \"or-join-clause\"\n ? clause.variables.map((v) => v.value)\n : Object.keys(matches[0] || {});\n const varSet = new Set(vars);\n matches.forEach((a) => {\n Object.keys(a).forEach((k) => {\n if (!varSet.has(k)) {\n delete a[k];\n }\n });\n });\n reconcile(matches, vars);\n } else if (clause.type === \"and-clause\") {\n const matches = Array.from(\n getAssignments(clause.clauses, Array.from(programs.vars))\n );\n reconcile(matches, Object.keys(matches[0] || {}));\n } else if (clause.type === \"pred-expr\") {\n if (clause.pred === \"clojure.string/includes?\") {\n const [variable, constant] = clause.arguments;\n if (variable?.type !== \"variable\") {\n throw new Error(\n \"Expected type to be variable for first clojure.string/includes? argument.\"\n );\n }\n const v = variable.value;\n if (!programs.vars.has(v)) {\n throw new Error(\n \"Expected first clojure.string/includes? argument to be predefined variable.\"\n );\n }\n if (constant?.type !== \"constant\") {\n throw new Error(\n \"Expected type to be constant for second clojure.string/includes? argument.\"\n );\n }\n const newAssignments = Array.from(programs.assignments).flatMap(\n (dict) => {\n const sourceEntry = dict[v];\n if (typeof sourceEntry !== \"string\") {\n throw new Error(\"Expected the variable to map to a string\");\n }\n if (\n sourceEntry.includes(\n constant.value.replace(/^\"/, \"\").replace(/\"$/, \"\")\n )\n ) {\n return [dict];\n } else {\n return [];\n }\n }\n );\n programs.assignments = new Set(newAssignments);\n } else if (clause.pred === \"clojure.string/starts-with?\") {\n const [variable, constant] = clause.arguments;\n const v = variable.value;\n if (variable?.type !== \"variable\") {\n throw new Error(\n \"Expected type to be variable for first clojure.string/starts-with? argument.\"\n );\n }\n if (!programs.vars.has(v)) {\n throw new Error(\n \"Expected first clojure.string/starts-with? argument to be predefined variable.\"\n );\n }\n if (constant?.type !== \"constant\") {\n throw new Error(\n \"Expected type to be constant for second clojure.string/starts-with? argument.\"\n );\n }\n const newAssignments = Array.from(programs.assignments).flatMap(\n (dict) => {\n const sourceEntry = dict[v];\n if (typeof sourceEntry !== \"string\") {\n throw new Error(\"Expected the variable to map to a string\");\n return [];\n }\n if (\n sourceEntry.startsWith(\n constant.value.replace(/^\"/, \"\").replace(/\"$/, \"\")\n )\n ) {\n return [dict];\n } else {\n return [];\n }\n }\n );\n programs.assignments = new Set(newAssignments);\n } else if (clause.pred === \"clojure.string/ends-with?\") {\n const [variable, constant] = clause.arguments;\n const v = variable.value;\n if (variable?.type !== \"variable\") {\n throw new Error(\n \"Expected type to be variable for first clojure.string/ends-with? argument.\"\n );\n }\n if (!programs.vars.has(v)) {\n throw new Error(\n \"Expected first clojure.string/ends-with? argument to be predefined variable.\"\n );\n }\n if (constant?.type !== \"constant\") {\n throw new Error(\n \"Expected type to be constant for second clojure.string/ends-with? argument.\"\n );\n }\n const newAssignments = Array.from(programs.assignments).flatMap(\n (dict) => {\n const sourceEntry = dict[v];\n if (typeof sourceEntry !== \"string\") {\n throw new Error(\"Expected the variable to map to a string\");\n }\n if (\n sourceEntry.endsWith(\n constant.value.replace(/^\"/, \"\").replace(/\"$/, \"\")\n )\n ) {\n return [dict];\n } else {\n return [];\n }\n }\n );\n programs.assignments = new Set(newAssignments);\n } else if (clause.pred === \"re-find\") {\n const [regex, variable] = clause.arguments;\n const v = variable.value;\n const r = regex.value;\n if (variable?.type !== \"variable\") {\n throw new Error(\n \"Expected type to be variable for first re-find argument.\"\n );\n }\n if (!programs.vars.has(v)) {\n throw new Error(\n \"Expected first re-find argument to be predefined variable.\"\n );\n }\n if (regex?.type !== \"variable\") {\n throw new Error(\n \"Expected type to be variable for second re-find argument.\"\n );\n }\n if (!programs.vars.has(r)) {\n throw new Error(\n \"Expected second re-find argument to be predefined variable.\"\n );\n }\n const newAssignments = Array.from(programs.assignments).filter(\n (dict) => {\n const regexEntry = dict[r];\n if (!(regexEntry instanceof RegExp)) {\n throw new Error(\"Expected the variable to map to a regexp\");\n }\n const targetEntry = dict[v];\n if (typeof targetEntry !== \"string\") {\n throw new Error(\"Expected the variable to map to a string\");\n }\n return regexEntry.test(targetEntry);\n }\n );\n programs.assignments = new Set(newAssignments);\n } else if (clause.pred === \">\") {\n const [left, right] = clause.arguments;\n const l = left.value;\n const r = right.value;\n if (left?.type === \"variable\" && !programs.vars.has(l)) {\n throw new Error(\n \"If left argument is a variable, it must be predefined\"\n );\n }\n if (right?.type === \"variable\" && !programs.vars.has(r)) {\n throw new Error(\n \"If right argument is a variable, it must be predefined\"\n );\n }\n const newAssignments = Array.from(programs.assignments).filter(\n (dict) => {\n const leftValue =\n left.type === \"constant\" ? Number(left.value) : dict[r];\n if (typeof leftValue !== \"number\") {\n throw new Error(\"Left argument must be a number\");\n }\n const rightValue =\n right.type === \"constant\" ? Number(right.value) : dict[r];\n if (typeof rightValue !== \"number\") {\n throw new Error(\"Right argument must be a number\");\n }\n return leftValue > rightValue;\n }\n );\n programs.assignments = new Set(newAssignments);\n } else if (clause.pred === \"<\") {\n const [left, right] = clause.arguments;\n const l = left.value;\n const r = right.value;\n if (left?.type === \"variable\" && !programs.vars.has(l)) {\n throw new Error(\n \"If left argument is a variable, it must be predefined\"\n );\n }\n if (right?.type === \"variable\" && !programs.vars.has(r)) {\n throw new Error(\n \"If right argument is a variable, it must be predefined\"\n );\n }\n const newAssignments = Array.from(programs.assignments).filter(\n (dict) => {\n const leftValue =\n left.type === \"constant\" ? Number(left.value) : dict[r];\n if (typeof leftValue !== \"number\") {\n throw new Error(\"Left argument must be a number\");\n }\n const rightValue =\n right.type === \"constant\" ? Number(right.value) : dict[r];\n if (typeof rightValue !== \"number\") {\n throw new Error(\"Right argument must be a number\");\n }\n return leftValue < rightValue;\n }\n );\n programs.assignments = new Set(newAssignments);\n } else {\n throw new Error(`Unexpected predicate ${clause.pred}`);\n }\n } else if (clause.type === \"fn-expr\") {\n if (clause.fn === \"re-pattern\") {\n const [constant] = clause.arguments;\n if (constant?.type !== \"constant\") {\n throw new Error(\n \"Expected type to be constant for first re-pattern argument.\"\n );\n }\n const { binding } = clause;\n if (binding.type !== \"bind-scalar\") {\n throw new Error(\n \"Expected type to be scalar for first re-pattern binding.\"\n );\n }\n const newAssignments = Array.from(programs.assignments).map(\n (dict) => {\n return {\n ...dict,\n [binding.variable.value]: new RegExp(\n constant.value.replace(/^\"/, \"\").replace(/\"$/, \"\")\n ),\n };\n }\n );\n programs.assignments = new Set(newAssignments);\n } else {\n throw new Error(`Unexpected fn name ${clause.fn}`);\n }\n } else {\n throw new Error(`Unexpected type ${clause.type}`);\n }\n return programs;\n },\n {\n assignments: new Set<Assignment>([]),\n vars: new Set<string>(initialVars),\n }\n ).assignments;\n };\n const assignments = getAssignments(where);\n const results = Array.from(assignments).map((res) =>\n find.elements.map((el) => {\n if (el.type === \"variable\") {\n const node = res[el.value];\n if (isNode(node)) {\n return node.id;\n } else if (node instanceof RegExp) {\n return node.source;\n } else {\n return node;\n }\n } else if (el.type === \"pull\") {\n const node = res[el.variable.value];\n if (typeof node === \"undefined\") {\n throw new Error(\n `Failed to find ${el.variable.value} in result: ${JSON.stringify(\n res\n )}`\n );\n }\n if (el.pattern.type === \"pattern-data-literal\") {\n if (isNode(node)) {\n const result = graph.state[node.id];\n return resolvePattern(el.pattern.value, result, graph);\n } else {\n throw new Error(\n `Unexpected pull variable: ${el.variable.value} - ${node}`\n );\n }\n } else {\n throw new Error(\n `Unexpected pull element pattern type: ${el.pattern.type}`\n );\n }\n }\n throw new Error(`Unexpected Find element type: ${el.type}`);\n })\n );\n return results;\n};\n\nconst mockQuery = ({ graph, query }: { graph: Graph; query: string }) => {\n const data = parseEDNString(query) as EDNValue[];\n const findIndex = data.findIndex(\n (d) => typeof d === \"object\" && \"key\" in d && d.key === \"find\"\n );\n const whereIndex = data.findIndex(\n (d) => typeof d === \"object\" && \"key\" in d && d.key === \"where\"\n );\n const findPattern = data.slice(findIndex + 1, whereIndex);\n const find: DatalogFind = {\n type: \"rel\",\n elements: findPattern.map((p): DatalogFind[\"elements\"][number] => {\n if (typeof p !== \"object\") {\n throw new Error(\n `Unexpected type for datalog find, looking for object: ${JSON.stringify(\n p\n )}`\n );\n }\n if (\"sym\" in p) return { type: \"variable\" as const, value: p.sym };\n if (\"list\" in p) {\n const [pull, name, attrs] = p.list;\n if (\n typeof pull !== \"object\" ||\n !(\"sym\" in pull) ||\n pull.sym !== \"pull\"\n ) {\n throw new Error(\n `Expected first edn value to be a pull symbol. Found: ${JSON.stringify(\n p\n )}`\n );\n }\n if (typeof name !== \"object\" || !(\"sym\" in name)) {\n throw new Error(\n `Expected second edn value to be a pull symbol. Found: ${JSON.stringify(\n p\n )}`\n );\n }\n if (!Array.isArray(attrs)) {\n throw new Error(\n `Expected third edn value to be an array. Found: ${JSON.stringify(\n p\n )}`\n );\n }\n return {\n type: \"pull\",\n variable: { type: \"variable\", value: name.sym.replace(/^\\?/, \"\") },\n pattern: {\n type: \"pattern-data-literal\",\n value: attrs.map((attr): DatalogPullAttr => {\n if (typeof attr === \"object\" && \"key\" in attr) {\n return {\n type: \"constant\",\n value: `:${attr.key}`,\n };\n }\n if (Array.isArray(attr)) {\n const [name, expr, option] = attr;\n if (typeof name !== \"object\" || !(\"key\" in name)) {\n throw new Error(\n `Expected attribute expression to start with key. Found: ${JSON.stringify(\n attr\n )}`\n );\n }\n if (\n typeof expr !== \"object\" ||\n !(\"key\" in expr) ||\n ![\"as\", \"limit\", \"default\"].includes(expr.key)\n ) {\n throw new Error(\n `Expected attribute expression to have second key :as, :limit, or :default. Found: ${JSON.stringify(\n attr\n )}`\n );\n }\n if (typeof option !== \"string\") {\n throw new Error(\n `Expected attribute expression to end with literal. Found: ${JSON.stringify(\n attr\n )}`\n );\n }\n const pullOption: DatalogPullOption | undefined =\n expr.key === \"as\"\n ? { type: \"as-expr\", value: option }\n : undefined; // should be impossible\n if (!pullOption) {\n throw new Error(\n `Expected attribute expression to be an \\`as\\` key. Found: ${JSON.stringify(\n expr\n )}`\n );\n }\n return {\n type: \"attr-expr\",\n name: `:${name.key}`,\n option: pullOption,\n };\n }\n if (typeof attr === \"object\" && \"map\" in attr) {\n return {\n type: \"map-spec\",\n entries: attr.map.map((entry) => {\n const [key, value] = entry;\n if (typeof key !== \"object\" || !(\"key\" in key)) {\n throw new Error(\n `Unexpected pattern map key. Found: ${JSON.stringify(\n entry\n )}`\n );\n }\n if (\n typeof value !== \"object\" ||\n !(\"sym\" in value) ||\n value.sym !== \"...\"\n ) {\n throw new Error(\n `Unexpected pattern map value. Found: ${JSON.stringify(\n entry\n )}`\n );\n }\n return {\n key: `:${key.key}`,\n value: value.sym,\n };\n }),\n };\n }\n throw new Error(\n `Unexpected pattern literal attribute. Found: ${JSON.stringify(\n attr\n )}`\n );\n }),\n },\n };\n }\n throw new Error(\n `Unexpected object for datalog find: ${JSON.stringify(p)}`\n );\n }),\n };\n const wherePattern = data.slice(whereIndex + 1);\n const toDatalog = (e: EDNValue): DatalogClause => {\n if (Array.isArray(e)) {\n if (e.length === 3) {\n return {\n type: \"data-pattern\",\n arguments: e.map((a) => {\n if (typeof a === \"object\") {\n if (\"key\" in a) {\n return {\n type: \"constant\",\n value: `:${a.key}`,\n };\n } else if (\"sym\" in a) {\n return {\n type: \"variable\",\n value: a.sym.slice(1),\n };\n } else {\n throw new Error(\n `Expected data-pattern argument to come from non array EDN: ${JSON.stringify(\n a\n )}`\n );\n }\n } else {\n return {\n type: \"constant\",\n value: a,\n };\n }\n }),\n };\n }\n }\n throw new Error(`Unknown value for datalog clause: ${JSON.stringify(e)}`);\n };\n const where = wherePattern.map(toDatalog);\n return fireQuery({ graph, find, where });\n};\n\nconst mockRoamEnvironment = () => {\n const graph = initMockGraph();\n const dom = new JSDOM();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n global.window = dom.window;\n global.document = dom.window.document;\n global.window.roamAlphaAPI = {\n ...global.window.roamAlphaAPI,\n pull: (_, id) => {\n const pick = (node: PullBlock) => {\n // TODO - process exp\n return node;\n };\n if (Array.isArray(id)) {\n const [attr, val] = id;\n if (attr === \":block/uid\") {\n return pick(graph.state[graph.uids[val]]);\n } else if (attr === \":node/title\") {\n return pick(graph.state[graph.titles[val]]);\n } else {\n throw new Error(`Attr is not supported: ${attr}`);\n }\n } else if (typeof id === \"number\") {\n return pick(graph.state[id]);\n } else {\n throw new Error(`Id is not supported: ${id}`);\n }\n },\n q: (query, ..._params) => {\n return mockQuery({ graph, query });\n },\n createBlock: async (action) => {\n if (!action.block) throw new Error(`block field is required`);\n if (!action.location) throw new Error(`location field is required`);\n const parent = graph.uids[action.location[\"parent-uid\"]];\n if (!parent)\n throw new Error(\n `Could not find parent by uid: ${action.location[\"parent-uid\"]}`\n );\n const parentBlock = graph.state[parent];\n const id = getDbId();\n const block = {\n \":block/string\": action.block.string,\n \":block/uid\":\n action.block.uid || window.roamAlphaAPI.util.generateUID(),\n \":block/parents\": ([{ \":db/id\": parent }] as PullBlock[]).concat(\n parentBlock[\":block/parents\"] || []\n ),\n \":db/id\": id,\n \":block/order\": action.location.order,\n };\n graph.uids[block[\":block/uid\"]] = id;\n parentBlock[\":block/children\"] = (\n parentBlock[\":block/children\"] || []\n ).concat({ \":db/id\": id });\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n graph.state[id] = block;\n },\n updateBlock: async (action) => {\n if (!action.block) throw new Error(`block field is required`);\n if (!action.block.uid) throw new Error(`block uid is required`);\n const block = graph.uids[action.block.uid];\n if (!block) {\n throw new Error(`Could not find block by uid: ${action.block.uid}`);\n }\n if (typeof action.block.string !== \"undefined\") {\n graph.state[block][\":block/string\"] = action.block.string;\n }\n if (typeof action.block.open !== \"undefined\") {\n graph.state[block][\":block/open\"] = action.block.open;\n }\n if (typeof action.block.heading !== \"undefined\") {\n graph.state[block][\":block/heading\"] = action.block.heading;\n }\n if (typeof action.block[\"text-align\"] !== \"undefined\") {\n graph.state[block][\":block/text-align\"] = action.block[\"text-align\"];\n }\n if (typeof action.block[\"children-view-type\"] !== \"undefined\") {\n graph.state[block][\n \":children/view-type\"\n ] = `:${action.block[\"children-view-type\"]}`;\n }\n },\n createPage: async (action) => {\n if (!action.page) throw new Error(`page field is required`);\n if (!action.page.title) throw new Error(`page title field is required`);\n const id = getDbId();\n const page = {\n \":node/title\": action.page.title,\n \":block/uid\": action.page.uid || window.roamAlphaAPI.util.generateUID(),\n \":db/id\": id,\n };\n graph.titles[action.page.title] = id;\n graph.uids[page[\":block/uid\"]] = id;\n graph.state[id] = page;\n },\n };\n global.window.roamAlphaAPI.data = {\n ...global.window.roamAlphaAPI.data,\n fast: {\n q: (query, ..._params) => {\n return mockQuery({ graph, query });\n },\n },\n };\n global.window.roamAlphaAPI.util = {\n ...global.window.roamAlphaAPI.util,\n generateUID: () => nanoid().slice(0, 9),\n };\n};\n\nexport default mockRoamEnvironment;\n"]}
@@ -0,0 +1,389 @@
1
+ import { AddPullWatch, PullBlock, SidebarAction, SidebarWindow, SidebarWindowInput, WriteAction } from "./native";
2
+ import { RunQuery, ListActiveQueries, RunQuerySync, IsDiscourseNode } from "./query-builder";
3
+ import { RegisterCommand, UnregisterCommand } from "./smartblocks";
4
+ import type marked from "marked";
5
+ import type Markdown from "marked-react";
6
+ import type JSZip from "jszip";
7
+ import type cytoscape from "cytoscape";
8
+ export * from "./native";
9
+ export declare type Registry = {
10
+ elements: HTMLElement[];
11
+ reactRoots: HTMLElement[];
12
+ observers: MutationObserver[];
13
+ domListeners: ({
14
+ el: Window;
15
+ type: keyof WindowEventMap;
16
+ listener: (this: Window, ev: WindowEventMap[keyof WindowEventMap]) => void;
17
+ } | {
18
+ el: Document;
19
+ type: keyof DocumentEventMap;
20
+ listener: (this: Document, ev: DocumentEventMap[keyof DocumentEventMap]) => void;
21
+ } | {
22
+ el: HTMLElement;
23
+ type: keyof HTMLElementEventMap | `roamjs:${string}`;
24
+ listener: (this: HTMLElement, ev: HTMLElementEventMap[keyof HTMLElementEventMap]) => void;
25
+ })[];
26
+ commands: string[];
27
+ timeouts: {
28
+ timeout: number;
29
+ }[];
30
+ };
31
+ declare global {
32
+ interface Window {
33
+ RoamLazy?: {
34
+ JSZip: () => Promise<typeof JSZip>;
35
+ Marked: () => Promise<typeof marked>;
36
+ MarkedReact: () => Promise<typeof Markdown>;
37
+ Cytoscape: () => Promise<typeof cytoscape>;
38
+ Insect: () => Promise<{
39
+ commands: string[];
40
+ fmtConsole: (M: unknown) => unknown;
41
+ fmtJqueryTerminal: (M: unknown) => unknown;
42
+ fmtPlain: (M: unknown) => unknown;
43
+ functions: (M: unknown) => unknown;
44
+ identifiers: (M: unknown) => unknown;
45
+ initialEnvironment: {
46
+ values: unknown;
47
+ functions: unknown;
48
+ };
49
+ repl: (fmt: (M: unknown) => unknown) => (env: {
50
+ values: unknown;
51
+ functions: unknown;
52
+ }) => (s: string) => {
53
+ msg: string;
54
+ };
55
+ }>;
56
+ };
57
+ roamAlphaAPI: {
58
+ q: (query: string, ...params: unknown[]) => unknown[][];
59
+ pull: (selector: string, id: number | string | [string, string]) => PullBlock;
60
+ createBlock: WriteAction;
61
+ updateBlock: WriteAction;
62
+ createPage: WriteAction;
63
+ moveBlock: WriteAction;
64
+ deleteBlock: WriteAction;
65
+ updatePage: WriteAction;
66
+ deletePage: WriteAction;
67
+ util: {
68
+ generateUID: () => string;
69
+ dateToPageTitle: (date: Date) => string;
70
+ dateToPageUid: (date: Date) => string;
71
+ pageTitleToDate: (title: string) => Date | null;
72
+ uploadFile: (args: {
73
+ file: File;
74
+ }) => string;
75
+ };
76
+ data: {
77
+ addPullWatch: AddPullWatch;
78
+ block: {
79
+ create: WriteAction;
80
+ update: WriteAction;
81
+ move: WriteAction;
82
+ delete: WriteAction;
83
+ reorderBlocks: (args: {
84
+ location: {
85
+ "parent-uid": string;
86
+ };
87
+ blocks: string[];
88
+ }) => Promise<void>;
89
+ };
90
+ fast: {
91
+ q: (query: string, ...params: unknown[]) => unknown[][];
92
+ };
93
+ async: {
94
+ q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;
95
+ pull: (selector: string, id: number | string | [string, string]) => Promise<PullBlock>;
96
+ pull_many: (pattern: string, eids: string[][]) => Promise<PullBlock[]>;
97
+ fast: {
98
+ q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;
99
+ };
100
+ };
101
+ backend: {
102
+ q: (query: string, ...params: unknown[]) => unknown[][];
103
+ };
104
+ page: {
105
+ create: WriteAction;
106
+ update: WriteAction;
107
+ delete: WriteAction;
108
+ };
109
+ pull: (selector: string, id: number | string | [string, string]) => PullBlock;
110
+ pull_many: (pattern: string, eids: string[][]) => PullBlock[];
111
+ q: (query: string, ...params: unknown[]) => unknown[][];
112
+ removePullWatch: (pullPattern: string, entityId: string, callback?: (before: PullBlock, after: PullBlock) => void) => boolean;
113
+ redo: () => void;
114
+ undo: () => void;
115
+ user: {
116
+ upsert: () => void;
117
+ };
118
+ };
119
+ ui: {
120
+ leftSidebar: {
121
+ open: () => Promise<void>;
122
+ close: () => Promise<void>;
123
+ };
124
+ rightSidebar: {
125
+ open: () => Promise<void>;
126
+ close: () => Promise<void>;
127
+ getWindows: () => SidebarWindow[];
128
+ addWindow: SidebarAction;
129
+ setWindowOrder: SidebarAction;
130
+ collapseWindow: SidebarAction;
131
+ pinWindow: (action: {
132
+ window: SidebarWindowInput;
133
+ "pin-to-top?"?: boolean;
134
+ }) => Promise<void>;
135
+ expandWindow: SidebarAction;
136
+ removeWindow: SidebarAction;
137
+ unpinWindow: SidebarAction;
138
+ };
139
+ commandPalette: {
140
+ addCommand: (action: {
141
+ label: string;
142
+ callback: () => void;
143
+ "disable-hotkey"?: boolean;
144
+ "default-hotkey"?: string | string[];
145
+ }) => Promise<void>;
146
+ removeCommand: (action: {
147
+ label: string;
148
+ }) => Promise<void>;
149
+ };
150
+ blockContextMenu: {
151
+ addCommand: (action: {
152
+ label: string;
153
+ callback: (props: {
154
+ "block-string": string;
155
+ "block-uid": string;
156
+ heading: 0 | 1 | 2 | 3 | null;
157
+ "page-uid": string;
158
+ "read-only?": boolean;
159
+ "window-id": string;
160
+ }) => void;
161
+ }) => void;
162
+ removeCommand: (action: {
163
+ label: string;
164
+ }) => void;
165
+ };
166
+ individualMultiselect: {
167
+ getSelectedUids: () => string[];
168
+ };
169
+ msContextMenu: {
170
+ addCommand: (action: {
171
+ label: string;
172
+ callback: () => void;
173
+ "display-conditional"?: () => boolean;
174
+ }) => void;
175
+ removeCommand: (action: {
176
+ label: string;
177
+ }) => void;
178
+ };
179
+ filters: {
180
+ addGlobalFilter: (args: {
181
+ title: string;
182
+ type: "includes" | "removes";
183
+ }) => Promise<void>;
184
+ removeGlobalFilter: (args: {
185
+ title: string;
186
+ type: "includes" | "removes";
187
+ }) => Promise<void>;
188
+ getGlobalFilters: () => {
189
+ includes: string[];
190
+ removes: string[];
191
+ };
192
+ getPageFilters: (args: {
193
+ page: {
194
+ uid?: string;
195
+ title?: string;
196
+ };
197
+ }) => {
198
+ includes: string[];
199
+ removes: string[];
200
+ };
201
+ getPageLinkedRefsFilters: (args: {
202
+ page: {
203
+ uid?: string;
204
+ title?: string;
205
+ };
206
+ }) => {
207
+ includes: string[];
208
+ removes: string[];
209
+ };
210
+ getSidebarWindowFilters: (args: {
211
+ window: SidebarWindowInput;
212
+ }) => {
213
+ includes: string[];
214
+ removes: string[];
215
+ };
216
+ setPageFilters: (args: {
217
+ page: {
218
+ uid?: string;
219
+ title?: string;
220
+ };
221
+ filters: {
222
+ includes?: string[];
223
+ removes?: string[];
224
+ };
225
+ }) => Promise<void>;
226
+ setPageLinkedRefsFilters: (args: {
227
+ page: {
228
+ uid?: string;
229
+ title?: string;
230
+ };
231
+ filters: {
232
+ includes?: string[];
233
+ removes?: string[];
234
+ };
235
+ }) => Promise<void>;
236
+ setSidebarWindowFilters: (args: {
237
+ window: SidebarWindowInput;
238
+ filters: {
239
+ includes?: string[];
240
+ removes?: string[];
241
+ };
242
+ }) => Promise<void>;
243
+ };
244
+ getFocusedBlock: () => null | {
245
+ "window-id": string;
246
+ "block-uid": string;
247
+ };
248
+ components: {
249
+ renderBlock: (args: {
250
+ uid: string;
251
+ el: HTMLElement;
252
+ "zoom-path?"?: boolean;
253
+ }) => null;
254
+ renderPage: (args: {
255
+ uid: string;
256
+ el: HTMLElement;
257
+ "hide-mentions?"?: boolean;
258
+ }) => null;
259
+ renderSearch: (args: {
260
+ "search-query-str": string;
261
+ el: HTMLElement;
262
+ "closed?"?: boolean;
263
+ "group-by-page?"?: boolean;
264
+ "hide-paths?"?: boolean;
265
+ "config-changed-callback"?: (config: unknown) => void;
266
+ }) => null;
267
+ unmountNode: (args: {
268
+ el: HTMLElement;
269
+ }) => void;
270
+ };
271
+ graphView: {
272
+ addCallback: (props: {
273
+ label: string;
274
+ callback: (context: {
275
+ cytoscape: unknown;
276
+ elements: unknown[];
277
+ type: "page" | "all-pages";
278
+ }) => void;
279
+ type?: "page" | "all-pages";
280
+ }) => Promise<void>;
281
+ removeCallback: (props: {
282
+ label: string;
283
+ }) => Promise<void>;
284
+ wholeGraph: {
285
+ addCallback: (props: {
286
+ label: string;
287
+ callback: (arg: {
288
+ "sigma-renderer": unknown;
289
+ }) => void;
290
+ }) => any;
291
+ removeCallback: (props: {
292
+ label: string;
293
+ }) => void;
294
+ setExplorePages: (pages: string[]) => void;
295
+ getExplorePages: () => string[];
296
+ setMode: (mode: "Whole Graph" | "Explore") => void;
297
+ };
298
+ };
299
+ mainWindow: {
300
+ focusFirstBlock: () => Promise<void>;
301
+ openBlock: (p: {
302
+ block: {
303
+ uid: string;
304
+ };
305
+ }) => Promise<void>;
306
+ openPage: (p: {
307
+ page: {
308
+ uid: string;
309
+ } | {
310
+ title: string;
311
+ };
312
+ }) => Promise<void>;
313
+ getOpenPageOrBlockUid: () => Promise<string | null>;
314
+ openDailyNotes: () => Promise<void>;
315
+ };
316
+ setBlockFocusAndSelection: (a: {
317
+ location?: {
318
+ "block-uid": string;
319
+ "window-id": string;
320
+ };
321
+ selection?: {
322
+ start: number;
323
+ end?: number;
324
+ };
325
+ }) => Promise<void>;
326
+ };
327
+ platform: {
328
+ isDesktop: boolean;
329
+ isIOS: boolean;
330
+ isMobile: boolean;
331
+ isMobileApp: boolean;
332
+ isPC: boolean;
333
+ isTouchDevice: boolean;
334
+ };
335
+ graph: {
336
+ name: string;
337
+ type: "hosted" | "offline";
338
+ isEncrypted: boolean;
339
+ };
340
+ file: {
341
+ upload: (args: {
342
+ file: File;
343
+ toast?: {
344
+ hide: boolean;
345
+ };
346
+ }) => Promise<string>;
347
+ get: (args: {
348
+ url: string;
349
+ }) => Promise<File>;
350
+ delete: (args: {
351
+ url: string;
352
+ }) => Promise<void>;
353
+ };
354
+ user: {
355
+ uid: () => string | null;
356
+ };
357
+ constants: {
358
+ corsAnywhereProxyUrl: string;
359
+ };
360
+ };
361
+ roamjs: {
362
+ loaded: Set<string>;
363
+ extension: {
364
+ queryBuilder?: {
365
+ runQuery: RunQuery;
366
+ runQuerySync: RunQuerySync;
367
+ listActiveQueries: ListActiveQueries;
368
+ isDiscourseNode: IsDiscourseNode;
369
+ };
370
+ smartblocks?: {
371
+ registerCommand: RegisterCommand;
372
+ unregisterCommand: UnregisterCommand;
373
+ triggerSmartblock: (args: {
374
+ srcName?: string;
375
+ srcUid?: string;
376
+ targetName?: string;
377
+ targetUid?: string;
378
+ variables?: Record<string, string>;
379
+ }) => Promise<unknown>;
380
+ };
381
+ [id: string]: Record<string, unknown> | undefined;
382
+ };
383
+ version: {
384
+ [id: string]: string;
385
+ };
386
+ actions: Record<string, number>;
387
+ };
388
+ }
389
+ }
package/types/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./native"), exports);
5
+ //# sourceMappingURL=index.js.map