@derivesome/sockets 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.package.json.~undo-tree~ +4 -2
  2. package/dist/cjs/server/app.d.ts +4 -0
  3. package/dist/cjs/server/app.d.ts.map +1 -1
  4. package/dist/cjs/server/app.js +27 -7
  5. package/dist/cjs/server/app.js.map +1 -1
  6. package/dist/cjs/server/connection.d.ts +7 -0
  7. package/dist/cjs/server/connection.d.ts.map +1 -0
  8. package/dist/cjs/server/connection.js +13 -0
  9. package/dist/cjs/server/connection.js.map +1 -0
  10. package/dist/cjs/server/events.d.ts +8 -8
  11. package/dist/cjs/server/events.d.ts.map +1 -1
  12. package/dist/cjs/socket.d.ts +11 -2
  13. package/dist/cjs/socket.d.ts.map +1 -1
  14. package/dist/cjs/socket.js +40 -15
  15. package/dist/cjs/socket.js.map +1 -1
  16. package/dist/esm/server/app.d.ts +4 -0
  17. package/dist/esm/server/app.d.ts.map +1 -1
  18. package/dist/esm/server/app.js +27 -7
  19. package/dist/esm/server/app.js.map +1 -1
  20. package/dist/esm/server/connection.d.ts +7 -0
  21. package/dist/esm/server/connection.d.ts.map +1 -0
  22. package/dist/esm/server/connection.js +9 -0
  23. package/dist/esm/server/connection.js.map +1 -0
  24. package/dist/esm/server/events.d.ts +8 -8
  25. package/dist/esm/server/events.d.ts.map +1 -1
  26. package/dist/esm/socket.d.ts +11 -2
  27. package/dist/esm/socket.d.ts.map +1 -1
  28. package/dist/esm/socket.js +40 -15
  29. package/dist/esm/socket.js.map +1 -1
  30. package/package.json +2 -1
  31. package/package.json~ +2 -1
  32. package/src/.socket.ts.~undo-tree~ +107 -2
  33. package/src/server/.app.test.ts.~undo-tree~ +3 -2
  34. package/src/server/.app.ts.~undo-tree~ +20 -2
  35. package/src/server/.connection.ts.~undo-tree~ +11 -0
  36. package/src/server/.events.ts.~undo-tree~ +16 -2
  37. package/src/server/app.test.ts +1 -1
  38. package/src/server/app.ts +29 -7
  39. package/src/server/app.ts~ +29 -8
  40. package/src/server/connection.ts +14 -0
  41. package/src/server/connection.ts~ +0 -0
  42. package/src/server/events.ts +8 -8
  43. package/src/server/events.ts~ +9 -14
  44. package/src/socket.ts +50 -15
  45. package/src/socket.ts~ +50 -15
@@ -1,5 +1,5 @@
1
1
  (undo-tree-save-format-version . 1)
2
- "37bc1d36de73d7954807d737fe2456b2c487b362"
2
+ "0df584ca335ae26166b257d7404f99620181b3fe"
3
3
  [nil nil nil nil (27032 60014 827880 725000) 0 nil]
4
4
  ([nil nil ((nil rear-nonsticky nil 1051 . 1052) (nil fontified nil 1 . 1052) (1 . 1052) (t 27032 60008 440612 298000)) nil (27032 60014 827880 58000) 0 nil])
