@yorkie-js/react 0.7.8 → 0.7.10-rc

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.
@@ -5792,41 +5792,41 @@
5792
5792
  }
5793
5793
  };
5794
5794
  }
5795
- const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBItkaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGqQBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDQoFYWN0b3IYBCABKAkakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwinwsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrYAQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSFQoNaGxsX3JlZ2lzdGVycxgHIAEoDEoECAYQBxqpAQoEVHJlZRIiCgVub2RlcxgBIAMoCzITLnlvcmtpZS52MS5UcmVlTm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXRCBgoEYm9keSI/CgdSSFROb2RlEgsKA2tleRgBIAEoCRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50Iu4BCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50EjIKE3Bvc2l0aW9uX2NyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIwChFwb3NpdGlvbl9tb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EjIKE3Bvc2l0aW9uX3JlbW92ZWRfYXQYBSABKAsyFS55b3JraWUudjEuVGltZVRpY2tldCJYCghOb2RlQXR0chINCgV2YWx1ZRgBIAEoCRIpCgp1cGRhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgDIAEoCCKUAgoIVGV4dE5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVGV4dE5vZGVJRBINCgV2YWx1ZRgCIAEoCRIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLaW5zX3ByZXZfaWQYBCABKAsyFS55b3JraWUudjEuVGV4dE5vZGVJRBI3CgphdHRyaWJ1dGVzGAUgAygLMiMueW9ya2llLnYxLlRleHROb2RlLkF0dHJpYnV0ZXNFbnRyeRpGCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLk5vZGVBdHRyOgI4ASJHCgpUZXh0Tm9kZUlEEikKCmNyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIOCgZvZmZzZXQYAiABKAUiswMKCFRyZWVOb2RlEiEKAmlkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDAoEdHlwZRgCIAEoCRINCgV2YWx1ZRgDIAEoCRIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLaW5zX3ByZXZfaWQYBSABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIqCgtpbnNfbmV4dF9pZBgGIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEg0KBWRlcHRoGAcgASgFEjcKCmF0dHJpYnV0ZXMYCCADKAsyIy55b3JraWUudjEuVHJlZU5vZGUuQXR0cmlidXRlc0VudHJ5EioKC21lcmdlZF9mcm9tGAkgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSKAoJbWVyZ2VkX2F0GAogASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiMQoJVHJlZU5vZGVzEiQKB2NvbnRlbnQYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUiRwoKVHJlZU5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFImMKB1RyZWVQb3MSKAoJcGFyZW50X2lkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSLgoPbGVmdF9zaWJsaW5nX2lkGAIgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQiawoEVXNlchIKCgJpZBgBIAEoCRIVCg1hdXRoX3Byb3ZpZGVyGAIgASgJEhAKCHVzZXJuYW1lGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBCgZNZW1iZXISCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJEhAKCHVzZXJuYW1lGAQgASgJEgwKBHJvbGUYBSABKAkSLgoKaW52aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QYKB1Byb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJEhIKCnNlY3JldF9rZXkYBCABKAkSGAoQYXV0aF93ZWJob29rX3VybBgFIAEoCRIcChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgGIAMoCRIgChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYESABKAQSJgoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBIgASgJEiYKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgTIAEoCRIkChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBQgASgJEhkKEWV2ZW50X3dlYmhvb2tfdXJsGAcgASgJEhwKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAggAygJEiEKGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYFSABKAQSJwofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgWIAEoCRInCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBcgASgJEiUKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBggASgJEiMKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgJIAEoCRIaChJzbmFwc2hvdF90aHJlc2hvbGQYGSABKAMSGQoRc25hcHNob3RfaW50ZXJ2YWwYGiABKAMSJAocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgKIAEoBRIkChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAsgASgFEh0KFW1heF9zaXplX3Blcl9kb2N1bWVudBgPIAEoBRIYChByZW1vdmVfb25fZGV0YWNoGBAgASgIEh0KFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgbIAEoCBIXCg9hbGxvd2VkX29yaWdpbnMYDiADKAkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoLTWV0cmljUG9pbnQSEQoJdGltZXN0YW1wGAEgASgDEg0KBXZhbHVlGAIgASgFIqMMChZVcGRhdGFibGVQcm9qZWN0RmllbGRzEioKBG5hbWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNgoQYXV0aF93ZWJob29rX3VybBgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgDIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkF1dGhXZWJob29rTWV0aG9kcxI+ChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYDCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRAoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkQKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJCChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEWV2ZW50X3dlYmhvb2tfdXJsGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAUgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuRXZlbnRXZWJob29rRXZlbnRzEj8KGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYECABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRQofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJFCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkMKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEnNuYXBzaG90X3RocmVzaG9sZBgUIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjYKEXNuYXBzaG90X2ludGVydmFsGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSQQobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkEKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRJBChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAggASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSOgoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAogASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNAoQcmVtb3ZlX29uX2RldGFjaBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRJJCg9hbGxvd2VkX29yaWdpbnMYCSABKAsyMC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BbGxvd2VkT3JpZ2lucxolChJBdXRoV2ViaG9va01ldGhvZHMSDwoHbWV0aG9kcxgBIAMoCRokChJFdmVudFdlYmhvb2tFdmVudHMSDgoGZXZlbnRzGAEgAygJGiEKDkFsbG93ZWRPcmlnaW5zEg8KB29yaWdpbnMYASADKAkipwMKD0RvY3VtZW50U3VtbWFyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEcm9vdBgDIAEoCRIYChBhdHRhY2hlZF9jbGllbnRzGAcgASgFEikKDWRvY3VtZW50X3NpemUYCCABKAsyEi55b3JraWUudjEuRG9jU2l6ZRISCgpzY2hlbWFfa2V5GAkgASgJEjwKCXByZXNlbmNlcxgKIAMoCzIpLnlvcmtpZS52MS5Eb2N1bWVudFN1bW1hcnkuUHJlc2VuY2VzRW50cnkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYWNjZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi2gEKDlByZXNlbmNlQ2hhbmdlEjIKBHR5cGUYASABKA4yJC55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UuQ2hhbmdlVHlwZRIlCghwcmVzZW5jZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZSJtCgpDaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPQ0hBTkdFX1RZUEVfUFVUEAESFgoSQ0hBTkdFX1RZUEVfREVMRVRFEAISFQoRQ0hBTkdFX1RZUEVfQ0xFQVIQAyJkCghQcmVzZW5jZRIrCgRkYXRhGAEgAygLMh0ueW9ya2llLnYxLlByZXNlbmNlLkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0Cg5DaGFubmVsU3VtbWFyeRILCgNrZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoBSI0CgpDaGVja3BvaW50EhIKCnNlcnZlcl9zZXEYASABKAMSEgoKY2xpZW50X3NlcRgCIAEoDSJhCgtUZXh0Tm9kZVBvcxIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFEhcKD3JlbGF0aXZlX29mZnNldBgDIAEoBSJCCgpUaW1lVGlja2V0Eg8KB2xhbXBvcnQYASABKAMSEQoJZGVsaW1pdGVyGAIgASgNEhAKCGFjdG9yX2lkGAMgASgMIi4KDERvY0V2ZW50Qm9keRINCgV0b3BpYxgBIAEoCRIPCgdwYXlsb2FkGAIgASgMImsKCERvY0V2ZW50EiUKBHR5cGUYASABKA4yFy55b3JraWUudjEuRG9jRXZlbnRUeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIlCgRib2R5GAMgASgLMhcueW9ya2llLnYxLkRvY0V2ZW50Qm9keSLWAQoMQ2hhbm5lbEV2ZW50EioKBHR5cGUYASABKA4yHC55b3JraWUudjEuQ2hhbm5lbEV2ZW50LlR5cGUSEQoJcHVibGlzaGVyGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAMSCwoDc2VxGAQgASgDEg0KBXRvcGljGAUgASgJEg8KB3BheWxvYWQYBiABKAwiQwoEVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASEQoNVFlQRV9QUkVTRU5DRRABEhIKDlRZUEVfQlJPQURDQVNUEAIiJgoIRGF0YVNpemUSDAoEZGF0YRgBIAEoBRIMCgRtZXRhGAIgASgFIk0KB0RvY1NpemUSIQoEbGl2ZRgBIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZRIfCgJnYxgCIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZSKRAQoGU2NoZW1hEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoBRIMCgRib2R5GAQgASgJEh4KBXJ1bGVzGAUgAygLMg8ueW9ya2llLnYxLlJ1bGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiUAoMVHJlZU5vZGVSdWxlEhEKCW5vZGVfdHlwZRgBIAEoCRIPCgdjb250ZW50GAIgASgJEg0KBW1hcmtzGAMgASgJEg0KBWdyb3VwGAQgASgJIk8KBFJ1bGUSDAoEcGF0aBgBIAEoCRIMCgR0eXBlGAIgASgJEisKCnRyZWVfbm9kZXMYAyADKAsyFy55b3JraWUudjEuVHJlZU5vZGVSdWxlIoMBCg9SZXZpc2lvblN1bW1hcnkSCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIc25hcHNob3QYBCABKAkSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAq/AIKCVZhbHVlVHlwZRITCg9WQUxVRV9UWVBFX05VTEwQABIWChJWQUxVRV9UWVBFX0JPT0xFQU4QARIWChJWQUxVRV9UWVBFX0lOVEVHRVIQAhITCg9WQUxVRV9UWVBFX0xPTkcQAxIVChFWQUxVRV9UWVBFX0RPVUJMRRAEEhUKEVZBTFVFX1RZUEVfU1RSSU5HEAUSFAoQVkFMVUVfVFlQRV9CWVRFUxAGEhMKD1ZBTFVFX1RZUEVfREFURRAHEhoKFlZBTFVFX1RZUEVfSlNPTl9PQkpFQ1QQCBIZChVWQUxVRV9UWVBFX0pTT05fQVJSQVkQCRITCg9WQUxVRV9UWVBFX1RFWFQQChIaChZWQUxVRV9UWVBFX0lOVEVHRVJfQ05UEAsSFwoTVkFMVUVfVFlQRV9MT05HX0NOVBAMEhMKD1ZBTFVFX1RZUEVfVFJFRRANEiAKHFZBTFVFX1RZUEVfSU5URUdFUl9ERURVUF9DTlQQDiIECA8QDyqmAQoMRG9jRXZlbnRUeXBlEiMKH0RPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0NIQU5HRUQQABIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9XQVRDSEVEEAESJQohRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfVU5XQVRDSEVEEAISJQohRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfQlJPQURDQVNUEANCRQoRZGV2LnlvcmtpZS5hcGkudjFQAVouZ2l0aHViLmNvbS95b3JraWUtdGVhbS95b3JraWUvYXBpL3lvcmtpZS92MTt2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
5796
- const SnapshotSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 0);
5797
- const ChangePackSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 1);
5798
- const ChangeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 2);
5799
- const ChangeIDSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 3);
5800
- const VersionVectorSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 4);
5801
- const OperationSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5);
5802
- const Operation_SetSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 0);
5803
- const Operation_AddSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 1);
5804
- const Operation_MoveSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 2);
5805
- const Operation_RemoveSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 3);
5806
- const Operation_EditSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 4);
5807
- const Operation_StyleSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 5);
5808
- const Operation_IncreaseSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 6);
5809
- const Operation_TreeEditSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 7);
5810
- const Operation_TreeStyleSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 8);
5811
- const Operation_ArraySetSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 5, 9);
5812
- const JSONElementSimpleSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 6);
5813
- const JSONElementSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7);
5814
- const JSONElement_JSONObjectSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7, 0);
5815
- const JSONElement_JSONArraySchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7, 1);
5816
- const JSONElement_PrimitiveSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7, 2);
5817
- const JSONElement_TextSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7, 3);
5818
- const JSONElement_CounterSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7, 4);
5819
- const JSONElement_TreeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 7, 5);
5820
- const RHTNodeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 8);
5821
- const RGANodeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 9);
5822
- const NodeAttrSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 10);
5823
- const TextNodeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 11);
5824
- const TextNodeIDSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 12);
5825
- const TreeNodeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 13);
5826
- const TreeNodesSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 14);
5827
- const TreeNodeIDSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 15);
5828
- const TreePosSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 16);
5829
- const PresenceChangeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 23);
5795
+ const file_yorkie_v1_resources = /* @__PURE__ */ fileDesc("Chl5b3JraWUvdjEvcmVzb3VyY2VzLnByb3RvEgl5b3JraWUudjEirgEKCFNuYXBzaG90EiQKBHJvb3QYASABKAsyFi55b3JraWUudjEuSlNPTkVsZW1lbnQSNQoJcHJlc2VuY2VzGAIgAygLMiIueW9ya2llLnYxLlNuYXBzaG90LlByZXNlbmNlc0VudHJ5GkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi+wEKCkNoYW5nZVBhY2sSFAoMZG9jdW1lbnRfa2V5GAEgASgJEikKCmNoZWNrcG9pbnQYAiABKAsyFS55b3JraWUudjEuQ2hlY2twb2ludBIQCghzbmFwc2hvdBgDIAEoDBIiCgdjaGFuZ2VzGAQgAygLMhEueW9ya2llLnYxLkNoYW5nZRIwChFtaW5fc3luY2VkX3RpY2tldBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhIKCmlzX3JlbW92ZWQYBiABKAgSMAoOdmVyc2lvbl92ZWN0b3IYByABKAsyGC55b3JraWUudjEuVmVyc2lvblZlY3RvciKYAQoGQ2hhbmdlEh8KAmlkGAEgASgLMhMueW9ya2llLnYxLkNoYW5nZUlEEg8KB21lc3NhZ2UYAiABKAkSKAoKb3BlcmF0aW9ucxgDIAMoCzIULnlvcmtpZS52MS5PcGVyYXRpb24SMgoPcHJlc2VuY2VfY2hhbmdlGAQgASgLMhkueW9ya2llLnYxLlByZXNlbmNlQ2hhbmdlIocBCghDaGFuZ2VJRBISCgpjbGllbnRfc2VxGAEgASgNEhIKCnNlcnZlcl9zZXEYAiABKAMSDwoHbGFtcG9ydBgDIAEoAxIQCghhY3Rvcl9pZBgEIAEoDBIwCg52ZXJzaW9uX3ZlY3RvchgFIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yInQKDVZlcnNpb25WZWN0b3ISNAoGdmVjdG9yGAEgAygLMiQueW9ya2llLnYxLlZlcnNpb25WZWN0b3IuVmVjdG9yRW50cnkaLQoLVmVjdG9yRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ASLZGgoJT3BlcmF0aW9uEicKA3NldBgBIAEoCzIYLnlvcmtpZS52MS5PcGVyYXRpb24uU2V0SAASJwoDYWRkGAIgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5BZGRIABIpCgRtb3ZlGAMgASgLMhkueW9ya2llLnYxLk9wZXJhdGlvbi5Nb3ZlSAASLQoGcmVtb3ZlGAQgASgLMhsueW9ya2llLnYxLk9wZXJhdGlvbi5SZW1vdmVIABIpCgRlZGl0GAUgASgLMhkueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0SAASKwoFc3R5bGUYByABKAsyGi55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlSAASMQoIaW5jcmVhc2UYCCABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLkluY3JlYXNlSAASMgoJdHJlZV9lZGl0GAkgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlRWRpdEgAEjQKCnRyZWVfc3R5bGUYCiABKAsyHi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZUgAEjIKCWFycmF5X3NldBgLIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uQXJyYXlTZXRIABqdAQoDU2V0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSCwoDa2V5GAIgASgJEisKBXZhbHVlGAMgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQawAEKA0FkZBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAMgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQavwEKBE1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIuCg9wcmV2X2NyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqRAQoGUmVtb3ZlEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQa2QMKBEVkaXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIkCgRmcm9tGAIgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zEiIKAnRvGAMgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zElMKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAQgAygLMjIueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIPCgdjb250ZW50GAUgASgJEioKC2V4ZWN1dGVkX2F0GAYgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSPQoKYXR0cmlidXRlcxgHIAMoCzIpLnlvcmtpZS52MS5PcGVyYXRpb24uRWRpdC5BdHRyaWJ1dGVzRW50cnkaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARrpAwoFU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIkCgRmcm9tGAIgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zEiIKAnRvGAMgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zEj4KCmF0dHJpYnV0ZXMYBCADKAsyKi55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkF0dHJpYnV0ZXNFbnRyeRIqCgtleGVjdXRlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0ElQKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAYgAygLMjMueW9ya2llLnYxLk9wZXJhdGlvbi5TdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSHAoUYXR0cmlidXRlc190b19yZW1vdmUYByADKAkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARqkAQoISW5jcmVhc2USMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIrCgV2YWx1ZRgCIAEoCzIcLnlvcmtpZS52MS5KU09ORWxlbWVudFNpbXBsZRIqCgtleGVjdXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg0KBWFjdG9yGAQgASgJGpMDCghUcmVlRWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiAKBGZyb20YAiABKAsyEi55b3JraWUudjEuVHJlZVBvcxIeCgJ0bxgDIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zElcKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAQgAygLMjYueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlRWRpdC5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSJgoIY29udGVudHMYBSADKAsyFC55b3JraWUudjEuVHJlZU5vZGVzEhMKC3NwbGl0X2xldmVsGAcgASgFEioKC2V4ZWN1dGVkX2F0GAYgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrtAwoJVHJlZVN0eWxlEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSQgoKYXR0cmlidXRlcxgEIAMoCzIuLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlLkF0dHJpYnV0ZXNFbnRyeRIqCgtleGVjdXRlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhwKFGF0dHJpYnV0ZXNfdG9fcmVtb3ZlGAYgAygJElgKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAcgAygLMjcueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGlEKGENyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldDoCOAEawAEKCEFycmF5U2V0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAMgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXRCBgoEYm9keSLFAQoRSlNPTkVsZW1lbnRTaW1wbGUSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiIKBHR5cGUYBCABKA4yFC55b3JraWUudjEuVmFsdWVUeXBlEg0KBXZhbHVlGAUgASgMIp8LCgtKU09ORWxlbWVudBI4Cgtqc29uX29iamVjdBgBIAEoCzIhLnlvcmtpZS52MS5KU09ORWxlbWVudC5KU09OT2JqZWN0SAASNgoKanNvbl9hcnJheRgCIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5KU09OQXJyYXlIABI1CglwcmltaXRpdmUYAyABKAsyIC55b3JraWUudjEuSlNPTkVsZW1lbnQuUHJpbWl0aXZlSAASKwoEdGV4dBgFIAEoCzIbLnlvcmtpZS52MS5KU09ORWxlbWVudC5UZXh0SAASMQoHY291bnRlchgGIAEoCzIeLnlvcmtpZS52MS5KU09ORWxlbWVudC5Db3VudGVySAASKwoEdHJlZRgHIAEoCzIbLnlvcmtpZS52MS5KU09ORWxlbWVudC5UcmVlSAAargEKCkpTT05PYmplY3QSIQoFbm9kZXMYASADKAsyEi55b3JraWUudjEuUkhUTm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQarQEKCUpTT05BcnJheRIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SR0FOb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq9AQoJUHJpbWl0aXZlEiIKBHR5cGUYASABKA4yFC55b3JraWUudjEuVmFsdWVUeXBlEg0KBXZhbHVlGAIgASgMEikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBSABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqpAQoEVGV4dBIiCgVub2RlcxgBIAMoCzITLnlvcmtpZS52MS5UZXh0Tm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQa2AEKB0NvdW50ZXISIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhUKDWhsbF9yZWdpc3RlcnMYByABKAxKBAgGEAcaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCLuAQoHUkdBTm9kZRIgCgRuZXh0GAEgASgLMhIueW9ya2llLnYxLlJHQU5vZGUSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBIyChNwb3NpdGlvbl9jcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSMAoRcG9zaXRpb25fbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIyChNwb3NpdGlvbl9yZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQiWAoITm9kZUF0dHISDQoFdmFsdWUYASABKAkSKQoKdXBkYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhIKCmlzX3JlbW92ZWQYAyABKAgilAIKCFRleHROb2RlEiEKAmlkGAEgASgLMhUueW9ya2llLnYxLlRleHROb2RlSUQSDQoFdmFsdWUYAiABKAkSKQoKcmVtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2luc19wcmV2X2lkGAQgASgLMhUueW9ya2llLnYxLlRleHROb2RlSUQSNwoKYXR0cmlidXRlcxgFIAMoCzIjLnlvcmtpZS52MS5UZXh0Tm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiRwoKVGV4dE5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFIrMDCghUcmVlTm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEgwKBHR5cGUYAiABKAkSDQoFdmFsdWUYAyABKAkSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2luc19wcmV2X2lkGAUgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSKgoLaW5zX25leHRfaWQYBiABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBINCgVkZXB0aBgHIAEoBRI3CgphdHRyaWJ1dGVzGAggAygLMiMueW9ya2llLnYxLlRyZWVOb2RlLkF0dHJpYnV0ZXNFbnRyeRIqCgttZXJnZWRfZnJvbRgJIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEigKCW1lcmdlZF9hdBgKIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIjEKCVRyZWVOb2RlcxIkCgdjb250ZW50GAEgAygLMhMueW9ya2llLnYxLlRyZWVOb2RlIkcKClRyZWVOb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSJjCgdUcmVlUG9zEigKCXBhcmVudF9pZBgBIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEi4KD2xlZnRfc2libGluZ19pZBgCIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEImsKBFVzZXISCgoCaWQYASABKAkSFQoNYXV0aF9wcm92aWRlchgCIAEoCRIQCgh1c2VybmFtZRgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKJAQoGTWVtYmVyEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDwoHdXNlcl9pZBgDIAEoCRIQCgh1c2VybmFtZRgEIAEoCRIMCgRyb2xlGAUgASgJEi4KCmludml0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIukGCgdQcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEgoKcHVibGljX2tleRgDIAEoCRISCgpzZWNyZXRfa2V5GAQgASgJEhgKEGF1dGhfd2ViaG9va191cmwYBSABKAkSHAoUYXV0aF93ZWJob29rX21ldGhvZHMYBiADKAkSIAoYYXV0aF93ZWJob29rX21heF9yZXRyaWVzGBEgASgEEiYKHmF1dGhfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgSIAEoCRImCh5hdXRoX3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYEyABKAkSJAocYXV0aF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgUIAEoCRIZChFldmVudF93ZWJob29rX3VybBgHIAEoCRIcChRldmVudF93ZWJob29rX2V2ZW50cxgIIAMoCRIhChlldmVudF93ZWJob29rX21heF9yZXRyaWVzGBUgASgEEicKH2V2ZW50X3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYFiABKAkSJwofZXZlbnRfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgXIAEoCRIlCh1ldmVudF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgYIAEoCRIjChtjbGllbnRfZGVhY3RpdmF0ZV90aHJlc2hvbGQYCSABKAkSGgoSc25hcHNob3RfdGhyZXNob2xkGBkgASgDEhkKEXNuYXBzaG90X2ludGVydmFsGBogASgDEiQKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYCiABKAUSJAocbWF4X2F0dGFjaG1lbnRzX3Blcl9kb2N1bWVudBgLIAEoBRIdChVtYXhfc2l6ZV9wZXJfZG9jdW1lbnQYDyABKAUSGAoQcmVtb3ZlX29uX2RldGFjaBgQIAEoCBIdChVhdXRvX3JldmlzaW9uX2VuYWJsZWQYGyABKAgSFwoPYWxsb3dlZF9vcmlnaW5zGA4gAygJEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIi8KC01ldHJpY1BvaW50EhEKCXRpbWVzdGFtcBgBIAEoAxINCgV2YWx1ZRgCIAEoBSKjDAoWVXBkYXRhYmxlUHJvamVjdEZpZWxkcxIqCgRuYW1lGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjYKEGF1dGhfd2ViaG9va191cmwYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSUgoUYXV0aF93ZWJob29rX21ldGhvZHMYAyABKAsyNC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BdXRoV2ViaG9va01ldGhvZHMSPgoYYXV0aF93ZWJob29rX21heF9yZXRyaWVzGAwgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEkQKHmF1dGhfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJECh5hdXRoX3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYDiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSQgocYXV0aF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChFldmVudF93ZWJob29rX3VybBgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRldmVudF93ZWJob29rX2V2ZW50cxgFIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkV2ZW50V2ViaG9va0V2ZW50cxI/ChlldmVudF93ZWJob29rX21heF9yZXRyaWVzGBAgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEkUKH2V2ZW50X3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSRQofZXZlbnRfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgSIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJDCh1ldmVudF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgTIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChJzbmFwc2hvdF90aHJlc2hvbGQYFCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI2ChFzbmFwc2hvdF9pbnRlcnZhbBgVIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEkEKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgGIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJBChxtYXhfc3Vic2NyaWJlcnNfcGVyX2RvY3VtZW50GAcgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSQQocbWF4X2F0dGFjaG1lbnRzX3Blcl9kb2N1bWVudBgIIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEjoKFW1heF9zaXplX3Blcl9kb2N1bWVudBgKIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEjQKEHJlbW92ZV9vbl9kZXRhY2gYCyABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjkKFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSSQoPYWxsb3dlZF9vcmlnaW5zGAkgASgLMjAueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuQWxsb3dlZE9yaWdpbnMaJQoSQXV0aFdlYmhvb2tNZXRob2RzEg8KB21ldGhvZHMYASADKAkaJAoSRXZlbnRXZWJob29rRXZlbnRzEg4KBmV2ZW50cxgBIAMoCRohCg5BbGxvd2VkT3JpZ2lucxIPCgdvcmlnaW5zGAEgAygJIqcDCg9Eb2N1bWVudFN1bW1hcnkSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHJvb3QYAyABKAkSGAoQYXR0YWNoZWRfY2xpZW50cxgHIAEoBRIpCg1kb2N1bWVudF9zaXplGAggASgLMhIueW9ya2llLnYxLkRvY1NpemUSEgoKc2NoZW1hX2tleRgJIAEoCRI8CglwcmVzZW5jZXMYCiADKAsyKS55b3JraWUudjEuRG9jdW1lbnRTdW1tYXJ5LlByZXNlbmNlc0VudHJ5Ei4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2FjY2Vzc2VkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBpFCg5QcmVzZW5jZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuUHJlc2VuY2U6AjgBItoBCg5QcmVzZW5jZUNoYW5nZRIyCgR0eXBlGAEgASgOMiQueW9ya2llLnYxLlByZXNlbmNlQ2hhbmdlLkNoYW5nZVR5cGUSJQoIcHJlc2VuY2UYAiABKAsyEy55b3JraWUudjEuUHJlc2VuY2UibQoKQ2hhbmdlVHlwZRIbChdDSEFOR0VfVFlQRV9VTlNQRUNJRklFRBAAEhMKD0NIQU5HRV9UWVBFX1BVVBABEhYKEkNIQU5HRV9UWVBFX0RFTEVURRACEhUKEUNIQU5HRV9UWVBFX0NMRUFSEAMiZAoIUHJlc2VuY2USKwoEZGF0YRgBIAMoCzIdLnlvcmtpZS52MS5QcmVzZW5jZS5EYXRhRW50cnkaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiNAoOQ2hhbm5lbFN1bW1hcnkSCwoDa2V5GAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAUiNAoKQ2hlY2twb2ludBISCgpzZXJ2ZXJfc2VxGAEgASgDEhIKCmNsaWVudF9zZXEYAiABKA0iYQoLVGV4dE5vZGVQb3MSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBRIXCg9yZWxhdGl2ZV9vZmZzZXQYAyABKAUiQgoKVGltZVRpY2tldBIPCgdsYW1wb3J0GAEgASgDEhEKCWRlbGltaXRlchgCIAEoDRIQCghhY3Rvcl9pZBgDIAEoDCIuCgxEb2NFdmVudEJvZHkSDQoFdG9waWMYASABKAkSDwoHcGF5bG9hZBgCIAEoDCJrCghEb2NFdmVudBIlCgR0eXBlGAEgASgOMhcueW9ya2llLnYxLkRvY0V2ZW50VHlwZRIRCglwdWJsaXNoZXIYAiABKAkSJQoEYm9keRgDIAEoCzIXLnlvcmtpZS52MS5Eb2NFdmVudEJvZHki1gEKDENoYW5uZWxFdmVudBIqCgR0eXBlGAEgASgOMhwueW9ya2llLnYxLkNoYW5uZWxFdmVudC5UeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIVCg1zZXNzaW9uX2NvdW50GAMgASgDEgsKA3NlcRgEIAEoAxINCgV0b3BpYxgFIAEoCRIPCgdwYXlsb2FkGAYgASgMIkMKBFR5cGUSFAoQVFlQRV9VTlNQRUNJRklFRBAAEhEKDVRZUEVfUFJFU0VOQ0UQARISCg5UWVBFX0JST0FEQ0FTVBACIiYKCERhdGFTaXplEgwKBGRhdGEYASABKAUSDAoEbWV0YRgCIAEoBSJNCgdEb2NTaXplEiEKBGxpdmUYASABKAsyEy55b3JraWUudjEuRGF0YVNpemUSHwoCZ2MYAiABKAsyEy55b3JraWUudjEuRGF0YVNpemUikQEKBlNjaGVtYRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAUSDAoEYm9keRgEIAEoCRIeCgVydWxlcxgFIAMoCzIPLnlvcmtpZS52MS5SdWxlEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlAKDFRyZWVOb2RlUnVsZRIRCglub2RlX3R5cGUYASABKAkSDwoHY29udGVudBgCIAEoCRINCgVtYXJrcxgDIAEoCRINCgVncm91cBgEIAEoCSJPCgRSdWxlEgwKBHBhdGgYASABKAkSDAoEdHlwZRgCIAEoCRIrCgp0cmVlX25vZGVzGAMgAygLMhcueW9ya2llLnYxLlRyZWVOb2RlUnVsZSKDAQoPUmV2aXNpb25TdW1tYXJ5EgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCHNuYXBzaG90GAQgASgJEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKvwCCglWYWx1ZVR5cGUSEwoPVkFMVUVfVFlQRV9OVUxMEAASFgoSVkFMVUVfVFlQRV9CT09MRUFOEAESFgoSVkFMVUVfVFlQRV9JTlRFR0VSEAISEwoPVkFMVUVfVFlQRV9MT05HEAMSFQoRVkFMVUVfVFlQRV9ET1VCTEUQBBIVChFWQUxVRV9UWVBFX1NUUklORxAFEhQKEFZBTFVFX1RZUEVfQllURVMQBhITCg9WQUxVRV9UWVBFX0RBVEUQBxIaChZWQUxVRV9UWVBFX0pTT05fT0JKRUNUEAgSGQoVVkFMVUVfVFlQRV9KU09OX0FSUkFZEAkSEwoPVkFMVUVfVFlQRV9URVhUEAoSGgoWVkFMVUVfVFlQRV9JTlRFR0VSX0NOVBALEhcKE1ZBTFVFX1RZUEVfTE9OR19DTlQQDBITCg9WQUxVRV9UWVBFX1RSRUUQDRIgChxWQUxVRV9UWVBFX0lOVEVHRVJfREVEVVBfQ05UEA4iBAgPEA8qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
5796
+ const SnapshotSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 0);
5797
+ const ChangePackSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 1);
5798
+ const ChangeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 2);
5799
+ const ChangeIDSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 3);
5800
+ const VersionVectorSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 4);
5801
+ const OperationSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5);
5802
+ const Operation_SetSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 0);
5803
+ const Operation_AddSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 1);
5804
+ const Operation_MoveSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 2);
5805
+ const Operation_RemoveSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 3);
5806
+ const Operation_EditSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 4);
5807
+ const Operation_StyleSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 5);
5808
+ const Operation_IncreaseSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 6);
5809
+ const Operation_TreeEditSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 7);
5810
+ const Operation_TreeStyleSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 8);
5811
+ const Operation_ArraySetSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 9);
5812
+ const JSONElementSimpleSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 6);
5813
+ const JSONElementSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7);
5814
+ const JSONElement_JSONObjectSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 0);
5815
+ const JSONElement_JSONArraySchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 1);
5816
+ const JSONElement_PrimitiveSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 2);
5817
+ const JSONElement_TextSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 3);
5818
+ const JSONElement_CounterSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 4);
5819
+ const JSONElement_TreeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 5);
5820
+ const RHTNodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 8);
5821
+ const RGANodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 9);
5822
+ const NodeAttrSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 10);
5823
+ const TextNodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 11);
5824
+ const TextNodeIDSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 12);
5825
+ const TreeNodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 13);
5826
+ const TreeNodesSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 14);
5827
+ const TreeNodeIDSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 15);
5828
+ const TreePosSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 16);
5829
+ const PresenceChangeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 23);
5830
5830
  var PresenceChange_ChangeType = /* @__PURE__ */ ((PresenceChange_ChangeType2) => {
5831
5831
  PresenceChange_ChangeType2[PresenceChange_ChangeType2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
5832
5832
  PresenceChange_ChangeType2[PresenceChange_ChangeType2["PUT"] = 1] = "PUT";
@@ -5834,10 +5834,10 @@
5834
5834
  PresenceChange_ChangeType2[PresenceChange_ChangeType2["CLEAR"] = 3] = "CLEAR";
5835
5835
  return PresenceChange_ChangeType2;
5836
5836
  })(PresenceChange_ChangeType || {});
5837
- const PresenceSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 24);
5838
- const CheckpointSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 26);
5839
- const TextNodePosSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 27);
5840
- const TimeTicketSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 28);
5837
+ const PresenceSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 24);
5838
+ const CheckpointSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 26);
5839
+ const TextNodePosSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 27);
5840
+ const TimeTicketSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 28);
5841
5841
  var ChannelEvent_Type = /* @__PURE__ */ ((ChannelEvent_Type2) => {
5842
5842
  ChannelEvent_Type2[ChannelEvent_Type2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
5843
5843
  ChannelEvent_Type2[ChannelEvent_Type2["PRESENCE"] = 1] = "PRESENCE";
@@ -5869,8 +5869,8 @@
5869
5869
  DocEventType2[DocEventType2["DOCUMENT_BROADCAST"] = 3] = "DOCUMENT_BROADCAST";
5870
5870
  return DocEventType2;
5871
5871
  })(DocEventType$1 || {});
5872
- const file_src_api_yorkie_v1_yorkie = /* @__PURE__ */ fileDesc("Ch5zcmMvYXBpL3lvcmtpZS92MS95b3JraWUucHJvdG8SCXlvcmtpZS52MSKeAQoVQWN0aXZhdGVDbGllbnRSZXF1ZXN0EhIKCmNsaWVudF9rZXkYASABKAkSQAoIbWV0YWRhdGEYAiADKAsyLi55b3JraWUudjEuQWN0aXZhdGVDbGllbnRSZXF1ZXN0Lk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIisKFkFjdGl2YXRlQ2xpZW50UmVzcG9uc2USEQoJY2xpZW50X2lkGAEgASgJIkEKF0RlYWN0aXZhdGVDbGllbnRSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtzeW5jaHJvbm91cxgCIAEoCCIaChhEZWFjdGl2YXRlQ2xpZW50UmVzcG9uc2UiagoVQXR0YWNoRG9jdW1lbnRSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRIqCgtjaGFuZ2VfcGFjaxgCIAEoCzIVLnlvcmtpZS52MS5DaGFuZ2VQYWNrEhIKCnNjaGVtYV9rZXkYAyABKAkinwEKFkF0dGFjaERvY3VtZW50UmVzcG9uc2USEwoLZG9jdW1lbnRfaWQYASABKAkSKgoLY2hhbmdlX3BhY2sYAiABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxIdChVtYXhfc2l6ZV9wZXJfZG9jdW1lbnQYAyABKAUSJQoMc2NoZW1hX3J1bGVzGAQgAygLMg8ueW9ya2llLnYxLlJ1bGUiiwEKFURldGFjaERvY3VtZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSKgoLY2hhbmdlX3BhY2sYAyABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxIeChZyZW1vdmVfaWZfbm90X2F0dGFjaGVkGAQgASgIIkQKFkRldGFjaERvY3VtZW50UmVzcG9uc2USKgoLY2hhbmdlX3BhY2sYAiABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjayJTCgxXYXRjaFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEjAKCXJlc291cmNlcxgCIAMoCzIdLnlvcmtpZS52MS5SZXNvdXJjZURlc2NyaXB0b3IihAEKElJlc291cmNlRGVzY3JpcHRvchIxCghkb2N1bWVudBgBIAEoCzIdLnlvcmtpZS52MS5Eb2N1bWVudERlc2NyaXB0b3JIABIvCgdjaGFubmVsGAIgASgLMhwueW9ya2llLnYxLkNoYW5uZWxEZXNjcmlwdG9ySABCCgoIcmVzb3VyY2UiKQoSRG9jdW1lbnREZXNjcmlwdG9yEhMKC2RvY3VtZW50X2lkGAEgASgJIigKEUNoYW5uZWxEZXNjcmlwdG9yEhMKC2NoYW5uZWxfa2V5GAEgASgJInkKDVdhdGNoUmVzcG9uc2USOAoOaW5pdGlhbGl6YXRpb24YASABKAsyHi55b3JraWUudjEuV2F0Y2hJbml0aWFsaXphdGlvbkgAEiYKBWV2ZW50GAIgASgLMhUueW9ya2llLnYxLldhdGNoRXZlbnRIAEIGCgRib2R5IkYKE1dhdGNoSW5pdGlhbGl6YXRpb24SLwoOcmVzb3VyY2VfaW5pdHMYASADKAsyFy55b3JraWUudjEuUmVzb3VyY2VJbml0IngKDFJlc291cmNlSW5pdBIwCg1kb2N1bWVudF9pbml0GAEgASgLMhcueW9ya2llLnYxLkRvY3VtZW50SW5pdEgAEi4KDGNoYW5uZWxfaW5pdBgCIAEoCzIWLnlvcmtpZS52MS5DaGFubmVsSW5pdEgAQgYKBGluaXQiNwoMRG9jdW1lbnRJbml0EhMKC2RvY3VtZW50X2lkGAEgASgJEhIKCmNsaWVudF9pZHMYAiADKAkiRgoLQ2hhbm5lbEluaXQSEwoLY2hhbm5lbF9rZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoAxILCgNzZXEYAyABKAMiewoKV2F0Y2hFdmVudBItCglkb2NfZXZlbnQYASABKAsyGC55b3JraWUudjEuRG9jV2F0Y2hFdmVudEgAEjUKDWNoYW5uZWxfZXZlbnQYAiABKAsyHC55b3JraWUudjEuQ2hhbm5lbFdhdGNoRXZlbnRIAEIHCgVldmVudCJICg1Eb2NXYXRjaEV2ZW50EhMKC2RvY3VtZW50X2lkGAEgASgJEiIKBWV2ZW50GAIgASgLMhMueW9ya2llLnYxLkRvY0V2ZW50IlAKEUNoYW5uZWxXYXRjaEV2ZW50EhMKC2NoYW5uZWxfa2V5GAEgASgJEiYKBWV2ZW50GAIgASgLMhcueW9ya2llLnYxLkNoYW5uZWxFdmVudCI+ChRXYXRjaERvY3VtZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkitgEKFVdhdGNoRG9jdW1lbnRSZXNwb25zZRJJCg5pbml0aWFsaXphdGlvbhgBIAEoCzIvLnlvcmtpZS52MS5XYXRjaERvY3VtZW50UmVzcG9uc2UuSW5pdGlhbGl6YXRpb25IABIkCgVldmVudBgCIAEoCzITLnlvcmtpZS52MS5Eb2NFdmVudEgAGiQKDkluaXRpYWxpemF0aW9uEhIKCmNsaWVudF9pZHMYASADKAlCBgoEYm9keSI9ChNXYXRjaENoYW5uZWxSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtjaGFubmVsX2tleRgCIAEoCSKDAQoUV2F0Y2hDaGFubmVsUmVzcG9uc2USOQoLaW5pdGlhbGl6ZWQYASABKAsyIi55b3JraWUudjEuV2F0Y2hDaGFubmVsSW5pdGlhbGl6ZWRIABIoCgVldmVudBgCIAEoCzIXLnlvcmtpZS52MS5DaGFubmVsRXZlbnRIAEIGCgRib2R5Ij0KF1dhdGNoQ2hhbm5lbEluaXRpYWxpemVkEhUKDXNlc3Npb25fY291bnQYASABKAMSCwoDc2VxGAIgASgDImsKFVJlbW92ZURvY3VtZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSKgoLY2hhbmdlX3BhY2sYAyABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjayJEChZSZW1vdmVEb2N1bWVudFJlc3BvbnNlEioKC2NoYW5nZV9wYWNrGAEgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sifwoWUHVzaFB1bGxDaGFuZ2VzUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSKgoLY2hhbmdlX3BhY2sYAyABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxIRCglwdXNoX29ubHkYBCABKAgiRQoXUHVzaFB1bGxDaGFuZ2VzUmVzcG9uc2USKgoLY2hhbmdlX3BhY2sYASABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjayJjChVDcmVhdGVSZXZpc2lvblJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJIkYKFkNyZWF0ZVJldmlzaW9uUmVzcG9uc2USLAoIcmV2aXNpb24YASABKAsyGi55b3JraWUudjEuUmV2aXNpb25TdW1tYXJ5IlEKEkdldFJldmlzaW9uUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSEwoLcmV2aXNpb25faWQYAyABKAkiQwoTR2V0UmV2aXNpb25SZXNwb25zZRIsCghyZXZpc2lvbhgBIAEoCzIaLnlvcmtpZS52MS5SZXZpc2lvblN1bW1hcnkidQoUTGlzdFJldmlzaW9uc1JlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEhEKCXBhZ2Vfc2l6ZRgDIAEoBRIOCgZvZmZzZXQYBCABKAUSEgoKaXNfZm9yd2FyZBgFIAEoCCJGChVMaXN0UmV2aXNpb25zUmVzcG9uc2USLQoJcmV2aXNpb25zGAEgAygLMhoueW9ya2llLnYxLlJldmlzaW9uU3VtbWFyeSJVChZSZXN0b3JlUmV2aXNpb25SZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRITCgtyZXZpc2lvbl9pZBgEIAEoCSIZChdSZXN0b3JlUmV2aXNpb25SZXNwb25zZSI+ChRBdHRhY2hDaGFubmVsUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLY2hhbm5lbF9rZXkYAiABKAkiQgoVQXR0YWNoQ2hhbm5lbFJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoAyJSChREZXRhY2hDaGFubmVsUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLY2hhbm5lbF9rZXkYAiABKAkSEgoKc2Vzc2lvbl9pZBgDIAEoCSIuChVEZXRhY2hDaGFubmVsUmVzcG9uc2USFQoNc2Vzc2lvbl9jb3VudBgBIAEoAyJTChVSZWZyZXNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJEhIKCnNlc3Npb25faWQYAyABKAkiLwoWUmVmcmVzaENoYW5uZWxSZXNwb25zZRIVCg1zZXNzaW9uX2NvdW50GAEgASgDIloKEEJyb2FkY2FzdFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJEg0KBXRvcGljGAMgASgJEg8KB3BheWxvYWQYBCABKAwiEwoRQnJvYWRjYXN0UmVzcG9uc2UyxQsKDVlvcmtpZVNlcnZpY2USVwoOQWN0aXZhdGVDbGllbnQSIC55b3JraWUudjEuQWN0aXZhdGVDbGllbnRSZXF1ZXN0GiEueW9ya2llLnYxLkFjdGl2YXRlQ2xpZW50UmVzcG9uc2UiABJdChBEZWFjdGl2YXRlQ2xpZW50EiIueW9ya2llLnYxLkRlYWN0aXZhdGVDbGllbnRSZXF1ZXN0GiMueW9ya2llLnYxLkRlYWN0aXZhdGVDbGllbnRSZXNwb25zZSIAElcKDkF0dGFjaERvY3VtZW50EiAueW9ya2llLnYxLkF0dGFjaERvY3VtZW50UmVxdWVzdBohLnlvcmtpZS52MS5BdHRhY2hEb2N1bWVudFJlc3BvbnNlIgASVwoORGV0YWNoRG9jdW1lbnQSIC55b3JraWUudjEuRGV0YWNoRG9jdW1lbnRSZXF1ZXN0GiEueW9ya2llLnYxLkRldGFjaERvY3VtZW50UmVzcG9uc2UiABJXCg5SZW1vdmVEb2N1bWVudBIgLnlvcmtpZS52MS5SZW1vdmVEb2N1bWVudFJlcXVlc3QaIS55b3JraWUudjEuUmVtb3ZlRG9jdW1lbnRSZXNwb25zZSIAEloKD1B1c2hQdWxsQ2hhbmdlcxIhLnlvcmtpZS52MS5QdXNoUHVsbENoYW5nZXNSZXF1ZXN0GiIueW9ya2llLnYxLlB1c2hQdWxsQ2hhbmdlc1Jlc3BvbnNlIgASPgoFV2F0Y2gSFy55b3JraWUudjEuV2F0Y2hSZXF1ZXN0GhgueW9ya2llLnYxLldhdGNoUmVzcG9uc2UiADABElYKDVdhdGNoRG9jdW1lbnQSHy55b3JraWUudjEuV2F0Y2hEb2N1bWVudFJlcXVlc3QaIC55b3JraWUudjEuV2F0Y2hEb2N1bWVudFJlc3BvbnNlIgAwARJTCgxXYXRjaENoYW5uZWwSHi55b3JraWUudjEuV2F0Y2hDaGFubmVsUmVxdWVzdBofLnlvcmtpZS52MS5XYXRjaENoYW5uZWxSZXNwb25zZSIAMAESVwoOQ3JlYXRlUmV2aXNpb24SIC55b3JraWUudjEuQ3JlYXRlUmV2aXNpb25SZXF1ZXN0GiEueW9ya2llLnYxLkNyZWF0ZVJldmlzaW9uUmVzcG9uc2UiABJOCgtHZXRSZXZpc2lvbhIdLnlvcmtpZS52MS5HZXRSZXZpc2lvblJlcXVlc3QaHi55b3JraWUudjEuR2V0UmV2aXNpb25SZXNwb25zZSIAElQKDUxpc3RSZXZpc2lvbnMSHy55b3JraWUudjEuTGlzdFJldmlzaW9uc1JlcXVlc3QaIC55b3JraWUudjEuTGlzdFJldmlzaW9uc1Jlc3BvbnNlIgASWgoPUmVzdG9yZVJldmlzaW9uEiEueW9ya2llLnYxLlJlc3RvcmVSZXZpc2lvblJlcXVlc3QaIi55b3JraWUudjEuUmVzdG9yZVJldmlzaW9uUmVzcG9uc2UiABJUCg1BdHRhY2hDaGFubmVsEh8ueW9ya2llLnYxLkF0dGFjaENoYW5uZWxSZXF1ZXN0GiAueW9ya2llLnYxLkF0dGFjaENoYW5uZWxSZXNwb25zZSIAElQKDURldGFjaENoYW5uZWwSHy55b3JraWUudjEuRGV0YWNoQ2hhbm5lbFJlcXVlc3QaIC55b3JraWUudjEuRGV0YWNoQ2hhbm5lbFJlc3BvbnNlIgASVwoOUmVmcmVzaENoYW5uZWwSIC55b3JraWUudjEuUmVmcmVzaENoYW5uZWxSZXF1ZXN0GiEueW9ya2llLnYxLlJlZnJlc2hDaGFubmVsUmVzcG9uc2UiABJICglCcm9hZGNhc3QSGy55b3JraWUudjEuQnJvYWRjYXN0UmVxdWVzdBocLnlvcmtpZS52MS5Ccm9hZGNhc3RSZXNwb25zZSIAQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_src_api_yorkie_v1_resources]);
5873
- const YorkieService = /* @__PURE__ */ serviceDesc(file_src_api_yorkie_v1_yorkie, 0);
5872
+ const file_yorkie_v1_yorkie = /* @__PURE__ */ fileDesc("ChZ5b3JraWUvdjEveW9ya2llLnByb3RvEgl5b3JraWUudjEingEKFUFjdGl2YXRlQ2xpZW50UmVxdWVzdBISCgpjbGllbnRfa2V5GAEgASgJEkAKCG1ldGFkYXRhGAIgAygLMi4ueW9ya2llLnYxLkFjdGl2YXRlQ2xpZW50UmVxdWVzdC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIrChZBY3RpdmF0ZUNsaWVudFJlc3BvbnNlEhEKCWNsaWVudF9pZBgBIAEoCSJBChdEZWFjdGl2YXRlQ2xpZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLc3luY2hyb25vdXMYAiABKAgiGgoYRGVhY3RpdmF0ZUNsaWVudFJlc3BvbnNlImoKFUF0dGFjaERvY3VtZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSKgoLY2hhbmdlX3BhY2sYAiABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxISCgpzY2hlbWFfa2V5GAMgASgJIp8BChZBdHRhY2hEb2N1bWVudFJlc3BvbnNlEhMKC2RvY3VtZW50X2lkGAEgASgJEioKC2NoYW5nZV9wYWNrGAIgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSHQoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAMgASgFEiUKDHNjaGVtYV9ydWxlcxgEIAMoCzIPLnlvcmtpZS52MS5SdWxlIosBChVEZXRhY2hEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSHgoWcmVtb3ZlX2lmX25vdF9hdHRhY2hlZBgEIAEoCCJEChZEZXRhY2hEb2N1bWVudFJlc3BvbnNlEioKC2NoYW5nZV9wYWNrGAIgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siUwoMV2F0Y2hSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRIwCglyZXNvdXJjZXMYAiADKAsyHS55b3JraWUudjEuUmVzb3VyY2VEZXNjcmlwdG9yIoQBChJSZXNvdXJjZURlc2NyaXB0b3ISMQoIZG9jdW1lbnQYASABKAsyHS55b3JraWUudjEuRG9jdW1lbnREZXNjcmlwdG9ySAASLwoHY2hhbm5lbBgCIAEoCzIcLnlvcmtpZS52MS5DaGFubmVsRGVzY3JpcHRvckgAQgoKCHJlc291cmNlIikKEkRvY3VtZW50RGVzY3JpcHRvchITCgtkb2N1bWVudF9pZBgBIAEoCSIoChFDaGFubmVsRGVzY3JpcHRvchITCgtjaGFubmVsX2tleRgBIAEoCSJ5Cg1XYXRjaFJlc3BvbnNlEjgKDmluaXRpYWxpemF0aW9uGAEgASgLMh4ueW9ya2llLnYxLldhdGNoSW5pdGlhbGl6YXRpb25IABImCgVldmVudBgCIAEoCzIVLnlvcmtpZS52MS5XYXRjaEV2ZW50SABCBgoEYm9keSJGChNXYXRjaEluaXRpYWxpemF0aW9uEi8KDnJlc291cmNlX2luaXRzGAEgAygLMhcueW9ya2llLnYxLlJlc291cmNlSW5pdCJ4CgxSZXNvdXJjZUluaXQSMAoNZG9jdW1lbnRfaW5pdBgBIAEoCzIXLnlvcmtpZS52MS5Eb2N1bWVudEluaXRIABIuCgxjaGFubmVsX2luaXQYAiABKAsyFi55b3JraWUudjEuQ2hhbm5lbEluaXRIAEIGCgRpbml0IjcKDERvY3VtZW50SW5pdBITCgtkb2N1bWVudF9pZBgBIAEoCRISCgpjbGllbnRfaWRzGAIgAygJIkYKC0NoYW5uZWxJbml0EhMKC2NoYW5uZWxfa2V5GAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAMSCwoDc2VxGAMgASgDInsKCldhdGNoRXZlbnQSLQoJZG9jX2V2ZW50GAEgASgLMhgueW9ya2llLnYxLkRvY1dhdGNoRXZlbnRIABI1Cg1jaGFubmVsX2V2ZW50GAIgASgLMhwueW9ya2llLnYxLkNoYW5uZWxXYXRjaEV2ZW50SABCBwoFZXZlbnQiSAoNRG9jV2F0Y2hFdmVudBITCgtkb2N1bWVudF9pZBgBIAEoCRIiCgVldmVudBgCIAEoCzITLnlvcmtpZS52MS5Eb2NFdmVudCJQChFDaGFubmVsV2F0Y2hFdmVudBITCgtjaGFubmVsX2tleRgBIAEoCRImCgVldmVudBgCIAEoCzIXLnlvcmtpZS52MS5DaGFubmVsRXZlbnQiPgoUV2F0Y2hEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJIrYBChVXYXRjaERvY3VtZW50UmVzcG9uc2USSQoOaW5pdGlhbGl6YXRpb24YASABKAsyLy55b3JraWUudjEuV2F0Y2hEb2N1bWVudFJlc3BvbnNlLkluaXRpYWxpemF0aW9uSAASJAoFZXZlbnQYAiABKAsyEy55b3JraWUudjEuRG9jRXZlbnRIABokCg5Jbml0aWFsaXphdGlvbhISCgpjbGllbnRfaWRzGAEgAygJQgYKBGJvZHkiPQoTV2F0Y2hDaGFubmVsUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLY2hhbm5lbF9rZXkYAiABKAkigwEKFFdhdGNoQ2hhbm5lbFJlc3BvbnNlEjkKC2luaXRpYWxpemVkGAEgASgLMiIueW9ya2llLnYxLldhdGNoQ2hhbm5lbEluaXRpYWxpemVkSAASKAoFZXZlbnQYAiABKAsyFy55b3JraWUudjEuQ2hhbm5lbEV2ZW50SABCBgoEYm9keSI9ChdXYXRjaENoYW5uZWxJbml0aWFsaXplZBIVCg1zZXNzaW9uX2NvdW50GAEgASgDEgsKA3NlcRgCIAEoAyJrChVSZW1vdmVEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siRAoWUmVtb3ZlRG9jdW1lbnRSZXNwb25zZRIqCgtjaGFuZ2VfcGFjaxgBIAEoCzIVLnlvcmtpZS52MS5DaGFuZ2VQYWNrIn8KFlB1c2hQdWxsQ2hhbmdlc1JlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSEQoJcHVzaF9vbmx5GAQgASgIIkUKF1B1c2hQdWxsQ2hhbmdlc1Jlc3BvbnNlEioKC2NoYW5nZV9wYWNrGAEgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siYwoVQ3JlYXRlUmV2aXNpb25SZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRINCgVsYWJlbBgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJGChZDcmVhdGVSZXZpc2lvblJlc3BvbnNlEiwKCHJldmlzaW9uGAEgASgLMhoueW9ya2llLnYxLlJldmlzaW9uU3VtbWFyeSJRChJHZXRSZXZpc2lvblJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEhMKC3JldmlzaW9uX2lkGAMgASgJIkMKE0dldFJldmlzaW9uUmVzcG9uc2USLAoIcmV2aXNpb24YASABKAsyGi55b3JraWUudjEuUmV2aXNpb25TdW1tYXJ5InUKFExpc3RSZXZpc2lvbnNSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRIRCglwYWdlX3NpemUYAyABKAUSDgoGb2Zmc2V0GAQgASgFEhIKCmlzX2ZvcndhcmQYBSABKAgiRgoVTGlzdFJldmlzaW9uc1Jlc3BvbnNlEi0KCXJldmlzaW9ucxgBIAMoCzIaLnlvcmtpZS52MS5SZXZpc2lvblN1bW1hcnkiVQoWUmVzdG9yZVJldmlzaW9uUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSEwoLcmV2aXNpb25faWQYBCABKAkiGQoXUmVzdG9yZVJldmlzaW9uUmVzcG9uc2UiPgoUQXR0YWNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJIkIKFUF0dGFjaENoYW5uZWxSZXNwb25zZRISCgpzZXNzaW9uX2lkGAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAMiUgoURGV0YWNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJEhIKCnNlc3Npb25faWQYAyABKAkiLgoVRGV0YWNoQ2hhbm5lbFJlc3BvbnNlEhUKDXNlc3Npb25fY291bnQYASABKAMi2gEKFVJlZnJlc2hDaGFubmVsUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLY2hhbm5lbF9rZXkYAiABKAkSEgoKc2Vzc2lvbl9pZBgDIAEoCRISCgpjbGllbnRfa2V5GAQgASgJEkAKCG1ldGFkYXRhGAUgAygLMi4ueW9ya2llLnYxLlJlZnJlc2hDaGFubmVsUmVxdWVzdC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJWChZSZWZyZXNoQ2hhbm5lbFJlc3BvbnNlEhUKDXNlc3Npb25fY291bnQYASABKAMSEQoJY2xpZW50X2lkGAIgASgJEhIKCnNlc3Npb25faWQYAyABKAkiKQoSUGVla0NoYW5uZWxSZXF1ZXN0EhMKC2NoYW5uZWxfa2V5GAEgASgJIiwKE1BlZWtDaGFubmVsUmVzcG9uc2USFQoNc2Vzc2lvbl9jb3VudBgBIAEoAyJaChBCcm9hZGNhc3RSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtjaGFubmVsX2tleRgCIAEoCRINCgV0b3BpYxgDIAEoCRIPCgdwYXlsb2FkGAQgASgMIhMKEUJyb2FkY2FzdFJlc3BvbnNlMpUMCg1Zb3JraWVTZXJ2aWNlElcKDkFjdGl2YXRlQ2xpZW50EiAueW9ya2llLnYxLkFjdGl2YXRlQ2xpZW50UmVxdWVzdBohLnlvcmtpZS52MS5BY3RpdmF0ZUNsaWVudFJlc3BvbnNlIgASXQoQRGVhY3RpdmF0ZUNsaWVudBIiLnlvcmtpZS52MS5EZWFjdGl2YXRlQ2xpZW50UmVxdWVzdBojLnlvcmtpZS52MS5EZWFjdGl2YXRlQ2xpZW50UmVzcG9uc2UiABJXCg5BdHRhY2hEb2N1bWVudBIgLnlvcmtpZS52MS5BdHRhY2hEb2N1bWVudFJlcXVlc3QaIS55b3JraWUudjEuQXR0YWNoRG9jdW1lbnRSZXNwb25zZSIAElcKDkRldGFjaERvY3VtZW50EiAueW9ya2llLnYxLkRldGFjaERvY3VtZW50UmVxdWVzdBohLnlvcmtpZS52MS5EZXRhY2hEb2N1bWVudFJlc3BvbnNlIgASVwoOUmVtb3ZlRG9jdW1lbnQSIC55b3JraWUudjEuUmVtb3ZlRG9jdW1lbnRSZXF1ZXN0GiEueW9ya2llLnYxLlJlbW92ZURvY3VtZW50UmVzcG9uc2UiABJaCg9QdXNoUHVsbENoYW5nZXMSIS55b3JraWUudjEuUHVzaFB1bGxDaGFuZ2VzUmVxdWVzdBoiLnlvcmtpZS52MS5QdXNoUHVsbENoYW5nZXNSZXNwb25zZSIAEj4KBVdhdGNoEhcueW9ya2llLnYxLldhdGNoUmVxdWVzdBoYLnlvcmtpZS52MS5XYXRjaFJlc3BvbnNlIgAwARJWCg1XYXRjaERvY3VtZW50Eh8ueW9ya2llLnYxLldhdGNoRG9jdW1lbnRSZXF1ZXN0GiAueW9ya2llLnYxLldhdGNoRG9jdW1lbnRSZXNwb25zZSIAMAESUwoMV2F0Y2hDaGFubmVsEh4ueW9ya2llLnYxLldhdGNoQ2hhbm5lbFJlcXVlc3QaHy55b3JraWUudjEuV2F0Y2hDaGFubmVsUmVzcG9uc2UiADABElcKDkNyZWF0ZVJldmlzaW9uEiAueW9ya2llLnYxLkNyZWF0ZVJldmlzaW9uUmVxdWVzdBohLnlvcmtpZS52MS5DcmVhdGVSZXZpc2lvblJlc3BvbnNlIgASTgoLR2V0UmV2aXNpb24SHS55b3JraWUudjEuR2V0UmV2aXNpb25SZXF1ZXN0Gh4ueW9ya2llLnYxLkdldFJldmlzaW9uUmVzcG9uc2UiABJUCg1MaXN0UmV2aXNpb25zEh8ueW9ya2llLnYxLkxpc3RSZXZpc2lvbnNSZXF1ZXN0GiAueW9ya2llLnYxLkxpc3RSZXZpc2lvbnNSZXNwb25zZSIAEloKD1Jlc3RvcmVSZXZpc2lvbhIhLnlvcmtpZS52MS5SZXN0b3JlUmV2aXNpb25SZXF1ZXN0GiIueW9ya2llLnYxLlJlc3RvcmVSZXZpc2lvblJlc3BvbnNlIgASVAoNQXR0YWNoQ2hhbm5lbBIfLnlvcmtpZS52MS5BdHRhY2hDaGFubmVsUmVxdWVzdBogLnlvcmtpZS52MS5BdHRhY2hDaGFubmVsUmVzcG9uc2UiABJUCg1EZXRhY2hDaGFubmVsEh8ueW9ya2llLnYxLkRldGFjaENoYW5uZWxSZXF1ZXN0GiAueW9ya2llLnYxLkRldGFjaENoYW5uZWxSZXNwb25zZSIAElcKDlJlZnJlc2hDaGFubmVsEiAueW9ya2llLnYxLlJlZnJlc2hDaGFubmVsUmVxdWVzdBohLnlvcmtpZS52MS5SZWZyZXNoQ2hhbm5lbFJlc3BvbnNlIgASTgoLUGVla0NoYW5uZWwSHS55b3JraWUudjEuUGVla0NoYW5uZWxSZXF1ZXN0Gh4ueW9ya2llLnYxLlBlZWtDaGFubmVsUmVzcG9uc2UiABJICglCcm9hZGNhc3QSGy55b3JraWUudjEuQnJvYWRjYXN0UmVxdWVzdBocLnlvcmtpZS52MS5Ccm9hZGNhc3RSZXNwb25zZSIAQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_yorkie_v1_resources]);
5873
+ const YorkieService = /* @__PURE__ */ serviceDesc(file_yorkie_v1_yorkie, 0);
5874
5874
  const file_google_rpc_error_details = /* @__PURE__ */ fileDesc("Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMikwEKCUVycm9ySW5mbxIOCgZyZWFzb24YASABKAkSDgoGZG9tYWluGAIgASgJEjUKCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwoJUmV0cnlJbmZvEi4KC3JldHJ5X2RlbGF5GAEgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjIKCURlYnVnSW5mbxIVCg1zdGFja19lbnRyaWVzGAEgAygJEg4KBmRldGFpbBgCIAEoCSKPAwoMUXVvdGFGYWlsdXJlEjYKCnZpb2xhdGlvbnMYASADKAsyIi5nb29nbGUucnBjLlF1b3RhRmFpbHVyZS5WaW9sYXRpb24axgIKCVZpb2xhdGlvbhIPCgdzdWJqZWN0GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2FwaV9zZXJ2aWNlGAMgASgJEhQKDHF1b3RhX21ldHJpYxgEIAEoCRIQCghxdW90YV9pZBgFIAEoCRJRChBxdW90YV9kaW1lbnNpb25zGAYgAygLMjcuZ29vZ2xlLnJwYy5RdW90YUZhaWx1cmUuVmlvbGF0aW9uLlF1b3RhRGltZW5zaW9uc0VudHJ5EhMKC3F1b3RhX3ZhbHVlGAcgASgDEh8KEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAiAEBGjYKFFF1b3RhRGltZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSKVAQoTUHJlY29uZGl0aW9uRmFpbHVyZRI9Cgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvbho/CglWaW9sYXRpb24SDAoEdHlwZRgBIAEoCRIPCgdzdWJqZWN0GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIswBCgpCYWRSZXF1ZXN0Ej8KEGZpZWxkX3Zpb2xhdGlvbnMYASADKAsyJS5nb29nbGUucnBjLkJhZFJlcXVlc3QuRmllbGRWaW9sYXRpb24afQoORmllbGRWaW9sYXRpb24SDQoFZmllbGQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDgoGcmVhc29uGAMgASgJEjcKEWxvY2FsaXplZF9tZXNzYWdlGAQgASgLMhwuZ29vZ2xlLnJwYy5Mb2NhbGl6ZWRNZXNzYWdlIjcKC1JlcXVlc3RJbmZvEhIKCnJlcXVlc3RfaWQYASABKAkSFAoMc2VydmluZ19kYXRhGAIgASgJImAKDFJlc291cmNlSW5mbxIVCg1yZXNvdXJjZV90eXBlGAEgASgJEhUKDXJlc291cmNlX25hbWUYAiABKAkSDQoFb3duZXIYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiVgoESGVscBIkCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rGigKBExpbmsSEwoLZGVzY3JpcHRpb24YASABKAkSCwoDdXJsGAIgASgJIjMKEExvY2FsaXplZE1lc3NhZ2USDgoGbG9jYWxlGAEgASgJEg8KB21lc3NhZ2UYAiABKAlCbAoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFaP2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvcnBjL2VycmRldGFpbHM7ZXJyZGV0YWlsc6ICA1JQQ2IGcHJvdG8z", [file_google_protobuf_duration]);
5875
5875
  const ErrorInfoSchema = /* @__PURE__ */ messageDesc(file_google_rpc_error_details, 0);
5876
5876
  var Code = /* @__PURE__ */ ((Code2) => {
@@ -5882,6 +5882,7 @@
5882
5882
  Code2["ErrDummy"] = "ErrDummy";
5883
5883
  Code2["ErrNotAttached"] = "ErrNotAttached";
5884
5884
  Code2["ErrNotDetached"] = "ErrNotDetached";
5885
+ Code2["ErrSessionNotFound"] = "ErrSessionNotFound";
5885
5886
  Code2["ErrDocumentRemoved"] = "ErrDocumentRemoved";
5886
5887
  Code2["ErrDocumentSizeExceedsLimit"] = "ErrDocumentSizeExceedsLimit";
5887
5888
  Code2["ErrDocumentSchemaValidationFailed"] = "ErrDocumentSchemaValidationFailed";
@@ -20780,12 +20781,25 @@
20780
20781
  }
20781
20782
  class Attachment {
20782
20783
  resource;
20784
+ /**
20785
+ * For Documents: the document's resourceID, available at attach time.
20786
+ * For Channels: the server-issued session_id. Starts empty and is
20787
+ * populated after the first `RefreshChannel` first-call response.
20788
+ */
20783
20789
  resourceID;
20784
20790
  syncMode;
20785
20791
  changeEventReceived;
20786
20792
  lastHeartbeatTime;
20787
20793
  pollInterval;
20788
20794
  pollIntervalPinned;
20795
+ /**
20796
+ * `unsubscribeLocalBroadcast` is set by `attachChannel` when it forwards
20797
+ * a Channel's `local-broadcast` events to the RPC client, and consumed
20798
+ * by `detachInternal` so the subscription does not survive a detach.
20799
+ * Without this, re-attaching a channel accumulates duplicate handlers
20800
+ * on each attach cycle.
20801
+ */
20802
+ unsubscribeLocalBroadcast;
20789
20803
  reconnectStreamDelay;
20790
20804
  cancelled;
20791
20805
  watchStream;
@@ -20793,13 +20807,13 @@
20793
20807
  watchAbortController;
20794
20808
  syncPromise;
20795
20809
  _detaching = false;
20796
- constructor(reconnectStreamDelay, resource, resourceID, syncMode, pollInterval = 0, pollIntervalPinned = false) {
20810
+ constructor(reconnectStreamDelay, resource, resourceID = "", syncMode, pollInterval = 0, pollIntervalPinned = false) {
20797
20811
  this.reconnectStreamDelay = reconnectStreamDelay;
20798
20812
  this.resource = resource;
20799
20813
  this.resourceID = resourceID;
20800
20814
  this.syncMode = syncMode;
20801
20815
  this.changeEventReceived = syncMode !== void 0 ? false : void 0;
20802
- this.lastHeartbeatTime = Date.now();
20816
+ this.lastHeartbeatTime = 0;
20803
20817
  this.pollInterval = pollInterval;
20804
20818
  this.pollIntervalPinned = pollIntervalPinned;
20805
20819
  this.cancelled = false;
@@ -20961,7 +20975,7 @@
20961
20975
  };
20962
20976
  }
20963
20977
  const name$1 = "@yorkie-js/sdk";
20964
- const version$1 = "0.7.8";
20978
+ const version$1 = "0.7.10-rc";
20965
20979
  const pkg$1 = {
20966
20980
  name: name$1,
20967
20981
  version: version$1
@@ -20999,6 +21013,7 @@
20999
21013
  ChannelEventType2["Broadcast"] = "broadcast";
21000
21014
  ChannelEventType2["LocalBroadcast"] = "local-broadcast";
21001
21015
  ChannelEventType2["AuthError"] = "auth-error";
21016
+ ChannelEventType2["SyncError"] = "sync-error";
21002
21017
  return ChannelEventType2;
21003
21018
  })(ChannelEventType || {});
21004
21019
  const KeyPathSeparator = ".";
@@ -21138,6 +21153,13 @@
21138
21153
  }
21139
21154
  });
21140
21155
  }
