@yorkie-js/react 0.6.49 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/yorkie-js-react.es.js +503 -16
- package/dist/yorkie-js-react.es.js.map +1 -1
- package/dist/yorkie-js-react.js +503 -16
- package/dist/yorkie-js-react.js.map +1 -1
- package/package.json +2 -2
|
@@ -5395,7 +5395,7 @@ function createGrpcWebTransport(options) {
|
|
|
5395
5395
|
}
|
|
5396
5396
|
};
|
|
5397
5397
|
}
|
|
5398
|
-
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIsoaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGpUBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwiggsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq7AQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCJUCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50IlgKCE5vZGVBdHRyEg0KBXZhbHVlGAEgASgJEikKCnVwZGF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBISCgppc19yZW1vdmVkGAMgASgIIpQCCghUZXh0Tm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEg0KBXZhbHVlGAIgASgJEikKCnJlbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgEIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEjcKCmF0dHJpYnV0ZXMYBSADKAsyIy55b3JraWUudjEuVGV4dE5vZGUuQXR0cmlidXRlc0VudHJ5GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIkcKClRleHROb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSLdAgoIVHJlZU5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIMCgR0eXBlGAIgASgJEg0KBXZhbHVlGAMgASgJEikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgFIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEioKC2luc19uZXh0X2lkGAYgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDQoFZGVwdGgYByABKAUSNwoKYXR0cmlidXRlcxgIIAMoCzIjLnlvcmtpZS52MS5UcmVlTm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiMQoJVHJlZU5vZGVzEiQKB2NvbnRlbnQYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUiRwoKVHJlZU5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFImMKB1RyZWVQb3MSKAoJcGFyZW50X2lkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSLgoPbGVmdF9zaWJsaW5nX2lkGAIgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQiawoEVXNlchIKCgJpZBgBIAEoCRIVCg1hdXRoX3Byb3ZpZGVyGAIgASgJEhAKCHVzZXJuYW1lGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBCgZNZW1iZXISCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJEhAKCHVzZXJuYW1lGAQgASgJEgwKBHJvbGUYBSABKAkSLgoKaW52aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QYKB1Byb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJEhIKCnNlY3JldF9rZXkYBCABKAkSGAoQYXV0aF93ZWJob29rX3VybBgFIAEoCRIcChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgGIAMoCRIgChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYESABKAQSJgoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBIgASgJEiYKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgTIAEoCRIkChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBQgASgJEhkKEWV2ZW50X3dlYmhvb2tfdXJsGAcgASgJEhwKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAggAygJEiEKGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYFSABKAQSJwofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgWIAEoCRInCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBcgASgJEiUKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBggASgJEiMKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgJIAEoCRIaChJzbmFwc2hvdF90aHJlc2hvbGQYGSABKAMSGQoRc25hcHNob3RfaW50ZXJ2YWwYGiABKAMSJAocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgKIAEoBRIkChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAsgASgFEh0KFW1heF9zaXplX3Blcl9kb2N1bWVudBgPIAEoBRIYChByZW1vdmVfb25fZGV0YWNoGBAgASgIEh0KFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgbIAEoCBIXCg9hbGxvd2VkX29yaWdpbnMYDiADKAkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoLTWV0cmljUG9pbnQSEQoJdGltZXN0YW1wGAEgASgDEg0KBXZhbHVlGAIgASgFIqMMChZVcGRhdGFibGVQcm9qZWN0RmllbGRzEioKBG5hbWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNgoQYXV0aF93ZWJob29rX3VybBgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgDIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkF1dGhXZWJob29rTWV0aG9kcxI+ChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYDCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRAoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkQKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJCChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEWV2ZW50X3dlYmhvb2tfdXJsGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAUgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuRXZlbnRXZWJob29rRXZlbnRzEj8KGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYECABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRQofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJFCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkMKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEnNuYXBzaG90X3RocmVzaG9sZBgUIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjYKEXNuYXBzaG90X2ludGVydmFsGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSQQobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkEKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRJBChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAggASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSOgoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAogASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNAoQcmVtb3ZlX29uX2RldGFjaBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRJJCg9hbGxvd2VkX29yaWdpbnMYCSABKAsyMC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BbGxvd2VkT3JpZ2lucxolChJBdXRoV2ViaG9va01ldGhvZHMSDwoHbWV0aG9kcxgBIAMoCRokChJFdmVudFdlYmhvb2tFdmVudHMSDgoGZXZlbnRzGAEgAygJGiEKDkFsbG93ZWRPcmlnaW5zEg8KB29yaWdpbnMYASADKAkipwMKD0RvY3VtZW50U3VtbWFyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEcm9vdBgDIAEoCRIYChBhdHRhY2hlZF9jbGllbnRzGAcgASgFEikKDWRvY3VtZW50X3NpemUYCCABKAsyEi55b3JraWUudjEuRG9jU2l6ZRISCgpzY2hlbWFfa2V5GAkgASgJEjwKCXByZXNlbmNlcxgKIAMoCzIpLnlvcmtpZS52MS5Eb2N1bWVudFN1bW1hcnkuUHJlc2VuY2VzRW50cnkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYWNjZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi2gEKDlByZXNlbmNlQ2hhbmdlEjIKBHR5cGUYASABKA4yJC55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UuQ2hhbmdlVHlwZRIlCghwcmVzZW5jZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZSJtCgpDaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPQ0hBTkdFX1RZUEVfUFVUEAESFgoSQ0hBTkdFX1RZUEVfREVMRVRFEAISFQoRQ0hBTkdFX1RZUEVfQ0xFQVIQAyJkCghQcmVzZW5jZRIrCgRkYXRhGAEgAygLMh0ueW9ya2llLnYxLlByZXNlbmNlLkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0Cg5DaGFubmVsU3VtbWFyeRILCgNrZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoBSI0CgpDaGVja3BvaW50EhIKCnNlcnZlcl9zZXEYASABKAMSEgoKY2xpZW50X3NlcRgCIAEoDSJhCgtUZXh0Tm9kZVBvcxIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFEhcKD3JlbGF0aXZlX29mZnNldBgDIAEoBSJCCgpUaW1lVGlja2V0Eg8KB2xhbXBvcnQYASABKAMSEQoJZGVsaW1pdGVyGAIgASgNEhAKCGFjdG9yX2lkGAMgASgMIi4KDERvY0V2ZW50Qm9keRINCgV0b3BpYxgBIAEoCRIPCgdwYXlsb2FkGAIgASgMImsKCERvY0V2ZW50EiUKBHR5cGUYASABKA4yFy55b3JraWUudjEuRG9jRXZlbnRUeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIlCgRib2R5GAMgASgLMhcueW9ya2llLnYxLkRvY0V2ZW50Qm9keSLWAQoMQ2hhbm5lbEV2ZW50EioKBHR5cGUYASABKA4yHC55b3JraWUudjEuQ2hhbm5lbEV2ZW50LlR5cGUSEQoJcHVibGlzaGVyGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAMSCwoDc2VxGAQgASgDEg0KBXRvcGljGAUgASgJEg8KB3BheWxvYWQYBiABKAwiQwoEVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASEQoNVFlQRV9QUkVTRU5DRRABEhIKDlRZUEVfQlJPQURDQVNUEAIiJgoIRGF0YVNpemUSDAoEZGF0YRgBIAEoBRIMCgRtZXRhGAIgASgFIk0KB0RvY1NpemUSIQoEbGl2ZRgBIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZRIfCgJnYxgCIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZSKRAQoGU2NoZW1hEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoBRIMCgRib2R5GAQgASgJEh4KBXJ1bGVzGAUgAygLMg8ueW9ya2llLnYxLlJ1bGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIgoEUnVsZRIMCgRwYXRoGAEgASgJEgwKBHR5cGUYAiABKAkigwEKD1JldmlzaW9uU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghzbmFwc2hvdBgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCrUAgoJVmFsdWVUeXBlEhMKD1ZBTFVFX1RZUEVfTlVMTBAAEhYKElZBTFVFX1RZUEVfQk9PTEVBThABEhYKElZBTFVFX1RZUEVfSU5URUdFUhACEhMKD1ZBTFVFX1RZUEVfTE9ORxADEhUKEVZBTFVFX1RZUEVfRE9VQkxFEAQSFQoRVkFMVUVfVFlQRV9TVFJJTkcQBRIUChBWQUxVRV9UWVBFX0JZVEVTEAYSEwoPVkFMVUVfVFlQRV9EQVRFEAcSGgoWVkFMVUVfVFlQRV9KU09OX09CSkVDVBAIEhkKFVZBTFVFX1RZUEVfSlNPTl9BUlJBWRAJEhMKD1ZBTFVFX1RZUEVfVEVYVBAKEhoKFlZBTFVFX1RZUEVfSU5URUdFUl9DTlQQCxIXChNWQUxVRV9UWVBFX0xPTkdfQ05UEAwSEwoPVkFMVUVfVFlQRV9UUkVFEA0qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5398
|
+
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIsoaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGpUBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwiggsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq7AQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCJUCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50IlgKCE5vZGVBdHRyEg0KBXZhbHVlGAEgASgJEikKCnVwZGF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBISCgppc19yZW1vdmVkGAMgASgIIpQCCghUZXh0Tm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEg0KBXZhbHVlGAIgASgJEikKCnJlbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgEIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEjcKCmF0dHJpYnV0ZXMYBSADKAsyIy55b3JraWUudjEuVGV4dE5vZGUuQXR0cmlidXRlc0VudHJ5GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIkcKClRleHROb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSLdAgoIVHJlZU5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIMCgR0eXBlGAIgASgJEg0KBXZhbHVlGAMgASgJEikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgFIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEioKC2luc19uZXh0X2lkGAYgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDQoFZGVwdGgYByABKAUSNwoKYXR0cmlidXRlcxgIIAMoCzIjLnlvcmtpZS52MS5UcmVlTm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiMQoJVHJlZU5vZGVzEiQKB2NvbnRlbnQYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUiRwoKVHJlZU5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFImMKB1RyZWVQb3MSKAoJcGFyZW50X2lkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSLgoPbGVmdF9zaWJsaW5nX2lkGAIgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQiawoEVXNlchIKCgJpZBgBIAEoCRIVCg1hdXRoX3Byb3ZpZGVyGAIgASgJEhAKCHVzZXJuYW1lGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBCgZNZW1iZXISCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJEhAKCHVzZXJuYW1lGAQgASgJEgwKBHJvbGUYBSABKAkSLgoKaW52aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QYKB1Byb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJEhIKCnNlY3JldF9rZXkYBCABKAkSGAoQYXV0aF93ZWJob29rX3VybBgFIAEoCRIcChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgGIAMoCRIgChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYESABKAQSJgoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBIgASgJEiYKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgTIAEoCRIkChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBQgASgJEhkKEWV2ZW50X3dlYmhvb2tfdXJsGAcgASgJEhwKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAggAygJEiEKGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYFSABKAQSJwofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgWIAEoCRInCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBcgASgJEiUKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBggASgJEiMKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgJIAEoCRIaChJzbmFwc2hvdF90aHJlc2hvbGQYGSABKAMSGQoRc25hcHNob3RfaW50ZXJ2YWwYGiABKAMSJAocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgKIAEoBRIkChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAsgASgFEh0KFW1heF9zaXplX3Blcl9kb2N1bWVudBgPIAEoBRIYChByZW1vdmVfb25fZGV0YWNoGBAgASgIEh0KFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgbIAEoCBIXCg9hbGxvd2VkX29yaWdpbnMYDiADKAkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoLTWV0cmljUG9pbnQSEQoJdGltZXN0YW1wGAEgASgDEg0KBXZhbHVlGAIgASgFIqMMChZVcGRhdGFibGVQcm9qZWN0RmllbGRzEioKBG5hbWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNgoQYXV0aF93ZWJob29rX3VybBgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgDIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkF1dGhXZWJob29rTWV0aG9kcxI+ChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYDCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRAoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkQKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJCChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEWV2ZW50X3dlYmhvb2tfdXJsGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAUgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuRXZlbnRXZWJob29rRXZlbnRzEj8KGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYECABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRQofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJFCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkMKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEnNuYXBzaG90X3RocmVzaG9sZBgUIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjYKEXNuYXBzaG90X2ludGVydmFsGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSQQobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkEKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRJBChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAggASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSOgoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAogASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNAoQcmVtb3ZlX29uX2RldGFjaBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRJJCg9hbGxvd2VkX29yaWdpbnMYCSABKAsyMC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BbGxvd2VkT3JpZ2lucxolChJBdXRoV2ViaG9va01ldGhvZHMSDwoHbWV0aG9kcxgBIAMoCRokChJFdmVudFdlYmhvb2tFdmVudHMSDgoGZXZlbnRzGAEgAygJGiEKDkFsbG93ZWRPcmlnaW5zEg8KB29yaWdpbnMYASADKAkipwMKD0RvY3VtZW50U3VtbWFyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEcm9vdBgDIAEoCRIYChBhdHRhY2hlZF9jbGllbnRzGAcgASgFEikKDWRvY3VtZW50X3NpemUYCCABKAsyEi55b3JraWUudjEuRG9jU2l6ZRISCgpzY2hlbWFfa2V5GAkgASgJEjwKCXByZXNlbmNlcxgKIAMoCzIpLnlvcmtpZS52MS5Eb2N1bWVudFN1bW1hcnkuUHJlc2VuY2VzRW50cnkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYWNjZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi2gEKDlByZXNlbmNlQ2hhbmdlEjIKBHR5cGUYASABKA4yJC55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UuQ2hhbmdlVHlwZRIlCghwcmVzZW5jZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZSJtCgpDaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPQ0hBTkdFX1RZUEVfUFVUEAESFgoSQ0hBTkdFX1RZUEVfREVMRVRFEAISFQoRQ0hBTkdFX1RZUEVfQ0xFQVIQAyJkCghQcmVzZW5jZRIrCgRkYXRhGAEgAygLMh0ueW9ya2llLnYxLlByZXNlbmNlLkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0Cg5DaGFubmVsU3VtbWFyeRILCgNrZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoBSI0CgpDaGVja3BvaW50EhIKCnNlcnZlcl9zZXEYASABKAMSEgoKY2xpZW50X3NlcRgCIAEoDSJhCgtUZXh0Tm9kZVBvcxIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFEhcKD3JlbGF0aXZlX29mZnNldBgDIAEoBSJCCgpUaW1lVGlja2V0Eg8KB2xhbXBvcnQYASABKAMSEQoJZGVsaW1pdGVyGAIgASgNEhAKCGFjdG9yX2lkGAMgASgMIi4KDERvY0V2ZW50Qm9keRINCgV0b3BpYxgBIAEoCRIPCgdwYXlsb2FkGAIgASgMImsKCERvY0V2ZW50EiUKBHR5cGUYASABKA4yFy55b3JraWUudjEuRG9jRXZlbnRUeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIlCgRib2R5GAMgASgLMhcueW9ya2llLnYxLkRvY0V2ZW50Qm9keSLWAQoMQ2hhbm5lbEV2ZW50EioKBHR5cGUYASABKA4yHC55b3JraWUudjEuQ2hhbm5lbEV2ZW50LlR5cGUSEQoJcHVibGlzaGVyGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAMSCwoDc2VxGAQgASgDEg0KBXRvcGljGAUgASgJEg8KB3BheWxvYWQYBiABKAwiQwoEVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASEQoNVFlQRV9QUkVTRU5DRRABEhIKDlRZUEVfQlJPQURDQVNUEAIiJgoIRGF0YVNpemUSDAoEZGF0YRgBIAEoBRIMCgRtZXRhGAIgASgFIk0KB0RvY1NpemUSIQoEbGl2ZRgBIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZRIfCgJnYxgCIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZSKRAQoGU2NoZW1hEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoBRIMCgRib2R5GAQgASgJEh4KBXJ1bGVzGAUgAygLMg8ueW9ya2llLnYxLlJ1bGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiUAoMVHJlZU5vZGVSdWxlEhEKCW5vZGVfdHlwZRgBIAEoCRIPCgdjb250ZW50GAIgASgJEg0KBW1hcmtzGAMgASgJEg0KBWdyb3VwGAQgASgJIk8KBFJ1bGUSDAoEcGF0aBgBIAEoCRIMCgR0eXBlGAIgASgJEisKCnRyZWVfbm9kZXMYAyADKAsyFy55b3JraWUudjEuVHJlZU5vZGVSdWxlIoMBCg9SZXZpc2lvblN1bW1hcnkSCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIc25hcHNob3QYBCABKAkSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAq1AIKCVZhbHVlVHlwZRITCg9WQUxVRV9UWVBFX05VTEwQABIWChJWQUxVRV9UWVBFX0JPT0xFQU4QARIWChJWQUxVRV9UWVBFX0lOVEVHRVIQAhITCg9WQUxVRV9UWVBFX0xPTkcQAxIVChFWQUxVRV9UWVBFX0RPVUJMRRAEEhUKEVZBTFVFX1RZUEVfU1RSSU5HEAUSFAoQVkFMVUVfVFlQRV9CWVRFUxAGEhMKD1ZBTFVFX1RZUEVfREFURRAHEhoKFlZBTFVFX1RZUEVfSlNPTl9PQkpFQ1QQCBIZChVWQUxVRV9UWVBFX0pTT05fQVJSQVkQCRITCg9WQUxVRV9UWVBFX1RFWFQQChIaChZWQUxVRV9UWVBFX0lOVEVHRVJfQ05UEAsSFwoTVkFMVUVfVFlQRV9MT05HX0NOVBAMEhMKD1ZBTFVFX1RZUEVfVFJFRRANKqYBCgxEb2NFdmVudFR5cGUSIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfQ0hBTkdFRBAAEiMKH0RPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1dBVENIRUQQARIlCiFET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9VTldBVENIRUQQAhIlCiFET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9CUk9BRENBU1QQA0JFChFkZXYueW9ya2llLmFwaS52MVABWi5naXRodWIuY29tL3lvcmtpZS10ZWFtL3lvcmtpZS9hcGkveW9ya2llL3YxO3YxYgZwcm90bzM", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5399
5399
|
const SnapshotSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 0);
|
|
5400
5400
|
const ChangePackSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 1);
|
|
5401
5401
|
const ChangeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 2);
|
|
@@ -12497,7 +12497,7 @@ class CRDTTree extends CRDTElement {
|
|
|
12497
12497
|
}
|
|
12498
12498
|
}
|
|
12499
12499
|
}
|
|
12500
|
-
return [changes, pairs, diff];
|
|
12500
|
+
return [changes, pairs, diff, nodesToBeRemoved, fromIdx];
|
|
12501
12501
|
}
|
|
12502
12502
|
/**
|
|
12503
12503
|
* `editT` edits the given range with the given value.
|
|
@@ -12935,29 +12935,46 @@ class CRDTTree extends CRDTElement {
|
|
|
12935
12935
|
return [prev, prev.isText ? TokenType.Text : TokenType.End];
|
|
12936
12936
|
}
|
|
12937
12937
|
}
|
|
12938
|
+
function clearRemovedAt(node) {
|
|
12939
|
+
traverseAll(node, (n) => {
|
|
12940
|
+
n.removedAt = void 0;
|
|
12941
|
+
n.visibleSize = n.totalSize;
|
|
12942
|
+
});
|
|
12943
|
+
}
|
|
12938
12944
|
class TreeEditOperation extends Operation {
|
|
12939
12945
|
fromPos;
|
|
12940
12946
|
toPos;
|
|
12941
12947
|
contents;
|
|
12942
12948
|
splitLevel;
|
|
12943
|
-
|
|
12949
|
+
isUndoOp;
|
|
12950
|
+
fromIdx;
|
|
12951
|
+
toIdx;
|
|
12952
|
+
lastFromIdx;
|
|
12953
|
+
lastToIdx;
|
|
12954
|
+
constructor(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt, isUndoOp, fromIdx, toIdx) {
|
|
12944
12955
|
super(parentCreatedAt, executedAt);
|
|
12945
12956
|
this.fromPos = fromPos;
|
|
12946
12957
|
this.toPos = toPos;
|
|
12947
12958
|
this.contents = contents;
|
|
12948
12959
|
this.splitLevel = splitLevel;
|
|
12960
|
+
this.isUndoOp = isUndoOp;
|
|
12961
|
+
this.fromIdx = fromIdx;
|
|
12962
|
+
this.toIdx = toIdx;
|
|
12949
12963
|
}
|
|
12950
12964
|
/**
|
|
12951
12965
|
* `create` creates a new instance of EditOperation.
|
|
12952
12966
|
*/
|
|
12953
|
-
static create(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt) {
|
|
12967
|
+
static create(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt, isUndoOp, fromIdx, toIdx) {
|
|
12954
12968
|
return new TreeEditOperation(
|
|
12955
12969
|
parentCreatedAt,
|
|
12956
12970
|
fromPos,
|
|
12957
12971
|
toPos,
|
|
12958
12972
|
contents,
|
|
12959
12973
|
splitLevel,
|
|
12960
|
-
executedAt
|
|
12974
|
+
executedAt,
|
|
12975
|
+
isUndoOp,
|
|
12976
|
+
fromIdx,
|
|
12977
|
+
toIdx
|
|
12961
12978
|
);
|
|
12962
12979
|
}
|
|
12963
12980
|
/**
|
|
@@ -12979,7 +12996,15 @@ class TreeEditOperation extends Operation {
|
|
|
12979
12996
|
}
|
|
12980
12997
|
const editedAt = this.getExecutedAt();
|
|
12981
12998
|
const tree = parentObject;
|
|
12982
|
-
|
|
12999
|
+
if (this.isUndoOp && this.fromIdx !== void 0 && this.toIdx !== void 0) {
|
|
13000
|
+
this.fromPos = tree.findPos(this.fromIdx);
|
|
13001
|
+
if (this.fromIdx === this.toIdx) {
|
|
13002
|
+
this.toPos = this.fromPos;
|
|
13003
|
+
} else {
|
|
13004
|
+
this.toPos = tree.findPos(this.toIdx);
|
|
13005
|
+
}
|
|
13006
|
+
}
|
|
13007
|
+
const [changes, pairs, diff, removedNodes, preEditFromIdx] = tree.edit(
|
|
12983
13008
|
[this.fromPos, this.toPos],
|
|
12984
13009
|
this.contents?.map((content) => content.deepcopy()),
|
|
12985
13010
|
this.splitLevel,
|
|
@@ -13005,6 +13030,13 @@ class TreeEditOperation extends Operation {
|
|
|
13005
13030
|
})(),
|
|
13006
13031
|
versionVector
|
|
13007
13032
|
);
|
|
13033
|
+
this.lastFromIdx = preEditFromIdx;
|
|
13034
|
+
const removedSize = removedNodes.reduce(
|
|
13035
|
+
(sum, node) => sum + node.paddedSize(),
|
|
13036
|
+
0
|
|
13037
|
+
);
|
|
13038
|
+
this.lastToIdx = preEditFromIdx + removedSize;
|
|
13039
|
+
const reverseOp = this.splitLevel === 0 ? this.toReverseOperation(tree, removedNodes, preEditFromIdx) : void 0;
|
|
13008
13040
|
root.acc(diff);
|
|
13009
13041
|
for (const pair of pairs) {
|
|
13010
13042
|
root.registerGCPair(pair);
|
|
@@ -13023,9 +13055,131 @@ class TreeEditOperation extends Operation {
|
|
|
13023
13055
|
toPath
|
|
13024
13056
|
};
|
|
13025
13057
|
}
|
|
13026
|
-
)
|
|
13058
|
+
),
|
|
13059
|
+
reverseOp
|
|
13027
13060
|
};
|
|
13028
13061
|
}
|
|
13062
|
+
/**
|
|
13063
|
+
* `toReverseOperation` creates the reverse operation for undo.
|
|
13064
|
+
*
|
|
13065
|
+
* The reverse op stores both CRDTTreePos (for initial use) and integer
|
|
13066
|
+
* indices (for reconciliation adjustment when remote edits arrive).
|
|
13067
|
+
* At undo execution time, the integer indices take precedence and are
|
|
13068
|
+
* converted to CRDTTreePos via tree.findPos().
|
|
13069
|
+
*
|
|
13070
|
+
* @param tree - The CRDTTree after the edit has been applied
|
|
13071
|
+
* @param removedNodes - Nodes that were removed by this edit
|
|
13072
|
+
* @param preEditFromIdx - The from index captured BEFORE the edit
|
|
13073
|
+
*/
|
|
13074
|
+
toReverseOperation(tree, removedNodes, preEditFromIdx) {
|
|
13075
|
+
const insertedContentSize = this.contents ? this.contents.reduce((sum, node) => sum + node.paddedSize(), 0) : 0;
|
|
13076
|
+
const maxNeededIdx = preEditFromIdx + insertedContentSize;
|
|
13077
|
+
if (maxNeededIdx > tree.getSize()) {
|
|
13078
|
+
return void 0;
|
|
13079
|
+
}
|
|
13080
|
+
const topLevelRemoved = removedNodes.filter(
|
|
13081
|
+
(node) => !node.parent || !removedNodes.includes(node.parent)
|
|
13082
|
+
);
|
|
13083
|
+
const reverseContents = topLevelRemoved.length > 0 ? topLevelRemoved.map((n) => {
|
|
13084
|
+
const clone = n.deepcopy();
|
|
13085
|
+
clearRemovedAt(clone);
|
|
13086
|
+
return clone;
|
|
13087
|
+
}) : void 0;
|
|
13088
|
+
const reverseFromPos = tree.findPos(preEditFromIdx);
|
|
13089
|
+
let reverseToPos;
|
|
13090
|
+
if (insertedContentSize > 0) {
|
|
13091
|
+
reverseToPos = tree.findPos(preEditFromIdx + insertedContentSize);
|
|
13092
|
+
} else {
|
|
13093
|
+
reverseToPos = reverseFromPos;
|
|
13094
|
+
}
|
|
13095
|
+
const reverseFromIdx = preEditFromIdx;
|
|
13096
|
+
const reverseToIdx = preEditFromIdx + insertedContentSize;
|
|
13097
|
+
return TreeEditOperation.create(
|
|
13098
|
+
this.getParentCreatedAt(),
|
|
13099
|
+
reverseFromPos,
|
|
13100
|
+
reverseToPos,
|
|
13101
|
+
reverseContents,
|
|
13102
|
+
0,
|
|
13103
|
+
// splitLevel always 0
|
|
13104
|
+
void 0,
|
|
13105
|
+
// executedAt set during undo
|
|
13106
|
+
true,
|
|
13107
|
+
// isUndoOp
|
|
13108
|
+
reverseFromIdx,
|
|
13109
|
+
reverseToIdx
|
|
13110
|
+
);
|
|
13111
|
+
}
|
|
13112
|
+
/**
|
|
13113
|
+
* `normalizePos` returns the visible-index range of this operation.
|
|
13114
|
+
* For undo ops, returns the stored (possibly reconciled) indices.
|
|
13115
|
+
* For forward ops, returns the pre-edit indices captured during execute().
|
|
13116
|
+
*/
|
|
13117
|
+
normalizePos() {
|
|
13118
|
+
if (this.isUndoOp && this.fromIdx !== void 0 && this.toIdx !== void 0) {
|
|
13119
|
+
return [this.fromIdx, this.toIdx];
|
|
13120
|
+
}
|
|
13121
|
+
if (this.lastFromIdx !== void 0 && this.lastToIdx !== void 0) {
|
|
13122
|
+
return [this.lastFromIdx, this.lastToIdx];
|
|
13123
|
+
}
|
|
13124
|
+
return [0, 0];
|
|
13125
|
+
}
|
|
13126
|
+
/**
|
|
13127
|
+
* `reconcileOperation` adjusts this undo operation's integer indices
|
|
13128
|
+
* when a remote edit modifies the same tree. Uses the same 6-case
|
|
13129
|
+
* overlap logic as EditOperation.reconcileOperation for Text.
|
|
13130
|
+
*/
|
|
13131
|
+
reconcileOperation(remoteFrom, remoteTo, contentLen) {
|
|
13132
|
+
if (!this.isUndoOp) {
|
|
13133
|
+
return;
|
|
13134
|
+
}
|
|
13135
|
+
if (this.fromIdx === void 0 || this.toIdx === void 0) {
|
|
13136
|
+
return;
|
|
13137
|
+
}
|
|
13138
|
+
if (remoteFrom > remoteTo) {
|
|
13139
|
+
return;
|
|
13140
|
+
}
|
|
13141
|
+
const remoteRangeLen = remoteTo - remoteFrom;
|
|
13142
|
+
const localFrom = this.fromIdx;
|
|
13143
|
+
const localTo = this.toIdx;
|
|
13144
|
+
const apply = (na, nb) => {
|
|
13145
|
+
this.fromIdx = Math.max(0, na);
|
|
13146
|
+
this.toIdx = Math.max(0, nb);
|
|
13147
|
+
};
|
|
13148
|
+
if (remoteTo <= localFrom) {
|
|
13149
|
+
apply(
|
|
13150
|
+
localFrom - remoteRangeLen + contentLen,
|
|
13151
|
+
localTo - remoteRangeLen + contentLen
|
|
13152
|
+
);
|
|
13153
|
+
return;
|
|
13154
|
+
}
|
|
13155
|
+
if (localTo <= remoteFrom) {
|
|
13156
|
+
return;
|
|
13157
|
+
}
|
|
13158
|
+
if (remoteFrom <= localFrom && localTo <= remoteTo && remoteFrom !== remoteTo) {
|
|
13159
|
+
apply(remoteFrom, remoteFrom);
|
|
13160
|
+
return;
|
|
13161
|
+
}
|
|
13162
|
+
if (localFrom <= remoteFrom && remoteTo <= localTo && localFrom !== localTo) {
|
|
13163
|
+
apply(localFrom, localTo - remoteRangeLen + contentLen);
|
|
13164
|
+
return;
|
|
13165
|
+
}
|
|
13166
|
+
if (remoteFrom < localFrom && localFrom < remoteTo && remoteTo < localTo) {
|
|
13167
|
+
apply(remoteFrom, remoteFrom + (localTo - remoteTo));
|
|
13168
|
+
return;
|
|
13169
|
+
}
|
|
13170
|
+
if (localFrom < remoteFrom && remoteFrom < localTo && localTo < remoteTo) {
|
|
13171
|
+
apply(localFrom, remoteFrom);
|
|
13172
|
+
return;
|
|
13173
|
+
}
|
|
13174
|
+
}
|
|
13175
|
+
/**
|
|
13176
|
+
* `getContentSize` returns the total visible size of this operation's
|
|
13177
|
+
* content (for reconciliation).
|
|
13178
|
+
*/
|
|
13179
|
+
getContentSize() {
|
|
13180
|
+
if (!this.contents) return 0;
|
|
13181
|
+
return this.contents.reduce((sum, node) => sum + node.paddedSize(), 0);
|
|
13182
|
+
}
|
|
13029
13183
|
/**
|
|
13030
13184
|
* `getEffectedCreatedAt` returns the creation time of the effected element.
|
|
13031
13185
|
*/
|
|
@@ -15236,10 +15390,19 @@ function fromElement(pbElement) {
|
|
|
15236
15390
|
}
|
|
15237
15391
|
function fromSchemaRules(pbRules) {
|
|
15238
15392
|
return pbRules.map((pbRule) => {
|
|
15239
|
-
|
|
15393
|
+
const rule = {
|
|
15240
15394
|
path: pbRule.path,
|
|
15241
15395
|
type: pbRule.type
|
|
15242
15396
|
};
|
|
15397
|
+
if (pbRule.treeNodes && pbRule.treeNodes.length > 0) {
|
|
15398
|
+
rule.treeNodes = pbRule.treeNodes.map((tn) => ({
|
|
15399
|
+
nodeType: tn.nodeType,
|
|
15400
|
+
content: tn.content,
|
|
15401
|
+
marks: tn.marks,
|
|
15402
|
+
group: tn.group
|
|
15403
|
+
}));
|
|
15404
|
+
}
|
|
15405
|
+
return rule;
|
|
15243
15406
|
});
|
|
15244
15407
|
}
|
|
15245
15408
|
function bytesToSnapshot(bytes) {
|
|
@@ -17953,6 +18116,313 @@ class History {
|
|
|
17953
18116
|
replace(this.undoStack);
|
|
17954
18117
|
replace(this.redoStack);
|
|
17955
18118
|
}
|
|
18119
|
+
/**
|
|
18120
|
+
* `reconcileTreeEdit` reconciles the tree edit operation.
|
|
18121
|
+
* Scan both undo/redo stacks and adjust tree edit operations
|
|
18122
|
+
* when a remote edit modifies the same tree.
|
|
18123
|
+
*/
|
|
18124
|
+
reconcileTreeEdit(parentCreatedAt, rangeFrom, rangeTo, contentSize) {
|
|
18125
|
+
const replace = (stack) => {
|
|
18126
|
+
for (const ops of stack) {
|
|
18127
|
+
for (const op of ops) {
|
|
18128
|
+
if (op instanceof TreeEditOperation && op.getParentCreatedAt().compare(parentCreatedAt) === 0) {
|
|
18129
|
+
op.reconcileOperation(rangeFrom, rangeTo, contentSize);
|
|
18130
|
+
}
|
|
18131
|
+
}
|
|
18132
|
+
}
|
|
18133
|
+
};
|
|
18134
|
+
replace(this.undoStack);
|
|
18135
|
+
replace(this.redoStack);
|
|
18136
|
+
}
|
|
18137
|
+
}
|
|
18138
|
+
function tokenize(expr) {
|
|
18139
|
+
const tokens = [];
|
|
18140
|
+
let i = 0;
|
|
18141
|
+
while (i < expr.length) {
|
|
18142
|
+
if (/\s/.test(expr[i])) {
|
|
18143
|
+
i++;
|
|
18144
|
+
continue;
|
|
18145
|
+
}
|
|
18146
|
+
if (expr[i] === "+") {
|
|
18147
|
+
tokens.push({ type: "plus", value: "+" });
|
|
18148
|
+
i++;
|
|
18149
|
+
} else if (expr[i] === "*") {
|
|
18150
|
+
tokens.push({ type: "star", value: "*" });
|
|
18151
|
+
i++;
|
|
18152
|
+
} else if (expr[i] === "?") {
|
|
18153
|
+
tokens.push({ type: "question", value: "?" });
|
|
18154
|
+
i++;
|
|
18155
|
+
} else if (expr[i] === "|") {
|
|
18156
|
+
tokens.push({ type: "pipe", value: "|" });
|
|
18157
|
+
i++;
|
|
18158
|
+
} else if (expr[i] === "(") {
|
|
18159
|
+
tokens.push({ type: "lparen", value: "(" });
|
|
18160
|
+
i++;
|
|
18161
|
+
} else if (expr[i] === ")") {
|
|
18162
|
+
tokens.push({ type: "rparen", value: ")" });
|
|
18163
|
+
i++;
|
|
18164
|
+
} else {
|
|
18165
|
+
let name2 = "";
|
|
18166
|
+
while (i < expr.length && /[a-zA-Z0-9_]/.test(expr[i])) {
|
|
18167
|
+
name2 += expr[i];
|
|
18168
|
+
i++;
|
|
18169
|
+
}
|
|
18170
|
+
if (name2) {
|
|
18171
|
+
tokens.push({ type: "name", value: name2 });
|
|
18172
|
+
} else {
|
|
18173
|
+
throw new Error(
|
|
18174
|
+
`Unexpected character '${expr[i]}' at position ${i} in content expression`
|
|
18175
|
+
);
|
|
18176
|
+
}
|
|
18177
|
+
}
|
|
18178
|
+
}
|
|
18179
|
+
return tokens;
|
|
18180
|
+
}
|
|
18181
|
+
function parseAlternatives(tokens, pos) {
|
|
18182
|
+
const seqs = [];
|
|
18183
|
+
let result = parseSequence(tokens, pos);
|
|
18184
|
+
seqs.push(result.expr);
|
|
18185
|
+
while (result.pos < tokens.length && tokens[result.pos]?.type === "pipe") {
|
|
18186
|
+
result = parseSequence(tokens, result.pos + 1);
|
|
18187
|
+
seqs.push(result.expr);
|
|
18188
|
+
}
|
|
18189
|
+
if (seqs.length === 1) {
|
|
18190
|
+
return { expr: seqs[0], pos: result.pos };
|
|
18191
|
+
}
|
|
18192
|
+
return { expr: { type: "alternative", children: seqs }, pos: result.pos };
|
|
18193
|
+
}
|
|
18194
|
+
function parseSequence(tokens, pos) {
|
|
18195
|
+
const elements = [];
|
|
18196
|
+
while (pos < tokens.length && tokens[pos].type !== "pipe" && tokens[pos].type !== "rparen") {
|
|
18197
|
+
const result = parseElement(tokens, pos);
|
|
18198
|
+
elements.push(result.expr);
|
|
18199
|
+
pos = result.pos;
|
|
18200
|
+
}
|
|
18201
|
+
if (elements.length === 1) {
|
|
18202
|
+
return { expr: elements[0], pos };
|
|
18203
|
+
}
|
|
18204
|
+
return { expr: { type: "sequence", children: elements }, pos };
|
|
18205
|
+
}
|
|
18206
|
+
function parseElement(tokens, pos) {
|
|
18207
|
+
const result = parseAtom(tokens, pos);
|
|
18208
|
+
let expr = result.expr;
|
|
18209
|
+
pos = result.pos;
|
|
18210
|
+
if (pos < tokens.length) {
|
|
18211
|
+
if (tokens[pos].type === "plus") {
|
|
18212
|
+
expr = { type: "repeat", children: [expr], min: 1, max: Infinity };
|
|
18213
|
+
pos++;
|
|
18214
|
+
} else if (tokens[pos].type === "star") {
|
|
18215
|
+
expr = { type: "repeat", children: [expr], min: 0, max: Infinity };
|
|
18216
|
+
pos++;
|
|
18217
|
+
} else if (tokens[pos].type === "question") {
|
|
18218
|
+
expr = { type: "repeat", children: [expr], min: 0, max: 1 };
|
|
18219
|
+
pos++;
|
|
18220
|
+
}
|
|
18221
|
+
}
|
|
18222
|
+
return { expr, pos };
|
|
18223
|
+
}
|
|
18224
|
+
function parseAtom(tokens, pos) {
|
|
18225
|
+
if (pos >= tokens.length) {
|
|
18226
|
+
throw new Error("Unexpected end of content expression");
|
|
18227
|
+
}
|
|
18228
|
+
if (tokens[pos].type === "lparen") {
|
|
18229
|
+
const result = parseAlternatives(tokens, pos + 1);
|
|
18230
|
+
if (result.pos >= tokens.length || tokens[result.pos]?.type !== "rparen") {
|
|
18231
|
+
throw new Error("Unmatched parenthesis in content expression");
|
|
18232
|
+
}
|
|
18233
|
+
return { expr: result.expr, pos: result.pos + 1 };
|
|
18234
|
+
}
|
|
18235
|
+
if (tokens[pos].type !== "name") {
|
|
18236
|
+
throw new Error(
|
|
18237
|
+
`Expected node type name but got '${tokens[pos].value}' in content expression`
|
|
18238
|
+
);
|
|
18239
|
+
}
|
|
18240
|
+
return { expr: { type: "node", nodeType: tokens[pos].value }, pos: pos + 1 };
|
|
18241
|
+
}
|
|
18242
|
+
function parseContentExpression(expr) {
|
|
18243
|
+
const trimmed = expr.trim();
|
|
18244
|
+
if (trimmed.length === 0) {
|
|
18245
|
+
return { type: "sequence", children: [] };
|
|
18246
|
+
}
|
|
18247
|
+
const tokens = tokenize(trimmed);
|
|
18248
|
+
const result = parseAlternatives(tokens, 0);
|
|
18249
|
+
if (result.pos < tokens.length) {
|
|
18250
|
+
throw new Error(
|
|
18251
|
+
`Unexpected token '${tokens[result.pos].value}' at position ${result.pos} in content expression`
|
|
18252
|
+
);
|
|
18253
|
+
}
|
|
18254
|
+
return result.expr;
|
|
18255
|
+
}
|
|
18256
|
+
function matchExpr(expr, types, positions, resolver) {
|
|
18257
|
+
switch (expr.type) {
|
|
18258
|
+
case "node": {
|
|
18259
|
+
const allowed = resolver(expr.nodeType);
|
|
18260
|
+
const result = /* @__PURE__ */ new Set();
|
|
18261
|
+
for (const pos of positions) {
|
|
18262
|
+
if (pos < types.length && allowed.includes(types[pos])) {
|
|
18263
|
+
result.add(pos + 1);
|
|
18264
|
+
}
|
|
18265
|
+
}
|
|
18266
|
+
return result;
|
|
18267
|
+
}
|
|
18268
|
+
case "sequence": {
|
|
18269
|
+
let current = positions;
|
|
18270
|
+
for (const child of expr.children) {
|
|
18271
|
+
current = matchExpr(child, types, current, resolver);
|
|
18272
|
+
if (current.size === 0) {
|
|
18273
|
+
return current;
|
|
18274
|
+
}
|
|
18275
|
+
}
|
|
18276
|
+
return current;
|
|
18277
|
+
}
|
|
18278
|
+
case "alternative": {
|
|
18279
|
+
const result = /* @__PURE__ */ new Set();
|
|
18280
|
+
for (const child of expr.children) {
|
|
18281
|
+
for (const pos of matchExpr(child, types, positions, resolver)) {
|
|
18282
|
+
result.add(pos);
|
|
18283
|
+
}
|
|
18284
|
+
}
|
|
18285
|
+
return result;
|
|
18286
|
+
}
|
|
18287
|
+
case "repeat": {
|
|
18288
|
+
const min = expr.min ?? 0;
|
|
18289
|
+
const max = expr.max ?? Infinity;
|
|
18290
|
+
let current = positions;
|
|
18291
|
+
const reachable = /* @__PURE__ */ new Set();
|
|
18292
|
+
if (min === 0) {
|
|
18293
|
+
for (const p of current) reachable.add(p);
|
|
18294
|
+
}
|
|
18295
|
+
for (let count = 1; count <= max; count++) {
|
|
18296
|
+
const next = matchExpr(expr.children[0], types, current, resolver);
|
|
18297
|
+
const newPositions = /* @__PURE__ */ new Set();
|
|
18298
|
+
for (const p of next) {
|
|
18299
|
+
if (!reachable.has(p) || count < min) {
|
|
18300
|
+
newPositions.add(p);
|
|
18301
|
+
}
|
|
18302
|
+
}
|
|
18303
|
+
if (newPositions.size === 0) break;
|
|
18304
|
+
current = newPositions;
|
|
18305
|
+
if (count >= min) {
|
|
18306
|
+
for (const p of current) reachable.add(p);
|
|
18307
|
+
}
|
|
18308
|
+
}
|
|
18309
|
+
return reachable;
|
|
18310
|
+
}
|
|
18311
|
+
}
|
|
18312
|
+
return /* @__PURE__ */ new Set();
|
|
18313
|
+
}
|
|
18314
|
+
function matchContentExpression(expr, childTypes, groupResolver) {
|
|
18315
|
+
const positions = matchExpr(expr, childTypes, /* @__PURE__ */ new Set([0]), groupResolver);
|
|
18316
|
+
if (positions.has(childTypes.length)) {
|
|
18317
|
+
return { valid: true };
|
|
18318
|
+
}
|
|
18319
|
+
if (positions.size === 0) {
|
|
18320
|
+
return { valid: false, error: "Children do not match content expression" };
|
|
18321
|
+
}
|
|
18322
|
+
return {
|
|
18323
|
+
valid: false,
|
|
18324
|
+
error: `Unexpected child at position ${Math.max(...positions)}`
|
|
18325
|
+
};
|
|
18326
|
+
}
|
|
18327
|
+
function buildGroupResolver(treeNodes) {
|
|
18328
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
18329
|
+
for (const node of treeNodes) {
|
|
18330
|
+
if (node.group) {
|
|
18331
|
+
const groups = node.group.split(/\s+/);
|
|
18332
|
+
for (const group of groups) {
|
|
18333
|
+
if (!groupMap.has(group)) {
|
|
18334
|
+
groupMap.set(group, []);
|
|
18335
|
+
}
|
|
18336
|
+
groupMap.get(group).push(node.nodeType);
|
|
18337
|
+
}
|
|
18338
|
+
}
|
|
18339
|
+
}
|
|
18340
|
+
return (name2) => {
|
|
18341
|
+
if (groupMap.has(name2)) {
|
|
18342
|
+
return groupMap.get(name2);
|
|
18343
|
+
}
|
|
18344
|
+
return [name2];
|
|
18345
|
+
};
|
|
18346
|
+
}
|
|
18347
|
+
function validateTreeAgainstSchema(tree, treeNodes) {
|
|
18348
|
+
const ruleMap = /* @__PURE__ */ new Map();
|
|
18349
|
+
for (const node of treeNodes) {
|
|
18350
|
+
ruleMap.set(node.nodeType, node);
|
|
18351
|
+
}
|
|
18352
|
+
const resolver = buildGroupResolver(treeNodes);
|
|
18353
|
+
const root = tree.getRoot();
|
|
18354
|
+
return validateNode(root, ruleMap, resolver);
|
|
18355
|
+
}
|
|
18356
|
+
function validateNode(node, ruleMap, resolver) {
|
|
18357
|
+
const rule = ruleMap.get(node.type);
|
|
18358
|
+
if (!rule) {
|
|
18359
|
+
return {
|
|
18360
|
+
valid: false,
|
|
18361
|
+
error: `Unknown node type: "${node.type}"`
|
|
18362
|
+
};
|
|
18363
|
+
}
|
|
18364
|
+
if (node.isText) {
|
|
18365
|
+
return { valid: true };
|
|
18366
|
+
}
|
|
18367
|
+
const children = node.children;
|
|
18368
|
+
for (const child of children) {
|
|
18369
|
+
if (!child.isText && !ruleMap.has(child.type)) {
|
|
18370
|
+
return {
|
|
18371
|
+
valid: false,
|
|
18372
|
+
error: `Unknown node type: "${child.type}"`
|
|
18373
|
+
};
|
|
18374
|
+
}
|
|
18375
|
+
}
|
|
18376
|
+
if (rule.content !== void 0) {
|
|
18377
|
+
const childTypes = children.map((child) => child.type);
|
|
18378
|
+
const expr = parseContentExpression(rule.content);
|
|
18379
|
+
const result = matchContentExpression(expr, childTypes, resolver);
|
|
18380
|
+
if (!result.valid) {
|
|
18381
|
+
return {
|
|
18382
|
+
valid: false,
|
|
18383
|
+
error: `Node "${node.type}": ${result.error}`
|
|
18384
|
+
};
|
|
18385
|
+
}
|
|
18386
|
+
}
|
|
18387
|
+
if (rule.marks) {
|
|
18388
|
+
const allowedMarks = rule.marks.split(/\s+/);
|
|
18389
|
+
const markResult = validateChildMarks(node, children, allowedMarks);
|
|
18390
|
+
if (!markResult.valid) {
|
|
18391
|
+
return markResult;
|
|
18392
|
+
}
|
|
18393
|
+
}
|
|
18394
|
+
for (const child of children) {
|
|
18395
|
+
if (!child.isText) {
|
|
18396
|
+
const result = validateNode(child, ruleMap, resolver);
|
|
18397
|
+
if (!result.valid) {
|
|
18398
|
+
return result;
|
|
18399
|
+
}
|
|
18400
|
+
}
|
|
18401
|
+
}
|
|
18402
|
+
return { valid: true };
|
|
18403
|
+
}
|
|
18404
|
+
function validateChildMarks(parent, children, allowedMarks) {
|
|
18405
|
+
for (const child of children) {
|
|
18406
|
+
if (!child.isText) {
|
|
18407
|
+
continue;
|
|
18408
|
+
}
|
|
18409
|
+
if (!child.attrs) {
|
|
18410
|
+
continue;
|
|
18411
|
+
}
|
|
18412
|
+
for (const rhtNode of child.attrs) {
|
|
18413
|
+
if (rhtNode.isRemoved()) {
|
|
18414
|
+
continue;
|
|
18415
|
+
}
|
|
18416
|
+
const markName = rhtNode.getKey();
|
|
18417
|
+
if (!allowedMarks.includes(markName)) {
|
|
18418
|
+
return {
|
|
18419
|
+
valid: false,
|
|
18420
|
+
error: `Node "${parent.type}": text child has disallowed mark "${markName}". Allowed marks: ${allowedMarks.join(", ")}`
|
|
18421
|
+
};
|
|
18422
|
+
}
|
|
18423
|
+
}
|
|
18424
|
+
}
|
|
18425
|
+
return { valid: true };
|
|
17956
18426
|
}
|
|
17957
18427
|
function validateYorkieRuleset(data, ruleset) {
|
|
17958
18428
|
const errors = [];
|
|
@@ -18035,7 +18505,7 @@ function validateValue(value, rule) {
|
|
|
18035
18505
|
};
|
|
18036
18506
|
}
|
|
18037
18507
|
break;
|
|
18038
|
-
case "yorkie.Tree":
|
|
18508
|
+
case "yorkie.Tree": {
|
|
18039
18509
|
if (!(value instanceof CRDTTree)) {
|
|
18040
18510
|
return {
|
|
18041
18511
|
valid: false,
|
|
@@ -18047,7 +18517,20 @@ function validateValue(value, rule) {
|
|
|
18047
18517
|
]
|
|
18048
18518
|
};
|
|
18049
18519
|
}
|
|
18520
|
+
if ("treeNodes" in rule && rule.treeNodes && rule.treeNodes.length > 0) {
|
|
18521
|
+
const treeResult = validateTreeAgainstSchema(
|
|
18522
|
+
value,
|
|
18523
|
+
rule.treeNodes
|
|
18524
|
+
);
|
|
18525
|
+
if (!treeResult.valid) {
|
|
18526
|
+
return {
|
|
18527
|
+
valid: false,
|
|
18528
|
+
errors: [{ path: rule.path, message: treeResult.error }]
|
|
18529
|
+
};
|
|
18530
|
+
}
|
|
18531
|
+
}
|
|
18050
18532
|
break;
|
|
18533
|
+
}
|
|
18051
18534
|
case "yorkie.Counter":
|
|
18052
18535
|
if (!(value instanceof CRDTCounter)) {
|
|
18053
18536
|
return {
|
|
@@ -18906,6 +19389,15 @@ class Document {
|
|
|
18906
19389
|
op.getContent()?.length ?? 0
|
|
18907
19390
|
);
|
|
18908
19391
|
}
|
|
19392
|
+
if (op instanceof TreeEditOperation) {
|
|
19393
|
+
const [from, to] = op.normalizePos();
|
|
19394
|
+
this.internalHistory.reconcileTreeEdit(
|
|
19395
|
+
op.getParentCreatedAt(),
|
|
19396
|
+
from,
|
|
19397
|
+
to,
|
|
19398
|
+
op.getContentSize()
|
|
19399
|
+
);
|
|
19400
|
+
}
|
|
18909
19401
|
}
|
|
18910
19402
|
this.changeID = this.changeID.syncClocks(change.getID());
|
|
18911
19403
|
if (opInfos.length) {
|
|
@@ -18952,11 +19444,6 @@ class Document {
|
|
|
18952
19444
|
onlineClients.add(clientID);
|
|
18953
19445
|
}
|
|
18954
19446
|
this.setOnlineClients(onlineClients);
|
|
18955
|
-
for (const clientID of Array.from(this.presences.keys())) {
|
|
18956
|
-
if (clientID !== this.changeID.getActorID() && !onlineClients.has(clientID)) {
|
|
18957
|
-
this.presences.delete(clientID);
|
|
18958
|
-
}
|
|
18959
|
-
}
|
|
18960
19447
|
this.publish([
|
|
18961
19448
|
{
|
|
18962
19449
|
type: "initialized",
|
|
@@ -19451,7 +19938,7 @@ function createAuthInterceptor(apiKey, token) {
|
|
|
19451
19938
|
};
|
|
19452
19939
|
}
|
|
19453
19940
|
const name$1 = "@yorkie-js/sdk";
|
|
19454
|
-
const version$1 = "0.
|
|
19941
|
+
const version$1 = "0.7.1";
|
|
19455
19942
|
const pkg$1 = {
|
|
19456
19943
|
name: name$1,
|
|
19457
19944
|
version: version$1
|
|
@@ -21306,7 +21793,7 @@ if (typeof globalThis !== "undefined") {
|
|
|
21306
21793
|
};
|
|
21307
21794
|
}
|
|
21308
21795
|
const name = "@yorkie-js/react";
|
|
21309
|
-
const version = "0.
|
|
21796
|
+
const version = "0.7.1";
|
|
21310
21797
|
const pkg = {
|
|
21311
21798
|
name,
|
|
21312
21799
|
version
|