@symbo.ls/sdk 3.2.3 → 3.2.6

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.
Files changed (183) hide show
  1. package/README.md +141 -0
  2. package/dist/cjs/config/environment.js +94 -10
  3. package/dist/cjs/index.js +152 -12
  4. package/dist/cjs/services/AdminService.js +351 -0
  5. package/dist/cjs/services/AuthService.js +738 -305
  6. package/dist/cjs/services/BaseService.js +158 -6
  7. package/dist/cjs/services/BranchService.js +484 -0
  8. package/dist/cjs/services/CollabService.js +439 -116
  9. package/dist/cjs/services/DnsService.js +340 -0
  10. package/dist/cjs/services/FeatureFlagService.js +175 -0
  11. package/dist/cjs/services/FileService.js +201 -0
  12. package/dist/cjs/services/IntegrationService.js +538 -0
  13. package/dist/cjs/services/MetricsService.js +62 -0
  14. package/dist/cjs/services/PaymentService.js +271 -0
  15. package/dist/cjs/services/PlanService.js +426 -0
  16. package/dist/cjs/services/ProjectService.js +1207 -0
  17. package/dist/cjs/services/PullRequestService.js +503 -0
  18. package/dist/cjs/services/ScreenshotService.js +304 -0
  19. package/dist/cjs/services/SubscriptionService.js +396 -0
  20. package/dist/cjs/services/TrackingService.js +661 -0
  21. package/dist/cjs/services/WaitlistService.js +148 -0
  22. package/dist/cjs/services/index.js +60 -4
  23. package/dist/cjs/state/RootStateManager.js +2 -23
  24. package/dist/cjs/state/rootEventBus.js +9 -0
  25. package/dist/cjs/utils/CollabClient.js +78 -12
  26. package/dist/cjs/utils/TokenManager.js +16 -3
  27. package/dist/cjs/utils/changePreprocessor.js +199 -0
  28. package/dist/cjs/utils/jsonDiff.js +46 -4
  29. package/dist/cjs/utils/ordering.js +309 -0
  30. package/dist/cjs/utils/services.js +285 -128
  31. package/dist/cjs/utils/validation.js +0 -3
  32. package/dist/esm/config/environment.js +94 -10
  33. package/dist/esm/index.js +47862 -18248
  34. package/dist/esm/services/AdminService.js +1132 -0
  35. package/dist/esm/services/AuthService.js +1493 -386
  36. package/dist/esm/services/BaseService.js +757 -6
  37. package/dist/esm/services/BranchService.js +1265 -0
  38. package/dist/esm/services/CollabService.js +24956 -16089
  39. package/dist/esm/services/DnsService.js +1121 -0
  40. package/dist/esm/services/FeatureFlagService.js +956 -0
  41. package/dist/esm/services/FileService.js +982 -0
  42. package/dist/esm/services/IntegrationService.js +1319 -0
  43. package/dist/esm/services/MetricsService.js +843 -0
  44. package/dist/esm/services/PaymentService.js +1052 -0
  45. package/dist/esm/services/PlanService.js +1207 -0
  46. package/dist/esm/services/ProjectService.js +2526 -0
  47. package/dist/esm/services/PullRequestService.js +1284 -0
  48. package/dist/esm/services/ScreenshotService.js +1085 -0
  49. package/dist/esm/services/SubscriptionService.js +1177 -0
  50. package/dist/esm/services/TrackingService.js +18454 -0
  51. package/dist/esm/services/WaitlistService.js +929 -0
  52. package/dist/esm/services/index.js +47373 -18027
  53. package/dist/esm/state/RootStateManager.js +11 -23
  54. package/dist/esm/state/rootEventBus.js +9 -0
  55. package/dist/esm/utils/CollabClient.js +17526 -16120
  56. package/dist/esm/utils/TokenManager.js +16 -3
  57. package/dist/esm/utils/changePreprocessor.js +542 -0
  58. package/dist/esm/utils/jsonDiff.js +958 -43
  59. package/dist/esm/utils/ordering.js +291 -0
  60. package/dist/esm/utils/services.js +285 -128
  61. package/dist/esm/utils/validation.js +116 -50
  62. package/dist/node/config/environment.js +94 -10
  63. package/dist/node/index.js +183 -16
  64. package/dist/node/services/AdminService.js +332 -0
  65. package/dist/node/services/AuthService.js +742 -310
  66. package/dist/node/services/BaseService.js +148 -6
  67. package/dist/node/services/BranchService.js +465 -0
  68. package/dist/node/services/CollabService.js +439 -116
  69. package/dist/node/services/DnsService.js +321 -0
  70. package/dist/node/services/FeatureFlagService.js +156 -0
  71. package/dist/node/services/FileService.js +182 -0
  72. package/dist/node/services/IntegrationService.js +519 -0
  73. package/dist/node/services/MetricsService.js +43 -0
  74. package/dist/node/services/PaymentService.js +252 -0
  75. package/dist/node/services/PlanService.js +407 -0
  76. package/dist/node/services/ProjectService.js +1188 -0
  77. package/dist/node/services/PullRequestService.js +484 -0
  78. package/dist/node/services/ScreenshotService.js +285 -0
  79. package/dist/node/services/SubscriptionService.js +377 -0
  80. package/dist/node/services/TrackingService.js +632 -0
  81. package/dist/node/services/WaitlistService.js +129 -0
  82. package/dist/node/services/index.js +60 -4
  83. package/dist/node/state/RootStateManager.js +2 -23
  84. package/dist/node/state/rootEventBus.js +9 -0
  85. package/dist/node/utils/CollabClient.js +77 -11
  86. package/dist/node/utils/TokenManager.js +16 -3
  87. package/dist/node/utils/changePreprocessor.js +180 -0
  88. package/dist/node/utils/jsonDiff.js +46 -4
  89. package/dist/node/utils/ordering.js +290 -0
  90. package/dist/node/utils/services.js +285 -128
  91. package/dist/node/utils/validation.js +0 -3
  92. package/package.json +30 -18
  93. package/src/config/environment.js +95 -10
  94. package/src/index.js +190 -23
  95. package/src/services/AdminService.js +374 -0
  96. package/src/services/AuthService.js +874 -328
  97. package/src/services/BaseService.js +166 -6
  98. package/src/services/BranchService.js +536 -0
  99. package/src/services/CollabService.js +557 -148
  100. package/src/services/DnsService.js +366 -0
  101. package/src/services/FeatureFlagService.js +174 -0
  102. package/src/services/FileService.js +213 -0
  103. package/src/services/IntegrationService.js +548 -0
  104. package/src/services/MetricsService.js +40 -0
  105. package/src/services/PaymentService.js +287 -0
  106. package/src/services/PlanService.js +468 -0
  107. package/src/services/ProjectService.js +1366 -0
  108. package/src/services/PullRequestService.js +537 -0
  109. package/src/services/ScreenshotService.js +258 -0
  110. package/src/services/SubscriptionService.js +425 -0
  111. package/src/services/TrackingService.js +853 -0
  112. package/src/services/WaitlistService.js +130 -0
  113. package/src/services/index.js +79 -5
  114. package/src/services/tests/BranchService/createBranch.test.js +153 -0
  115. package/src/services/tests/BranchService/deleteBranch.test.js +173 -0
  116. package/src/services/tests/BranchService/getBranchChanges.test.js +146 -0
  117. package/src/services/tests/BranchService/listBranches.test.js +87 -0
  118. package/src/services/tests/BranchService/mergeBranch.test.js +210 -0
  119. package/src/services/tests/BranchService/publishVersion.test.js +183 -0
  120. package/src/services/tests/BranchService/renameBranch.test.js +240 -0
  121. package/src/services/tests/BranchService/resetBranch.test.js +152 -0
  122. package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +67 -0
  123. package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +75 -0
  124. package/src/services/tests/FileService/createFileFormData.test.js +74 -0
  125. package/src/services/tests/FileService/getFileUrl.test.js +69 -0
  126. package/src/services/tests/FileService/updateProjectIcon.test.js +109 -0
  127. package/src/services/tests/FileService/uploadDocument.test.js +36 -0
  128. package/src/services/tests/FileService/uploadFile.test.js +78 -0
  129. package/src/services/tests/FileService/uploadFileWithValidation.test.js +114 -0
  130. package/src/services/tests/FileService/uploadImage.test.js +36 -0
  131. package/src/services/tests/FileService/uploadMultipleFiles.test.js +111 -0
  132. package/src/services/tests/FileService/validateFile.test.js +63 -0
  133. package/src/services/tests/PlanService/createPlan.test.js +104 -0
  134. package/src/services/tests/PlanService/createPlanWithValidation.test.js +523 -0
  135. package/src/services/tests/PlanService/deletePlan.test.js +92 -0
  136. package/src/services/tests/PlanService/getActivePlans.test.js +123 -0
  137. package/src/services/tests/PlanService/getAdminPlans.test.js +84 -0
  138. package/src/services/tests/PlanService/getPlan.test.js +50 -0
  139. package/src/services/tests/PlanService/getPlanByKey.test.js +109 -0
  140. package/src/services/tests/PlanService/getPlanWithValidation.test.js +85 -0
  141. package/src/services/tests/PlanService/getPlans.test.js +53 -0
  142. package/src/services/tests/PlanService/getPlansByPriceRange.test.js +109 -0
  143. package/src/services/tests/PlanService/getPlansWithValidation.test.js +48 -0
  144. package/src/services/tests/PlanService/initializePlans.test.js +75 -0
  145. package/src/services/tests/PlanService/updatePlan.test.js +111 -0
  146. package/src/services/tests/PlanService/updatePlanWithValidation.test.js +556 -0
  147. package/src/state/RootStateManager.js +37 -32
  148. package/src/state/rootEventBus.js +19 -0
  149. package/src/utils/CollabClient.js +99 -12
  150. package/src/utils/TokenManager.js +20 -3
  151. package/src/utils/changePreprocessor.js +239 -0
  152. package/src/utils/jsonDiff.js +40 -5
  153. package/src/utils/ordering.js +271 -0
  154. package/src/utils/services.js +306 -139
  155. package/src/utils/validation.js +0 -3
  156. package/dist/cjs/services/AIService.js +0 -155
  157. package/dist/cjs/services/BasedService.js +0 -1185
  158. package/dist/cjs/services/CoreService.js +0 -2295
  159. package/dist/cjs/services/SocketService.js +0 -309
  160. package/dist/cjs/services/SymstoryService.js +0 -571
  161. package/dist/cjs/utils/basedQuerys.js +0 -181
  162. package/dist/cjs/utils/symstoryClient.js +0 -259
  163. package/dist/esm/services/AIService.js +0 -185
  164. package/dist/esm/services/BasedService.js +0 -5262
  165. package/dist/esm/services/CoreService.js +0 -2827
  166. package/dist/esm/services/SocketService.js +0 -456
  167. package/dist/esm/services/SymstoryService.js +0 -7025
  168. package/dist/esm/utils/basedQuerys.js +0 -163
  169. package/dist/esm/utils/symstoryClient.js +0 -354
  170. package/dist/node/services/AIService.js +0 -136
  171. package/dist/node/services/BasedService.js +0 -1156
  172. package/dist/node/services/CoreService.js +0 -2266
  173. package/dist/node/services/SocketService.js +0 -280
  174. package/dist/node/services/SymstoryService.js +0 -542
  175. package/dist/node/utils/basedQuerys.js +0 -162
  176. package/dist/node/utils/symstoryClient.js +0 -230
  177. package/src/services/AIService.js +0 -150
  178. package/src/services/BasedService.js +0 -1302
  179. package/src/services/CoreService.js +0 -2548
  180. package/src/services/SocketService.js +0 -336
  181. package/src/services/SymstoryService.js +0 -649
  182. package/src/utils/basedQuerys.js +0 -164
  183. package/src/utils/symstoryClient.js +0 -252
