@yorkie-js/react 0.6.47 → 0.6.48
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.
- package/dist/yorkie-js-react.es.js +250 -180
- package/dist/yorkie-js-react.es.js.map +1 -1
- package/dist/yorkie-js-react.js +250 -180
- package/dist/yorkie-js-react.js.map +1 -1
- package/package.json +2 -2
package/dist/yorkie-js-react.js
CHANGED
|
@@ -5473,7 +5473,7 @@
|
|
|
5473
5473
|
DocEventType2[DocEventType2["DOCUMENT_BROADCAST"] = 3] = "DOCUMENT_BROADCAST";
|
|
5474
5474
|
return DocEventType2;
|
|
5475
5475
|
})(DocEventType$1 || {});
|
|
5476
|
-
const file_src_api_yorkie_v1_yorkie = /* @__PURE__ */ fileDesc("
|
|
5476
|
+
const file_src_api_yorkie_v1_yorkie = /* @__PURE__ */ fileDesc("Ch5zcmMvYXBpL3lvcmtpZS92MS95b3JraWUucHJvdG8SCXlvcmtpZS52MSKeAQoVQWN0aXZhdGVDbGllbnRSZXF1ZXN0EhIKCmNsaWVudF9rZXkYASABKAkSQAoIbWV0YWRhdGEYAiADKAsyLi55b3JraWUudjEuQWN0aXZhdGVDbGllbnRSZXF1ZXN0Lk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIisKFkFjdGl2YXRlQ2xpZW50UmVzcG9uc2USEQoJY2xpZW50X2lkGAEgASgJIkEKF0RlYWN0aXZhdGVDbGllbnRSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtzeW5jaHJvbm91cxgCIAEoCCIaChhEZWFjdGl2YXRlQ2xpZW50UmVzcG9uc2UiagoVQXR0YWNoRG9jdW1lbnRSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRIqCgtjaGFuZ2VfcGFjaxgCIAEoCzIVLnlvcmtpZS52MS5DaGFuZ2VQYWNrEhIKCnNjaGVtYV9rZXkYAyABKAkinwEKFkF0dGFjaERvY3VtZW50UmVzcG9uc2USEwoLZG9jdW1lbnRfaWQYASABKAkSKgoLY2hhbmdlX3BhY2sYAiABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxIdChVtYXhfc2l6ZV9wZXJfZG9jdW1lbnQYAyABKAUSJQoMc2NoZW1hX3J1bGVzGAQgAygLMg8ueW9ya2llLnYxLlJ1bGUiiwEKFURldGFjaERvY3VtZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSKgoLY2hhbmdlX3BhY2sYAyABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxIeChZyZW1vdmVfaWZfbm90X2F0dGFjaGVkGAQgASgIIkQKFkRldGFjaERvY3VtZW50UmVzcG9uc2USKgoLY2hhbmdlX3BhY2sYAiABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjayJTCgxXYXRjaFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEjAKCXJlc291cmNlcxgCIAMoCzIdLnlvcmtpZS52MS5SZXNvdXJjZURlc2NyaXB0b3IihAEKElJlc291cmNlRGVzY3JpcHRvchIxCghkb2N1bWVudBgBIAEoCzIdLnlvcmtpZS52MS5Eb2N1bWVudERlc2NyaXB0b3JIABIvCgdjaGFubmVsGAIgASgLMhwueW9ya2llLnYxLkNoYW5uZWxEZXNjcmlwdG9ySABCCgoIcmVzb3VyY2UiKQoSRG9jdW1lbnREZXNjcmlwdG9yEhMKC2RvY3VtZW50X2lkGAEgASgJIigKEUNoYW5uZWxEZXNjcmlwdG9yEhMKC2NoYW5uZWxfa2V5GAEgASgJInkKDVdhdGNoUmVzcG9uc2USOAoOaW5pdGlhbGl6YXRpb24YASABKAsyHi55b3JraWUudjEuV2F0Y2hJbml0aWFsaXphdGlvbkgAEiYKBWV2ZW50GAIgASgLMhUueW9ya2llLnYxLldhdGNoRXZlbnRIAEIGCgRib2R5IkYKE1dhdGNoSW5pdGlhbGl6YXRpb24SLwoOcmVzb3VyY2VfaW5pdHMYASADKAsyFy55b3JraWUudjEuUmVzb3VyY2VJbml0IngKDFJlc291cmNlSW5pdBIwCg1kb2N1bWVudF9pbml0GAEgASgLMhcueW9ya2llLnYxLkRvY3VtZW50SW5pdEgAEi4KDGNoYW5uZWxfaW5pdBgCIAEoCzIWLnlvcmtpZS52MS5DaGFubmVsSW5pdEgAQgYKBGluaXQiNwoMRG9jdW1lbnRJbml0EhMKC2RvY3VtZW50X2lkGAEgASgJEhIKCmNsaWVudF9pZHMYAiADKAkiRgoLQ2hhbm5lbEluaXQSEwoLY2hhbm5lbF9rZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoAxILCgNzZXEYAyABKAMiewoKV2F0Y2hFdmVudBItCglkb2NfZXZlbnQYASABKAsyGC55b3JraWUudjEuRG9jV2F0Y2hFdmVudEgAEjUKDWNoYW5uZWxfZXZlbnQYAiABKAsyHC55b3JraWUudjEuQ2hhbm5lbFdhdGNoRXZlbnRIAEIHCgVldmVudCJICg1Eb2NXYXRjaEV2ZW50EhMKC2RvY3VtZW50X2lkGAEgASgJEiIKBWV2ZW50GAIgASgLMhMueW9ya2llLnYxLkRvY0V2ZW50IlAKEUNoYW5uZWxXYXRjaEV2ZW50EhMKC2NoYW5uZWxfa2V5GAEgASgJEiYKBWV2ZW50GAIgASgLMhcueW9ya2llLnYxLkNoYW5uZWxFdmVudCJrChVSZW1vdmVEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siRAoWUmVtb3ZlRG9jdW1lbnRSZXNwb25zZRIqCgtjaGFuZ2VfcGFjaxgBIAEoCzIVLnlvcmtpZS52MS5DaGFuZ2VQYWNrIn8KFlB1c2hQdWxsQ2hhbmdlc1JlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSEQoJcHVzaF9vbmx5GAQgASgIIkUKF1B1c2hQdWxsQ2hhbmdlc1Jlc3BvbnNlEioKC2NoYW5nZV9wYWNrGAEgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siYwoVQ3JlYXRlUmV2aXNpb25SZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRINCgVsYWJlbBgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJGChZDcmVhdGVSZXZpc2lvblJlc3BvbnNlEiwKCHJldmlzaW9uGAEgASgLMhoueW9ya2llLnYxLlJldmlzaW9uU3VtbWFyeSJRChJHZXRSZXZpc2lvblJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEhMKC3JldmlzaW9uX2lkGAMgASgJIkMKE0dldFJldmlzaW9uUmVzcG9uc2USLAoIcmV2aXNpb24YASABKAsyGi55b3JraWUudjEuUmV2aXNpb25TdW1tYXJ5InUKFExpc3RSZXZpc2lvbnNSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRIRCglwYWdlX3NpemUYAyABKAUSDgoGb2Zmc2V0GAQgASgFEhIKCmlzX2ZvcndhcmQYBSABKAgiRgoVTGlzdFJldmlzaW9uc1Jlc3BvbnNlEi0KCXJldmlzaW9ucxgBIAMoCzIaLnlvcmtpZS52MS5SZXZpc2lvblN1bW1hcnkiVQoWUmVzdG9yZVJldmlzaW9uUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSEwoLcmV2aXNpb25faWQYBCABKAkiGQoXUmVzdG9yZVJldmlzaW9uUmVzcG9uc2UiPgoUQXR0YWNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJIkIKFUF0dGFjaENoYW5uZWxSZXNwb25zZRISCgpzZXNzaW9uX2lkGAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAMiUgoURGV0YWNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJEhIKCnNlc3Npb25faWQYAyABKAkiLgoVRGV0YWNoQ2hhbm5lbFJlc3BvbnNlEhUKDXNlc3Npb25fY291bnQYASABKAMiUwoVUmVmcmVzaENoYW5uZWxSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtjaGFubmVsX2tleRgCIAEoCRISCgpzZXNzaW9uX2lkGAMgASgJIi8KFlJlZnJlc2hDaGFubmVsUmVzcG9uc2USFQoNc2Vzc2lvbl9jb3VudBgBIAEoAyJaChBCcm9hZGNhc3RSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtjaGFubmVsX2tleRgCIAEoCRINCgV0b3BpYxgDIAEoCRIPCgdwYXlsb2FkGAQgASgMIhMKEUJyb2FkY2FzdFJlc3BvbnNlMpgKCg1Zb3JraWVTZXJ2aWNlElcKDkFjdGl2YXRlQ2xpZW50EiAueW9ya2llLnYxLkFjdGl2YXRlQ2xpZW50UmVxdWVzdBohLnlvcmtpZS52MS5BY3RpdmF0ZUNsaWVudFJlc3BvbnNlIgASXQoQRGVhY3RpdmF0ZUNsaWVudBIiLnlvcmtpZS52MS5EZWFjdGl2YXRlQ2xpZW50UmVxdWVzdBojLnlvcmtpZS52MS5EZWFjdGl2YXRlQ2xpZW50UmVzcG9uc2UiABJXCg5BdHRhY2hEb2N1bWVudBIgLnlvcmtpZS52MS5BdHRhY2hEb2N1bWVudFJlcXVlc3QaIS55b3JraWUudjEuQXR0YWNoRG9jdW1lbnRSZXNwb25zZSIAElcKDkRldGFjaERvY3VtZW50EiAueW9ya2llLnYxLkRldGFjaERvY3VtZW50UmVxdWVzdBohLnlvcmtpZS52MS5EZXRhY2hEb2N1bWVudFJlc3BvbnNlIgASVwoOUmVtb3ZlRG9jdW1lbnQSIC55b3JraWUudjEuUmVtb3ZlRG9jdW1lbnRSZXF1ZXN0GiEueW9ya2llLnYxLlJlbW92ZURvY3VtZW50UmVzcG9uc2UiABJaCg9QdXNoUHVsbENoYW5nZXMSIS55b3JraWUudjEuUHVzaFB1bGxDaGFuZ2VzUmVxdWVzdBoiLnlvcmtpZS52MS5QdXNoUHVsbENoYW5nZXNSZXNwb25zZSIAEj4KBVdhdGNoEhcueW9ya2llLnYxLldhdGNoUmVxdWVzdBoYLnlvcmtpZS52MS5XYXRjaFJlc3BvbnNlIgAwARJXCg5DcmVhdGVSZXZpc2lvbhIgLnlvcmtpZS52MS5DcmVhdGVSZXZpc2lvblJlcXVlc3QaIS55b3JraWUudjEuQ3JlYXRlUmV2aXNpb25SZXNwb25zZSIAEk4KC0dldFJldmlzaW9uEh0ueW9ya2llLnYxLkdldFJldmlzaW9uUmVxdWVzdBoeLnlvcmtpZS52MS5HZXRSZXZpc2lvblJlc3BvbnNlIgASVAoNTGlzdFJldmlzaW9ucxIfLnlvcmtpZS52MS5MaXN0UmV2aXNpb25zUmVxdWVzdBogLnlvcmtpZS52MS5MaXN0UmV2aXNpb25zUmVzcG9uc2UiABJaCg9SZXN0b3JlUmV2aXNpb24SIS55b3JraWUudjEuUmVzdG9yZVJldmlzaW9uUmVxdWVzdBoiLnlvcmtpZS52MS5SZXN0b3JlUmV2aXNpb25SZXNwb25zZSIAElQKDUF0dGFjaENoYW5uZWwSHy55b3JraWUudjEuQXR0YWNoQ2hhbm5lbFJlcXVlc3QaIC55b3JraWUudjEuQXR0YWNoQ2hhbm5lbFJlc3BvbnNlIgASVAoNRGV0YWNoQ2hhbm5lbBIfLnlvcmtpZS52MS5EZXRhY2hDaGFubmVsUmVxdWVzdBogLnlvcmtpZS52MS5EZXRhY2hDaGFubmVsUmVzcG9uc2UiABJXCg5SZWZyZXNoQ2hhbm5lbBIgLnlvcmtpZS52MS5SZWZyZXNoQ2hhbm5lbFJlcXVlc3QaIS55b3JraWUudjEuUmVmcmVzaENoYW5uZWxSZXNwb25zZSIAEkgKCUJyb2FkY2FzdBIbLnlvcmtpZS52MS5Ccm9hZGNhc3RSZXF1ZXN0GhwueW9ya2llLnYxLkJyb2FkY2FzdFJlc3BvbnNlIgBCRQoRZGV2LnlvcmtpZS5hcGkudjFQAVouZ2l0aHViLmNvbS95b3JraWUtdGVhbS95b3JraWUvYXBpL3lvcmtpZS92MTt2MWIGcHJvdG8z", [file_src_api_yorkie_v1_resources]);
|
|
5477
5477
|
const YorkieService = /* @__PURE__ */ serviceDesc(file_src_api_yorkie_v1_yorkie, 0);
|
|
5478
5478
|
const file_google_rpc_error_details = /* @__PURE__ */ fileDesc("Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMikwEKCUVycm9ySW5mbxIOCgZyZWFzb24YASABKAkSDgoGZG9tYWluGAIgASgJEjUKCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwoJUmV0cnlJbmZvEi4KC3JldHJ5X2RlbGF5GAEgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjIKCURlYnVnSW5mbxIVCg1zdGFja19lbnRyaWVzGAEgAygJEg4KBmRldGFpbBgCIAEoCSKPAwoMUXVvdGFGYWlsdXJlEjYKCnZpb2xhdGlvbnMYASADKAsyIi5nb29nbGUucnBjLlF1b3RhRmFpbHVyZS5WaW9sYXRpb24axgIKCVZpb2xhdGlvbhIPCgdzdWJqZWN0GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2FwaV9zZXJ2aWNlGAMgASgJEhQKDHF1b3RhX21ldHJpYxgEIAEoCRIQCghxdW90YV9pZBgFIAEoCRJRChBxdW90YV9kaW1lbnNpb25zGAYgAygLMjcuZ29vZ2xlLnJwYy5RdW90YUZhaWx1cmUuVmlvbGF0aW9uLlF1b3RhRGltZW5zaW9uc0VudHJ5EhMKC3F1b3RhX3ZhbHVlGAcgASgDEh8KEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAiAEBGjYKFFF1b3RhRGltZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSKVAQoTUHJlY29uZGl0aW9uRmFpbHVyZRI9Cgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvbho/CglWaW9sYXRpb24SDAoEdHlwZRgBIAEoCRIPCgdzdWJqZWN0GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIswBCgpCYWRSZXF1ZXN0Ej8KEGZpZWxkX3Zpb2xhdGlvbnMYASADKAsyJS5nb29nbGUucnBjLkJhZFJlcXVlc3QuRmllbGRWaW9sYXRpb24afQoORmllbGRWaW9sYXRpb24SDQoFZmllbGQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDgoGcmVhc29uGAMgASgJEjcKEWxvY2FsaXplZF9tZXNzYWdlGAQgASgLMhwuZ29vZ2xlLnJwYy5Mb2NhbGl6ZWRNZXNzYWdlIjcKC1JlcXVlc3RJbmZvEhIKCnJlcXVlc3RfaWQYASABKAkSFAoMc2VydmluZ19kYXRhGAIgASgJImAKDFJlc291cmNlSW5mbxIVCg1yZXNvdXJjZV90eXBlGAEgASgJEhUKDXJlc291cmNlX25hbWUYAiABKAkSDQoFb3duZXIYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiVgoESGVscBIkCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rGigKBExpbmsSEwoLZGVzY3JpcHRpb24YASABKAkSCwoDdXJsGAIgASgJIjMKEExvY2FsaXplZE1lc3NhZ2USDgoGbG9jYWxlGAEgASgJEg8KB21lc3NhZ2UYAiABKAlCbAoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFaP2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvcnBjL2VycmRldGFpbHM7ZXJyZGV0YWlsc6ICA1JQQ2IGcHJvdG8z", [file_google_protobuf_duration]);
|
|
5479
5479
|
const ErrorInfoSchema = /* @__PURE__ */ messageDesc(file_google_rpc_error_details, 0);
|
|
@@ -18762,61 +18762,65 @@
|
|
|
18762
18762
|
}
|
|
18763
18763
|
}
|
|
18764
18764
|
/**
|
|
18765
|
-
* `
|
|
18765
|
+
* `applyWatchInit` applies the watch initialization with the given client IDs.
|
|
18766
18766
|
*/
|
|
18767
|
-
|
|
18768
|
-
|
|
18769
|
-
|
|
18770
|
-
|
|
18771
|
-
|
|
18772
|
-
if (clientID === this.changeID.getActorID()) {
|
|
18773
|
-
continue;
|
|
18774
|
-
}
|
|
18775
|
-
onlineClients.add(clientID);
|
|
18767
|
+
applyWatchInit(clientIDs) {
|
|
18768
|
+
const onlineClients = /* @__PURE__ */ new Set();
|
|
18769
|
+
for (const clientID of clientIDs) {
|
|
18770
|
+
if (clientID === this.changeID.getActorID()) {
|
|
18771
|
+
continue;
|
|
18776
18772
|
}
|
|
18777
|
-
|
|
18778
|
-
this.publish([
|
|
18779
|
-
{
|
|
18780
|
-
type: "initialized",
|
|
18781
|
-
source: OpSource.Local,
|
|
18782
|
-
value: this.getPresences()
|
|
18783
|
-
}
|
|
18784
|
-
]);
|
|
18785
|
-
return;
|
|
18773
|
+
onlineClients.add(clientID);
|
|
18786
18774
|
}
|
|
18787
|
-
|
|
18788
|
-
|
|
18789
|
-
|
|
18790
|
-
|
|
18791
|
-
|
|
18792
|
-
|
|
18793
|
-
|
|
18794
|
-
|
|
18795
|
-
|
|
18796
|
-
|
|
18797
|
-
|
|
18798
|
-
|
|
18799
|
-
|
|
18800
|
-
|
|
18801
|
-
|
|
18802
|
-
|
|
18803
|
-
|
|
18804
|
-
|
|
18805
|
-
|
|
18806
|
-
|
|
18807
|
-
|
|
18808
|
-
|
|
18809
|
-
events.push({
|
|
18810
|
-
type: "unwatched",
|
|
18811
|
-
source: OpSource.Remote,
|
|
18812
|
-
value: { clientID: publisher, presence }
|
|
18813
|
-
});
|
|
18814
|
-
}
|
|
18775
|
+
this.setOnlineClients(onlineClients);
|
|
18776
|
+
for (const clientID of Array.from(this.presences.keys())) {
|
|
18777
|
+
if (clientID !== this.changeID.getActorID() && !onlineClients.has(clientID)) {
|
|
18778
|
+
this.presences.delete(clientID);
|
|
18779
|
+
}
|
|
18780
|
+
}
|
|
18781
|
+
this.publish([
|
|
18782
|
+
{
|
|
18783
|
+
type: "initialized",
|
|
18784
|
+
source: OpSource.Local,
|
|
18785
|
+
value: this.getPresences()
|
|
18786
|
+
}
|
|
18787
|
+
]);
|
|
18788
|
+
}
|
|
18789
|
+
/**
|
|
18790
|
+
* `applyDocEvent` applies the given doc event into this document.
|
|
18791
|
+
*/
|
|
18792
|
+
applyDocEvent(type, publisher) {
|
|
18793
|
+
const events = [];
|
|
18794
|
+
if (type === DocEventType$1.DOCUMENT_WATCHED) {
|
|
18795
|
+
if (this.onlineClients.has(publisher) && this.hasPresence(publisher)) {
|
|
18796
|
+
return;
|
|
18815
18797
|
}
|
|
18816
|
-
|
|
18817
|
-
|
|
18798
|
+
this.addOnlineClient(publisher);
|
|
18799
|
+
if (this.hasPresence(publisher)) {
|
|
18800
|
+
events.push({
|
|
18801
|
+
type: "watched",
|
|
18802
|
+
source: OpSource.Remote,
|
|
18803
|
+
value: {
|
|
18804
|
+
clientID: publisher,
|
|
18805
|
+
presence: this.getPresence(publisher)
|
|
18806
|
+
}
|
|
18807
|
+
});
|
|
18808
|
+
}
|
|
18809
|
+
} else if (type === DocEventType$1.DOCUMENT_UNWATCHED) {
|
|
18810
|
+
const presence = this.getPresence(publisher);
|
|
18811
|
+
this.removeOnlineClient(publisher);
|
|
18812
|
+
this.presences.delete(publisher);
|
|
18813
|
+
if (presence) {
|
|
18814
|
+
events.push({
|
|
18815
|
+
type: "unwatched",
|
|
18816
|
+
source: OpSource.Remote,
|
|
18817
|
+
value: { clientID: publisher, presence }
|
|
18818
|
+
});
|
|
18818
18819
|
}
|
|
18819
18820
|
}
|
|
18821
|
+
if (events.length) {
|
|
18822
|
+
this.publish(events);
|
|
18823
|
+
}
|
|
18820
18824
|
}
|
|
18821
18825
|
/**
|
|
18822
18826
|
* `applyStatus` applies the document status into this document.
|
|
@@ -19268,7 +19272,7 @@
|
|
|
19268
19272
|
};
|
|
19269
19273
|
}
|
|
19270
19274
|
const name$1 = "@yorkie-js/sdk";
|
|
19271
|
-
const version$1 = "0.6.
|
|
19275
|
+
const version$1 = "0.6.48";
|
|
19272
19276
|
const pkg$1 = {
|
|
19273
19277
|
name: name$1,
|
|
19274
19278
|
version: version$1
|
|
@@ -19506,6 +19510,46 @@
|
|
|
19506
19510
|
}
|
|
19507
19511
|
}
|
|
19508
19512
|
}
|
|
19513
|
+
function runWatchStream(config, handleConnectError, setWatchLoopInactive) {
|
|
19514
|
+
const {
|
|
19515
|
+
stream,
|
|
19516
|
+
ac,
|
|
19517
|
+
isInit,
|
|
19518
|
+
onResponse,
|
|
19519
|
+
onStreamEnd,
|
|
19520
|
+
onError,
|
|
19521
|
+
onDisconnect,
|
|
19522
|
+
shouldIgnoreError
|
|
19523
|
+
} = config;
|
|
19524
|
+
return new Promise((resolve, reject) => {
|
|
19525
|
+
const handleStream = async () => {
|
|
19526
|
+
try {
|
|
19527
|
+
let resolved = false;
|
|
19528
|
+
for await (const resp of stream) {
|
|
19529
|
+
onResponse(resp);
|
|
19530
|
+
if (!resolved && isInit(resp)) {
|
|
19531
|
+
resolved = true;
|
|
19532
|
+
resolve([stream, ac]);
|
|
19533
|
+
}
|
|
19534
|
+
}
|
|
19535
|
+
onStreamEnd();
|
|
19536
|
+
onDisconnect();
|
|
19537
|
+
} catch (err) {
|
|
19538
|
+
if (shouldIgnoreError && shouldIgnoreError(err)) {
|
|
19539
|
+
return;
|
|
19540
|
+
}
|
|
19541
|
+
onError(err);
|
|
19542
|
+
if (await handleConnectError(err)) {
|
|
19543
|
+
onDisconnect();
|
|
19544
|
+
} else {
|
|
19545
|
+
setWatchLoopInactive();
|
|
19546
|
+
}
|
|
19547
|
+
reject(err);
|
|
19548
|
+
}
|
|
19549
|
+
};
|
|
19550
|
+
handleStream();
|
|
19551
|
+
});
|
|
19552
|
+
}
|
|
19509
19553
|
var SyncMode = /* @__PURE__ */ ((SyncMode2) => {
|
|
19510
19554
|
SyncMode2["Manual"] = "manual";
|
|
19511
19555
|
SyncMode2["Realtime"] = "realtime";
|
|
@@ -20494,10 +20538,17 @@
|
|
|
20494
20538
|
* @internal
|
|
20495
20539
|
*/
|
|
20496
20540
|
createDocumentWatchStream(attachment, key, ac, onDisconnect) {
|
|
20497
|
-
const stream = this.rpcClient.
|
|
20541
|
+
const stream = this.rpcClient.watch(
|
|
20498
20542
|
{
|
|
20499
20543
|
clientId: this.id,
|
|
20500
|
-
|
|
20544
|
+
resources: [
|
|
20545
|
+
{
|
|
20546
|
+
resource: {
|
|
20547
|
+
case: "document",
|
|
20548
|
+
value: { documentId: attachment.resourceID }
|
|
20549
|
+
}
|
|
20550
|
+
}
|
|
20551
|
+
]
|
|
20501
20552
|
},
|
|
20502
20553
|
{
|
|
20503
20554
|
headers: { "x-shard-key": `${this.apiKey}/${key}` },
|
|
@@ -20514,81 +20565,74 @@
|
|
|
20514
20565
|
if (attachment.changeEventReceived !== void 0) {
|
|
20515
20566
|
attachment.changeEventReceived = true;
|
|
20516
20567
|
}
|
|
20517
|
-
|
|
20518
|
-
|
|
20519
|
-
|
|
20520
|
-
|
|
20521
|
-
|
|
20522
|
-
|
|
20523
|
-
|
|
20524
|
-
|
|
20525
|
-
|
|
20526
|
-
|
|
20527
|
-
|
|
20528
|
-
|
|
20529
|
-
|
|
20530
|
-
|
|
20531
|
-
|
|
20532
|
-
|
|
20533
|
-
|
|
20534
|
-
|
|
20535
|
-
|
|
20536
|
-
|
|
20537
|
-
|
|
20538
|
-
|
|
20539
|
-
|
|
20568
|
+
const resetAndPublishDisconnect = () => {
|
|
20569
|
+
attachment.resource.resetOnlineClients();
|
|
20570
|
+
attachment.resource.publish([
|
|
20571
|
+
{
|
|
20572
|
+
type: DocEventType.Initialized,
|
|
20573
|
+
source: OpSource.Local,
|
|
20574
|
+
value: attachment.resource.getPresences()
|
|
20575
|
+
}
|
|
20576
|
+
]);
|
|
20577
|
+
attachment.resource.publish([
|
|
20578
|
+
{
|
|
20579
|
+
type: DocEventType.ConnectionChanged,
|
|
20580
|
+
value: StreamConnectionStatus.Disconnected
|
|
20581
|
+
}
|
|
20582
|
+
]);
|
|
20583
|
+
};
|
|
20584
|
+
return runWatchStream(
|
|
20585
|
+
{
|
|
20586
|
+
stream,
|
|
20587
|
+
ac,
|
|
20588
|
+
isInit: (resp) => resp.body.case === "initialization",
|
|
20589
|
+
onResponse: (resp) => this.handleWatchDocumentResponse(attachment, resp),
|
|
20590
|
+
onStreamEnd: () => {
|
|
20591
|
+
resetAndPublishDisconnect();
|
|
20540
20592
|
logger.debug(`[WD] c:"${this.getKey()}" unwatches (stream ended)`);
|
|
20541
|
-
|
|
20542
|
-
|
|
20543
|
-
|
|
20544
|
-
attachment.resource.publish([
|
|
20545
|
-
{
|
|
20546
|
-
type: DocEventType.Initialized,
|
|
20547
|
-
source: OpSource.Local,
|
|
20548
|
-
value: attachment.resource.getPresences()
|
|
20549
|
-
}
|
|
20550
|
-
]);
|
|
20551
|
-
attachment.resource.publish([
|
|
20552
|
-
{
|
|
20553
|
-
type: DocEventType.ConnectionChanged,
|
|
20554
|
-
value: StreamConnectionStatus.Disconnected
|
|
20555
|
-
}
|
|
20556
|
-
]);
|
|
20593
|
+
},
|
|
20594
|
+
onError: (err) => {
|
|
20595
|
+
resetAndPublishDisconnect();
|
|
20557
20596
|
logger.debug(`[WD] c:"${this.getKey()}" unwatches`);
|
|
20558
|
-
if (
|
|
20559
|
-
|
|
20560
|
-
|
|
20561
|
-
|
|
20562
|
-
|
|
20563
|
-
|
|
20564
|
-
|
|
20565
|
-
method: "WatchDocument"
|
|
20566
|
-
}
|
|
20597
|
+
if (isErrorCode(err, Code.ErrUnauthenticated)) {
|
|
20598
|
+
attachment.resource.publish([
|
|
20599
|
+
{
|
|
20600
|
+
type: DocEventType.AuthError,
|
|
20601
|
+
value: {
|
|
20602
|
+
reason: errorMetadataOf(err).reason,
|
|
20603
|
+
method: "Watch"
|
|
20567
20604
|
}
|
|
20568
|
-
|
|
20569
|
-
|
|
20570
|
-
onDisconnect();
|
|
20571
|
-
} else {
|
|
20572
|
-
this.conditions[
|
|
20573
|
-
"WatchLoop"
|
|
20574
|
-
/* WatchLoop */
|
|
20575
|
-
] = false;
|
|
20605
|
+
}
|
|
20606
|
+
]);
|
|
20576
20607
|
}
|
|
20577
|
-
|
|
20578
|
-
|
|
20579
|
-
}
|
|
20580
|
-
|
|
20581
|
-
|
|
20608
|
+
},
|
|
20609
|
+
onDisconnect
|
|
20610
|
+
},
|
|
20611
|
+
(err) => this.handleConnectError(err),
|
|
20612
|
+
() => {
|
|
20613
|
+
this.conditions[
|
|
20614
|
+
"WatchLoop"
|
|
20615
|
+
/* WatchLoop */
|
|
20616
|
+
] = false;
|
|
20617
|
+
}
|
|
20618
|
+
);
|
|
20582
20619
|
}
|
|
20583
20620
|
/**
|
|
20584
20621
|
* `createChannelWatchStream` creates a watch stream for a Channel.
|
|
20585
20622
|
* @internal
|
|
20586
20623
|
*/
|
|
20587
20624
|
createChannelWatchStream(attachment, key, ac, onDisconnect) {
|
|
20588
|
-
const stream = this.rpcClient.
|
|
20625
|
+
const stream = this.rpcClient.watch(
|
|
20589
20626
|
{
|
|
20590
20627
|
clientId: this.id,
|
|
20591
|
-
|
|
20628
|
+
resources: [
|
|
20629
|
+
{
|
|
20630
|
+
resource: {
|
|
20631
|
+
case: "channel",
|
|
20632
|
+
value: { channelKey: key }
|
|
20633
|
+
}
|
|
20634
|
+
}
|
|
20635
|
+
]
|
|
20592
20636
|
},
|
|
20593
20637
|
{
|
|
20594
20638
|
headers: {
|
|
@@ -20598,38 +20642,35 @@
|
|
|
20598
20642
|
}
|
|
20599
20643
|
);
|
|
20600
20644
|
logger.info(`[WP] c:"${this.getKey()}" watches p:"${key}"`);
|
|
20601
|
-
return
|
|
20602
|
-
|
|
20603
|
-
|
|
20604
|
-
|
|
20605
|
-
|
|
20606
|
-
|
|
20607
|
-
|
|
20608
|
-
isFirstResponse = false;
|
|
20609
|
-
resolve([stream, ac]);
|
|
20610
|
-
}
|
|
20611
|
-
}
|
|
20645
|
+
return runWatchStream(
|
|
20646
|
+
{
|
|
20647
|
+
stream,
|
|
20648
|
+
ac,
|
|
20649
|
+
isInit: (resp) => resp.body.case === "initialization",
|
|
20650
|
+
onResponse: (resp) => this.handleWatchChannelResponse(attachment, resp),
|
|
20651
|
+
onStreamEnd: () => {
|
|
20612
20652
|
logger.debug(`[WP] c:"${this.getKey()}" p:"${key}" stream ended`);
|
|
20613
|
-
|
|
20614
|
-
|
|
20653
|
+
},
|
|
20654
|
+
onError: (err) => {
|
|
20655
|
+
logger.debug(`[WP] c:"${this.getKey()}" p:"${key}" err:`, err);
|
|
20656
|
+
},
|
|
20657
|
+
onDisconnect,
|
|
20658
|
+
shouldIgnoreError: (err) => {
|
|
20615
20659
|
if (err instanceof Error && err.name === "AbortError") {
|
|
20616
20660
|
logger.debug(`[WP] c:"${this.getKey()}" p:"${key}" stream aborted`);
|
|
20617
|
-
return;
|
|
20618
|
-
}
|
|
20619
|
-
logger.debug(`[WP] c:"${this.getKey()}" p:"${key}" err:`, err);
|
|
20620
|
-
if (await this.handleConnectError(err)) {
|
|
20621
|
-
onDisconnect();
|
|
20622
|
-
} else {
|
|
20623
|
-
this.conditions[
|
|
20624
|
-
"WatchLoop"
|
|
20625
|
-
/* WatchLoop */
|
|
20626
|
-
] = false;
|
|
20661
|
+
return true;
|
|
20627
20662
|
}
|
|
20628
|
-
|
|
20663
|
+
return false;
|
|
20629
20664
|
}
|
|
20630
|
-
}
|
|
20631
|
-
|
|
20632
|
-
|
|
20665
|
+
},
|
|
20666
|
+
(err) => this.handleConnectError(err),
|
|
20667
|
+
() => {
|
|
20668
|
+
this.conditions[
|
|
20669
|
+
"WatchLoop"
|
|
20670
|
+
/* WatchLoop */
|
|
20671
|
+
] = false;
|
|
20672
|
+
}
|
|
20673
|
+
);
|
|
20633
20674
|
}
|
|
20634
20675
|
/**
|
|
20635
20676
|
* `handleWatchChannelResponse` handles the watch channel response from the server.
|
|
@@ -20638,53 +20679,82 @@
|
|
|
20638
20679
|
*/
|
|
20639
20680
|
handleWatchChannelResponse(attachment, resp) {
|
|
20640
20681
|
const channel = attachment.resource;
|
|
20641
|
-
if (resp.body.case === "
|
|
20642
|
-
const
|
|
20643
|
-
|
|
20644
|
-
|
|
20645
|
-
|
|
20646
|
-
|
|
20647
|
-
|
|
20682
|
+
if (resp.body.case === "initialization") {
|
|
20683
|
+
for (const ri of resp.body.value.resourceInits) {
|
|
20684
|
+
if (ri.init.case === "channelInit") {
|
|
20685
|
+
const { sessionCount, seq } = ri.init.value;
|
|
20686
|
+
if (channel.updateSessionCount(Number(sessionCount), Number(seq))) {
|
|
20687
|
+
channel.publish({
|
|
20688
|
+
type: ChannelEventType.Initialized,
|
|
20689
|
+
count: Number(sessionCount)
|
|
20690
|
+
});
|
|
20691
|
+
}
|
|
20692
|
+
}
|
|
20648
20693
|
}
|
|
20649
|
-
|
|
20650
|
-
|
|
20651
|
-
|
|
20652
|
-
|
|
20653
|
-
|
|
20654
|
-
|
|
20694
|
+
return;
|
|
20695
|
+
}
|
|
20696
|
+
if (resp.body.case === "event") {
|
|
20697
|
+
const watchEvent = resp.body.value;
|
|
20698
|
+
if (watchEvent.event.case === "channelEvent") {
|
|
20699
|
+
const event = watchEvent.event.value.event;
|
|
20700
|
+
if (!event) return;
|
|
20701
|
+
if (event.type === ChannelEvent_Type.BROADCAST) {
|
|
20702
|
+
const decoder = new TextDecoder();
|
|
20703
|
+
try {
|
|
20704
|
+
const payload = JSON.parse(decoder.decode(event.payload));
|
|
20705
|
+
channel.publish({
|
|
20706
|
+
type: ChannelEventType.Broadcast,
|
|
20707
|
+
clientID: event.publisher,
|
|
20708
|
+
topic: event.topic,
|
|
20709
|
+
payload
|
|
20710
|
+
});
|
|
20711
|
+
} catch (err) {
|
|
20712
|
+
logger.error(
|
|
20713
|
+
`[WP] c:"${this.getKey()}" failed to parse broadcast payload:`,
|
|
20714
|
+
err
|
|
20715
|
+
);
|
|
20716
|
+
}
|
|
20717
|
+
return;
|
|
20718
|
+
}
|
|
20719
|
+
if (channel.updateSessionCount(
|
|
20720
|
+
Number(event.sessionCount),
|
|
20721
|
+
Number(event.seq)
|
|
20722
|
+
)) {
|
|
20655
20723
|
channel.publish({
|
|
20656
|
-
type: ChannelEventType.
|
|
20657
|
-
|
|
20658
|
-
topic: event.topic,
|
|
20659
|
-
payload
|
|
20724
|
+
type: ChannelEventType.PresenceChanged,
|
|
20725
|
+
count: Number(event.sessionCount)
|
|
20660
20726
|
});
|
|
20661
|
-
} catch (err) {
|
|
20662
|
-
logger.error(
|
|
20663
|
-
`[WP] c:"${this.getKey()}" failed to parse broadcast payload:`,
|
|
20664
|
-
err
|
|
20665
|
-
);
|
|
20666
20727
|
}
|
|
20667
|
-
return;
|
|
20668
|
-
}
|
|
20669
|
-
if (channel.updateSessionCount(
|
|
20670
|
-
Number(event.sessionCount),
|
|
20671
|
-
Number(event.seq)
|
|
20672
|
-
)) {
|
|
20673
|
-
channel.publish({
|
|
20674
|
-
type: ChannelEventType.PresenceChanged,
|
|
20675
|
-
count: Number(event.sessionCount)
|
|
20676
|
-
});
|
|
20677
20728
|
}
|
|
20678
20729
|
}
|
|
20679
20730
|
}
|
|
20680
20731
|
handleWatchDocumentResponse(attachment, resp) {
|
|
20681
|
-
if (resp.body.case === "
|
|
20682
|
-
|
|
20683
|
-
|
|
20732
|
+
if (resp.body.case === "initialization") {
|
|
20733
|
+
for (const ri of resp.body.value.resourceInits) {
|
|
20734
|
+
if (ri.init.case === "documentInit") {
|
|
20735
|
+
attachment.resource.applyWatchInit(ri.init.value.clientIds);
|
|
20736
|
+
}
|
|
20684
20737
|
}
|
|
20685
20738
|
return;
|
|
20686
20739
|
}
|
|
20687
|
-
|
|
20740
|
+
if (resp.body.case === "event") {
|
|
20741
|
+
const watchEvent = resp.body.value;
|
|
20742
|
+
if (watchEvent.event.case === "docEvent") {
|
|
20743
|
+
const docEvent = watchEvent.event.value;
|
|
20744
|
+
if (docEvent.event?.type === DocEventType$1.DOCUMENT_CHANGED) {
|
|
20745
|
+
if (attachment.changeEventReceived !== void 0) {
|
|
20746
|
+
attachment.changeEventReceived = true;
|
|
20747
|
+
}
|
|
20748
|
+
return;
|
|
20749
|
+
}
|
|
20750
|
+
if (docEvent.event) {
|
|
20751
|
+
attachment.resource.applyDocEvent(
|
|
20752
|
+
docEvent.event.type,
|
|
20753
|
+
docEvent.event.publisher
|
|
20754
|
+
);
|
|
20755
|
+
}
|
|
20756
|
+
}
|
|
20757
|
+
}
|
|
20688
20758
|
}
|
|
20689
20759
|
deactivateInternal() {
|
|
20690
20760
|
this.status = "deactivated";
|
|
@@ -21057,7 +21127,7 @@
|
|
|
21057
21127
|
};
|
|
21058
21128
|
}
|
|
21059
21129
|
const name = "@yorkie-js/react";
|
|
21060
|
-
const version = "0.6.
|
|
21130
|
+
const version = "0.6.48";
|
|
21061
21131
|
const pkg = {
|
|
21062
21132
|
name,
|
|
21063
21133
|
version
|