@synnaxlabs/client 0.2.0 → 0.2.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 (120) hide show
  1. package/.DS_Store +0 -0
  2. package/.editorconfig +0 -15
  3. package/.eslintrc.json +0 -33
  4. package/.gitignore +0 -9
  5. package/.nyc_output/20720f2d-6abe-420f-a3c5-304d52d60827.json +0 -1
  6. package/.nyc_output/4725921c-6f1b-4ae9-9819-e455f702d31c.json +0 -1
  7. package/.nyc_output/47478588-5ffd-4332-873c-facaa4a2fc38.json +0 -1
  8. package/.nyc_output/48180641-e0b2-49ab-a6eb-e7910e9eac2f.json +0 -1
  9. package/.nyc_output/cb0abf31-740f-47db-b94a-8e3f8f117cb8.json +0 -1
  10. package/.nyc_output/fc77fce2-dad0-49a8-8d4b-0a9014ecf8c5.json +0 -1
  11. package/.nyc_output/processinfo/20720f2d-6abe-420f-a3c5-304d52d60827.json +0 -1
  12. package/.nyc_output/processinfo/4725921c-6f1b-4ae9-9819-e455f702d31c.json +0 -1
  13. package/.nyc_output/processinfo/47478588-5ffd-4332-873c-facaa4a2fc38.json +0 -1
  14. package/.nyc_output/processinfo/48180641-e0b2-49ab-a6eb-e7910e9eac2f.json +0 -1
  15. package/.nyc_output/processinfo/cb0abf31-740f-47db-b94a-8e3f8f117cb8.json +0 -1
  16. package/.nyc_output/processinfo/fc77fce2-dad0-49a8-8d4b-0a9014ecf8c5.json +0 -1
  17. package/.nyc_output/processinfo/index.json +0 -1
  18. package/.prettierignore +0 -2
  19. package/build/tsconfig.module.tsbuildinfo +0 -1
  20. package/build/tsconfig.tsbuildinfo +0 -1
  21. package/coverage/base.css +0 -224
  22. package/coverage/block-navigation.js +0 -87
  23. package/coverage/favicon.png +0 -0
  24. package/coverage/index.html +0 -191
  25. package/coverage/lcov-report/base.css +0 -224
  26. package/coverage/lcov-report/block-navigation.js +0 -87
  27. package/coverage/lcov-report/favicon.png +0 -0
  28. package/coverage/lcov-report/index.html +0 -191
  29. package/coverage/lcov-report/prettify.css +0 -1
  30. package/coverage/lcov-report/prettify.js +0 -2
  31. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  32. package/coverage/lcov-report/sorter.js +0 -196
  33. package/coverage/lcov-report/src/index.html +0 -116
  34. package/coverage/lcov-report/src/lib/auth.ts.html +0 -340
  35. package/coverage/lcov-report/src/lib/channel/client.ts.html +0 -604
  36. package/coverage/lcov-report/src/lib/channel/creator.ts.html +0 -304
  37. package/coverage/lcov-report/src/lib/channel/index.html +0 -176
  38. package/coverage/lcov-report/src/lib/channel/payload.ts.html +0 -139
  39. package/coverage/lcov-report/src/lib/channel/registry.ts.html +0 -202
  40. package/coverage/lcov-report/src/lib/channel/retriever.ts.html +0 -244
  41. package/coverage/lcov-report/src/lib/client.ts.html +0 -244
  42. package/coverage/lcov-report/src/lib/errors.ts.html +0 -484
  43. package/coverage/lcov-report/src/lib/index.html +0 -176
  44. package/coverage/lcov-report/src/lib/segment/client.ts.html +0 -463
  45. package/coverage/lcov-report/src/lib/segment/index.html +0 -206
  46. package/coverage/lcov-report/src/lib/segment/iterator.ts.html +0 -928
  47. package/coverage/lcov-report/src/lib/segment/payload.ts.html +0 -139
  48. package/coverage/lcov-report/src/lib/segment/splitter.ts.html +0 -181
  49. package/coverage/lcov-report/src/lib/segment/typed.ts.html +0 -307
  50. package/coverage/lcov-report/src/lib/segment/validator.ts.html +0 -331
  51. package/coverage/lcov-report/src/lib/segment/writer.ts.html +0 -727
  52. package/coverage/lcov-report/src/lib/telem.ts.html +0 -2056
  53. package/coverage/lcov-report/src/lib/transport.ts.html +0 -196
  54. package/coverage/lcov-report/src/lib/user/index.html +0 -116
  55. package/coverage/lcov-report/src/lib/user/payload.ts.html +0 -109
  56. package/coverage/lcov-report/src/lib/util/index.html +0 -116
  57. package/coverage/lcov-report/src/lib/util/telem.ts.html +0 -124
  58. package/coverage/lcov-report/src/setupspecs.ts.html +0 -133
  59. package/coverage/lcov.info +0 -1230
  60. package/coverage/prettify.css +0 -1
  61. package/coverage/prettify.js +0 -2
  62. package/coverage/sort-arrow-sprite.png +0 -0
  63. package/coverage/sorter.js +0 -196
  64. package/coverage/src/index.html +0 -116
  65. package/coverage/src/lib/auth.ts.html +0 -340
  66. package/coverage/src/lib/channel/client.ts.html +0 -604
  67. package/coverage/src/lib/channel/creator.ts.html +0 -304
  68. package/coverage/src/lib/channel/index.html +0 -176
  69. package/coverage/src/lib/channel/payload.ts.html +0 -139
  70. package/coverage/src/lib/channel/registry.ts.html +0 -202
  71. package/coverage/src/lib/channel/retriever.ts.html +0 -244
  72. package/coverage/src/lib/client.ts.html +0 -244
  73. package/coverage/src/lib/errors.ts.html +0 -484
  74. package/coverage/src/lib/index.html +0 -176
  75. package/coverage/src/lib/segment/client.ts.html +0 -463
  76. package/coverage/src/lib/segment/index.html +0 -206
  77. package/coverage/src/lib/segment/iterator.ts.html +0 -928
  78. package/coverage/src/lib/segment/payload.ts.html +0 -139
  79. package/coverage/src/lib/segment/splitter.ts.html +0 -181
  80. package/coverage/src/lib/segment/typed.ts.html +0 -307
  81. package/coverage/src/lib/segment/validator.ts.html +0 -331
  82. package/coverage/src/lib/segment/writer.ts.html +0 -727
  83. package/coverage/src/lib/telem.ts.html +0 -2056
  84. package/coverage/src/lib/transport.ts.html +0 -196
  85. package/coverage/src/lib/user/index.html +0 -116
  86. package/coverage/src/lib/user/payload.ts.html +0 -109
  87. package/coverage/src/lib/util/index.html +0 -116
  88. package/coverage/src/lib/util/telem.ts.html +0 -124
  89. package/coverage/src/setupspecs.ts.html +0 -133
  90. package/src/index.ts +0 -13
  91. package/src/lib/.DS_Store +0 -0
  92. package/src/lib/auth.spec.ts +0 -36
  93. package/src/lib/auth.ts +0 -85
  94. package/src/lib/channel/channel.spec.ts +0 -49
  95. package/src/lib/channel/client.ts +0 -173
  96. package/src/lib/channel/creator.ts +0 -73
  97. package/src/lib/channel/payload.ts +0 -18
  98. package/src/lib/channel/registry.ts +0 -39
  99. package/src/lib/channel/retriever.ts +0 -53
  100. package/src/lib/client.ts +0 -53
  101. package/src/lib/errors.ts +0 -133
  102. package/src/lib/segment/client.ts +0 -126
  103. package/src/lib/segment/iterator.spec.ts +0 -78
  104. package/src/lib/segment/iterator.ts +0 -281
  105. package/src/lib/segment/payload.ts +0 -18
  106. package/src/lib/segment/splitter.ts +0 -32
  107. package/src/lib/segment/typed.ts +0 -74
  108. package/src/lib/segment/validator.ts +0 -82
  109. package/src/lib/segment/writer.spec.ts +0 -85
  110. package/src/lib/segment/writer.ts +0 -214
  111. package/src/lib/telem.spec.ts +0 -200
  112. package/src/lib/telem.ts +0 -657
  113. package/src/lib/transport.ts +0 -37
  114. package/src/lib/user/payload.ts +0 -8
  115. package/src/lib/util/telem.ts +0 -13
  116. package/src/setupspecs.ts +0 -16
  117. package/tsconfig.json +0 -47
  118. package/tsconfig.module.json +0 -9
  119. package/yarn-error.log +0 -5756
  120. package/yarn.lock +0 -5936
