@yorkie-js/sdk 0.7.4 → 0.7.5
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/counter.html +1 -1
- package/dist/multi.html +1 -1
- package/dist/yorkie-js-sdk.d.ts +126 -40
- package/dist/yorkie-js-sdk.es.js +1008 -1059
- package/dist/yorkie-js-sdk.es.js.map +1 -1
- package/dist/yorkie-js-sdk.js +990 -1041
- package/dist/yorkie-js-sdk.js.map +1 -1
- package/package.json +2 -4
package/dist/yorkie-js-sdk.js
CHANGED
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
}
|
|
105
105
|
bytes.push(hi >>> 31 & 1);
|
|
106
106
|
}
|
|
107
|
-
const TWO_PWR_32_DBL
|
|
107
|
+
const TWO_PWR_32_DBL = 4294967296;
|
|
108
108
|
function int64FromString(dec) {
|
|
109
109
|
const minus = dec[0] === "-";
|
|
110
110
|
if (minus) {
|
|
@@ -117,9 +117,9 @@
|
|
|
117
117
|
const digit1e6 = Number(dec.slice(begin, end));
|
|
118
118
|
highBits *= base;
|
|
119
119
|
lowBits = lowBits * base + digit1e6;
|
|
120
|
-
if (lowBits >= TWO_PWR_32_DBL
|
|
121
|
-
highBits = highBits + (lowBits / TWO_PWR_32_DBL
|
|
122
|
-
lowBits = lowBits % TWO_PWR_32_DBL
|
|
120
|
+
if (lowBits >= TWO_PWR_32_DBL) {
|
|
121
|
+
highBits = highBits + (lowBits / TWO_PWR_32_DBL | 0);
|
|
122
|
+
lowBits = lowBits % TWO_PWR_32_DBL;
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
add1e6digit(-24, -18);
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
function uInt64ToString(lo, hi) {
|
|
141
141
|
({ lo, hi } = toUnsigned(lo, hi));
|
|
142
142
|
if (hi <= 2097151) {
|
|
143
|
-
return String(TWO_PWR_32_DBL
|
|
143
|
+
return String(TWO_PWR_32_DBL * hi + lo);
|
|
144
144
|
}
|
|
145
145
|
const low = lo & 16777215;
|
|
146
146
|
const mid = (lo >>> 24 | hi << 8) & 16777215;
|
|
@@ -4387,6 +4387,19 @@
|
|
|
4387
4387
|
}
|
|
4388
4388
|
return name2[0].toLowerCase() + name2.substring(1).replace(/[A-Z]/g, (c) => "_" + c.toLowerCase());
|
|
4389
4389
|
}
|
|
4390
|
+
let stringToCode;
|
|
4391
|
+
function codeFromString(value) {
|
|
4392
|
+
if (!stringToCode) {
|
|
4393
|
+
stringToCode = {};
|
|
4394
|
+
for (const value2 of Object.values(Code$1)) {
|
|
4395
|
+
if (typeof value2 == "string") {
|
|
4396
|
+
continue;
|
|
4397
|
+
}
|
|
4398
|
+
stringToCode[codeToString(value2)] = value2;
|
|
4399
|
+
}
|
|
4400
|
+
}
|
|
4401
|
+
return stringToCode[value];
|
|
4402
|
+
}
|
|
4390
4403
|
class ConnectError extends Error {
|
|
4391
4404
|
/**
|
|
4392
4405
|
* Create a new ConnectError.
|
|
@@ -4475,6 +4488,15 @@
|
|
|
4475
4488
|
throw ConnectError.from(e, Code$1.DataLoss);
|
|
4476
4489
|
}
|
|
4477
4490
|
}
|
|
4491
|
+
function appendHeaders(...headers) {
|
|
4492
|
+
const h = new Headers();
|
|
4493
|
+
for (const e of headers) {
|
|
4494
|
+
e.forEach((value, key) => {
|
|
4495
|
+
h.append(key, value);
|
|
4496
|
+
});
|
|
4497
|
+
}
|
|
4498
|
+
return h;
|
|
4499
|
+
}
|
|
4478
4500
|
function makeAnyClient(service, createMethod) {
|
|
4479
4501
|
const client = {};
|
|
4480
4502
|
for (const desc of service.methods) {
|
|
@@ -4622,10 +4644,10 @@
|
|
|
4622
4644
|
}, reject);
|
|
4623
4645
|
}
|
|
4624
4646
|
};
|
|
4625
|
-
var __await$
|
|
4626
|
-
return this instanceof __await$
|
|
4647
|
+
var __await$3 = function(v) {
|
|
4648
|
+
return this instanceof __await$3 ? (this.v = v, this) : new __await$3(v);
|
|
4627
4649
|
};
|
|
4628
|
-
var __asyncGenerator$
|
|
4650
|
+
var __asyncGenerator$3 = function(thisArg, _arguments, generator) {
|
|
4629
4651
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
4630
4652
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
4631
4653
|
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
|
|
@@ -4654,7 +4676,7 @@
|
|
|
4654
4676
|
}
|
|
4655
4677
|
}
|
|
4656
4678
|
function step(r) {
|
|
4657
|
-
r.value instanceof __await$
|
|
4679
|
+
r.value instanceof __await$3 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
|
|
4658
4680
|
}
|
|
4659
4681
|
function fulfill(value) {
|
|
4660
4682
|
resume("next", value);
|
|
@@ -4675,13 +4697,13 @@
|
|
|
4675
4697
|
}, i;
|
|
4676
4698
|
function verb(n, f) {
|
|
4677
4699
|
i[n] = o[n] ? function(v) {
|
|
4678
|
-
return (p = !p) ? { value: __await$
|
|
4700
|
+
return (p = !p) ? { value: __await$3(o[n](v)), done: false } : f ? f(v) : v;
|
|
4679
4701
|
} : f;
|
|
4680
4702
|
}
|
|
4681
4703
|
};
|
|
4682
4704
|
function createAsyncIterable(items) {
|
|
4683
|
-
return __asyncGenerator$
|
|
4684
|
-
yield __await$
|
|
4705
|
+
return __asyncGenerator$3(this, arguments, function* createAsyncIterable_1() {
|
|
4706
|
+
yield __await$3(yield* __asyncDelegator$1(__asyncValues$1(items)));
|
|
4685
4707
|
});
|
|
4686
4708
|
}
|
|
4687
4709
|
var __asyncValues = function(o) {
|
|
@@ -4703,8 +4725,8 @@
|
|
|
4703
4725
|
}, reject);
|
|
4704
4726
|
}
|
|
4705
4727
|
};
|
|
4706
|
-
var __await$
|
|
4707
|
-
return this instanceof __await$
|
|
4728
|
+
var __await$2 = function(v) {
|
|
4729
|
+
return this instanceof __await$2 ? (this.v = v, this) : new __await$2(v);
|
|
4708
4730
|
};
|
|
4709
4731
|
var __asyncDelegator = function(o) {
|
|
4710
4732
|
var i, p;
|
|
@@ -4715,11 +4737,11 @@
|
|
|
4715
4737
|
}, i;
|
|
4716
4738
|
function verb(n, f) {
|
|
4717
4739
|
i[n] = o[n] ? function(v) {
|
|
4718
|
-
return (p = !p) ? { value: __await$
|
|
4740
|
+
return (p = !p) ? { value: __await$2(o[n](v)), done: false } : f ? f(v) : v;
|
|
4719
4741
|
} : f;
|
|
4720
4742
|
}
|
|
4721
4743
|
};
|
|
4722
|
-
var __asyncGenerator$
|
|
4744
|
+
var __asyncGenerator$2 = function(thisArg, _arguments, generator) {
|
|
4723
4745
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
4724
4746
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
4725
4747
|
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
|
|
@@ -4748,7 +4770,7 @@
|
|
|
4748
4770
|
}
|
|
4749
4771
|
}
|
|
4750
4772
|
function step(r) {
|
|
4751
|
-
r.value instanceof __await$
|
|
4773
|
+
r.value instanceof __await$2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
|
|
4752
4774
|
}
|
|
4753
4775
|
function fulfill(value) {
|
|
4754
4776
|
resume("next", value);
|
|
@@ -4828,11 +4850,11 @@
|
|
|
4828
4850
|
}
|
|
4829
4851
|
function handleStreamResponse(stream, options) {
|
|
4830
4852
|
const it = (function() {
|
|
4831
|
-
return __asyncGenerator$
|
|
4853
|
+
return __asyncGenerator$2(this, arguments, function* () {
|
|
4832
4854
|
var _a, _b;
|
|
4833
|
-
const response = yield __await$
|
|
4855
|
+
const response = yield __await$2(stream);
|
|
4834
4856
|
(_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);
|
|
4835
|
-
yield __await$
|
|
4857
|
+
yield __await$2(yield* __asyncDelegator(__asyncValues(response.message)));
|
|
4836
4858
|
(_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);
|
|
4837
4859
|
});
|
|
4838
4860
|
})()[Symbol.asyncIterator]();
|
|
@@ -4922,12 +4944,12 @@
|
|
|
4922
4944
|
}
|
|
4923
4945
|
return headers;
|
|
4924
4946
|
}
|
|
4925
|
-
const headerContentType = "Content-Type";
|
|
4926
|
-
const headerTimeout = "Grpc-Timeout";
|
|
4947
|
+
const headerContentType$1 = "Content-Type";
|
|
4948
|
+
const headerTimeout$1 = "Grpc-Timeout";
|
|
4927
4949
|
const headerGrpcStatus = "Grpc-Status";
|
|
4928
4950
|
const headerGrpcMessage = "Grpc-Message";
|
|
4929
4951
|
const headerStatusDetailsBin = "Grpc-Status-Details-Bin";
|
|
4930
|
-
const headerUserAgent = "User-Agent";
|
|
4952
|
+
const headerUserAgent$1 = "User-Agent";
|
|
4931
4953
|
const headerXUserAgent = "X-User-Agent";
|
|
4932
4954
|
const headerXGrpcWeb = "X-Grpc-Web";
|
|
4933
4955
|
const contentTypeProto = "application/grpc-web+proto";
|
|
@@ -5065,6 +5087,204 @@
|
|
|
5065
5087
|
}
|
|
5066
5088
|
};
|
|
5067
5089
|
}
|
|
5090
|
+
const contentTypeRegExp = /^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;
|
|
5091
|
+
const contentTypeUnaryProto = "application/proto";
|
|
5092
|
+
const contentTypeUnaryJson = "application/json";
|
|
5093
|
+
const contentTypeStreamProto = "application/connect+proto";
|
|
5094
|
+
const contentTypeStreamJson = "application/connect+json";
|
|
5095
|
+
function parseContentType(contentType) {
|
|
5096
|
+
const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp);
|
|
5097
|
+
if (!match) {
|
|
5098
|
+
return void 0;
|
|
5099
|
+
}
|
|
5100
|
+
const stream = !!match[1];
|
|
5101
|
+
const binary = !!match[3];
|
|
5102
|
+
return { stream, binary };
|
|
5103
|
+
}
|
|
5104
|
+
(function(s, e) {
|
|
5105
|
+
var t = {};
|
|
5106
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5107
|
+
t[p] = s[p];
|
|
5108
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
5109
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
5110
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
5111
|
+
t[p[i]] = s[p[i]];
|
|
5112
|
+
}
|
|
5113
|
+
return t;
|
|
5114
|
+
});
|
|
5115
|
+
function errorFromJson(jsonValue, metadata, fallback) {
|
|
5116
|
+
var _a;
|
|
5117
|
+
if (metadata) {
|
|
5118
|
+
new Headers(metadata).forEach((value, key) => fallback.metadata.append(key, value));
|
|
5119
|
+
}
|
|
5120
|
+
if (typeof jsonValue !== "object" || jsonValue == null || Array.isArray(jsonValue)) {
|
|
5121
|
+
throw fallback;
|
|
5122
|
+
}
|
|
5123
|
+
let code = fallback.code;
|
|
5124
|
+
if ("code" in jsonValue && typeof jsonValue.code === "string") {
|
|
5125
|
+
code = (_a = codeFromString(jsonValue.code)) !== null && _a !== void 0 ? _a : code;
|
|
5126
|
+
}
|
|
5127
|
+
const message = jsonValue.message;
|
|
5128
|
+
if (message != null && typeof message !== "string") {
|
|
5129
|
+
throw fallback;
|
|
5130
|
+
}
|
|
5131
|
+
const error = new ConnectError(message !== null && message !== void 0 ? message : "", code, metadata);
|
|
5132
|
+
if ("details" in jsonValue && Array.isArray(jsonValue.details)) {
|
|
5133
|
+
for (const detail of jsonValue.details) {
|
|
5134
|
+
if (detail === null || typeof detail != "object" || Array.isArray(detail) || typeof detail.type != "string" || typeof detail.value != "string") {
|
|
5135
|
+
throw fallback;
|
|
5136
|
+
}
|
|
5137
|
+
try {
|
|
5138
|
+
error.details.push({
|
|
5139
|
+
type: detail.type,
|
|
5140
|
+
value: base64Decode(detail.value),
|
|
5141
|
+
debug: detail.debug
|
|
5142
|
+
});
|
|
5143
|
+
} catch (e) {
|
|
5144
|
+
throw fallback;
|
|
5145
|
+
}
|
|
5146
|
+
}
|
|
5147
|
+
}
|
|
5148
|
+
return error;
|
|
5149
|
+
}
|
|
5150
|
+
const endStreamFlag = 2;
|
|
5151
|
+
function endStreamFromJson(data) {
|
|
5152
|
+
const parseErr = new ConnectError("invalid end stream", Code$1.Unknown);
|
|
5153
|
+
let jsonValue;
|
|
5154
|
+
try {
|
|
5155
|
+
jsonValue = JSON.parse(typeof data == "string" ? data : new TextDecoder().decode(data));
|
|
5156
|
+
} catch (e) {
|
|
5157
|
+
throw parseErr;
|
|
5158
|
+
}
|
|
5159
|
+
if (typeof jsonValue != "object" || jsonValue == null || Array.isArray(jsonValue)) {
|
|
5160
|
+
throw parseErr;
|
|
5161
|
+
}
|
|
5162
|
+
const metadata = new Headers();
|
|
5163
|
+
if ("metadata" in jsonValue) {
|
|
5164
|
+
if (typeof jsonValue.metadata != "object" || jsonValue.metadata == null || Array.isArray(jsonValue.metadata)) {
|
|
5165
|
+
throw parseErr;
|
|
5166
|
+
}
|
|
5167
|
+
for (const [key, values] of Object.entries(jsonValue.metadata)) {
|
|
5168
|
+
if (!Array.isArray(values) || values.some((value) => typeof value != "string")) {
|
|
5169
|
+
throw parseErr;
|
|
5170
|
+
}
|
|
5171
|
+
for (const value of values) {
|
|
5172
|
+
metadata.append(key, value);
|
|
5173
|
+
}
|
|
5174
|
+
}
|
|
5175
|
+
}
|
|
5176
|
+
const error = "error" in jsonValue && jsonValue.error != null ? errorFromJson(jsonValue.error, metadata, parseErr) : void 0;
|
|
5177
|
+
return { metadata, error };
|
|
5178
|
+
}
|
|
5179
|
+
const headerContentType = "Content-Type";
|
|
5180
|
+
const headerUnaryContentLength = "Content-Length";
|
|
5181
|
+
const headerUnaryEncoding = "Content-Encoding";
|
|
5182
|
+
const headerUnaryAcceptEncoding = "Accept-Encoding";
|
|
5183
|
+
const headerTimeout = "Connect-Timeout-Ms";
|
|
5184
|
+
const headerProtocolVersion = "Connect-Protocol-Version";
|
|
5185
|
+
const headerUserAgent = "User-Agent";
|
|
5186
|
+
function codeFromHttpStatus$1(httpStatus) {
|
|
5187
|
+
switch (httpStatus) {
|
|
5188
|
+
case 400:
|
|
5189
|
+
return Code$1.Internal;
|
|
5190
|
+
case 401:
|
|
5191
|
+
return Code$1.Unauthenticated;
|
|
5192
|
+
case 403:
|
|
5193
|
+
return Code$1.PermissionDenied;
|
|
5194
|
+
case 404:
|
|
5195
|
+
return Code$1.Unimplemented;
|
|
5196
|
+
case 429:
|
|
5197
|
+
return Code$1.Unavailable;
|
|
5198
|
+
case 502:
|
|
5199
|
+
return Code$1.Unavailable;
|
|
5200
|
+
case 503:
|
|
5201
|
+
return Code$1.Unavailable;
|
|
5202
|
+
case 504:
|
|
5203
|
+
return Code$1.Unavailable;
|
|
5204
|
+
default:
|
|
5205
|
+
return Code$1.Unknown;
|
|
5206
|
+
}
|
|
5207
|
+
}
|
|
5208
|
+
function trailerDemux(header) {
|
|
5209
|
+
const h = new Headers(), t = new Headers();
|
|
5210
|
+
header.forEach((value, key) => {
|
|
5211
|
+
if (key.toLowerCase().startsWith("trailer-")) {
|
|
5212
|
+
t.append(key.substring(8), value);
|
|
5213
|
+
} else {
|
|
5214
|
+
h.append(key, value);
|
|
5215
|
+
}
|
|
5216
|
+
});
|
|
5217
|
+
return [h, t];
|
|
5218
|
+
}
|
|
5219
|
+
const protocolVersion = "1";
|
|
5220
|
+
function requestHeader$1(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {
|
|
5221
|
+
const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});
|
|
5222
|
+
if (timeoutMs !== void 0) {
|
|
5223
|
+
result.set(headerTimeout, `${timeoutMs}`);
|
|
5224
|
+
}
|
|
5225
|
+
result.set(headerContentType, methodKind == "unary" ? useBinaryFormat ? contentTypeUnaryProto : contentTypeUnaryJson : useBinaryFormat ? contentTypeStreamProto : contentTypeStreamJson);
|
|
5226
|
+
result.set(headerProtocolVersion, protocolVersion);
|
|
5227
|
+
if (!result.has(headerUserAgent) && setUserAgent) ;
|
|
5228
|
+
return result;
|
|
5229
|
+
}
|
|
5230
|
+
function validateResponse$1(methodKind, useBinaryFormat, status, headers) {
|
|
5231
|
+
const mimeType = headers.get(headerContentType);
|
|
5232
|
+
const parsedType = parseContentType(mimeType);
|
|
5233
|
+
if (status !== 200) {
|
|
5234
|
+
const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus$1(status), headers);
|
|
5235
|
+
if (methodKind == "unary" && parsedType && !parsedType.binary) {
|
|
5236
|
+
return { isUnaryError: true, unaryError: errorFromStatus };
|
|
5237
|
+
}
|
|
5238
|
+
throw errorFromStatus;
|
|
5239
|
+
}
|
|
5240
|
+
const allowedContentType = {
|
|
5241
|
+
binary: useBinaryFormat,
|
|
5242
|
+
stream: methodKind !== "unary"
|
|
5243
|
+
};
|
|
5244
|
+
if ((parsedType === null || parsedType === void 0 ? void 0 : parsedType.binary) !== allowedContentType.binary || parsedType.stream !== allowedContentType.stream) {
|
|
5245
|
+
throw new ConnectError(`unsupported content type ${mimeType}`, parsedType === void 0 ? Code$1.Unknown : Code$1.Internal, headers);
|
|
5246
|
+
}
|
|
5247
|
+
return { isUnaryError: false };
|
|
5248
|
+
}
|
|
5249
|
+
const contentTypePrefix = "application/";
|
|
5250
|
+
function encodeMessageForUrl(message, useBase64) {
|
|
5251
|
+
if (useBase64) {
|
|
5252
|
+
return base64Encode(message, "url");
|
|
5253
|
+
}
|
|
5254
|
+
return encodeURIComponent(new TextDecoder().decode(message));
|
|
5255
|
+
}
|
|
5256
|
+
function transformConnectPostToGetRequest(request, message, useBase64) {
|
|
5257
|
+
let query = `?connect=v${protocolVersion}`;
|
|
5258
|
+
const contentType = request.header.get(headerContentType);
|
|
5259
|
+
if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) {
|
|
5260
|
+
query += "&encoding=" + encodeURIComponent(contentType.slice(contentTypePrefix.length));
|
|
5261
|
+
}
|
|
5262
|
+
const compression = request.header.get(headerUnaryEncoding);
|
|
5263
|
+
if (compression !== null && compression !== "identity") {
|
|
5264
|
+
query += "&compression=" + encodeURIComponent(compression);
|
|
5265
|
+
useBase64 = true;
|
|
5266
|
+
}
|
|
5267
|
+
if (useBase64) {
|
|
5268
|
+
query += "&base64=1";
|
|
5269
|
+
}
|
|
5270
|
+
query += "&message=" + encodeMessageForUrl(message, useBase64);
|
|
5271
|
+
const url = request.url + query;
|
|
5272
|
+
const header = new Headers(request.header);
|
|
5273
|
+
for (const h of [
|
|
5274
|
+
headerProtocolVersion,
|
|
5275
|
+
headerContentType,
|
|
5276
|
+
headerUnaryContentLength,
|
|
5277
|
+
headerUnaryEncoding,
|
|
5278
|
+
headerUnaryAcceptEncoding
|
|
5279
|
+
]) {
|
|
5280
|
+
header.delete(h);
|
|
5281
|
+
}
|
|
5282
|
+
return Object.assign(Object.assign({}, request), {
|
|
5283
|
+
requestMethod: "GET",
|
|
5284
|
+
url,
|
|
5285
|
+
header
|
|
5286
|
+
});
|
|
5287
|
+
}
|
|
5068
5288
|
function runUnaryCall(opt) {
|
|
5069
5289
|
const next = applyInterceptors(opt.next, opt.interceptors);
|
|
5070
5290
|
const [signal, abort, done] = setupSignal(opt);
|
|
@@ -5133,6 +5353,181 @@
|
|
|
5133
5353
|
throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.");
|
|
5134
5354
|
}
|
|
5135
5355
|
}
|
|
5356
|
+
var __await$1 = function(v) {
|
|
5357
|
+
return this instanceof __await$1 ? (this.v = v, this) : new __await$1(v);
|
|
5358
|
+
};
|
|
5359
|
+
var __asyncGenerator$1 = function(thisArg, _arguments, generator) {
|
|
5360
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
5361
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
5362
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() {
|
|
5363
|
+
return this;
|
|
5364
|
+
}, i;
|
|
5365
|
+
function awaitReturn(f) {
|
|
5366
|
+
return function(v) {
|
|
5367
|
+
return Promise.resolve(v).then(f, reject);
|
|
5368
|
+
};
|
|
5369
|
+
}
|
|
5370
|
+
function verb(n, f) {
|
|
5371
|
+
if (g[n]) {
|
|
5372
|
+
i[n] = function(v) {
|
|
5373
|
+
return new Promise(function(a, b) {
|
|
5374
|
+
q.push([n, v, a, b]) > 1 || resume(n, v);
|
|
5375
|
+
});
|
|
5376
|
+
};
|
|
5377
|
+
if (f) i[n] = f(i[n]);
|
|
5378
|
+
}
|
|
5379
|
+
}
|
|
5380
|
+
function resume(n, v) {
|
|
5381
|
+
try {
|
|
5382
|
+
step(g[n](v));
|
|
5383
|
+
} catch (e) {
|
|
5384
|
+
settle(q[0][3], e);
|
|
5385
|
+
}
|
|
5386
|
+
}
|
|
5387
|
+
function step(r) {
|
|
5388
|
+
r.value instanceof __await$1 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
|
|
5389
|
+
}
|
|
5390
|
+
function fulfill(value) {
|
|
5391
|
+
resume("next", value);
|
|
5392
|
+
}
|
|
5393
|
+
function reject(value) {
|
|
5394
|
+
resume("throw", value);
|
|
5395
|
+
}
|
|
5396
|
+
function settle(f, v) {
|
|
5397
|
+
if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
|
|
5398
|
+
}
|
|
5399
|
+
};
|
|
5400
|
+
const fetchOptions$1 = {
|
|
5401
|
+
redirect: "error"
|
|
5402
|
+
};
|
|
5403
|
+
function createConnectTransport(options) {
|
|
5404
|
+
var _a;
|
|
5405
|
+
assertFetchApi();
|
|
5406
|
+
const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false;
|
|
5407
|
+
return {
|
|
5408
|
+
async unary(method, signal, timeoutMs, header, message, contextValues) {
|
|
5409
|
+
const { serialize, parse: parse2 } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);
|
|
5410
|
+
timeoutMs = timeoutMs === void 0 ? options.defaultTimeoutMs : timeoutMs <= 0 ? void 0 : timeoutMs;
|
|
5411
|
+
return await runUnaryCall({
|
|
5412
|
+
interceptors: options.interceptors,
|
|
5413
|
+
signal,
|
|
5414
|
+
timeoutMs,
|
|
5415
|
+
req: {
|
|
5416
|
+
stream: false,
|
|
5417
|
+
service: method.parent,
|
|
5418
|
+
method,
|
|
5419
|
+
requestMethod: "POST",
|
|
5420
|
+
url: createMethodUrl(options.baseUrl, method),
|
|
5421
|
+
header: requestHeader$1(method.methodKind, useBinaryFormat, timeoutMs, header, false),
|
|
5422
|
+
contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),
|
|
5423
|
+
message
|
|
5424
|
+
},
|
|
5425
|
+
next: async (req) => {
|
|
5426
|
+
var _a2;
|
|
5427
|
+
const useGet = options.useHttpGet === true && method.idempotency === MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS;
|
|
5428
|
+
let body = null;
|
|
5429
|
+
if (useGet) {
|
|
5430
|
+
req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat);
|
|
5431
|
+
} else {
|
|
5432
|
+
body = serialize(req.message);
|
|
5433
|
+
}
|
|
5434
|
+
const fetch2 = (_a2 = options.fetch) !== null && _a2 !== void 0 ? _a2 : globalThis.fetch;
|
|
5435
|
+
const response = await fetch2(req.url, Object.assign(Object.assign({}, fetchOptions$1), { method: req.requestMethod, headers: req.header, signal: req.signal, body }));
|
|
5436
|
+
const { isUnaryError, unaryError } = validateResponse$1(method.methodKind, useBinaryFormat, response.status, response.headers);
|
|
5437
|
+
if (isUnaryError) {
|
|
5438
|
+
throw errorFromJson(await response.json(), appendHeaders(...trailerDemux(response.headers)), unaryError);
|
|
5439
|
+
}
|
|
5440
|
+
const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers);
|
|
5441
|
+
return {
|
|
5442
|
+
stream: false,
|
|
5443
|
+
service: method.parent,
|
|
5444
|
+
method,
|
|
5445
|
+
header: demuxedHeader,
|
|
5446
|
+
message: useBinaryFormat ? parse2(new Uint8Array(await response.arrayBuffer())) : fromJson(method.output, await response.json(), getJsonOptions(options.jsonOptions)),
|
|
5447
|
+
trailer: demuxedTrailer
|
|
5448
|
+
};
|
|
5449
|
+
}
|
|
5450
|
+
});
|
|
5451
|
+
},
|
|
5452
|
+
async stream(method, signal, timeoutMs, header, input, contextValues) {
|
|
5453
|
+
const { serialize, parse: parse2 } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);
|
|
5454
|
+
function parseResponseBody(body, trailerTarget, header2, signal2) {
|
|
5455
|
+
return __asyncGenerator$1(this, arguments, function* parseResponseBody_1() {
|
|
5456
|
+
const reader = createEnvelopeReadableStream(body).getReader();
|
|
5457
|
+
let endStreamReceived = false;
|
|
5458
|
+
for (; ; ) {
|
|
5459
|
+
const result = yield __await$1(reader.read());
|
|
5460
|
+
if (result.done) {
|
|
5461
|
+
break;
|
|
5462
|
+
}
|
|
5463
|
+
const { flags, data } = result.value;
|
|
5464
|
+
if ((flags & compressedFlag) === compressedFlag) {
|
|
5465
|
+
throw new ConnectError(`protocol error: received unsupported compressed output`, Code$1.Internal);
|
|
5466
|
+
}
|
|
5467
|
+
if ((flags & endStreamFlag) === endStreamFlag) {
|
|
5468
|
+
endStreamReceived = true;
|
|
5469
|
+
const endStream = endStreamFromJson(data);
|
|
5470
|
+
if (endStream.error) {
|
|
5471
|
+
const error = endStream.error;
|
|
5472
|
+
header2.forEach((value, key) => {
|
|
5473
|
+
error.metadata.append(key, value);
|
|
5474
|
+
});
|
|
5475
|
+
throw error;
|
|
5476
|
+
}
|
|
5477
|
+
endStream.metadata.forEach((value, key) => trailerTarget.set(key, value));
|
|
5478
|
+
continue;
|
|
5479
|
+
}
|
|
5480
|
+
yield yield __await$1(parse2(data));
|
|
5481
|
+
}
|
|
5482
|
+
if ("throwIfAborted" in signal2) {
|
|
5483
|
+
signal2.throwIfAborted();
|
|
5484
|
+
}
|
|
5485
|
+
if (!endStreamReceived) {
|
|
5486
|
+
throw "missing EndStreamResponse";
|
|
5487
|
+
}
|
|
5488
|
+
});
|
|
5489
|
+
}
|
|
5490
|
+
async function createRequestBody(input2) {
|
|
5491
|
+
if (method.methodKind != "server_streaming") {
|
|
5492
|
+
throw "The fetch API does not support streaming request bodies";
|
|
5493
|
+
}
|
|
5494
|
+
const r = await input2[Symbol.asyncIterator]().next();
|
|
5495
|
+
if (r.done == true) {
|
|
5496
|
+
throw "missing request message";
|
|
5497
|
+
}
|
|
5498
|
+
return encodeEnvelope(0, serialize(r.value));
|
|
5499
|
+
}
|
|
5500
|
+
timeoutMs = timeoutMs === void 0 ? options.defaultTimeoutMs : timeoutMs <= 0 ? void 0 : timeoutMs;
|
|
5501
|
+
return await runStreamingCall({
|
|
5502
|
+
interceptors: options.interceptors,
|
|
5503
|
+
timeoutMs,
|
|
5504
|
+
signal,
|
|
5505
|
+
req: {
|
|
5506
|
+
stream: true,
|
|
5507
|
+
service: method.parent,
|
|
5508
|
+
method,
|
|
5509
|
+
requestMethod: "POST",
|
|
5510
|
+
url: createMethodUrl(options.baseUrl, method),
|
|
5511
|
+
header: requestHeader$1(method.methodKind, useBinaryFormat, timeoutMs, header, false),
|
|
5512
|
+
contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),
|
|
5513
|
+
message: input
|
|
5514
|
+
},
|
|
5515
|
+
next: async (req) => {
|
|
5516
|
+
var _a2;
|
|
5517
|
+
const fetch2 = (_a2 = options.fetch) !== null && _a2 !== void 0 ? _a2 : globalThis.fetch;
|
|
5518
|
+
const fRes = await fetch2(req.url, Object.assign(Object.assign({}, fetchOptions$1), { method: req.requestMethod, headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));
|
|
5519
|
+
validateResponse$1(method.methodKind, useBinaryFormat, fRes.status, fRes.headers);
|
|
5520
|
+
if (fRes.body === null) {
|
|
5521
|
+
throw "missing response body";
|
|
5522
|
+
}
|
|
5523
|
+
const trailer = new Headers();
|
|
5524
|
+
const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers, req.signal) });
|
|
5525
|
+
return res;
|
|
5526
|
+
}
|
|
5527
|
+
});
|
|
5528
|
+
}
|
|
5529
|
+
};
|
|
5530
|
+
}
|
|
5136
5531
|
function validateTrailer(trailer, header) {
|
|
5137
5532
|
const err = findTrailerError(trailer);
|
|
5138
5533
|
if (err) {
|
|
@@ -5148,12 +5543,12 @@
|
|
|
5148
5543
|
function requestHeader(useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {
|
|
5149
5544
|
var _a, _b;
|
|
5150
5545
|
const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});
|
|
5151
|
-
result.set(headerContentType, useBinaryFormat ? contentTypeProto : contentTypeJson);
|
|
5546
|
+
result.set(headerContentType$1, useBinaryFormat ? contentTypeProto : contentTypeJson);
|
|
5152
5547
|
result.set(headerXGrpcWeb, "1");
|
|
5153
|
-
const userAgent = (_b = (_a = result.get(headerUserAgent)) !== null && _a !== void 0 ? _a : result.get(headerXUserAgent)) !== null && _b !== void 0 ? _b : "connect-es/2.1.1";
|
|
5548
|
+
const userAgent = (_b = (_a = result.get(headerUserAgent$1)) !== null && _a !== void 0 ? _a : result.get(headerXUserAgent)) !== null && _b !== void 0 ? _b : "connect-es/2.1.1";
|
|
5154
5549
|
result.set(headerXUserAgent, userAgent);
|
|
5155
5550
|
if (timeoutMs !== void 0) {
|
|
5156
|
-
result.set(headerTimeout, `${timeoutMs}m`);
|
|
5551
|
+
result.set(headerTimeout$1, `${timeoutMs}m`);
|
|
5157
5552
|
}
|
|
5158
5553
|
return result;
|
|
5159
5554
|
}
|
|
@@ -5397,7 +5792,7 @@
|
|
|
5397
5792
|
}
|
|
5398
5793
|
};
|
|
5399
5794
|
}
|
|
5400
|
-
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIsoaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGpUBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwiggsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq7AQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQaqQEKBFRyZWUSIgoFbm9kZXMYASADKAsyEy55b3JraWUudjEuVHJlZU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0QgYKBGJvZHkiPwoHUkhUTm9kZRILCgNrZXkYASABKAkSJwoHZWxlbWVudBgCIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudCJUCgdSR0FOb2RlEiAKBG5leHQYASABKAsyEi55b3JraWUudjEuUkdBTm9kZRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50IlgKCE5vZGVBdHRyEg0KBXZhbHVlGAEgASgJEikKCnVwZGF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBISCgppc19yZW1vdmVkGAMgASgIIpQCCghUZXh0Tm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEg0KBXZhbHVlGAIgASgJEikKCnJlbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgEIAEoCzIVLnlvcmtpZS52MS5UZXh0Tm9kZUlEEjcKCmF0dHJpYnV0ZXMYBSADKAsyIy55b3JraWUudjEuVGV4dE5vZGUuQXR0cmlidXRlc0VudHJ5GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIkcKClRleHROb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSKzAwoIVHJlZU5vZGUSIQoCaWQYASABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIMCgR0eXBlGAIgASgJEg0KBXZhbHVlGAMgASgJEikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtpbnNfcHJldl9pZBgFIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEioKC2luc19uZXh0X2lkGAYgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSDQoFZGVwdGgYByABKAUSNwoKYXR0cmlidXRlcxgIIAMoCzIjLnlvcmtpZS52MS5UcmVlTm9kZS5BdHRyaWJ1dGVzRW50cnkSKgoLbWVyZ2VkX2Zyb20YCSABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIoCgltZXJnZWRfYXQYCiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpGCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLk5vZGVBdHRyOgI4ASIxCglUcmVlTm9kZXMSJAoHY29udGVudBgBIAMoCzITLnlvcmtpZS52MS5UcmVlTm9kZSJHCgpUcmVlTm9kZUlEEikKCmNyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIOCgZvZmZzZXQYAiABKAUiYwoHVHJlZVBvcxIoCglwYXJlbnRfaWQYASABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBIuCg9sZWZ0X3NpYmxpbmdfaWQYAiABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRCJrCgRVc2VyEgoKAmlkGAEgASgJEhUKDWF1dGhfcHJvdmlkZXIYAiABKAkSEAoIdXNlcm5hbWUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiQEKBk1lbWJlchIKCgJpZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEg8KB3VzZXJfaWQYAyABKAkSEAoIdXNlcm5hbWUYBCABKAkSDAoEcm9sZRgFIAEoCRIuCgppbnZpdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLpBgoHUHJvamVjdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhIKCnB1YmxpY19rZXkYAyABKAkSEgoKc2VjcmV0X2tleRgEIAEoCRIYChBhdXRoX3dlYmhvb2tfdXJsGAUgASgJEhwKFGF1dGhfd2ViaG9va19tZXRob2RzGAYgAygJEiAKGGF1dGhfd2ViaG9va19tYXhfcmV0cmllcxgRIAEoBBImCh5hdXRoX3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYEiABKAkSJgoeYXV0aF93ZWJob29rX21heF93YWl0X2ludGVydmFsGBMgASgJEiQKHGF1dGhfd2ViaG9va19yZXF1ZXN0X3RpbWVvdXQYFCABKAkSGQoRZXZlbnRfd2ViaG9va191cmwYByABKAkSHAoUZXZlbnRfd2ViaG9va19ldmVudHMYCCADKAkSIQoZZXZlbnRfd2ViaG9va19tYXhfcmV0cmllcxgVIAEoBBInCh9ldmVudF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBYgASgJEicKH2V2ZW50X3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYFyABKAkSJQodZXZlbnRfd2ViaG9va19yZXF1ZXN0X3RpbWVvdXQYGCABKAkSIwobY2xpZW50X2RlYWN0aXZhdGVfdGhyZXNob2xkGAkgASgJEhoKEnNuYXBzaG90X3RocmVzaG9sZBgZIAEoAxIZChFzbmFwc2hvdF9pbnRlcnZhbBgaIAEoAxIkChxtYXhfc3Vic2NyaWJlcnNfcGVyX2RvY3VtZW50GAogASgFEiQKHG1heF9hdHRhY2htZW50c19wZXJfZG9jdW1lbnQYCyABKAUSHQoVbWF4X3NpemVfcGVyX2RvY3VtZW50GA8gASgFEhgKEHJlbW92ZV9vbl9kZXRhY2gYECABKAgSHQoVYXV0b19yZXZpc2lvbl9lbmFibGVkGBsgASgIEhcKD2FsbG93ZWRfb3JpZ2lucxgOIAMoCRIuCgpjcmVhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIvCgtNZXRyaWNQb2ludBIRCgl0aW1lc3RhbXAYASABKAMSDQoFdmFsdWUYAiABKAUiowwKFlVwZGF0YWJsZVByb2plY3RGaWVsZHMSKgoEbmFtZRgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI2ChBhdXRoX3dlYmhvb2tfdXJsGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElIKFGF1dGhfd2ViaG9va19tZXRob2RzGAMgASgLMjQueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuQXV0aFdlYmhvb2tNZXRob2RzEj4KGGF1dGhfd2ViaG9va19tYXhfcmV0cmllcxgMIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZRJECh5hdXRoX3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYDSABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSRAoeYXV0aF93ZWJob29rX21heF93YWl0X2ludGVydmFsGA4gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkIKHGF1dGhfd2ViaG9va19yZXF1ZXN0X3RpbWVvdXQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNwoRZXZlbnRfd2ViaG9va191cmwYBCABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSUgoUZXZlbnRfd2ViaG9va19ldmVudHMYBSABKAsyNC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5FdmVudFdlYmhvb2tFdmVudHMSPwoZZXZlbnRfd2ViaG9va19tYXhfcmV0cmllcxgQIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZRJFCh9ldmVudF93ZWJob29rX21pbl93YWl0X2ludGVydmFsGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkUKH2V2ZW50X3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYEiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSQwodZXZlbnRfd2ViaG9va19yZXF1ZXN0X3RpbWVvdXQYEyABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNwoSc25hcHNob3RfdGhyZXNob2xkGBQgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSNgoRc25hcHNob3RfaW50ZXJ2YWwYFSABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRJBChtjbGllbnRfZGVhY3RpdmF0ZV90aHJlc2hvbGQYBiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSQQocbWF4X3N1YnNjcmliZXJzX3Blcl9kb2N1bWVudBgHIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEkEKHG1heF9hdHRhY2htZW50c19wZXJfZG9jdW1lbnQYCCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRI6ChVtYXhfc2l6ZV9wZXJfZG9jdW1lbnQYCiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRI0ChByZW1vdmVfb25fZGV0YWNoGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRI5ChVhdXRvX3JldmlzaW9uX2VuYWJsZWQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEkkKD2FsbG93ZWRfb3JpZ2lucxgJIAEoCzIwLnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkFsbG93ZWRPcmlnaW5zGiUKEkF1dGhXZWJob29rTWV0aG9kcxIPCgdtZXRob2RzGAEgAygJGiQKEkV2ZW50V2ViaG9va0V2ZW50cxIOCgZldmVudHMYASADKAkaIQoOQWxsb3dlZE9yaWdpbnMSDwoHb3JpZ2lucxgBIAMoCSKnAwoPRG9jdW1lbnRTdW1tYXJ5EgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRyb290GAMgASgJEhgKEGF0dGFjaGVkX2NsaWVudHMYByABKAUSKQoNZG9jdW1lbnRfc2l6ZRgIIAEoCzISLnlvcmtpZS52MS5Eb2NTaXplEhIKCnNjaGVtYV9rZXkYCSABKAkSPAoJcHJlc2VuY2VzGAogAygLMikueW9ya2llLnYxLkRvY3VtZW50U3VtbWFyeS5QcmVzZW5jZXNFbnRyeRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgthY2Nlc3NlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASLaAQoOUHJlc2VuY2VDaGFuZ2USMgoEdHlwZRgBIAEoDjIkLnlvcmtpZS52MS5QcmVzZW5jZUNoYW5nZS5DaGFuZ2VUeXBlEiUKCHByZXNlbmNlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlIm0KCkNoYW5nZVR5cGUSGwoXQ0hBTkdFX1RZUEVfVU5TUEVDSUZJRUQQABITCg9DSEFOR0VfVFlQRV9QVVQQARIWChJDSEFOR0VfVFlQRV9ERUxFVEUQAhIVChFDSEFOR0VfVFlQRV9DTEVBUhADImQKCFByZXNlbmNlEisKBGRhdGEYASADKAsyHS55b3JraWUudjEuUHJlc2VuY2UuRGF0YUVudHJ5GisKCURhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIjQKDkNoYW5uZWxTdW1tYXJ5EgsKA2tleRgBIAEoCRIVCg1zZXNzaW9uX2NvdW50GAIgASgFIjQKCkNoZWNrcG9pbnQSEgoKc2VydmVyX3NlcRgBIAEoAxISCgpjbGllbnRfc2VxGAIgASgNImEKC1RleHROb2RlUG9zEikKCmNyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIOCgZvZmZzZXQYAiABKAUSFwoPcmVsYXRpdmVfb2Zmc2V0GAMgASgFIkIKClRpbWVUaWNrZXQSDwoHbGFtcG9ydBgBIAEoAxIRCglkZWxpbWl0ZXIYAiABKA0SEAoIYWN0b3JfaWQYAyABKAwiLgoMRG9jRXZlbnRCb2R5Eg0KBXRvcGljGAEgASgJEg8KB3BheWxvYWQYAiABKAwiawoIRG9jRXZlbnQSJQoEdHlwZRgBIAEoDjIXLnlvcmtpZS52MS5Eb2NFdmVudFR5cGUSEQoJcHVibGlzaGVyGAIgASgJEiUKBGJvZHkYAyABKAsyFy55b3JraWUudjEuRG9jRXZlbnRCb2R5ItYBCgxDaGFubmVsRXZlbnQSKgoEdHlwZRgBIAEoDjIcLnlvcmtpZS52MS5DaGFubmVsRXZlbnQuVHlwZRIRCglwdWJsaXNoZXIYAiABKAkSFQoNc2Vzc2lvbl9jb3VudBgDIAEoAxILCgNzZXEYBCABKAMSDQoFdG9waWMYBSABKAkSDwoHcGF5bG9hZBgGIAEoDCJDCgRUeXBlEhQKEFRZUEVfVU5TUEVDSUZJRUQQABIRCg1UWVBFX1BSRVNFTkNFEAESEgoOVFlQRV9CUk9BRENBU1QQAiImCghEYXRhU2l6ZRIMCgRkYXRhGAEgASgFEgwKBG1ldGEYAiABKAUiTQoHRG9jU2l6ZRIhCgRsaXZlGAEgASgLMhMueW9ya2llLnYxLkRhdGFTaXplEh8KAmdjGAIgASgLMhMueW9ya2llLnYxLkRhdGFTaXplIpEBCgZTY2hlbWESCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIPCgd2ZXJzaW9uGAMgASgFEgwKBGJvZHkYBCABKAkSHgoFcnVsZXMYBSADKAsyDy55b3JraWUudjEuUnVsZRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJQCgxUcmVlTm9kZVJ1bGUSEQoJbm9kZV90eXBlGAEgASgJEg8KB2NvbnRlbnQYAiABKAkSDQoFbWFya3MYAyABKAkSDQoFZ3JvdXAYBCABKAkiTwoEUnVsZRIMCgRwYXRoGAEgASgJEgwKBHR5cGUYAiABKAkSKwoKdHJlZV9ub2RlcxgDIAMoCzIXLnlvcmtpZS52MS5UcmVlTm9kZVJ1bGUigwEKD1JldmlzaW9uU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghzbmFwc2hvdBgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCrUAgoJVmFsdWVUeXBlEhMKD1ZBTFVFX1RZUEVfTlVMTBAAEhYKElZBTFVFX1RZUEVfQk9PTEVBThABEhYKElZBTFVFX1RZUEVfSU5URUdFUhACEhMKD1ZBTFVFX1RZUEVfTE9ORxADEhUKEVZBTFVFX1RZUEVfRE9VQkxFEAQSFQoRVkFMVUVfVFlQRV9TVFJJTkcQBRIUChBWQUxVRV9UWVBFX0JZVEVTEAYSEwoPVkFMVUVfVFlQRV9EQVRFEAcSGgoWVkFMVUVfVFlQRV9KU09OX09CSkVDVBAIEhkKFVZBTFVFX1RZUEVfSlNPTl9BUlJBWRAJEhMKD1ZBTFVFX1RZUEVfVEVYVBAKEhoKFlZBTFVFX1RZUEVfSU5URUdFUl9DTlQQCxIXChNWQUxVRV9UWVBFX0xPTkdfQ05UEAwSEwoPVkFMVUVfVFlQRV9UUkVFEA0qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5795
|
+
const file_src_api_yorkie_v1_resources = /* @__PURE__ */ fileDesc("CiFzcmMvYXBpL3lvcmtpZS92MS9yZXNvdXJjZXMucHJvdG8SCXlvcmtpZS52MSKuAQoIU25hcHNob3QSJAoEcm9vdBgBIAEoCzIWLnlvcmtpZS52MS5KU09ORWxlbWVudBI1CglwcmVzZW5jZXMYAiADKAsyIi55b3JraWUudjEuU25hcHNob3QuUHJlc2VuY2VzRW50cnkaRQoOUHJlc2VuY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMueW9ya2llLnYxLlByZXNlbmNlOgI4ASL7AQoKQ2hhbmdlUGFjaxIUCgxkb2N1bWVudF9rZXkYASABKAkSKQoKY2hlY2twb2ludBgCIAEoCzIVLnlvcmtpZS52MS5DaGVja3BvaW50EhAKCHNuYXBzaG90GAMgASgMEiIKB2NoYW5nZXMYBCADKAsyES55b3JraWUudjEuQ2hhbmdlEjAKEW1pbl9zeW5jZWRfdGlja2V0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSEgoKaXNfcmVtb3ZlZBgGIAEoCBIwCg52ZXJzaW9uX3ZlY3RvchgHIAEoCzIYLnlvcmtpZS52MS5WZXJzaW9uVmVjdG9yIpgBCgZDaGFuZ2USHwoCaWQYASABKAsyEy55b3JraWUudjEuQ2hhbmdlSUQSDwoHbWVzc2FnZRgCIAEoCRIoCgpvcGVyYXRpb25zGAMgAygLMhQueW9ya2llLnYxLk9wZXJhdGlvbhIyCg9wcmVzZW5jZV9jaGFuZ2UYBCABKAsyGS55b3JraWUudjEuUHJlc2VuY2VDaGFuZ2UihwEKCENoYW5nZUlEEhIKCmNsaWVudF9zZXEYASABKA0SEgoKc2VydmVyX3NlcRgCIAEoAxIPCgdsYW1wb3J0GAMgASgDEhAKCGFjdG9yX2lkGAQgASgMEjAKDnZlcnNpb25fdmVjdG9yGAUgASgLMhgueW9ya2llLnYxLlZlcnNpb25WZWN0b3IidAoNVmVyc2lvblZlY3RvchI0CgZ2ZWN0b3IYASADKAsyJC55b3JraWUudjEuVmVyc2lvblZlY3Rvci5WZWN0b3JFbnRyeRotCgtWZWN0b3JFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBItkaCglPcGVyYXRpb24SJwoDc2V0GAEgASgLMhgueW9ya2llLnYxLk9wZXJhdGlvbi5TZXRIABInCgNhZGQYAiABKAsyGC55b3JraWUudjEuT3BlcmF0aW9uLkFkZEgAEikKBG1vdmUYAyABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLk1vdmVIABItCgZyZW1vdmUYBCABKAsyGy55b3JraWUudjEuT3BlcmF0aW9uLlJlbW92ZUgAEikKBGVkaXQYBSABKAsyGS55b3JraWUudjEuT3BlcmF0aW9uLkVkaXRIABIrCgVzdHlsZRgHIAEoCzIaLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGVIABIxCghpbmNyZWFzZRgIIAEoCzIdLnlvcmtpZS52MS5PcGVyYXRpb24uSW5jcmVhc2VIABIyCgl0cmVlX2VkaXQYCSABKAsyHS55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0SAASNAoKdHJlZV9zdHlsZRgKIAEoCzIeLnlvcmtpZS52MS5PcGVyYXRpb24uVHJlZVN0eWxlSAASMgoJYXJyYXlfc2V0GAsgASgLMh0ueW9ya2llLnYxLk9wZXJhdGlvbi5BcnJheVNldEgAGp0BCgNTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBILCgNrZXkYAiABKAkSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrAAQoDQWRkEjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSLgoPcHJldl9jcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBq/AQoETW92ZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Ei4KD3ByZXZfY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCmNyZWF0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIqCgtleGVjdXRlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GpEBCgZSZW1vdmUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKgoLZXhlY3V0ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrZAwoERWRpdBIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSUwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyMi55b3JraWUudjEuT3BlcmF0aW9uLkVkaXQuQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5Eg8KB2NvbnRlbnQYBSABKAkSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBI9CgphdHRyaWJ1dGVzGAcgAygLMikueW9ya2llLnYxLk9wZXJhdGlvbi5FZGl0LkF0dHJpYnV0ZXNFbnRyeRpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGukDCgVTdHlsZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EiQKBGZyb20YAiABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSIgoCdG8YAyABKAsyFi55b3JraWUudjEuVGV4dE5vZGVQb3MSPgoKYXR0cmlidXRlcxgEIAMoCzIqLnlvcmtpZS52MS5PcGVyYXRpb24uU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSVAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBiADKAsyMy55b3JraWUudjEuT3BlcmF0aW9uLlN0eWxlLkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRIcChRhdHRyaWJ1dGVzX3RvX3JlbW92ZRgHIAMoCRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGqQBCghJbmNyZWFzZRIwChFwYXJlbnRfY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EisKBXZhbHVlGAIgASgLMhwueW9ya2llLnYxLkpTT05FbGVtZW50U2ltcGxlEioKC2V4ZWN1dGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDQoFYWN0b3IYBCABKAkakwMKCFRyZWVFZGl0EjAKEXBhcmVudF9jcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIAoEZnJvbRgCIAEoCzISLnlvcmtpZS52MS5UcmVlUG9zEh4KAnRvGAMgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSVwoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYBCADKAsyNi55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVFZGl0LkNyZWF0ZWRBdE1hcEJ5QWN0b3JFbnRyeRImCghjb250ZW50cxgFIAMoCzIULnlvcmtpZS52MS5UcmVlTm9kZXMSEwoLc3BsaXRfbGV2ZWwYByABKAUSKgoLZXhlY3V0ZWRfYXQYBiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBpRChhDcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQ6AjgBGu0DCglUcmVlU3R5bGUSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIgCgRmcm9tGAIgASgLMhIueW9ya2llLnYxLlRyZWVQb3MSHgoCdG8YAyABKAsyEi55b3JraWUudjEuVHJlZVBvcxJCCgphdHRyaWJ1dGVzGAQgAygLMi4ueW9ya2llLnYxLk9wZXJhdGlvbi5UcmVlU3R5bGUuQXR0cmlidXRlc0VudHJ5EioKC2V4ZWN1dGVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSHAoUYXR0cmlidXRlc190b19yZW1vdmUYBiADKAkSWAoXY3JlYXRlZF9hdF9tYXBfYnlfYWN0b3IYByADKAsyNy55b3JraWUudjEuT3BlcmF0aW9uLlRyZWVTdHlsZS5DcmVhdGVkQXRNYXBCeUFjdG9yRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaUQoYQ3JlYXRlZEF0TWFwQnlBY3RvckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0OgI4ARrAAQoIQXJyYXlTZXQSMAoRcGFyZW50X2NyZWF0ZWRfYXQYASABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKwoFdmFsdWUYAyABKAsyHC55b3JraWUudjEuSlNPTkVsZW1lbnRTaW1wbGUSKgoLZXhlY3V0ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldEIGCgRib2R5IsUBChFKU09ORWxlbWVudFNpbXBsZRIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSIgoEdHlwZRgEIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYBSABKAwinwsKC0pTT05FbGVtZW50EjgKC2pzb25fb2JqZWN0GAEgASgLMiEueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05PYmplY3RIABI2Cgpqc29uX2FycmF5GAIgASgLMiAueW9ya2llLnYxLkpTT05FbGVtZW50LkpTT05BcnJheUgAEjUKCXByaW1pdGl2ZRgDIAEoCzIgLnlvcmtpZS52MS5KU09ORWxlbWVudC5QcmltaXRpdmVIABIrCgR0ZXh0GAUgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRleHRIABIxCgdjb3VudGVyGAYgASgLMh4ueW9ya2llLnYxLkpTT05FbGVtZW50LkNvdW50ZXJIABIrCgR0cmVlGAcgASgLMhsueW9ya2llLnYxLkpTT05FbGVtZW50LlRyZWVIABquAQoKSlNPTk9iamVjdBIhCgVub2RlcxgBIAMoCzISLnlvcmtpZS52MS5SSFROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBqtAQoJSlNPTkFycmF5EiEKBW5vZGVzGAEgAygLMhIueW9ya2llLnYxLlJHQU5vZGUSKQoKY3JlYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Gr0BCglQcmltaXRpdmUSIgoEdHlwZRgBIAEoDjIULnlvcmtpZS52MS5WYWx1ZVR5cGUSDQoFdmFsdWUYAiABKAwSKQoKY3JlYXRlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EicKCG1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSKQoKcmVtb3ZlZF9hdBgFIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GqkBCgRUZXh0EiIKBW5vZGVzGAEgAygLMhMueW9ya2llLnYxLlRleHROb2RlEikKCmNyZWF0ZWRfYXQYAiABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBInCghtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EikKCnJlbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBrYAQoHQ291bnRlchIiCgR0eXBlGAEgASgOMhQueW9ya2llLnYxLlZhbHVlVHlwZRINCgV2YWx1ZRgCIAEoDBIpCgpjcmVhdGVkX2F0GAMgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYBCABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAUgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSFQoNaGxsX3JlZ2lzdGVycxgHIAEoDEoECAYQBxqpAQoEVHJlZRIiCgVub2RlcxgBIAMoCzITLnlvcmtpZS52MS5UcmVlTm9kZRIpCgpjcmVhdGVkX2F0GAIgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSJwoIbW92ZWRfYXQYAyABKAsyFS55b3JraWUudjEuVGltZVRpY2tldBIpCgpyZW1vdmVkX2F0GAQgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXRCBgoEYm9keSI/CgdSSFROb2RlEgsKA2tleRgBIAEoCRInCgdlbGVtZW50GAIgASgLMhYueW9ya2llLnYxLkpTT05FbGVtZW50IlQKB1JHQU5vZGUSIAoEbmV4dBgBIAEoCzISLnlvcmtpZS52MS5SR0FOb2RlEicKB2VsZW1lbnQYAiABKAsyFi55b3JraWUudjEuSlNPTkVsZW1lbnQiWAoITm9kZUF0dHISDQoFdmFsdWUYASABKAkSKQoKdXBkYXRlZF9hdBgCIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EhIKCmlzX3JlbW92ZWQYAyABKAgilAIKCFRleHROb2RlEiEKAmlkGAEgASgLMhUueW9ya2llLnYxLlRleHROb2RlSUQSDQoFdmFsdWUYAiABKAkSKQoKcmVtb3ZlZF9hdBgDIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2luc19wcmV2X2lkGAQgASgLMhUueW9ya2llLnYxLlRleHROb2RlSUQSNwoKYXR0cmlidXRlcxgFIAMoCzIjLnlvcmtpZS52MS5UZXh0Tm9kZS5BdHRyaWJ1dGVzRW50cnkaRgoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRIiCgV2YWx1ZRgCIAEoCzITLnlvcmtpZS52MS5Ob2RlQXR0cjoCOAEiRwoKVGV4dE5vZGVJRBIpCgpjcmVhdGVkX2F0GAEgASgLMhUueW9ya2llLnYxLlRpbWVUaWNrZXQSDgoGb2Zmc2V0GAIgASgFIrMDCghUcmVlTm9kZRIhCgJpZBgBIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEgwKBHR5cGUYAiABKAkSDQoFdmFsdWUYAyABKAkSKQoKcmVtb3ZlZF9hdBgEIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0EioKC2luc19wcmV2X2lkGAUgASgLMhUueW9ya2llLnYxLlRyZWVOb2RlSUQSKgoLaW5zX25leHRfaWQYBiABKAsyFS55b3JraWUudjEuVHJlZU5vZGVJRBINCgVkZXB0aBgHIAEoBRI3CgphdHRyaWJ1dGVzGAggAygLMiMueW9ya2llLnYxLlRyZWVOb2RlLkF0dHJpYnV0ZXNFbnRyeRIqCgttZXJnZWRfZnJvbRgJIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEigKCW1lcmdlZF9hdBgKIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0GkYKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuTm9kZUF0dHI6AjgBIjEKCVRyZWVOb2RlcxIkCgdjb250ZW50GAEgAygLMhMueW9ya2llLnYxLlRyZWVOb2RlIkcKClRyZWVOb2RlSUQSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBSJjCgdUcmVlUG9zEigKCXBhcmVudF9pZBgBIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEEi4KD2xlZnRfc2libGluZ19pZBgCIAEoCzIVLnlvcmtpZS52MS5UcmVlTm9kZUlEImsKBFVzZXISCgoCaWQYASABKAkSFQoNYXV0aF9wcm92aWRlchgCIAEoCRIQCgh1c2VybmFtZRgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKJAQoGTWVtYmVyEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDwoHdXNlcl9pZBgDIAEoCRIQCgh1c2VybmFtZRgEIAEoCRIMCgRyb2xlGAUgASgJEi4KCmludml0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIukGCgdQcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEgoKcHVibGljX2tleRgDIAEoCRISCgpzZWNyZXRfa2V5GAQgASgJEhgKEGF1dGhfd2ViaG9va191cmwYBSABKAkSHAoUYXV0aF93ZWJob29rX21ldGhvZHMYBiADKAkSIAoYYXV0aF93ZWJob29rX21heF9yZXRyaWVzGBEgASgEEiYKHmF1dGhfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgSIAEoCRImCh5hdXRoX3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYEyABKAkSJAocYXV0aF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgUIAEoCRIZChFldmVudF93ZWJob29rX3VybBgHIAEoCRIcChRldmVudF93ZWJob29rX2V2ZW50cxgIIAMoCRIhChlldmVudF93ZWJob29rX21heF9yZXRyaWVzGBUgASgEEicKH2V2ZW50X3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYFiABKAkSJwofZXZlbnRfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgXIAEoCRIlCh1ldmVudF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgYIAEoCRIjChtjbGllbnRfZGVhY3RpdmF0ZV90aHJlc2hvbGQYCSABKAkSGgoSc25hcHNob3RfdGhyZXNob2xkGBkgASgDEhkKEXNuYXBzaG90X2ludGVydmFsGBogASgDEiQKHG1heF9zdWJzY3JpYmVyc19wZXJfZG9jdW1lbnQYCiABKAUSJAocbWF4X2F0dGFjaG1lbnRzX3Blcl9kb2N1bWVudBgLIAEoBRIdChVtYXhfc2l6ZV9wZXJfZG9jdW1lbnQYDyABKAUSGAoQcmVtb3ZlX29uX2RldGFjaBgQIAEoCBIdChVhdXRvX3JldmlzaW9uX2VuYWJsZWQYGyABKAgSFwoPYWxsb3dlZF9vcmlnaW5zGA4gAygJEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIi8KC01ldHJpY1BvaW50EhEKCXRpbWVzdGFtcBgBIAEoAxINCgV2YWx1ZRgCIAEoBSKjDAoWVXBkYXRhYmxlUHJvamVjdEZpZWxkcxIqCgRuYW1lGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjYKEGF1dGhfd2ViaG9va191cmwYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSUgoUYXV0aF93ZWJob29rX21ldGhvZHMYAyABKAsyNC55b3JraWUudjEuVXBkYXRhYmxlUHJvamVjdEZpZWxkcy5BdXRoV2ViaG9va01ldGhvZHMSPgoYYXV0aF93ZWJob29rX21heF9yZXRyaWVzGAwgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEkQKHmF1dGhfd2ViaG9va19taW5fd2FpdF9pbnRlcnZhbBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJECh5hdXRoX3dlYmhvb2tfbWF4X3dhaXRfaW50ZXJ2YWwYDiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSQgocYXV0aF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChFldmVudF93ZWJob29rX3VybBgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJSChRldmVudF93ZWJob29rX2V2ZW50cxgFIAEoCzI0LnlvcmtpZS52MS5VcGRhdGFibGVQcm9qZWN0RmllbGRzLkV2ZW50V2ViaG9va0V2ZW50cxI/ChlldmVudF93ZWJob29rX21heF9yZXRyaWVzGBAgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEkUKH2V2ZW50X3dlYmhvb2tfbWluX3dhaXRfaW50ZXJ2YWwYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSRQofZXZlbnRfd2ViaG9va19tYXhfd2FpdF9pbnRlcnZhbBgSIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJDCh1ldmVudF93ZWJob29rX3JlcXVlc3RfdGltZW91dBgTIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChJzbmFwc2hvdF90aHJlc2hvbGQYFCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI2ChFzbmFwc2hvdF9pbnRlcnZhbBgVIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEkEKG2NsaWVudF9kZWFjdGl2YXRlX3RocmVzaG9sZBgGIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJBChxtYXhfc3Vic2NyaWJlcnNfcGVyX2RvY3VtZW50GAcgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSQQocbWF4X2F0dGFjaG1lbnRzX3Blcl9kb2N1bWVudBgIIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEjoKFW1heF9zaXplX3Blcl9kb2N1bWVudBgKIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEjQKEHJlbW92ZV9vbl9kZXRhY2gYCyABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjkKFWF1dG9fcmV2aXNpb25fZW5hYmxlZBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSSQoPYWxsb3dlZF9vcmlnaW5zGAkgASgLMjAueW9ya2llLnYxLlVwZGF0YWJsZVByb2plY3RGaWVsZHMuQWxsb3dlZE9yaWdpbnMaJQoSQXV0aFdlYmhvb2tNZXRob2RzEg8KB21ldGhvZHMYASADKAkaJAoSRXZlbnRXZWJob29rRXZlbnRzEg4KBmV2ZW50cxgBIAMoCRohCg5BbGxvd2VkT3JpZ2lucxIPCgdvcmlnaW5zGAEgAygJIqcDCg9Eb2N1bWVudFN1bW1hcnkSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHJvb3QYAyABKAkSGAoQYXR0YWNoZWRfY2xpZW50cxgHIAEoBRIpCg1kb2N1bWVudF9zaXplGAggASgLMhIueW9ya2llLnYxLkRvY1NpemUSEgoKc2NoZW1hX2tleRgJIAEoCRI8CglwcmVzZW5jZXMYCiADKAsyKS55b3JraWUudjEuRG9jdW1lbnRTdW1tYXJ5LlByZXNlbmNlc0VudHJ5Ei4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2FjY2Vzc2VkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBpFCg5QcmVzZW5jZXNFbnRyeRILCgNrZXkYASABKAkSIgoFdmFsdWUYAiABKAsyEy55b3JraWUudjEuUHJlc2VuY2U6AjgBItoBCg5QcmVzZW5jZUNoYW5nZRIyCgR0eXBlGAEgASgOMiQueW9ya2llLnYxLlByZXNlbmNlQ2hhbmdlLkNoYW5nZVR5cGUSJQoIcHJlc2VuY2UYAiABKAsyEy55b3JraWUudjEuUHJlc2VuY2UibQoKQ2hhbmdlVHlwZRIbChdDSEFOR0VfVFlQRV9VTlNQRUNJRklFRBAAEhMKD0NIQU5HRV9UWVBFX1BVVBABEhYKEkNIQU5HRV9UWVBFX0RFTEVURRACEhUKEUNIQU5HRV9UWVBFX0NMRUFSEAMiZAoIUHJlc2VuY2USKwoEZGF0YRgBIAMoCzIdLnlvcmtpZS52MS5QcmVzZW5jZS5EYXRhRW50cnkaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiNAoOQ2hhbm5lbFN1bW1hcnkSCwoDa2V5GAEgASgJEhUKDXNlc3Npb25fY291bnQYAiABKAUiNAoKQ2hlY2twb2ludBISCgpzZXJ2ZXJfc2VxGAEgASgDEhIKCmNsaWVudF9zZXEYAiABKA0iYQoLVGV4dE5vZGVQb3MSKQoKY3JlYXRlZF9hdBgBIAEoCzIVLnlvcmtpZS52MS5UaW1lVGlja2V0Eg4KBm9mZnNldBgCIAEoBRIXCg9yZWxhdGl2ZV9vZmZzZXQYAyABKAUiQgoKVGltZVRpY2tldBIPCgdsYW1wb3J0GAEgASgDEhEKCWRlbGltaXRlchgCIAEoDRIQCghhY3Rvcl9pZBgDIAEoDCIuCgxEb2NFdmVudEJvZHkSDQoFdG9waWMYASABKAkSDwoHcGF5bG9hZBgCIAEoDCJrCghEb2NFdmVudBIlCgR0eXBlGAEgASgOMhcueW9ya2llLnYxLkRvY0V2ZW50VHlwZRIRCglwdWJsaXNoZXIYAiABKAkSJQoEYm9keRgDIAEoCzIXLnlvcmtpZS52MS5Eb2NFdmVudEJvZHki1gEKDENoYW5uZWxFdmVudBIqCgR0eXBlGAEgASgOMhwueW9ya2llLnYxLkNoYW5uZWxFdmVudC5UeXBlEhEKCXB1Ymxpc2hlchgCIAEoCRIVCg1zZXNzaW9uX2NvdW50GAMgASgDEgsKA3NlcRgEIAEoAxINCgV0b3BpYxgFIAEoCRIPCgdwYXlsb2FkGAYgASgMIkMKBFR5cGUSFAoQVFlQRV9VTlNQRUNJRklFRBAAEhEKDVRZUEVfUFJFU0VOQ0UQARISCg5UWVBFX0JST0FEQ0FTVBACIiYKCERhdGFTaXplEgwKBGRhdGEYASABKAUSDAoEbWV0YRgCIAEoBSJNCgdEb2NTaXplEiEKBGxpdmUYASABKAsyEy55b3JraWUudjEuRGF0YVNpemUSHwoCZ2MYAiABKAsyEy55b3JraWUudjEuRGF0YVNpemUikQEKBlNjaGVtYRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAUSDAoEYm9keRgEIAEoCRIeCgVydWxlcxgFIAMoCzIPLnlvcmtpZS52MS5SdWxlEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlAKDFRyZWVOb2RlUnVsZRIRCglub2RlX3R5cGUYASABKAkSDwoHY29udGVudBgCIAEoCRINCgVtYXJrcxgDIAEoCRINCgVncm91cBgEIAEoCSJPCgRSdWxlEgwKBHBhdGgYASABKAkSDAoEdHlwZRgCIAEoCRIrCgp0cmVlX25vZGVzGAMgAygLMhcueW9ya2llLnYxLlRyZWVOb2RlUnVsZSKDAQoPUmV2aXNpb25TdW1tYXJ5EgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCHNuYXBzaG90GAQgASgJEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKvwCCglWYWx1ZVR5cGUSEwoPVkFMVUVfVFlQRV9OVUxMEAASFgoSVkFMVUVfVFlQRV9CT09MRUFOEAESFgoSVkFMVUVfVFlQRV9JTlRFR0VSEAISEwoPVkFMVUVfVFlQRV9MT05HEAMSFQoRVkFMVUVfVFlQRV9ET1VCTEUQBBIVChFWQUxVRV9UWVBFX1NUUklORxAFEhQKEFZBTFVFX1RZUEVfQllURVMQBhITCg9WQUxVRV9UWVBFX0RBVEUQBxIaChZWQUxVRV9UWVBFX0pTT05fT0JKRUNUEAgSGQoVVkFMVUVfVFlQRV9KU09OX0FSUkFZEAkSEwoPVkFMVUVfVFlQRV9URVhUEAoSGgoWVkFMVUVfVFlQRV9JTlRFR0VSX0NOVBALEhcKE1ZBTFVFX1RZUEVfTE9OR19DTlQQDBITCg9WQUxVRV9UWVBFX1RSRUUQDRIgChxWQUxVRV9UWVBFX0lOVEVHRVJfREVEVVBfQ05UEA4iBAgPEA8qpgEKDERvY0V2ZW50VHlwZRIjCh9ET0NfRVZFTlRfVFlQRV9ET0NVTUVOVF9DSEFOR0VEEAASIwofRE9DX0VWRU5UX1RZUEVfRE9DVU1FTlRfV0FUQ0hFRBABEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX1VOV0FUQ0hFRBACEiUKIURPQ19FVkVOVF9UWVBFX0RPQ1VNRU5UX0JST0FEQ0FTVBADQkUKEWRldi55b3JraWUuYXBpLnYxUAFaLmdpdGh1Yi5jb20veW9ya2llLXRlYW0veW9ya2llL2FwaS95b3JraWUvdjE7djFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_wrappers]);
|
|
5401
5796
|
const SnapshotSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 0);
|
|
5402
5797
|
const ChangePackSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 1);
|
|
5403
5798
|
const ChangeSchema = /* @__PURE__ */ messageDesc(file_src_api_yorkie_v1_resources, 2);
|
|
@@ -5464,6 +5859,7 @@
|
|
|
5464
5859
|
ValueType2[ValueType2["INTEGER_CNT"] = 11] = "INTEGER_CNT";
|
|
5465
5860
|
ValueType2[ValueType2["LONG_CNT"] = 12] = "LONG_CNT";
|
|
5466
5861
|
ValueType2[ValueType2["TREE"] = 13] = "TREE";
|
|
5862
|
+
ValueType2[ValueType2["INTEGER_DEDUP_CNT"] = 14] = "INTEGER_DEDUP_CNT";
|
|
5467
5863
|
return ValueType2;
|
|
5468
5864
|
})(ValueType || {});
|
|
5469
5865
|
var DocEventType$1 = /* @__PURE__ */ ((DocEventType2) => {
|
|
@@ -6609,929 +7005,38 @@
|
|
|
6609
7005
|
return false;
|
|
6610
7006
|
}
|
|
6611
7007
|
isRightChild(node) {
|
|
6612
|
-
if (node && node.hasParent()) {
|
|
6613
|
-
return node.getParent().getRight() === node;
|
|
6614
|
-
}
|
|
6615
|
-
return false;
|
|
6616
|
-
}
|
|
6617
|
-
}
|
|
6618
|
-
var wasm = null;
|
|
6619
|
-
try {
|
|
6620
|
-
wasm = new WebAssembly.Instance(
|
|
6621
|
-
new WebAssembly.Module(
|
|
6622
|
-
new Uint8Array([
|
|
6623
|
-
// \0asm
|
|
6624
|
-
0,
|
|
6625
|
-
97,
|
|
6626
|
-
115,
|
|
6627
|
-
109,
|
|
6628
|
-
// version 1
|
|
6629
|
-
1,
|
|
6630
|
-
0,
|
|
6631
|
-
0,
|
|
6632
|
-
0,
|
|
6633
|
-
// section "type"
|
|
6634
|
-
1,
|
|
6635
|
-
13,
|
|
6636
|
-
2,
|
|
6637
|
-
// 0, () => i32
|
|
6638
|
-
96,
|
|
6639
|
-
0,
|
|
6640
|
-
1,
|
|
6641
|
-
127,
|
|
6642
|
-
// 1, (i32, i32, i32, i32) => i32
|
|
6643
|
-
96,
|
|
6644
|
-
4,
|
|
6645
|
-
127,
|
|
6646
|
-
127,
|
|
6647
|
-
127,
|
|
6648
|
-
127,
|
|
6649
|
-
1,
|
|
6650
|
-
127,
|
|
6651
|
-
// section "function"
|
|
6652
|
-
3,
|
|
6653
|
-
7,
|
|
6654
|
-
6,
|
|
6655
|
-
// 0, type 0
|
|
6656
|
-
0,
|
|
6657
|
-
// 1, type 1
|
|
6658
|
-
1,
|
|
6659
|
-
// 2, type 1
|
|
6660
|
-
1,
|
|
6661
|
-
// 3, type 1
|
|
6662
|
-
1,
|
|
6663
|
-
// 4, type 1
|
|
6664
|
-
1,
|
|
6665
|
-
// 5, type 1
|
|
6666
|
-
1,
|
|
6667
|
-
// section "global"
|
|
6668
|
-
6,
|
|
6669
|
-
6,
|
|
6670
|
-
1,
|
|
6671
|
-
// 0, "high", mutable i32
|
|
6672
|
-
127,
|
|
6673
|
-
1,
|
|
6674
|
-
65,
|
|
6675
|
-
0,
|
|
6676
|
-
11,
|
|
6677
|
-
// section "export"
|
|
6678
|
-
7,
|
|
6679
|
-
50,
|
|
6680
|
-
6,
|
|
6681
|
-
// 0, "mul"
|
|
6682
|
-
3,
|
|
6683
|
-
109,
|
|
6684
|
-
117,
|
|
6685
|
-
108,
|
|
6686
|
-
0,
|
|
6687
|
-
1,
|
|
6688
|
-
// 1, "div_s"
|
|
6689
|
-
5,
|
|
6690
|
-
100,
|
|
6691
|
-
105,
|
|
6692
|
-
118,
|
|
6693
|
-
95,
|
|
6694
|
-
115,
|
|
6695
|
-
0,
|
|
6696
|
-
2,
|
|
6697
|
-
// 2, "div_u"
|
|
6698
|
-
5,
|
|
6699
|
-
100,
|
|
6700
|
-
105,
|
|
6701
|
-
118,
|
|
6702
|
-
95,
|
|
6703
|
-
117,
|
|
6704
|
-
0,
|
|
6705
|
-
3,
|
|
6706
|
-
// 3, "rem_s"
|
|
6707
|
-
5,
|
|
6708
|
-
114,
|
|
6709
|
-
101,
|
|
6710
|
-
109,
|
|
6711
|
-
95,
|
|
6712
|
-
115,
|
|
6713
|
-
0,
|
|
6714
|
-
4,
|
|
6715
|
-
// 4, "rem_u"
|
|
6716
|
-
5,
|
|
6717
|
-
114,
|
|
6718
|
-
101,
|
|
6719
|
-
109,
|
|
6720
|
-
95,
|
|
6721
|
-
117,
|
|
6722
|
-
0,
|
|
6723
|
-
5,
|
|
6724
|
-
// 5, "get_high"
|
|
6725
|
-
8,
|
|
6726
|
-
103,
|
|
6727
|
-
101,
|
|
6728
|
-
116,
|
|
6729
|
-
95,
|
|
6730
|
-
104,
|
|
6731
|
-
105,
|
|
6732
|
-
103,
|
|
6733
|
-
104,
|
|
6734
|
-
0,
|
|
6735
|
-
0,
|
|
6736
|
-
// section "code"
|
|
6737
|
-
10,
|
|
6738
|
-
191,
|
|
6739
|
-
1,
|
|
6740
|
-
6,
|
|
6741
|
-
// 0, "get_high"
|
|
6742
|
-
4,
|
|
6743
|
-
0,
|
|
6744
|
-
35,
|
|
6745
|
-
0,
|
|
6746
|
-
11,
|
|
6747
|
-
// 1, "mul"
|
|
6748
|
-
36,
|
|
6749
|
-
1,
|
|
6750
|
-
1,
|
|
6751
|
-
126,
|
|
6752
|
-
32,
|
|
6753
|
-
0,
|
|
6754
|
-
173,
|
|
6755
|
-
32,
|
|
6756
|
-
1,
|
|
6757
|
-
173,
|
|
6758
|
-
66,
|
|
6759
|
-
32,
|
|
6760
|
-
134,
|
|
6761
|
-
132,
|
|
6762
|
-
32,
|
|
6763
|
-
2,
|
|
6764
|
-
173,
|
|
6765
|
-
32,
|
|
6766
|
-
3,
|
|
6767
|
-
173,
|
|
6768
|
-
66,
|
|
6769
|
-
32,
|
|
6770
|
-
134,
|
|
6771
|
-
132,
|
|
6772
|
-
126,
|
|
6773
|
-
34,
|
|
6774
|
-
4,
|
|
6775
|
-
66,
|
|
6776
|
-
32,
|
|
6777
|
-
135,
|
|
6778
|
-
167,
|
|
6779
|
-
36,
|
|
6780
|
-
0,
|
|
6781
|
-
32,
|
|
6782
|
-
4,
|
|
6783
|
-
167,
|
|
6784
|
-
11,
|
|
6785
|
-
// 2, "div_s"
|
|
6786
|
-
36,
|
|
6787
|
-
1,
|
|
6788
|
-
1,
|
|
6789
|
-
126,
|
|
6790
|
-
32,
|
|
6791
|
-
0,
|
|
6792
|
-
173,
|
|
6793
|
-
32,
|
|
6794
|
-
1,
|
|
6795
|
-
173,
|
|
6796
|
-
66,
|
|
6797
|
-
32,
|
|
6798
|
-
134,
|
|
6799
|
-
132,
|
|
6800
|
-
32,
|
|
6801
|
-
2,
|
|
6802
|
-
173,
|
|
6803
|
-
32,
|
|
6804
|
-
3,
|
|
6805
|
-
173,
|
|
6806
|
-
66,
|
|
6807
|
-
32,
|
|
6808
|
-
134,
|
|
6809
|
-
132,
|
|
6810
|
-
127,
|
|
6811
|
-
34,
|
|
6812
|
-
4,
|
|
6813
|
-
66,
|
|
6814
|
-
32,
|
|
6815
|
-
135,
|
|
6816
|
-
167,
|
|
6817
|
-
36,
|
|
6818
|
-
0,
|
|
6819
|
-
32,
|
|
6820
|
-
4,
|
|
6821
|
-
167,
|
|
6822
|
-
11,
|
|
6823
|
-
// 3, "div_u"
|
|
6824
|
-
36,
|
|
6825
|
-
1,
|
|
6826
|
-
1,
|
|
6827
|
-
126,
|
|
6828
|
-
32,
|
|
6829
|
-
0,
|
|
6830
|
-
173,
|
|
6831
|
-
32,
|
|
6832
|
-
1,
|
|
6833
|
-
173,
|
|
6834
|
-
66,
|
|
6835
|
-
32,
|
|
6836
|
-
134,
|
|
6837
|
-
132,
|
|
6838
|
-
32,
|
|
6839
|
-
2,
|
|
6840
|
-
173,
|
|
6841
|
-
32,
|
|
6842
|
-
3,
|
|
6843
|
-
173,
|
|
6844
|
-
66,
|
|
6845
|
-
32,
|
|
6846
|
-
134,
|
|
6847
|
-
132,
|
|
6848
|
-
128,
|
|
6849
|
-
34,
|
|
6850
|
-
4,
|
|
6851
|
-
66,
|
|
6852
|
-
32,
|
|
6853
|
-
135,
|
|
6854
|
-
167,
|
|
6855
|
-
36,
|
|
6856
|
-
0,
|
|
6857
|
-
32,
|
|
6858
|
-
4,
|
|
6859
|
-
167,
|
|
6860
|
-
11,
|
|
6861
|
-
// 4, "rem_s"
|
|
6862
|
-
36,
|
|
6863
|
-
1,
|
|
6864
|
-
1,
|
|
6865
|
-
126,
|
|
6866
|
-
32,
|
|
6867
|
-
0,
|
|
6868
|
-
173,
|
|
6869
|
-
32,
|
|
6870
|
-
1,
|
|
6871
|
-
173,
|
|
6872
|
-
66,
|
|
6873
|
-
32,
|
|
6874
|
-
134,
|
|
6875
|
-
132,
|
|
6876
|
-
32,
|
|
6877
|
-
2,
|
|
6878
|
-
173,
|
|
6879
|
-
32,
|
|
6880
|
-
3,
|
|
6881
|
-
173,
|
|
6882
|
-
66,
|
|
6883
|
-
32,
|
|
6884
|
-
134,
|
|
6885
|
-
132,
|
|
6886
|
-
129,
|
|
6887
|
-
34,
|
|
6888
|
-
4,
|
|
6889
|
-
66,
|
|
6890
|
-
32,
|
|
6891
|
-
135,
|
|
6892
|
-
167,
|
|
6893
|
-
36,
|
|
6894
|
-
0,
|
|
6895
|
-
32,
|
|
6896
|
-
4,
|
|
6897
|
-
167,
|
|
6898
|
-
11,
|
|
6899
|
-
// 5, "rem_u"
|
|
6900
|
-
36,
|
|
6901
|
-
1,
|
|
6902
|
-
1,
|
|
6903
|
-
126,
|
|
6904
|
-
32,
|
|
6905
|
-
0,
|
|
6906
|
-
173,
|
|
6907
|
-
32,
|
|
6908
|
-
1,
|
|
6909
|
-
173,
|
|
6910
|
-
66,
|
|
6911
|
-
32,
|
|
6912
|
-
134,
|
|
6913
|
-
132,
|
|
6914
|
-
32,
|
|
6915
|
-
2,
|
|
6916
|
-
173,
|
|
6917
|
-
32,
|
|
6918
|
-
3,
|
|
6919
|
-
173,
|
|
6920
|
-
66,
|
|
6921
|
-
32,
|
|
6922
|
-
134,
|
|
6923
|
-
132,
|
|
6924
|
-
130,
|
|
6925
|
-
34,
|
|
6926
|
-
4,
|
|
6927
|
-
66,
|
|
6928
|
-
32,
|
|
6929
|
-
135,
|
|
6930
|
-
167,
|
|
6931
|
-
36,
|
|
6932
|
-
0,
|
|
6933
|
-
32,
|
|
6934
|
-
4,
|
|
6935
|
-
167,
|
|
6936
|
-
11
|
|
6937
|
-
])
|
|
6938
|
-
),
|
|
6939
|
-
{}
|
|
6940
|
-
).exports;
|
|
6941
|
-
} catch {
|
|
6942
|
-
}
|
|
6943
|
-
function Long(low, high, unsigned) {
|
|
6944
|
-
this.low = low | 0;
|
|
6945
|
-
this.high = high | 0;
|
|
6946
|
-
this.unsigned = !!unsigned;
|
|
6947
|
-
}
|
|
6948
|
-
Long.prototype.__isLong__;
|
|
6949
|
-
Object.defineProperty(Long.prototype, "__isLong__", { value: true });
|
|
6950
|
-
function isLong$1(obj) {
|
|
6951
|
-
return (obj && obj["__isLong__"]) === true;
|
|
6952
|
-
}
|
|
6953
|
-
function ctz32(value) {
|
|
6954
|
-
var c = Math.clz32(value & -value);
|
|
6955
|
-
return value ? 31 - c : c;
|
|
6956
|
-
}
|
|
6957
|
-
Long.isLong = isLong$1;
|
|
6958
|
-
var INT_CACHE = {};
|
|
6959
|
-
var UINT_CACHE = {};
|
|
6960
|
-
function fromInt(value, unsigned) {
|
|
6961
|
-
var obj, cachedObj, cache;
|
|
6962
|
-
if (unsigned) {
|
|
6963
|
-
value >>>= 0;
|
|
6964
|
-
if (cache = 0 <= value && value < 256) {
|
|
6965
|
-
cachedObj = UINT_CACHE[value];
|
|
6966
|
-
if (cachedObj) return cachedObj;
|
|
6967
|
-
}
|
|
6968
|
-
obj = fromBits(value, 0, true);
|
|
6969
|
-
if (cache) UINT_CACHE[value] = obj;
|
|
6970
|
-
return obj;
|
|
6971
|
-
} else {
|
|
6972
|
-
value |= 0;
|
|
6973
|
-
if (cache = -128 <= value && value < 128) {
|
|
6974
|
-
cachedObj = INT_CACHE[value];
|
|
6975
|
-
if (cachedObj) return cachedObj;
|
|
6976
|
-
}
|
|
6977
|
-
obj = fromBits(value, value < 0 ? -1 : 0, false);
|
|
6978
|
-
if (cache) INT_CACHE[value] = obj;
|
|
6979
|
-
return obj;
|
|
6980
|
-
}
|
|
6981
|
-
}
|
|
6982
|
-
Long.fromInt = fromInt;
|
|
6983
|
-
function fromNumber(value, unsigned) {
|
|
6984
|
-
if (isNaN(value)) return unsigned ? UZERO : ZERO;
|
|
6985
|
-
if (unsigned) {
|
|
6986
|
-
if (value < 0) return UZERO;
|
|
6987
|
-
if (value >= TWO_PWR_64_DBL) return MAX_UNSIGNED_VALUE;
|
|
6988
|
-
} else {
|
|
6989
|
-
if (value <= -TWO_PWR_63_DBL) return MIN_VALUE;
|
|
6990
|
-
if (value + 1 >= TWO_PWR_63_DBL) return MAX_VALUE;
|
|
6991
|
-
}
|
|
6992
|
-
if (value < 0) return fromNumber(-value, unsigned).neg();
|
|
6993
|
-
return fromBits(
|
|
6994
|
-
value % TWO_PWR_32_DBL | 0,
|
|
6995
|
-
value / TWO_PWR_32_DBL | 0,
|
|
6996
|
-
unsigned
|
|
6997
|
-
);
|
|
6998
|
-
}
|
|
6999
|
-
Long.fromNumber = fromNumber;
|
|
7000
|
-
function fromBits(lowBits, highBits, unsigned) {
|
|
7001
|
-
return new Long(lowBits, highBits, unsigned);
|
|
7002
|
-
}
|
|
7003
|
-
Long.fromBits = fromBits;
|
|
7004
|
-
var pow_dbl = Math.pow;
|
|
7005
|
-
function fromString(str, unsigned, radix) {
|
|
7006
|
-
if (str.length === 0) throw Error("empty string");
|
|
7007
|
-
if (typeof unsigned === "number") {
|
|
7008
|
-
radix = unsigned;
|
|
7009
|
-
unsigned = false;
|
|
7010
|
-
} else {
|
|
7011
|
-
unsigned = !!unsigned;
|
|
7012
|
-
}
|
|
7013
|
-
if (str === "NaN" || str === "Infinity" || str === "+Infinity" || str === "-Infinity")
|
|
7014
|
-
return unsigned ? UZERO : ZERO;
|
|
7015
|
-
radix = radix || 10;
|
|
7016
|
-
if (radix < 2 || 36 < radix) throw RangeError("radix");
|
|
7017
|
-
var p;
|
|
7018
|
-
if ((p = str.indexOf("-")) > 0) throw Error("interior hyphen");
|
|
7019
|
-
else if (p === 0) {
|
|
7020
|
-
return fromString(str.substring(1), unsigned, radix).neg();
|
|
7021
|
-
}
|
|
7022
|
-
var radixToPower = fromNumber(pow_dbl(radix, 8));
|
|
7023
|
-
var result = ZERO;
|
|
7024
|
-
for (var i = 0; i < str.length; i += 8) {
|
|
7025
|
-
var size = Math.min(8, str.length - i), value = parseInt(str.substring(i, i + size), radix);
|
|
7026
|
-
if (size < 8) {
|
|
7027
|
-
var power = fromNumber(pow_dbl(radix, size));
|
|
7028
|
-
result = result.mul(power).add(fromNumber(value));
|
|
7029
|
-
} else {
|
|
7030
|
-
result = result.mul(radixToPower);
|
|
7031
|
-
result = result.add(fromNumber(value));
|
|
7032
|
-
}
|
|
7033
|
-
}
|
|
7034
|
-
result.unsigned = unsigned;
|
|
7035
|
-
return result;
|
|
7036
|
-
}
|
|
7037
|
-
Long.fromString = fromString;
|
|
7038
|
-
function fromValue(val, unsigned) {
|
|
7039
|
-
if (typeof val === "number") return fromNumber(val, unsigned);
|
|
7040
|
-
if (typeof val === "string") return fromString(val, unsigned);
|
|
7041
|
-
return fromBits(
|
|
7042
|
-
val.low,
|
|
7043
|
-
val.high,
|
|
7044
|
-
typeof unsigned === "boolean" ? unsigned : val.unsigned
|
|
7045
|
-
);
|
|
7046
|
-
}
|
|
7047
|
-
Long.fromValue = fromValue;
|
|
7048
|
-
var TWO_PWR_16_DBL = 1 << 16;
|
|
7049
|
-
var TWO_PWR_24_DBL = 1 << 24;
|
|
7050
|
-
var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;
|
|
7051
|
-
var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;
|
|
7052
|
-
var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;
|
|
7053
|
-
var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);
|
|
7054
|
-
var ZERO = fromInt(0);
|
|
7055
|
-
Long.ZERO = ZERO;
|
|
7056
|
-
var UZERO = fromInt(0, true);
|
|
7057
|
-
Long.UZERO = UZERO;
|
|
7058
|
-
var ONE = fromInt(1);
|
|
7059
|
-
Long.ONE = ONE;
|
|
7060
|
-
var UONE = fromInt(1, true);
|
|
7061
|
-
Long.UONE = UONE;
|
|
7062
|
-
var NEG_ONE = fromInt(-1);
|
|
7063
|
-
Long.NEG_ONE = NEG_ONE;
|
|
7064
|
-
var MAX_VALUE = fromBits(4294967295 | 0, 2147483647 | 0, false);
|
|
7065
|
-
Long.MAX_VALUE = MAX_VALUE;
|
|
7066
|
-
var MAX_UNSIGNED_VALUE = fromBits(4294967295 | 0, 4294967295 | 0, true);
|
|
7067
|
-
Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;
|
|
7068
|
-
var MIN_VALUE = fromBits(0, 2147483648 | 0, false);
|
|
7069
|
-
Long.MIN_VALUE = MIN_VALUE;
|
|
7070
|
-
var LongPrototype = Long.prototype;
|
|
7071
|
-
LongPrototype.toInt = function toInt() {
|
|
7072
|
-
return this.unsigned ? this.low >>> 0 : this.low;
|
|
7073
|
-
};
|
|
7074
|
-
LongPrototype.toNumber = function toNumber() {
|
|
7075
|
-
if (this.unsigned)
|
|
7076
|
-
return (this.high >>> 0) * TWO_PWR_32_DBL + (this.low >>> 0);
|
|
7077
|
-
return this.high * TWO_PWR_32_DBL + (this.low >>> 0);
|
|
7078
|
-
};
|
|
7079
|
-
LongPrototype.toString = function toString(radix) {
|
|
7080
|
-
radix = radix || 10;
|
|
7081
|
-
if (radix < 2 || 36 < radix) throw RangeError("radix");
|
|
7082
|
-
if (this.isZero()) return "0";
|
|
7083
|
-
if (this.isNegative()) {
|
|
7084
|
-
if (this.eq(MIN_VALUE)) {
|
|
7085
|
-
var radixLong = fromNumber(radix), div = this.div(radixLong), rem1 = div.mul(radixLong).sub(this);
|
|
7086
|
-
return div.toString(radix) + rem1.toInt().toString(radix);
|
|
7087
|
-
} else return "-" + this.neg().toString(radix);
|
|
7088
|
-
}
|
|
7089
|
-
var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned), rem = this;
|
|
7090
|
-
var result = "";
|
|
7091
|
-
while (true) {
|
|
7092
|
-
var remDiv = rem.div(radixToPower), intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0, digits = intval.toString(radix);
|
|
7093
|
-
rem = remDiv;
|
|
7094
|
-
if (rem.isZero()) return digits + result;
|
|
7095
|
-
else {
|
|
7096
|
-
while (digits.length < 6) digits = "0" + digits;
|
|
7097
|
-
result = "" + digits + result;
|
|
7098
|
-
}
|
|
7099
|
-
}
|
|
7100
|
-
};
|
|
7101
|
-
LongPrototype.getHighBits = function getHighBits() {
|
|
7102
|
-
return this.high;
|
|
7103
|
-
};
|
|
7104
|
-
LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {
|
|
7105
|
-
return this.high >>> 0;
|
|
7106
|
-
};
|
|
7107
|
-
LongPrototype.getLowBits = function getLowBits() {
|
|
7108
|
-
return this.low;
|
|
7109
|
-
};
|
|
7110
|
-
LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {
|
|
7111
|
-
return this.low >>> 0;
|
|
7112
|
-
};
|
|
7113
|
-
LongPrototype.getNumBitsAbs = function getNumBitsAbs() {
|
|
7114
|
-
if (this.isNegative())
|
|
7115
|
-
return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();
|
|
7116
|
-
var val = this.high != 0 ? this.high : this.low;
|
|
7117
|
-
for (var bit = 31; bit > 0; bit--) if ((val & 1 << bit) != 0) break;
|
|
7118
|
-
return this.high != 0 ? bit + 33 : bit + 1;
|
|
7119
|
-
};
|
|
7120
|
-
LongPrototype.isSafeInteger = function isSafeInteger() {
|
|
7121
|
-
var top11Bits = this.high >> 21;
|
|
7122
|
-
if (!top11Bits) return true;
|
|
7123
|
-
if (this.unsigned) return false;
|
|
7124
|
-
return top11Bits === -1 && !(this.low === 0 && this.high === -2097152);
|
|
7125
|
-
};
|
|
7126
|
-
LongPrototype.isZero = function isZero() {
|
|
7127
|
-
return this.high === 0 && this.low === 0;
|
|
7128
|
-
};
|
|
7129
|
-
LongPrototype.eqz = LongPrototype.isZero;
|
|
7130
|
-
LongPrototype.isNegative = function isNegative() {
|
|
7131
|
-
return !this.unsigned && this.high < 0;
|
|
7132
|
-
};
|
|
7133
|
-
LongPrototype.isPositive = function isPositive() {
|
|
7134
|
-
return this.unsigned || this.high >= 0;
|
|
7135
|
-
};
|
|
7136
|
-
LongPrototype.isOdd = function isOdd() {
|
|
7137
|
-
return (this.low & 1) === 1;
|
|
7138
|
-
};
|
|
7139
|
-
LongPrototype.isEven = function isEven() {
|
|
7140
|
-
return (this.low & 1) === 0;
|
|
7141
|
-
};
|
|
7142
|
-
LongPrototype.equals = function equals(other) {
|
|
7143
|
-
if (!isLong$1(other)) other = fromValue(other);
|
|
7144
|
-
if (this.unsigned !== other.unsigned && this.high >>> 31 === 1 && other.high >>> 31 === 1)
|
|
7145
|
-
return false;
|
|
7146
|
-
return this.high === other.high && this.low === other.low;
|
|
7147
|
-
};
|
|
7148
|
-
LongPrototype.eq = LongPrototype.equals;
|
|
7149
|
-
LongPrototype.notEquals = function notEquals(other) {
|
|
7150
|
-
return !this.eq(
|
|
7151
|
-
/* validates */
|
|
7152
|
-
other
|
|
7153
|
-
);
|
|
7154
|
-
};
|
|
7155
|
-
LongPrototype.neq = LongPrototype.notEquals;
|
|
7156
|
-
LongPrototype.ne = LongPrototype.notEquals;
|
|
7157
|
-
LongPrototype.lessThan = function lessThan(other) {
|
|
7158
|
-
return this.comp(
|
|
7159
|
-
/* validates */
|
|
7160
|
-
other
|
|
7161
|
-
) < 0;
|
|
7162
|
-
};
|
|
7163
|
-
LongPrototype.lt = LongPrototype.lessThan;
|
|
7164
|
-
LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {
|
|
7165
|
-
return this.comp(
|
|
7166
|
-
/* validates */
|
|
7167
|
-
other
|
|
7168
|
-
) <= 0;
|
|
7169
|
-
};
|
|
7170
|
-
LongPrototype.lte = LongPrototype.lessThanOrEqual;
|
|
7171
|
-
LongPrototype.le = LongPrototype.lessThanOrEqual;
|
|
7172
|
-
LongPrototype.greaterThan = function greaterThan(other) {
|
|
7173
|
-
return this.comp(
|
|
7174
|
-
/* validates */
|
|
7175
|
-
other
|
|
7176
|
-
) > 0;
|
|
7177
|
-
};
|
|
7178
|
-
LongPrototype.gt = LongPrototype.greaterThan;
|
|
7179
|
-
LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {
|
|
7180
|
-
return this.comp(
|
|
7181
|
-
/* validates */
|
|
7182
|
-
other
|
|
7183
|
-
) >= 0;
|
|
7184
|
-
};
|
|
7185
|
-
LongPrototype.gte = LongPrototype.greaterThanOrEqual;
|
|
7186
|
-
LongPrototype.ge = LongPrototype.greaterThanOrEqual;
|
|
7187
|
-
LongPrototype.compare = function compare(other) {
|
|
7188
|
-
if (!isLong$1(other)) other = fromValue(other);
|
|
7189
|
-
if (this.eq(other)) return 0;
|
|
7190
|
-
var thisNeg = this.isNegative(), otherNeg = other.isNegative();
|
|
7191
|
-
if (thisNeg && !otherNeg) return -1;
|
|
7192
|
-
if (!thisNeg && otherNeg) return 1;
|
|
7193
|
-
if (!this.unsigned) return this.sub(other).isNegative() ? -1 : 1;
|
|
7194
|
-
return other.high >>> 0 > this.high >>> 0 || other.high === this.high && other.low >>> 0 > this.low >>> 0 ? -1 : 1;
|
|
7195
|
-
};
|
|
7196
|
-
LongPrototype.comp = LongPrototype.compare;
|
|
7197
|
-
LongPrototype.negate = function negate2() {
|
|
7198
|
-
if (!this.unsigned && this.eq(MIN_VALUE)) return MIN_VALUE;
|
|
7199
|
-
return this.not().add(ONE);
|
|
7200
|
-
};
|
|
7201
|
-
LongPrototype.neg = LongPrototype.negate;
|
|
7202
|
-
LongPrototype.add = function add(addend) {
|
|
7203
|
-
if (!isLong$1(addend)) addend = fromValue(addend);
|
|
7204
|
-
var a48 = this.high >>> 16;
|
|
7205
|
-
var a32 = this.high & 65535;
|
|
7206
|
-
var a16 = this.low >>> 16;
|
|
7207
|
-
var a00 = this.low & 65535;
|
|
7208
|
-
var b48 = addend.high >>> 16;
|
|
7209
|
-
var b32 = addend.high & 65535;
|
|
7210
|
-
var b16 = addend.low >>> 16;
|
|
7211
|
-
var b00 = addend.low & 65535;
|
|
7212
|
-
var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
|
|
7213
|
-
c00 += a00 + b00;
|
|
7214
|
-
c16 += c00 >>> 16;
|
|
7215
|
-
c00 &= 65535;
|
|
7216
|
-
c16 += a16 + b16;
|
|
7217
|
-
c32 += c16 >>> 16;
|
|
7218
|
-
c16 &= 65535;
|
|
7219
|
-
c32 += a32 + b32;
|
|
7220
|
-
c48 += c32 >>> 16;
|
|
7221
|
-
c32 &= 65535;
|
|
7222
|
-
c48 += a48 + b48;
|
|
7223
|
-
c48 &= 65535;
|
|
7224
|
-
return fromBits(c16 << 16 | c00, c48 << 16 | c32, this.unsigned);
|
|
7225
|
-
};
|
|
7226
|
-
LongPrototype.subtract = function subtract(subtrahend) {
|
|
7227
|
-
if (!isLong$1(subtrahend)) subtrahend = fromValue(subtrahend);
|
|
7228
|
-
return this.add(subtrahend.neg());
|
|
7229
|
-
};
|
|
7230
|
-
LongPrototype.sub = LongPrototype.subtract;
|
|
7231
|
-
LongPrototype.multiply = function multiply(multiplier) {
|
|
7232
|
-
if (this.isZero()) return this;
|
|
7233
|
-
if (!isLong$1(multiplier)) multiplier = fromValue(multiplier);
|
|
7234
|
-
if (wasm) {
|
|
7235
|
-
var low = wasm["mul"](this.low, this.high, multiplier.low, multiplier.high);
|
|
7236
|
-
return fromBits(low, wasm["get_high"](), this.unsigned);
|
|
7237
|
-
}
|
|
7238
|
-
if (multiplier.isZero()) return this.unsigned ? UZERO : ZERO;
|
|
7239
|
-
if (this.eq(MIN_VALUE)) return multiplier.isOdd() ? MIN_VALUE : ZERO;
|
|
7240
|
-
if (multiplier.eq(MIN_VALUE)) return this.isOdd() ? MIN_VALUE : ZERO;
|
|
7241
|
-
if (this.isNegative()) {
|
|
7242
|
-
if (multiplier.isNegative()) return this.neg().mul(multiplier.neg());
|
|
7243
|
-
else return this.neg().mul(multiplier).neg();
|
|
7244
|
-
} else if (multiplier.isNegative()) return this.mul(multiplier.neg()).neg();
|
|
7245
|
-
if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))
|
|
7246
|
-
return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);
|
|
7247
|
-
var a48 = this.high >>> 16;
|
|
7248
|
-
var a32 = this.high & 65535;
|
|
7249
|
-
var a16 = this.low >>> 16;
|
|
7250
|
-
var a00 = this.low & 65535;
|
|
7251
|
-
var b48 = multiplier.high >>> 16;
|
|
7252
|
-
var b32 = multiplier.high & 65535;
|
|
7253
|
-
var b16 = multiplier.low >>> 16;
|
|
7254
|
-
var b00 = multiplier.low & 65535;
|
|
7255
|
-
var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
|
|
7256
|
-
c00 += a00 * b00;
|
|
7257
|
-
c16 += c00 >>> 16;
|
|
7258
|
-
c00 &= 65535;
|
|
7259
|
-
c16 += a16 * b00;
|
|
7260
|
-
c32 += c16 >>> 16;
|
|
7261
|
-
c16 &= 65535;
|
|
7262
|
-
c16 += a00 * b16;
|
|
7263
|
-
c32 += c16 >>> 16;
|
|
7264
|
-
c16 &= 65535;
|
|
7265
|
-
c32 += a32 * b00;
|
|
7266
|
-
c48 += c32 >>> 16;
|
|
7267
|
-
c32 &= 65535;
|
|
7268
|
-
c32 += a16 * b16;
|
|
7269
|
-
c48 += c32 >>> 16;
|
|
7270
|
-
c32 &= 65535;
|
|
7271
|
-
c32 += a00 * b32;
|
|
7272
|
-
c48 += c32 >>> 16;
|
|
7273
|
-
c32 &= 65535;
|
|
7274
|
-
c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
|
|
7275
|
-
c48 &= 65535;
|
|
7276
|
-
return fromBits(c16 << 16 | c00, c48 << 16 | c32, this.unsigned);
|
|
7277
|
-
};
|
|
7278
|
-
LongPrototype.mul = LongPrototype.multiply;
|
|
7279
|
-
LongPrototype.divide = function divide(divisor) {
|
|
7280
|
-
if (!isLong$1(divisor)) divisor = fromValue(divisor);
|
|
7281
|
-
if (divisor.isZero()) throw Error("division by zero");
|
|
7282
|
-
if (wasm) {
|
|
7283
|
-
if (!this.unsigned && this.high === -2147483648 && divisor.low === -1 && divisor.high === -1) {
|
|
7284
|
-
return this;
|
|
7285
|
-
}
|
|
7286
|
-
var low = (this.unsigned ? wasm["div_u"] : wasm["div_s"])(
|
|
7287
|
-
this.low,
|
|
7288
|
-
this.high,
|
|
7289
|
-
divisor.low,
|
|
7290
|
-
divisor.high
|
|
7291
|
-
);
|
|
7292
|
-
return fromBits(low, wasm["get_high"](), this.unsigned);
|
|
7293
|
-
}
|
|
7294
|
-
if (this.isZero()) return this.unsigned ? UZERO : ZERO;
|
|
7295
|
-
var approx, rem, res;
|
|
7296
|
-
if (!this.unsigned) {
|
|
7297
|
-
if (this.eq(MIN_VALUE)) {
|
|
7298
|
-
if (divisor.eq(ONE) || divisor.eq(NEG_ONE))
|
|
7299
|
-
return MIN_VALUE;
|
|
7300
|
-
else if (divisor.eq(MIN_VALUE)) return ONE;
|
|
7301
|
-
else {
|
|
7302
|
-
var halfThis = this.shr(1);
|
|
7303
|
-
approx = halfThis.div(divisor).shl(1);
|
|
7304
|
-
if (approx.eq(ZERO)) {
|
|
7305
|
-
return divisor.isNegative() ? ONE : NEG_ONE;
|
|
7306
|
-
} else {
|
|
7307
|
-
rem = this.sub(divisor.mul(approx));
|
|
7308
|
-
res = approx.add(rem.div(divisor));
|
|
7309
|
-
return res;
|
|
7310
|
-
}
|
|
7311
|
-
}
|
|
7312
|
-
} else if (divisor.eq(MIN_VALUE)) return this.unsigned ? UZERO : ZERO;
|
|
7313
|
-
if (this.isNegative()) {
|
|
7314
|
-
if (divisor.isNegative()) return this.neg().div(divisor.neg());
|
|
7315
|
-
return this.neg().div(divisor).neg();
|
|
7316
|
-
} else if (divisor.isNegative()) return this.div(divisor.neg()).neg();
|
|
7317
|
-
res = ZERO;
|
|
7318
|
-
} else {
|
|
7319
|
-
if (!divisor.unsigned) divisor = divisor.toUnsigned();
|
|
7320
|
-
if (divisor.gt(this)) return UZERO;
|
|
7321
|
-
if (divisor.gt(this.shru(1)))
|
|
7322
|
-
return UONE;
|
|
7323
|
-
res = UZERO;
|
|
7324
|
-
}
|
|
7325
|
-
rem = this;
|
|
7326
|
-
while (rem.gte(divisor)) {
|
|
7327
|
-
approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));
|
|
7328
|
-
var log2 = Math.ceil(Math.log(approx) / Math.LN2), delta = log2 <= 48 ? 1 : pow_dbl(2, log2 - 48), approxRes = fromNumber(approx), approxRem = approxRes.mul(divisor);
|
|
7329
|
-
while (approxRem.isNegative() || approxRem.gt(rem)) {
|
|
7330
|
-
approx -= delta;
|
|
7331
|
-
approxRes = fromNumber(approx, this.unsigned);
|
|
7332
|
-
approxRem = approxRes.mul(divisor);
|
|
7333
|
-
}
|
|
7334
|
-
if (approxRes.isZero()) approxRes = ONE;
|
|
7335
|
-
res = res.add(approxRes);
|
|
7336
|
-
rem = rem.sub(approxRem);
|
|
7337
|
-
}
|
|
7338
|
-
return res;
|
|
7339
|
-
};
|
|
7340
|
-
LongPrototype.div = LongPrototype.divide;
|
|
7341
|
-
LongPrototype.modulo = function modulo(divisor) {
|
|
7342
|
-
if (!isLong$1(divisor)) divisor = fromValue(divisor);
|
|
7343
|
-
if (wasm) {
|
|
7344
|
-
var low = (this.unsigned ? wasm["rem_u"] : wasm["rem_s"])(
|
|
7345
|
-
this.low,
|
|
7346
|
-
this.high,
|
|
7347
|
-
divisor.low,
|
|
7348
|
-
divisor.high
|
|
7349
|
-
);
|
|
7350
|
-
return fromBits(low, wasm["get_high"](), this.unsigned);
|
|
7351
|
-
}
|
|
7352
|
-
return this.sub(this.div(divisor).mul(divisor));
|
|
7353
|
-
};
|
|
7354
|
-
LongPrototype.mod = LongPrototype.modulo;
|
|
7355
|
-
LongPrototype.rem = LongPrototype.modulo;
|
|
7356
|
-
LongPrototype.not = function not() {
|
|
7357
|
-
return fromBits(~this.low, ~this.high, this.unsigned);
|
|
7358
|
-
};
|
|
7359
|
-
LongPrototype.countLeadingZeros = function countLeadingZeros() {
|
|
7360
|
-
return this.high ? Math.clz32(this.high) : Math.clz32(this.low) + 32;
|
|
7361
|
-
};
|
|
7362
|
-
LongPrototype.clz = LongPrototype.countLeadingZeros;
|
|
7363
|
-
LongPrototype.countTrailingZeros = function countTrailingZeros() {
|
|
7364
|
-
return this.low ? ctz32(this.low) : ctz32(this.high) + 32;
|
|
7365
|
-
};
|
|
7366
|
-
LongPrototype.ctz = LongPrototype.countTrailingZeros;
|
|
7367
|
-
LongPrototype.and = function and(other) {
|
|
7368
|
-
if (!isLong$1(other)) other = fromValue(other);
|
|
7369
|
-
return fromBits(this.low & other.low, this.high & other.high, this.unsigned);
|
|
7370
|
-
};
|
|
7371
|
-
LongPrototype.or = function or(other) {
|
|
7372
|
-
if (!isLong$1(other)) other = fromValue(other);
|
|
7373
|
-
return fromBits(this.low | other.low, this.high | other.high, this.unsigned);
|
|
7374
|
-
};
|
|
7375
|
-
LongPrototype.xor = function xor(other) {
|
|
7376
|
-
if (!isLong$1(other)) other = fromValue(other);
|
|
7377
|
-
return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);
|
|
7378
|
-
};
|
|
7379
|
-
LongPrototype.shiftLeft = function shiftLeft(numBits) {
|
|
7380
|
-
if (isLong$1(numBits)) numBits = numBits.toInt();
|
|
7381
|
-
if ((numBits &= 63) === 0) return this;
|
|
7382
|
-
else if (numBits < 32)
|
|
7383
|
-
return fromBits(
|
|
7384
|
-
this.low << numBits,
|
|
7385
|
-
this.high << numBits | this.low >>> 32 - numBits,
|
|
7386
|
-
this.unsigned
|
|
7387
|
-
);
|
|
7388
|
-
else return fromBits(0, this.low << numBits - 32, this.unsigned);
|
|
7389
|
-
};
|
|
7390
|
-
LongPrototype.shl = LongPrototype.shiftLeft;
|
|
7391
|
-
LongPrototype.shiftRight = function shiftRight(numBits) {
|
|
7392
|
-
if (isLong$1(numBits)) numBits = numBits.toInt();
|
|
7393
|
-
if ((numBits &= 63) === 0) return this;
|
|
7394
|
-
else if (numBits < 32)
|
|
7395
|
-
return fromBits(
|
|
7396
|
-
this.low >>> numBits | this.high << 32 - numBits,
|
|
7397
|
-
this.high >> numBits,
|
|
7398
|
-
this.unsigned
|
|
7399
|
-
);
|
|
7400
|
-
else
|
|
7401
|
-
return fromBits(
|
|
7402
|
-
this.high >> numBits - 32,
|
|
7403
|
-
this.high >= 0 ? 0 : -1,
|
|
7404
|
-
this.unsigned
|
|
7405
|
-
);
|
|
7406
|
-
};
|
|
7407
|
-
LongPrototype.shr = LongPrototype.shiftRight;
|
|
7408
|
-
LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {
|
|
7409
|
-
if (isLong$1(numBits)) numBits = numBits.toInt();
|
|
7410
|
-
if ((numBits &= 63) === 0) return this;
|
|
7411
|
-
if (numBits < 32)
|
|
7412
|
-
return fromBits(
|
|
7413
|
-
this.low >>> numBits | this.high << 32 - numBits,
|
|
7414
|
-
this.high >>> numBits,
|
|
7415
|
-
this.unsigned
|
|
7416
|
-
);
|
|
7417
|
-
if (numBits === 32) return fromBits(this.high, 0, this.unsigned);
|
|
7418
|
-
return fromBits(this.high >>> numBits - 32, 0, this.unsigned);
|
|
7419
|
-
};
|
|
7420
|
-
LongPrototype.shru = LongPrototype.shiftRightUnsigned;
|
|
7421
|
-
LongPrototype.shr_u = LongPrototype.shiftRightUnsigned;
|
|
7422
|
-
LongPrototype.rotateLeft = function rotateLeft(numBits) {
|
|
7423
|
-
var b;
|
|
7424
|
-
if (isLong$1(numBits)) numBits = numBits.toInt();
|
|
7425
|
-
if ((numBits &= 63) === 0) return this;
|
|
7426
|
-
if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);
|
|
7427
|
-
if (numBits < 32) {
|
|
7428
|
-
b = 32 - numBits;
|
|
7429
|
-
return fromBits(
|
|
7430
|
-
this.low << numBits | this.high >>> b,
|
|
7431
|
-
this.high << numBits | this.low >>> b,
|
|
7432
|
-
this.unsigned
|
|
7433
|
-
);
|
|
7008
|
+
if (node && node.hasParent()) {
|
|
7009
|
+
return node.getParent().getRight() === node;
|
|
7010
|
+
}
|
|
7011
|
+
return false;
|
|
7434
7012
|
}
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
LongPrototype.rotl = LongPrototype.rotateLeft;
|
|
7444
|
-
LongPrototype.rotateRight = function rotateRight(numBits) {
|
|
7445
|
-
var b;
|
|
7446
|
-
if (isLong$1(numBits)) numBits = numBits.toInt();
|
|
7447
|
-
if ((numBits &= 63) === 0) return this;
|
|
7448
|
-
if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);
|
|
7449
|
-
if (numBits < 32) {
|
|
7450
|
-
b = 32 - numBits;
|
|
7451
|
-
return fromBits(
|
|
7452
|
-
this.high << b | this.low >>> numBits,
|
|
7453
|
-
this.low << b | this.high >>> numBits,
|
|
7454
|
-
this.unsigned
|
|
7455
|
-
);
|
|
7013
|
+
}
|
|
7014
|
+
const removeDecimal = (number) => number < 0 ? Math.ceil(number) : Math.floor(number);
|
|
7015
|
+
function bigintToBytesLE(value) {
|
|
7016
|
+
const buf = new Uint8Array(8);
|
|
7017
|
+
let v = BigInt.asUintN(64, value);
|
|
7018
|
+
for (let i = 0; i < 8; i++) {
|
|
7019
|
+
buf[i] = Number(v & 0xffn);
|
|
7020
|
+
v >>= 8n;
|
|
7456
7021
|
}
|
|
7457
|
-
|
|
7458
|
-
|
|
7459
|
-
|
|
7460
|
-
|
|
7461
|
-
|
|
7462
|
-
|
|
7463
|
-
|
|
7464
|
-
|
|
7465
|
-
|
|
7466
|
-
|
|
7467
|
-
|
|
7468
|
-
|
|
7469
|
-
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
|
|
7473
|
-
|
|
7474
|
-
|
|
7475
|
-
return le ? this.toBytesLE() : this.toBytesBE();
|
|
7476
|
-
};
|
|
7477
|
-
LongPrototype.toBytesLE = function toBytesLE() {
|
|
7478
|
-
var hi = this.high, lo = this.low;
|
|
7479
|
-
return [
|
|
7480
|
-
lo & 255,
|
|
7481
|
-
lo >>> 8 & 255,
|
|
7482
|
-
lo >>> 16 & 255,
|
|
7483
|
-
lo >>> 24,
|
|
7484
|
-
hi & 255,
|
|
7485
|
-
hi >>> 8 & 255,
|
|
7486
|
-
hi >>> 16 & 255,
|
|
7487
|
-
hi >>> 24
|
|
7488
|
-
];
|
|
7489
|
-
};
|
|
7490
|
-
LongPrototype.toBytesBE = function toBytesBE() {
|
|
7491
|
-
var hi = this.high, lo = this.low;
|
|
7492
|
-
return [
|
|
7493
|
-
hi >>> 24,
|
|
7494
|
-
hi >>> 16 & 255,
|
|
7495
|
-
hi >>> 8 & 255,
|
|
7496
|
-
hi & 255,
|
|
7497
|
-
lo >>> 24,
|
|
7498
|
-
lo >>> 16 & 255,
|
|
7499
|
-
lo >>> 8 & 255,
|
|
7500
|
-
lo & 255
|
|
7501
|
-
];
|
|
7502
|
-
};
|
|
7503
|
-
Long.fromBytes = function fromBytes(bytes, unsigned, le) {
|
|
7504
|
-
return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);
|
|
7505
|
-
};
|
|
7506
|
-
Long.fromBytesLE = function fromBytesLE(bytes, unsigned) {
|
|
7507
|
-
return new Long(
|
|
7508
|
-
bytes[0] | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24,
|
|
7509
|
-
bytes[4] | bytes[5] << 8 | bytes[6] << 16 | bytes[7] << 24,
|
|
7510
|
-
unsigned
|
|
7511
|
-
);
|
|
7512
|
-
};
|
|
7513
|
-
Long.fromBytesBE = function fromBytesBE(bytes, unsigned) {
|
|
7514
|
-
return new Long(
|
|
7515
|
-
bytes[4] << 24 | bytes[5] << 16 | bytes[6] << 8 | bytes[7],
|
|
7516
|
-
bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3],
|
|
7517
|
-
unsigned
|
|
7518
|
-
);
|
|
7519
|
-
};
|
|
7520
|
-
if (typeof BigInt === "function") {
|
|
7521
|
-
Long.fromBigInt = function fromBigInt(value, unsigned) {
|
|
7522
|
-
var lowBits = Number(BigInt.asIntN(32, value));
|
|
7523
|
-
var highBits = Number(BigInt.asIntN(32, value >> BigInt(32)));
|
|
7524
|
-
return fromBits(lowBits, highBits, unsigned);
|
|
7525
|
-
};
|
|
7526
|
-
Long.fromValue = function fromValueWithBigInt(value, unsigned) {
|
|
7527
|
-
if (typeof value === "bigint") return Long.fromBigInt(value, unsigned);
|
|
7528
|
-
return fromValue(value, unsigned);
|
|
7529
|
-
};
|
|
7530
|
-
LongPrototype.toBigInt = function toBigInt() {
|
|
7531
|
-
var lowBigInt = BigInt(this.low >>> 0);
|
|
7532
|
-
var highBigInt = BigInt(this.unsigned ? this.high >>> 0 : this.high);
|
|
7533
|
-
return highBigInt << BigInt(32) | lowBigInt;
|
|
7534
|
-
};
|
|
7022
|
+
return buf;
|
|
7023
|
+
}
|
|
7024
|
+
function bigintFromBytesLE(bytes) {
|
|
7025
|
+
let v = 0n;
|
|
7026
|
+
for (let i = 7; i >= 0; i--) {
|
|
7027
|
+
v = v << 8n | BigInt(bytes[i]);
|
|
7028
|
+
}
|
|
7029
|
+
return BigInt.asIntN(64, v);
|
|
7030
|
+
}
|
|
7031
|
+
function bigintFromBytesLEUnsigned(bytes) {
|
|
7032
|
+
let v = 0n;
|
|
7033
|
+
for (let i = 7; i >= 0; i--) {
|
|
7034
|
+
v = v << 8n | BigInt(bytes[i]);
|
|
7035
|
+
}
|
|
7036
|
+
return v;
|
|
7037
|
+
}
|
|
7038
|
+
function bigintToInt32(value) {
|
|
7039
|
+
return Number(BigInt.asIntN(32, value));
|
|
7535
7040
|
}
|
|
7536
7041
|
var PrimitiveType = /* @__PURE__ */ ((PrimitiveType2) => {
|
|
7537
7042
|
PrimitiveType2[PrimitiveType2["Null"] = 0] = "Null";
|
|
@@ -7579,11 +7084,11 @@
|
|
|
7579
7084
|
case 5:
|
|
7580
7085
|
return new TextDecoder("utf-8").decode(bytes);
|
|
7581
7086
|
case 3:
|
|
7582
|
-
return
|
|
7087
|
+
return bigintFromBytesLE(bytes);
|
|
7583
7088
|
case 6:
|
|
7584
7089
|
return bytes;
|
|
7585
7090
|
case 7:
|
|
7586
|
-
return new Date(
|
|
7091
|
+
return new Date(Number(bigintFromBytesLEUnsigned(bytes)));
|
|
7587
7092
|
default:
|
|
7588
7093
|
throw new YorkieError(
|
|
7589
7094
|
Code.ErrUnimplemented,
|
|
@@ -7684,13 +7189,13 @@
|
|
|
7684
7189
|
} else {
|
|
7685
7190
|
return 4;
|
|
7686
7191
|
}
|
|
7192
|
+
case "bigint":
|
|
7193
|
+
return 3;
|
|
7687
7194
|
case "string":
|
|
7688
7195
|
return 5;
|
|
7689
7196
|
case "object":
|
|
7690
7197
|
if (value === null) {
|
|
7691
7198
|
return 0;
|
|
7692
|
-
} else if (value instanceof Long) {
|
|
7693
|
-
return 3;
|
|
7694
7199
|
} else if (value instanceof Uint8Array) {
|
|
7695
7200
|
return 6;
|
|
7696
7201
|
} else if (value instanceof Date) {
|
|
@@ -7760,9 +7265,7 @@
|
|
|
7760
7265
|
return new TextEncoder().encode(this.value);
|
|
7761
7266
|
}
|
|
7762
7267
|
case 3: {
|
|
7763
|
-
|
|
7764
|
-
const longToBytes = longVal.toBytesLE();
|
|
7765
|
-
return Uint8Array.from(longToBytes);
|
|
7268
|
+
return bigintToBytesLE(this.value);
|
|
7766
7269
|
}
|
|
7767
7270
|
case 6: {
|
|
7768
7271
|
const bytesVal = this.value;
|
|
@@ -7770,11 +7273,7 @@
|
|
|
7770
7273
|
}
|
|
7771
7274
|
case 7: {
|
|
7772
7275
|
const dateVal = this.value;
|
|
7773
|
-
|
|
7774
|
-
dateVal.getTime(),
|
|
7775
|
-
true
|
|
7776
|
-
).toBytesLE();
|
|
7777
|
-
return Uint8Array.from(dateToBytes);
|
|
7276
|
+
return bigintToBytesLE(BigInt(dateVal.getTime()));
|
|
7778
7277
|
}
|
|
7779
7278
|
default:
|
|
7780
7279
|
throw new YorkieError(
|
|
@@ -11320,7 +10819,7 @@
|
|
|
11320
10819
|
this._children = left;
|
|
11321
10820
|
clone._children = actualRight;
|
|
11322
10821
|
this.visibleSize = this._children.reduce(
|
|
11323
|
-
(acc, child) => acc + child.paddedSize(),
|
|
10822
|
+
(acc, child) => acc + (child.isRemoved ? 0 : child.paddedSize()),
|
|
11324
10823
|
0
|
|
11325
10824
|
);
|
|
11326
10825
|
this.totalSize = this._children.reduce(
|
|
@@ -11328,7 +10827,7 @@
|
|
|
11328
10827
|
0
|
|
11329
10828
|
);
|
|
11330
10829
|
clone.visibleSize = clone._children.reduce(
|
|
11331
|
-
(acc, child) => acc + child.paddedSize(),
|
|
10830
|
+
(acc, child) => acc + (child.isRemoved ? 0 : child.paddedSize()),
|
|
11332
10831
|
0
|
|
11333
10832
|
);
|
|
11334
10833
|
clone.totalSize = clone._children.reduce(
|
|
@@ -12437,6 +11936,9 @@
|
|
|
12437
11936
|
const changes = [];
|
|
12438
11937
|
const attrs = attributes ? parseObjectValues(attributes) : {};
|
|
12439
11938
|
const pairs = [];
|
|
11939
|
+
const prevAttributes = /* @__PURE__ */ new Map();
|
|
11940
|
+
const newAttrKeys = [];
|
|
11941
|
+
let capturedPrev = false;
|
|
12440
11942
|
this.traverseInPosRange(
|
|
12441
11943
|
fromParent,
|
|
12442
11944
|
fromLeft,
|
|
@@ -12452,6 +11954,16 @@
|
|
|
12452
11954
|
if (tokenType === TokenType.End && versionVector !== void 0 && this.hasUnknownSplitSibling(node, versionVector)) {
|
|
12453
11955
|
return;
|
|
12454
11956
|
}
|
|
11957
|
+
if (!capturedPrev) {
|
|
11958
|
+
for (const key of Object.keys(attributes)) {
|
|
11959
|
+
if (node.attrs?.has(key)) {
|
|
11960
|
+
prevAttributes.set(key, node.attrs.get(key));
|
|
11961
|
+
} else {
|
|
11962
|
+
newAttrKeys.push(key);
|
|
11963
|
+
}
|
|
11964
|
+
}
|
|
11965
|
+
capturedPrev = true;
|
|
11966
|
+
}
|
|
12455
11967
|
const updatedAttrPairs = node.setAttrs(attributes, editedAt);
|
|
12456
11968
|
const affectedAttrs = updatedAttrPairs.reduce(
|
|
12457
11969
|
(acc, [, curr]) => {
|
|
@@ -12490,7 +12002,7 @@
|
|
|
12490
12002
|
}
|
|
12491
12003
|
}
|
|
12492
12004
|
);
|
|
12493
|
-
return [pairs, changes, diff];
|
|
12005
|
+
return [pairs, changes, diff, prevAttributes, newAttrKeys];
|
|
12494
12006
|
}
|
|
12495
12007
|
/**
|
|
12496
12008
|
* `removeStyle` removes the given attributes of the given range.
|
|
@@ -12508,6 +12020,8 @@
|
|
|
12508
12020
|
addDataSizes(diff, diffTo, diffFrom);
|
|
12509
12021
|
const changes = [];
|
|
12510
12022
|
const pairs = [];
|
|
12023
|
+
const prevAttributes = /* @__PURE__ */ new Map();
|
|
12024
|
+
let capturedPrev = false;
|
|
12511
12025
|
this.traverseInPosRange(
|
|
12512
12026
|
fromParent,
|
|
12513
12027
|
fromLeft,
|
|
@@ -12526,6 +12040,14 @@
|
|
|
12526
12040
|
if (!node.attrs) {
|
|
12527
12041
|
node.attrs = new RHT();
|
|
12528
12042
|
}
|
|
12043
|
+
if (!capturedPrev) {
|
|
12044
|
+
for (const key of attributesToRemove) {
|
|
12045
|
+
if (node.attrs.has(key)) {
|
|
12046
|
+
prevAttributes.set(key, node.attrs.get(key));
|
|
12047
|
+
}
|
|
12048
|
+
}
|
|
12049
|
+
capturedPrev = true;
|
|
12050
|
+
}
|
|
12529
12051
|
for (const value of attributesToRemove) {
|
|
12530
12052
|
const nodesTobeRemoved = node.attrs.remove(value, editedAt);
|
|
12531
12053
|
for (const rhtNode of nodesTobeRemoved) {
|
|
@@ -12546,7 +12068,7 @@
|
|
|
12546
12068
|
}
|
|
12547
12069
|
}
|
|
12548
12070
|
);
|
|
12549
|
-
return [pairs, changes, diff];
|
|
12071
|
+
return [pairs, changes, diff, prevAttributes];
|
|
12550
12072
|
}
|
|
12551
12073
|
/**
|
|
12552
12074
|
* `edit` edits the tree with the given range and content.
|
|
@@ -12680,7 +12202,7 @@
|
|
|
12680
12202
|
while (splitCount < splitLevel) {
|
|
12681
12203
|
parent.split(
|
|
12682
12204
|
this,
|
|
12683
|
-
parent.findOffset(left) + 1,
|
|
12205
|
+
parent.findOffset(left, true) + 1,
|
|
12684
12206
|
issueTimeTicket,
|
|
12685
12207
|
versionVector
|
|
12686
12208
|
);
|
|
@@ -13194,6 +12716,13 @@
|
|
|
13194
12716
|
toIdx;
|
|
13195
12717
|
lastFromIdx;
|
|
13196
12718
|
lastToIdx;
|
|
12719
|
+
/**
|
|
12720
|
+
* `redoSplitLevel` is set on boundary-deletion undo ops that were generated
|
|
12721
|
+
* to reverse a split. When this op executes (as undo), `toReverseOperation`
|
|
12722
|
+
* uses this value to generate a proper split op for redo, rather than
|
|
12723
|
+
* re-inserting the raw tombstoned boundary nodes as content.
|
|
12724
|
+
*/
|
|
12725
|
+
redoSplitLevel;
|
|
13197
12726
|
constructor(parentCreatedAt, fromPos, toPos, contents, splitLevel, executedAt, isUndoOp, fromIdx, toIdx) {
|
|
13198
12727
|
super(parentCreatedAt, executedAt);
|
|
13199
12728
|
this.fromPos = fromPos;
|
|
@@ -13279,7 +12808,13 @@
|
|
|
13279
12808
|
0
|
|
13280
12809
|
);
|
|
13281
12810
|
this.lastToIdx = preEditFromIdx + removedSize;
|
|
13282
|
-
|
|
12811
|
+
let reverseOp;
|
|
12812
|
+
const isPureL1Split = this.splitLevel === 1 && !this.contents?.length && removedNodes.length === 0;
|
|
12813
|
+
if (this.splitLevel === 0) {
|
|
12814
|
+
reverseOp = this.toReverseOperation(tree, removedNodes, preEditFromIdx);
|
|
12815
|
+
} else if (isPureL1Split) {
|
|
12816
|
+
reverseOp = this.toSplitReverseOperation(tree, preEditFromIdx);
|
|
12817
|
+
}
|
|
13283
12818
|
root.acc(diff);
|
|
13284
12819
|
for (const pair of pairs) {
|
|
13285
12820
|
root.registerGCPair(pair);
|
|
@@ -13315,6 +12850,24 @@
|
|
|
13315
12850
|
* @param preEditFromIdx - The from index captured BEFORE the edit
|
|
13316
12851
|
*/
|
|
13317
12852
|
toReverseOperation(tree, removedNodes, preEditFromIdx) {
|
|
12853
|
+
if (this.redoSplitLevel !== void 0 && this.redoSplitLevel > 0) {
|
|
12854
|
+
const splitRedoFromPos = tree.findPos(preEditFromIdx);
|
|
12855
|
+
const splitRedoOp = TreeEditOperation.create(
|
|
12856
|
+
this.getParentCreatedAt(),
|
|
12857
|
+
splitRedoFromPos,
|
|
12858
|
+
splitRedoFromPos,
|
|
12859
|
+
void 0,
|
|
12860
|
+
// no inserted content
|
|
12861
|
+
this.redoSplitLevel,
|
|
12862
|
+
void 0,
|
|
12863
|
+
// executedAt assigned at redo time
|
|
12864
|
+
true,
|
|
12865
|
+
// isUndoOp (treated as undo/redo op)
|
|
12866
|
+
preEditFromIdx,
|
|
12867
|
+
preEditFromIdx
|
|
12868
|
+
);
|
|
12869
|
+
return splitRedoOp;
|
|
12870
|
+
}
|
|
13318
12871
|
const insertedContentSize = this.contents ? this.contents.reduce((sum, node) => sum + node.paddedSize(), 0) : 0;
|
|
13319
12872
|
const maxNeededIdx = preEditFromIdx + insertedContentSize;
|
|
13320
12873
|
if (maxNeededIdx > tree.getSize()) {
|
|
@@ -13352,6 +12905,45 @@
|
|
|
13352
12905
|
reverseToIdx
|
|
13353
12906
|
);
|
|
13354
12907
|
}
|
|
12908
|
+
/**
|
|
12909
|
+
* `toSplitReverseOperation` creates the reverse operation for a split edit.
|
|
12910
|
+
*
|
|
12911
|
+
* A split creates element boundaries (close + open tags). The reverse
|
|
12912
|
+
* is a boundary deletion: a splitLevel=0 edit that removes those tokens,
|
|
12913
|
+
* merging the split elements back together.
|
|
12914
|
+
*
|
|
12915
|
+
* boundarySize = 2 * splitLevel (each level creates 1 close + 1 open tag)
|
|
12916
|
+
*
|
|
12917
|
+
* @param tree - The CRDTTree after the split has been applied
|
|
12918
|
+
* @param preEditFromIdx - The from index captured BEFORE the split
|
|
12919
|
+
*/
|
|
12920
|
+
toSplitReverseOperation(tree, preEditFromIdx) {
|
|
12921
|
+
const boundarySize = 2 * this.splitLevel;
|
|
12922
|
+
const reverseFromIdx = preEditFromIdx;
|
|
12923
|
+
const reverseToIdx = preEditFromIdx + boundarySize;
|
|
12924
|
+
if (reverseToIdx > tree.getSize()) {
|
|
12925
|
+
return void 0;
|
|
12926
|
+
}
|
|
12927
|
+
const reverseFromPos = tree.findPos(reverseFromIdx);
|
|
12928
|
+
const reverseToPos = tree.findPos(reverseToIdx);
|
|
12929
|
+
const boundaryDeletionOp = TreeEditOperation.create(
|
|
12930
|
+
this.getParentCreatedAt(),
|
|
12931
|
+
reverseFromPos,
|
|
12932
|
+
reverseToPos,
|
|
12933
|
+
void 0,
|
|
12934
|
+
// no content — this is a deletion
|
|
12935
|
+
0,
|
|
12936
|
+
// splitLevel=0: boundary deletion
|
|
12937
|
+
void 0,
|
|
12938
|
+
// executedAt assigned at undo time
|
|
12939
|
+
true,
|
|
12940
|
+
// isUndoOp
|
|
12941
|
+
reverseFromIdx,
|
|
12942
|
+
reverseToIdx
|
|
12943
|
+
);
|
|
12944
|
+
boundaryDeletionOp.redoSplitLevel = this.splitLevel;
|
|
12945
|
+
return boundaryDeletionOp;
|
|
12946
|
+
}
|
|
13355
12947
|
/**
|
|
13356
12948
|
* `normalizePos` returns the visible-index range of this operation.
|
|
13357
12949
|
* For undo ops, returns the stored (possibly reconciled) indices.
|
|
@@ -14057,35 +13649,196 @@
|
|
|
14057
13649
|
}
|
|
14058
13650
|
}
|
|
14059
13651
|
const InitialCheckpoint = new Checkpoint(0n, 0);
|
|
14060
|
-
const
|
|
13652
|
+
const hllPrecision = 14;
|
|
13653
|
+
const hllRegisterCount = 1 << hllPrecision;
|
|
13654
|
+
const prime64x1 = 0x9e3779b185ebca87n;
|
|
13655
|
+
const prime64x2 = 0xc2b2ae3d27d4eb4fn;
|
|
13656
|
+
const prime64x3 = 0x165667b19e3779f9n;
|
|
13657
|
+
const prime64x4 = 0x85ebca77c2b2ae63n;
|
|
13658
|
+
const prime64x5 = 0x27d4eb2f165667c5n;
|
|
13659
|
+
const mask64 = 0xffffffffffffffffn;
|
|
13660
|
+
class HLL {
|
|
13661
|
+
registers;
|
|
13662
|
+
constructor() {
|
|
13663
|
+
this.registers = new Uint8Array(hllRegisterCount);
|
|
13664
|
+
}
|
|
13665
|
+
/**
|
|
13666
|
+
* `add` adds a value to the HLL and returns true if the register was updated.
|
|
13667
|
+
*/
|
|
13668
|
+
add(value) {
|
|
13669
|
+
const hash = xxhash64(value);
|
|
13670
|
+
const idx = Number(hash >> BigInt(64 - hllPrecision));
|
|
13671
|
+
const remaining = hash << BigInt(hllPrecision) & mask64 | 1n << BigInt(hllPrecision - 1);
|
|
13672
|
+
const rho = countLeadingZeros64(remaining) + 1;
|
|
13673
|
+
if (rho > this.registers[idx]) {
|
|
13674
|
+
this.registers[idx] = rho;
|
|
13675
|
+
return true;
|
|
13676
|
+
}
|
|
13677
|
+
return false;
|
|
13678
|
+
}
|
|
13679
|
+
/**
|
|
13680
|
+
* `count` returns the approximate cardinality estimate.
|
|
13681
|
+
*/
|
|
13682
|
+
count() {
|
|
13683
|
+
const m = hllRegisterCount;
|
|
13684
|
+
const alpha = 0.7213 / (1 + 1.079 / m);
|
|
13685
|
+
let sum = 0;
|
|
13686
|
+
let zeros = 0;
|
|
13687
|
+
for (let i = 0; i < m; i++) {
|
|
13688
|
+
sum += Math.pow(2, -this.registers[i]);
|
|
13689
|
+
if (this.registers[i] === 0) zeros++;
|
|
13690
|
+
}
|
|
13691
|
+
let estimate = alpha * m * m / sum;
|
|
13692
|
+
if (estimate <= 2.5 * m && zeros > 0) {
|
|
13693
|
+
estimate = m * Math.log(m / zeros);
|
|
13694
|
+
}
|
|
13695
|
+
return Math.round(estimate);
|
|
13696
|
+
}
|
|
13697
|
+
/**
|
|
13698
|
+
* `merge` merges another HLL into this one by taking the max of each register.
|
|
13699
|
+
* This operation is commutative, associative, and idempotent.
|
|
13700
|
+
*/
|
|
13701
|
+
merge(other) {
|
|
13702
|
+
for (let i = 0; i < hllRegisterCount; i++) {
|
|
13703
|
+
if (other.registers[i] > this.registers[i]) {
|
|
13704
|
+
this.registers[i] = other.registers[i];
|
|
13705
|
+
}
|
|
13706
|
+
}
|
|
13707
|
+
}
|
|
13708
|
+
/**
|
|
13709
|
+
* `toBytes` serializes the HLL registers to a byte array.
|
|
13710
|
+
*/
|
|
13711
|
+
toBytes() {
|
|
13712
|
+
return new Uint8Array(this.registers);
|
|
13713
|
+
}
|
|
13714
|
+
/**
|
|
13715
|
+
* `restore` restores the HLL registers from a byte array.
|
|
13716
|
+
* Throws if the data length does not match the register count.
|
|
13717
|
+
*/
|
|
13718
|
+
restore(data) {
|
|
13719
|
+
if (data.length !== hllRegisterCount) {
|
|
13720
|
+
throw new Error(
|
|
13721
|
+
`invalid HLL register payload: got ${data.length} bytes, want ${hllRegisterCount}`
|
|
13722
|
+
);
|
|
13723
|
+
}
|
|
13724
|
+
this.registers.set(data);
|
|
13725
|
+
}
|
|
13726
|
+
}
|
|
13727
|
+
function xxhash64(input) {
|
|
13728
|
+
const buf = new TextEncoder().encode(input);
|
|
13729
|
+
const len = buf.length;
|
|
13730
|
+
let h64;
|
|
13731
|
+
let offset = 0;
|
|
13732
|
+
const seed = 0n;
|
|
13733
|
+
if (len >= 32) {
|
|
13734
|
+
let v1 = seed + prime64x1 + prime64x2 & mask64;
|
|
13735
|
+
let v2 = seed + prime64x2 & mask64;
|
|
13736
|
+
let v3 = seed;
|
|
13737
|
+
let v4 = seed - prime64x1 & mask64;
|
|
13738
|
+
while (offset <= len - 32) {
|
|
13739
|
+
v1 = xxRound(v1, readU64LE(buf, offset));
|
|
13740
|
+
offset += 8;
|
|
13741
|
+
v2 = xxRound(v2, readU64LE(buf, offset));
|
|
13742
|
+
offset += 8;
|
|
13743
|
+
v3 = xxRound(v3, readU64LE(buf, offset));
|
|
13744
|
+
offset += 8;
|
|
13745
|
+
v4 = xxRound(v4, readU64LE(buf, offset));
|
|
13746
|
+
offset += 8;
|
|
13747
|
+
}
|
|
13748
|
+
h64 = rotl64(v1, 1n) + rotl64(v2, 7n) + rotl64(v3, 12n) + rotl64(v4, 18n) & mask64;
|
|
13749
|
+
h64 = xxMergeRound(h64, v1);
|
|
13750
|
+
h64 = xxMergeRound(h64, v2);
|
|
13751
|
+
h64 = xxMergeRound(h64, v3);
|
|
13752
|
+
h64 = xxMergeRound(h64, v4);
|
|
13753
|
+
} else {
|
|
13754
|
+
h64 = seed + prime64x5 & mask64;
|
|
13755
|
+
}
|
|
13756
|
+
h64 = h64 + BigInt(len) & mask64;
|
|
13757
|
+
while (offset + 8 <= len) {
|
|
13758
|
+
const k1 = xxRound(0n, readU64LE(buf, offset));
|
|
13759
|
+
h64 = rotl64(h64 ^ k1, 27n) * prime64x1 + prime64x4 & mask64;
|
|
13760
|
+
offset += 8;
|
|
13761
|
+
}
|
|
13762
|
+
if (offset + 4 <= len) {
|
|
13763
|
+
h64 = h64 ^ readU32LE(buf, offset) * prime64x1 & mask64;
|
|
13764
|
+
h64 = rotl64(h64, 23n) * prime64x2 + prime64x3 & mask64;
|
|
13765
|
+
offset += 4;
|
|
13766
|
+
}
|
|
13767
|
+
while (offset < len) {
|
|
13768
|
+
h64 = h64 ^ BigInt(buf[offset]) * prime64x5 & mask64;
|
|
13769
|
+
h64 = rotl64(h64, 11n) * prime64x1 & mask64;
|
|
13770
|
+
offset++;
|
|
13771
|
+
}
|
|
13772
|
+
h64 = (h64 ^ h64 >> 33n) * prime64x2 & mask64;
|
|
13773
|
+
h64 = (h64 ^ h64 >> 29n) * prime64x3 & mask64;
|
|
13774
|
+
h64 = (h64 ^ h64 >> 32n) & mask64;
|
|
13775
|
+
return h64;
|
|
13776
|
+
}
|
|
13777
|
+
function rotl64(x, r) {
|
|
13778
|
+
return (x << r | x >> 64n - r) & mask64;
|
|
13779
|
+
}
|
|
13780
|
+
function xxRound(acc, input) {
|
|
13781
|
+
acc = acc + input * prime64x2 & mask64;
|
|
13782
|
+
acc = rotl64(acc, 31n);
|
|
13783
|
+
return acc * prime64x1 & mask64;
|
|
13784
|
+
}
|
|
13785
|
+
function xxMergeRound(acc, val) {
|
|
13786
|
+
val = xxRound(0n, val);
|
|
13787
|
+
acc = (acc ^ val) & mask64;
|
|
13788
|
+
return acc * prime64x1 + prime64x4 & mask64;
|
|
13789
|
+
}
|
|
13790
|
+
function readU64LE(buf, offset) {
|
|
13791
|
+
let val = 0n;
|
|
13792
|
+
for (let i = 7; i >= 0; i--) {
|
|
13793
|
+
val = val << 8n | BigInt(buf[offset + i]);
|
|
13794
|
+
}
|
|
13795
|
+
return val;
|
|
13796
|
+
}
|
|
13797
|
+
function readU32LE(buf, offset) {
|
|
13798
|
+
return BigInt(buf[offset]) | BigInt(buf[offset + 1]) << 8n | BigInt(buf[offset + 2]) << 16n | BigInt(buf[offset + 3]) << 24n;
|
|
13799
|
+
}
|
|
13800
|
+
function countLeadingZeros64(x) {
|
|
13801
|
+
if (x === 0n) return 64;
|
|
13802
|
+
let n = 0;
|
|
13803
|
+
while ((x & 1n << 63n) === 0n) {
|
|
13804
|
+
n++;
|
|
13805
|
+
x <<= 1n;
|
|
13806
|
+
}
|
|
13807
|
+
return n;
|
|
13808
|
+
}
|
|
14061
13809
|
var CounterType = /* @__PURE__ */ ((CounterType2) => {
|
|
14062
13810
|
CounterType2[CounterType2["Int"] = 0] = "Int";
|
|
14063
13811
|
CounterType2[CounterType2["Long"] = 1] = "Long";
|
|
13812
|
+
CounterType2[CounterType2["IntDedup"] = 2] = "IntDedup";
|
|
14064
13813
|
return CounterType2;
|
|
14065
13814
|
})(CounterType || {});
|
|
14066
13815
|
class CRDTCounter extends CRDTElement {
|
|
14067
13816
|
valueType;
|
|
14068
13817
|
value;
|
|
13818
|
+
hll;
|
|
14069
13819
|
constructor(valueType, value, createdAt) {
|
|
14070
13820
|
super(createdAt);
|
|
14071
13821
|
this.valueType = valueType;
|
|
14072
13822
|
switch (valueType) {
|
|
13823
|
+
case 2:
|
|
13824
|
+
this.value = 0;
|
|
13825
|
+
break;
|
|
14073
13826
|
case 0:
|
|
14074
13827
|
if (typeof value === "number") {
|
|
14075
13828
|
if (value > Math.pow(2, 31) - 1 || value < -Math.pow(2, 31)) {
|
|
14076
|
-
this.value =
|
|
13829
|
+
this.value = bigintToInt32(BigInt(value));
|
|
14077
13830
|
} else {
|
|
14078
13831
|
this.value = removeDecimal(value);
|
|
14079
13832
|
}
|
|
14080
13833
|
} else {
|
|
14081
|
-
this.value = value
|
|
13834
|
+
this.value = bigintToInt32(value);
|
|
14082
13835
|
}
|
|
14083
13836
|
break;
|
|
14084
13837
|
case 1:
|
|
14085
13838
|
if (typeof value === "number") {
|
|
14086
|
-
this.value =
|
|
13839
|
+
this.value = BigInt.asIntN(64, BigInt(Math.trunc(value)));
|
|
14087
13840
|
} else {
|
|
14088
|
-
this.value = value;
|
|
13841
|
+
this.value = BigInt.asIntN(64, value);
|
|
14089
13842
|
}
|
|
14090
13843
|
break;
|
|
14091
13844
|
default:
|
|
@@ -14094,6 +13847,9 @@
|
|
|
14094
13847
|
`unimplemented type: ${valueType}`
|
|
14095
13848
|
);
|
|
14096
13849
|
}
|
|
13850
|
+
if (this.isDedup()) {
|
|
13851
|
+
this.hll ??= new HLL();
|
|
13852
|
+
}
|
|
14097
13853
|
}
|
|
14098
13854
|
/**
|
|
14099
13855
|
* `of` creates a new instance of Counter.
|
|
@@ -14107,9 +13863,10 @@
|
|
|
14107
13863
|
static valueFromBytes(counterType, bytes) {
|
|
14108
13864
|
switch (counterType) {
|
|
14109
13865
|
case 0:
|
|
13866
|
+
case 2:
|
|
14110
13867
|
return bytes[0] | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24;
|
|
14111
13868
|
case 1:
|
|
14112
|
-
return
|
|
13869
|
+
return bigintFromBytesLE(bytes);
|
|
14113
13870
|
default:
|
|
14114
13871
|
throw new YorkieError(
|
|
14115
13872
|
Code.ErrUnimplemented,
|
|
@@ -14121,7 +13878,10 @@
|
|
|
14121
13878
|
* `getDataSize` returns the data usage of this element.
|
|
14122
13879
|
*/
|
|
14123
13880
|
getDataSize() {
|
|
14124
|
-
|
|
13881
|
+
let data = this.valueType === 0 || this.valueType === 2 ? 4 : 8;
|
|
13882
|
+
if (this.isDedup() && this.hll) {
|
|
13883
|
+
data += this.hll.toBytes().length;
|
|
13884
|
+
}
|
|
14125
13885
|
return {
|
|
14126
13886
|
data,
|
|
14127
13887
|
meta: this.getMetaUsage()
|
|
@@ -14160,6 +13920,9 @@
|
|
|
14160
13920
|
);
|
|
14161
13921
|
clone.setRemovedAt(this.getRemovedAt());
|
|
14162
13922
|
clone.setMovedAt(this.getMovedAt());
|
|
13923
|
+
if (this.isDedup() && this.hll) {
|
|
13924
|
+
clone.restoreHLL(this.hll.toBytes());
|
|
13925
|
+
}
|
|
14163
13926
|
return clone;
|
|
14164
13927
|
}
|
|
14165
13928
|
/**
|
|
@@ -14173,12 +13936,8 @@
|
|
|
14173
13936
|
*/
|
|
14174
13937
|
static getCounterType(value) {
|
|
14175
13938
|
switch (typeof value) {
|
|
14176
|
-
case "
|
|
14177
|
-
|
|
14178
|
-
return 1;
|
|
14179
|
-
} else {
|
|
14180
|
-
return;
|
|
14181
|
-
}
|
|
13939
|
+
case "bigint":
|
|
13940
|
+
return 1;
|
|
14182
13941
|
case "number":
|
|
14183
13942
|
if (value > Math.pow(2, 31) - 1 || value < -Math.pow(2, 31)) {
|
|
14184
13943
|
return 1;
|
|
@@ -14206,7 +13965,7 @@
|
|
|
14206
13965
|
*/
|
|
14207
13966
|
isNumericType() {
|
|
14208
13967
|
const t = this.valueType;
|
|
14209
|
-
return t === 0 || t === 1;
|
|
13968
|
+
return t === 0 || t === 1 || t === 2;
|
|
14210
13969
|
}
|
|
14211
13970
|
/**
|
|
14212
13971
|
* `getValueType` get counter value type.
|
|
@@ -14225,7 +13984,8 @@
|
|
|
14225
13984
|
*/
|
|
14226
13985
|
toBytes() {
|
|
14227
13986
|
switch (this.valueType) {
|
|
14228
|
-
case 0:
|
|
13987
|
+
case 0:
|
|
13988
|
+
case 2: {
|
|
14229
13989
|
const intVal = this.value;
|
|
14230
13990
|
return new Uint8Array([
|
|
14231
13991
|
intVal & 255,
|
|
@@ -14235,9 +13995,7 @@
|
|
|
14235
13995
|
]);
|
|
14236
13996
|
}
|
|
14237
13997
|
case 1: {
|
|
14238
|
-
|
|
14239
|
-
const longToBytes = longVal.toBytesLE();
|
|
14240
|
-
return Uint8Array.from(longToBytes);
|
|
13998
|
+
return bigintToBytesLE(this.value);
|
|
14241
13999
|
}
|
|
14242
14000
|
default:
|
|
14243
14001
|
throw new YorkieError(
|
|
@@ -14246,10 +14004,76 @@
|
|
|
14246
14004
|
);
|
|
14247
14005
|
}
|
|
14248
14006
|
}
|
|
14007
|
+
/**
|
|
14008
|
+
* `isDedup` returns whether dedup mode is enabled (derived from ValueType).
|
|
14009
|
+
*/
|
|
14010
|
+
isDedup() {
|
|
14011
|
+
return this.valueType === 2;
|
|
14012
|
+
}
|
|
14013
|
+
/**
|
|
14014
|
+
* `increaseDedup` increases the counter using HLL-based dedup.
|
|
14015
|
+
* Only updates the value if the actor is new (not seen before).
|
|
14016
|
+
*/
|
|
14017
|
+
increaseDedup(v, actor) {
|
|
14018
|
+
if (!this.isDedup() || !this.hll) {
|
|
14019
|
+
return this.increase(v);
|
|
14020
|
+
}
|
|
14021
|
+
if (!this.isNumericType() || !v.isNumericType()) {
|
|
14022
|
+
throw new TypeError(`Unsupported type of value: ${typeof v.getValue()}`);
|
|
14023
|
+
}
|
|
14024
|
+
if (!actor) {
|
|
14025
|
+
throw new YorkieError(
|
|
14026
|
+
Code.ErrInvalidArgument,
|
|
14027
|
+
"dedup counter requires actor"
|
|
14028
|
+
);
|
|
14029
|
+
}
|
|
14030
|
+
const val = v.getValue();
|
|
14031
|
+
const isUnit = v.getType() === PrimitiveType.Long ? val === 1n : val === 1;
|
|
14032
|
+
if (!isUnit) {
|
|
14033
|
+
throw new YorkieError(
|
|
14034
|
+
Code.ErrInvalidArgument,
|
|
14035
|
+
"dedup counter only supports increment by 1"
|
|
14036
|
+
);
|
|
14037
|
+
}
|
|
14038
|
+
if (this.hll.add(actor)) {
|
|
14039
|
+
this.recomputeValue();
|
|
14040
|
+
}
|
|
14041
|
+
return this;
|
|
14042
|
+
}
|
|
14043
|
+
/**
|
|
14044
|
+
* `hllBytes` returns the HLL register bytes, or undefined if not in dedup mode.
|
|
14045
|
+
*/
|
|
14046
|
+
hllBytes() {
|
|
14047
|
+
return this.hll?.toBytes();
|
|
14048
|
+
}
|
|
14049
|
+
/**
|
|
14050
|
+
* `restoreHLL` restores the HLL state from serialized bytes.
|
|
14051
|
+
*/
|
|
14052
|
+
restoreHLL(data) {
|
|
14053
|
+
if (!this.hll) {
|
|
14054
|
+
this.hll = new HLL();
|
|
14055
|
+
}
|
|
14056
|
+
this.hll.restore(data);
|
|
14057
|
+
this.recomputeValue();
|
|
14058
|
+
}
|
|
14059
|
+
/**
|
|
14060
|
+
* `recomputeValue` updates the counter value from the HLL cardinality estimate.
|
|
14061
|
+
*/
|
|
14062
|
+
recomputeValue() {
|
|
14063
|
+
if (!this.hll) return;
|
|
14064
|
+
this.value = this.hll.count();
|
|
14065
|
+
}
|
|
14249
14066
|
/**
|
|
14250
14067
|
* `increase` increases numeric data.
|
|
14068
|
+
* Dedup counters must use increaseDedup() instead.
|
|
14251
14069
|
*/
|
|
14252
14070
|
increase(v) {
|
|
14071
|
+
if (this.isDedup()) {
|
|
14072
|
+
throw new YorkieError(
|
|
14073
|
+
Code.ErrInvalidArgument,
|
|
14074
|
+
"dedup counter requires actor, use increaseDedup()"
|
|
14075
|
+
);
|
|
14076
|
+
}
|
|
14253
14077
|
function checkNumericType(target) {
|
|
14254
14078
|
if (!target.isNumericType()) {
|
|
14255
14079
|
throw new TypeError(
|
|
@@ -14260,14 +14084,17 @@
|
|
|
14260
14084
|
checkNumericType(this);
|
|
14261
14085
|
checkNumericType(v);
|
|
14262
14086
|
if (this.valueType === 1) {
|
|
14263
|
-
|
|
14087
|
+
const delta = typeof v.getValue() === "bigint" ? v.getValue() : BigInt(Math.trunc(v.getValue()));
|
|
14088
|
+
this.value = BigInt.asIntN(64, this.value + delta);
|
|
14264
14089
|
} else {
|
|
14265
14090
|
if (v.getType() === PrimitiveType.Long) {
|
|
14266
|
-
this.value = this.value + v.getValue()
|
|
14091
|
+
this.value = this.value + bigintToInt32(v.getValue());
|
|
14267
14092
|
} else {
|
|
14268
|
-
this.value =
|
|
14269
|
-
|
|
14270
|
-
|
|
14093
|
+
this.value = bigintToInt32(
|
|
14094
|
+
BigInt(
|
|
14095
|
+
this.value + removeDecimal(v.getValue())
|
|
14096
|
+
)
|
|
14097
|
+
);
|
|
14271
14098
|
}
|
|
14272
14099
|
}
|
|
14273
14100
|
return this;
|
|
@@ -14275,15 +14102,23 @@
|
|
|
14275
14102
|
}
|
|
14276
14103
|
class IncreaseOperation extends Operation {
|
|
14277
14104
|
value;
|
|
14278
|
-
|
|
14105
|
+
actor;
|
|
14106
|
+
constructor(parentCreatedAt, value, executedAt, actor) {
|
|
14279
14107
|
super(parentCreatedAt, executedAt);
|
|
14280
14108
|
this.value = value;
|
|
14109
|
+
this.actor = actor || "";
|
|
14281
14110
|
}
|
|
14282
14111
|
/**
|
|
14283
14112
|
* `create` creates a new instance of IncreaseOperation.
|
|
14284
14113
|
*/
|
|
14285
|
-
static create(parentCreatedAt, value, executedAt) {
|
|
14286
|
-
return new IncreaseOperation(parentCreatedAt, value, executedAt);
|
|
14114
|
+
static create(parentCreatedAt, value, executedAt, actor) {
|
|
14115
|
+
return new IncreaseOperation(parentCreatedAt, value, executedAt, actor);
|
|
14116
|
+
}
|
|
14117
|
+
/**
|
|
14118
|
+
* `getActor` returns the actor ID associated with this operation.
|
|
14119
|
+
*/
|
|
14120
|
+
getActor() {
|
|
14121
|
+
return this.actor;
|
|
14287
14122
|
}
|
|
14288
14123
|
/**
|
|
14289
14124
|
* `execute` executes this operation on the given `CRDTRoot`.
|
|
@@ -14304,7 +14139,17 @@
|
|
|
14304
14139
|
}
|
|
14305
14140
|
const counter = parentObject;
|
|
14306
14141
|
const value = this.value.deepcopy();
|
|
14307
|
-
counter.
|
|
14142
|
+
if (counter.isDedup()) {
|
|
14143
|
+
if (!this.actor) {
|
|
14144
|
+
throw new YorkieError(
|
|
14145
|
+
Code.ErrInvalidArgument,
|
|
14146
|
+
"dedup counter requires actor"
|
|
14147
|
+
);
|
|
14148
|
+
}
|
|
14149
|
+
counter.increaseDedup(value, this.actor);
|
|
14150
|
+
} else {
|
|
14151
|
+
counter.increase(value);
|
|
14152
|
+
}
|
|
14308
14153
|
return {
|
|
14309
14154
|
opInfos: [
|
|
14310
14155
|
{
|
|
@@ -14313,7 +14158,9 @@
|
|
|
14313
14158
|
value: value.getValue()
|
|
14314
14159
|
}
|
|
14315
14160
|
],
|
|
14316
|
-
|
|
14161
|
+
// Dedup counters do not support undo/redo because HLL cannot
|
|
14162
|
+
// remove an actor once added.
|
|
14163
|
+
reverseOp: this.actor ? void 0 : this.toReverseOperation()
|
|
14317
14164
|
};
|
|
14318
14165
|
}
|
|
14319
14166
|
/**
|
|
@@ -14322,7 +14169,7 @@
|
|
|
14322
14169
|
toReverseOperation() {
|
|
14323
14170
|
const primitiveValue = this.value.deepcopy();
|
|
14324
14171
|
const valueType = primitiveValue.getType();
|
|
14325
|
-
const value = valueType === PrimitiveType.Long ? primitiveValue.getValue()
|
|
14172
|
+
const value = valueType === PrimitiveType.Long ? -primitiveValue.getValue() : primitiveValue.getValue() * -1;
|
|
14326
14173
|
const reverseOp = IncreaseOperation.create(
|
|
14327
14174
|
this.getParentCreatedAt(),
|
|
14328
14175
|
Primitive.of(value, primitiveValue.getCreatedAt())
|
|
@@ -14407,28 +14254,67 @@
|
|
|
14407
14254
|
let changes;
|
|
14408
14255
|
let pairs;
|
|
14409
14256
|
let diff = { data: 0, meta: 0 };
|
|
14257
|
+
const reversePrevAttributes = /* @__PURE__ */ new Map();
|
|
14258
|
+
const reverseAttrsToRemove = [];
|
|
14410
14259
|
if (this.attributes.size) {
|
|
14411
14260
|
const attributes = {};
|
|
14412
14261
|
[...this.attributes].forEach(([key, value]) => attributes[key] = value);
|
|
14413
|
-
|
|
14262
|
+
let prevAttributes;
|
|
14263
|
+
let newAttrKeys;
|
|
14264
|
+
[pairs, changes, diff, prevAttributes, newAttrKeys] = tree.style(
|
|
14414
14265
|
[this.fromPos, this.toPos],
|
|
14415
14266
|
attributes,
|
|
14416
14267
|
this.getExecutedAt(),
|
|
14417
14268
|
versionVector
|
|
14418
14269
|
);
|
|
14270
|
+
for (const [key, value] of prevAttributes) {
|
|
14271
|
+
reversePrevAttributes.set(key, value);
|
|
14272
|
+
}
|
|
14273
|
+
reverseAttrsToRemove.push(...newAttrKeys);
|
|
14419
14274
|
} else {
|
|
14420
14275
|
const attributesToRemove = this.attributesToRemove;
|
|
14421
|
-
|
|
14276
|
+
let prevAttributes;
|
|
14277
|
+
[pairs, changes, diff, prevAttributes] = tree.removeStyle(
|
|
14422
14278
|
[this.fromPos, this.toPos],
|
|
14423
14279
|
attributesToRemove,
|
|
14424
14280
|
this.getExecutedAt(),
|
|
14425
14281
|
versionVector
|
|
14426
14282
|
);
|
|
14283
|
+
for (const [key, value] of prevAttributes) {
|
|
14284
|
+
reversePrevAttributes.set(key, value);
|
|
14285
|
+
}
|
|
14427
14286
|
}
|
|
14428
14287
|
root.acc(diff);
|
|
14429
14288
|
for (const pair of pairs) {
|
|
14430
14289
|
root.registerGCPair(pair);
|
|
14431
14290
|
}
|
|
14291
|
+
let reverseOp;
|
|
14292
|
+
if (reversePrevAttributes.size > 0 && reverseAttrsToRemove.length > 0) {
|
|
14293
|
+
reverseOp = new TreeStyleOperation(
|
|
14294
|
+
this.getParentCreatedAt(),
|
|
14295
|
+
this.fromPos,
|
|
14296
|
+
this.toPos,
|
|
14297
|
+
reversePrevAttributes,
|
|
14298
|
+
reverseAttrsToRemove,
|
|
14299
|
+
void 0
|
|
14300
|
+
);
|
|
14301
|
+
} else if (reverseAttrsToRemove.length > 0) {
|
|
14302
|
+
reverseOp = TreeStyleOperation.createTreeRemoveStyleOperation(
|
|
14303
|
+
this.getParentCreatedAt(),
|
|
14304
|
+
this.fromPos,
|
|
14305
|
+
this.toPos,
|
|
14306
|
+
reverseAttrsToRemove,
|
|
14307
|
+
void 0
|
|
14308
|
+
);
|
|
14309
|
+
} else if (reversePrevAttributes.size > 0) {
|
|
14310
|
+
reverseOp = TreeStyleOperation.create(
|
|
14311
|
+
this.getParentCreatedAt(),
|
|
14312
|
+
this.fromPos,
|
|
14313
|
+
this.toPos,
|
|
14314
|
+
reversePrevAttributes,
|
|
14315
|
+
void 0
|
|
14316
|
+
);
|
|
14317
|
+
}
|
|
14432
14318
|
return {
|
|
14433
14319
|
opInfos: changes.map(({ from, to, value, fromPath, toPath }) => {
|
|
14434
14320
|
return {
|
|
@@ -14440,7 +14326,8 @@
|
|
|
14440
14326
|
toPath,
|
|
14441
14327
|
path: root.createPath(this.getParentCreatedAt())
|
|
14442
14328
|
};
|
|
14443
|
-
})
|
|
14329
|
+
}),
|
|
14330
|
+
reverseOp
|
|
14444
14331
|
};
|
|
14445
14332
|
}
|
|
14446
14333
|
/**
|
|
@@ -14661,6 +14548,8 @@
|
|
|
14661
14548
|
return ValueType.INTEGER_CNT;
|
|
14662
14549
|
case CounterType.Long:
|
|
14663
14550
|
return ValueType.LONG_CNT;
|
|
14551
|
+
case CounterType.IntDedup:
|
|
14552
|
+
return ValueType.INTEGER_DEDUP_CNT;
|
|
14664
14553
|
default:
|
|
14665
14554
|
throw new YorkieError(
|
|
14666
14555
|
Code.ErrInvalidType,
|
|
@@ -14833,6 +14722,7 @@
|
|
|
14833
14722
|
pbIncreaseOperation.executedAt = toTimeTicket(
|
|
14834
14723
|
increaseOperation.getExecutedAt()
|
|
14835
14724
|
);
|
|
14725
|
+
pbIncreaseOperation.actor = increaseOperation.getActor();
|
|
14836
14726
|
pbOperation.body.case = "increase";
|
|
14837
14727
|
pbOperation.body.value = pbIncreaseOperation;
|
|
14838
14728
|
} else if (operation instanceof TreeEditOperation) {
|
|
@@ -15084,7 +14974,8 @@
|
|
|
15084
14974
|
value: counter.toBytes(),
|
|
15085
14975
|
createdAt: toTimeTicket(counter.getCreatedAt()),
|
|
15086
14976
|
movedAt: toTimeTicket(counter.getMovedAt()),
|
|
15087
|
-
removedAt: toTimeTicket(counter.getRemovedAt())
|
|
14977
|
+
removedAt: toTimeTicket(counter.getRemovedAt()),
|
|
14978
|
+
hllRegisters: counter.hllBytes() || new Uint8Array()
|
|
15088
14979
|
})
|
|
15089
14980
|
}
|
|
15090
14981
|
});
|
|
@@ -15248,6 +15139,8 @@
|
|
|
15248
15139
|
return CounterType.Int;
|
|
15249
15140
|
case ValueType.LONG_CNT:
|
|
15250
15141
|
return CounterType.Long;
|
|
15142
|
+
case ValueType.INTEGER_DEDUP_CNT:
|
|
15143
|
+
return CounterType.IntDedup;
|
|
15251
15144
|
}
|
|
15252
15145
|
throw new YorkieError(
|
|
15253
15146
|
Code.ErrUnimplemented,
|
|
@@ -15290,6 +15183,7 @@
|
|
|
15290
15183
|
);
|
|
15291
15184
|
case ValueType.INTEGER_CNT:
|
|
15292
15185
|
case ValueType.LONG_CNT:
|
|
15186
|
+
case ValueType.INTEGER_DEDUP_CNT:
|
|
15293
15187
|
return CRDTCounter.create(
|
|
15294
15188
|
fromCounterType(pbElementSimple.type),
|
|
15295
15189
|
CRDTCounter.valueFromBytes(
|
|
@@ -15472,7 +15366,8 @@
|
|
|
15472
15366
|
return IncreaseOperation.create(
|
|
15473
15367
|
fromTimeTicket(pbIncreaseOperation.parentCreatedAt),
|
|
15474
15368
|
fromElementSimple(pbIncreaseOperation.value),
|
|
15475
|
-
fromTimeTicket(pbIncreaseOperation.executedAt)
|
|
15369
|
+
fromTimeTicket(pbIncreaseOperation.executedAt),
|
|
15370
|
+
pbIncreaseOperation.actor || void 0
|
|
15476
15371
|
);
|
|
15477
15372
|
} else if (pbOperation.body.case === "treeEdit") {
|
|
15478
15373
|
const pbTreeEditOperation = pbOperation.body.value;
|
|
@@ -15620,6 +15515,9 @@
|
|
|
15620
15515
|
);
|
|
15621
15516
|
counter.setMovedAt(fromTimeTicket(pbCounter.movedAt));
|
|
15622
15517
|
counter.setRemovedAt(fromTimeTicket(pbCounter.removedAt));
|
|
15518
|
+
if (counter.isDedup() && pbCounter.hllRegisters.length > 0) {
|
|
15519
|
+
counter.restoreHLL(pbCounter.hllRegisters);
|
|
15520
|
+
}
|
|
15623
15521
|
return counter;
|
|
15624
15522
|
}
|
|
15625
15523
|
function fromTree(pbTree) {
|
|
@@ -17089,7 +16987,7 @@
|
|
|
17089
16987
|
return this.text.indexRangeToPosRange(fromIdx, toIdx);
|
|
17090
16988
|
}
|
|
17091
16989
|
}
|
|
17092
|
-
class
|
|
16990
|
+
class BaseCounter {
|
|
17093
16991
|
valueType;
|
|
17094
16992
|
value;
|
|
17095
16993
|
context;
|
|
@@ -17099,7 +16997,7 @@
|
|
|
17099
16997
|
this.value = value;
|
|
17100
16998
|
}
|
|
17101
16999
|
/**
|
|
17102
|
-
* `initialize`
|
|
17000
|
+
* `initialize` links this proxy to a ChangeContext and CRDTCounter.
|
|
17103
17001
|
*/
|
|
17104
17002
|
initialize(context, counter) {
|
|
17105
17003
|
this.valueType = counter.getValueType();
|
|
@@ -17108,17 +17006,11 @@
|
|
|
17108
17006
|
this.value = counter.getValue();
|
|
17109
17007
|
}
|
|
17110
17008
|
/**
|
|
17111
|
-
* `getID` returns the ID of this
|
|
17009
|
+
* `getID` returns the ID of this counter.
|
|
17112
17010
|
*/
|
|
17113
17011
|
getID() {
|
|
17114
17012
|
return this.counter.getID();
|
|
17115
17013
|
}
|
|
17116
|
-
/**
|
|
17117
|
-
* `getValue` returns the value of this counter;
|
|
17118
|
-
*/
|
|
17119
|
-
getValue() {
|
|
17120
|
-
return this.value;
|
|
17121
|
-
}
|
|
17122
17014
|
/**
|
|
17123
17015
|
* `getValueType` returns the value type of this counter.
|
|
17124
17016
|
*/
|
|
@@ -17126,15 +17018,45 @@
|
|
|
17126
17018
|
return this.valueType;
|
|
17127
17019
|
}
|
|
17128
17020
|
/**
|
|
17129
|
-
* `
|
|
17021
|
+
* `toJSForTest` returns value with meta data for testing.
|
|
17130
17022
|
*/
|
|
17131
|
-
|
|
17023
|
+
toJSForTest() {
|
|
17024
|
+
if (!this.context || !this.counter) {
|
|
17025
|
+
throw new YorkieError(
|
|
17026
|
+
Code.ErrNotInitialized,
|
|
17027
|
+
"Counter is not initialized yet"
|
|
17028
|
+
);
|
|
17029
|
+
}
|
|
17030
|
+
return this.counter.toJSForTest();
|
|
17031
|
+
}
|
|
17032
|
+
/**
|
|
17033
|
+
* `ensureInitialized` throws if this counter has not been initialized.
|
|
17034
|
+
*/
|
|
17035
|
+
ensureInitialized() {
|
|
17132
17036
|
if (!this.context || !this.counter) {
|
|
17133
17037
|
throw new YorkieError(
|
|
17134
17038
|
Code.ErrNotInitialized,
|
|
17135
17039
|
"Counter is not initialized yet"
|
|
17136
17040
|
);
|
|
17137
17041
|
}
|
|
17042
|
+
}
|
|
17043
|
+
}
|
|
17044
|
+
class Counter extends BaseCounter {
|
|
17045
|
+
constructor(value) {
|
|
17046
|
+
const type = typeof value === "bigint" ? CounterType.Long : CounterType.Int;
|
|
17047
|
+
super(type, value);
|
|
17048
|
+
}
|
|
17049
|
+
/**
|
|
17050
|
+
* `getValue` returns the value of this counter.
|
|
17051
|
+
*/
|
|
17052
|
+
getValue() {
|
|
17053
|
+
return this.value;
|
|
17054
|
+
}
|
|
17055
|
+
/**
|
|
17056
|
+
* `increase` increases numeric data.
|
|
17057
|
+
*/
|
|
17058
|
+
increase(v) {
|
|
17059
|
+
this.ensureInitialized();
|
|
17138
17060
|
const ticket = this.context.issueTimeTicket();
|
|
17139
17061
|
const value = Primitive.of(v, ticket);
|
|
17140
17062
|
if (!value.isNumericType()) {
|
|
@@ -17148,19 +17070,44 @@
|
|
|
17148
17070
|
);
|
|
17149
17071
|
return this;
|
|
17150
17072
|
}
|
|
17073
|
+
}
|
|
17074
|
+
class DedupCounter extends BaseCounter {
|
|
17075
|
+
constructor() {
|
|
17076
|
+
super(CounterType.IntDedup, 0);
|
|
17077
|
+
}
|
|
17151
17078
|
/**
|
|
17152
|
-
* `
|
|
17079
|
+
* `getValue` returns the value of this counter. Always a number since
|
|
17080
|
+
* DedupCounter only supports IntDedup.
|
|
17153
17081
|
*/
|
|
17154
|
-
|
|
17155
|
-
|
|
17156
|
-
|
|
17157
|
-
|
|
17158
|
-
|
|
17159
|
-
|
|
17082
|
+
getValue() {
|
|
17083
|
+
return this.value;
|
|
17084
|
+
}
|
|
17085
|
+
/**
|
|
17086
|
+
* `add` records a unique actor in the dedup counter. If the actor has
|
|
17087
|
+
* already been counted, the call is ignored.
|
|
17088
|
+
*/
|
|
17089
|
+
add(actor) {
|
|
17090
|
+
this.ensureInitialized();
|
|
17091
|
+
if (!actor) {
|
|
17092
|
+
throw new YorkieError(Code.ErrInvalidArgument, "actor is required");
|
|
17160
17093
|
}
|
|
17161
|
-
|
|
17094
|
+
const ticket = this.context.issueTimeTicket();
|
|
17095
|
+
const value = Primitive.of(1, ticket);
|
|
17096
|
+
this.counter.increaseDedup(value, actor);
|
|
17097
|
+
this.context.push(
|
|
17098
|
+
IncreaseOperation.create(
|
|
17099
|
+
this.counter.getCreatedAt(),
|
|
17100
|
+
value,
|
|
17101
|
+
ticket,
|
|
17102
|
+
actor
|
|
17103
|
+
)
|
|
17104
|
+
);
|
|
17105
|
+
return this;
|
|
17162
17106
|
}
|
|
17163
17107
|
}
|
|
17108
|
+
function isCounter$1(value) {
|
|
17109
|
+
return value instanceof Counter || value instanceof DedupCounter;
|
|
17110
|
+
}
|
|
17164
17111
|
function toTreeNode(node) {
|
|
17165
17112
|
if (node.isText) {
|
|
17166
17113
|
return {
|
|
@@ -17964,7 +17911,12 @@
|
|
|
17964
17911
|
} else if (elem instanceof CRDTText) {
|
|
17965
17912
|
return new Text(context, elem);
|
|
17966
17913
|
} else if (elem instanceof CRDTCounter) {
|
|
17967
|
-
|
|
17914
|
+
if (elem.isDedup()) {
|
|
17915
|
+
const counter2 = new DedupCounter();
|
|
17916
|
+
counter2.initialize(context, elem);
|
|
17917
|
+
return counter2;
|
|
17918
|
+
}
|
|
17919
|
+
const counter = new Counter(0);
|
|
17968
17920
|
counter.initialize(context, elem);
|
|
17969
17921
|
return counter;
|
|
17970
17922
|
} else if (elem instanceof CRDTTree) {
|
|
@@ -17994,7 +17946,7 @@
|
|
|
17994
17946
|
if (value instanceof Text) {
|
|
17995
17947
|
element = CRDTText.create(RGATreeSplit.create(), createdAt);
|
|
17996
17948
|
value.initialize(context, element);
|
|
17997
|
-
} else if (value
|
|
17949
|
+
} else if (isCounter$1(value)) {
|
|
17998
17950
|
element = CRDTCounter.create(
|
|
17999
17951
|
value.getValueType(),
|
|
18000
17952
|
value.getValue(),
|
|
@@ -20282,7 +20234,7 @@
|
|
|
20282
20234
|
};
|
|
20283
20235
|
}
|
|
20284
20236
|
const name = "@yorkie-js/sdk";
|
|
20285
|
-
const version = "0.7.
|
|
20237
|
+
const version = "0.7.5";
|
|
20286
20238
|
const pkg = {
|
|
20287
20239
|
name,
|
|
20288
20240
|
version
|
|
@@ -20636,21 +20588,19 @@
|
|
|
20636
20588
|
this.channelHeartbeatInterval = opts.channelHeartbeatInterval ?? DefaultClientOptions.channelHeartbeatInterval;
|
|
20637
20589
|
const { authInterceptor, setToken } = createAuthInterceptor(this.apiKey);
|
|
20638
20590
|
this.setAuthToken = setToken;
|
|
20591
|
+
const transportOptions = {
|
|
20592
|
+
baseUrl: rpcAddr,
|
|
20593
|
+
interceptors: [authInterceptor, createMetricInterceptor(opts?.userAgent)],
|
|
20594
|
+
fetch: (input, init) => {
|
|
20595
|
+
return fetch(input, {
|
|
20596
|
+
...init,
|
|
20597
|
+
keepalive: this.keepalive
|
|
20598
|
+
});
|
|
20599
|
+
}
|
|
20600
|
+
};
|
|
20639
20601
|
this.rpcClient = createClient(
|
|
20640
20602
|
YorkieService,
|
|
20641
|
-
createGrpcWebTransport(
|
|
20642
|
-
baseUrl: rpcAddr,
|
|
20643
|
-
interceptors: [
|
|
20644
|
-
authInterceptor,
|
|
20645
|
-
createMetricInterceptor(opts?.userAgent)
|
|
20646
|
-
],
|
|
20647
|
-
fetch: (input, init) => {
|
|
20648
|
-
return fetch(input, {
|
|
20649
|
-
...init,
|
|
20650
|
-
keepalive: this.keepalive
|
|
20651
|
-
});
|
|
20652
|
-
}
|
|
20653
|
-
})
|
|
20603
|
+
opts.useGrpcWebTransport ? createGrpcWebTransport(transportOptions) : createConnectTransport(transportOptions)
|
|
20654
20604
|
);
|
|
20655
20605
|
this.taskQueue = [];
|
|
20656
20606
|
}
|
|
@@ -22154,15 +22104,14 @@
|
|
|
22154
22104
|
Primitive,
|
|
22155
22105
|
Text,
|
|
22156
22106
|
Counter,
|
|
22107
|
+
DedupCounter,
|
|
22157
22108
|
Tree,
|
|
22158
22109
|
Devtools,
|
|
22159
22110
|
Channel,
|
|
22160
22111
|
ChannelEventType,
|
|
22161
22112
|
YSON,
|
|
22162
22113
|
LogLevel,
|
|
22163
|
-
setLogLevel
|
|
22164
|
-
IntType: CounterType.Int,
|
|
22165
|
-
LongType: CounterType.Long
|
|
22114
|
+
setLogLevel
|
|
22166
22115
|
};
|
|
22167
22116
|
if (typeof globalThis !== "undefined") {
|
|
22168
22117
|
globalThis.yorkie = {
|
|
@@ -22171,14 +22120,13 @@
|
|
|
22171
22120
|
Primitive,
|
|
22172
22121
|
Text,
|
|
22173
22122
|
Counter,
|
|
22123
|
+
DedupCounter,
|
|
22174
22124
|
Tree,
|
|
22175
22125
|
Channel,
|
|
22176
22126
|
ChannelEventType,
|
|
22177
22127
|
YSON,
|
|
22178
22128
|
LogLevel,
|
|
22179
|
-
setLogLevel
|
|
22180
|
-
IntType: CounterType.Int,
|
|
22181
|
-
LongType: CounterType.Long
|
|
22129
|
+
setLogLevel
|
|
22182
22130
|
};
|
|
22183
22131
|
}
|
|
22184
22132
|
exports2.Change = Change;
|
|
@@ -22190,6 +22138,7 @@
|
|
|
22190
22138
|
exports2.ClientStatus = ClientStatus;
|
|
22191
22139
|
exports2.Counter = Counter;
|
|
22192
22140
|
exports2.CounterType = CounterType;
|
|
22141
|
+
exports2.DedupCounter = DedupCounter;
|
|
22193
22142
|
exports2.Devtools = Devtools;
|
|
22194
22143
|
exports2.DocEventType = DocEventType;
|
|
22195
22144
|
exports2.DocStatus = DocStatus;
|