roamjs-components 0.85.1 → 0.86.0-alpha.2

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 (810) hide show
  1. package/.eslintrc.json +19 -0
  2. package/.github/workflows/main.yaml +34 -0
  3. package/LICENSE +21 -21
  4. package/README.md +29 -29
  5. package/docs/components.md +32 -0
  6. package/docs/date.md +13 -0
  7. package/docs/dom.md +58 -0
  8. package/docs/events.md +16 -0
  9. package/docs/hooks.md +15 -0
  10. package/docs/marked.md +56 -0
  11. package/docs/queries.md +24 -0
  12. package/docs/scripts.md +20 -0
  13. package/docs/types.md +32 -0
  14. package/docs/util.md +38 -0
  15. package/docs/writes.md +23 -0
  16. package/package.json +125 -117
  17. package/patches/@blueprintjs+core+3.50.4.patch +48 -0
  18. package/patches/@blueprintjs+select+3.18.6.patch +12 -0
  19. package/patches/dotenv+16.3.1.patch +12 -0
  20. package/src/components/AutocompleteInput.tsx +248 -0
  21. package/src/components/BlockErrorBoundary.tsx +39 -0
  22. package/src/components/BlockInput.tsx +117 -0
  23. package/src/components/ComponentContainer.tsx +70 -0
  24. package/src/components/ConfigPage.tsx +320 -0
  25. package/src/components/ConfigPanels/BlockPanel.tsx +60 -0
  26. package/src/components/ConfigPanels/BlocksPanel.tsx +100 -0
  27. package/src/components/ConfigPanels/CustomPanel.tsx +41 -0
  28. package/src/components/ConfigPanels/FlagPanel.tsx +48 -0
  29. package/src/components/ConfigPanels/MultiChildPanel.tsx +99 -0
  30. package/src/components/ConfigPanels/MultiTextPanel.tsx +23 -0
  31. package/src/components/ConfigPanels/NumberPanel.tsx +36 -0
  32. package/src/components/ConfigPanels/OauthPanel.tsx +127 -0
  33. package/src/components/ConfigPanels/PagesPanel.tsx +19 -0
  34. package/src/components/ConfigPanels/SelectPanel.tsx +46 -0
  35. package/src/components/ConfigPanels/TextPanel.tsx +44 -0
  36. package/src/components/ConfigPanels/TimePanel.tsx +45 -0
  37. package/src/components/ConfigPanels/getBrandColors.tsx +31 -0
  38. package/src/components/ConfigPanels/types.ts +111 -0
  39. package/src/components/ConfigPanels/useSingleChildValue.tsx +63 -0
  40. package/src/components/CursorMenu.tsx +286 -0
  41. package/src/components/Description.tsx +31 -0
  42. package/src/components/ExtensionApiContext.tsx +24 -0
  43. package/src/components/ExternalLogin.tsx +190 -0
  44. package/src/components/Filter.tsx +313 -0
  45. package/src/components/FormDialog.tsx +503 -0
  46. package/src/components/Loading.tsx +33 -0
  47. package/src/components/MenuItemSelect.tsx +93 -0
  48. package/src/components/OauthPanel.tsx +62 -0
  49. package/src/components/OauthSelect.tsx +40 -0
  50. package/src/components/PageInput.tsx +17 -0
  51. package/src/components/PageLink.tsx +50 -0
  52. package/src/components/ProgressDialog.tsx +85 -0
  53. package/src/components/SimpleAlert.tsx +103 -0
  54. package/src/components/Toast.tsx +85 -0
  55. package/src/components/index.ts +5 -0
  56. package/src/components.tsx +285 -0
  57. package/src/date/constants.ts +19 -0
  58. package/{date/index.d.ts → src/date/index.ts} +3 -3
  59. package/src/date/parseNlpDate.ts +255 -0
  60. package/src/date/parseRoamDateUid.ts +6 -0
  61. package/src/dom/addBlockCommand.ts +59 -0
  62. package/src/dom/addKeyboardTriggers.ts +52 -0
  63. package/src/dom/addOldRoamJSDependency.ts +10 -0
  64. package/src/dom/addRoamJSDependency.ts +7 -0
  65. package/src/dom/addScriptAsDependency.ts +24 -0
  66. package/src/dom/addStyle.ts +11 -0
  67. package/src/dom/constants.ts +1 -0
  68. package/src/dom/createBlockObserver.ts +44 -0
  69. package/src/dom/createButtonObserver.ts +31 -0
  70. package/src/dom/createDivObserver.ts +15 -0
  71. package/src/dom/createHTMLObserver.ts +44 -0
  72. package/src/dom/createHashtagObserver.ts +22 -0
  73. package/src/dom/createIconButton.ts +13 -0
  74. package/src/dom/createObserver.ts +15 -0
  75. package/src/dom/createOverlayObserver.ts +7 -0
  76. package/src/dom/createPageObserver.ts +37 -0
  77. package/src/dom/createPageTitleObserver.ts +43 -0
  78. package/src/dom/elToTitle.ts +21 -0
  79. package/src/dom/genericError.ts +13 -0
  80. package/src/dom/getActiveUids.ts +6 -0
  81. package/src/dom/getBlockUidFromTarget.ts +39 -0
  82. package/src/dom/getCurrentPageUid.ts +5 -0
  83. package/src/dom/getDomRefs.ts +15 -0
  84. package/src/dom/getDropUidOffset.ts +36 -0
  85. package/src/dom/getMutatedNodes.ts +31 -0
  86. package/src/dom/getPageTitleByHtmlElement.ts +19 -0
  87. package/src/dom/getPageTitleValueByHtmlElement.ts +8 -0
  88. package/src/dom/getReferenceBlockUid.ts +22 -0
  89. package/src/dom/getRoamUrl.ts +6 -0
  90. package/src/dom/getRoamUrlByPage.ts +9 -0
  91. package/src/dom/getUids.ts +9 -0
  92. package/src/dom/getUidsFromButton.ts +9 -0
  93. package/src/dom/getUidsFromId.ts +13 -0
  94. package/{dom/index.d.ts → src/dom/index.ts} +30 -30
  95. package/src/dom/parseRoamBlocksToHtml.ts +118 -0
  96. package/src/dom/resolveRefs.ts +31 -0
  97. package/{events/index.d.ts → src/events/index.ts} +1 -1
  98. package/src/events/watchOnce.ts +17 -0
  99. package/{hooks/index.d.ts → src/hooks/index.ts} +2 -2
  100. package/src/hooks/useArrowKeyDown.ts +72 -0
  101. package/src/hooks/useSubTree.ts +16 -0
  102. package/src/marked/index.ts +619 -0
  103. package/src/queries/compileDatalog.ts +81 -0
  104. package/src/queries/getAllBlockUids.ts +6 -0
  105. package/src/queries/getAllBlockUidsAndTexts.ts +6 -0
  106. package/src/queries/getAllPageNames.ts +6 -0
  107. package/src/queries/getAttributeValueByBlockAndName.ts +23 -0
  108. package/src/queries/getBasicTreeByParentUid.ts +21 -0
  109. package/src/queries/getBlockUidAndTextIncludingText.ts +15 -0
  110. package/src/queries/getBlockUidByTextOnPage.ts +12 -0
  111. package/src/queries/getBlockUidsAndTextsReferencingPage.ts +18 -0
  112. package/src/queries/getBlockUidsByPageTitle.ts +12 -0
  113. package/src/queries/getBlockUidsReferencingBlock.ts +10 -0
  114. package/src/queries/getBlockUidsReferencingPage.ts +13 -0
  115. package/src/queries/getBlockUidsWithParentUid.ts +10 -0
  116. package/src/queries/getChildrenLengthByPageUid.ts +7 -0
  117. package/src/queries/getChildrenLengthByParentUid.ts +6 -0
  118. package/src/queries/getCreateTimeByBlockUid.ts +6 -0
  119. package/src/queries/getCurrentUser.ts +12 -0
  120. package/src/queries/getCurrentUserDisplayName.ts +9 -0
  121. package/src/queries/getCurrentUserEmail.ts +12 -0
  122. package/src/queries/getCurrentUserUid.ts +12 -0
  123. package/src/queries/getDisplayNameByEmail.ts +6 -0
  124. package/src/queries/getDisplayNameByUid.ts +6 -0
  125. package/src/queries/getEditTimeByBlockUid.ts +6 -0
  126. package/src/queries/getEditedUserEmailByBlockUid.ts +6 -0
  127. package/src/queries/getFirstChildTextByBlockUid.ts +8 -0
  128. package/src/queries/getFirstChildUidByBlockUid.ts +6 -0
  129. package/src/queries/getFullTreeByParentUid.ts +60 -0
  130. package/src/queries/getLinkedPageTitlesUnderUid.ts +8 -0
  131. package/src/queries/getNthChildUidByBlockUid.ts +16 -0
  132. package/src/queries/getOrderByBlockUid.ts +6 -0
  133. package/src/queries/getPageTitleByBlockUid.ts +8 -0
  134. package/src/queries/getPageTitleByPageUid.ts +11 -0
  135. package/src/queries/getPageTitleReferencesByPageTitle.ts +13 -0
  136. package/src/queries/getPageTitlesAndBlockUidsReferencingPage.ts +18 -0
  137. package/src/queries/getPageTitlesAndUidsDirectlyReferencingPage.ts +18 -0
  138. package/src/queries/getPageTitlesReferencingBlockUid.ts +10 -0
  139. package/src/queries/getPageTitlesStartingWithPrefix.ts +8 -0
  140. package/src/queries/getPageUidByBlockUid.ts +8 -0
  141. package/src/queries/getPageUidByPageTitle.ts +10 -0
  142. package/src/queries/getPageViewType.ts +11 -0
  143. package/src/queries/getParentTextByBlockUid.ts +6 -0
  144. package/src/queries/getParentTextByBlockUidAndTag.ts +12 -0
  145. package/src/queries/getParentUidByBlockUid.ts +10 -0
  146. package/src/queries/getParentUidsOfBlockUid.ts +10 -0
  147. package/src/queries/getSettingsByEmail.ts +8 -0
  148. package/src/queries/getShallowTreeByParentUid.ts +17 -0
  149. package/src/queries/getTextByBlockUid.ts +8 -0
  150. package/src/queries/index.ts +5 -0
  151. package/src/queries/isLiveBlock.ts +4 -0
  152. package/src/queries/isTagOnPage.ts +12 -0
  153. package/src/queries/normalizePageTitle.ts +4 -0
  154. package/src/scripts/index.ts +2 -0
  155. package/src/scripts/publishToRoamDepot.ts +163 -0
  156. package/src/testing/mockRoamEnvironment.ts +1489 -0
  157. package/src/types/index.ts +260 -0
  158. package/src/types/native.ts +495 -0
  159. package/src/types/query-builder.ts +10 -0
  160. package/src/types/smartblocks.ts +39 -0
  161. package/src/util/addInputSetting.ts +33 -0
  162. package/src/util/apiDelete.ts +5 -0
  163. package/src/util/apiGet.ts +5 -0
  164. package/src/util/apiPost.ts +5 -0
  165. package/src/util/apiPut.ts +5 -0
  166. package/src/util/createOverlayRender.ts +12 -0
  167. package/src/util/createTagRegex.ts +7 -0
  168. package/src/util/dispatchToRegistry.ts +11 -0
  169. package/src/util/env.ts +44 -0
  170. package/src/util/extensionApiContext.ts +17 -0
  171. package/src/util/extensionDeprecatedWarning.ts +57 -0
  172. package/src/util/extractRef.ts +8 -0
  173. package/src/util/extractTag.ts +15 -0
  174. package/src/util/focusMainWindowBlock.ts +13 -0
  175. package/src/util/getAuthorizationHeader.ts +11 -0
  176. package/src/util/getLocalStorageKey.ts +4 -0
  177. package/src/util/getOauth.ts +57 -0
  178. package/src/util/getOauthAccounts.ts +26 -0
  179. package/src/util/getRenderRoot.ts +17 -0
  180. package/src/util/getSettingIntFromTree.ts +18 -0
  181. package/src/util/getSettingValueFromTree.ts +23 -0
  182. package/src/util/getSettingValuesFromTree.ts +20 -0
  183. package/src/util/getSubTree.ts +31 -0
  184. package/src/util/getToken.ts +12 -0
  185. package/src/util/getTokenFromTree.ts +6 -0
  186. package/src/util/getWorkerClient.ts +55 -0
  187. package/src/util/handleBodyFetch.ts +38 -0
  188. package/src/util/handleFetch.ts +70 -0
  189. package/src/util/handleUrlFetch.ts +30 -0
  190. package/src/util/idToTitle.ts +8 -0
  191. package/{util/index.d.ts → src/util/index.ts} +24 -24
  192. package/src/util/isControl.ts +4 -0
  193. package/src/util/localStorageGet.ts +6 -0
  194. package/src/util/localStorageRemove.ts +6 -0
  195. package/src/util/localStorageSet.ts +6 -0
  196. package/src/util/registerExperimentalMode.ts +76 -0
  197. package/src/util/registerSmartBlocksCommand.ts +23 -0
  198. package/src/util/removeFromRegistry.ts +11 -0
  199. package/src/util/renderOverlay.ts +69 -0
  200. package/src/util/renderWithUnmount.ts +50 -0
  201. package/src/util/runExtension.ts +206 -0
  202. package/src/util/setInputSetting.ts +46 -0
  203. package/src/util/setInputSettings.ts +37 -0
  204. package/src/util/stripUid.ts +10 -0
  205. package/src/util/toConfigPageName.ts +3 -0
  206. package/src/util/toFlexRegex.ts +7 -0
  207. package/src/writes/clearBlockById.ts +17 -0
  208. package/src/writes/clearBlockByUid.ts +16 -0
  209. package/src/writes/createBlock.ts +50 -0
  210. package/src/writes/createPage.ts +30 -0
  211. package/src/writes/deleteBlock.ts +9 -0
  212. package/{writes/index.d.ts → src/writes/index.ts} +8 -8
  213. package/src/writes/openBlockInSidebar.ts +13 -0
  214. package/src/writes/submitActions.ts +54 -0
  215. package/src/writes/updateActiveBlock.ts +17 -0
  216. package/src/writes/updateBlock.ts +33 -0
  217. package/tests/backend.test.tsx +28 -0
  218. package/tests/date.test.ts +26 -0
  219. package/tests/dom.test.tsx +10 -0
  220. package/tests/index.test.tsx +25 -0
  221. package/tests/marked.test.ts +474 -0
  222. package/tests/util/createTagRegex.test.ts +63 -0
  223. package/tests/util/extractTag.test.ts +17 -0
  224. package/tests/util/toFlexRegex.test.ts +7 -0
  225. package/tsconfig.json +26 -0
  226. package/components/AutocompleteInput.d.ts +0 -28
  227. package/components/AutocompleteInput.js +0 -121
  228. package/components/AutocompleteInput.js.map +0 -1
  229. package/components/BlockErrorBoundary.d.ts +0 -15
  230. package/components/BlockErrorBoundary.js +0 -28
  231. package/components/BlockErrorBoundary.js.map +0 -1
  232. package/components/BlockInput.d.ts +0 -13
  233. package/components/BlockInput.js +0 -56
  234. package/components/BlockInput.js.map +0 -1
  235. package/components/ComponentContainer.d.ts +0 -10
  236. package/components/ComponentContainer.js +0 -38
  237. package/components/ComponentContainer.js.map +0 -1
  238. package/components/ConfigPage.d.ts +0 -35
  239. package/components/ConfigPage.js +0 -160
  240. package/components/ConfigPage.js.map +0 -1
  241. package/components/ConfigPanels/BlockPanel.d.ts +0 -3
  242. package/components/ConfigPanels/BlockPanel.js +0 -43
  243. package/components/ConfigPanels/BlockPanel.js.map +0 -1
  244. package/components/ConfigPanels/BlocksPanel.d.ts +0 -3
  245. package/components/ConfigPanels/BlocksPanel.js +0 -69
  246. package/components/ConfigPanels/BlocksPanel.js.map +0 -1
  247. package/components/ConfigPanels/CustomPanel.d.ts +0 -3
  248. package/components/ConfigPanels/CustomPanel.js +0 -25
  249. package/components/ConfigPanels/CustomPanel.js.map +0 -1
  250. package/components/ConfigPanels/FlagPanel.d.ts +0 -3
  251. package/components/ConfigPanels/FlagPanel.js +0 -32
  252. package/components/ConfigPanels/FlagPanel.js.map +0 -1
  253. package/components/ConfigPanels/MultiChildPanel.d.ts +0 -9
  254. package/components/ConfigPanels/MultiChildPanel.js +0 -59
  255. package/components/ConfigPanels/MultiChildPanel.js.map +0 -1
  256. package/components/ConfigPanels/MultiTextPanel.d.ts +0 -3
  257. package/components/ConfigPanels/MultiTextPanel.js +0 -15
  258. package/components/ConfigPanels/MultiTextPanel.js.map +0 -1
  259. package/components/ConfigPanels/NumberPanel.d.ts +0 -3
  260. package/components/ConfigPanels/NumberPanel.js +0 -26
  261. package/components/ConfigPanels/NumberPanel.js.map +0 -1
  262. package/components/ConfigPanels/OauthPanel.d.ts +0 -3
  263. package/components/ConfigPanels/OauthPanel.js +0 -82
  264. package/components/ConfigPanels/OauthPanel.js.map +0 -1
  265. package/components/ConfigPanels/PagesPanel.d.ts +0 -3
  266. package/components/ConfigPanels/PagesPanel.js +0 -12
  267. package/components/ConfigPanels/PagesPanel.js.map +0 -1
  268. package/components/ConfigPanels/SelectPanel.d.ts +0 -3
  269. package/components/ConfigPanels/SelectPanel.js +0 -28
  270. package/components/ConfigPanels/SelectPanel.js.map +0 -1
  271. package/components/ConfigPanels/TextPanel.d.ts +0 -3
  272. package/components/ConfigPanels/TextPanel.js +0 -29
  273. package/components/ConfigPanels/TextPanel.js.map +0 -1
  274. package/components/ConfigPanels/TimePanel.d.ts +0 -3
  275. package/components/ConfigPanels/TimePanel.js +0 -35
  276. package/components/ConfigPanels/TimePanel.js.map +0 -1
  277. package/components/ConfigPanels/getBrandColors.d.ts +0 -7
  278. package/components/ConfigPanels/getBrandColors.js +0 -29
  279. package/components/ConfigPanels/getBrandColors.js.map +0 -1
  280. package/components/ConfigPanels/types.d.ts +0 -84
  281. package/components/ConfigPanels/types.js +0 -3
  282. package/components/ConfigPanels/types.js.map +0 -1
  283. package/components/ConfigPanels/useSingleChildValue.d.ts +0 -13
  284. package/components/ConfigPanels/useSingleChildValue.js +0 -44
  285. package/components/ConfigPanels/useSingleChildValue.js.map +0 -1
  286. package/components/CursorMenu.d.ts +0 -21
  287. package/components/CursorMenu.js +0 -182
  288. package/components/CursorMenu.js.map +0 -1
  289. package/components/Description.d.ts +0 -5
  290. package/components/Description.js +0 -17
  291. package/components/Description.js.map +0 -1
  292. package/components/ExtensionApiContext.d.ts +0 -31
  293. package/components/ExtensionApiContext.js +0 -17
  294. package/components/ExtensionApiContext.js.map +0 -1
  295. package/components/ExternalLogin.d.ts +0 -18
  296. package/components/ExternalLogin.js +0 -142
  297. package/components/ExternalLogin.js.map +0 -1
  298. package/components/Filter.d.ts +0 -15
  299. package/components/Filter.js +0 -143
  300. package/components/Filter.js.map +0 -1
  301. package/components/FormDialog.d.ts +0 -55
  302. package/components/FormDialog.js +0 -224
  303. package/components/FormDialog.js.map +0 -1
  304. package/components/Loading.d.ts +0 -4
  305. package/components/Loading.js +0 -36
  306. package/components/Loading.js.map +0 -1
  307. package/components/MenuItemSelect.d.ts +0 -17
  308. package/components/MenuItemSelect.js +0 -24
  309. package/components/MenuItemSelect.js.map +0 -1
  310. package/components/OauthPanel.d.ts +0 -7
  311. package/components/OauthPanel.js +0 -31
  312. package/components/OauthPanel.js.map +0 -1
  313. package/components/OauthSelect.d.ts +0 -5
  314. package/components/OauthSelect.js +0 -26
  315. package/components/OauthSelect.js.map +0 -1
  316. package/components/PageInput.d.ts +0 -6
  317. package/components/PageInput.js +0 -14
  318. package/components/PageInput.js.map +0 -1
  319. package/components/PageLink.d.ts +0 -6
  320. package/components/PageLink.js +0 -32
  321. package/components/PageLink.js.map +0 -1
  322. package/components/ProgressDialog.d.ts +0 -11
  323. package/components/ProgressDialog.js +0 -61
  324. package/components/ProgressDialog.js.map +0 -1
  325. package/components/SimpleAlert.d.ts +0 -15
  326. package/components/SimpleAlert.js +0 -48
  327. package/components/SimpleAlert.js.map +0 -1
  328. package/components/Toast.d.ts +0 -15
  329. package/components/Toast.js +0 -51
  330. package/components/Toast.js.map +0 -1
  331. package/components/index.d.ts +0 -0
  332. package/components/index.js +0 -5
  333. package/components/index.js.map +0 -1
  334. package/components.d.ts +0 -5
  335. package/components.js +0 -171
  336. package/components.js.map +0 -1
  337. package/date/constants.d.ts +0 -3
  338. package/date/constants.js +0 -20
  339. package/date/constants.js.map +0 -1
  340. package/date/index.js +0 -10
  341. package/date/index.js.map +0 -1
  342. package/date/parseNlpDate.d.ts +0 -5
  343. package/date/parseNlpDate.js +0 -227
  344. package/date/parseNlpDate.js.map +0 -1
  345. package/date/parseRoamDateUid.d.ts +0 -2
  346. package/date/parseRoamDateUid.js +0 -8
  347. package/date/parseRoamDateUid.js.map +0 -1
  348. package/dom/addBlockCommand.d.ts +0 -5
  349. package/dom/addBlockCommand.js +0 -54
  350. package/dom/addBlockCommand.js.map +0 -1
  351. package/dom/addKeyboardTriggers.d.ts +0 -11
  352. package/dom/addKeyboardTriggers.js +0 -39
  353. package/dom/addKeyboardTriggers.js.map +0 -1
  354. package/dom/addOldRoamJSDependency.d.ts +0 -2
  355. package/dom/addOldRoamJSDependency.js +0 -11
  356. package/dom/addOldRoamJSDependency.js.map +0 -1
  357. package/dom/addRoamJSDependency.d.ts +0 -2
  358. package/dom/addRoamJSDependency.js +0 -9
  359. package/dom/addRoamJSDependency.js.map +0 -1
  360. package/dom/addScriptAsDependency.d.ts +0 -6
  361. package/dom/addScriptAsDependency.js +0 -17
  362. package/dom/addScriptAsDependency.js.map +0 -1
  363. package/dom/addStyle.d.ts +0 -2
  364. package/dom/addStyle.js +0 -15
  365. package/dom/addStyle.js.map +0 -1
  366. package/dom/constants.d.ts +0 -1
  367. package/dom/constants.js +0 -5
  368. package/dom/constants.js.map +0 -1
  369. package/dom/createBlockObserver.d.ts +0 -7
  370. package/dom/createBlockObserver.js +0 -44
  371. package/dom/createBlockObserver.js.map +0 -1
  372. package/dom/createButtonObserver.d.ts +0 -6
  373. package/dom/createButtonObserver.js +0 -22
  374. package/dom/createButtonObserver.js.map +0 -1
  375. package/dom/createDivObserver.d.ts +0 -2
  376. package/dom/createDivObserver.js +0 -14
  377. package/dom/createDivObserver.js.map +0 -1
  378. package/dom/createHTMLObserver.d.ts +0 -8
  379. package/dom/createHTMLObserver.js +0 -25
  380. package/dom/createHTMLObserver.js.map +0 -1
  381. package/dom/createHashtagObserver.d.ts +0 -5
  382. package/dom/createHashtagObserver.js +0 -17
  383. package/dom/createHashtagObserver.js.map +0 -1
  384. package/dom/createIconButton.d.ts +0 -2
  385. package/dom/createIconButton.js +0 -13
  386. package/dom/createIconButton.js.map +0 -1
  387. package/dom/createObserver.d.ts +0 -2
  388. package/dom/createObserver.js +0 -10
  389. package/dom/createObserver.js.map +0 -1
  390. package/dom/createOverlayObserver.d.ts +0 -2
  391. package/dom/createOverlayObserver.js +0 -7
  392. package/dom/createOverlayObserver.js.map +0 -1
  393. package/dom/createPageObserver.d.ts +0 -2
  394. package/dom/createPageObserver.js +0 -35
  395. package/dom/createPageObserver.js.map +0 -1
  396. package/dom/createPageTitleObserver.d.ts +0 -6
  397. package/dom/createPageTitleObserver.js +0 -32
  398. package/dom/createPageTitleObserver.js.map +0 -1
  399. package/dom/elToTitle.d.ts +0 -2
  400. package/dom/elToTitle.js +0 -23
  401. package/dom/elToTitle.js.map +0 -1
  402. package/dom/genericError.d.ts +0 -3
  403. package/dom/genericError.js +0 -12
  404. package/dom/genericError.js.map +0 -1
  405. package/dom/getActiveUids.d.ts +0 -3
  406. package/dom/getActiveUids.js +0 -7
  407. package/dom/getActiveUids.js.map +0 -1
  408. package/dom/getBlockUidFromTarget.d.ts +0 -2
  409. package/dom/getBlockUidFromTarget.js +0 -34
  410. package/dom/getBlockUidFromTarget.js.map +0 -1
  411. package/dom/getCurrentPageUid.d.ts +0 -2
  412. package/dom/getCurrentPageUid.js +0 -9
  413. package/dom/getCurrentPageUid.js.map +0 -1
  414. package/dom/getDomRefs.d.ts +0 -2
  415. package/dom/getDomRefs.js +0 -13
  416. package/dom/getDomRefs.js.map +0 -1
  417. package/dom/getDropUidOffset.d.ts +0 -5
  418. package/dom/getDropUidOffset.js +0 -28
  419. package/dom/getDropUidOffset.js.map +0 -1
  420. package/dom/getMutatedNodes.d.ts +0 -7
  421. package/dom/getMutatedNodes.js +0 -12
  422. package/dom/getMutatedNodes.js.map +0 -1
  423. package/dom/getPageTitleByHtmlElement.d.ts +0 -2
  424. package/dom/getPageTitleByHtmlElement.js +0 -13
  425. package/dom/getPageTitleByHtmlElement.js.map +0 -1
  426. package/dom/getPageTitleValueByHtmlElement.d.ts +0 -2
  427. package/dom/getPageTitleValueByHtmlElement.js +0 -10
  428. package/dom/getPageTitleValueByHtmlElement.js.map +0 -1
  429. package/dom/getReferenceBlockUid.d.ts +0 -2
  430. package/dom/getReferenceBlockUid.js +0 -19
  431. package/dom/getReferenceBlockUid.js.map +0 -1
  432. package/dom/getRoamUrl.d.ts +0 -2
  433. package/dom/getRoamUrl.js +0 -5
  434. package/dom/getRoamUrl.js.map +0 -1
  435. package/dom/getRoamUrlByPage.d.ts +0 -2
  436. package/dom/getRoamUrlByPage.js +0 -11
  437. package/dom/getRoamUrlByPage.js.map +0 -1
  438. package/dom/getUids.d.ts +0 -3
  439. package/dom/getUids.js +0 -9
  440. package/dom/getUids.js.map +0 -1
  441. package/dom/getUidsFromButton.d.ts +0 -3
  442. package/dom/getUidsFromButton.js +0 -9
  443. package/dom/getUidsFromButton.js.map +0 -1
  444. package/dom/getUidsFromId.d.ts +0 -5
  445. package/dom/getUidsFromId.js +0 -16
  446. package/dom/getUidsFromId.js.map +0 -1
  447. package/dom/index.js +0 -64
  448. package/dom/index.js.map +0 -1
  449. package/dom/parseRoamBlocksToHtml.d.ts +0 -11
  450. package/dom/parseRoamBlocksToHtml.js +0 -80
  451. package/dom/parseRoamBlocksToHtml.js.map +0 -1
  452. package/dom/resolveRefs.d.ts +0 -2
  453. package/dom/resolveRefs.js +0 -25
  454. package/dom/resolveRefs.js.map +0 -1
  455. package/events/index.js +0 -9
  456. package/events/index.js.map +0 -1
  457. package/events/watchOnce.d.ts +0 -3
  458. package/events/watchOnce.js +0 -13
  459. package/events/watchOnce.js.map +0 -1
  460. package/hooks/index.js +0 -11
  461. package/hooks/index.js.map +0 -1
  462. package/hooks/useArrowKeyDown.d.ts +0 -10
  463. package/hooks/useArrowKeyDown.js +0 -55
  464. package/hooks/useArrowKeyDown.js.map +0 -1
  465. package/hooks/useSubTree.d.ts +0 -3
  466. package/hooks/useSubTree.js +0 -12
  467. package/hooks/useSubTree.js.map +0 -1
  468. package/marked/index.d.ts +0 -25
  469. package/marked/index.js +0 -568
  470. package/marked/index.js.map +0 -1
  471. package/queries/compileDatalog.d.ts +0 -3
  472. package/queries/compileDatalog.js +0 -64
  473. package/queries/compileDatalog.js.map +0 -1
  474. package/queries/getAllBlockUids.d.ts +0 -2
  475. package/queries/getAllBlockUids.js +0 -7
  476. package/queries/getAllBlockUids.js.map +0 -1
  477. package/queries/getAllBlockUidsAndTexts.d.ts +0 -5
  478. package/queries/getAllBlockUidsAndTexts.js +0 -7
  479. package/queries/getAllBlockUidsAndTexts.js.map +0 -1
  480. package/queries/getAllPageNames.d.ts +0 -2
  481. package/queries/getAllPageNames.js +0 -7
  482. package/queries/getAllPageNames.js.map +0 -1
  483. package/queries/getAttributeValueByBlockAndName.d.ts +0 -5
  484. package/queries/getAttributeValueByBlockAndName.js +0 -12
  485. package/queries/getAttributeValueByBlockAndName.js.map +0 -1
  486. package/queries/getBasicTreeByParentUid.d.ts +0 -3
  487. package/queries/getBasicTreeByParentUid.js +0 -14
  488. package/queries/getBasicTreeByParentUid.js.map +0 -1
  489. package/queries/getBlockUidAndTextIncludingText.d.ts +0 -5
  490. package/queries/getBlockUidAndTextIncludingText.js +0 -8
  491. package/queries/getBlockUidAndTextIncludingText.js.map +0 -1
  492. package/queries/getBlockUidByTextOnPage.d.ts +0 -5
  493. package/queries/getBlockUidByTextOnPage.js +0 -8
  494. package/queries/getBlockUidByTextOnPage.js.map +0 -1
  495. package/queries/getBlockUidsAndTextsReferencingPage.d.ts +0 -5
  496. package/queries/getBlockUidsAndTextsReferencingPage.js +0 -10
  497. package/queries/getBlockUidsAndTextsReferencingPage.js.map +0 -1
  498. package/queries/getBlockUidsByPageTitle.d.ts +0 -2
  499. package/queries/getBlockUidsByPageTitle.js +0 -9
  500. package/queries/getBlockUidsByPageTitle.js.map +0 -1
  501. package/queries/getBlockUidsReferencingBlock.d.ts +0 -2
  502. package/queries/getBlockUidsReferencingBlock.js +0 -5
  503. package/queries/getBlockUidsReferencingBlock.js.map +0 -1
  504. package/queries/getBlockUidsReferencingPage.d.ts +0 -2
  505. package/queries/getBlockUidsReferencingPage.js +0 -7
  506. package/queries/getBlockUidsReferencingPage.js.map +0 -1
  507. package/queries/getBlockUidsWithParentUid.d.ts +0 -2
  508. package/queries/getBlockUidsWithParentUid.js +0 -7
  509. package/queries/getBlockUidsWithParentUid.js.map +0 -1
  510. package/queries/getChildrenLengthByPageUid.d.ts +0 -2
  511. package/queries/getChildrenLengthByPageUid.js +0 -9
  512. package/queries/getChildrenLengthByPageUid.js.map +0 -1
  513. package/queries/getChildrenLengthByParentUid.d.ts +0 -2
  514. package/queries/getChildrenLengthByParentUid.js +0 -8
  515. package/queries/getChildrenLengthByParentUid.js.map +0 -1
  516. package/queries/getCreateTimeByBlockUid.d.ts +0 -2
  517. package/queries/getCreateTimeByBlockUid.js +0 -8
  518. package/queries/getCreateTimeByBlockUid.js.map +0 -1
  519. package/queries/getCurrentUser.d.ts +0 -2
  520. package/queries/getCurrentUser.js +0 -12
  521. package/queries/getCurrentUser.js.map +0 -1
  522. package/queries/getCurrentUserDisplayName.d.ts +0 -2
  523. package/queries/getCurrentUserDisplayName.js +0 -11
  524. package/queries/getCurrentUserDisplayName.js.map +0 -1
  525. package/queries/getCurrentUserEmail.d.ts +0 -2
  526. package/queries/getCurrentUserEmail.js +0 -14
  527. package/queries/getCurrentUserEmail.js.map +0 -1
  528. package/queries/getCurrentUserUid.d.ts +0 -2
  529. package/queries/getCurrentUserUid.js +0 -14
  530. package/queries/getCurrentUserUid.js.map +0 -1
  531. package/queries/getDisplayNameByEmail.d.ts +0 -2
  532. package/queries/getDisplayNameByEmail.js +0 -8
  533. package/queries/getDisplayNameByEmail.js.map +0 -1
  534. package/queries/getDisplayNameByUid.d.ts +0 -2
  535. package/queries/getDisplayNameByUid.js +0 -8
  536. package/queries/getDisplayNameByUid.js.map +0 -1
  537. package/queries/getEditTimeByBlockUid.d.ts +0 -2
  538. package/queries/getEditTimeByBlockUid.js +0 -8
  539. package/queries/getEditTimeByBlockUid.js.map +0 -1
  540. package/queries/getEditedUserEmailByBlockUid.d.ts +0 -2
  541. package/queries/getEditedUserEmailByBlockUid.js +0 -8
  542. package/queries/getEditedUserEmailByBlockUid.js.map +0 -1
  543. package/queries/getFirstChildTextByBlockUid.d.ts +0 -2
  544. package/queries/getFirstChildTextByBlockUid.js +0 -8
  545. package/queries/getFirstChildTextByBlockUid.js.map +0 -1
  546. package/queries/getFirstChildUidByBlockUid.d.ts +0 -2
  547. package/queries/getFirstChildUidByBlockUid.js +0 -7
  548. package/queries/getFirstChildUidByBlockUid.js.map +0 -1
  549. package/queries/getFullTreeByParentUid.d.ts +0 -3
  550. package/queries/getFullTreeByParentUid.js +0 -52
  551. package/queries/getFullTreeByParentUid.js.map +0 -1
  552. package/queries/getLinkedPageTitlesUnderUid.d.ts +0 -2
  553. package/queries/getLinkedPageTitlesUnderUid.js +0 -7
  554. package/queries/getLinkedPageTitlesUnderUid.js.map +0 -1
  555. package/queries/getNthChildUidByBlockUid.d.ts +0 -5
  556. package/queries/getNthChildUidByBlockUid.js +0 -8
  557. package/queries/getNthChildUidByBlockUid.js.map +0 -1
  558. package/queries/getOrderByBlockUid.d.ts +0 -2
  559. package/queries/getOrderByBlockUid.js +0 -8
  560. package/queries/getOrderByBlockUid.js.map +0 -1
  561. package/queries/getPageTitleByBlockUid.d.ts +0 -2
  562. package/queries/getPageTitleByBlockUid.js +0 -8
  563. package/queries/getPageTitleByBlockUid.js.map +0 -1
  564. package/queries/getPageTitleByPageUid.d.ts +0 -2
  565. package/queries/getPageTitleByPageUid.js +0 -13
  566. package/queries/getPageTitleByPageUid.js.map +0 -1
  567. package/queries/getPageTitleReferencesByPageTitle.d.ts +0 -2
  568. package/queries/getPageTitleReferencesByPageTitle.js +0 -7
  569. package/queries/getPageTitleReferencesByPageTitle.js.map +0 -1
  570. package/queries/getPageTitlesAndBlockUidsReferencingPage.d.ts +0 -5
  571. package/queries/getPageTitlesAndBlockUidsReferencingPage.js +0 -10
  572. package/queries/getPageTitlesAndBlockUidsReferencingPage.js.map +0 -1
  573. package/queries/getPageTitlesAndUidsDirectlyReferencingPage.d.ts +0 -5
  574. package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js +0 -10
  575. package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js.map +0 -1
  576. package/queries/getPageTitlesReferencingBlockUid.d.ts +0 -2
  577. package/queries/getPageTitlesReferencingBlockUid.js +0 -5
  578. package/queries/getPageTitlesReferencingBlockUid.js.map +0 -1
  579. package/queries/getPageTitlesStartingWithPrefix.d.ts +0 -2
  580. package/queries/getPageTitlesStartingWithPrefix.js +0 -7
  581. package/queries/getPageTitlesStartingWithPrefix.js.map +0 -1
  582. package/queries/getPageUidByBlockUid.d.ts +0 -2
  583. package/queries/getPageUidByBlockUid.js +0 -8
  584. package/queries/getPageUidByBlockUid.js.map +0 -1
  585. package/queries/getPageUidByPageTitle.d.ts +0 -2
  586. package/queries/getPageUidByPageTitle.js +0 -10
  587. package/queries/getPageUidByPageTitle.js.map +0 -1
  588. package/queries/getPageViewType.d.ts +0 -3
  589. package/queries/getPageViewType.js +0 -10
  590. package/queries/getPageViewType.js.map +0 -1
  591. package/queries/getParentTextByBlockUid.d.ts +0 -2
  592. package/queries/getParentTextByBlockUid.js +0 -8
  593. package/queries/getParentTextByBlockUid.js.map +0 -1
  594. package/queries/getParentTextByBlockUidAndTag.d.ts +0 -5
  595. package/queries/getParentTextByBlockUidAndTag.js +0 -8
  596. package/queries/getParentTextByBlockUidAndTag.js.map +0 -1
  597. package/queries/getParentUidByBlockUid.d.ts +0 -2
  598. package/queries/getParentUidByBlockUid.js +0 -8
  599. package/queries/getParentUidByBlockUid.js.map +0 -1
  600. package/queries/getParentUidsOfBlockUid.d.ts +0 -2
  601. package/queries/getParentUidsOfBlockUid.js +0 -5
  602. package/queries/getParentUidsOfBlockUid.js.map +0 -1
  603. package/queries/getSettingsByEmail.d.ts +0 -3
  604. package/queries/getSettingsByEmail.js +0 -8
  605. package/queries/getSettingsByEmail.js.map +0 -1
  606. package/queries/getShallowTreeByParentUid.d.ts +0 -5
  607. package/queries/getShallowTreeByParentUid.js +0 -10
  608. package/queries/getShallowTreeByParentUid.js.map +0 -1
  609. package/queries/getTextByBlockUid.d.ts +0 -2
  610. package/queries/getTextByBlockUid.js +0 -10
  611. package/queries/getTextByBlockUid.js.map +0 -1
  612. package/queries/index.d.ts +0 -0
  613. package/queries/index.js +0 -5
  614. package/queries/index.js.map +0 -1
  615. package/queries/isLiveBlock.d.ts +0 -2
  616. package/queries/isLiveBlock.js +0 -5
  617. package/queries/isLiveBlock.js.map +0 -1
  618. package/queries/isTagOnPage.d.ts +0 -5
  619. package/queries/isTagOnPage.js +0 -10
  620. package/queries/isTagOnPage.js.map +0 -1
  621. package/queries/normalizePageTitle.d.ts +0 -2
  622. package/queries/normalizePageTitle.js +0 -5
  623. package/queries/normalizePageTitle.js.map +0 -1
  624. package/scripts/index.d.ts +0 -1
  625. package/scripts/index.js +0 -27
  626. package/scripts/index.js.map +0 -1
  627. package/scripts/publishToRoamDepot.d.ts +0 -7
  628. package/scripts/publishToRoamDepot.js +0 -114
  629. package/scripts/publishToRoamDepot.js.map +0 -1
  630. package/testing/mockRoamEnvironment.d.ts +0 -2
  631. package/testing/mockRoamEnvironment.js +0 -1254
  632. package/testing/mockRoamEnvironment.js.map +0 -1
  633. package/types/index.d.ts +0 -250
  634. package/types/index.js +0 -5
  635. package/types/index.js.map +0 -1
  636. package/types/native.d.ts +0 -402
  637. package/types/native.js +0 -5
  638. package/types/native.js.map +0 -1
  639. package/types/query-builder.d.ts +0 -10
  640. package/types/query-builder.js +0 -3
  641. package/types/query-builder.js.map +0 -1
  642. package/types/smartblocks.d.ts +0 -35
  643. package/types/smartblocks.js +0 -3
  644. package/types/smartblocks.js.map +0 -1
  645. package/util/addInputSetting.d.ts +0 -7
  646. package/util/addInputSetting.js +0 -26
  647. package/util/addInputSetting.js.map +0 -1
  648. package/util/apiDelete.d.ts +0 -2
  649. package/util/apiDelete.js +0 -7
  650. package/util/apiDelete.js.map +0 -1
  651. package/util/apiGet.d.ts +0 -2
  652. package/util/apiGet.js +0 -7
  653. package/util/apiGet.js.map +0 -1
  654. package/util/apiPost.d.ts +0 -2
  655. package/util/apiPost.js +0 -7
  656. package/util/apiPost.js.map +0 -1
  657. package/util/apiPut.d.ts +0 -2
  658. package/util/apiPut.js +0 -7
  659. package/util/apiPut.js.map +0 -1
  660. package/util/createOverlayRender.d.ts +0 -4
  661. package/util/createOverlayRender.js +0 -7
  662. package/util/createOverlayRender.js.map +0 -1
  663. package/util/createTagRegex.d.ts +0 -2
  664. package/util/createTagRegex.js +0 -8
  665. package/util/createTagRegex.js.map +0 -1
  666. package/util/dispatchToRegistry.d.ts +0 -3
  667. package/util/dispatchToRegistry.js +0 -8
  668. package/util/dispatchToRegistry.js.map +0 -1
  669. package/util/env.d.ts +0 -4
  670. package/util/env.js +0 -48
  671. package/util/env.js.map +0 -1
  672. package/util/extensionApiContext.d.ts +0 -29
  673. package/util/extensionApiContext.js +0 -18
  674. package/util/extensionApiContext.js.map +0 -1
  675. package/util/extensionDeprecatedWarning.d.ts +0 -5
  676. package/util/extensionDeprecatedWarning.js +0 -40
  677. package/util/extensionDeprecatedWarning.js.map +0 -1
  678. package/util/extractRef.d.ts +0 -2
  679. package/util/extractRef.js +0 -9
  680. package/util/extractRef.js.map +0 -1
  681. package/util/extractTag.d.ts +0 -2
  682. package/util/extractTag.js +0 -16
  683. package/util/extractTag.js.map +0 -1
  684. package/util/focusMainWindowBlock.d.ts +0 -2
  685. package/util/focusMainWindowBlock.js +0 -13
  686. package/util/focusMainWindowBlock.js.map +0 -1
  687. package/util/getAuthorizationHeader.d.ts +0 -2
  688. package/util/getAuthorizationHeader.js +0 -13
  689. package/util/getAuthorizationHeader.js.map +0 -1
  690. package/util/getLocalStorageKey.d.ts +0 -2
  691. package/util/getLocalStorageKey.js +0 -5
  692. package/util/getLocalStorageKey.js.map +0 -1
  693. package/util/getOauth.d.ts +0 -2
  694. package/util/getOauth.js +0 -53
  695. package/util/getOauth.js.map +0 -1
  696. package/util/getOauthAccounts.d.ts +0 -2
  697. package/util/getOauthAccounts.js +0 -23
  698. package/util/getOauthAccounts.js.map +0 -1
  699. package/util/getRenderRoot.d.ts +0 -2
  700. package/util/getRenderRoot.js +0 -19
  701. package/util/getRenderRoot.js.map +0 -1
  702. package/util/getSettingIntFromTree.d.ts +0 -7
  703. package/util/getSettingIntFromTree.js +0 -12
  704. package/util/getSettingIntFromTree.js.map +0 -1
  705. package/util/getSettingValueFromTree.d.ts +0 -8
  706. package/util/getSettingValueFromTree.js +0 -15
  707. package/util/getSettingValueFromTree.js.map +0 -1
  708. package/util/getSettingValuesFromTree.d.ts +0 -7
  709. package/util/getSettingValuesFromTree.js +0 -13
  710. package/util/getSettingValuesFromTree.js.map +0 -1
  711. package/util/getSubTree.d.ts +0 -8
  712. package/util/getSubTree.js +0 -20
  713. package/util/getSubTree.js.map +0 -1
  714. package/util/getToken.d.ts +0 -2
  715. package/util/getToken.js +0 -11
  716. package/util/getToken.js.map +0 -1
  717. package/util/getTokenFromTree.d.ts +0 -3
  718. package/util/getTokenFromTree.js +0 -5
  719. package/util/getTokenFromTree.js.map +0 -1
  720. package/util/getWorkerClient.d.ts +0 -12
  721. package/util/getWorkerClient.js +0 -42
  722. package/util/getWorkerClient.js.map +0 -1
  723. package/util/handleBodyFetch.d.ts +0 -3
  724. package/util/handleBodyFetch.js +0 -22
  725. package/util/handleBodyFetch.js.map +0 -1
  726. package/util/handleFetch.d.ts +0 -13
  727. package/util/handleFetch.js +0 -41
  728. package/util/handleFetch.js.map +0 -1
  729. package/util/handleUrlFetch.d.ts +0 -3
  730. package/util/handleUrlFetch.js +0 -20
  731. package/util/handleUrlFetch.js.map +0 -1
  732. package/util/idToTitle.d.ts +0 -2
  733. package/util/idToTitle.js +0 -9
  734. package/util/idToTitle.js.map +0 -1
  735. package/util/index.js +0 -55
  736. package/util/index.js.map +0 -1
  737. package/util/isControl.d.ts +0 -2
  738. package/util/isControl.js +0 -5
  739. package/util/isControl.js.map +0 -1
  740. package/util/localStorageGet.d.ts +0 -2
  741. package/util/localStorageGet.js +0 -9
  742. package/util/localStorageGet.js.map +0 -1
  743. package/util/localStorageRemove.d.ts +0 -2
  744. package/util/localStorageRemove.js +0 -7
  745. package/util/localStorageRemove.js.map +0 -1
  746. package/util/localStorageSet.d.ts +0 -2
  747. package/util/localStorageSet.js +0 -9
  748. package/util/localStorageSet.js.map +0 -1
  749. package/util/registerExperimentalMode.d.ts +0 -6
  750. package/util/registerExperimentalMode.js +0 -66
  751. package/util/registerExperimentalMode.js.map +0 -1
  752. package/util/registerSmartBlocksCommand.d.ts +0 -3
  753. package/util/registerSmartBlocksCommand.js +0 -24
  754. package/util/registerSmartBlocksCommand.js.map +0 -1
  755. package/util/removeFromRegistry.d.ts +0 -3
  756. package/util/removeFromRegistry.js +0 -8
  757. package/util/removeFromRegistry.js.map +0 -1
  758. package/util/renderOverlay.d.ts +0 -12
  759. package/util/renderOverlay.js +0 -49
  760. package/util/renderOverlay.js.map +0 -1
  761. package/util/renderWithUnmount.d.ts +0 -4
  762. package/util/renderWithUnmount.js +0 -45
  763. package/util/renderWithUnmount.js.map +0 -1
  764. package/util/runExtension.d.ts +0 -11
  765. package/util/runExtension.js +0 -175
  766. package/util/runExtension.js.map +0 -1
  767. package/util/setInputSetting.d.ts +0 -7
  768. package/util/setInputSetting.js +0 -38
  769. package/util/setInputSetting.js.map +0 -1
  770. package/util/setInputSettings.d.ts +0 -7
  771. package/util/setInputSettings.js +0 -29
  772. package/util/setInputSettings.js.map +0 -1
  773. package/util/stripUid.d.ts +0 -3
  774. package/util/stripUid.js +0 -11
  775. package/util/stripUid.js.map +0 -1
  776. package/util/toConfigPageName.d.ts +0 -2
  777. package/util/toConfigPageName.js +0 -5
  778. package/util/toConfigPageName.js.map +0 -1
  779. package/util/toFlexRegex.d.ts +0 -2
  780. package/util/toFlexRegex.js +0 -5
  781. package/util/toFlexRegex.js.map +0 -1
  782. package/writes/clearBlockById.d.ts +0 -2
  783. package/writes/clearBlockById.js +0 -18
  784. package/writes/clearBlockById.js.map +0 -1
  785. package/writes/clearBlockByUid.d.ts +0 -2
  786. package/writes/clearBlockByUid.js +0 -17
  787. package/writes/clearBlockByUid.js.map +0 -1
  788. package/writes/createBlock.d.ts +0 -8
  789. package/writes/createBlock.js +0 -29
  790. package/writes/createBlock.js.map +0 -1
  791. package/writes/createPage.d.ts +0 -7
  792. package/writes/createPage.js +0 -21
  793. package/writes/createPage.js.map +0 -1
  794. package/writes/deleteBlock.d.ts +0 -2
  795. package/writes/deleteBlock.js +0 -11
  796. package/writes/deleteBlock.js.map +0 -1
  797. package/writes/index.js +0 -23
  798. package/writes/index.js.map +0 -1
  799. package/writes/openBlockInSidebar.d.ts +0 -2
  800. package/writes/openBlockInSidebar.js +0 -14
  801. package/writes/openBlockInSidebar.js.map +0 -1
  802. package/writes/submitActions.d.ts +0 -8
  803. package/writes/submitActions.js +0 -37
  804. package/writes/submitActions.js.map +0 -1
  805. package/writes/updateActiveBlock.d.ts +0 -2
  806. package/writes/updateActiveBlock.js +0 -18
  807. package/writes/updateActiveBlock.js.map +0 -1
  808. package/writes/updateBlock.d.ts +0 -5
  809. package/writes/updateBlock.js +0 -24
  810. package/writes/updateBlock.js.map +0 -1
