@powerhousedao/reactor-browser 4.1.0-dev.9 → 4.1.0-dev.91

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 (490) hide show
  1. package/README.md +624 -0
  2. package/dist/src/actions/dispatch.d.ts +4 -0
  3. package/dist/src/actions/dispatch.d.ts.map +1 -0
  4. package/dist/src/actions/dispatch.js +29 -0
  5. package/dist/src/actions/dispatch.js.map +1 -0
  6. package/dist/src/actions/document.d.ts +16 -0
  7. package/dist/src/actions/document.d.ts.map +1 -0
  8. package/dist/src/actions/document.js +488 -0
  9. package/dist/src/actions/document.js.map +1 -0
  10. package/dist/src/actions/drive.d.ts +12 -0
  11. package/dist/src/actions/drive.d.ts.map +1 -0
  12. package/dist/src/actions/drive.js +152 -0
  13. package/dist/src/actions/drive.js.map +1 -0
  14. package/dist/src/actions/index.d.ts +3 -0
  15. package/dist/src/actions/index.d.ts.map +1 -0
  16. package/dist/src/actions/index.js +3 -0
  17. package/dist/src/actions/index.js.map +1 -0
  18. package/dist/src/actions/queue.d.ts +10 -0
  19. package/dist/src/actions/queue.d.ts.map +1 -0
  20. package/dist/src/actions/queue.js +136 -0
  21. package/dist/src/actions/queue.js.map +1 -0
  22. package/dist/src/actions/sign.d.ts +5 -0
  23. package/dist/src/actions/sign.d.ts.map +1 -0
  24. package/dist/src/actions/sign.js +71 -0
  25. package/dist/src/actions/sign.js.map +1 -0
  26. package/dist/src/analytics/context.d.ts +3 -3
  27. package/dist/src/analytics/context.d.ts.map +1 -1
  28. package/dist/src/analytics/context.js +2 -2
  29. package/dist/src/analytics/context.js.map +1 -1
  30. package/dist/src/analytics/hooks.d.ts +3 -2
  31. package/dist/src/analytics/hooks.d.ts.map +1 -1
  32. package/dist/src/analytics/hooks.js +3 -3
  33. package/dist/src/analytics/hooks.js.map +1 -1
  34. package/dist/src/analytics/index.d.ts +3 -0
  35. package/dist/src/analytics/index.d.ts.map +1 -0
  36. package/dist/src/analytics/index.js +3 -0
  37. package/dist/src/analytics/index.js.map +1 -0
  38. package/dist/src/analytics/store/browser.d.ts +1 -1
  39. package/dist/src/analytics/store/browser.d.ts.map +1 -1
  40. package/dist/src/analytics/store/browser.js +1 -1
  41. package/dist/src/analytics/store/browser.js.map +1 -1
  42. package/dist/src/analytics/store/memory.d.ts +1 -1
  43. package/dist/src/analytics/store/memory.d.ts.map +1 -1
  44. package/dist/src/analytics/store/memory.js +1 -1
  45. package/dist/src/analytics/store/memory.js.map +1 -1
  46. package/dist/src/analytics/types.d.ts +2 -3
  47. package/dist/src/analytics/types.d.ts.map +1 -1
  48. package/dist/src/connect.d.ts +2 -0
  49. package/dist/src/connect.d.ts.map +1 -0
  50. package/dist/src/connect.js +2 -0
  51. package/dist/src/connect.js.map +1 -0
  52. package/dist/src/constants.d.ts +3 -0
  53. package/dist/src/constants.d.ts.map +1 -0
  54. package/dist/src/constants.js +3 -0
  55. package/dist/src/constants.js.map +1 -0
  56. package/dist/src/context/index.d.ts +1 -1
  57. package/dist/src/context/index.d.ts.map +1 -1
  58. package/dist/src/context/index.js +1 -1
  59. package/dist/src/context/index.js.map +1 -1
  60. package/dist/src/context/read-mode.d.ts +2 -2
  61. package/dist/src/context/read-mode.d.ts.map +1 -1
  62. package/dist/src/context/read-mode.js +25 -47
  63. package/dist/src/context/read-mode.js.map +1 -1
  64. package/dist/src/document-model.d.ts +3 -3
  65. package/dist/src/document-model.d.ts.map +1 -1
  66. package/dist/src/document-model.js +1 -1
  67. package/dist/src/document-model.js.map +1 -1
  68. package/dist/src/errors.d.ts +16 -0
  69. package/dist/src/errors.d.ts.map +1 -0
  70. package/dist/src/errors.js +27 -0
  71. package/dist/src/errors.js.map +1 -0
  72. package/dist/src/global/core.d.ts.map +1 -1
  73. package/dist/src/global/core.js +0 -1
  74. package/dist/src/global/core.js.map +1 -1
  75. package/dist/src/global/index.d.ts +0 -1
  76. package/dist/src/global/index.d.ts.map +1 -1
  77. package/dist/src/global/index.js +0 -1
  78. package/dist/src/global/index.js.map +1 -1
  79. package/dist/src/global/types.d.ts +2 -2
  80. package/dist/src/global/types.d.ts.map +1 -1
  81. package/dist/src/hooks/add-ph-event-handlers.d.ts +2 -0
  82. package/dist/src/hooks/add-ph-event-handlers.d.ts.map +1 -0
  83. package/dist/src/hooks/add-ph-event-handlers.js +89 -0
  84. package/dist/src/hooks/add-ph-event-handlers.js.map +1 -0
  85. package/dist/src/hooks/all-documents.d.ts +9 -0
  86. package/dist/src/hooks/all-documents.d.ts.map +1 -0
  87. package/dist/src/hooks/all-documents.js +9 -0
  88. package/dist/src/hooks/all-documents.js.map +1 -0
  89. package/dist/src/hooks/allowed-document-model-modules.d.ts +2 -0
  90. package/dist/src/hooks/allowed-document-model-modules.d.ts.map +1 -0
  91. package/dist/src/hooks/allowed-document-model-modules.js +10 -0
  92. package/dist/src/hooks/allowed-document-model-modules.js.map +1 -0
  93. package/dist/src/hooks/child-nodes.d.ts +4 -0
  94. package/dist/src/hooks/child-nodes.d.ts.map +1 -0
  95. package/dist/src/hooks/child-nodes.js +15 -0
  96. package/dist/src/hooks/child-nodes.js.map +1 -0
  97. package/dist/src/hooks/config/connect.d.ts +72 -0
  98. package/dist/src/hooks/config/connect.d.ts.map +1 -0
  99. package/dist/src/hooks/config/connect.js +174 -0
  100. package/dist/src/hooks/config/connect.js.map +1 -0
  101. package/dist/src/hooks/config/editor.d.ts +32 -0
  102. package/dist/src/hooks/config/editor.d.ts.map +1 -0
  103. package/dist/src/hooks/config/editor.js +43 -0
  104. package/dist/src/hooks/config/editor.js.map +1 -0
  105. package/dist/src/hooks/config/set-config-by-key.d.ts +5 -0
  106. package/dist/src/hooks/config/set-config-by-key.d.ts.map +1 -0
  107. package/dist/src/hooks/config/set-config-by-key.js +15 -0
  108. package/dist/src/hooks/config/set-config-by-key.js.map +1 -0
  109. package/dist/src/hooks/config/set-config-by-object.d.ts +31 -0
  110. package/dist/src/hooks/config/set-config-by-object.d.ts.map +1 -0
  111. package/dist/src/hooks/config/set-config-by-object.js +84 -0
  112. package/dist/src/hooks/config/set-config-by-object.js.map +1 -0
  113. package/dist/src/hooks/config/use-value-by-key.d.ts +13 -0
  114. package/dist/src/hooks/config/use-value-by-key.d.ts.map +1 -0
  115. package/dist/src/hooks/config/use-value-by-key.js +23 -0
  116. package/dist/src/hooks/config/use-value-by-key.js.map +1 -0
  117. package/dist/src/hooks/config/utils.d.ts +3 -0
  118. package/dist/src/hooks/config/utils.d.ts.map +1 -0
  119. package/dist/src/hooks/config/utils.js +6 -0
  120. package/dist/src/hooks/config/utils.js.map +1 -0
  121. package/dist/src/hooks/connect.d.ts +15 -0
  122. package/dist/src/hooks/connect.d.ts.map +1 -0
  123. package/dist/src/hooks/connect.js +15 -0
  124. package/dist/src/hooks/connect.js.map +1 -0
  125. package/dist/src/hooks/crypto.d.ts +3 -0
  126. package/dist/src/hooks/crypto.d.ts.map +1 -0
  127. package/dist/src/hooks/crypto.js +7 -0
  128. package/dist/src/hooks/crypto.js.map +1 -0
  129. package/dist/src/hooks/did.d.ts +2 -0
  130. package/dist/src/hooks/did.d.ts.map +1 -0
  131. package/dist/src/hooks/did.js +3 -0
  132. package/dist/src/hooks/did.js.map +1 -0
  133. package/dist/src/hooks/dispatch.d.ts +4 -0
  134. package/dist/src/hooks/dispatch.d.ts.map +1 -0
  135. package/dist/src/hooks/dispatch.js +10 -0
  136. package/dist/src/hooks/dispatch.js.map +1 -0
  137. package/dist/src/hooks/document-by-id.d.ts +4 -0
  138. package/dist/src/hooks/document-by-id.d.ts.map +1 -0
  139. package/dist/src/hooks/document-by-id.js +10 -0
  140. package/dist/src/hooks/document-by-id.js.map +1 -0
  141. package/dist/src/hooks/document-model-modules.d.ts +4 -0
  142. package/dist/src/hooks/document-model-modules.d.ts.map +1 -0
  143. package/dist/src/hooks/document-model-modules.js +10 -0
  144. package/dist/src/hooks/document-model-modules.js.map +1 -0
  145. package/dist/src/hooks/document-of-type.d.ts +5 -0
  146. package/dist/src/hooks/document-of-type.d.ts.map +1 -0
  147. package/dist/src/hooks/document-of-type.js +22 -0
  148. package/dist/src/hooks/document-of-type.js.map +1 -0
  149. package/dist/src/hooks/document-types.d.ts +7 -0
  150. package/dist/src/hooks/document-types.d.ts.map +1 -0
  151. package/dist/src/hooks/document-types.js +13 -0
  152. package/dist/src/hooks/document-types.js.map +1 -0
  153. package/dist/src/hooks/drive-by-id.d.ts +4 -0
  154. package/dist/src/hooks/drive-by-id.d.ts.map +1 -0
  155. package/dist/src/hooks/drive-by-id.js +12 -0
  156. package/dist/src/hooks/drive-by-id.js.map +1 -0
  157. package/dist/src/hooks/drives.d.ts +9 -0
  158. package/dist/src/hooks/drives.d.ts.map +1 -0
  159. package/dist/src/hooks/drives.js +9 -0
  160. package/dist/src/hooks/drives.js.map +1 -0
  161. package/dist/src/hooks/editor-modules.d.ts +9 -0
  162. package/dist/src/hooks/editor-modules.d.ts.map +1 -0
  163. package/dist/src/hooks/editor-modules.js +43 -0
  164. package/dist/src/hooks/editor-modules.js.map +1 -0
  165. package/dist/src/hooks/folder-by-id.d.ts +3 -0
  166. package/dist/src/hooks/folder-by-id.d.ts.map +1 -0
  167. package/dist/src/hooks/folder-by-id.js +6 -0
  168. package/dist/src/hooks/folder-by-id.js.map +1 -0
  169. package/dist/src/hooks/import-script-modules.d.ts +3 -0
  170. package/dist/src/hooks/import-script-modules.d.ts.map +1 -0
  171. package/dist/src/hooks/import-script-modules.js +6 -0
  172. package/dist/src/hooks/import-script-modules.js.map +1 -0
  173. package/dist/src/hooks/index.d.ts +37 -7
  174. package/dist/src/hooks/index.d.ts.map +1 -1
  175. package/dist/src/hooks/index.js +37 -7
  176. package/dist/src/hooks/index.js.map +1 -1
  177. package/dist/src/hooks/items-in-selected-drive.d.ts +13 -0
  178. package/dist/src/hooks/items-in-selected-drive.d.ts.map +1 -0
  179. package/dist/src/hooks/items-in-selected-drive.js +36 -0
  180. package/dist/src/hooks/items-in-selected-drive.js.map +1 -0
  181. package/dist/src/hooks/loading.d.ts +2 -0
  182. package/dist/src/hooks/loading.d.ts.map +1 -0
  183. package/dist/src/hooks/loading.js +3 -0
  184. package/dist/src/hooks/loading.js.map +1 -0
  185. package/dist/src/hooks/login-status.d.ts +2 -0
  186. package/dist/src/hooks/login-status.d.ts.map +1 -0
  187. package/dist/src/hooks/login-status.js +3 -0
  188. package/dist/src/hooks/login-status.js.map +1 -0
  189. package/dist/src/hooks/make-ph-event-functions.d.ts +7 -0
  190. package/dist/src/hooks/make-ph-event-functions.d.ts.map +1 -0
  191. package/dist/src/hooks/make-ph-event-functions.js +46 -0
  192. package/dist/src/hooks/make-ph-event-functions.js.map +1 -0
  193. package/dist/src/hooks/modals.d.ts +17 -0
  194. package/dist/src/hooks/modals.d.ts.map +1 -0
  195. package/dist/src/hooks/modals.js +26 -0
  196. package/dist/src/hooks/modals.js.map +1 -0
  197. package/dist/src/hooks/node-actions.d.ts +11 -0
  198. package/dist/src/hooks/node-actions.d.ts.map +1 -0
  199. package/dist/src/hooks/node-actions.js +97 -0
  200. package/dist/src/hooks/node-actions.js.map +1 -0
  201. package/dist/src/hooks/node-by-id.d.ts +4 -0
  202. package/dist/src/hooks/node-by-id.d.ts.map +1 -0
  203. package/dist/src/hooks/node-by-id.js +7 -0
  204. package/dist/src/hooks/node-by-id.js.map +1 -0
  205. package/dist/src/hooks/node-path.d.ts +6 -0
  206. package/dist/src/hooks/node-path.d.ts.map +1 -0
  207. package/dist/src/hooks/node-path.js +23 -0
  208. package/dist/src/hooks/node-path.js.map +1 -0
  209. package/dist/src/hooks/parent-folder.d.ts +4 -0
  210. package/dist/src/hooks/parent-folder.d.ts.map +1 -0
  211. package/dist/src/hooks/parent-folder.js +13 -0
  212. package/dist/src/hooks/parent-folder.js.map +1 -0
  213. package/dist/src/hooks/processor-manager.d.ts +9 -0
  214. package/dist/src/hooks/processor-manager.d.ts.map +1 -0
  215. package/dist/src/hooks/processor-manager.js +9 -0
  216. package/dist/src/hooks/processor-manager.js.map +1 -0
  217. package/dist/src/hooks/processor-modules.d.ts +4 -0
  218. package/dist/src/hooks/processor-modules.d.ts.map +1 -0
  219. package/dist/src/hooks/processor-modules.js +12 -0
  220. package/dist/src/hooks/processor-modules.js.map +1 -0
  221. package/dist/src/hooks/reactor.d.ts +9 -0
  222. package/dist/src/hooks/reactor.d.ts.map +1 -0
  223. package/dist/src/hooks/reactor.js +9 -0
  224. package/dist/src/hooks/reactor.js.map +1 -0
  225. package/dist/src/hooks/renown.d.ts +7 -0
  226. package/dist/src/hooks/renown.d.ts.map +1 -0
  227. package/dist/src/hooks/renown.js +9 -0
  228. package/dist/src/hooks/renown.js.map +1 -0
  229. package/dist/src/hooks/revision-history.d.ts +11 -0
  230. package/dist/src/hooks/revision-history.d.ts.map +1 -0
  231. package/dist/src/hooks/revision-history.js +17 -0
  232. package/dist/src/hooks/revision-history.js.map +1 -0
  233. package/dist/src/hooks/selected-document.d.ts +10 -0
  234. package/dist/src/hooks/selected-document.d.ts.map +1 -0
  235. package/dist/src/hooks/selected-document.js +28 -0
  236. package/dist/src/hooks/selected-document.js.map +1 -0
  237. package/dist/src/hooks/selected-drive.d.ts +12 -0
  238. package/dist/src/hooks/selected-drive.d.ts.map +1 -0
  239. package/dist/src/hooks/selected-drive.js +47 -0
  240. package/dist/src/hooks/selected-drive.js.map +1 -0
  241. package/dist/src/hooks/selected-folder.d.ts +4 -0
  242. package/dist/src/hooks/selected-folder.d.ts.map +1 -0
  243. package/dist/src/hooks/selected-folder.js +10 -0
  244. package/dist/src/hooks/selected-folder.js.map +1 -0
  245. package/dist/src/hooks/selected-node.d.ts +7 -0
  246. package/dist/src/hooks/selected-node.d.ts.map +1 -0
  247. package/dist/src/hooks/selected-node.js +31 -0
  248. package/dist/src/hooks/selected-node.js.map +1 -0
  249. package/dist/src/hooks/selected-timeline-item.d.ts +7 -0
  250. package/dist/src/hooks/selected-timeline-item.d.ts.map +1 -0
  251. package/dist/src/hooks/selected-timeline-item.js +9 -0
  252. package/dist/src/hooks/selected-timeline-item.js.map +1 -0
  253. package/dist/src/hooks/subgraph-modules.d.ts +3 -0
  254. package/dist/src/hooks/subgraph-modules.d.ts.map +1 -0
  255. package/dist/src/hooks/subgraph-modules.js +6 -0
  256. package/dist/src/hooks/subgraph-modules.js.map +1 -0
  257. package/dist/src/hooks/supported-document-types.d.ts +3 -0
  258. package/dist/src/hooks/supported-document-types.d.ts.map +1 -0
  259. package/dist/src/hooks/supported-document-types.js +7 -0
  260. package/dist/src/hooks/supported-document-types.js.map +1 -0
  261. package/dist/src/hooks/timeline-revision.d.ts +7 -0
  262. package/dist/src/hooks/timeline-revision.d.ts.map +1 -0
  263. package/dist/src/hooks/timeline-revision.js +9 -0
  264. package/dist/src/hooks/timeline-revision.js.map +1 -0
  265. package/dist/src/hooks/use-document-timeline.d.ts +19 -0
  266. package/dist/src/hooks/use-document-timeline.d.ts.map +1 -0
  267. package/dist/src/hooks/use-document-timeline.js +10 -0
  268. package/dist/src/hooks/use-document-timeline.js.map +1 -0
  269. package/dist/src/hooks/use-on-drop-file.d.ts +3 -0
  270. package/dist/src/hooks/use-on-drop-file.d.ts.map +1 -0
  271. package/dist/src/hooks/use-on-drop-file.js +21 -0
  272. package/dist/src/hooks/use-on-drop-file.js.map +1 -0
  273. package/dist/src/hooks/use-timeline-items.d.ts +25 -0
  274. package/dist/src/hooks/use-timeline-items.d.ts.map +1 -0
  275. package/dist/src/hooks/use-timeline-items.js +104 -0
  276. package/dist/src/hooks/use-timeline-items.js.map +1 -0
  277. package/dist/src/hooks/user-permissions.d.ts +5 -0
  278. package/dist/src/hooks/user-permissions.d.ts.map +1 -0
  279. package/dist/src/hooks/user-permissions.js +17 -0
  280. package/dist/src/hooks/user-permissions.js.map +1 -0
  281. package/dist/src/hooks/user.d.ts +2 -0
  282. package/dist/src/hooks/user.d.ts.map +1 -0
  283. package/dist/src/hooks/user.js +3 -0
  284. package/dist/src/hooks/user.js.map +1 -0
  285. package/dist/src/hooks/vetra-packages.d.ts +8 -0
  286. package/dist/src/hooks/vetra-packages.d.ts.map +1 -0
  287. package/dist/src/hooks/vetra-packages.js +15 -0
  288. package/dist/src/hooks/vetra-packages.js.map +1 -0
  289. package/dist/src/index.d.ts +7 -4
  290. package/dist/src/index.d.ts.map +1 -1
  291. package/dist/src/index.js +7 -2
  292. package/dist/src/index.js.map +1 -1
  293. package/dist/src/pglite/hooks/usePGlite.d.ts +1 -1
  294. package/dist/src/pglite/hooks/usePGlite.d.ts.map +1 -1
  295. package/dist/src/pglite/index.d.ts +0 -4
  296. package/dist/src/pglite/index.d.ts.map +1 -1
  297. package/dist/src/pglite/index.js +0 -4
  298. package/dist/src/pglite/index.js.map +1 -1
  299. package/dist/src/reactor.d.ts +11 -3
  300. package/dist/src/reactor.d.ts.map +1 -1
  301. package/dist/src/reactor.js +90 -10
  302. package/dist/src/reactor.js.map +1 -1
  303. package/dist/src/relational/hooks/useRelationalDb.d.ts +2 -2
  304. package/dist/src/relational/hooks/useRelationalDb.d.ts.map +1 -1
  305. package/dist/src/relational/hooks/useRelationalDb.js +2 -2
  306. package/dist/src/relational/hooks/useRelationalDb.js.map +1 -1
  307. package/dist/src/relational/hooks/useRelationalQuery.d.ts +2 -3
  308. package/dist/src/relational/hooks/useRelationalQuery.d.ts.map +1 -1
  309. package/dist/src/relational/hooks/useRelationalQuery.js +1 -1
  310. package/dist/src/relational/hooks/useRelationalQuery.js.map +1 -1
  311. package/dist/src/relational/utils/createProcessorQuery.d.ts +4 -4
  312. package/dist/src/relational/utils/createProcessorQuery.d.ts.map +1 -1
  313. package/dist/src/relational/utils/createProcessorQuery.js +2 -2
  314. package/dist/src/relational/utils/createProcessorQuery.js.map +1 -1
  315. package/dist/src/renown/index.d.ts +3 -0
  316. package/dist/src/renown/index.d.ts.map +1 -0
  317. package/dist/src/renown/index.js +3 -0
  318. package/dist/src/renown/index.js.map +1 -0
  319. package/dist/src/renown/utils.d.ts +6 -0
  320. package/dist/src/renown/utils.d.ts.map +1 -0
  321. package/dist/src/renown/utils.js +56 -0
  322. package/dist/src/renown/utils.js.map +1 -0
  323. package/dist/src/types/config.d.ts +90 -0
  324. package/dist/src/types/config.d.ts.map +1 -0
  325. package/dist/src/types/config.js +2 -0
  326. package/dist/src/types/config.js.map +1 -0
  327. package/dist/src/types/documents.d.ts +3 -0
  328. package/dist/src/types/documents.d.ts.map +1 -0
  329. package/dist/src/types/documents.js +2 -0
  330. package/dist/src/types/documents.js.map +1 -0
  331. package/dist/src/types/global.d.ts +42 -0
  332. package/dist/src/types/global.d.ts.map +1 -0
  333. package/dist/src/types/global.js +2 -0
  334. package/dist/src/types/global.js.map +1 -0
  335. package/dist/src/types/index.d.ts +8 -1
  336. package/dist/src/types/index.d.ts.map +1 -1
  337. package/dist/src/types/index.js +1 -1
  338. package/dist/src/types/index.js.map +1 -1
  339. package/dist/src/types/modals.d.ts +32 -0
  340. package/dist/src/types/modals.d.ts.map +1 -0
  341. package/dist/src/types/modals.js +2 -0
  342. package/dist/src/types/modals.js.map +1 -0
  343. package/dist/src/types/reactor.d.ts +2 -0
  344. package/dist/src/types/reactor.d.ts.map +1 -0
  345. package/dist/src/types/reactor.js +2 -0
  346. package/dist/src/types/reactor.js.map +1 -0
  347. package/dist/src/types/timeline.d.ts +24 -0
  348. package/dist/src/types/timeline.d.ts.map +1 -0
  349. package/dist/src/types/timeline.js +2 -0
  350. package/dist/src/types/timeline.js.map +1 -0
  351. package/dist/src/types/upload.d.ts +16 -0
  352. package/dist/src/types/upload.d.ts.map +1 -0
  353. package/dist/src/types/upload.js +2 -0
  354. package/dist/src/types/upload.js.map +1 -0
  355. package/dist/src/types/vetra.d.ts +57 -0
  356. package/dist/src/types/vetra.d.ts.map +1 -0
  357. package/dist/src/types/vetra.js +2 -0
  358. package/dist/src/types/vetra.js.map +1 -0
  359. package/dist/src/utils/documents.d.ts +2 -0
  360. package/dist/src/utils/documents.d.ts.map +1 -0
  361. package/dist/src/utils/documents.js +20 -0
  362. package/dist/src/utils/documents.js.map +1 -0
  363. package/dist/src/utils/drives.d.ts +35 -0
  364. package/dist/src/utils/drives.d.ts.map +1 -0
  365. package/dist/src/utils/drives.js +120 -0
  366. package/dist/src/utils/drives.js.map +1 -0
  367. package/dist/src/utils/export-document.d.ts +2 -2
  368. package/dist/src/utils/export-document.d.ts.map +1 -1
  369. package/dist/src/utils/export-document.js +14 -15
  370. package/dist/src/utils/export-document.js.map +1 -1
  371. package/dist/src/utils/get-revision-from-date.d.ts +3 -0
  372. package/dist/src/utils/get-revision-from-date.d.ts.map +1 -0
  373. package/dist/src/utils/get-revision-from-date.js +10 -0
  374. package/dist/src/utils/get-revision-from-date.js.map +1 -0
  375. package/dist/src/utils/index.d.ts +10 -4
  376. package/dist/src/utils/index.d.ts.map +1 -1
  377. package/dist/src/utils/index.js +10 -8
  378. package/dist/src/utils/index.js.map +1 -1
  379. package/dist/src/utils/nodes.d.ts +8 -0
  380. package/dist/src/utils/nodes.d.ts.map +1 -0
  381. package/dist/src/utils/nodes.js +17 -0
  382. package/dist/src/utils/nodes.js.map +1 -0
  383. package/dist/src/utils/switchboard.d.ts +3 -4
  384. package/dist/src/utils/switchboard.d.ts.map +1 -1
  385. package/dist/src/utils/switchboard.js +25 -24
  386. package/dist/src/utils/switchboard.js.map +1 -1
  387. package/dist/src/utils/url.d.ts +25 -0
  388. package/dist/src/utils/url.d.ts.map +1 -0
  389. package/dist/src/utils/url.js +70 -0
  390. package/dist/src/utils/url.js.map +1 -0
  391. package/dist/src/utils/user.d.ts +5 -0
  392. package/dist/src/utils/user.d.ts.map +1 -0
  393. package/dist/src/utils/user.js +15 -0
  394. package/dist/src/utils/user.js.map +1 -0
  395. package/dist/src/utils/validate-document.d.ts +3 -0
  396. package/dist/src/utils/validate-document.d.ts.map +1 -0
  397. package/dist/src/utils/validate-document.js +38 -0
  398. package/dist/src/utils/validate-document.js.map +1 -0
  399. package/dist/src/utils/vetra.d.ts +7 -0
  400. package/dist/src/utils/vetra.d.ts.map +1 -0
  401. package/dist/src/utils/vetra.js +84 -0
  402. package/dist/src/utils/vetra.js.map +1 -0
  403. package/dist/test/analytics.test.d.ts +2 -0
  404. package/dist/test/analytics.test.d.ts.map +1 -0
  405. package/dist/test/analytics.test.js +262 -0
  406. package/dist/test/analytics.test.js.map +1 -0
  407. package/dist/test/getSwitchboardUrl.test.d.ts +2 -0
  408. package/dist/test/getSwitchboardUrl.test.d.ts.map +1 -0
  409. package/dist/test/getSwitchboardUrl.test.js +105 -0
  410. package/dist/test/getSwitchboardUrl.test.js.map +1 -0
  411. package/dist/test/reactor.test.d.ts +2 -0
  412. package/dist/test/reactor.test.d.ts.map +1 -0
  413. package/dist/test/reactor.test.js +26 -0
  414. package/dist/test/reactor.test.js.map +1 -0
  415. package/dist/test/switchboard.test.d.ts +2 -0
  416. package/dist/test/switchboard.test.d.ts.map +1 -0
  417. package/dist/test/switchboard.test.js +25 -0
  418. package/dist/test/switchboard.test.js.map +1 -0
  419. package/dist/tsconfig.tsbuildinfo +1 -0
  420. package/dist/vitest.config.d.ts +3 -0
  421. package/dist/vitest.config.d.ts.map +1 -0
  422. package/dist/vitest.config.js +24 -0
  423. package/dist/vitest.config.js.map +1 -0
  424. package/package.json +34 -34
  425. package/dist/package.json +0 -75
  426. package/dist/src/analytics/analytics.d.ts +0 -5
  427. package/dist/src/analytics/analytics.d.ts.map +0 -1
  428. package/dist/src/analytics/analytics.js +0 -6
  429. package/dist/src/analytics/analytics.js.map +0 -1
  430. package/dist/src/crypto/browser.d.ts +0 -8
  431. package/dist/src/crypto/browser.d.ts.map +0 -1
  432. package/dist/src/crypto/browser.js +0 -50
  433. package/dist/src/crypto/browser.js.map +0 -1
  434. package/dist/src/crypto/index.d.ts +0 -27
  435. package/dist/src/crypto/index.d.ts.map +0 -1
  436. package/dist/src/crypto/index.js +0 -152
  437. package/dist/src/crypto/index.js.map +0 -1
  438. package/dist/src/hooks/document-state.d.ts +0 -24
  439. package/dist/src/hooks/document-state.d.ts.map +0 -1
  440. package/dist/src/hooks/document-state.js +0 -89
  441. package/dist/src/hooks/document-state.js.map +0 -1
  442. package/dist/src/hooks/useAddDebouncedOperations.d.ts +0 -7
  443. package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +0 -1
  444. package/dist/src/hooks/useAddDebouncedOperations.js +0 -53
  445. package/dist/src/hooks/useAddDebouncedOperations.js.map +0 -1
  446. package/dist/src/hooks/useConnectCrypto.d.ts +0 -4
  447. package/dist/src/hooks/useConnectCrypto.d.ts.map +0 -1
  448. package/dist/src/hooks/useConnectCrypto.js +0 -57
  449. package/dist/src/hooks/useConnectCrypto.js.map +0 -1
  450. package/dist/src/hooks/useDocument.d.ts +0 -8
  451. package/dist/src/hooks/useDocument.d.ts.map +0 -1
  452. package/dist/src/hooks/useDocument.js +0 -32
  453. package/dist/src/hooks/useDocument.js.map +0 -1
  454. package/dist/src/hooks/useDocumentDispatch.d.ts +0 -10
  455. package/dist/src/hooks/useDocumentDispatch.d.ts.map +0 -1
  456. package/dist/src/hooks/useDocumentDispatch.js +0 -42
  457. package/dist/src/hooks/useDocumentDispatch.js.map +0 -1
  458. package/dist/src/hooks/useDocumentDrives.d.ts +0 -12
  459. package/dist/src/hooks/useDocumentDrives.d.ts.map +0 -1
  460. package/dist/src/hooks/useDocumentDrives.js +0 -122
  461. package/dist/src/hooks/useDocumentDrives.js.map +0 -1
  462. package/dist/src/hooks/useDocumentEditor.d.ts +0 -32
  463. package/dist/src/hooks/useDocumentEditor.d.ts.map +0 -1
  464. package/dist/src/hooks/useDocumentEditor.js +0 -41
  465. package/dist/src/hooks/useDocumentEditor.js.map +0 -1
  466. package/dist/src/hooks/useDriveActions.d.ts +0 -79
  467. package/dist/src/hooks/useDriveActions.d.ts.map +0 -1
  468. package/dist/src/hooks/useDriveActions.js +0 -108
  469. package/dist/src/hooks/useDriveActions.js.map +0 -1
  470. package/dist/src/hooks/useDriveContext.d.ts +0 -21
  471. package/dist/src/hooks/useDriveContext.d.ts.map +0 -1
  472. package/dist/src/hooks/useDriveContext.js +0 -26
  473. package/dist/src/hooks/useDriveContext.js.map +0 -1
  474. package/dist/src/hooks/useUserPermissions.d.ts +0 -6
  475. package/dist/src/hooks/useUserPermissions.d.ts.map +0 -1
  476. package/dist/src/hooks/useUserPermissions.js +0 -7
  477. package/dist/src/hooks/useUserPermissions.js.map +0 -1
  478. package/dist/src/renown/types.d.ts +0 -76
  479. package/dist/src/renown/types.d.ts.map +0 -1
  480. package/dist/src/renown/types.js +0 -2
  481. package/dist/src/renown/types.js.map +0 -1
  482. package/dist/src/types/drive-editor.d.ts +0 -143
  483. package/dist/src/types/drive-editor.d.ts.map +0 -1
  484. package/dist/src/types/drive-editor.js +0 -2
  485. package/dist/src/types/drive-editor.js.map +0 -1
  486. package/dist/src/utils/signature.d.ts +0 -5
  487. package/dist/src/utils/signature.d.ts.map +0 -1
  488. package/dist/src/utils/signature.js +0 -40
  489. package/dist/src/utils/signature.js.map +0 -1
  490. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -1,6 +1,4 @@
