@synnaxlabs/client 0.2.1 → 0.13.6

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 (299) hide show
  1. package/.eslintrc.cjs +18 -0
  2. package/.pytest_cache/README.md +8 -0
  3. package/.turbo/turbo-build.log +16 -0
  4. package/LICENSE +4 -21
  5. package/{build/module/lib → dist/auth}/auth.d.ts +16 -19
  6. package/dist/auth/index.d.ts +1 -0
  7. package/dist/cdc/external.d.ts +1 -0
  8. package/dist/cdc/index.d.ts +1 -0
  9. package/dist/cdc/observable.d.ts +17 -0
  10. package/dist/channel/client.d.ts +58 -0
  11. package/dist/channel/creator.d.ts +8 -0
  12. package/dist/channel/external.d.ts +4 -0
  13. package/dist/channel/index.d.ts +1 -0
  14. package/dist/channel/payload.d.ts +63 -0
  15. package/dist/channel/retriever.d.ts +49 -0
  16. package/dist/client.cjs.js +23050 -0
  17. package/dist/client.cjs.js.map +1 -0
  18. package/dist/client.d.ts +73 -0
  19. package/dist/client.es.js +23050 -0
  20. package/dist/client.es.js.map +1 -0
  21. package/dist/connection/checker.d.ts +66 -0
  22. package/dist/connection/index.d.ts +1 -0
  23. package/dist/control/authority.d.ts +6 -0
  24. package/dist/control/external.d.ts +2 -0
  25. package/dist/control/index.d.ts +1 -0
  26. package/dist/control/state.d.ts +81 -0
  27. package/{build/main/lib → dist}/errors.d.ts +6 -3
  28. package/dist/framer/adapter.d.ts +21 -0
  29. package/dist/framer/client.d.ts +44 -0
  30. package/dist/framer/external.d.ts +5 -0
  31. package/dist/framer/frame.d.ts +251 -0
  32. package/dist/framer/index.d.ts +1 -0
  33. package/{build/module/lib/segment → dist/framer}/iterator.d.ts +32 -64
  34. package/dist/framer/streamProxy.d.ts +12 -0
  35. package/dist/framer/streamer.d.ts +17 -0
  36. package/dist/framer/writer.d.ts +257 -0
  37. package/dist/index.d.ts +16 -0
  38. package/dist/label/client.d.ts +25 -0
  39. package/dist/label/external.d.ts +4 -0
  40. package/dist/label/index.d.ts +1 -0
  41. package/dist/label/payload.d.ts +20 -0
  42. package/dist/label/retriever.d.ts +13 -0
  43. package/dist/label/writer.d.ts +26 -0
  44. package/dist/ontology/cdc.d.ts +25 -0
  45. package/dist/ontology/client.d.ts +25 -0
  46. package/dist/ontology/external.d.ts +3 -0
  47. package/dist/ontology/group/client.d.ts +11 -0
  48. package/dist/ontology/group/external.d.ts +2 -0
  49. package/dist/ontology/group/group.d.ts +7 -0
  50. package/dist/ontology/group/index.d.ts +1 -0
  51. package/dist/ontology/group/payload.d.ts +40 -0
  52. package/dist/ontology/group/writer.d.ts +13 -0
  53. package/dist/ontology/index.d.ts +1 -0
  54. package/dist/ontology/ontology.spec.d.ts +1 -0
  55. package/dist/ontology/payload.d.ts +235 -0
  56. package/dist/ontology/retriever.d.ts +12 -0
  57. package/dist/ontology/signals.d.ts +25 -0
  58. package/dist/ontology/writer.d.ts +9 -0
  59. package/dist/ranger/active.d.ts +9 -0
  60. package/dist/ranger/alias.d.ts +32 -0
  61. package/dist/ranger/client.d.ts +31 -0
  62. package/dist/ranger/external.d.ts +6 -0
  63. package/dist/ranger/index.d.ts +1 -0
  64. package/dist/ranger/kv.d.ts +50 -0
  65. package/dist/ranger/payload.d.ts +94 -0
  66. package/dist/ranger/range.d.ts +29 -0
  67. package/dist/ranger/ranger.spec.d.ts +1 -0
  68. package/dist/ranger/retriever.d.ts +10 -0
  69. package/dist/ranger/writer.d.ts +9 -0
  70. package/{build/main → dist}/setupspecs.d.ts +2 -2
  71. package/dist/signals/external.d.ts +1 -0
  72. package/dist/signals/index.d.ts +1 -0
  73. package/dist/signals/observable.d.ts +17 -0
  74. package/dist/transport.d.ts +10 -0
  75. package/dist/user/index.d.ts +1 -0
  76. package/{build/main/lib → dist}/user/payload.d.ts +3 -3
  77. package/dist/util/telem.d.ts +2 -0
  78. package/dist/workspace/client.d.ts +22 -0
  79. package/dist/workspace/external.d.ts +2 -0
  80. package/dist/workspace/index.d.ts +1 -0
  81. package/dist/workspace/lineplot/client.d.ts +15 -0
  82. package/dist/workspace/lineplot/external.d.ts +2 -0
  83. package/dist/workspace/lineplot/index.d.ts +1 -0
  84. package/dist/workspace/lineplot/linePlot.spec.d.ts +1 -0
  85. package/dist/workspace/lineplot/payload.d.ts +31 -0
  86. package/dist/workspace/lineplot/retriever.d.ts +9 -0
  87. package/dist/workspace/lineplot/writer.d.ts +39 -0
  88. package/dist/workspace/payload.d.ts +31 -0
  89. package/dist/workspace/pid/client.d.ts +16 -0
  90. package/dist/workspace/pid/external.d.ts +2 -0
  91. package/dist/workspace/pid/index.d.ts +1 -0
  92. package/dist/workspace/pid/payload.d.ts +37 -0
  93. package/dist/workspace/pid/pid.spec.d.ts +1 -0
  94. package/dist/workspace/pid/retriever.d.ts +9 -0
  95. package/dist/workspace/pid/writer.d.ts +46 -0
  96. package/dist/workspace/retriever.d.ts +12 -0
  97. package/dist/workspace/workspace.spec.d.ts +1 -0
  98. package/dist/workspace/writer.d.ts +55 -0
  99. package/package.json +27 -98
  100. package/src/auth/auth.spec.ts +46 -0
  101. package/src/auth/auth.ts +83 -0
  102. package/src/auth/index.ts +10 -0
  103. package/src/channel/channel.spec.ts +82 -0
  104. package/src/channel/client.ts +209 -0
  105. package/src/channel/creator.ts +43 -0
  106. package/src/channel/external.ts +13 -0
  107. package/src/channel/index.ts +10 -0
  108. package/src/channel/payload.ts +52 -0
  109. package/src/channel/retriever.ts +160 -0
  110. package/src/client.ts +116 -0
  111. package/src/connection/checker.ts +104 -0
  112. package/src/connection/connection.spec.ts +35 -0
  113. package/src/connection/index.ts +10 -0
  114. package/src/control/authority.ts +26 -0
  115. package/src/control/external.ts +11 -0
  116. package/src/control/index.ts +10 -0
  117. package/src/control/state.spec.ts +24 -0
  118. package/src/control/state.ts +133 -0
  119. package/src/errors.ts +163 -0
  120. package/src/framer/adapter.ts +116 -0
  121. package/src/framer/client.ts +116 -0
  122. package/src/framer/external.ts +14 -0
  123. package/src/framer/frame.spec.ts +317 -0
  124. package/src/framer/frame.ts +412 -0
  125. package/src/framer/index.ts +10 -0
  126. package/src/framer/iterator.spec.ts +62 -0
  127. package/src/framer/iterator.ts +240 -0
  128. package/src/framer/streamProxy.ts +59 -0
  129. package/src/framer/streamer.spec.ts +42 -0
  130. package/src/framer/streamer.ts +86 -0
  131. package/src/framer/writer.spec.ts +52 -0
  132. package/src/framer/writer.ts +236 -0
  133. package/src/index.ts +53 -0
  134. package/src/label/client.ts +103 -0
  135. package/src/label/external.ts +13 -0
  136. package/src/label/index.ts +10 -0
  137. package/src/label/label.spec.ts +51 -0
  138. package/src/label/payload.ts +29 -0
  139. package/src/label/retriever.ts +65 -0
  140. package/src/label/writer.ts +90 -0
  141. package/src/ontology/client.ts +104 -0
  142. package/src/ontology/external.ts +12 -0
  143. package/src/ontology/group/client.ts +40 -0
  144. package/src/ontology/group/external.ts +11 -0
  145. package/src/ontology/group/group.spec.ts +46 -0
  146. package/src/ontology/group/group.ts +27 -0
  147. package/src/ontology/group/index.ts +10 -0
  148. package/src/ontology/group/payload.ts +65 -0
  149. package/src/ontology/group/writer.ts +48 -0
  150. package/src/ontology/index.ts +10 -0
  151. package/src/ontology/ontology.spec.ts +114 -0
  152. package/src/ontology/payload.ts +118 -0
  153. package/src/ontology/retriever.ts +91 -0
  154. package/src/ontology/signals.ts +135 -0
  155. package/src/ontology/writer.ts +49 -0
  156. package/src/ranger/active.ts +56 -0
  157. package/src/ranger/alias.ts +183 -0
  158. package/src/ranger/client.ts +129 -0
  159. package/src/ranger/external.ts +15 -0
  160. package/src/ranger/index.ts +10 -0
  161. package/src/ranger/kv.ts +91 -0
  162. package/src/ranger/payload.ts +70 -0
  163. package/src/ranger/range.ts +95 -0
  164. package/src/ranger/ranger.spec.ts +201 -0
  165. package/src/ranger/retriever.ts +50 -0
  166. package/src/ranger/writer.ts +80 -0
  167. package/src/setupspecs.ts +25 -0
  168. package/src/signals/external.ts +10 -0
  169. package/src/signals/index.ts +10 -0
  170. package/src/signals/observable.ts +80 -0
  171. package/src/transport.ts +39 -0
  172. package/src/user/index.ts +10 -0
  173. package/src/user/payload.ts +17 -0
  174. package/src/util/telem.ts +19 -0
  175. package/src/vite-env.d.ts +11 -0
  176. package/src/workspace/client.ts +75 -0
  177. package/src/workspace/external.ts +11 -0
  178. package/src/workspace/index.ts +10 -0
  179. package/src/workspace/lineplot/client.ts +51 -0
  180. package/src/workspace/lineplot/external.ts +11 -0
  181. package/src/workspace/lineplot/index.ts +10 -0
  182. package/src/workspace/lineplot/linePlot.spec.ts +78 -0
  183. package/src/workspace/lineplot/payload.ts +29 -0
  184. package/src/workspace/lineplot/retriever.ts +49 -0
  185. package/src/workspace/lineplot/writer.ts +109 -0
  186. package/src/workspace/payload.ts +29 -0
  187. package/src/workspace/pid/client.ts +55 -0
  188. package/src/workspace/pid/external.ts +11 -0
  189. package/src/workspace/pid/index.ts +10 -0
  190. package/src/workspace/pid/payload.ts +31 -0
  191. package/src/workspace/pid/pid.spec.ts +111 -0
  192. package/src/workspace/pid/retriever.ts +45 -0
  193. package/src/workspace/pid/writer.ts +130 -0
  194. package/src/workspace/retriever.ts +66 -0
  195. package/src/workspace/workspace.spec.ts +62 -0
  196. package/src/workspace/writer.ts +103 -0
  197. package/tsconfig.json +7 -0
  198. package/tsconfig.vite.json +4 -0
  199. package/vite.config.ts +25 -0
  200. package/CHANGELOG.md +0 -5
  201. package/build/main/index.d.ts +0 -4
  202. package/build/main/index.js +0 -35
  203. package/build/main/lib/auth.d.ts +0 -54
  204. package/build/main/lib/auth.js +0 -62
  205. package/build/main/lib/auth.spec.js +0 -39
  206. package/build/main/lib/channel/channel.spec.js +0 -49
  207. package/build/main/lib/channel/client.d.ts +0 -94
  208. package/build/main/lib/channel/client.js +0 -134
  209. package/build/main/lib/channel/creator.d.ts +0 -19
  210. package/build/main/lib/channel/creator.js +0 -44
  211. package/build/main/lib/channel/payload.d.ts +0 -25
  212. package/build/main/lib/channel/payload.js +0 -18
  213. package/build/main/lib/channel/registry.d.ts +0 -9
  214. package/build/main/lib/channel/registry.js +0 -37
  215. package/build/main/lib/channel/retriever.d.ts +0 -11
  216. package/build/main/lib/channel/retriever.js +0 -39
  217. package/build/main/lib/client.d.ts +0 -30
  218. package/build/main/lib/client.js +0 -46
  219. package/build/main/lib/errors.js +0 -122
  220. package/build/main/lib/segment/client.d.ts +0 -62
  221. package/build/main/lib/segment/client.js +0 -95
  222. package/build/main/lib/segment/iterator.d.ts +0 -134
  223. package/build/main/lib/segment/iterator.js +0 -253
  224. package/build/main/lib/segment/iterator.spec.js +0 -73
  225. package/build/main/lib/segment/payload.d.ts +0 -16
  226. package/build/main/lib/segment/payload.js +0 -13
  227. package/build/main/lib/segment/splitter.d.ts +0 -7
  228. package/build/main/lib/segment/splitter.js +0 -25
  229. package/build/main/lib/segment/typed.d.ts +0 -15
  230. package/build/main/lib/segment/typed.js +0 -49
  231. package/build/main/lib/segment/validator.d.ts +0 -22
  232. package/build/main/lib/segment/validator.js +0 -64
  233. package/build/main/lib/segment/writer.d.ts +0 -98
  234. package/build/main/lib/segment/writer.js +0 -183
  235. package/build/main/lib/segment/writer.spec.js +0 -90
  236. package/build/main/lib/telem.d.ts +0 -395
  237. package/build/main/lib/telem.js +0 -553
  238. package/build/main/lib/telem.spec.js +0 -152
  239. package/build/main/lib/transport.d.ts +0 -10
  240. package/build/main/lib/transport.js +0 -22
  241. package/build/main/lib/user/payload.js +0 -9
  242. package/build/main/lib/util/telem.d.ts +0 -2
  243. package/build/main/lib/util/telem.js +0 -13
  244. package/build/main/setupspecs.js +0 -17
  245. package/build/module/index.d.ts +0 -4
  246. package/build/module/index.js +0 -5
  247. package/build/module/lib/auth.js +0 -63
  248. package/build/module/lib/auth.spec.js +0 -34
  249. package/build/module/lib/channel/channel.spec.js +0 -44
  250. package/build/module/lib/channel/client.d.ts +0 -94
  251. package/build/module/lib/channel/client.js +0 -134
  252. package/build/module/lib/channel/creator.d.ts +0 -19
  253. package/build/module/lib/channel/creator.js +0 -42
  254. package/build/module/lib/channel/payload.d.ts +0 -25
  255. package/build/module/lib/channel/payload.js +0 -15
  256. package/build/module/lib/channel/registry.d.ts +0 -9
  257. package/build/module/lib/channel/registry.js +0 -36
  258. package/build/module/lib/channel/retriever.d.ts +0 -11
  259. package/build/module/lib/channel/retriever.js +0 -37
  260. package/build/module/lib/client.d.ts +0 -30
  261. package/build/module/lib/client.js +0 -44
  262. package/build/module/lib/errors.d.ts +0 -53
  263. package/build/module/lib/errors.js +0 -113
  264. package/build/module/lib/segment/client.d.ts +0 -62
  265. package/build/module/lib/segment/client.js +0 -94
  266. package/build/module/lib/segment/iterator.js +0 -248
  267. package/build/module/lib/segment/iterator.spec.js +0 -68
  268. package/build/module/lib/segment/payload.d.ts +0 -16
  269. package/build/module/lib/segment/payload.js +0 -10
  270. package/build/module/lib/segment/splitter.d.ts +0 -7
  271. package/build/module/lib/segment/splitter.js +0 -26
  272. package/build/module/lib/segment/typed.d.ts +0 -15
  273. package/build/module/lib/segment/typed.js +0 -49
  274. package/build/module/lib/segment/validator.d.ts +0 -22
  275. package/build/module/lib/segment/validator.js +0 -60
  276. package/build/module/lib/segment/writer.d.ts +0 -98
  277. package/build/module/lib/segment/writer.js +0 -183
  278. package/build/module/lib/segment/writer.spec.js +0 -85
  279. package/build/module/lib/telem.d.ts +0 -395
  280. package/build/module/lib/telem.js +0 -545
  281. package/build/module/lib/telem.spec.js +0 -147
  282. package/build/module/lib/transport.d.ts +0 -10
  283. package/build/module/lib/transport.js +0 -22
  284. package/build/module/lib/user/payload.d.ts +0 -12
  285. package/build/module/lib/user/payload.js +0 -6
  286. package/build/module/lib/util/telem.d.ts +0 -2
  287. package/build/module/lib/util/telem.js +0 -9
  288. package/build/module/setupspecs.d.ts +0 -4
  289. package/build/module/setupspecs.js +0 -16
  290. /package/{build/main/lib → dist/auth}/auth.spec.d.ts +0 -0
  291. /package/{build/main/lib → dist}/channel/channel.spec.d.ts +0 -0
  292. /package/{build/main/lib/segment/iterator.spec.d.ts → dist/connection/connection.spec.d.ts} +0 -0
  293. /package/{build/main/lib/segment/writer.spec.d.ts → dist/control/state.spec.d.ts} +0 -0
  294. /package/{build/main/lib/telem.spec.d.ts → dist/framer/frame.spec.d.ts} +0 -0
  295. /package/{build/module/lib/segment → dist/framer}/iterator.spec.d.ts +0 -0
  296. /package/{build/module/lib/auth.spec.d.ts → dist/framer/streamer.spec.d.ts} +0 -0
  297. /package/{build/module/lib/segment → dist/framer}/writer.spec.d.ts +0 -0
  298. /package/{build/module/lib/channel/channel.spec.d.ts → dist/label/label.spec.d.ts} +0 -0
  299. /package/{build/module/lib/telem.spec.d.ts → dist/ontology/group/group.spec.d.ts} +0 -0
