ugly-app 0.1.303 → 0.1.305

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 (119) hide show
  1. package/coverage/{collab/server/CollabServer.ts.html → CollabServer.ts.html} +125 -119
  2. package/coverage/clover.xml +191 -4530
  3. package/coverage/coverage-final.json +1 -78
  4. package/coverage/index.html +15 -240
  5. package/dist/cli/deployRemote.d.ts.map +1 -1
  6. package/dist/cli/deployRemote.js +29 -40
  7. package/dist/cli/deployRemote.js.map +1 -1
  8. package/dist/cli/version.d.ts +1 -1
  9. package/dist/cli/version.js +1 -1
  10. package/dist/client/bootstrapApp.js.map +1 -1
  11. package/dist/server/App.js +4 -4
  12. package/dist/server/App.js.map +1 -1
  13. package/dist/server/Auth.d.ts.map +1 -1
  14. package/dist/server/Auth.js +0 -1
  15. package/dist/server/Auth.js.map +1 -1
  16. package/dist/server/Email.js +2 -2
  17. package/dist/server/Email.js.map +1 -1
  18. package/dist/server/EventCounter.js +1 -1
  19. package/dist/server/EventCounter.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/cli/deployRemote.ts +35 -38
  22. package/src/cli/version.ts +1 -1
  23. package/src/server/App.ts +3 -3
  24. package/src/server/Auth.ts +0 -2
  25. package/src/server/Email.ts +2 -2
  26. package/src/server/EventCounter.ts +1 -1
  27. package/coverage/client/AppProvider.tsx.html +0 -802
  28. package/coverage/client/FeedbackContext.ts.html +0 -133
  29. package/coverage/client/LoginPopup.tsx.html +0 -325
  30. package/coverage/client/Router.tsx.html +0 -2197
  31. package/coverage/client/Screenshot.ts.html +0 -790
  32. package/coverage/client/ViewFlipper.tsx.html +0 -778
  33. package/coverage/client/animation/Animated.tsx.html +0 -544
  34. package/coverage/client/animation/animatedValue.ts.html +0 -721
  35. package/coverage/client/animation/index.html +0 -131
  36. package/coverage/client/audio/index.html +0 -131
  37. package/coverage/client/audio/useSTT.ts.html +0 -448
  38. package/coverage/client/audio/useTTS.ts.html +0 -382
  39. package/coverage/client/components/Button.tsx.html +0 -379
  40. package/coverage/client/components/FeedbackButton.tsx.html +0 -631
  41. package/coverage/client/components/Input.tsx.html +0 -286
  42. package/coverage/client/components/Modal.tsx.html +0 -277
  43. package/coverage/client/components/Text.tsx.html +0 -349
  44. package/coverage/client/components/Toast.tsx.html +0 -235
  45. package/coverage/client/components/index.html +0 -206
  46. package/coverage/client/components/zIndex.ts.html +0 -118
  47. package/coverage/client/createSocket.ts.html +0 -2323
  48. package/coverage/client/index.html +0 -206
  49. package/coverage/collab/server/index.html +0 -116
  50. package/coverage/server/Auth.ts.html +0 -988
  51. package/coverage/server/Cache.ts.html +0 -568
  52. package/coverage/server/DB.ts.html +0 -1549
  53. package/coverage/server/Email.ts.html +0 -466
  54. package/coverage/server/EmailTemplate.ts.html +0 -223
  55. package/coverage/server/EventLogAdmin.ts.html +0 -1432
  56. package/coverage/server/Postgres.ts.html +0 -172
  57. package/coverage/server/PostgresDB.ts.html +0 -874
  58. package/coverage/server/PostgresFilter.ts.html +0 -571
  59. package/coverage/server/PostgresOperators.ts.html +0 -460
  60. package/coverage/server/PostgresPipeline.ts.html +0 -871
  61. package/coverage/server/PostgresSchema.ts.html +0 -238
  62. package/coverage/server/PostgresSearch.ts.html +0 -412
  63. package/coverage/server/PushNotification.ts.html +0 -583
  64. package/coverage/server/Qdrant.ts.html +0 -415
  65. package/coverage/server/RateLimit.ts.html +0 -1087
  66. package/coverage/server/Router.ts.html +0 -520
  67. package/coverage/server/ScheduledTask.ts.html +0 -238
  68. package/coverage/server/SchemaCheck.ts.html +0 -481
  69. package/coverage/server/Socket.ts.html +0 -1468
  70. package/coverage/server/Storage.ts.html +0 -538
  71. package/coverage/server/StoreHandlers.ts.html +0 -607
  72. package/coverage/server/ai/ImageGenClient.ts.html +0 -142
  73. package/coverage/server/ai/ProviderBalance.ts.html +0 -193
  74. package/coverage/server/ai/TextGenClient.ts.html +0 -244
  75. package/coverage/server/ai/WebSearchClient.ts.html +0 -190
  76. package/coverage/server/ai/index.html +0 -191
  77. package/coverage/server/ai/index.ts.html +0 -187
  78. package/coverage/server/ai/providers/UglyBotImageGenProvider.ts.html +0 -292
  79. package/coverage/server/ai/providers/UglyBotTextGenProvider.ts.html +0 -496
  80. package/coverage/server/ai/providers/UglyBotWebSearchProvider.ts.html +0 -418
  81. package/coverage/server/ai/providers/index.html +0 -146
  82. package/coverage/server/ai/types.ts.html +0 -520
  83. package/coverage/server/billing/BillingGateway.ts.html +0 -868
  84. package/coverage/server/billing/BillingLedger.ts.html +0 -910
  85. package/coverage/server/billing/CreditStore.ts.html +0 -577
  86. package/coverage/server/billing/LimitEnforcer.ts.html +0 -1237
  87. package/coverage/server/billing/UserLimitCache.ts.html +0 -388
  88. package/coverage/server/billing/index.html +0 -191
  89. package/coverage/server/billing/types.ts.html +0 -889
  90. package/coverage/server/embeddings/EmbeddingClient.ts.html +0 -217
  91. package/coverage/server/embeddings/index.html +0 -131
  92. package/coverage/server/embeddings/providers/OpenAI.ts.html +0 -196
  93. package/coverage/server/embeddings/providers/index.html +0 -116
  94. package/coverage/server/embeddings/registry.ts.html +0 -151
  95. package/coverage/server/index.html +0 -431
  96. package/coverage/shared/Api.ts.html +0 -478
  97. package/coverage/shared/Audio.ts.html +0 -1318
  98. package/coverage/shared/DB.ts.html +0 -2095
  99. package/coverage/shared/Errors.ts.html +0 -145
  100. package/coverage/shared/Experiment.ts.html +0 -298
  101. package/coverage/shared/FrameworkRequests.ts.html +0 -538
  102. package/coverage/shared/ImageGen.ts.html +0 -1861
  103. package/coverage/shared/Router.ts.html +0 -538
  104. package/coverage/shared/SchemaDiff.ts.html +0 -634
  105. package/coverage/shared/SchemaSerializer.ts.html +0 -517
  106. package/coverage/shared/TextGen.ts.html +0 -3076
  107. package/coverage/shared/Voice.ts.html +0 -331
  108. package/coverage/shared/WebSearch.ts.html +0 -169
  109. package/coverage/shared/index.html +0 -311
  110. package/coverage/shared/index.ts.html +0 -529
  111. package/coverage/three/server/VideoEncoder.ts.html +0 -2245
  112. package/coverage/three/server/index.html +0 -116
  113. package/coverage/three/shared/CameraController.ts.html +0 -1519
  114. package/coverage/three/shared/PostProcessing.ts.html +0 -1771
  115. package/coverage/three/shared/index.html +0 -131
  116. package/coverage/webrtc/server/VideoRoomServer.ts.html +0 -1726
  117. package/coverage/webrtc/server/index.html +0 -116
  118. package/coverage/worker/TaskHost.ts.html +0 -865
  119. package/coverage/worker/index.html +0 -116
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for collab/server/CollabServer.ts</title>
6
+ <title>Code coverage report for CollabServer.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="prettify.css" />
9
+ <link rel="stylesheet" href="base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,20 +19,20 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">collab/server</a> CollabServer.ts</h1>
22
+ <h1><a href="index.html">All files</a> CollabServer.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">99% </span>
26
+ <span class="strong">99.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>199/201</span>
28
+ <span class='fraction'>200/201</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.52% </span>
33
+ <span class="strong">92.92% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>86/95</span>
35
+ <span class='fraction'>92/99</span>
36
36
  </div>
