@yorkie-js/react 0.7.7 → 0.7.9
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/README.md +1 -1
- package/dist/yorkie-js-react.d.ts +131 -6
- package/dist/yorkie-js-react.es.js +394 -88
- package/dist/yorkie-js-react.es.js.map +1 -1
- package/dist/yorkie-js-react.js +394 -88
- package/dist/yorkie-js-react.js.map +1 -1
- package/package.json +3 -3
|
@@ -360,7 +360,7 @@ function isScalarZeroValue(type, value) {
|
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
const IMPLICIT$3 = 2;
|
|
363
|
-
const unsafeLocal = Symbol.for("reflect unsafe local");
|
|
363
|
+
const unsafeLocal = /* @__PURE__ */ Symbol.for("reflect unsafe local");
|
|
364
364
|
function unsafeOneofCase(target, oneof) {
|
|
365
365
|
const c = target[oneof.localName].case;
|
|
366
366
|
if (c === void 0) {
|
|
@@ -586,7 +586,7 @@ function convertObjectValues(obj, fn) {
|
|
|
586
586
|
}
|
|
587
587
|
return ret;
|
|
588
588
|
}
|
|
589
|
-
const tokenZeroMessageField = Symbol();
|
|
589
|
+
const tokenZeroMessageField = /* @__PURE__ */ Symbol();
|
|
590
590
|
const messagePrototypes = /* @__PURE__ */ new WeakMap();
|
|
591
591
|
function createZeroMessage(desc) {
|
|
592
592
|
let msg;
|
|
@@ -688,7 +688,7 @@ class FieldError extends Error {
|
|
|
688
688
|
function isFieldError(arg) {
|
|
689
689
|
return arg instanceof Error && errorNames.includes(arg.name) && "field" in arg && typeof arg.field == "function";
|
|
690
690
|
}
|
|
691
|
-
const symbol = Symbol.for("@bufbuild/protobuf/text-encoding");
|
|
691
|
+
const symbol = /* @__PURE__ */ Symbol.for("@bufbuild/protobuf/text-encoding");
|
|
692
692
|
function getTextEncoding() {
|
|
693
693
|
if (globalThis[symbol] == void 0) {
|
|
694
694
|
const te = new globalThis.TextEncoder();
|
|
@@ -4056,7 +4056,7 @@ function readScalarField(msg, field, json) {
|
|
|
4056
4056
|
msg.set(field, scalarValue);
|
|
4057
4057
|
}
|
|
4058
4058
|
}
|
|
4059
|
-
const tokenIgnoredUnknownEnum = Symbol();
|
|
4059
|
+
const tokenIgnoredUnknownEnum = /* @__PURE__ */ Symbol();
|
|
4060
4060
|
function readEnum(desc, json, ignoreUnknownFields, nullAsZeroValue) {
|
|
4061
4061
|
if (json === null) {
|
|
4062
4062
|
if (desc.typeName == "google.protobuf.NullValue") {
|
|
@@ -4082,7 +4082,7 @@ function readEnum(desc, json, ignoreUnknownFields, nullAsZeroValue) {
|
|
|
4082
4082
|
}
|
|
4083
4083
|
throw new Error(`cannot decode ${desc} from JSON: ${formatVal(json)}`);
|
|
4084
4084
|
}
|
|
4085
|
-
const tokenNull = Symbol();
|
|
4085
|
+
const tokenNull = /* @__PURE__ */ Symbol();
|
|
4086
4086
|
function scalarFromJson(field, json, nullAsZeroValue) {
|
|
4087
4087
|
if (json === null) {
|
|
4088
4088
|
if (nullAsZeroValue) {
|
|
@@ -5790,41 +5790,41 @@ function createGrpcWebTransport(options) {
|
|
|
5790
5790
|
}
|
|
5791
5791
|
};
|
|
5792
5792
|
}
|
|
5793
|
-
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBItkaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGqQBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDQoFYWN0b3IYBCABKAkakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwinwsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrYAQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSFQoNaGxsX3JlZ2lzdGVycxgHIAEoDEoECAYQBxqpAQoEVHJlZRIiCgVub2RlcxgBIAMoCzITLnlvcmtpZS52MS5UcmVlTm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXRCBgoEYm9keSI/CgdSSFROb2RlEgsKA2tleRgBIAEoCRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50Iu4BCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50EjIKE3Bvc2l0aW9uX2NyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIwChFwb3NpdGlvbl9tb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EjIKE3Bvc2l0aW9uX3JlbW92ZWRfYXQYBSABKAsyFS55b3JraWUudjEuVGltZVRpY2tldCJYCghOb2RlQXR0chINCgV2YWx1ZRgBIAEoCRIpCgp1cGRhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgDIAEoCCKUAgoIVGV4dE5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVGV4dE5vZGVJRBINCgV2YWx1ZRgCIAEoCRIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLaW5zX3ByZXZfaWQYBCABKAsyFS55b3JraWUudjEuVGV4dE5vZGVJRBI3CgphdHRyaWJ1dGVzGAUgAygLMiMueW9ya2llLnYxLlRleHROb2RlLkF0dHJpYnV0ZXNFbnRyeRpGCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLk5vZGVBdHRyOgI4ASJHCgpUZXh0Tm9kZUlEEikKCmNyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIOCgZvZmZzZXQYAiABKAUiswMKCFRyZWVOb2RlEiEKAmlkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDAoEdHlwZRgCIAEoCRINCgV2YWx1ZRgDIAEoCRIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLaW5zX3ByZXZfaWQYBSABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIqCgtpbnNfbmV4dF9pZBgGIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEg0KBWRlcHRoGAcgASgFEjcKCmF0dHJpYnV0ZXMYCCADKAsyIy55b3JraWUudjEuVHJlZU5vZGUuQXR0cmlidXRlc0VudHJ5EioKC21lcmdlZF9mcm9tGAkgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSKAoJbWVyZ2VkX2F0GAogASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiMQoJVHJlZU5vZGVzEiQKB2NvbnRlbnQYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUiRwoKVHJlZU5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFImMKB1RyZWVQb3MSKAoJcGFyZW50X2lkGAEgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSLgoPbGVmdF9zaWJsaW5nX2lkGAIgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQiawoEVXNlchIKCgJpZBgBIAEoCRIVCg1hdXRoX3Byb3ZpZGVyGAIgASgJEhAKCHVzZXJuYW1lGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokBCgZNZW1iZXISCgoCaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJEhAKCHVzZXJuYW1lGAQgASgJEgwKBHJvbGUYBSABKAkSLgoKaW52aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QYKB1Byb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJEhIKCnNlY3JldF9rZXkYBCABKAkSGAoQYXV0aF93ZWJob29rX3VybBgFIAEoCRIcChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgGIAMoCRIgChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYESABKAQSJgoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBIgASgJEiYKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgTIAEoCRIkChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBQgASgJEhkKEWV2ZW50X3dlYmhvb2tfdXJsGAcgASgJEhwKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAggAygJEiEKGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYFSABKAQSJwofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgWIAEoCRInCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBcgASgJEiUKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBggASgJEiMKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgJIAEoCRIaChJzbmFwc2hvdF90aHJlc2hvbGQYGSABKAMSGQoRc25hcHNob3RfaW50ZXJ2YWwYGiABKAMSJAocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgKIAEoBRIkChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAsgASgFEh0KFW1heF9zaXplX3Blcl9kb2N1bWVudBgPIAEoBRIYChByZW1vdmVfb25fZGV0YWNoGBAgASgIEh0KFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgbIAEoCBIXCg9hbGxvd2VkX29yaWdpbnMYDiADKAkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoLTWV0cmljUG9pbnQSEQoJdGltZXN0YW1wGAEgASgDEg0KBXZhbHVlGAIgASgFIqMMChZVcGRhdGFibGVQcm9qZWN0RmllbGRzEioKBG5hbWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNgoQYXV0aF93ZWJob29rX3VybBgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRhdXRoX3dlYmhvb2tfbWV0aG9kcxgDIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkF1dGhXZWJob29rTWV0aG9kcxI+ChhhdXRoX3dlYmhvb2tfbWF4X3JldHJpZXMYDCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRAoeYXV0aF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkQKHmF1dGhfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJCChxhdXRoX3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEWV2ZW50X3dlYmhvb2tfdXJsGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGV2ZW50X3dlYmhvb2tfZXZlbnRzGAUgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuRXZlbnRXZWJob29rRXZlbnRzEj8KGWV2ZW50X3dlYmhvb2tfbWF4X3JldHJpZXMYECABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSRQofZXZlbnRfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJFCh9ldmVudF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkMKHWV2ZW50X3dlYmhvb2tfcmVxdWVzdF90aW1lb3V0GBMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjcKEnNuYXBzaG90X3RocmVzaG9sZBgUIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjYKEXNuYXBzaG90X2ludGVydmFsGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSQQobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkEKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYByABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRJBChxtYXhfYXR0YWNobWVudHNfcGVyX2RvY3VtZW50GAggASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSOgoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAogASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNAoQcmVtb3ZlX29uX2RldGFjaBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRJJCg9hbGxvd2VkX29yaWdpbnMYCSABKAsyMC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BbGxvd2VkT3JpZ2lucxolChJBdXRoV2ViaG9va01ldGhvZHMSDwoHbWV0aG9kcxgBIAMoCRokChJFdmVudFdlYmhvb2tFdmVudHMSDgoGZXZlbnRzGAEgAygJGiEKDkFsbG93ZWRPcmlnaW5zEg8KB29yaWdpbnMYASADKAkipwMKD0RvY3VtZW50U3VtbWFyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEcm9vdBgDIAEoCRIYChBhdHRhY2hlZF9jbGllbnRzGAcgASgFEikKDWRvY3VtZW50X3NpemUYCCABKAsyEi55b3JraWUudjEuRG9jU2l6ZRISCgpzY2hlbWFfa2V5GAkgASgJEjwKCXByZXNlbmNlcxgKIAMoCzIpLnlvcmtpZS52MS5Eb2N1bWVudFN1bW1hcnkuUHJlc2VuY2VzRW50cnkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYWNjZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi2gEKDlByZXNlbmNlQ2hhbmdlEjIKBHR5cGUYASABKA4yJC55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UuQ2hhbmdlVHlwZRIlCghwcmVzZW5jZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZSJtCgpDaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASEwoPQ0hBTkdFX1RZUEVfUFVUEAESFgoSQ0hBTkdFX1RZUEVfREVMRVRFEAISFQoRQ0hBTkdFX1RZUEVfQ0xFQVIQAyJkCghQcmVzZW5jZRIrCgRkYXRhGAEgAygLMh0ueW9ya2llLnYxLlByZXNlbmNlLkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0Cg5DaGFubmVsU3VtbWFyeRILCgNrZXkYASABKAkSFQoNc2Vzc2lvbl9jb3VudBgCIAEoBSI0CgpDaGVja3BvaW50EhIKCnNlcnZlcl9zZXEYASABKAMSEgoKY2xpZW50X3NlcRgCIAEoDSJhCgtUZXh0Tm9kZVBvcxIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFEhcKD3JlbGF0aXZlX29mZnNldBgDIAEoBSJCCgpUaW1lVGlja2V0Eg8KB2xhbXBvcnQYASABKAMSEQoJZGVsaW1pdGVyGAIgASgNEhAKCGFjdG9yX2lkGAMgASgMIi4KDERvY0V2ZW50Qm9keRINCgV0b3BpYxgBIAEoCRIPCgdwYXlsb2FkGAIgASgMImsKCERvY0V2ZW50EiUKBHR5cGUYASABKA4yFy55b3JraWUudjEuRG9jRXZlbnRUeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIlCgRib2R5GAMgASgLMhcueW9ya2llLnYxLkRvY0V2ZW50Qm9keSLWAQoMQ2hhbm5lbEV2ZW50EioKBHR5cGUYASABKA4yHC55b3JraWUudjEuQ2hhbm5lbEV2ZW50LlR5cGUSEQoJcHVibGlzaGVyGAIgASgJEhUKDXNlc3Npb25fY291bnQYAyABKAMSCwoDc2VxGAQgASgDEg0KBXRvcGljGAUgASgJEg8KB3BheWxvYWQYBiABKAwiQwoEVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASEQoNVFlQRV9QUkVTRU5DRRABEhIKDlRZUEVfQlJPQURDQVNUEAIiJgoIRGF0YVNpemUSDAoEZGF0YRgBIAEoBRIMCgRtZXRhGAIgASgFIk0KB0RvY1NpemUSIQoEbGl2ZRgBIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZRIfCgJnYxgCIAEoCzITLnlvcmtpZS52MS5EYXRhU2l6ZSKRAQoGU2NoZW1hEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDwoHdmVyc2lvbhgDIAEoBRIMCgRib2R5GAQgASgJEh4KBXJ1bGVzGAUgAygLMg8ueW9ya2llLnYxLlJ1bGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiUAoMVHJlZU5vZGVSdWxlEhEKCW5vZGVfdHlwZRgBIAEoCRIPCgdjb250ZW50GAIgASgJEg0KBW1hcmtzGAMgASgJEg0KBWdyb3VwGAQgASgJIk8KBFJ1bGUSDAoEcGF0aBgBIAEoCRIMCgR0eXBlGAIgASgJEisKCnRyZWVfbm9kZXMYAyADKAsyFy55b3JraWUudjEuVHJlZU5vZGVSdWxlIoMBCg9SZXZpc2lvblN1bW1hcnkSCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIc25hcHNob3QYBCABKAkSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAq/AIKCVZhbHVlVHlwZRITCg9WQUxVRV9UWVBFX05VTEwQABIWChJWQUxVRV9UWVBFX0JPT0xFQU4QARIWChJWQUxVRV9UWVBFX0lOVEVHRVIQAhITCg9WQUxVRV9UWVBFX0xPTkcQAxIVChFWQUxVRV9UWVBFX0RPVUJMRRAEEhUKEVZBTFVFX1RZUEVfU1RSSU5HEAUSFAoQVkFMVUVfVFlQRV9CWVRFUxAGEhMKD1ZBTFVFX1RZUEVfREFURRAHEhoKFlZBTFVFX1RZUEVfSlNPTl9PQkpFQ1QQCBIZChVWQUxVRV9UWVBFX0pTT05fQVJSQVkQCRITCg9WQUxVRV9UWVBFX1RFWFQQChIaChZWQUxVRV9UWVBFX0lOVEVHRVJfQ05UEAsSFwoTVkFMVUVfVFlQRV9MT05HX0NOVBAMEhMKD1ZBTFVFX1RZUEVfVFJFRRANEiAKHFZBTFVFX1RZUEVfSU5URUdFUl9ERURVUF9DTlQQDiIECA8QDyqmAQoMRG9jRXZlbnRUeXBlEiMKH0RPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0NIQU5HRUQQABIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9XQVRDSEVEEAESJQohRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfVU5XQVRDSEVEEAISJQohRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfQlJPQURDQVNUEANCRQoRZGV2LnlvcmtpZS5hcGkudjFQAVouZ2l0aHViLmNvbS95b3JraWUtdGVhbS95b3JraWUvYXBpL3lvcmtpZS92MTt2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5794
|
-
const SnapshotSchema = /* @__PURE__ */ messageDesc(
|
|
5795
|
-
const ChangePackSchema = /* @__PURE__ */ messageDesc(
|
|
5796
|
-
const ChangeSchema = /* @__PURE__ */ messageDesc(
|
|
5797
|
-
const ChangeIDSchema = /* @__PURE__ */ messageDesc(
|
|
5798
|
-
const VersionVectorSchema = /* @__PURE__ */ messageDesc(
|
|
5799
|
-
const OperationSchema = /* @__PURE__ */ messageDesc(
|
|
5800
|
-
const Operation_SetSchema = /* @__PURE__ */ messageDesc(
|
|
5801
|
-
const Operation_AddSchema = /* @__PURE__ */ messageDesc(
|
|
5802
|
-
const Operation_MoveSchema = /* @__PURE__ */ messageDesc(
|
|
5803
|
-
const Operation_RemoveSchema = /* @__PURE__ */ messageDesc(
|
|
5804
|
-
const Operation_EditSchema = /* @__PURE__ */ messageDesc(
|
|
5805
|
-
const Operation_StyleSchema = /* @__PURE__ */ messageDesc(
|
|
5806
|
-
const Operation_IncreaseSchema = /* @__PURE__ */ messageDesc(
|
|
5807
|
-
const Operation_TreeEditSchema = /* @__PURE__ */ messageDesc(
|
|
5808
|
-
const Operation_TreeStyleSchema = /* @__PURE__ */ messageDesc(
|
|
5809
|
-
const Operation_ArraySetSchema = /* @__PURE__ */ messageDesc(
|
|
5810
|
-
const JSONElementSimpleSchema = /* @__PURE__ */ messageDesc(
|
|
5811
|
-
const JSONElementSchema = /* @__PURE__ */ messageDesc(
|
|
5812
|
-
const JSONElement_JSONObjectSchema = /* @__PURE__ */ messageDesc(
|
|
5813
|
-
const JSONElement_JSONArraySchema = /* @__PURE__ */ messageDesc(
|
|
5814
|
-
const JSONElement_PrimitiveSchema = /* @__PURE__ */ messageDesc(
|
|
5815
|
-
const JSONElement_TextSchema = /* @__PURE__ */ messageDesc(
|
|
5816
|
-
const JSONElement_CounterSchema = /* @__PURE__ */ messageDesc(
|
|
5817
|
-
const JSONElement_TreeSchema = /* @__PURE__ */ messageDesc(
|
|
5818
|
-
const RHTNodeSchema = /* @__PURE__ */ messageDesc(
|
|
5819
|
-
const RGANodeSchema = /* @__PURE__ */ messageDesc(
|
|
5820
|
-
const NodeAttrSchema = /* @__PURE__ */ messageDesc(
|
|
5821
|
-
const TextNodeSchema = /* @__PURE__ */ messageDesc(
|
|
5822
|
-
const TextNodeIDSchema = /* @__PURE__ */ messageDesc(
|
|
5823
|
-
const TreeNodeSchema = /* @__PURE__ */ messageDesc(
|
|
5824
|
-
const TreeNodesSchema = /* @__PURE__ */ messageDesc(
|
|
5825
|
-
const TreeNodeIDSchema = /* @__PURE__ */ messageDesc(
|
|
5826
|
-
const TreePosSchema = /* @__PURE__ */ messageDesc(
|
|
5827
|
-
const PresenceChangeSchema = /* @__PURE__ */ messageDesc(
|
|
5793
|
+
const file_yorkie_v1_resources = /* @__PURE__ */ fileDesc("Chl5b3JraWUvdjEvcmVzb3VyY2VzLnByb3RvEgl5b3JraWUudjEirgEKCFNuYXBzaG90EiQKBHJvb3QYASABKAsyFi55b3JraWUudjEuSlNPTkVsZW1lbnQSNQoJcHJlc2VuY2VzGAIgAygLMiIueW9ya2llLnYxLlNuYXBzaG90LlByZXNlbmNlc0VudHJ5GkUKDlByZXNlbmNlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5QcmVzZW5jZToCOAEi+wEKCkNoYW5nZVBhY2sSFAoMZG9jdW1lbnRfa2V5GAEgASgJEikKCmNoZWNrcG9pbnQYAiABKAsyFS55b3JraWUudjEuQ2hlY2twb2ludBIQCghzbmFwc2hvdBgDIAEoDBIiCgdjaGFuZ2VzGAQgAygLMhEueW9ya2llLnYxLkNoYW5nZRIwChFtaW5fc3luY2VkX3RpY2tldBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhIKCmlzX3JlbW92ZWQYBiABKAgSMAoOdmVyc2lvbl92ZWN0b3IYByABKAsyGC55b3JraWUudjEuVmVyc2lvblZlY3RvciKYAQoGQ2hhbmdlEh8KAmlkGAEgASgLMhMueW9ya2llLnYxLkNoYW5nZUlEEg8KB21lc3NhZ2UYAiABKAkSKAoKb3BlcmF0aW9ucxgDIAMoCzIULnlvcmtpZS52MS5PcGVyYXRpb24SMgoPcHJlc2VuY2VfY2hhbmdlGAQgASgLMhkueW9ya2llLnYxLlByZXNlbmNlQ2hhbmdlIocBCghDaGFuZ2VJRBISCgpjbGllbnRfc2VxGAEgASgNEhIKCnNlcnZlcl9zZXEYAiABKAMSDwoHbGFtcG9ydBgDIAEoAxIQCghhY3Rvcl9pZBgEIAEoDBIwCg52ZXJzaW9uX3ZlY3RvchgFIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yInQKDVZlcnNpb25WZWN0b3ISNAoGdmVjdG9yGAEgAygLMiQueW9ya2llLnYxLlZlcnNpb25WZWN0b3IuVmVjdG9yRW50cnkaLQoLVmVjdG9yRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ASLZGgoJT3BlcmF0aW9uEicKA3NldBgBIAEoCzIYLnlvcmtpZS52MS5PcGVyYXRpb24uU2V0SAASJwoDYWRkGAIgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5BZGRIABIpCgRtb3ZlGAMgASgLMhkueW9ya2llLnYxLk9wZXJhdGlvbi5Nb3ZlSAASLQoGcmVtb3ZlGAQgASgLMhsueW9ya2llLnYxLk9wZXJhdGlvbi5SZW1vdmVIABIpCgRlZGl0GAUgASgLMhkueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0SAASKwoFc3R5bGUYByABKAsyGi55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlSAASMQoIaW5jcmVhc2UYCCABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLkluY3JlYXNlSAASMgoJdHJlZV9lZGl0GAkgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlRWRpdEgAEjQKCnRyZWVfc3R5bGUYCiABKAsyHi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZUgAEjIKCWFycmF5X3NldBgLIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uQXJyYXlTZXRIABqdAQoDU2V0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSCwoDa2V5GAIgASgJEisKBXZhbHVlGAMgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQawAEKA0FkZBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAMgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQavwEKBE1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIuCg9wcmV2X2NyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqRAQoGUmVtb3ZlEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQa2QMKBEVkaXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIkCgRmcm9tGAIgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zEiIKAnRvGAMgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zElMKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAQgAygLMjIueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIPCgdjb250ZW50GAUgASgJEioKC2V4ZWN1dGVkX2F0GAYgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSPQoKYXR0cmlidXRlcxgHIAMoCzIpLnlvcmtpZS52MS5PcGVyYXRpb24uRWRpdC5BdHRyaWJ1dGVzRW50cnkaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARrpAwoFU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIkCgRmcm9tGAIgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zEiIKAnRvGAMgASgLMhYueW9ya2llLnYxLlRleHROb2RlUG9zEj4KCmF0dHJpYnV0ZXMYBCADKAsyKi55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkF0dHJpYnV0ZXNFbnRyeRIqCgtleGVjdXRlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0ElQKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAYgAygLMjMueW9ya2llLnYxLk9wZXJhdGlvbi5TdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSHAoUYXR0cmlidXRlc190b19yZW1vdmUYByADKAkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARqkAQoISW5jcmVhc2USMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIrCgV2YWx1ZRgCIAEoCzIcLnlvcmtpZS52MS5KU09ORWxlbWVudFNpbXBsZRIqCgtleGVjdXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg0KBWFjdG9yGAQgASgJGpMDCghUcmVlRWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiAKBGZyb20YAiABKAsyEi55b3JraWUudjEuVHJlZVBvcxIeCgJ0bxgDIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zElcKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAQgAygLMjYueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlRWRpdC5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSJgoIY29udGVudHMYBSADKAsyFC55b3JraWUudjEuVHJlZU5vZGVzEhMKC3NwbGl0X2xldmVsGAcgASgFEioKC2V4ZWN1dGVkX2F0GAYgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrtAwoJVHJlZVN0eWxlEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSQgoKYXR0cmlidXRlcxgEIAMoCzIuLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlLkF0dHJpYnV0ZXNFbnRyeRIqCgtleGVjdXRlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhwKFGF0dHJpYnV0ZXNfdG9fcmVtb3ZlGAYgAygJElgKF2NyZWF0ZWRfYXRfbWFwX2J5X2FjdG9yGAcgAygLMjcueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGlEKGENyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldDoCOAEawAEKCEFycmF5U2V0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAMgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXRCBgoEYm9keSLFAQoRSlNPTkVsZW1lbnRTaW1wbGUSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiIKBHR5cGUYBCABKA4yFC55b3JraWUudjEuVmFsdWVUeXBlEg0KBXZhbHVlGAUgASgMIp8LCgtKU09ORWxlbWVudBI4Cgtqc29uX29iamVjdBgBIAEoCzIhLnlvcmtpZS52MS5KU09ORWxlbWVudC5KU09OT2JqZWN0SAASNgoKanNvbl9hcnJheRgCIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5KU09OQXJyYXlIABI1CglwcmltaXRpdmUYAyABKAsyIC55b3JraWUudjEuSlNPTkVsZW1lbnQuUHJpbWl0aXZlSAASKwoEdGV4dBgFIAEoCzIbLnlvcmtpZS52MS5KU09ORWxlbWVudC5UZXh0SAASMQoHY291bnRlchgGIAEoCzIeLnlvcmtpZS52MS5KU09ORWxlbWVudC5Db3VudGVySAASKwoEdHJlZRgHIAEoCzIbLnlvcmtpZS52MS5KU09ORWxlbWVudC5UcmVlSAAargEKCkpTT05PYmplY3QSIQoFbm9kZXMYASADKAsyEi55b3JraWUudjEuUkhUTm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQarQEKCUpTT05BcnJheRIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SR0FOb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq9AQoJUHJpbWl0aXZlEiIKBHR5cGUYASABKA4yFC55b3JraWUudjEuVmFsdWVUeXBlEg0KBXZhbHVlGAIgASgMEikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBSABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqpAQoEVGV4dBIiCgVub2RlcxgBIAMoCzITLnlvcmtpZS52MS5UZXh0Tm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQa2AEKB0NvdW50ZXISIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhUKDWhsbF9yZWdpc3RlcnMYByABKAxKBAgGEAcaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCLuAQoHUkdBTm9kZRIgCgRuZXh0GAEgASgLMhIueW9ya2llLnYxLlJHQU5vZGUSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBIyChNwb3NpdGlvbl9jcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSMAoRcG9zaXRpb25fbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIyChNwb3NpdGlvbl9yZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQiWAoITm9kZUF0dHISDQoFdmFsdWUYASABKAkSKQoKdXBkYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhIKCmlzX3JlbW92ZWQYAyABKAgilAIKCFRleHROb2RlEiEKAmlkGAEgASgLMhUueW9ya2llLnYxLlRleHROb2RlSUQSDQoFdmFsdWUYAiABKAkSKQoKcmVtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2luc19wcmV2X2lkGAQgASgLMhUueW9ya2llLnYxLlRleHROb2RlSUQSNwoKYXR0cmlidXRlcxgFIAMoCzIjLnlvcmtpZS52MS5UZXh0Tm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiRwoKVGV4dE5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFIrMDCghUcmVlTm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEgwKBHR5cGUYAiABKAkSDQoFdmFsdWUYAyABKAkSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2luc19wcmV2X2lkGAUgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSKgoLaW5zX25leHRfaWQYBiABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBINCgVkZXB0aBgHIAEoBRI3CgphdHRyaWJ1dGVzGAggAygLMiMueW9ya2llLnYxLlRyZWVOb2RlLkF0dHJpYnV0ZXNFbnRyeRIqCgttZXJnZWRfZnJvbRgJIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEigKCW1lcmdlZF9hdBgKIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIjEKCVRyZWVOb2RlcxIkCgdjb250ZW50GAEgAygLMhMueW9ya2llLnYxLlRyZWVOb2RlIkcKClRyZWVOb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSJjCgdUcmVlUG9zEigKCXBhcmVudF9pZBgBIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEi4KD2xlZnRfc2libGluZ19pZBgCIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEImsKBFVzZXISCgoCaWQYASABKAkSFQoNYXV0aF9wcm92aWRlchgCIAEoCRIQCgh1c2VybmFtZRgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKJAQoGTWVtYmVyEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDwoHdXNlcl9pZBgDIAEoCRIQCgh1c2VybmFtZRgEIAEoCRIMCgRyb2xlGAUgASgJEi4KCmludml0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIukGCgdQcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEgoKcHVibGljX2tleRgDIAEoCRISCgpzZWNyZXRfa2V5GAQgASgJEhgKEGF1dGhfd2ViaG9va191cmwYBSABKAkSHAoUYXV0aF93ZWJob29rX21ldGhvZHMYBiADKAkSIAoYYXV0aF93ZWJob29rX21heF9yZXRyaWVzGBEgASgEEiYKHmF1dGhfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgSIAEoCRImCh5hdXRoX3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYEyABKAkSJAocYXV0aF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgUIAEoCRIZChFldmVudF93ZWJob29rX3VybBgHIAEoCRIcChRldmVudF93ZWJob29rX2V2ZW50cxgIIAMoCRIhChlldmVudF93ZWJob29rX21heF9yZXRyaWVzGBUgASgEEicKH2V2ZW50X3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYFiABKAkSJwofZXZlbnRfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgXIAEoCRIlCh1ldmVudF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgYIAEoCRIjChtjbGllbnRfZGVhY3RpdmF0ZV90aHJlc2hvbGQYCSABKAkSGgoSc25hcHNob3RfdGhyZXNob2xkGBkgASgDEhkKEXNuYXBzaG90X2ludGVydmFsGBogASgDEiQKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYCiABKAUSJAocbWF4X2F0dGFjaG1lbnRzX3Blcl9kb2N1bWVudBgLIAEoBRIdChVtYXhfc2l6ZV9wZXJfZG9jdW1lbnQYDyABKAUSGAoQcmVtb3ZlX29uX2RldGFjaBgQIAEoCBIdChVhdXRvX3JldmlzaW9uX2VuYWJsZWQYGyABKAgSFwoPYWxsb3dlZF9vcmlnaW5zGA4gAygJEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIi8KC01ldHJpY1BvaW50EhEKCXRpbWVzdGFtcBgBIAEoAxINCgV2YWx1ZRgCIAEoBSKjDAoWVXBkYXRhYmxlUHJvamVjdEZpZWxkcxIqCgRuYW1lGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjYKEGF1dGhfd2ViaG9va191cmwYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSUgoUYXV0aF93ZWJob29rX21ldGhvZHMYAyABKAsyNC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BdXRoV2ViaG9va01ldGhvZHMSPgoYYXV0aF93ZWJob29rX21heF9yZXRyaWVzGAwgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEkQKHmF1dGhfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJECh5hdXRoX3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYDiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSQgocYXV0aF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChFldmVudF93ZWJob29rX3VybBgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRldmVudF93ZWJob29rX2V2ZW50cxgFIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkV2ZW50V2ViaG9va0V2ZW50cxI/ChlldmVudF93ZWJob29rX21heF9yZXRyaWVzGBAgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEkUKH2V2ZW50X3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSRQofZXZlbnRfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgSIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJDCh1ldmVudF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgTIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChJzbmFwc2hvdF90aHJlc2hvbGQYFCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI2ChFzbmFwc2hvdF9pbnRlcnZhbBgVIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEkEKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgGIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJBChxtYXhfc3Vic2NyaWJlcnNfcGVyX2RvY3VtZW50GAcgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSQQocbWF4X2F0dGFjaG1lbnRzX3Blcl9kb2N1bWVudBgIIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEjoKFW1heF9zaXplX3Blcl9kb2N1bWVudBgKIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEjQKEHJlbW92ZV9vbl9kZXRhY2gYCyABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjkKFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSSQoPYWxsb3dlZF9vcmlnaW5zGAkgASgLMjAueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuQWxsb3dlZE9yaWdpbnMaJQoSQXV0aFdlYmhvb2tNZXRob2RzEg8KB21ldGhvZHMYASADKAkaJAoSRXZlbnRXZWJob29rRXZlbnRzEg4KBmV2ZW50cxgBIAMoCRohCg5BbGxvd2VkT3JpZ2lucxIPCgdvcmlnaW5zGAEgAygJIqcDCg9Eb2N1bWVudFN1bW1hcnkSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHJvb3QYAyABKAkSGAoQYXR0YWNoZWRfY2xpZW50cxgHIAEoBRIpCg1kb2N1bWVudF9zaXplGAggASgLMhIueW9ya2llLnYxLkRvY1NpemUSEgoKc2NoZW1hX2tleRgJIAEoCRI8CglwcmVzZW5jZXMYCiADKAsyKS55b3JraWUudjEuRG9jdW1lbnRTdW1tYXJ5LlByZXNlbmNlc0VudHJ5Ei4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2FjY2Vzc2VkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBpFCg5QcmVzZW5jZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuUHJlc2VuY2U6AjgBItoBCg5QcmVzZW5jZUNoYW5nZRIyCgR0eXBlGAEgASgOMiQueW9ya2llLnYxLlByZXNlbmNlQ2hhbmdlLkNoYW5nZVR5cGUSJQoIcHJlc2VuY2UYAiABKAsyEy55b3JraWUudjEuUHJlc2VuY2UibQoKQ2hhbmdlVHlwZRIbChdDSEFOR0VfVFlQRV9VTlNQRUNJRklFRBAAEhMKD0NIQU5HRV9UWVBFX1BVVBABEhYKEkNIQU5HRV9UWVBFX0RFTEVURRACEhUKEUNIQU5HRV9UWVBFX0NMRUFSEAMiZAoIUHJlc2VuY2USKwoEZGF0YRgBIAMoCzIdLnlvcmtpZS52MS5QcmVzZW5jZS5EYXRhRW50cnkaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiNAoOQ2hhbm5lbFN1bW1hcnkSCwoDa2V5GAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAUiNAoKQ2hlY2twb2ludBISCgpzZXJ2ZXJfc2VxGAEgASgDEhIKCmNsaWVudF9zZXEYAiABKA0iYQoLVGV4dE5vZGVQb3MSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBRIXCg9yZWxhdGl2ZV9vZmZzZXQYAyABKAUiQgoKVGltZVRpY2tldBIPCgdsYW1wb3J0GAEgASgDEhEKCWRlbGltaXRlchgCIAEoDRIQCghhY3Rvcl9pZBgDIAEoDCIuCgxEb2NFdmVudEJvZHkSDQoFdG9waWMYASABKAkSDwoHcGF5bG9hZBgCIAEoDCJrCghEb2NFdmVudBIlCgR0eXBlGAEgASgOMhcueW9ya2llLnYxLkRvY0V2ZW50VHlwZRIRCglwdWJsaXNoZXIYAiABKAkSJQoEYm9keRgDIAEoCzIXLnlvcmtpZS52MS5Eb2NFdmVudEJvZHki1gEKDENoYW5uZWxFdmVudBIqCgR0eXBlGAEgASgOMhwueW9ya2llLnYxLkNoYW5uZWxFdmVudC5UeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIVCg1zZXNzaW9uX2NvdW50GAMgASgDEgsKA3NlcRgEIAEoAxINCgV0b3BpYxgFIAEoCRIPCgdwYXlsb2FkGAYgASgMIkMKBFR5cGUSFAoQVFlQRV9VTlNQRUNJRklFRBAAEhEKDVRZUEVfUFJFU0VOQ0UQARISCg5UWVBFX0JST0FEQ0FTVBACIiYKCERhdGFTaXplEgwKBGRhdGEYASABKAUSDAoEbWV0YRgCIAEoBSJNCgdEb2NTaXplEiEKBGxpdmUYASABKAsyEy55b3JraWUudjEuRGF0YVNpemUSHwoCZ2MYAiABKAsyEy55b3JraWUudjEuRGF0YVNpemUikQEKBlNjaGVtYRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAUSDAoEYm9keRgEIAEoCRIeCgVydWxlcxgFIAMoCzIPLnlvcmtpZS52MS5SdWxlEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlAKDFRyZWVOb2RlUnVsZRIRCglub2RlX3R5cGUYASABKAkSDwoHY29udGVudBgCIAEoCRINCgVtYXJrcxgDIAEoCRINCgVncm91cBgEIAEoCSJPCgRSdWxlEgwKBHBhdGgYASABKAkSDAoEdHlwZRgCIAEoCRIrCgp0cmVlX25vZGVzGAMgAygLMhcueW9ya2llLnYxLlRyZWVOb2RlUnVsZSKDAQoPUmV2aXNpb25TdW1tYXJ5EgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCHNuYXBzaG90GAQgASgJEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKvwCCglWYWx1ZVR5cGUSEwoPVkFMVUVfVFlQRV9OVUxMEAASFgoSVkFMVUVfVFlQRV9CT09MRUFOEAESFgoSVkFMVUVfVFlQRV9JTlRFR0VSEAISEwoPVkFMVUVfVFlQRV9MT05HEAMSFQoRVkFMVUVfVFlQRV9ET1VCTEUQBBIVChFWQUxVRV9UWVBFX1NUUklORxAFEhQKEFZBTFVFX1RZUEVfQllURVMQBhITCg9WQUxVRV9UWVBFX0RBVEUQBxIaChZWQUxVRV9UWVBFX0pTT05fT0JKRUNUEAgSGQoVVkFMVUVfVFlQRV9KU09OX0FSUkFZEAkSEwoPVkFMVUVfVFlQRV9URVhUEAoSGgoWVkFMVUVfVFlQRV9JTlRFR0VSX0NOVBALEhcKE1ZBTFVFX1RZUEVfTE9OR19DTlQQDBITCg9WQUxVRV9UWVBFX1RSRUUQDRIgChxWQUxVRV9UWVBFX0lOVEVHRVJfREVEVVBfQ05UEA4iBAgPEA8qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5794
|
+
const SnapshotSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 0);
|
|
5795
|
+
const ChangePackSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 1);
|
|
5796
|
+
const ChangeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 2);
|
|
5797
|
+
const ChangeIDSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 3);
|
|
5798
|
+
const VersionVectorSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 4);
|
|
5799
|
+
const OperationSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5);
|
|
5800
|
+
const Operation_SetSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 0);
|
|
5801
|
+
const Operation_AddSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 1);
|
|
5802
|
+
const Operation_MoveSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 2);
|
|
5803
|
+
const Operation_RemoveSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 3);
|
|
5804
|
+
const Operation_EditSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 4);
|
|
5805
|
+
const Operation_StyleSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 5);
|
|
5806
|
+
const Operation_IncreaseSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 6);
|
|
5807
|
+
const Operation_TreeEditSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 7);
|
|
5808
|
+
const Operation_TreeStyleSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 8);
|
|
5809
|
+
const Operation_ArraySetSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 5, 9);
|
|
5810
|
+
const JSONElementSimpleSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 6);
|
|
5811
|
+
const JSONElementSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7);
|
|
5812
|
+
const JSONElement_JSONObjectSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 0);
|
|
5813
|
+
const JSONElement_JSONArraySchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 1);
|
|
5814
|
+
const JSONElement_PrimitiveSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 2);
|
|
5815
|
+
const JSONElement_TextSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 3);
|
|
5816
|
+
const JSONElement_CounterSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 4);
|
|
5817
|
+
const JSONElement_TreeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 7, 5);
|
|
5818
|
+
const RHTNodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 8);
|
|
5819
|
+
const RGANodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 9);
|
|
5820
|
+
const NodeAttrSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 10);
|
|
5821
|
+
const TextNodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 11);
|
|
5822
|
+
const TextNodeIDSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 12);
|
|
5823
|
+
const TreeNodeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 13);
|
|
5824
|
+
const TreeNodesSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 14);
|
|
5825
|
+
const TreeNodeIDSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 15);
|
|
5826
|
+
const TreePosSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 16);
|
|
5827
|
+
const PresenceChangeSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 23);
|
|
5828
5828
|
var PresenceChange_ChangeType = /* @__PURE__ */ ((PresenceChange_ChangeType2) => {
|
|
5829
5829
|
PresenceChange_ChangeType2[PresenceChange_ChangeType2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
|
|
5830
5830
|
PresenceChange_ChangeType2[PresenceChange_ChangeType2["PUT"] = 1] = "PUT";
|
|
@@ -5832,10 +5832,10 @@ var PresenceChange_ChangeType = /* @__PURE__ */ ((PresenceChange_ChangeType2) =>
|
|
|
5832
5832
|
PresenceChange_ChangeType2[PresenceChange_ChangeType2["CLEAR"] = 3] = "CLEAR";
|
|
5833
5833
|
return PresenceChange_ChangeType2;
|
|
5834
5834
|
})(PresenceChange_ChangeType || {});
|
|
5835
|
-
const PresenceSchema = /* @__PURE__ */ messageDesc(
|
|
5836
|
-
const CheckpointSchema = /* @__PURE__ */ messageDesc(
|
|
5837
|
-
const TextNodePosSchema = /* @__PURE__ */ messageDesc(
|
|
5838
|
-
const TimeTicketSchema = /* @__PURE__ */ messageDesc(
|
|
5835
|
+
const PresenceSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 24);
|
|
5836
|
+
const CheckpointSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 26);
|
|
5837
|
+
const TextNodePosSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 27);
|
|
5838
|
+
const TimeTicketSchema = /* @__PURE__ */ messageDesc(file_yorkie_v1_resources, 28);
|
|
5839
5839
|
var ChannelEvent_Type = /* @__PURE__ */ ((ChannelEvent_Type2) => {
|
|
5840
5840
|
ChannelEvent_Type2[ChannelEvent_Type2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
|
|
5841
5841
|
ChannelEvent_Type2[ChannelEvent_Type2["PRESENCE"] = 1] = "PRESENCE";
|
|
@@ -5867,8 +5867,8 @@ var DocEventType$1 = /* @__PURE__ */ ((DocEventType2) => {
|
|
|
5867
5867
|
DocEventType2[DocEventType2["DOCUMENT_BROADCAST"] = 3] = "DOCUMENT_BROADCAST";
|
|
5868
5868
|
return DocEventType2;
|
|
5869
5869
|
})(DocEventType$1 || {});
|
|
5870
|
-
const
|
|
5871
|
-
const YorkieService = /* @__PURE__ */ serviceDesc(
|
|
5870
|
+
const file_yorkie_v1_yorkie = /* @__PURE__ */ fileDesc("ChZ5b3JraWUvdjEveW9ya2llLnByb3RvEgl5b3JraWUudjEingEKFUFjdGl2YXRlQ2xpZW50UmVxdWVzdBISCgpjbGllbnRfa2V5GAEgASgJEkAKCG1ldGFkYXRhGAIgAygLMi4ueW9ya2llLnYxLkFjdGl2YXRlQ2xpZW50UmVxdWVzdC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIrChZBY3RpdmF0ZUNsaWVudFJlc3BvbnNlEhEKCWNsaWVudF9pZBgBIAEoCSJBChdEZWFjdGl2YXRlQ2xpZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLc3luY2hyb25vdXMYAiABKAgiGgoYRGVhY3RpdmF0ZUNsaWVudFJlc3BvbnNlImoKFUF0dGFjaERvY3VtZW50UmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSKgoLY2hhbmdlX3BhY2sYAiABKAsyFS55b3JraWUudjEuQ2hhbmdlUGFjaxISCgpzY2hlbWFfa2V5GAMgASgJIp8BChZBdHRhY2hEb2N1bWVudFJlc3BvbnNlEhMKC2RvY3VtZW50X2lkGAEgASgJEioKC2NoYW5nZV9wYWNrGAIgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSHQoVbWF4X3NpemVfcGVyX2RvY3VtZW50GAMgASgFEiUKDHNjaGVtYV9ydWxlcxgEIAMoCzIPLnlvcmtpZS52MS5SdWxlIosBChVEZXRhY2hEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSHgoWcmVtb3ZlX2lmX25vdF9hdHRhY2hlZBgEIAEoCCJEChZEZXRhY2hEb2N1bWVudFJlc3BvbnNlEioKC2NoYW5nZV9wYWNrGAIgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siUwoMV2F0Y2hSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRIwCglyZXNvdXJjZXMYAiADKAsyHS55b3JraWUudjEuUmVzb3VyY2VEZXNjcmlwdG9yIoQBChJSZXNvdXJjZURlc2NyaXB0b3ISMQoIZG9jdW1lbnQYASABKAsyHS55b3JraWUudjEuRG9jdW1lbnREZXNjcmlwdG9ySAASLwoHY2hhbm5lbBgCIAEoCzIcLnlvcmtpZS52MS5DaGFubmVsRGVzY3JpcHRvckgAQgoKCHJlc291cmNlIikKEkRvY3VtZW50RGVzY3JpcHRvchITCgtkb2N1bWVudF9pZBgBIAEoCSIoChFDaGFubmVsRGVzY3JpcHRvchITCgtjaGFubmVsX2tleRgBIAEoCSJ5Cg1XYXRjaFJlc3BvbnNlEjgKDmluaXRpYWxpemF0aW9uGAEgASgLMh4ueW9ya2llLnYxLldhdGNoSW5pdGlhbGl6YXRpb25IABImCgVldmVudBgCIAEoCzIVLnlvcmtpZS52MS5XYXRjaEV2ZW50SABCBgoEYm9keSJGChNXYXRjaEluaXRpYWxpemF0aW9uEi8KDnJlc291cmNlX2luaXRzGAEgAygLMhcueW9ya2llLnYxLlJlc291cmNlSW5pdCJ4CgxSZXNvdXJjZUluaXQSMAoNZG9jdW1lbnRfaW5pdBgBIAEoCzIXLnlvcmtpZS52MS5Eb2N1bWVudEluaXRIABIuCgxjaGFubmVsX2luaXQYAiABKAsyFi55b3JraWUudjEuQ2hhbm5lbEluaXRIAEIGCgRpbml0IjcKDERvY3VtZW50SW5pdBITCgtkb2N1bWVudF9pZBgBIAEoCRISCgpjbGllbnRfaWRzGAIgAygJIkYKC0NoYW5uZWxJbml0EhMKC2NoYW5uZWxfa2V5GAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAMSCwoDc2VxGAMgASgDInsKCldhdGNoRXZlbnQSLQoJZG9jX2V2ZW50GAEgASgLMhgueW9ya2llLnYxLkRvY1dhdGNoRXZlbnRIABI1Cg1jaGFubmVsX2V2ZW50GAIgASgLMhwueW9ya2llLnYxLkNoYW5uZWxXYXRjaEV2ZW50SABCBwoFZXZlbnQiSAoNRG9jV2F0Y2hFdmVudBITCgtkb2N1bWVudF9pZBgBIAEoCRIiCgVldmVudBgCIAEoCzITLnlvcmtpZS52MS5Eb2NFdmVudCJQChFDaGFubmVsV2F0Y2hFdmVudBITCgtjaGFubmVsX2tleRgBIAEoCRImCgVldmVudBgCIAEoCzIXLnlvcmtpZS52MS5DaGFubmVsRXZlbnQiPgoUV2F0Y2hEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJIrYBChVXYXRjaERvY3VtZW50UmVzcG9uc2USSQoOaW5pdGlhbGl6YXRpb24YASABKAsyLy55b3JraWUudjEuV2F0Y2hEb2N1bWVudFJlc3BvbnNlLkluaXRpYWxpemF0aW9uSAASJAoFZXZlbnQYAiABKAsyEy55b3JraWUudjEuRG9jRXZlbnRIABokCg5Jbml0aWFsaXphdGlvbhISCgpjbGllbnRfaWRzGAEgAygJQgYKBGJvZHkiPQoTV2F0Y2hDaGFubmVsUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLY2hhbm5lbF9rZXkYAiABKAkigwEKFFdhdGNoQ2hhbm5lbFJlc3BvbnNlEjkKC2luaXRpYWxpemVkGAEgASgLMiIueW9ya2llLnYxLldhdGNoQ2hhbm5lbEluaXRpYWxpemVkSAASKAoFZXZlbnQYAiABKAsyFy55b3JraWUudjEuQ2hhbm5lbEV2ZW50SABCBgoEYm9keSI9ChdXYXRjaENoYW5uZWxJbml0aWFsaXplZBIVCg1zZXNzaW9uX2NvdW50GAEgASgDEgsKA3NlcRgCIAEoAyJrChVSZW1vdmVEb2N1bWVudFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siRAoWUmVtb3ZlRG9jdW1lbnRSZXNwb25zZRIqCgtjaGFuZ2VfcGFjaxgBIAEoCzIVLnlvcmtpZS52MS5DaGFuZ2VQYWNrIn8KFlB1c2hQdWxsQ2hhbmdlc1JlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEioKC2NoYW5nZV9wYWNrGAMgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2sSEQoJcHVzaF9vbmx5GAQgASgIIkUKF1B1c2hQdWxsQ2hhbmdlc1Jlc3BvbnNlEioKC2NoYW5nZV9wYWNrGAEgASgLMhUueW9ya2llLnYxLkNoYW5nZVBhY2siYwoVQ3JlYXRlUmV2aXNpb25SZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRINCgVsYWJlbBgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJGChZDcmVhdGVSZXZpc2lvblJlc3BvbnNlEiwKCHJldmlzaW9uGAEgASgLMhoueW9ya2llLnYxLlJldmlzaW9uU3VtbWFyeSJRChJHZXRSZXZpc2lvblJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2RvY3VtZW50X2lkGAIgASgJEhMKC3JldmlzaW9uX2lkGAMgASgJIkMKE0dldFJldmlzaW9uUmVzcG9uc2USLAoIcmV2aXNpb24YASABKAsyGi55b3JraWUudjEuUmV2aXNpb25TdW1tYXJ5InUKFExpc3RSZXZpc2lvbnNSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtkb2N1bWVudF9pZBgCIAEoCRIRCglwYWdlX3NpemUYAyABKAUSDgoGb2Zmc2V0GAQgASgFEhIKCmlzX2ZvcndhcmQYBSABKAgiRgoVTGlzdFJldmlzaW9uc1Jlc3BvbnNlEi0KCXJldmlzaW9ucxgBIAMoCzIaLnlvcmtpZS52MS5SZXZpc2lvblN1bW1hcnkiVQoWUmVzdG9yZVJldmlzaW9uUmVxdWVzdBIRCgljbGllbnRfaWQYASABKAkSEwoLZG9jdW1lbnRfaWQYAiABKAkSEwoLcmV2aXNpb25faWQYBCABKAkiGQoXUmVzdG9yZVJldmlzaW9uUmVzcG9uc2UiPgoUQXR0YWNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJIkIKFUF0dGFjaENoYW5uZWxSZXNwb25zZRISCgpzZXNzaW9uX2lkGAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAMiUgoURGV0YWNoQ2hhbm5lbFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJEhIKCnNlc3Npb25faWQYAyABKAkiLgoVRGV0YWNoQ2hhbm5lbFJlc3BvbnNlEhUKDXNlc3Npb25fY291bnQYASABKAMiUwoVUmVmcmVzaENoYW5uZWxSZXF1ZXN0EhEKCWNsaWVudF9pZBgBIAEoCRITCgtjaGFubmVsX2tleRgCIAEoCRISCgpzZXNzaW9uX2lkGAMgASgJIi8KFlJlZnJlc2hDaGFubmVsUmVzcG9uc2USFQoNc2Vzc2lvbl9jb3VudBgBIAEoAyIpChJQZWVrQ2hhbm5lbFJlcXVlc3QSEwoLY2hhbm5lbF9rZXkYASABKAkiLAoTUGVla0NoYW5uZWxSZXNwb25zZRIVCg1zZXNzaW9uX2NvdW50GAEgASgDIloKEEJyb2FkY2FzdFJlcXVlc3QSEQoJY2xpZW50X2lkGAEgASgJEhMKC2NoYW5uZWxfa2V5GAIgASgJEg0KBXRvcGljGAMgASgJEg8KB3BheWxvYWQYBCABKAwiEwoRQnJvYWRjYXN0UmVzcG9uc2UylQwKDVlvcmtpZVNlcnZpY2USVwoOQWN0aXZhdGVDbGllbnQSIC55b3JraWUudjEuQWN0aXZhdGVDbGllbnRSZXF1ZXN0GiEueW9ya2llLnYxLkFjdGl2YXRlQ2xpZW50UmVzcG9uc2UiABJdChBEZWFjdGl2YXRlQ2xpZW50EiIueW9ya2llLnYxLkRlYWN0aXZhdGVDbGllbnRSZXF1ZXN0GiMueW9ya2llLnYxLkRlYWN0aXZhdGVDbGllbnRSZXNwb25zZSIAElcKDkF0dGFjaERvY3VtZW50EiAueW9ya2llLnYxLkF0dGFjaERvY3VtZW50UmVxdWVzdBohLnlvcmtpZS52MS5BdHRhY2hEb2N1bWVudFJlc3BvbnNlIgASVwoORGV0YWNoRG9jdW1lbnQSIC55b3JraWUudjEuRGV0YWNoRG9jdW1lbnRSZXF1ZXN0GiEueW9ya2llLnYxLkRldGFjaERvY3VtZW50UmVzcG9uc2UiABJXCg5SZW1vdmVEb2N1bWVudBIgLnlvcmtpZS52MS5SZW1vdmVEb2N1bWVudFJlcXVlc3QaIS55b3JraWUudjEuUmVtb3ZlRG9jdW1lbnRSZXNwb25zZSIAEloKD1B1c2hQdWxsQ2hhbmdlcxIhLnlvcmtpZS52MS5QdXNoUHVsbENoYW5nZXNSZXF1ZXN0GiIueW9ya2llLnYxLlB1c2hQdWxsQ2hhbmdlc1Jlc3BvbnNlIgASPgoFV2F0Y2gSFy55b3JraWUudjEuV2F0Y2hSZXF1ZXN0GhgueW9ya2llLnYxLldhdGNoUmVzcG9uc2UiADABElYKDVdhdGNoRG9jdW1lbnQSHy55b3JraWUudjEuV2F0Y2hEb2N1bWVudFJlcXVlc3QaIC55b3JraWUudjEuV2F0Y2hEb2N1bWVudFJlc3BvbnNlIgAwARJTCgxXYXRjaENoYW5uZWwSHi55b3JraWUudjEuV2F0Y2hDaGFubmVsUmVxdWVzdBofLnlvcmtpZS52MS5XYXRjaENoYW5uZWxSZXNwb25zZSIAMAESVwoOQ3JlYXRlUmV2aXNpb24SIC55b3JraWUudjEuQ3JlYXRlUmV2aXNpb25SZXF1ZXN0GiEueW9ya2llLnYxLkNyZWF0ZVJldmlzaW9uUmVzcG9uc2UiABJOCgtHZXRSZXZpc2lvbhIdLnlvcmtpZS52MS5HZXRSZXZpc2lvblJlcXVlc3QaHi55b3JraWUudjEuR2V0UmV2aXNpb25SZXNwb25zZSIAElQKDUxpc3RSZXZpc2lvbnMSHy55b3JraWUudjEuTGlzdFJldmlzaW9uc1JlcXVlc3QaIC55b3JraWUudjEuTGlzdFJldmlzaW9uc1Jlc3BvbnNlIgASWgoPUmVzdG9yZVJldmlzaW9uEiEueW9ya2llLnYxLlJlc3RvcmVSZXZpc2lvblJlcXVlc3QaIi55b3JraWUudjEuUmVzdG9yZVJldmlzaW9uUmVzcG9uc2UiABJUCg1BdHRhY2hDaGFubmVsEh8ueW9ya2llLnYxLkF0dGFjaENoYW5uZWxSZXF1ZXN0GiAueW9ya2llLnYxLkF0dGFjaENoYW5uZWxSZXNwb25zZSIAElQKDURldGFjaENoYW5uZWwSHy55b3JraWUudjEuRGV0YWNoQ2hhbm5lbFJlcXVlc3QaIC55b3JraWUudjEuRGV0YWNoQ2hhbm5lbFJlc3BvbnNlIgASVwoOUmVmcmVzaENoYW5uZWwSIC55b3JraWUudjEuUmVmcmVzaENoYW5uZWxSZXF1ZXN0GiEueW9ya2llLnYxLlJlZnJlc2hDaGFubmVsUmVzcG9uc2UiABJOCgtQZWVrQ2hhbm5lbBIdLnlvcmtpZS52MS5QZWVrQ2hhbm5lbFJlcXVlc3QaHi55b3JraWUudjEuUGVla0NoYW5uZWxSZXNwb25zZSIAEkgKCUJyb2FkY2FzdBIbLnlvcmtpZS52MS5Ccm9hZGNhc3RSZXF1ZXN0GhwueW9ya2llLnYxLkJyb2FkY2FzdFJlc3BvbnNlIgBCRQoRZGV2LnlvcmtpZS5hcGkudjFQAVouZ2l0aHViLmNvbS95b3JraWUtdGVhbS95b3JraWUvYXBpL3lvcmtpZS92MTt2MWIGcHJvdG8z", [file_yorkie_v1_resources]);
|
|
5871
|
+
const YorkieService = /* @__PURE__ */ serviceDesc(file_yorkie_v1_yorkie, 0);
|
|
5872
5872
|
const file_google_rpc_error_details = /* @__PURE__ */ fileDesc("Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMikwEKCUVycm9ySW5mbxIOCgZyZWFzb24YASABKAkSDgoGZG9tYWluGAIgASgJEjUKCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwoJUmV0cnlJbmZvEi4KC3JldHJ5X2RlbGF5GAEgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIjIKCURlYnVnSW5mbxIVCg1zdGFja19lbnRyaWVzGAEgAygJEg4KBmRldGFpbBgCIAEoCSKPAwoMUXVvdGFGYWlsdXJlEjYKCnZpb2xhdGlvbnMYASADKAsyIi5nb29nbGUucnBjLlF1b3RhRmFpbHVyZS5WaW9sYXRpb24axgIKCVZpb2xhdGlvbhIPCgdzdWJqZWN0GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2FwaV9zZXJ2aWNlGAMgASgJEhQKDHF1b3RhX21ldHJpYxgEIAEoCRIQCghxdW90YV9pZBgFIAEoCRJRChBxdW90YV9kaW1lbnNpb25zGAYgAygLMjcuZ29vZ2xlLnJwYy5RdW90YUZhaWx1cmUuVmlvbGF0aW9uLlF1b3RhRGltZW5zaW9uc0VudHJ5EhMKC3F1b3RhX3ZhbHVlGAcgASgDEh8KEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAiAEBGjYKFFF1b3RhRGltZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSKVAQoTUHJlY29uZGl0aW9uRmFpbHVyZRI9Cgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvbho/CglWaW9sYXRpb24SDAoEdHlwZRgBIAEoCRIPCgdzdWJqZWN0GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIswBCgpCYWRSZXF1ZXN0Ej8KEGZpZWxkX3Zpb2xhdGlvbnMYASADKAsyJS5nb29nbGUucnBjLkJhZFJlcXVlc3QuRmllbGRWaW9sYXRpb24afQoORmllbGRWaW9sYXRpb24SDQoFZmllbGQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDgoGcmVhc29uGAMgASgJEjcKEWxvY2FsaXplZF9tZXNzYWdlGAQgASgLMhwuZ29vZ2xlLnJwYy5Mb2NhbGl6ZWRNZXNzYWdlIjcKC1JlcXVlc3RJbmZvEhIKCnJlcXVlc3RfaWQYASABKAkSFAoMc2VydmluZ19kYXRhGAIgASgJImAKDFJlc291cmNlSW5mbxIVCg1yZXNvdXJjZV90eXBlGAEgASgJEhUKDXJlc291cmNlX25hbWUYAiABKAkSDQoFb3duZXIYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiVgoESGVscBIkCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rGigKBExpbmsSEwoLZGVzY3JpcHRpb24YASABKAkSCwoDdXJsGAIgASgJIjMKEExvY2FsaXplZE1lc3NhZ2USDgoGbG9jYWxlGAEgASgJEg8KB21lc3NhZ2UYAiABKAlCbAoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFaP2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvcnBjL2VycmRldGFpbHM7ZXJyZGV0YWlsc6ICA1JQQ2IGcHJvdG8z", [file_google_protobuf_duration]);
|
|
5873
5873
|
const ErrorInfoSchema = /* @__PURE__ */ messageDesc(file_google_rpc_error_details, 0);
|
|
5874
5874
|
var Code = /* @__PURE__ */ ((Code2) => {
|
|
@@ -5903,6 +5903,8 @@ class YorkieError extends Error {
|
|
|
5903
5903
|
this.message = message;
|
|
5904
5904
|
this.toString = () => `[code=${this.code}]: ${this.message}`;
|
|
5905
5905
|
}
|
|
5906
|
+
code;
|
|
5907
|
+
message;
|
|
5906
5908
|
name = "YorkieError";
|
|
5907
5909
|
stack;
|
|
5908
5910
|
}
|
|
@@ -12532,8 +12534,10 @@ class CRDTTree extends CRDTElement {
|
|
|
12532
12534
|
break;
|
|
12533
12535
|
}
|
|
12534
12536
|
if (next.parent && next.parent === toParent) {
|
|
12535
|
-
|
|
12536
|
-
|
|
12537
|
+
if (toLeft !== toParent) {
|
|
12538
|
+
collectFromLeft = next;
|
|
12539
|
+
collectFromParent = toParent;
|
|
12540
|
+
}
|
|
12537
12541
|
break;
|
|
12538
12542
|
}
|
|
12539
12543
|
current = next;
|
|
@@ -12596,6 +12600,7 @@ class CRDTTree extends CRDTElement {
|
|
|
12596
12600
|
tokensToBeRemoved,
|
|
12597
12601
|
editedAt
|
|
12598
12602
|
);
|
|
12603
|
+
const mergeLevel = toBeMergedNodes.length;
|
|
12599
12604
|
const pairs = [];
|
|
12600
12605
|
for (const node of nodesToBeRemoved) {
|
|
12601
12606
|
if (node.remove(editedAt)) {
|
|
@@ -12722,7 +12727,15 @@ class CRDTTree extends CRDTElement {
|
|
|
12722
12727
|
}
|
|
12723
12728
|
}
|
|
12724
12729
|
}
|
|
12725
|
-
return [
|
|
12730
|
+
return [
|
|
12731
|
+
changes,
|
|
12732
|
+
pairs,
|
|
12733
|
+
diff,
|
|
12734
|
+
nodesToBeRemoved,
|
|
12735
|
+
fromIdx,
|
|
12736
|
+
mergeLevel,
|
|
12737
|
+
preTombstoned
|
|
12738
|
+
];
|
|
12726
12739
|
}
|
|
12727
12740
|
/**
|
|
12728
12741
|
* `editT` edits the given range with the given value.
|
|
@@ -13163,11 +13176,35 @@ class CRDTTree extends CRDTElement {
|
|
|
13163
13176
|
return [prev, prev.isText ? TokenType.Text : TokenType.End];
|
|
13164
13177
|
}
|
|
13165
13178
|
}
|
|
13166
|
-
function
|
|
13167
|
-
|
|
13179
|
+
function cloneAndDropPreTombstoned(node, preTombstoned) {
|
|
13180
|
+
const clone = node.deepcopy();
|
|
13181
|
+
filterChildren(clone, preTombstoned);
|
|
13182
|
+
traverseAll(clone, (n) => {
|
|
13168
13183
|
n.removedAt = void 0;
|
|
13169
|
-
n.
|
|
13184
|
+
if (n.isText) {
|
|
13185
|
+
n.visibleSize = n.value.length;
|
|
13186
|
+
n.totalSize = n.value.length;
|
|
13187
|
+
return;
|
|
13188
|
+
}
|
|
13189
|
+
let size = 0;
|
|
13190
|
+
for (const child of n._children) size += child.paddedSize();
|
|
13191
|
+
n.visibleSize = size;
|
|
13192
|
+
n.totalSize = size;
|
|
13170
13193
|
});
|
|
13194
|
+
return clone;
|
|
13195
|
+
}
|
|
13196
|
+
function filterChildren(node, preTombstoned) {
|
|
13197
|
+
const all = node._children;
|
|
13198
|
+
if (!all) return;
|
|
13199
|
+
const kept = [];
|
|
13200
|
+
for (const child of all) {
|
|
13201
|
+
if (preTombstoned.has(child.id.toIDString())) {
|
|
13202
|
+
continue;
|
|
13203
|
+
}
|
|
13204
|
+
filterChildren(child, preTombstoned);
|
|
13205
|
+
kept.push(child);
|
|
13206
|
+
}
|
|
13207
|
+
node._children = kept;
|
|
13171
13208
|
}
|
|
13172
13209
|
class TreeEditOperation extends Operation {
|
|
13173
13210
|
fromPos;
|
|
@@ -13239,7 +13276,15 @@ class TreeEditOperation extends Operation {
|
|
|
13239
13276
|
this.toPos = tree.findPos(this.toIdx);
|
|
13240
13277
|
}
|
|
13241
13278
|
}
|
|
13242
|
-
const [
|
|
13279
|
+
const [
|
|
13280
|
+
changes,
|
|
13281
|
+
pairs,
|
|
13282
|
+
diff,
|
|
13283
|
+
removedNodes,
|
|
13284
|
+
preEditFromIdx,
|
|
13285
|
+
mergeLevel,
|
|
13286
|
+
preTombstoned
|
|
13287
|
+
] = tree.edit(
|
|
13243
13288
|
[this.fromPos, this.toPos],
|
|
13244
13289
|
this.contents?.map((content) => content.deepcopy()),
|
|
13245
13290
|
this.splitLevel,
|
|
@@ -13274,7 +13319,13 @@ class TreeEditOperation extends Operation {
|
|
|
13274
13319
|
let reverseOp;
|
|
13275
13320
|
const isPureSplit = this.splitLevel > 0 && !this.contents?.length && removedNodes.length === 0;
|
|
13276
13321
|
if (this.splitLevel === 0) {
|
|
13277
|
-
reverseOp = this.toReverseOperation(
|
|
13322
|
+
reverseOp = this.toReverseOperation(
|
|
13323
|
+
tree,
|
|
13324
|
+
removedNodes,
|
|
13325
|
+
preEditFromIdx,
|
|
13326
|
+
preTombstoned,
|
|
13327
|
+
mergeLevel
|
|
13328
|
+
);
|
|
13278
13329
|
} else if (isPureSplit) {
|
|
13279
13330
|
reverseOp = this.toSplitReverseOperation(tree, preEditFromIdx);
|
|
13280
13331
|
}
|
|
@@ -13312,7 +13363,7 @@ class TreeEditOperation extends Operation {
|
|
|
13312
13363
|
* @param removedNodes - Nodes that were removed by this edit
|
|
13313
13364
|
* @param preEditFromIdx - The from index captured BEFORE the edit
|
|
13314
13365
|
*/
|
|
13315
|
-
toReverseOperation(tree, removedNodes, preEditFromIdx) {
|
|
13366
|
+
toReverseOperation(tree, removedNodes, preEditFromIdx, preTombstoned, mergeLevel) {
|
|
13316
13367
|
if (this.redoSplitLevel !== void 0 && this.redoSplitLevel > 0) {
|
|
13317
13368
|
const splitRedoFromPos = tree.findPos(preEditFromIdx);
|
|
13318
13369
|
const splitRedoOp = TreeEditOperation.create(
|
|
@@ -13331,19 +13382,36 @@ class TreeEditOperation extends Operation {
|
|
|
13331
13382
|
);
|
|
13332
13383
|
return splitRedoOp;
|
|
13333
13384
|
}
|
|
13385
|
+
if (mergeLevel && mergeLevel > 0) {
|
|
13386
|
+
const splitFromPos = tree.findPos(preEditFromIdx);
|
|
13387
|
+
const splitUndoOp = TreeEditOperation.create(
|
|
13388
|
+
this.getParentCreatedAt(),
|
|
13389
|
+
splitFromPos,
|
|
13390
|
+
splitFromPos,
|
|
13391
|
+
void 0,
|
|
13392
|
+
// no inserted content — split creates boundaries
|
|
13393
|
+
mergeLevel,
|
|
13394
|
+
// splitLevel = number of merged boundaries
|
|
13395
|
+
void 0,
|
|
13396
|
+
// executedAt assigned at undo time
|
|
13397
|
+
true,
|
|
13398
|
+
// isUndoOp
|
|
13399
|
+
preEditFromIdx,
|
|
13400
|
+
preEditFromIdx
|
|
13401
|
+
);
|
|
13402
|
+
return splitUndoOp;
|
|
13403
|
+
}
|
|
13334
13404
|
const insertedContentSize = this.contents ? this.contents.reduce((sum, node) => sum + node.paddedSize(), 0) : 0;
|
|
13335
13405
|
const maxNeededIdx = preEditFromIdx + insertedContentSize;
|
|
13336
13406
|
if (maxNeededIdx > tree.getSize()) {
|
|
13337
13407
|
return void 0;
|
|
13338
13408
|
}
|
|
13339
13409
|
const topLevelRemoved = removedNodes.filter(
|
|
13340
|
-
(node) => !node.parent || !removedNodes.includes(node.parent)
|
|
13410
|
+
(node) => !preTombstoned.has(node.id.toIDString()) && (!node.parent || !removedNodes.includes(node.parent))
|
|
13341
13411
|
);
|
|
13342
|
-
const reverseContents = topLevelRemoved.length > 0 ? topLevelRemoved.map(
|
|
13343
|
-
|
|
13344
|
-
|
|
13345
|
-
return clone;
|
|
13346
|
-
}) : void 0;
|
|
13412
|
+
const reverseContents = topLevelRemoved.length > 0 ? topLevelRemoved.map(
|
|
13413
|
+
(n) => cloneAndDropPreTombstoned(n, preTombstoned)
|
|
13414
|
+
) : void 0;
|
|
13347
13415
|
const reverseFromPos = tree.findPos(preEditFromIdx);
|
|
13348
13416
|
let reverseToPos;
|
|
13349
13417
|
if (insertedContentSize > 0) {
|
|
@@ -20157,6 +20225,11 @@ class Document {
|
|
|
20157
20225
|
}
|
|
20158
20226
|
]);
|
|
20159
20227
|
}
|
|
20228
|
+
/**
|
|
20229
|
+
* `clearHistory` flushes both undo and redo stacks. This is used
|
|
20230
|
+
* after applying a snapshot or initialRoot so that setup operations
|
|
20231
|
+
* are not reachable via undo.
|
|
20232
|
+
*/
|
|
20160
20233
|
clearHistory() {
|
|
20161
20234
|
this.internalHistory.clearRedo();
|
|
20162
20235
|
this.internalHistory.clearUndo();
|
|
@@ -20616,10 +20689,7 @@ class Document {
|
|
|
20616
20689
|
}
|
|
20617
20690
|
const ops = isUndo ? this.internalHistory.popUndo() : this.internalHistory.popRedo();
|
|
20618
20691
|
if (!ops) {
|
|
20619
|
-
|
|
20620
|
-
Code.ErrRefused,
|
|
20621
|
-
`There is no operation to be ${isUndo ? "undone" : "redone"}`
|
|
20622
|
-
);
|
|
20692
|
+
return;
|
|
20623
20693
|
}
|
|
20624
20694
|
this.ensureClone();
|
|
20625
20695
|
const ctx = ChangeContext.create(
|
|
@@ -20712,6 +20782,8 @@ class Attachment {
|
|
|
20712
20782
|
syncMode;
|
|
20713
20783
|
changeEventReceived;
|
|
20714
20784
|
lastHeartbeatTime;
|
|
20785
|
+
pollInterval;
|
|
20786
|
+
pollIntervalPinned;
|
|
20715
20787
|
reconnectStreamDelay;
|
|
20716
20788
|
cancelled;
|
|
20717
20789
|
watchStream;
|
|
@@ -20719,13 +20791,15 @@ class Attachment {
|
|
|
20719
20791
|
watchAbortController;
|
|
20720
20792
|
syncPromise;
|
|
20721
20793
|
_detaching = false;
|
|
20722
|
-
constructor(reconnectStreamDelay, resource, resourceID, syncMode) {
|
|
20794
|
+
constructor(reconnectStreamDelay, resource, resourceID, syncMode, pollInterval = 0, pollIntervalPinned = false) {
|
|
20723
20795
|
this.reconnectStreamDelay = reconnectStreamDelay;
|
|
20724
20796
|
this.resource = resource;
|
|
20725
20797
|
this.resourceID = resourceID;
|
|
20726
20798
|
this.syncMode = syncMode;
|
|
20727
20799
|
this.changeEventReceived = syncMode !== void 0 ? false : void 0;
|
|
20728
20800
|
this.lastHeartbeatTime = Date.now();
|
|
20801
|
+
this.pollInterval = pollInterval;
|
|
20802
|
+
this.pollIntervalPinned = pollIntervalPinned;
|
|
20729
20803
|
this.cancelled = false;
|
|
20730
20804
|
}
|
|
20731
20805
|
/**
|
|
@@ -20745,6 +20819,9 @@ class Attachment {
|
|
|
20745
20819
|
if (this.syncMode === SyncMode.RealtimePushOnly) {
|
|
20746
20820
|
return this.resource.hasLocalChanges();
|
|
20747
20821
|
}
|
|
20822
|
+
if (this.syncMode === SyncMode.Polling) {
|
|
20823
|
+
return Date.now() - this.lastHeartbeatTime >= this.pollInterval;
|
|
20824
|
+
}
|
|
20748
20825
|
return this.syncMode !== SyncMode.Manual && (this.resource.hasLocalChanges() || (this.changeEventReceived ?? false));
|
|
20749
20826
|
}
|
|
20750
20827
|
/**
|
|
@@ -20758,7 +20835,8 @@ class Attachment {
|
|
|
20758
20835
|
if (this.syncMode === SyncMode.Manual) {
|
|
20759
20836
|
return false;
|
|
20760
20837
|
}
|
|
20761
|
-
|
|
20838
|
+
const interval = this.pollInterval > 0 ? this.pollInterval : heartbeatInterval;
|
|
20839
|
+
return Date.now() - this.lastHeartbeatTime >= interval;
|
|
20762
20840
|
}
|
|
20763
20841
|
/**
|
|
20764
20842
|
* `updateHeartbeatTime` updates the last heartbeat time.
|
|
@@ -20837,6 +20915,16 @@ class Attachment {
|
|
|
20837
20915
|
}
|
|
20838
20916
|
}
|
|
20839
20917
|
}
|
|
20918
|
+
/**
|
|
20919
|
+
* `resetCancelled` clears the cancelled flag so the watch loop can run again
|
|
20920
|
+
* after a previous cancellation (e.g., after changeSyncMode back to Realtime).
|
|
20921
|
+
* Caller must invoke `runWatchLoop` immediately after to claim the stream slot;
|
|
20922
|
+
* `doLoop`'s `if (this.watchStream)` guard prevents double-stream creation if a
|
|
20923
|
+
* delayed `onDisconnect` callback from the previously-cancelled stream races.
|
|
20924
|
+
*/
|
|
20925
|
+
resetCancelled() {
|
|
20926
|
+
this.cancelled = false;
|
|
20927
|
+
}
|
|
20840
20928
|
/**
|
|
20841
20929
|
* `cancelWatchStream` cancels the watch stream.
|
|
20842
20930
|
*/
|
|
@@ -20871,7 +20959,7 @@ function createAuthInterceptor(apiKey, token) {
|
|
|
20871
20959
|
};
|
|
20872
20960
|
}
|
|
20873
20961
|
const name$1 = "@yorkie-js/sdk";
|
|
20874
|
-
const version$1 = "0.7.
|
|
20962
|
+
const version$1 = "0.7.9";
|
|
20875
20963
|
const pkg$1 = {
|
|
20876
20964
|
name: name$1,
|
|
20877
20965
|
version: version$1
|
|
@@ -21154,8 +21242,10 @@ var SyncMode = /* @__PURE__ */ ((SyncMode2) => {
|
|
|
21154
21242
|
SyncMode2["Realtime"] = "realtime";
|
|
21155
21243
|
SyncMode2["RealtimePushOnly"] = "realtime-pushonly";
|
|
21156
21244
|
SyncMode2["RealtimeSyncOff"] = "realtime-syncoff";
|
|
21245
|
+
SyncMode2["Polling"] = "polling";
|
|
21157
21246
|
return SyncMode2;
|
|
21158
21247
|
})(SyncMode || {});
|
|
21248
|
+
const DefaultPollingIntervalMs = 3e3;
|
|
21159
21249
|
const DefaultClientOptions = {
|
|
21160
21250
|
rpcAddr: "https://api.yorkie.dev",
|
|
21161
21251
|
syncLoopDuration: 50,
|
|
@@ -21351,6 +21441,14 @@ class Client {
|
|
|
21351
21441
|
doc.setActor(this.id);
|
|
21352
21442
|
doc.update((_, p) => p.set(opts.initialPresence || {}));
|
|
21353
21443
|
const syncMode = opts.syncMode ?? "realtime";
|
|
21444
|
+
if (opts.documentPollInterval !== void 0 && opts.documentPollInterval <= 0) {
|
|
21445
|
+
throw new YorkieError(
|
|
21446
|
+
Code.ErrInvalidArgument,
|
|
21447
|
+
"documentPollInterval must be greater than 0"
|
|
21448
|
+
);
|
|
21449
|
+
}
|
|
21450
|
+
const pollIntervalPinned = opts.documentPollInterval !== void 0;
|
|
21451
|
+
const pollInterval = pollIntervalPinned ? opts.documentPollInterval : syncMode === "polling" ? DefaultPollingIntervalMs : 0;
|
|
21354
21452
|
return this.enqueueTask(async () => {
|
|
21355
21453
|
try {
|
|
21356
21454
|
const res = await this.rpcClient.attachDocument(
|
|
@@ -21380,10 +21478,12 @@ class Client {
|
|
|
21380
21478
|
this.reconnectStreamDelay,
|
|
21381
21479
|
doc,
|
|
21382
21480
|
res.documentId,
|
|
21383
|
-
syncMode
|
|
21481
|
+
syncMode,
|
|
21482
|
+
pollInterval,
|
|
21483
|
+
pollIntervalPinned
|
|
21384
21484
|
)
|
|
21385
21485
|
);
|
|
21386
|
-
if (syncMode !== "manual") {
|
|
21486
|
+
if (syncMode !== "manual" && syncMode !== "polling") {
|
|
21387
21487
|
await this.runWatchLoop(doc.getKey());
|
|
21388
21488
|
}
|
|
21389
21489
|
logger.info(`[AD] c:"${this.getKey()}" attaches d:"${doc.getKey()}"`);
|
|
@@ -21399,6 +21499,7 @@ class Client {
|
|
|
21399
21499
|
}
|
|
21400
21500
|
});
|
|
21401
21501
|
}
|
|
21502
|
+
doc.clearHistory();
|
|
21402
21503
|
return doc;
|
|
21403
21504
|
} catch (err) {
|
|
21404
21505
|
logger.error(`[AD] c:"${this.getKey()}" err :`, err);
|
|
@@ -21509,12 +21610,23 @@ class Client {
|
|
|
21509
21610
|
channel.setSessionID(res.sessionId);
|
|
21510
21611
|
channel.updateSessionCount(Number(res.sessionCount), 0);
|
|
21511
21612
|
channel.applyStatus(ChannelStatus.Attached);
|
|
21512
|
-
const syncMode = opts.
|
|
21613
|
+
const syncMode = opts.syncMode ?? "realtime";
|
|
21614
|
+
this.assertValidChannelSyncMode(syncMode);
|
|
21615
|
+
if (opts.channelHeartbeatInterval !== void 0 && opts.channelHeartbeatInterval <= 0) {
|
|
21616
|
+
throw new YorkieError(
|
|
21617
|
+
Code.ErrInvalidArgument,
|
|
21618
|
+
"channelHeartbeatInterval must be greater than 0"
|
|
21619
|
+
);
|
|
21620
|
+
}
|
|
21621
|
+
const pollIntervalPinned = opts.channelHeartbeatInterval !== void 0;
|
|
21622
|
+
const pollInterval = pollIntervalPinned ? opts.channelHeartbeatInterval : syncMode === "polling" ? DefaultPollingIntervalMs : this.channelHeartbeatInterval;
|
|
21513
21623
|
const attachment = new Attachment(
|
|
21514
21624
|
this.reconnectStreamDelay,
|
|
21515
21625
|
channel,
|
|
21516
21626
|
res.sessionId,
|
|
21517
|
-
syncMode
|
|
21627
|
+
syncMode,
|
|
21628
|
+
pollInterval,
|
|
21629
|
+
pollIntervalPinned
|
|
21518
21630
|
);
|
|
21519
21631
|
channel.subscribe("local-broadcast", (event) => {
|
|
21520
21632
|
const { topic, payload, options } = event;
|
|
@@ -21590,9 +21702,17 @@ class Client {
|
|
|
21590
21702
|
return this.enqueueTask(task);
|
|
21591
21703
|
}
|
|
21592
21704
|
/**
|
|
21593
|
-
* `changeSyncMode` changes the synchronization mode of the given
|
|
21705
|
+
* `changeSyncMode` changes the synchronization mode of the given resource.
|
|
21594
21706
|
*/
|
|
21595
|
-
async changeSyncMode(
|
|
21707
|
+
async changeSyncMode(resource, syncMode) {
|
|
21708
|
+
return this.enqueueTask(async () => {
|
|
21709
|
+
if (resource instanceof Channel2) {
|
|
21710
|
+
return this.changeChannelSyncMode(resource, syncMode);
|
|
21711
|
+
}
|
|
21712
|
+
return this.changeDocumentSyncMode(resource, syncMode);
|
|
21713
|
+
});
|
|
21714
|
+
}
|
|
21715
|
+
async changeDocumentSyncMode(doc, syncMode) {
|
|
21596
21716
|
if (!this.isActive()) {
|
|
21597
21717
|
throw new YorkieError(
|
|
21598
21718
|
Code.ErrClientNotActivated,
|
|
@@ -21610,19 +21730,66 @@ class Client {
|
|
|
21610
21730
|
if (prevSyncMode === syncMode) {
|
|
21611
21731
|
return doc;
|
|
21612
21732
|
}
|
|
21613
|
-
|
|
21614
|
-
if (syncMode === "manual") {
|
|
21733
|
+
if (syncMode === "manual" || syncMode === "polling") {
|
|
21615
21734
|
attachment.cancelWatchStream();
|
|
21616
|
-
return doc;
|
|
21617
21735
|
}
|
|
21736
|
+
attachment.changeSyncMode(syncMode);
|
|
21618
21737
|
if (syncMode === "realtime") {
|
|
21619
21738
|
attachment.changeEventReceived = true;
|
|
21620
21739
|
}
|
|
21621
|
-
if (
|
|
21740
|
+
if (!attachment.pollIntervalPinned) {
|
|
21741
|
+
attachment.pollInterval = syncMode === "polling" ? DefaultPollingIntervalMs : 0;
|
|
21742
|
+
}
|
|
21743
|
+
if ((prevSyncMode === "manual" || prevSyncMode === "polling") && syncMode !== "manual" && syncMode !== "polling") {
|
|
21744
|
+
attachment.resetCancelled();
|
|
21622
21745
|
await this.runWatchLoop(doc.getKey());
|
|
21623
21746
|
}
|
|
21624
21747
|
return doc;
|
|
21625
21748
|
}
|
|
21749
|
+
/**
|
|
21750
|
+
* `assertValidChannelSyncMode` rejects sync modes that are not valid for
|
|
21751
|
+
* channels. `RealtimePushOnly` and `RealtimeSyncOff` are document-only.
|
|
21752
|
+
*/
|
|
21753
|
+
assertValidChannelSyncMode(syncMode) {
|
|
21754
|
+
if (syncMode !== "manual" && syncMode !== "realtime" && syncMode !== "polling") {
|
|
21755
|
+
throw new YorkieError(
|
|
21756
|
+
Code.ErrInvalidArgument,
|
|
21757
|
+
`invalid channel sync mode: ${syncMode}`
|
|
21758
|
+
);
|
|
21759
|
+
}
|
|
21760
|
+
}
|
|
21761
|
+
async changeChannelSyncMode(channel, syncMode) {
|
|
21762
|
+
if (!this.isActive()) {
|
|
21763
|
+
throw new YorkieError(
|
|
21764
|
+
Code.ErrClientNotActivated,
|
|
21765
|
+
`${this.key} is not active`
|
|
21766
|
+
);
|
|
21767
|
+
}
|
|
21768
|
+
const attachment = this.attachmentMap.get(channel.getKey());
|
|
21769
|
+
if (!attachment) {
|
|
21770
|
+
throw new YorkieError(
|
|
21771
|
+
Code.ErrNotAttached,
|
|
21772
|
+
`${channel.getKey()} is not attached`
|
|
21773
|
+
);
|
|
21774
|
+
}
|
|
21775
|
+
const prevSyncMode = attachment.syncMode;
|
|
21776
|
+
if (prevSyncMode === syncMode) {
|
|
21777
|
+
return channel;
|
|
21778
|
+
}
|
|
21779
|
+
this.assertValidChannelSyncMode(syncMode);
|
|
21780
|
+
if (prevSyncMode === "realtime") {
|
|
21781
|
+
attachment.cancelWatchStream();
|
|
21782
|
+
}
|
|
21783
|
+
attachment.changeSyncMode(syncMode);
|
|
21784
|
+
if (!attachment.pollIntervalPinned) {
|
|
21785
|
+
attachment.pollInterval = syncMode === "polling" ? DefaultPollingIntervalMs : syncMode === "realtime" ? this.channelHeartbeatInterval : 0;
|
|
21786
|
+
}
|
|
21787
|
+
if (syncMode === "realtime") {
|
|
21788
|
+
attachment.resetCancelled();
|
|
21789
|
+
await this.runWatchLoop(channel.getKey());
|
|
21790
|
+
}
|
|
21791
|
+
return channel;
|
|
21792
|
+
}
|
|
21626
21793
|
/**
|
|
21627
21794
|
* `sync` implementation that handles both Document and Channel.
|
|
21628
21795
|
*/
|
|
@@ -21943,6 +22110,36 @@ class Client {
|
|
|
21943
22110
|
};
|
|
21944
22111
|
return this.enqueueTask(task);
|
|
21945
22112
|
}
|
|
22113
|
+
/**
|
|
22114
|
+
* `peekChannel` reads the current session count of a channel without
|
|
22115
|
+
* creating a session on the server. Use this when the caller only needs
|
|
22116
|
+
* to display the count (e.g. "N people writing") without contributing to
|
|
22117
|
+
* it and without receiving broadcasts.
|
|
22118
|
+
*
|
|
22119
|
+
* Unlike `attach({ readOnly: true })`, this does not occupy a `Session`
|
|
22120
|
+
* entry on the server, does not generate heartbeat RPCs, and does not
|
|
22121
|
+
* subscribe to channel events. Polling is the caller's responsibility.
|
|
22122
|
+
*/
|
|
22123
|
+
async peekChannel(channelKey) {
|
|
22124
|
+
if (!this.isActive()) {
|
|
22125
|
+
throw new YorkieError(
|
|
22126
|
+
Code.ErrClientNotActivated,
|
|
22127
|
+
`${this.key} is not active`
|
|
22128
|
+
);
|
|
22129
|
+
}
|
|
22130
|
+
return this.enqueueTask(async () => {
|
|
22131
|
+
const firstKeyPath = channelKey.split(".")[0];
|
|
22132
|
+
const res = await this.rpcClient.peekChannel(
|
|
22133
|
+
{ channelKey },
|
|
22134
|
+
{
|
|
22135
|
+
headers: {
|
|
22136
|
+
"x-shard-key": `${this.apiKey}/${firstKeyPath}`
|
|
22137
|
+
}
|
|
22138
|
+
}
|
|
22139
|
+
);
|
|
22140
|
+
return Number(res.sessionCount);
|
|
22141
|
+
});
|
|
22142
|
+
}
|
|
21946
22143
|
/**
|
|
21947
22144
|
* `broadcast` broadcasts the given payload to the given topic.
|
|
21948
22145
|
*/
|
|
@@ -22437,7 +22634,15 @@ class Client {
|
|
|
22437
22634
|
}
|
|
22438
22635
|
}
|
|
22439
22636
|
);
|
|
22440
|
-
resource.
|
|
22637
|
+
const prevCount = resource.getSessionCount();
|
|
22638
|
+
if (resource.updateSessionCount(Number(res.sessionCount), 0)) {
|
|
22639
|
+
if (resource.getSessionCount() !== prevCount) {
|
|
22640
|
+
resource.publish({
|
|
22641
|
+
type: ChannelEventType.PresenceChanged,
|
|
22642
|
+
count: resource.getSessionCount()
|
|
22643
|
+
});
|
|
22644
|
+
}
|
|
22645
|
+
}
|
|
22441
22646
|
attachment.updateHeartbeatTime();
|
|
22442
22647
|
logger.debug(
|
|
22443
22648
|
`[RP] c:"${this.getKey()}" refreshes p:"${resource.getKey()}" mode:${attachment.syncMode}`
|
|
@@ -22467,6 +22672,7 @@ class Client {
|
|
|
22467
22672
|
return doc;
|
|
22468
22673
|
}
|
|
22469
22674
|
doc.applyChangePack(respPack);
|
|
22675
|
+
attachment.updateHeartbeatTime();
|
|
22470
22676
|
attachment.resource.publish([
|
|
22471
22677
|
{
|
|
22472
22678
|
type: DocEventType.SyncStatusChanged,
|
|
@@ -22792,7 +22998,7 @@ if (typeof globalThis !== "undefined") {
|
|
|
22792
22998
|
};
|
|
22793
22999
|
}
|
|
22794
23000
|
const name = "@yorkie-js/react";
|
|
22795
|
-
const version = "0.7.
|
|
23001
|
+
const version = "0.7.9";
|
|
22796
23002
|
const pkg = {
|
|
22797
23003
|
name,
|
|
22798
23004
|
version
|
|
@@ -22982,7 +23188,7 @@ function shallowEqual(valueA, valueB) {
|
|
|
22982
23188
|
valueB
|
|
22983
23189
|
);
|
|
22984
23190
|
}
|
|
22985
|
-
function useYorkieDocument(client, clientLoading, clientError, docKey, initialRoot, initialPresence, enableDevtools, docStore) {
|
|
23191
|
+
function useYorkieDocument(client, clientLoading, clientError, docKey, initialRoot, initialPresence, enableDevtools, syncMode, documentPollInterval, docStore) {
|
|
22986
23192
|
const initialRootRef = useRef(initialRoot);
|
|
22987
23193
|
const initialPresenceRef = useRef(initialPresence);
|
|
22988
23194
|
const [didMount, setDidMount] = useState(false);
|
|
@@ -23040,7 +23246,9 @@ function useYorkieDocument(client, clientLoading, clientError, docKey, initialRo
|
|
|
23040
23246
|
try {
|
|
23041
23247
|
await client?.attach(newDoc, {
|
|
23042
23248
|
initialRoot: initialRootRef.current,
|
|
23043
|
-
initialPresence: initialPresenceRef.current
|
|
23249
|
+
initialPresence: initialPresenceRef.current,
|
|
23250
|
+
syncMode,
|
|
23251
|
+
documentPollInterval
|
|
23044
23252
|
});
|
|
23045
23253
|
const update = (callback) => {
|
|
23046
23254
|
try {
|
|
@@ -23080,7 +23288,16 @@ function useYorkieDocument(client, clientLoading, clientError, docKey, initialRo
|
|
|
23080
23288
|
unsub();
|
|
23081
23289
|
}
|
|
23082
23290
|
};
|
|
23083
|
-
}, [
|
|
23291
|
+
}, [
|
|
23292
|
+
client,
|
|
23293
|
+
clientLoading,
|
|
23294
|
+
clientError,
|
|
23295
|
+
docKey,
|
|
23296
|
+
docStore,
|
|
23297
|
+
didMount,
|
|
23298
|
+
syncMode,
|
|
23299
|
+
documentPollInterval
|
|
23300
|
+
]);
|
|
23084
23301
|
}
|
|
23085
23302
|
const DocumentContext = createContext(void 0);
|
|
23086
23303
|
const DocumentProvider = ({
|
|
@@ -23088,6 +23305,8 @@ const DocumentProvider = ({
|
|
|
23088
23305
|
initialRoot = {},
|
|
23089
23306
|
initialPresence = {},
|
|
23090
23307
|
enableDevtools = false,
|
|
23308
|
+
syncMode,
|
|
23309
|
+
documentPollInterval,
|
|
23091
23310
|
children
|
|
23092
23311
|
}) => {
|
|
23093
23312
|
const { client, loading: clientLoading, error: clientError } = useYorkie();
|
|
@@ -23113,6 +23332,8 @@ const DocumentProvider = ({
|
|
|
23113
23332
|
initialRoot,
|
|
23114
23333
|
initialPresence,
|
|
23115
23334
|
enableDevtools,
|
|
23335
|
+
syncMode,
|
|
23336
|
+
documentPollInterval,
|
|
23116
23337
|
documentStore
|
|
23117
23338
|
);
|
|
23118
23339
|
return /* @__PURE__ */ jsx(DocumentContext.Provider, { value: documentStore, children });
|
|
@@ -23230,6 +23451,8 @@ function useYorkieDoc(apiKey, docKey, opts) {
|
|
|
23230
23451
|
opts?.initialRoot ?? {},
|
|
23231
23452
|
opts?.initialPresence ?? {},
|
|
23232
23453
|
opts?.enableDevtools ?? false,
|
|
23454
|
+
opts?.syncMode,
|
|
23455
|
+
opts?.documentPollInterval,
|
|
23233
23456
|
documentStore
|
|
23234
23457
|
);
|
|
23235
23458
|
const documentState = useSelector(documentStore);
|
|
@@ -23248,7 +23471,7 @@ function createChannelStore(initialState) {
|
|
|
23248
23471
|
const ChannelContext = createContext(
|
|
23249
23472
|
void 0
|
|
23250
23473
|
);
|
|
23251
|
-
function useYorkieChannel(client, clientLoading, clientError, channelKey,
|
|
23474
|
+
function useYorkieChannel(client, clientLoading, clientError, channelKey, syncMode, channelHeartbeatInterval, channelStore) {
|
|
23252
23475
|
const channelRef = useRef(void 0);
|
|
23253
23476
|
const [didMount, setDidMount] = useState(false);
|
|
23254
23477
|
useEffect(() => {
|
|
@@ -23277,7 +23500,7 @@ function useYorkieChannel(client, clientLoading, clientError, channelKey, isReal
|
|
|
23277
23500
|
}));
|
|
23278
23501
|
try {
|
|
23279
23502
|
const newChannel = new Channel2(channelKey);
|
|
23280
|
-
await client.attach(newChannel, {
|
|
23503
|
+
await client.attach(newChannel, { syncMode, channelHeartbeatInterval });
|
|
23281
23504
|
channelRef.current = newChannel;
|
|
23282
23505
|
unsubscribe = newChannel.subscribe(() => {
|
|
23283
23506
|
channelStore.setState((state) => ({
|
|
@@ -23315,12 +23538,22 @@ function useYorkieChannel(client, clientLoading, clientError, channelKey, isReal
|
|
|
23315
23538
|
}
|
|
23316
23539
|
detachChannel();
|
|
23317
23540
|
};
|
|
23318
|
-
}, [
|
|
23541
|
+
}, [
|
|
23542
|
+
client,
|
|
23543
|
+
clientLoading,
|
|
23544
|
+
clientError,
|
|
23545
|
+
channelKey,
|
|
23546
|
+
syncMode,
|
|
23547
|
+
channelHeartbeatInterval,
|
|
23548
|
+
didMount
|
|
23549
|
+
]);
|
|
23319
23550
|
}
|
|
23320
23551
|
const ChannelProvider = ({
|
|
23321
23552
|
children,
|
|
23322
23553
|
channelKey,
|
|
23323
|
-
|
|
23554
|
+
syncMode,
|
|
23555
|
+
isRealtime,
|
|
23556
|
+
channelHeartbeatInterval
|
|
23324
23557
|
}) => {
|
|
23325
23558
|
const { client, loading: clientLoading, error: clientError } = useYorkie();
|
|
23326
23559
|
const channelStoreRef = useRef(
|
|
@@ -23335,12 +23568,14 @@ const ChannelProvider = ({
|
|
|
23335
23568
|
});
|
|
23336
23569
|
}
|
|
23337
23570
|
const channelStore = channelStoreRef.current;
|
|
23571
|
+
const resolvedSyncMode = syncMode ?? (isRealtime === false ? SyncMode.Manual : SyncMode.Realtime);
|
|
23338
23572
|
useYorkieChannel(
|
|
23339
23573
|
client,
|
|
23340
23574
|
clientLoading,
|
|
23341
23575
|
clientError,
|
|
23342
23576
|
channelKey,
|
|
23343
|
-
|
|
23577
|
+
resolvedSyncMode,
|
|
23578
|
+
channelHeartbeatInterval,
|
|
23344
23579
|
channelStore
|
|
23345
23580
|
);
|
|
23346
23581
|
return /* @__PURE__ */ jsx(ChannelContext.Provider, { value: channelStore, children });
|
|
@@ -23363,10 +23598,80 @@ const useChannelSessionCount = () => {
|
|
|
23363
23598
|
const channelStore = useChannelStore("useChannelSessionCount");
|
|
23364
23599
|
return useSelector(channelStore, (state) => state.sessionCount);
|
|
23365
23600
|
};
|
|
23601
|
+
function usePeekChannel(channelKey, opts = {}) {
|
|
23602
|
+
const { client, loading: clientLoading, error: clientError } = useYorkie();
|
|
23603
|
+
const { pollInterval, enabled = true } = opts;
|
|
23604
|
+
const [sessionCount, setSessionCount] = useState(0);
|
|
23605
|
+
const [loading, setLoading] = useState(true);
|
|
23606
|
+
const [error, setError] = useState(clientError);
|
|
23607
|
+
const channelKeyRef = useRef(channelKey);
|
|
23608
|
+
channelKeyRef.current = channelKey;
|
|
23609
|
+
const mountedRef = useRef(true);
|
|
23610
|
+
useEffect(() => {
|
|
23611
|
+
mountedRef.current = true;
|
|
23612
|
+
return () => {
|
|
23613
|
+
mountedRef.current = false;
|
|
23614
|
+
};
|
|
23615
|
+
}, []);
|
|
23616
|
+
const peekOnce = useCallback(async () => {
|
|
23617
|
+
if (!client || !client.isActive()) return;
|
|
23618
|
+
if (mountedRef.current) setLoading(true);
|
|
23619
|
+
try {
|
|
23620
|
+
const count = await client.peekChannel(channelKeyRef.current);
|
|
23621
|
+
if (!mountedRef.current) return;
|
|
23622
|
+
setSessionCount(count);
|
|
23623
|
+
setError(void 0);
|
|
23624
|
+
} catch (e) {
|
|
23625
|
+
if (!mountedRef.current) return;
|
|
23626
|
+
setError(e instanceof Error ? e : new Error(String(e)));
|
|
23627
|
+
} finally {
|
|
23628
|
+
if (mountedRef.current) setLoading(false);
|
|
23629
|
+
}
|
|
23630
|
+
}, [client]);
|
|
23631
|
+
useEffect(() => {
|
|
23632
|
+
if (clientError) {
|
|
23633
|
+
setError(clientError);
|
|
23634
|
+
setLoading(false);
|
|
23635
|
+
return;
|
|
23636
|
+
}
|
|
23637
|
+
setLoading(true);
|
|
23638
|
+
if (!enabled) {
|
|
23639
|
+
setLoading(false);
|
|
23640
|
+
return;
|
|
23641
|
+
}
|
|
23642
|
+
if (clientLoading || !client) return;
|
|
23643
|
+
let cancelled = false;
|
|
23644
|
+
let timer;
|
|
23645
|
+
const run = async () => {
|
|
23646
|
+
if (cancelled || !client.isActive()) return;
|
|
23647
|
+
try {
|
|
23648
|
+
const count = await client.peekChannel(channelKey);
|
|
23649
|
+
if (cancelled) return;
|
|
23650
|
+
setSessionCount(count);
|
|
23651
|
+
setError(void 0);
|
|
23652
|
+
} catch (e) {
|
|
23653
|
+
if (cancelled) return;
|
|
23654
|
+
setError(e instanceof Error ? e : new Error(String(e)));
|
|
23655
|
+
} finally {
|
|
23656
|
+
if (!cancelled) setLoading(false);
|
|
23657
|
+
}
|
|
23658
|
+
if (!cancelled && pollInterval !== void 0 && pollInterval > 0) {
|
|
23659
|
+
timer = setTimeout(run, pollInterval);
|
|
23660
|
+
}
|
|
23661
|
+
};
|
|
23662
|
+
run();
|
|
23663
|
+
return () => {
|
|
23664
|
+
cancelled = true;
|
|
23665
|
+
if (timer) clearTimeout(timer);
|
|
23666
|
+
};
|
|
23667
|
+
}, [client, clientLoading, clientError, channelKey, pollInterval, enabled]);
|
|
23668
|
+
return { sessionCount, loading, error, refetch: peekOnce };
|
|
23669
|
+
}
|
|
23366
23670
|
export {
|
|
23367
23671
|
ChannelProvider,
|
|
23368
23672
|
Counter,
|
|
23369
23673
|
DocumentProvider,
|
|
23674
|
+
SyncMode,
|
|
23370
23675
|
Text,
|
|
23371
23676
|
Tree,
|
|
23372
23677
|
YorkieProvider,
|
|
@@ -23376,6 +23681,7 @@ export {
|
|
|
23376
23681
|
useChannelSessionCount,
|
|
23377
23682
|
useConnection,
|
|
23378
23683
|
useDocument,
|
|
23684
|
+
usePeekChannel,
|
|
23379
23685
|
usePresences,
|
|
23380
23686
|
useRevisions,
|
|
23381
23687
|
useRoot,
|