5
5
  ([nil nil ((26 . 33) (#("c" 0 1 (face font-lock-string-face fontified t)) . -26) (undo-tree-id0 . -1) (undo-tree-id1 . -1) (undo-tree-id2 . -1) (undo-tree-id3 . -1) (undo-tree-id4 . -1) (undo-tree-id5 . -1) (undo-tree-id6 . -1) (undo-tree-id7 . -1) (undo-tree-id8 . -1) (undo-tree-id9 . -1) (undo-tree-id10 . -1) (undo-tree-id11 . -1) (undo-tree-id12 . -1) (undo-tree-id13 . -1) (undo-tree-id14 . -1) (undo-tree-id15 . -1) (undo-tree-id16 . -1) (undo-tree-id17 . -1) (undo-tree-id18 . -1) (undo-tree-id19 . -1) (undo-tree-id20 . -1) (undo-tree-id21 . -1) (undo-tree-id22 . -1) (undo-tree-id23 . -1) (undo-tree-id24 . -1) (undo-tree-id25 . -1) (undo-tree-id26 . -1) (undo-tree-id27 . -1) (undo-tree-id28 . -1) (undo-tree-id29 . -1) (undo-tree-id30 . -1) (undo-tree-id31 . -1) (undo-tree-id32 . -1) (undo-tree-id33 . -1) (undo-tree-id34 . -1) (undo-tree-id35 . -1) (undo-tree-id36 . -1) (undo-tree-id37 . -1) (undo-tree-id38 . -1) (undo-tree-id39 . -1) (undo-tree-id40 . -1) (undo-tree-id41 . -1) (undo-tree-id42 . -1) (undo-tree-id43 . -1) (undo-tree-id44 . -1) (undo-tree-id45 . -1) (undo-tree-id46 . -1) (undo-tree-id47 . -1) (undo-tree-id48 . -1) (undo-tree-id49 . -1) (undo-tree-id50 . -1) (undo-tree-id51 . -1) (undo-tree-id52 . -1) (undo-tree-id53 . -1) (undo-tree-id54 . -1) (undo-tree-id55 . -1) (undo-tree-id56 . -1) (undo-tree-id57 . -1) (undo-tree-id58 . -1) (undo-tree-id59 . -1) (undo-tree-id60 . -1) (undo-tree-id61 . -1) (undo-tree-id62 . -1) (undo-tree-id63 . -1) (undo-tree-id64 . -1) (undo-tree-id65 . -1) (undo-tree-id66 . -1) (undo-tree-id67 . -1) (undo-tree-id68 . -1) (undo-tree-id69 . -1) (undo-tree-id70 . -1) (undo-tree-id71 . -1) (#("o" 0 1 (face font-lock-string-face fontified t)) . -27) (undo-tree-id72 . -1) (undo-tree-id73 . -1) (undo-tree-id74 . -1) (undo-tree-id75 . -1) (undo-tree-id76 . -1) (undo-tree-id77 . -1) (undo-tree-id78 . -1) (undo-tree-id79 . -1) (undo-tree-id80 . -1) (undo-tree-id81 . -1) (undo-tree-id82 . -1) (undo-tree-id83 . -1) (undo-tree-id84 . -1) (undo-tree-id85 . -1) (undo-tree-id86 . -1) (undo-tree-id87 . -1) (undo-tree-id88 . -1) (undo-tree-id89 . -1) (undo-tree-id90 . -1) (undo-tree-id91 . -1) (undo-tree-id92 . -1) (undo-tree-id93 . -1) (undo-tree-id94 . -1) (undo-tree-id95 . -1) (undo-tree-id96 . -1) (undo-tree-id97 . -1) (undo-tree-id98 . -1) (undo-tree-id99 . -1) (undo-tree-id100 . -1) (undo-tree-id101 . -1) (undo-tree-id102 . -1) (undo-tree-id103 . -1) (undo-tree-id104 . -1) (undo-tree-id105 . -1) (undo-tree-id106 . -1) (undo-tree-id107 . -1) (undo-tree-id108 . -1) (undo-tree-id109 . -1) (undo-tree-id110 . -1) (undo-tree-id111 . -1) (undo-tree-id112 . -1) (undo-tree-id113 . -1) (undo-tree-id114 . -1) (undo-tree-id115 . -1) (undo-tree-id116 . -1) (undo-tree-id117 . -1) (undo-tree-id118 . -1) (undo-tree-id119 . -1) (undo-tree-id120 . -1) (undo-tree-id121 . -1) (undo-tree-id122 . -1) (undo-tree-id123 . -1) (undo-tree-id124 . -1) (undo-tree-id125 . -1) (undo-tree-id126 . -1) (undo-tree-id127 . -1) (undo-tree-id128 . -1) (undo-tree-id129 . -1) (undo-tree-id130 . -1) (undo-tree-id131 . -1) (undo-tree-id132 . -1) (#("r" 0 1 (face font-lock-string-face fontified t)) . -28) (undo-tree-id133 . -1) (undo-tree-id134 . -1) (undo-tree-id135 . -1) (undo-tree-id136 . -1) (undo-tree-id137 . -1) (undo-tree-id138 . -1) (undo-tree-id139 . -1) (undo-tree-id140 . -1) (undo-tree-id141 . -1) (undo-tree-id142 . -1) (undo-tree-id143 . -1) (undo-tree-id144 . -1) (undo-tree-id145 . -1) (undo-tree-id146 . -1) (undo-tree-id147 . -1) (undo-tree-id148 . -1) (undo-tree-id149 . -1) (undo-tree-id150 . -1) (undo-tree-id151 . -1) (undo-tree-id152 . -1) (undo-tree-id153 . -1) (undo-tree-id154 . -1) (undo-tree-id155 . -1) (undo-tree-id156 . -1) (undo-tree-id157 . -1) (undo-tree-id158 . -1) (undo-tree-id159 . -1) (undo-tree-id160 . -1) (undo-tree-id161 . -1) (undo-tree-id162 . -1) (undo-tree-id163 . -1) (undo-tree-id164 . -1) (undo-tree-id165 . -1) (undo-tree-id166 . -1) (undo-tree-id167 . -1) (undo-tree-id168 . -1) (undo-tree-id169 . -1) (undo-tree-id170 . -1) (undo-tree-id171 . -1) (undo-tree-id172 . -1) (undo-tree-id173 . -1) (undo-tree-id174 . -1) (undo-tree-id175 . -1) (undo-tree-id176 . -1) (undo-tree-id177 . -1) (undo-tree-id178 . -1) (undo-tree-id179 . -1) (undo-tree-id180 . -1) (undo-tree-id181 . -1) (undo-tree-id182 . -1) (#("e" 0 1 (face font-lock-string-face fontified t)) . -29) (undo-tree-id183 . -1) (undo-tree-id184 . -1) (undo-tree-id185 . -1) (undo-tree-id186 . -1) (undo-tree-id187 . -1) (undo-tree-id188 . -1) (undo-tree-id189 . -1) (undo-tree-id190 . -1) (undo-tree-id191 . -1) (undo-tree-id192 . -1) (undo-tree-id193 . -1) (undo-tree-id194 . -1) (undo-tree-id195 . -1) (undo-tree-id196 . -1) (undo-tree-id197 . -1) (undo-tree-id198 . -1) (undo-tree-id199 . -1) (undo-tree-id200 . -1) (undo-tree-id201 . -1) (undo-tree-id202 . -1) (undo-tree-id203 . -1) (undo-tree-id204 . -1) (undo-tree-id205 . -1) (undo-tree-id206 . -1) (undo-tree-id207 . -1) (undo-tree-id208 . -1) (undo-tree-id209 . -1) (undo-tree-id210 . -1) (undo-tree-id211 . -1) (undo-tree-id212 . -1) (undo-tree-id213 . -1) (undo-tree-id214 . -1) (undo-tree-id215 . -1) (undo-tree-id216 . -1) 30) nil (27032 60014 827875 758000) 0 nil])
@@ -114,5 +114,7 @@
114
114
  \"p-lens\": \"^1.0.2" 0 3 (face font-lock-string-face fontified t) 3 5 (fontified t) 5 6 (fontified t) 6 8 (fontified t) 8 17 (face font-lock-string-face fontified t) 17 25 (fontified t) 25 28 (face font-lock-string-face fontified t) 28 38 (fontified t) 38 46 (face font-lock-string-face fontified t) 46 58 (fontified t) 58 65 (face font-lock-string-face fontified t) 65 67 (fontified t) 67 90 (face font-lock-string-face fontified t) 90 100 (fontified t) 100 109 (face font-lock-string-face fontified t) 109 111 (fontified t) 111 132 (face font-lock-string-face fontified t) 132 148 (fontified t) 148 157 (face font-lock-string-face fontified t) 157 169 (fontified t) 169 176 (face font-lock-string-face fontified t) 176 178 (fontified t) 178 201 (face font-lock-string-face fontified t) 201 211 (fontified t) 211 220 (face font-lock-string-face fontified t) 220 222 (fontified t) 222 243 (face font-lock-string-face fontified t) 243 259 (fontified t) 259 268 (face font-lock-string-face fontified t) 268 280 (fontified t) 280 287 (face font-lock-string-face fontified t) 287 289 (fontified t) 289 312 (face font-lock-string-face fontified t) 312 322 (fontified t) 322 331 (face font-lock-string-face fontified t) 331 333 (fontified t) 333 354 (face font-lock-string-face fontified t) 354 363 (fontified t) 363 370 (fontified t) 370 374 (fontified t) 374 384 (face font-lock-string-face fontified t) 384 388 (fontified t) 388 394 (fontified t) 394 402 (face font-lock-string-face fontified t) 402 406 (fontified t) 406 414 (fontified t) 414 421 (face font-lock-string-face fontified t) 421 423 (fontified t) 423 435 (face font-lock-string-face fontified t) 435 441 (face font-lock-string-face fontified t) 441 447 (face font-lock-string-face fontified t) 447 449 (fontified t) 449 457 (fontified t) 457 466 (face font-lock-string-face fontified t) 466 468 (fontified t) 468 480 (face font-lock-string-face fontified t) 480 486 (face font-lock-string-face fontified t) 486 490 (face font-lock-string-face fontified t) 490 491 (fontified t) 491 506 (fontified t) 506 515 (face font-lock-string-face fontified t) 515 519 (fontified t) 519 527 (fontified t) 527 534 (face font-lock-string-face fontified t) 534 536 (fontified t) 536 548 (face font-lock-string-face fontified t) 548 554 (face font-lock-string-face fontified t) 554 560 (face font-lock-string-face fontified t) 560 562 (fontified t) 562 570 (fontified t) 570 579 (face font-lock-string-face fontified t) 579 581 (fontified t) 581 593 (face font-lock-string-face fontified t) 593 599 (face font-lock-string-face fontified t) 599 603 (face font-lock-string-face fontified t) 603 604 (fontified t) 604 619 (fontified t) 619 628 (face font-lock-string-face fontified t) 628 632 (fontified t) 632 640 (fontified t) 640 647 (face font-lock-string-face fontified t) 647 649 (fontified t) 649 661 (face font-lock-string-face fontified t) 661 667 (face font-lock-string-face fontified t) 667 673 (face font-lock-string-face fontified t) 673 675 (fontified t) 675 683 (fontified t) 683 692 (face font-lock-string-face fontified t) 692 694 (fontified t) 694 706 (face font-lock-string-face fontified t) 706 712 (face font-lock-string-face fontified t) 712 716 (face font-lock-string-face fontified t) 716 717 (fontified t) 717 725 (fontified t) 725 729 (fontified t) 729 730 (fontified t rear-nonsticky t) 730 732 (fontified t) 732 736 (fontified t) 736 746 (face font-lock-string-face fontified t) 746 750 (fontified t) 750 756 (fontified t) 756 764 (face font-lock-string-face fontified t) 764 768 (fontified t) 768 776 (fontified t) 776 783 (face font-lock-string-face fontified t) 783 785 (fontified t) 785 809 (face font-lock-string-face fontified t) 809 815 (face font-lock-string-face fontified t) 815 817 (fontified t) 817 825 (fontified t) 825 834 (face font-lock-string-face fontified t) 834 836 (fontified t) 836 863 (face font-lock-string-face fontified t) 863 864 (face font-lock-string-face fontified t) 864 865 (fontified t) 865 880 (fontified t) 880 889 (face font-lock-string-face fontified t) 889 893 (fontified t) 893 901 (fontified t) 901 908 (face font-lock-string-face fontified t) 908 910 (fontified t) 910 934 (face font-lock-string-face fontified t) 934 940 (face font-lock-string-face fontified t) 940 942 (fontified t) 942 950 (fontified t) 950 959 (face font-lock-string-face fontified t) 959 961 (fontified t) 961 988 (face font-lock-string-face fontified t) 988 989 (face font-lock-string-face fontified t) 989 990 (fontified t) 990 1005 (fontified t) 1005 1014 (face font-lock-string-face fontified t) 1014 1018 (fontified t) 1018 1020 (fontified t) 1020 1026 (fontified t) 1026 1033 (fontified t face font-lock-string-face) 1033 1035 (fontified t) 1035 1059 (fontified t face font-lock-string-face) 1059 1065 (fontified t face font-lock-string-face) 1065 1067 (fontified t) 1075 1084 (face font-lock-string-face) 1086 1113 (face font-lock-string-face) 1113 1114 (face font-lock-string-face) 1127 1128 (rear-nonsticky t) 1136 1153 (face font-lock-string-face) 1161 1174 (face font-lock-string-face) 1176 1185 (face font-lock-string-face) 1191 1202 (face font-lock-string-face) 1204 1213 (face font-lock-string-face) 1219 1229 (face font-lock-string-face) 1231 1239 (face font-lock-string-face) 1245 1250 (face font-lock-string-face) 1252 1261 (face font-lock-string-face) 1267 1279 (face font-lock-string-face) 1281 1289 (face font-lock-string-face) 1295 1303 (face font-lock-string-face) 1305 1314 (face font-lock-string-face) 1322 1336 (face font-lock-string-face) 1344 1345 (face font-lock-string-face) 1345 1362 (face font-lock-string-face) 1364 1377 (face font-lock-string-face) 1383 1394 (face font-lock-string-face) 1396 1404 (face font-lock-string-face) 1410 1411 (face font-lock-string-face) 1411 1418 (face font-lock-string-face) 1420 1426 (face font-lock-string-face) 1426 1427 (face font-lock-string-face)) . 538) (undo-tree-id34 . -1384) (undo-tree-id35 . -1384) (undo-tree-id36 . -855) (undo-tree-id37 . 564) (undo-tree-id38 . -855) (undo-tree-id39 . -855) (undo-tree-id40 . -367) (undo-tree-id41 . -388) (undo-tree-id42 . -725) (undo-tree-id43 . -683) (undo-tree-id44 . -683) (undo-tree-id45 . -683) (undo-tree-id46 . -1411) (undo-tree-id47 . -1411) (undo-tree-id48 . -1411) (undo-tree-id49 . -1376) (undo-tree-id50 . -1344) (undo-tree-id51 . -729) (undo-tree-id52 . -735) (undo-tree-id53 . -1128) (undo-tree-id54 . -732) (undo-tree-id55 . -1129) (undo-tree-id56 . -804) (undo-tree-id57 . -855) (undo-tree-id58 . -862) (undo-tree-id59 . -862) (undo-tree-id60 . -862) (t 27033 48691 761531 164000)) nil (27033 49656 51274 445000) 0 nil])