37
37
 
38
38
 
@@ -593,7 +593,9 @@
593
593
  <a name='L528'></a><a href='#L528'>528</a>
594
594
  <a name='L529'></a><a href='#L529'>529</a>
595
595
  <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
597
599
  <span class="cline-any cline-neutral">&nbsp;</span>
598
600
  <span class="cline-any cline-neutral">&nbsp;</span>
599
601
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -657,11 +659,11 @@
657
659
  <span class="cline-any cline-neutral">&nbsp;</span>
658
660
  <span class="cline-any cline-neutral">&nbsp;</span>
659
661
  <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-yes">67x</span>
662
+ <span class="cline-any cline-yes">74x</span>
661
663
  <span class="cline-any cline-neutral">&nbsp;</span>
662
664
  <span class="cline-any cline-neutral">&nbsp;</span>
663
665
  <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-yes">74x</span>
666
+ <span class="cline-any cline-yes">80x</span>
665
667
  <span class="cline-any cline-neutral">&nbsp;</span>
666
668
  <span class="cline-any cline-neutral">&nbsp;</span>
667
669
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -678,8 +680,8 @@
678
680
  <span class="cline-any cline-neutral">&nbsp;</span>
679
681
  <span class="cline-any cline-neutral">&nbsp;</span>
680
682
  <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-yes">72x</span>
