@yorkie-js/react 0.6.48 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/yorkie-js-react.d.ts +20 -0
- package/dist/yorkie-js-react.es.js +429 -24
- package/dist/yorkie-js-react.es.js.map +1 -1
- package/dist/yorkie-js-react.js +428 -23
- package/dist/yorkie-js-react.js.map +1 -1
- package/package.json +2 -2
package/dist/yorkie-js-react.js
CHANGED
|
@@ -5397,7 +5397,7 @@
|
|
|
5397
5397
|
}
|
|
5398
5398
|
};
|
|
5399
5399
|
}
|
|
5400
|
-
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIqwaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGssDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGpUBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwiggsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq7AQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCJUCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50IlgKCE5vZGVBdHRyEg0KBXZhbHVlGAEgASgJEikKCnVwZGF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBISCgppc19yZW1vdmVkGAMgASgIIpQCCghUZXh0Tm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEg0KBXZhbHVlGAIgASgJEikKCnJlbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgEIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEjcKCmF0dHJpYnV0ZXMYBSADKAsyIy55b3JraWUudjEuVGV4dE5vZGUuQXR0cmlidXRlc0VudHJ5GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIkcKClRleHROb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSLdAgoIVHJlZU5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIMCgR0eXBlGAIgASgJEg0KBXZhbHVlGAMgASgJEikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgFIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEioKC2luc19uZXh0X2lkGAYgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDQoFZGVwdGgYByABKAUSNwoKYXR0cmlidXRlcxgIIAMoCzIjLnlvcmtpZS52MS5UcmVlTm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiMQoJVHJlZU5vZGVzEiQKB2NvbnRlbnQYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUiRwoKVHJlZU5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFImMKB1RyZWVQb3MSKAoJcGFyZW50X2lkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSLgoPbGVmdF9zaWJsaW5nX2lkGAIgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQiawoEVXNlchIKCgJpZBgBIAEoCRIVCg1hdXRoX3Byb3ZpZGVyGAIgASgJEhAKCHVzZXJuYW1lGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBCgZNZW1iZXISCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJEhAKCHVzZXJuYW1lGAQgASgJEgwKBHJvbGUYBSABKAkSLgoKaW52aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QYKB1Byb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJEhIKCnNlY3JldF9rZXkYBCABKAkSGAoQYXV0aF93ZWJob29rX3VybBgFIAEoCRIcChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgGIAMoCRIgChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYESABKAQSJgoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBIgASgJEiYKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgTIAEoCRIkChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBQgASgJEhkKEWV2ZW50X3dlYmhvb2tfdXJsGAcgASgJEhwKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAggAygJEiEKGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYFSABKAQSJwofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgWIAEoCRInCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBcgASgJEiUKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBggASgJEiMKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgJIAEoCRIaChJzbmFwc2hvdF90aHJlc2hvbGQYGSABKAMSGQoRc25hcHNob3RfaW50ZXJ2YWwYGiABKAMSJAocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgKIAEoBRIkChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAsgASgFEh0KFW1heF9zaXplX3Blcl9kb2N1bWVudBgPIAEoBRIYChByZW1vdmVfb25fZGV0YWNoGBAgASgIEh0KFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgbIAEoCBIXCg9hbGxvd2VkX29yaWdpbnMYDiADKAkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoLTWV0cmljUG9pbnQSEQoJdGltZXN0YW1wGAEgASgDEg0KBXZhbHVlGAIgASgFIqMMChZVcGRhdGFibGVQcm9qZWN0RmllbGRzEioKBG5hbWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNgoQYXV0aF93ZWJob29rX3VybBgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgDIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkF1dGhXZWJob29rTWV0aG9kcxI+ChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYDCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRAoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkQKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJCChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEWV2ZW50X3dlYmhvb2tfdXJsGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAUgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuRXZlbnRXZWJob29rRXZlbnRzEj8KGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYECABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRQofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJFCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkMKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEnNuYXBzaG90X3RocmVzaG9sZBgUIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjYKEXNuYXBzaG90X2ludGVydmFsGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSQQobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkEKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRJBChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAggASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSOgoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAogASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNAoQcmVtb3ZlX29uX2RldGFjaBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRJJCg9hbGxvd2VkX29yaWdpbnMYCSABKAsyMC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BbGxvd2VkT3JpZ2lucxolChJBdXRoV2ViaG9va01ldGhvZHMSDwoHbWV0aG9kcxgBIAMoCRokChJFdmVudFdlYmhvb2tFdmVudHMSDgoGZXZlbnRzGAEgAygJGiEKDkFsbG93ZWRPcmlnaW5zEg8KB29yaWdpbnMYASADKAkipwMKD0RvY3VtZW50U3VtbWFyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEcm9vdBgDIAEoCRIYChBhdHRhY2hlZF9jbGllbnRzGAcgASgFEikKDWRvY3VtZW50X3NpemUYCCABKAsyEi55b3JraWUudjEuRG9jU2l6ZRISCgpzY2hlbWFfa2V5GAkgASgJEjwKCXByZXNlbmNlcxgKIAMoCzIpLnlvcmtpZS52MS5Eb2N1bWVudFN1bW1hcnkuUHJlc2VuY2VzRW50cnkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYWNjZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi2gEKDlByZXNlbmNlQ2hhbmdlEjIKBHR5cGUYASABKA4yJC55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UuQ2hhbmdlVHlwZRIlCghwcmVzZW5jZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZSJtCgpDaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPQ0hBTkdFX1RZUEVfUFVUEAESFgoSQ0hBTkdFX1RZUEVfREVMRVRFEAISFQoRQ0hBTkdFX1RZUEVfQ0xFQVIQAyJkCghQcmVzZW5jZRIrCgRkYXRhGAEgAygLMh0ueW9ya2llLnYxLlByZXNlbmNlLkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0Cg5DaGFubmVsU3VtbWFyeRILCgNrZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoBSI0CgpDaGVja3BvaW50EhIKCnNlcnZlcl9zZXEYASABKAMSEgoKY2xpZW50X3NlcRgCIAEoDSJhCgtUZXh0Tm9kZVBvcxIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFEhcKD3JlbGF0aXZlX29mZnNldBgDIAEoBSJCCgpUaW1lVGlja2V0Eg8KB2xhbXBvcnQYASABKAMSEQoJZGVsaW1pdGVyGAIgASgNEhAKCGFjdG9yX2lkGAMgASgMIi4KDERvY0V2ZW50Qm9keRINCgV0b3BpYxgBIAEoCRIPCgdwYXlsb2FkGAIgASgMImsKCERvY0V2ZW50EiUKBHR5cGUYASABKA4yFy55b3JraWUudjEuRG9jRXZlbnRUeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIlCgRib2R5GAMgASgLMhcueW9ya2llLnYxLkRvY0V2ZW50Qm9keSLWAQoMQ2hhbm5lbEV2ZW50EioKBHR5cGUYASABKA4yHC55b3JraWUudjEuQ2hhbm5lbEV2ZW50LlR5cGUSEQoJcHVibGlzaGVyGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAMSCwoDc2VxGAQgASgDEg0KBXRvcGljGAUgASgJEg8KB3BheWxvYWQYBiABKAwiQwoEVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASEQoNVFlQRV9QUkVTRU5DRRABEhIKDlRZUEVfQlJPQURDQVNUEAIiJgoIRGF0YVNpemUSDAoEZGF0YRgBIAEoBRIMCgRtZXRhGAIgASgFIk0KB0RvY1NpemUSIQoEbGl2ZRgBIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZRIfCgJnYxgCIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZSKRAQoGU2NoZW1hEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoBRIMCgRib2R5GAQgASgJEh4KBXJ1bGVzGAUgAygLMg8ueW9ya2llLnYxLlJ1bGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIgoEUnVsZRIMCgRwYXRoGAEgASgJEgwKBHR5cGUYAiABKAkigwEKD1JldmlzaW9uU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghzbmFwc2hvdBgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCrUAgoJVmFsdWVUeXBlEhMKD1ZBTFVFX1RZUEVfTlVMTBAAEhYKElZBTFVFX1RZUEVfQk9PTEVBThABEhYKElZBTFVFX1RZUEVfSU5URUdFUhACEhMKD1ZBTFVFX1RZUEVfTE9ORxADEhUKEVZBTFVFX1RZUEVfRE9VQkxFEAQSFQoRVkFMVUVfVFlQRV9TVFJJTkcQBRIUChBWQUxVRV9UWVBFX0JZVEVTEAYSEwoPVkFMVUVfVFlQRV9EQVRFEAcSGgoWVkFMVUVfVFlQRV9KU09OX09CSkVDVBAIEhkKFVZBTFVFX1RZUEVfSlNPTl9BUlJBWRAJEhMKD1ZBTFVFX1RZUEVfVEVYVBAKEhoKFlZBTFVFX1RZUEVfSU5URUdFUl9DTlQQCxIXChNWQUxVRV9UWVBFX0xPTkdfQ05UEAwSEwoPVkFMVUVfVFlQRV9UUkVFEA0qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5400
|
+
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIsoaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGpUBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwiggsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq7AQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCJUCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50IlgKCE5vZGVBdHRyEg0KBXZhbHVlGAEgASgJEikKCnVwZGF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBISCgppc19yZW1vdmVkGAMgASgIIpQCCghUZXh0Tm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEg0KBXZhbHVlGAIgASgJEikKCnJlbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgEIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEjcKCmF0dHJpYnV0ZXMYBSADKAsyIy55b3JraWUudjEuVGV4dE5vZGUuQXR0cmlidXRlc0VudHJ5GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIkcKClRleHROb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSLdAgoIVHJlZU5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIMCgR0eXBlGAIgASgJEg0KBXZhbHVlGAMgASgJEikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgFIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEioKC2luc19uZXh0X2lkGAYgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDQoFZGVwdGgYByABKAUSNwoKYXR0cmlidXRlcxgIIAMoCzIjLnlvcmtpZS52MS5UcmVlTm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiMQoJVHJlZU5vZGVzEiQKB2NvbnRlbnQYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUiRwoKVHJlZU5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFImMKB1RyZWVQb3MSKAoJcGFyZW50X2lkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSLgoPbGVmdF9zaWJsaW5nX2lkGAIgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQiawoEVXNlchIKCgJpZBgBIAEoCRIVCg1hdXRoX3Byb3ZpZGVyGAIgASgJEhAKCHVzZXJuYW1lGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBCgZNZW1iZXISCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJEhAKCHVzZXJuYW1lGAQgASgJEgwKBHJvbGUYBSABKAkSLgoKaW52aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QYKB1Byb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJEhIKCnNlY3JldF9rZXkYBCABKAkSGAoQYXV0aF93ZWJob29rX3VybBgFIAEoCRIcChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgGIAMoCRIgChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYESABKAQSJgoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBIgASgJEiYKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgTIAEoCRIkChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBQgASgJEhkKEWV2ZW50X3dlYmhvb2tfdXJsGAcgASgJEhwKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAggAygJEiEKGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYFSABKAQSJwofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgWIAEoCRInCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBcgASgJEiUKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBggASgJEiMKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgJIAEoCRIaChJzbmFwc2hvdF90aHJlc2hvbGQYGSABKAMSGQoRc25hcHNob3RfaW50ZXJ2YWwYGiABKAMSJAocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgKIAEoBRIkChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAsgASgFEh0KFW1heF9zaXplX3Blcl9kb2N1bWVudBgPIAEoBRIYChByZW1vdmVfb25fZGV0YWNoGBAgASgIEh0KFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgbIAEoCBIXCg9hbGxvd2VkX29yaWdpbnMYDiADKAkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoLTWV0cmljUG9pbnQSEQoJdGltZXN0YW1wGAEgASgDEg0KBXZhbHVlGAIgASgFIqMMChZVcGRhdGFibGVQcm9qZWN0RmllbGRzEioKBG5hbWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNgoQYXV0aF93ZWJob29rX3VybBgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgDIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkF1dGhXZWJob29rTWV0aG9kcxI+ChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYDCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRAoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkQKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJCChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEWV2ZW50X3dlYmhvb2tfdXJsGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAUgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuRXZlbnRXZWJob29rRXZlbnRzEj8KGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYECABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRQofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJFCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkMKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEnNuYXBzaG90X3RocmVzaG9sZBgUIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjYKEXNuYXBzaG90X2ludGVydmFsGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSQQobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkEKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRJBChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAggASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSOgoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAogASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNAoQcmVtb3ZlX29uX2RldGFjaBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRJJCg9hbGxvd2VkX29yaWdpbnMYCSABKAsyMC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BbGxvd2VkT3JpZ2lucxolChJBdXRoV2ViaG9va01ldGhvZHMSDwoHbWV0aG9kcxgBIAMoCRokChJFdmVudFdlYmhvb2tFdmVudHMSDgoGZXZlbnRzGAEgAygJGiEKDkFsbG93ZWRPcmlnaW5zEg8KB29yaWdpbnMYASADKAkipwMKD0RvY3VtZW50U3VtbWFyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEcm9vdBgDIAEoCRIYChBhdHRhY2hlZF9jbGllbnRzGAcgASgFEikKDWRvY3VtZW50X3NpemUYCCABKAsyEi55b3JraWUudjEuRG9jU2l6ZRISCgpzY2hlbWFfa2V5GAkgASgJEjwKCXByZXNlbmNlcxgKIAMoCzIpLnlvcmtpZS52MS5Eb2N1bWVudFN1bW1hcnkuUHJlc2VuY2VzRW50cnkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYWNjZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi2gEKDlByZXNlbmNlQ2hhbmdlEjIKBHR5cGUYASABKA4yJC55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UuQ2hhbmdlVHlwZRIlCghwcmVzZW5jZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZSJtCgpDaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPQ0hBTkdFX1RZUEVfUFVUEAESFgoSQ0hBTkdFX1RZUEVfREVMRVRFEAISFQoRQ0hBTkdFX1RZUEVfQ0xFQVIQAyJkCghQcmVzZW5jZRIrCgRkYXRhGAEgAygLMh0ueW9ya2llLnYxLlByZXNlbmNlLkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0Cg5DaGFubmVsU3VtbWFyeRILCgNrZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoBSI0CgpDaGVja3BvaW50EhIKCnNlcnZlcl9zZXEYASABKAMSEgoKY2xpZW50X3NlcRgCIAEoDSJhCgtUZXh0Tm9kZVBvcxIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFEhcKD3JlbGF0aXZlX29mZnNldBgDIAEoBSJCCgpUaW1lVGlja2V0Eg8KB2xhbXBvcnQYASABKAMSEQoJZGVsaW1pdGVyGAIgASgNEhAKCGFjdG9yX2lkGAMgASgMIi4KDERvY0V2ZW50Qm9keRINCgV0b3BpYxgBIAEoCRIPCgdwYXlsb2FkGAIgASgMImsKCERvY0V2ZW50EiUKBHR5cGUYASABKA4yFy55b3JraWUudjEuRG9jRXZlbnRUeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIlCgRib2R5GAMgASgLMhcueW9ya2llLnYxLkRvY0V2ZW50Qm9keSLWAQoMQ2hhbm5lbEV2ZW50EioKBHR5cGUYASABKA4yHC55b3JraWUudjEuQ2hhbm5lbEV2ZW50LlR5cGUSEQoJcHVibGlzaGVyGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAMSCwoDc2VxGAQgASgDEg0KBXRvcGljGAUgASgJEg8KB3BheWxvYWQYBiABKAwiQwoEVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASEQoNVFlQRV9QUkVTRU5DRRABEhIKDlRZUEVfQlJPQURDQVNUEAIiJgoIRGF0YVNpemUSDAoEZGF0YRgBIAEoBRIMCgRtZXRhGAIgASgFIk0KB0RvY1NpemUSIQoEbGl2ZRgBIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZRIfCgJnYxgCIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZSKRAQoGU2NoZW1hEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoBRIMCgRib2R5GAQgASgJEh4KBXJ1bGVzGAUgAygLMg8ueW9ya2llLnYxLlJ1bGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIgoEUnVsZRIMCgRwYXRoGAEgASgJEgwKBHR5cGUYAiABKAkigwEKD1JldmlzaW9uU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghzbmFwc2hvdBgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCrUAgoJVmFsdWVUeXBlEhMKD1ZBTFVFX1RZUEVfTlVMTBAAEhYKElZBTFVFX1RZUEVfQk9PTEVBThABEhYKElZBTFVFX1RZUEVfSU5URUdFUhACEhMKD1ZBTFVFX1RZUEVfTE9ORxADEhUKEVZBTFVFX1RZUEVfRE9VQkxFEAQSFQoRVkFMVUVfVFlQRV9TVFJJTkcQBRIUChBWQUxVRV9UWVBFX0JZVEVTEAYSEwoPVkFMVUVfVFlQRV9EQVRFEAcSGgoWVkFMVUVfVFlQRV9KU09OX09CSkVDVBAIEhkKFVZBTFVFX1RZUEVfSlNPTl9BUlJBWRAJEhMKD1ZBTFVFX1RZUEVfVEVYVBAKEhoKFlZBTFVFX1RZUEVfSU5URUdFUl9DTlQQCxIXChNWQUxVRV9UWVBFX0xPTkdfQ05UEAwSEwoPVkFMVUVfVFlQRV9UUkVFEA0qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5401
5401
|
const SnapshotSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 0);
|
|
5402
5402
|
const ChangePackSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 1);
|
|
5403
5403
|
const ChangeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 2);
|
|
@@ -10336,11 +10336,25 @@
|
|
|
10336
10336
|
toBeStyleds.push(node);
|
|
10337
10337
|
}
|
|
10338
10338
|
}
|
|
10339
|
+
const prevAttributes = /* @__PURE__ */ new Map();
|
|
10340
|
+
const attributesToRemove = [];
|
|
10341
|
+
let capturedPrev = false;
|
|
10339
10342
|
const pairs = [];
|
|
10340
10343
|
for (const node of toBeStyleds) {
|
|
10341
10344
|
if (node.isRemoved()) {
|
|
10342
10345
|
continue;
|
|
10343
10346
|
}
|
|
10347
|
+
if (!capturedPrev) {
|
|
10348
|
+
for (const key of Object.keys(attributes)) {
|
|
10349
|
+
const attrs = node.getValue().getAttrs();
|
|
10350
|
+
if (attrs.has(key)) {
|
|
10351
|
+
prevAttributes.set(key, attrs.get(key));
|
|
10352
|
+
} else {
|
|
10353
|
+
attributesToRemove.push(key);
|
|
10354
|
+
}
|
|
10355
|
+
}
|
|
10356
|
+
capturedPrev = true;
|
|
10357
|
+
}
|
|
10344
10358
|
const [fromIdx, toIdx] = this.rgaTreeSplit.findIndexesFromRange(
|
|
10345
10359
|
node.createPosRange()
|
|
10346
10360
|
);
|
|
@@ -10364,7 +10378,77 @@
|
|
|
10364
10378
|
}
|
|
10365
10379
|
}
|
|
10366
10380
|
}
|
|
10367
|
-
return [pairs, diff, changes];
|
|
10381
|
+
return [pairs, diff, changes, prevAttributes, attributesToRemove];
|
|
10382
|
+
}
|
|
10383
|
+
/**
|
|
10384
|
+
* `removeStyle` removes the style attributes of the given range.
|
|
10385
|
+
* Returns previous attribute values (from first styled node) for reverse operation.
|
|
10386
|
+
*/
|
|
10387
|
+
removeStyle(range, attributesToRemove, editedAt, versionVector) {
|
|
10388
|
+
const diff = { data: 0, meta: 0 };
|
|
10389
|
+
const [, diffTo, toRight] = this.rgaTreeSplit.findNodeWithSplit(
|
|
10390
|
+
range[1],
|
|
10391
|
+
editedAt
|
|
10392
|
+
);
|
|
10393
|
+
const [, diffFrom, fromRight] = this.rgaTreeSplit.findNodeWithSplit(
|
|
10394
|
+
range[0],
|
|
10395
|
+
editedAt
|
|
10396
|
+
);
|
|
10397
|
+
addDataSizes(diff, diffTo, diffFrom);
|
|
10398
|
+
const changes = [];
|
|
10399
|
+
const nodes = this.rgaTreeSplit.findBetween(fromRight, toRight);
|
|
10400
|
+
const toBeStyleds = [];
|
|
10401
|
+
for (const node of nodes) {
|
|
10402
|
+
const actorID = node.getCreatedAt().getActorID();
|
|
10403
|
+
let clientLamportAtChange = MaxLamport;
|
|
10404
|
+
if (versionVector != void 0) {
|
|
10405
|
+
clientLamportAtChange = versionVector.get(actorID) ? versionVector.get(actorID) : 0n;
|
|
10406
|
+
}
|
|
10407
|
+
if (node.canStyle(editedAt, clientLamportAtChange)) {
|
|
10408
|
+
toBeStyleds.push(node);
|
|
10409
|
+
}
|
|
10410
|
+
}
|
|
10411
|
+
const prevAttributes = /* @__PURE__ */ new Map();
|
|
10412
|
+
let capturedPrev = false;
|
|
10413
|
+
const pairs = [];
|
|
10414
|
+
for (const node of toBeStyleds) {
|
|
10415
|
+
if (node.isRemoved()) {
|
|
10416
|
+
continue;
|
|
10417
|
+
}
|
|
10418
|
+
if (!capturedPrev) {
|
|
10419
|
+
for (const key of attributesToRemove) {
|
|
10420
|
+
const attrs = node.getValue().getAttrs();
|
|
10421
|
+
if (attrs.has(key)) {
|
|
10422
|
+
prevAttributes.set(key, attrs.get(key));
|
|
10423
|
+
}
|
|
10424
|
+
}
|
|
10425
|
+
capturedPrev = true;
|
|
10426
|
+
}
|
|
10427
|
+
const [fromIdx, toIdx] = this.rgaTreeSplit.findIndexesFromRange(
|
|
10428
|
+
node.createPosRange()
|
|
10429
|
+
);
|
|
10430
|
+
const removedAttributes = {};
|
|
10431
|
+
for (const key of attributesToRemove) {
|
|
10432
|
+
removedAttributes[key] = null;
|
|
10433
|
+
}
|
|
10434
|
+
changes.push({
|
|
10435
|
+
type: "style",
|
|
10436
|
+
actor: editedAt.getActorID(),
|
|
10437
|
+
from: fromIdx,
|
|
10438
|
+
to: toIdx,
|
|
10439
|
+
value: {
|
|
10440
|
+
attributes: removedAttributes
|
|
10441
|
+
}
|
|
10442
|
+
});
|
|
10443
|
+
for (const key of attributesToRemove) {
|
|
10444
|
+
const gcNodes = node.getValue().getAttrs().remove(key, editedAt);
|
|
10445
|
+
for (const rhtNode of gcNodes) {
|
|
10446
|
+
pairs.push({ parent: node.getValue(), child: rhtNode });
|
|
10447
|
+
addDataSizes(diff, rhtNode.getDataSize());
|
|
10448
|
+
}
|
|
10449
|
+
}
|
|
10450
|
+
}
|
|
10451
|
+
return [pairs, diff, changes, prevAttributes];
|
|
10368
10452
|
}
|
|
10369
10453
|
/**
|
|
10370
10454
|
* `indexRangeToPosRange` returns the position range of the given index range.
|
|
@@ -10748,11 +10832,13 @@
|
|
|
10748
10832
|
fromPos;
|
|
10749
10833
|
toPos;
|
|
10750
10834
|
attributes;
|
|
10751
|
-
|
|
10835
|
+
attributesToRemove;
|
|
10836
|
+
constructor(parentCreatedAt, fromPos, toPos, attributes, attributesToRemove, executedAt) {
|
|
10752
10837
|
super(parentCreatedAt, executedAt);
|
|
10753
10838
|
this.fromPos = fromPos;
|
|
10754
10839
|
this.toPos = toPos;
|
|
10755
10840
|
this.attributes = attributes;
|
|
10841
|
+
this.attributesToRemove = attributesToRemove;
|
|
10756
10842
|
}
|
|
10757
10843
|
/**
|
|
10758
10844
|
* `create` creates a new instance of StyleOperation.
|
|
@@ -10763,6 +10849,20 @@
|
|
|
10763
10849
|
fromPos,
|
|
10764
10850
|
toPos,
|
|
10765
10851
|
attributes,
|
|
10852
|
+
[],
|
|
10853
|
+
executedAt
|
|
10854
|
+
);
|
|
10855
|
+
}
|
|
10856
|
+
/**
|
|
10857
|
+
* `createRemoveStyleOperation` creates a new instance of StyleOperation for style removal.
|
|
10858
|
+
*/
|
|
10859
|
+
static createRemoveStyleOperation(parentCreatedAt, fromPos, toPos, attributesToRemove, executedAt) {
|
|
10860
|
+
return new StyleOperation(
|
|
10861
|
+
parentCreatedAt,
|
|
10862
|
+
fromPos,
|
|
10863
|
+
toPos,
|
|
10864
|
+
/* @__PURE__ */ new Map(),
|
|
10865
|
+
attributesToRemove,
|
|
10766
10866
|
executedAt
|
|
10767
10867
|
);
|
|
10768
10868
|
}
|
|
@@ -10784,18 +10884,78 @@
|
|
|
10784
10884
|
);
|
|
10785
10885
|
}
|
|
10786
10886
|
const text = parentObject;
|
|
10787
|
-
const
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
)
|
|
10793
|
-
|
|
10794
|
-
|
|
10887
|
+
const allPairs = [];
|
|
10888
|
+
const allChanges = [];
|
|
10889
|
+
let allDiff = { data: 0, meta: 0 };
|
|
10890
|
+
const reversePrevAttributes = /* @__PURE__ */ new Map();
|
|
10891
|
+
const reverseAttrsToRemove = [];
|
|
10892
|
+
if (this.attributesToRemove.length > 0) {
|
|
10893
|
+
const [pairs, diff, changes, prevAttributes] = text.removeStyle(
|
|
10894
|
+
[this.fromPos, this.toPos],
|
|
10895
|
+
this.attributesToRemove,
|
|
10896
|
+
this.getExecutedAt(),
|
|
10897
|
+
versionVector
|
|
10898
|
+
);
|
|
10899
|
+
allDiff = {
|
|
10900
|
+
data: allDiff.data + diff.data,
|
|
10901
|
+
meta: allDiff.meta + diff.meta
|
|
10902
|
+
};
|
|
10903
|
+
allPairs.push(...pairs);
|
|
10904
|
+
allChanges.push(...changes);
|
|
10905
|
+
for (const [key, value] of prevAttributes) {
|
|
10906
|
+
reversePrevAttributes.set(key, value);
|
|
10907
|
+
}
|
|
10908
|
+
}
|
|
10909
|
+
if (this.attributes.size > 0) {
|
|
10910
|
+
const [pairs, diff, changes, prevAttributes, attrsToRemove] = text.setStyle(
|
|
10911
|
+
[this.fromPos, this.toPos],
|
|
10912
|
+
Object.fromEntries(this.attributes),
|
|
10913
|
+
this.getExecutedAt(),
|
|
10914
|
+
versionVector
|
|
10915
|
+
);
|
|
10916
|
+
allDiff = {
|
|
10917
|
+
data: allDiff.data + diff.data,
|
|
10918
|
+
meta: allDiff.meta + diff.meta
|
|
10919
|
+
};
|
|
10920
|
+
allPairs.push(...pairs);
|
|
10921
|
+
allChanges.push(...changes);
|
|
10922
|
+
for (const [key, value] of prevAttributes) {
|
|
10923
|
+
reversePrevAttributes.set(key, value);
|
|
10924
|
+
}
|
|
10925
|
+
reverseAttrsToRemove.push(...attrsToRemove);
|
|
10926
|
+
}
|
|
10927
|
+
root.acc(allDiff);
|
|
10928
|
+
for (const pair of allPairs) {
|
|
10795
10929
|
root.registerGCPair(pair);
|
|
10796
10930
|
}
|
|
10931
|
+
let reverseOp;
|
|
10932
|
+
if (reversePrevAttributes.size > 0 || reverseAttrsToRemove.length > 0) {
|
|
10933
|
+
if (reversePrevAttributes.size > 0 && reverseAttrsToRemove.length > 0) {
|
|
10934
|
+
reverseOp = new StyleOperation(
|
|
10935
|
+
this.getParentCreatedAt(),
|
|
10936
|
+
this.fromPos,
|
|
10937
|
+
this.toPos,
|
|
10938
|
+
reversePrevAttributes,
|
|
10939
|
+
reverseAttrsToRemove
|
|
10940
|
+
);
|
|
10941
|
+
} else if (reverseAttrsToRemove.length > 0) {
|
|
10942
|
+
reverseOp = StyleOperation.createRemoveStyleOperation(
|
|
10943
|
+
this.getParentCreatedAt(),
|
|
10944
|
+
this.fromPos,
|
|
10945
|
+
this.toPos,
|
|
10946
|
+
reverseAttrsToRemove
|
|
10947
|
+
);
|
|
10948
|
+
} else {
|
|
10949
|
+
reverseOp = StyleOperation.create(
|
|
10950
|
+
this.getParentCreatedAt(),
|
|
10951
|
+
this.fromPos,
|
|
10952
|
+
this.toPos,
|
|
10953
|
+
reversePrevAttributes
|
|
10954
|
+
);
|
|
10955
|
+
}
|
|
10956
|
+
}
|
|
10797
10957
|
return {
|
|
10798
|
-
opInfos:
|
|
10958
|
+
opInfos: allChanges.map(({ from, to, value }) => {
|
|
10799
10959
|
return {
|
|
10800
10960
|
type: "style",
|
|
10801
10961
|
from,
|
|
@@ -10803,7 +10963,8 @@
|
|
|
10803
10963
|
value,
|
|
10804
10964
|
path: root.createPath(this.getParentCreatedAt())
|
|
10805
10965
|
};
|
|
10806
|
-
})
|
|
10966
|
+
}),
|
|
10967
|
+
reverseOp
|
|
10807
10968
|
};
|
|
10808
10969
|
}
|
|
10809
10970
|
/**
|
|
@@ -10840,6 +11001,12 @@
|
|
|
10840
11001
|
getAttributes() {
|
|
10841
11002
|
return this.attributes;
|
|
10842
11003
|
}
|
|
11004
|
+
/**
|
|
11005
|
+
* `getAttributesToRemove` returns the attributes to remove.
|
|
11006
|
+
*/
|
|
11007
|
+
getAttributesToRemove() {
|
|
11008
|
+
return this.attributesToRemove;
|
|
11009
|
+
}
|
|
10843
11010
|
}
|
|
10844
11011
|
const ElementPaddingSize = 2;
|
|
10845
11012
|
const DefaultRootType = "root";
|
|
@@ -12332,7 +12499,7 @@
|
|
|
12332
12499
|
}
|
|
12333
12500
|
}
|
|
12334
12501
|
}
|
|
12335
|
-
return [changes, pairs, diff];
|
|
12502
|
+
return [changes, pairs, diff, nodesToBeRemoved, fromIdx];
|
|
12336
12503
|
}
|
|
12337
12504
|
/**
|
|
12338
12505
|
* `editT` edits the given range with the given value.
|
|
@@ -12770,29 +12937,46 @@
|
|
|
12770
12937
|
return [prev, prev.isText ? TokenType.Text : TokenType.End];
|
|
12771
12938
|
}
|
|
12772
12939
|
}
|
|
12940
|
+
function clearRemovedAt(node) {
|
|
12941
|
+
traverseAll(node, (n) => {
|
|
12942
|
+
n.removedAt = void 0;
|
|
12943
|
+
n.visibleSize = n.totalSize;
|
|
12944
|
+
});
|
|
12945
|
+
}
|
|
12773
12946
|
class TreeEditOperation extends Operation {
|
|
12774
12947
|
fromPos;
|
|
12775
12948
|
toPos;
|
|
12776
12949
|
contents;
|
|
12777
12950
|
splitLevel;
|
|
12778
|
-
|
|
12951
|
+
isUndoOp;
|
|
12952
|
+
fromIdx;
|
|
12953
|
+
toIdx;
|
|
12954
|
+
lastFromIdx;
|
|
12955
|
+
lastToIdx;
|
|
12956
|
+
constructor(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt, isUndoOp, fromIdx, toIdx) {
|
|
12779
12957
|
super(parentCreatedAt, executedAt);
|
|
12780
12958
|
this.fromPos = fromPos;
|
|
12781
12959
|
this.toPos = toPos;
|
|
12782
12960
|
this.contents = contents;
|
|
12783
12961
|
this.splitLevel = splitLevel;
|
|
12962
|
+
this.isUndoOp = isUndoOp;
|
|
12963
|
+
this.fromIdx = fromIdx;
|
|
12964
|
+
this.toIdx = toIdx;
|
|
12784
12965
|
}
|
|
12785
12966
|
/**
|
|
12786
12967
|
* `create` creates a new instance of EditOperation.
|
|
12787
12968
|
*/
|
|
12788
|
-
static create(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt) {
|
|
12969
|
+
static create(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt, isUndoOp, fromIdx, toIdx) {
|
|
12789
12970
|
return new TreeEditOperation(
|
|
12790
12971
|
parentCreatedAt,
|
|
12791
12972
|
fromPos,
|
|
12792
12973
|
toPos,
|
|
12793
12974
|
contents,
|
|
12794
12975
|
splitLevel,
|
|
12795
|
-
executedAt
|
|
12976
|
+
executedAt,
|
|
12977
|
+
isUndoOp,
|
|
12978
|
+
fromIdx,
|
|
12979
|
+
toIdx
|
|
12796
12980
|
);
|
|
12797
12981
|
}
|
|
12798
12982
|
/**
|
|
@@ -12814,7 +12998,15 @@
|
|
|
12814
12998
|
}
|
|
12815
12999
|
const editedAt = this.getExecutedAt();
|
|
12816
13000
|
const tree = parentObject;
|
|
12817
|
-
|
|
13001
|
+
if (this.isUndoOp && this.fromIdx !== void 0 && this.toIdx !== void 0) {
|
|
13002
|
+
this.fromPos = tree.findPos(this.fromIdx);
|
|
13003
|
+
if (this.fromIdx === this.toIdx) {
|
|
13004
|
+
this.toPos = this.fromPos;
|
|
13005
|
+
} else {
|
|
13006
|
+
this.toPos = tree.findPos(this.toIdx);
|
|
13007
|
+
}
|
|
13008
|
+
}
|
|
13009
|
+
const [changes, pairs, diff, removedNodes, preEditFromIdx] = tree.edit(
|
|
12818
13010
|
[this.fromPos, this.toPos],
|
|
12819
13011
|
this.contents?.map((content) => content.deepcopy()),
|
|
12820
13012
|
this.splitLevel,
|
|
@@ -12840,6 +13032,13 @@
|
|
|
12840
13032
|
})(),
|
|
12841
13033
|
versionVector
|
|
12842
13034
|
);
|
|
13035
|
+
this.lastFromIdx = preEditFromIdx;
|
|
13036
|
+
const removedSize = removedNodes.reduce(
|
|
13037
|
+
(sum, node) => sum + node.paddedSize(),
|
|
13038
|
+
0
|
|
13039
|
+
);
|
|
13040
|
+
this.lastToIdx = preEditFromIdx + removedSize;
|
|
13041
|
+
const reverseOp = this.splitLevel === 0 ? this.toReverseOperation(tree, removedNodes, preEditFromIdx) : void 0;
|
|
12843
13042
|
root.acc(diff);
|
|
12844
13043
|
for (const pair of pairs) {
|
|
12845
13044
|
root.registerGCPair(pair);
|
|
@@ -12858,9 +13057,131 @@
|
|
|
12858
13057
|
toPath
|
|
12859
13058
|
};
|
|
12860
13059
|
}
|
|
12861
|
-
)
|
|
13060
|
+
),
|
|
13061
|
+
reverseOp
|
|
12862
13062
|
};
|
|
12863
13063
|
}
|
|
13064
|
+
/**
|
|
13065
|
+
* `toReverseOperation` creates the reverse operation for undo.
|
|
13066
|
+
*
|
|
13067
|
+
* The reverse op stores both CRDTTreePos (for initial use) and integer
|
|
13068
|
+
* indices (for reconciliation adjustment when remote edits arrive).
|
|
13069
|
+
* At undo execution time, the integer indices take precedence and are
|
|
13070
|
+
* converted to CRDTTreePos via tree.findPos().
|
|
13071
|
+
*
|
|
13072
|
+
* @param tree - The CRDTTree after the edit has been applied
|
|
13073
|
+
* @param removedNodes - Nodes that were removed by this edit
|
|
13074
|
+
* @param preEditFromIdx - The from index captured BEFORE the edit
|
|
13075
|
+
*/
|
|
13076
|
+
toReverseOperation(tree, removedNodes, preEditFromIdx) {
|
|
13077
|
+
const insertedContentSize = this.contents ? this.contents.reduce((sum, node) => sum + node.paddedSize(), 0) : 0;
|
|
13078
|
+
const maxNeededIdx = preEditFromIdx + insertedContentSize;
|
|
13079
|
+
if (maxNeededIdx > tree.getSize()) {
|
|
13080
|
+
return void 0;
|
|
13081
|
+
}
|
|
13082
|
+
const topLevelRemoved = removedNodes.filter(
|
|
13083
|
+
(node) => !node.parent || !removedNodes.includes(node.parent)
|
|
13084
|
+
);
|
|
13085
|
+
const reverseContents = topLevelRemoved.length > 0 ? topLevelRemoved.map((n) => {
|
|
13086
|
+
const clone = n.deepcopy();
|
|
13087
|
+
clearRemovedAt(clone);
|
|
13088
|
+
return clone;
|
|
13089
|
+
}) : void 0;
|
|
13090
|
+
const reverseFromPos = tree.findPos(preEditFromIdx);
|
|
13091
|
+
let reverseToPos;
|
|
13092
|
+
if (insertedContentSize > 0) {
|
|
13093
|
+
reverseToPos = tree.findPos(preEditFromIdx + insertedContentSize);
|
|
13094
|
+
} else {
|
|
13095
|
+
reverseToPos = reverseFromPos;
|
|
13096
|
+
}
|
|
13097
|
+
const reverseFromIdx = preEditFromIdx;
|
|
13098
|
+
const reverseToIdx = preEditFromIdx + insertedContentSize;
|
|
13099
|
+
return TreeEditOperation.create(
|
|
13100
|
+
this.getParentCreatedAt(),
|
|
13101
|
+
reverseFromPos,
|
|
13102
|
+
reverseToPos,
|
|
13103
|
+
reverseContents,
|
|
13104
|
+
0,
|
|
13105
|
+
// splitLevel always 0
|
|
13106
|
+
void 0,
|
|
13107
|
+
// executedAt set during undo
|
|
13108
|
+
true,
|
|
13109
|
+
// isUndoOp
|
|
13110
|
+
reverseFromIdx,
|
|
13111
|
+
reverseToIdx
|
|
13112
|
+
);
|
|
13113
|
+
}
|
|
13114
|
+
/**
|
|
13115
|
+
* `normalizePos` returns the visible-index range of this operation.
|
|
13116
|
+
* For undo ops, returns the stored (possibly reconciled) indices.
|
|
13117
|
+
* For forward ops, returns the pre-edit indices captured during execute().
|
|
13118
|
+
*/
|
|
13119
|
+
normalizePos() {
|
|
13120
|
+
if (this.isUndoOp && this.fromIdx !== void 0 && this.toIdx !== void 0) {
|
|
13121
|
+
return [this.fromIdx, this.toIdx];
|
|
13122
|
+
}
|
|
13123
|
+
if (this.lastFromIdx !== void 0 && this.lastToIdx !== void 0) {
|
|
13124
|
+
return [this.lastFromIdx, this.lastToIdx];
|
|
13125
|
+
}
|
|
13126
|
+
return [0, 0];
|
|
13127
|
+
}
|
|
13128
|
+
/**
|
|
13129
|
+
* `reconcileOperation` adjusts this undo operation's integer indices
|
|
13130
|
+
* when a remote edit modifies the same tree. Uses the same 6-case
|
|
13131
|
+
* overlap logic as EditOperation.reconcileOperation for Text.
|
|
13132
|
+
*/
|
|
13133
|
+
reconcileOperation(remoteFrom, remoteTo, contentLen) {
|
|
13134
|
+
if (!this.isUndoOp) {
|
|
13135
|
+
return;
|
|
13136
|
+
}
|
|
13137
|
+
if (this.fromIdx === void 0 || this.toIdx === void 0) {
|
|
13138
|
+
return;
|
|
13139
|
+
}
|
|
13140
|
+
if (remoteFrom > remoteTo) {
|
|
13141
|
+
return;
|
|
13142
|
+
}
|
|
13143
|
+
const remoteRangeLen = remoteTo - remoteFrom;
|
|
13144
|
+
const localFrom = this.fromIdx;
|
|
13145
|
+
const localTo = this.toIdx;
|
|
13146
|
+
const apply = (na, nb) => {
|
|
13147
|
+
this.fromIdx = Math.max(0, na);
|
|
13148
|
+
this.toIdx = Math.max(0, nb);
|
|
13149
|
+
};
|
|
13150
|
+
if (remoteTo <= localFrom) {
|
|
13151
|
+
apply(
|
|
13152
|
+
localFrom - remoteRangeLen + contentLen,
|
|
13153
|
+
localTo - remoteRangeLen + contentLen
|
|
13154
|
+
);
|
|
13155
|
+
return;
|
|
13156
|
+
}
|
|
13157
|
+
if (localTo <= remoteFrom) {
|
|
13158
|
+
return;
|
|
13159
|
+
}
|
|
13160
|
+
if (remoteFrom <= localFrom && localTo <= remoteTo && remoteFrom !== remoteTo) {
|
|
13161
|
+
apply(remoteFrom, remoteFrom);
|
|
13162
|
+
return;
|
|
13163
|
+
}
|
|
13164
|
+
if (localFrom <= remoteFrom && remoteTo <= localTo && localFrom !== localTo) {
|
|
13165
|
+
apply(localFrom, localTo - remoteRangeLen + contentLen);
|
|
13166
|
+
return;
|
|
13167
|
+
}
|
|
13168
|
+
if (remoteFrom < localFrom && localFrom < remoteTo && remoteTo < localTo) {
|
|
13169
|
+
apply(remoteFrom, remoteFrom + (localTo - remoteTo));
|
|
13170
|
+
return;
|
|
13171
|
+
}
|
|
13172
|
+
if (localFrom < remoteFrom && remoteFrom < localTo && localTo < remoteTo) {
|
|
13173
|
+
apply(localFrom, remoteFrom);
|
|
13174
|
+
return;
|
|
13175
|
+
}
|
|
13176
|
+
}
|
|
13177
|
+
/**
|
|
13178
|
+
* `getContentSize` returns the total visible size of this operation's
|
|
13179
|
+
* content (for reconciliation).
|
|
13180
|
+
*/
|
|
13181
|
+
getContentSize() {
|
|
13182
|
+
if (!this.contents) return 0;
|
|
13183
|
+
return this.contents.reduce((sum, node) => sum + node.paddedSize(), 0);
|
|
13184
|
+
}
|
|
12864
13185
|
/**
|
|
12865
13186
|
* `getEffectedCreatedAt` returns the creation time of the effected element.
|
|
12866
13187
|
*/
|
|
@@ -14250,6 +14571,10 @@
|
|
|
14250
14571
|
);
|
|
14251
14572
|
pbStyleOperation.from = toTextNodePos(styleOperation.getFromPos());
|
|
14252
14573
|
pbStyleOperation.to = toTextNodePos(styleOperation.getToPos());
|
|
14574
|
+
const attributesToRemove = styleOperation.getAttributesToRemove();
|
|
14575
|
+
if (attributesToRemove.length > 0) {
|
|
14576
|
+
pbStyleOperation.attributesToRemove = attributesToRemove;
|
|
14577
|
+
}
|
|
14253
14578
|
const pbAttributes = pbStyleOperation.attributes;
|
|
14254
14579
|
for (const [key, value] of styleOperation.getAttributes()) {
|
|
14255
14580
|
pbAttributes[key] = value;
|
|
@@ -14880,11 +15205,13 @@
|
|
|
14880
15205
|
Object.entries(pbStyleOperation.attributes).forEach(([key, value]) => {
|
|
14881
15206
|
attributes.set(key, value);
|
|
14882
15207
|
});
|
|
14883
|
-
|
|
15208
|
+
const attributesToRemove = pbStyleOperation.attributesToRemove ?? [];
|
|
15209
|
+
return new StyleOperation(
|
|
14884
15210
|
fromTimeTicket(pbStyleOperation.parentCreatedAt),
|
|
14885
15211
|
fromTextNodePos(pbStyleOperation.from),
|
|
14886
15212
|
fromTextNodePos(pbStyleOperation.to),
|
|
14887
15213
|
attributes,
|
|
15214
|
+
attributesToRemove,
|
|
14888
15215
|
fromTimeTicket(pbStyleOperation.executedAt)
|
|
14889
15216
|
);
|
|
14890
15217
|
} else if (pbOperation.body.case === "increase") {
|
|
@@ -15852,6 +16179,8 @@
|
|
|
15852
16179
|
return target.length;
|
|
15853
16180
|
} else if (typeof method === "symbol" && method === Symbol.iterator) {
|
|
15854
16181
|
return ArrayProxy.iteratorInternal.bind(this, context, target);
|
|
16182
|
+
} else if (method === "elements") {
|
|
16183
|
+
return ArrayProxy.wrappedIteratorInternal.bind(this, context, target);
|
|
15855
16184
|
} else if (method === "includes") {
|
|
15856
16185
|
return (searchElement, fromIndex) => {
|
|
15857
16186
|
return ArrayProxy.includes(
|
|
@@ -15914,6 +16243,12 @@
|
|
|
15914
16243
|
}
|
|
15915
16244
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
15916
16245
|
static *iteratorInternal(change, target) {
|
|
16246
|
+
for (const elem of target) {
|
|
16247
|
+
yield toJSONElement(change, elem);
|
|
16248
|
+
}
|
|
16249
|
+
}
|
|
16250
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
16251
|
+
static *wrappedIteratorInternal(change, target) {
|
|
15917
16252
|
for (const elem of target) {
|
|
15918
16253
|
yield toWrappedElement(change, elem);
|
|
15919
16254
|
}
|
|
@@ -16360,7 +16695,7 @@
|
|
|
16360
16695
|
this.context.registerGCPair(pair);
|
|
16361
16696
|
}
|
|
16362
16697
|
this.context.push(
|
|
16363
|
-
|
|
16698
|
+
StyleOperation.create(
|
|
16364
16699
|
this.text.getCreatedAt(),
|
|
16365
16700
|
range[0],
|
|
16366
16701
|
range[1],
|
|
@@ -17774,6 +18109,24 @@
|
|
|
17774
18109
|
replace(this.undoStack);
|
|
17775
18110
|
replace(this.redoStack);
|
|
17776
18111
|
}
|
|
18112
|
+
/**
|
|
18113
|
+
* `reconcileTreeEdit` reconciles the tree edit operation.
|
|
18114
|
+
* Scan both undo/redo stacks and adjust tree edit operations
|
|
18115
|
+
* when a remote edit modifies the same tree.
|
|
18116
|
+
*/
|
|
18117
|
+
reconcileTreeEdit(parentCreatedAt, rangeFrom, rangeTo, contentSize) {
|
|
18118
|
+
const replace = (stack) => {
|
|
18119
|
+
for (const ops of stack) {
|
|
18120
|
+
for (const op of ops) {
|
|
18121
|
+
if (op instanceof TreeEditOperation && op.getParentCreatedAt().compare(parentCreatedAt) === 0) {
|
|
18122
|
+
op.reconcileOperation(rangeFrom, rangeTo, contentSize);
|
|
18123
|
+
}
|
|
18124
|
+
}
|
|
18125
|
+
}
|
|
18126
|
+
};
|
|
18127
|
+
replace(this.undoStack);
|
|
18128
|
+
replace(this.redoStack);
|
|
18129
|
+
}
|
|
17777
18130
|
}
|
|
17778
18131
|
function validateYorkieRuleset(data, ruleset) {
|
|
17779
18132
|
const errors = [];
|
|
@@ -18727,6 +19080,15 @@
|
|
|
18727
19080
|
op.getContent()?.length ?? 0
|
|
18728
19081
|
);
|
|
18729
19082
|
}
|
|
19083
|
+
if (op instanceof TreeEditOperation) {
|
|
19084
|
+
const [from, to] = op.normalizePos();
|
|
19085
|
+
this.internalHistory.reconcileTreeEdit(
|
|
19086
|
+
op.getParentCreatedAt(),
|
|
19087
|
+
from,
|
|
19088
|
+
to,
|
|
19089
|
+
op.getContentSize()
|
|
19090
|
+
);
|
|
19091
|
+
}
|
|
18730
19092
|
}
|
|
18731
19093
|
this.changeID = this.changeID.syncClocks(change.getID());
|
|
18732
19094
|
if (opInfos.length) {
|
|
@@ -19272,7 +19634,7 @@
|
|
|
19272
19634
|
};
|
|
19273
19635
|
}
|
|
19274
19636
|
const name$1 = "@yorkie-js/sdk";
|
|
19275
|
-
const version$1 = "0.
|
|
19637
|
+
const version$1 = "0.7.0";
|
|
19276
19638
|
const pkg$1 = {
|
|
19277
19639
|
name: name$1,
|
|
19278
19640
|
version: version$1
|
|
@@ -21127,7 +21489,7 @@
|
|
|
21127
21489
|
};
|
|
21128
21490
|
}
|
|
21129
21491
|
const name = "@yorkie-js/react";
|
|
21130
|
-
const version = "0.
|
|
21492
|
+
const version = "0.7.0";
|
|
21131
21493
|
const pkg = {
|
|
21132
21494
|
name,
|
|
21133
21495
|
version
|
|
@@ -21481,6 +21843,48 @@
|
|
|
21481
21843
|
const documentStore = useDocumentStore("useConnection");
|
|
21482
21844
|
return useSelector(documentStore, (store) => store.connection);
|
|
21483
21845
|
};
|
|
21846
|
+
const useRevisions = () => {
|
|
21847
|
+
const { client } = useYorkie();
|
|
21848
|
+
const documentStore = useDocumentStore("useRevisions");
|
|
21849
|
+
const doc = useSelector(documentStore, (store) => store.doc);
|
|
21850
|
+
const createRevision = react.useCallback(
|
|
21851
|
+
async (label, description) => {
|
|
21852
|
+
if (!client || !doc) {
|
|
21853
|
+
throw new Error("Client or document is not ready");
|
|
21854
|
+
}
|
|
21855
|
+
return client.createRevision(doc, label, description);
|
|
21856
|
+
},
|
|
21857
|
+
[client, doc]
|
|
21858
|
+
);
|
|
21859
|
+
const listRevisions = react.useCallback(
|
|
21860
|
+
async (options) => {
|
|
21861
|
+
if (!client || !doc) {
|
|
21862
|
+
throw new Error("Client or document is not ready");
|
|
21863
|
+
}
|
|
21864
|
+
return client.listRevisions(doc, options);
|
|
21865
|
+
},
|
|
21866
|
+
[client, doc]
|
|
21867
|
+
);
|
|
21868
|
+
const getRevision = react.useCallback(
|
|
21869
|
+
async (revisionID) => {
|
|
21870
|
+
if (!client || !doc) {
|
|
21871
|
+
throw new Error("Client or document is not ready");
|
|
21872
|
+
}
|
|
21873
|
+
return client.getRevision(doc, revisionID);
|
|
21874
|
+
},
|
|
21875
|
+
[client, doc]
|
|
21876
|
+
);
|
|
21877
|
+
const restoreRevision = react.useCallback(
|
|
21878
|
+
async (revisionID) => {
|
|
21879
|
+
if (!client || !doc) {
|
|
21880
|
+
throw new Error("Client or document is not ready");
|
|
21881
|
+
}
|
|
21882
|
+
return client.restoreRevision(doc, revisionID);
|
|
21883
|
+
},
|
|
21884
|
+
[client, doc]
|
|
21885
|
+
);
|
|
21886
|
+
return { createRevision, listRevisions, getRevision, restoreRevision };
|
|
21887
|
+
};
|
|
21484
21888
|
const useDocumentStore = (hookName) => {
|
|
21485
21889
|
const documentStore = react.useContext(DocumentContext);
|
|
21486
21890
|
if (!documentStore) {
|
|
@@ -21666,6 +22070,7 @@
|
|
|
21666
22070
|
exports2.useConnection = useConnection;
|
|
21667
22071
|
exports2.useDocument = useDocument;
|
|
21668
22072
|
exports2.usePresences = usePresences;
|
|
22073
|
+
exports2.useRevisions = useRevisions;
|
|
21669
22074
|
exports2.useRoot = useRoot;
|
|
21670
22075
|
exports2.useYorkieDoc = useYorkieDoc;
|
|
21671
22076
|
Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
|