@@ -1,4 +1,8 @@
1
- // ../../../node_modules/lib0/map.js
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
- // ../../../node_modules/lib0/set.js
37
+ // ../node_modules/lib0/set.js
34
38
  var create2 = () => /* @__PURE__ */ new Set();
35
39
 
36
- // ../../../node_modules/lib0/array.js
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
- // ../../../node_modules/lib0/observable.js
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
- // ../../../node_modules/lib0/math.js
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
- // ../../../node_modules/lib0/binary.js
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
- // ../../../node_modules/lib0/number.js
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
- // ../../../node_modules/lib0/string.js
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, (match) => `${separator}${toLowerCase(match)}`));
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
- // ../../../node_modules/lib0/encoding.js
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
- // ../../../node_modules/lib0/error.js
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
- // ../../../node_modules/lib0/webcrypto.js
544
+ // ../node_modules/lib0/webcrypto.js
517
545
  var subtle = crypto.subtle;
518
546
  var getRandomValues = crypto.getRandomValues.bind(crypto);
519
547
 
520
- // ../../../node_modules/lib0/random.js
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
- // ../../../node_modules/lib0/time.js
557
+ // ../node_modules/lib0/time.js
530
558
  var getUnixTime = Date.now;
531
559
 
532
- // ../../../node_modules/lib0/promise.js
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
- // ../../../node_modules/lib0/conditions.js
567
+ // ../node_modules/lib0/conditions.js
540
568
  var undefinedToNull = (v) => v === void 0 ? null : v;