682
- <span class="cline-any cline-yes">72x</span>
683
+ <span class="cline-any cline-yes">78x</span>
684
+ <span class="cline-any cline-yes">78x</span>
683
685
  <span class="cline-any cline-neutral">&nbsp;</span>
684
686
  <span class="cline-any cline-neutral">&nbsp;</span>
685
687
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -688,22 +690,22 @@
688
690
  <span class="cline-any cline-neutral">&nbsp;</span>
689
691
  <span class="cline-any cline-neutral">&nbsp;</span>
690
692
  <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-yes">55x</span>
692
- <span class="cline-any cline-yes">54x</span>
693
+ <span class="cline-any cline-yes">61x</span>
694
+ <span class="cline-any cline-yes">60x</span>
693
695
  <span class="cline-any cline-neutral">&nbsp;</span>
694
696
  <span class="cline-any cline-neutral">&nbsp;</span>
695
697
  <span class="cline-any cline-neutral">&nbsp;</span>
696
698
  <span class="cline-any cline-neutral">&nbsp;</span>
697
699
  <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-yes">60x</span>
700
+ <span class="cline-any cline-yes">67x</span>
699
701
  <span class="cline-any cline-neutral">&nbsp;</span>
700
702
  <span class="cline-any cline-neutral">&nbsp;</span>
701
703
  <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-yes">46x</span>
704
+ <span class="cline-any cline-yes">52x</span>
703
705
  <span class="cline-any cline-neutral">&nbsp;</span>
704
706
  <span class="cline-any cline-neutral">&nbsp;</span>
705
707
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">108x</span>
708
+ <span class="cline-any cline-yes">120x</span>
707
709
  <span class="cline-any cline-neutral">&nbsp;</span>
708
710
  <span class="cline-any cline-neutral">&nbsp;</span>
709
711
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -716,11 +718,11 @@
716
718
  <span class="cline-any cline-neutral">&nbsp;</span>
717
719
  <span class="cline-any cline-neutral">&nbsp;</span>
718
720
  <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-yes">52x</span>
720
- <span class="cline-any cline-yes">52x</span>
721
+ <span class="cline-any cline-yes">56x</span>
722
+ <span class="cline-any cline-yes">56x</span>
721
723
  <span class="cline-any cline-neutral">&nbsp;</span>