21156
+ if (typeOrTopic === "sync-error") {
21157
+ return this.eventStream.subscribe((event) => {
21158
+ if (event.type === "sync-error") {
21159
+ callback(event);
21160
+ }
21161
+ });
21162
+ }
21141
21163
  if (typeOrTopic === "presence") {
21142
21164
  return this.eventStream.subscribe((event) => {
21143
21165
  if (event.type === "presence-changed" || event.type === "initialized") {
@@ -21247,13 +21269,14 @@
21247
21269
  SyncMode2["Polling"] = "polling";
21248
21270
  return SyncMode2;
21249
21271
  })(SyncMode || {});
21250
- const DefaultPollingIntervalMs = 3e3;
21272
+ const DefaultDocumentPollIntervalMs = 3e3;
21273
+ const DefaultChannelHeartbeatMs = 5e3;
21251
21274
  const DefaultClientOptions = {
21252
21275
  rpcAddr: "https://api.yorkie.dev",
21253
21276
  syncLoopDuration: 50,
21254
21277
  retrySyncLoopDelay: 1e3,
21255
21278
  reconnectStreamDelay: 1e3,
21256
- channelHeartbeatInterval: 3e4
21279
+ channelHeartbeatInterval: DefaultChannelHeartbeatMs
21257
21280
  };
21258
21281
  const DefaultBroadcastOptions = {
21259
21282
  maxRetries: Infinity,
@@ -21450,7 +21473,7 @@
21450
21473
  );
21451
21474
  }
21452
21475
  const pollIntervalPinned = opts.documentPollInterval !== void 0;
21453
- const pollInterval = pollIntervalPinned ? opts.documentPollInterval : syncMode === "polling" ? DefaultPollingIntervalMs : 0;
21476
+ const pollInterval = pollIntervalPinned ? opts.documentPollInterval : syncMode === "polling" ? DefaultDocumentPollIntervalMs : 0;
21454
21477
  return this.enqueueTask(async () => {
21455
21478
  try {
21456
21479
  const res = await this.rpcClient.attachDocument(
@@ -21579,127 +21602,88 @@
21579
21602
  return this.enqueueTask(task);
21580
21603
  }
21581
21604
  /**
21582
- * `attach` attaches the given channel to this client.
21583
- * It tells the server that this client will track the channel.
21605
+ * `attachChannel` attaches the given channel to this client. The channel is
21606
+ * registered locally and the server is notified on the next RefreshChannel
21607
+ * heartbeat.
21584
21608
  */
21585
21609
  async attachChannel(channel, opts = {}) {
21586
- if (!this.isActive()) {
21587
- throw new YorkieError(
21588
- Code.ErrClientNotActivated,
21589
- `${this.key} is not active`
21590
- );
21591
- }
21592
21610
  if (channel.getStatus() !== ChannelStatus.Detached) {
21593
21611
  throw new YorkieError(
21594
21612
  Code.ErrNotDetached,
21595
21613
  `${channel.getKey()} is not detached`
21596
21614
  );
21597
21615
  }
21598
- channel.setActor(this.id);
21616
+ const syncMode = opts.syncMode ?? "realtime";
21617
+ this.assertValidChannelSyncMode(syncMode);
21618
+ if (opts.channelHeartbeatInterval !== void 0 && opts.channelHeartbeatInterval <= 0) {
21619
+ throw new YorkieError(
21620
+ Code.ErrInvalidArgument,
21621
+ "channelHeartbeatInterval must be greater than 0"
21622
+ );
21623
+ }
21624
+ const pollIntervalPinned = opts.channelHeartbeatInterval !== void 0;
21625
+ const pollInterval = opts.channelHeartbeatInterval ?? this.channelHeartbeatInterval;
21599
21626
  const task = async () => {
21600
- try {
21601
- const res = await this.rpcClient.attachChannel(
21602
- {
21603
- clientId: this.id,
21604
- channelKey: channel.getKey()
21605
- },
21606
- {
21607
- headers: {
21608
- "x-shard-key": `${this.apiKey}/${channel.getFirstKeyPath()}`
21609
- }
21610
- }
21611
- );
21612
- channel.setSessionID(res.sessionId);
21613
- channel.updateSessionCount(Number(res.sessionCount), 0);
21614
- channel.applyStatus(ChannelStatus.Attached);
21615
- const syncMode = opts.syncMode ?? "realtime";
21616
- this.assertValidChannelSyncMode(syncMode);
21617
- if (opts.channelHeartbeatInterval !== void 0 && opts.channelHeartbeatInterval <= 0) {
21618
- throw new YorkieError(
21619
- Code.ErrInvalidArgument,
21620
- "channelHeartbeatInterval must be greater than 0"
21621
- );
21622
- }
21623
- const pollIntervalPinned = opts.channelHeartbeatInterval !== void 0;
21624
- const pollInterval = pollIntervalPinned ? opts.channelHeartbeatInterval : syncMode === "polling" ? DefaultPollingIntervalMs : this.channelHeartbeatInterval;
21625
- const attachment = new Attachment(
21626
- this.reconnectStreamDelay,
21627
- channel,
21628
- res.sessionId,
21629
- syncMode,
21630
- pollInterval,
21631
- pollIntervalPinned
21632
- );
21633
- channel.subscribe("local-broadcast", (event) => {
21627
+ if (this.id) {
21628
+ channel.setActor(this.id);
21629
+ }
21630
+ const attachment = new Attachment(
21631
+ this.reconnectStreamDelay,
21632
+ channel,
21633
+ "",
21634
+ // sessionID populated on first refresh response
21635
+ syncMode,
21636
+ pollInterval,
21637
+ pollIntervalPinned
21638
+ );
21639
+ attachment.unsubscribeLocalBroadcast = channel.subscribe(
21640
+ "local-broadcast",
21641
+ (event) => {
21634
21642
  const { topic, payload, options } = event;
21635
21643
  this.broadcast(channel.getKey(), topic, payload, options).catch(
21636
21644
  (error) => {
21637
- if (options?.error) {
21638
- options.error(error);
21639
- }
21645
+ if (options?.error) options.error(error);
21640
21646
  logger.error(`[BC] c:"${this.getKey()}" failed: ${error}`);
21641
21647
  }
21642
21648
  );
21643
- });
21644
- this.attachmentMap.set(channel.getKey(), attachment);
21645
- if (syncMode === "realtime") {
21646
- await this.runWatchLoop(channel.getKey());
21647
21649
  }
21648
- logger.info(
21649
- `[AP] c:"${this.getKey()}" attaches p:"${channel.getKey()}" mode:${syncMode} count:${channel.getSessionCount()}`
21650
- );
21651
- return channel;
21652
- } catch (err) {
21653
- logger.error(`[AP] c:"${this.getKey()}" err :`, err);
21654
- await this.handleConnectError(err);
21655
- throw err;
21650
+ );
21651
+ this.attachmentMap.set(channel.getKey(), attachment);
21652
+ if (!this.conditions[
21653
+ "SyncLoop"
21654
+ /* SyncLoop */
21655
+ ]) {
21656
+ this.runSyncLoop();
21656
21657
  }
21658
+ logger.info(
21659
+ `[AP] c:"${this.getKey()}" attaches p:"${channel.getKey()}" mode:${syncMode}`
21660
+ );
21661
+ return channel;
21657
21662
  };
21658
21663
  return this.enqueueTask(task);
21659
21664
  }
21660
21665
  /**
21661
- * `detachChannel` detaches the given channel from this client.
21662
- * It tells the server that this client will no longer track the channel.
21666
+ * `detachChannel` detaches the given channel from this client. The detach
21667
+ * is a local cleanup; the server reclaims the session via TTL when
21668
+ * heartbeats stop.
21663
21669
  */
21664
21670
  async detachChannel(channel) {
21665
- if (!this.isActive()) {
21666
- throw new YorkieError(
21667
- Code.ErrClientNotActivated,
21668
- `${this.key} is not active`
21669
- );
21670
- }
21671
- if (!this.attachmentMap.has(channel.getKey())) {
21671
+ const attachment = this.attachmentMap.get(channel.getKey());
21672
+ if (!attachment) {
21672
21673
  throw new YorkieError(
21673
21674
  Code.ErrNotAttached,
21674
21675
  `${channel.getKey()} is not attached`
21675
21676
  );
21676
21677
  }
21678
+ attachment.markDetaching();
21679
+ await attachment.waitForSyncComplete();
21677
21680
  const task = async () => {
21678
- try {
21679
- const res = await this.rpcClient.detachChannel(
21680
- {
21681
- clientId: this.id,
21682
- channelKey: channel.getKey(),
21683
- sessionId: channel.getSessionID()
21684
- },
21685
- {
21686
- headers: {
21687
- "x-shard-key": `${this.apiKey}/${channel.getFirstKeyPath()}`
21688
- }
21689
- }
21690
- );
21691
- channel.updateSessionCount(Number(res.sessionCount), 0);
21692
- channel.applyStatus(ChannelStatus.Detached);
21693
- this.detachInternal(channel.getKey());
21694
- logger.info(
21695
- `[DP] c:"${this.getKey()}" detaches p:"${channel.getKey()}" count:${channel.getSessionCount()}`
21696
- );
21697
- return channel;
21698
- } catch (err) {
21699
- logger.error(`[DP] c:"${this.getKey()}" err :`, err);
21700
- await this.handleConnectError(err);
21701
- throw err;
21702
- }
21681
+ channel.applyStatus(ChannelStatus.Detached);
21682
+ this.detachInternal(channel.getKey());
21683
+ logger.info(
21684
+ `[DP] c:"${this.getKey()}" detaches p:"${channel.getKey()}" (local)`
21685
+ );
21686
+ return channel;
21703
21687
  };
21704
21688
  return this.enqueueTask(task);
21705
21689
  }
@@ -21740,7 +21724,7 @@
21740
21724
  attachment.changeEventReceived = true;
21741
21725
  }
21742
21726
  if (!attachment.pollIntervalPinned) {
21743
- attachment.pollInterval = syncMode === "polling" ? DefaultPollingIntervalMs : 0;
21727
+ attachment.pollInterval = syncMode === "polling" ? DefaultDocumentPollIntervalMs : 0;
21744
21728
  }
21745
21729
  if ((prevSyncMode === "manual" || prevSyncMode === "polling") && syncMode !== "manual" && syncMode !== "polling") {
21746
21730
  attachment.resetCancelled();
@@ -21761,12 +21745,6 @@
21761
21745
  }
21762
21746
  }
21763
21747
  async changeChannelSyncMode(channel, syncMode) {
21764
- if (!this.isActive()) {
21765
- throw new YorkieError(
21766
- Code.ErrClientNotActivated,
21767
- `${this.key} is not active`
21768
- );
21769
- }
21770
21748
  const attachment = this.attachmentMap.get(channel.getKey());
21771
21749
  if (!attachment) {
21772
21750
  throw new YorkieError(
@@ -21784,7 +21762,7 @@
21784
21762
  }
21785
21763
  attachment.changeSyncMode(syncMode);
21786
21764
  if (!attachment.pollIntervalPinned) {
21787
- attachment.pollInterval = syncMode === "polling" ? DefaultPollingIntervalMs : syncMode === "realtime" ? this.channelHeartbeatInterval : 0;
21765
+ attachment.pollInterval = syncMode === "manual" ? 0 : this.channelHeartbeatInterval;
21788
21766
  }
21789
21767
  if (syncMode === "realtime") {
21790
21768
  attachment.resetCancelled();
@@ -21796,7 +21774,7 @@
21796
21774
  * `sync` implementation that handles both Document and Channel.
21797
21775
  */
21798
21776
  sync(resource) {
21799
- if (!this.isActive()) {
21777
+ if (!(resource instanceof Channel) && !this.isActive()) {
21800
21778
  throw new YorkieError(
21801
21779
  Code.ErrClientNotActivated,
21802
21780
  `${this.key} is not active`
@@ -22112,16 +22090,34 @@
22112
22090
  };
22113
22091
  return this.enqueueTask(task);
22114
22092
  }
22093
+ /**
22094
+ * `peekChannel` reads the current session count of a channel without
22095
+ * creating a session on the server. Use this when the caller only needs
22096
+ * to display the count (e.g. "N people writing") without contributing to
22097
+ * it and without receiving broadcasts.
22098
+ *
22099
+ * Unlike `attach({ readOnly: true })`, this does not occupy a `Session`
22100
+ * entry on the server, does not generate heartbeat RPCs, and does not
22101
+ * subscribe to channel events. Polling is the caller's responsibility.
22102
+ */
22103
+ async peekChannel(channelKey) {
22104
+ return this.enqueueTask(async () => {
22105
+ const firstKeyPath = channelKey.split(".")[0];
22106
+ const res = await this.rpcClient.peekChannel(
22107
+ { channelKey },
22108
+ {
22109
+ headers: {
22110
+ "x-shard-key": `${this.apiKey}/${firstKeyPath}`
22111
+ }
22112
+ }
22113
+ );
22114
+ return Number(res.sessionCount);
22115
+ });
22116
+ }
22115
22117
  /**
22116
22118
  * `broadcast` broadcasts the given payload to the given topic.
22117
22119
  */
22118
22120
  async broadcast(key, topic, payload, options) {
22119
- if (!this.isActive()) {
22120
- throw new YorkieError(
22121
- Code.ErrClientNotActivated,
22122
- `${this.key} is not active`
22123
- );
22124
- }
22125
22121
  const attachment = this.attachmentMap.get(key);
22126
22122
  if (!attachment) {
22127
22123
  throw new YorkieError(Code.ErrNotAttached, `${key} is not attached`);
@@ -22198,8 +22194,16 @@
22198
22194
  */
22199
22195
  runSyncLoop() {
22200
22196
  const doLoop = async () => {
22201
- if (!this.isActive() || this.deactivating) {
22202
- logger.debug(`[SL] c:"${this.getKey()}" exit sync loop`);
22197
+ if (this.deactivating) {
22198
+ logger.debug(`[SL] c:"${this.getKey()}" exit sync loop (deactivating)`);
22199
+ this.conditions[
22200
+ "SyncLoop"
22201
+ /* SyncLoop */
22202
+ ] = false;
22203
+ return;
22204
+ }
22205
+ if (!this.isActive() && this.attachmentMap.size === 0) {
22206
+ logger.debug(`[SL] c:"${this.getKey()}" exit sync loop (idle)`);
22203
22207
  this.conditions[
22204
22208
  "SyncLoop"
22205
22209
  /* SyncLoop */
@@ -22585,6 +22589,10 @@
22585
22589
  return;
22586
22590
  }
22587
22591
  attachment.cancelWatchStream();
22592
+ if (attachment.unsubscribeLocalBroadcast) {
22593
+ attachment.unsubscribeLocalBroadcast();
22594
+ attachment.unsubscribeLocalBroadcast = void 0;
22595
+ }
22588
22596
  if (attachment.resource instanceof Document) {
22589
22597
  attachment.resource.resetOnlineClients();
22590
22598
  }
@@ -22593,12 +22601,17 @@
22593
22601
  async syncInternal(attachment, syncMode) {
22594
22602
  const { resource } = attachment;
22595
22603
  if (resource instanceof Channel) {
22604
+ const isFirstCall = !resource.getSessionID();
22596
22605
  try {
22597
22606
  const res = await this.rpcClient.refreshChannel(
22598
22607
  {
22599
- clientId: this.id,
22608
+ clientId: this.id ?? "",
22600
22609
  channelKey: resource.getKey(),
22601
- sessionId: resource.getSessionID()
22610
+ sessionId: resource.getSessionID() ?? "",
22611
+ // First-call only — these fields are ignored by the server
22612
+ // once a session_id is established.
22613
+ clientKey: isFirstCall ? this.key : "",
22614
+ metadata: isFirstCall ? this.metadata : {}
22602
22615
  },
22603
22616
  {
22604
22617
  headers: {
@@ -22606,12 +22619,60 @@
22606
22619
  }
22607
22620
  }
22608
22621
  );
22609
- resource.updateSessionCount(Number(res.sessionCount), 0);
22622
+ if (isFirstCall) {
22623
+ if (this.deactivating || attachment.isDetaching()) {
22624
+ return resource;
22625
+ }
22626
+ if (res.clientId && !this.id) {
22627
+ this.id = res.clientId;
22628
+ this.status = "activated";
22629
+ resource.setActor(res.clientId);
22630
+ } else if (this.id) {
22631
+ resource.setActor(this.id);
22632
+ }
22633
+ if (res.sessionId) {
22634
+ resource.setSessionID(res.sessionId);
22635
+ attachment.resourceID = res.sessionId;
22636
+ resource.applyStatus(ChannelStatus.Attached);
22637
+ }
22638
+ if (attachment.syncMode === "realtime") {
22639
+ this.runWatchLoop(resource.getKey()).catch((err) => {
22640
+ logger.error(
22641
+ `[WP] c:"${this.getKey()}" failed to start watch for p:"${resource.getKey()}":`,
22642
+ err
22643
+ );
22644
+ });
22645
+ }
22646
+ }
22647
+ const prevCount = resource.getSessionCount();
22648
+ if (resource.updateSessionCount(Number(res.sessionCount), 0)) {
22649
+ if (resource.getSessionCount() !== prevCount) {
22650
+ resource.publish({
22651
+ type: ChannelEventType.PresenceChanged,
22652
+ count: resource.getSessionCount()
22653
+ });
22654
+ }
22655
+ }
22610
22656
  attachment.updateHeartbeatTime();
22611
22657
  logger.debug(
22612
22658
  `[RP] c:"${this.getKey()}" refreshes p:"${resource.getKey()}" mode:${attachment.syncMode}`
22613
22659
  );
22614
22660
  } catch (err) {
22661
+ if (isErrorCode(err, Code.ErrSessionNotFound)) {
22662
+ logger.info(
22663
+ `[RP] c:"${this.getKey()}" session expired for p:"${resource.getKey()}", re-attaching`
22664
+ );
22665
+ resource.setSessionID("");
22666
+ attachment.resourceID = "";
22667
+ return resource;
22668
+ }
22669
+ if (!this.deactivating && !attachment.isDetaching()) {
22670
+ resource.publish({
22671
+ type: ChannelEventType.SyncError,
22672
+ error: err,
22673
+ method: "RefreshChannel"
22674
+ });
22675
+ }
22615
22676
  logger.error(`[RP] c:"${this.getKey()}" err :`, err);
22616
22677
  throw err;
22617
22678
  }
@@ -22962,7 +23023,7 @@
22962
23023
  };
22963
23024
  }
22964
23025
  const name = "@yorkie-js/react";
22965
- const version = "0.7.8";
23026
+ const version = "0.7.10-rc";
22966
23027
  const pkg = {
22967
23028
  name,
22968
23029
  version
@@ -22972,7 +23033,7 @@
22972
23033
  loading: true,
22973
23034
  error: void 0
22974
23035
  });
22975
- function useYorkieClient(opts) {
23036
+ function useYorkieClient(opts, activate = true) {
22976
23037
  const [client, setClient] = react.useState(void 0);
22977
23038
  const [loading, setLoading] = react.useState(true);
22978
23039
  const [error, setError] = react.useState(void 0);
@@ -22989,7 +23050,9 @@
22989
23050
  }
22990
23051
  try {
22991
23052
  const newClient = new Client(opts);
22992
- await newClient.activate();
23053
+ if (activate) {
23054
+ await newClient.activate();
23055
+ }
22993
23056
  setClient(newClient);
22994
23057
  } catch (e) {
22995
23058
  setError(
@@ -23001,24 +23064,21 @@
23001
23064
  }
23002
23065
  activateClient();
23003
23066
  return () => {
23004
- if (client?.isActive()) {
23067
+ if (activate && client?.isActive()) {
23005
23068
  client.deactivate({ keepalive: true });
23006
23069
  }
23007
23070
  };
23008
- }, [opts.apiKey, opts.rpcAddr, didMount]);
23071
+ }, [opts.apiKey, opts.rpcAddr, didMount, activate]);
23009
23072
  return { client, loading, error };
23010
23073
  }
23011
- const YorkieProvider = ({
23012
- children,
23013
- ...opts
23014
- }) => {
23074
+ const YorkieProvider = ({ children, activate = true, ...opts }) => {
23015
23075
  const clientOpts = react.useMemo(() => {
23016
23076
  return {
23017
23077
  userAgent: pkg.name + "/" + pkg.version,
23018
23078
  ...opts
23019
23079
  };
23020
23080
  }, [opts.apiKey, opts.rpcAddr]);
23021
- const { client, loading, error } = useYorkieClient(clientOpts);
23081
+ const { client, loading, error } = useYorkieClient(clientOpts, activate);
23022
23082
  return /* @__PURE__ */ jsxRuntime.jsx(YorkieContext.Provider, { value: { client, loading, error }, children });
23023
23083
  };
23024
23084
  const useYorkie = () => {
@@ -23152,7 +23212,7 @@
23152
23212
  valueB
23153
23213
  );
23154
23214
  }
23155
- function useYorkieDocument(client, clientLoading, clientError, docKey, initialRoot, initialPresence, enableDevtools, docStore) {
23215
+ function useYorkieDocument(client, clientLoading, clientError, docKey, initialRoot, initialPresence, enableDevtools, syncMode, documentPollInterval, docStore) {
23156
23216
  const initialRootRef = react.useRef(initialRoot);
23157
23217
  const initialPresenceRef = react.useRef(initialPresence);
23158
23218
  const [didMount, setDidMount] = react.useState(false);
@@ -23210,7 +23270,9 @@
23210
23270
  try {
23211
23271
  await client?.attach(newDoc, {
23212
23272
  initialRoot: initialRootRef.current,
23213
- initialPresence: initialPresenceRef.current
23273
+ initialPresence: initialPresenceRef.current,
23274
+ syncMode,
23275
+ documentPollInterval
23214
23276
  });
23215
23277
  const update = (callback) => {
23216
23278
  try {
@@ -23250,7 +23312,16 @@
23250
23312
  unsub();
23251
23313
  }
23252
23314
  };
23253
- }, [client, clientLoading, clientError, docKey, docStore, didMount]);
23315
+ }, [
23316
+ client,
23317
+ clientLoading,
23318
+ clientError,
23319
+ docKey,
23320
+ docStore,
23321
+ didMount,
23322
+ syncMode,
23323
+ documentPollInterval
23324
+ ]);
23254
23325
  }
23255
23326
  const DocumentContext = react.createContext(void 0);
23256
23327
  const DocumentProvider = ({
@@ -23258,6 +23329,8 @@
23258
23329
  initialRoot = {},
23259
23330
  initialPresence = {},
23260
23331
  enableDevtools = false,
23332
+ syncMode,
23333
+ documentPollInterval,
23261
23334
  children
23262
23335
  }) => {
23263
23336
  const { client, loading: clientLoading, error: clientError } = useYorkie();
@@ -23283,6 +23356,8 @@
23283
23356
  initialRoot,
23284
23357
  initialPresence,
23285
23358
  enableDevtools,
23359
+ syncMode,
23360
+ documentPollInterval,
23286
23361
  documentStore
23287
23362
  );
23288
23363
  return /* @__PURE__ */ jsxRuntime.jsx(DocumentContext.Provider, { value: documentStore, children });
@@ -23400,6 +23475,8 @@
23400
23475
  opts?.initialRoot ?? {},
23401
23476
  opts?.initialPresence ?? {},
23402
23477
  opts?.enableDevtools ?? false,
23478
+ opts?.syncMode,
23479
+ opts?.documentPollInterval,
23403
23480
  documentStore
23404
23481
  );
23405
23482
  const documentState = useSelector(documentStore);
@@ -23418,7 +23495,7 @@
23418
23495
  const ChannelContext = react.createContext(
23419
23496
  void 0
23420
23497
  );
23421
- function useYorkieChannel(client, clientLoading, clientError, channelKey, syncMode, channelStore) {
23498
+ function useYorkieChannel(client, clientLoading, clientError, channelKey, syncMode, channelHeartbeatInterval, channelStore) {
23422
23499
  const channelRef = react.useRef(void 0);
23423
23500
  const [didMount, setDidMount] = react.useState(false);
23424
23501
  react.useEffect(() => {
@@ -23437,7 +23514,7 @@
23437
23514
  }
23438
23515
  let unsubscribe;
23439
23516
  async function attachChannel() {
23440
- if (!client || !client.isActive()) {
23517
+ if (!client) {
23441
23518
  return;
23442
23519
  }
23443
23520
  channelStore.setState((state) => ({
@@ -23447,20 +23524,49 @@
23447
23524
  }));
23448
23525
  try {
23449
23526
  const newChannel = new Channel(channelKey);
23450
- await client.attach(newChannel, { syncMode });
23527
+ await client.attach(newChannel, {
23528
+ syncMode,
23529
+ channelHeartbeatInterval
23530
+ });
23451
23531
  channelRef.current = newChannel;
23452
- unsubscribe = newChannel.subscribe(() => {
23532
+ unsubscribe = newChannel.subscribe((event) => {
23533
+ if (event.type === ChannelEventType.SyncError || event.type === ChannelEventType.AuthError) {
23534
+ const nextError = event.type === ChannelEventType.SyncError ? event.error instanceof Error ? event.error : new Error(String(event.error)) : new Error(
23535
+ `auth error during ${event.method}: ${event.reason}`
23536
+ );
23537
+ channelStore.setState((state) => ({
23538
+ ...state,
23539
+ loading: false,
23540
+ error: nextError
23541
+ }));
23542
+ return;
23543
+ }
23544
+ const recovers = event.type === ChannelEventType.PresenceChanged || event.type === ChannelEventType.Initialized || event.type === ChannelEventType.Broadcast;
23545
+ const ready = newChannel.isAttached() && !!newChannel.getSessionID();
23453
23546
  channelStore.setState((state) => ({
23454
23547
  ...state,
23455
- sessionCount: newChannel.getSessionCount()
23548
+ sessionCount: newChannel.getSessionCount(),
23549
+ ...recovers && state.error ? { error: void 0 } : {},
23550
+ ...ready && state.loading ? { loading: false } : {}
23456
23551
  }));
23457
23552
  });
23458
- channelStore.setState({
23553
+ const detach = async () => {
23554
+ if (!client) return;
23555
+ try {
23556
+ await client.detach(newChannel);
23557
+ } catch (err) {
23558
+ if (err instanceof Error && /not attached/i.test(err.message)) {
23559
+ return;
23560
+ }
23561
+ throw err;
23562
+ }
23563
+ };
23564
+ channelStore.setState((state) => ({
23565
+ ...state,
23459
23566
  channel: newChannel,
23460
- sessionCount: newChannel.getSessionCount(),
23461
- loading: false,
23462
- error: void 0
23463
- });
23567
+ error: void 0,
23568
+ detach
23569
+ }));
23464
23570
  } catch (e) {
23465
23571
  channelStore.setState((state) => ({
23466
23572
  ...state,
@@ -23475,23 +23581,35 @@
23475
23581
  unsubscribe();
23476
23582
  }
23477
23583
  async function detachChannel() {
23478
- if (channelRef.current && client?.isActive()) {
23584
+ if (channelRef.current && client) {
23479
23585
  try {
23480
23586
  await client.detach(channelRef.current);
23481
23587
  } catch (e) {
23588
+ if (e instanceof Error && /not attached/i.test(e.message)) {
23589
+ return;
23590
+ }
23482
23591
  console.error("Failed to detach channel:", e);
23483
23592
  }
23484
23593
  }
23485
23594
  }
23486
23595
  detachChannel();
23487
23596
  };
23488
- }, [client, clientLoading, clientError, channelKey, syncMode, didMount]);
23597
+ }, [
23598
+ client,
23599
+ clientLoading,
23600
+ clientError,
23601
+ channelKey,
23602
+ syncMode,
23603
+ channelHeartbeatInterval,
23604
+ didMount
23605
+ ]);
23489
23606
  }
23490
23607
  const ChannelProvider = ({
23491
23608
  children,
23492
23609
  channelKey,
23493
23610
  syncMode,
23494
- isRealtime
23611
+ isRealtime,
23612
+ channelHeartbeatInterval
23495
23613
  }) => {
23496
23614
  const { client, loading: clientLoading, error: clientError } = useYorkie();
23497
23615
  const channelStoreRef = react.useRef(
@@ -23502,7 +23620,11 @@
23502
23620
  channel: void 0,
23503
23621
  sessionCount: 0,
23504
23622
  loading: true,
23505
- error: void 0
23623
+ error: void 0,
23624
+ // Placeholder until `useYorkieChannel` wires up the real detach.
23625
+ // Pre-attach calls are a no-op rather than a throw.
23626
+ detach: async () => {
23627
+ }
23506
23628
  });
23507
23629
  }
23508
23630
  const channelStore = channelStoreRef.current;
@@ -23513,6 +23635,7 @@
23513
23635
  clientError,
23514
23636
  channelKey,
23515
23637
  resolvedSyncMode,
23638
+ channelHeartbeatInterval,
23516
23639
  channelStore
23517
23640
  );
23518
23641
  return /* @__PURE__ */ jsxRuntime.jsx(ChannelContext.Provider, { value: channelStore, children });
@@ -23529,12 +23652,82 @@
23529
23652
  const sessionCount = useSelector(channelStore, (state) => state.sessionCount);
23530
23653
  const loading = useSelector(channelStore, (state) => state.loading);
23531
23654
  const error = useSelector(channelStore, (state) => state.error);
23532
- return { sessionCount, loading, error };
23655
+ const detach = useSelector(channelStore, (state) => state.detach);
23656
+ return { sessionCount, loading, error, detach };
23533
23657
  };
23534
23658
  const useChannelSessionCount = () => {
23535
23659
  const channelStore = useChannelStore("useChannelSessionCount");
23536
23660
  return useSelector(channelStore, (state) => state.sessionCount);
23537
23661
  };
23662
+ function usePeekChannel(channelKey, opts = {}) {
23663
+ const { client, loading: clientLoading, error: clientError } = useYorkie();
23664
+ const { pollInterval, enabled = true } = opts;
23665
+ const [sessionCount, setSessionCount] = react.useState(0);
23666
+ const [loading, setLoading] = react.useState(true);
23667
+ const [error, setError] = react.useState(clientError);
23668
+ const channelKeyRef = react.useRef(channelKey);
23669
+ channelKeyRef.current = channelKey;
23670
+ const mountedRef = react.useRef(true);
23671
+ react.useEffect(() => {
23672
+ mountedRef.current = true;
23673
+ return () => {
23674
+ mountedRef.current = false;
23675
+ };
23676
+ }, []);
23677
+ const peekOnce = react.useCallback(async () => {
23678
+ if (!client) return;
23679
+ if (mountedRef.current) setLoading(true);
23680
+ try {
23681
+ const count = await client.peekChannel(channelKeyRef.current);
23682
+ if (!mountedRef.current) return;
23683
+ setSessionCount(count);
23684
+ setError(void 0);
23685
+ } catch (e) {
23686
+ if (!mountedRef.current) return;
23687
+ setError(e instanceof Error ? e : new Error(String(e)));
23688
+ } finally {
23689
+ if (mountedRef.current) setLoading(false);
23690
+ }
23691
+ }, [client]);
23692
+ react.useEffect(() => {
23693
+ if (clientError) {
23694
+ setError(clientError);
23695
+ setLoading(false);
23696
+ return;
23697
+ }
23698
+ setLoading(true);
23699
+ if (!enabled) {
23700
+ setLoading(false);
23701
+ return;
23702
+ }
23703
+ if (clientLoading || !client) return;
23704
+ let cancelled = false;
23705
+ let timer;
23706
+ const run = async () => {
23707
+ if (cancelled) return;
23708
+ try {
23709
+ const count = await client.peekChannel(channelKey);
23710
+ if (cancelled) return;
23711
+ setSessionCount(count);
23712
+ setError(void 0);
23713
+ } catch (e) {
23714
+ if (cancelled) return;
23715
+ setError(e instanceof Error ? e : new Error(String(e)));
23716
+ } finally {
23717
+ if (!cancelled) setLoading(false);
23718
+ }
23719
+ if (!cancelled && pollInterval !== void 0 && pollInterval > 0) {
23720
+ timer = setTimeout(run, pollInterval);
23721
+ }
23722
+ };
23723
+ run();
23724
+ return () => {
23725
+ cancelled = true;
23726
+ if (timer) clearTimeout(timer);
23727
+ };
23728
+ }, [client, clientLoading, clientError, channelKey, pollInterval, enabled]);
23729
+ return { sessionCount, loading, error, refetch: peekOnce };
23730
+ }
23538
23731
  exports2.ChannelProvider = ChannelProvider;
23539
23732
  exports2.Counter = Counter;
23540
23733
  exports2.DocumentProvider = DocumentProvider;
@@ -23548,6 +23741,7 @@
23548
23741
  exports2.useChannelSessionCount = useChannelSessionCount;
23549
23742
  exports2.useConnection = useConnection;
23550
23743
  exports2.useDocument = useDocument;
23744
+ exports2.usePeekChannel = usePeekChannel;
23551
23745
  exports2.usePresences = usePresences;
23552
23746
  exports2.useRevisions = useRevisions;
23553
23747
  exports2.useRoot = useRoot;