@symbo.ls/sdk 3.2.3 → 3.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -0
- package/dist/cjs/config/environment.js +94 -10
- package/dist/cjs/index.js +152 -12
- package/dist/cjs/services/AdminService.js +351 -0
- package/dist/cjs/services/AuthService.js +738 -305
- package/dist/cjs/services/BaseService.js +158 -6
- package/dist/cjs/services/BranchService.js +484 -0
- package/dist/cjs/services/CollabService.js +439 -116
- package/dist/cjs/services/DnsService.js +340 -0
- package/dist/cjs/services/FeatureFlagService.js +175 -0
- package/dist/cjs/services/FileService.js +201 -0
- package/dist/cjs/services/IntegrationService.js +538 -0
- package/dist/cjs/services/MetricsService.js +62 -0
- package/dist/cjs/services/PaymentService.js +271 -0
- package/dist/cjs/services/PlanService.js +426 -0
- package/dist/cjs/services/ProjectService.js +1207 -0
- package/dist/cjs/services/PullRequestService.js +503 -0
- package/dist/cjs/services/ScreenshotService.js +304 -0
- package/dist/cjs/services/SubscriptionService.js +396 -0
- package/dist/cjs/services/TrackingService.js +661 -0
- package/dist/cjs/services/WaitlistService.js +148 -0
- package/dist/cjs/services/index.js +60 -4
- package/dist/cjs/state/RootStateManager.js +2 -23
- package/dist/cjs/state/rootEventBus.js +9 -0
- package/dist/cjs/utils/CollabClient.js +78 -12
- package/dist/cjs/utils/TokenManager.js +16 -3
- package/dist/cjs/utils/changePreprocessor.js +199 -0
- package/dist/cjs/utils/jsonDiff.js +46 -4
- package/dist/cjs/utils/ordering.js +309 -0
- package/dist/cjs/utils/services.js +285 -128
- package/dist/cjs/utils/validation.js +0 -3
- package/dist/esm/config/environment.js +94 -10
- package/dist/esm/index.js +47862 -18248
- package/dist/esm/services/AdminService.js +1132 -0
- package/dist/esm/services/AuthService.js +1493 -386
- package/dist/esm/services/BaseService.js +757 -6
- package/dist/esm/services/BranchService.js +1265 -0
- package/dist/esm/services/CollabService.js +24956 -16089
- package/dist/esm/services/DnsService.js +1121 -0
- package/dist/esm/services/FeatureFlagService.js +956 -0
- package/dist/esm/services/FileService.js +982 -0
- package/dist/esm/services/IntegrationService.js +1319 -0
- package/dist/esm/services/MetricsService.js +843 -0
- package/dist/esm/services/PaymentService.js +1052 -0
- package/dist/esm/services/PlanService.js +1207 -0
- package/dist/esm/services/ProjectService.js +2526 -0
- package/dist/esm/services/PullRequestService.js +1284 -0
- package/dist/esm/services/ScreenshotService.js +1085 -0
- package/dist/esm/services/SubscriptionService.js +1177 -0
- package/dist/esm/services/TrackingService.js +18454 -0
- package/dist/esm/services/WaitlistService.js +929 -0
- package/dist/esm/services/index.js +47373 -18027
- package/dist/esm/state/RootStateManager.js +11 -23
- package/dist/esm/state/rootEventBus.js +9 -0
- package/dist/esm/utils/CollabClient.js +17526 -16120
- package/dist/esm/utils/TokenManager.js +16 -3
- package/dist/esm/utils/changePreprocessor.js +542 -0
- package/dist/esm/utils/jsonDiff.js +958 -43
- package/dist/esm/utils/ordering.js +291 -0
- package/dist/esm/utils/services.js +285 -128
- package/dist/esm/utils/validation.js +116 -50
- package/dist/node/config/environment.js +94 -10
- package/dist/node/index.js +183 -16
- package/dist/node/services/AdminService.js +332 -0
- package/dist/node/services/AuthService.js +742 -310
- package/dist/node/services/BaseService.js +148 -6
- package/dist/node/services/BranchService.js +465 -0
- package/dist/node/services/CollabService.js +439 -116
- package/dist/node/services/DnsService.js +321 -0
- package/dist/node/services/FeatureFlagService.js +156 -0
- package/dist/node/services/FileService.js +182 -0
- package/dist/node/services/IntegrationService.js +519 -0
- package/dist/node/services/MetricsService.js +43 -0
- package/dist/node/services/PaymentService.js +252 -0
- package/dist/node/services/PlanService.js +407 -0
- package/dist/node/services/ProjectService.js +1188 -0
- package/dist/node/services/PullRequestService.js +484 -0
- package/dist/node/services/ScreenshotService.js +285 -0
- package/dist/node/services/SubscriptionService.js +377 -0
- package/dist/node/services/TrackingService.js +632 -0
- package/dist/node/services/WaitlistService.js +129 -0
- package/dist/node/services/index.js +60 -4
- package/dist/node/state/RootStateManager.js +2 -23
- package/dist/node/state/rootEventBus.js +9 -0
- package/dist/node/utils/CollabClient.js +77 -11
- package/dist/node/utils/TokenManager.js +16 -3
- package/dist/node/utils/changePreprocessor.js +180 -0
- package/dist/node/utils/jsonDiff.js +46 -4
- package/dist/node/utils/ordering.js +290 -0
- package/dist/node/utils/services.js +285 -128
- package/dist/node/utils/validation.js +0 -3
- package/package.json +30 -18
- package/src/config/environment.js +95 -10
- package/src/index.js +190 -23
- package/src/services/AdminService.js +374 -0
- package/src/services/AuthService.js +874 -328
- package/src/services/BaseService.js +166 -6
- package/src/services/BranchService.js +536 -0
- package/src/services/CollabService.js +557 -148
- package/src/services/DnsService.js +366 -0
- package/src/services/FeatureFlagService.js +174 -0
- package/src/services/FileService.js +213 -0
- package/src/services/IntegrationService.js +548 -0
- package/src/services/MetricsService.js +40 -0
- package/src/services/PaymentService.js +287 -0
- package/src/services/PlanService.js +468 -0
- package/src/services/ProjectService.js +1366 -0
- package/src/services/PullRequestService.js +537 -0
- package/src/services/ScreenshotService.js +258 -0
- package/src/services/SubscriptionService.js +425 -0
- package/src/services/TrackingService.js +853 -0
- package/src/services/WaitlistService.js +130 -0
- package/src/services/index.js +79 -5
- package/src/services/tests/BranchService/createBranch.test.js +153 -0
- package/src/services/tests/BranchService/deleteBranch.test.js +173 -0
- package/src/services/tests/BranchService/getBranchChanges.test.js +146 -0
- package/src/services/tests/BranchService/listBranches.test.js +87 -0
- package/src/services/tests/BranchService/mergeBranch.test.js +210 -0
- package/src/services/tests/BranchService/publishVersion.test.js +183 -0
- package/src/services/tests/BranchService/renameBranch.test.js +240 -0
- package/src/services/tests/BranchService/resetBranch.test.js +152 -0
- package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +67 -0
- package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +75 -0
- package/src/services/tests/FileService/createFileFormData.test.js +74 -0
- package/src/services/tests/FileService/getFileUrl.test.js +69 -0
- package/src/services/tests/FileService/updateProjectIcon.test.js +109 -0
- package/src/services/tests/FileService/uploadDocument.test.js +36 -0
- package/src/services/tests/FileService/uploadFile.test.js +78 -0
- package/src/services/tests/FileService/uploadFileWithValidation.test.js +114 -0
- package/src/services/tests/FileService/uploadImage.test.js +36 -0
- package/src/services/tests/FileService/uploadMultipleFiles.test.js +111 -0
- package/src/services/tests/FileService/validateFile.test.js +63 -0
- package/src/services/tests/PlanService/createPlan.test.js +104 -0
- package/src/services/tests/PlanService/createPlanWithValidation.test.js +523 -0
- package/src/services/tests/PlanService/deletePlan.test.js +92 -0
- package/src/services/tests/PlanService/getActivePlans.test.js +123 -0
- package/src/services/tests/PlanService/getAdminPlans.test.js +84 -0
- package/src/services/tests/PlanService/getPlan.test.js +50 -0
- package/src/services/tests/PlanService/getPlanByKey.test.js +109 -0
- package/src/services/tests/PlanService/getPlanWithValidation.test.js +85 -0
- package/src/services/tests/PlanService/getPlans.test.js +53 -0
- package/src/services/tests/PlanService/getPlansByPriceRange.test.js +109 -0
- package/src/services/tests/PlanService/getPlansWithValidation.test.js +48 -0
- package/src/services/tests/PlanService/initializePlans.test.js +75 -0
- package/src/services/tests/PlanService/updatePlan.test.js +111 -0
- package/src/services/tests/PlanService/updatePlanWithValidation.test.js +556 -0
- package/src/state/RootStateManager.js +37 -32
- package/src/state/rootEventBus.js +19 -0
- package/src/utils/CollabClient.js +99 -12
- package/src/utils/TokenManager.js +20 -3
- package/src/utils/changePreprocessor.js +239 -0
- package/src/utils/jsonDiff.js +40 -5
- package/src/utils/ordering.js +271 -0
- package/src/utils/services.js +306 -139
- package/src/utils/validation.js +0 -3
- package/dist/cjs/services/AIService.js +0 -155
- package/dist/cjs/services/BasedService.js +0 -1185
- package/dist/cjs/services/CoreService.js +0 -2295
- package/dist/cjs/services/SocketService.js +0 -309
- package/dist/cjs/services/SymstoryService.js +0 -571
- package/dist/cjs/utils/basedQuerys.js +0 -181
- package/dist/cjs/utils/symstoryClient.js +0 -259
- package/dist/esm/services/AIService.js +0 -185
- package/dist/esm/services/BasedService.js +0 -5262
- package/dist/esm/services/CoreService.js +0 -2827
- package/dist/esm/services/SocketService.js +0 -456
- package/dist/esm/services/SymstoryService.js +0 -7025
- package/dist/esm/utils/basedQuerys.js +0 -163
- package/dist/esm/utils/symstoryClient.js +0 -354
- package/dist/node/services/AIService.js +0 -136
- package/dist/node/services/BasedService.js +0 -1156
- package/dist/node/services/CoreService.js +0 -2266
- package/dist/node/services/SocketService.js +0 -280
- package/dist/node/services/SymstoryService.js +0 -542
- package/dist/node/utils/basedQuerys.js +0 -162
- package/dist/node/utils/symstoryClient.js +0 -230
- package/src/services/AIService.js +0 -150
- package/src/services/BasedService.js +0 -1302
- package/src/services/CoreService.js +0 -2548
- package/src/services/SocketService.js +0 -336
- package/src/services/SymstoryService.js +0 -649
- package/src/utils/basedQuerys.js +0 -164
- package/src/utils/symstoryClient.js +0 -252
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
|
|
5
|
+
// ../node_modules/lib0/map.js
|
|
2
6
|
var create = () => /* @__PURE__ */ new Map();
|
|
3
7
|
var copy = (m) => {
|
|
4
8
|
const r = create();
|
|
@@ -30,15 +34,38 @@ var any = (m, f) => {
|
|
|
30
34
|
return false;
|
|
31
35
|
};
|
|
32
36
|
|
|
33
|
-
//
|
|
37
|
+
// ../node_modules/lib0/set.js
|
|
34
38
|
var create2 = () => /* @__PURE__ */ new Set();
|
|
35
39
|
|
|
36
|
-
//
|
|
40
|
+
// ../node_modules/lib0/array.js
|
|
37
41
|
var last = (arr) => arr[arr.length - 1];
|
|
38
42
|
var from = Array.from;
|
|
43
|
+
var every = (arr, f) => {
|
|
44
|
+
for (let i = 0; i < arr.length; i++) {
|
|
45
|
+
if (!f(arr[i], i, arr)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
};
|
|
51
|
+
var some = (arr, f) => {
|
|
52
|
+
for (let i = 0; i < arr.length; i++) {
|
|
53
|
+
if (f(arr[i], i, arr)) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
var unfold = (len, f) => {
|
|
60
|
+
const array = new Array(len);
|
|
61
|
+
for (let i = 0; i < len; i++) {
|
|
62
|
+
array[i] = f(i, array);
|
|
63
|
+
}
|
|
64
|
+
return array;
|
|
65
|
+
};
|
|
39
66
|
var isArray = Array.isArray;
|
|
40
67
|
|
|
41
|
-
//
|
|
68
|
+
// ../node_modules/lib0/observable.js
|
|
42
69
|
var ObservableV2 = class {
|
|
43
70
|
constructor() {
|
|
44
71
|
this._observers = create();
|
|
@@ -109,7 +136,7 @@ var ObservableV2 = class {
|
|
|
109
136
|
}
|
|
110
137
|
};
|
|
111
138
|
|
|
112
|
-
//
|
|
139
|
+
// ../node_modules/lib0/math.js
|
|
113
140
|
var floor = Math.floor;
|
|
114
141
|
var abs = Math.abs;
|
|
115
142
|
var min = (a, b) => a < b ? a : b;
|
|
@@ -117,7 +144,7 @@ var max = (a, b) => a > b ? a : b;
|
|
|
117
144
|
var isNaN = Number.isNaN;
|
|
118
145
|
var isNegativeZero = (n) => n !== 0 ? n < 0 : 1 / n < 0;
|
|
119
146
|
|
|
120
|
-
//
|
|
147
|
+
// ../node_modules/lib0/binary.js
|
|
121
148
|
var BIT1 = 1;
|
|
122
149
|
var BIT2 = 2;
|
|
123
150
|
var BIT3 = 4;
|
|
@@ -159,7 +186,7 @@ var BITS29 = BIT30 - 1;
|
|
|
159
186
|
var BITS30 = BIT31 - 1;
|
|
160
187
|
var BITS31 = 2147483647;
|
|
161
188
|
|
|
162
|
-
//
|
|
189
|
+
// ../node_modules/lib0/number.js
|
|
163
190
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
|
|
164
191
|
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
|
|
165
192
|
var LOWEST_INT32 = 1 << 31;
|
|
@@ -167,7 +194,7 @@ var isInteger = Number.isInteger || ((num) => typeof num === "number" && isFinit
|
|
|
167
194
|
var isNaN2 = Number.isNaN;
|
|
168
195
|
var parseInt = Number.parseInt;
|
|
169
196
|
|
|
170
|
-
//
|
|
197
|
+
// ../node_modules/lib0/string.js
|
|
171
198
|
var fromCharCode = String.fromCharCode;
|
|
172
199
|
var fromCodePoint = String.fromCodePoint;
|
|
173
200
|
var MAX_UTF16_CHARACTER = fromCharCode(65535);
|
|
@@ -175,7 +202,7 @@ var toLowerCase = (s) => s.toLowerCase();
|
|
|
175
202
|
var trimLeftRegex = /^\s*/g;
|
|
176
203
|
var trimLeft = (s) => s.replace(trimLeftRegex, "");
|
|
177
204
|
var fromCamelCaseRegex = /([A-Z])/g;
|
|
178
|
-
var fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, (
|
|
205
|
+
var fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, (match2) => `${separator}${toLowerCase(match2)}`));
|
|
179
206
|
var _encodeUtf8Polyfill = (str) => {
|
|
180
207
|
const encodedString = unescape(encodeURIComponent(str));
|
|
181
208
|
const len = encodedString.length;
|
|
@@ -196,8 +223,9 @@ var utf8TextDecoder = typeof TextDecoder === "undefined" ? null : new TextDecode
|
|
|
196
223
|
if (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {
|
|
197
224
|
utf8TextDecoder = null;
|
|
198
225
|
}
|
|
226
|
+
var repeat = (source, n) => unfold(n, () => source).join("");
|
|
199
227
|
|
|
200
|
-
//
|
|
228
|
+
// ../node_modules/lib0/encoding.js
|
|
201
229
|
var Encoder = class {
|
|
202
230
|
constructor() {
|
|
203
231
|
this.cpos = 0;
|
|
@@ -504,7 +532,7 @@ var StringEncoder = class {
|
|
|
504
532
|
}
|
|
505
533
|
};
|
|
506
534
|
|
|
507
|
-
//
|
|
535
|
+
// ../node_modules/lib0/error.js
|
|
508
536
|
var create3 = (s) => new Error(s);
|
|
509
537
|
var methodUnimplemented = () => {
|
|
510
538
|
throw create3("Method unimplemented");
|
|
@@ -513,11 +541,11 @@ var unexpectedCase = () => {
|
|
|
513
541
|
throw create3("Unexpected case");
|
|
514
542
|
};
|
|
515
543
|
|
|
516
|
-
//
|
|
544
|
+
// ../node_modules/lib0/webcrypto.js
|
|
517
545
|
var subtle = crypto.subtle;
|
|
518
546
|
var getRandomValues = crypto.getRandomValues.bind(crypto);
|
|
519
547
|
|
|
520
|
-
//
|
|
548
|
+
// ../node_modules/lib0/random.js
|
|
521
549
|
var uint32 = () => getRandomValues(new Uint32Array(1))[0];
|
|
522
550
|
var uuidv4Template = "10000000-1000-4000-8000" + -1e11;
|
|
523
551
|
var uuidv4 = () => uuidv4Template.replace(
|
|
@@ -526,20 +554,20 @@ var uuidv4 = () => uuidv4Template.replace(
|
|
|
526
554
|
(c) => (c ^ uint32() & 15 >> c / 4).toString(16)
|
|
527
555
|
);
|
|
528
556
|
|
|
529
|
-
//
|
|
557
|
+
// ../node_modules/lib0/time.js
|
|
530
558
|
var getUnixTime = Date.now;
|
|
531
559
|
|
|
532
|
-
//
|
|
560
|
+
// ../node_modules/lib0/promise.js
|
|
533
561
|
var create4 = (f) => (
|
|
534
562
|
/** @type {Promise<T>} */
|
|
535
563
|
new Promise(f)
|
|
536
564
|
);
|
|
537
565
|
var all = Promise.all.bind(Promise);
|
|
538
566
|
|
|
539
|
-
//
|
|
567
|
+
// ../node_modules/lib0/conditions.js
|
|
540
568
|
var undefinedToNull = (v) => v === void 0 ? null : v;
|
|
541
569
|
|
|
542
|
-
//
|
|
570
|
+
// ../node_modules/lib0/storage.js
|
|
543
571
|
var VarStoragePolyfill = class {
|
|
544
572
|
constructor() {
|
|
545
573
|
this.map = /* @__PURE__ */ new Map();
|
|
@@ -569,7 +597,15 @@ try {
|
|
|
569
597
|
}
|
|
570
598
|
var varStorage = _localStorage;
|
|
571
599
|
|
|
572
|
-
//
|
|
600
|
+
// ../node_modules/lib0/trait/equality.js
|
|
601
|
+
var EqualityTraitSymbol = Symbol("Equality");
|
|
602
|
+
var equals = (a, b) => {
|
|
603
|
+
var _a;
|
|
604
|
+
return a === b || !!((_a = a == null ? void 0 : a[EqualityTraitSymbol]) == null ? void 0 : _a.call(a, b)) || false;
|
|
605
|
+
};
|
|
606
|
+
|
|
607
|
+
// ../node_modules/lib0/object.js
|
|
608
|
+
var isObject = (o) => typeof o === "object";
|
|
573
609
|
var assign = Object.assign;
|
|
574
610
|
var keys = Object.keys;
|
|
575
611
|
var forEach = (obj, f) => {
|
|
@@ -584,7 +620,7 @@ var isEmpty = (obj) => {
|
|
|
584
620
|
}
|
|
585
621
|
return true;
|
|
586
622
|
};
|
|
587
|
-
var
|
|
623
|
+
var every2 = (obj, f) => {
|
|
588
624
|
for (const key in obj) {
|
|
589
625
|
if (!f(obj[key], key)) {
|
|
590
626
|
return false;
|
|
@@ -593,7 +629,7 @@ var every = (obj, f) => {
|
|
|
593
629
|
return true;
|
|
594
630
|
};
|
|
595
631
|
var hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
|
|
596
|
-
var equalFlat = (a, b) => a === b || size(a) === size(b) &&
|
|
632
|
+
var equalFlat = (a, b) => a === b || size(a) === size(b) && every2(a, (val, key) => (val !== void 0 || hasProperty(b, key)) && equals(b[key], val));
|
|
597
633
|
var freeze = Object.freeze;
|
|
598
634
|
var deepFreeze = (o) => {
|
|
599
635
|
for (const key in o) {
|
|
@@ -605,7 +641,7 @@ var deepFreeze = (o) => {
|
|
|
605
641
|
return freeze(o);
|
|
606
642
|
};
|
|
607
643
|
|
|
608
|
-
//
|
|
644
|
+
// ../node_modules/lib0/function.js
|
|
609
645
|
var callAll = (fs, args2, i = 0) => {
|
|
610
646
|
try {
|
|
611
647
|
for (; i < fs.length; i++) {
|
|
@@ -617,9 +653,83 @@ var callAll = (fs, args2, i = 0) => {
|
|
|
617
653
|
}
|
|
618
654
|
}
|
|
619
655
|
};
|
|
656
|
+
var equalityDeep = (a, b) => {
|
|
657
|
+
if (a === b) {
|
|
658
|
+
return true;
|
|
659
|
+
}
|
|
660
|
+
if (a == null || b == null || a.constructor !== b.constructor && (a.constructor || Object) !== (b.constructor || Object)) {
|
|
661
|
+
return false;
|
|
662
|
+
}
|
|
663
|
+
if (a[EqualityTraitSymbol] != null) {
|
|
664
|
+
return a[EqualityTraitSymbol](b);
|
|
665
|
+
}
|
|
666
|
+
switch (a.constructor) {
|
|
667
|
+
case ArrayBuffer:
|
|
668
|
+
a = new Uint8Array(a);
|
|
669
|
+
b = new Uint8Array(b);
|
|
670
|
+
// eslint-disable-next-line no-fallthrough
|
|
671
|
+
case Uint8Array: {
|
|
672
|
+
if (a.byteLength !== b.byteLength) {
|
|
673
|
+
return false;
|
|
674
|
+
}
|
|
675
|
+
for (let i = 0; i < a.length; i++) {
|
|
676
|
+
if (a[i] !== b[i]) {
|
|
677
|
+
return false;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
break;
|
|
681
|
+
}
|
|
682
|
+
case Set: {
|
|
683
|
+
if (a.size !== b.size) {
|
|
684
|
+
return false;
|
|
685
|
+
}
|
|
686
|
+
for (const value of a) {
|
|
687
|
+
if (!b.has(value)) {
|
|
688
|
+
return false;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
break;
|
|
692
|
+
}
|
|
693
|
+
case Map: {
|
|
694
|
+
if (a.size !== b.size) {
|
|
695
|
+
return false;
|
|
696
|
+
}
|
|
697
|
+
for (const key of a.keys()) {
|
|
698
|
+
if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {
|
|
699
|
+
return false;
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
break;
|
|
703
|
+
}
|
|
704
|
+
case void 0:
|
|
705
|
+
case Object:
|
|
706
|
+
if (size(a) !== size(b)) {
|
|
707
|
+
return false;
|
|
708
|
+
}
|
|
709
|
+
for (const key in a) {
|
|
710
|
+
if (!hasProperty(a, key) || !equalityDeep(a[key], b[key])) {
|
|
711
|
+
return false;
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
break;
|
|
715
|
+
case Array:
|
|
716
|
+
if (a.length !== b.length) {
|
|
717
|
+
return false;
|
|
718
|
+
}
|
|
719
|
+
for (let i = 0; i < a.length; i++) {
|
|
720
|
+
if (!equalityDeep(a[i], b[i])) {
|
|
721
|
+
return false;
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
break;
|
|
725
|
+
default:
|
|
726
|
+
return false;
|
|
727
|
+
}
|
|
728
|
+
return true;
|
|
729
|
+
};
|
|
620
730
|
var isOneOf = (value, options) => options.includes(value);
|
|
621
731
|
|
|
622
|
-
//
|
|
732
|
+
// ../node_modules/lib0/environment.js
|
|
623
733
|
var isNode = typeof process !== "undefined" && process.release && /node|io\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === "[object process]";
|
|
624
734
|
var isMac = typeof navigator !== "undefined" ? /Mac/.test(navigator.platform) : false;
|
|
625
735
|
var params;
|
|
@@ -672,7 +782,7 @@ var forceColor = isNode && isOneOf(process.env.FORCE_COLOR, ["true", "1", "2"]);
|
|
|
672
782
|
var supportsColor = forceColor || !hasParam("--no-colors") && // @todo deprecate --no-colors
|
|
673
783
|
!hasConf("no-color") && (!isNode || process.stdout.isTTY) && (!isNode || hasParam("--color") || getVariable("COLORTERM") !== null || (getVariable("TERM") || "").includes("color"));
|
|
674
784
|
|
|
675
|
-
//
|
|
785
|
+
// ../node_modules/lib0/pair.js
|
|
676
786
|
var Pair = class {
|
|
677
787
|
/**
|
|
678
788
|
* @param {L} left
|
|
@@ -685,15 +795,771 @@ var Pair = class {
|
|
|
685
795
|
};
|
|
686
796
|
var create5 = (left, right) => new Pair(left, right);
|
|
687
797
|
|
|
688
|
-
//
|
|
798
|
+
// ../node_modules/lib0/prng.js
|
|
799
|
+
var bool = (gen) => gen.next() >= 0.5;
|
|
800
|
+
var int53 = (gen, min2, max2) => floor(gen.next() * (max2 + 1 - min2) + min2);
|
|
801
|
+
var int32 = (gen, min2, max2) => floor(gen.next() * (max2 + 1 - min2) + min2);
|
|
802
|
+
var int31 = (gen, min2, max2) => int32(gen, min2, max2);
|
|
803
|
+
var letter = (gen) => fromCharCode(int31(gen, 97, 122));
|
|
804
|
+
var word = (gen, minLen = 0, maxLen = 20) => {
|
|
805
|
+
const len = int31(gen, minLen, maxLen);
|
|
806
|
+
let str = "";
|
|
807
|
+
for (let i = 0; i < len; i++) {
|
|
808
|
+
str += letter(gen);
|
|
809
|
+
}
|
|
810
|
+
return str;
|
|
811
|
+
};
|
|
812
|
+
var oneOf = (gen, array) => array[int31(gen, 0, array.length - 1)];
|
|
813
|
+
|
|
814
|
+
// ../node_modules/lib0/schema.js
|
|
815
|
+
var schemaSymbol = Symbol("0schema");
|
|
816
|
+
var ValidationError = class {
|
|
817
|
+
constructor() {
|
|
818
|
+
this._rerrs = [];
|
|
819
|
+
}
|
|
820
|
+
/**
|
|
821
|
+
* @param {string?} path
|
|
822
|
+
* @param {string} expected
|
|
823
|
+
* @param {string} has
|
|
824
|
+
* @param {string?} message
|
|
825
|
+
*/
|
|
826
|
+
extend(path, expected, has, message = null) {
|
|
827
|
+
this._rerrs.push({ path, expected, has, message });
|
|
828
|
+
}
|
|
829
|
+
toString() {
|
|
830
|
+
const s = [];
|
|
831
|
+
for (let i = this._rerrs.length - 1; i > 0; i--) {
|
|
832
|
+
const r = this._rerrs[i];
|
|
833
|
+
s.push(repeat(" ", (this._rerrs.length - i) * 2) + `${r.path != null ? `[${r.path}] ` : ""}${r.has} doesn't match ${r.expected}. ${r.message}`);
|
|
834
|
+
}
|
|
835
|
+
return s.join("\n");
|
|
836
|
+
}
|
|
837
|
+
};
|
|
838
|
+
var shapeExtends = (a, b) => {
|
|
839
|
+
if (a === b) return true;
|
|
840
|
+
if (a == null || b == null || a.constructor !== b.constructor) return false;
|
|
841
|
+
if (a[EqualityTraitSymbol]) return equals(a, b);
|
|
842
|
+
if (isArray(a)) {
|
|
843
|
+
return every(
|
|
844
|
+
a,
|
|
845
|
+
(aitem) => some(b, (bitem) => shapeExtends(aitem, bitem))
|
|
846
|
+
);
|
|
847
|
+
} else if (isObject(a)) {
|
|
848
|
+
return every2(
|
|
849
|
+
a,
|
|
850
|
+
(aitem, akey) => shapeExtends(aitem, b[akey])
|
|
851
|
+
);
|
|
852
|
+
}
|
|
853
|
+
return false;
|
|
854
|
+
};
|
|
855
|
+
var Schema = class {
|
|
856
|
+
/**
|
|
857
|
+
* @param {Schema<any>} other
|
|
858
|
+
*/
|
|
859
|
+
extends(other) {
|
|
860
|
+
let [a, b] = [
|
|
861
|
+
/** @type {any} */
|
|
862
|
+
this.shape,
|
|
863
|
+
/** @type {any} */
|
|
864
|
+
other.shape
|
|
865
|
+
];
|
|
866
|
+
if (
|
|
867
|
+
/** @type {typeof Schema<any>} */
|
|
868
|
+
this.constructor._dilutes
|
|
869
|
+
) [b, a] = [a, b];
|
|
870
|
+
return shapeExtends(a, b);
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* Overwrite this when necessary. By default, we only check the `shape` property which every shape
|
|
874
|
+
* should have.
|
|
875
|
+
* @param {Schema<any>} other
|
|
876
|
+
*/
|
|
877
|
+
equals(other) {
|
|
878
|
+
return this.constructor === other.constructor && equalityDeep(this.shape, other.shape);
|
|
879
|
+
}
|
|
880
|
+
[schemaSymbol]() {
|
|
881
|
+
return true;
|
|
882
|
+
}
|
|
883
|
+
/**
|
|
884
|
+
* @param {object} other
|
|
885
|
+
*/
|
|
886
|
+
[EqualityTraitSymbol](other) {
|
|
887
|
+
return this.equals(
|
|
888
|
+
/** @type {any} */
|
|
889
|
+
other
|
|
890
|
+
);
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Use `schema.validate(obj)` with a typed parameter that is already of typed to be an instance of
|
|
894
|
+
* Schema. Validate will check the structure of the parameter and return true iff the instance
|
|
895
|
+
* really is an instance of Schema.
|
|
896
|
+
*
|
|
897
|
+
* @param {T} o
|
|
898
|
+
* @return {boolean}
|
|
899
|
+
*/
|
|
900
|
+
validate(o) {
|
|
901
|
+
return this.check(o);
|
|
902
|
+
}
|
|
903
|
+
/* c8 ignore start */
|
|
904
|
+
/**
|
|
905
|
+
* Similar to validate, but this method accepts untyped parameters.
|
|
906
|
+
*
|
|
907
|
+
* @param {any} _o
|
|
908
|
+
* @param {ValidationError} [_err]
|
|
909
|
+
* @return {_o is T}
|
|
910
|
+
*/
|
|
911
|
+
check(_o, _err) {
|
|
912
|
+
methodUnimplemented();
|
|
913
|
+
}
|
|
914
|
+
/* c8 ignore stop */
|
|
915
|
+
/**
|
|
916
|
+
* @type {Schema<T?>}
|
|
917
|
+
*/
|
|
918
|
+
get nullable() {
|
|
919
|
+
return $union(this, $null);
|
|
920
|
+
}
|
|
921
|
+
/**
|
|
922
|
+
* @type {$Optional<Schema<T>>}
|
|
923
|
+
*/
|
|
924
|
+
get optional() {
|
|
925
|
+
return new $Optional(
|
|
926
|
+
/** @type {Schema<T>} */
|
|
927
|
+
this
|
|
928
|
+
);
|
|
929
|
+
}
|
|
930
|
+
/**
|
|
931
|
+
* Cast a variable to a specific type. Returns the casted value, or throws an exception otherwise.
|
|
932
|
+
* Use this if you know that the type is of a specific type and you just want to convince the type
|
|
933
|
+
* system.
|
|
934
|
+
*
|
|
935
|
+
* **Do not rely on these error messages!**
|
|
936
|
+
* Performs an assertion check only if not in a production environment.
|
|
937
|
+
*
|
|
938
|
+
* @template OO
|
|
939
|
+
* @param {OO} o
|
|
940
|
+
* @return {Extract<OO, T> extends never ? T : (OO extends Array<never> ? T : Extract<OO,T>)}
|
|
941
|
+
*/
|
|
942
|
+
cast(o) {
|
|
943
|
+
assert(o, this);
|
|
944
|
+
return (
|
|
945
|
+
/** @type {any} */
|
|
946
|
+
o
|
|
947
|
+
);
|
|
948
|
+
}
|
|
949
|
+
/**
|
|
950
|
+
* EXPECTO PATRONUM!! 🪄
|
|
951
|
+
* This function protects against type errors. Though it may not work in the real world.
|
|
952
|
+
*
|
|
953
|
+
* "After all this time?"
|
|
954
|
+
* "Always." - Snape, talking about type safety
|
|
955
|
+
*
|
|
956
|
+
* Ensures that a variable is a a specific type. Returns the value, or throws an exception if the assertion check failed.
|
|
957
|
+
* Use this if you know that the type is of a specific type and you just want to convince the type
|
|
958
|
+
* system.
|
|
959
|
+
*
|
|
960
|
+
* Can be useful when defining lambdas: `s.lambda(s.$number, s.$void).expect((n) => n + 1)`
|
|
961
|
+
*
|
|
962
|
+
* **Do not rely on these error messages!**
|
|
963
|
+
* Performs an assertion check if not in a production environment.
|
|
964
|
+
*
|
|
965
|
+
* @param {T} o
|
|
966
|
+
* @return {o extends T ? T : never}
|
|
967
|
+
*/
|
|
968
|
+
expect(o) {
|
|
969
|
+
assert(o, this);
|
|
970
|
+
return o;
|
|
971
|
+
}
|
|
972
|
+
};
|
|
973
|
+
// this.shape must not be defined on Schema. Otherwise typecheck on metatypes (e.g. $$object) won't work as expected anymore
|
|
974
|
+
/**
|
|
975
|
+
* If true, the more things are added to the shape the more objects this schema will accept (e.g.
|
|
976
|
+
* union). By default, the more objects are added, the the fewer objects this schema will accept.
|
|
977
|
+
* @protected
|
|
978
|
+
*/
|
|
979
|
+
__publicField(Schema, "_dilutes", false);
|
|
980
|
+
var $ConstructedBy = class extends Schema {
|
|
981
|
+
/**
|
|
982
|
+
* @param {C} c
|
|
983
|
+
* @param {((o:Instance<C>)=>boolean)|null} check
|
|
984
|
+
*/
|
|
985
|
+
constructor(c, check) {
|
|
986
|
+
super();
|
|
987
|
+
this.shape = c;
|
|
988
|
+
this._c = check;
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
991
|
+
* @param {any} o
|
|
992
|
+
* @param {ValidationError} [err]
|
|
993
|
+
* @return {o is C extends ((...args:any[]) => infer T) ? T : (C extends (new (...args:any[]) => any) ? InstanceType<C> : never)} o
|
|
994
|
+
*/
|
|
995
|
+
check(o, err = void 0) {
|
|
996
|
+
const c = (o == null ? void 0 : o.constructor) === this.shape && (this._c == null || this._c(o));
|
|
997
|
+
!c && (err == null ? void 0 : err.extend(null, this.shape.name, o == null ? void 0 : o.constructor.name, (o == null ? void 0 : o.constructor) !== this.shape ? "Constructor match failed" : "Check failed"));
|
|
998
|
+
return c;
|
|
999
|
+
}
|
|
1000
|
+
};
|
|
1001
|
+
var $constructedBy = (c, check = null) => new $ConstructedBy(c, check);
|
|
1002
|
+
var $$constructedBy = $constructedBy($ConstructedBy);
|
|
1003
|
+
var $Custom = class extends Schema {
|
|
1004
|
+
/**
|
|
1005
|
+
* @param {(o:any) => boolean} check
|
|
1006
|
+
*/
|
|
1007
|
+
constructor(check) {
|
|
1008
|
+
super();
|
|
1009
|
+
this.shape = check;
|
|
1010
|
+
}
|
|
1011
|
+
/**
|
|
1012
|
+
* @param {any} o
|
|
1013
|
+
* @param {ValidationError} err
|
|
1014
|
+
* @return {o is any}
|
|
1015
|
+
*/
|
|
1016
|
+
check(o, err) {
|
|
1017
|
+
const c = this.shape(o);
|
|
1018
|
+
!c && (err == null ? void 0 : err.extend(null, "custom prop", o == null ? void 0 : o.constructor.name, "failed to check custom prop"));
|
|
1019
|
+
return c;
|
|
1020
|
+
}
|
|
1021
|
+
};
|
|
1022
|
+
var $custom = (check) => new $Custom(check);
|
|
1023
|
+
var $$custom = $constructedBy($Custom);
|
|
1024
|
+
var $Literal = class extends Schema {
|
|
1025
|
+
/**
|
|
1026
|
+
* @param {Array<T>} literals
|
|
1027
|
+
*/
|
|
1028
|
+
constructor(literals) {
|
|
1029
|
+
super();
|
|
1030
|
+
this.shape = literals;
|
|
1031
|
+
}
|
|
1032
|
+
/**
|
|
1033
|
+
*
|
|
1034
|
+
* @param {any} o
|
|
1035
|
+
* @param {ValidationError} [err]
|
|
1036
|
+
* @return {o is T}
|
|
1037
|
+
*/
|
|
1038
|
+
check(o, err) {
|
|
1039
|
+
const c = this.shape.some((a) => a === o);
|
|
1040
|
+
!c && (err == null ? void 0 : err.extend(null, this.shape.join(" | "), o.toString()));
|
|
1041
|
+
return c;
|
|
1042
|
+
}
|
|
1043
|
+
};
|
|
1044
|
+
var $literal = (...literals) => new $Literal(literals);
|
|
1045
|
+
var $$literal = $constructedBy($Literal);
|
|
1046
|
+
var _regexEscape = (
|
|
1047
|
+
/** @type {any} */
|
|
1048
|
+
RegExp.escape || /** @type {(str:string) => string} */
|
|
1049
|
+
((str) => str.replace(/[().|&,$^[\]]/g, (s) => "\\" + s))
|
|
1050
|
+
);
|
|
1051
|
+
var _schemaStringTemplateToRegex = (s) => {
|
|
1052
|
+
if ($string.check(s)) {
|
|
1053
|
+
return [_regexEscape(s)];
|
|
1054
|
+
}
|
|
1055
|
+
if ($$literal.check(s)) {
|
|
1056
|
+
return (
|
|
1057
|
+
/** @type {Array<string|number>} */
|
|
1058
|
+
s.shape.map((v) => v + "")
|
|
1059
|
+
);
|
|
1060
|
+
}
|
|
1061
|
+
if ($$number.check(s)) {
|
|
1062
|
+
return ["[+-]?\\d+.?\\d*"];
|
|
1063
|
+
}
|
|
1064
|
+
if ($$string.check(s)) {
|
|
1065
|
+
return [".*"];
|
|
1066
|
+
}
|
|
1067
|
+
if ($$union.check(s)) {
|
|
1068
|
+
return s.shape.map(_schemaStringTemplateToRegex).flat(1);
|
|
1069
|
+
}
|
|
1070
|
+
unexpectedCase();
|
|
1071
|
+
};
|
|
1072
|
+
var $StringTemplate = class extends Schema {
|
|
1073
|
+
/**
|
|
1074
|
+
* @param {T} shape
|
|
1075
|
+
*/
|
|
1076
|
+
constructor(shape) {
|
|
1077
|
+
super();
|
|
1078
|
+
this.shape = shape;
|
|
1079
|
+
this._r = new RegExp("^" + shape.map(_schemaStringTemplateToRegex).map((opts) => `(${opts.join("|")})`).join("") + "$");
|
|
1080
|
+
}
|
|
1081
|
+
/**
|
|
1082
|
+
* @param {any} o
|
|
1083
|
+
* @param {ValidationError} [err]
|
|
1084
|
+
* @return {o is CastStringTemplateArgsToTemplate<T>}
|
|
1085
|
+
*/
|
|
1086
|
+
check(o, err) {
|
|
1087
|
+
const c = this._r.exec(o) != null;
|
|
1088
|
+
!c && (err == null ? void 0 : err.extend(null, this._r.toString(), o.toString(), "String doesn't match string template."));
|
|
1089
|
+
return c;
|
|
1090
|
+
}
|
|
1091
|
+
};
|
|
1092
|
+
var $$stringTemplate = $constructedBy($StringTemplate);
|
|
1093
|
+
var isOptionalSymbol = Symbol("optional");
|
|
1094
|
+
var $Optional = class extends Schema {
|
|
1095
|
+
/**
|
|
1096
|
+
* @param {S} shape
|
|
1097
|
+
*/
|
|
1098
|
+
constructor(shape) {
|
|
1099
|
+
super();
|
|
1100
|
+
this.shape = shape;
|
|
1101
|
+
}
|
|
1102
|
+
/**
|
|
1103
|
+
* @param {any} o
|
|
1104
|
+
* @param {ValidationError} [err]
|
|
1105
|
+
* @return {o is (Unwrap<S>|undefined)}
|
|
1106
|
+
*/
|
|
1107
|
+
check(o, err) {
|
|
1108
|
+
const c = o === void 0 || this.shape.check(o);
|
|
1109
|
+
!c && (err == null ? void 0 : err.extend(null, "undefined (optional)", "()"));
|
|
1110
|
+
return c;
|
|
1111
|
+
}
|
|
1112
|
+
get [isOptionalSymbol]() {
|
|
1113
|
+
return true;
|
|
1114
|
+
}
|
|
1115
|
+
};
|
|
1116
|
+
var $$optional = $constructedBy($Optional);
|
|
1117
|
+
var $Never = class extends Schema {
|
|
1118
|
+
/**
|
|
1119
|
+
* @param {any} _o
|
|
1120
|
+
* @param {ValidationError} [err]
|
|
1121
|
+
* @return {_o is never}
|
|
1122
|
+
*/
|
|
1123
|
+
check(_o, err) {
|
|
1124
|
+
err == null ? void 0 : err.extend(null, "never", typeof _o);
|
|
1125
|
+
return false;
|
|
1126
|
+
}
|
|
1127
|
+
};
|
|
1128
|
+
var $never = new $Never();
|
|
1129
|
+
var $$never = $constructedBy($Never);
|
|
1130
|
+
var _$Object = class _$Object extends Schema {
|
|
1131
|
+
/**
|
|
1132
|
+
* @param {S} shape
|
|
1133
|
+
* @param {boolean} partial
|
|
1134
|
+
*/
|
|
1135
|
+
constructor(shape, partial = false) {
|
|
1136
|
+
super();
|
|
1137
|
+
this.shape = shape;
|
|
1138
|
+
this._isPartial = partial;
|
|
1139
|
+
}
|
|
1140
|
+
/**
|
|
1141
|
+
* @type {Schema<Partial<$ObjectToType<S>>>}
|
|
1142
|
+
*/
|
|
1143
|
+
get partial() {
|
|
1144
|
+
return new _$Object(this.shape, true);
|
|
1145
|
+
}
|
|
1146
|
+
/**
|
|
1147
|
+
* @param {any} o
|
|
1148
|
+
* @param {ValidationError} err
|
|
1149
|
+
* @return {o is $ObjectToType<S>}
|
|
1150
|
+
*/
|
|
1151
|
+
check(o, err) {
|
|
1152
|
+
if (o == null) {
|
|
1153
|
+
err == null ? void 0 : err.extend(null, "object", "null");
|
|
1154
|
+
return false;
|
|
1155
|
+
}
|
|
1156
|
+
return every2(this.shape, (vv, vk) => {
|
|
1157
|
+
const c = this._isPartial && !hasProperty(o, vk) || vv.check(o[vk], err);
|
|
1158
|
+
!c && (err == null ? void 0 : err.extend(vk.toString(), vv.toString(), typeof o[vk], "Object property does not match"));
|
|
1159
|
+
return c;
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
};
|
|
1163
|
+
__publicField(_$Object, "_dilutes", true);
|
|
1164
|
+
var $Object = _$Object;
|
|
1165
|
+
var $object = (def) => (
|
|
1166
|
+
/** @type {any} */
|
|
1167
|
+
new $Object(def)
|
|
1168
|
+
);
|
|
1169
|
+
var $$object = $constructedBy($Object);
|
|
1170
|
+
var $objectAny = $custom((o) => o != null && (o.constructor === Object || o.constructor == null));
|
|
1171
|
+
var $Record = class extends Schema {
|
|
1172
|
+
/**
|
|
1173
|
+
* @param {Keys} keys
|
|
1174
|
+
* @param {Values} values
|
|
1175
|
+
*/
|
|
1176
|
+
constructor(keys2, values) {
|
|
1177
|
+
super();
|
|
1178
|
+
this.shape = {
|
|
1179
|
+
keys: keys2,
|
|
1180
|
+
values
|
|
1181
|
+
};
|
|
1182
|
+
}
|
|
1183
|
+
/**
|
|
1184
|
+
* @param {any} o
|
|
1185
|
+
* @param {ValidationError} err
|
|
1186
|
+
* @return {o is { [key in Unwrap<Keys>]: Unwrap<Values> }}
|
|
1187
|
+
*/
|
|
1188
|
+
check(o, err) {
|
|
1189
|
+
return o != null && every2(o, (vv, vk) => {
|
|
1190
|
+
const ck = this.shape.keys.check(vk, err);
|
|
1191
|
+
!ck && (err == null ? void 0 : err.extend(vk + "", "Record", typeof o, ck ? "Key doesn't match schema" : "Value doesn't match value"));
|
|
1192
|
+
return ck && this.shape.values.check(vv, err);
|
|
1193
|
+
});
|
|
1194
|
+
}
|
|
1195
|
+
};
|
|
1196
|
+
var $record = (keys2, values) => new $Record(keys2, values);
|
|
1197
|
+
var $$record = $constructedBy($Record);
|
|
1198
|
+
var $Tuple = class extends Schema {
|
|
1199
|
+
/**
|
|
1200
|
+
* @param {S} shape
|
|
1201
|
+
*/
|
|
1202
|
+
constructor(shape) {
|
|
1203
|
+
super();
|
|
1204
|
+
this.shape = shape;
|
|
1205
|
+
}
|
|
1206
|
+
/**
|
|
1207
|
+
* @param {any} o
|
|
1208
|
+
* @param {ValidationError} err
|
|
1209
|
+
* @return {o is { [K in keyof S]: S[K] extends Schema<infer Type> ? Type : never }}
|
|
1210
|
+
*/
|
|
1211
|
+
check(o, err) {
|
|
1212
|
+
return o != null && every2(this.shape, (vv, vk) => {
|
|
1213
|
+
const c = (
|
|
1214
|
+
/** @type {Schema<any>} */
|
|
1215
|
+
vv.check(o[vk], err)
|
|
1216
|
+
);
|
|
1217
|
+
!c && (err == null ? void 0 : err.extend(vk.toString(), "Tuple", typeof vv));
|
|
1218
|
+
return c;
|
|
1219
|
+
});
|
|
1220
|
+
}
|
|
1221
|
+
};
|
|
1222
|
+
var $tuple = (...def) => new $Tuple(def);
|
|
1223
|
+
var $$tuple = $constructedBy($Tuple);
|
|
1224
|
+
var $Array = class extends Schema {
|
|
1225
|
+
/**
|
|
1226
|
+
* @param {Array<S>} v
|
|
1227
|
+
*/
|
|
1228
|
+
constructor(v) {
|
|
1229
|
+
super();
|
|
1230
|
+
this.shape = v.length === 1 ? v[0] : new $Union(v);
|
|
1231
|
+
}
|
|
1232
|
+
/**
|
|
1233
|
+
* @param {any} o
|
|
1234
|
+
* @param {ValidationError} [err]
|
|
1235
|
+
* @return {o is Array<S extends Schema<infer T> ? T : never>} o
|
|
1236
|
+
*/
|
|
1237
|
+
check(o, err) {
|
|
1238
|
+
const c = isArray(o) && every(o, (oi) => this.shape.check(oi));
|
|
1239
|
+
!c && (err == null ? void 0 : err.extend(null, "Array", ""));
|
|
1240
|
+
return c;
|
|
1241
|
+
}
|
|
1242
|
+
};
|
|
1243
|
+
var $array = (...def) => new $Array(def);
|
|
1244
|
+
var $$array = $constructedBy($Array);
|
|
1245
|
+
var $arrayAny = $custom((o) => isArray(o));
|
|
1246
|
+
var $InstanceOf = class extends Schema {
|
|
1247
|
+
/**
|
|
1248
|
+
* @param {new (...args:any) => T} constructor
|
|
1249
|
+
* @param {((o:T) => boolean)|null} check
|
|
1250
|
+
*/
|
|
1251
|
+
constructor(constructor, check) {
|
|
1252
|
+
super();
|
|
1253
|
+
this.shape = constructor;
|
|
1254
|
+
this._c = check;
|
|
1255
|
+
}
|
|
1256
|
+
/**
|
|
1257
|
+
* @param {any} o
|
|
1258
|
+
* @param {ValidationError} err
|
|
1259
|
+
* @return {o is T}
|
|
1260
|
+
*/
|
|
1261
|
+
check(o, err) {
|
|
1262
|
+
const c = o instanceof this.shape && (this._c == null || this._c(o));
|
|
1263
|
+
!c && (err == null ? void 0 : err.extend(null, this.shape.name, o == null ? void 0 : o.constructor.name));
|
|
1264
|
+
return c;
|
|
1265
|
+
}
|
|
1266
|
+
};
|
|
1267
|
+
var $instanceOf = (c, check = null) => new $InstanceOf(c, check);
|
|
1268
|
+
var $$instanceOf = $constructedBy($InstanceOf);
|
|
1269
|
+
var $$schema = $instanceOf(Schema);
|
|
1270
|
+
var $Lambda = class extends Schema {
|
|
1271
|
+
/**
|
|
1272
|
+
* @param {Args} args
|
|
1273
|
+
*/
|
|
1274
|
+
constructor(args2) {
|
|
1275
|
+
super();
|
|
1276
|
+
this.len = args2.length - 1;
|
|
1277
|
+
this.args = $tuple(...args2.slice(-1));
|
|
1278
|
+
this.res = args2[this.len];
|
|
1279
|
+
}
|
|
1280
|
+
/**
|
|
1281
|
+
* @param {any} f
|
|
1282
|
+
* @param {ValidationError} err
|
|
1283
|
+
* @return {f is _LArgsToLambdaDef<Args>}
|
|
1284
|
+
*/
|
|
1285
|
+
check(f, err) {
|
|
1286
|
+
const c = f.constructor === Function && f.length <= this.len;
|
|
1287
|
+
!c && (err == null ? void 0 : err.extend(null, "function", typeof f));
|
|
1288
|
+
return c;
|
|
1289
|
+
}
|
|
1290
|
+
};
|
|
1291
|
+
var $$lambda = $constructedBy($Lambda);
|
|
1292
|
+
var $function = $custom((o) => typeof o === "function");
|
|
1293
|
+
var $Intersection = class extends Schema {
|
|
1294
|
+
/**
|
|
1295
|
+
* @param {T} v
|
|
1296
|
+
*/
|
|
1297
|
+
constructor(v) {
|
|
1298
|
+
super();
|
|
1299
|
+
this.shape = v;
|
|
1300
|
+
}
|
|
1301
|
+
/**
|
|
1302
|
+
* @param {any} o
|
|
1303
|
+
* @param {ValidationError} [err]
|
|
1304
|
+
* @return {o is Intersect<UnwrapArray<T>>}
|
|
1305
|
+
*/
|
|
1306
|
+
check(o, err) {
|
|
1307
|
+
const c = every(this.shape, (check) => check.check(o, err));
|
|
1308
|
+
!c && (err == null ? void 0 : err.extend(null, "Intersectinon", typeof o));
|
|
1309
|
+
return c;
|
|
1310
|
+
}
|
|
1311
|
+
};
|
|
1312
|
+
var $$intersect = $constructedBy($Intersection, (o) => o.shape.length > 0);
|
|
1313
|
+
var $Union = class extends Schema {
|
|
1314
|
+
/**
|
|
1315
|
+
* @param {Array<Schema<S>>} v
|
|
1316
|
+
*/
|
|
1317
|
+
constructor(v) {
|
|
1318
|
+
super();
|
|
1319
|
+
this.shape = v;
|
|
1320
|
+
}
|
|
1321
|
+
/**
|
|
1322
|
+
* @param {any} o
|
|
1323
|
+
* @param {ValidationError} [err]
|
|
1324
|
+
* @return {o is S}
|
|
1325
|
+
*/
|
|
1326
|
+
check(o, err) {
|
|
1327
|
+
const c = some(this.shape, (vv) => vv.check(o, err));
|
|
1328
|
+
err == null ? void 0 : err.extend(null, "Union", typeof o);
|
|
1329
|
+
return c;
|
|
1330
|
+
}
|
|
1331
|
+
};
|
|
1332
|
+
__publicField($Union, "_dilutes", true);
|
|
1333
|
+
var $union = (...schemas) => schemas.findIndex(($s) => $$union.check($s)) >= 0 ? $union(...schemas.map(($s) => $($s)).map(($s) => $$union.check($s) ? $s.shape : [$s]).flat(1)) : schemas.length === 1 ? schemas[0] : new $Union(schemas);
|
|
1334
|
+
var $$union = (
|
|
1335
|
+
/** @type {Schema<$Union<any>>} */
|
|
1336
|
+
$constructedBy($Union)
|
|
1337
|
+
);
|
|
1338
|
+
var _t = () => true;
|
|
1339
|
+
var $any = $custom(_t);
|
|
1340
|
+
var $$any = (
|
|
1341
|
+
/** @type {Schema<Schema<any>>} */
|
|
1342
|
+
$constructedBy($Custom, (o) => o.shape === _t)
|
|
1343
|
+
);
|
|
1344
|
+
var $bigint = $custom((o) => typeof o === "bigint");
|
|
1345
|
+
var $$bigint = (
|
|
1346
|
+
/** @type {Schema<Schema<BigInt>>} */
|
|
1347
|
+
$custom((o) => o === $bigint)
|
|
1348
|
+
);
|
|
1349
|
+
var $symbol = $custom((o) => typeof o === "symbol");
|
|
1350
|
+
var $$symbol = (
|
|
1351
|
+
/** @type {Schema<Schema<Symbol>>} */
|
|
1352
|
+
$custom((o) => o === $symbol)
|
|
1353
|
+
);
|
|
1354
|
+
var $number = $custom((o) => typeof o === "number");
|
|
1355
|
+
var $$number = (
|
|
1356
|
+
/** @type {Schema<Schema<number>>} */
|
|
1357
|
+
$custom((o) => o === $number)
|
|
1358
|
+
);
|
|
1359
|
+
var $string = $custom((o) => typeof o === "string");
|
|
1360
|
+
var $$string = (
|
|
1361
|
+
/** @type {Schema<Schema<string>>} */
|
|
1362
|
+
$custom((o) => o === $string)
|
|
1363
|
+
);
|
|
1364
|
+
var $boolean = $custom((o) => typeof o === "boolean");
|
|
1365
|
+
var $$boolean = (
|
|
1366
|
+
/** @type {Schema<Schema<Boolean>>} */
|
|
1367
|
+
$custom((o) => o === $boolean)
|
|
1368
|
+
);
|
|
1369
|
+
var $undefined = $literal(void 0);
|
|
1370
|
+
var $$undefined = (
|
|
1371
|
+
/** @type {Schema<Schema<undefined>>} */
|
|
1372
|
+
$constructedBy($Literal, (o) => o.shape.length === 1 && o.shape[0] === void 0)
|
|
1373
|
+
);
|
|
1374
|
+
var $void = $literal(void 0);
|
|
1375
|
+
var $null = $literal(null);
|
|
1376
|
+
var $$null = (
|
|
1377
|
+
/** @type {Schema<Schema<null>>} */
|
|
1378
|
+
$constructedBy($Literal, (o) => o.shape.length === 1 && o.shape[0] === null)
|
|
1379
|
+
);
|
|
1380
|
+
var $uint8Array = $constructedBy(Uint8Array);
|
|
1381
|
+
var $$uint8Array = (
|
|
1382
|
+
/** @type {Schema<Schema<Uint8Array>>} */
|
|
1383
|
+
$constructedBy($ConstructedBy, (o) => o.shape === Uint8Array)
|
|
1384
|
+
);
|
|
1385
|
+
var $primitive = $union($number, $string, $null, $undefined, $bigint, $boolean, $symbol);
|
|
1386
|
+
var $json = (() => {
|
|
1387
|
+
const $jsonArr = (
|
|
1388
|
+
/** @type {$Array<$any>} */
|
|
1389
|
+
$array($any)
|
|
1390
|
+
);
|
|
1391
|
+
const $jsonRecord = (
|
|
1392
|
+
/** @type {$Record<$string,$any>} */
|
|
1393
|
+
$record($string, $any)
|
|
1394
|
+
);
|
|
1395
|
+
const $json2 = $union($number, $string, $null, $boolean, $jsonArr, $jsonRecord);
|
|
1396
|
+
$jsonArr.shape = $json2;
|
|
1397
|
+
$jsonRecord.shape.values = $json2;
|
|
1398
|
+
return $json2;
|
|
1399
|
+
})();
|
|
1400
|
+
var $ = (o) => {
|
|
1401
|
+
if ($$schema.check(o)) {
|
|
1402
|
+
return (
|
|
1403
|
+
/** @type {any} */
|
|
1404
|
+
o
|
|
1405
|
+
);
|
|
1406
|
+
} else if ($objectAny.check(o)) {
|
|
1407
|
+
const o2 = {};
|
|
1408
|
+
for (const k in o) {
|
|
1409
|
+
o2[k] = $(o[k]);
|
|
1410
|
+
}
|
|
1411
|
+
return (
|
|
1412
|
+
/** @type {any} */
|
|
1413
|
+
$object(o2)
|
|
1414
|
+
);
|
|
1415
|
+
} else if ($arrayAny.check(o)) {
|
|
1416
|
+
return (
|
|
1417
|
+
/** @type {any} */
|
|
1418
|
+
$union(...o.map($))
|
|
1419
|
+
);
|
|
1420
|
+
} else if ($primitive.check(o)) {
|
|
1421
|
+
return (
|
|
1422
|
+
/** @type {any} */
|
|
1423
|
+
$literal(o)
|
|
1424
|
+
);
|
|
1425
|
+
} else if ($function.check(o)) {
|
|
1426
|
+
return (
|
|
1427
|
+
/** @type {any} */
|
|
1428
|
+
$constructedBy(
|
|
1429
|
+
/** @type {any} */
|
|
1430
|
+
o
|
|
1431
|
+
)
|
|
1432
|
+
);
|
|
1433
|
+
}
|
|
1434
|
+
unexpectedCase();
|
|
1435
|
+
};
|
|
1436
|
+
var assert = production ? () => {
|
|
1437
|
+
} : (o, schema) => {
|
|
1438
|
+
const err = new ValidationError();
|
|
1439
|
+
if (!schema.check(o, err)) {
|
|
1440
|
+
throw create3(`Expected value to be of type ${schema.constructor.name}.
|
|
1441
|
+
${err.toString()}`);
|
|
1442
|
+
}
|
|
1443
|
+
};
|
|
1444
|
+
var PatternMatcher = class {
|
|
1445
|
+
/**
|
|
1446
|
+
* @param {Schema<State>} [$state]
|
|
1447
|
+
*/
|
|
1448
|
+
constructor($state) {
|
|
1449
|
+
this.patterns = [];
|
|
1450
|
+
this.$state = $state;
|
|
1451
|
+
}
|
|
1452
|
+
/**
|
|
1453
|
+
* @template P
|
|
1454
|
+
* @template R
|
|
1455
|
+
* @param {P} pattern
|
|
1456
|
+
* @param {(o:NoInfer<Unwrap<ReadSchema<P>>>,s:State)=>R} handler
|
|
1457
|
+
* @return {PatternMatcher<State,Patterns|Pattern<Unwrap<ReadSchema<P>>,R>>}
|
|
1458
|
+
*/
|
|
1459
|
+
if(pattern, handler) {
|
|
1460
|
+
this.patterns.push({ if: $(pattern), h: handler });
|
|
1461
|
+
return this;
|
|
1462
|
+
}
|
|
1463
|
+
/**
|
|
1464
|
+
* @template R
|
|
1465
|
+
* @param {(o:any,s:State)=>R} h
|
|
1466
|
+
*/
|
|
1467
|
+
else(h) {
|
|
1468
|
+
return this.if($any, h);
|
|
1469
|
+
}
|
|
1470
|
+
/**
|
|
1471
|
+
* @return {State extends undefined
|
|
1472
|
+
* ? <In extends Unwrap<Patterns['if']>>(o:In,state?:undefined)=>PatternMatchResult<Patterns,In>
|
|
1473
|
+
* : <In extends Unwrap<Patterns['if']>>(o:In,state:State)=>PatternMatchResult<Patterns,In>}
|
|
1474
|
+
*/
|
|
1475
|
+
done() {
|
|
1476
|
+
return (
|
|
1477
|
+
/** @type {any} */
|
|
1478
|
+
(o, s) => {
|
|
1479
|
+
for (let i = 0; i < this.patterns.length; i++) {
|
|
1480
|
+
const p = this.patterns[i];
|
|
1481
|
+
if (p.if.check(o)) {
|
|
1482
|
+
return p.h(o, s);
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
throw create3("Unhandled pattern");
|
|
1486
|
+
}
|
|
1487
|
+
);
|
|
1488
|
+
}
|
|
1489
|
+
};
|
|
1490
|
+
var match = (state) => new PatternMatcher(
|
|
1491
|
+
/** @type {any} */
|
|
1492
|
+
state
|
|
1493
|
+
);
|
|
1494
|
+
var _random = (
|
|
1495
|
+
/** @type {any} */
|
|
1496
|
+
match(
|
|
1497
|
+
/** @type {Schema<prng.PRNG>} */
|
|
1498
|
+
$any
|
|
1499
|
+
).if($$number, (_o, gen) => int53(gen, MIN_SAFE_INTEGER, MAX_SAFE_INTEGER)).if($$string, (_o, gen) => word(gen)).if($$boolean, (_o, gen) => bool(gen)).if($$bigint, (_o, gen) => BigInt(int53(gen, MIN_SAFE_INTEGER, MAX_SAFE_INTEGER))).if($$union, (o, gen) => random(gen, oneOf(gen, o.shape))).if($$object, (o, gen) => {
|
|
1500
|
+
const res = {};
|
|
1501
|
+
for (const k in o.shape) {
|
|
1502
|
+
let prop = o.shape[k];
|
|
1503
|
+
if ($$optional.check(prop)) {
|
|
1504
|
+
if (bool(gen)) {
|
|
1505
|
+
continue;
|
|
1506
|
+
}
|
|
1507
|
+
prop = prop.shape;
|
|
1508
|
+
}
|
|
1509
|
+
res[k] = _random(prop, gen);
|
|
1510
|
+
}
|
|
1511
|
+
return res;
|
|
1512
|
+
}).if($$array, (o, gen) => {
|
|
1513
|
+
const arr = [];
|
|
1514
|
+
const n = int32(gen, 0, 42);
|
|
1515
|
+
for (let i = 0; i < n; i++) {
|
|
1516
|
+
arr.push(random(gen, o.shape));
|
|
1517
|
+
}
|
|
1518
|
+
return arr;
|
|
1519
|
+
}).if($$literal, (o, gen) => {
|
|
1520
|
+
return oneOf(gen, o.shape);
|
|
1521
|
+
}).if($$null, (o, gen) => {
|
|
1522
|
+
return null;
|
|
1523
|
+
}).if($$lambda, (o, gen) => {
|
|
1524
|
+
const res = random(gen, o.res);
|
|
1525
|
+
return () => res;
|
|
1526
|
+
}).if($$any, (o, gen) => random(gen, oneOf(gen, [
|
|
1527
|
+
$number,
|
|
1528
|
+
$string,
|
|
1529
|
+
$null,
|
|
1530
|
+
$undefined,
|
|
1531
|
+
$bigint,
|
|
1532
|
+
$boolean,
|
|
1533
|
+
$array($number),
|
|
1534
|
+
$record($union("a", "b", "c"), $number)
|
|
1535
|
+
]))).if($$record, (o, gen) => {
|
|
1536
|
+
const res = {};
|
|
1537
|
+
const keysN = int53(gen, 0, 3);
|
|
1538
|
+
for (let i = 0; i < keysN; i++) {
|
|
1539
|
+
const key = random(gen, o.shape.keys);
|
|
1540
|
+
const val = random(gen, o.shape.values);
|
|
1541
|
+
res[key] = val;
|
|
1542
|
+
}
|
|
1543
|
+
return res;
|
|
1544
|
+
}).done()
|
|
1545
|
+
);
|
|
1546
|
+
var random = (gen, schema) => (
|
|
1547
|
+
/** @type {any} */
|
|
1548
|
+
_random($(schema), gen)
|
|
1549
|
+
);
|
|
1550
|
+
|
|
1551
|
+
// ../node_modules/lib0/dom.js
|
|
689
1552
|
var doc = (
|
|
690
1553
|
/** @type {Document} */
|
|
691
1554
|
typeof document !== "undefined" ? document : {}
|
|
692
1555
|
);
|
|
1556
|
+
var $fragment = $custom((el) => el.nodeType === DOCUMENT_FRAGMENT_NODE);
|
|
693
1557
|
var domParser = (
|
|
694
1558
|
/** @type {DOMParser} */
|
|
695
1559
|
typeof DOMParser !== "undefined" ? new DOMParser() : null
|
|
696
1560
|
);
|
|
1561
|
+
var $element = $custom((el) => el.nodeType === ELEMENT_NODE);
|
|
1562
|
+
var $text = $custom((el) => el.nodeType === TEXT_NODE);
|
|
697
1563
|
var mapToStyleString = (m) => map(m, (value, key) => `${key}:${value};`).join("");
|
|
698
1564
|
var ELEMENT_NODE = doc.ELEMENT_NODE;
|
|
699
1565
|
var TEXT_NODE = doc.TEXT_NODE;
|
|
@@ -702,11 +1568,12 @@ var COMMENT_NODE = doc.COMMENT_NODE;
|
|
|
702
1568
|
var DOCUMENT_NODE = doc.DOCUMENT_NODE;
|
|
703
1569
|
var DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE;
|
|
704
1570
|
var DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE;
|
|
1571
|
+
var $node = $custom((el) => el.nodeType === DOCUMENT_NODE);
|
|
705
1572
|
|
|
706
|
-
//
|
|
1573
|
+
// ../node_modules/lib0/symbol.js
|
|
707
1574
|
var create6 = Symbol;
|
|
708
1575
|
|
|
709
|
-
//
|
|
1576
|
+
// ../node_modules/lib0/logging.common.js
|
|
710
1577
|
var BOLD = create6();
|
|
711
1578
|
var UNBOLD = create6();
|
|
712
1579
|
var BLUE = create6();
|
|
@@ -749,7 +1616,7 @@ var computeNoColorLoggingArgs = (args2) => {
|
|
|
749
1616
|
};
|
|
750
1617
|
var lastLoggingTime = getUnixTime();
|
|
751
1618
|
|
|
752
|
-
//
|
|
1619
|
+
// ../node_modules/lib0/logging.js
|
|
753
1620
|
var _browserStyleMap = {
|
|
754
1621
|
[BOLD]: create5("font-weight", "bold"),
|
|
755
1622
|
[UNBOLD]: create5("font-weight", "normal"),
|
|
@@ -820,7 +1687,7 @@ var warn = (...args2) => {
|
|
|
820
1687
|
};
|
|
821
1688
|
var vconsoles = create2();
|
|
822
1689
|
|
|
823
|
-
//
|
|
1690
|
+
// ../node_modules/lib0/iterator.js
|
|
824
1691
|
var createIterator = (next) => ({
|
|
825
1692
|
/**
|
|
826
1693
|
* @return {IterableIterator<T>}
|
|
@@ -843,7 +1710,7 @@ var iteratorMap = (iterator, fmap) => createIterator(() => {
|
|
|
843
1710
|
return { done, value: done ? void 0 : fmap(value) };
|
|
844
1711
|
});
|
|
845
1712
|
|
|
846
|
-
//
|
|
1713
|
+
// ../node_modules/yjs/dist/yjs.mjs
|
|
847
1714
|
var DeleteItem = class {
|
|
848
1715
|
/**
|
|
849
1716
|
* @param {number} clock
|
|
@@ -1799,15 +2666,19 @@ var cleanupTransactions = (transactionCleanups, i) => {
|
|
|
1799
2666
|
event._path = null;
|
|
1800
2667
|
});
|
|
1801
2668
|
events.sort((event1, event2) => event1.path.length - event2.path.length);
|
|
1802
|
-
|
|
2669
|
+
fs.push(() => {
|
|
2670
|
+
callEventHandlerListeners(type._dEH, events, transaction);
|
|
2671
|
+
});
|
|
2672
|
+
}
|
|
2673
|
+
});
|
|
2674
|
+
fs.push(() => doc2.emit("afterTransaction", [transaction, doc2]));
|
|
2675
|
+
fs.push(() => {
|
|
2676
|
+
if (transaction._needFormattingCleanup) {
|
|
2677
|
+
cleanupYTextAfterTransaction(transaction);
|
|
1803
2678
|
}
|
|
1804
2679
|
});
|
|
1805
2680
|
});
|
|
1806
|
-
fs.push(() => doc2.emit("afterTransaction", [transaction, doc2]));
|
|
1807
2681
|
callAll(fs, []);
|
|
1808
|
-
if (transaction._needFormattingCleanup) {
|
|
1809
|
-
cleanupYTextAfterTransaction(transaction);
|
|
1810
|
-
}
|
|
1811
2682
|
} finally {
|
|
1812
2683
|
if (doc2.gc) {
|
|
1813
2684
|
tryGcDeleteSet(ds, store, doc2.gcFilter);
|
|
@@ -1952,7 +2823,7 @@ var YEvent = class {
|
|
|
1952
2823
|
return isDeleted(this.transaction.deleteSet, struct.id);
|
|
1953
2824
|
}
|
|
1954
2825
|
/**
|
|
1955
|
-
* @type {Map<string, { action: 'add' | 'update' | 'delete', oldValue: any
|
|
2826
|
+
* @type {Map<string, { action: 'add' | 'update' | 'delete', oldValue: any }>}
|
|
1956
2827
|
*/
|
|
1957
2828
|
get keys() {
|
|
1958
2829
|
if (this._keys === null) {
|
|
@@ -4654,11 +5525,13 @@ var YXmlElement = class _YXmlElement extends YXmlFragment {
|
|
|
4654
5525
|
const el = new _YXmlElement(this.nodeName);
|
|
4655
5526
|
const attrs = this.getAttributes();
|
|
4656
5527
|
forEach(attrs, (value, key) => {
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
5528
|
+
el.setAttribute(
|
|
5529
|
+
key,
|
|
5530
|
+
/** @type {any} */
|
|
5531
|
+
value
|
|
5532
|
+
);
|
|
4660
5533
|
});
|
|
4661
|
-
el.insert(0, this.toArray().map((
|
|
5534
|
+
el.insert(0, this.toArray().map((v) => v instanceof AbstractType ? v.clone() : v));
|
|
4662
5535
|
return el;
|
|
4663
5536
|
}
|
|
4664
5537
|
/**
|
|
@@ -6025,12 +6898,54 @@ function isPlainObject(o) {
|
|
|
6025
6898
|
return o && typeof o === "object" && !Array.isArray(o);
|
|
6026
6899
|
}
|
|
6027
6900
|
function deepEqual(a, b) {
|
|
6028
|
-
|
|
6029
|
-
return
|
|
6030
|
-
}
|
|
6031
|
-
|
|
6901
|
+
if (Object.is(a, b)) {
|
|
6902
|
+
return true;
|
|
6903
|
+
}
|
|
6904
|
+
if (typeof a === "function" && typeof b === "function") {
|
|
6905
|
+
try {
|
|
6906
|
+
return a.toString() === b.toString();
|
|
6907
|
+
} catch {
|
|
6908
|
+
return false;
|
|
6909
|
+
}
|
|
6910
|
+
}
|
|
6911
|
+
if (typeof a === "function" || typeof b === "function") {
|
|
6032
6912
|
return false;
|
|
6033
6913
|
}
|
|
6914
|
+
if (a instanceof Date && b instanceof Date) {
|
|
6915
|
+
return a.getTime() === b.getTime();
|
|
6916
|
+
}
|
|
6917
|
+
if (a instanceof RegExp && b instanceof RegExp) {
|
|
6918
|
+
return String(a) === String(b);
|
|
6919
|
+
}
|
|
6920
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
6921
|
+
if (a.length !== b.length) {
|
|
6922
|
+
return false;
|
|
6923
|
+
}
|
|
6924
|
+
for (let i = 0; i < a.length; i++) {
|
|
6925
|
+
if (!deepEqual(a[i], b[i])) {
|
|
6926
|
+
return false;
|
|
6927
|
+
}
|
|
6928
|
+
}
|
|
6929
|
+
return true;
|
|
6930
|
+
}
|
|
6931
|
+
if (a && b && typeof a === "object" && typeof b === "object") {
|
|
6932
|
+
const aKeys = Object.keys(a);
|
|
6933
|
+
const bKeys = Object.keys(b);
|
|
6934
|
+
if (aKeys.length !== bKeys.length) {
|
|
6935
|
+
return false;
|
|
6936
|
+
}
|
|
6937
|
+
for (let i = 0; i < aKeys.length; i++) {
|
|
6938
|
+
const key = aKeys[i];
|
|
6939
|
+
if (!Object.hasOwn(b, key)) {
|
|
6940
|
+
return false;
|
|
6941
|
+
}
|
|
6942
|
+
if (!deepEqual(a[key], b[key])) {
|
|
6943
|
+
return false;
|
|
6944
|
+
}
|
|
6945
|
+
}
|
|
6946
|
+
return true;
|
|
6947
|
+
}
|
|
6948
|
+
return false;
|
|
6034
6949
|
}
|
|
6035
6950
|
function getRootMap(ydoc) {
|
|
6036
6951
|
return ydoc.getMap("root");
|