722
724
  <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-yes">52x</span>
725
+ <span class="cline-any cline-yes">56x</span>
724
726
  <span class="cline-any cline-neutral">&nbsp;</span>
725
727
  <span class="cline-any cline-neutral">&nbsp;</span>
726
728
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -739,8 +741,8 @@
739
741
  <span class="cline-any cline-neutral">&nbsp;</span>
740
742
  <span class="cline-any cline-neutral">&nbsp;</span>
741
743
  <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-yes">55x</span>
743
- <span class="cline-any cline-yes">55x</span>
744
+ <span class="cline-any cline-yes">61x</span>
745
+ <span class="cline-any cline-yes">61x</span>
744
746
  <span class="cline-any cline-yes">10x</span>
745
747
  <span class="cline-any cline-yes">1x</span>
746
748
  <span class="cline-any cline-yes">1x</span>
@@ -748,11 +750,11 @@
748
750
  <span class="cline-any cline-yes">10x</span>
749
751
  <span class="cline-any cline-neutral">&nbsp;</span>
750
752
  <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-yes">45x</span>
753
+ <span class="cline-any cline-yes">51x</span>
752
754
  <span class="cline-any cline-neutral">&nbsp;</span>
753
755
  <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-yes">45x</span>
755
- <span class="cline-any cline-yes">44x</span>
756
+ <span class="cline-any cline-yes">51x</span>
757
+ <span class="cline-any cline-yes">50x</span>
756
758
  <span class="cline-any cline-yes">2x</span>
757
759
  <span class="cline-any cline-yes">2x</span>
758
760
  <span class="cline-any cline-yes">2x</span>
@@ -762,18 +764,18 @@
762
764
  <span class="cline-any cline-yes">1x</span>
763
765
  <span class="cline-any cline-neutral">&nbsp;</span>
764
766
  <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-yes">42x</span>
767
+ <span class="cline-any cline-yes">48x</span>
766
768
  <span class="cline-any cline-yes">1x</span>
767
769
  <span class="cline-any cline-neutral">&nbsp;</span>
768
770
  <span class="cline-any cline-neutral">&nbsp;</span>
769
771
  <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-yes">44x</span>
772
+ <span class="cline-any cline-yes">50x</span>
771
773
  <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-yes">44x</span>
774
+ <span class="cline-any cline-yes">50x</span>
773
775
  <span class="cline-any cline-neutral">&nbsp;</span>
774
776
  <span class="cline-any cline-neutral">&nbsp;</span>
775
- <span class="cline-any cline-yes">18x</span>
776
- <span class="cline-any cline-yes">18x</span>
777
+ <span class="cline-any cline-yes">19x</span>
778
+ <span class="cline-any cline-yes">19x</span>
777
779
  <span class="cline-any cline-yes">2x</span>
778
780
  <span class="cline-any cline-yes">2x</span>
779
781
  <span class="cline-any cline-yes">2x</span>
@@ -790,9 +792,9 @@
790
792
  <span class="cline-any cline-neutral">&nbsp;</span>
791
793
  <span class="cline-any cline-neutral">&nbsp;</span>
792
794
  <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-yes">43x</span>
795
+ <span class="cline-any cline-yes">49x</span>
794
796
  <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-yes">43x</span>
797
+ <span class="cline-any cline-yes">49x</span>
796
798
  <span class="cline-any cline-neutral">&nbsp;</span>
797
799
  <span class="cline-any cline-neutral">&nbsp;</span>
798
800
  <span class="cline-any cline-yes">4x</span>
@@ -806,33 +808,33 @@
806
808
  <span class="cline-any cline-neutral">&nbsp;</span>
807
809
  <span class="cline-any cline-neutral">&nbsp;</span>
808
810
  <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-yes">43x</span>
811
+ <span class="cline-any cline-yes">49x</span>
810
812
  <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-yes">43x</span>
813
+ <span class="cline-any cline-yes">49x</span>
812
814
  <span class="cline-any cline-neutral">&nbsp;</span>
