@cratis/chronicle.contracts 0.0.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 (333) hide show
  1. package/ChronicleConnection.ts +419 -0
  2. package/ChronicleConnectionString.ts +462 -0
  3. package/ChronicleServices.ts +104 -0
  4. package/DateTimeOffset.ts +27 -0
  5. package/README.md +221 -0
  6. package/TokenProvider.ts +167 -0
  7. package/dist/ChronicleConnection.d.ts +63 -0
  8. package/dist/ChronicleConnection.d.ts.map +1 -0
  9. package/dist/ChronicleConnection.js +223 -0
  10. package/dist/ChronicleConnection.js.map +1 -0
  11. package/dist/ChronicleConnectionString.d.ts +67 -0
  12. package/dist/ChronicleConnectionString.d.ts.map +1 -0
  13. package/dist/ChronicleConnectionString.js +255 -0
  14. package/dist/ChronicleConnectionString.js.map +1 -0
  15. package/dist/ChronicleServices.d.ts +35 -0
  16. package/dist/ChronicleServices.d.ts.map +1 -0
  17. package/dist/ChronicleServices.js +2 -0
  18. package/dist/ChronicleServices.js.map +1 -0
  19. package/dist/DateTimeOffset.d.ts +4 -0
  20. package/dist/DateTimeOffset.d.ts.map +1 -0
  21. package/dist/DateTimeOffset.js +11 -0
  22. package/dist/DateTimeOffset.js.map +1 -0
  23. package/dist/TokenProvider.d.ts +21 -0
  24. package/dist/TokenProvider.d.ts.map +1 -0
  25. package/dist/TokenProvider.js +92 -0
  26. package/dist/TokenProvider.js.map +1 -0
  27. package/dist/cjs/ChronicleConnection.d.ts +63 -0
  28. package/dist/cjs/ChronicleConnection.d.ts.map +1 -0
  29. package/dist/cjs/ChronicleConnection.js +245 -0
  30. package/dist/cjs/ChronicleConnection.js.map +1 -0
  31. package/dist/cjs/ChronicleConnectionString.d.ts +67 -0
  32. package/dist/cjs/ChronicleConnectionString.d.ts.map +1 -0
  33. package/dist/cjs/ChronicleConnectionString.js +280 -0
  34. package/dist/cjs/ChronicleConnectionString.js.map +1 -0
  35. package/dist/cjs/ChronicleServices.d.ts +35 -0
  36. package/dist/cjs/ChronicleServices.d.ts.map +1 -0
  37. package/dist/cjs/DateTimeOffset.d.ts +4 -0
  38. package/dist/cjs/DateTimeOffset.d.ts.map +1 -0
  39. package/dist/cjs/DateTimeOffset.js +16 -0
  40. package/dist/cjs/DateTimeOffset.js.map +1 -0
  41. package/dist/cjs/TokenProvider.d.ts +21 -0
  42. package/dist/cjs/TokenProvider.d.ts.map +1 -0
  43. package/dist/cjs/TokenProvider.js +118 -0
  44. package/dist/cjs/TokenProvider.js.map +1 -0
  45. package/dist/cjs/generated/clients.d.ts +82 -0
  46. package/dist/cjs/generated/clients.d.ts.map +1 -0
  47. package/dist/cjs/generated/clients.js +235 -0
  48. package/dist/cjs/generated/clients.js.map +1 -0
  49. package/dist/cjs/generated/cratis_chronicle_contracts.d.ts +135 -0
  50. package/dist/cjs/generated/cratis_chronicle_contracts.d.ts.map +1 -0
  51. package/dist/cjs/generated/cratis_chronicle_contracts.js +300 -0
  52. package/dist/cjs/generated/cratis_chronicle_contracts.js.map +1 -0
  53. package/dist/cjs/generated/events.d.ts +166 -0
  54. package/dist/cjs/generated/events.d.ts.map +1 -0
  55. package/dist/cjs/generated/events.js +899 -0
  56. package/dist/cjs/generated/events.js.map +1 -0
  57. package/dist/cjs/generated/events_constraints.d.ts +83 -0
  58. package/dist/cjs/generated/events_constraints.d.ts.map +1 -0
  59. package/dist/cjs/generated/events_constraints.js +512 -0
  60. package/dist/cjs/generated/events_constraints.js.map +1 -0
  61. package/dist/cjs/generated/eventsequences.d.ts +400 -0
  62. package/dist/cjs/generated/eventsequences.d.ts.map +1 -0
  63. package/dist/cjs/generated/eventsequences.js +3866 -0
  64. package/dist/cjs/generated/eventsequences.js.map +1 -0
  65. package/dist/cjs/generated/google/protobuf/empty.d.ts +19 -0
  66. package/dist/cjs/generated/google/protobuf/empty.d.ts.map +1 -0
  67. package/dist/cjs/generated/google/protobuf/empty.js +42 -0
  68. package/dist/cjs/generated/google/protobuf/empty.js.map +1 -0
  69. package/dist/cjs/generated/host.d.ts +61 -0
  70. package/dist/cjs/generated/host.d.ts.map +1 -0
  71. package/dist/cjs/generated/host.js +103 -0
  72. package/dist/cjs/generated/host.js.map +1 -0
  73. package/dist/cjs/generated/identities.d.ts +70 -0
  74. package/dist/cjs/generated/identities.d.ts.map +1 -0
  75. package/dist/cjs/generated/identities.js +255 -0
  76. package/dist/cjs/generated/identities.js.map +1 -0
  77. package/dist/cjs/generated/jobs.d.ts +258 -0
  78. package/dist/cjs/generated/jobs.d.ts.map +1 -0
  79. package/dist/cjs/generated/jobs.js +1709 -0
  80. package/dist/cjs/generated/jobs.js.map +1 -0
  81. package/dist/cjs/generated/observation.d.ts +278 -0
  82. package/dist/cjs/generated/observation.d.ts.map +1 -0
  83. package/dist/cjs/generated/observation.js +1573 -0
  84. package/dist/cjs/generated/observation.js.map +1 -0
  85. package/dist/cjs/generated/observation_eventstoresubscriptions.d.ts +99 -0
  86. package/dist/cjs/generated/observation_eventstoresubscriptions.d.ts.map +1 -0
  87. package/dist/cjs/generated/observation_reactors.d.ts +198 -0
  88. package/dist/cjs/generated/observation_reactors.d.ts.map +1 -0
  89. package/dist/cjs/generated/observation_reactors.js +1918 -0
  90. package/dist/cjs/generated/observation_reactors.js.map +1 -0
  91. package/dist/cjs/generated/observation_reducers.d.ts +183 -0
  92. package/dist/cjs/generated/observation_reducers.d.ts.map +1 -0
  93. package/dist/cjs/generated/observation_reducers.js +1906 -0
  94. package/dist/cjs/generated/observation_reducers.js.map +1 -0
  95. package/dist/cjs/generated/observation_webhooks.d.ts +203 -0
  96. package/dist/cjs/generated/observation_webhooks.d.ts.map +1 -0
  97. package/dist/cjs/generated/observation_webhooks.js +1344 -0
  98. package/dist/cjs/generated/observation_webhooks.js.map +1 -0
  99. package/dist/cjs/generated/projections.d.ts +421 -0
  100. package/dist/cjs/generated/projections.d.ts.map +1 -0
  101. package/dist/cjs/generated/projections.js +3985 -0
  102. package/dist/cjs/generated/projections.js.map +1 -0
  103. package/dist/cjs/generated/protobuf-net/bcl.d.ts +55 -0
  104. package/dist/cjs/generated/protobuf-net/bcl.d.ts.map +1 -0
  105. package/dist/cjs/generated/protobuf-net/bcl.js +457 -0
  106. package/dist/cjs/generated/protobuf-net/bcl.js.map +1 -0
  107. package/dist/cjs/generated/readmodels.d.ts +436 -0
  108. package/dist/cjs/generated/readmodels.d.ts.map +1 -0
  109. package/dist/cjs/generated/readmodels.js +3608 -0
  110. package/dist/cjs/generated/readmodels.js.map +1 -0
  111. package/dist/cjs/generated/recommendations.d.ts +109 -0
  112. package/dist/cjs/generated/recommendations.d.ts.map +1 -0
  113. package/dist/cjs/generated/recommendations.js +430 -0
  114. package/dist/cjs/generated/recommendations.js.map +1 -0
  115. package/dist/cjs/generated/security.d.ts +288 -0
  116. package/dist/cjs/generated/security.d.ts.map +1 -0
  117. package/dist/cjs/generated/security.js +1247 -0
  118. package/dist/cjs/generated/security.js.map +1 -0
  119. package/dist/cjs/generated/seeding.d.ts +109 -0
  120. package/dist/cjs/generated/seeding.d.ts.map +1 -0
  121. package/dist/cjs/generated/seeding.js +619 -0
  122. package/dist/cjs/generated/seeding.js.map +1 -0
  123. package/dist/cjs/index.d.ts +33 -0
  124. package/dist/cjs/index.d.ts.map +1 -0
  125. package/dist/cjs/index.js +372 -0
  126. package/dist/cjs/index.js.map +1 -0
  127. package/dist/esm/ChronicleConnection.d.ts +63 -0
  128. package/dist/esm/ChronicleConnection.d.ts.map +1 -0
  129. package/dist/esm/ChronicleConnection.js +224 -0
  130. package/dist/esm/ChronicleConnection.js.map +1 -0
  131. package/dist/esm/ChronicleConnectionString.d.ts +67 -0
  132. package/dist/esm/ChronicleConnectionString.d.ts.map +1 -0
  133. package/dist/esm/ChronicleConnectionString.js +258 -0
  134. package/dist/esm/ChronicleConnectionString.js.map +1 -0
  135. package/dist/esm/ChronicleServices.d.ts +35 -0
  136. package/dist/esm/ChronicleServices.d.ts.map +1 -0
  137. package/dist/esm/DateTimeOffset.d.ts +4 -0
  138. package/dist/esm/DateTimeOffset.d.ts.map +1 -0
  139. package/dist/esm/DateTimeOffset.js +13 -0
  140. package/dist/esm/DateTimeOffset.js.map +1 -0
  141. package/dist/esm/TokenProvider.d.ts +21 -0
  142. package/dist/esm/TokenProvider.d.ts.map +1 -0
  143. package/dist/esm/TokenProvider.js +95 -0
  144. package/dist/esm/TokenProvider.js.map +1 -0
  145. package/dist/esm/generated/clients.d.ts +82 -0
  146. package/dist/esm/generated/clients.d.ts.map +1 -0
  147. package/dist/esm/generated/clients.js +228 -0
  148. package/dist/esm/generated/clients.js.map +1 -0
  149. package/dist/esm/generated/cratis_chronicle_contracts.d.ts +135 -0
  150. package/dist/esm/generated/cratis_chronicle_contracts.d.ts.map +1 -0
  151. package/dist/esm/generated/cratis_chronicle_contracts.js +291 -0
  152. package/dist/esm/generated/cratis_chronicle_contracts.js.map +1 -0
  153. package/dist/esm/generated/events.d.ts +166 -0
  154. package/dist/esm/generated/events.d.ts.map +1 -0
  155. package/dist/esm/generated/events.js +885 -0
  156. package/dist/esm/generated/events.js.map +1 -0
  157. package/dist/esm/generated/events_constraints.d.ts +83 -0
  158. package/dist/esm/generated/events_constraints.d.ts.map +1 -0
  159. package/dist/esm/generated/events_constraints.js +501 -0
  160. package/dist/esm/generated/events_constraints.js.map +1 -0
  161. package/dist/esm/generated/eventsequences.d.ts +400 -0
  162. package/dist/esm/generated/eventsequences.d.ts.map +1 -0
  163. package/dist/esm/generated/eventsequences.js +3829 -0
  164. package/dist/esm/generated/eventsequences.js.map +1 -0
  165. package/dist/esm/generated/google/protobuf/empty.d.ts +19 -0
  166. package/dist/esm/generated/google/protobuf/empty.d.ts.map +1 -0
  167. package/dist/esm/generated/google/protobuf/empty.js +40 -0
  168. package/dist/esm/generated/google/protobuf/empty.js.map +1 -0
  169. package/dist/esm/generated/host.d.ts +61 -0
  170. package/dist/esm/generated/host.d.ts.map +1 -0
  171. package/dist/esm/generated/host.js +99 -0
  172. package/dist/esm/generated/host.js.map +1 -0
  173. package/dist/esm/generated/identities.d.ts +70 -0
  174. package/dist/esm/generated/identities.d.ts.map +1 -0
  175. package/dist/esm/generated/identities.js +249 -0
  176. package/dist/esm/generated/identities.js.map +1 -0
  177. package/dist/esm/generated/jobs.d.ts +258 -0
  178. package/dist/esm/generated/jobs.d.ts.map +1 -0
  179. package/dist/esm/generated/jobs.js +1684 -0
  180. package/dist/esm/generated/jobs.js.map +1 -0
  181. package/dist/esm/generated/observation.d.ts +278 -0
  182. package/dist/esm/generated/observation.d.ts.map +1 -0
  183. package/dist/esm/generated/observation.js +1548 -0
  184. package/dist/esm/generated/observation.js.map +1 -0
  185. package/dist/esm/generated/observation_eventstoresubscriptions.d.ts +99 -0
  186. package/dist/esm/generated/observation_eventstoresubscriptions.d.ts.map +1 -0
  187. package/dist/esm/generated/observation_reactors.d.ts +198 -0
  188. package/dist/esm/generated/observation_reactors.d.ts.map +1 -0
  189. package/dist/esm/generated/observation_reactors.js +1893 -0
  190. package/dist/esm/generated/observation_reactors.js.map +1 -0
  191. package/dist/esm/generated/observation_reducers.d.ts +183 -0
  192. package/dist/esm/generated/observation_reducers.d.ts.map +1 -0
  193. package/dist/esm/generated/observation_reducers.js +1882 -0
  194. package/dist/esm/generated/observation_reducers.js.map +1 -0
  195. package/dist/esm/generated/observation_webhooks.d.ts +203 -0
  196. package/dist/esm/generated/observation_webhooks.d.ts.map +1 -0
  197. package/dist/esm/generated/observation_webhooks.js +1323 -0
  198. package/dist/esm/generated/observation_webhooks.js.map +1 -0
  199. package/dist/esm/generated/projections.d.ts +421 -0
  200. package/dist/esm/generated/projections.d.ts.map +1 -0
  201. package/dist/esm/generated/projections.js +3930 -0
  202. package/dist/esm/generated/projections.js.map +1 -0
  203. package/dist/esm/generated/protobuf-net/bcl.d.ts +55 -0
  204. package/dist/esm/generated/protobuf-net/bcl.d.ts.map +1 -0
  205. package/dist/esm/generated/protobuf-net/bcl.js +449 -0
  206. package/dist/esm/generated/protobuf-net/bcl.js.map +1 -0
  207. package/dist/esm/generated/readmodels.d.ts +436 -0
  208. package/dist/esm/generated/readmodels.d.ts.map +1 -0
  209. package/dist/esm/generated/readmodels.js +3564 -0
  210. package/dist/esm/generated/readmodels.js.map +1 -0
  211. package/dist/esm/generated/recommendations.d.ts +109 -0
  212. package/dist/esm/generated/recommendations.d.ts.map +1 -0
  213. package/dist/esm/generated/recommendations.js +422 -0
  214. package/dist/esm/generated/recommendations.js.map +1 -0
  215. package/dist/esm/generated/security.d.ts +288 -0
  216. package/dist/esm/generated/security.d.ts.map +1 -0
  217. package/dist/esm/generated/security.js +1228 -0
  218. package/dist/esm/generated/security.js.map +1 -0
  219. package/dist/esm/generated/seeding.d.ts +109 -0
  220. package/dist/esm/generated/seeding.d.ts.map +1 -0
  221. package/dist/esm/generated/seeding.js +609 -0
  222. package/dist/esm/generated/seeding.js.map +1 -0
  223. package/dist/esm/index.d.ts +33 -0
  224. package/dist/esm/index.d.ts.map +1 -0
  225. package/dist/esm/index.js +23 -0
  226. package/dist/esm/index.js.map +1 -0
  227. package/dist/generated/clients.d.ts +82 -0
  228. package/dist/generated/clients.d.ts.map +1 -0
  229. package/dist/generated/clients.js +225 -0
  230. package/dist/generated/clients.js.map +1 -0
  231. package/dist/generated/cratis_chronicle_contracts.d.ts +135 -0
  232. package/dist/generated/cratis_chronicle_contracts.d.ts.map +1 -0
  233. package/dist/generated/cratis_chronicle_contracts.js +289 -0
  234. package/dist/generated/cratis_chronicle_contracts.js.map +1 -0
  235. package/dist/generated/events.d.ts +166 -0
  236. package/dist/generated/events.d.ts.map +1 -0
  237. package/dist/generated/events.js +883 -0
  238. package/dist/generated/events.js.map +1 -0
  239. package/dist/generated/events_constraints.d.ts +83 -0
  240. package/dist/generated/events_constraints.d.ts.map +1 -0
  241. package/dist/generated/events_constraints.js +499 -0
  242. package/dist/generated/events_constraints.js.map +1 -0
  243. package/dist/generated/eventsequences.d.ts +400 -0
  244. package/dist/generated/eventsequences.d.ts.map +1 -0
  245. package/dist/generated/eventsequences.js +3829 -0
  246. package/dist/generated/eventsequences.js.map +1 -0
  247. package/dist/generated/google/protobuf/empty.d.ts +19 -0
  248. package/dist/generated/google/protobuf/empty.d.ts.map +1 -0
  249. package/dist/generated/google/protobuf/empty.js +40 -0
  250. package/dist/generated/google/protobuf/empty.js.map +1 -0
  251. package/dist/generated/host.d.ts +61 -0
  252. package/dist/generated/host.d.ts.map +1 -0
  253. package/dist/generated/host.js +97 -0
  254. package/dist/generated/host.js.map +1 -0
  255. package/dist/generated/identities.d.ts +70 -0
  256. package/dist/generated/identities.d.ts.map +1 -0
  257. package/dist/generated/identities.js +247 -0
  258. package/dist/generated/identities.js.map +1 -0
  259. package/dist/generated/jobs.d.ts +258 -0
  260. package/dist/generated/jobs.d.ts.map +1 -0
  261. package/dist/generated/jobs.js +1682 -0
  262. package/dist/generated/jobs.js.map +1 -0
  263. package/dist/generated/observation.d.ts +278 -0
  264. package/dist/generated/observation.d.ts.map +1 -0
  265. package/dist/generated/observation.js +1546 -0
  266. package/dist/generated/observation.js.map +1 -0
  267. package/dist/generated/observation_eventstoresubscriptions.d.ts +99 -0
  268. package/dist/generated/observation_eventstoresubscriptions.d.ts.map +1 -0
  269. package/dist/generated/observation_eventstoresubscriptions.js +452 -0
  270. package/dist/generated/observation_eventstoresubscriptions.js.map +1 -0
  271. package/dist/generated/observation_reactors.d.ts +198 -0
  272. package/dist/generated/observation_reactors.d.ts.map +1 -0
  273. package/dist/generated/observation_reactors.js +1891 -0
  274. package/dist/generated/observation_reactors.js.map +1 -0
  275. package/dist/generated/observation_reducers.d.ts +183 -0
  276. package/dist/generated/observation_reducers.d.ts.map +1 -0
  277. package/dist/generated/observation_reducers.js +1880 -0
  278. package/dist/generated/observation_reducers.js.map +1 -0
  279. package/dist/generated/observation_webhooks.d.ts +203 -0
  280. package/dist/generated/observation_webhooks.d.ts.map +1 -0
  281. package/dist/generated/observation_webhooks.js +1321 -0
  282. package/dist/generated/observation_webhooks.js.map +1 -0
  283. package/dist/generated/projections.d.ts +421 -0
  284. package/dist/generated/projections.d.ts.map +1 -0
  285. package/dist/generated/projections.js +3928 -0
  286. package/dist/generated/projections.js.map +1 -0
  287. package/dist/generated/protobuf-net/bcl.d.ts +55 -0
  288. package/dist/generated/protobuf-net/bcl.d.ts.map +1 -0
  289. package/dist/generated/protobuf-net/bcl.js +447 -0
  290. package/dist/generated/protobuf-net/bcl.js.map +1 -0
  291. package/dist/generated/readmodels.d.ts +436 -0
  292. package/dist/generated/readmodels.d.ts.map +1 -0
  293. package/dist/generated/readmodels.js +3562 -0
  294. package/dist/generated/readmodels.js.map +1 -0
  295. package/dist/generated/recommendations.d.ts +109 -0
  296. package/dist/generated/recommendations.d.ts.map +1 -0
  297. package/dist/generated/recommendations.js +420 -0
  298. package/dist/generated/recommendations.js.map +1 -0
  299. package/dist/generated/security.d.ts +288 -0
  300. package/dist/generated/security.d.ts.map +1 -0
  301. package/dist/generated/security.js +1226 -0
  302. package/dist/generated/security.js.map +1 -0
  303. package/dist/generated/seeding.d.ts +109 -0
  304. package/dist/generated/seeding.d.ts.map +1 -0
  305. package/dist/generated/seeding.js +607 -0
  306. package/dist/generated/seeding.js.map +1 -0
  307. package/dist/index.d.ts +33 -0
  308. package/dist/index.d.ts.map +1 -0
  309. package/dist/index.js +32 -0
  310. package/dist/index.js.map +1 -0
  311. package/dist/tsconfig.tsbuildinfo +1 -0
  312. package/generated/clients.ts +356 -0
  313. package/generated/cratis_chronicle_contracts.ts +480 -0
  314. package/generated/events.ts +1191 -0
  315. package/generated/events_constraints.ts +668 -0
  316. package/generated/eventsequences.ts +4629 -0
  317. package/generated/google/protobuf/empty.ts +82 -0
  318. package/generated/host.ts +191 -0
  319. package/generated/identities.ts +368 -0
  320. package/generated/jobs.ts +2093 -0
  321. package/generated/observation.ts +1999 -0
  322. package/generated/observation_eventstoresubscriptions.ts +646 -0
  323. package/generated/observation_reactors.ts +2278 -0
  324. package/generated/observation_reducers.ts +2248 -0
  325. package/generated/observation_webhooks.ts +1717 -0
  326. package/generated/projections.ts +4817 -0
  327. package/generated/protobuf-net/bcl.ts +562 -0
  328. package/generated/readmodels.ts +4378 -0
  329. package/generated/recommendations.ts +602 -0
  330. package/generated/security.ts +1668 -0
  331. package/generated/seeding.ts +805 -0
  332. package/index.ts +46 -0
  333. package/package.json +49 -0
