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