813
815
  <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-yes">66x</span>
815
- <span class="cline-any cline-yes">66x</span>
816
+ <span class="cline-any cline-yes">72x</span>
817
+ <span class="cline-any cline-yes">72x</span>
816
818
  <span class="cline-any cline-yes">1x</span>
817
819
  <span class="cline-any cline-yes">1x</span>
818
820
  <span class="cline-any cline-yes">1x</span>
819
821
  <span class="cline-any cline-neutral">&nbsp;</span>
820
822
  <span class="cline-any cline-neutral">&nbsp;</span>
821
823
  <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-yes">43x</span>
824
+ <span class="cline-any cline-yes">49x</span>
823
825
  <span class="cline-any cline-neutral">&nbsp;</span>
824
826
  <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-yes">43x</span>
826
- <span class="cline-any cline-yes">17x</span>
827
- <span class="cline-any cline-yes">17x</span>
828
- <span class="cline-any cline-yes">17x</span>
829
- <span class="cline-any cline-yes">17x</span>
830
- <span class="cline-any cline-yes">14x</span>
827
+ <span class="cline-any cline-yes">49x</span>
828
+ <span class="cline-any cline-yes">18x</span>
829
+ <span class="cline-any cline-yes">18x</span>
830
+ <span class="cline-any cline-yes">18x</span>
831
+ <span class="cline-any cline-yes">18x</span>
832
+ <span class="cline-any cline-yes">15x</span>
831
833
  <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-yes">17x</span>
834
+ <span class="cline-any cline-yes">18x</span>
833
835
  <span class="cline-any cline-neutral">&nbsp;</span>
834
836
  <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-yes">43x</span>
837
+ <span class="cline-any cline-yes">49x</span>
836
838
  <span class="cline-any cline-neutral">&nbsp;</span>
837
839
  <span class="cline-any cline-neutral">&nbsp;</span>
838
840
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -843,59 +845,59 @@
843
845
  <span class="cline-any cline-neutral">&nbsp;</span>
844
846
  <span class="cline-any cline-neutral">&nbsp;</span>
845
847
  <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-yes">43x</span>
847
- <span class="cline-any cline-yes">43x</span>
848
+ <span class="cline-any cline-yes">49x</span>
849
+ <span class="cline-any cline-yes">49x</span>
848
850
  <span class="cline-any cline-neutral">&nbsp;</span>
849
851
  <span class="cline-any cline-neutral">&nbsp;</span>
850
852
  <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-yes">9x</span>
852
- <span class="cline-any cline-yes">9x</span>
853
+ <span class="cline-any cline-yes">11x</span>
854
+ <span class="cline-any cline-yes">11x</span>
853
855
  <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-yes">8x</span>
855
- <span class="cline-any cline-yes">2x</span>
856
+ <span class="cline-any cline-yes">10x</span>
857
+ <span class="cline-any cline-yes">3x</span>
856
858
  <span class="cline-any cline-neutral">&nbsp;</span>
857
859
  <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-yes">8x</span>
859
- <span class="cline-any cline-yes">8x</span>
860
- <span class="cline-any cline-yes">8x</span>
861
- <span class="cline-any cline-yes">24x</span>
860
+ <span class="cline-any cline-yes">10x</span>
861
+ <span class="cline-any cline-yes">10x</span>
862
+ <span class="cline-any cline-yes">10x</span>
863
+ <span class="cline-any cline-yes">30x</span>
862
864
  <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-yes">8x</span>
864
- <span class="cline-any cline-yes">8x</span>
865
- <span class="cline-any cline-yes">8x</span>
865
+ <span class="cline-any cline-yes">10x</span>
866
+ <span class="cline-any cline-yes">10x</span>
867
+ <span class="cline-any cline-yes">10x</span>
866
868
  <span class="cline-any cline-neutral">&nbsp;</span>
867
869
  <span class="cline-any cline-neutral">&nbsp;</span>
868
870
  <span class="cline-any cline-neutral">&nbsp;</span>
869
871
  <span class="cline-any cline-neutral">&nbsp;</span>