@@ -1,727 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/lib/segment/writer.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/lib/segment</a> writer.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">85% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>51/60</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">46.42% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>13/28</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>12/12</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">96.15% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>50/52</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-yes">4x</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">4x</span>
291
- <span class="cline-any cline-yes">4x</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">4x</span>
294
- <span class="cline-any cline-yes">4x</span>
295
- <span class="cline-any cline-yes">4x</span>
296
- <span class="cline-any cline-yes">4x</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">4x</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">4x</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">4x</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-yes">4x</span>
326
- <span class="cline-any cline-yes">4x</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-yes">9x</span>
333
- <span class="cline-any cline-yes">9x</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">9x</span>
346
- <span class="cline-any cline-yes">9x</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">9x</span>
354
- <span class="cline-any cline-yes">9x</span>
355
- <span class="cline-any cline-yes">9x</span>
356
- <span class="cline-any cline-yes">9x</span>
357
- <span class="cline-any cline-no">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">111x</span>
376
- <span class="cline-any cline-yes">111x</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-yes">111x</span>
379
- <span class="cline-any cline-yes">111x</span>
380
- <span class="cline-any cline-yes">111x</span>
381
- <span class="cline-any cline-yes">111x</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">9x</span>
393
- <span class="cline-any cline-yes">9x</span>
394
- <span class="cline-any cline-yes">9x</span>
395
- <span class="cline-any cline-yes">9x</span>
396
- <span class="cline-any cline-yes">9x</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">111x</span>
402
- <span class="cline-any cline-yes">113x</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">113x</span>
405
- <span class="cline-any cline-no">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-yes">4x</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-yes">9x</span>
431
- <span class="cline-any cline-yes">9x</span>
432
- <span class="cline-any cline-yes">9x</span>
433
- <span class="cline-any cline-yes">9x</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-yes">9x</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-yes">9x</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-yes">113x</span>
471
- <span class="cline-any cline-yes">113x</span>
472
- <span class="cline-any cline-yes">112x</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-yes">112x</span>
478
- <span class="cline-any cline-yes">112x</span>
479
- <span class="cline-any cline-yes">111x</span>
480
- <span class="cline-any cline-yes">113x</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-yes">9x</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
495
- decodeError,
496
- EOF,
497
- ErrorPayloadSchema,
498
- Stream,
499
- StreamClient,
500
- } from '@synnaxlabs/freighter';
501
- import { z } from 'zod';
502
- &nbsp;
503
- import ChannelRegistry from '../channel/registry';
504
- import { GeneralError, UnexpectedError, ValidationError } from '../errors';
505
- import { Size, TimeStamp, TypedArray, UnparsedTimeStamp } from '../telem';
506
- &nbsp;
507
- import { SegmentPayload, SegmentPayloadSchema } from './payload';
508
- import Splitter from './splitter';
509
- import TypedSegment from './typed';
510
- import { ContiguityValidator, ScalarTypeValidator } from './validator';
511
- &nbsp;
512
- const RequestSchema = z.object({
513
- openKeys: z.string().array().optional(),
514
- segments: SegmentPayloadSchema.array().optional(),
515
- });
516
- &nbsp;
517
- type Request = z.infer&lt;typeof RequestSchema&gt;;
518
- &nbsp;
519
- const ResponseSchema = z.object({
520
- ack: z.boolean(),
521
- error: ErrorPayloadSchema.optional(),
522
- });
523
- &nbsp;
524
- type Response = z.infer&lt;typeof ResponseSchema&gt;;
525
- &nbsp;
526
- const NOT_OPEN = new GeneralError(
527
- 'Writer has not been opened. Please open before calling write() or close().'
528
- );
529
- &nbsp;
530
- /**
531
- * CoreWriter is used to write telemetry to a set of channels in time-order. It
532
- * should not be instantiated directly, but rather through a {@link SegmentClient}.
533
- *
534
- * Using a writer is ideal when writing large volumes of data (such as recording
535
- * telemetry from a sensor), but it is relatively complex and challenging to use.
536
- * If you're looking to write a contiguous block of telemetry, see the {@link SegmentClient}
537
- * write() method.
538
- */
539
- export class CoreWriter {
540
- private static ENDPOINT = '/segment/write';
541
- private client: StreamClient;
542
- private stream: Stream&lt;Request, Response&gt; | undefined;
543
- private keys: string[];
544
- &nbsp;
545
- constructor(client: StreamClient) {
546
- this.client = client;
547
- this.keys = [];
548
- }
549
- &nbsp;
550
- /**
551
- * Opens the writer, acquiring an exclusive lock on the given channels for
552
- * the duration of the writer's lifetime. open must be called before any other
553
- * writer methods.
554
- *
555
- * @param keys - A list of keys representing the channels the writer will write
556
- * to.
557
- */
558
- async open(keys: string[]) {
559
- this.keys = keys;
560
- this.stream = await this.client.stream(
561
- CoreWriter.ENDPOINT,
562
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
563
- // @ts-ignore
564
- RequestSchema,
565
- ResponseSchema
566
- );
567
- this.stream.send({ openKeys: keys });
568
- const [res, err] = await this.stream.receive();
569
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >throw err;</span>
570
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!res<span class="branch-0 cbranch-no" title="branch not covered" >?.a</span>ck)
571
- <span class="cstat-no" title="statement not covered" > throw new UnexpectedError(</span>
572
- 'Writer failed to positively acknowledge open request. This is a bug. Please report it.'
573
- );
574
- }
575
- &nbsp;
576
- /**
577
- * Validates and writes the given segments to the database. The provided segments
578
- * must:
579
- *
580
- * 1. Be in time order (on a per-channel basis)
581
- * 2. Have channel keys in the set of keys this writer was opened with.
582
- * 3. Have non-zero length data with the correct data type.
583
- *
584
- * @param segments - A list of segments to write to the database.
585
- * @returns false if the writer has accumulated an error. In this case,
586
- * the caller should stop executing requests and close the writer.
587
- */
588
- async write(segments: SegmentPayload[]): Promise&lt;boolean&gt; {
589
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.stream) <span class="cstat-no" title="statement not covered" >throw NOT_OPEN;</span>
590
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.stream.received()) <span class="cstat-no" title="statement not covered" >return false;</span>
591
- &nbsp;
592
- this.checkKeys(segments);
593
- const err = this.stream.send({ segments });
594
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >throw err;</span>
595
- return true;
596
- }
597
- &nbsp;
598
- /**
599
- * Closes the writer, raising any accumulated error encountered during operation.
600
- * A writer MUST be closed after use, and this method should probably be placed
601
- * in a 'finally' block. If the writer is not closed, the database will not release
602
- * the exclusive lock on the channels, preventing any other callers from
603
- * writing to them. It also might leak resources and threads.
604
- */
605
- async close() {
606
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.stream) <span class="cstat-no" title="statement not covered" >throw NOT_OPEN;</span>
607
- this.stream.closeSend();
608
- const [res, err] = await this.stream.receive();
609
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!err &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >res?.error)</span> <span class="cstat-no" title="statement not covered" >throw decodeError(res.error);</span>
610
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!(err instanceof EOF)) <span class="cstat-no" title="statement not covered" >throw err;</span>
611
- }
612
- &nbsp;
613
- private checkKeys(segments: SegmentPayload[]) {
614
- // check that the channel key of each segment is in the open keys
615
- segments
616
- .map((segment) =&gt; segment.channelKey)
617
- .forEach((key) =&gt; {
618
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.keys.includes(key))
619
- <span class="cstat-no" title="statement not covered" > throw new ValidationError({</span>
620
- field: 'channelKey',
621
- message: `Channel key ${key} is not in the list of keys this writer was opened with.`,
622
- });
623
- });
624
- }
625
- }
626
- &nbsp;
627
- /**
628
- * TypedWriter is used to write telemetry to a set of channels in time-order. It
629
- * should not be instantiated directly, but rather through a {@link SegmentClient}.
630
- *
631
- * Using a writer is ideal when writing large volumes of data (such as recording
632
- * telemetry from a sensor), but it is relatively complex and challenging to use.
633
- * If you're looking to write a contiguous block of telemetry, see the {@link SegmentClient}
634
- * write() method.
635
- */
636
- export class TypedWriter {
637
- private core: CoreWriter;
638
- private splitter: Splitter;
639
- private channels: ChannelRegistry;
640
- private scalarTypeValidator: ScalarTypeValidator;
641
- private contiguityValidator: ContiguityValidator;
642
- &nbsp;
643
- constructor(client: StreamClient, channels: ChannelRegistry) {
644
- this.core = new CoreWriter(client);
645
- this.channels = channels;
646
- this.scalarTypeValidator = new ScalarTypeValidator();
647
- this.contiguityValidator = new ContiguityValidator({
648
- allowNoHighWaterMark: true,
649
- allowGaps: false,
650
- allowOverlap: false,
651
- });
652
- this.splitter = new Splitter(Size.Megabytes(4));
653
- }
654
- &nbsp;
655
- /**
656
- * Opens the writer, acquiring an exclusive lock on the given channels for
657
- * the duration of the writer's lifetime. open must be called before any other
658
- * writer methods.
659
- *
660
- * @param keys - A list of keys representing the channels the writer will write
661
- * to.
662
- */
663
- async open(keys: string[]) {
664
- await this.core.open(keys);
665
- }
666
- &nbsp;
667
- /**
668
- * Writes the given telemetry to the database.
669
- *
670
- * @param to - They key of the channel to write to. This must be in the set of
671
- * keys this writer was opened with.
672
- * @param start - The start time of the telemetry. This must be equal to
673
- * the end of the previous segment written to the channel (unless it's the first
674
- * write to that channel).
675
- * @param data - The telemetry to write. This must be a valid type for the channel.
676
- * @returns false if the writer has accumulated an error. In this case,
677
- * the caller should stop executing requests and close the writer.
678
- */
679
- async write(
680
- to: string,
681
- start: UnparsedTimeStamp,
682
- data: TypedArray
683
- ): Promise&lt;boolean&gt; {
684
- const ch = await this.channels.get(to);
685
- this.scalarTypeValidator.validate(data, ch.dataType);
686
- const pld: SegmentPayload = {
687
- channelKey: to,
688
- start: new TimeStamp(start),
689
- data: new Uint8Array(data.buffer),
690
- };
691
- const segment = new TypedSegment(ch, pld);
692
- this.contiguityValidator.validate(segment);
693
- const segments = this.splitter.split(segment);
694
- return this.core.write(segments.map((s) =&gt; s.payload));
695
- }
696
- &nbsp;
697
- /**
698
- * Closes the writer, raising any accumulated error encountered during operation.
699
- * A writer MUST be closed after use, and this method should probably be placed
700
- * in a 'finally' block. If the writer is not closed, the database will not release
701
- * the exclusive lock on the channels, preventing any other callers from
702
- * writing to them. It also might leak resources and threads.
703
- */
704
- async close() {
705
- await this.core.close();
706
- }
707
- }
708
- &nbsp;</pre></td></tr></table></pre>
709
-
710
- <div class='push'></div><!-- for sticky footer -->
711
- </div><!-- /wrapper -->
712
- <div class='footer quiet pad2 space-top1 center small'>
713
- Code coverage generated by
714
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
715
- at 2022-10-04T02:07:47.903Z
716
- </div>
717
- <script src="../../../prettify.js"></script>
718
- <script>
719
- window.onload = function () {
720
- prettyPrint();
721
- };
722
- </script>
723
- <script src="../../../sorter.js"></script>
724
- <script src="../../../block-navigation.js"></script>
725
- </body>
726
- </html>
727
-