common_relay.mjs raw

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