870
872
  <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-yes">17x</span>
872
- <span class="cline-any cline-yes">17x</span>
873
+ <span class="cline-any cline-yes">19x</span>
874
+ <span class="cline-any cline-yes">19x</span>
873
875
  <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-yes">17x</span>
876
+ <span class="cline-any cline-yes">18x</span>
875
877
  <span class="cline-any cline-yes">1x</span>
876
878
  <span class="cline-any cline-yes">1x</span>
877
879
  <span class="cline-any cline-neutral">&nbsp;</span>
878
880
  <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-yes">16x</span>
880
- <span class="cline-any cline-yes">16x</span>
881
+ <span class="cline-any cline-yes">17x</span>
882
+ <span class="cline-any cline-yes">17x</span>
881
883
  <span class="cline-any cline-yes">11x</span>
882
884
  <span class="cline-any cline-neutral">&nbsp;</span>
883
885
  <span class="cline-any cline-neutral">&nbsp;</span>
884
886
  <span class="cline-any cline-neutral">&nbsp;</span>
885
887
  <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-yes">16x</span>
887
- <span class="cline-any cline-yes">16x</span>
888
+ <span class="cline-any cline-yes">17x</span>
889
+ <span class="cline-any cline-yes">17x</span>
888
890
  <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-yes">16x</span>
892
+ <span class="cline-any cline-yes">15x</span>
889
893
  <span class="cline-any cline-yes">15x</span>
890
- <span class="cline-any cline-yes">14x</span>
891
- <span class="cline-any cline-yes">14x</span>
892
894
  <span class="cline-any cline-neutral">&nbsp;</span>
893
895
  <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-yes">15x</span>
895
- <span class="cline-any cline-yes">15x</span>
896
+ <span class="cline-any cline-yes">16x</span>
897
+ <span class="cline-any cline-yes">16x</span>
896
898
  <span class="cline-any cline-neutral">&nbsp;</span>
897
899
  <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-yes">15x</span>
900
+ <span class="cline-any cline-yes">16x</span>
899
901
  <span class="cline-any cline-neutral">&nbsp;</span>
900
902
  <span class="cline-any cline-yes">27x</span>
901
903
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -904,19 +906,19 @@
904
906
  <span class="cline-any cline-yes">1x</span>
905
907
  <span class="cline-any cline-neutral">&nbsp;</span>
906
908
  <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-yes">14x</span>
909
+ <span class="cline-any cline-yes">15x</span>
908
910
  <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-yes">16x</span>
911
+ <span class="cline-any cline-yes">17x</span>
910
912
  <span class="cline-any cline-neutral">&nbsp;</span>
911
913
  <span class="cline-any cline-neutral">&nbsp;</span>
912
914
  <span class="cline-any cline-neutral">&nbsp;</span>
913
915
  <span class="cline-any cline-neutral">&nbsp;</span>
914
916
  <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-yes">16x</span>
917
+ <span class="cline-any cline-yes">17x</span>
916
918
  <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-yes">13x</span>
918
- <span class="cline-any cline-yes">13x</span>
919
- <span class="cline-any cline-yes">13x</span>
919
+ <span class="cline-any cline-yes">14x</span>
920
+ <span class="cline-any cline-yes">14x</span>
921
+ <span class="cline-any cline-yes">14x</span>
920
922
  <span class="cline-any cline-neutral">&nbsp;</span>
921
923
  <span class="cline-any cline-yes">1x</span>
922
924
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -930,18 +932,18 @@
930
932
  <span class="cline-any cline-neutral">&nbsp;</span>
931
933
  <span class="cline-any cline-neutral">&nbsp;</span>
932
934
  <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-yes">88x</span>
934
- <span class="cline-any cline-yes">89x</span>
935
- <span class="cline-any cline-yes">70x</span>
936
- <span class="cline-any cline-yes">72x</span>
935
+ <span class="cline-any cline-yes">95x</span>
936
+ <span class="cline-any cline-yes">96x</span>
937
+ <span class="cline-any cline-yes">76x</span>
938
+ <span class="cline-any cline-yes">78x</span>
937
939
  <span class="cline-any cline-neutral">&nbsp;</span>