1
- import { kebabCase } from "change-case";
2
- import { generateDocumentStateQueryFields } from "document-drive/utils/graphql";
3
- import { compressToEncodedURIComponent } from "lz-string";
1
+ import * as lzString from "lz-string";
4
2
  export async function getDriveIdBySlug(driveUrl, slug) {
5
3
  if (!driveUrl) {
6
4
  return;
@@ -40,36 +38,39 @@ export function getSwitchboardGatewayUrlFromDriveUrl(driveUrl) {
40
38
  urlParts.push("graphql"); // add /graphql
41
39
  return urlParts.join("/");
42
40
  }
43
- export function getDocumentGraphqlQuery(documentModel) {
44
- const stateFields = generateDocumentStateQueryFields(documentModel, "document");
45
- return `query getDocument($documentId: PHID!, $driveId: String) {
46
- ${documentModel.name} {
47
- getDocument(docId: $documentId, driveId: $driveId) {
41
+ export function getDocumentGraphqlQuery() {
42
+ return `query getDocument($documentId: String!) {
43
+ document(id: $documentId) {
48
44
  id
49
- created
50
- lastModified
45
+ documentType
46
+ createdAtUtcIso
47
+ lastModifiedAtUtcIso
51
48
  name
52
49
  revision
53
- state {
54
- ${stateFields}
55
- }
50
+ stateJSON
56
51
  }
57
- }
58
- }`;
52
+ }`;
59
53
  }
60
- export function buildDocumentSubgraphQuery(driveUrl, documentId, documentModel) {
54
+ export function buildDocumentSubgraphQuery(driveUrl, documentId, authToken) {
61
55
  const driveSlug = getSlugFromDriveUrl(driveUrl);
62
- const query = getDocumentGraphqlQuery(documentModel);
56
+ const query = getDocumentGraphqlQuery();
63
57
  const variables = { documentId, driveId: driveSlug };
64
- return compressToEncodedURIComponent(JSON.stringify({
58
+ const headers = authToken
59
+ ? {
60
+ Authorization: `Bearer ${authToken}`,
61
+ }
62
+ : undefined;
63
+ const payload = {
65
64
  document: query.trim(),
66
65
  variables: JSON.stringify(variables, null, 2),
67
- }));
66
+ };
67
+ if (headers) {
68
+ payload.headers = JSON.stringify(headers);
69
+ }
70
+ return lzString.compressToEncodedURIComponent(JSON.stringify(payload));
68
71
  }
69
- export function buildDocumentSubgraphUrl(driveUrl, documentId, documentModel) {
70
- const switchboardUrl = getSwitchboardGatewayUrlFromDriveUrl(driveUrl);
71
- const subgraph = kebabCase(documentModel.name);
72
- const encodedQuery = buildDocumentSubgraphQuery(driveUrl, documentId, documentModel);
73
- return `${switchboardUrl}/${subgraph}?explorerURLState=${encodedQuery}`;
72
+ export function buildDocumentSubgraphUrl(driveUrl, documentId, authToken) {
73
+ const encodedQuery = buildDocumentSubgraphQuery(driveUrl, documentId, authToken);
74
+ return `${driveUrl}?explorerURLState=${encodedQuery}`;
74
75
  }
75
76
  //# sourceMappingURL=switchboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switchboard.js","sourceRoot":"","sources":["../../../src/utils/switchboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAY;IACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE;;;;qBAIQ;YACf,SAAS,EAAE;gBACT,IAAI;aACL;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAEhC,CAAC;IAEF,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,QAAgB;IACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAiC;IACvE,MAAM,WAAW,GAAG,gCAAgC,CAClD,aAAa,EACb,UAAU,CACX,CAAC;IACF,OAAO;IACL,aAAa,CAAC,IAAI;;;;;;;;UAQZ,WAAW;;;;EAInB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,UAAkB,EAClB,aAAiC;IAEjC,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACrD,OAAO,6BAA6B,CAClC,IAAI,CAAC,SAAS,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;QACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9C,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,UAAkB,EAClB,aAAiC;IAEjC,MAAM,cAAc,GAAG,oCAAoC,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,0BAA0B,CAC7C,QAAQ,EACR,UAAU,EACV,aAAa,CACd,CAAC;IACF,OAAO,GAAG,cAAc,IAAI,QAAQ,qBAAqB,YAAY,EAAE,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"switchboard.js","sourceRoot":"","sources":["../../../src/utils/switchboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAY;IACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE;;;;qBAIQ;YACf,SAAS,EAAE;gBACT,IAAI;aACL;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAEhC,CAAC;IAEF,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,QAAgB;IACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY;IAC5B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO;;;;;;;;;;IAUL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,UAAkB,EAClB,SAAkB;IAElB,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,SAAS;QACvB,CAAC,CAAC;YACE,aAAa,EAAE,UAAU,SAAS,EAAE;SACrC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAA2B;QACtC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;QACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9C,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,UAAkB,EAClB,SAAkB;IAElB,MAAM,YAAY,GAAG,0BAA0B,CAC7C,QAAQ,EACR,UAAU,EACV,SAAS,CACV,CAAC;IACF,OAAO,GAAG,QAAQ,qBAAqB,YAAY,EAAE,CAAC;AACxD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { DocumentDriveDocument, Node } from "document-drive";
2
+ export declare function resolveUrlPathname(path: string): string;
3
+ /** Returns the current path without the base path */
4
+ export declare function getPathWithoutBase(path: string): string;
5
+ /** Makes a URL component for a drive. */
6
+ export declare function makeDriveUrlComponent(drive: DocumentDriveDocument | undefined): string;
7
+ /** Makes a URL component for a node. */
8
+ export declare function makeNodeSlug(node: Node | undefined): string;
9
+ /** Extracts the node slug from a path.
10
+ *
11
+ * The path is expected to be in the format `/d/<drive-slug>/<node-slug>`.
12
+ */
13
+ export declare function extractNodeSlugFromPath(path: string): string;
14
+ /** Finds a UUID in a string, used for extracting node ids from node slugs in the URL. */
15
+ export declare function findUuid(input: string | undefined): string | undefined;
16
+ export declare function extractNodeIdFromSlug(nodeSlug: string | undefined): string | undefined;
17
+ export declare function extractNodeIdFromPath(path: string): string | undefined;
18
+ /** Extracts the drive slug from a path.
19
+ * Used for extracting drive ids from drive slugs in the URL.
20
+ * Expects the path to be in the format `/d/<drive-slug>`.
21
+ */
22
+ export declare function extractDriveSlugFromPath(path: string): string;
23
+ export declare function extractDriveIdFromSlug(driveSlug: string | undefined): string | undefined;
24
+ export declare function extractDriveIdFromPath(path: string): string | undefined;
25
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAIlE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAK9C;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAG9C;AAED,yCAAyC;AACzC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,GAAG,SAAS,UAIzC;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,UAKlD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,UAInD;AAED,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,sBAMjD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,sBAGjE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,sBAIjD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,UAIpD;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,sBAGnE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,sBAIlD"}
@@ -0,0 +1,70 @@
1
+ import slug from "slug";
2
+ // Returns url with base path plus provided path
3
+ export function resolveUrlPathname(path) {
4
+ return new URL(path.replace(/^\/+/, ""), window.location.origin + (window.ph?.basePath ?? "/")).pathname;
5
+ }
6
+ /** Returns the current path without the base path */
7
+ export function getPathWithoutBase(path) {
8
+ const basePath = window.ph?.basePath ?? "/";
9
+ return path.replace(basePath, basePath.endsWith("/") ? "/" : "");
10
+ }
11
+ /** Makes a URL component for a drive. */
12
+ export function makeDriveUrlComponent(drive) {
13
+ if (!drive)
14
+ return "";
15
+ return `/d/${slug(drive.header.slug)}`;
16
+ }
17
+ /** Makes a URL component for a node. */
18
+ export function makeNodeSlug(node) {
19
+ if (!node)
20
+ return "";
21
+ const nodeName = node.name;
22
+ if (!nodeName)
23
+ return slug(node.id);
24
+ return slug(`${nodeName}-${node.id}`);
25
+ }
26
+ /** Extracts the node slug from a path.
27
+ *
28
+ * The path is expected to be in the format `/d/<drive-slug>/<node-slug>`.
29
+ */
30
+ export function extractNodeSlugFromPath(path) {
31
+ const currentPath = getPathWithoutBase(path);
32
+ const match = /^\/d\/[^/]+\/([^/]+)$/.exec(currentPath);
33
+ return match?.[1] ?? "";
34
+ }
35
+ /** Finds a UUID in a string, used for extracting node ids from node slugs in the URL. */
36
+ export function findUuid(input) {
37
+ if (!input)
38
+ return undefined;
39
+ const uuidRegex = /\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b/;
40
+ const match = uuidRegex.exec(input);
41
+ return match?.[0];
42
+ }
43
+ export function extractNodeIdFromSlug(nodeSlug) {
44
+ const nodeId = findUuid(nodeSlug);
45
+ return nodeId;
46
+ }
47
+ export function extractNodeIdFromPath(path) {
48
+ const nodeSlug = extractNodeSlugFromPath(path);
49
+ const nodeId = extractNodeIdFromSlug(nodeSlug);
50
+ return nodeId;
51
+ }
52
+ /** Extracts the drive slug from a path.
53
+ * Used for extracting drive ids from drive slugs in the URL.
54
+ * Expects the path to be in the format `/d/<drive-slug>`.
55
+ */
56
+ export function extractDriveSlugFromPath(path) {
57
+ const currentPath = getPathWithoutBase(path);
58
+ const match = /^\/d\/([^/]+)/.exec(currentPath);
59
+ return match?.[1] ?? "";
60
+ }
61
+ export function extractDriveIdFromSlug(driveSlug) {
62
+ const driveId = findUuid(driveSlug);
63
+ return driveId;
64
+ }
65
+ export function extractDriveIdFromPath(path) {
66
+ const driveSlug = extractDriveSlugFromPath(path);
67
+ const driveId = extractDriveIdFromSlug(driveSlug);
68
+ return driveId;
69
+ }
70
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function getUserPermissions(): {
2
+ isAllowedToCreateDocuments: boolean;
3
+ isAllowedToEditDocuments: boolean;
4
+ };
5
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/utils/user.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB;;;EAajC"}
@@ -0,0 +1,15 @@
1
+ export function getUserPermissions() {
2
+ const user = window.ph?.user;
3
+ const allowList = window.ph?.allowList;
4
+ if (!allowList) {
5
+ return {
6
+ isAllowedToCreateDocuments: true,
7
+ isAllowedToEditDocuments: true,
8
+ };
9
+ }
10
+ return {
11
+ isAllowedToCreateDocuments: allowList.includes(user?.address ?? ""),
12
+ isAllowedToEditDocuments: allowList.includes(user?.address ?? ""),
13
+ };
14
+ }
15
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/utils/user.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,0BAA0B,EAAE,IAAI;YAChC,wBAAwB,EAAE,IAAI;SAC/B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,0BAA0B,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QACnE,wBAAwB,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PHDocument, ValidationError } from "document-model";
2
+ export declare const validateDocument: (document: PHDocument) => ValidationError[];
3
+ //# sourceMappingURL=validate-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-document.d.ts","sourceRoot":"","sources":["../../../src/utils/validate-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAOxB,eAAO,MAAM,gBAAgB,GAAI,UAAU,UAAU,sBAyDpD,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { validateInitialState, validateModules, validateStateSchemaName, } from "document-model";
2
+ export const validateDocument = (document) => {
3
+ const errors = [];
4
+ if (document.header.documentType !== "powerhouse/document-model") {
5
+ return errors;
6
+ }
7
+ const doc = document;
8
+ const specs = doc.state.global.specifications[0];
9
+ // validate initial state errors
10
+ const initialStateErrors = Object.keys(specs.state).reduce((acc, scopeKey) => {
11
+ const scope = scopeKey;
12
+ return [
13
+ ...acc,
14
+ ...validateInitialState(specs.state[scope].initialValue, scope !== "global").map((err) => ({
15
+ ...err,
16
+ message: `${err.message}. Scope: ${scope}`,
17
+ details: { ...err.details, scope },
18
+ })),
19
+ ];
20
+ }, []);
21
+ // validate schema state errors
22
+ const schemaStateErrors = Object.keys(specs.state).reduce((acc, scopeKey) => {
23
+ const scope = scopeKey;
24
+ const isGlobalScope = scope === "global";
25
+ return [
26
+ ...acc,
27
+ ...validateStateSchemaName(specs.state[scope].schema, doc.state.global?.name || doc.header.name || "", !isGlobalScope ? scope : "", !isGlobalScope).map((err) => ({
28
+ ...err,
29
+ message: `${err.message}. Scope: ${scope}`,
30
+ details: { ...err.details, scope },
31
+ })),
32
+ ];
33
+ }, []);
34
+ // modules validation
35
+ const modulesErrors = validateModules(specs.modules);
36
+ return [...initialStateErrors, ...schemaStateErrors, ...modulesErrors];
37
+ };
38
+ //# sourceMappingURL=validate-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-document.js","sourceRoot":"","sources":["../../../src/utils/validate-document.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAoB,EAAE,EAAE;IACvD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,2BAA2B,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,QAAiC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEjD,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,QAAoC,CAAC;QAEnD,OAAO;YACL,GAAG,GAAG;YACN,GAAG,oBAAoB,CACrB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,EAC/B,KAAK,KAAK,QAAQ,CACnB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACd,GAAG,GAAG;gBACN,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,YAAY,KAAK,EAAE;gBAC1C,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;aACnC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;IAEF,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,QAAoC,CAAC;QACnD,MAAM,aAAa,GAAG,KAAK,KAAK,QAAQ,CAAC;QAEzC,OAAO;YACL,GAAG,GAAG;YACN,GAAG,uBAAuB,CACxB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EACzB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAC/C,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAC3B,CAAC,aAAa,CACf,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACd,GAAG,GAAG;gBACN,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,YAAY,KAAK,EAAE;gBAC1C,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;aACnC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;IAEF,qBAAqB;IACrB,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC;AACzE,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { VetraDocumentModelModule, VetraEditorModule, VetraPackage, VetraPackageManifest } from "@powerhousedao/reactor-browser";
2
+ import type { DocumentModelLib, DocumentModelModule, EditorModule, Manifest } from "document-model";
3
+ export declare function convertLegacyLibToVetraPackage(legacyLib: DocumentModelLib): VetraPackage;
4
+ export declare function convertLegacyDocumentModelModuleToVetraDocumentModelModule(legacyDocumentModelModule: DocumentModelModule): VetraDocumentModelModule;
5
+ export declare function convertLegacyEditorModuleToVetraEditorModule(legacyEditorModule: EditorModule, manifest?: Manifest): VetraEditorModule;
6
+ export declare function makeVetraPackageManifest(vetraPackage: VetraPackage): VetraPackageManifest;
7
+ //# sourceMappingURL=vetra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetra.d.ts","sourceRoot":"","sources":["../../../src/utils/vetra.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAGjB,YAAY,EACZ,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAIxB,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,gBAAgB,GAC1B,YAAY,CAyBd;AAED,wBAAgB,0DAA0D,CACxE,yBAAyB,EAAE,mBAAmB,4BAuB/C;AAED,wBAAgB,4CAA4C,CAC1D,kBAAkB,EAAE,YAAY,EAChC,QAAQ,CAAC,EAAE,QAAQ,GAClB,iBAAiB,CAsBnB;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,YAAY,GACzB,oBAAoB,CAUtB"}
@@ -0,0 +1,84 @@
1
+ import { createState } from "document-model";
2
+ import { defaultBaseState, generateId } from "document-model/core";
3
+ export function convertLegacyLibToVetraPackage(legacyLib) {
4
+ const id = generateId();
5
+ const vetraPackage = {
6
+ id,
7
+ name: legacyLib.manifest.name,
8
+ description: legacyLib.manifest.description,
9
+ category: legacyLib.manifest.category,
10
+ author: {
11
+ name: "Powerhouse",
12
+ website: "https://powerhousedao.com",
13
+ },
14
+ modules: {
15
+ documentModelModules: legacyLib.documentModels.map(convertLegacyDocumentModelModuleToVetraDocumentModelModule),
16
+ editorModules: legacyLib.editors.map((editor) => convertLegacyEditorModuleToVetraEditorModule(editor, legacyLib.manifest)),
17
+ },
18
+ };
19
+ return vetraPackage;
20
+ }
21
+ export function convertLegacyDocumentModelModuleToVetraDocumentModelModule(legacyDocumentModelModule) {
22
+ const global = legacyDocumentModelModule.documentModel.global;
23
+ const name = global.name;
24
+ const documentType = global.id;
25
+ const unsafeIdFromDocumentType = documentType;
26
+ const extension = global.extension;
27
+ const specifications = global.specifications;
28
+ const reducer = legacyDocumentModelModule.reducer;
29
+ const actions = legacyDocumentModelModule.actions;
30
+ const utils = legacyDocumentModelModule.utils;
31
+ const vetraDocumentModelModule = {
32
+ id: unsafeIdFromDocumentType,
33
+ name,
34
+ documentType,
35
+ extension,
36
+ documentModel: createState(defaultBaseState(), global),
37
+ specifications,
38
+ reducer,
39
+ actions,
40
+ utils,
41
+ };
42
+ return vetraDocumentModelModule;
43
+ }
44
+ export function convertLegacyEditorModuleToVetraEditorModule(legacyEditorModule, manifest) {
45
+ // check for app using this drive editor and use its name
46
+ const appName = manifest?.apps?.find((app) => app.driveEditor === legacyEditorModule.config.id)?.name;
47
+ const id = legacyEditorModule.config.id;
48
+ // if no app found and editor has no name defined then build the name from the id
49
+ const nameFromId = id
50
+ .split("-")
51
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
52
+ .join(" ");
53
+ const name = appName || legacyEditorModule.config.name || nameFromId;
54
+ const documentTypes = legacyEditorModule.documentTypes;
55
+ const Component = legacyEditorModule.Component;
56
+ const vetraEditorModule = {
57
+ id,
58
+ name,
59
+ documentTypes,
60
+ Component,
61
+ };
62
+ return vetraEditorModule;
63
+ }
64
+ export function makeVetraPackageManifest(vetraPackage) {
65
+ const { id, name, description, category, author, modules } = vetraPackage;
66
+ return {
67
+ id,
68
+ name,
69
+ description,
70
+ category,
71
+ author,
72
+ modules: makeVetraPackageManifestModulesEntry(modules),
73
+ };
74
+ }
75
+ function makeVetraPackageManifestModulesEntry(modules) {
76
+ return Object.entries(modules).reduce((acc, [moduleType, module]) => {
77
+ acc[moduleType] = module.map((m) => ({
78
+ id: m.id,
79
+ name: m.name,
80
+ }));
81
+ return acc;
82
+ }, {});
83
+ }
84
+ //# sourceMappingURL=vetra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetra.js","sourceRoot":"","sources":["../../../src/utils/vetra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analytics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.test.d.ts","sourceRoot":"","sources":["../../test/analytics.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,262 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MemoryAnalyticsStore } from "@powerhousedao/analytics-engine-browser";
3
+ import { AnalyticsGranularity, AnalyticsPath, AnalyticsQueryEngine, } from "@powerhousedao/analytics-engine-core";
4
+ import { AnalyticsProvider, clearGlobal, getGlobal, setGlobal, useAddSeriesValue, useAnalyticsQuery, useAnalyticsSeries, useGetDimensions, } from "@powerhousedao/reactor-browser";
5
+ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
6
+ import { DateTime } from "luxon";
7
+ import { describe, expect, it, vi } from "vitest";
8
+ import { renderHook } from "vitest-browser-react";
9
+ describe("Analytics Store", () => {
10
+ const TEST_SOURCE = AnalyticsPath.fromString("test/analytics/AnalyticsStore.spec");
11
+ function createWrapper() {
12
+ const queryClient = new QueryClient({
13
+ defaultOptions: {
14
+ queries: {
15
+ retry: true,
16
+ },
17
+ },
18
+ });
19
+ const store = new MemoryAnalyticsStore();
20
+ const databaseName = Date.now().toString();
21
+ setGlobal("analytics", store.init().then(() => {
22
+ const engine = new AnalyticsQueryEngine(store);
23
+ return { store, engine, options: { databaseName } };
24
+ }));
25
+ return function Wrapper({ children }) {
26
+ return (_jsx(AnalyticsProvider, { databaseName: databaseName, queryClient: queryClient, children: children }));
27
+ };
28
+ }
29
+ async function resetGlobalAnalytics() {
30
+ const store = (await getGlobal("analytics"))?.store;
31
+ await store?.destroy();
32
+ clearGlobal("analytics");
33
+ }
34
+ beforeEach(async () => {
35
+ await resetGlobalAnalytics();
36
+ });
37
+ it("should add and query analytics data", async () => {
38
+ const wrapper = createWrapper();
39
+ const { result: addResult, act } = renderHook(() => useAddSeriesValue(), {
40
+ wrapper,
41
+ });
42
+ act(() => {
43
+ addResult.current.mutate({
44
+ start: DateTime.now(),
45
+ source: TEST_SOURCE,
46
+ value: 10000,
47
+ unit: "DAI",
48
+ metric: "Budget",
49
+ dimensions: {
50
+ budget: AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
51
+ category: AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/FrontEndEngineering"),
52
+ project: TEST_SOURCE,
53
+ },
54
+ });
55
+ });
56
+ // Test querying series data
57
+ const { result: queryResult } = renderHook(() => useAnalyticsSeries({
58
+ start: null,
59
+ end: null,
60
+ currency: AnalyticsPath.fromString("DAI"),
61
+ metrics: ["Budget"],
62
+ select: {
63
+ budget: [
64
+ AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
65
+ ],
66
+ category: [
67
+ AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/FrontEndEngineering"),
68
+ ],
69
+ project: [TEST_SOURCE],
70
+ },
71
+ }), { wrapper });
72
+ await vi.waitFor(() => expect(queryResult.current.status).toBe("success"));
73
+ const results = queryResult.current.data;
74
+ expect(results.length).toBe(1);
75
+ expect(results.map((r) => r.unit)).toEqual(["DAI"]);
76
+ expect(results.map((r) => r.value)).toEqual([10000]);
77
+ expect(results.map((r) => r.dimensions.budget.path.toString())).toEqual(["atlas/legacy/core-units/SES-001"]);
78
+ });
79
+ it("should fail gracefully when analytics store is not available", async () => {
80
+ const wrapper = ({ children }) => (_jsx(QueryClientProvider, { client: new QueryClient({
81
+ defaultOptions: {
82
+ queries: {
83
+ retry: false,
84
+ },
85
+ },
86
+ }), children: children }));
87
+ const { result: addResult } = renderHook(() => useAddSeriesValue(), {
88
+ wrapper,
89
+ });
90
+ await expect(addResult.current.mutateAsync({
91
+ start: DateTime.now(),
92
+ source: TEST_SOURCE,
93
+ value: 10000,
94
+ unit: "DAI",
95
+ metric: "Budget",
96
+ dimensions: {
97
+ budget: AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
98
+ },
99
+ })).rejects.toThrow("No analytics store available. Use within an AnalyticsProvider.");
100
+ const { result: queryResult } = renderHook(() => useAnalyticsSeries({
101
+ start: null,
102
+ end: null,
103
+ currency: AnalyticsPath.fromString("DAI"),
104
+ metrics: ["Budget"],
105
+ select: {
106
+ budget: [
107
+ AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
108
+ ],
109
+ },
110
+ }, { enabled: true }), { wrapper });
111
+ await vi.waitFor(() => expect(queryResult.current.error).toMatchObject({
112
+ message: "No analytics store available. Use within an AnalyticsProvider.",
113
+ }));
114
+ });
115
+ it("should execute analytics query", async () => {
116
+ const store = new MemoryAnalyticsStore();
117
+ await store.init();
118
+ const engine = new AnalyticsQueryEngine(store);
119
+ const wrapper = createWrapper();
120
+ // Add test data
121
+ const { result: addResult } = renderHook(() => useAddSeriesValue(), {
122
+ wrapper,
123
+ });
124
+ const addValue = {
125
+ start: DateTime.now(),
126
+ source: TEST_SOURCE,
127
+ value: 10000,
128
+ unit: "DAI",
129
+ metric: "Budget",
130
+ dimensions: {
131
+ budget: AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
132
+ },
133
+ };
134
+ await store.addSeriesValue(addValue);
135
+ await addResult.current.mutateAsync(addValue);
136
+ const query = {
137
+ start: DateTime.now().minus({ days: 1 }),
138
+ end: DateTime.now().plus({ days: 1 }),
139
+ granularity: AnalyticsGranularity.Total,
140
+ lod: {},
141
+ metrics: ["Budget"],
142
+ currency: AnalyticsPath.fromString("DAI"),
143
+ select: {
144
+ budget: [AnalyticsPath.fromString("atlas/legacy/core-units/SES-001")],
145
+ },
146
+ };
147
+ // Test analytics query
148
+ const { result } = renderHook(() => useAnalyticsQuery(query), { wrapper });
149
+ await vi.waitFor(() => expect(result.current.isSuccess).toBe(true));
150
+ // Get result directly from engine for comparison
151
+ const engineResult = await engine.execute(query);
152
+ expect(result.current.data).toStrictEqual(engineResult);
153
+ });
154
+ it("should get dimensions", async () => {
155
+ const store = new MemoryAnalyticsStore();
156
+ await store.init();
157
+ const wrapper = createWrapper();
158
+ // Add test data
159
+ const { result: addResult } = renderHook(() => useAddSeriesValue(), {
160
+ wrapper,
161
+ });
162
+ const addValue = {
163
+ start: DateTime.now(),
164
+ source: TEST_SOURCE,
165
+ value: 10000,
166
+ unit: "DAI",
167
+ metric: "Budget",
168
+ dimensions: {
169
+ budget: AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
170
+ },
171
+ };
172
+ await store.addSeriesValue(addValue);
173
+ await addResult.current.mutateAsync(addValue);
174
+ const { result } = renderHook(() => useGetDimensions(), { wrapper });
175
+ await vi.waitFor(() => expect(result.current.isSuccess).toBe(true));
176
+ expect(result.current.data).toStrictEqual(await store.getDimensions());
177
+ });
178
+ it("should be notified when query data changes", async () => {
179
+ const store = new MemoryAnalyticsStore();
180
+ await store.init();
181
+ const basePath = AnalyticsPath.fromString("atlas/legacy/core-units");
182
+ const path = AnalyticsPath.fromString("atlas/legacy/core-units/SES-001");
183
+ const query = {
184
+ start: DateTime.now().minus({ days: 1 }),
185
+ end: DateTime.now().plus({ days: 1 }),
186
+ granularity: AnalyticsGranularity.Total,
187
+ lod: {
188
+ budget: 4,
189
+ },
190
+ metrics: ["Budget"],
191
+ currency: AnalyticsPath.fromString("DAI"),
192
+ select: {
193
+ budget: [basePath],
194
+ },
195
+ };
196
+ await expect(store.getMatchingSeries(query)).resolves.toHaveLength(0);
197
+ const testSub = new Promise((resolve) => {
198
+ store.subscribeToSource(path, () => {
199
+ console.log("Source changed");
200
+ resolve(3);
201
+ });
202
+ });
203
+ const addValue1 = {
204
+ start: DateTime.now(),
205
+ source: path,
206
+ value: 10000,
207
+ unit: "DAI",
208
+ metric: "Budget",
209
+ dimensions: {
210
+ budget: path,
211
+ },
212
+ };
213
+ await store.addSeriesValue(addValue1);
214
+ console.log("added series value");
215
+ await expect(store.getMatchingSeries(query)).resolves.toHaveLength(1);
216
+ await vi.waitFor(() => expect(testSub).resolves.toEqual(3));
217
+ });
218
+ it("should refetch analytics query when data changes", async () => {
219
+ const store = new MemoryAnalyticsStore();
220
+ await store.init();
221
+ const engine = new AnalyticsQueryEngine(store);
222
+ const wrapper = createWrapper();
223
+ const query = {
224
+ start: DateTime.now().minus({ days: 1 }),
225
+ end: DateTime.now().plus({ days: 1 }),
226
+ granularity: AnalyticsGranularity.Total,
227
+ lod: {
228
+ budget: 4,
229
+ },
230
+ metrics: ["Budget"],
231
+ currency: AnalyticsPath.fromString("DAI"),
232
+ select: {
233
+ budget: [AnalyticsPath.fromString("atlas/legacy/core-units")],
234
+ },
235
+ };
236
+ // Test analytics query
237
+ const { result } = renderHook(() => useAnalyticsQuery(query, { sources: [TEST_SOURCE] }), {
238
+ wrapper,
239
+ });
240
+ await vi.waitFor(() => expect(result.current.data).toStrictEqual([]));
241
+ // Add test data
242
+ const { result: addResult } = renderHook(() => useAddSeriesValue(), {
243
+ wrapper,
244
+ });
245
+ const addValue = {
246
+ start: DateTime.now(),
247
+ source: TEST_SOURCE,
248
+ value: 10000,
249
+ unit: "DAI",
250
+ metric: "Budget",
251
+ dimensions: {
252
+ budget: AnalyticsPath.fromString("atlas/legacy/core-units/SES-001"),
253
+ },
254
+ };
255
+ await store.addSeriesValue(addValue);
256
+ await addResult.current.mutateAsync(addValue);
257
+ // Get result directly from engine for comparison
258
+ const engineResult = await engine.execute(query);
259
+ await vi.waitFor(() => expect(result.current.data).toStrictEqual(engineResult));
260
+ });
261
+ });
262
+ //# sourceMappingURL=analytics.test.js.map