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,183 +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 aggregates_api_1 = require("../apis/aggregates-api");
6
- const messages_api_1 = require("../apis/messages-api");
7
- const rest_client_1 = require("../http/rest-client");
8
- const batch_1 = require("../types/batch");
9
- const helpers_1 = require("./helpers");
10
- /**
11
- * Rest client whose fetch mock records every request and replies with a
12
- * well-formed batch response echoing the submitted items as successes.
13
- */
14
- function setupBatchRest(overrides) {
15
- const requests = [];
16
- const fetchMock = (0, helpers_1.createFetchMock)((url, init) => {
17
- const body = JSON.parse(String(init?.body ?? "{}"));
18
- const captured = { url, method: init?.method, body };
19
- requests.push(captured);
20
- const override = overrides?.(captured);
21
- if (override)
22
- return (0, helpers_1.createJsonResponse)(override);
23
- const items = body.items.map((item) => ({
24
- agent_id: item.agent_id,
25
- channel_name: item.channel_name,
26
- success: true,
27
- }));
28
- return (0, helpers_1.createJsonResponse)({
29
- items,
30
- count: items.length,
31
- succeeded: items.length,
32
- failed: 0,
33
- });
34
- });
35
- const rest = new rest_client_1.RestClient({
36
- dataRestUrl: "https://api.example.com",
37
- controlApiUrl: "https://control.example.com",
38
- dataWssUrl: "wss://ws.example.com",
39
- fetchImpl: fetchMock,
40
- });
41
- return { rest, requests };
42
- }
43
- function aggregateItems(count) {
44
- return Array.from({ length: count }, (_, i) => ({
45
- agent_id: `agent-${i}`,
46
- channel_name: "dv-ui-sub",
47
- data: { group_open: { "u1:s1": 1 } },
48
- }));
49
- }
50
- (0, mocha_1.describe)("batch helpers", () => {
51
- (0, mocha_1.it)("chunks to the server ceiling and preserves order", () => {
52
- const chunks = (0, batch_1.chunkBatchItems)([1, 2, 3, 4, 5], 2);
53
- (0, chai_1.expect)(chunks).to.deep.equal([[1, 2], [3, 4], [5]]);
54
- });
55
- (0, mocha_1.it)("returns no chunks for an empty list", () => {
56
- (0, chai_1.expect)((0, batch_1.chunkBatchItems)([])).to.deep.equal([]);
57
- });
58
- (0, mocha_1.it)("rejects a nonsensical chunk size rather than looping forever", () => {
59
- (0, chai_1.expect)(() => (0, batch_1.chunkBatchItems)([1], 0)).to.throw(RangeError);
60
- });
61
- (0, mocha_1.it)("recomputes counts when merging responses", () => {
62
- const merged = (0, batch_1.mergeBatchResponses)([
63
- {
64
- items: [{ agent_id: "a", channel_name: "c", success: true }],
65
- count: 1,
66
- succeeded: 1,
67
- failed: 0,
68
- },
69
- {
70
- items: [
71
- { agent_id: "b", channel_name: "c", success: false, error: "boom" },
72
- ],
73
- count: 1,
74
- succeeded: 1, // deliberately wrong: merge must not trust these
75
- failed: 0,
76
- },
77
- ]);
78
- (0, chai_1.expect)(merged.count).to.equal(2);
79
- (0, chai_1.expect)(merged.succeeded).to.equal(1);
80
- (0, chai_1.expect)(merged.failed).to.equal(1);
81
- (0, chai_1.expect)(merged.items.map((i) => i.agent_id)).to.deep.equal(["a", "b"]);
82
- });
83
- });
84
- (0, mocha_1.describe)("AggregatesApi.batchPatchAggregates", () => {
85
- (0, mocha_1.it)("PATCHes /agents/aggregates with an items envelope", async () => {
86
- const { rest, requests } = setupBatchRest();
87
- const api = new aggregates_api_1.AggregatesApi(rest);
88
- const response = await api.batchPatchAggregates(aggregateItems(2));
89
- (0, chai_1.expect)(requests).to.have.length(1);
90
- (0, chai_1.expect)(requests[0].url).to.equal("https://api.example.com/agents/aggregates");
91
- (0, chai_1.expect)(requests[0].method).to.equal("PATCH");
92
- (0, chai_1.expect)(requests[0].body.items).to.have.length(2);
93
- (0, chai_1.expect)(requests[0].body.items[0]).to.deep.equal({
94
- agent_id: "agent-0",
95
- channel_name: "dv-ui-sub",
96
- data: { group_open: { "u1:s1": 1 } },
97
- });
98
- (0, chai_1.expect)(response.count).to.equal(2);
99
- (0, chai_1.expect)(response.succeeded).to.equal(2);
100
- });
101
- (0, mocha_1.it)("issues no request at all for an empty batch", async () => {
102
- const { rest, requests } = setupBatchRest();
103
- const api = new aggregates_api_1.AggregatesApi(rest);
104
- const response = await api.batchPatchAggregates([]);
105
- (0, chai_1.expect)(requests).to.have.length(0);
106
- (0, chai_1.expect)(response).to.deep.equal({ items: [], count: 0, succeeded: 0, failed: 0 });
107
- });
108
- (0, mocha_1.it)("splits oversized batches and merges the responses in order", async () => {
109
- const { rest, requests } = setupBatchRest();
110
- const api = new aggregates_api_1.AggregatesApi(rest);
111
- const total = batch_1.MAX_BATCH_ITEMS + 5;
112
- const response = await api.batchPatchAggregates(aggregateItems(total));
113
- (0, chai_1.expect)(requests).to.have.length(2);
114
- (0, chai_1.expect)(requests[0].body.items).to.have.length(batch_1.MAX_BATCH_ITEMS);
115
- (0, chai_1.expect)(requests[1].body.items).to.have.length(5);
116
- (0, chai_1.expect)(response.count).to.equal(total);
117
- (0, chai_1.expect)(response.items[0].agent_id).to.equal("agent-0");
118
- (0, chai_1.expect)(response.items[total - 1].agent_id).to.equal(`agent-${total - 1}`);
119
- });
120
- (0, mocha_1.it)("surfaces partial failure without throwing", async () => {
121
- const { rest } = setupBatchRest(() => ({
122
- items: [
123
- { agent_id: "agent-0", channel_name: "dv-ui-sub", success: true },
124
- {
125
- agent_id: "agent-1",
126
- channel_name: "dv-ui-sub",
127
- success: false,
128
- error: "permission denied",
129
- },
130
- ],
131
- count: 2,
132
- succeeded: 1,
133
- failed: 1,
134
- }));
135
- const api = new aggregates_api_1.AggregatesApi(rest);
136
- const response = await api.batchPatchAggregates(aggregateItems(2));
137
- (0, chai_1.expect)(response.failed).to.equal(1);
138
- (0, chai_1.expect)(response.items[1].error).to.equal("permission denied");
139
- });
140
- });
141
- (0, mocha_1.describe)("MessagesApi batch mutations", () => {
142
- (0, mocha_1.it)("POSTs creates to /agents/messages", async () => {
143
- const { rest, requests } = setupBatchRest();
144
- const api = new messages_api_1.MessagesApi(rest);
145
- await api.batchPostMessages([
146
- { agent_id: "a1", channel_name: "activity", message_id: "m1", data: { event: "opened" } },
147
- ]);
148
- (0, chai_1.expect)(requests[0].url).to.equal("https://api.example.com/agents/messages");
149
- (0, chai_1.expect)(requests[0].method).to.equal("POST");
150
- (0, chai_1.expect)(requests[0].body.items[0].message_id).to.equal("m1");
151
- });
152
- (0, mocha_1.it)("uses the matching verb for patch, put and delete", async () => {
153
- const { rest, requests } = setupBatchRest();
154
- const api = new messages_api_1.MessagesApi(rest);
155
- const items = [{ agent_id: "a1", channel_name: "c1", message_id: "m1", data: {} }];
156
- await api.batchPatchMessages(items);
157
- await api.batchPutMessages(items);
158
- await api.batchDeleteMessages([{ agent_id: "a1", channel_name: "c1", message_id: "m1" }]);
159
- (0, chai_1.expect)(requests.map((r) => r.method)).to.deep.equal(["PATCH", "PUT", "DELETE"]);
160
- // DELETE must carry a body — the reason these bypass `rest.delete`.
161
- (0, chai_1.expect)(requests[2].body.items).to.have.length(1);
162
- });
163
- (0, mocha_1.it)("chunks message batches too", async () => {
164
- const { rest, requests } = setupBatchRest();
165
- const api = new messages_api_1.MessagesApi(rest);
166
- const items = Array.from({ length: batch_1.MAX_BATCH_ITEMS + 1 }, (_, i) => ({
167
- agent_id: `a${i}`,
168
- channel_name: "c1",
169
- message_id: `m${i}`,
170
- data: {},
171
- }));
172
- const response = await api.batchPatchMessages(items);
173
- (0, chai_1.expect)(requests).to.have.length(2);
174
- (0, chai_1.expect)(response.count).to.equal(batch_1.MAX_BATCH_ITEMS + 1);
175
- });
176
- (0, mocha_1.it)("issues no request for an empty message batch", async () => {
177
- const { rest, requests } = setupBatchRest();
178
- const api = new messages_api_1.MessagesApi(rest);
179
- const response = await api.batchDeleteMessages([]);
180
- (0, chai_1.expect)(requests).to.have.length(0);
181
- (0, chai_1.expect)(response.count).to.equal(0);
182
- });
183
- });
@@ -1,27 +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 capabilities_1 = require("../client/capabilities");
6
- (0, mocha_1.describe)("Capability", () => {
7
- (0, mocha_1.it)("ALL_CAPABILITIES has no duplicates and includes the core set", () => {
8
- (0, chai_1.expect)(new Set(capabilities_1.ALL_CAPABILITIES).size).to.equal(capabilities_1.ALL_CAPABILITIES.length);
9
- for (const cap of [
10
- "agents.list",
11
- "channels.list",
12
- "channels.get",
13
- "channels.create",
14
- "channels.archive",
15
- "aggregates.get",
16
- "aggregates.put",
17
- "aggregates.patch",
18
- "messages.list",
19
- "messages.listHistorical",
20
- "messages.post",
21
- "gateway.subscribe",
22
- "gateway.realtime",
23
- ]) {
24
- (0, chai_1.expect)(capabilities_1.ALL_CAPABILITIES).to.include(cap);
25
- }
26
- });
27
- });
@@ -1,160 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const chai_1 = require("chai");
37
- const mocha_1 = require("mocha");
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
40
- const os = __importStar(require("os"));
41
- const config_manager_1 = require("../node/config-manager");
42
- const auth_profile_1 = require("../auth/auth-profile");
43
- function tmpConfigPath() {
44
- return path.join(os.tmpdir(), `doover-test-${Date.now()}-${Math.random().toString(36).slice(2)}`, "config");
45
- }
46
- function cleanup(configPath) {
47
- try {
48
- fs.unlinkSync(configPath);
49
- }
50
- catch { /* ignore */ }
51
- try {
52
- fs.rmdirSync(path.dirname(configPath));
53
- }
54
- catch { /* ignore */ }
55
- }
56
- (0, mocha_1.describe)("ConfigManager", () => {
57
- const paths = [];
58
- (0, mocha_1.afterEach)(() => {
59
- for (const p of paths) {
60
- cleanup(p);
61
- }
62
- paths.length = 0;
63
- });
64
- (0, mocha_1.it)("starts empty when config file does not exist", () => {
65
- const p = tmpConfigPath();
66
- paths.push(p);
67
- const mgr = new config_manager_1.ConfigManager(p);
68
- (0, chai_1.expect)(mgr.currentProfile).to.equal(null);
69
- (0, chai_1.expect)(mgr.current).to.equal(null);
70
- (0, chai_1.expect)(mgr.get("any")).to.be.undefined;
71
- });
72
- (0, mocha_1.it)("parses a reduced-format Doover2 config file", () => {
73
- const p = tmpConfigPath();
74
- paths.push(p);
75
- fs.mkdirSync(path.dirname(p), { recursive: true });
76
- fs.writeFileSync(p, [
77
- "[profile=prod]",
78
- "TOKEN=abc123",
79
- "AGENT_ID=agent-1",
80
- "REFRESH_TOKEN=rt-xyz",
81
- "AUTH_SERVER_URL=https://auth.example.com",
82
- "AUTH_SERVER_CLIENT_ID=client-1",
83
- "",
84
- "[profile=staging]",
85
- "TOKEN=stg-tok",
86
- ].join("\n"), "utf-8");
87
- const mgr = new config_manager_1.ConfigManager(p);
88
- (0, chai_1.expect)(mgr.currentProfile).to.equal("prod");
89
- const prod = mgr.get("prod");
90
- (0, chai_1.expect)(prod).to.not.be.undefined;
91
- (0, chai_1.expect)(prod.token).to.equal("abc123");
92
- (0, chai_1.expect)(prod.agentId).to.equal("agent-1");
93
- (0, chai_1.expect)(prod.refreshToken).to.equal("rt-xyz");
94
- const staging = mgr.get("staging");
95
- (0, chai_1.expect)(staging).to.not.be.undefined;
96
- (0, chai_1.expect)(staging.token).to.equal("stg-tok");
97
- });
98
- (0, mocha_1.it)("preserves legacy Doover1 blocks verbatim", () => {
99
- const p = tmpConfigPath();
100
- paths.push(p);
101
- fs.mkdirSync(path.dirname(p), { recursive: true });
102
- const legacyBlock = "[legacy-section]\nSOME_KEY=some_value\nOTHER=123";
103
- fs.writeFileSync(p, `${legacyBlock}\n\n[profile=prod]\nTOKEN=t1\n`, "utf-8");
104
- const mgr = new config_manager_1.ConfigManager(p);
105
- mgr.write();
106
- const written = fs.readFileSync(p, "utf-8");
107
- // The legacy block should appear verbatim before the managed profile
108
- (0, chai_1.expect)(written).to.include("[legacy-section]\nSOME_KEY=some_value\nOTHER=123");
109
- (0, chai_1.expect)(written).to.include("[profile=prod]\nTOKEN=t1");
110
- });
111
- (0, mocha_1.it)("rewrites legacy Doover2 blocks back in reduced format", () => {
112
- const p = tmpConfigPath();
113
- paths.push(p);
114
- fs.mkdirSync(path.dirname(p), { recursive: true });
115
- fs.writeFileSync(p, "[profile=test]\nTOKEN=old\nAGENT_ID=a1\n", "utf-8");
116
- const mgr = new config_manager_1.ConfigManager(p);
117
- // Modify the profile
118
- const profile = mgr.get("test");
119
- profile.token = "new-token";
120
- mgr.create(profile);
121
- mgr.write();
122
- const written = fs.readFileSync(p, "utf-8");
123
- (0, chai_1.expect)(written).to.include("TOKEN=new-token");
124
- (0, chai_1.expect)(written).to.include("AGENT_ID=a1");
125
- });
126
- (0, mocha_1.it)("write() creates the .doover directory if missing", () => {
127
- const p = tmpConfigPath();
128
- paths.push(p);
129
- const mgr = new config_manager_1.ConfigManager(p);
130
- const profile = new auth_profile_1.AuthProfile({ profile: "test", token: "t" });
131
- mgr.create(profile);
132
- mgr.write();
133
- (0, chai_1.expect)(fs.existsSync(p)).to.equal(true);
134
- const content = fs.readFileSync(p, "utf-8");
135
- (0, chai_1.expect)(content).to.include("[profile=test]");
136
- (0, chai_1.expect)(content).to.include("TOKEN=t");
137
- });
138
- (0, mocha_1.it)("delete removes a managed profile", () => {
139
- const p = tmpConfigPath();
140
- paths.push(p);
141
- fs.mkdirSync(path.dirname(p), { recursive: true });
142
- fs.writeFileSync(p, "[profile=a]\nTOKEN=1\n\n[profile=b]\nTOKEN=2\n", "utf-8");
143
- const mgr = new config_manager_1.ConfigManager(p);
144
- (0, chai_1.expect)(mgr.get("a")).to.not.be.undefined;
145
- mgr.delete("a");
146
- (0, chai_1.expect)(mgr.get("a")).to.be.undefined;
147
- mgr.write();
148
- const written = fs.readFileSync(p, "utf-8");
149
- (0, chai_1.expect)(written).not.to.include("[profile=a]");
150
- (0, chai_1.expect)(written).to.include("[profile=b]");
151
- });
152
- });
153
- (0, mocha_1.describe)("doover-js/node exports", () => {
154
- (0, mocha_1.it)("exports ConfigManager from the node subpath", () => {
155
- // Verify the node subpath module re-exports ConfigManager
156
- // eslint-disable-next-line @typescript-eslint/no-var-requires
157
- const nodeExports = require("../node/index");
158
- (0, chai_1.expect)(nodeExports.ConfigManager).to.equal(config_manager_1.ConfigManager);
159
- });
160
- });
@@ -1,24 +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 errors_1 = require("../client/errors");
6
- const errors_2 = require("../http/errors");
7
- (0, mocha_1.describe)("DataClient errors", () => {
8
- (0, mocha_1.it)("UnsupportedCapabilityError carries the capability and clientId", () => {
9
- const err = new errors_1.UnsupportedCapabilityError("messages.listHistorical", "local:1");
10
- (0, chai_1.expect)(err).to.be.instanceOf(errors_2.DooverApiError);
11
- (0, chai_1.expect)(err.capability).to.equal("messages.listHistorical");
12
- (0, chai_1.expect)(err.clientId).to.equal("local:1");
13
- (0, chai_1.expect)(err.message).to.include("messages.listHistorical");
14
- (0, chai_1.expect)(err.name).to.equal("UnsupportedCapabilityError");
15
- });
16
- (0, mocha_1.it)("AmbiguousWriteError lists candidate source ids", () => {
17
- const err = new errors_1.AmbiguousWriteError("messages.post", ["cloud", "local:1"]);
18
- (0, chai_1.expect)(err).to.be.instanceOf(errors_2.DooverApiError);
19
- (0, chai_1.expect)(err.capability).to.equal("messages.post");
20
- (0, chai_1.expect)(err.candidateSourceIds).to.deep.equal(["cloud", "local:1"]);
21
- (0, chai_1.expect)(err.message).to.include("cloud");
22
- (0, chai_1.expect)(err.message).to.include("local:1");
23
- });
24
- });
@@ -1,28 +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 doover_client_1 = require("../client/doover-client");
6
- const helpers_1 = require("./helpers");
7
- (0, mocha_1.describe)("DataClient shape", () => {
8
- (0, mocha_1.it)("DooverClient is assignable to DataClient (compile-time) and has the contract methods", () => {
9
- const client = new doover_client_1.DooverClient({
10
- dataRestUrl: "https://api.example.com",
11
- controlApiUrl: "https://control.example.com",
12
- dataWssUrl: "wss://ws.example.com",
13
- fetchImpl: (0, helpers_1.createFetchMock)(),
14
- webSocketImpl: helpers_1.MockWebSocket,
15
- disableBrowserLifecycleHooks: true,
16
- });
17
- (0, chai_1.expect)(client.agents).to.exist;
18
- (0, chai_1.expect)(client.gateway).to.exist;
19
- (0, chai_1.expect)(client.rpc).to.exist;
20
- (0, chai_1.expect)(typeof client.getCapabilities).to.equal("function");
21
- (0, chai_1.expect)(typeof client.supports).to.equal("function");
22
- (0, chai_1.expect)(typeof client.isConnected).to.equal("function");
23
- (0, chai_1.expect)(typeof client.getStatus).to.equal("function");
24
- (0, chai_1.expect)(typeof client.onStatusChange).to.equal("function");
25
- (0, chai_1.expect)(typeof client.getAgentScope).to.equal("function");
26
- (0, chai_1.expect)(typeof client.getKnownAgentScope).to.equal("function");
27
- });
28
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,58 +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 doover_client_1 = require("../client/doover-client");
6
- const capabilities_1 = require("../client/capabilities");
7
- const helpers_1 = require("./helpers");
8
- function makeClient(extra = {}) {
9
- return new doover_client_1.DooverClient({
10
- dataRestUrl: "https://api.example.com",
11
- controlApiUrl: "https://control.example.com",
12
- dataWssUrl: "wss://ws.example.com",
13
- fetchImpl: (0, helpers_1.createFetchMock)(),
14
- webSocketImpl: helpers_1.MockWebSocket,
15
- disableBrowserLifecycleHooks: true,
16
- ...extra,
17
- });
18
- }
19
- (0, mocha_1.describe)("DooverClient as DataClient", () => {
20
- (0, mocha_1.it)("advertises the full capability set", () => {
21
- const caps = makeClient().getCapabilities();
22
- for (const c of capabilities_1.ALL_CAPABILITIES)
23
- (0, chai_1.expect)(caps.has(c)).to.equal(true);
24
- (0, chai_1.expect)(makeClient().supports("messages.listHistorical")).to.equal(true);
25
- });
26
- (0, mocha_1.it)("getAgentScope resolves to { mode: 'all' } with no network call", async () => {
27
- const fetchMock = (0, helpers_1.createFetchMock)();
28
- const client = makeClient({ fetchImpl: fetchMock });
29
- (0, chai_1.expect)(await client.getAgentScope()).to.deep.equal({ mode: "all" });
30
- (0, chai_1.expect)(client.getKnownAgentScope()).to.deep.equal({ mode: "all" });
31
- (0, chai_1.expect)(fetchMock.called).to.equal(false);
32
- });
33
- (0, mocha_1.it)("isConnected mirrors the gateway; getStatus reflects it; clientId defaults to 'cloud'", () => {
34
- const client = makeClient();
35
- (0, chai_1.expect)(client.isConnected()).to.equal(false);
36
- const status = client.getStatus();
37
- (0, chai_1.expect)(status.clientId).to.equal("cloud");
38
- (0, chai_1.expect)(status.connected).to.equal(false);
39
- (0, chai_1.expect)(status.agentScope).to.deep.equal({ mode: "all" });
40
- });
41
- (0, mocha_1.it)("honours a custom sourceId", () => {
42
- (0, chai_1.expect)(makeClient({ sourceId: "cloud-eu" }).getStatus().clientId).to.equal("cloud-eu");
43
- });
44
- (0, mocha_1.it)("onStatusChange fires on gateway lifecycle and unsubscribes", async () => {
45
- const client = makeClient();
46
- const seen = [];
47
- const off = client.onStatusChange(() => seen.push(1));
48
- // Connect gateway and drive a lifecycle event
49
- await client.gateway.connect();
50
- const ws = helpers_1.MockWebSocket.instances[helpers_1.MockWebSocket.instances.length - 1];
51
- ws?.open?.();
52
- (0, chai_1.expect)(seen.length).to.be.greaterThan(0);
53
- off();
54
- const len = seen.length;
55
- ws?.close?.();
56
- (0, chai_1.expect)(seen.length).to.equal(len);
57
- });
58
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,32 +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 doover_client_1 = require("../client/doover-client");
6
- const helpers_1 = require("./helpers");
7
- (0, mocha_1.describe)("DooverClient REST provenance", () => {
8
- (0, mocha_1.it)("stamps __source on REST results", async () => {
9
- const fetchMock = (0, helpers_1.createFetchMock)((url) => {
10
- if (url.includes("/channels/c1"))
11
- return (0, helpers_1.createJsonResponse)({ name: "c1", is_private: false, owner_id: "o" });
12
- return (0, helpers_1.createJsonResponse)({});
13
- });
14
- const client = new doover_client_1.DooverClient({
15
- dataRestUrl: "https://api.example.com",
16
- controlApiUrl: "https://control.example.com",
17
- dataWssUrl: "wss://ws.example.com",
18
- fetchImpl: fetchMock,
19
- webSocketImpl: helpers_1.MockWebSocket,
20
- disableBrowserLifecycleHooks: true,
21
- sourceId: "cloud",
22
- });
23
- const channel = await client.channels.getChannel("a1", "c1");
24
- (0, chai_1.expect)(channel.name).to.equal("c1");
25
- (0, chai_1.expect)(channel.__source?.client).to.deep.include({ id: "cloud", kind: "cloud" });
26
- (0, chai_1.expect)(channel.__source?.via).to.include({ transport: "rest", method: "channels.getChannel" });
27
- if (channel.__source?.via.transport === "rest") {
28
- (0, chai_1.expect)(channel.__source.via.durationMs).to.be.a("number");
29
- (0, chai_1.expect)(channel.__source.via.request).to.have.property("args");
30
- }
31
- });
32
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +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 doover_client_1 = require("../client/doover-client");
6
- const helpers_1 = require("./helpers");
7
- (0, mocha_1.describe)("DooverClient", () => {
8
- (0, mocha_1.it)("wires all public subclients", () => {
9
- const client = new doover_client_1.DooverClient({
10
- dataRestUrl: "https://api.example.com",
11
- controlApiUrl: "https://control.example.com",
12
- dataWssUrl: "wss://ws.example.com",
13
- fetchImpl: (0, helpers_1.createFetchMock)(),
14
- webSocketImpl: helpers_1.MockWebSocket,
15
- });
16
- (0, chai_1.expect)(client.viewer).to.exist;
17
- (0, chai_1.expect)(client.channels).to.exist;
18
- (0, chai_1.expect)(client.messages).to.exist;
19
- (0, chai_1.expect)(client.aggregates).to.exist;
20
- (0, chai_1.expect)(client.alarms).to.exist;
21
- (0, chai_1.expect)(client.connections).to.exist;
22
- (0, chai_1.expect)(client.notifications).to.exist;
23
- (0, chai_1.expect)(client.permissions).to.exist;
24
- (0, chai_1.expect)(client.processors).to.exist;
25
- (0, chai_1.expect)(client.turn).to.exist;
26
- (0, chai_1.expect)(client.agents).to.exist;
27
- (0, chai_1.expect)(client.gateway).to.exist;
28
- });
29
- (0, mocha_1.it)("shares a single GatewayClient between client.gateway and client.viewer.gateway", () => {
30
- const client = new doover_client_1.DooverClient({
31
- dataRestUrl: "https://api.example.com",
32
- controlApiUrl: "https://control.example.com",
33
- dataWssUrl: "wss://ws.example.com",
34
- fetchImpl: (0, helpers_1.createFetchMock)(),
35
- webSocketImpl: helpers_1.MockWebSocket,
36
- disableBrowserLifecycleHooks: true,
37
- });
38
- // Regression: these used to be separate GatewayClient instances,
39
- // each opening its own WebSocket on connect().
40
- (0, chai_1.expect)(client.gateway).to.equal(client.viewer.gateway);
41
- });
42
- });
@@ -1 +0,0 @@
1
- export {};