__web_sw_.mjs raw
1 // Package ./web/sw/
2 // Generated by MoxieJS — Moxie JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 import * as smesh$lol$web$common$helpers from './smesh_lol_web_common_helpers.mjs';
7 import * as smesh$lol$web$common$jsbridge$idb from './smesh_lol_web_common_jsbridge_idb.mjs';
8 import * as smesh$lol$web$common$jsbridge$schnorr from './smesh_lol_web_common_jsbridge_schnorr.mjs';
9 import * as smesh$lol$web$common$jsbridge$subtle from './smesh_lol_web_common_jsbridge_subtle.mjs';
10 import * as smesh$lol$web$common$jsbridge$sw from './smesh_lol_web_common_jsbridge_sw.mjs';
11 import * as smesh$lol$web$common$nostr from './smesh_lol_web_common_nostr.mjs';
12 import * as smesh$lol$web$common$relay from './smesh_lol_web_common_relay.mjs';
13
14 // Package-level variables
15 export let rpool = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
16 export let writeRelays = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
17 export let seckey = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
18 export let hasKey = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
19 export let myPubkey = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
20 export let staticFiles = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
21 export let currentVersion = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
22 export let clientSubs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
23 export let proxySubs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
24 export let dmSubIDs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
25 export let dmRelayURLs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
26 export let cryptoCBs = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
27 export let nextCryptoID = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
28
29 $rt.types.registerType('./web/sw/.DMRecord', {
30 id: './web/sw/.DMRecord',
31 kind: 'struct',
32 methods: new Map(),
33 fields: [
34 { name: 'ID', type: 'string', tag: '', embedded: false },
35 { name: 'Peer', type: 'string', tag: '', embedded: false },
36 { name: 'From', type: 'string', tag: '', embedded: false },
37 { name: 'Content', type: 'string', tag: '', embedded: false },
38 { name: 'CreatedAt', type: 'int64', tag: '', embedded: false },
39 { name: 'Protocol', type: 'string', tag: '', embedded: false },
40 { name: 'EventID', type: 'string', tag: '', embedded: false },
41 ],
42 zero: () => ({ ID: '', Peer: '', From: '', Content: '', CreatedAt: 0n, Protocol: '', EventID: '' }),
43 });
44 $rt.types.registerType('./web/sw/.clientSub', {
45 id: './web/sw/.clientSub',
46 kind: 'struct',
47 methods: new Map(),
48 fields: [
49 { name: 'filter', type: '*smesh.lol/web/common/nostr.Filter', tag: '', embedded: false },
50 { name: 'filterRaw', type: 'string', tag: '', embedded: false },
51 { name: 'clientID', type: 'string', tag: '', embedded: false },
52 ],
53 zero: () => ({ filter: null, filterRaw: '', clientID: '' }),
54 });
55 $rt.types.registerType('./web/sw/.proxySub', {
56 id: './web/sw/.proxySub',
57 kind: 'struct',
58 methods: new Map(),
59 fields: [
60 { name: 'remoteIDs', type: 'map[string]bool', tag: '', embedded: false },
61 { name: 'relayCount', type: 'int', tag: '', embedded: false },
62 { name: 'eoseCount', type: 'int', tag: '', embedded: false },
63 { name: 'timer', type: 'smesh.lol/web/common/jsbridge/sw.Timer', tag: '', embedded: false },
64 { name: 'done', type: 'bool', tag: '', embedded: false },
65 ],
66 zero: () => ({ remoteIDs: null, relayCount: 0, eoseCount: 0, timer: 0, done: false }),
67 });
68 $rt.types.registerType('./web/sw/.mw', {
69 id: './web/sw/.mw',
70 kind: 'struct',
71 methods: new Map(),
72 fields: [
73 { name: 's', type: 'string', tag: '', embedded: false },
74 { name: 'i', type: 'int', tag: '', embedded: false },
75 ],
76 zero: () => ({ s: '', i: 0 }),
77 });
78 export function init() {
79 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
80 $t0_1 = { $value: $rt.builtin.makeSlice(5, 5, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
81 $t1_2 = $t0_1.$get().addr(0);
82 $t1_2.$set('/');
83 $t2_3 = $t0_1.$get().addr(1);
84 $t2_3.$set('/index.html');
85 $t3_4 = $t0_1.$get().addr(2);
86 $t3_4.$set('/style.css');
87 $t4_5 = $t0_1.$get().addr(3);
88 $t4_5.$set('/smesh-logo.svg');
89 $t5_6 = $t0_1.$get().addr(4);
90 $t5_6.$set('/sw-register.js');
91 $t6_7 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
92 staticFiles.$set($t6_7);
93 return;
94 }
95
96 export function cacheQuery(filterRaw, cb) {
97 let $t0_1;
98 $t0_1 = smesh$lol$web$common$jsbridge$idb.QueryEvents(filterRaw, cb);
99 return;
100 }
101
102 export function cacheStore(evJSON, cb) {
103 let $t0_1;
104 $t0_1 = smesh$lol$web$common$jsbridge$idb.SaveEvent(evJSON, cb);
105 return;
106 }
107
108 export function cacheSaveDM(dmJSON, cb) {
109 let $t0_1;
110 $t0_1 = smesh$lol$web$common$jsbridge$idb.SaveDM(dmJSON, cb);
111 return;
112 }
113
114 export function cacheGetConversationList(cb) {
115 let $t0_1;
116 $t0_1 = smesh$lol$web$common$jsbridge$idb.GetConversationList(cb);
117 return;
118 }
119
120 export function cacheQueryDMs(peer, limit, until, cb) {
121 let $t0_1;
122 $t0_1 = smesh$lol$web$common$jsbridge$idb.QueryDMs(peer, limit, until, cb);
123 return;
124 }
125
126 export function initRelayProxy() {
127 let $t0_1;
128 $t0_1 = smesh$lol$web$common$relay.NewPool();
129 rpool.$set($t0_1);
130 return;
131 }
132
133 export function getConn(url) {
134 let $t0_1, $t1_2, $t2_3;
135 $t0_1 = rpool.$get();
136 $t1_2 = smesh$lol$web$common$relay.Pool$Connect($t0_1, url);
137 $t2_3 = wireConn($t1_2, url);
138 return $t1_2;
139 }
140
141 export function wireConn(c, url) {
142 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
143 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
144 $t0_1.$set(url);
145 $t1_2 = wireConn$1.bind(null, $t0_1);
146 $t2_3 = smesh$lol$web$common$relay.Conn$SetOnEvent(c, $t1_2);
147 $t3_4 = smesh$lol$web$common$relay.Conn$SetOnEOSE(c, wireConn$2);
148 $t4_5 = smesh$lol$web$common$relay.Conn$SetOnOK(c, wireConn$3);
149 $t5_6 = wireConn$4.bind(null, $t0_1);
150 $t6_7 = smesh$lol$web$common$relay.Conn$SetOnAuth(c, $t5_6);
151 return;
152 }
153
154 function wireConn$1(url, subID, ev) {
155 let $t0_1, $t1_2;
156 $t0_1 = url.$get();
157 $t1_2 = routerOnRelayEvent($t0_1, subID, ev);
158 return;
159 }
160
161 function wireConn$2(subID) {
162 let $t0_1;
163 $t0_1 = routerOnRelayEOSE(subID);
164 return;
165 }
166
167 function wireConn$3(eventID, ok, msg) {
168 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10;
169 let $block = 0;
170 while (true) {
171 switch ($block) {
172 case 0: {
173 if (ok) {
174 $t0_1 = 'true';
175 $block = 2; break;
176 }
177 else {
178 $block = 1; break;
179 }
180 break;
181 }
182 case 1: {
183 $t0_1 = 'false';
184 $block = 2; break;
185 break;
186 }
187 case 2: {
188 $t1_2 = jstr(eventID);
189 $t2_3 = ('["OK",' + $t1_2);
190 $t3_4 = ($t2_3 + ',');
191 $t4_5 = ($t3_4 + $t0_1);
192 $t5_6 = ($t4_5 + ',');
193 $t6_7 = jstr(msg);
194 $t7_8 = ($t5_6 + $t6_7);
195 $t8_9 = ($t7_8 + ']');
196 $t9_10 = broadcastToClients($t8_9);
197 return;
198 break;
199 }
200 }
201 }
202 }
203
204 function wireConn$4(url, challenge) {
205 let $t0_1, $t1_2;
206 $t0_1 = url.$get();
207 $t1_2 = onRelayAuth($t0_1, challenge);
208 return;
209 }
210
211 export function onRelayAuth(relayURL, challenge) {
212 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;
213 let $block = 0;
214 while (true) {
215 switch ($block) {
216 case 0: {
217 $t0_1 = hasKey.$get();
218 if ($t0_1) {
219 $block = 3; break;
220 }
221 else {
222 $block = 1; break;
223 }
224 break;
225 }
226 case 1: {
227 return;
228 break;
229 }
230 case 2: {
231 $t1_2 = { $value: { ID: '', PubKey: '', CreatedAt: 0n, Kind: 0, Tags: null, Content: '', Sig: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
232 $t2_3 = { $get() { return $t1_2.$get().Kind; }, $set(v) { const obj = $t1_2.$get(); obj.Kind = v; $t1_2.$set(obj); } };
233 $t3_4 = { $get() { return $t1_2.$get().Content; }, $set(v) { const obj = $t1_2.$get(); obj.Content = v; $t1_2.$set(obj); } };
234 $t4_5 = { $get() { return $t1_2.$get().Tags; }, $set(v) { const obj = $t1_2.$get(); obj.Tags = v; $t1_2.$set(obj); } };
235 $t5_6 = { $value: $rt.builtin.makeSlice(2, 2, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
236 $t6_7 = $t5_6.$get().addr(0);
237 $t7_8 = { $value: $rt.builtin.makeSlice(2, 2, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
238 $t8_9 = $t7_8.$get().addr(0);
239 $t8_9.$set('relay');
240 $t9_10 = $t7_8.$get().addr(1);
241 $t9_10.$set(relayURL);
242 $t10_11 = $rt.builtin.sliceSlice($t7_8.$get(), undefined, undefined, undefined);
243 $t6_7.$set($t10_11);
244 $t11_12 = $t5_6.$get().addr(1);
245 $t12_13 = { $value: $rt.builtin.makeSlice(2, 2, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
246 $t13_14 = $t12_13.$get().addr(0);
247 $t13_14.$set('challenge');
248 $t14_15 = $t12_13.$get().addr(1);
249 $t14_15.$set(challenge);
250 $t15_16 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
251 $t11_12.$set($t15_16);
252 $t16_17 = $rt.builtin.sliceSlice($t5_6.$get(), undefined, undefined, undefined);
253 $t17_18 = { $get() { return $t1_2.$get().CreatedAt; }, $set(v) { const obj = $t1_2.$get(); obj.CreatedAt = v; $t1_2.$set(obj); } };
254 $t18_19 = smesh$lol$web$common$jsbridge$sw.NowSeconds();
255 $t2_3.$set(22242);
256 $t3_4.$set('');
257 $t4_5.$set($t16_17);
258 $t17_18.$set($t18_19);
259 $t19_20 = identitySignEvent($t1_2);
260 if ($t19_20) {
261 $block = 5; break;
262 }
263 else {
264 $block = 4; break;
265 }
266 break;
267 }
268 case 3: {
269 $t20_21 = myPubkey.$get();
270 $t21_22 = $rt.builtin.stringEqual($t20_21, '');
271 if ($t21_22) {
272 $block = 1; break;
273 }
274 else {
275 $block = 2; break;
276 }
277 break;
278 }
279 case 4: {
280 return;
281 break;
282 }
283 case 5: {
284 $t22_23 = rpool.$get();
285 $t23_24 = smesh$lol$web$common$relay.Pool$Get($t22_23, relayURL);
286 $t24_25 = ($t23_24 !== null);
287 if ($t24_25) {
288 $block = 8; break;
289 }
290 else {
291 $block = 7; break;
292 }
293 break;
294 }
295 case 6: {
296 $t25_26 = smesh$lol$web$common$nostr.Event$ToJSON($t1_2);
297 $t26_27 = ('["AUTH",' + $t25_26);
298 $t27_28 = ($t26_27 + ']');
299 $t28_29 = smesh$lol$web$common$relay.Conn$Send($t23_24, $t27_28);
300 $block = 7; break;
301 break;
302 }
303 case 7: {
304 return;
305 break;
306 }
307 case 8: {
308 $t29_30 = smesh$lol$web$common$relay.Conn$IsOpen($t23_24);
309 if ($t29_30) {
310 $block = 6; break;
311 }
312 else {
313 $block = 7; break;
314 }
315 break;
316 }
317 }
318 }
319 }
320
321 export function relayPublish(ev) {
322 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
323 let $block = 0;
324 while (true) {
325 switch ($block) {
326 case 0: {
327 $t0_1 = writeRelays.$get();
328 $t1_2 = $rt.builtin.len($t0_1);
329 $t2_3 = -1;
330 $block = 1; break;
331 break;
332 }
333 case 1: {
334 $t3_4 = ($t2_3 + 1);
335 $t4_5 = ($t3_4 < $t1_2);
336 if ($t4_5) {
337 $block = 2; break;
338 }
339 else {
340 $block = 3; break;
341 }
342 break;
343 }
344 case 2: {
345 $t5_6 = $t0_1.addr($t3_4);
346 $t6_7 = $t5_6.$get();
347 $t7_8 = getConn($t6_7);
348 $t8_9 = smesh$lol$web$common$relay.Conn$Publish($t7_8, ev);
349 $t2_3 = $t3_4;
350 $block = 1; break;
351 break;
352 }
353 case 3: {
354 return;
355 break;
356 }
357 }
358 }
359 }
360
361 export function urlSuffix(url) {
362 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;
363 let $block = 0;
364 while (true) {
365 switch ($block) {
366 case 0: {
367 $t0_1 = $rt.builtin.len(url);
368 $t1_2 = Math.min($t0_1, 8);
369 $t2_3 = $rt.builtin.makeSlice(0, $t1_2, 0);
370 $t3_4 = $rt.builtin.len(url);
371 $t4_5 = ($t3_4 - $t1_2);
372 $t5_6 = $t2_3;
373 $t6_7 = $t4_5;
374 $block = 1; break;
375 break;
376 }
377 case 1: {
378 $t7_8 = $rt.builtin.len(url);
379 $t8_9 = ($t6_7 < $t7_8);
380 if ($t8_9) {
381 $block = 2; break;
382 }
383 else {
384 $block = 3; break;
385 }
386 break;
387 }
388 case 2: {
389 $t9_10 = url.addr($t6_7);
390 $t10_11 = $t9_10.$get();
391 $t11_12 = ($t10_11 >= 97);
392 if ($t11_12) {
393 $block = 7; break;
394 }
395 else {
396 $block = 6; break;
397 }
398 break;
399 }
400 case 3: {
401 $t12_13 = $rt.builtin.bytesToString($t5_6);
402 return $t12_13;
403 break;
404 }
405 case 4: {
406 $t13_14 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
407 $t14_15 = $t13_14.$get().addr(0);
408 $t14_15.$set($t10_11);
409 $t15_16 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, undefined, undefined);
410 $t16_17 = $rt.builtin.appendSlice($t5_6, $t15_16);
411 $t17_18 = $t16_17;
412 $block = 5; break;
413 break;
414 }
415 case 5: {
416 $t18_19 = ($t6_7 + 1);
417 $t5_6 = $t17_18;
418 $t6_7 = $t18_19;
419 $block = 1; break;
420 break;
421 }
422 case 6: {
423 $t19_20 = ($t10_11 >= 48);
424 if ($t19_20) {
425 $block = 8; break;
426 }
427 else {
428 $t17_18 = $t5_6;
429 $block = 5; break;
430 }
431 break;
432 }
433 case 7: {
434 $t20_21 = ($t10_11 <= 122);
435 if ($t20_21) {
436 $block = 4; break;
437 }
438 else {
439 $block = 6; break;
440 }
441 break;
442 }
443 case 8: {
444 $t21_22 = ($t10_11 <= 57);
445 if ($t21_22) {
446 $block = 4; break;
447 }
448 else {
449 $t17_18 = $t5_6;
450 $block = 5; break;
451 }
452 break;
453 }
454 }
455 }
456 }
457
458 export function handleRelayInfo(clientID, relayURL) {
459 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;
460 let $block = 0;
461 while (true) {
462 switch ($block) {
463 case 0: {
464 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
465 $t0_1.$set(clientID);
466 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
467 $t1_2.$set(relayURL);
468 $t2_3 = $t1_2.$get();
469 $t3_4 = $rt.builtin.len($t2_3);
470 $t4_5 = ($t3_4 > 6);
471 if ($t4_5) {
472 $block = 4; break;
473 }
474 else {
475 $block = 3; break;
476 }
477 break;
478 }
479 case 1: {
480 $t5_6 = $rt.builtin.stringSlice($t2_3, 6, undefined);
481 $t6_7 = ('https://' + $t5_6);
482 $t7_8 = $t6_7;
483 $block = 2; break;
484 break;
485 }
486 case 2: {
487 $t8_9 = handleRelayInfo$1.bind(null, $t0_1, $t1_2);
488 $t9_10 = smesh$lol$web$common$jsbridge$sw.Fetch($t7_8, $t8_9);
489 return;
490 break;
491 }
492 case 3: {
493 $t10_11 = $rt.builtin.len($t2_3);
494 $t11_12 = ($t10_11 > 5);
495 if ($t11_12) {
496 $block = 6; break;
497 }
498 else {
499 $t7_8 = $t2_3;
500 $block = 2; break;
501 }
502 break;
503 }
504 case 4: {
505 $t12_13 = $rt.builtin.stringSlice($t2_3, undefined, 6);
506 $t13_14 = $rt.builtin.stringEqual($t12_13, 'wss://');
507 if ($t13_14) {
508 $block = 1; break;
509 }
510 else {
511 $block = 3; break;
512 }
513 break;
514 }
515 case 5: {
516 $t14_15 = $rt.builtin.stringSlice($t2_3, 5, undefined);
517 $t15_16 = ('http://' + $t14_15);
518 $t7_8 = $t15_16;
519 $block = 2; break;
520 break;
521 }
522 case 6: {
523 $t16_17 = $rt.builtin.stringSlice($t2_3, undefined, 5);
524 $t17_18 = $rt.builtin.stringEqual($t16_17, 'ws://');
525 if ($t17_18) {
526 $block = 5; break;
527 }
528 else {
529 $t7_8 = $t2_3;
530 $block = 2; break;
531 }
532 break;
533 }
534 }
535 }
536 }
537
538 function handleRelayInfo$1(clientID, relayURL, resp, ok) {
539 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
540 $t0_1 = clientID.$get();
541 $t1_2 = relayURL.$get();
542 $t2_3 = jstr($t1_2);
543 $t3_4 = ('["RELAY_INFO",' + $t2_3);
544 $t4_5 = ($t3_4 + ',null]');
545 $t5_6 = sendToClient($t0_1, $t4_5);
546 return;
547 }
548
549 export function makeDMRecord(peer, from, content, createdAt, protocol, eventID) {
550 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
551 $t0_1 = { $value: { ID: '', Peer: '', From: '', Content: '', CreatedAt: 0n, Protocol: '', EventID: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
552 $t1_2 = { $get() { return $t0_1.$get().ID; }, $set(v) { const obj = $t0_1.$get(); obj.ID = v; $t0_1.$set(obj); } };
553 $t2_3 = { $get() { return $t0_1.$get().Peer; }, $set(v) { const obj = $t0_1.$get(); obj.Peer = v; $t0_1.$set(obj); } };
554 $t3_4 = { $get() { return $t0_1.$get().From; }, $set(v) { const obj = $t0_1.$get(); obj.From = v; $t0_1.$set(obj); } };
555 $t4_5 = { $get() { return $t0_1.$get().Content; }, $set(v) { const obj = $t0_1.$get(); obj.Content = v; $t0_1.$set(obj); } };
556 $t5_6 = { $get() { return $t0_1.$get().CreatedAt; }, $set(v) { const obj = $t0_1.$get(); obj.CreatedAt = v; $t0_1.$set(obj); } };
557 $t6_7 = { $get() { return $t0_1.$get().Protocol; }, $set(v) { const obj = $t0_1.$get(); obj.Protocol = v; $t0_1.$set(obj); } };
558 $t7_8 = { $get() { return $t0_1.$get().EventID; }, $set(v) { const obj = $t0_1.$get(); obj.EventID = v; $t0_1.$set(obj); } };
559 $t1_2.$set(eventID);
560 $t2_3.$set(peer);
561 $t3_4.$set(from);
562 $t4_5.$set(content);
563 $t5_6.$set(createdAt);
564 $t6_7.$set(protocol);
565 $t7_8.$set(eventID);
566 return $t0_1;
567 }
568
569 export function identitySetKey(hexKey) {
570 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
571 let $block = 0;
572 while (true) {
573 switch ($block) {
574 case 0: {
575 $t0_1 = hexTo32(hexKey);
576 seckey.$set($rt.builtin.cloneValue($t0_1));
577 hasKey.$set(true);
578 $t1_2 = $rt.builtin.sliceSlice(seckey.$get(), undefined, undefined, undefined);
579 $t2_3 = smesh$lol$web$common$jsbridge$schnorr.PubKeyFromSecKey($t1_2);
580 $t3_4 = $t2_3[0];
581 $t4_5 = $t2_3[1];
582 if ($t4_5) {
583 $block = 1; break;
584 }
585 else {
586 $block = 2; break;
587 }
588 break;
589 }
590 case 1: {
591 $t5_6 = smesh$lol$web$common$helpers.HexEncode($t3_4);
592 myPubkey.$set($t5_6);
593 $block = 2; break;
594 break;
595 }
596 case 2: {
597 return;
598 break;
599 }
600 }
601 }
602 }
603
604 export function identitySetPubkey(hex) {
605 myPubkey.$set(hex);
606 return;
607 }
608
609 export function identityClearKey() {
610 seckey.$set($rt.builtin.cloneValue($rt.builtin.makeSlice(32, 32, 0)));
611 hasKey.$set(false);
612 myPubkey.$set('');
613 return;
614 }
615
616 export function identitySignEvent(ev) {
617 let $t0_1, $t1_2, $t2_3, $t3_4;
618 let $block = 0;
619 while (true) {
620 switch ($block) {
621 case 0: {
622 $t0_1 = hasKey.$get();
623 if ($t0_1) {
624 $block = 2; break;
625 }
626 else {
627 $block = 1; break;
628 }
629 break;
630 }
631 case 1: {
632 return false;
633 break;
634 }
635 case 2: {
636 $t1_2 = random32();
637 $t2_3 = seckey.$get();
638 $t3_4 = smesh$lol$web$common$nostr.Event$Sign(ev, $t2_3, $t1_2);
639 return $t3_4;
640 break;
641 }
642 }
643 }
644 }
645
646 export function main() {
647 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
648 $t0_1 = initRouter();
649 $t1_2 = initRelayProxy();
650 $t2_3 = initSharedState();
651 $t3_4 = smesh$lol$web$common$jsbridge$idb.Open(main$1);
652 $t4_5 = smesh$lol$web$common$jsbridge$sw.OnInstall(onInstall);
653 $t5_6 = smesh$lol$web$common$jsbridge$sw.OnActivate(onActivate);
654 $t6_7 = smesh$lol$web$common$jsbridge$sw.OnFetch(onFetch);
655 $t7_8 = smesh$lol$web$common$jsbridge$sw.OnMessage(onMessage);
656 $t8_9 = connectSSE();
657 return;
658 }
659
660 function main$1() {
661 return;
662 }
663
664 export function onInstall(event) {
665 let $t0_1;
666 $t0_1 = smesh$lol$web$common$jsbridge$sw.WaitUntil(event, onInstall$1);
667 return;
668 }
669
670 function onInstall$1(done) {
671 let $t0_1, $t1_2, $t2_3;
672 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
673 $t0_1.$set(done);
674 $t1_2 = onInstall$1$1.bind(null, $t0_1);
675 $t2_3 = smesh$lol$web$common$jsbridge$sw.CacheOpen('smesh', $t1_2);
676 return;
677 }
678
679 function onInstall$1$1(done, cache) {
680 let $t0_1, $t1_2, $t2_3;
681 $t0_1 = staticFiles.$get();
682 $t1_2 = onInstall$1$1$1.bind(null, done);
683 $t2_3 = smesh$lol$web$common$jsbridge$sw.CacheFromManifests(cache, $t0_1, $t1_2);
684 return;
685 }
686
687 function onInstall$1$1$1(done) {
688 let $t0_1, $t1_2, $t2_3;
689 $t0_1 = smesh$lol$web$common$jsbridge$sw.SkipWaiting();
690 $t1_2 = done.$get();
691 $t2_3 = $t1_2();
692 return;
693 }
694
695 export function onActivate(event) {
696 let $t0_1;
697 $t0_1 = smesh$lol$web$common$jsbridge$sw.WaitUntil(event, onActivate$1);
698 return;
699 }
700
701 function onActivate$1(done) {
702 let $t0_1, $t1_2, $t2_3;
703 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
704 $t0_1.$set(done);
705 $t1_2 = onActivate$1$1.bind(null, $t0_1);
706 $t2_3 = smesh$lol$web$common$jsbridge$sw.CacheDelete('sm3sh', $t1_2);
707 return;
708 }
709
710 function onActivate$1$1(done) {
711 let $t0_1, $t1_2;
712 $t0_1 = onActivate$1$1$1.bind(null, done);
713 $t1_2 = smesh$lol$web$common$jsbridge$sw.ClaimClients($t0_1);
714 return;
715 }
716
717 function onActivate$1$1$1(done) {
718 let $t0_1, $t1_2;
719 $t0_1 = done.$get();
720 $t1_2 = $t0_1();
721 return;
722 }
723
724 export function onFetch(event) {
725 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;
726 let $block = 0;
727 while (true) {
728 switch ($block) {
729 case 0: {
730 $t0_1 = smesh$lol$web$common$jsbridge$sw.GetRequestURL(event);
731 $t1_2 = smesh$lol$web$common$jsbridge$sw.Origin();
732 $t2_3 = $rt.builtin.len($t0_1);
733 $t3_4 = $rt.builtin.len($t1_2);
734 $t4_5 = ($t2_3 < $t3_4);
735 if ($t4_5) {
736 $block = 1; break;
737 }
738 else {
739 $block = 3; break;
740 }
741 break;
742 }
743 case 1: {
744 return;
745 break;
746 }
747 case 2: {
748 $t5_6 = smesh$lol$web$common$jsbridge$sw.GetRequestPath(event);
749 $t6_7 = $rt.builtin.stringEqual($t5_6, '/__sse');
750 if ($t6_7) {
751 $block = 4; break;
752 }
753 else {
754 $block = 6; break;
755 }
756 break;
757 }
758 case 3: {
759 $t7_8 = $rt.builtin.len($t1_2);
760 $t8_9 = $rt.builtin.stringSlice($t0_1, undefined, $t7_8);
761 $t9_10 = !$rt.builtin.stringEqual($t8_9, $t1_2);
762 if ($t9_10) {
763 $block = 1; break;
764 }
765 else {
766 $block = 2; break;
767 }
768 break;
769 }
770 case 4: {
771 return;
772 break;
773 }
774 case 5: {
775 $t10_11 = isNavigationPath($t5_6);
776 if ($t10_11) {
777 $block = 7; break;
778 }
779 else {
780 $block = 8; break;
781 }
782 break;
783 }
784 case 6: {
785 $t11_12 = $rt.builtin.stringEqual($t5_6, '/__version');
786 if ($t11_12) {
787 $block = 4; break;
788 }
789 else {
790 $block = 5; break;
791 }
792 break;
793 }
794 case 7: {
795 return;
796 break;
797 }
798 case 8: {
799 $t12_13 = smesh$lol$web$common$jsbridge$sw.RespondWithCacheFirst(event);
800 return;
801 break;
802 }
803 }
804 }
805 }
806
807 export function isNavigationPath(path) {
808 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;
809 let $block = 0;
810 while (true) {
811 switch ($block) {
812 case 0: {
813 $t0_1 = $rt.builtin.stringEqual(path, '/');
814 if ($t0_1) {
815 $block = 1; break;
816 }
817 else {
818 $block = 3; break;
819 }
820 break;
821 }
822 case 1: {
823 return true;
824 break;
825 }
826 case 2: {
827 $t1_2 = $rt.builtin.len(path);
828 $t2_3 = ($t1_2 > 2);
829 if ($t2_3) {
830 $block = 6; break;
831 }
832 else {
833 $block = 5; break;
834 }
835 break;
836 }
837 case 3: {
838 $t3_4 = $rt.builtin.stringEqual(path, '/index.html');
839 if ($t3_4) {
840 $block = 1; break;
841 }
842 else {
843 $block = 2; break;
844 }
845 break;
846 }
847 case 4: {
848 return true;
849 break;
850 }
851 case 5: {
852 $t4_5 = $rt.builtin.len(path);
853 $t5_6 = ($t4_5 > 2);
854 if ($t5_6) {
855 $block = 9; break;
856 }
857 else {
858 $block = 8; break;
859 }
860 break;
861 }
862 case 6: {
863 $t6_7 = $rt.builtin.stringSlice(path, undefined, 2);
864 $t7_8 = $rt.builtin.stringEqual($t6_7, '/p');
865 if ($t7_8) {
866 $block = 4; break;
867 }
868 else {
869 $block = 5; break;
870 }
871 break;
872 }
873 case 7: {
874 return true;
875 break;
876 }
877 case 8: {
878 $t8_9 = $rt.builtin.len(path);
879 $t9_10 = ($t8_9 > 3);
880 if ($t9_10) {
881 $block = 12; break;
882 }
883 else {
884 $block = 11; break;
885 }
886 break;
887 }
888 case 9: {
889 $t10_11 = $rt.builtin.stringSlice(path, undefined, 2);
890 $t11_12 = $rt.builtin.stringEqual($t10_11, '/t');
891 if ($t11_12) {
892 $block = 7; break;
893 }
894 else {
895 $block = 8; break;
896 }
897 break;
898 }
899 case 10: {
900 return true;
901 break;
902 }
903 case 11: {
904 $t12_13 = $rt.builtin.len(path);
905 $t13_14 = ($t12_13 - 1);
906 $t16_17 = $t13_14;
907 $block = 13; break;
908 break;
909 }
910 case 12: {
911 $t14_15 = $rt.builtin.stringSlice(path, undefined, 4);
912 $t15_16 = $rt.builtin.stringEqual($t14_15, '/msg');
913 if ($t15_16) {
914 $block = 10; break;
915 }
916 else {
917 $block = 11; break;
918 }
919 break;
920 }
921 case 13: {
922 $t17_18 = ($t16_17 >= 0);
923 if ($t17_18) {
924 $block = 16; break;
925 }
926 else {
927 $t21_22 = false;
928 $block = 15; break;
929 }
930 break;
931 }
932 case 14: {
933 $t18_19 = path.addr($t16_17);
934 $t19_20 = $t18_19.$get();
935 $t20_21 = ($t19_20 === 46);
936 if ($t20_21) {
937 $block = 17; break;
938 }
939 else {
940 $block = 18; break;
941 }
942 break;
943 }
944 case 15: {
945 $t22_23 = !$t21_22;
946 return $t22_23;
947 break;
948 }
949 case 16: {
950 $t23_24 = path.addr($t16_17);
951 $t24_25 = $t23_24.$get();
952 $t25_26 = ($t24_25 !== 47);
953 if ($t25_26) {
954 $block = 14; break;
955 }
956 else {
957 $t21_22 = false;
958 $block = 15; break;
959 }
960 break;
961 }
962 case 17: {
963 $t21_22 = true;
964 $block = 15; break;
965 break;
966 }
967 case 18: {
968 $t26_27 = ($t16_17 - 1);
969 $t16_17 = $t26_27;
970 $block = 13; break;
971 break;
972 }
973 }
974 }
975 }
976
977 export function onMessage(event) {
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, $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;
979 let $block = 0;
980 while (true) {
981 switch ($block) {
982 case 0: {
983 $t0_1 = smesh$lol$web$common$jsbridge$sw.GetMessageData(event);
984 $t1_2 = smesh$lol$web$common$jsbridge$sw.GetMessageClientID(event);
985 $t2_3 = $rt.builtin.stringEqual($t0_1, 'activate-update');
986 if ($t2_3) {
987 $block = 1; break;
988 }
989 else {
990 $block = 2; break;
991 }
992 break;
993 }
994 case 1: {
995 $t3_4 = refreshAndReload();
996 return;
997 break;
998 }
999 case 2: {
1000 $t4_5 = $rt.builtin.stringEqual($t0_1, 'CLAIM');
1001 if ($t4_5) {
1002 $block = 3; break;
1003 }
1004 else {
1005 $block = 4; break;
1006 }
1007 break;
1008 }
1009 case 3: {
1010 $t5_6 = smesh$lol$web$common$jsbridge$sw.ClaimClients(onMessage$1);
1011 return;
1012 break;
1013 }
1014 case 4: {
1015 $t6_7 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1016 $t7_8 = newMW($t0_1);
1017 $t6_7.$set($rt.builtin.cloneValue($t7_8));
1018 $t8_9 = mw$str($t6_7);
1019 $t9_10 = $rt.builtin.stringEqual($t8_9, 'SKIP_WAITING');
1020 if ($t9_10) {
1021 $block = 6; break;
1022 }
1023 else {
1024 $block = 8; break;
1025 }
1026 break;
1027 }
1028 case 5: {
1029 return;
1030 break;
1031 }
1032 case 6: {
1033 $t10_11 = smesh$lol$web$common$jsbridge$sw.SkipWaiting();
1034 $block = 5; break;
1035 break;
1036 }
1037 case 7: {
1038 $t11_12 = clientSubs.$get();
1039 $t12_13 = $rt.builtin.len($t11_12);
1040 $t13_14 = BigInt($t12_13);
1041 $t14_15 = smesh$lol$web$common$helpers.Itoa($t13_14);
1042 $t15_16 = ('subs=' + $t14_15);
1043 $t16_17 = ($t15_16 + ' proxy=');
1044 $t17_18 = proxySubs.$get();
1045 $t18_19 = $rt.builtin.len($t17_18);
1046 $t19_20 = BigInt($t18_19);
1047 $t20_21 = smesh$lol$web$common$helpers.Itoa($t19_20);
1048 $t21_22 = ($t16_17 + $t20_21);
1049 $t22_23 = ('["DIAG","' + $t21_22);
1050 $t23_24 = ($t22_23 + '"]');
1051 $t24_25 = sendToClient($t1_2, $t23_24);
1052 $block = 5; break;
1053 break;
1054 }
1055 case 8: {
1056 $t25_26 = $rt.builtin.stringEqual($t8_9, 'DIAG');
1057 if ($t25_26) {
1058 $block = 7; break;
1059 }
1060 else {
1061 $block = 9; break;
1062 }
1063 break;
1064 }
1065 case 9: {
1066 $t26_27 = routeMessage($t1_2, $t6_7, $t8_9);
1067 $block = 5; break;
1068 break;
1069 }
1070 }
1071 }
1072 }
1073
1074 function onMessage$1() {
1075 return;
1076 }
1077
1078 export function connectSSE() {
1079 let $t0_1;
1080 $t0_1 = smesh$lol$web$common$jsbridge$sw.SSEConnect('/__version', connectSSE$1);
1081 return;
1082 }
1083
1084 function connectSSE$1(data) {
1085 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
1086 let $block = 0;
1087 while (true) {
1088 switch ($block) {
1089 case 0: {
1090 $t0_1 = jsonFieldRaw(data, 'v');
1091 $t1_2 = $rt.builtin.stringEqual($t0_1, '');
1092 if ($t1_2) {
1093 $block = 1; break;
1094 }
1095 else {
1096 $t2_3 = $t0_1;
1097 $block = 2; break;
1098 }
1099 break;
1100 }
1101 case 1: {
1102 $t2_3 = data;
1103 $block = 2; break;
1104 break;
1105 }
1106 case 2: {
1107 $t3_4 = $rt.builtin.stringEqual($t2_3, '');
1108 if ($t3_4) {
1109 $block = 3; break;
1110 }
1111 else {
1112 $block = 4; break;
1113 }
1114 break;
1115 }
1116 case 3: {
1117 return;
1118 break;
1119 }
1120 case 4: {
1121 $t4_5 = currentVersion.$get();
1122 $t5_6 = $rt.builtin.stringEqual($t4_5, '');
1123 if ($t5_6) {
1124 $block = 5; break;
1125 }
1126 else {
1127 $block = 6; break;
1128 }
1129 break;
1130 }
1131 case 5: {
1132 currentVersion.$set($t2_3);
1133 return;
1134 break;
1135 }
1136 case 6: {
1137 $t6_7 = currentVersion.$get();
1138 $t7_8 = !$rt.builtin.stringEqual($t2_3, $t6_7);
1139 if ($t7_8) {
1140 $block = 7; break;
1141 }
1142 else {
1143 $block = 8; break;
1144 }
1145 break;
1146 }
1147 case 7: {
1148 currentVersion.$set($t2_3);
1149 $t8_9 = notifyUpdate();
1150 $block = 8; break;
1151 break;
1152 }
1153 case 8: {
1154 return;
1155 break;
1156 }
1157 }
1158 }
1159 }
1160
1161 export function notifyUpdate() {
1162 let $t0_1;
1163 $t0_1 = smesh$lol$web$common$jsbridge$sw.MatchClients(notifyUpdate$1);
1164 return;
1165 }
1166
1167 function notifyUpdate$1(client) {
1168 let $t0_1;
1169 $t0_1 = smesh$lol$web$common$jsbridge$sw.PostMessage(client, 'update-available');
1170 return;
1171 }
1172
1173 export function refreshAndReload() {
1174 let $t0_1;
1175 $t0_1 = smesh$lol$web$common$jsbridge$sw.CacheOpen('smesh', refreshAndReload$1);
1176 return;
1177 }
1178
1179 function refreshAndReload$1(cache) {
1180 let $t0_1, $t1_2;
1181 $t0_1 = staticFiles.$get();
1182 $t1_2 = smesh$lol$web$common$jsbridge$sw.CacheFromManifests(cache, $t0_1, refreshAndReload$1$1);
1183 return;
1184 }
1185
1186 function refreshAndReload$1$1() {
1187 let $t0_1;
1188 $t0_1 = smesh$lol$web$common$jsbridge$sw.MatchClients(refreshAndReload$1$1$1);
1189 return;
1190 }
1191
1192 function refreshAndReload$1$1$1(client) {
1193 let $t0_1;
1194 $t0_1 = smesh$lol$web$common$jsbridge$sw.Navigate(client, '');
1195 return;
1196 }
1197
1198 export function initRouter() {
1199 let $t0_1, $t1_2;
1200 $t0_1 = $rt.builtin.makeMap('string');
1201 clientSubs.$set($t0_1);
1202 $t1_2 = $rt.builtin.makeMap('string');
1203 proxySubs.$set($t1_2);
1204 return;
1205 }
1206
1207 export function routeMessage(clientID, w, msgType) {
1208 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, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80;
1209 let $block = 0;
1210 while (true) {
1211 switch ($block) {
1212 case 0: {
1213 $t0_1 = $rt.builtin.stringEqual(msgType, 'REQ');
1214 if ($t0_1) {
1215 $block = 2; break;
1216 }
1217 else {
1218 $block = 4; break;
1219 }
1220 break;
1221 }
1222 case 1: {
1223 return;
1224 break;
1225 }
1226 case 2: {
1227 $t1_2 = mw$str(w);
1228 $t2_3 = mw$raw(w);
1229 $t3_4 = routerReq(clientID, $t1_2, $t2_3);
1230 $block = 1; break;
1231 break;
1232 }
1233 case 3: {
1234 $t4_5 = mw$str(w);
1235 $t5_6 = routerClose($t4_5);
1236 $block = 1; break;
1237 break;
1238 }
1239 case 4: {
1240 $t6_7 = $rt.builtin.stringEqual(msgType, 'CLOSE');
1241 if ($t6_7) {
1242 $block = 3; break;
1243 }
1244 else {
1245 $block = 6; break;
1246 }
1247 break;
1248 }
1249 case 5: {
1250 $t7_8 = mw$raw(w);
1251 $t8_9 = routerPublish(clientID, $t7_8);
1252 $block = 1; break;
1253 break;
1254 }
1255 case 6: {
1256 $t9_10 = $rt.builtin.stringEqual(msgType, 'EVENT');
1257 if ($t9_10) {
1258 $block = 5; break;
1259 }
1260 else {
1261 $block = 8; break;
1262 }
1263 break;
1264 }
1265 case 7: {
1266 $t10_11 = mw$str(w);
1267 $t11_12 = mw$raw(w);
1268 $t12_13 = mw$strs(w);
1269 $t13_14 = routerProxy(clientID, $t10_11, $t11_12, $t12_13);
1270 $block = 1; break;
1271 break;
1272 }
1273 case 8: {
1274 $t14_15 = $rt.builtin.stringEqual(msgType, 'PROXY');
1275 if ($t14_15) {
1276 $block = 7; break;
1277 }
1278 else {
1279 $block = 10; break;
1280 }
1281 break;
1282 }
1283 case 9: {
1284 $t15_16 = mw$str(w);
1285 $t16_17 = handleRelayInfo(clientID, $t15_16);
1286 $block = 1; break;
1287 break;
1288 }
1289 case 10: {
1290 $t17_18 = $rt.builtin.stringEqual(msgType, 'RELAY_INFO');
1291 if ($t17_18) {
1292 $block = 9; break;
1293 }
1294 else {
1295 $block = 12; break;
1296 }
1297 break;
1298 }
1299 case 11: {
1300 $t18_19 = mw$str(w);
1301 $t19_20 = identitySetKey($t18_19);
1302 $t20_21 = sendToClient(clientID, '["KEY_SET"]');
1303 $block = 1; break;
1304 break;
1305 }
1306 case 12: {
1307 $t21_22 = $rt.builtin.stringEqual(msgType, 'SET_KEY');
1308 if ($t21_22) {
1309 $block = 11; break;
1310 }
1311 else {
1312 $block = 14; break;
1313 }
1314 break;
1315 }
1316 case 13: {
1317 $t22_23 = mw$str(w);
1318 $t23_24 = identitySetPubkey($t22_23);
1319 $block = 1; break;
1320 break;
1321 }
1322 case 14: {
1323 $t24_25 = $rt.builtin.stringEqual(msgType, 'SET_PUBKEY');
1324 if ($t24_25) {
1325 $block = 13; break;
1326 }
1327 else {
1328 $block = 16; break;
1329 }
1330 break;
1331 }
1332 case 15: {
1333 $t25_26 = identityClearKey();
1334 writeRelays.$set(null);
1335 $block = 1; break;
1336 break;
1337 }
1338 case 16: {
1339 $t26_27 = $rt.builtin.stringEqual(msgType, 'CLEAR_KEY');
1340 if ($t26_27) {
1341 $block = 15; break;
1342 }
1343 else {
1344 $block = 18; break;
1345 }
1346 break;
1347 }
1348 case 17: {
1349 $t27_28 = mw$strs(w);
1350 writeRelays.$set(null);
1351 $t28_29 = $rt.builtin.len($t27_28);
1352 $t34_35 = -1;
1353 $block = 21; break;
1354 break;
1355 }
1356 case 18: {
1357 $t29_30 = $rt.builtin.stringEqual(msgType, 'SET_WRITE_RELAYS');
1358 if ($t29_30) {
1359 $block = 17; break;
1360 }
1361 else {
1362 $block = 20; break;
1363 }
1364 break;
1365 }
1366 case 19: {
1367 $t30_31 = mw$str(w);
1368 $t31_32 = mw$raw(w);
1369 $t32_33 = routerSign(clientID, $t30_31, $t31_32);
1370 $block = 1; break;
1371 break;
1372 }
1373 case 20: {
1374 $t33_34 = $rt.builtin.stringEqual(msgType, 'SIGN');
1375 if ($t33_34) {
1376 $block = 19; break;
1377 }
1378 else {
1379 $block = 25; break;
1380 }
1381 break;
1382 }
1383 case 21: {
1384 $t35_36 = ($t34_35 + 1);
1385 $t36_37 = ($t35_36 < $t28_29);
1386 if ($t36_37) {
1387 $block = 22; break;
1388 }
1389 else {
1390 $block = 1; break;
1391 }
1392 break;
1393 }
1394 case 22: {
1395 $t37_38 = $t27_28.addr($t35_36);
1396 $t38_39 = $t37_38.$get();
1397 $t39_40 = isAllowedRelay($t38_39);
1398 if ($t39_40) {
1399 $block = 23; break;
1400 }
1401 else {
1402 $t34_35 = $t35_36;
1403 $block = 21; break;
1404 }
1405 break;
1406 }
1407 case 23: {
1408 $t40_41 = writeRelays.$get();
1409 $t41_42 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1410 $t42_43 = $t41_42.$get().addr(0);
1411 $t42_43.$set($t38_39);
1412 $t43_44 = $rt.builtin.sliceSlice($t41_42.$get(), undefined, undefined, undefined);
1413 $t44_45 = $rt.builtin.appendSlice($t40_41, $t43_44);
1414 writeRelays.$set($t44_45);
1415 $t34_35 = $t35_36;
1416 $block = 21; break;
1417 break;
1418 }
1419 case 24: {
1420 $t45_46 = mw$str(w);
1421 $t46_47 = mw$strs(w);
1422 $t47_48 = routerBroadcast(clientID, $t45_46, $t46_47);
1423 $block = 1; break;
1424 break;
1425 }
1426 case 25: {
1427 $t48_49 = $rt.builtin.stringEqual(msgType, 'BROADCAST');
1428 if ($t48_49) {
1429 $block = 24; break;
1430 }
1431 else {
1432 $block = 27; break;
1433 }
1434 break;
1435 }
1436 case 26: {
1437 $t49_50 = mw$str(w);
1438 $t50_51 = mw$str(w);
1439 $t51_52 = mw$strs(w);
1440 $t52_53 = routerSendDM(clientID, $t49_50, $t50_51, $t51_52);
1441 $block = 1; break;
1442 break;
1443 }
1444 case 27: {
1445 $t53_54 = $rt.builtin.stringEqual(msgType, 'SEND_DM');
1446 if ($t53_54) {
1447 $block = 26; break;
1448 }
1449 else {
1450 $block = 29; break;
1451 }
1452 break;
1453 }
1454 case 28: {
1455 $t54_55 = mw$strs(w);
1456 $t55_56 = routerDMSub(clientID, $t54_55);
1457 $block = 1; break;
1458 break;
1459 }
1460 case 29: {
1461 $t56_57 = $rt.builtin.stringEqual(msgType, 'DM_SUB');
1462 if ($t56_57) {
1463 $block = 28; break;
1464 }
1465 else {
1466 $block = 31; break;
1467 }
1468 break;
1469 }
1470 case 30: {
1471 $t57_58 = routerDMList(clientID);
1472 $block = 1; break;
1473 break;
1474 }
1475 case 31: {
1476 $t58_59 = $rt.builtin.stringEqual(msgType, 'DM_LIST');
1477 if ($t58_59) {
1478 $block = 30; break;
1479 }
1480 else {
1481 $block = 33; break;
1482 }
1483 break;
1484 }
1485 case 32: {
1486 $t59_60 = mw$str(w);
1487 $t60_61 = mw$num(w);
1488 $t61_62 = Number($t60_61);
1489 $t62_63 = ($t61_62 <= 0);
1490 if ($t62_63) {
1491 $block = 36; break;
1492 }
1493 else {
1494 $block = 38; break;
1495 }
1496 break;
1497 }
1498 case 33: {
1499 $t63_64 = $rt.builtin.stringEqual(msgType, 'DM_HISTORY');
1500 if ($t63_64) {
1501 $block = 32; break;
1502 }
1503 else {
1504 $block = 35; break;
1505 }
1506 break;
1507 }
1508 case 34: {
1509 $t64_65 = mw$num(w);
1510 $t65_66 = Number($t64_65);
1511 $t66_67 = mw$str(w);
1512 $t67_68 = mw$str(w);
1513 $t68_69 = cryptoCBs.$get();
1514 { const $r = $rt.builtin.mapLookup($t68_69, $t65_66); $t69_70 = [$r.value, $r.ok]; }
1515 $t70_71 = $t69_70[0];
1516 $t71_72 = $t69_70[1];
1517 if ($t71_72) {
1518 $block = 39; break;
1519 }
1520 else {
1521 $block = 1; break;
1522 }
1523 break;
1524 }
1525 case 35: {
1526 $t72_73 = $rt.builtin.stringEqual(msgType, 'CRYPTO_RESULT');
1527 if ($t72_73) {
1528 $block = 34; break;
1529 }
1530 else {
1531 $block = 1; break;
1532 }
1533 break;
1534 }
1535 case 36: {
1536 $t73_74 = 50;
1537 $block = 37; break;
1538 break;
1539 }
1540 case 37: {
1541 $t74_75 = mw$num(w);
1542 $t75_76 = routerDMHistory(clientID, $t59_60, $t73_74, $t74_75);
1543 $block = 1; break;
1544 break;
1545 }
1546 case 38: {
1547 $t76_77 = ($t61_62 > 500);
1548 if ($t76_77) {
1549 $block = 36; break;
1550 }
1551 else {
1552 $t73_74 = $t61_62;
1553 $block = 37; break;
1554 }
1555 break;
1556 }
1557 case 39: {
1558 $t77_78 = cryptoCBs.$get();
1559 $t78_79 = $rt.builtin.mapDelete($t77_78, $t65_66);
1560 $t79_80 = $t70_71($t66_67, $t67_68);
1561 $block = 1; break;
1562 break;
1563 }
1564 }
1565 }
1566 }
1567
1568 export function routerReq(clientID, subID, filterRaw) {
1569 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;
1570 let $block = 0;
1571 while (true) {
1572 switch ($block) {
1573 case 0: {
1574 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
1575 $t0_1.$set(clientID);
1576 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
1577 $t1_2.$set(subID);
1578 $t2_3 = smesh$lol$web$common$nostr.ParseFilter(filterRaw);
1579 $t3_4 = ($t2_3 === null);
1580 if ($t3_4) {
1581 $block = 1; break;
1582 }
1583 else {
1584 $block = 2; break;
1585 }
1586 break;
1587 }
1588 case 1: {
1589 return;
1590 break;
1591 }
1592 case 2: {
1593 $t4_5 = clientSubs.$get();
1594 $t5_6 = $t1_2.$get();
1595 $t6_7 = { $value: { filter: null, filterRaw: '', clientID: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1596 $t7_8 = { $get() { return $t6_7.$get().filter; }, $set(v) { const obj = $t6_7.$get(); obj.filter = v; $t6_7.$set(obj); } };
1597 $t8_9 = { $get() { return $t6_7.$get().filterRaw; }, $set(v) { const obj = $t6_7.$get(); obj.filterRaw = v; $t6_7.$set(obj); } };
1598 $t9_10 = { $get() { return $t6_7.$get().clientID; }, $set(v) { const obj = $t6_7.$get(); obj.clientID = v; $t6_7.$set(obj); } };
1599 $t10_11 = $t0_1.$get();
1600 $t7_8.$set($t2_3);
1601 $t8_9.$set(filterRaw);
1602 $t9_10.$set($t10_11);
1603 $rt.builtin.mapUpdate($t4_5, $t5_6, $t6_7);
1604 $t11_12 = routerReq$1.bind(null, $t0_1, $t1_2);
1605 $t12_13 = cacheQuery(filterRaw, $t11_12);
1606 return;
1607 break;
1608 }
1609 }
1610 }
1611 }
1612
1613 function routerReq$1(clientID, subID, eventsJSON) {
1614 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;
1615 let $block = 0;
1616 while (true) {
1617 switch ($block) {
1618 case 0: {
1619 $t0_1 = smesh$lol$web$common$nostr.ParseEventsJSON(eventsJSON);
1620 $t1_2 = $rt.builtin.len($t0_1);
1621 $t2_3 = -1;
1622 $block = 1; break;
1623 break;
1624 }
1625 case 1: {
1626 $t3_4 = ($t2_3 + 1);
1627 $t4_5 = ($t3_4 < $t1_2);
1628 if ($t4_5) {
1629 $block = 2; break;
1630 }
1631 else {
1632 $block = 3; break;
1633 }
1634 break;
1635 }
1636 case 2: {
1637 $t5_6 = $t0_1.addr($t3_4);
1638 $t6_7 = $t5_6.$get();
1639 $t7_8 = clientID.$get();
1640 $t8_9 = subID.$get();
1641 $t9_10 = jstr($t8_9);
1642 $t10_11 = ('["EVENT",' + $t9_10);
1643 $t11_12 = ($t10_11 + ',');
1644 $t12_13 = smesh$lol$web$common$nostr.Event$ToJSON($t6_7);
1645 $t13_14 = ($t11_12 + $t12_13);
1646 $t14_15 = ($t13_14 + ']');
1647 $t15_16 = sendToClient($t7_8, $t14_15);
1648 $t2_3 = $t3_4;
1649 $block = 1; break;
1650 break;
1651 }
1652 case 3: {
1653 $t16_17 = clientID.$get();
1654 $t17_18 = subID.$get();
1655 $t18_19 = jstr($t17_18);
1656 $t19_20 = ('["EOSE",' + $t18_19);
1657 $t20_21 = ($t19_20 + ']');
1658 $t21_22 = sendToClient($t16_17, $t20_21);
1659 return;
1660 break;
1661 }
1662 }
1663 }
1664 }
1665
1666 export function routerClose(subID) {
1667 let $t0_1, $t1_2, $t2_3;
1668 $t0_1 = clientSubs.$get();
1669 $t1_2 = $rt.builtin.mapDelete($t0_1, subID);
1670 $t2_3 = routerCleanupProxy(subID);
1671 return;
1672 }
1673
1674 export function routerPublish(clientID, eventRaw) {
1675 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;
1676 let $block = 0;
1677 while (true) {
1678 switch ($block) {
1679 case 0: {
1680 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1681 $t1_2 = smesh$lol$web$common$nostr.ParseEvent(eventRaw);
1682 $t0_1.$set($t1_2);
1683 $t2_3 = $t0_1.$get();
1684 $t3_4 = ($t2_3 === null);
1685 if ($t3_4) {
1686 $block = 1; break;
1687 }
1688 else {
1689 $block = 2; break;
1690 }
1691 break;
1692 }
1693 case 1: {
1694 return;
1695 break;
1696 }
1697 case 2: {
1698 $t4_5 = routerPublish$1.bind(null, $t0_1);
1699 $t5_6 = cacheStore(eventRaw, $t4_5);
1700 $t6_7 = $t0_1.$get();
1701 $t7_8 = relayPublish($t6_7);
1702 $t8_9 = $t0_1.$get();
1703 $t9_10 = { $get() { return $t8_9.$get().ID; }, $set(v) { const obj = $t8_9.$get(); obj.ID = v; $t8_9.$set(obj); } };
1704 $t10_11 = $t9_10.$get();
1705 $t11_12 = jstr($t10_11);
1706 $t12_13 = ('["OK",' + $t11_12);
1707 $t13_14 = ($t12_13 + ',true,""]');
1708 $t14_15 = sendToClient(clientID, $t13_14);
1709 return;
1710 break;
1711 }
1712 }
1713 }
1714 }
1715
1716 function routerPublish$1(ev, saved) {
1717 let $t0_1, $t1_2;
1718 let $block = 0;
1719 while (true) {
1720 switch ($block) {
1721 case 0: {
1722 if (saved) {
1723 $block = 1; break;
1724 }
1725 else {
1726 $block = 2; break;
1727 }
1728 break;
1729 }
1730 case 1: {
1731 $t0_1 = ev.$get();
1732 $t1_2 = pushToMatchingSubs($t0_1);
1733 $block = 2; break;
1734 break;
1735 }
1736 case 2: {
1737 return;
1738 break;
1739 }
1740 }
1741 }
1742 }
1743
1744 export function isAllowedRelay(url) {
1745 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;
1746 let $block = 0;
1747 while (true) {
1748 switch ($block) {
1749 case 0: {
1750 $t0_1 = $rt.builtin.len(url);
1751 $t1_2 = ($t0_1 >= 6);
1752 if ($t1_2) {
1753 $block = 3; break;
1754 }
1755 else {
1756 $block = 2; break;
1757 }
1758 break;
1759 }
1760 case 1: {
1761 return true;
1762 break;
1763 }
1764 case 2: {
1765 $t2_3 = $rt.builtin.len(url);
1766 $t3_4 = ($t2_3 >= 16);
1767 if ($t3_4) {
1768 $block = 6; break;
1769 }
1770 else {
1771 $block = 5; break;
1772 }
1773 break;
1774 }
1775 case 3: {
1776 $t4_5 = $rt.builtin.stringSlice(url, undefined, 6);
1777 $t5_6 = $rt.builtin.stringEqual($t4_5, 'wss://');
1778 if ($t5_6) {
1779 $block = 1; break;
1780 }
1781 else {
1782 $block = 2; break;
1783 }
1784 break;
1785 }
1786 case 4: {
1787 return true;
1788 break;
1789 }
1790 case 5: {
1791 $t6_7 = $rt.builtin.len(url);
1792 $t7_8 = ($t6_7 >= 15);
1793 if ($t7_8) {
1794 $block = 9; break;
1795 }
1796 else {
1797 $block = 8; break;
1798 }
1799 break;
1800 }
1801 case 6: {
1802 $t8_9 = $rt.builtin.stringSlice(url, undefined, 16);
1803 $t9_10 = $rt.builtin.stringEqual($t8_9, 'ws://localhost:');
1804 if ($t9_10) {
1805 $block = 4; break;
1806 }
1807 else {
1808 $block = 5; break;
1809 }
1810 break;
1811 }
1812 case 7: {
1813 return true;
1814 break;
1815 }
1816 case 8: {
1817 return false;
1818 break;
1819 }
1820 case 9: {
1821 $t10_11 = $rt.builtin.stringSlice(url, undefined, 15);
1822 $t11_12 = $rt.builtin.stringEqual($t10_11, 'ws://127.0.0.1:');
1823 if ($t11_12) {
1824 $block = 7; break;
1825 }
1826 else {
1827 $block = 8; break;
1828 }
1829 break;
1830 }
1831 }
1832 }
1833 }
1834
1835 export function isHex(s) {
1836 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10;
1837 let $block = 0;
1838 while (true) {
1839 switch ($block) {
1840 case 0: {
1841 $t0_1 = 0;
1842 $block = 1; break;
1843 break;
1844 }
1845 case 1: {
1846 $t1_2 = $rt.builtin.len(s);
1847 $t2_3 = ($t0_1 < $t1_2);
1848 if ($t2_3) {
1849 $block = 2; break;
1850 }
1851 else {
1852 $block = 3; break;
1853 }
1854 break;
1855 }
1856 case 2: {
1857 $t3_4 = s.addr($t0_1);
1858 $t4_5 = $t3_4.$get();
1859 $t5_6 = ($t4_5 >= 48);
1860 if ($t5_6) {
1861 $block = 7; break;
1862 }
1863 else {
1864 $block = 6; break;
1865 }
1866 break;
1867 }
1868 case 3: {
1869 return true;
1870 break;
1871 }
1872 case 4: {
1873 return false;
1874 break;
1875 }
1876 case 5: {
1877 $t6_7 = ($t0_1 + 1);
1878 $t0_1 = $t6_7;
1879 $block = 1; break;
1880 break;
1881 }
1882 case 6: {
1883 $t7_8 = ($t4_5 >= 97);
1884 if ($t7_8) {
1885 $block = 8; break;
1886 }
1887 else {
1888 $block = 4; break;
1889 }
1890 break;
1891 }
1892 case 7: {
1893 $t8_9 = ($t4_5 <= 57);
1894 if ($t8_9) {
1895 $block = 5; break;
1896 }
1897 else {
1898 $block = 6; break;
1899 }
1900 break;
1901 }
1902 case 8: {
1903 $t9_10 = ($t4_5 <= 102);
1904 if ($t9_10) {
1905 $block = 5; break;
1906 }
1907 else {
1908 $block = 4; break;
1909 }
1910 break;
1911 }
1912 }
1913 }
1914 }
1915
1916 export function routerProxy(clientID, subID, filterRaw, relayURLs) {
1917 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;
1918 let $block = 0;
1919 while (true) {
1920 switch ($block) {
1921 case 0: {
1922 $t0_1 = routerCleanupProxy(subID);
1923 $t1_2 = smesh$lol$web$common$nostr.ParseFilter(filterRaw);
1924 $t2_3 = ($t1_2 === null);
1925 if ($t2_3) {
1926 $block = 1; break;
1927 }
1928 else {
1929 $block = 2; break;
1930 }
1931 break;
1932 }
1933 case 1: {
1934 return;
1935 break;
1936 }
1937 case 2: {
1938 $t3_4 = clientSubs.$get();
1939 $t4_5 = { $value: { filter: null, filterRaw: '', clientID: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1940 $t5_6 = { $get() { return $t4_5.$get().filter; }, $set(v) { const obj = $t4_5.$get(); obj.filter = v; $t4_5.$set(obj); } };
1941 $t6_7 = { $get() { return $t4_5.$get().filterRaw; }, $set(v) { const obj = $t4_5.$get(); obj.filterRaw = v; $t4_5.$set(obj); } };
1942 $t7_8 = { $get() { return $t4_5.$get().clientID; }, $set(v) { const obj = $t4_5.$get(); obj.clientID = v; $t4_5.$set(obj); } };
1943 $t5_6.$set($t1_2);
1944 $t6_7.$set(filterRaw);
1945 $t7_8.$set(clientID);
1946 $rt.builtin.mapUpdate($t3_4, subID, $t4_5);
1947 $t8_9 = $rt.builtin.makeMap('string');
1948 $t9_10 = ('p_' + subID);
1949 $t10_11 = ($t9_10 + '_');
1950 $t11_12 = proxySubs.$get();
1951 $t12_13 = { $value: { remoteIDs: null, relayCount: 0, eoseCount: 0, timer: 0, done: false }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1952 $t13_14 = { $get() { return $t12_13.$get().remoteIDs; }, $set(v) { const obj = $t12_13.$get(); obj.remoteIDs = v; $t12_13.$set(obj); } };
1953 $t14_15 = { $get() { return $t12_13.$get().relayCount; }, $set(v) { const obj = $t12_13.$get(); obj.relayCount = v; $t12_13.$set(obj); } };
1954 $t15_16 = $rt.builtin.len(relayURLs);
1955 $t13_14.$set($t8_9);
1956 $t14_15.$set($t15_16);
1957 $rt.builtin.mapUpdate($t11_12, subID, $t12_13);
1958 $t16_17 = $rt.builtin.len(relayURLs);
1959 $t17_18 = -1;
1960 $block = 3; break;
1961 break;
1962 }
1963 case 3: {
1964 $t18_19 = ($t17_18 + 1);
1965 $t19_20 = ($t18_19 < $t16_17);
1966 if ($t19_20) {
1967 $block = 4; break;
1968 }
1969 else {
1970 $block = 5; break;
1971 }
1972 break;
1973 }
1974 case 4: {
1975 $t20_21 = relayURLs.addr($t18_19);
1976 $t21_22 = $t20_21.$get();
1977 $t22_23 = isAllowedRelay($t21_22);
1978 if ($t22_23) {
1979 $block = 7; break;
1980 }
1981 else {
1982 $block = 6; break;
1983 }
1984 break;
1985 }
1986 case 5: {
1987 $t23_24 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
1988 $t23_24.$set(subID);
1989 $t24_25 = proxySubs.$get();
1990 $t25_26 = $rt.builtin.mapLookup($t24_25, subID).value;
1991 $t26_27 = routerProxy$1.bind(null, $t23_24);
1992 $t27_28 = smesh$lol$web$common$jsbridge$sw.SetTimeout(15000, $t26_27);
1993 $t28_29 = { $get() { return $t25_26.$get().timer; }, $set(v) { const obj = $t25_26.$get(); obj.timer = v; $t25_26.$set(obj); } };
1994 $t28_29.$set($t27_28);
1995 return;
1996 break;
1997 }
1998 case 6: {
1999 $t29_30 = ('rejected relay URL: ' + $t21_22);
2000 $t30_31 = smesh$lol$web$common$jsbridge$sw.Log($t29_30);
2001 $t17_18 = $t18_19;
2002 $block = 3; break;
2003 break;
2004 }
2005 case 7: {
2006 $t31_32 = urlSuffix($t21_22);
2007 $t32_33 = ($t10_11 + $t31_32);
2008 $rt.builtin.mapUpdate($t8_9, $t32_33, true);
2009 $t33_34 = getConn($t21_22);
2010 $t34_35 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2011 $t35_36 = $t34_35.$get().addr(0);
2012 $t35_36.$set($t1_2);
2013 $t36_37 = $rt.builtin.sliceSlice($t34_35.$get(), undefined, undefined, undefined);
2014 $t37_38 = smesh$lol$web$common$relay.Conn$Subscribe($t33_34, $t32_33, $t36_37);
2015 $t17_18 = $t18_19;
2016 $block = 3; break;
2017 break;
2018 }
2019 }
2020 }
2021 }
2022
2023 function routerProxy$1(proxyID) {
2024 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;
2025 let $block = 0;
2026 while (true) {
2027 switch ($block) {
2028 case 0: {
2029 $t0_1 = proxySubs.$get();
2030 $t1_2 = proxyID.$get();
2031 { const $r = $rt.builtin.mapLookup($t0_1, $t1_2); $t2_3 = [$r.value, $r.ok]; }
2032 $t3_4 = $t2_3[0];
2033 $t4_5 = $t2_3[1];
2034 if ($t4_5) {
2035 $block = 3; break;
2036 }
2037 else {
2038 $block = 2; break;
2039 }
2040 break;
2041 }
2042 case 1: {
2043 $t5_6 = { $get() { return $t3_4.$get().done; }, $set(v) { const obj = $t3_4.$get(); obj.done = v; $t3_4.$set(obj); } };
2044 $t5_6.$set(true);
2045 $t6_7 = clientSubs.$get();
2046 $t7_8 = proxyID.$get();
2047 { const $r = $rt.builtin.mapLookup($t6_7, $t7_8); $t8_9 = [$r.value, $r.ok]; }
2048 $t9_10 = $t8_9[0];
2049 $t10_11 = $t8_9[1];
2050 if ($t10_11) {
2051 $block = 4; break;
2052 }
2053 else {
2054 $block = 2; break;
2055 }
2056 break;
2057 }
2058 case 2: {
2059 return;
2060 break;
2061 }
2062 case 3: {
2063 $t11_12 = { $get() { return $t3_4.$get().done; }, $set(v) { const obj = $t3_4.$get(); obj.done = v; $t3_4.$set(obj); } };
2064 $t12_13 = $t11_12.$get();
2065 if ($t12_13) {
2066 $block = 2; break;
2067 }
2068 else {
2069 $block = 1; break;
2070 }
2071 break;
2072 }
2073 case 4: {
2074 $t13_14 = { $get() { return $t9_10.$get().clientID; }, $set(v) { const obj = $t9_10.$get(); obj.clientID = v; $t9_10.$set(obj); } };
2075 $t14_15 = $t13_14.$get();
2076 $t15_16 = proxyID.$get();
2077 $t16_17 = jstr($t15_16);
2078 $t17_18 = ('["EOSE",' + $t16_17);
2079 $t18_19 = ($t17_18 + ']');
2080 $t19_20 = sendToClient($t14_15, $t18_19);
2081 $block = 2; break;
2082 break;
2083 }
2084 }
2085 }
2086 }
2087
2088 export function routerCleanupProxy(proxyID) {
2089 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;
2090 let $block = 0;
2091 while (true) {
2092 switch ($block) {
2093 case 0: {
2094 $t0_1 = proxySubs.$get();
2095 { const $r = $rt.builtin.mapLookup($t0_1, proxyID); $t1_2 = [$r.value, $r.ok]; }
2096 $t2_3 = $t1_2[0];
2097 $t3_4 = $t1_2[1];
2098 if ($t3_4) {
2099 $block = 2; break;
2100 }
2101 else {
2102 $block = 1; break;
2103 }
2104 break;
2105 }
2106 case 1: {
2107 return;
2108 break;
2109 }
2110 case 2: {
2111 $t4_5 = { $get() { return $t2_3.$get().timer; }, $set(v) { const obj = $t2_3.$get(); obj.timer = v; $t2_3.$set(obj); } };
2112 $t5_6 = $t4_5.$get();
2113 $t6_7 = smesh$lol$web$common$jsbridge$sw.ClearTimeout($t5_6);
2114 $t7_8 = { $get() { return $t2_3.$get().done; }, $set(v) { const obj = $t2_3.$get(); obj.done = v; $t2_3.$set(obj); } };
2115 $t8_9 = $t7_8.$get();
2116 if ($t8_9) {
2117 $block = 4; break;
2118 }
2119 else {
2120 $block = 3; break;
2121 }
2122 break;
2123 }
2124 case 3: {
2125 $t9_10 = clientSubs.$get();
2126 { const $r = $rt.builtin.mapLookup($t9_10, proxyID); $t10_11 = [$r.value, $r.ok]; }
2127 $t11_12 = $t10_11[0];
2128 $t12_13 = $t10_11[1];
2129 if ($t12_13) {
2130 $block = 5; break;
2131 }
2132 else {
2133 $block = 4; break;
2134 }
2135 break;
2136 }
2137 case 4: {
2138 $t13_14 = { $get() { return $t2_3.$get().remoteIDs; }, $set(v) { const obj = $t2_3.$get(); obj.remoteIDs = v; $t2_3.$set(obj); } };
2139 $t14_15 = $t13_14.$get();
2140 $t15_16 = { $entries: [...$t14_15.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]; } };
2141 $block = 6; break;
2142 break;
2143 }
2144 case 5: {
2145 $t16_17 = { $get() { return $t11_12.$get().clientID; }, $set(v) { const obj = $t11_12.$get(); obj.clientID = v; $t11_12.$set(obj); } };
2146 $t17_18 = $t16_17.$get();
2147 $t18_19 = jstr(proxyID);
2148 $t19_20 = ('["EOSE",' + $t18_19);
2149 $t20_21 = ($t19_20 + ']');
2150 $t21_22 = sendToClient($t17_18, $t20_21);
2151 $block = 4; break;
2152 break;
2153 }
2154 case 6: {
2155 $t22_23 = $t15_16.next();
2156 $t23_24 = $t22_23[0];
2157 if ($t23_24) {
2158 $block = 7; break;
2159 }
2160 else {
2161 $block = 8; break;
2162 }
2163 break;
2164 }
2165 case 7: {
2166 $t24_25 = $t22_23[1];
2167 $t25_26 = rpool.$get();
2168 $t26_27 = smesh$lol$web$common$relay.Pool$URLs($t25_26);
2169 $t27_28 = $rt.builtin.len($t26_27);
2170 $t32_33 = -1;
2171 $block = 9; break;
2172 break;
2173 }
2174 case 8: {
2175 $t28_29 = proxySubs.$get();
2176 $t29_30 = $rt.builtin.mapDelete($t28_29, proxyID);
2177 $t30_31 = clientSubs.$get();
2178 $t31_32 = $rt.builtin.mapDelete($t30_31, proxyID);
2179 return;
2180 break;
2181 }
2182 case 9: {
2183 $t33_34 = ($t32_33 + 1);
2184 $t34_35 = ($t33_34 < $t27_28);
2185 if ($t34_35) {
2186 $block = 10; break;
2187 }
2188 else {
2189 $block = 6; break;
2190 }
2191 break;
2192 }
2193 case 10: {
2194 $t35_36 = $t26_27.addr($t33_34);
2195 $t36_37 = $t35_36.$get();
2196 $t37_38 = rpool.$get();
2197 $t38_39 = smesh$lol$web$common$relay.Pool$Get($t37_38, $t36_37);
2198 $t39_40 = ($t38_39 !== null);
2199 if ($t39_40) {
2200 $block = 12; break;
2201 }
2202 else {
2203 $t32_33 = $t33_34;
2204 $block = 9; break;
2205 }
2206 break;
2207 }
2208 case 11: {
2209 $t40_41 = smesh$lol$web$common$relay.Conn$CloseSubscription($t38_39, $t24_25);
2210 $t32_33 = $t33_34;
2211 $block = 9; break;
2212 break;
2213 }
2214 case 12: {
2215 $t41_42 = smesh$lol$web$common$relay.Conn$IsOpen($t38_39);
2216 if ($t41_42) {
2217 $block = 11; break;
2218 }
2219 else {
2220 $t32_33 = $t33_34;
2221 $block = 9; break;
2222 }
2223 break;
2224 }
2225 }
2226 }
2227 }
2228
2229 export function routerOnRelayEvent(relayURL, remoteSubID, ev) {
2230 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;
2231 let $block = 0;
2232 while (true) {
2233 switch ($block) {
2234 case 0: {
2235 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2236 $t0_1.$set(ev);
2237 $t1_2 = $t0_1.$get();
2238 $t2_3 = smesh$lol$web$common$nostr.Event$CheckID($t1_2);
2239 if ($t2_3) {
2240 $block = 2; break;
2241 }
2242 else {
2243 $block = 1; break;
2244 }
2245 break;
2246 }
2247 case 1: {
2248 return;
2249 break;
2250 }
2251 case 2: {
2252 $t3_4 = smesh$lol$web$common$jsbridge$sw.NowSeconds();
2253 $t4_5 = $t0_1.$get();
2254 $t5_6 = { $get() { return $t4_5.$get().CreatedAt; }, $set(v) { const obj = $t4_5.$get(); obj.CreatedAt = v; $t4_5.$set(obj); } };
2255 $t6_7 = $t5_6.$get();
2256 $t7_8 = BigInt.asIntN(64, $t3_4 + 3600n);
2257 $t8_9 = ($t6_7 > $t7_8);
2258 if ($t8_9) {
2259 $block = 3; break;
2260 }
2261 else {
2262 $block = 4; break;
2263 }
2264 break;
2265 }
2266 case 3: {
2267 return;
2268 break;
2269 }
2270 case 4: {
2271 $t9_10 = $t0_1.$get();
2272 $t10_11 = smesh$lol$web$common$nostr.Event$ToJSON($t9_10);
2273 $t11_12 = $t0_1.$get();
2274 $t12_13 = pushToProxySub(remoteSubID, relayURL, $t11_12);
2275 $t13_14 = routerOnRelayEvent$1.bind(null, $t0_1);
2276 $t14_15 = cacheStore($t10_11, $t13_14);
2277 return;
2278 break;
2279 }
2280 }
2281 }
2282 }
2283
2284 function routerOnRelayEvent$1(ev, saved) {
2285 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;
2286 let $block = 0;
2287 while (true) {
2288 switch ($block) {
2289 case 0: {
2290 if (saved) {
2291 $block = 4; break;
2292 }
2293 else {
2294 $block = 2; break;
2295 }
2296 break;
2297 }
2298 case 1: {
2299 $t0_1 = ev.$get();
2300 $t1_2 = routerDecryptDM($t0_1);
2301 $block = 2; break;
2302 break;
2303 }
2304 case 2: {
2305 return;
2306 break;
2307 }
2308 case 3: {
2309 $t2_3 = myPubkey.$get();
2310 $t3_4 = !$rt.builtin.stringEqual($t2_3, '');
2311 if ($t3_4) {
2312 $block = 1; break;
2313 }
2314 else {
2315 $block = 2; break;
2316 }
2317 break;
2318 }
2319 case 4: {
2320 $t4_5 = ev.$get();
2321 $t5_6 = { $get() { return $t4_5.$get().Kind; }, $set(v) { const obj = $t4_5.$get(); obj.Kind = v; $t4_5.$set(obj); } };
2322 $t6_7 = $t5_6.$get();
2323 $t7_8 = ($t6_7 === 4);
2324 if ($t7_8) {
2325 $block = 3; break;
2326 }
2327 else {
2328 $block = 5; break;
2329 }
2330 break;
2331 }
2332 case 5: {
2333 $t8_9 = ev.$get();
2334 $t9_10 = { $get() { return $t8_9.$get().Kind; }, $set(v) { const obj = $t8_9.$get(); obj.Kind = v; $t8_9.$set(obj); } };
2335 $t10_11 = $t9_10.$get();
2336 $t11_12 = ($t10_11 === 1059);
2337 if ($t11_12) {
2338 $block = 3; break;
2339 }
2340 else {
2341 $block = 2; break;
2342 }
2343 break;
2344 }
2345 }
2346 }
2347 }
2348
2349 export function routerDecryptDM(ev) {
2350 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;
2351 let $block = 0;
2352 while (true) {
2353 switch ($block) {
2354 case 0: {
2355 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2356 $t0_1.$set(ev);
2357 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
2358 $t2_3 = $t0_1.$get();
2359 $t3_4 = { $get() { return $t2_3.$get().PubKey; }, $set(v) { const obj = $t2_3.$get(); obj.PubKey = v; $t2_3.$set(obj); } };
2360 $t4_5 = $t3_4.$get();
2361 $t5_6 = myPubkey.$get();
2362 $t6_7 = $rt.builtin.stringEqual($t4_5, $t5_6);
2363 if ($t6_7) {
2364 $block = 1; break;
2365 }
2366 else {
2367 $block = 3; break;
2368 }
2369 break;
2370 }
2371 case 1: {
2372 $t7_8 = $t0_1.$get();
2373 $t8_9 = { $get() { return $t7_8.$get().Tags; }, $set(v) { const obj = $t7_8.$get(); obj.Tags = v; $t7_8.$set(obj); } };
2374 $t9_10 = $t8_9.$get();
2375 $t10_11 = smesh$lol$web$common$nostr.Tags$GetFirst($t9_10, 'p');
2376 $t11_12 = ($t10_11 === null);
2377 if ($t11_12) {
2378 $block = 4; break;
2379 }
2380 else {
2381 $block = 5; break;
2382 }
2383 break;
2384 }
2385 case 2: {
2386 $t12_13 = $t1_2.$get();
2387 $t13_14 = $rt.builtin.len($t12_13);
2388 $t14_15 = ($t13_14 !== 64);
2389 if ($t14_15) {
2390 $block = 6; break;
2391 }
2392 else {
2393 $block = 8; break;
2394 }
2395 break;
2396 }
2397 case 3: {
2398 $t15_16 = $t0_1.$get();
2399 $t16_17 = { $get() { return $t15_16.$get().PubKey; }, $set(v) { const obj = $t15_16.$get(); obj.PubKey = v; $t15_16.$set(obj); } };
2400 $t17_18 = $t16_17.$get();
2401 $t1_2.$set($t17_18);
2402 $block = 2; break;
2403 break;
2404 }
2405 case 4: {
2406 return;
2407 break;
2408 }
2409 case 5: {
2410 $t18_19 = smesh$lol$web$common$nostr.Tag$Value($t10_11);
2411 $t1_2.$set($t18_19);
2412 $block = 2; break;
2413 break;
2414 }
2415 case 6: {
2416 return;
2417 break;
2418 }
2419 case 7: {
2420 $t19_20 = $t0_1.$get();
2421 $t20_21 = { $get() { return $t19_20.$get().Kind; }, $set(v) { const obj = $t19_20.$get(); obj.Kind = v; $t19_20.$set(obj); } };
2422 $t21_22 = $t20_21.$get();
2423 $t22_23 = ($t21_22 === 1059);
2424 if ($t22_23) {
2425 $block = 9; break;
2426 }
2427 else {
2428 $t25_26 = 'nip04.decrypt';
2429 $block = 10; break;
2430 }
2431 break;
2432 }
2433 case 8: {
2434 $t23_24 = $t1_2.$get();
2435 $t24_25 = isHex($t23_24);
2436 if ($t24_25) {
2437 $block = 7; break;
2438 }
2439 else {
2440 $block = 6; break;
2441 }
2442 break;
2443 }
2444 case 9: {
2445 $t25_26 = 'nip44.decrypt';
2446 $block = 10; break;
2447 break;
2448 }
2449 case 10: {
2450 $t26_27 = $t1_2.$get();
2451 $t27_28 = $t0_1.$get();
2452 $t28_29 = { $get() { return $t27_28.$get().Content; }, $set(v) { const obj = $t27_28.$get(); obj.Content = v; $t27_28.$set(obj); } };
2453 $t29_30 = $t28_29.$get();
2454 $t30_31 = routerDecryptDM$1.bind(null, $t0_1, $t1_2);
2455 $t31_32 = requestCrypto('', $t25_26, $t26_27, $t29_30, $t30_31);
2456 return;
2457 break;
2458 }
2459 }
2460 }
2461 }
2462
2463 function routerDecryptDM$1(ev, peer, plaintext, errMsg) {
2464 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;
2465 let $block = 0;
2466 while (true) {
2467 switch ($block) {
2468 case 0: {
2469 $t0_1 = !$rt.builtin.stringEqual(errMsg, '');
2470 if ($t0_1) {
2471 $block = 1; break;
2472 }
2473 else {
2474 $block = 3; break;
2475 }
2476 break;
2477 }
2478 case 1: {
2479 return;
2480 break;
2481 }
2482 case 2: {
2483 $t1_2 = ev.$get();
2484 $t2_3 = { $get() { return $t1_2.$get().Kind; }, $set(v) { const obj = $t1_2.$get(); obj.Kind = v; $t1_2.$set(obj); } };
2485 $t3_4 = $t2_3.$get();
2486 $t4_5 = ($t3_4 === 1059);
2487 if ($t4_5) {
2488 $block = 4; break;
2489 }
2490 else {
2491 $t6_7 = 'nip04';
2492 $block = 5; break;
2493 }
2494 break;
2495 }
2496 case 3: {
2497 $t5_6 = $rt.builtin.stringEqual(plaintext, '');
2498 if ($t5_6) {
2499 $block = 1; break;
2500 }
2501 else {
2502 $block = 2; break;
2503 }
2504 break;
2505 }
2506 case 4: {
2507 $t6_7 = 'nip44';
2508 $block = 5; break;
2509 break;
2510 }
2511 case 5: {
2512 $t7_8 = peer.$get();
2513 $t8_9 = ev.$get();
2514 $t9_10 = { $get() { return $t8_9.$get().PubKey; }, $set(v) { const obj = $t8_9.$get(); obj.PubKey = v; $t8_9.$set(obj); } };
2515 $t10_11 = $t9_10.$get();
2516 $t11_12 = ev.$get();
2517 $t12_13 = { $get() { return $t11_12.$get().CreatedAt; }, $set(v) { const obj = $t11_12.$get(); obj.CreatedAt = v; $t11_12.$set(obj); } };
2518 $t13_14 = $t12_13.$get();
2519 $t14_15 = ev.$get();
2520 $t15_16 = { $get() { return $t14_15.$get().ID; }, $set(v) { const obj = $t14_15.$get(); obj.ID = v; $t14_15.$set(obj); } };
2521 $t16_17 = $t15_16.$get();
2522 $t17_18 = makeDMRecord($t7_8, $t10_11, plaintext, $t13_14, $t6_7, $t16_17);
2523 $t18_19 = DMRecord$ToJSON($t17_18);
2524 $t19_20 = routerSaveDMRecordJSON($t18_19);
2525 return;
2526 break;
2527 }
2528 }
2529 }
2530 }
2531
2532 export function routerOnRelayEOSE(subID) {
2533 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;
2534 let $block = 0;
2535 while (true) {
2536 switch ($block) {
2537 case 0: {
2538 $t0_1 = proxySubs.$get();
2539 $t1_2 = { $entries: [...$t0_1.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]; } };
2540 $block = 1; break;
2541 break;
2542 }
2543 case 1: {
2544 $t2_3 = $t1_2.next();
2545 $t3_4 = $t2_3[0];
2546 if ($t3_4) {
2547 $block = 2; break;
2548 }
2549 else {
2550 $block = 3; break;
2551 }
2552 break;
2553 }
2554 case 2: {
2555 $t4_5 = $t2_3[1];
2556 $t5_6 = $t2_3[2];
2557 $t6_7 = { $get() { return $t5_6.$get().remoteIDs; }, $set(v) { const obj = $t5_6.$get(); obj.remoteIDs = v; $t5_6.$set(obj); } };
2558 $t7_8 = $t6_7.$get();
2559 $t8_9 = $rt.builtin.mapLookup($t7_8, subID).value;
2560 if ($t8_9) {
2561 $block = 4; break;
2562 }
2563 else {
2564 $block = 1; break;
2565 }
2566 break;
2567 }
2568 case 3: {
2569 return;
2570 break;
2571 }
2572 case 4: {
2573 $t9_10 = { $get() { return $t5_6.$get().eoseCount; }, $set(v) { const obj = $t5_6.$get(); obj.eoseCount = v; $t5_6.$set(obj); } };
2574 $t10_11 = $t9_10.$get();
2575 $t11_12 = ($t10_11 + 1);
2576 $t12_13 = { $get() { return $t5_6.$get().eoseCount; }, $set(v) { const obj = $t5_6.$get(); obj.eoseCount = v; $t5_6.$set(obj); } };
2577 $t12_13.$set($t11_12);
2578 $t13_14 = { $get() { return $t5_6.$get().eoseCount; }, $set(v) { const obj = $t5_6.$get(); obj.eoseCount = v; $t5_6.$set(obj); } };
2579 $t14_15 = $t13_14.$get();
2580 $t15_16 = { $get() { return $t5_6.$get().relayCount; }, $set(v) { const obj = $t5_6.$get(); obj.relayCount = v; $t5_6.$set(obj); } };
2581 $t16_17 = $t15_16.$get();
2582 $t17_18 = ($t14_15 >= $t16_17);
2583 if ($t17_18) {
2584 $block = 6; break;
2585 }
2586 else {
2587 $block = 1; break;
2588 }
2589 break;
2590 }
2591 case 5: {
2592 $t18_19 = { $get() { return $t5_6.$get().done; }, $set(v) { const obj = $t5_6.$get(); obj.done = v; $t5_6.$set(obj); } };
2593 $t18_19.$set(true);
2594 $t19_20 = { $get() { return $t5_6.$get().timer; }, $set(v) { const obj = $t5_6.$get(); obj.timer = v; $t5_6.$set(obj); } };
2595 $t20_21 = $t19_20.$get();
2596 $t21_22 = smesh$lol$web$common$jsbridge$sw.ClearTimeout($t20_21);
2597 $t22_23 = clientSubs.$get();
2598 { const $r = $rt.builtin.mapLookup($t22_23, $t4_5); $t23_24 = [$r.value, $r.ok]; }
2599 $t24_25 = $t23_24[0];
2600 $t25_26 = $t23_24[1];
2601 if ($t25_26) {
2602 $block = 7; break;
2603 }
2604 else {
2605 $block = 1; break;
2606 }
2607 break;
2608 }
2609 case 6: {
2610 $t26_27 = { $get() { return $t5_6.$get().done; }, $set(v) { const obj = $t5_6.$get(); obj.done = v; $t5_6.$set(obj); } };
2611 $t27_28 = $t26_27.$get();
2612 if ($t27_28) {
2613 $block = 1; break;
2614 }
2615 else {
2616 $block = 5; break;
2617 }
2618 break;
2619 }
2620 case 7: {
2621 $t28_29 = { $get() { return $t24_25.$get().clientID; }, $set(v) { const obj = $t24_25.$get(); obj.clientID = v; $t24_25.$set(obj); } };
2622 $t29_30 = $t28_29.$get();
2623 $t30_31 = jstr($t4_5);
2624 $t31_32 = ('["EOSE",' + $t30_31);
2625 $t32_33 = ($t31_32 + ']');
2626 $t33_34 = sendToClient($t29_30, $t32_33);
2627 $block = 1; break;
2628 break;
2629 }
2630 }
2631 }
2632 }
2633
2634 export function pushToProxySub(remoteSubID, relayURL, ev) {
2635 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;
2636 let $block = 0;
2637 while (true) {
2638 switch ($block) {
2639 case 0: {
2640 $t0_1 = proxySubs.$get();
2641 $t1_2 = { $entries: [...$t0_1.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]; } };
2642 $block = 1; break;
2643 break;
2644 }
2645 case 1: {
2646 $t2_3 = $t1_2.next();
2647 $t3_4 = $t2_3[0];
2648 if ($t3_4) {
2649 $block = 2; break;
2650 }
2651 else {
2652 $block = 3; break;
2653 }
2654 break;
2655 }
2656 case 2: {
2657 $t4_5 = $t2_3[1];
2658 $t5_6 = $t2_3[2];
2659 $t6_7 = { $get() { return $t5_6.$get().remoteIDs; }, $set(v) { const obj = $t5_6.$get(); obj.remoteIDs = v; $t5_6.$set(obj); } };
2660 $t7_8 = $t6_7.$get();
2661 $t8_9 = $rt.builtin.mapLookup($t7_8, remoteSubID).value;
2662 if ($t8_9) {
2663 $block = 4; break;
2664 }
2665 else {
2666 $block = 1; break;
2667 }
2668 break;
2669 }
2670 case 3: {
2671 return;
2672 break;
2673 }
2674 case 4: {
2675 $t9_10 = clientSubs.$get();
2676 { const $r = $rt.builtin.mapLookup($t9_10, $t4_5); $t10_11 = [$r.value, $r.ok]; }
2677 $t11_12 = $t10_11[0];
2678 $t12_13 = $t10_11[1];
2679 if ($t12_13) {
2680 $block = 7; break;
2681 }
2682 else {
2683 $block = 6; break;
2684 }
2685 break;
2686 }
2687 case 5: {
2688 $t13_14 = { $get() { return $t11_12.$get().clientID; }, $set(v) { const obj = $t11_12.$get(); obj.clientID = v; $t11_12.$set(obj); } };
2689 $t14_15 = $t13_14.$get();
2690 $t15_16 = jstr($t4_5);
2691 $t16_17 = ('["EVENT",' + $t15_16);
2692 $t17_18 = ($t16_17 + ',');
2693 $t18_19 = smesh$lol$web$common$nostr.Event$ToJSON(ev);
2694 $t19_20 = ($t17_18 + $t18_19);
2695 $t20_21 = ($t19_20 + ']');
2696 $t21_22 = sendToClient($t14_15, $t20_21);
2697 $t22_23 = { $get() { return $t11_12.$get().clientID; }, $set(v) { const obj = $t11_12.$get(); obj.clientID = v; $t11_12.$set(obj); } };
2698 $t23_24 = $t22_23.$get();
2699 $t24_25 = { $get() { return ev.$get().ID; }, $set(v) { const obj = ev.$get(); obj.ID = v; ev.$set(obj); } };
2700 $t25_26 = $t24_25.$get();
2701 $t26_27 = jstr($t25_26);
2702 $t27_28 = ('["SEEN_ON",' + $t26_27);
2703 $t28_29 = ($t27_28 + ',');
2704 $t29_30 = jstr(relayURL);
2705 $t30_31 = ($t28_29 + $t29_30);
2706 $t31_32 = ($t30_31 + ']');
2707 $t32_33 = sendToClient($t23_24, $t31_32);
2708 $block = 6; break;
2709 break;
2710 }
2711 case 6: {
2712 return;
2713 break;
2714 }
2715 case 7: {
2716 $t33_34 = { $get() { return $t11_12.$get().filter; }, $set(v) { const obj = $t11_12.$get(); obj.filter = v; $t11_12.$set(obj); } };
2717 $t34_35 = $t33_34.$get();
2718 $t35_36 = smesh$lol$web$common$nostr.Filter$Matches($t34_35, ev);
2719 if ($t35_36) {
2720 $block = 5; break;
2721 }
2722 else {
2723 $block = 6; break;
2724 }
2725 break;
2726 }
2727 }
2728 }
2729 }
2730
2731 export function pushToMatchingSubs(ev) {
2732 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;
2733 let $block = 0;
2734 while (true) {
2735 switch ($block) {
2736 case 0: {
2737 $t0_1 = clientSubs.$get();
2738 $t1_2 = { $entries: [...$t0_1.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]; } };
2739 $block = 1; break;
2740 break;
2741 }
2742 case 1: {
2743 $t2_3 = $t1_2.next();
2744 $t3_4 = $t2_3[0];
2745 if ($t3_4) {
2746 $block = 2; break;
2747 }
2748 else {
2749 $block = 3; break;
2750 }
2751 break;
2752 }
2753 case 2: {
2754 $t4_5 = $t2_3[1];
2755 $t5_6 = $t2_3[2];
2756 $t6_7 = { $get() { return $t5_6.$get().filter; }, $set(v) { const obj = $t5_6.$get(); obj.filter = v; $t5_6.$set(obj); } };
2757 $t7_8 = $t6_7.$get();
2758 $t8_9 = smesh$lol$web$common$nostr.Filter$Matches($t7_8, ev);
2759 if ($t8_9) {
2760 $block = 4; break;
2761 }
2762 else {
2763 $block = 1; break;
2764 }
2765 break;
2766 }
2767 case 3: {
2768 return;
2769 break;
2770 }
2771 case 4: {
2772 $t9_10 = { $get() { return $t5_6.$get().clientID; }, $set(v) { const obj = $t5_6.$get(); obj.clientID = v; $t5_6.$set(obj); } };
2773 $t10_11 = $t9_10.$get();
2774 $t11_12 = jstr($t4_5);
2775 $t12_13 = ('["EVENT",' + $t11_12);
2776 $t13_14 = ($t12_13 + ',');
2777 $t14_15 = smesh$lol$web$common$nostr.Event$ToJSON(ev);
2778 $t15_16 = ($t13_14 + $t14_15);
2779 $t16_17 = ($t15_16 + ']');
2780 $t17_18 = sendToClient($t10_11, $t16_17);
2781 $block = 1; break;
2782 break;
2783 }
2784 }
2785 }
2786 }
2787
2788 export function routerSign(clientID, requestID, eventRaw) {
2789 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;
2790 let $block = 0;
2791 while (true) {
2792 switch ($block) {
2793 case 0: {
2794 $t0_1 = hasKey.$get();
2795 if ($t0_1) {
2796 $block = 2; break;
2797 }
2798 else {
2799 $block = 1; break;
2800 }
2801 break;
2802 }
2803 case 1: {
2804 $t1_2 = jstr(requestID);
2805 $t2_3 = ('["SIGN_ERROR",' + $t1_2);
2806 $t3_4 = ($t2_3 + ',"no key"]');
2807 $t4_5 = sendToClient(clientID, $t3_4);
2808 return;
2809 break;
2810 }
2811 case 2: {
2812 $t5_6 = smesh$lol$web$common$nostr.ParseEvent(eventRaw);
2813 $t6_7 = ($t5_6 === null);
2814 if ($t6_7) {
2815 $block = 3; break;
2816 }
2817 else {
2818 $block = 4; break;
2819 }
2820 break;
2821 }
2822 case 3: {
2823 $t7_8 = jstr(requestID);
2824 $t8_9 = ('["SIGN_ERROR",' + $t7_8);
2825 $t9_10 = ($t8_9 + ',"parse error"]');
2826 $t10_11 = sendToClient(clientID, $t9_10);
2827 return;
2828 break;
2829 }
2830 case 4: {
2831 $t11_12 = identitySignEvent($t5_6);
2832 if ($t11_12) {
2833 $block = 5; break;
2834 }
2835 else {
2836 $block = 7; break;
2837 }
2838 break;
2839 }
2840 case 5: {
2841 $t12_13 = jstr(requestID);
2842 $t13_14 = ('["SIGNED",' + $t12_13);
2843 $t14_15 = ($t13_14 + ',');
2844 $t15_16 = smesh$lol$web$common$nostr.Event$ToJSON($t5_6);
2845 $t16_17 = ($t14_15 + $t15_16);
2846 $t17_18 = ($t16_17 + ']');
2847 $t18_19 = sendToClient(clientID, $t17_18);
2848 $block = 6; break;
2849 break;
2850 }
2851 case 6: {
2852 return;
2853 break;
2854 }
2855 case 7: {
2856 $t19_20 = jstr(requestID);
2857 $t20_21 = ('["SIGN_ERROR",' + $t19_20);
2858 $t21_22 = ($t20_21 + ',"sign failed"]');
2859 $t22_23 = sendToClient(clientID, $t21_22);
2860 $block = 6; break;
2861 break;
2862 }
2863 }
2864 }
2865 }
2866
2867 export function routerSaveDMRecordJSON(dmJSON) {
2868 let $t0_1, $t1_2, $t2_3, $t3_4;
2869 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
2870 $t0_1.$set(dmJSON);
2871 $t1_2 = $t0_1.$get();
2872 $t2_3 = routerSaveDMRecordJSON$1.bind(null, $t0_1);
2873 $t3_4 = cacheSaveDM($t1_2, $t2_3);
2874 return;
2875 }
2876
2877 function routerSaveDMRecordJSON$1(dmJSON, result) {
2878 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
2879 let $block = 0;
2880 while (true) {
2881 switch ($block) {
2882 case 0: {
2883 $t0_1 = !$rt.builtin.stringEqual(result, 'duplicate');
2884 if ($t0_1) {
2885 $block = 1; break;
2886 }
2887 else {
2888 $block = 2; break;
2889 }
2890 break;
2891 }
2892 case 1: {
2893 $t1_2 = dmJSON.$get();
2894 $t2_3 = ('["DM_RECEIVED",' + $t1_2);
2895 $t3_4 = ($t2_3 + ']');
2896 $t4_5 = broadcastToClients($t3_4);
2897 $block = 2; break;
2898 break;
2899 }
2900 case 2: {
2901 return;
2902 break;
2903 }
2904 }
2905 }
2906 }
2907
2908 export function routerSendDM(clientID, recipientPubkey, content, relayURLs) {
2909 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10;
2910 let $block = 0;
2911 while (true) {
2912 switch ($block) {
2913 case 0: {
2914 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
2915 $t0_1.$set(clientID);
2916 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
2917 $t1_2.$set(recipientPubkey);
2918 $t2_3 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2919 $t2_3.$set(relayURLs);
2920 $t3_4 = myPubkey.$get();
2921 $t4_5 = $rt.builtin.stringEqual($t3_4, '');
2922 if ($t4_5) {
2923 $block = 1; break;
2924 }
2925 else {
2926 $block = 3; break;
2927 }
2928 break;
2929 }
2930 case 1: {
2931 return;
2932 break;
2933 }
2934 case 2: {
2935 $t5_6 = $t0_1.$get();
2936 $t6_7 = $t1_2.$get();
2937 $t7_8 = routerSendDM$1.bind(null, $t0_1, $t1_2, $t2_3);
2938 $t8_9 = requestCrypto($t5_6, 'nip04.encrypt', $t6_7, content, $t7_8);
2939 return;
2940 break;
2941 }
2942 case 3: {
2943 $t9_10 = hasKey.$get();
2944 if ($t9_10) {
2945 $block = 2; break;
2946 }
2947 else {
2948 $block = 1; break;
2949 }
2950 break;
2951 }
2952 }
2953 }
2954 }
2955
2956 function routerSendDM$1(clientID, recipientPubkey, relayURLs, ciphertext, errMsg) {
2957 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;
2958 let $block = 0;
2959 while (true) {
2960 switch ($block) {
2961 case 0: {
2962 $t0_1 = !$rt.builtin.stringEqual(errMsg, '');
2963 if ($t0_1) {
2964 $block = 1; break;
2965 }
2966 else {
2967 $block = 2; break;
2968 }
2969 break;
2970 }
2971 case 1: {
2972 $t1_2 = clientID.$get();
2973 $t2_3 = recipientPubkey.$get();
2974 $t3_4 = jstr($t2_3);
2975 $t4_5 = ('["DM_SENT",' + $t3_4);
2976 $t5_6 = ($t4_5 + ',false,');
2977 $t6_7 = jstr(errMsg);
2978 $t7_8 = ($t5_6 + $t6_7);
2979 $t8_9 = ($t7_8 + ']');
2980 $t9_10 = sendToClient($t1_2, $t8_9);
2981 return;
2982 break;
2983 }
2984 case 2: {
2985 $t10_11 = { $value: { ID: '', PubKey: '', CreatedAt: 0n, Kind: 0, Tags: null, Content: '', Sig: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
2986 $t11_12 = { $get() { return $t10_11.$get().Kind; }, $set(v) { const obj = $t10_11.$get(); obj.Kind = v; $t10_11.$set(obj); } };
2987 $t12_13 = { $get() { return $t10_11.$get().Content; }, $set(v) { const obj = $t10_11.$get(); obj.Content = v; $t10_11.$set(obj); } };
2988 $t13_14 = { $get() { return $t10_11.$get().CreatedAt; }, $set(v) { const obj = $t10_11.$get(); obj.CreatedAt = v; $t10_11.$set(obj); } };
2989 $t14_15 = smesh$lol$web$common$jsbridge$sw.NowSeconds();
2990 $t15_16 = { $get() { return $t10_11.$get().Tags; }, $set(v) { const obj = $t10_11.$get(); obj.Tags = v; $t10_11.$set(obj); } };
2991 $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2992 $t17_18 = $t16_17.$get().addr(0);
2993 $t18_19 = { $value: $rt.builtin.makeSlice(2, 2, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2994 $t19_20 = $t18_19.$get().addr(0);
2995 $t19_20.$set('p');
2996 $t20_21 = $t18_19.$get().addr(1);
2997 $t21_22 = recipientPubkey.$get();
2998 $t20_21.$set($t21_22);
2999 $t22_23 = $rt.builtin.sliceSlice($t18_19.$get(), undefined, undefined, undefined);
3000 $t17_18.$set($t22_23);
3001 $t23_24 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
3002 $t11_12.$set(4);
3003 $t12_13.$set(ciphertext);
3004 $t13_14.$set($t14_15);
3005 $t15_16.$set($t23_24);
3006 $t24_25 = identitySignEvent($t10_11);
3007 if ($t24_25) {
3008 $block = 4; break;
3009 }
3010 else {
3011 $block = 3; break;
3012 }
3013 break;
3014 }
3015 case 3: {
3016 $t25_26 = clientID.$get();
3017 $t26_27 = recipientPubkey.$get();
3018 $t27_28 = jstr($t26_27);
3019 $t28_29 = ('["DM_SENT",' + $t27_28);
3020 $t29_30 = ($t28_29 + ',false,"sign failed"]');
3021 $t30_31 = sendToClient($t25_26, $t29_30);
3022 return;
3023 break;
3024 }
3025 case 4: {
3026 $t31_32 = relayURLs.$get();
3027 $t32_33 = $rt.builtin.len($t31_32);
3028 $t33_34 = -1;
3029 $block = 5; break;
3030 break;
3031 }
3032 case 5: {
3033 $t34_35 = ($t33_34 + 1);
3034 $t35_36 = ($t34_35 < $t32_33);
3035 if ($t35_36) {
3036 $block = 6; break;
3037 }
3038 else {
3039 $block = 7; break;
3040 }
3041 break;
3042 }
3043 case 6: {
3044 $t36_37 = $t31_32.addr($t34_35);
3045 $t37_38 = $t36_37.$get();
3046 $t38_39 = isAllowedRelay($t37_38);
3047 if ($t38_39) {
3048 $block = 8; break;
3049 }
3050 else {
3051 $t33_34 = $t34_35;
3052 $block = 5; break;
3053 }
3054 break;
3055 }
3056 case 7: {
3057 $t39_40 = clientID.$get();
3058 $t40_41 = recipientPubkey.$get();
3059 $t41_42 = jstr($t40_41);
3060 $t42_43 = ('["DM_SENT",' + $t41_42);
3061 $t43_44 = ($t42_43 + ',true,""]');
3062 $t44_45 = sendToClient($t39_40, $t43_44);
3063 return;
3064 break;
3065 }
3066 case 8: {
3067 $t45_46 = getConn($t37_38);
3068 $t46_47 = smesh$lol$web$common$relay.Conn$Publish($t45_46, $t10_11);
3069 $t33_34 = $t34_35;
3070 $block = 5; break;
3071 break;
3072 }
3073 }
3074 }
3075 }
3076
3077 export function routerDMSub(_, relayURLs) {
3078 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, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85;
3079 let $block = 0;
3080 while (true) {
3081 switch ($block) {
3082 case 0: {
3083 $t0_1 = myPubkey.$get();
3084 $t1_2 = $rt.builtin.stringEqual($t0_1, '');
3085 if ($t1_2) {
3086 $block = 1; break;
3087 }
3088 else {
3089 $block = 3; break;
3090 }
3091 break;
3092 }
3093 case 1: {
3094 return;
3095 break;
3096 }
3097 case 2: {
3098 dmRelayURLs.$set(relayURLs);
3099 $t2_3 = dmSubIDs.$get();
3100 $t3_4 = { $entries: [...$t2_3.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]; } };
3101 $block = 4; break;
3102 break;
3103 }
3104 case 3: {
3105 $t4_5 = $rt.builtin.len(relayURLs);
3106 $t5_6 = ($t4_5 === 0);
3107 if ($t5_6) {
3108 $block = 1; break;
3109 }
3110 else {
3111 $block = 2; break;
3112 }
3113 break;
3114 }
3115 case 4: {
3116 $t6_7 = $t3_4.next();
3117 $t7_8 = $t6_7[0];
3118 if ($t7_8) {
3119 $block = 5; break;
3120 }
3121 else {
3122 $block = 6; break;
3123 }
3124 break;
3125 }
3126 case 5: {
3127 $t8_9 = $t6_7[1];
3128 $t9_10 = rpool.$get();
3129 $t10_11 = smesh$lol$web$common$relay.Pool$URLs($t9_10);
3130 $t11_12 = $rt.builtin.len($t10_11);
3131 $t14_15 = -1;
3132 $block = 7; break;
3133 break;
3134 }
3135 case 6: {
3136 $t12_13 = $rt.builtin.makeMap('string');
3137 dmSubIDs.$set($t12_13);
3138 $t13_14 = $rt.builtin.len(relayURLs);
3139 $t24_25 = -1;
3140 $block = 11; break;
3141 break;
3142 }
3143 case 7: {
3144 $t15_16 = ($t14_15 + 1);
3145 $t16_17 = ($t15_16 < $t11_12);
3146 if ($t16_17) {
3147 $block = 8; break;
3148 }
3149 else {
3150 $block = 4; break;
3151 }
3152 break;
3153 }
3154 case 8: {
3155 $t17_18 = $t10_11.addr($t15_16);
3156 $t18_19 = $t17_18.$get();
3157 $t19_20 = rpool.$get();
3158 $t20_21 = smesh$lol$web$common$relay.Pool$Get($t19_20, $t18_19);
3159 $t21_22 = ($t20_21 !== null);
3160 if ($t21_22) {
3161 $block = 10; break;
3162 }
3163 else {
3164 $t14_15 = $t15_16;
3165 $block = 7; break;
3166 }
3167 break;
3168 }
3169 case 9: {
3170 $t22_23 = smesh$lol$web$common$relay.Conn$CloseSubscription($t20_21, $t8_9);
3171 $t14_15 = $t15_16;
3172 $block = 7; break;
3173 break;
3174 }
3175 case 10: {
3176 $t23_24 = smesh$lol$web$common$relay.Conn$IsOpen($t20_21);
3177 if ($t23_24) {
3178 $block = 9; break;
3179 }
3180 else {
3181 $t14_15 = $t15_16;
3182 $block = 7; break;
3183 }
3184 break;
3185 }
3186 case 11: {
3187 $t25_26 = ($t24_25 + 1);
3188 $t26_27 = ($t25_26 < $t13_14);
3189 if ($t26_27) {
3190 $block = 12; break;
3191 }
3192 else {
3193 $block = 13; break;
3194 }
3195 break;
3196 }
3197 case 12: {
3198 $t27_28 = relayURLs.addr($t25_26);
3199 $t28_29 = $t27_28.$get();
3200 $t29_30 = isAllowedRelay($t28_29);
3201 if ($t29_30) {
3202 $block = 14; break;
3203 }
3204 else {
3205 $t24_25 = $t25_26;
3206 $block = 11; break;
3207 }
3208 break;
3209 }
3210 case 13: {
3211 return;
3212 break;
3213 }
3214 case 14: {
3215 $t30_31 = urlSuffix($t28_29);
3216 $t31_32 = ('dm4in_' + $t30_31);
3217 $t32_33 = ('dm4out_' + $t30_31);
3218 $t33_34 = ('dm17_' + $t30_31);
3219 $t34_35 = dmSubIDs.$get();
3220 $rt.builtin.mapUpdate($t34_35, $t31_32, true);
3221 $t35_36 = dmSubIDs.$get();
3222 $rt.builtin.mapUpdate($t35_36, $t32_33, true);
3223 $t36_37 = dmSubIDs.$get();
3224 $rt.builtin.mapUpdate($t36_37, $t33_34, true);
3225 $t37_38 = getConn($t28_29);
3226 $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3227 $t39_40 = $t38_39.$get().addr(0);
3228 $t40_41 = { $value: { IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0n, Until: 0n, Limit: 0, Proxy: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3229 $t41_42 = { $get() { return $t40_41.$get().Kinds; }, $set(v) { const obj = $t40_41.$get(); obj.Kinds = v; $t40_41.$set(obj); } };
3230 $t42_43 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3231 $t43_44 = $t42_43.$get().addr(0);
3232 $t43_44.$set(4);
3233 $t44_45 = $rt.builtin.sliceSlice($t42_43.$get(), undefined, undefined, undefined);
3234 $t45_46 = { $get() { return $t40_41.$get().Tags; }, $set(v) { const obj = $t40_41.$get(); obj.Tags = v; $t40_41.$set(obj); } };
3235 $t46_47 = $rt.builtin.makeMap('string');
3236 $t47_48 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3237 $t48_49 = $t47_48.$get().addr(0);
3238 $t49_50 = myPubkey.$get();
3239 $t48_49.$set($t49_50);
3240 $t50_51 = $rt.builtin.sliceSlice($t47_48.$get(), undefined, undefined, undefined);
3241 $rt.builtin.mapUpdate($t46_47, '#p', $t50_51);
3242 $t51_52 = { $get() { return $t40_41.$get().Limit; }, $set(v) { const obj = $t40_41.$get(); obj.Limit = v; $t40_41.$set(obj); } };
3243 $t41_42.$set($t44_45);
3244 $t45_46.$set($t46_47);
3245 $t51_52.$set(100);
3246 $t39_40.$set($t40_41);
3247 $t52_53 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
3248 $t53_54 = smesh$lol$web$common$relay.Conn$Subscribe($t37_38, $t31_32, $t52_53);
3249 $t54_55 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3250 $t55_56 = $t54_55.$get().addr(0);
3251 $t56_57 = { $value: { IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0n, Until: 0n, Limit: 0, Proxy: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3252 $t57_58 = { $get() { return $t56_57.$get().Kinds; }, $set(v) { const obj = $t56_57.$get(); obj.Kinds = v; $t56_57.$set(obj); } };
3253 $t58_59 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3254 $t59_60 = $t58_59.$get().addr(0);
3255 $t59_60.$set(4);
3256 $t60_61 = $rt.builtin.sliceSlice($t58_59.$get(), undefined, undefined, undefined);
3257 $t61_62 = { $get() { return $t56_57.$get().Authors; }, $set(v) { const obj = $t56_57.$get(); obj.Authors = v; $t56_57.$set(obj); } };
3258 $t62_63 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3259 $t63_64 = $t62_63.$get().addr(0);
3260 $t64_65 = myPubkey.$get();
3261 $t63_64.$set($t64_65);
3262 $t65_66 = $rt.builtin.sliceSlice($t62_63.$get(), undefined, undefined, undefined);
3263 $t66_67 = { $get() { return $t56_57.$get().Limit; }, $set(v) { const obj = $t56_57.$get(); obj.Limit = v; $t56_57.$set(obj); } };
3264 $t57_58.$set($t60_61);
3265 $t61_62.$set($t65_66);
3266 $t66_67.$set(100);
3267 $t55_56.$set($t56_57);
3268 $t67_68 = $rt.builtin.sliceSlice($t54_55.$get(), undefined, undefined, undefined);
3269 $t68_69 = smesh$lol$web$common$relay.Conn$Subscribe($t37_38, $t32_33, $t67_68);
3270 $t69_70 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3271 $t70_71 = $t69_70.$get().addr(0);
3272 $t71_72 = { $value: { IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0n, Until: 0n, Limit: 0, Proxy: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3273 $t72_73 = { $get() { return $t71_72.$get().Kinds; }, $set(v) { const obj = $t71_72.$get(); obj.Kinds = v; $t71_72.$set(obj); } };
3274 $t73_74 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3275 $t74_75 = $t73_74.$get().addr(0);
3276 $t74_75.$set(1059);
3277 $t75_76 = $rt.builtin.sliceSlice($t73_74.$get(), undefined, undefined, undefined);
3278 $t76_77 = { $get() { return $t71_72.$get().Tags; }, $set(v) { const obj = $t71_72.$get(); obj.Tags = v; $t71_72.$set(obj); } };
3279 $t77_78 = $rt.builtin.makeMap('string');
3280 $t78_79 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3281 $t79_80 = $t78_79.$get().addr(0);
3282 $t80_81 = myPubkey.$get();
3283 $t79_80.$set($t80_81);
3284 $t81_82 = $rt.builtin.sliceSlice($t78_79.$get(), undefined, undefined, undefined);
3285 $rt.builtin.mapUpdate($t77_78, '#p', $t81_82);
3286 $t82_83 = { $get() { return $t71_72.$get().Limit; }, $set(v) { const obj = $t71_72.$get(); obj.Limit = v; $t71_72.$set(obj); } };
3287 $t72_73.$set($t75_76);
3288 $t76_77.$set($t77_78);
3289 $t82_83.$set(100);
3290 $t70_71.$set($t71_72);
3291 $t83_84 = $rt.builtin.sliceSlice($t69_70.$get(), undefined, undefined, undefined);
3292 $t84_85 = smesh$lol$web$common$relay.Conn$Subscribe($t37_38, $t33_34, $t83_84);
3293 $t24_25 = $t25_26;
3294 $block = 11; break;
3295 break;
3296 }
3297 }
3298 }
3299 }
3300
3301 export function routerDMList(clientID) {
3302 let $t0_1, $t1_2, $t2_3;
3303 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3304 $t0_1.$set(clientID);
3305 $t1_2 = routerDMList$1.bind(null, $t0_1);
3306 $t2_3 = cacheGetConversationList($t1_2);
3307 return;
3308 }
3309
3310 function routerDMList$1(clientID, listJSON) {
3311 let $t0_1, $t1_2, $t2_3, $t3_4;
3312 $t0_1 = clientID.$get();
3313 $t1_2 = ('["DM_LIST",' + listJSON);
3314 $t2_3 = ($t1_2 + ']');
3315 $t3_4 = sendToClient($t0_1, $t2_3);
3316 return;
3317 }
3318
3319 export function routerDMHistory(clientID, peer, limit, until) {
3320 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
3321 let $block = 0;
3322 while (true) {
3323 switch ($block) {
3324 case 0: {
3325 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3326 $t0_1.$set(clientID);
3327 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3328 $t1_2.$set(peer);
3329 $t2_3 = (limit <= 0);
3330 if ($t2_3) {
3331 $block = 1; break;
3332 }
3333 else {
3334 $t3_4 = limit;
3335 $block = 2; break;
3336 }
3337 break;
3338 }
3339 case 1: {
3340 $t3_4 = 50;
3341 $block = 2; break;
3342 break;
3343 }
3344 case 2: {
3345 $t4_5 = $t1_2.$get();
3346 $t5_6 = routerDMHistory$1.bind(null, $t0_1, $t1_2);
3347 $t6_7 = cacheQueryDMs($t4_5, $t3_4, until, $t5_6);
3348 return;
3349 break;
3350 }
3351 }
3352 }
3353 }
3354
3355 function routerDMHistory$1(clientID, peer, msgsJSON) {
3356 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8;
3357 $t0_1 = clientID.$get();
3358 $t1_2 = peer.$get();
3359 $t2_3 = jstr($t1_2);
3360 $t3_4 = ('["DM_HISTORY",' + $t2_3);
3361 $t4_5 = ($t3_4 + ',');
3362 $t5_6 = ($t4_5 + msgsJSON);
3363 $t6_7 = ($t5_6 + ']');
3364 $t7_8 = sendToClient($t0_1, $t6_7);
3365 return;
3366 }
3367
3368 export function routerBroadcast(clientID, pubkey, relayURLs) {
3369 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9;
3370 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3371 $t0_1.$set(clientID);
3372 $t1_2 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3373 $t1_2.$set(pubkey);
3374 $t2_3 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3375 $t2_3.$set(relayURLs);
3376 $t3_4 = $t1_2.$get();
3377 $t4_5 = jstr($t3_4);
3378 $t5_6 = ('{"authors":[' + $t4_5);
3379 $t6_7 = ($t5_6 + '],"kinds":[0,3,10002,10050,10051]}');
3380 $t7_8 = routerBroadcast$1.bind(null, $t2_3, $t1_2, $t0_1);
3381 $t8_9 = cacheQuery($t6_7, $t7_8);
3382 return;
3383 }
3384
3385 function routerBroadcast$1(relayURLs, pubkey, clientID, eventsJSON) {
3386 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, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94;
3387 let $block = 0;
3388 while (true) {
3389 switch ($block) {
3390 case 0: {
3391 $t0_1 = smesh$lol$web$common$nostr.ParseEventsJSON(eventsJSON);
3392 $t1_2 = $rt.builtin.makeMap('int');
3393 $t2_3 = $rt.builtin.len($t0_1);
3394 $t3_4 = -1;
3395 $block = 1; break;
3396 break;
3397 }
3398 case 1: {
3399 $t4_5 = ($t3_4 + 1);
3400 $t5_6 = ($t4_5 < $t2_3);
3401 if ($t5_6) {
3402 $block = 2; break;
3403 }
3404 else {
3405 $block = 3; break;
3406 }
3407 break;
3408 }
3409 case 2: {
3410 $t6_7 = $t0_1.addr($t4_5);
3411 $t7_8 = $t6_7.$get();
3412 $t8_9 = { $get() { return $t7_8.$get().Kind; }, $set(v) { const obj = $t7_8.$get(); obj.Kind = v; $t7_8.$set(obj); } };
3413 $t9_10 = $t8_9.$get();
3414 { const $r = $rt.builtin.mapLookup($t1_2, $t9_10); $t10_11 = [$r.value, $r.ok]; }
3415 $t11_12 = $t10_11[0];
3416 $t12_13 = $t10_11[1];
3417 if ($t12_13) {
3418 $block = 5; break;
3419 }
3420 else {
3421 $block = 4; break;
3422 }
3423 break;
3424 }
3425 case 3: {
3426 $t13_14 = relayURLs.$get();
3427 { const $r = $rt.builtin.mapLookup($t1_2, 10002); $t14_15 = [$r.value, $r.ok]; }
3428 $t15_16 = $t14_15[0];
3429 $t16_17 = $t14_15[1];
3430 if ($t16_17) {
3431 $block = 6; break;
3432 }
3433 else {
3434 $t28_29 = $t13_14;
3435 $block = 7; break;
3436 }
3437 break;
3438 }
3439 case 4: {
3440 $t17_18 = { $get() { return $t7_8.$get().Kind; }, $set(v) { const obj = $t7_8.$get(); obj.Kind = v; $t7_8.$set(obj); } };
3441 $t18_19 = $t17_18.$get();
3442 $rt.builtin.mapUpdate($t1_2, $t18_19, $t7_8);
3443 $t3_4 = $t4_5;
3444 $block = 1; break;
3445 break;
3446 }
3447 case 5: {
3448 $t19_20 = { $get() { return $t7_8.$get().CreatedAt; }, $set(v) { const obj = $t7_8.$get(); obj.CreatedAt = v; $t7_8.$set(obj); } };
3449 $t20_21 = $t19_20.$get();
3450 $t21_22 = { $get() { return $t11_12.$get().CreatedAt; }, $set(v) { const obj = $t11_12.$get(); obj.CreatedAt = v; $t11_12.$set(obj); } };
3451 $t22_23 = $t21_22.$get();
3452 $t23_24 = ($t20_21 > $t22_23);
3453 if ($t23_24) {
3454 $block = 4; break;
3455 }
3456 else {
3457 $t3_4 = $t4_5;
3458 $block = 1; break;
3459 }
3460 break;
3461 }
3462 case 6: {
3463 $t24_25 = { $get() { return $t15_16.$get().Tags; }, $set(v) { const obj = $t15_16.$get(); obj.Tags = v; $t15_16.$set(obj); } };
3464 $t25_26 = $t24_25.$get();
3465 $t26_27 = smesh$lol$web$common$nostr.Tags$GetAll($t25_26, 'r');
3466 $t27_28 = $rt.builtin.len($t26_27);
3467 $t31_32 = null;
3468 $t32_33 = -1;
3469 $block = 8; break;
3470 break;
3471 }
3472 case 7: {
3473 $t29_30 = $rt.builtin.len($t28_29);
3474 $t30_31 = ($t29_30 === 0);
3475 if ($t30_31) {
3476 $block = 10; break;
3477 }
3478 else {
3479 $t43_44 = $t28_29;
3480 $block = 11; break;
3481 }
3482 break;
3483 }
3484 case 8: {
3485 $t33_34 = ($t32_33 + 1);
3486 $t34_35 = ($t33_34 < $t27_28);
3487 if ($t34_35) {
3488 $block = 9; break;
3489 }
3490 else {
3491 $t28_29 = $t31_32;
3492 $block = 7; break;
3493 }
3494 break;
3495 }
3496 case 9: {
3497 $t35_36 = $t26_27.addr($t33_34);
3498 $t36_37 = $t35_36.$get();
3499 $t37_38 = smesh$lol$web$common$nostr.Tag$Value($t36_37);
3500 $t38_39 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3501 $t39_40 = $t38_39.$get().addr(0);
3502 $t39_40.$set($t37_38);
3503 $t40_41 = $rt.builtin.sliceSlice($t38_39.$get(), undefined, undefined, undefined);
3504 $t41_42 = $rt.builtin.appendSlice($t31_32, $t40_41);
3505 $t31_32 = $t41_42;
3506 $t32_33 = $t33_34;
3507 $block = 8; break;
3508 break;
3509 }
3510 case 10: {
3511 $t42_43 = writeRelays.$get();
3512 $t43_44 = $t42_43;
3513 $block = 11; break;
3514 break;
3515 }
3516 case 11: {
3517 { const $r = $rt.builtin.mapLookup($t1_2, 10050); $t44_45 = [$r.value, $r.ok]; }
3518 $t45_46 = $t44_45[0];
3519 $t46_47 = $t44_45[1];
3520 if ($t46_47) {
3521 $block = 13; break;
3522 }
3523 else {
3524 $block = 15; break;
3525 }
3526 break;
3527 }
3528 case 12: {
3529 $t47_48 = pubkey.$get();
3530 $t48_49 = createRelayListEvent(10050, $t47_48, $t43_44);
3531 $t49_50 = ($t48_49 !== null);
3532 if ($t49_50) {
3533 $block = 16; break;
3534 }
3535 else {
3536 $block = 13; break;
3537 }
3538 break;
3539 }
3540 case 13: {
3541 { const $r = $rt.builtin.mapLookup($t1_2, 10051); $t50_51 = [$r.value, $r.ok]; }
3542 $t51_52 = $t50_51[0];
3543 $t52_53 = $t50_51[1];
3544 if ($t52_53) {
3545 $block = 18; break;
3546 }
3547 else {
3548 $block = 20; break;
3549 }
3550 break;
3551 }
3552 case 14: {
3553 $t53_54 = $rt.builtin.len($t43_44);
3554 $t54_55 = ($t53_54 > 0);
3555 if ($t54_55) {
3556 $block = 12; break;
3557 }
3558 else {
3559 $block = 13; break;
3560 }
3561 break;
3562 }
3563 case 15: {
3564 $t55_56 = hasKey.$get();
3565 if ($t55_56) {
3566 $block = 14; break;
3567 }
3568 else {
3569 $block = 13; break;
3570 }
3571 break;
3572 }
3573 case 16: {
3574 $t56_57 = smesh$lol$web$common$nostr.Event$ToJSON($t48_49);
3575 $t57_58 = cacheStore($t56_57, routerBroadcast$1$1);
3576 $rt.builtin.mapUpdate($t1_2, 10050, $t48_49);
3577 $block = 13; break;
3578 break;
3579 }
3580 case 17: {
3581 $t58_59 = pubkey.$get();
3582 $t59_60 = createRelayListEvent(10051, $t58_59, $t43_44);
3583 $t60_61 = ($t59_60 !== null);
3584 if ($t60_61) {
3585 $block = 21; break;
3586 }
3587 else {
3588 $block = 18; break;
3589 }
3590 break;
3591 }
3592 case 18: {
3593 $t61_62 = { $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]; } };
3594 $t67_68 = 0;
3595 $block = 22; break;
3596 break;
3597 }
3598 case 19: {
3599 $t62_63 = $rt.builtin.len($t43_44);
3600 $t63_64 = ($t62_63 > 0);
3601 if ($t63_64) {
3602 $block = 17; break;
3603 }
3604 else {
3605 $block = 18; break;
3606 }
3607 break;
3608 }
3609 case 20: {
3610 $t64_65 = hasKey.$get();
3611 if ($t64_65) {
3612 $block = 19; break;
3613 }
3614 else {
3615 $block = 18; break;
3616 }
3617 break;
3618 }
3619 case 21: {
3620 $t65_66 = smesh$lol$web$common$nostr.Event$ToJSON($t59_60);
3621 $t66_67 = cacheStore($t65_66, routerBroadcast$1$2);
3622 $rt.builtin.mapUpdate($t1_2, 10051, $t59_60);
3623 $block = 18; break;
3624 break;
3625 }
3626 case 22: {
3627 $t68_69 = $t61_62.next();
3628 $t69_70 = $t68_69[0];
3629 if ($t69_70) {
3630 $block = 23; break;
3631 }
3632 else {
3633 $block = 24; break;
3634 }
3635 break;
3636 }
3637 case 23: {
3638 $t70_71 = $t68_69[2];
3639 $t71_72 = relayURLs.$get();
3640 $t72_73 = $rt.builtin.len($t71_72);
3641 $t85_86 = -1;
3642 $block = 25; break;
3643 break;
3644 }
3645 case 24: {
3646 $t73_74 = clientID.$get();
3647 $t74_75 = BigInt($t67_68);
3648 $t75_76 = smesh$lol$web$common$helpers.Itoa($t74_75);
3649 $t76_77 = ('["BROADCAST_DONE",' + $t75_76);
3650 $t77_78 = ($t76_77 + ',');
3651 $t78_79 = relayURLs.$get();
3652 $t79_80 = $rt.builtin.len($t78_79);
3653 $t80_81 = BigInt($t79_80);
3654 $t81_82 = smesh$lol$web$common$helpers.Itoa($t80_81);
3655 $t82_83 = ($t77_78 + $t81_82);
3656 $t83_84 = ($t82_83 + ']');
3657 $t84_85 = sendToClient($t73_74, $t83_84);
3658 return;
3659 break;
3660 }
3661 case 25: {
3662 $t86_87 = ($t85_86 + 1);
3663 $t87_88 = ($t86_87 < $t72_73);
3664 if ($t87_88) {
3665 $block = 26; break;
3666 }
3667 else {
3668 $block = 27; break;
3669 }
3670 break;
3671 }
3672 case 26: {
3673 $t88_89 = $t71_72.addr($t86_87);
3674 $t89_90 = $t88_89.$get();
3675 $t90_91 = isAllowedRelay($t89_90);
3676 if ($t90_91) {
3677 $block = 28; break;
3678 }
3679 else {
3680 $t85_86 = $t86_87;
3681 $block = 25; break;
3682 }
3683 break;
3684 }
3685 case 27: {
3686 $t91_92 = ($t67_68 + 1);
3687 $t67_68 = $t91_92;
3688 $block = 22; break;
3689 break;
3690 }
3691 case 28: {
3692 $t92_93 = getConn($t89_90);
3693 $t93_94 = smesh$lol$web$common$relay.Conn$Publish($t92_93, $t70_71);
3694 $t85_86 = $t86_87;
3695 $block = 25; break;
3696 break;
3697 }
3698 }
3699 }
3700 }
3701
3702 function routerBroadcast$1$1(_) {
3703 return;
3704 }
3705
3706 function routerBroadcast$1$2(_) {
3707 return;
3708 }
3709
3710 export function createRelayListEvent(kind, _, relays) {
3711 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;
3712 let $block = 0;
3713 while (true) {
3714 switch ($block) {
3715 case 0: {
3716 $t0_1 = $rt.builtin.len(relays);
3717 $t1_2 = null;
3718 $t2_3 = -1;
3719 $block = 1; break;
3720 break;
3721 }
3722 case 1: {
3723 $t3_4 = ($t2_3 + 1);
3724 $t4_5 = ($t3_4 < $t0_1);
3725 if ($t4_5) {
3726 $block = 2; break;
3727 }
3728 else {
3729 $block = 3; break;
3730 }
3731 break;
3732 }
3733 case 2: {
3734 $t5_6 = relays.addr($t3_4);
3735 $t6_7 = $t5_6.$get();
3736 $t7_8 = { $value: $rt.builtin.makeSlice(2, 2, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3737 $t8_9 = $t7_8.$get().addr(0);
3738 $t8_9.$set('relay');
3739 $t9_10 = $t7_8.$get().addr(1);
3740 $t9_10.$set($t6_7);
3741 $t10_11 = $rt.builtin.sliceSlice($t7_8.$get(), undefined, undefined, undefined);
3742 $t11_12 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3743 $t12_13 = $t11_12.$get().addr(0);
3744 $t12_13.$set($t10_11);
3745 $t13_14 = $rt.builtin.sliceSlice($t11_12.$get(), undefined, undefined, undefined);
3746 $t14_15 = $rt.builtin.appendSlice($t1_2, $t13_14);
3747 $t1_2 = $t14_15;
3748 $t2_3 = $t3_4;
3749 $block = 1; break;
3750 break;
3751 }
3752 case 3: {
3753 $t15_16 = { $value: { ID: '', PubKey: '', CreatedAt: 0n, Kind: 0, Tags: null, Content: '', Sig: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3754 $t16_17 = { $get() { return $t15_16.$get().Kind; }, $set(v) { const obj = $t15_16.$get(); obj.Kind = v; $t15_16.$set(obj); } };
3755 $t17_18 = { $get() { return $t15_16.$get().Content; }, $set(v) { const obj = $t15_16.$get(); obj.Content = v; $t15_16.$set(obj); } };
3756 $t18_19 = { $get() { return $t15_16.$get().Tags; }, $set(v) { const obj = $t15_16.$get(); obj.Tags = v; $t15_16.$set(obj); } };
3757 $t19_20 = { $get() { return $t15_16.$get().CreatedAt; }, $set(v) { const obj = $t15_16.$get(); obj.CreatedAt = v; $t15_16.$set(obj); } };
3758 $t20_21 = smesh$lol$web$common$jsbridge$sw.NowSeconds();
3759 $t16_17.$set(kind);
3760 $t17_18.$set('');
3761 $t18_19.$set($t1_2);
3762 $t19_20.$set($t20_21);
3763 $t21_22 = identitySignEvent($t15_16);
3764 if ($t21_22) {
3765 $block = 5; break;
3766 }
3767 else {
3768 $block = 4; break;
3769 }
3770 break;
3771 }
3772 case 4: {
3773 return null;
3774 break;
3775 }
3776 case 5: {
3777 return $t15_16;
3778 break;
3779 }
3780 }
3781 }
3782 }
3783
3784 export function stringsToJSON(ss) {
3785 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;
3786 let $block = 0;
3787 while (true) {
3788 switch ($block) {
3789 case 0: {
3790 $t0_1 = $rt.builtin.len(ss);
3791 $t1_2 = ($t0_1 === 0);
3792 if ($t1_2) {
3793 $block = 1; break;
3794 }
3795 else {
3796 $block = 2; break;
3797 }
3798 break;
3799 }
3800 case 1: {
3801 return '[]';
3802 break;
3803 }
3804 case 2: {
3805 $t2_3 = $rt.builtin.len(ss);
3806 $t3_4 = '[';
3807 $t4_5 = -1;
3808 $block = 3; break;
3809 break;
3810 }
3811 case 3: {
3812 $t5_6 = ($t4_5 + 1);
3813 $t6_7 = ($t5_6 < $t2_3);
3814 if ($t6_7) {
3815 $block = 4; break;
3816 }
3817 else {
3818 $block = 5; break;
3819 }
3820 break;
3821 }
3822 case 4: {
3823 $t7_8 = ss.addr($t5_6);
3824 $t8_9 = $t7_8.$get();
3825 $t9_10 = ($t5_6 > 0);
3826 if ($t9_10) {
3827 $block = 6; break;
3828 }
3829 else {
3830 $t12_13 = $t3_4;
3831 $block = 7; break;
3832 }
3833 break;
3834 }
3835 case 5: {
3836 $t10_11 = ($t3_4 + ']');
3837 return $t10_11;
3838 break;
3839 }
3840 case 6: {
3841 $t11_12 = ($t3_4 + ',');
3842 $t12_13 = $t11_12;
3843 $block = 7; break;
3844 break;
3845 }
3846 case 7: {
3847 $t13_14 = jstr($t8_9);
3848 $t14_15 = ($t12_13 + $t13_14);
3849 $t3_4 = $t14_15;
3850 $t4_5 = $t5_6;
3851 $block = 3; break;
3852 break;
3853 }
3854 }
3855 }
3856 }
3857
3858 export function initSharedState() {
3859 let $t0_1, $t1_2;
3860 $t0_1 = $rt.builtin.makeMap('string');
3861 dmSubIDs.$set($t0_1);
3862 $t1_2 = $rt.builtin.makeMap('int');
3863 cryptoCBs.$set($t1_2);
3864 return;
3865 }
3866
3867 export function sendToClient(clientID, msg) {
3868 let $t0_1, $t1_2, $t2_3;
3869 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3870 $t0_1.$set(msg);
3871 $t1_2 = sendToClient$1.bind(null, $t0_1);
3872 $t2_3 = smesh$lol$web$common$jsbridge$sw.GetClientByID(clientID, $t1_2);
3873 return;
3874 }
3875
3876 function sendToClient$1(msg, c, ok) {
3877 let $t0_1, $t1_2;
3878 let $block = 0;
3879 while (true) {
3880 switch ($block) {
3881 case 0: {
3882 if (ok) {
3883 $block = 1; break;
3884 }
3885 else {
3886 $block = 2; break;
3887 }
3888 break;
3889 }
3890 case 1: {
3891 $t0_1 = msg.$get();
3892 $t1_2 = smesh$lol$web$common$jsbridge$sw.PostMessageJSON(c, $t0_1);
3893 $block = 2; break;
3894 break;
3895 }
3896 case 2: {
3897 return;
3898 break;
3899 }
3900 }
3901 }
3902 }
3903
3904 export function broadcastToClients(msg) {
3905 let $t0_1, $t1_2, $t2_3;
3906 $t0_1 = { $value: '', $get() { return this.$value; }, $set(v) { this.$value = v; } };
3907 $t0_1.$set(msg);
3908 $t1_2 = broadcastToClients$1.bind(null, $t0_1);
3909 $t2_3 = smesh$lol$web$common$jsbridge$sw.MatchClients($t1_2);
3910 return;
3911 }
3912
3913 function broadcastToClients$1(msg, c) {
3914 let $t0_1, $t1_2;
3915 $t0_1 = msg.$get();
3916 $t1_2 = smesh$lol$web$common$jsbridge$sw.PostMessageJSON(c, $t0_1);
3917 return;
3918 }
3919
3920 export function genCryptoID() {
3921 let $t0_1, $t1_2, $t2_3;
3922 $t0_1 = nextCryptoID.$get();
3923 $t1_2 = ($t0_1 + 1);
3924 nextCryptoID.$set($t1_2);
3925 $t2_3 = nextCryptoID.$get();
3926 return $t2_3;
3927 }
3928
3929 export function requestCrypto(clientID, method, peerPubkey, data, fn) {
3930 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;
3931 $t0_1 = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3932 $t0_1.$set(fn);
3933 $t1_2 = genCryptoID();
3934 $t2_3 = cryptoCBs.$get();
3935 $t3_4 = $t0_1.$get();
3936 $rt.builtin.mapUpdate($t2_3, $t1_2, $t3_4);
3937 $t4_5 = BigInt($t1_2);
3938 $t5_6 = smesh$lol$web$common$helpers.Itoa($t4_5);
3939 $t6_7 = ('["CRYPTO_REQ",' + $t5_6);
3940 $t7_8 = ($t6_7 + ',');
3941 $t8_9 = jstr(method);
3942 $t9_10 = ($t7_8 + $t8_9);
3943 $t10_11 = ($t9_10 + ',');
3944 $t11_12 = jstr(peerPubkey);
3945 $t12_13 = ($t10_11 + $t11_12);
3946 $t13_14 = ($t12_13 + ',');
3947 $t14_15 = jstr(data);
3948 $t15_16 = ($t13_14 + $t14_15);
3949 $t16_17 = ($t15_16 + ']');
3950 $t17_18 = broadcastToClients($t16_17);
3951 $t18_19 = { $value: 0, $get() { return this.$value; }, $set(v) { this.$value = v; } };
3952 $t18_19.$set($t1_2);
3953 $t19_20 = requestCrypto$1.bind(null, $t18_19, $t0_1);
3954 $t20_21 = smesh$lol$web$common$jsbridge$sw.SetTimeout(15000, $t19_20);
3955 return;
3956 }
3957
3958 function requestCrypto$1(cbID, fn) {
3959 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10;
3960 let $block = 0;
3961 while (true) {
3962 switch ($block) {
3963 case 0: {
3964 $t0_1 = cryptoCBs.$get();
3965 $t1_2 = cbID.$get();
3966 { const $r = $rt.builtin.mapLookup($t0_1, $t1_2); $t2_3 = [$r.value, $r.ok]; }
3967 $t3_4 = $t2_3[0];
3968 $t4_5 = $t2_3[1];
3969 if ($t4_5) {
3970 $block = 1; break;
3971 }
3972 else {
3973 $block = 2; break;
3974 }
3975 break;
3976 }
3977 case 1: {
3978 $t5_6 = cryptoCBs.$get();
3979 $t6_7 = cbID.$get();
3980 $t7_8 = $rt.builtin.mapDelete($t5_6, $t6_7);
3981 $t8_9 = fn.$get();
3982 $t9_10 = $t8_9('', 'timeout: signer did not respond');
3983 $block = 2; break;
3984 break;
3985 }
3986 case 2: {
3987 return;
3988 break;
3989 }
3990 }
3991 }
3992 }
3993
3994 export function jstr(s) {
3995 let $t0_1;
3996 $t0_1 = smesh$lol$web$common$helpers.JsonString(s);
3997 return $t0_1;
3998 }
3999
4000 export function hexTo32(s) {
4001 let $t0_1, $t1_2, $t2_3;
4002 $t0_1 = smesh$lol$web$common$helpers.HexDecode32(s);
4003 $t1_2 = $t0_1[0];
4004 $t2_3 = $t0_1[1];
4005 return $t1_2;
4006 }
4007
4008 export function random32() {
4009 let $t0_1, $t1_2, $t2_3, $t3_4;
4010 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4011 $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4012 $t2_3 = smesh$lol$web$common$jsbridge$subtle.RandomBytes($t1_2);
4013 $t3_4 = $t0_1.$get();
4014 return $t3_4;
4015 }
4016
4017 export function jsonFieldRaw(s, key) {
4018 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;
4019 let $block = 0;
4020 while (true) {
4021 switch ($block) {
4022 case 0: {
4023 $t0_1 = ('"' + key);
4024 $t1_2 = ($t0_1 + '"');
4025 $t2_3 = 0;
4026 $block = 1; break;
4027 break;
4028 }
4029 case 1: {
4030 $t3_4 = $rt.builtin.len(s);
4031 $t4_5 = $rt.builtin.len($t1_2);
4032 $t5_6 = ($t3_4 - $t4_5);
4033 $t6_7 = ($t2_3 <= $t5_6);
4034 if ($t6_7) {
4035 $block = 2; break;
4036 }
4037 else {
4038 $block = 3; break;
4039 }
4040 break;
4041 }
4042 case 2: {
4043 $t7_8 = $rt.builtin.len($t1_2);
4044 $t8_9 = ($t2_3 + $t7_8);
4045 $t9_10 = $rt.builtin.stringSlice(s, $t2_3, $t8_9);
4046 $t10_11 = $rt.builtin.stringEqual($t9_10, $t1_2);
4047 if ($t10_11) {
4048 $block = 4; break;
4049 }
4050 else {
4051 $block = 5; break;
4052 }
4053 break;
4054 }
4055 case 3: {
4056 return '';
4057 break;
4058 }
4059 case 4: {
4060 $t11_12 = $rt.builtin.len($t1_2);
4061 $t12_13 = ($t2_3 + $t11_12);
4062 $t17_18 = $t12_13;
4063 $block = 8; break;
4064 break;
4065 }
4066 case 5: {
4067 $t13_14 = ($t2_3 + 1);
4068 $t2_3 = $t13_14;
4069 $block = 1; break;
4070 break;
4071 }
4072 case 6: {
4073 $t14_15 = ($t17_18 + 1);
4074 $t17_18 = $t14_15;
4075 $block = 8; break;
4076 break;
4077 }
4078 case 7: {
4079 $t15_16 = $rt.builtin.len(s);
4080 $t16_17 = ($t17_18 < $t15_16);
4081 if ($t16_17) {
4082 $block = 11; break;
4083 }
4084 else {
4085 $block = 5; break;
4086 }
4087 break;
4088 }
4089 case 8: {
4090 $t18_19 = $rt.builtin.len(s);
4091 $t19_20 = ($t17_18 < $t18_19);
4092 if ($t19_20) {
4093 $block = 9; break;
4094 }
4095 else {
4096 $block = 7; break;
4097 }
4098 break;
4099 }
4100 case 9: {
4101 $t20_21 = s.addr($t17_18);
4102 $t21_22 = $t20_21.$get();
4103 $t22_23 = ($t21_22 === 32);
4104 if ($t22_23) {
4105 $block = 6; break;
4106 }
4107 else {
4108 $block = 10; break;
4109 }
4110 break;
4111 }
4112 case 10: {
4113 $t23_24 = s.addr($t17_18);
4114 $t24_25 = $t23_24.$get();
4115 $t25_26 = ($t24_25 === 58);
4116 if ($t25_26) {
4117 $block = 6; break;
4118 }
4119 else {
4120 $block = 7; break;
4121 }
4122 break;
4123 }
4124 case 11: {
4125 $t26_27 = skipval(s, $t17_18);
4126 $t27_28 = ($t26_27 > 0);
4127 if ($t27_28) {
4128 $block = 12; break;
4129 }
4130 else {
4131 $block = 5; break;
4132 }
4133 break;
4134 }
4135 case 12: {
4136 $t28_29 = $rt.builtin.stringSlice(s, $t17_18, $t26_27);
4137 return $t28_29;
4138 break;
4139 }
4140 }
4141 }
4142 }
4143
4144 export function newMW(s) {
4145 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;
4146 let $block = 0;
4147 while (true) {
4148 switch ($block) {
4149 case 0: {
4150 $t0_1 = { $value: { s: '', i: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
4151 $t1_2 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
4152 $t1_2.$set(s);
4153 $block = 3; break;
4154 break;
4155 }
4156 case 1: {
4157 $t2_3 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4158 $t3_4 = $t2_3.$get();
4159 $t4_5 = ($t3_4 + 1);
4160 $t5_6 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4161 $t5_6.$set($t4_5);
4162 $block = 3; break;
4163 break;
4164 }
4165 case 2: {
4166 $t6_7 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4167 $t7_8 = $t6_7.$get();
4168 $t8_9 = $rt.builtin.len(s);
4169 $t9_10 = ($t7_8 < $t8_9);
4170 if ($t9_10) {
4171 $block = 5; break;
4172 }
4173 else {
4174 $block = 6; break;
4175 }
4176 break;
4177 }
4178 case 3: {
4179 $t10_11 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4180 $t11_12 = $t10_11.$get();
4181 $t12_13 = $rt.builtin.len(s);
4182 $t13_14 = ($t11_12 < $t12_13);
4183 if ($t13_14) {
4184 $block = 4; break;
4185 }
4186 else {
4187 $block = 2; break;
4188 }
4189 break;
4190 }
4191 case 4: {
4192 $t14_15 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4193 $t15_16 = $t14_15.$get();
4194 $t16_17 = s.addr($t15_16);
4195 $t17_18 = $t16_17.$get();
4196 $t18_19 = ($t17_18 !== 91);
4197 if ($t18_19) {
4198 $block = 1; break;
4199 }
4200 else {
4201 $block = 2; break;
4202 }
4203 break;
4204 }
4205 case 5: {
4206 $t19_20 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4207 $t20_21 = $t19_20.$get();
4208 $t21_22 = ($t20_21 + 1);
4209 $t22_23 = { $get() { return $t0_1.$get().i; }, $set(v) { const obj = $t0_1.$get(); obj.i = v; $t0_1.$set(obj); } };
4210 $t22_23.$set($t21_22);
4211 $block = 6; break;
4212 break;
4213 }
4214 case 6: {
4215 $t23_24 = $t0_1.$get();
4216 return $t23_24;
4217 break;
4218 }
4219 }
4220 }
4221 }
4222
4223 export function skipval(s, i) {
4224 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;
4225 let $block = 0;
4226 while (true) {
4227 switch ($block) {
4228 case 0: {
4229 $t0_1 = $rt.builtin.len(s);
4230 $t1_2 = (i >= $t0_1);
4231 if ($t1_2) {
4232 $block = 1; break;
4233 }
4234 else {
4235 $block = 2; break;
4236 }
4237 break;
4238 }
4239 case 1: {
4240 return -1;
4241 break;
4242 }
4243 case 2: {
4244 $t2_3 = s.addr(i);
4245 $t3_4 = $t2_3.$get();
4246 $t4_5 = ($t3_4 === 34);
4247 if ($t4_5) {
4248 $block = 3; break;
4249 }
4250 else {
4251 $block = 5; break;
4252 }
4253 break;
4254 }
4255 case 3: {
4256 $t5_6 = (i + 1);
4257 $t11_12 = $t5_6;
4258 $block = 8; break;
4259 break;
4260 }
4261 case 4: {
4262 $t6_7 = skipBrack(s, i, 123, 125);
4263 return $t6_7;
4264 break;
4265 }
4266 case 5: {
4267 $t7_8 = ($t3_4 === 123);
4268 if ($t7_8) {
4269 $block = 4; break;
4270 }
4271 else {
4272 $block = 14; break;
4273 }
4274 break;
4275 }
4276 case 6: {
4277 $t8_9 = s.addr($t11_12);
4278 $t9_10 = $t8_9.$get();
4279 $t10_11 = ($t9_10 === 92);
4280 if ($t10_11) {
4281 $block = 9; break;
4282 }
4283 else {
4284 $block = 10; break;
4285 }
4286 break;
4287 }
4288 case 7: {
4289 return -1;
4290 break;
4291 }
4292 case 8: {
4293 $t12_13 = $rt.builtin.len(s);
4294 $t13_14 = ($t11_12 < $t12_13);
4295 if ($t13_14) {
4296 $block = 6; break;
4297 }
4298 else {
4299 $block = 7; break;
4300 }
4301 break;
4302 }
4303 case 9: {
4304 $t14_15 = ($t11_12 + 2);
4305 $t11_12 = $t14_15;
4306 $block = 8; break;
4307 break;
4308 }
4309 case 10: {
4310 $t15_16 = s.addr($t11_12);
4311 $t16_17 = $t15_16.$get();
4312 $t17_18 = ($t16_17 === 34);
4313 if ($t17_18) {
4314 $block = 11; break;
4315 }
4316 else {
4317 $block = 12; break;
4318 }
4319 break;
4320 }
4321 case 11: {
4322 $t18_19 = ($t11_12 + 1);
4323 return $t18_19;
4324 break;
4325 }
4326 case 12: {
4327 $t19_20 = ($t11_12 + 1);
4328 $t11_12 = $t19_20;
4329 $block = 8; break;
4330 break;
4331 }
4332 case 13: {
4333 $t20_21 = skipBrack(s, i, 91, 93);
4334 return $t20_21;
4335 break;
4336 }
4337 case 14: {
4338 $t21_22 = ($t3_4 === 91);
4339 if ($t21_22) {
4340 $block = 13; break;
4341 }
4342 else {
4343 $block = 16; break;
4344 }
4345 break;
4346 }
4347 case 15: {
4348 $t22_23 = (i + 4);
4349 $t23_24 = $rt.builtin.len(s);
4350 $t24_25 = ($t22_23 <= $t23_24);
4351 if ($t24_25) {
4352 $block = 19; break;
4353 }
4354 else {
4355 $block = 20; break;
4356 }
4357 break;
4358 }
4359 case 16: {
4360 $t25_26 = ($t3_4 === 116);
4361 if ($t25_26) {
4362 $block = 15; break;
4363 }
4364 else {
4365 $block = 18; break;
4366 }
4367 break;
4368 }
4369 case 17: {
4370 $t26_27 = (i + 5);
4371 $t27_28 = $rt.builtin.len(s);
4372 $t28_29 = ($t26_27 <= $t27_28);
4373 if ($t28_29) {
4374 $block = 23; break;
4375 }
4376 else {
4377 $block = 24; break;
4378 }
4379 break;
4380 }
4381 case 18: {
4382 $t29_30 = ($t3_4 === 102);
4383 if ($t29_30) {
4384 $block = 17; break;
4385 }
4386 else {
4387 $block = 22; break;
4388 }
4389 break;
4390 }
4391 case 19: {
4392 $t30_31 = (i + 4);
4393 return $t30_31;
4394 break;
4395 }
4396 case 20: {
4397 return -1;
4398 break;
4399 }
4400 case 21: {
4401 $t31_32 = (i + 4);
4402 $t32_33 = $rt.builtin.len(s);
4403 $t33_34 = ($t31_32 <= $t32_33);
4404 if ($t33_34) {
4405 $block = 25; break;
4406 }
4407 else {
4408 $block = 26; break;
4409 }
4410 break;
4411 }
4412 case 22: {
4413 $t34_35 = ($t3_4 === 110);
4414 if ($t34_35) {
4415 $block = 21; break;
4416 }
4417 else {
4418 $t38_39 = i;
4419 $block = 29; break;
4420 }
4421 break;
4422 }
4423 case 23: {
4424 $t35_36 = (i + 5);
4425 return $t35_36;
4426 break;
4427 }
4428 case 24: {
4429 return -1;
4430 break;
4431 }
4432 case 25: {
4433 $t36_37 = (i + 4);
4434 return $t36_37;
4435 break;
4436 }
4437 case 26: {
4438 return -1;
4439 break;
4440 }
4441 case 27: {
4442 $t37_38 = ($t38_39 + 1);
4443 $t38_39 = $t37_38;
4444 $block = 29; break;
4445 break;
4446 }
4447 case 28: {
4448 return $t38_39;
4449 break;
4450 }
4451 case 29: {
4452 $t39_40 = $rt.builtin.len(s);
4453 $t40_41 = ($t38_39 < $t39_40);
4454 if ($t40_41) {
4455 $block = 34; break;
4456 }
4457 else {
4458 $block = 28; break;
4459 }
4460 break;
4461 }
4462 case 30: {
4463 $t41_42 = s.addr($t38_39);
4464 $t42_43 = $t41_42.$get();
4465 $t43_44 = ($t42_43 !== 10);
4466 if ($t43_44) {
4467 $block = 27; break;
4468 }
4469 else {
4470 $block = 28; break;
4471 }
4472 break;
4473 }
4474 case 31: {
4475 $t44_45 = s.addr($t38_39);
4476 $t45_46 = $t44_45.$get();
4477 $t46_47 = ($t45_46 !== 32);
4478 if ($t46_47) {
4479 $block = 30; break;
4480 }
4481 else {
4482 $block = 28; break;
4483 }
4484 break;
4485 }
4486 case 32: {
4487 $t47_48 = s.addr($t38_39);
4488 $t48_49 = $t47_48.$get();
4489 $t49_50 = ($t48_49 !== 93);
4490 if ($t49_50) {
4491 $block = 31; break;
4492 }
4493 else {
4494 $block = 28; break;
4495 }
4496 break;
4497 }
4498 case 33: {
4499 $t50_51 = s.addr($t38_39);
4500 $t51_52 = $t50_51.$get();
4501 $t52_53 = ($t51_52 !== 125);
4502 if ($t52_53) {
4503 $block = 32; break;
4504 }
4505 else {
4506 $block = 28; break;
4507 }
4508 break;
4509 }
4510 case 34: {
4511 $t53_54 = s.addr($t38_39);
4512 $t54_55 = $t53_54.$get();
4513 $t55_56 = ($t54_55 !== 44);
4514 if ($t55_56) {
4515 $block = 33; break;
4516 }
4517 else {
4518 $block = 28; break;
4519 }
4520 break;
4521 }
4522 }
4523 }
4524 }
4525
4526 export function skipBrack(s, i, open, close) {
4527 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;
4528 let $block = 0;
4529 while (true) {
4530 switch ($block) {
4531 case 0: {
4532 $t0_1 = (i + 1);
4533 $t2_3 = $t0_1;
4534 $t3_4 = 1;
4535 $t4_5 = false;
4536 $block = 3; break;
4537 break;
4538 }
4539 case 1: {
4540 if ($t4_5) {
4541 $block = 5; break;
4542 }
4543 else {
4544 $block = 7; break;
4545 }
4546 break;
4547 }
4548 case 2: {
4549 $t1_2 = ($t3_4 !== 0);
4550 if ($t1_2) {
4551 $block = 16; break;
4552 }
4553 else {
4554 $block = 17; break;
4555 }
4556 break;
4557 }
4558 case 3: {
4559 $t5_6 = $rt.builtin.len(s);
4560 $t6_7 = ($t2_3 < $t5_6);
4561 if ($t6_7) {
4562 $block = 4; break;
4563 }
4564 else {
4565 $block = 2; break;
4566 }
4567 break;
4568 }
4569 case 4: {
4570 $t7_8 = ($t3_4 > 0);
4571 if ($t7_8) {
4572 $block = 1; break;
4573 }
4574 else {
4575 $block = 2; break;
4576 }
4577 break;
4578 }
4579 case 5: {
4580 $t8_9 = s.addr($t2_3);
4581 $t9_10 = $t8_9.$get();
4582 $t10_11 = ($t9_10 === 92);
4583 if ($t10_11) {
4584 $block = 8; break;
4585 }
4586 else {
4587 $block = 9; break;
4588 }
4589 break;
4590 }
4591 case 6: {
4592 $t14_15 = ($t11_12 + 1);
4593 $t2_3 = $t14_15;
4594 $t3_4 = $t12_13;
4595 $t4_5 = $t13_14;
4596 $block = 3; break;
4597 break;
4598 }
4599 case 7: {
4600 $t15_16 = s.addr($t2_3);
4601 $t16_17 = $t15_16.$get();
4602 $t17_18 = ($t16_17 === 34);
4603 if ($t17_18) {
4604 $block = 11; break;
4605 }
4606 else {
4607 $block = 13; break;
4608 }
4609 break;
4610 }
4611 case 8: {
4612 $t18_19 = ($t2_3 + 1);
4613 $t11_12 = $t18_19;
4614 $t12_13 = $t3_4;
4615 $t13_14 = $t4_5;
4616 $block = 6; break;
4617 break;
4618 }
4619 case 9: {
4620 $t19_20 = s.addr($t2_3);
4621 $t20_21 = $t19_20.$get();
4622 $t21_22 = ($t20_21 === 34);
4623 if ($t21_22) {
4624 $block = 10; break;
4625 }
4626 else {
4627 $t11_12 = $t2_3;
4628 $t12_13 = $t3_4;
4629 $t13_14 = $t4_5;
4630 $block = 6; break;
4631 }
4632 break;
4633 }
4634 case 10: {
4635 $t11_12 = $t2_3;
4636 $t12_13 = $t3_4;
4637 $t13_14 = false;
4638 $block = 6; break;
4639 break;
4640 }
4641 case 11: {
4642 $t11_12 = $t2_3;
4643 $t12_13 = $t3_4;
4644 $t13_14 = true;
4645 $block = 6; break;
4646 break;
4647 }
4648 case 12: {
4649 $t22_23 = ($t3_4 + 1);
4650 $t11_12 = $t2_3;
4651 $t12_13 = $t22_23;
4652 $t13_14 = $t4_5;
4653 $block = 6; break;
4654 break;
4655 }
4656 case 13: {
4657 $t23_24 = ($t16_17 === open);
4658 if ($t23_24) {
4659 $block = 12; break;
4660 }
4661 else {
4662 $block = 15; break;
4663 }
4664 break;
4665 }
4666 case 14: {
4667 $t24_25 = ($t3_4 - 1);
4668 $t11_12 = $t2_3;
4669 $t12_13 = $t24_25;
4670 $t13_14 = $t4_5;
4671 $block = 6; break;
4672 break;
4673 }
4674 case 15: {
4675 $t25_26 = ($t16_17 === close);
4676 if ($t25_26) {
4677 $block = 14; break;
4678 }
4679 else {
4680 $t11_12 = $t2_3;
4681 $t12_13 = $t3_4;
4682 $t13_14 = $t4_5;
4683 $block = 6; break;
4684 }
4685 break;
4686 }
4687 case 16: {
4688 return -1;
4689 break;
4690 }
4691 case 17: {
4692 return $t2_3;
4693 break;
4694 }
4695 }
4696 }
4697 }
4698
4699 export function DMRecord$ToJSON(r) {
4700 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;
4701 $t0_1 = { $get() { return r.$get().ID; }, $set(v) { const obj = r.$get(); obj.ID = v; r.$set(obj); } };
4702 $t1_2 = $t0_1.$get();
4703 $t2_3 = jstr($t1_2);
4704 $t3_4 = ('{"id":' + $t2_3);
4705 $t4_5 = ($t3_4 + ',"peer":');
4706 $t5_6 = { $get() { return r.$get().Peer; }, $set(v) { const obj = r.$get(); obj.Peer = v; r.$set(obj); } };
4707 $t6_7 = $t5_6.$get();
4708 $t7_8 = jstr($t6_7);
4709 $t8_9 = ($t4_5 + $t7_8);
4710 $t9_10 = ($t8_9 + ',"from":');
4711 $t10_11 = { $get() { return r.$get().From; }, $set(v) { const obj = r.$get(); obj.From = v; r.$set(obj); } };
4712 $t11_12 = $t10_11.$get();
4713 $t12_13 = jstr($t11_12);
4714 $t13_14 = ($t9_10 + $t12_13);
4715 $t14_15 = ($t13_14 + ',"content":');
4716 $t15_16 = { $get() { return r.$get().Content; }, $set(v) { const obj = r.$get(); obj.Content = v; r.$set(obj); } };
4717 $t16_17 = $t15_16.$get();
4718 $t17_18 = jstr($t16_17);
4719 $t18_19 = ($t14_15 + $t17_18);
4720 $t19_20 = ($t18_19 + ',"created_at":');
4721 $t20_21 = { $get() { return r.$get().CreatedAt; }, $set(v) { const obj = r.$get(); obj.CreatedAt = v; r.$set(obj); } };
4722 $t21_22 = $t20_21.$get();
4723 $t22_23 = smesh$lol$web$common$helpers.Itoa($t21_22);
4724 $t23_24 = ($t19_20 + $t22_23);
4725 $t24_25 = ($t23_24 + ',"protocol":');
4726 $t25_26 = { $get() { return r.$get().Protocol; }, $set(v) { const obj = r.$get(); obj.Protocol = v; r.$set(obj); } };
4727 $t26_27 = $t25_26.$get();
4728 $t27_28 = jstr($t26_27);
4729 $t28_29 = ($t24_25 + $t27_28);
4730 $t29_30 = ($t28_29 + ',"eventId":');
4731 $t30_31 = { $get() { return r.$get().EventID; }, $set(v) { const obj = r.$get(); obj.EventID = v; r.$set(obj); } };
4732 $t31_32 = $t30_31.$get();
4733 $t32_33 = jstr($t31_32);
4734 $t33_34 = ($t29_30 + $t32_33);
4735 $t34_35 = ($t33_34 + '}');
4736 return $t34_35;
4737 }
4738
4739 $rt.types.getType('./web/sw/.DMRecord')?.methods?.set('ToJSON', DMRecord$ToJSON);
4740 export function mw$num(w) {
4741 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;
4742 let $block = 0;
4743 while (true) {
4744 switch ($block) {
4745 case 0: {
4746 $t0_1 = mw$sep(w);
4747 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4748 $t2_3 = $t1_2.$get();
4749 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4750 $t4_5 = $t3_4.$get();
4751 $t5_6 = $rt.builtin.len($t4_5);
4752 $t6_7 = ($t2_3 < $t5_6);
4753 if ($t6_7) {
4754 $block = 3; break;
4755 }
4756 else {
4757 $t11_12 = false;
4758 $block = 2; break;
4759 }
4760 break;
4761 }
4762 case 1: {
4763 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4764 $t8_9 = $t7_8.$get();
4765 $t9_10 = ($t8_9 + 1);
4766 $t10_11 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4767 $t10_11.$set($t9_10);
4768 $t11_12 = true;
4769 $block = 2; break;
4770 break;
4771 }
4772 case 2: {
4773 $t33_34 = 0n;
4774 $block = 6; break;
4775 break;
4776 }
4777 case 3: {
4778 $t12_13 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4779 $t13_14 = $t12_13.$get();
4780 $t14_15 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4781 $t15_16 = $t14_15.$get();
4782 $t16_17 = $t13_14.addr($t15_16);
4783 $t17_18 = $t16_17.$get();
4784 $t18_19 = ($t17_18 === 45);
4785 if ($t18_19) {
4786 $block = 1; break;
4787 }
4788 else {
4789 $t11_12 = false;
4790 $block = 2; break;
4791 }
4792 break;
4793 }
4794 case 4: {
4795 $t19_20 = BigInt.asIntN(64, $t33_34 * 10n);
4796 $t20_21 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4797 $t21_22 = $t20_21.$get();
4798 $t22_23 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4799 $t23_24 = $t22_23.$get();
4800 $t24_25 = $t21_22.addr($t23_24);
4801 $t25_26 = $t24_25.$get();
4802 $t26_27 = (($t25_26 - 48) & 0xFF);
4803 $t27_28 = BigInt($t26_27);
4804 $t28_29 = BigInt.asIntN(64, $t19_20 + $t27_28);
4805 $t29_30 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4806 $t30_31 = $t29_30.$get();
4807 $t31_32 = ($t30_31 + 1);
4808 $t32_33 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4809 $t32_33.$set($t31_32);
4810 $t33_34 = $t28_29;
4811 $block = 6; break;
4812 break;
4813 }
4814 case 5: {
4815 if ($t11_12) {
4816 $block = 9; break;
4817 }
4818 else {
4819 $t55_56 = $t33_34;
4820 $block = 10; break;
4821 }
4822 break;
4823 }
4824 case 6: {
4825 $t34_35 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4826 $t35_36 = $t34_35.$get();
4827 $t36_37 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4828 $t37_38 = $t36_37.$get();
4829 $t38_39 = $rt.builtin.len($t37_38);
4830 $t39_40 = ($t35_36 < $t38_39);
4831 if ($t39_40) {
4832 $block = 8; break;
4833 }
4834 else {
4835 $block = 5; break;
4836 }
4837 break;
4838 }
4839 case 7: {
4840 $t40_41 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4841 $t41_42 = $t40_41.$get();
4842 $t42_43 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4843 $t43_44 = $t42_43.$get();
4844 $t44_45 = $t41_42.addr($t43_44);
4845 $t45_46 = $t44_45.$get();
4846 $t46_47 = ($t45_46 <= 57);
4847 if ($t46_47) {
4848 $block = 4; break;
4849 }
4850 else {
4851 $block = 5; break;
4852 }
4853 break;
4854 }
4855 case 8: {
4856 $t47_48 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4857 $t48_49 = $t47_48.$get();
4858 $t49_50 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4859 $t50_51 = $t49_50.$get();
4860 $t51_52 = $t48_49.addr($t50_51);
4861 $t52_53 = $t51_52.$get();
4862 $t53_54 = ($t52_53 >= 48);
4863 if ($t53_54) {
4864 $block = 7; break;
4865 }
4866 else {
4867 $block = 5; break;
4868 }
4869 break;
4870 }
4871 case 9: {
4872 $t54_55 = -$t33_34;
4873 $t55_56 = $t54_55;
4874 $block = 10; break;
4875 break;
4876 }
4877 case 10: {
4878 return $t55_56;
4879 break;
4880 }
4881 }
4882 }
4883 }
4884
4885 $rt.types.getType('./web/sw/.mw')?.methods?.set('num', mw$num);
4886 export function mw$raw(w) {
4887 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;
4888 let $block = 0;
4889 while (true) {
4890 switch ($block) {
4891 case 0: {
4892 $t0_1 = mw$sep(w);
4893 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4894 $t2_3 = $t1_2.$get();
4895 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4896 $t4_5 = $t3_4.$get();
4897 $t5_6 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4898 $t6_7 = $t5_6.$get();
4899 $t7_8 = skipval($t4_5, $t6_7);
4900 $t8_9 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4901 $t8_9.$set($t7_8);
4902 $t9_10 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4903 $t10_11 = $t9_10.$get();
4904 $t11_12 = ($t10_11 < 0);
4905 if ($t11_12) {
4906 $block = 1; break;
4907 }
4908 else {
4909 $block = 2; break;
4910 }
4911 break;
4912 }
4913 case 1: {
4914 $t12_13 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4915 $t13_14 = $t12_13.$get();
4916 $t14_15 = $rt.builtin.len($t13_14);
4917 $t15_16 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4918 $t15_16.$set($t14_15);
4919 return '';
4920 break;
4921 }
4922 case 2: {
4923 $t16_17 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4924 $t17_18 = $t16_17.$get();
4925 $t18_19 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4926 $t19_20 = $t18_19.$get();
4927 $t20_21 = $rt.builtin.stringSlice($t17_18, $t2_3, $t19_20);
4928 return $t20_21;
4929 break;
4930 }
4931 }
4932 }
4933 }
4934
4935 $rt.types.getType('./web/sw/.mw')?.methods?.set('raw', mw$raw);
4936 export function mw$sep(w) {
4937 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;
4938 let $block = 0;
4939 while (true) {
4940 switch ($block) {
4941 case 0: {
4942 $block = 3; break;
4943 break;
4944 }
4945 case 1: {
4946 $t0_1 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4947 $t1_2 = $t0_1.$get();
4948 $t2_3 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4949 $t3_4 = $t2_3.$get();
4950 $t4_5 = $t1_2.addr($t3_4);
4951 $t5_6 = $t4_5.$get();
4952 $t6_7 = ($t5_6 !== 32);
4953 if ($t6_7) {
4954 $block = 8; break;
4955 }
4956 else {
4957 $block = 4; break;
4958 }
4959 break;
4960 }
4961 case 2: {
4962 return;
4963 break;
4964 }
4965 case 3: {
4966 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4967 $t8_9 = $t7_8.$get();
4968 $t9_10 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
4969 $t10_11 = $t9_10.$get();
4970 $t11_12 = $rt.builtin.len($t10_11);
4971 $t12_13 = ($t8_9 < $t11_12);
4972 if ($t12_13) {
4973 $block = 1; break;
4974 }
4975 else {
4976 $block = 2; break;
4977 }
4978 break;
4979 }
4980 case 4: {
4981 $t13_14 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4982 $t14_15 = $t13_14.$get();
4983 $t15_16 = ($t14_15 + 1);
4984 $t16_17 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
4985 $t16_17.$set($t15_16);
4986 $block = 3; break;
4987 break;
4988 }
4989 case 5: {
4990 $t17_18 = ($t5_6 !== 44);
4991 if ($t17_18) {
4992 $block = 2; break;
4993 }
4994 else {
4995 $block = 4; break;
4996 }
4997 break;
4998 }
4999 case 6: {
5000 $t18_19 = ($t5_6 !== 9);
5001 if ($t18_19) {
5002 $block = 5; break;
5003 }
5004 else {
5005 $block = 4; break;
5006 }
5007 break;
5008 }
5009 case 7: {
5010 $t19_20 = ($t5_6 !== 13);
5011 if ($t19_20) {
5012 $block = 6; break;
5013 }
5014 else {
5015 $block = 4; break;
5016 }
5017 break;
5018 }
5019 case 8: {
5020 $t20_21 = ($t5_6 !== 10);
5021 if ($t20_21) {
5022 $block = 7; break;
5023 }
5024 else {
5025 $block = 4; break;
5026 }
5027 break;
5028 }
5029 }
5030 }
5031 }
5032
5033 $rt.types.getType('./web/sw/.mw')?.methods?.set('sep', mw$sep);
5034 export function mw$str(w) {
5035 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;
5036 let $block = 0;
5037 while (true) {
5038 switch ($block) {
5039 case 0: {
5040 $t0_1 = mw$sep(w);
5041 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5042 $t2_3 = $t1_2.$get();
5043 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5044 $t4_5 = $t3_4.$get();
5045 $t5_6 = $rt.builtin.len($t4_5);
5046 $t6_7 = ($t2_3 >= $t5_6);
5047 if ($t6_7) {
5048 $block = 1; break;
5049 }
5050 else {
5051 $block = 3; break;
5052 }
5053 break;
5054 }
5055 case 1: {
5056 return '';
5057 break;
5058 }
5059 case 2: {
5060 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5061 $t8_9 = $t7_8.$get();
5062 $t9_10 = ($t8_9 + 1);
5063 $t10_11 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5064 $t10_11.$set($t9_10);
5065 $t11_12 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5066 $t12_13 = $t11_12.$get();
5067 $block = 6; break;
5068 break;
5069 }
5070 case 3: {
5071 $t13_14 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5072 $t14_15 = $t13_14.$get();
5073 $t15_16 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5074 $t16_17 = $t15_16.$get();
5075 $t17_18 = $t14_15.addr($t16_17);
5076 $t18_19 = $t17_18.$get();
5077 $t19_20 = ($t18_19 !== 34);
5078 if ($t19_20) {
5079 $block = 1; break;
5080 }
5081 else {
5082 $block = 2; break;
5083 }
5084 break;
5085 }
5086 case 4: {
5087 $t20_21 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5088 $t21_22 = $t20_21.$get();
5089 $t22_23 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5090 $t23_24 = $t22_23.$get();
5091 $t24_25 = $t21_22.addr($t23_24);
5092 $t25_26 = $t24_25.$get();
5093 $t26_27 = ($t25_26 === 92);
5094 if ($t26_27) {
5095 $block = 8; break;
5096 }
5097 else {
5098 $block = 9; break;
5099 }
5100 break;
5101 }
5102 case 5: {
5103 $t27_28 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5104 $t28_29 = $t27_28.$get();
5105 $t29_30 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5106 $t30_31 = $t29_30.$get();
5107 $t31_32 = $rt.builtin.len($t30_31);
5108 $t32_33 = ($t28_29 >= $t31_32);
5109 if ($t32_33) {
5110 $block = 10; break;
5111 }
5112 else {
5113 $block = 11; break;
5114 }
5115 break;
5116 }
5117 case 6: {
5118 $t33_34 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5119 $t34_35 = $t33_34.$get();
5120 $t35_36 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5121 $t36_37 = $t35_36.$get();
5122 $t37_38 = $rt.builtin.len($t36_37);
5123 $t38_39 = ($t34_35 < $t37_38);
5124 if ($t38_39) {
5125 $block = 7; break;
5126 }
5127 else {
5128 $block = 5; break;
5129 }
5130 break;
5131 }
5132 case 7: {
5133 $t39_40 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5134 $t40_41 = $t39_40.$get();
5135 $t41_42 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5136 $t42_43 = $t41_42.$get();
5137 $t43_44 = $t40_41.addr($t42_43);
5138 $t44_45 = $t43_44.$get();
5139 $t45_46 = ($t44_45 !== 34);
5140 if ($t45_46) {
5141 $block = 4; break;
5142 }
5143 else {
5144 $block = 5; break;
5145 }
5146 break;
5147 }
5148 case 8: {
5149 $t46_47 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5150 $t47_48 = $t46_47.$get();
5151 $t48_49 = ($t47_48 + 1);
5152 $t49_50 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5153 $t49_50.$set($t48_49);
5154 $block = 9; break;
5155 break;
5156 }
5157 case 9: {
5158 $t50_51 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5159 $t51_52 = $t50_51.$get();
5160 $t52_53 = ($t51_52 + 1);
5161 $t53_54 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5162 $t53_54.$set($t52_53);
5163 $block = 6; break;
5164 break;
5165 }
5166 case 10: {
5167 return '';
5168 break;
5169 }
5170 case 11: {
5171 $t54_55 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5172 $t55_56 = $t54_55.$get();
5173 $t56_57 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5174 $t57_58 = $t56_57.$get();
5175 $t58_59 = $rt.builtin.stringSlice($t55_56, $t12_13, $t57_58);
5176 $t59_60 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5177 $t60_61 = $t59_60.$get();
5178 $t61_62 = ($t60_61 + 1);
5179 $t62_63 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5180 $t62_63.$set($t61_62);
5181 return $t58_59;
5182 break;
5183 }
5184 }
5185 }
5186 }
5187
5188 $rt.types.getType('./web/sw/.mw')?.methods?.set('str', mw$str);
5189 export function mw$strs(w) {
5190 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, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97;
5191 let $block = 0;
5192 while (true) {
5193 switch ($block) {
5194 case 0: {
5195 $t0_1 = mw$sep(w);
5196 $t1_2 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5197 $t2_3 = $t1_2.$get();
5198 $t3_4 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5199 $t4_5 = $t3_4.$get();
5200 $t5_6 = $rt.builtin.len($t4_5);
5201 $t6_7 = ($t2_3 >= $t5_6);
5202 if ($t6_7) {
5203 $block = 1; break;
5204 }
5205 else {
5206 $block = 3; break;
5207 }
5208 break;
5209 }
5210 case 1: {
5211 return null;
5212 break;
5213 }
5214 case 2: {
5215 $t7_8 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5216 $t8_9 = $t7_8.$get();
5217 $t9_10 = ($t8_9 + 1);
5218 $t10_11 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5219 $t10_11.$set($t9_10);
5220 $t18_19 = null;
5221 $block = 4; break;
5222 break;
5223 }
5224 case 3: {
5225 $t11_12 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5226 $t12_13 = $t11_12.$get();
5227 $t13_14 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5228 $t14_15 = $t13_14.$get();
5229 $t15_16 = $t12_13.addr($t14_15);
5230 $t16_17 = $t15_16.$get();
5231 $t17_18 = ($t16_17 !== 91);
5232 if ($t17_18) {
5233 $block = 1; break;
5234 }
5235 else {
5236 $block = 2; break;
5237 }
5238 break;
5239 }
5240 case 4: {
5241 $t19_20 = mw$sep(w);
5242 $t20_21 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5243 $t21_22 = $t20_21.$get();
5244 $t22_23 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5245 $t23_24 = $t22_23.$get();
5246 $t24_25 = $rt.builtin.len($t23_24);
5247 $t25_26 = ($t21_22 >= $t24_25);
5248 if ($t25_26) {
5249 $block = 5; break;
5250 }
5251 else {
5252 $block = 6; break;
5253 }
5254 break;
5255 }
5256 case 5: {
5257 return $t18_19;
5258 break;
5259 }
5260 case 6: {
5261 $t26_27 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5262 $t27_28 = $t26_27.$get();
5263 $t28_29 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5264 $t29_30 = $t28_29.$get();
5265 $t30_31 = $t27_28.addr($t29_30);
5266 $t31_32 = $t30_31.$get();
5267 $t32_33 = ($t31_32 === 93);
5268 if ($t32_33) {
5269 $block = 7; break;
5270 }
5271 else {
5272 $block = 8; break;
5273 }
5274 break;
5275 }
5276 case 7: {
5277 $t33_34 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5278 $t34_35 = $t33_34.$get();
5279 $t35_36 = ($t34_35 + 1);
5280 $t36_37 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5281 $t36_37.$set($t35_36);
5282 return $t18_19;
5283 break;
5284 }
5285 case 8: {
5286 $t37_38 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5287 $t38_39 = $t37_38.$get();
5288 $t39_40 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5289 $t40_41 = $t39_40.$get();
5290 $t41_42 = $t38_39.addr($t40_41);
5291 $t42_43 = $t41_42.$get();
5292 $t43_44 = ($t42_43 !== 34);
5293 if ($t43_44) {
5294 $block = 9; break;
5295 }
5296 else {
5297 $block = 10; break;
5298 }
5299 break;
5300 }
5301 case 9: {
5302 return $t18_19;
5303 break;
5304 }
5305 case 10: {
5306 $t44_45 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5307 $t45_46 = $t44_45.$get();
5308 $t46_47 = ($t45_46 + 1);
5309 $t47_48 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5310 $t47_48.$set($t46_47);
5311 $t48_49 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5312 $t49_50 = $t48_49.$get();
5313 $block = 13; break;
5314 break;
5315 }
5316 case 11: {
5317 $t50_51 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5318 $t51_52 = $t50_51.$get();
5319 $t52_53 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5320 $t53_54 = $t52_53.$get();
5321 $t54_55 = $t51_52.addr($t53_54);
5322 $t55_56 = $t54_55.$get();
5323 $t56_57 = ($t55_56 === 92);
5324 if ($t56_57) {
5325 $block = 15; break;
5326 }
5327 else {
5328 $block = 16; break;
5329 }
5330 break;
5331 }
5332 case 12: {
5333 $t57_58 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5334 $t58_59 = $t57_58.$get();
5335 $t59_60 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5336 $t60_61 = $t59_60.$get();
5337 $t61_62 = $rt.builtin.len($t60_61);
5338 $t62_63 = ($t58_59 < $t61_62);
5339 if ($t62_63) {
5340 $block = 17; break;
5341 }
5342 else {
5343 $t18_19 = $t18_19;
5344 $block = 4; break;
5345 }
5346 break;
5347 }
5348 case 13: {
5349 $t63_64 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5350 $t64_65 = $t63_64.$get();
5351 $t65_66 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5352 $t66_67 = $t65_66.$get();
5353 $t67_68 = $rt.builtin.len($t66_67);
5354 $t68_69 = ($t64_65 < $t67_68);
5355 if ($t68_69) {
5356 $block = 14; break;
5357 }
5358 else {
5359 $block = 12; break;
5360 }
5361 break;
5362 }
5363 case 14: {
5364 $t69_70 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5365 $t70_71 = $t69_70.$get();
5366 $t71_72 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5367 $t72_73 = $t71_72.$get();
5368 $t73_74 = $t70_71.addr($t72_73);
5369 $t74_75 = $t73_74.$get();
5370 $t75_76 = ($t74_75 !== 34);
5371 if ($t75_76) {
5372 $block = 11; break;
5373 }
5374 else {
5375 $block = 12; break;
5376 }
5377 break;
5378 }
5379 case 15: {
5380 $t76_77 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5381 $t77_78 = $t76_77.$get();
5382 $t78_79 = ($t77_78 + 1);
5383 $t79_80 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5384 $t79_80.$set($t78_79);
5385 $block = 16; break;
5386 break;
5387 }
5388 case 16: {
5389 $t80_81 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5390 $t81_82 = $t80_81.$get();
5391 $t82_83 = ($t81_82 + 1);
5392 $t83_84 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5393 $t83_84.$set($t82_83);
5394 $block = 13; break;
5395 break;
5396 }
5397 case 17: {
5398 $t84_85 = { $get() { return w.$get().s; }, $set(v) { const obj = w.$get(); obj.s = v; w.$set(obj); } };
5399 $t85_86 = $t84_85.$get();
5400 $t86_87 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5401 $t87_88 = $t86_87.$get();
5402 $t88_89 = $rt.builtin.stringSlice($t85_86, $t49_50, $t87_88);
5403 $t89_90 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
5404 $t90_91 = $t89_90.$get().addr(0);
5405 $t90_91.$set($t88_89);
5406 $t91_92 = $rt.builtin.sliceSlice($t89_90.$get(), undefined, undefined, undefined);
5407 $t92_93 = $rt.builtin.appendSlice($t18_19, $t91_92);
5408 $t93_94 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5409 $t94_95 = $t93_94.$get();
5410 $t95_96 = ($t94_95 + 1);
5411 $t96_97 = { $get() { return w.$get().i; }, $set(v) { const obj = w.$get(); obj.i = v; w.$set(obj); } };
5412 $t96_97.$set($t95_96);
5413 $t18_19 = $t92_93;
5414 $block = 4; break;
5415 break;
5416 }
5417 }
5418 }
5419 }
5420
5421 $rt.types.getType('./web/sw/.mw')?.methods?.set('strs', mw$strs);
5422