smesh_lol_web_common_relay.mjs raw
1 // Package smesh.lol/web/common/relay
2 // Generated by MoxieJS — Moxie JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 import * as smesh$lol$web$common$jsbridge$ws from './smesh_lol_web_common_jsbridge_ws.mjs';
7 import * as smesh$lol$web$common$nostr from './smesh_lol_web_common_nostr.mjs';
8
9 // Package-level variables
10
11 $rt.types.registerType('smesh.lol/web/common/relay.Conn', {
12 id: 'smesh.lol/web/common/relay.Conn',
13 kind: 'struct',
14 methods: new Map(),
15 fields: [
16 { name: 'URL', type: 'string', tag: '', embedded: false },
17 { name: 'wsConn', type: 'smesh.lol/web/common/jsbridge/ws.Conn', tag: '', embedded: false },
18 { name: 'state', type: 'int', tag: '', embedded: false },
19 { name: 'subs', type: 'map[string]*smesh.lol/web/common/relay.Sub', tag: '', embedded: false },
20 { name: 'onReady', type: 'func', tag: '', embedded: false },
21 { name: 'onEvent', type: 'func', tag: '', embedded: false },
22 { name: 'onEOSE', type: 'func', tag: '', embedded: false },
23 { name: 'onOK', type: 'func', tag: '', embedded: false },
24 { name: 'onAuth', type: 'func', tag: '', embedded: false },
25 { name: 'closing', type: 'bool', tag: '', embedded: false },
26 { name: 'pendingPublish', type: '[]string', tag: '', embedded: false },
27 { name: 'ScheduleReconnect', type: 'func', tag: '', embedded: false },
28 ],
29 zero: () => ({ URL: '', wsConn: 0, state: 0, subs: null, onReady: null, onEvent: null, onEOSE: null, onOK: null, onAuth: null, closing: false, pendingPublish: null, ScheduleReconnect: null }),
30 });
31 $rt.types.registerType('smesh.lol/web/common/relay.Pool', {
32 id: 'smesh.lol/web/common/relay.Pool',
33 kind: 'struct',
34 methods: new Map(),
35 fields: [
36 { name: 'conns', type: 'map[string]*smesh.lol/web/common/relay.Conn', tag: '', embedded: false },
37 ],
38 zero: () => ({ conns: null }),
39 });
40 $rt.types.registerType('smesh.lol/web/common/relay.Sub', {
41 id: 'smesh.lol/web/common/relay.Sub',
42 kind: 'struct',
43 methods: new Map(),
44 fields: [
45 { name: 'ID', type: 'string', tag: '', embedded: false },
46 { name: 'Filters', type: '[]*smesh.lol/web/common/nostr.Filter', tag: '', embedded: false },
47 { name: 'OnEvent', type: 'func', tag: '', embedded: false },
48 { name: 'OnEOSE', type: 'func', tag: '', embedded: false },
49 { name: 'conn', type: '*smesh.lol/web/common/relay.Conn', tag: '', embedded: false },
50 { name: 'gotEOSE', type: 'bool', tag: '', embedded: false },
51 ],
52 zero: () => ({ ID: '', Filters: null, OnEvent: null, OnEOSE: null, conn: null, gotEOSE: false }),
53 });
54 export function init() {
55 return;
56 }
57
58 export function Dial(url) {
59 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
60 $t0_1 = { $value: { URL: '', wsConn: 0, state: 0, subs: null, onReady: null, onEvent: null, onEOSE: null, onOK: null, onAuth: null, closing: false, pendingPublish: null, ScheduleReconnect: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
61 $t1_2 = { $get() { return $t0_1.$get().URL; }, $set(v) { const obj = $t0_1.$get(); obj.URL = v; $t0_1.$set(obj); } };
62 $t2_3 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
63 $t3_4 = { $get() { return $t0_1.$get().subs; }, $set(v) { const obj = $t0_1.$get(); obj.subs = v; $t0_1.$set(obj); } };
64 $t4_5 = $rt.builtin.makeMap('string');
65 $t1_2.$set(url);
66 $t2_3.$set(0);
67 $t3_4.$set($t4_5);
68 $t5_6 = Conn$dial($t0_1);
69 return $t0_1;
70 }
71
72 export function eventJSON(ev) {
73 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43;
74 $t0_1 = { $value: $rt.builtin.makeSlice(512, 512, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
75 $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
76 $t2_3 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
77 $t3_4 = $t2_3.$get().addr(0);
78 $t3_4.$set(123);
79 $t4_5 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
80 $t5_6 = $rt.builtin.appendSlice($t1_2, $t4_5);
81 $t6_7 = $rt.builtin.appendString($t5_6, '"id":"');
82 $t7_8 = { $get() { return ev.$get().ID; }, $set(v) { const obj = ev.$get(); obj.ID = v; ev.$set(obj); } };
83 $t8_9 = $t7_8.$get();
84 $t9_10 = $rt.builtin.appendString($t6_7, $t8_9);
85 $t10_11 = $rt.builtin.appendString($t9_10, '","pubkey":"');
86 $t11_12 = { $get() { return ev.$get().PubKey; }, $set(v) { const obj = ev.$get(); obj.PubKey = v; ev.$set(obj); } };
87 $t12_13 = $t11_12.$get();
88 $t13_14 = $rt.builtin.appendString($t10_11, $t12_13);
89 $t14_15 = $rt.builtin.appendString($t13_14, '","created_at":');
90 $t15_16 = { $get() { return ev.$get().CreatedAt; }, $set(v) { const obj = ev.$get(); obj.CreatedAt = v; ev.$set(obj); } };
91 $t16_17 = $t15_16.$get();
92 $t17_18 = itoa($t16_17);
93 $t18_19 = $rt.builtin.appendString($t14_15, $t17_18);
94 $t19_20 = $rt.builtin.appendString($t18_19, ',"kind":');
95 $t20_21 = { $get() { return ev.$get().Kind; }, $set(v) { const obj = ev.$get(); obj.Kind = v; ev.$set(obj); } };
96 $t21_22 = $t20_21.$get();
97 $t22_23 = BigInt($t21_22);
98 $t23_24 = itoa($t22_23);
99 $t24_25 = $rt.builtin.appendString($t19_20, $t23_24);
100 $t25_26 = $rt.builtin.appendString($t24_25, ',"tags":');
101 $t26_27 = { $get() { return ev.$get().Tags; }, $set(v) { const obj = ev.$get(); obj.Tags = v; ev.$set(obj); } };
102 $t27_28 = $t26_27.$get();
103 $t28_29 = serializeTags($t25_26, $t27_28);
104 $t29_30 = $rt.builtin.appendString($t28_29, ',"content":"');
105 $t30_31 = { $get() { return ev.$get().Content; }, $set(v) { const obj = ev.$get(); obj.Content = v; ev.$set(obj); } };
106 $t31_32 = $t30_31.$get();
107 $t32_33 = appendEscaped($t29_30, $t31_32);
108 $t33_34 = $rt.builtin.appendString($t32_33, '","sig":"');
109 $t34_35 = { $get() { return ev.$get().Sig; }, $set(v) { const obj = ev.$get(); obj.Sig = v; ev.$set(obj); } };
110 $t35_36 = $t34_35.$get();
111 $t36_37 = $rt.builtin.appendString($t33_34, $t35_36);
112 $t37_38 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
113 $t38_39 = $t37_38.$get().addr(0);
114 $t38_39.$set(34);
115 $t39_40 = $t37_38.$get().addr(1);
116 $t39_40.$set(125);
117 $t40_41 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
118 $t41_42 = $rt.builtin.appendSlice($t36_37, $t40_41);
119 $t42_43 = $rt.builtin.bytesToString($t41_42);
120 return $t42_43;
121 }
122
123 export function serializeTags(buf, tags) {
124 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51;
125 let $block = 0;
126 while (true) {
127 switch ($block) {
128 case 0: {
129 $t0_1 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
130 $t1_2 = $t0_1.$get().addr(0);
131 $t1_2.$set(91);
132 $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
133 $t3_4 = $rt.builtin.appendSlice(buf, $t2_3);
134 $t4_5 = $rt.builtin.len(tags);
135 $t5_6 = $t3_4;
136 $t6_7 = -1;
137 $block = 1; break;
138 break;
139 }
140 case 1: {
141 $t7_8 = ($t6_7 + 1);
142 $t8_9 = ($t7_8 < $t4_5);
143 if ($t8_9) {
144 $block = 2; break;
145 }
146 else {
147 $block = 3; break;
148 }
149 break;
150 }
151 case 2: {
152 $t9_10 = tags.addr($t7_8);
153 $t10_11 = $t9_10.$get();
154 $t11_12 = ($t7_8 > 0);
155 if ($t11_12) {
156 $block = 4; break;
157 }
158 else {
159 $t20_21 = $t5_6;
160 $block = 5; break;
161 }
162 break;
163 }
164 case 3: {
165 $t12_13 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
166 $t13_14 = $t12_13.$get().addr(0);
167 $t13_14.$set(93);
168 $t14_15 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
169 $t15_16 = $rt.builtin.appendSlice($t5_6, $t14_15);
170 return $t15_16;
171 break;
172 }
173 case 4: {
174 $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
175 $t17_18 = $t16_17.$get().addr(0);
176 $t17_18.$set(44);
177 $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
178 $t19_20 = $rt.builtin.appendSlice($t5_6, $t18_19);
179 $t20_21 = $t19_20;
180 $block = 5; break;
181 break;
182 }
183 case 5: {
184 $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
185 $t22_23 = $t21_22.$get().addr(0);
186 $t22_23.$set(91);
187 $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
188 $t24_25 = $rt.builtin.appendSlice($t20_21, $t23_24);
189 $t25_26 = $rt.builtin.len($t10_11);
190 $t26_27 = $t24_25;
191 $t27_28 = -1;
192 $block = 6; break;
193 break;
194 }
195 case 6: {
196 $t28_29 = ($t27_28 + 1);
197 $t29_30 = ($t28_29 < $t25_26);
198 if ($t29_30) {
199 $block = 7; break;
200 }
201 else {
202 $block = 8; break;
203 }
204 break;
205 }
206 case 7: {
207 $t30_31 = $t10_11.addr($t28_29);
208 $t31_32 = $t30_31.$get();
209 $t32_33 = ($t28_29 > 0);
210 if ($t32_33) {
211 $block = 9; break;
212 }
213 else {
214 $t41_42 = $t26_27;
215 $block = 10; break;
216 }
217 break;
218 }
219 case 8: {
220 $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
221 $t34_35 = $t33_34.$get().addr(0);
222 $t34_35.$set(93);
223 $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
224 $t36_37 = $rt.builtin.appendSlice($t26_27, $t35_36);
225 $t5_6 = $t36_37;
226 $t6_7 = $t7_8;
227 $block = 1; break;
228 break;
229 }
230 case 9: {
231 $t37_38 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
232 $t38_39 = $t37_38.$get().addr(0);
233 $t38_39.$set(44);
234 $t39_40 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
235 $t40_41 = $rt.builtin.appendSlice($t26_27, $t39_40);
236 $t41_42 = $t40_41;
237 $block = 10; break;
238 break;
239 }
240 case 10: {
241 $t42_43 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
242 $t43_44 = $t42_43.$get().addr(0);
243 $t43_44.$set(34);
244 $t44_45 = $rt.builtin.sliceSlice($t42_43.$get(), undefined, undefined, undefined);
245 $t45_46 = $rt.builtin.appendSlice($t41_42, $t44_45);
246 $t46_47 = appendEscaped($t45_46, $t31_32);
247 $t47_48 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
248 $t48_49 = $t47_48.$get().addr(0);
249 $t48_49.$set(34);
250 $t49_50 = $rt.builtin.sliceSlice($t47_48.$get(), undefined, undefined, undefined);
251 $t50_51 = $rt.builtin.appendSlice($t46_47, $t49_50);
252 $t26_27 = $t50_51;
253 $t27_28 = $t28_29;
254 $block = 6; break;
255 break;
256 }
257 }
258 }
259 }
260
261 export function appendEscaped(buf, s) {
262 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42;
263 let $block = 0;
264 while (true) {
265 switch ($block) {
266 case 0: {
267 $t0_1 = buf;
268 $t1_2 = 0;
269 $block = 1; break;
270 break;
271 }
272 case 1: {
273 $t2_3 = $rt.builtin.len(s);
274 $t3_4 = ($t1_2 < $t2_3);
275 if ($t3_4) {
276 $block = 2; break;
277 }
278 else {
279 $block = 3; break;
280 }
281 break;
282 }
283 case 2: {
284 $t4_5 = s.addr($t1_2);
285 $t5_6 = $t4_5.$get();
286 $t6_7 = ($t5_6 === 34);
287 if ($t6_7) {
288 $block = 5; break;
289 }
290 else {
291 $block = 7; break;
292 }
293 break;
294 }
295 case 3: {
296 return $t0_1;
297 break;
298 }
299 case 4: {
300 $t8_9 = ($t1_2 + 1);
301 $t0_1 = $t7_8;
302 $t1_2 = $t8_9;
303 $block = 1; break;
304 break;
305 }
306 case 5: {
307 $t9_10 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
308 $t10_11 = $t9_10.$get().addr(0);
309 $t10_11.$set(92);
310 $t11_12 = $t9_10.$get().addr(1);
311 $t11_12.$set(34);
312 $t12_13 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
313 $t13_14 = $rt.builtin.appendSlice($t0_1, $t12_13);
314 $t7_8 = $t13_14;
315 $block = 4; break;
316 break;
317 }
318 case 6: {
319 $t14_15 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
320 $t15_16 = $t14_15.$get().addr(0);
321 $t15_16.$set(92);
322 $t16_17 = $t14_15.$get().addr(1);
323 $t16_17.$set(92);
324 $t17_18 = $rt.builtin.sliceSlice($t14_15.$get(), undefined, undefined, undefined);
325 $t18_19 = $rt.builtin.appendSlice($t0_1, $t17_18);
326 $t7_8 = $t18_19;
327 $block = 4; break;
328 break;
329 }
330 case 7: {
331 $t19_20 = ($t5_6 === 92);
332 if ($t19_20) {
333 $block = 6; break;
334 }
335 else {
336 $block = 9; break;
337 }
338 break;
339 }
340 case 8: {
341 $t20_21 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
342 $t21_22 = $t20_21.$get().addr(0);
343 $t21_22.$set(92);
344 $t22_23 = $t20_21.$get().addr(1);
345 $t22_23.$set(110);
346 $t23_24 = $rt.builtin.sliceSlice($t20_21.$get(), undefined, undefined, undefined);
347 $t24_25 = $rt.builtin.appendSlice($t0_1, $t23_24);
348 $t7_8 = $t24_25;
349 $block = 4; break;
350 break;
351 }
352 case 9: {
353 $t25_26 = ($t5_6 === 10);
354 if ($t25_26) {
355 $block = 8; break;
356 }
357 else {
358 $block = 11; break;
359 }
360 break;
361 }
362 case 10: {
363 $t26_27 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
364 $t27_28 = $t26_27.$get().addr(0);
365 $t27_28.$set(92);
366 $t28_29 = $t26_27.$get().addr(1);
367 $t28_29.$set(114);
368 $t29_30 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
369 $t30_31 = $rt.builtin.appendSlice($t0_1, $t29_30);
370 $t7_8 = $t30_31;
371 $block = 4; break;
372 break;
373 }
374 case 11: {
375 $t31_32 = ($t5_6 === 13);
376 if ($t31_32) {
377 $block = 10; break;
378 }
379 else {
380 $block = 13; break;
381 }
382 break;
383 }
384 case 12: {
385 $t32_33 = { $value: $rt.builtin.makeSlice(2, 2, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
386 $t33_34 = $t32_33.$get().addr(0);
387 $t33_34.$set(92);
388 $t34_35 = $t32_33.$get().addr(1);
389 $t34_35.$set(116);
390 $t35_36 = $rt.builtin.sliceSlice($t32_33.$get(), undefined, undefined, undefined);
391 $t36_37 = $rt.builtin.appendSlice($t0_1, $t35_36);
392 $t7_8 = $t36_37;
393 $block = 4; break;
394 break;
395 }
396 case 13: {
397 $t37_38 = ($t5_6 === 9);
398 if ($t37_38) {
399 $block = 12; break;
400 }
401 else {
402 $block = 14; break;
403 }
404 break;
405 }
406 case 14: {
407 $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
408 $t39_40 = $t38_39.$get().addr(0);
409 $t39_40.$set($t5_6);
410 $t40_41 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
411 $t41_42 = $rt.builtin.appendSlice($t0_1, $t40_41);
412 $t7_8 = $t41_42;
413 $block = 4; break;
414 break;
415 }
416 }
417 }
418 }
419
420 export function itoa(n) {
421 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
422 let $block = 0;
423 while (true) {
424 switch ($block) {
425 case 0: {
426 $t0_1 = (n === 0n);
427 if ($t0_1) {
428 $block = 1; break;
429 }
430 else {
431 $block = 2; break;
432 }
433 break;
434 }
435 case 1: {
436 return '0';
437 break;
438 }
439 case 2: {
440 $t1_2 = (n < 0n);
441 if ($t1_2) {
442 $block = 3; break;
443 }
444 else {
445 $t3_4 = n;
446 $t4_5 = false;
447 $block = 4; break;
448 }
449 break;
450 }
451 case 3: {
452 $t2_3 = -n;
453 $t3_4 = $t2_3;
454 $t4_5 = true;
455 $block = 4; break;
456 break;
457 }
458 case 4: {
459 $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
460 $t12_13 = $t3_4;
461 $t13_14 = 20;
462 $block = 7; break;
463 break;
464 }
465 case 5: {
466 $t6_7 = ($t13_14 - 1);
467 $t7_8 = ($t12_13 % 10n);
468 $t8_9 = BigInt.asIntN(64, 48n + $t7_8);
469 $t9_10 = (Number($t8_9) & 0xFF);
470 $t10_11 = $t5_6.$get().addr($t6_7);
471 $t10_11.$set($t9_10);
472 $t11_12 = BigInt.asIntN(64, $t12_13 / 10n);
473 $t12_13 = $t11_12;
474 $t13_14 = $t6_7;
475 $block = 7; break;
476 break;
477 }
478 case 6: {
479 if ($t4_5) {
480 $block = 8; break;
481 }
482 else {
483 $t17_18 = $t13_14;
484 $block = 9; break;
485 }
486 break;
487 }
488 case 7: {
489 $t14_15 = ($t12_13 > 0n);
490 if ($t14_15) {
491 $block = 5; break;
492 }
493 else {
494 $block = 6; break;
495 }
496 break;
497 }
498 case 8: {
499 $t15_16 = ($t13_14 - 1);
500 $t16_17 = $t5_6.$get().addr($t15_16);
501 $t16_17.$set(45);
502 $t17_18 = $t15_16;
503 $block = 9; break;
504 break;
505 }
506 case 9: {
507 $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
508 $t19_20 = $rt.builtin.bytesToString($t18_19);
509 return $t19_20;
510 break;
511 }
512 }
513 }
514 }
515
516 export function indexOf(s, c) {
517 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
518 let $block = 0;
519 while (true) {
520 switch ($block) {
521 case 0: {
522 $t0_1 = 0;
523 $block = 1; break;
524 break;
525 }
526 case 1: {
527 $t1_2 = $rt.builtin.len(s);
528 $t2_3 = ($t0_1 < $t1_2);
529 if ($t2_3) {
530 $block = 2; break;
531 }
532 else {
533 $block = 3; break;
534 }
535 break;
536 }
537 case 2: {
538 $t3_4 = s.addr($t0_1);
539 $t4_5 = $t3_4.$get();
540 $t5_6 = ($t4_5 === c);
541 if ($t5_6) {
542 $block = 4; break;
543 }
544 else {
545 $block = 5; break;
546 }
547 break;
548 }
549 case 3: {
550 return -1;
551 break;
552 }
553 case 4: {
554 return $t0_1;
555 break;
556 }
557 case 5: {
558 $t6_7 = ($t0_1 + 1);
559 $t0_1 = $t6_7;
560 $block = 1; break;
561 break;
562 }
563 }
564 }
565 }
566
567 export function NewPool() {
568 let $t0_1, $t1_2, $t2_3;
569 $t0_1 = { $value: { conns: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
570 $t1_2 = { $get() { return $t0_1.$get().conns; }, $set(v) { const obj = $t0_1.$get(); obj.conns = v; $t0_1.$set(obj); } };
571 $t2_3 = $rt.builtin.makeMap('string');
572 $t1_2.$set($t2_3);
573 return $t0_1;
574 }
575
576 export function Conn$Close(c) {
577 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
578 $t0_1 = { $get() { return c.$get().closing; }, $set(v) { const obj = c.$get(); obj.closing = v; c.$set(obj); } };
579 $t0_1.$set(true);
580 $t1_2 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
581 $t1_2.$set(2);
582 $t2_3 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
583 $t3_4 = $t2_3.$get();
584 $t4_5 = smesh$lol$web$common$jsbridge$ws.Close($t3_4);
585 return;
586 }
587
588 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Close', Conn$Close);
589 export function Conn$CloseSubscription(c, id) {
590 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
591 $t0_1 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
592 $t1_2 = $t0_1.$get();
593 $t2_3 = $rt.builtin.mapDelete($t1_2, id);
594 $t3_4 = ('["CLOSE","' + id);
595 $t4_5 = ($t3_4 + '"]');
596 $t5_6 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
597 $t6_7 = $t5_6.$get();
598 $t7_8 = smesh$lol$web$common$jsbridge$ws.Send($t6_7, $t4_5);
599 return;
600 }
601
602 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('CloseSubscription', Conn$CloseSubscription);
603 export function Conn$IsOpen(c) {
604 let $t0_1, $t1_2, $t2_3;
605 $t0_1 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
606 $t1_2 = $t0_1.$get();
607 $t2_3 = ($t1_2 === 1);
608 return $t2_3;
609 }
610
611 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('IsOpen', Conn$IsOpen);
612 export function Conn$OnReady(c, fn) {
613 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
614 let $block = 0;
615 while (true) {
616 switch ($block) {
617 case 0: {
618 $t0_1 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
619 $t1_2 = $t0_1.$get();
620 $t2_3 = ($t1_2 === 1);
621 if ($t2_3) {
622 $block = 1; break;
623 }
624 else {
625 $block = 2; break;
626 }
627 break;
628 }
629 case 1: {
630 $t3_4 = fn(true);
631 return;
632 break;
633 }
634 case 2: {
635 $t4_5 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
636 $t5_6 = $t4_5.$get();
637 $t6_7 = ($t5_6 === 2);
638 if ($t6_7) {
639 $block = 3; break;
640 }
641 else {
642 $block = 4; break;
643 }
644 break;
645 }
646 case 3: {
647 $t7_8 = fn(false);
648 return;
649 break;
650 }
651 case 4: {
652 $t8_9 = { $get() { return c.$get().onReady; }, $set(v) { const obj = c.$get(); obj.onReady = v; c.$set(obj); } };
653 $t8_9.$set(fn);
654 return;
655 break;
656 }
657 }
658 }
659 }
660
661 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('OnReady', Conn$OnReady);
662 export function Conn$Publish(c, ev) {
663 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16;
664 let $block = 0;
665 while (true) {
666 switch ($block) {
667 case 0: {
668 $t0_1 = eventJSON(ev);
669 $t1_2 = ('["EVENT",' + $t0_1);
670 $t2_3 = ($t1_2 + ']');
671 $t3_4 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
672 $t4_5 = $t3_4.$get();
673 $t5_6 = ($t4_5 !== 1);
674 if ($t5_6) {
675 $block = 1; break;
676 }
677 else {
678 $block = 2; break;
679 }
680 break;
681 }
682 case 1: {
683 $t6_7 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
684 $t7_8 = $t6_7.$get();
685 $t8_9 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
686 $t9_10 = $t8_9.$get().addr(0);
687 $t9_10.$set($t2_3);
688 $t10_11 = $rt.builtin.sliceSlice($t8_9.$get(), undefined, undefined, undefined);
689 $t11_12 = $rt.builtin.appendSlice($t7_8, $t10_11);
690 $t12_13 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
691 $t12_13.$set($t11_12);
692 return;
693 break;
694 }
695 case 2: {
696 $t13_14 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
697 $t14_15 = $t13_14.$get();
698 $t15_16 = smesh$lol$web$common$jsbridge$ws.Send($t14_15, $t2_3);
699 return;
700 break;
701 }
702 }
703 }
704 }
705
706 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Publish', Conn$Publish);
707 export function Conn$Send(c, msg) {
708 let $t0_1, $t1_2, $t2_3;
709 $t0_1 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
710 $t1_2 = $t0_1.$get();
711 $t2_3 = smesh$lol$web$common$jsbridge$ws.Send($t1_2, msg);
712 return;
713 }
714
715 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Send', Conn$Send);
716 export function Conn$SetOnAuth(c, fn) {
717 let $t0_1;
718 $t0_1 = { $get() { return c.$get().onAuth; }, $set(v) { const obj = c.$get(); obj.onAuth = v; c.$set(obj); } };
719 $t0_1.$set(fn);
720 return;
721 }
722
723 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnAuth', Conn$SetOnAuth);
724 export function Conn$SetOnEOSE(c, fn) {
725 let $t0_1;
726 $t0_1 = { $get() { return c.$get().onEOSE; }, $set(v) { const obj = c.$get(); obj.onEOSE = v; c.$set(obj); } };
727 $t0_1.$set(fn);
728 return;
729 }
730
731 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnEOSE', Conn$SetOnEOSE);
732 export function Conn$SetOnEvent(c, fn) {
733 let $t0_1;
734 $t0_1 = { $get() { return c.$get().onEvent; }, $set(v) { const obj = c.$get(); obj.onEvent = v; c.$set(obj); } };
735 $t0_1.$set(fn);
736 return;
737 }
738
739 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnEvent', Conn$SetOnEvent);
740 export function Conn$SetOnOK(c, fn) {
741 let $t0_1;
742 $t0_1 = { $get() { return c.$get().onOK; }, $set(v) { const obj = c.$get(); obj.onOK = v; c.$set(obj); } };
743 $t0_1.$set(fn);
744 return;
745 }
746
747 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('SetOnOK', Conn$SetOnOK);
748 export function Conn$Subscribe(c, id, filters) {
749 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25;
750 let $block = 0;
751 while (true) {
752 switch ($block) {
753 case 0: {
754 $t0_1 = { $value: { ID: '', Filters: null, OnEvent: null, OnEOSE: null, conn: null, gotEOSE: false }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
755 $t1_2 = { $get() { return $t0_1.$get().ID; }, $set(v) { const obj = $t0_1.$get(); obj.ID = v; $t0_1.$set(obj); } };
756 $t2_3 = { $get() { return $t0_1.$get().Filters; }, $set(v) { const obj = $t0_1.$get(); obj.Filters = v; $t0_1.$set(obj); } };
757 $t3_4 = { $get() { return $t0_1.$get().conn; }, $set(v) { const obj = $t0_1.$get(); obj.conn = v; $t0_1.$set(obj); } };
758 $t1_2.$set(id);
759 $t2_3.$set(filters);
760 $t3_4.$set(c);
761 $t4_5 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
762 $t5_6 = $t4_5.$get();
763 $rt.builtin.mapUpdate($t5_6, id, $t0_1);
764 $t6_7 = { $get() { return c.$get().state; }, $set(v) { const obj = c.$get(); obj.state = v; c.$set(obj); } };
765 $t7_8 = $t6_7.$get();
766 $t8_9 = ($t7_8 === 1);
767 if ($t8_9) {
768 $block = 1; break;
769 }
770 else {
771 $block = 2; break;
772 }
773 break;
774 }
775 case 1: {
776 $t9_10 = ('["REQ","' + id);
777 $t10_11 = ($t9_10 + '"');
778 $t11_12 = $rt.builtin.len(filters);
779 $t12_13 = $t10_11;
780 $t13_14 = -1;
781 $block = 3; break;
782 break;
783 }
784 case 2: {
785 return $t0_1;
786 break;
787 }
788 case 3: {
789 $t14_15 = ($t13_14 + 1);
790 $t15_16 = ($t14_15 < $t11_12);
791 if ($t15_16) {
792 $block = 4; break;
793 }
794 else {
795 $block = 5; break;
796 }
797 break;
798 }
799 case 4: {
800 $t16_17 = filters.addr($t14_15);
801 $t17_18 = $t16_17.$get();
802 $t18_19 = smesh$lol$web$common$nostr.Filter$Serialize($t17_18);
803 $t19_20 = (',' + $t18_19);
804 $t20_21 = ($t12_13 + $t19_20);
805 $t12_13 = $t20_21;
806 $t13_14 = $t14_15;
807 $block = 3; break;
808 break;
809 }
810 case 5: {
811 $t21_22 = ($t12_13 + ']');
812 $t22_23 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
813 $t23_24 = $t22_23.$get();
814 $t24_25 = smesh$lol$web$common$jsbridge$ws.Send($t23_24, $t21_22);
815 $block = 2; break;
816 break;
817 }
818 }
819 }
820 }
821
822 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('Subscribe', Conn$Subscribe);
823 export function Conn$dial(c) {
824 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
825 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
826 $t0_1.$set(c);
827 $t1_2 = $t0_1.$get();
828 $t2_3 = $t0_1.$get();
829 $t3_4 = { $get() { return $t2_3.$get().URL; }, $set(v) { const obj = $t2_3.$get(); obj.URL = v; $t2_3.$set(obj); } };
830 $t4_5 = $t3_4.$get();
831 $t5_6 = dial$1.bind(null, $t0_1);
832 $t6_7 = dial$2.bind(null, $t0_1);
833 $t7_8 = dial$3.bind(null, $t0_1);
834 $t8_9 = dial$4.bind(null, $t0_1);
835 $t9_10 = smesh$lol$web$common$jsbridge$ws.Dial($t4_5, $t5_6, $t6_7, $t7_8, $t8_9);
836 $t10_11 = { $get() { return $t1_2.$get().wsConn; }, $set(v) { const obj = $t1_2.$get(); obj.wsConn = v; $t1_2.$set(obj); } };
837 $t10_11.$set($t9_10);
838 return;
839 }
840
841 function dial$1(c, connID, data) {
842 let $t0_1, $t1_2;
843 $t0_1 = c.$get();
844 $t1_2 = Conn$handleMessage($t0_1, data);
845 return;
846 }
847
848 function dial$2(c, connID) {
849 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16;
850 let $block = 0;
851 while (true) {
852 switch ($block) {
853 case 0: {
854 $t0_1 = c.$get();
855 $t1_2 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
856 $t1_2.$set(1);
857 $t2_3 = c.$get();
858 $t3_4 = { $get() { return $t2_3.$get().onReady; }, $set(v) { const obj = $t2_3.$get(); obj.onReady = v; $t2_3.$set(obj); } };
859 $t4_5 = $t3_4.$get();
860 $t5_6 = ($t4_5 !== null);
861 if ($t5_6) {
862 $block = 1; break;
863 }
864 else {
865 $block = 2; break;
866 }
867 break;
868 }
869 case 1: {
870 $t6_7 = c.$get();
871 $t7_8 = { $get() { return $t6_7.$get().onReady; }, $set(v) { const obj = $t6_7.$get(); obj.onReady = v; $t6_7.$set(obj); } };
872 $t8_9 = $t7_8.$get();
873 $t9_10 = $t8_9(true);
874 $t10_11 = c.$get();
875 $t11_12 = { $get() { return $t10_11.$get().onReady; }, $set(v) { const obj = $t10_11.$get(); obj.onReady = v; $t10_11.$set(obj); } };
876 $t11_12.$set(null);
877 $block = 2; break;
878 break;
879 }
880 case 2: {
881 $t12_13 = c.$get();
882 $t13_14 = Conn$flushSubs($t12_13);
883 $t14_15 = c.$get();
884 $t15_16 = Conn$flushPublish($t14_15);
885 return;
886 break;
887 }
888 }
889 }
890 }
891
892 function dial$3(c, connID, code, reason) {
893 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
894 let $block = 0;
895 while (true) {
896 switch ($block) {
897 case 0: {
898 $t0_1 = c.$get();
899 $t1_2 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
900 $t1_2.$set(2);
901 $t2_3 = c.$get();
902 $t3_4 = { $get() { return $t2_3.$get().onReady; }, $set(v) { const obj = $t2_3.$get(); obj.onReady = v; $t2_3.$set(obj); } };
903 $t4_5 = $t3_4.$get();
904 $t5_6 = ($t4_5 !== null);
905 if ($t5_6) {
906 $block = 1; break;
907 }
908 else {
909 $block = 2; break;
910 }
911 break;
912 }
913 case 1: {
914 $t6_7 = c.$get();
915 $t7_8 = { $get() { return $t6_7.$get().onReady; }, $set(v) { const obj = $t6_7.$get(); obj.onReady = v; $t6_7.$set(obj); } };
916 $t8_9 = $t7_8.$get();
917 $t9_10 = $t8_9(false);
918 $t10_11 = c.$get();
919 $t11_12 = { $get() { return $t10_11.$get().onReady; }, $set(v) { const obj = $t10_11.$get(); obj.onReady = v; $t10_11.$set(obj); } };
920 $t11_12.$set(null);
921 $block = 2; break;
922 break;
923 }
924 case 2: {
925 $t12_13 = c.$get();
926 $t13_14 = Conn$maybeReconnect($t12_13);
927 return;
928 break;
929 }
930 }
931 }
932 }
933
934 function dial$4(c, connID) {
935 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
936 let $block = 0;
937 while (true) {
938 switch ($block) {
939 case 0: {
940 $t0_1 = c.$get();
941 $t1_2 = { $get() { return $t0_1.$get().state; }, $set(v) { const obj = $t0_1.$get(); obj.state = v; $t0_1.$set(obj); } };
942 $t1_2.$set(2);
943 $t2_3 = c.$get();
944 $t3_4 = { $get() { return $t2_3.$get().onReady; }, $set(v) { const obj = $t2_3.$get(); obj.onReady = v; $t2_3.$set(obj); } };
945 $t4_5 = $t3_4.$get();
946 $t5_6 = ($t4_5 !== null);
947 if ($t5_6) {
948 $block = 1; break;
949 }
950 else {
951 $block = 2; break;
952 }
953 break;
954 }
955 case 1: {
956 $t6_7 = c.$get();
957 $t7_8 = { $get() { return $t6_7.$get().onReady; }, $set(v) { const obj = $t6_7.$get(); obj.onReady = v; $t6_7.$set(obj); } };
958 $t8_9 = $t7_8.$get();
959 $t9_10 = $t8_9(false);
960 $t10_11 = c.$get();
961 $t11_12 = { $get() { return $t10_11.$get().onReady; }, $set(v) { const obj = $t10_11.$get(); obj.onReady = v; $t10_11.$set(obj); } };
962 $t11_12.$set(null);
963 $block = 2; break;
964 break;
965 }
966 case 2: {
967 $t12_13 = c.$get();
968 $t13_14 = Conn$maybeReconnect($t12_13);
969 return;
970 break;
971 }
972 }
973 }
974 }
975
976 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('dial', Conn$dial);
977 export function Conn$flushPublish(c) {
978 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12;
979 let $block = 0;
980 while (true) {
981 switch ($block) {
982 case 0: {
983 $t0_1 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
984 $t1_2 = $t0_1.$get();
985 $t2_3 = $rt.builtin.len($t1_2);
986 $t3_4 = -1;
987 $block = 1; break;
988 break;
989 }
990 case 1: {
991 $t4_5 = ($t3_4 + 1);
992 $t5_6 = ($t4_5 < $t2_3);
993 if ($t5_6) {
994 $block = 2; break;
995 }
996 else {
997 $block = 3; break;
998 }
999 break;
1000 }
1001 case 2: {
1002 $t6_7 = $t1_2.addr($t4_5);
1003 $t7_8 = $t6_7.$get();
1004 $t8_9 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
1005 $t9_10 = $t8_9.$get();
1006 $t10_11 = smesh$lol$web$common$jsbridge$ws.Send($t9_10, $t7_8);
1007 $t3_4 = $t4_5;
1008 $block = 1; break;
1009 break;
1010 }
1011 case 3: {
1012 $t11_12 = { $get() { return c.$get().pendingPublish; }, $set(v) { const obj = c.$get(); obj.pendingPublish = v; c.$set(obj); } };
1013 $t11_12.$set(null);
1014 return;
1015 break;
1016 }
1017 }
1018 }
1019 }
1020
1021 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('flushPublish', Conn$flushPublish);
1022 export function Conn$flushSubs(c) {
1023 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26;
1024 let $block = 0;
1025 while (true) {
1026 switch ($block) {
1027 case 0: {
1028 $t0_1 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
1029 $t1_2 = $t0_1.$get();
1030 $t2_3 = { $entries: [...$t1_2.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
1031 $block = 1; break;
1032 break;
1033 }
1034 case 1: {
1035 $t3_4 = $t2_3.next();
1036 $t4_5 = $t3_4[0];
1037 if ($t4_5) {
1038 $block = 2; break;
1039 }
1040 else {
1041 $block = 3; break;
1042 }
1043 break;
1044 }
1045 case 2: {
1046 $t5_6 = $t3_4[2];
1047 $t6_7 = { $get() { return $t5_6.$get().ID; }, $set(v) { const obj = $t5_6.$get(); obj.ID = v; $t5_6.$set(obj); } };
1048 $t7_8 = $t6_7.$get();
1049 $t8_9 = ('["REQ","' + $t7_8);
1050 $t9_10 = ($t8_9 + '"');
1051 $t10_11 = { $get() { return $t5_6.$get().Filters; }, $set(v) { const obj = $t5_6.$get(); obj.Filters = v; $t5_6.$set(obj); } };
1052 $t11_12 = $t10_11.$get();
1053 $t12_13 = $rt.builtin.len($t11_12);
1054 $t13_14 = $t9_10;
1055 $t14_15 = -1;
1056 $block = 4; break;
1057 break;
1058 }
1059 case 3: {
1060 return;
1061 break;
1062 }
1063 case 4: {
1064 $t15_16 = ($t14_15 + 1);
1065 $t16_17 = ($t15_16 < $t12_13);
1066 if ($t16_17) {
1067 $block = 5; break;
1068 }
1069 else {
1070 $block = 6; break;
1071 }
1072 break;
1073 }
1074 case 5: {
1075 $t17_18 = $t11_12.addr($t15_16);
1076 $t18_19 = $t17_18.$get();
1077 $t19_20 = smesh$lol$web$common$nostr.Filter$Serialize($t18_19);
1078 $t20_21 = (',' + $t19_20);
1079 $t21_22 = ($t13_14 + $t20_21);
1080 $t13_14 = $t21_22;
1081 $t14_15 = $t15_16;
1082 $block = 4; break;
1083 break;
1084 }
1085 case 6: {
1086 $t22_23 = ($t13_14 + ']');
1087 $t23_24 = { $get() { return c.$get().wsConn; }, $set(v) { const obj = c.$get(); obj.wsConn = v; c.$set(obj); } };
1088 $t24_25 = $t23_24.$get();
1089 $t25_26 = smesh$lol$web$common$jsbridge$ws.Send($t24_25, $t22_23);
1090 $block = 1; break;
1091 break;
1092 }
1093 }
1094 }
1095 }
1096
1097 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('flushSubs', Conn$flushSubs);
1098 export function Conn$handleMessage(c, msg) {
1099 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72;
1100 let $block = 0;
1101 while (true) {
1102 switch ($block) {
1103 case 0: {
1104 $t0_1 = smesh$lol$web$common$nostr.ParseRelayMessage(msg);
1105 $t1_2 = $t0_1[0];
1106 $t2_3 = $t0_1[1];
1107 $t3_4 = $t0_1[2];
1108 $t4_5 = ($t1_2 === 'EVENT');
1109 if ($t4_5) {
1110 $block = 2; break;
1111 }
1112 else {
1113 $block = 4; break;
1114 }
1115 break;
1116 }
1117 case 1: {
1118 return;
1119 break;
1120 }
1121 case 2: {
1122 $t5_6 = smesh$lol$web$common$nostr.ParseEvent($t3_4);
1123 $t6_7 = ($t5_6 === null);
1124 if ($t6_7) {
1125 $block = 5; break;
1126 }
1127 else {
1128 $block = 6; break;
1129 }
1130 break;
1131 }
1132 case 3: {
1133 $t7_8 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
1134 $t8_9 = $t7_8.$get();
1135 { const $r = $rt.builtin.mapLookup($t8_9, $t2_3); $t9_10 = [$r.value, $r.ok]; }
1136 $t10_11 = $t9_10[0];
1137 $t11_12 = $t9_10[1];
1138 if ($t11_12) {
1139 $block = 13; break;
1140 }
1141 else {
1142 $block = 14; break;
1143 }
1144 break;
1145 }
1146 case 4: {
1147 $t12_13 = ($t1_2 === 'EOSE');
1148 if ($t12_13) {
1149 $block = 3; break;
1150 }
1151 else {
1152 $block = 12; break;
1153 }
1154 break;
1155 }
1156 case 5: {
1157 return;
1158 break;
1159 }
1160 case 6: {
1161 $t13_14 = { $get() { return c.$get().subs; }, $set(v) { const obj = c.$get(); obj.subs = v; c.$set(obj); } };
1162 $t14_15 = $t13_14.$get();
1163 { const $r = $rt.builtin.mapLookup($t14_15, $t2_3); $t15_16 = [$r.value, $r.ok]; }
1164 $t16_17 = $t15_16[0];
1165 $t17_18 = $t15_16[1];
1166 if ($t17_18) {
1167 $block = 7; break;
1168 }
1169 else {
1170 $block = 8; break;
1171 }
1172 break;
1173 }
1174 case 7: {
1175 $t18_19 = { $get() { return $t16_17.$get().OnEvent; }, $set(v) { const obj = $t16_17.$get(); obj.OnEvent = v; $t16_17.$set(obj); } };
1176 $t19_20 = $t18_19.$get();
1177 $t20_21 = ($t19_20 !== null);
1178 if ($t20_21) {
1179 $block = 9; break;
1180 }
1181 else {
1182 $block = 8; break;
1183 }
1184 break;
1185 }
1186 case 8: {
1187 $t21_22 = { $get() { return c.$get().onEvent; }, $set(v) { const obj = c.$get(); obj.onEvent = v; c.$set(obj); } };
1188 $t22_23 = $t21_22.$get();
1189 $t23_24 = ($t22_23 !== null);
1190 if ($t23_24) {
1191 $block = 10; break;
1192 }
1193 else {
1194 $block = 1; break;
1195 }
1196 break;
1197 }
1198 case 9: {
1199 $t24_25 = { $get() { return $t16_17.$get().OnEvent; }, $set(v) { const obj = $t16_17.$get(); obj.OnEvent = v; $t16_17.$set(obj); } };
1200 $t25_26 = $t24_25.$get();
1201 $t26_27 = $t25_26($t5_6);
1202 $block = 8; break;
1203 break;
1204 }
1205 case 10: {
1206 $t27_28 = { $get() { return c.$get().onEvent; }, $set(v) { const obj = c.$get(); obj.onEvent = v; c.$set(obj); } };
1207 $t28_29 = $t27_28.$get();
1208 $t29_30 = $t28_29($t2_3, $t5_6);
1209 $block = 1; break;
1210 break;
1211 }
1212 case 11: {
1213 $t30_31 = $rt.builtin.len($t3_4);
1214 $t31_32 = ($t30_31 > 0);
1215 if ($t31_32) {
1216 $block = 19; break;
1217 }
1218 else {
1219 $t53_54 = false;
1220 $block = 20; break;
1221 }
1222 break;
1223 }
1224 case 12: {
1225 $t32_33 = ($t1_2 === 'OK');
1226 if ($t32_33) {
1227 $block = 11; break;
1228 }
1229 else {
1230 $block = 18; break;
1231 }
1232 break;
1233 }
1234 case 13: {
1235 $t33_34 = { $get() { return $t10_11.$get().gotEOSE; }, $set(v) { const obj = $t10_11.$get(); obj.gotEOSE = v; $t10_11.$set(obj); } };
1236 $t33_34.$set(true);
1237 $t34_35 = { $get() { return $t10_11.$get().OnEOSE; }, $set(v) { const obj = $t10_11.$get(); obj.OnEOSE = v; $t10_11.$set(obj); } };
1238 $t35_36 = $t34_35.$get();
1239 $t36_37 = ($t35_36 !== null);
1240 if ($t36_37) {
1241 $block = 15; break;
1242 }
1243 else {
1244 $block = 14; break;
1245 }
1246 break;
1247 }
1248 case 14: {
1249 $t37_38 = { $get() { return c.$get().onEOSE; }, $set(v) { const obj = c.$get(); obj.onEOSE = v; c.$set(obj); } };
1250 $t38_39 = $t37_38.$get();
1251 $t39_40 = ($t38_39 !== null);
1252 if ($t39_40) {
1253 $block = 16; break;
1254 }
1255 else {
1256 $block = 1; break;
1257 }
1258 break;
1259 }
1260 case 15: {
1261 $t40_41 = { $get() { return $t10_11.$get().OnEOSE; }, $set(v) { const obj = $t10_11.$get(); obj.OnEOSE = v; $t10_11.$set(obj); } };
1262 $t41_42 = $t40_41.$get();
1263 $t42_43 = $t41_42();
1264 $block = 14; break;
1265 break;
1266 }
1267 case 16: {
1268 $t43_44 = { $get() { return c.$get().onEOSE; }, $set(v) { const obj = c.$get(); obj.onEOSE = v; c.$set(obj); } };
1269 $t44_45 = $t43_44.$get();
1270 $t45_46 = $t44_45($t2_3);
1271 $block = 1; break;
1272 break;
1273 }
1274 case 17: {
1275 $t46_47 = { $get() { return c.$get().onAuth; }, $set(v) { const obj = c.$get(); obj.onAuth = v; c.$set(obj); } };
1276 $t47_48 = $t46_47.$get();
1277 $t48_49 = ($t47_48 !== null);
1278 if ($t48_49) {
1279 $block = 27; break;
1280 }
1281 else {
1282 $block = 1; break;
1283 }
1284 break;
1285 }
1286 case 18: {
1287 $t49_50 = ($t1_2 === 'AUTH');
1288 if ($t49_50) {
1289 $block = 17; break;
1290 }
1291 else {
1292 $block = 26; break;
1293 }
1294 break;
1295 }
1296 case 19: {
1297 $t50_51 = $t3_4.addr(0);
1298 $t51_52 = $t50_51.$get();
1299 $t52_53 = ($t51_52 === 116);
1300 $t53_54 = $t52_53;
1301 $block = 20; break;
1302 break;
1303 }
1304 case 20: {
1305 $t54_55 = indexOf($t3_4, 58);
1306 $t55_56 = ($t54_55 >= 0);
1307 if ($t55_56) {
1308 $block = 23; break;
1309 }
1310 else {
1311 $t58_59 = '';
1312 $block = 22; break;
1313 }
1314 break;
1315 }
1316 case 21: {
1317 $t56_57 = ($t54_55 + 1);
1318 $t57_58 = $rt.builtin.stringSlice($t3_4, $t56_57, undefined);
1319 $t58_59 = $t57_58;
1320 $block = 22; break;
1321 break;
1322 }
1323 case 22: {
1324 $t59_60 = { $get() { return c.$get().onOK; }, $set(v) { const obj = c.$get(); obj.onOK = v; c.$set(obj); } };
1325 $t60_61 = $t59_60.$get();
1326 $t61_62 = ($t60_61 !== null);
1327 if ($t61_62) {
1328 $block = 24; break;
1329 }
1330 else {
1331 $block = 1; break;
1332 }
1333 break;
1334 }
1335 case 23: {
1336 $t62_63 = ($t54_55 + 1);
1337 $t63_64 = $rt.builtin.len($t3_4);
1338 $t64_65 = ($t62_63 < $t63_64);
1339 if ($t64_65) {
1340 $block = 21; break;
1341 }
1342 else {
1343 $t58_59 = '';
1344 $block = 22; break;
1345 }
1346 break;
1347 }
1348 case 24: {
1349 $t65_66 = { $get() { return c.$get().onOK; }, $set(v) { const obj = c.$get(); obj.onOK = v; c.$set(obj); } };
1350 $t66_67 = $t65_66.$get();
1351 $t67_68 = $t66_67($t2_3, $t53_54, $t58_59);
1352 $block = 1; break;
1353 break;
1354 }
1355 case 25: {
1356 $block = 1; break;
1357 break;
1358 }
1359 case 26: {
1360 $t68_69 = ($t1_2 === 'NOTICE');
1361 if ($t68_69) {
1362 $block = 25; break;
1363 }
1364 else {
1365 $block = 1; break;
1366 }
1367 break;
1368 }
1369 case 27: {
1370 $t69_70 = { $get() { return c.$get().onAuth; }, $set(v) { const obj = c.$get(); obj.onAuth = v; c.$set(obj); } };
1371 $t70_71 = $t69_70.$get();
1372 $t71_72 = $t70_71($t3_4);
1373 $block = 1; break;
1374 break;
1375 }
1376 }
1377 }
1378 }
1379
1380 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('handleMessage', Conn$handleMessage);
1381 export function Conn$maybeReconnect(c) {
1382 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
1383 let $block = 0;
1384 while (true) {
1385 switch ($block) {
1386 case 0: {
1387 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1388 $t0_1.$set(c);
1389 $t1_2 = $t0_1.$get();
1390 $t2_3 = { $get() { return $t1_2.$get().closing; }, $set(v) { const obj = $t1_2.$get(); obj.closing = v; $t1_2.$set(obj); } };
1391 $t3_4 = $t2_3.$get();
1392 if ($t3_4) {
1393 $block = 1; break;
1394 }
1395 else {
1396 $block = 4; break;
1397 }
1398 break;
1399 }
1400 case 1: {
1401 return;
1402 break;
1403 }
1404 case 2: {
1405 $t4_5 = $t0_1.$get();
1406 $t5_6 = { $get() { return $t4_5.$get().state; }, $set(v) { const obj = $t4_5.$get(); obj.state = v; $t4_5.$set(obj); } };
1407 $t5_6.$set(0);
1408 $t6_7 = $t0_1.$get();
1409 $t7_8 = { $get() { return $t6_7.$get().ScheduleReconnect; }, $set(v) { const obj = $t6_7.$get(); obj.ScheduleReconnect = v; $t6_7.$set(obj); } };
1410 $t8_9 = $t7_8.$get();
1411 $t9_10 = maybeReconnect$1.bind(null, $t0_1);
1412 $t10_11 = $t8_9($t9_10);
1413 return;
1414 break;
1415 }
1416 case 3: {
1417 $t11_12 = $t0_1.$get();
1418 $t12_13 = { $get() { return $t11_12.$get().ScheduleReconnect; }, $set(v) { const obj = $t11_12.$get(); obj.ScheduleReconnect = v; $t11_12.$set(obj); } };
1419 $t13_14 = $t12_13.$get();
1420 $t14_15 = ($t13_14 === null);
1421 if ($t14_15) {
1422 $block = 1; break;
1423 }
1424 else {
1425 $block = 2; break;
1426 }
1427 break;
1428 }
1429 case 4: {
1430 $t15_16 = $t0_1.$get();
1431 $t16_17 = { $get() { return $t15_16.$get().subs; }, $set(v) { const obj = $t15_16.$get(); obj.subs = v; $t15_16.$set(obj); } };
1432 $t17_18 = $t16_17.$get();
1433 $t18_19 = $rt.builtin.len($t17_18);
1434 $t19_20 = ($t18_19 === 0);
1435 if ($t19_20) {
1436 $block = 1; break;
1437 }
1438 else {
1439 $block = 3; break;
1440 }
1441 break;
1442 }
1443 }
1444 }
1445 }
1446
1447 function maybeReconnect$1(c) {
1448 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
1449 let $block = 0;
1450 while (true) {
1451 switch ($block) {
1452 case 0: {
1453 $t0_1 = c.$get();
1454 $t1_2 = { $get() { return $t0_1.$get().closing; }, $set(v) { const obj = $t0_1.$get(); obj.closing = v; $t0_1.$set(obj); } };
1455 $t2_3 = $t1_2.$get();
1456 if ($t2_3) {
1457 $block = 1; break;
1458 }
1459 else {
1460 $block = 2; break;
1461 }
1462 break;
1463 }
1464 case 1: {
1465 return;
1466 break;
1467 }
1468 case 2: {
1469 $t3_4 = c.$get();
1470 $t4_5 = Conn$dial($t3_4);
1471 return;
1472 break;
1473 }
1474 }
1475 }
1476 }
1477
1478 $rt.types.getType('smesh.lol/web/common/relay.Conn')?.methods?.set('maybeReconnect', Conn$maybeReconnect);
1479 export function Pool$CloseAll(p) {
1480 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
1481 let $block = 0;
1482 while (true) {
1483 switch ($block) {
1484 case 0: {
1485 $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1486 $t1_2 = $t0_1.$get();
1487 $t2_3 = { $entries: [...$t1_2.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
1488 $block = 1; break;
1489 break;
1490 }
1491 case 1: {
1492 $t3_4 = $t2_3.next();
1493 $t4_5 = $t3_4[0];
1494 if ($t4_5) {
1495 $block = 2; break;
1496 }
1497 else {
1498 $block = 3; break;
1499 }
1500 break;
1501 }
1502 case 2: {
1503 $t5_6 = $t3_4[1];
1504 $t6_7 = $t3_4[2];
1505 $t7_8 = Conn$Close($t6_7);
1506 $t8_9 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1507 $t9_10 = $t8_9.$get();
1508 $t10_11 = $rt.builtin.mapDelete($t9_10, $t5_6);
1509 $block = 1; break;
1510 break;
1511 }
1512 case 3: {
1513 return;
1514 break;
1515 }
1516 }
1517 }
1518 }
1519
1520 $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('CloseAll', Pool$CloseAll);
1521 export function Pool$Connect(p, url) {
1522 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12;
1523 let $block = 0;
1524 while (true) {
1525 switch ($block) {
1526 case 0: {
1527 $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1528 $t1_2 = $t0_1.$get();
1529 { const $r = $rt.builtin.mapLookup($t1_2, url); $t2_3 = [$r.value, $r.ok]; }
1530 $t3_4 = $t2_3[0];
1531 $t4_5 = $t2_3[1];
1532 if ($t4_5) {
1533 $block = 3; break;
1534 }
1535 else {
1536 $block = 2; break;
1537 }
1538 break;
1539 }
1540 case 1: {
1541 return $t3_4;
1542 break;
1543 }
1544 case 2: {
1545 $t5_6 = Pool$evictClosed(p);
1546 $t6_7 = Dial(url);
1547 $t7_8 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1548 $t8_9 = $t7_8.$get();
1549 $rt.builtin.mapUpdate($t8_9, url, $t6_7);
1550 return $t6_7;
1551 break;
1552 }
1553 case 3: {
1554 $t9_10 = { $get() { return $t3_4.$get().state; }, $set(v) { const obj = $t3_4.$get(); obj.state = v; $t3_4.$set(obj); } };
1555 $t10_11 = $t9_10.$get();
1556 $t11_12 = ($t10_11 !== 2);
1557 if ($t11_12) {
1558 $block = 1; break;
1559 }
1560 else {
1561 $block = 2; break;
1562 }
1563 break;
1564 }
1565 }
1566 }
1567 }
1568
1569 $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('Connect', Pool$Connect);
1570 export function Pool$Disconnect(p, url) {
1571 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
1572 let $block = 0;
1573 while (true) {
1574 switch ($block) {
1575 case 0: {
1576 $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1577 $t1_2 = $t0_1.$get();
1578 { const $r = $rt.builtin.mapLookup($t1_2, url); $t2_3 = [$r.value, $r.ok]; }
1579 $t3_4 = $t2_3[0];
1580 $t4_5 = $t2_3[1];
1581 if ($t4_5) {
1582 $block = 1; break;
1583 }
1584 else {
1585 $block = 2; break;
1586 }
1587 break;
1588 }
1589 case 1: {
1590 $t5_6 = Conn$Close($t3_4);
1591 $t6_7 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1592 $t7_8 = $t6_7.$get();
1593 $t8_9 = $rt.builtin.mapDelete($t7_8, url);
1594 $block = 2; break;
1595 break;
1596 }
1597 case 2: {
1598 return;
1599 break;
1600 }
1601 }
1602 }
1603 }
1604
1605 $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('Disconnect', Pool$Disconnect);
1606 export function Pool$Get(p, url) {
1607 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1608 let $block = 0;
1609 while (true) {
1610 switch ($block) {
1611 case 0: {
1612 $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1613 $t1_2 = $t0_1.$get();
1614 { const $r = $rt.builtin.mapLookup($t1_2, url); $t2_3 = [$r.value, $r.ok]; }
1615 $t3_4 = $t2_3[0];
1616 $t4_5 = $t2_3[1];
1617 if ($t4_5) {
1618 $block = 3; break;
1619 }
1620 else {
1621 $block = 1; break;
1622 }
1623 break;
1624 }
1625 case 1: {
1626 return null;
1627 break;
1628 }
1629 case 2: {
1630 return $t3_4;
1631 break;
1632 }
1633 case 3: {
1634 $t5_6 = Conn$IsOpen($t3_4);
1635 if ($t5_6) {
1636 $block = 2; break;
1637 }
1638 else {
1639 $block = 1; break;
1640 }
1641 break;
1642 }
1643 }
1644 }
1645 }
1646
1647 $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('Get', Pool$Get);
1648 export function Pool$URLs(p) {
1649 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13;
1650 let $block = 0;
1651 while (true) {
1652 switch ($block) {
1653 case 0: {
1654 $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1655 $t1_2 = $t0_1.$get();
1656 $t2_3 = { $entries: [...$t1_2.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
1657 $t3_4 = null;
1658 $block = 1; break;
1659 break;
1660 }
1661 case 1: {
1662 $t4_5 = $t2_3.next();
1663 $t5_6 = $t4_5[0];
1664 if ($t5_6) {
1665 $block = 2; break;
1666 }
1667 else {
1668 $block = 3; break;
1669 }
1670 break;
1671 }
1672 case 2: {
1673 $t6_7 = $t4_5[1];
1674 $t7_8 = $t4_5[2];
1675 $t8_9 = Conn$IsOpen($t7_8);
1676 if ($t8_9) {
1677 $block = 4; break;
1678 }
1679 else {
1680 $t3_4 = $t3_4;
1681 $block = 1; break;
1682 }
1683 break;
1684 }
1685 case 3: {
1686 return $t3_4;
1687 break;
1688 }
1689 case 4: {
1690 $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1691 $t10_11 = $t9_10.$get().addr(0);
1692 $t10_11.$set($t6_7);
1693 $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
1694 $t12_13 = $rt.builtin.appendSlice($t3_4, $t11_12);
1695 $t3_4 = $t12_13;
1696 $block = 1; break;
1697 break;
1698 }
1699 }
1700 }
1701 }
1702
1703 $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('URLs', Pool$URLs);
1704 export function Pool$evictClosed(p) {
1705 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13;
1706 let $block = 0;
1707 while (true) {
1708 switch ($block) {
1709 case 0: {
1710 $t0_1 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1711 $t1_2 = $t0_1.$get();
1712 $t2_3 = { $entries: [...$t1_2.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
1713 $block = 1; break;
1714 break;
1715 }
1716 case 1: {
1717 $t3_4 = $t2_3.next();
1718 $t4_5 = $t3_4[0];
1719 if ($t4_5) {
1720 $block = 2; break;
1721 }
1722 else {
1723 $block = 3; break;
1724 }
1725 break;
1726 }
1727 case 2: {
1728 $t5_6 = $t3_4[1];
1729 $t6_7 = $t3_4[2];
1730 $t7_8 = { $get() { return $t6_7.$get().state; }, $set(v) { const obj = $t6_7.$get(); obj.state = v; $t6_7.$set(obj); } };
1731 $t8_9 = $t7_8.$get();
1732 $t9_10 = ($t8_9 === 2);
1733 if ($t9_10) {
1734 $block = 4; break;
1735 }
1736 else {
1737 $block = 1; break;
1738 }
1739 break;
1740 }
1741 case 3: {
1742 return;
1743 break;
1744 }
1745 case 4: {
1746 $t10_11 = { $get() { return p.$get().conns; }, $set(v) { const obj = p.$get(); obj.conns = v; p.$set(obj); } };
1747 $t11_12 = $t10_11.$get();
1748 $t12_13 = $rt.builtin.mapDelete($t11_12, $t5_6);
1749 $block = 1; break;
1750 break;
1751 }
1752 }
1753 }
1754 }
1755
1756 $rt.types.getType('smesh.lol/web/common/relay.Pool')?.methods?.set('evictClosed', Pool$evictClosed);
1757 export function Sub$Close(s) {
1758 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
1759 let $block = 0;
1760 while (true) {
1761 switch ($block) {
1762 case 0: {
1763 $t0_1 = { $get() { return s.$get().conn; }, $set(v) { const obj = s.$get(); obj.conn = v; s.$set(obj); } };
1764 $t1_2 = $t0_1.$get();
1765 $t2_3 = ($t1_2 !== null);
1766 if ($t2_3) {
1767 $block = 1; break;
1768 }
1769 else {
1770 $block = 2; break;
1771 }
1772 break;
1773 }
1774 case 1: {
1775 $t3_4 = { $get() { return s.$get().conn; }, $set(v) { const obj = s.$get(); obj.conn = v; s.$set(obj); } };
1776 $t4_5 = $t3_4.$get();
1777 $t5_6 = { $get() { return s.$get().ID; }, $set(v) { const obj = s.$get(); obj.ID = v; s.$set(obj); } };
1778 $t6_7 = $t5_6.$get();
1779 $t7_8 = Conn$CloseSubscription($t4_5, $t6_7);
1780 $block = 2; break;
1781 break;
1782 }
1783 case 2: {
1784 return;
1785 break;
1786 }
1787 }
1788 }
1789 }
1790
1791 $rt.types.getType('smesh.lol/web/common/relay.Sub')?.methods?.set('Close', Sub$Close);
1792 export function Sub$GotEOSE(s) {
1793 let $t0_1, $t1_2;
1794 $t0_1 = { $get() { return s.$get().gotEOSE; }, $set(v) { const obj = s.$get(); obj.gotEOSE = v; s.$set(obj); } };
1795 $t1_2 = $t0_1.$get();
1796 return $t1_2;
1797 }
1798
1799 $rt.types.getType('smesh.lol/web/common/relay.Sub')?.methods?.set('GotEOSE', Sub$GotEOSE);
1800