115
115
  ([nil nil ((54 . 55) (#("6" 0 1 (face font-lock-string-face fontified t)) . -54) (undo-tree-id0 . -1) (undo-tree-id1 . -1) (undo-tree-id2 . -1) (undo-tree-id3 . -1) (undo-tree-id4 . -1) (undo-tree-id5 . -1) (undo-tree-id6 . -1) (undo-tree-id7 . -1) (undo-tree-id8 . -1) (undo-tree-id9 . -1) (undo-tree-id10 . -1) (undo-tree-id11 . -1) (undo-tree-id12 . -1) (undo-tree-id13 . -1) (undo-tree-id14 . -1) (undo-tree-id15 . -1) (undo-tree-id16 . -1) (undo-tree-id17 . -1) (undo-tree-id18 . -1) (undo-tree-id19 . -1) (undo-tree-id20 . -1) (undo-tree-id21 . -1) (undo-tree-id22 . -1) (undo-tree-id23 . -1) (undo-tree-id24 . -1) (undo-tree-id25 . -1) (undo-tree-id26 . -1) (undo-tree-id27 . -1) (undo-tree-id28 . -1) (undo-tree-id29 . -1) (undo-tree-id30 . -1) (undo-tree-id31 . -1) (undo-tree-id32 . -1) (undo-tree-id33 . -1) 55 (t 27033 49635 906404 370000)) nil (27033 49656 51262 506000) 0 nil])
116
116
  ([nil nil ((54 . 56) (#("7" 0 1 (face font-lock-string-face fontified t)) . -54) (undo-tree-id74 . -1) (undo-tree-id75 . -1) (undo-tree-id76 . -1) (undo-tree-id77 . -1) (undo-tree-id78 . -1) (undo-tree-id79 . -1) (undo-tree-id80 . -1) (undo-tree-id81 . -1) (undo-tree-id82 . -1) (undo-tree-id83 . -1) (undo-tree-id84 . -1) (undo-tree-id85 . -1) (undo-tree-id86 . -1) (undo-tree-id87 . -1) (undo-tree-id88 . -1) (undo-tree-id89 . -1) (undo-tree-id90 . -1) 55 (t 27033 49656 50241 60000)) nil (27033 54029 398899 463000) 0 nil])
117
- ([nil current ((#("7" 0 1 (face font-lock-string-face fontified t)) . 55) (undo-tree-id61 . -1) (undo-tree-id62 . -1) (undo-tree-id63 . -1) (undo-tree-id64 . -1) (undo-tree-id65 . -1) (undo-tree-id66 . -1) (undo-tree-id67 . -1) (undo-tree-id68 . -1) (undo-tree-id69 . -1) (undo-tree-id70 . -1) (undo-tree-id71 . -1) (undo-tree-id72 . -1) (undo-tree-id73 . -1)) nil (27033 54029 398892 516000) 0 nil])
117
+ ([nil nil ((#("7" 0 1 (face font-lock-string-face fontified t)) . 55) (undo-tree-id61 . -1) (undo-tree-id62 . -1) (undo-tree-id63 . -1) (undo-tree-id64 . -1) (undo-tree-id65 . -1) (undo-tree-id66 . -1) (undo-tree-id67 . -1) (undo-tree-id68 . -1) (undo-tree-id69 . -1) (undo-tree-id70 . -1) (undo-tree-id71 . -1) (undo-tree-id72 . -1) (undo-tree-id73 . -1)) nil (27033 54029 398892 516000) 0 nil])
118
+ ([nil nil ((1981 . 2004) (t 27033 54029 395848 618000)) nil (27033 57350 669420 815000) 0 nil])
119
+ ([nil current ((54 . 55) (#("8" 0 1 (face font-lock-string-face fontified t)) . -54) (undo-tree-id0 . -1) (undo-tree-id1 . -1) (undo-tree-id2 . -1) (undo-tree-id3 . -1) (undo-tree-id4 . -1) (undo-tree-id5 . -1) (undo-tree-id6 . -1) (undo-tree-id7 . -1) (undo-tree-id8 . -1) (undo-tree-id9 . -1) (undo-tree-id10 . -1) (undo-tree-id11 . -1) (undo-tree-id12 . -1) (undo-tree-id13 . -1) (undo-tree-id14 . -1) (undo-tree-id15 . -1) (undo-tree-id16 . -1) (undo-tree-id17 . -1) (undo-tree-id18 . -1) (undo-tree-id19 . -1) (undo-tree-id20 . -1) (undo-tree-id21 . -1) (undo-tree-id22 . -1) (undo-tree-id23 . -1) (undo-tree-id24 . -1) (undo-tree-id25 . -1) (undo-tree-id26 . -1) (undo-tree-id27 . -1) (undo-tree-id28 . -1) (undo-tree-id29 . -1) (undo-tree-id30 . -1) (undo-tree-id31 . -1) (undo-tree-id32 . -1) (undo-tree-id33 . -1) (undo-tree-id34 . -1) (undo-tree-id35 . -1) (undo-tree-id36 . -1) (undo-tree-id37 . -1) (undo-tree-id38 . -1) (undo-tree-id39 . -1) (undo-tree-id40 . -1) (undo-tree-id41 . -1) (undo-tree-id42 . -1) (undo-tree-id43 . -1) (undo-tree-id44 . -1) (undo-tree-id45 . -1) (undo-tree-id46 . -1) (undo-tree-id47 . -1) (undo-tree-id48 . -1) (undo-tree-id49 . -1) 55 (t 27033 56920 970818 636000)) nil (27033 57350 669418 124000) 0 nil])
118
120
  nil
@@ -2,6 +2,7 @@ import { Server } from "./server";
2
2
  import { PubSub } from "@derivesome/core";
3
3
  import { ServerEvent } from "./events";
4
4
  import { Plugin } from "./plugin";
5
+ import { Connection } from "./connection";
5
6
  export type AppConfig = {
6
7
  host: string;
7
8
  port: number;
@@ -12,7 +13,10 @@ export declare class App {
12
13
  server: Server;
13
14
  ps: PubSub<ServerEvent>;
14
15
  plugins: Map<string, Plugin>;
16
+ connections: Map<string, Connection>;
15
17
  constructor(cfg: AppConfig);
18
+ private addConnection;
19
+ private removeConnection;
16
20
  use(plugin: Plugin): void;
17
21
  private init;
18
22
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAU,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,GAAG;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;gBAE7B,GAAG,EAAE,SAAS;IAM1B,GAAG,CAAC,MAAM,EAAE,MAAM;IAuBlB,OAAO,CAAC,IAAI;IAgHZ,KAAK;CASN"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAU,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,GAAG;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACzC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;gBAErC,GAAG,EAAE,SAAS;IAM1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAQxB,GAAG,CAAC,MAAM,EAAE,MAAM;IAuBlB,OAAO,CAAC,IAAI;IAoHZ,KAAK;CASN"}
@@ -5,16 +5,33 @@ const server_1 = require("./server");
5
5
  const core_1 = require("@derivesome/core");
6
6
  const socket_1 = require("../socket");
7
7
  const binencode_1 = require("binencode");
8
+ const connection_1 = require("./connection");
9
+ const uuid_1 = require("uuid");
8
10
  class App {
9
11
  config;
10
12
  server;
11
13
  ps;
12
14
  plugins = new Map();
15
+ connections = new Map();
13
16
  constructor(cfg) {
14
17
  this.config = cfg;
15
18
  this.server = new server_1.Server(cfg);
16
19
  this.ps = (0, core_1.pubsub)();
17
20
  }
21
+ addConnection(connection) {
22
+ if (this.connections.has(connection.id)) {
23
+ console.log(`Connection already exists: ${connection.id}`);
24
+ }
25
+ ;
26
+ this.connections.set(connection.id, connection);
27
+ }
28
+ removeConnection(id) {
29
+ if (!this.connections.has(id)) {
30
+ console.log(`Connection does not exist: ${id}`);
31
+ return;
32
+ }
33
+ this.connections.delete(id);
34
+ }
18
35
  use(plugin) {
19
36
  this.plugins.set(plugin.name, plugin);
20
37
  this.ps.subscribe(async (event) => {
@@ -56,12 +73,14 @@ class App {
56
73
  });
57
74
  ws.addListener("connection", async (client, req) => {
58
75
  const socket = new socket_1.Socket(() => client);
76
+ const connection = new connection_1.Connection(socket, (0, uuid_1.v4)());
77
+ this.addConnection(connection);
59
78
  await this.ps.publishAsync({
60
79
  type: "client-connection",
61
80
  app: this,
62
81
  ws,
63
82
  req,
64
- socket,
83
+ connection,
65
84
  });
66
85
  socket.connection.addEventListener("open", async (ev) => {
67
86
  await this.ps.publishAsync({
@@ -69,7 +88,7 @@ class App {
69
88
  app: this,
70
89
  ws,
71
90
  event: ev,
72
- socket,
91
+ connection,
73
92
  });
74
93
  });
75
94
  socket.connection.addEventListener("close", async (ev) => {
@@ -78,8 +97,9 @@ class App {
78
97
  app: this,
79
98
  ws,
80
99
  event: ev,
81
- socket,
100
+ connection,
82
101
  });
102
+ this.removeConnection(connection.id);
83
103
  });
84
104
  socket.connection.addEventListener("error", async (ev) => {
85
105
  await this.ps.publishAsync({
@@ -87,7 +107,7 @@ class App {
87
107
  app: this,
88
108
  ws,
89
109
  event: ev,
90
- socket,
110
+ connection,
91
111
  });
92
112
  });
93
113
  socket.connection.on("upgrade", async (req) => {
@@ -96,7 +116,7 @@ class App {
96
116
  app: this,
97
117
  ws,
98
118
  req,
99
- socket,
119
+ connection,
100
120
  });
101
121
  });
102
122
  socket.connection.on("message", async (data, isBinary) => {
@@ -105,7 +125,7 @@ class App {
105
125
  app: this,
106
126
  isBinary,
107
127
  message: data,
108
- socket,
128
+ connection,
109
129
  ws,
110
130
  });
111
131
  let buffer;
@@ -133,7 +153,7 @@ class App {
133
153
  type: "client-message",
134
154
  app: this,
135
155
  message: decoded,
136
- socket,
156
+ connection,
137
157
  ws,
138
158
  });
139
159
  });
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Socket } from "../socket";
2
+ export declare class Connection {
3
+ socket: Socket;
4
+ id: string;
5
+ constructor(socket: Socket, id: string);
6
+ }
7
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/server/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,qBAAa,UAAU;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;gBAGT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM;CAKb"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Connection = void 0;
4
+ class Connection {
5
+ socket;
6
+ id;
7
+ constructor(socket, id) {
8
+ this.socket = socket;
9
+ this.id = id;
10
+ }
11
+ }
12
+ exports.Connection = Connection;
13
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/server/connection.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAU;IACrB,MAAM,CAAS;IACf,EAAE,CAAS;IAEX,YACE,MAAc,EACd,EAAU;QAEV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;CACF;AAXD,gCAWC"}
@@ -2,8 +2,8 @@ import { type Binary } from "binencode";
2
2
  import { type App } from "./app";
3
3
  import { type WebSocketServer, type RawData } from "ws";
4
4
  import { type IncomingMessage } from "http";
5
- import { type Socket } from "../socket";
6
5
  import { type ErrorEvent, type CloseEvent, type Event as WSEvent } from "ws";
6
+ import { Connection } from "./connection";
7
7
  export type BaseServerEvent<Type extends string, Data extends Record<string, unknown> = {}> = Data & {
8
8
  type: Type;
9
9
  app: App;
@@ -16,26 +16,26 @@ export type ServerEvent = BaseServerEvent<"server-headers", {
16
16
  headers: string[];
17
17
  req: IncomingMessage;
18
18
  }> | BaseServerEvent<"client-connection", {
19
- socket: Socket;
19
+ connection: Connection;
20
20
  req: IncomingMessage;
21
21
  }> | BaseServerEvent<"client-message", {
22
- socket: Socket;
22
+ connection: Connection;
23
23
  message: Binary;
24
24
  }> | BaseServerEvent<"client-message-raw", {
25
- socket: Socket;
25
+ connection: Connection;
26
26
  message: RawData;
27
27
  isBinary: boolean;
28
28
  }> | BaseServerEvent<"client-error", {
29
- socket: Socket;
29
+ connection: Connection;
30
30
  event: ErrorEvent;
31
31
  }> | BaseServerEvent<"client-open", {
32
- socket: Socket;
32
+ connection: Connection;
33
33
  event: WSEvent;
34
34
  }> | BaseServerEvent<"client-close", {
35
- socket: Socket;
35
+ connection: Connection;
36
36
  event: CloseEvent;
37
37
  }> | BaseServerEvent<"client-upgrade", {
38
- socket: Socket;
38
+ connection: Connection;
39
39
  req: IncomingMessage;
40
40
  }> | BaseServerEvent<"server-ready"> | BaseServerEvent<"server-error"> | BaseServerEvent<"server-close">;
41
41
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/server/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7E,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IACvC,IAAI,GAAG;IACT,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,eAAe,CACb,gBAAgB,EAChB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CAC5C,GACD,eAAe,CACb,gBAAgB,EAChB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CAC5C,GACD,eAAe,CACb,mBAAmB,EACnB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CACzC,GACD,eAAe,CAAC,gBAAgB,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,eAAe,CACb,oBAAoB,EACpB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CACxD,GACD,eAAe,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC,GACtE,eAAe,CAAC,aAAa,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE,eAAe,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC,GACtE,eAAe,CAAC,gBAAgB,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CAAC,GAC3E,eAAe,CAAC,cAAc,CAAC,GAC/B,eAAe,CAAC,cAAc,CAAC,GAC/B,eAAe,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/server/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IACvC,IAAI,GAAG;IACT,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,eAAe,CACb,gBAAgB,EAChB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CAC5C,GACD,eAAe,CACb,gBAAgB,EAChB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CAC5C,GACD,eAAe,CACb,mBAAmB,EACnB;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CACjD,GACD,eAAe,CAAC,gBAAgB,EAAE;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9E,eAAe,CACb,oBAAoB,EACpB;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAChE,GACD,eAAe,CAAC,cAAc,EAAE;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC,GAC9E,eAAe,CAAC,aAAa,EAAE;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,GAC1E,eAAe,CAAC,cAAc,EAAE;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC,GAC9E,eAAe,CAAC,gBAAgB,EAAE;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,CAAC,GACnF,eAAe,CAAC,cAAc,CAAC,GAC/B,eAAe,CAAC,cAAc,CAAC,GAC/B,eAAe,CAAC,cAAc,CAAC,CAAC"}
@@ -3,16 +3,25 @@ import { type WebSocket as WSWebSocket } from "ws";
3
3
  import { type InferPattern, type PatLoose } from "p-lens";
4
4
  import { type PubSub } from "@derivesome/core";
5
5
  export type WebSocketImplementation = WebSocket | WSWebSocket;
6
- export type SocketConfig = {};
6
+ export type SocketConfig = {
7
+ autoReconnect?: boolean;
8
+ maxRetries?: number;
9
+ retryDelay?: number;
10
+ };
7
11
  export declare class Socket<Impl extends WebSocketImplementation = WebSocketImplementation> {
8
12
  connection: Impl;
9
13
  private factory;
14
+ private cfg;
10
15
  ps: PubSub<Binary>;
11
16
  private cleanups;
12
- constructor(factory: () => Impl, _cfg?: SocketConfig);
17
+ private retryCount;
18
+ private retryTimer;
19
+ constructor(factory: () => Impl, cfg?: SocketConfig);
13
20
  addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions, autoCleanup?: boolean): () => void;
14
21
  once<K extends keyof WebSocketEventMap>(type: K, listener: (ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
15
22
  whenReady(fn: () => (void | Promise<void>)): Promise<void>;
23
+ private cleanup;
24
+ private scheduleReconnect;
16
25
  private connect;
17
26
  sendBinary(data: Binary): void;
18
27
  send<T>(data: T): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,KAAK,SAAS,IAAI,WAAW,EAAE,MAAM,IAAI,CAAC;AACnD,OAAO,EAAW,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAU,KAAK,MAAM,EAAc,MAAM,kBAAkB,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC;AAE9B,qBAAa,MAAM,CACjB,IAAI,SAAS,uBAAuB,GAAG,uBAAuB;IAE9D,UAAU,EAAG,IAAI,CAAC;IAClB,OAAO,CAAC,OAAO,CAAa;IAC5B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,YAAiB;IAMxD,gBAAgB,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAChD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC5D,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,EAC3C,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,IAAI;IAkBb,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACpC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC3C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB;IAevC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAehD,OAAO,CAAC,OAAO;IAkBf,UAAU,CAAC,IAAI,EAAE,MAAM;IAKjB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAMrB,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAStD"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,KAAK,SAAS,IAAI,WAAW,EAAE,MAAM,IAAI,CAAC;AACnD,OAAO,EAAW,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAU,KAAK,MAAM,EAAc,MAAM,kBAAkB,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,MAAM,CACjB,IAAI,SAAS,uBAAuB,GAAG,uBAAuB;IAE9D,UAAU,EAAG,IAAI,CAAC;IAClB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,GAAG,CAAe;IAC1B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAA8C;gBAEpD,OAAO,EAAE,MAAM,IAAI,EAAE,GAAG,GAAE,YAAiB;IAOvD,gBAAgB,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAChD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC5D,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,EAC3C,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,IAAI;IAcb,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACpC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC3C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB;IAevC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAehD,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,OAAO;IA4Bf,UAAU,CAAC,IAAI,EAAE,MAAM;IAKjB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAMrB,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAStD"}
@@ -7,31 +7,30 @@ const core_1 = require("@derivesome/core");
7
7
  class Socket {
8
8
  connection;
9
9
  factory;
10
+ cfg;
10
11
  ps;
11
12
  cleanups = new Set();
12
- constructor(factory, _cfg = {}) {
13
+ retryCount = 0;
14
+ retryTimer = null;
15
+ constructor(factory, cfg = {}) {
13
16
  this.factory = factory;
17
+ this.cfg = cfg;
14
18
  this.ps = (0, core_1.pubsub)();
15
19
  this.connect();
16
20
  }
17
21
  addEventListener(type, listener, options, autoCleanup) {
18
22
  const con = this.connection;
19
- if (con instanceof WebSocket) {
20
- con.addEventListener(type, listener, options);
21
- const unsub = () => {
22
- try {
23
- con.removeEventListener(type, listener, options);
24
- }
25
- catch { }
26
- };
27
- if (autoCleanup !== false) {
28
- this.cleanups.add(unsub);
23
+ con.addEventListener(type, listener, options);
24
+ const unsub = () => {
25
+ try {
26
+ con.removeEventListener(type, listener, options);
29
27
  }
30
- return unsub;
31
- }
32
- else {
33
- return () => { };
28
+ catch { }
29
+ };
30
+ if (autoCleanup !== false) {
31
+ this.cleanups.add(unsub);
34
32
  }
33
+ return unsub;
35
34
  }
36
35
  once(type, listener, options) {
37
36
  const unsub = this.addEventListener(type, async (ev) => {
@@ -57,6 +56,24 @@ class Socket {
57
56
  });
58
57
  }
59
58
  }
59
+ cleanup() {
60
+ for (const fn of this.cleanups) {
61
+ fn();
62
+ }
63
+ this.cleanups.clear();
64
+ }
65
+ scheduleReconnect() {
66
+ const { maxRetries = Infinity, retryDelay = 1000 } = this.cfg;
67
+ if (this.retryCount >= maxRetries)
68
+ return;
69
+ const delay = Math.min(retryDelay * Math.pow(2, this.retryCount), 30_000);
70
+ this.retryCount++;
71
+ this.retryTimer = setTimeout(() => {
72
+ this.retryTimer = null;
73
+ this.cleanup();
74
+ this.connect();
75
+ }, delay);
76
+ }
60
77
  connect() {
61
78
  this.connection = this.factory();
62
79
  this.connection.binaryType = "arraybuffer";
@@ -73,6 +90,14 @@ class Socket {
73
90
  }
74
91
  }
75
92
  });
93
+ if (this.cfg.autoReconnect) {
94
+ this.addEventListener("close", () => {
95
+ this.scheduleReconnect();
96
+ });
97
+ this.addEventListener("open", () => {
98
+ this.retryCount = 0;
99
+ });
100
+ }
76
101
  }
77
102
  sendBinary(data) {
78
103
  const encoded = binencode_1.serial.encode(data);
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket.ts"],"names":[],"mappings":";;;AAAA,yCAAmE;AAEnE,mCAAmE;AACnE,2CAAmE;AAMnE,MAAa,MAAM;IAGjB,UAAU,CAAQ;IACV,OAAO,CAAa;IAC5B,EAAE,CAAiB;IACX,QAAQ,GAAoB,IAAI,GAAG,EAAE,CAAC;IAE9C,YAAY,OAAmB,EAAE,OAAqB,EAAE;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,IAAA,aAAM,GAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,gBAAgB,CACd,IAAO,EACP,QAA4D,EAC5D,OAA2C,EAC3C,WAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC,CAAC;YACF,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CACF,IAAO,EACP,QAA2C,EAC3C,OAA2C;QAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CACjC,IAAI,EACJ,KAAK,EAAE,EAAE,EAAE,EAAE;YACX,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAgC;QAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,SAAS,CAAC,EAAE,CAAC;YAC5C,MAAM,EAAE,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,EAAE,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAC3B,MAAM,EAAE,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC;QAE3C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YAC5C,IAAI,EAAE,CAAC,IAAI,YAAY,WAAW,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,wBAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,MAAM,OAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,IAAO;QACnB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,eAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CACH,GAAM,EACN,EAAmD;QAEnD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,gBAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9GD,wBA8GC"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Server } from "./server";
2
2
  import { PubSub } from "@derivesome/core";
3
3
  import { ServerEvent } from "./events";
4
4
  import { Plugin } from "./plugin";
5
+ import { Connection } from "./connection";
5
6
  export type AppConfig = {
6
7
  host: string;
7
8
  port: number;
@@ -12,7 +13,10 @@ export declare class App {
12
13
  server: Server;
13
14
  ps: PubSub<ServerEvent>;
14
15
  plugins: Map<string, Plugin>;
16
+ connections: Map<string, Connection>;
15
17
  constructor(cfg: AppConfig);
18
+ private addConnection;
19
+ private removeConnection;
16
20
  use(plugin: Plugin): void;
17
21
  private init;
18
22
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAU,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,GAAG;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;gBAE7B,GAAG,EAAE,SAAS;IAM1B,GAAG,CAAC,MAAM,EAAE,MAAM;IAuBlB,OAAO,CAAC,IAAI;IAgHZ,KAAK;CASN"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAU,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,GAAG;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACzC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;gBAErC,GAAG,EAAE,SAAS;IAM1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAQxB,GAAG,CAAC,MAAM,EAAE,MAAM;IAuBlB,OAAO,CAAC,IAAI;IAoHZ,KAAK;CASN"}
@@ -2,16 +2,33 @@ import { Server } from "./server";
2
2
  import { pubsub } from "@derivesome/core";
3
3
  import { Socket } from "../socket";
4
4
  import { BinaryBuffer, BinaryType, serial } from "binencode";
5
+ import { Connection } from "./connection";
6
+ import { v4 } from 'uuid';
5
7
  export class App {
6
8
  config;
7
9
  server;
8
10
  ps;
9
11
  plugins = new Map();
12
+ connections = new Map();
10
13
  constructor(cfg) {
11
14
  this.config = cfg;
12
15
  this.server = new Server(cfg);
13
16
  this.ps = pubsub();
14
17
  }
18
+ addConnection(connection) {
19
+ if (this.connections.has(connection.id)) {
20
+ console.log(`Connection already exists: ${connection.id}`);
21
+ }
22
+ ;
23
+ this.connections.set(connection.id, connection);
24
+ }
25
+ removeConnection(id) {
26
+ if (!this.connections.has(id)) {
27
+ console.log(`Connection does not exist: ${id}`);
28
+ return;
29
+ }
30
+ this.connections.delete(id);
31
+ }
15
32
  use(plugin) {
16
33
  this.plugins.set(plugin.name, plugin);
17
34
  this.ps.subscribe(async (event) => {
@@ -53,12 +70,14 @@ export class App {
53
70
  });
54
71
  ws.addListener("connection", async (client, req) => {
55
72
  const socket = new Socket(() => client);
73
+ const connection = new Connection(socket, v4());
74
+ this.addConnection(connection);
56
75
  await this.ps.publishAsync({
57
76
  type: "client-connection",
58
77
  app: this,
59
78
  ws,
60
79
  req,
61
- socket,
80
+ connection,
62
81
  });
63
82
  socket.connection.addEventListener("open", async (ev) => {
64
83
  await this.ps.publishAsync({
@@ -66,7 +85,7 @@ export class App {
66
85
  app: this,
67
86
  ws,
68
87
  event: ev,
69
- socket,
88
+ connection,
70
89
  });
71
90
  });
72
91
  socket.connection.addEventListener("close", async (ev) => {
@@ -75,8 +94,9 @@ export class App {
75
94
  app: this,
76
95
  ws,
77
96
  event: ev,
78
- socket,
97
+ connection,
79
98
  });
99
+ this.removeConnection(connection.id);
80
100
  });
81
101
  socket.connection.addEventListener("error", async (ev) => {
82
102
  await this.ps.publishAsync({
@@ -84,7 +104,7 @@ export class App {
84
104
  app: this,
85
105
  ws,
86
106
  event: ev,
87
- socket,
107
+ connection,
88
108
  });
89
109
  });
90
110
  socket.connection.on("upgrade", async (req) => {
@@ -93,7 +113,7 @@ export class App {
93
113
  app: this,
94
114
  ws,
95
115
  req,
96
- socket,
116
+ connection,
97
117
  });
98
118
  });
99
119
  socket.connection.on("message", async (data, isBinary) => {
@@ -102,7 +122,7 @@ export class App {
102
122
  app: this,
103
123
  isBinary,
104
124
  message: data,
105
- socket,
125
+ connection,
106
126
  ws,
107
127
  });
108
128
  let buffer;
@@ -130,7 +150,7 @@ export class App {
130
150
  type: "client-message",
131
151
  app: this,
132
152
  message: decoded,
133
- socket,
153
+ connection,
134
154
  ws,
135
155
  });
136
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Socket } from "../socket";
2
+ export declare class Connection {
3
+ socket: Socket;
4
+ id: string;
5
+ constructor(socket: Socket, id: string);
6
+ }
7
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/server/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,qBAAa,UAAU;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;gBAGT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM;CAKb"}
@@ -0,0 +1,9 @@
1
+ export class Connection {
2
+ socket;
3
+ id;
4
+ constructor(socket, id) {
5
+ this.socket = socket;
6
+ this.id = id;
7
+ }
8
+ }
9
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/server/connection.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACrB,MAAM,CAAS;IACf,EAAE,CAAS;IAEX,YACE,MAAc,EACd,EAAU;QAEV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;CACF"}