938
940
  <span class="cline-any cline-neutral">&nbsp;</span>
939
941
  <span class="cline-any cline-neutral">&nbsp;</span>
940
942
  <span class="cline-any cline-neutral">&nbsp;</span>
941
943
  <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-yes">66x</span>
943
- <span class="cline-any cline-yes">66x</span>
944
- <span class="cline-any cline-yes">66x</span>
944
+ <span class="cline-any cline-yes">72x</span>
945
+ <span class="cline-any cline-yes">72x</span>
946
+ <span class="cline-any cline-yes">72x</span>
945
947
  <span class="cline-any cline-neutral">&nbsp;</span>
946
948
  <span class="cline-any cline-neutral">&nbsp;</span>
947
949
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -953,42 +955,44 @@
953
955
  <span class="cline-any cline-neutral">&nbsp;</span>
954
956
  <span class="cline-any cline-neutral">&nbsp;</span>
955
957
  <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-yes">55x</span>
957
- <span class="cline-any cline-yes">55x</span>
958
+ <span class="cline-any cline-yes">61x</span>
959
+ <span class="cline-any cline-yes">61x</span>
958
960
  <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-yes">53x</span>
960
- <span class="cline-any cline-yes">53x</span>
961
- <span class="cline-any cline-yes">51x</span>
962
- <span class="cline-any cline-yes">51x</span>
961
+ <span class="cline-any cline-yes">59x</span>
962
+ <span class="cline-any cline-yes">59x</span>
963
+ <span class="cline-any cline-yes">57x</span>
964
+ <span class="cline-any cline-yes">57x</span>
963
965
  <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-yes">53x</span>
966
+ <span class="cline-any cline-yes">59x</span>
965
967
  <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-yes">53x</span>
967
- <span class="cline-any cline-yes">53x</span>
968
- <span class="cline-any cline-yes">52x</span>
969
- <span class="cline-any cline-yes">52x</span>
968
+ <span class="cline-any cline-yes">59x</span>
969
+ <span class="cline-any cline-yes">59x</span>
970
+ <span class="cline-any cline-yes">58x</span>
971
+ <span class="cline-any cline-yes">58x</span>
970
972
  <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-yes">53x</span>
973
+ <span class="cline-any cline-yes">59x</span>
972
974
  <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-yes">53x</span>
974
- <span class="cline-any cline-yes">53x</span>
975
+ <span class="cline-any cline-yes">59x</span>
976
+ <span class="cline-any cline-yes">61x</span>
975
977
  <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-yes">53x</span>
977
978
  <span class="cline-any cline-neutral">&nbsp;</span>
978
979
  <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-yes">61x</span>
979
981
  <span class="cline-any cline-neutral">&nbsp;</span>
980
982
  <span class="cline-any cline-neutral">&nbsp;</span>
981
983
  <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-yes">53x</span>
983
984
  <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-yes">53x</span>
985
985
  <span class="cline-any cline-neutral">&nbsp;</span>
986
+ <span class="cline-any cline-yes">61x</span>
986
987
  <span class="cline-any cline-neutral">&nbsp;</span>
988
+ <span class="cline-any cline-yes">61x</span>
987
989
  <span class="cline-any cline-neutral">&nbsp;</span>
988
990
  <span class="cline-any cline-neutral">&nbsp;</span>
989
991
  <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-yes">53x</span>
991
- <span class="cline-any cline-yes">53x</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-yes">61x</span>
995
+ <span class="cline-any cline-yes">61x</span>
992
996
  <span class="cline-any cline-neutral">&nbsp;</span>
993
997
  <span class="cline-any cline-yes">2x</span>
994
998
  <span class="cline-any cline-yes">2x</span>
@@ -996,21 +1000,21 @@
996
1000
  <span class="cline-any cline-neutral">&nbsp;</span>
997
1001
  <span class="cline-any cline-neutral">&nbsp;</span>
998
1002
  <span class="cline-any cline-neutral">&nbsp;</span>