@@ -1,35 +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 __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
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.Channel = exports.ValidationError = exports.UnexpectedError = exports.RouteError = exports.QueryError = exports.ParseError = exports.GeneralError = exports.ContiguityError = exports.AuthError = exports.Synnax = void 0;
21
- var client_1 = require("./lib/client");
22
- Object.defineProperty(exports, "Synnax", { enumerable: true, get: function () { return __importDefault(client_1).default; } });
23
- __exportStar(require("./lib/telem"), exports);
24
- var errors_1 = require("./lib/errors");
25
- Object.defineProperty(exports, "AuthError", { enumerable: true, get: function () { return errors_1.AuthError; } });
26
- Object.defineProperty(exports, "ContiguityError", { enumerable: true, get: function () { return errors_1.ContiguityError; } });
27
- Object.defineProperty(exports, "GeneralError", { enumerable: true, get: function () { return errors_1.GeneralError; } });
28
- Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return errors_1.ParseError; } });
29
- Object.defineProperty(exports, "QueryError", { enumerable: true, get: function () { return errors_1.QueryError; } });
30
- Object.defineProperty(exports, "RouteError", { enumerable: true, get: function () { return errors_1.RouteError; } });
31
- Object.defineProperty(exports, "UnexpectedError", { enumerable: true, get: function () { return errors_1.UnexpectedError; } });
32
- Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
33
- var client_2 = require("./lib/channel/client");
34
- Object.defineProperty(exports, "Channel", { enumerable: true, get: function () { return client_2.Channel; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBaUQ7QUFBeEMsaUhBQUEsT0FBTyxPQUFVO0FBQzFCLDhDQUE0QjtBQUM1Qix1Q0FTc0I7QUFScEIsbUdBQUEsU0FBUyxPQUFBO0FBQ1QseUdBQUEsZUFBZSxPQUFBO0FBQ2Ysc0dBQUEsWUFBWSxPQUFBO0FBQ1osb0dBQUEsVUFBVSxPQUFBO0FBQ1Ysb0dBQUEsVUFBVSxPQUFBO0FBQ1Ysb0dBQUEsVUFBVSxPQUFBO0FBQ1YseUdBQUEsZUFBZSxPQUFBO0FBQ2YseUdBQUEsZUFBZSxPQUFBO0FBRWpCLCtDQUErQztBQUF0QyxpR0FBQSxPQUFPLE9BQUEifQ==
@@ -1,54 +0,0 @@
1
- import { HTTPClientFactory, Middleware } from '@synnaxlabs/freighter';
2
- import { z } from 'zod';
3
- import { UserPayload } from './user/payload';
4
- export declare const tokenMiddleware: (token: () => Promise<string>) => Middleware;
5
- export declare const InsecureCredentialsSchema: z.ZodObject<{
6
- username: z.ZodString;
7
- password: z.ZodString;
8
- }, "strip", z.ZodTypeAny, {
9
- username: string;
10
- password: string;
11
- }, {
12
- username: string;
13
- password: string;
14
- }>;
15
- export declare type InsecureCredentials = z.infer<typeof InsecureCredentialsSchema>;
16
- export declare const TokenResponseSchema: z.ZodObject<{
17
- token: z.ZodString;
18
- user: z.ZodObject<{
19
- key: z.ZodString;
20
- username: z.ZodString;
21
- }, "strip", z.ZodTypeAny, {
22
- username: string;
23
- key: string;
24
- }, {
25
- username: string;
26
- key: string;
27
- }>;
28
- }, "strip", z.ZodTypeAny, {
29
- token: string;
30
- user: {
31
- username: string;
32
- key: string;
33
- };
34
- }, {
35
- token: string;
36
- user: {
37
- username: string;
38
- key: string;
39
- };
40
- }>;
41
- export declare type TokenResponse = z.infer<typeof TokenResponseSchema>;
42
- export default class AuthenticationClient {
43
- private static ENDPOINT;
44
- private token;
45
- private client;
46
- private credentials;
47
- authenticating: Promise<void> | undefined;
48
- authenticated: boolean;
49
- user: UserPayload | undefined;
50
- constructor(factory: HTTPClientFactory, creds: InsecureCredentials);
51
- authenticate(): void;
52
- private maybeWaitAuthenticated;
53
- middleware(): Middleware;
54
- }
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TokenResponseSchema = exports.InsecureCredentialsSchema = exports.tokenMiddleware = void 0;
4
- const zod_1 = require("zod");
5
- const errors_1 = require("./errors");
6
- const payload_1 = require("./user/payload");
7
- const tokenMiddleware = (token) => {
8
- return async (md, next) => {
9
- md.params['Authorization'] = `Bearer ${await token()}`;
10
- return await next(md);
11
- };
12
- };
13
- exports.tokenMiddleware = tokenMiddleware;
14
- exports.InsecureCredentialsSchema = zod_1.z.object({
15
- username: zod_1.z.string(),
16
- password: zod_1.z.string(),
17
- });
18
- exports.TokenResponseSchema = zod_1.z.object({
19
- token: zod_1.z.string(),
20
- user: payload_1.UserPayloadSchema,
21
- });
22
- class AuthenticationClient {
23
- constructor(factory, creds) {
24
- this.client = factory.postClient();
25
- this.credentials = creds;
26
- this.authenticated = false;
27
- this.authenticate();
28
- }
29
- authenticate() {
30
- this.authenticating = new Promise((resolve, reject) => {
31
- this.client
32
- .send(AuthenticationClient.ENDPOINT, this.credentials, exports.TokenResponseSchema)
33
- .then(([res, err]) => {
34
- if (err) {
35
- reject(err);
36
- return;
37
- }
38
- this.token = res === null || res === void 0 ? void 0 : res.token;
39
- this.user = res === null || res === void 0 ? void 0 : res.user;
40
- this.authenticated = true;
41
- resolve();
42
- });
43
- });
44
- }
45
- async maybeWaitAuthenticated() {
46
- if (this.authenticating)
47
- await this.authenticating;
48
- this.authenticating = undefined;
49
- }
50
- middleware() {
51
- return (0, exports.tokenMiddleware)(async () => {
52
- await this.maybeWaitAuthenticated();
53
- if (!this.token) {
54
- throw new errors_1.AuthError('[auth] - attempting to authenticate without a token');
55
- }
56
- return this.token;
57
- });
58
- }
59
- }
60
- exports.default = AuthenticationClient;
61
- AuthenticationClient.ENDPOINT = '/auth/login';
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSw2QkFBd0I7QUFFeEIscUNBQXFDO0FBQ3JDLDRDQUFnRTtBQUV6RCxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQTRCLEVBQWMsRUFBRTtJQUMxRSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxVQUFVLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN2RCxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUxXLFFBQUEsZUFBZSxtQkFLMUI7QUFFVyxRQUFBLHlCQUF5QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEQsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDckIsQ0FBQyxDQUFDO0FBSVUsUUFBQSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLElBQUksRUFBRSwyQkFBaUI7Q0FDeEIsQ0FBQyxDQUFDO0FBSUgsTUFBcUIsb0JBQW9CO0lBU3ZDLFlBQVksT0FBMEIsRUFBRSxLQUEwQjtRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxNQUFNO2lCQUNSLElBQUksQ0FDSCxvQkFBb0IsQ0FBQyxRQUFRLEVBQzdCLElBQUksQ0FBQyxXQUFXLEVBQ2hCLDJCQUFtQixDQUNwQjtpQkFDQSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO2dCQUNuQixJQUFJLEdBQUcsRUFBRTtvQkFDUCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ1osT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsc0JBQXNCO1FBQ2xDLElBQUksSUFBSSxDQUFDLGNBQWM7WUFBRSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUEsdUJBQWUsRUFBQyxLQUFLLElBQUksRUFBRTtZQUNoQyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNmLE1BQU0sSUFBSSxrQkFBUyxDQUNqQixxREFBcUQsQ0FDdEQsQ0FBQzthQUNIO1lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFwREgsdUNBcURDO0FBcERnQiw2QkFBUSxHQUFHLGFBQWEsQ0FBQyJ9
@@ -1,39 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const freighter_1 = require("@synnaxlabs/freighter");
7
- const ava_1 = __importDefault(require("ava"));
8
- const setupspecs_1 = require("../setupspecs");
9
- const auth_1 = __importDefault(require("./auth"));
10
- const errors_1 = require("./errors");
11
- const transport_1 = __importDefault(require("./transport"));
12
- (0, ava_1.default)('[auth] - valid credentials', async (t) => {
13
- const transport = new transport_1.default(new freighter_1.URL({ host: setupspecs_1.HOST, port: setupspecs_1.PORT }));
14
- const client = new auth_1.default(transport.httpFactory, {
15
- username: 'synnax',
16
- password: 'seldon',
17
- });
18
- await client.authenticating;
19
- t.assert(client.authenticated);
20
- });
21
- (0, ava_1.default)('[auth] - invalid credentials', async (t) => {
22
- const transport = new transport_1.default(new freighter_1.URL({ host: setupspecs_1.HOST, port: setupspecs_1.PORT }));
23
- const client = new auth_1.default(transport.httpFactory, {
24
- username: 'synnax',
25
- password: 'wrong',
26
- });
27
- try {
28
- await client.authenticating;
29
- t.assert(false);
30
- }
31
- catch (e) {
32
- t.assert(!client.authenticated);
33
- t.assert(e instanceof errors_1.AuthError);
34
- if (e instanceof errors_1.AuthError) {
35
- t.is(e.message, '[synnax] - invalid credentials');
36
- }
37
- }
38
- });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdXRoLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBNEM7QUFDNUMsOENBQXVCO0FBRXZCLDhDQUEyQztBQUUzQyxrREFBMEM7QUFDMUMscUNBQXFDO0FBQ3JDLDREQUFvQztBQUVwQyxJQUFBLGFBQUksRUFBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxtQkFBUyxDQUFDLElBQUksZUFBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFvQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7UUFDN0QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsOEJBQThCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQy9DLE1BQU0sU0FBUyxHQUFHLElBQUksbUJBQVMsQ0FBQyxJQUFJLGVBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBSSxFQUFFLElBQUksRUFBRSxpQkFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBb0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO1FBQzdELFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUMsQ0FBQztJQUNILElBQUk7UUFDRixNQUFNLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNqQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxrQkFBUyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksa0JBQVMsRUFBRTtZQUMxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRDtLQUNGO0FBQ0gsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const ava_1 = __importDefault(require("ava"));
7
- const setupspecs_1 = require("../../setupspecs");
8
- const errors_1 = require("../errors");
9
- const telem_1 = require("../telem");
10
- const client = (0, setupspecs_1.newClient)();
11
- (0, ava_1.default)('Channel - create', async (t) => {
12
- const channel = await client.channel.create({
13
- name: 'test',
14
- nodeId: 1,
15
- rate: telem_1.Rate.Hz(1),
16
- dataType: telem_1.DataType.Float32,
17
- });
18
- t.is(channel.name, 'test');
19
- t.is(channel.nodeId, 1);
20
- t.deepEqual(channel.rate, telem_1.Rate.Hz(1));
21
- t.deepEqual(channel.dataType, telem_1.DataType.Float32);
22
- });
23
- (0, ava_1.default)('Channel - retrieve by key', async (t) => {
24
- const channel = await client.channel.create({
25
- name: 'test',
26
- nodeId: 1,
27
- rate: telem_1.Rate.Hz(1),
28
- dataType: telem_1.DataType.Float32,
29
- });
30
- const retrieved = (await client.channel.retrieveByKeys(channel.key))[0];
31
- t.is(retrieved.name, 'test');
32
- t.is(retrieved.nodeId, 1);
33
- t.deepEqual(retrieved.rate, telem_1.Rate.Hz(1));
34
- t.deepEqual(retrieved.dataType, telem_1.DataType.Float32);
35
- });
36
- (0, ava_1.default)('Channel - retrieve by key - not found', async (t) => {
37
- const err = await t.throwsAsync(async () => {
38
- await client.channel.retrieveByKeys('1-1000');
39
- });
40
- t.true(err instanceof errors_1.QueryError);
41
- });
42
- (0, ava_1.default)('Channel - retrieve by node id', async (t) => {
43
- const retrieved = await client.channel.retrieveByNodeId(1);
44
- t.true(retrieved.length > 0);
45
- retrieved.forEach((ch) => {
46
- t.is(ch.nodeId, 1);
47
- });
48
- });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jaGFubmVsL2NoYW5uZWwuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUF1QjtBQUV2QixpREFBNkM7QUFDN0Msc0NBQXVDO0FBQ3ZDLG9DQUEwQztBQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFTLEdBQUUsQ0FBQztBQUUzQixJQUFBLGFBQUksRUFBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLFlBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLFFBQVEsRUFBRSxnQkFBUSxDQUFDLE9BQU87S0FDM0IsQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxnQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzVDLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUMsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsQ0FBQztRQUNULElBQUksRUFBRSxZQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQixRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxPQUFPO0tBQzNCLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxZQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLGdCQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLGFBQUksRUFBQyx1Q0FBdUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3pDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxtQkFBVSxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLGFBQUksRUFBQywrQkFBK0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDaEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1,94 +0,0 @@
1
- import SegmentClient from '../segment/client';
2
- import { DataType, Density, Rate, TypedArray, UnparsedTimeStamp } from '../telem';
3
- import ChannelCreator from './creator';
4
- import { CreateChannelProps } from './creator';
5
- import { ChannelPayload } from './payload';
6
- import ChannelRetriever from './retriever';
7
- /**
8
- * Represents a Channel in a Synnax database. It should not be instantiated
9
- * directly, but rather created or retrieved from a {@link ChannelClient}.
10
- */
11
- export declare class Channel {
12
- private readonly segmentClient;
13
- private payload;
14
- constructor(payload: ChannelPayload, segmentClient: SegmentClient);
15
- get key(): string;
16
- get name(): string;
17
- get nodeId(): number;
18
- get rate(): Rate;
19
- get dataType(): DataType;
20
- get density(): Density;
21
- /**
22
- * Reads telemetry from the channel between the two timestamps.
23
- *
24
- * @param start - The starting timestamp of the range to read from.
25
- * @param end - The ending timestamp of the range to read from.
26
- * @returns a typed array containing the retrieved
27
- */
28
- read(start: UnparsedTimeStamp, end: UnparsedTimeStamp): Promise<TypedArray>;
29
- /**
30
- * Writes telemetry to the channel starting at the given timestamp.
31
- *
32
- * @param start - The starting timestamp of the first sample in data.
33
- * @param data - THe telemetry to write to the channel.
34
- */
35
- write(start: UnparsedTimeStamp, data: TypedArray): Promise<boolean>;
36
- }
37
- /** The core client class for executing channel operations against a Synnax
38
- * database .
39
- * */
40
- export default class ChannelClient {
41
- private readonly segmentClient;
42
- private readonly retriever;
43
- private readonly creator;
44
- constructor(segmentClient: SegmentClient, retriever: ChannelRetriever, creator: ChannelCreator);
45
- /**
46
- * Creates a new channel with the given properties.
47
- *
48
- * @param props.rate - The rate of the channel.
49
- * @param props.dataType - The data type of the channel.
50
- * @param props.name - The name of the channel. Optional.
51
- * @param props.nodeId - The ID of the node that holds the lease on the channel.
52
- * If you don't know what this is, don't worry about it.
53
- * @returns the created channel.
54
- */
55
- create(props: CreateChannelProps): Promise<Channel>;
56
- /**
57
- * creates N channels using the given parameters as a template.
58
- *
59
- * @param props.rate - The rate of the channel.
60
- * @param props.dataType - The data type of the channel.
61
- * @param props.name - The name of the channel. Optional.
62
- * @param props.nodeId - The ID of the node that holds the lease on the channel.
63
- * If you don't know what this is, don't worry about it.
64
- * @param props.count - The number of channels to create.
65
- * @returns the created channels.
66
- */
67
- createMany(props: CreateChannelProps & {
68
- count: number;
69
- }): Promise<Channel[]>;
70
- /**
71
- * Retrieves channels with the given keys.
72
- *
73
- * @param keys - The keys of the channels to retrieve.
74
- * @throws QueryError if any of the channels can't be found.
75
- * @returns the retrieved channels.
76
- */
77
- retrieveByKeys(...keys: string[]): Promise<Channel[]>;
78
- /**
79
- * Retrieves channels with the given names.
80
- *
81
- * @param names - The list of names to retrieve channels for.
82
- * @returns A list of retrieved channels matching the given names. If a channel
83
- * with a given name can't be found, it will be omitted from the list.
84
- */
85
- retrieveByNames(...names: string[]): Promise<Channel[]>;
86
- /**
87
- * Retrieves channels whose lease node is the given ID.
88
- *
89
- * @param nodeId - The ID of the node to retrieve channels for.
90
- * @returns A list of retrieved channels matching the given node ID.
91
- */
92
- retrieveByNodeId(nodeId: number): Promise<Channel[]>;
93
- private sugar;
94
- }
@@ -1,134 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Channel = void 0;
4
- /**
5
- * Represents a Channel in a Synnax database. It should not be instantiated
6
- * directly, but rather created or retrieved from a {@link ChannelClient}.
7
- */
8
- class Channel {
9
- constructor(payload, segmentClient) {
10
- this.payload = payload;
11
- this.segmentClient = segmentClient;
12
- }
13
- get key() {
14
- if (!this.payload.key) {
15
- throw new Error('Channel key is not set');
16
- }
17
- return this.payload.key;
18
- }
19
- get name() {
20
- if (!this.payload.name) {
21
- throw new Error('Channel name is not set');
22
- }
23
- return this.payload.name;
24
- }
25
- get nodeId() {
26
- if (this.payload.nodeId === undefined) {
27
- throw new Error('Channel nodeId is not set');
28
- }
29
- return this.payload.nodeId;
30
- }
31
- get rate() {
32
- return this.payload.rate;
33
- }
34
- get dataType() {
35
- return this.payload.dataType;
36
- }
37
- get density() {
38
- if (!this.payload.density) {
39
- throw new Error('Channel density is not set');
40
- }
41
- return this.payload.density;
42
- }
43
- /**
44
- * Reads telemetry from the channel between the two timestamps.
45
- *
46
- * @param start - The starting timestamp of the range to read from.
47
- * @param end - The ending timestamp of the range to read from.
48
- * @returns a typed array containing the retrieved
49
- */
50
- async read(start, end) {
51
- return await this.segmentClient.read(this.key, start, end);
52
- }
53
- /**
54
- * Writes telemetry to the channel starting at the given timestamp.
55
- *
56
- * @param start - The starting timestamp of the first sample in data.
57
- * @param data - THe telemetry to write to the channel.
58
- */
59
- async write(start, data) {
60
- return await this.segmentClient.write(this.key, start, data);
61
- }
62
- }
63
- exports.Channel = Channel;
64
- /** The core client class for executing channel operations against a Synnax
65
- * database .
66
- * */
67
- class ChannelClient {
68
- constructor(segmentClient, retriever, creator) {
69
- this.segmentClient = segmentClient;
70
- this.retriever = retriever;
71
- this.creator = creator;
72
- }
73
- /**
74
- * Creates a new channel with the given properties.
75
- *
76
- * @param props.rate - The rate of the channel.
77
- * @param props.dataType - The data type of the channel.
78
- * @param props.name - The name of the channel. Optional.
79
- * @param props.nodeId - The ID of the node that holds the lease on the channel.
80
- * If you don't know what this is, don't worry about it.
81
- * @returns the created channel.
82
- */
83
- async create(props) {
84
- return (await this.createMany(Object.assign(Object.assign({}, props), { count: 1 })))[0];
85
- }
86
- /**
87
- * creates N channels using the given parameters as a template.
88
- *
89
- * @param props.rate - The rate of the channel.
90
- * @param props.dataType - The data type of the channel.
91
- * @param props.name - The name of the channel. Optional.
92
- * @param props.nodeId - The ID of the node that holds the lease on the channel.
93
- * If you don't know what this is, don't worry about it.
94
- * @param props.count - The number of channels to create.
95
- * @returns the created channels.
96
- */
97
- async createMany(props) {
98
- return this.sugar(...(await this.creator.createMany(props)));
99
- }
100
- /**
101
- * Retrieves channels with the given keys.
102
- *
103
- * @param keys - The keys of the channels to retrieve.
104
- * @throws QueryError if any of the channels can't be found.
105
- * @returns the retrieved channels.
106
- */
107
- async retrieveByKeys(...keys) {
108
- return this.sugar(...(await this.retriever.retrieveByKeys(...keys)));
109
- }
110
- /**
111
- * Retrieves channels with the given names.
112
- *
113
- * @param names - The list of names to retrieve channels for.
114
- * @returns A list of retrieved channels matching the given names. If a channel
115
- * with a given name can't be found, it will be omitted from the list.
116
- */
117
- async retrieveByNames(...names) {
118
- return this.sugar(...(await this.retriever.retrieveByNames(...names)));
119
- }
120
- /**
121
- * Retrieves channels whose lease node is the given ID.
122
- *
123
- * @param nodeId - The ID of the node to retrieve channels for.
124
- * @returns A list of retrieved channels matching the given node ID.
125
- */
126
- async retrieveByNodeId(nodeId) {
127
- return this.sugar(...(await this.retriever.retrieveByNodeID(nodeId)));
128
- }
129
- sugar(...payloads) {
130
- return payloads.map((p) => new Channel(p, this.segmentClient));
131
- }
132
- }
133
- exports.default = ChannelClient;
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jaGFubmVsL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjQTs7O0dBR0c7QUFDSCxNQUFhLE9BQU87SUFJbEIsWUFBWSxPQUF1QixFQUFFLGFBQTRCO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUNSLEtBQXdCLEVBQ3hCLEdBQXNCO1FBRXRCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQXdCLEVBQUUsSUFBZ0I7UUFDcEQsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQXBFRCwwQkFvRUM7QUFFRDs7S0FFSztBQUNMLE1BQXFCLGFBQWE7SUFLaEMsWUFDRSxhQUE0QixFQUM1QixTQUEyQixFQUMzQixPQUF1QjtRQUV2QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUF5QjtRQUNwQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxpQ0FBTSxLQUFLLEtBQUUsS0FBSyxFQUFFLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUNkLEtBQTZDO1FBRTdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEtBQWU7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sS0FBSyxDQUFDLEdBQUcsUUFBMEI7UUFDekMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGO0FBakZELGdDQWlGQyJ9
@@ -1,19 +0,0 @@
1
- import { UnparsedDataType, UnparsedRate } from '../telem';
2
- import Transport from '../transport';
3
- import { ChannelPayload } from './payload';
4
- export declare type CreateChannelProps = {
5
- rate: UnparsedRate;
6
- dataType: UnparsedDataType;
7
- name?: string;
8
- nodeId?: number;
9
- };
10
- export default class Creator {
11
- private static ENDPOINT;
12
- private client;
13
- constructor(transport: Transport);
14
- create(props: CreateChannelProps): Promise<ChannelPayload>;
15
- createMany({ rate, dataType, name, nodeId, count, }: CreateChannelProps & {
16
- count: number;
17
- }): Promise<ChannelPayload[]>;
18
- private execute;
19
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const zod_1 = require("zod");
4
- const telem_1 = require("../telem");
5
- const payload_1 = require("./payload");
6
- const RequestSchema = zod_1.z.object({
7
- channel: payload_1.ChannelPayloadSchema,
8
- count: zod_1.z.number(),
9
- });
10
- const ResponseSchema = zod_1.z.object({
11
- channels: payload_1.ChannelPayloadSchema.array(),
12
- });
13
- class Creator {
14
- constructor(transport) {
15
- this.client = transport.postClient();
16
- }
17
- async create(props) {
18
- const [channel] = await this.createMany(Object.assign(Object.assign({}, props), { count: 1 }));
19
- return channel;
20
- }
21
- async createMany({ rate, dataType, name = '', nodeId = 0, count = 1, }) {
22
- return (await this.execute({
23
- channel: {
24
- name,
25
- nodeId,
26
- rate: new telem_1.Rate(rate),
27
- dataType: new telem_1.DataType(dataType),
28
- },
29
- count,
30
- })).channels;
31
- }
32
- async execute(request) {
33
- const [res, err] = await this.client.send(Creator.ENDPOINT, request,
34
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
35
- // @ts-ignore
36
- ResponseSchema);
37
- if (err)
38
- throw err;
39
- return res;
40
- }
41
- }
42
- exports.default = Creator;
43
- Creator.ENDPOINT = '/channel/create';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY2hhbm5lbC9jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsNkJBQXdCO0FBRXhCLG9DQUEwRTtBQUcxRSx1Q0FBaUU7QUFFakUsTUFBTSxhQUFhLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QixPQUFPLEVBQUUsOEJBQW9CO0lBQzdCLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2xCLENBQUMsQ0FBQztBQUlILE1BQU0sY0FBYyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDOUIsUUFBUSxFQUFFLDhCQUFvQixDQUFDLEtBQUssRUFBRTtDQUN2QyxDQUFDLENBQUM7QUFXSCxNQUFxQixPQUFPO0lBSTFCLFlBQVksU0FBb0I7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBeUI7UUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsaUNBQU0sS0FBSyxLQUFFLEtBQUssRUFBRSxDQUFDLElBQUcsQ0FBQztRQUNoRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUNmLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxHQUFHLEVBQUUsRUFDVCxNQUFNLEdBQUcsQ0FBQyxFQUNWLEtBQUssR0FBRyxDQUFDLEdBQzhCO1FBQ3ZDLE9BQU8sQ0FDTCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakIsT0FBTyxFQUFFO2dCQUNQLElBQUk7Z0JBQ0osTUFBTTtnQkFDTixJQUFJLEVBQUUsSUFBSSxZQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQzthQUNqQztZQUNELEtBQUs7U0FDTixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUM7SUFDYixDQUFDO0lBRU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFnQjtRQUNwQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLE9BQU8sQ0FBQyxRQUFRLEVBQ2hCLE9BQU87UUFDUCw2REFBNkQ7UUFDN0QsYUFBYTtRQUNiLGNBQWMsQ0FDZixDQUFDO1FBQ0YsSUFBSSxHQUFHO1lBQUUsTUFBTSxHQUFHLENBQUM7UUFDbkIsT0FBTyxHQUFlLENBQUM7SUFDekIsQ0FBQzs7QUEzQ0gsMEJBNENDO0FBM0NnQixnQkFBUSxHQUFHLGlCQUFpQixDQUFDIn0=
@@ -1,25 +0,0 @@
1
- import { z } from 'zod';
2
- import { DataType, Density, Rate } from '../telem';
3
- export declare const ChannelPayloadSchema: z.ZodObject<{
4
- rate: z.ZodEffects<z.ZodNumber, Rate, number>;
5
- dataType: z.ZodEffects<z.ZodString, DataType, string>;
6
- key: z.ZodOptional<z.ZodDefault<z.ZodString>>;
7
- name: z.ZodOptional<z.ZodDefault<z.ZodString>>;
8
- nodeId: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
9
- density: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodNumber>, Density, number | undefined>>;
10
- }, "strip", z.ZodTypeAny, {
11
- key?: string | undefined;
12
- density?: Density | undefined;
13
- name?: string | undefined;
14
- nodeId?: number | undefined;
15
- rate: Rate;
16
- dataType: DataType;
17
- }, {
18
- key?: string | undefined;
19
- density?: number | undefined;
20
- name?: string | undefined;
21
- nodeId?: number | undefined;
22
- rate: number;
23
- dataType: string;
24
- }>;
25
- export declare type ChannelPayload = z.infer<typeof ChannelPayloadSchema>;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChannelPayloadSchema = void 0;
4
- const zod_1 = require("zod");
5
- const telem_1 = require("../telem");
6
- exports.ChannelPayloadSchema = zod_1.z.object({
7
- rate: zod_1.z.number().transform((n) => new telem_1.Rate(n)),
8
- dataType: zod_1.z.string().transform((s) => new telem_1.DataType(s)),
9
- key: zod_1.z.string().default('').optional(),
10
- name: zod_1.z.string().default('').optional(),
11
- nodeId: zod_1.z.number().default(0).optional(),
12
- density: zod_1.z
13
- .number()
14
- .default(0)
15
- .transform((n) => new telem_1.Density(n))
16
- .optional(),
17
- });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY2hhbm5lbC9wYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUV4QixvQ0FBbUQ7QUFFdEMsUUFBQSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hDLE9BQU8sRUFBRSxPQUFDO1NBQ1AsTUFBTSxFQUFFO1NBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNWLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEMsUUFBUSxFQUFFO0NBQ2QsQ0FBQyxDQUFDIn0=
@@ -1,9 +0,0 @@
1
- import { ChannelPayload } from './payload';
2
- import Retriever from './retriever';
3
- export default class Registry {
4
- private retriever;
5
- private channels;
6
- constructor(retriever: Retriever);
7
- get(key: string): Promise<ChannelPayload>;
8
- getN(...keys: string[]): Promise<ChannelPayload[]>;
9
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class Registry {
4
- constructor(retriever) {
5
- this.retriever = retriever;
6
- this.channels = new Map();
7
- }
8
- async get(key) {
9
- let channel = this.channels.get(key);
10
- if (channel === undefined) {
11
- channel = (await this.retriever.retrieveByKeys(key))[0];
12
- this.channels.set(key, channel);
13
- }
14
- return channel;
15
- }
16
- async getN(...keys) {
17
- const results = [];
18
- const retrieveKeys = [];
19
- keys.forEach((key) => {
20
- const channel = this.channels.get(key);
21
- if (channel === undefined)
22
- retrieveKeys.push(key);
23
- else
24
- results.push(channel);
25
- });
26
- if (retrieveKeys.length > 0) {
27
- const channels = await this.retriever.retrieveByKeys(...retrieveKeys);
28
- channels.forEach((channel) => {
29
- this.channels.set(channel.key, channel);
30
- results.push(channel);
31
- });
32
- }
33
- return results;
34
- }
35
- }
36
- exports.default = Registry;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NoYW5uZWwvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxNQUFxQixRQUFRO0lBSTNCLFlBQVksU0FBb0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3pCLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDakM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQWM7UUFDMUIsTUFBTSxPQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFlBQVksR0FBYSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksT0FBTyxLQUFLLFNBQVM7Z0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzs7Z0JBQzdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN0RSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQW5DRCwyQkFtQ0MifQ==