@kurrent/kurrentdb-client 1.0.0-alpha.1

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 (281) hide show
  1. package/README.md +201 -0
  2. package/dist/Client/ServerFeatures.d.ts +17 -0
  3. package/dist/Client/ServerFeatures.js +56 -0
  4. package/dist/Client/ServerFeatures.js.map +1 -0
  5. package/dist/Client/discovery.d.ts +15 -0
  6. package/dist/Client/discovery.js +135 -0
  7. package/dist/Client/discovery.js.map +1 -0
  8. package/dist/Client/http.d.ts +19 -0
  9. package/dist/Client/http.js +97 -0
  10. package/dist/Client/http.js.map +1 -0
  11. package/dist/Client/index.d.ts +119 -0
  12. package/dist/Client/index.js +390 -0
  13. package/dist/Client/index.js.map +1 -0
  14. package/dist/Client/parseConnectionString.d.ts +23 -0
  15. package/dist/Client/parseConnectionString.js +238 -0
  16. package/dist/Client/parseConnectionString.js.map +1 -0
  17. package/dist/bridge/index.d.ts +66 -0
  18. package/dist/bridge/index.js +83 -0
  19. package/dist/bridge/index.js.map +1 -0
  20. package/dist/bridge/load.d.ts +1 -0
  21. package/dist/bridge/load.js +20 -0
  22. package/dist/bridge/load.js.map +1 -0
  23. package/dist/constants.d.ts +58 -0
  24. package/dist/constants.js +75 -0
  25. package/dist/constants.js.map +1 -0
  26. package/dist/events/binaryEvent.d.ts +16 -0
  27. package/dist/events/binaryEvent.js +14 -0
  28. package/dist/events/binaryEvent.js.map +1 -0
  29. package/dist/events/convertMetadata.d.ts +1 -0
  30. package/dist/events/convertMetadata.js +11 -0
  31. package/dist/events/convertMetadata.js.map +1 -0
  32. package/dist/events/index.d.ts +2 -0
  33. package/dist/events/index.js +19 -0
  34. package/dist/events/index.js.map +1 -0
  35. package/dist/events/jsonEvent.d.ts +8 -0
  36. package/dist/events/jsonEvent.js +14 -0
  37. package/dist/events/jsonEvent.js.map +1 -0
  38. package/dist/index.d.ts +13 -0
  39. package/dist/index.js +32 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/persistentSubscription/createPersistentSubscriptionToAll.d.ts +23 -0
  42. package/dist/persistentSubscription/createPersistentSubscriptionToAll.js +90 -0
  43. package/dist/persistentSubscription/createPersistentSubscriptionToAll.js.map +1 -0
  44. package/dist/persistentSubscription/createPersistentSubscriptionToStream.d.ts +17 -0
  45. package/dist/persistentSubscription/createPersistentSubscriptionToStream.js +49 -0
  46. package/dist/persistentSubscription/createPersistentSubscriptionToStream.js.map +1 -0
  47. package/dist/persistentSubscription/deletePersistentSubscriptionToAll.d.ts +13 -0
  48. package/dist/persistentSubscription/deletePersistentSubscriptionToAll.js +30 -0
  49. package/dist/persistentSubscription/deletePersistentSubscriptionToAll.js.map +1 -0
  50. package/dist/persistentSubscription/deletePersistentSubscriptionToStream.d.ts +13 -0
  51. package/dist/persistentSubscription/deletePersistentSubscriptionToStream.js +28 -0
  52. package/dist/persistentSubscription/deletePersistentSubscriptionToStream.js.map +1 -0
  53. package/dist/persistentSubscription/getPersistentSubscriptionToAllInfo.d.ts +13 -0
  54. package/dist/persistentSubscription/getPersistentSubscriptionToAllInfo.js +31 -0
  55. package/dist/persistentSubscription/getPersistentSubscriptionToAllInfo.js.map +1 -0
  56. package/dist/persistentSubscription/getPersistentSubscriptionToStreamInfo.d.ts +14 -0
  57. package/dist/persistentSubscription/getPersistentSubscriptionToStreamInfo.js +49 -0
  58. package/dist/persistentSubscription/getPersistentSubscriptionToStreamInfo.js.map +1 -0
  59. package/dist/persistentSubscription/index.d.ts +16 -0
  60. package/dist/persistentSubscription/index.js +33 -0
  61. package/dist/persistentSubscription/index.js.map +1 -0
  62. package/dist/persistentSubscription/listAllPersistentSubscriptions.d.ts +13 -0
  63. package/dist/persistentSubscription/listAllPersistentSubscriptions.js +42 -0
  64. package/dist/persistentSubscription/listAllPersistentSubscriptions.js.map +1 -0
  65. package/dist/persistentSubscription/listPersistentSubscriptionsToAll.d.ts +13 -0
  66. package/dist/persistentSubscription/listPersistentSubscriptionsToAll.js +33 -0
  67. package/dist/persistentSubscription/listPersistentSubscriptionsToAll.js.map +1 -0
  68. package/dist/persistentSubscription/listPersistentSubscriptionsToStream.d.ts +14 -0
  69. package/dist/persistentSubscription/listPersistentSubscriptionsToStream.js +51 -0
  70. package/dist/persistentSubscription/listPersistentSubscriptionsToStream.js.map +1 -0
  71. package/dist/persistentSubscription/replayParkedMessagesToAll.d.ts +18 -0
  72. package/dist/persistentSubscription/replayParkedMessagesToAll.js +36 -0
  73. package/dist/persistentSubscription/replayParkedMessagesToAll.js.map +1 -0
  74. package/dist/persistentSubscription/replayParkedMessagesToStream.d.ts +19 -0
  75. package/dist/persistentSubscription/replayParkedMessagesToStream.js +57 -0
  76. package/dist/persistentSubscription/replayParkedMessagesToStream.js.map +1 -0
  77. package/dist/persistentSubscription/restartPersistentSubscriptionSubsystem.d.ts +11 -0
  78. package/dist/persistentSubscription/restartPersistentSubscriptionSubsystem.js +30 -0
  79. package/dist/persistentSubscription/restartPersistentSubscriptionSubsystem.js.map +1 -0
  80. package/dist/persistentSubscription/subscribeToPersistentSubscriptionToAll.d.ts +20 -0
  81. package/dist/persistentSubscription/subscribeToPersistentSubscriptionToAll.js +38 -0
  82. package/dist/persistentSubscription/subscribeToPersistentSubscriptionToAll.js.map +1 -0
  83. package/dist/persistentSubscription/subscribeToPersistentSubscriptionToStream.d.ts +20 -0
  84. package/dist/persistentSubscription/subscribeToPersistentSubscriptionToStream.js +37 -0
  85. package/dist/persistentSubscription/subscribeToPersistentSubscriptionToStream.js.map +1 -0
  86. package/dist/persistentSubscription/updatePersistentSubscriptionToAll.d.ts +15 -0
  87. package/dist/persistentSubscription/updatePersistentSubscriptionToAll.js +53 -0
  88. package/dist/persistentSubscription/updatePersistentSubscriptionToAll.js.map +1 -0
  89. package/dist/persistentSubscription/updatePersistentSubscriptionToStream.d.ts +15 -0
  90. package/dist/persistentSubscription/updatePersistentSubscriptionToStream.js +49 -0
  91. package/dist/persistentSubscription/updatePersistentSubscriptionToStream.js.map +1 -0
  92. package/dist/persistentSubscription/utils/PersistentSubscriptionImpl.d.ts +18 -0
  93. package/dist/persistentSubscription/utils/PersistentSubscriptionImpl.js +112 -0
  94. package/dist/persistentSubscription/utils/PersistentSubscriptionImpl.js.map +1 -0
  95. package/dist/persistentSubscription/utils/mapPersistentSubscriptionInfo.d.ts +146 -0
  96. package/dist/persistentSubscription/utils/mapPersistentSubscriptionInfo.js +204 -0
  97. package/dist/persistentSubscription/utils/mapPersistentSubscriptionInfo.js.map +1 -0
  98. package/dist/persistentSubscription/utils/persistentSubscriptionSettings.d.ts +90 -0
  99. package/dist/persistentSubscription/utils/persistentSubscriptionSettings.js +39 -0
  100. package/dist/persistentSubscription/utils/persistentSubscriptionSettings.js.map +1 -0
  101. package/dist/persistentSubscription/utils/settingsToGRPC.d.ts +5 -0
  102. package/dist/persistentSubscription/utils/settingsToGRPC.js +49 -0
  103. package/dist/persistentSubscription/utils/settingsToGRPC.js.map +1 -0
  104. package/dist/projections/createProjection.d.ts +24 -0
  105. package/dist/projections/createProjection.js +48 -0
  106. package/dist/projections/createProjection.js.map +1 -0
  107. package/dist/projections/deleteProjection.d.ts +28 -0
  108. package/dist/projections/deleteProjection.js +33 -0
  109. package/dist/projections/deleteProjection.js.map +1 -0
  110. package/dist/projections/disableProjection.d.ts +19 -0
  111. package/dist/projections/disableProjection.js +34 -0
  112. package/dist/projections/disableProjection.js.map +1 -0
  113. package/dist/projections/enableProjection.d.ts +12 -0
  114. package/dist/projections/enableProjection.js +25 -0
  115. package/dist/projections/enableProjection.js.map +1 -0
  116. package/dist/projections/getProjectionResult.d.ts +17 -0
  117. package/dist/projections/getProjectionResult.js +29 -0
  118. package/dist/projections/getProjectionResult.js.map +1 -0
  119. package/dist/projections/getProjectionState.d.ts +17 -0
  120. package/dist/projections/getProjectionState.js +29 -0
  121. package/dist/projections/getProjectionState.js.map +1 -0
  122. package/dist/projections/getProjectionStatus.d.ts +12 -0
  123. package/dist/projections/getProjectionStatus.js +36 -0
  124. package/dist/projections/getProjectionStatus.js.map +1 -0
  125. package/dist/projections/index.d.ts +11 -0
  126. package/dist/projections/index.js +28 -0
  127. package/dist/projections/index.js.map +1 -0
  128. package/dist/projections/listProjections.d.ts +12 -0
  129. package/dist/projections/listProjections.js +36 -0
  130. package/dist/projections/listProjections.js.map +1 -0
  131. package/dist/projections/resetProjection.d.ts +13 -0
  132. package/dist/projections/resetProjection.js +25 -0
  133. package/dist/projections/resetProjection.js.map +1 -0
  134. package/dist/projections/restartSubsystem.d.ts +11 -0
  135. package/dist/projections/restartSubsystem.js +21 -0
  136. package/dist/projections/restartSubsystem.js.map +1 -0
  137. package/dist/projections/updateProjection.d.ts +20 -0
  138. package/dist/projections/updateProjection.js +34 -0
  139. package/dist/projections/updateProjection.js.map +1 -0
  140. package/dist/projections/utils/mapGrpcProjectionDetails.d.ts +3 -0
  141. package/dist/projections/utils/mapGrpcProjectionDetails.js +31 -0
  142. package/dist/projections/utils/mapGrpcProjectionDetails.js.map +1 -0
  143. package/dist/streams/appendToStream/append.d.ts +5 -0
  144. package/dist/streams/appendToStream/append.js +131 -0
  145. package/dist/streams/appendToStream/append.js.map +1 -0
  146. package/dist/streams/appendToStream/batchAppend.d.ts +5 -0
  147. package/dist/streams/appendToStream/batchAppend.js +145 -0
  148. package/dist/streams/appendToStream/batchAppend.js.map +1 -0
  149. package/dist/streams/appendToStream/index.d.ts +24 -0
  150. package/dist/streams/appendToStream/index.js +24 -0
  151. package/dist/streams/appendToStream/index.js.map +1 -0
  152. package/dist/streams/appendToStream/unpackError.d.ts +5 -0
  153. package/dist/streams/appendToStream/unpackError.js +54 -0
  154. package/dist/streams/appendToStream/unpackError.js.map +1 -0
  155. package/dist/streams/deleteStream.d.ts +18 -0
  156. package/dist/streams/deleteStream.js +51 -0
  157. package/dist/streams/deleteStream.js.map +1 -0
  158. package/dist/streams/getStreamMetadata.d.ts +27 -0
  159. package/dist/streams/getStreamMetadata.js +40 -0
  160. package/dist/streams/getStreamMetadata.js.map +1 -0
  161. package/dist/streams/index.d.ts +9 -0
  162. package/dist/streams/index.js +27 -0
  163. package/dist/streams/index.js.map +1 -0
  164. package/dist/streams/readAll.d.ts +35 -0
  165. package/dist/streams/readAll.js +37 -0
  166. package/dist/streams/readAll.js.map +1 -0
  167. package/dist/streams/readStream.d.ts +35 -0
  168. package/dist/streams/readStream.js +58 -0
  169. package/dist/streams/readStream.js.map +1 -0
  170. package/dist/streams/setStreamMetadata.d.ts +20 -0
  171. package/dist/streams/setStreamMetadata.js +20 -0
  172. package/dist/streams/setStreamMetadata.js.map +1 -0
  173. package/dist/streams/subscribeToAll.d.ts +30 -0
  174. package/dist/streams/subscribeToAll.js +89 -0
  175. package/dist/streams/subscribeToAll.js.map +1 -0
  176. package/dist/streams/subscribeToStream.d.ts +27 -0
  177. package/dist/streams/subscribeToStream.js +52 -0
  178. package/dist/streams/subscribeToStream.js.map +1 -0
  179. package/dist/streams/tombstoneStream.d.ts +18 -0
  180. package/dist/streams/tombstoneStream.js +51 -0
  181. package/dist/streams/tombstoneStream.js.map +1 -0
  182. package/dist/streams/utils/ReadStream.d.ts +14 -0
  183. package/dist/streams/utils/ReadStream.js +61 -0
  184. package/dist/streams/utils/ReadStream.js.map +1 -0
  185. package/dist/streams/utils/Subscription.d.ts +16 -0
  186. package/dist/streams/utils/Subscription.js +71 -0
  187. package/dist/streams/utils/Subscription.js.map +1 -0
  188. package/dist/streams/utils/streamMetadata.d.ts +53 -0
  189. package/dist/streams/utils/streamMetadata.js +77 -0
  190. package/dist/streams/utils/streamMetadata.js.map +1 -0
  191. package/dist/streams/utils/systemStreams.d.ts +20 -0
  192. package/dist/streams/utils/systemStreams.js +28 -0
  193. package/dist/streams/utils/systemStreams.js.map +1 -0
  194. package/dist/types/events.d.ts +157 -0
  195. package/dist/types/events.js +3 -0
  196. package/dist/types/events.js.map +1 -0
  197. package/dist/types/index.d.ts +348 -0
  198. package/dist/types/index.js +22 -0
  199. package/dist/types/index.js.map +1 -0
  200. package/dist/utils/CommandError.d.ts +174 -0
  201. package/dist/utils/CommandError.js +403 -0
  202. package/dist/utils/CommandError.js.map +1 -0
  203. package/dist/utils/backpressuredWrite.d.ts +2 -0
  204. package/dist/utils/backpressuredWrite.js +50 -0
  205. package/dist/utils/backpressuredWrite.js.map +1 -0
  206. package/dist/utils/convertBridgeError.d.ts +1 -0
  207. package/dist/utils/convertBridgeError.js +41 -0
  208. package/dist/utils/convertBridgeError.js.map +1 -0
  209. package/dist/utils/convertGrpcEvent.d.ts +10 -0
  210. package/dist/utils/convertGrpcEvent.js +135 -0
  211. package/dist/utils/convertGrpcEvent.js.map +1 -0
  212. package/dist/utils/convertRustEvent.d.ts +4 -0
  213. package/dist/utils/convertRustEvent.js +85 -0
  214. package/dist/utils/convertRustEvent.js.map +1 -0
  215. package/dist/utils/debug.d.ts +7 -0
  216. package/dist/utils/debug.js +30 -0
  217. package/dist/utils/debug.js.map +1 -0
  218. package/dist/utils/filter.d.ts +44 -0
  219. package/dist/utils/filter.js +29 -0
  220. package/dist/utils/filter.js.map +1 -0
  221. package/dist/utils/grpcStreamIdentifier.d.ts +2 -0
  222. package/dist/utils/grpcStreamIdentifier.js +11 -0
  223. package/dist/utils/grpcStreamIdentifier.js.map +1 -0
  224. package/dist/utils/grpcUUID.d.ts +4 -0
  225. package/dist/utils/grpcUUID.js +29 -0
  226. package/dist/utils/grpcUUID.js.map +1 -0
  227. package/dist/utils/index.d.ts +9 -0
  228. package/dist/utils/index.js +26 -0
  229. package/dist/utils/index.js.map +1 -0
  230. package/dist/utils/isClientCancellationError.d.ts +1 -0
  231. package/dist/utils/isClientCancellationError.js +13 -0
  232. package/dist/utils/isClientCancellationError.js.map +1 -0
  233. package/dist/utils/utilityTypes.d.ts +2 -0
  234. package/dist/utils/utilityTypes.js +3 -0
  235. package/dist/utils/utilityTypes.js.map +1 -0
  236. package/generated/cluster_grpc_pb.d.ts +211 -0
  237. package/generated/cluster_grpc_pb.js +247 -0
  238. package/generated/cluster_pb.d.ts +546 -0
  239. package/generated/cluster_pb.js +4357 -0
  240. package/generated/code_grpc_pb.js +1 -0
  241. package/generated/code_pb.d.ts +27 -0
  242. package/generated/code_pb.js +48 -0
  243. package/generated/gossip_grpc_pb.d.ts +42 -0
  244. package/generated/gossip_grpc_pb.js +45 -0
  245. package/generated/gossip_pb.d.ts +111 -0
  246. package/generated/gossip_pb.js +727 -0
  247. package/generated/monitoring_grpc_pb.d.ts +39 -0
  248. package/generated/monitoring_grpc_pb.js +44 -0
  249. package/generated/monitoring_pb.d.ts +52 -0
  250. package/generated/monitoring_pb.js +361 -0
  251. package/generated/operations_grpc_pb.d.ts +144 -0
  252. package/generated/operations_grpc_pb.js +144 -0
  253. package/generated/operations_pb.d.ts +151 -0
  254. package/generated/operations_pb.js +1050 -0
  255. package/generated/persistent_grpc_pb.d.ts +160 -0
  256. package/generated/persistent_grpc_pb.js +265 -0
  257. package/generated/persistent_pb.d.ts +1702 -0
  258. package/generated/persistent_pb.js +12340 -0
  259. package/generated/projections_grpc_pb.d.ts +194 -0
  260. package/generated/projections_grpc_pb.js +332 -0
  261. package/generated/projections_pb.d.ts +821 -0
  262. package/generated/projections_pb.js +6065 -0
  263. package/generated/serverfeatures_grpc_pb.d.ts +42 -0
  264. package/generated/serverfeatures_grpc_pb.js +45 -0
  265. package/generated/serverfeatures_pb.d.ts +61 -0
  266. package/generated/serverfeatures_pb.js +476 -0
  267. package/generated/shared_grpc_pb.js +1 -0
  268. package/generated/shared_pb.d.ts +335 -0
  269. package/generated/shared_pb.js +2374 -0
  270. package/generated/status_grpc_pb.js +1 -0
  271. package/generated/status_pb.d.ts +38 -0
  272. package/generated/status_pb.js +261 -0
  273. package/generated/streams_grpc_pb.d.ts +112 -0
  274. package/generated/streams_grpc_pb.js +180 -0
  275. package/generated/streams_pb.d.ts +1660 -0
  276. package/generated/streams_pb.js +11556 -0
  277. package/generated/users_grpc_pb.d.ts +158 -0
  278. package/generated/users_grpc_pb.js +275 -0
  279. package/generated/users_pb.d.ts +601 -0
  280. package/generated/users_pb.js +4451 -0
  281. package/package.json +65 -0
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseConnectionString = void 0;
4
+ const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
6
+ const toflatCase = (str) => str.trim().toLowerCase().replace(/[_-]/g, "");
7
+ // This wierd key value syntax is the only way I could find ensure that every option in a union is passed
8
+ const caseMap = (options) => {
9
+ const expected = Object.values(options);
10
+ const mapping = new Map(expected.map((option) => [toflatCase(option), option]));
11
+ function MapTo(value) {
12
+ const flatValue = toflatCase(value);
13
+ return mapping.get(flatValue);
14
+ }
15
+ MapTo.expected = expected;
16
+ return MapTo;
17
+ };
18
+ const mapToNodePreference = caseMap({
19
+ [constants_1.LEADER]: constants_1.LEADER,
20
+ [constants_1.FOLLOWER]: constants_1.FOLLOWER,
21
+ [constants_1.READ_ONLY_REPLICA]: constants_1.READ_ONLY_REPLICA,
22
+ [constants_1.RANDOM]: constants_1.RANDOM,
23
+ });
24
+ const mapToQueryOption = caseMap({
25
+ userCertFile: "userCertFile",
26
+ userKeyFile: "userKeyFile",
27
+ maxDiscoverAttempts: "maxDiscoverAttempts",
28
+ connectionName: "connectionName",
29
+ defaultDeadline: "defaultDeadline",
30
+ discoveryInterval: "discoveryInterval",
31
+ gossipTimeout: "gossipTimeout",
32
+ nodePreference: "nodePreference",
33
+ tls: "tls",
34
+ tlsVerifyCert: "tlsVerifyCert",
35
+ tlsCAFile: "tlsCAFile",
36
+ throwOnAppendFailure: "throwOnAppendFailure",
37
+ keepAliveInterval: "keepAliveInterval",
38
+ keepAliveTimeout: "keepAliveTimeout",
39
+ });
40
+ const parseConnectionString = (connectionString) => parseProtocol(connectionString.trim().replace(/\/+$/, ""), 0, {
41
+ dnsDiscover: false,
42
+ hosts: [],
43
+ });
44
+ exports.parseConnectionString = parseConnectionString;
45
+ const parseProtocol = (connectionString, position, options) => {
46
+ let nextPosition = position;
47
+ const expected = "kurrentdb://, kurrentdb+discover://, kurrent://, kurrent+discover://, kdb://, or kdb+discover://";
48
+ const match = connectionString
49
+ .substring(position)
50
+ .match(/^(?<protocol>[^:]+):\/\//);
51
+ if (match && match.groups?.protocol) {
52
+ nextPosition += match[0].length;
53
+ if (match.groups.protocol.startsWith("esdb")) {
54
+ console.warn(`The 'esdb' protocol is deprecated. Please use 'kurrentdb', 'kdb' or 'kurrent' instead.`);
55
+ }
56
+ switch (match.groups.protocol) {
57
+ case "esdb":
58
+ case "kurrentdb":
59
+ case "kdb":
60
+ case "kurrent": {
61
+ return parseCredentials(connectionString, nextPosition, {
62
+ ...options,
63
+ dnsDiscover: false,
64
+ });
65
+ }
66
+ case "esdb+discover":
67
+ case "kurrentdb+discover":
68
+ case "kdb+discover":
69
+ case "kurrent+discover": {
70
+ return parseCredentials(connectionString, nextPosition, {
71
+ ...options,
72
+ dnsDiscover: true,
73
+ });
74
+ }
75
+ }
76
+ }
77
+ throw new ParseError(connectionString, [position, nextPosition], expected);
78
+ };
79
+ const parseCredentials = (connectionString, position, options) => {
80
+ let nextPosition = position;
81
+ const expected = "username:password";
82
+ const match = connectionString
83
+ .substring(position)
84
+ .match(/^(?:(?<credentials>[^:]+:[^@]+)@)/);
85
+ // This is optional
86
+ if (!match) {
87
+ return parseHosts(connectionString, nextPosition, options, true);
88
+ }
89
+ if (match.groups?.credentials) {
90
+ nextPosition += match[0].length;
91
+ const [username, password] = match.groups.credentials.trim().split(":");
92
+ return parseHosts(connectionString, nextPosition, {
93
+ ...options,
94
+ defaultCredentials: {
95
+ username: decodeURIComponent(username),
96
+ password: decodeURIComponent(password),
97
+ },
98
+ }, true);
99
+ }
100
+ throw new ParseError(connectionString, [position, nextPosition], expected);
101
+ };
102
+ const parseHosts = (connectionString, position, options, mustMatch) => {
103
+ let nextPosition = position;
104
+ const expected = "host";
105
+ const match = connectionString
106
+ .substring(position)
107
+ .match(/^(?:(?<host>[^$+!?*'(),;[\]{}|"%~#<>=&]+)[,/]?)/);
108
+ if (!match && mustMatch) {
109
+ throw new ParseError(connectionString, [position, nextPosition], expected);
110
+ }
111
+ if (match && match.groups?.host) {
112
+ nextPosition += match[0].length;
113
+ const [address, rawPort = "2113", ...rest] = match
114
+ .groups.host.trim()
115
+ .split(":");
116
+ if (rest.length) {
117
+ throw new ParseError(connectionString, [position + `${address}:${rawPort}`.length, nextPosition], ", or ?key=value");
118
+ }
119
+ const port = parseInt(rawPort.trim());
120
+ if (Number.isNaN(port)) {
121
+ throw new ParseError(connectionString, [position + `${address}:`.length, nextPosition], "port number");
122
+ }
123
+ return parseHosts(connectionString, nextPosition, {
124
+ ...options,
125
+ hosts: [...options.hosts, { address, port }],
126
+ }, false);
127
+ }
128
+ return parseSearchParams(connectionString, nextPosition, options, true);
129
+ };
130
+ const parseSearchParams = (connectionString, position, options, first) => {
131
+ if (position === connectionString.length)
132
+ return options;
133
+ let nextPosition = position;
134
+ const expected = `${first ? "?" : "&"}key=value`;
135
+ const match = connectionString
136
+ .substring(position)
137
+ .match(new RegExp(`^(?:[${first ? "?" : "&"}](?<key>[^=]+)=(?<value>[^&?]+))`));
138
+ if (!match || !match.groups || !match.groups.key || !match.groups.value) {
139
+ throw new ParseError(connectionString, [position, nextPosition], expected);
140
+ }
141
+ nextPosition += match[0].length;
142
+ const keypair = verifyKeyValuePair(match.groups, connectionString, [position, nextPosition]);
143
+ return parseSearchParams(connectionString, nextPosition, keypair
144
+ ? {
145
+ ...options,
146
+ [keypair.key]: keypair.value,
147
+ }
148
+ : options, false);
149
+ };
150
+ const verifyKeyValuePair = ({ key: rawKey, value: rawValue }, connectionString, [from, to]) => {
151
+ const keyFrom = from + `&${rawKey}=`.length;
152
+ const key = mapToQueryOption(rawKey) ?? rawKey;
153
+ const value = rawValue.trim();
154
+ if (key === "tlsVerifyCert" && value === "false") {
155
+ console.warn([
156
+ `"tlsVerifyCert" is not currently supported by this client, and will have no effect.`,
157
+ `Consider either:`,
158
+ ` Passing "tlsCAFile" in the connection string.`,
159
+ ` Setting NODE_EXTRA_CA_CERTS https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file`,
160
+ errorLocationString(connectionString, [from + `&`.length, to]),
161
+ ].join("\n"));
162
+ }
163
+ switch (key) {
164
+ case "nodePreference": {
165
+ const parsedValue = mapToNodePreference(value);
166
+ if (!parsedValue) {
167
+ throw new ParseError(connectionString, [keyFrom, to], mapToNodePreference.expected.join(" or "));
168
+ }
169
+ return { key, value: parsedValue };
170
+ }
171
+ case "connectionName":
172
+ case "tlsCAFile": {
173
+ return { key, value: decodeURIComponent(value) };
174
+ }
175
+ case "userCertFile": {
176
+ return { key, value: decodeURIComponent(value) };
177
+ }
178
+ case "userKeyFile": {
179
+ return { key, value: decodeURIComponent(value) };
180
+ }
181
+ case "maxDiscoverAttempts":
182
+ case "defaultDeadline":
183
+ case "discoveryInterval":
184
+ case "gossipTimeout":
185
+ case "keepAliveInterval":
186
+ case "keepAliveTimeout": {
187
+ const parsedValue = parseInt(value);
188
+ if (Number.isNaN(parsedValue)) {
189
+ throw new ParseError(connectionString, [keyFrom, to], "Integer");
190
+ }
191
+ return { key, value: parsedValue };
192
+ }
193
+ case "dnsDiscover":
194
+ case "tls":
195
+ case "tlsVerifyCert":
196
+ case "throwOnAppendFailure": {
197
+ if (value !== "true" && value !== "false") {
198
+ throw new ParseError(connectionString, [keyFrom, to], "true or false");
199
+ }
200
+ return { key, value: value === "true" };
201
+ }
202
+ }
203
+ console.warn([
204
+ `Unknown option key "${key}", setting will be ignored.`,
205
+ errorLocationString(connectionString, [
206
+ from + `&`.length,
207
+ from + `&${key}`.length,
208
+ ]),
209
+ ].join("\n"));
210
+ return null;
211
+ };
212
+ const errorString = (connectionString, [from, to], expected, full) => {
213
+ const lines = [];
214
+ lines.push(`Unexpected "${connectionString.substring(from, from === to ? from + 1 : to)}" at position ${from}, expected ${expected}.`);
215
+ if (full) {
216
+ lines.push(errorLocationString(connectionString, [from, to]));
217
+ }
218
+ return lines.join("\n");
219
+ };
220
+ const errorLocationString = (connectionString, [from, to]) => {
221
+ const lines = [];
222
+ lines.push(connectionString);
223
+ lines.push(`${" ".repeat(from)}${"^".repeat(Math.max(to - from, 1))}`);
224
+ return lines.join("\n");
225
+ };
226
+ class ParseError extends Error {
227
+ connectionString;
228
+ location;
229
+ expected;
230
+ constructor(connectionString, location, expected) {
231
+ super(errorString(connectionString, location, expected, false));
232
+ this.connectionString = connectionString;
233
+ this.location = location;
234
+ this.expected = expected;
235
+ utils_1.debug.connection(errorString(connectionString, location, expected, true));
236
+ }
237
+ }
238
+ //# sourceMappingURL=parseConnectionString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseConnectionString.js","sourceRoot":"","sources":["../../src/Client/parseConnectionString.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { Buffer } from "buffer";
2
+ declare module "./load" {
3
+ function createClient(connStr: string): RawClient;
4
+ function readStreamNext(raw: RawReadStream): Promise<Buffer>;
5
+ }
6
+ export type Iterable = {
7
+ next(): Promise<{
8
+ value: ResolvedEvent[];
9
+ done: boolean;
10
+ }>;
11
+ };
12
+ export type RustClient = {
13
+ readStream(stream: string, options?: RustReadStreamOptions): AsyncIterable<ResolvedEvent[]>;
14
+ readAll(options?: RustReadAllOptions): AsyncIterable<ResolvedEvent[]>;
15
+ };
16
+ export type RawClient = {
17
+ readStream(stream: string, options?: RustReadStreamOptions): Promise<Iterable>;
18
+ readAll(options?: RustReadAllOptions): Promise<Iterable>;
19
+ };
20
+ export type RawReadStream = unknown;
21
+ export type RustReadStreamOptions = {
22
+ fromRevision: bigint | string;
23
+ direction: string;
24
+ maxCount: bigint;
25
+ requiresLeader: boolean;
26
+ resolvesLink: boolean;
27
+ credentials?: {
28
+ username: string;
29
+ password: string;
30
+ };
31
+ };
32
+ export type RustReadAllOptions = {
33
+ fromPosition: {
34
+ commit: bigint;
35
+ prepare: bigint;
36
+ } | string;
37
+ direction: string;
38
+ maxCount: bigint;
39
+ requiresLeader: boolean;
40
+ resolvesLink: boolean;
41
+ credentials?: {
42
+ username: string;
43
+ password: string;
44
+ };
45
+ };
46
+ export type ResolvedEvent = {
47
+ event?: RecordedEvent;
48
+ link?: RecordedEvent;
49
+ commitPosition?: bigint;
50
+ };
51
+ export type RecordedEvent = {
52
+ streamId: string;
53
+ id: string;
54
+ type: string;
55
+ isJson: boolean;
56
+ revision: bigint;
57
+ created: Date;
58
+ data: Uint8Array;
59
+ metadata: Uint8Array;
60
+ position?: Position;
61
+ };
62
+ export type Position = {
63
+ commit: bigint;
64
+ prepare: bigint;
65
+ };
66
+ export declare function createClient(connStr: string): RustClient;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.createClient = createClient;
38
+ // This module is the CJS entry point for the library.
39
+ // The Rust addon.
40
+ const addon = __importStar(require("./load"));
41
+ function createClient(connStr) {
42
+ const client = addon.createClient(connStr);
43
+ return {
44
+ readStream(stream, options) {
45
+ let iteratorPromise = null;
46
+ const asyncIterator = {
47
+ async next() {
48
+ if (!iteratorPromise)
49
+ iteratorPromise = client.readStream(stream, options);
50
+ const iterator = await iteratorPromise;
51
+ const buffer = await addon.readStreamNext(iterator);
52
+ return JSON.parse(buffer.toString());
53
+ },
54
+ };
55
+ return {
56
+ [Symbol.asyncIterator]() {
57
+ return asyncIterator;
58
+ },
59
+ };
60
+ },
61
+ readAll(options) {
62
+ let iteratorPromise = null;
63
+ const asyncIterator = {
64
+ async next() {
65
+ if (!iteratorPromise)
66
+ iteratorPromise = client.readAll(options);
67
+ const iterator = await iteratorPromise;
68
+ const buffer = await addon.readStreamNext(iterator);
69
+ return JSON.parse(buffer.toString());
70
+ },
71
+ };
72
+ return {
73
+ [Symbol.asyncIterator]() {
74
+ return asyncIterator;
75
+ },
76
+ };
77
+ },
78
+ };
79
+ }
80
+ module.exports = {
81
+ createClient,
82
+ };
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8ExD,oCAsDC;AAlID,sDAAsD;AAEtD,kBAAkB;AAClB,8CAAgC;AAyEhC,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE3C,OAAO;QACL,UAAU,CACR,MAAc,EACd,OAA8B;YAE9B,IAAI,eAAe,GAA6B,IAAI,CAAC;YAErD,MAAM,aAAa,GAAmC;gBACpD,KAAK,CAAC,IAAI;oBACR,IAAI,CAAC,eAAe;wBAClB,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAEvD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;oBACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACpD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAGlC,CAAC;gBACJ,CAAC;aACF,CAAC;YAEF,OAAO;gBACL,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,aAAa,CAAC;gBACvB,CAAC;aACF,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,OAA2B;YACjC,IAAI,eAAe,GAA6B,IAAI,CAAC;YAErD,MAAM,aAAa,GAAmC;gBACpD,KAAK,CAAC,IAAI;oBACR,IAAI,CAAC,eAAe;wBAAE,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAEhE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;oBACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACpD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAGlC,CAAC;gBACJ,CAAC;aACF,CAAC;YAEF,OAAO;gBACL,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,aAAa,CAAC;gBACvB,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,YAAY;CACb,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-require-imports */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ // This module loads the platform-specific build of the addon on
5
+ // the current system. The supported platforms are registered in
6
+ // the `platforms` object below, whose entries can be managed by
7
+ // by the Neon CLI:
8
+ //
9
+ // https://www.npmjs.com/package/@neon-rs/cli
10
+ module.exports = require("@neon-rs/load").proxy({
11
+ platforms: {
12
+ "win32-x64-msvc": () => require("@kurrent/kurrentdb-client/win32-x64-msvc"),
13
+ "darwin-x64": () => require("@kurrent/kurrentdb-client/darwin-x64"),
14
+ "darwin-arm64": () => require("@kurrent/kurrentdb-client/darwin-arm64"),
15
+ "linux-x64-gnu": () => require("@kurrent/kurrentdb-client/linux-x64-gnu"),
16
+ "linux-arm64-gnu": () => require("@kurrent/kurrentdb-client/linux-arm64-gnu"),
17
+ },
18
+ debug: () => require("../index.node"),
19
+ });
20
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/bridge/load.ts"],"names":[],"mappings":";AAAA,0DAA0D;;AAE1D,gEAAgE;AAChE,gEAAgE;AAChE,gEAAgE;AAChE,mBAAmB;AACnB,EAAE;AACF,+CAA+C;AAE/C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;IAC9C,SAAS,EAAE;QACT,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC;QAC3E,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC;QACnE,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC;QACvE,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC;QACzE,iBAAiB,EAAE,GAAG,EAAE,CACtB,OAAO,CAAC,2CAA2C,CAAC;KACvD;IACD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;CACtC,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ export declare const ANY = "any";
2
+ export declare const STREAM_EXISTS = "stream_exists";
3
+ export declare const NO_STREAM = "no_stream";
4
+ export declare const START = "start";
5
+ export declare const END = "end";
6
+ export declare const FORWARDS = "forwards";
7
+ export declare const BACKWARDS = "backwards";
8
+ export declare const RANDOM = "random";
9
+ export declare const FOLLOWER = "follower";
10
+ export declare const LEADER = "leader";
11
+ export declare const READ_ONLY_REPLICA = "read_only_replica";
12
+ export declare const DISPATCH_TO_SINGLE = "DispatchToSingle";
13
+ export declare const ROUND_ROBIN = "RoundRobin";
14
+ export declare const PINNED = "Pinned";
15
+ export declare const PARK = "park";
16
+ export declare const RETRY = "retry";
17
+ export declare const SKIP = "skip";
18
+ export declare const STOP = "stop";
19
+ export declare const CREATING = "Creating";
20
+ export declare const LOADING = "Loading";
21
+ export declare const LOADED = "Loaded";
22
+ export declare const PREPARING = "Preparing";
23
+ export declare const PREPARED = "Prepared";
24
+ export declare const STARTING = "Starting";
25
+ export declare const LOADING_STOPPED = "LoadingStopped";
26
+ export declare const RUNNING = "Running";
27
+ export declare const STOPPING = "Stopping";
28
+ export declare const ABORTING = "Aborting";
29
+ export declare const STOPPED = "Stopped";
30
+ export declare const COMPLETED = "Completed";
31
+ export declare const ABORTED = "Aborted";
32
+ export declare const FAULTED = "Faulted";
33
+ export declare const DELETING = "Deleting";
34
+ export declare const PAUSED = "Paused";
35
+ export declare const WRITING_RESULTS = "Writing results";
36
+ export declare const STREAM_NAME = "streamName";
37
+ export declare const EVENT_TYPE = "eventType";
38
+ export declare const UNBOUNDED = "unbounded";
39
+ /**
40
+ * A stream containing links pointing to each stream in the KurrentDB.
41
+ */
42
+ export declare const STREAMS_STREAM = "$streams";
43
+ /**
44
+ * A stream containing system settings.
45
+ */
46
+ export declare const SETTINGS_STREAM = "$settings";
47
+ /**
48
+ * A stream containing statistics.
49
+ */
50
+ export declare const STATS_STREAM_PREFIX = "$stats";
51
+ /**
52
+ * The user default acl stream.
53
+ */
54
+ export declare const USER_STREAM_ACL = "$userStreamAcl";
55
+ /**
56
+ * The system stream defaults acl stream.
57
+ */
58
+ export declare const SYSTEM_STREAM_ACL = "$systemStreamAcl";
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SYSTEM_STREAM_ACL = exports.USER_STREAM_ACL = exports.STATS_STREAM_PREFIX = exports.SETTINGS_STREAM = exports.STREAMS_STREAM = exports.UNBOUNDED = exports.EVENT_TYPE = exports.STREAM_NAME = exports.WRITING_RESULTS = exports.PAUSED = exports.DELETING = exports.FAULTED = exports.ABORTED = exports.COMPLETED = exports.STOPPED = exports.ABORTING = exports.STOPPING = exports.RUNNING = exports.LOADING_STOPPED = exports.STARTING = exports.PREPARED = exports.PREPARING = exports.LOADED = exports.LOADING = exports.CREATING = exports.STOP = exports.SKIP = exports.RETRY = exports.PARK = exports.PINNED = exports.ROUND_ROBIN = exports.DISPATCH_TO_SINGLE = exports.READ_ONLY_REPLICA = exports.LEADER = exports.FOLLOWER = exports.RANDOM = exports.BACKWARDS = exports.FORWARDS = exports.END = exports.START = exports.NO_STREAM = exports.STREAM_EXISTS = exports.ANY = void 0;
4
+ // revision
5
+ exports.ANY = "any";
6
+ exports.STREAM_EXISTS = "stream_exists";
7
+ exports.NO_STREAM = "no_stream";
8
+ // known positions / revisions
9
+ exports.START = "start";
10
+ exports.END = "end";
11
+ // directions
12
+ exports.FORWARDS = "forwards";
13
+ exports.BACKWARDS = "backwards";
14
+ // node Preference
15
+ exports.RANDOM = "random";
16
+ exports.FOLLOWER = "follower";
17
+ exports.LEADER = "leader";
18
+ exports.READ_ONLY_REPLICA = "read_only_replica";
19
+ // consumer strategy
20
+ exports.DISPATCH_TO_SINGLE = "DispatchToSingle";
21
+ exports.ROUND_ROBIN = "RoundRobin";
22
+ exports.PINNED = "Pinned";
23
+ // persistent action
24
+ exports.PARK = "park";
25
+ exports.RETRY = "retry";
26
+ exports.SKIP = "skip";
27
+ exports.STOP = "stop";
28
+ // projection status
29
+ exports.CREATING = "Creating";
30
+ exports.LOADING = "Loading";
31
+ exports.LOADED = "Loaded";
32
+ exports.PREPARING = "Preparing";
33
+ exports.PREPARED = "Prepared";
34
+ exports.STARTING = "Starting";
35
+ exports.LOADING_STOPPED = "LoadingStopped";
36
+ exports.RUNNING = "Running";
37
+ exports.STOPPING = "Stopping";
38
+ exports.ABORTING = "Aborting";
39
+ exports.STOPPED = "Stopped";
40
+ exports.COMPLETED = "Completed";
41
+ exports.ABORTED = "Aborted";
42
+ exports.FAULTED = "Faulted";
43
+ exports.DELETING = "Deleting";
44
+ // processing status
45
+ exports.PAUSED = "Paused";
46
+ exports.WRITING_RESULTS = "Writing results";
47
+ // STOPPED
48
+ // filter
49
+ exports.STREAM_NAME = "streamName";
50
+ exports.EVENT_TYPE = "eventType";
51
+ // max subscriber count
52
+ exports.UNBOUNDED = "unbounded";
53
+ // system streams
54
+ /**
55
+ * A stream containing links pointing to each stream in the KurrentDB.
56
+ */
57
+ exports.STREAMS_STREAM = "$streams";
58
+ /**
59
+ * A stream containing system settings.
60
+ */
61
+ exports.SETTINGS_STREAM = "$settings";
62
+ /**
63
+ * A stream containing statistics.
64
+ */
65
+ exports.STATS_STREAM_PREFIX = "$stats";
66
+ // acl defaults
67
+ /**
68
+ * The user default acl stream.
69
+ */
70
+ exports.USER_STREAM_ACL = "$userStreamAcl";
71
+ /**
72
+ * The system stream defaults acl stream.
73
+ */
74
+ exports.SYSTEM_STREAM_ACL = "$systemStreamAcl";
75
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,WAAW;AACE,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC,8BAA8B;AACjB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,GAAG,GAAG,KAAK,CAAC;AAEzB,aAAa;AACA,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC,kBAAkB;AACL,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,oBAAoB;AACP,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AACxC,QAAA,WAAW,GAAG,YAAY,CAAC;AAC3B,QAAA,MAAM,GAAG,QAAQ,CAAC;AAE/B,oBAAoB;AACP,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,IAAI,GAAG,MAAM,CAAC;AAE3B,oBAAoB;AACP,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,eAAe,GAAG,gBAAgB,CAAC;AACnC,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEnC,oBAAoB;AACP,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACjD,UAAU;AAEV,SAAS;AACI,QAAA,WAAW,GAAG,YAAY,CAAC;AAC3B,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC,uBAAuB;AACV,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC,iBAAiB;AAEjB;;GAEG;AACU,QAAA,cAAc,GAAG,UAAU,CAAC;AAEzC;;GAEG;AACU,QAAA,eAAe,GAAG,WAAW,CAAC;AAE3C;;GAEG;AACU,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAE5C,eAAe;AAEf;;GAEG;AACU,QAAA,eAAe,GAAG,gBAAgB,CAAC;AAChD;;GAEG;AACU,QAAA,iBAAiB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { BinaryEventType, EventData } from "../types";
2
+ export type BinaryEventOptions<E extends BinaryEventType> = E & {
3
+ /**
4
+ * The id to this event. By default, the id will be generated.
5
+ */
6
+ id?: string;
7
+ /**
8
+ * The binary data of the event.
9
+ */
10
+ data: Uint8Array | Buffer;
11
+ };
12
+ export declare const binaryEvent: <E extends BinaryEventType = {
13
+ type: string;
14
+ data: Uint8Array;
15
+ metadata?: unknown;
16
+ }>({ type, data, metadata, id, }: BinaryEventOptions<E>) => EventData<E>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.binaryEvent = void 0;
4
+ const uuid_1 = require("uuid");
5
+ const convertMetadata_1 = require("./convertMetadata");
6
+ const binaryEvent = ({ type, data, metadata, id = (0, uuid_1.v4)(), }) => ({
7
+ id,
8
+ contentType: "application/octet-stream",
9
+ type,
10
+ data: Uint8Array.from(data),
11
+ metadata: (0, convertMetadata_1.convertMetadata)(metadata),
12
+ });
13
+ exports.binaryEvent = binaryEvent;
14
+ //# sourceMappingURL=binaryEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binaryEvent.js","sourceRoot":"","sources":["../../src/events/binaryEvent.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAIlC,uDAAoD;AAa7C,MAAM,WAAW,GAAG,CAA8C,EACvE,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,EAAE,GAAG,IAAA,SAAI,GAAE,GACW,EAAgB,EAAE,CACxC,CAAC;IACC,EAAE;IACF,WAAW,EAAE,0BAA0B;IACvC,IAAI;IACJ,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,EAAE,IAAA,iCAAe,EAAgB,QAAQ,CAAC;CAClC,CAAA,CAAC;AAZR,QAAA,WAAW,eAYH"}
@@ -0,0 +1 @@
1
+ export declare const convertMetadata: <Metadata>(metadata?: Metadata | Buffer) => Metadata | undefined;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertMetadata = void 0;
4
+ const convertMetadata = (metadata) => {
5
+ if (Buffer.isBuffer(metadata)) {
6
+ return Uint8Array.from(metadata);
7
+ }
8
+ return metadata;
9
+ };
10
+ exports.convertMetadata = convertMetadata;
11
+ //# sourceMappingURL=convertMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertMetadata.js","sourceRoot":"","sources":["../../src/events/convertMetadata.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAC7B,QAA4B,EACN,EAAE;IACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAwB,CAAC;IAC1D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
@@ -0,0 +1,2 @@
1
+ export * from "./binaryEvent";
2
+ export * from "./jsonEvent";
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./binaryEvent"), exports);
18
+ __exportStar(require("./jsonEvent"), exports);
19
+ //# sourceMappingURL=index.js.map