doover-js 0.11.0 → 0.13.0

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 (389) hide show
  1. package/README.md +106 -0
  2. package/dist/apis/_args.js +5 -5
  3. package/dist/apis/agents-api.d.ts +4 -4
  4. package/dist/apis/agents-api.js +2 -2
  5. package/dist/apis/aggregates-api.d.ts +4 -4
  6. package/dist/apis/aggregates-api.js +5 -5
  7. package/dist/apis/alarms-api.d.ts +2 -2
  8. package/dist/apis/alarms-api.js +3 -3
  9. package/dist/apis/channels-api.d.ts +3 -3
  10. package/dist/apis/channels-api.js +6 -6
  11. package/dist/apis/connections-api.d.ts +2 -2
  12. package/dist/apis/connections-api.js +6 -6
  13. package/dist/apis/messages-api.d.ts +4 -4
  14. package/dist/apis/messages-api.js +11 -11
  15. package/dist/apis/notifications-api.d.ts +2 -2
  16. package/dist/apis/notifications-api.js +4 -4
  17. package/dist/apis/organisations-api.d.ts +2 -2
  18. package/dist/apis/permissions-api.d.ts +2 -2
  19. package/dist/apis/permissions-api.js +3 -3
  20. package/dist/apis/processors-api.d.ts +2 -2
  21. package/dist/apis/turn-api.d.ts +2 -2
  22. package/dist/apis/users-api.d.ts +2 -2
  23. package/dist/auth/auth-store.d.ts +1 -1
  24. package/dist/auth/build-auth.d.ts +3 -3
  25. package/dist/auth/build-auth.js +8 -8
  26. package/dist/auth/cookie-auth.d.ts +1 -1
  27. package/dist/auth/cookie-auth.js +2 -2
  28. package/dist/auth/doover-auth.d.ts +2 -2
  29. package/dist/auth/doover-token-auth.d.ts +3 -3
  30. package/dist/auth/doover-token-auth.js +13 -13
  31. package/dist/auth/index.d.ts +10 -0
  32. package/dist/auth/index.js +15 -0
  33. package/dist/client/data-client.d.ts +17 -14
  34. package/dist/client/doover-client.d.ts +9 -7
  35. package/dist/client/doover-client.js +44 -42
  36. package/dist/client/errors.d.ts +2 -2
  37. package/dist/client/errors.js +4 -4
  38. package/dist/client/index.d.ts +6 -0
  39. package/dist/client/index.js +12 -0
  40. package/dist/client/local-agent-client.d.ts +3 -3
  41. package/dist/client/local-agent-client.js +19 -19
  42. package/dist/client/multiplex-client.d.ts +5 -5
  43. package/dist/client/multiplex-client.js +25 -25
  44. package/dist/client/multiplex-gateway.d.ts +3 -3
  45. package/dist/client/multiplex-merge.d.ts +1 -1
  46. package/dist/client/network-status.d.ts +17 -0
  47. package/dist/client/network-status.js +70 -0
  48. package/dist/client/offline-cache.d.ts +9 -4
  49. package/dist/client/offline-cache.js +34 -22
  50. package/dist/client/provenance.d.ts +1 -1
  51. package/dist/client/request-options.d.ts +1 -1
  52. package/dist/client/singleton.d.ts +2 -2
  53. package/dist/client/singleton.js +2 -2
  54. package/dist/client/status-tracker.d.ts +1 -1
  55. package/dist/esm/apis/_args.d.ts +16 -0
  56. package/dist/esm/apis/_args.js +27 -0
  57. package/dist/esm/apis/agents-api.d.ts +196 -0
  58. package/dist/esm/apis/agents-api.js +327 -0
  59. package/dist/esm/apis/aggregates-api.d.ts +67 -0
  60. package/dist/esm/apis/aggregates-api.js +64 -0
  61. package/dist/esm/apis/alarms-api.d.ts +48 -0
  62. package/dist/esm/apis/alarms-api.js +75 -0
  63. package/dist/esm/apis/channels-api.d.ts +83 -0
  64. package/dist/esm/apis/channels-api.js +65 -0
  65. package/dist/esm/apis/connections-api.d.ts +45 -0
  66. package/dist/esm/apis/connections-api.js +44 -0
  67. package/dist/esm/apis/messages-api.d.ts +128 -0
  68. package/dist/esm/apis/messages-api.js +179 -0
  69. package/dist/esm/apis/notifications-api.d.ts +94 -0
  70. package/dist/esm/apis/notifications-api.js +153 -0
  71. package/dist/esm/apis/organisations-api.d.ts +26 -0
  72. package/dist/esm/apis/organisations-api.js +41 -0
  73. package/dist/esm/apis/permissions-api.d.ts +17 -0
  74. package/dist/esm/apis/permissions-api.js +23 -0
  75. package/dist/esm/apis/processors-api.d.ts +56 -0
  76. package/dist/esm/apis/processors-api.js +97 -0
  77. package/dist/esm/apis/turn-api.d.ts +7 -0
  78. package/dist/esm/apis/turn-api.js +8 -0
  79. package/dist/esm/apis/users-api.d.ts +8 -0
  80. package/dist/esm/apis/users-api.js +9 -0
  81. package/dist/esm/auth/auth-profile.d.ts +45 -0
  82. package/dist/esm/auth/auth-profile.js +68 -0
  83. package/dist/esm/auth/auth-store.d.ts +14 -0
  84. package/dist/esm/auth/build-auth.d.ts +38 -0
  85. package/dist/esm/auth/build-auth.js +92 -0
  86. package/dist/esm/auth/cookie-auth.d.ts +91 -0
  87. package/dist/esm/auth/cookie-auth.js +196 -0
  88. package/dist/esm/auth/doover-auth.d.ts +52 -0
  89. package/dist/esm/auth/doover-auth.js +28 -0
  90. package/dist/esm/auth/doover-token-auth.d.ts +39 -0
  91. package/dist/esm/auth/doover-token-auth.js +217 -0
  92. package/dist/esm/auth/errors.d.ts +3 -0
  93. package/dist/esm/auth/errors.js +6 -0
  94. package/dist/esm/auth/index.d.ts +10 -0
  95. package/dist/esm/auth/index.js +6 -0
  96. package/dist/esm/auth/jwt.d.ts +6 -0
  97. package/dist/esm/auth/jwt.js +26 -0
  98. package/dist/esm/client/capabilities.d.ts +10 -0
  99. package/dist/esm/client/capabilities.js +42 -0
  100. package/dist/esm/client/data-client.d.ts +107 -0
  101. package/dist/esm/client/doover-client.d.ts +48 -0
  102. package/dist/esm/client/doover-client.js +96 -0
  103. package/dist/esm/client/errors.d.ts +32 -0
  104. package/dist/esm/client/errors.js +64 -0
  105. package/dist/esm/client/index.d.ts +6 -0
  106. package/dist/esm/client/index.js +3 -0
  107. package/dist/esm/client/local-agent-client.d.ts +65 -0
  108. package/dist/esm/client/local-agent-client.js +225 -0
  109. package/dist/esm/client/multiplex-client.d.ts +165 -0
  110. package/dist/esm/client/multiplex-client.js +842 -0
  111. package/dist/esm/client/multiplex-gateway.d.ts +49 -0
  112. package/dist/esm/client/multiplex-gateway.js +110 -0
  113. package/dist/esm/client/multiplex-merge.d.ts +12 -0
  114. package/dist/esm/client/multiplex-merge.js +38 -0
  115. package/dist/esm/client/network-status.d.ts +17 -0
  116. package/dist/esm/client/network-status.js +66 -0
  117. package/dist/esm/client/offline-cache.d.ts +167 -0
  118. package/dist/esm/client/offline-cache.js +769 -0
  119. package/dist/esm/client/provenance.d.ts +60 -0
  120. package/dist/esm/client/provenance.js +108 -0
  121. package/dist/esm/client/request-options.d.ts +23 -0
  122. package/dist/esm/client/request-options.js +23 -0
  123. package/dist/esm/client/singleton.d.ts +26 -0
  124. package/dist/esm/client/singleton.js +54 -0
  125. package/dist/esm/client/stats.d.ts +79 -0
  126. package/dist/esm/client/stats.js +155 -0
  127. package/dist/esm/client/status-tracker.d.ts +24 -0
  128. package/dist/esm/client/status-tracker.js +86 -0
  129. package/dist/esm/gateway/gateway-client.d.ts +86 -0
  130. package/dist/esm/gateway/gateway-client.js +463 -0
  131. package/dist/esm/gateway/index.d.ts +3 -0
  132. package/dist/esm/gateway/index.js +1 -0
  133. package/dist/esm/gateway/types.d.ts +142 -0
  134. package/dist/esm/http/errors.d.ts +19 -0
  135. package/dist/esm/http/errors.js +22 -0
  136. package/dist/esm/http/index.d.ts +3 -0
  137. package/dist/esm/http/index.js +2 -0
  138. package/dist/esm/http/rest-client.d.ts +64 -0
  139. package/dist/esm/http/rest-client.js +181 -0
  140. package/dist/esm/index.d.ts +64 -0
  141. package/dist/esm/index.js +38 -0
  142. package/dist/esm/node/config-manager.d.ts +34 -0
  143. package/dist/esm/node/config-manager.js +140 -0
  144. package/dist/esm/node/index.d.ts +1 -0
  145. package/dist/esm/node/index.js +1 -0
  146. package/dist/esm/package.json +1 -0
  147. package/dist/esm/react/context.d.ts +23 -0
  148. package/dist/esm/react/context.js +28 -0
  149. package/dist/esm/react/index.d.ts +38 -0
  150. package/dist/esm/react/index.js +21 -0
  151. package/dist/esm/react/messageRangeStore.d.ts +93 -0
  152. package/dist/esm/react/messageRangeStore.js +140 -0
  153. package/dist/esm/react/sharedQueryClient.d.ts +21 -0
  154. package/dist/esm/react/sharedQueryClient.js +35 -0
  155. package/dist/esm/react/useAgentChannel.d.ts +8 -0
  156. package/dist/esm/react/useAgentChannel.js +9 -0
  157. package/dist/esm/react/useAgentConnections.d.ts +8 -0
  158. package/dist/esm/react/useAgentConnections.js +20 -0
  159. package/dist/esm/react/useAgentTokenState.d.ts +70 -0
  160. package/dist/esm/react/useAgentTokenState.js +127 -0
  161. package/dist/esm/react/useChannelAggregate.d.ts +64 -0
  162. package/dist/esm/react/useChannelAggregate.js +77 -0
  163. package/dist/esm/react/useChannelMessage.d.ts +45 -0
  164. package/dist/esm/react/useChannelMessage.js +79 -0
  165. package/dist/esm/react/useChannelMessages.d.ts +83 -0
  166. package/dist/esm/react/useChannelMessages.js +214 -0
  167. package/dist/esm/react/useChannelSubscription.d.ts +27 -0
  168. package/dist/esm/react/useChannelSubscription.js +30 -0
  169. package/dist/esm/react/useClientStatus.d.ts +10 -0
  170. package/dist/esm/react/useClientStatus.js +19 -0
  171. package/dist/esm/react/useConnectionState.d.ts +26 -0
  172. package/dist/esm/react/useConnectionState.js +45 -0
  173. package/dist/esm/react/useDeviceMap.d.ts +109 -0
  174. package/dist/esm/react/useDeviceMap.js +59 -0
  175. package/dist/esm/react/useInvocationLogs.d.ts +23 -0
  176. package/dist/esm/react/useInvocationLogs.js +37 -0
  177. package/dist/esm/react/useMultiAgentAggregates.d.ts +38 -0
  178. package/dist/esm/react/useMultiAgentAggregates.js +104 -0
  179. package/dist/esm/react/useMultiAgentChannelMessages.d.ts +79 -0
  180. package/dist/esm/react/useMultiAgentChannelMessages.js +169 -0
  181. package/dist/esm/react/useOfflineStatus.d.ts +8 -0
  182. package/dist/esm/react/useOfflineStatus.js +37 -0
  183. package/dist/esm/react/useSendMessage.d.ts +16 -0
  184. package/dist/esm/react/useSendMessage.js +26 -0
  185. package/dist/esm/react/useSendRpc.d.ts +68 -0
  186. package/dist/esm/react/useSendRpc.js +164 -0
  187. package/dist/esm/react/useTurnCredentials.d.ts +12 -0
  188. package/dist/esm/react/useTurnCredentials.js +22 -0
  189. package/dist/esm/react/useUpdateAggregate.d.ts +27 -0
  190. package/dist/esm/react/useUpdateAggregate.js +39 -0
  191. package/dist/esm/react/useUpdateMessage.d.ts +38 -0
  192. package/dist/esm/react/useUpdateMessage.js +36 -0
  193. package/dist/esm/refine/index.d.ts +72 -0
  194. package/dist/esm/refine/index.js +215 -0
  195. package/dist/esm/rpc/errors.d.ts +10 -0
  196. package/dist/esm/rpc/errors.js +19 -0
  197. package/dist/esm/rpc/index.d.ts +3 -0
  198. package/dist/esm/rpc/index.js +2 -0
  199. package/dist/esm/rpc/rpc-dispatcher.d.ts +41 -0
  200. package/dist/esm/rpc/rpc-dispatcher.js +141 -0
  201. package/dist/esm/types/audit.d.ts +53 -0
  202. package/dist/esm/types/audit.js +11 -0
  203. package/dist/esm/types/batch.d.ts +85 -0
  204. package/dist/esm/types/batch.js +42 -0
  205. package/dist/esm/types/common.d.ts +250 -0
  206. package/dist/esm/types/connection.d.ts +72 -0
  207. package/dist/esm/types/connection.js +7 -0
  208. package/dist/esm/types/index.d.ts +9 -0
  209. package/dist/esm/types/openapi.d.ts +195 -0
  210. package/dist/esm/types/provenance.d.ts +45 -0
  211. package/dist/esm/types/viewer.d.ts +122 -0
  212. package/dist/esm/utils/snowflake.d.ts +21 -0
  213. package/dist/esm/utils/snowflake.js +33 -0
  214. package/dist/esm/viewer/doover-data-provider.d.ts +90 -0
  215. package/dist/esm/viewer/doover-data-provider.js +189 -0
  216. package/dist/esm/viewer/path-parsing.d.ts +5 -0
  217. package/dist/esm/viewer/path-parsing.js +35 -0
  218. package/dist/gateway/gateway-client.d.ts +5 -5
  219. package/dist/gateway/gateway-client.js +5 -5
  220. package/dist/gateway/index.d.ts +3 -0
  221. package/dist/gateway/index.js +5 -0
  222. package/dist/gateway/types.d.ts +1 -1
  223. package/dist/http/index.d.ts +3 -0
  224. package/dist/http/index.js +9 -0
  225. package/dist/http/rest-client.d.ts +5 -3
  226. package/dist/http/rest-client.js +2 -2
  227. package/dist/index.d.ts +64 -62
  228. package/dist/index.js +92 -89
  229. package/dist/node/config-manager.d.ts +2 -2
  230. package/dist/node/config-manager.js +5 -5
  231. package/dist/node/index.d.ts +1 -1
  232. package/dist/node/index.js +2 -2
  233. package/dist/react/context.d.ts +1 -1
  234. package/dist/react/index.d.ts +38 -38
  235. package/dist/react/index.js +59 -59
  236. package/dist/react/messageRangeStore.d.ts +1 -1
  237. package/dist/react/useAgentChannel.d.ts +3 -3
  238. package/dist/react/useAgentChannel.js +2 -2
  239. package/dist/react/useAgentConnections.d.ts +1 -1
  240. package/dist/react/useAgentConnections.js +2 -2
  241. package/dist/react/useAgentTokenState.d.ts +3 -3
  242. package/dist/react/useAgentTokenState.js +8 -8
  243. package/dist/react/useChannelAggregate.d.ts +3 -3
  244. package/dist/react/useChannelAggregate.js +8 -8
  245. package/dist/react/useChannelMessage.d.ts +2 -2
  246. package/dist/react/useChannelMessage.js +4 -4
  247. package/dist/react/useChannelMessages.d.ts +3 -3
  248. package/dist/react/useChannelMessages.js +10 -10
  249. package/dist/react/useChannelSubscription.d.ts +2 -2
  250. package/dist/react/useChannelSubscription.js +2 -2
  251. package/dist/react/useClientStatus.d.ts +1 -1
  252. package/dist/react/useClientStatus.js +2 -2
  253. package/dist/react/useConnectionState.js +2 -2
  254. package/dist/react/useDeviceMap.js +2 -2
  255. package/dist/react/useInvocationLogs.d.ts +1 -1
  256. package/dist/react/useInvocationLogs.js +2 -2
  257. package/dist/react/useMultiAgentAggregates.d.ts +1 -1
  258. package/dist/react/useMultiAgentAggregates.js +5 -5
  259. package/dist/react/useMultiAgentChannelMessages.d.ts +1 -1
  260. package/dist/react/useMultiAgentChannelMessages.js +2 -2
  261. package/dist/react/useOfflineStatus.d.ts +2 -2
  262. package/dist/react/useOfflineStatus.js +31 -17
  263. package/dist/react/useSendMessage.d.ts +2 -2
  264. package/dist/react/useSendMessage.js +2 -2
  265. package/dist/react/useSendRpc.d.ts +2 -2
  266. package/dist/react/useSendRpc.js +2 -2
  267. package/dist/react/useTurnCredentials.d.ts +2 -2
  268. package/dist/react/useTurnCredentials.js +2 -2
  269. package/dist/react/useUpdateAggregate.d.ts +3 -3
  270. package/dist/react/useUpdateAggregate.js +4 -4
  271. package/dist/react/useUpdateMessage.d.ts +2 -2
  272. package/dist/react/useUpdateMessage.js +2 -2
  273. package/dist/refine/index.d.ts +1 -1
  274. package/dist/rpc/errors.d.ts +1 -1
  275. package/dist/rpc/index.d.ts +3 -0
  276. package/dist/rpc/index.js +7 -0
  277. package/dist/rpc/rpc-dispatcher.d.ts +4 -4
  278. package/dist/rpc/rpc-dispatcher.js +2 -2
  279. package/dist/types/common.d.ts +1 -1
  280. package/dist/types/index.d.ts +9 -0
  281. package/dist/types/index.js +2 -0
  282. package/dist/types/openapi.d.ts +1 -1
  283. package/dist/types/viewer.d.ts +2 -2
  284. package/dist/viewer/doover-data-provider.d.ts +10 -10
  285. package/dist/viewer/doover-data-provider.js +25 -25
  286. package/dist/viewer/path-parsing.d.ts +1 -1
  287. package/package.json +795 -8
  288. package/dist/test/api-args.test.js +0 -48
  289. package/dist/test/api-overloads.test.d.ts +0 -9
  290. package/dist/test/api-overloads.test.js +0 -330
  291. package/dist/test/apis.test.js +0 -408
  292. package/dist/test/auth.test.js +0 -708
  293. package/dist/test/batch-apis.test.js +0 -183
  294. package/dist/test/capabilities.test.js +0 -27
  295. package/dist/test/config-manager.test.js +0 -160
  296. package/dist/test/data-client-errors.test.js +0 -24
  297. package/dist/test/data-client-shape.test.js +0 -28
  298. package/dist/test/doover-client-dataclient.test.d.ts +0 -1
  299. package/dist/test/doover-client-dataclient.test.js +0 -58
  300. package/dist/test/doover-client-provenance.test.d.ts +0 -1
  301. package/dist/test/doover-client-provenance.test.js +0 -32
  302. package/dist/test/doover-client.test.d.ts +0 -1
  303. package/dist/test/doover-client.test.js +0 -42
  304. package/dist/test/doover-data-provider.test.d.ts +0 -1
  305. package/dist/test/doover-data-provider.test.js +0 -657
  306. package/dist/test/exports.test.d.ts +0 -1
  307. package/dist/test/exports.test.js +0 -80
  308. package/dist/test/gateway-client.test.d.ts +0 -1
  309. package/dist/test/gateway-client.test.js +0 -474
  310. package/dist/test/gateway-provenance.test.d.ts +0 -1
  311. package/dist/test/gateway-provenance.test.js +0 -29
  312. package/dist/test/gateway-subscriptions.test.d.ts +0 -1
  313. package/dist/test/gateway-subscriptions.test.js +0 -95
  314. package/dist/test/helpers.d.ts +0 -32
  315. package/dist/test/helpers.js +0 -115
  316. package/dist/test/local-agent-client.test.d.ts +0 -1
  317. package/dist/test/local-agent-client.test.js +0 -202
  318. package/dist/test/message-range-store.test.d.ts +0 -1
  319. package/dist/test/message-range-store.test.js +0 -183
  320. package/dist/test/multiplex-capabilities.test.d.ts +0 -1
  321. package/dist/test/multiplex-capabilities.test.js +0 -37
  322. package/dist/test/multiplex-conflicts.test.d.ts +0 -1
  323. package/dist/test/multiplex-conflicts.test.js +0 -35
  324. package/dist/test/multiplex-gateway.test.d.ts +0 -1
  325. package/dist/test/multiplex-gateway.test.js +0 -103
  326. package/dist/test/multiplex-merge.test.d.ts +0 -1
  327. package/dist/test/multiplex-merge.test.js +0 -19
  328. package/dist/test/multiplex-noncore.test.d.ts +0 -1
  329. package/dist/test/multiplex-noncore.test.js +0 -82
  330. package/dist/test/multiplex-passthrough.test.d.ts +0 -1
  331. package/dist/test/multiplex-passthrough.test.js +0 -35
  332. package/dist/test/multiplex-reads.test.d.ts +0 -1
  333. package/dist/test/multiplex-reads.test.js +0 -87
  334. package/dist/test/multiplex-registry.test.d.ts +0 -1
  335. package/dist/test/multiplex-registry.test.js +0 -81
  336. package/dist/test/multiplex-routing.test.d.ts +0 -1
  337. package/dist/test/multiplex-routing.test.js +0 -45
  338. package/dist/test/multiplex-status.test.d.ts +0 -1
  339. package/dist/test/multiplex-status.test.js +0 -63
  340. package/dist/test/multiplex-writes.test.d.ts +0 -1
  341. package/dist/test/multiplex-writes.test.js +0 -93
  342. package/dist/test/offline-cache.test.d.ts +0 -1
  343. package/dist/test/offline-cache.test.js +0 -289
  344. package/dist/test/provenance-regression.test.d.ts +0 -1
  345. package/dist/test/provenance-regression.test.js +0 -45
  346. package/dist/test/provenance-stamper.test.d.ts +0 -1
  347. package/dist/test/provenance-stamper.test.js +0 -41
  348. package/dist/test/provenance-type.test.d.ts +0 -1
  349. package/dist/test/provenance-type.test.js +0 -15
  350. package/dist/test/react-channel-messages-forward.test.d.ts +0 -1
  351. package/dist/test/react-channel-messages-forward.test.js +0 -139
  352. package/dist/test/react-channel-messages-range.test.d.ts +0 -1
  353. package/dist/test/react-channel-messages-range.test.js +0 -109
  354. package/dist/test/react-client-status.test.d.ts +0 -1
  355. package/dist/test/react-client-status.test.js +0 -35
  356. package/dist/test/react-dataclient.test.d.ts +0 -1
  357. package/dist/test/react-dataclient.test.js +0 -28
  358. package/dist/test/react-exports.test.d.ts +0 -1
  359. package/dist/test/react-exports.test.js +0 -46
  360. package/dist/test/react-multiagent-messages.test.d.ts +0 -1
  361. package/dist/test/react-multiagent-messages.test.js +0 -113
  362. package/dist/test/react-sources-option.test.d.ts +0 -1
  363. package/dist/test/react-sources-option.test.js +0 -41
  364. package/dist/test/react.test.d.ts +0 -1
  365. package/dist/test/react.test.js +0 -482
  366. package/dist/test/refine.test.d.ts +0 -1
  367. package/dist/test/refine.test.js +0 -71
  368. package/dist/test/rest-client.test.d.ts +0 -1
  369. package/dist/test/rest-client.test.js +0 -197
  370. package/dist/test/rpc-dispatcher.test.d.ts +0 -1
  371. package/dist/test/rpc-dispatcher.test.js +0 -251
  372. package/dist/test/singleton.test.d.ts +0 -1
  373. package/dist/test/singleton.test.js +0 -62
  374. package/dist/test/stats-rpc.test.d.ts +0 -1
  375. package/dist/test/stats-rpc.test.js +0 -69
  376. package/dist/test/status-tracker.test.d.ts +0 -1
  377. package/dist/test/status-tracker.test.js +0 -85
  378. package/dist/test/users-api.test.d.ts +0 -1
  379. package/dist/test/users-api.test.js +0 -19
  380. package/dist/test/utils.test.d.ts +0 -1
  381. package/dist/test/utils.test.js +0 -64
  382. /package/dist/{test/api-args.test.d.ts → esm/auth/auth-store.js} +0 -0
  383. /package/dist/{test/apis.test.d.ts → esm/client/data-client.js} +0 -0
  384. /package/dist/{test/auth.test.d.ts → esm/gateway/types.js} +0 -0
  385. /package/dist/{test/batch-apis.test.d.ts → esm/types/common.js} +0 -0
  386. /package/dist/{test/capabilities.test.d.ts → esm/types/index.js} +0 -0
  387. /package/dist/{test/config-manager.test.d.ts → esm/types/openapi.js} +0 -0
  388. /package/dist/{test/data-client-errors.test.d.ts → esm/types/provenance.js} +0 -0
  389. /package/dist/{test/data-client-shape.test.d.ts → esm/types/viewer.js} +0 -0