@@ -0,0 +1,419 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import * as grpc from '@grpc/grpc-js';
5
+ import { EventStoresClient } from './generated/cratis_chronicle_contracts';
6
+ import { NamespacesClient } from './generated/cratis_chronicle_contracts';
7
+ import { RecommendationsClient } from './generated/recommendations';
8
+ import { IdentitiesClient } from './generated/identities';
9
+ import { EventSequencesClient } from './generated/eventsequences';
10
+ import { EventTypesClient } from './generated/events';
11
+ import { ConstraintsClient } from './generated/events_constraints';
12
+ import { ObserversClient } from './generated/observation';
13
+ import { FailedPartitionsClient } from './generated/observation';
14
+ import { ReactorsClient } from './generated/observation_reactors';
15
+ import { ReducersClient } from './generated/observation_reducers';
16
+ import { ProjectionsClient } from './generated/projections';
17
+ import { ReadModelsClient } from './generated/readmodels';
18
+ import { JobsClient } from './generated/jobs';
19
+ import { EventSeedingClient } from './generated/seeding';
20
+ import { ServerClient } from './generated/host';
21
+ import { ConnectionServiceClient } from './generated/clients';
22
+ import type { ChronicleServices } from './ChronicleServices';
23
+ import { ChronicleConnectionString, AuthenticationMode } from './ChronicleConnectionString';
24
+ import { ITokenProvider, OAuthTokenProvider, NoOpTokenProvider } from './TokenProvider';
25
+
26
+ /**
27
+ * Configuration options for Chronicle connection
28
+ */
29
+ export interface ChronicleConnectionOptions {
30
+ /**
31
+ * The connection string (e.g., 'chronicle://localhost:35000' or 'chronicle://user:pass@localhost:35000')
32
+ * Can also be a ChronicleConnectionString instance
33
+ */
34
+ connectionString?: string | ChronicleConnectionString;
35
+
36
+ /**
37
+ * The host and port of the Chronicle server (e.g., 'localhost:35000')
38
+ * This is used if connectionString is not provided
39
+ */
40
+ serverAddress?: string;
41
+
42
+ /**
43
+ * Optional gRPC credentials (defaults to credentials based on connection string)
44
+ */
45
+ credentials?: grpc.ChannelCredentials;
46
+
47
+ /**
48
+ * Optional connection timeout in milliseconds (defaults to 10000)
49
+ */
50
+ connectTimeout?: number;
51
+
52
+ /**
53
+ * Optional maximum receive message size in bytes
54
+ */
55
+ maxReceiveMessageSize?: number;
56
+
57
+ /**
58
+ * Optional maximum send message size in bytes
59
+ */
60
+ maxSendMessageSize?: number;
61
+
62
+ /**
63
+ * Optional correlation ID for tracking requests
64
+ */
65
+ correlationId?: string;
66
+
67
+ /**
68
+ * Optional authentication authority URL. If not set, uses the Chronicle server itself as the authority
69
+ */
70
+ authority?: string;
71
+
72
+ /**
73
+ * Optional management port for authentication endpoint (defaults to 8080)
74
+ */
75
+ managementPort?: number;
76
+ }
77
+
78
+ /**
79
+ * Manages the connection to Chronicle Kernel and provides access to all gRPC services
80
+ */
81
+ export class ChronicleConnection implements ChronicleServices {
82
+ private readonly channel: grpc.Channel;
83
+ private readonly services: ChronicleServices;
84
+ private readonly _connectionString: ChronicleConnectionString;
85
+ private readonly tokenProvider: ITokenProvider;
86
+ private _isConnected = false;
87
+
88
+ /**
89
+ * Event stores service
90
+ */
91
+ get eventStores(): EventStoresClient {
92
+ return this.services.eventStores;
93
+ }
94
+
95
+ /**
96
+ * Namespaces service
97
+ */
98
+ get namespaces(): NamespacesClient {
99
+ return this.services.namespaces;
100
+ }
101
+
102
+ /**
103
+ * Recommendations service
104
+ */
105
+ get recommendations(): RecommendationsClient {
106
+ return this.services.recommendations;
107
+ }
108
+
109
+ /**
110
+ * Identities service
111
+ */
112
+ get identities(): IdentitiesClient {
113
+ return this.services.identities;
114
+ }
115
+
116
+ /**
117
+ * Event sequences service
118
+ */
119
+ get eventSequences(): EventSequencesClient {
120
+ return this.services.eventSequences;
121
+ }
122
+
123
+ /**
124
+ * Event types service
125
+ */
126
+ get eventTypes(): EventTypesClient {
127
+ return this.services.eventTypes;
128
+ }
129
+
130
+ /**
131
+ * Constraints service
132
+ */
133
+ get constraints(): ConstraintsClient {
134
+ return this.services.constraints;
135
+ }
136
+
137
+ /**
138
+ * Observers service
139
+ */
140
+ get observers(): ObserversClient {
141
+ return this.services.observers;
142
+ }
143
+
144
+ /**
145
+ * Failed partitions service
146
+ */
147
+ get failedPartitions(): FailedPartitionsClient {
148
+ return this.services.failedPartitions;
149
+ }
150
+
151
+ /**
152
+ * Reactors service
153
+ */
154
+ get reactors(): ReactorsClient {
155
+ return this.services.reactors;
156
+ }
157
+
158
+ /**
159
+ * Reducers service
160
+ */
161
+ get reducers(): ReducersClient {
162
+ return this.services.reducers;
163
+ }
164
+
165
+ /**
166
+ * Projections service
167
+ */
168
+ get projections(): ProjectionsClient {
169
+ return this.services.projections;
170
+ }
171
+
172
+ /**
173
+ * Read models service
174
+ */
175
+ get readModels(): ReadModelsClient {
176
+ return this.services.readModels;
177
+ }
178
+
179
+ /**
180
+ * Jobs service
181
+ */
182
+ get jobs(): JobsClient {
183
+ return this.services.jobs;
184
+ }
185
+
186
+ /**
187
+ * Event seeding service
188
+ */
189
+ get eventSeeding(): EventSeedingClient {
190
+ return this.services.eventSeeding;
191
+ }
192
+
193
+ /**
194
+ * Server service
195
+ */
196
+ get server(): ServerClient {
197
+ return this.services.server;
198
+ }
199
+
200
+ /**
201
+ * Connection service for managing the connection
202
+ */
203
+ private connectionService: ConnectionServiceClient;
204
+
205
+ /**
206
+ * Gets the connection string used for this connection
207
+ */
208
+ get connectionString(): ChronicleConnectionString {
209
+ return this._connectionString;
210
+ }
211
+
212
+ /**
213
+ * Creates a new Chronicle connection
214
+ * @param options Connection configuration options
215
+ */
216
+ constructor(options: ChronicleConnectionOptions) {
217
+ // Parse connection string or create from serverAddress
218
+ if (options.connectionString) {
219
+ this._connectionString =
220
+ typeof options.connectionString === 'string'
221
+ ? new ChronicleConnectionString(options.connectionString)
222
+ : options.connectionString;
223
+ } else if (options.serverAddress) {
224
+ this._connectionString = new ChronicleConnectionString(
225
+ `chronicle://${options.serverAddress}`
226
+ );
227
+ } else {
228
+ this._connectionString = ChronicleConnectionString.Default;
229
+ }
230
+
231
+ // Create server address string
232
+ const serverAddress = `${this._connectionString.serverAddress.host}:${this._connectionString.serverAddress.port}`;
233
+
234
+ // Create token provider for authentication
235
+ this.tokenProvider = this.createTokenProvider(options);
236
+
237
+ // Create credentials
238
+ let channelCredentials = options.credentials;
239
+ if (!channelCredentials) {
240
+ channelCredentials = this._connectionString.createCredentials();
241
+
242
+ // Add call credentials with token provider
243
+ const callCredentials = this.createAuthCallCredentials();
244
+ if (callCredentials) {
245
+ channelCredentials = grpc.credentials.combineChannelCredentials(
246
+ channelCredentials,
247
+ callCredentials
248
+ );
249
+ }
250
+ }
251
+
252
+ const channelOptions: grpc.ChannelOptions = {};
253
+
254
+ if (options.maxReceiveMessageSize) {
255
+ channelOptions['grpc.max_receive_message_length'] = options.maxReceiveMessageSize;
256
+ }
257
+
258
+ if (options.maxSendMessageSize) {
259
+ channelOptions['grpc.max_send_message_length'] = options.maxSendMessageSize;
260
+ }
261
+
262
+ this.channel = new grpc.Channel(serverAddress, channelCredentials, channelOptions);
263
+
264
+ // Initialize all service clients
265
+ this.connectionService = new ConnectionServiceClient(serverAddress, channelCredentials);
266
+
267
+ this.services = {
268
+ eventStores: new EventStoresClient(serverAddress, channelCredentials),
269
+ namespaces: new NamespacesClient(serverAddress, channelCredentials),
270
+ recommendations: new RecommendationsClient(serverAddress, channelCredentials),
271
+ identities: new IdentitiesClient(serverAddress, channelCredentials),
272
+ eventSequences: new EventSequencesClient(serverAddress, channelCredentials),
273
+ eventTypes: new EventTypesClient(serverAddress, channelCredentials),
274
+ constraints: new ConstraintsClient(serverAddress, channelCredentials),
275
+ observers: new ObserversClient(serverAddress, channelCredentials),
276
+ failedPartitions: new FailedPartitionsClient(serverAddress, channelCredentials),
277
+ reactors: new ReactorsClient(serverAddress, channelCredentials),
278
+ reducers: new ReducersClient(serverAddress, channelCredentials),
279
+ projections: new ProjectionsClient(serverAddress, channelCredentials),
280
+ readModels: new ReadModelsClient(serverAddress, channelCredentials),
281
+ jobs: new JobsClient(serverAddress, channelCredentials),
282
+ eventSeeding: new EventSeedingClient(serverAddress, channelCredentials),
283
+ server: new ServerClient(serverAddress, channelCredentials),
284
+ };
285
+ }
286
+
287
+ /**
288
+ * Creates a token provider based on connection configuration
289
+ */
290
+ private createTokenProvider(options: ChronicleConnectionOptions): ITokenProvider {
291
+ try {
292
+ const authMode = this._connectionString.authenticationMode;
293
+
294
+ if (authMode === AuthenticationMode.ClientCredentials) {
295
+ const username = this._connectionString.username;
296
+ const password = this._connectionString.password;
297
+
298
+ if (!username || !password) {
299
+ return new NoOpTokenProvider();
300
+ }
301
+
302
+ // Determine the authority URL
303
+ const managementPort = options.managementPort || 8080;
304
+ let authorityHost: string;
305
+ let authorityPort: number;
306
+
307
+ if (options.authority) {
308
+ // Parse custom authority URL
309
+ const authorityUrl = new URL(options.authority);
310
+ authorityHost = authorityUrl.hostname;
311
+ authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
312
+ } else {
313
+ // Use Chronicle server as authority
314
+ authorityHost = this._connectionString.serverAddress.host;
315
+ authorityPort = managementPort;
316
+ }
317
+
318
+ const scheme = this._connectionString.disableTls ? 'http' : 'https';
319
+ const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
320
+
321
+ return new OAuthTokenProvider(tokenEndpoint, username, password);
322
+ }
323
+
324
+ // For API key or other modes, no token provider needed (handled by connection string)
325
+ return new NoOpTokenProvider();
326
+ } catch {
327
+ // If authentication mode check fails (no auth configured), use no-op provider
328
+ return new NoOpTokenProvider();
329
+ }
330
+ }
331
+
332
+ /**
333
+ * Creates call credentials with bearer token from token provider
334
+ */
335
+ private createAuthCallCredentials(): grpc.CallCredentials | undefined {
336
+ return grpc.credentials.createFromMetadataGenerator(async (params, callback) => {
337
+ try {
338
+ const token = await this.tokenProvider.getAccessToken();
339
+ const metadata = new grpc.Metadata();
340
+
341
+ if (token) {
342
+ metadata.add('authorization', `Bearer ${token}`);
343
+ } else {
344
+ // Check for API key authentication
345
+ try {
346
+ const authMode = this._connectionString.authenticationMode;
347
+ if (authMode === AuthenticationMode.ApiKey && this._connectionString.apiKey) {
348
+ metadata.add('api-key', this._connectionString.apiKey);
349
+ }
350
+ } catch {
351
+ // No API key configured
352
+ }
353
+ }
354
+
355
+ callback(null, metadata);
356
+ } catch (error) {
357
+ callback(error as Error, new grpc.Metadata());
358
+ }
359
+ });
360
+ }
361
+
362
+ /**
363
+ * Gets whether the connection is established
364
+ */
365
+ get isConnected(): boolean {
366
+ return this._isConnected;
367
+ }
368
+
369
+ /**
370
+ * Connects to the Chronicle Kernel
371
+ * @returns Promise that resolves when connected
372
+ */
373
+ async connect(): Promise<void> {
374
+ if (this._isConnected) {
375
+ return;
376
+ }
377
+
378
+ return new Promise<void>((resolve, reject) => {
379
+ const deadline = new Date();
380
+ deadline.setSeconds(deadline.getSeconds() + 10);
381
+
382
+ this.channel.watchConnectivityState(
383
+ this.channel.getConnectivityState(true),
384
+ deadline,
385
+ (error) => {
386
+ if (error) {
387
+ this._isConnected = false;
388
+ reject(error);
389
+ } else {
390
+ const state = this.channel.getConnectivityState(false);
391
+ if (state === grpc.connectivityState.READY) {
392
+ this._isConnected = true;
393
+ resolve();
394
+ } else {
395
+ this._isConnected = false;
396
+ reject(new Error(`Connection failed with state: ${state}`));
397
+ }
398
+ }
399
+ }
400
+ );
401
+ });
402
+ }
403
+
404
+ /**
405
+ * Disconnects from the Chronicle Kernel
406
+ */
407
+ disconnect(): void {
408
+ this._isConnected = false;
409
+ this.channel.close();
410
+ }
411
+
412
+ /**
413
+ * Disposes the connection and cleans up resources
414
+ */
415
+ dispose(): void {
416
+ this.disconnect();
417
+ }
418
+ }
419
+