@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,553 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Size = exports.DataType = exports.TimeRange = exports.Density = exports.Rate = exports.TimeSpan = exports.TimeStamp = void 0;
4
- const freighter_1 = require("@synnaxlabs/freighter");
5
- const valueOfEncoder = (value) => value === null || value === void 0 ? void 0 : value.valueOf();
6
- /**
7
- * Represents a nanosecond precision UTC timestamp.
8
- */
9
- class TimeStamp extends Number {
10
- constructor(value) {
11
- super(value);
12
- }
13
- /**
14
- * Checks if the TimeStamp is equal to another TimeStamp.
15
- * @param other - the other TimeStamp to compare to.
16
- * @returns true if the TimeStamps are equal, false otherwise.
17
- */
18
- equals(other) {
19
- return this.valueOf() === new TimeStamp(other).valueOf();
20
- }
21
- /**
22
- * Creates a TimeSpan representing the duration between the two timestamps.
23
- * @param other - the other TimeStamp to compare to.
24
- * @returns a TimeSpan representing the duration between the two timestamps.
25
- * The span is guaranteed to be positive.
26
- */
27
- span(other) {
28
- return this.range(other).span();
29
- }
30
- /**
31
- * Creates a TimeRange spanning the given TimeStamp.
32
- * @param other - the other TimeStamp to compare to.
33
- * @returns a TimeRange spanning the given TimeStamp that is guaranteed to be valid,
34
- * regardless of the TimeStamp order.
35
- */
36
- range(other) {
37
- return new TimeRange(this, other).makeValid();
38
- }
39
- /**
40
- * Creates a TimeRange starting at the TimeStamp and spanning the given TimeSpan.
41
- * @param other - the TimeSpan to span.
42
- * @returns a TimeRange starting at the TimeStamp and spanning the given TimeSpan.
43
- * The TimeRange is guaranteed to be valid.
44
- */
45
- spanRange(other) {
46
- return this.range(this.add(other)).makeValid();
47
- }
48
- /**
49
- * Checks if the TimeStamp represents the unix epoch.
50
- * @returns true if the TimeStamp represents the unix epoch, false otherwise.
51
- */
52
- isZero() {
53
- return this.valueOf() === 0;
54
- }
55
- /**
56
- * Checks if the TimeStamp is after the given TimeStamp.
57
- * @param other - the other TimeStamp to compare to.
58
- * @returns true if the TimeStamp is after the given TimeStamp, false otherwise.
59
- */
60
- after(other) {
61
- return this.valueOf() > new TimeStamp(other).valueOf();
62
- }
63
- /**
64
- * Checks if the TimeStamp is after or equal to the given TimeStamp.
65
- * @param other - the other TimeStamp to compare to.
66
- * @returns true if the TimeStamp is after or equal to the given TimeStamp, false otherwise.
67
- */
68
- afterEq(other) {
69
- return this.valueOf() >= new TimeStamp(other).valueOf();
70
- }
71
- /**
72
- * Checks if the TimeStamp is before the given TimeStamp.
73
- * @param other - the other TimeStamp to compare to.
74
- * @returns true if the TimeStamp is before the given TimeStamp, false otherwise.
75
- */
76
- before(other) {
77
- return this.valueOf() < new TimeStamp(other).valueOf();
78
- }
79
- /**
80
- * Checks if TimeStamp is before or equal to the current timestamp.
81
- * @param other - the other TimeStamp to compare to.
82
- * @returns true if TimeStamp is before or equal to the current timestamp, false otherwise.
83
- */
84
- beforeEq(other) {
85
- return this.valueOf() <= new TimeStamp(other).valueOf();
86
- }
87
- /**
88
- * Adds a TimeSpan to the TimeStamp.
89
- * @param span - the TimeSpan to add.
90
- * @returns a new TimeStamp representing the sum of the TimeStamp and TimeSpan.
91
- */
92
- add(span) {
93
- return new TimeStamp(this.valueOf() + span.valueOf());
94
- }
95
- /**
96
- * Subtracts a TimeSpan from the TimeStamp.
97
- * @param span - the TimeSpan to subtract.
98
- * @returns a new TimeStamp representing the difference of the TimeStamp and TimeSpan.
99
- */
100
- sub(span) {
101
- return new TimeStamp(this.valueOf() - span.valueOf());
102
- }
103
- }
104
- exports.TimeStamp = TimeStamp;
105
- /** The maximum possible value for a timestamp */
106
- TimeStamp.Max = new TimeStamp(TimeStamp.MAX_VALUE);
107
- /** The minimum possible value for a timestamp */
108
- TimeStamp.Min = new TimeStamp(TimeStamp.MIN_VALUE);
109
- /** The unix epoch */
110
- TimeStamp.Zero = new TimeStamp(0);
111
- /**
112
- * TimeSpan represents a nanosecond precision duration.
113
- */
114
- class TimeSpan extends Number {
115
- constructor(value) {
116
- super(value);
117
- }
118
- /**
119
- * @returns the number of seconds in the TimeSpan.
120
- */
121
- seconds() {
122
- return this.valueOf() / TimeSpan.Seconds(1).valueOf();
123
- }
124
- /**
125
- * Checks if the TimeSpan represents a zero duration.
126
- * @returns true if the TimeSpan represents a zero duration, false otherwise.
127
- */
128
- isZero() {
129
- return this.valueOf() === 0;
130
- }
131
- /**
132
- * Checks if the TimeSpan is equal to another TimeSpan.
133
- * @returns true if the TimeSpans are equal, false otherwise.
134
- */
135
- equals(other) {
136
- return this.valueOf() === new TimeSpan(other).valueOf();
137
- }
138
- /**
139
- * Adds a TimeSpan to the TimeSpan.
140
- * @returns a new TimeSpan representing the sum of the two TimeSpans.
141
- */
142
- add(other) {
143
- return new TimeSpan(this.valueOf() + new TimeSpan(other).valueOf());
144
- }
145
- /**
146
- * Creates a TimeSpan representing the duration between the two timestamps.
147
- * @param other
148
- */
149
- sub(other) {
150
- return new TimeSpan(this.valueOf() - new TimeSpan(other).valueOf());
151
- }
152
- /**
153
- * Creates a TimeSpan representing the given number of nanoseconds.
154
- * @param value - the number of nanoseconds.
155
- * @returns a TimeSpan representing the given number of nanoseconds.
156
- */
157
- static Nanoseconds(value = 1) {
158
- return new TimeSpan(value);
159
- }
160
- /**
161
- * Creates a TimeSpan representing the given number of microseconds.
162
- * @param value - the number of microseconds.
163
- * @returns a TimeSpan representing the given number of microseconds.
164
- */
165
- static Microseconds(value = 1) {
166
- return TimeSpan.Nanoseconds(value.valueOf() * 1000);
167
- }
168
- /**
169
- * Creates a TimeSpan representing the given number of milliseconds.
170
- * @param value - the number of milliseconds.
171
- * @returns a TimeSpan representing the given number of milliseconds.
172
- */
173
- static Milliseconds(value = 1) {
174
- return TimeSpan.Microseconds(value.valueOf() * 1000);
175
- }
176
- /**
177
- * Creates a TimeSpan representing the given number of seconds.
178
- * @param value - the number of seconds.
179
- * @returns a TimeSpan representing the given number of seconds.
180
- */
181
- static Seconds(value = 1) {
182
- return TimeSpan.Milliseconds(value.valueOf() * 1000);
183
- }
184
- /**
185
- * Creates a TimeSpan representing the given number of minutes.
186
- * @param value - the number of minutes.
187
- * @returns a TimeSpan representing the given number of minutes.
188
- */
189
- static Minutes(value = 1) {
190
- return TimeSpan.Seconds(value.valueOf() * 60);
191
- }
192
- /**
193
- * Creates a TimeSpan representing the given number of hours.
194
- * @param value - the number of hours.
195
- * @returns a TimeSpan representing the given number of hours.
196
- */
197
- static Hours(value = 1) {
198
- return TimeSpan.Minutes(value.valueOf() * 60);
199
- }
200
- }
201
- exports.TimeSpan = TimeSpan;
202
- /**
203
- * A nanosecond.
204
- */
205
- TimeSpan.Nanosecond = TimeSpan.Nanoseconds(1);
206
- /**
207
- * A microsecond.
208
- */
209
- TimeSpan.Microsecond = TimeSpan.Microseconds(1);
210
- /**
211
- * A millisecond.
212
- */
213
- TimeSpan.Millisecond = TimeSpan.Milliseconds(1);
214
- /**
215
- * A second.
216
- */
217
- TimeSpan.Second = TimeSpan.Seconds(1);
218
- /**
219
- * A minute.
220
- */
221
- TimeSpan.Minute = TimeSpan.Minutes(1);
222
- /**
223
- * Represents an hour.
224
- */
225
- TimeSpan.Hour = TimeSpan.Hours(1);
226
- /**
227
- * The maximum possible value for a TimeSpan.
228
- */
229
- TimeSpan.Max = new TimeSpan(TimeSpan.MAX_VALUE);
230
- /**
231
- * The minimum possible value for a TimeSpan.
232
- */
233
- TimeSpan.Min = new TimeSpan(TimeSpan.MIN_VALUE);
234
- /**
235
- * The zero value for a TimeSpan.
236
- */
237
- TimeSpan.Zero = new TimeSpan(0);
238
- /**
239
- * Rate represents a data rate in Hz.
240
- */
241
- class Rate extends Number {
242
- constructor(value) {
243
- super(value);
244
- }
245
- /**
246
- * @returns the number of seconds in the Rate.
247
- */
248
- equals(other) {
249
- return this.valueOf() === new Rate(other).valueOf();
250
- }
251
- /**
252
- * Calculates the period of the Rate as a TimeSpan.
253
- * @returns a TimeSpan representing the period of the Rate.
254
- */
255
- period() {
256
- return new TimeSpan(TimeSpan.Seconds(this.valueOf()).valueOf());
257
- }
258
- /**
259
- * Calculates the number of samples in the given TimeSpan at this rate.
260
- * @param duration - the duration to calculate the sample count from.
261
- * @returns the number of samples in the given TimeSpan at this rate.
262
- */
263
- sampleCount(duration) {
264
- return new TimeSpan(duration).seconds() * this.valueOf();
265
- }
266
- /**
267
- * Calculates the number of bytes in the given TimeSpan at this rate.
268
- * @param span - the duration to calculate the byte count from.
269
- * @param density - the density of the data in bytes per sample.
270
- * @returns the number of bytes in the given TimeSpan at this rate.
271
- */
272
- byteCount(span, density) {
273
- return this.sampleCount(span) * new Density(density).valueOf();
274
- }
275
- /**
276
- * Calculates a TimeSpan given the number of samples at this rate.
277
- * @param sampleCount - the number of samples in the span.
278
- * @returns a TimeSpan that corresponds to the given number of samples.
279
- */
280
- span(sampleCount) {
281
- return TimeSpan.Seconds(sampleCount / this.valueOf());
282
- }
283
- /**
284
- * Calculates a TimeSpan given the number of bytes at this rate.
285
- * @param size - the number of bytes in the span.
286
- * @param density - the density of the data in bytes per sample.
287
- * @returns a TimeSpan that corresponds to the given number of bytes.
288
- */
289
- byteSpan(size, density) {
290
- return this.span(size.valueOf() / density.valueOf());
291
- }
292
- /**
293
- * Creates a Rate representing the given number of Hz.
294
- * @param value - the number of Hz.
295
- * @returns a Rate representing the given number of Hz.
296
- */
297
- static Hz(value) {
298
- return new Rate(value);
299
- }
300
- /**
301
- * Creates a Rate representing the given number of kHz.
302
- * @param value - the number of kHz.
303
- * @returns a Rate representing the given number of kHz.
304
- */
305
- static KHz(value) {
306
- return Rate.Hz(value * 1000);
307
- }
308
- }
309
- exports.Rate = Rate;
310
- /**
311
- * Density represents the number of bytes in a value.
312
- */
313
- class Density extends Number {
314
- /**
315
- * Creates a Density representing the given number of bytes per value.
316
- * @param value - the number of bytes per value.
317
- * @returns a Density representing the given number of bytes per value.
318
- * @constructor
319
- */
320
- constructor(value) {
321
- super(value);
322
- }
323
- }
324
- exports.Density = Density;
325
- /**
326
- * Represents an Unknown/Invalid Density.
327
- */
328
- Density.Unknown = new Density(0);
329
- /**
330
- * Represents a Density of 64 bits per value.
331
- */
332
- Density.Bit64 = new Density(8);
333
- /**
334
- * Represents a Density of 32 bits per value.
335
- */
336
- Density.Bit32 = new Density(4);
337
- /**
338
- * Represents a Density of 16 bits per value.
339
- */
340
- Density.Bit16 = new Density(2);
341
- /**
342
- * Represents a Density of 8 bits per value.
343
- */
344
- Density.Bit8 = new Density(1);
345
- /**
346
- * TimeRange represents a range of time between two TimeStamps. It's important
347
- * to note that the start of the range is inclusive, while the end of the range
348
- * is exclusive.
349
- *
350
- * @property start - a TimeStamp representing the start of the range.
351
- * @property end - a Timestamp representing the end of the range.
352
- */
353
- class TimeRange {
354
- /**
355
- * Creates a TimeRange from the given start and end TimeStamps.
356
- * @param start - a TimeStamp representing the start of the range.
357
- * @param end - a TimeStamp representing the end of the range.
358
- */
359
- constructor(start, end) {
360
- this.start = new TimeStamp(start);
361
- this.end = new TimeStamp(end);
362
- }
363
- /**
364
- * @returns the TimeSpan occupied by the TimeRange.
365
- */
366
- span() {
367
- return new TimeSpan(this.end.valueOf() - this.start.valueOf());
368
- }
369
- /**
370
- * Checks if the timestamp is valid i.e. the start is before the end.
371
- * @returns true if the TimeRange is valid.
372
- */
373
- isValid() {
374
- return this.start.valueOf() <= this.end.valueOf();
375
- }
376
- /**
377
- * Makes sure the TimeRange is valid i.e. the start is before the end.
378
- * @returns a TimeRange that is valid.
379
- */
380
- makeValid() {
381
- return this.isValid() ? this : this.swap();
382
- }
383
- /**
384
- * Checks if the TimeRange has a zero span.
385
- * @returns true if the TimeRange has a zero span.
386
- */
387
- isZero() {
388
- return this.span().isZero();
389
- }
390
- /**
391
- * Creates a new TimeRange with the start and end swapped.
392
- * @returns a TimeRange with the start and end swapped.
393
- */
394
- swap() {
395
- return new TimeRange(this.end, this.start);
396
- }
397
- /**
398
- * Checks if the TimeRange is equal to the given TimeRange.
399
- * @param other - the TimeRange to compare to.
400
- * @returns true if the TimeRange is equal to the given TimeRange.
401
- */
402
- equals(other) {
403
- return this.start.equals(other.start) && this.end.equals(other.end);
404
- }
405
- }
406
- exports.TimeRange = TimeRange;
407
- TimeRange.Max = new TimeRange(TimeStamp.Min, TimeStamp.Max);
408
- /**
409
- * DataType is a string that represents a data type.
410
- */
411
- class DataType extends String {
412
- constructor(value) {
413
- if (typeof value === 'string') {
414
- super(value);
415
- }
416
- else {
417
- super(value.valueOf());
418
- }
419
- }
420
- get arrayConstructor() {
421
- const v = ARRAY_CONSTRUCTORS.get(this.string);
422
- if (v === undefined) {
423
- throw new Error(`Unknown data type: ${this.string}`);
424
- }
425
- return v;
426
- }
427
- get string() {
428
- return this.valueOf();
429
- }
430
- get density() {
431
- const v = DATA_TYPE_DENSITIES.get(this.string);
432
- if (v === undefined) {
433
- throw new Error(`Unknown data type: ${this.string}`);
434
- }
435
- return v;
436
- }
437
- checkArray(array) {
438
- return array.constructor === this.arrayConstructor;
439
- }
440
- toJSON() {
441
- return this.string;
442
- }
443
- }
444
- exports.DataType = DataType;
445
- /**
446
- * Represents an Unknown/Invalid DataType.
447
- */
448
- DataType.Unknown = new DataType('unknown');
449
- /**
450
- * Represents a 64-bit floating point value.
451
- */
452
- DataType.Float64 = new DataType('float64');
453
- /**
454
- * Represents a 32-bit floating point value.
455
- */
456
- DataType.Float32 = new DataType('float32');
457
- /**
458
- * Represents a 64-bit signed integer value.
459
- */
460
- DataType.Int64 = new DataType('int64');
461
- /**
462
- * Represents a 32-bit signed integer value.
463
- */
464
- DataType.Int32 = new DataType('int32');
465
- /**
466
- * Represents a 16-bit signed integer value.
467
- */
468
- DataType.Int16 = new DataType('int16');
469
- /**
470
- * Represents a 8-bit signed integer value.
471
- */
472
- DataType.Int8 = new DataType('int8');
473
- /**
474
- * Represents a 64-bit unsigned integer value.
475
- */
476
- DataType.Uint64 = new DataType('uint64');
477
- /**
478
- * Represents a 32-bit unsigned integer value.
479
- */
480
- DataType.Uint32 = new DataType('uint32');
481
- /**
482
- * Represents a 16-bit unsigned integer value.
483
- */
484
- DataType.Uint16 = new DataType('uint16');
485
- /**
486
- * Represents a 8-bit unsigned integer value.
487
- */
488
- DataType.Uint8 = new DataType('uint8');
489
- class Size extends Number {
490
- constructor(value) {
491
- super(value.valueOf());
492
- }
493
- largerThan(other) {
494
- return this.valueOf() > other.valueOf();
495
- }
496
- smallerThan(other) {
497
- return this.valueOf() < other.valueOf();
498
- }
499
- static Bytes(value) {
500
- return new Size(value);
501
- }
502
- static Kilobytes(value) {
503
- return Size.Bytes(value.valueOf() * 1e3);
504
- }
505
- static Megabytes(value) {
506
- return Size.Kilobytes(value.valueOf() * 1e3);
507
- }
508
- static Gigabytes(value) {
509
- return Size.Megabytes(value.valueOf() * 1e3);
510
- }
511
- static Terabytes(value) {
512
- return Size.Gigabytes(value.valueOf() * 1e3);
513
- }
514
- }
515
- exports.Size = Size;
516
- Size.Byte = new Size(1);
517
- Size.Kilobyte = Size.Kilobytes(1);
518
- Size.Megabyte = Size.Megabytes(1);
519
- Size.Gigabyte = Size.Gigabytes(1);
520
- Size.Terabyte = Size.Terabytes(1);
521
- (0, freighter_1.registerCustomTypeEncoder)({ Class: TimeStamp, write: valueOfEncoder });
522
- (0, freighter_1.registerCustomTypeEncoder)({ Class: TimeSpan, write: valueOfEncoder });
523
- (0, freighter_1.registerCustomTypeEncoder)({
524
- Class: DataType,
525
- write: (v) => v.string,
526
- });
527
- (0, freighter_1.registerCustomTypeEncoder)({ Class: Rate, write: valueOfEncoder });
528
- (0, freighter_1.registerCustomTypeEncoder)({ Class: Density, write: valueOfEncoder });
529
- const ARRAY_CONSTRUCTORS = new Map([
530
- [DataType.Uint8.string, Uint8Array],
531
- [DataType.Uint16.string, Uint16Array],
532
- [DataType.Uint32.string, Uint32Array],
533
- [DataType.Uint64.string, BigUint64Array],
534
- [DataType.Float32.string, Float32Array],
535
- [DataType.Float64.string, Float64Array],
536
- [DataType.Int8.string, Int8Array],
537
- [DataType.Int16.string, Int16Array],
538
- [DataType.Int32.string, Int32Array],
539
- [DataType.Int64.string, BigInt64Array],
540
- ]);
541
- const DATA_TYPE_DENSITIES = new Map([
542
- [DataType.Uint8.string, Density.Bit8],
543
- [DataType.Uint16.string, Density.Bit16],
544
- [DataType.Uint32.string, Density.Bit32],
545
- [DataType.Uint64.string, Density.Bit64],
546
- [DataType.Float32.string, Density.Bit32],
547
- [DataType.Float64.string, Density.Bit64],
548
- [DataType.Int8.string, Density.Bit8],
549
- [DataType.Int16.string, Density.Bit16],
550
- [DataType.Int32.string, Density.Bit32],
551
- [DataType.Int64.string, Density.Bit64],
552
- ]);
553
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RlbGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRTtBQUVsRSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWMsRUFBVyxFQUFFLENBQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sRUFBRSxDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsTUFBTTtJQUNuQyxZQUFZLEtBQXdCO1FBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxLQUF3QjtRQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEtBQXdCO1FBQzVCLE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxLQUF1QjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLEtBQXdC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