@@ -1,482 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const chai_1 = require("chai");
8
- const mocha_1 = require("mocha");
9
- const react_1 = require("@testing-library/react");
10
- const react_query_1 = require("@tanstack/react-query");
11
- const sinon_1 = __importDefault(require("sinon"));
12
- const doover_client_1 = require("../client/doover-client");
13
- const react_2 = require("../react");
14
- const helpers_1 = require("./helpers");
15
- const snowflake_1 = require("../utils/snowflake");
16
- function makeClient() {
17
- const fetchMock = (0, helpers_1.createFetchMock)((url) => {
18
- if (url.endsWith("/wss_connections")) {
19
- return (0, helpers_1.createJsonResponse)([{ address: "x", agent_id: "a1" }]);
20
- }
21
- return (0, helpers_1.createJsonResponse)({});
22
- });
23
- const client = new doover_client_1.DooverClient({
24
- dataRestUrl: "https://api.example.com",
25
- controlApiUrl: "https://control.example.com",
26
- dataWssUrl: "wss://ws.example.com",
27
- fetchImpl: fetchMock,
28
- webSocketImpl: helpers_1.MockWebSocket,
29
- disableBrowserLifecycleHooks: true,
30
- });
31
- return { client, fetchMock };
32
- }
33
- function wrapper(client) {
34
- const queryClient = new react_query_1.QueryClient({ defaultOptions: { queries: { retry: false } } });
35
- return function Wrapper({ children }) {
36
- return ((0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(react_2.DooverProvider, { client: client, children: children }) }));
37
- };
38
- }
39
- (0, mocha_1.describe)("react bindings", () => {
40
- (0, mocha_1.beforeEach)(() => {
41
- (0, helpers_1.installSessionStorageMock)();
42
- helpers_1.MockWebSocket.reset();
43
- Object.defineProperty(globalThis, "WebSocket", {
44
- value: helpers_1.MockWebSocket,
45
- configurable: true,
46
- writable: true,
47
- });
48
- });
49
- (0, mocha_1.afterEach)(() => {
50
- sinon_1.default.restore();
51
- });
52
- (0, mocha_1.it)("useDooverClient returns the injected client", () => {
53
- const { client } = makeClient();
54
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useDooverClient)(), {
55
- wrapper: wrapper(client),
56
- });
57
- (0, chai_1.expect)(result.current).to.equal(client);
58
- });
59
- (0, mocha_1.it)("useDooverClient throws outside of a provider", () => {
60
- // Suppress React's expected error-boundary log for the unmounted throw.
61
- sinon_1.default.stub(console, "error");
62
- (0, chai_1.expect)(() => (0, react_1.renderHook)(() => (0, react_2.useDooverClient)())).to.throw(/DooverProvider/);
63
- });
64
- (0, mocha_1.it)("useConnectionState reports connecting initially and flips to open on Ready", async () => {
65
- const { client } = makeClient();
66
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useConnectionState)(), {
67
- wrapper: wrapper(client),
68
- });
69
- (0, chai_1.expect)(result.current.status).to.equal("connecting");
70
- (0, chai_1.expect)(result.current.lastOpenedAt).to.equal(null);
71
- // Drive the gateway through a real connect.
72
- await (0, react_1.act)(async () => {
73
- await client.gateway.connect();
74
- });
75
- const ws = helpers_1.MockWebSocket.instances[0];
76
- (0, react_1.act)(() => {
77
- ws.open();
78
- ws.receive({ op: 0, t: "Hello", d: {} });
79
- ws.receive({
80
- op: 0,
81
- t: "Ready",
82
- d: { session_id: "s1", session_token: "t1", subscriptions: [] },
83
- });
84
- });
85
- await (0, react_1.waitFor)(() => {
86
- (0, chai_1.expect)(result.current.status).to.equal("open");
87
- (0, chai_1.expect)(result.current.lastOpenedAt).to.be.a("number");
88
- });
89
- });
90
- (0, mocha_1.it)("useAgentConnections fetches via ConnectionsApi", async () => {
91
- const { client, fetchMock } = makeClient();
92
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useAgentConnections)("a1"), {
93
- wrapper: wrapper(client),
94
- });
95
- await (0, react_1.waitFor)(() => {
96
- (0, chai_1.expect)(result.current.isSuccess).to.equal(true);
97
- });
98
- (0, chai_1.expect)(result.current.data?.[0]).to.deep.include({ address: "x", agent_id: "a1" });
99
- (0, chai_1.expect)(fetchMock.getCall(0).args[0]).to.equal("https://api.example.com/agents/a1/wss_connections");
100
- });
101
- (0, mocha_1.it)("useAgentConnections stays disabled when agentId is undefined", () => {
102
- const { client, fetchMock } = makeClient();
103
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useAgentConnections)(undefined), {
104
- wrapper: wrapper(client),
105
- });
106
- (0, chai_1.expect)(result.current.fetchStatus).to.equal("idle");
107
- (0, chai_1.expect)(fetchMock.callCount).to.equal(0);
108
- });
109
- (0, mocha_1.it)("useAgentChannel fetches the aggregate and patches cache on gateway events", async () => {
110
- const fetchMock = (0, helpers_1.createFetchMock)((url) => {
111
- if (url.endsWith("/channels/ui_state")) {
112
- return (0, helpers_1.createJsonResponse)({
113
- name: "ui_state",
114
- owner_id: "a1",
115
- is_private: false,
116
- aggregate: { data: { x: 1 }, attachments: [] },
117
- });
118
- }
119
- return (0, helpers_1.createJsonResponse)({});
120
- });
121
- const client = new doover_client_1.DooverClient({
122
- dataRestUrl: "https://api.example.com",
123
- controlApiUrl: "https://control.example.com",
124
- dataWssUrl: "wss://ws.example.com",
125
- fetchImpl: fetchMock,
126
- webSocketImpl: helpers_1.MockWebSocket,
127
- disableBrowserLifecycleHooks: true,
128
- });
129
- const Wrapper = wrapper(client);
130
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useAgentChannel)("a1", "ui_state"), {
131
- wrapper: Wrapper,
132
- });
133
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.isSuccess).to.equal(true));
134
- (0, chai_1.expect)(result.current.data).to.deep.equal({ x: 1 });
135
- (0, chai_1.expect)(result.current.attachments).to.deep.equal([]);
136
- // Drive a live aggregate update.
137
- await (0, react_1.act)(async () => {
138
- const ws = helpers_1.MockWebSocket.instances[0];
139
- ws.open();
140
- ws.receive({ op: 0, t: "Hello", d: {} });
141
- ws.receive({
142
- op: 0,
143
- t: "Ready",
144
- d: { session_id: "s1", session_token: "t1", subscriptions: [] },
145
- });
146
- ws.receive({
147
- op: 0,
148
- t: "AggregateUpdate",
149
- d: {
150
- author_id: "u1",
151
- channel: { agent_id: "a1", name: "ui_state" },
152
- aggregate: { data: { x: 2 }, attachments: [] },
153
- request_data: {},
154
- organisation_id: "org-1",
155
- },
156
- });
157
- });
158
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.data).to.deep.equal({ x: 2 }));
159
- });
160
- (0, mocha_1.it)("useSendMessage posts via MessagesApi", async () => {
161
- const fetchMock = (0, helpers_1.createFetchMock)((url) => {
162
- if (url.endsWith("/messages")) {
163
- return (0, helpers_1.createJsonResponse)({
164
- id: (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:00.000Z")),
165
- author_id: "u1",
166
- channel: { agent_id: "a1", name: "notes" },
167
- data: { text: "hi" },
168
- attachments: [],
169
- });
170
- }
171
- return (0, helpers_1.createJsonResponse)({});
172
- });
173
- const client = new doover_client_1.DooverClient({
174
- dataRestUrl: "https://api.example.com",
175
- controlApiUrl: "https://control.example.com",
176
- dataWssUrl: "wss://ws.example.com",
177
- fetchImpl: fetchMock,
178
- webSocketImpl: helpers_1.MockWebSocket,
179
- disableBrowserLifecycleHooks: true,
180
- });
181
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useSendMessage)({ agentId: "a1", channelName: "notes" }), { wrapper: wrapper(client) });
182
- let mutationResult;
183
- await (0, react_1.act)(async () => {
184
- mutationResult = await result.current.mutateAsync({ text: "hi" });
185
- });
186
- (0, chai_1.expect)(mutationResult?.data).to.deep.equal({ text: "hi" });
187
- });
188
- (0, mocha_1.it)("useUpdateAggregate patches and writes back to the channel aggregate cache", async () => {
189
- const fetchMock = (0, helpers_1.createFetchMock)(() => (0, helpers_1.createJsonResponse)({ data: { y: 2 }, attachments: [] }));
190
- const client = new doover_client_1.DooverClient({
191
- dataRestUrl: "https://api.example.com",
192
- controlApiUrl: "https://control.example.com",
193
- dataWssUrl: "wss://ws.example.com",
194
- fetchImpl: fetchMock,
195
- webSocketImpl: helpers_1.MockWebSocket,
196
- disableBrowserLifecycleHooks: true,
197
- });
198
- const queryClient = new react_query_1.QueryClient({
199
- defaultOptions: { queries: { retry: false } },
200
- });
201
- function Wrapper({ children }) {
202
- return ((0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(react_2.DooverProvider, { client: client, children: children }) }));
203
- }
204
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useUpdateAggregate)({ agentId: "a1", channelName: "ui_cmds" }), { wrapper: Wrapper });
205
- await (0, react_1.act)(async () => {
206
- await result.current.mutateAsync({ y: 2 });
207
- });
208
- const cached = queryClient.getQueryData((0, react_2.channelAggregateQueryKey)("a1", "ui_cmds"));
209
- (0, chai_1.expect)(cached).to.deep.include({ data: { y: 2 }, attachments: [] });
210
- });
211
- (0, mocha_1.it)("useChannelMessages applies live creates and updates", async () => {
212
- const oldId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2025-12-31T23:59:00.000Z"));
213
- const newId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:01.000Z"));
214
- const liveId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:02.000Z"));
215
- const fetchMock = (0, helpers_1.createFetchMock)(() => (0, helpers_1.createJsonResponse)([
216
- {
217
- id: newId,
218
- author_id: "u1",
219
- channel: { agent_id: "a1", name: "notes" },
220
- data: { v: 2 },
221
- attachments: [],
222
- },
223
- {
224
- id: oldId,
225
- author_id: "u1",
226
- channel: { agent_id: "a1", name: "notes" },
227
- data: { v: 1 },
228
- attachments: [],
229
- },
230
- ]));
231
- const client = new doover_client_1.DooverClient({
232
- dataRestUrl: "https://api.example.com",
233
- controlApiUrl: "https://control.example.com",
234
- dataWssUrl: "wss://ws.example.com",
235
- fetchImpl: fetchMock,
236
- webSocketImpl: helpers_1.MockWebSocket,
237
- disableBrowserLifecycleHooks: true,
238
- });
239
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useChannelMessages)({ agentId: "a1", channelName: "notes" }, { limit: 10 }), { wrapper: wrapper(client) });
240
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.isSuccess).to.equal(true));
241
- (0, chai_1.expect)(result.current.messages.map((m) => m.id)).to.deep.equal([
242
- oldId,
243
- newId,
244
- ]);
245
- // Gateway MessageCreate — should append to the first (newest) page.
246
- await (0, react_1.act)(async () => {
247
- const ws = helpers_1.MockWebSocket.instances[0];
248
- ws.open();
249
- ws.receive({ op: 0, t: "Hello", d: {} });
250
- ws.receive({
251
- op: 0,
252
- t: "Ready",
253
- d: { session_id: "s1", session_token: "t1", subscriptions: [] },
254
- });
255
- ws.receive({
256
- op: 0,
257
- t: "MessageCreate",
258
- d: {
259
- id: liveId,
260
- author_id: "u1",
261
- channel: { agent_id: "a1", name: "notes" },
262
- data: { v: 3 },
263
- attachments: [],
264
- },
265
- });
266
- });
267
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.messages.map((m) => m.id)).to.deep.equal([
268
- oldId,
269
- newId,
270
- liveId,
271
- ]));
272
- await (0, react_1.act)(async () => {
273
- helpers_1.MockWebSocket.instances[0].receive({
274
- op: 0,
275
- t: "MessageUpdate",
276
- d: {
277
- message: {
278
- id: newId,
279
- author_id: "u1",
280
- channel: { agent_id: "a1", name: "notes" },
281
- data: { v: 22, analysed_by: "detector" },
282
- attachments: [{ id: "analysed-image" }],
283
- },
284
- request_data: {},
285
- },
286
- });
287
- });
288
- await (0, react_1.waitFor)(() => {
289
- const updated = result.current.messages.find((message) => message.id === newId);
290
- (0, chai_1.expect)(updated?.data).to.deep.equal({ v: 22, analysed_by: "detector" });
291
- (0, chai_1.expect)(updated?.attachments).to.have.length(1);
292
- (0, chai_1.expect)(updated?.attachments?.[0]).to.deep.include({ id: "analysed-image" });
293
- });
294
- });
295
- (0, mocha_1.it)("useChannelMessage seeds via REST and patches on MessageUpdate", async () => {
296
- const messageId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:00.000Z"));
297
- const otherId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:01.000Z"));
298
- const fetchMock = (0, helpers_1.createFetchMock)(() => (0, helpers_1.createJsonResponse)({
299
- id: messageId,
300
- author_id: "u1",
301
- channel: { agent_id: "a1", name: "rpc" },
302
- data: { method: "ping", response: { status: "pulling" } },
303
- attachments: [],
304
- }));
305
- const client = new doover_client_1.DooverClient({
306
- dataRestUrl: "https://api.example.com",
307
- controlApiUrl: "https://control.example.com",
308
- dataWssUrl: "wss://ws.example.com",
309
- fetchImpl: fetchMock,
310
- webSocketImpl: helpers_1.MockWebSocket,
311
- disableBrowserLifecycleHooks: true,
312
- });
313
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useChannelMessage)({ agentId: "a1", channelName: "rpc" }, messageId), { wrapper: wrapper(client) });
314
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.isSuccess).to.equal(true));
315
- (0, chai_1.expect)(result.current.data?.response?.status).to.equal("pulling");
316
- (0, chai_1.expect)(result.current.message?.id).to.equal(messageId);
317
- await (0, react_1.act)(async () => {
318
- const ws = helpers_1.MockWebSocket.instances[0];
319
- ws.open();
320
- ws.receive({ op: 0, t: "Hello", d: {} });
321
- ws.receive({
322
- op: 0,
323
- t: "Ready",
324
- d: { session_id: "s1", session_token: "t1", subscriptions: [] },
325
- });
326
- // Update for an unrelated message — should be ignored.
327
- ws.receive({
328
- op: 0,
329
- t: "MessageUpdate",
330
- d: {
331
- channel: { agent_id: "a1", name: "rpc" },
332
- author_id: "u1",
333
- message: {
334
- id: otherId,
335
- author_id: "u1",
336
- channel: { agent_id: "a1", name: "rpc" },
337
- data: { method: "ping", response: { status: "success" } },
338
- attachments: [],
339
- },
340
- },
341
- });
342
- // Update for the message we're watching — should patch.
343
- ws.receive({
344
- op: 0,
345
- t: "MessageUpdate",
346
- d: {
347
- channel: { agent_id: "a1", name: "rpc" },
348
- author_id: "u1",
349
- message: {
350
- id: messageId,
351
- author_id: "u1",
352
- channel: { agent_id: "a1", name: "rpc" },
353
- data: { method: "ping", response: { status: "success" } },
354
- attachments: [],
355
- },
356
- },
357
- });
358
- });
359
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.data?.response?.status).to.equal("success"));
360
- });
361
- (0, mocha_1.it)("useInvocationLogs fetches logs for the message", async () => {
362
- const messageId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:00.000Z"));
363
- const fetchMock = (0, helpers_1.createFetchMock)(() => (0, helpers_1.createJsonResponse)([
364
- { level: "INFO", message: "hello", timestamp: 1 },
365
- { level: "ERROR", message: "boom", timestamp: 2 },
366
- ]));
367
- const client = new doover_client_1.DooverClient({
368
- dataRestUrl: "https://api.example.com",
369
- controlApiUrl: "https://control.example.com",
370
- dataWssUrl: "wss://ws.example.com",
371
- fetchImpl: fetchMock,
372
- webSocketImpl: helpers_1.MockWebSocket,
373
- disableBrowserLifecycleHooks: true,
374
- });
375
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useInvocationLogs)({ agentId: "a1", channelName: "dv-proc-inv-1" }, messageId), { wrapper: wrapper(client) });
376
- await (0, react_1.waitFor)(() => (0, chai_1.expect)(result.current.isSuccess).to.equal(true));
377
- (0, chai_1.expect)(result.current.data?.map((l) => l.level)).to.deep.equal([
378
- "INFO",
379
- "ERROR",
380
- ]);
381
- const requestUrl = fetchMock.firstCall?.args[0];
382
- (0, chai_1.expect)(requestUrl).to.contain(`/agents/a1/channels/dv-proc-inv-1/messages/${messageId}/logs`);
383
- });
384
- (0, mocha_1.it)("useInvocationLogs is disabled when messageId is undefined", () => {
385
- const fetchMock = (0, helpers_1.createFetchMock)(() => (0, helpers_1.createJsonResponse)([]));
386
- const client = new doover_client_1.DooverClient({
387
- dataRestUrl: "https://api.example.com",
388
- controlApiUrl: "https://control.example.com",
389
- dataWssUrl: "wss://ws.example.com",
390
- fetchImpl: fetchMock,
391
- webSocketImpl: helpers_1.MockWebSocket,
392
- disableBrowserLifecycleHooks: true,
393
- });
394
- (0, react_1.renderHook)(() => (0, react_2.useInvocationLogs)({ agentId: "a1", channelName: "dv-proc-inv-1" }, undefined), { wrapper: wrapper(client) });
395
- (0, chai_1.expect)(fetchMock.callCount).to.equal(0);
396
- });
397
- (0, mocha_1.it)("getSharedQueryClient returns the same QueryClient across callers", () => {
398
- (0, react_2.resetSharedQueryClient)();
399
- const a = (0, react_2.getSharedQueryClient)();
400
- const b = (0, react_2.getSharedQueryClient)();
401
- (0, chai_1.expect)(a).to.equal(b);
402
- (0, react_2.resetSharedQueryClient)();
403
- const c = (0, react_2.getSharedQueryClient)();
404
- (0, chai_1.expect)(c).to.not.equal(a);
405
- (0, react_2.resetSharedQueryClient)();
406
- });
407
- (0, mocha_1.it)("useSendRpc tracks status history and resolves via sendRPC", async () => {
408
- const rpcId = (0, snowflake_1.generateSnowflakeIdAtTime)(new Date("2026-01-01T00:00:00.000Z"));
409
- const fetchMock = (0, helpers_1.createFetchMock)((url) => {
410
- if (url.endsWith("/messages")) {
411
- return (0, helpers_1.createJsonResponse)({
412
- id: rpcId,
413
- author_id: "u1",
414
- channel: { agent_id: "a1", name: "ui_cmds" },
415
- data: {
416
- type: "rpc",
417
- method: "ping",
418
- request: {},
419
- status: { code: "sent" },
420
- response: {},
421
- },
422
- attachments: [],
423
- });
424
- }
425
- return (0, helpers_1.createJsonResponse)({});
426
- });
427
- const client = new doover_client_1.DooverClient({
428
- dataRestUrl: "https://api.example.com",
429
- controlApiUrl: "https://control.example.com",
430
- dataWssUrl: "wss://ws.example.com",
431
- fetchImpl: fetchMock,
432
- webSocketImpl: helpers_1.MockWebSocket,
433
- disableBrowserLifecycleHooks: true,
434
- });
435
- const { result } = (0, react_1.renderHook)(() => (0, react_2.useSendRpc)({ agentId: "a1", channelName: "ui_cmds" }, { method: "ping" }), { wrapper: wrapper(client) });
436
- // Kick off the mutation.
437
- const pending = (0, react_1.act)(async () => {
438
- const promise = result.current.mutateAsync({ commandId: "c1", request: {} });
439
- // Give the mutation a tick to register the command in state before we
440
- // drive the gateway, so onStatus updates land against a known command.
441
- await new Promise((resolve) => setTimeout(resolve, 0));
442
- const ws = helpers_1.MockWebSocket.instances[0];
443
- ws.open();
444
- ws.receive({ op: 0, t: "Hello", d: {} });
445
- ws.receive({
446
- op: 0,
447
- t: "Ready",
448
- d: { session_id: "s1", session_token: "t1", subscriptions: [] },
449
- });
450
- await new Promise((resolve) => setTimeout(resolve, 0));
451
- ws.receive({
452
- op: 0,
453
- t: "MessageUpdate",
454
- d: {
455
- channel: { agent_id: "a1", name: "ui_cmds" },
456
- author_id: "u1",
457
- message: {
458
- id: rpcId,
459
- author_id: "u1",
460
- channel: { agent_id: "a1", name: "ui_cmds" },
461
- data: {
462
- type: "rpc",
463
- method: "ping",
464
- request: {},
465
- status: { code: "success" },
466
- response: { pong: true },
467
- },
468
- attachments: [],
469
- },
470
- request_data: { status: { code: "success" }, response: { pong: true } },
471
- },
472
- });
473
- return promise;
474
- });
475
- const response = await pending;
476
- (0, chai_1.expect)(response).to.deep.equal({ pong: true });
477
- (0, chai_1.expect)(result.current.getStatus("c1")?.code).to.equal("success");
478
- (0, chai_1.expect)(result.current.isPending("c1")).to.equal(false);
479
- });
480
- });
481
- // Keep `render` imported so tsc doesn't drop it; we use renderHook everywhere.
482
- void react_1.render;
@@ -1 +0,0 @@
1
- export {};
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const mocha_1 = require("mocha");
5
- const refine_1 = require("../refine");
6
- const rest_client_1 = require("../http/rest-client");
7
- const helpers_1 = require("./helpers");
8
- (0, mocha_1.describe)("createRefineDataProvider", () => {
9
- (0, mocha_1.it)("builds list requests with api_path, pagination, sorters, filters and organisation header", async () => {
10
- const fetchMock = (0, helpers_1.createFetchMock)(() => (0, helpers_1.createJsonResponse)({ count: 1, results: [{ id: "1", name: "Device" }] }));
11
- const rest = new rest_client_1.RestClient({
12
- dataRestUrl: "https://data.example.com/api",
13
- controlApiUrl: "https://control.example.com",
14
- dataWssUrl: "wss://data.example.com/gateway",
15
- organisationId: "org-1",
16
- fetchImpl: fetchMock,
17
- });
18
- const provider = (0, refine_1.createRefineDataProvider)(rest);
19
- const result = await provider.getList({
20
- resource: "devices",
21
- pagination: { currentPage: 2, pageSize: 25 },
22
- sorters: [{ field: "name", order: "desc" }],
23
- filters: [
24
- { field: "search", operator: "contains", value: "pump" },
25
- { field: "archived", operator: "eq", value: false },
26
- ],
27
- meta: { api_path: "organisations/:organisationId/devices", organisationId: "org-2" },
28
- });
29
- (0, chai_1.expect)(result).to.deep.equal({
30
- data: [{ id: "1", name: "Device" }],
31
- total: 1,
32
- });
33
- (0, chai_1.expect)(fetchMock.callCount).to.equal(1);
34
- const [url, init] = fetchMock.getCall(0).args;
35
- (0, chai_1.expect)(url).to.equal("https://control.example.com/organisations/org-2/devices/?page=2&per_page=25&ordering=-name&search=pump&archived=false");
36
- (0, chai_1.expect)((init?.headers).get("X-Doover-Organisation")).to.equal("org-1");
37
- const explicit = await provider.getList({
38
- resource: "devices",
39
- meta: { organisation: "org-3" },
40
- });
41
- (0, chai_1.expect)(explicit.total).to.equal(1);
42
- (0, chai_1.expect)((fetchMock.getCall(1).args[1]?.headers).get("X-Doover-Organisation")).to.equal("org-3");
43
- });
44
- (0, mocha_1.it)("renames object fields and sends JSON mutations through RestClient", async () => {
45
- const fetchMock = (0, helpers_1.createFetchMock)((_url, init) => (0, helpers_1.createJsonResponse)(JSON.parse(String(init?.body))));
46
- const rest = new rest_client_1.RestClient({
47
- dataRestUrl: "https://data.example.com/api",
48
- controlApiUrl: "https://control.example.com",
49
- dataWssUrl: "wss://data.example.com/gateway",
50
- fetchImpl: fetchMock,
51
- });
52
- const provider = (0, refine_1.createRefineDataProvider)(rest);
53
- const result = await provider.update({
54
- resource: "devices",
55
- id: "device-1",
56
- variables: { group: { id: "group-1", name: "Group" } },
57
- meta: { renameFields: { group: "group_id" } },
58
- });
59
- (0, chai_1.expect)(result.data).to.deep.equal({
60
- group: "group-1",
61
- group_id: "group-1",
62
- });
63
- });
64
- });
65
- (0, mocha_1.describe)("getApiPath", () => {
66
- (0, mocha_1.it)("falls back across api_path candidates", () => {
67
- (0, chai_1.expect)((0, refine_1.getApiPath)("domains", {
68
- api_path: ["organisations/:organisationId/domains", "organisations/domains"],
69
- })).to.equal("organisations/domains");
70
- });
71
- });
@@ -1 +0,0 @@
1
- export {};