541
569
 
542
- // ../../../node_modules/lib0/storage.js
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
- // ../../../node_modules/lib0/object.js
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 every = (obj, f) => {
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) && every(a, (val, key) => (val !== void 0 || hasProperty(b, key)) && b[key] === val);
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
- // ../../../node_modules/lib0/function.js
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
- // ../../../node_modules/lib0/environment.js
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
- // ../../../node_modules/lib0/pair.js
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
- // ../../../node_modules/lib0/dom.js
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
- // ../../../node_modules/lib0/symbol.js
1573
+ // ../node_modules/lib0/symbol.js
707
1574
  var create6 = Symbol;
708
1575
 
709
- // ../../../node_modules/lib0/logging.common.js
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
- // ../../../node_modules/lib0/logging.js
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
- // ../../../node_modules/lib0/iterator.js
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
- // ../../../node_modules/yjs/dist/yjs.mjs
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
- callEventHandlerListeners(type._dEH, events, transaction);
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, newValue: 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
- if (typeof value === "string") {
4658
- el.setAttribute(key, value);
4659
- }
5528
+ el.setAttribute(
5529
+ key,
5530
+ /** @type {any} */
5531
+ value
5532
+ );
4660
5533
  });
4661
- el.insert(0, this.toArray().map((item) => item instanceof AbstractType ? item.clone() : item));
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
- try {
6029
- return JSON.stringify(a) === JSON.stringify(b);
6030
- } catch (err) {
6031
- console.warn("deepEqual error", err);
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");