1003
+ <span class="cline-any cline-yes">19x</span>
1004
+ <span class="cline-any cline-yes">19x</span>
1005
+ <span class="cline-any cline-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-yes">18x</span>
999
1007
  <span class="cline-any cline-yes">18x</span>
1000
1008
  <span class="cline-any cline-yes">18x</span>
1001
1009
  <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-yes">17x</span>
1003
- <span class="cline-any cline-yes">17x</span>
1004
- <span class="cline-any cline-yes">17x</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-yes">17x</span>
1010
+ <span class="cline-any cline-yes">18x</span>
1007
1011
  <span class="cline-any cline-neutral">&nbsp;</span>
1008
1012
  <span class="cline-any cline-neutral">&nbsp;</span>
1009
1013
  <span class="cline-any cline-neutral">&nbsp;</span>
1010
1014
  <span class="cline-any cline-neutral">&nbsp;</span>
1011
1015
  <span class="cline-any cline-neutral">&nbsp;</span>
1012
1016
  <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-yes">17x</span>
1017
+ <span class="cline-any cline-yes">18x</span>
1014
1018
  <span class="cline-any cline-neutral">&nbsp;</span>
1015
1019
  <span class="cline-any cline-neutral">&nbsp;</span>
1016
1020
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1386,7 +1390,7 @@ export class CollabServer {
1386
1390
  }
1387
1391
  &nbsp;
1388
1392
  <span class="missing-if-branch" title="if path not taken" >I</span>if (doc.persistTimer) clearTimeout(doc.persistTimer);
1389
- <span class="missing-if-branch" title="else path not taken" >E</span>if (doc.idleTimer) clearTimeout(doc.idleTimer);
1393
+ if (doc.idleTimer) clearTimeout(doc.idleTimer);
1390
1394
  for (const unsub of doc.natsSubs) {
1391
1395
  unsub();
1392
1396
  }
@@ -1399,7 +1403,7 @@ export class CollabServer {
1399
1403
  &nbsp;
1400
1404
  private schedulePersist(docId: string): void {
1401
1405
  const doc = this.activeDocuments.get(docId);
1402
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!doc) <span class="cstat-no" title="statement not covered" >return;</span>
1406
+ if (!doc) return;
1403
1407
  &nbsp;
1404
1408
  if (doc.firstDirtyAt &amp;&amp; Date.now() - doc.firstDirtyAt &gt; this.config.persistMaxWaitMs) {
1405
1409
  void this.persistDocument(docId);
@@ -1500,8 +1504,10 @@ export class CollabServer {
1500
1504
  }
1501
1505
  docs.add(docId);
1502
1506
  &nbsp;
1503
- const clientSV = base64Decode(stateVector);
1504
- const diff = Y.encodeStateAsUpdate(doc.ydoc, clientSV);
1507
+ const clientSV = stateVector ? base64Decode(stateVector) : undefined;
1508
+ const diff = clientSV
1509
+ ? Y.encodeStateAsUpdate(doc.ydoc, clientSV)
1510
+ : Y.encodeStateAsUpdate(doc.ydoc);
1505
1511
  &nbsp;
1506
1512
  const response: CollabSyncOutput = {
1507
1513
  docId,
@@ -1660,16 +1666,16 @@ export class CollabServer {
1660
1666
  <div class='footer quiet pad2 space-top1 center small'>
1661
1667
  Code coverage generated by
1662
1668
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1663
- at 2026-04-05T11:16:35.412Z
1669
+ at 2026-04-08T15:51:54.932Z
1664
1670
  </div>
1665
- <script src="../../prettify.js"></script>
1671
+ <script src="prettify.js"></script>
1666
1672
  <script>
1667
1673
  window.onload = function () {
1668
1674
  prettyPrint();
1669
1675
  };
1670
1676
  </script>
1671
- <script src="../../sorter.js"></script>
1672
- <script src="../../block-navigation.js"></script>
1677
+ <script src="sorter.js"></script>
1678
+ <script src="block-navigation.js"></script>
1673
1679
  </body>
1674
1680
  </html>
1675
1681