@@ -1 +0,0 @@
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"]}
package/types/index.d.ts DELETED
@@ -1,250 +0,0 @@
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
- };
84
- fast: {
85
- q: (query: string, ...params: unknown[]) => unknown[][];
86
- };
87
- page: {
88
- create: WriteAction;
89
- update: WriteAction;
90
- delete: WriteAction;
91
- };
92
- pull: (selector: string, id: number | string | [string, string]) => PullBlock;
93
- pull_many: (pattern: string, eid: string[][]) => PullBlock[];
94
- q: (query: string, ...params: unknown[]) => unknown[][];
95
- removePullWatch: (pullPattern: string, entityId: string, callback?: (before: PullBlock, after: PullBlock) => void) => boolean;
96
- redo: () => void;
97
- undo: () => void;
98
- user: {
99
- upsert: () => void;
100
- };
101
- };
102
- ui: {
103
- leftSidebar: {
104
- open: () => Promise<void>;
105
- close: () => Promise<void>;
106
- };
107
- rightSidebar: {
108
- open: () => Promise<void>;
109
- close: () => Promise<void>;
110
- getWindows: () => SidebarWindow[];
111
- addWindow: SidebarAction;
112
- setWindowOrder: (action: {
113
- window: SidebarWindowInput & {
114
- order: number;
115
- };
116
- }) => Promise<void>;
117
- collapseWindow: SidebarAction;
118
- pinWindow: SidebarAction;
119
- expandWindow: SidebarAction;
120
- removeWindow: SidebarAction;
121
- unpinWindow: SidebarAction;
122
- };
123
- commandPalette: {
124
- addCommand: (action: {
125
- label: string;
126
- callback: () => void;
127
- }) => Promise<void>;
128
- removeCommand: (action: {
129
- label: string;
130
- }) => Promise<void>;
131
- };
132
- blockContextMenu: {
133
- addCommand: (action: {
134
- label: string;
135
- callback: (props: {
136
- "block-string": string;
137
- "block-uid": string;
138
- heading: 0 | 1 | 2 | 3 | null;
139
- "page-uid": string;
140
- "read-only?": boolean;
141
- "window-id": string;
142
- }) => void;
143
- }) => void;
144
- removeCommand: (action: {
145
- label: string;
146
- }) => void;
147
- };
148
- getFocusedBlock: () => null | {
149
- "window-id": string;
150
- "block-uid": string;
151
- };
152
- components: {
153
- renderBlock: (args: {
154
- uid: string;
155
- el: HTMLElement;
156
- zoomPath?: boolean;
157
- }) => null;
158
- renderPage: (args: {
159
- uid: string;
160
- el: HTMLElement;
161
- hideMentions?: boolean;
162
- }) => null;
163
- };
164
- graphView: {
165
- wholeGraph: {
166
- addCallback: (props: {
167
- label: string;
168
- callback: (arg: {
169
- "sigma-renderer": unknown;
170
- }) => void;
171
- }) => any;
172
- removeCallback: (props: {
173
- label: string;
174
- }) => void;
175
- setExplorePages: (pages: string[]) => void;
176
- getExplorePages: () => string[];
177
- setMode: (mode: "Whole Graph" | "Explore") => void;
178
- };
179
- };
180
- mainWindow: {
181
- focusFirstBlock: () => Promise<void>;
182
- openBlock: (p: {
183
- block: {
184
- uid: string;
185
- };
186
- }) => Promise<void>;
187
- openPage: (p: {
188
- page: {
189
- uid: string;
190
- } | {
191
- title: string;
192
- };
193
- }) => Promise<void>;
194
- getOpenPageOrBlockUid: () => Promise<string | null>;
195
- openDailyNotes: () => Promise<void>;
196
- };
197
- setBlockFocusAndSelection: (a: {
198
- location?: {
199
- "block-uid": string;
200
- "window-id": string;
201
- };
202
- selection?: {
203
- start: number;
204
- end?: number;
205
- };
206
- }) => Promise<void>;
207
- };
208
- platform: {
209
- isDesktop: boolean;
210
- isIOS: boolean;
211
- isMobile: boolean;
212
- isMobileApp: boolean;
213
- isPC: boolean;
214
- isTouchDevice: boolean;
215
- };
216
- graph: {
217
- name: string;
218
- type: "hosted" | "offline";
219
- isEncrypted: boolean;
220
- };
221
- };
222
- roamjs: {
223
- loaded: Set<string>;
224
- extension: {
225
- queryBuilder?: {
226
- runQuery: RunQuery;
227
- runQuerySync: RunQuerySync;
228
- listActiveQueries: ListActiveQueries;
229
- isDiscourseNode: IsDiscourseNode;
230
- };
231
- smartblocks?: {
232
- registerCommand: RegisterCommand;
233
- unregisterCommand: UnregisterCommand;
234
- triggerSmartblock: (args: {
235
- srcName?: string;
236
- srcUid?: string;
237
- targetName?: string;
238
- targetUid?: string;
239
- variables?: Record<string, string>;
240
- }) => Promise<unknown>;
241
- };
242
- [id: string]: Record<string, unknown> | undefined;
243
- };
244
- version: {
245
- [id: string]: string;
246
- };
247
- actions: Record<string, number>;
248
- };
249
- }
250
- }
package/types/index.js DELETED
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAmBA,mDAAyB","sourcesContent":["import {\n AddPullWatch,\n PullBlock,\n SidebarAction,\n SidebarWindow,\n SidebarWindowInput,\n WriteAction,\n} from \"./native\";\nimport {\n RunQuery,\n ListActiveQueries,\n RunQuerySync,\n IsDiscourseNode,\n} from \"./query-builder\";\nimport { RegisterCommand, UnregisterCommand } from \"./smartblocks\";\nimport type marked from \"marked\";\nimport type Markdown from \"marked-react\";\nimport type JSZip from \"jszip\";\nimport type cytoscape from \"cytoscape\";\nexport * from \"./native\";\n\nexport type Registry = {\n elements: HTMLElement[];\n reactRoots: HTMLElement[];\n observers: MutationObserver[];\n domListeners: (\n | {\n el: Window;\n type: keyof WindowEventMap;\n listener: (\n this: Window,\n ev: WindowEventMap[keyof WindowEventMap]\n ) => void;\n }\n | {\n el: Document;\n type: keyof DocumentEventMap;\n listener: (\n this: Document,\n ev: DocumentEventMap[keyof DocumentEventMap]\n ) => void;\n }\n | {\n el: HTMLElement;\n type: keyof HTMLElementEventMap | `roamjs:${string}`;\n listener: (\n this: HTMLElement,\n ev: HTMLElementEventMap[keyof HTMLElementEventMap]\n ) => void;\n }\n )[];\n commands: string[];\n timeouts: { timeout: number }[];\n};\n\ndeclare global {\n interface Window {\n // TODO remove\n RoamLazy?: {\n JSZip: () => Promise<typeof JSZip>;\n Marked: () => Promise<typeof marked>;\n MarkedReact: () => Promise<typeof Markdown>;\n Cytoscape: () => Promise<typeof cytoscape>;\n Insect: () => Promise<{\n // insect uses purescript instead of typescript -.-\n commands: string[];\n fmtConsole: (M: unknown) => unknown;\n fmtJqueryTerminal: (M: unknown) => unknown;\n fmtPlain: (M: unknown) => unknown;\n functions: (M: unknown) => unknown;\n identifiers: (M: unknown) => unknown;\n initialEnvironment: { values: unknown; functions: unknown };\n repl: (\n fmt: (M: unknown) => unknown\n ) => (env: {\n values: unknown;\n functions: unknown;\n }) => (s: string) => { msg: string };\n }>;\n };\n // END TODO remove\n\n roamAlphaAPI: {\n q: (query: string, ...params: unknown[]) => unknown[][];\n pull: (\n selector: string,\n id: number | string | [string, string]\n ) => PullBlock;\n createBlock: WriteAction;\n updateBlock: WriteAction;\n createPage: WriteAction;\n moveBlock: WriteAction;\n deleteBlock: WriteAction;\n updatePage: WriteAction;\n deletePage: WriteAction;\n util: {\n generateUID: () => string;\n dateToPageTitle: (date: Date) => string;\n dateToPageUid: (date: Date) => string;\n pageTitleToDate: (title: string) => Date | null;\n uploadFile: (args: { file: File }) => string;\n };\n data: {\n addPullWatch: AddPullWatch;\n block: {\n create: WriteAction;\n update: WriteAction;\n move: WriteAction;\n delete: WriteAction;\n };\n fast: {\n q: (query: string, ...params: unknown[]) => unknown[][];\n };\n page: {\n create: WriteAction;\n update: WriteAction;\n delete: WriteAction;\n };\n pull: (\n selector: string,\n id: number | string | [string, string]\n ) => PullBlock;\n pull_many: (pattern: string, eid: string[][]) => PullBlock[];\n q: (query: string, ...params: unknown[]) => unknown[][];\n removePullWatch: (\n pullPattern: string,\n entityId: string,\n callback?: (before: PullBlock, after: PullBlock) => void\n ) => boolean;\n redo: () => void;\n undo: () => void;\n user: {\n upsert: () => void;\n };\n };\n ui: {\n leftSidebar: {\n open: () => Promise<void>;\n close: () => Promise<void>;\n };\n rightSidebar: {\n open: () => Promise<void>;\n close: () => Promise<void>;\n getWindows: () => SidebarWindow[];\n addWindow: SidebarAction;\n setWindowOrder: (action: {\n window: SidebarWindowInput & { order: number };\n }) => Promise<void>;\n collapseWindow: SidebarAction;\n pinWindow: SidebarAction;\n expandWindow: SidebarAction;\n removeWindow: SidebarAction;\n unpinWindow: SidebarAction;\n };\n commandPalette: {\n addCommand: (action: {\n label: string;\n callback: () => void;\n }) => Promise<void>;\n removeCommand: (action: { label: string }) => Promise<void>;\n };\n blockContextMenu: {\n addCommand: (action: {\n label: string;\n callback: (props: {\n \"block-string\": string;\n \"block-uid\": string;\n heading: 0 | 1 | 2 | 3 | null;\n \"page-uid\": string;\n \"read-only?\": boolean;\n \"window-id\": string;\n }) => void;\n }) => void;\n removeCommand: (action: { label: string }) => void;\n };\n getFocusedBlock: () => null | {\n \"window-id\": string;\n \"block-uid\": string;\n };\n components: {\n renderBlock: (args: {\n uid: string;\n el: HTMLElement;\n zoomPath?: boolean;\n }) => null;\n renderPage: (args: {\n uid: string;\n el: HTMLElement;\n hideMentions?: boolean;\n }) => null;\n };\n graphView: {\n wholeGraph: {\n addCallback: (props: {\n label: string;\n callback: (arg: { \"sigma-renderer\": unknown }) => void;\n }) => any;\n removeCallback: (props: { label: string }) => void;\n setExplorePages: (pages: string[]) => void;\n getExplorePages: () => string[];\n setMode: (mode: \"Whole Graph\" | \"Explore\") => void;\n };\n };\n mainWindow: {\n focusFirstBlock: () => Promise<void>;\n openBlock: (p: { block: { uid: string } }) => Promise<void>;\n openPage: (p: {\n page: { uid: string } | { title: string };\n }) => Promise<void>;\n getOpenPageOrBlockUid: () => Promise<string | null>;\n openDailyNotes: () => Promise<void>;\n };\n setBlockFocusAndSelection: (a: {\n location?: { \"block-uid\": string; \"window-id\": string };\n selection?: { start: number; end?: number };\n }) => Promise<void>;\n };\n platform: {\n isDesktop: boolean;\n isIOS: boolean;\n isMobile: boolean;\n isMobileApp: boolean;\n isPC: boolean;\n isTouchDevice: boolean;\n };\n graph: {\n name: string;\n type: \"hosted\" | \"offline\";\n isEncrypted: boolean;\n };\n };\n\n // roamjs namespace should only be used for methods that must be accessed across extension scripts\n roamjs: {\n loaded: Set<string>;\n extension: {\n queryBuilder?: {\n runQuery: RunQuery;\n runQuerySync: RunQuerySync;\n listActiveQueries: ListActiveQueries;\n isDiscourseNode: IsDiscourseNode;\n };\n smartblocks?: {\n registerCommand: RegisterCommand;\n unregisterCommand: UnregisterCommand;\n triggerSmartblock: (args: {\n srcName?: string;\n srcUid?: string;\n targetName?: string;\n targetUid?: string;\n variables?: Record<string, string>;\n }) => Promise<unknown>;\n };\n [id: string]: Record<string, unknown> | undefined;\n };\n version: { [id: string]: string };\n actions: Record<string, number>;\n };\n }\n}\n"]}