lib0 0.2.59 → 0.2.61

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 (78) hide show
  1. package/README.md +3 -0
  2. package/array.d.ts +2 -0
  3. package/array.d.ts.map +1 -1
  4. package/array.js +36 -0
  5. package/array.test.d.ts +1 -0
  6. package/array.test.d.ts.map +1 -1
  7. package/broadcastchannel.d.ts.map +1 -1
  8. package/broadcastchannel.js +2 -1
  9. package/dist/{array-acefe0f2.cjs → array-42d0736b.cjs} +42 -2
  10. package/dist/array-42d0736b.cjs.map +1 -0
  11. package/dist/array.cjs +4 -1
  12. package/dist/array.cjs.map +1 -1
  13. package/dist/array.d.ts +2 -0
  14. package/dist/array.d.ts.map +1 -1
  15. package/dist/array.test.d.ts +1 -0
  16. package/dist/array.test.d.ts.map +1 -1
  17. package/dist/{broadcastchannel-02adb071.cjs → broadcastchannel-8d21c21c.cjs} +4 -3
  18. package/dist/broadcastchannel-8d21c21c.cjs.map +1 -0
  19. package/dist/broadcastchannel.cjs +6 -5
  20. package/dist/broadcastchannel.cjs.map +1 -1
  21. package/dist/broadcastchannel.d.ts.map +1 -1
  22. package/dist/{buffer-5ebf4ddb.cjs → buffer-22bb9fae.cjs} +2 -2
  23. package/dist/{buffer-5ebf4ddb.cjs.map → buffer-22bb9fae.cjs.map} +1 -1
  24. package/dist/buffer.cjs +5 -4
  25. package/dist/buffer.cjs.map +1 -1
  26. package/dist/cache.cjs +3 -2
  27. package/dist/cache.cjs.map +1 -1
  28. package/dist/component.cjs +4 -3
  29. package/dist/component.cjs.map +1 -1
  30. package/dist/decoding.cjs +5 -4
  31. package/dist/decoding.cjs.map +1 -1
  32. package/dist/{diff-85090e89.cjs → diff-ee50c530.cjs} +2 -2
  33. package/dist/{diff-85090e89.cjs.map → diff-ee50c530.cjs.map} +1 -1
  34. package/dist/diff.cjs +4 -3
  35. package/dist/diff.cjs.map +1 -1
  36. package/dist/encoding.cjs +5 -4
  37. package/dist/encoding.cjs.map +1 -1
  38. package/dist/{environment-9ecc1776.cjs → environment-f6386808.cjs} +2 -2
  39. package/dist/{environment-9ecc1776.cjs.map → environment-f6386808.cjs.map} +1 -1
  40. package/dist/environment.cjs +4 -3
  41. package/dist/environment.cjs.map +1 -1
  42. package/dist/{function-0da7a13f.cjs → function-40d38a5b.cjs} +2 -2
  43. package/dist/{function-0da7a13f.cjs.map → function-40d38a5b.cjs.map} +1 -1
  44. package/dist/function.cjs +3 -2
  45. package/dist/function.cjs.map +1 -1
  46. package/dist/index.cjs +9 -9
  47. package/dist/list.cjs +3 -2
  48. package/dist/list.cjs.map +1 -1
  49. package/dist/{logging-00ff6aaf.cjs → logging-ba24d049.cjs} +5 -4
  50. package/dist/logging-ba24d049.cjs.map +1 -0
  51. package/dist/logging.cjs +5 -4
  52. package/dist/logging.cjs.map +1 -1
  53. package/dist/logging.d.ts.map +1 -1
  54. package/dist/observable.cjs +1 -1
  55. package/dist/{prng-7e1c5b0a.cjs → prng-4493ba85.cjs} +2 -2
  56. package/dist/{prng-7e1c5b0a.cjs.map → prng-4493ba85.cjs.map} +1 -1
  57. package/dist/prng.cjs +6 -5
  58. package/dist/prng.cjs.map +1 -1
  59. package/dist/testing.cjs +25 -15
  60. package/dist/testing.cjs.map +1 -1
  61. package/dist/testing.d.ts +1 -0
  62. package/dist/testing.d.ts.map +1 -1
  63. package/dist/testing.test.d.ts +2 -2
  64. package/dist/testing.test.d.ts.map +1 -1
  65. package/dist/{websocket-57086be8.cjs → websocket-a48155c2.cjs} +1 -1
  66. package/dist/{websocket-57086be8.cjs.map → websocket-a48155c2.cjs.map} +1 -1
  67. package/dist/websocket.cjs +2 -2
  68. package/logging.d.ts.map +1 -1
  69. package/logging.js +2 -1
  70. package/package.json +46 -1
  71. package/testing.d.ts +1 -0
  72. package/testing.d.ts.map +1 -1
  73. package/testing.js +16 -8
  74. package/testing.test.d.ts +2 -2
  75. package/testing.test.d.ts.map +1 -1
  76. package/dist/array-acefe0f2.cjs.map +0 -1
  77. package/dist/broadcastchannel-02adb071.cjs.map +0 -1
  78. package/dist/logging-00ff6aaf.cjs.map +0 -1
package/logging.js CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  import * as env from './environment.js'
8
+ import * as set from './set.js'
8
9
  import * as symbol from './symbol.js'
9
10
  import * as pair from './pair.js'
10
11
  import * as dom from './dom.js'
@@ -284,7 +285,7 @@ export const printDom = (createNode) =>
284
285
  export const printCanvas = (canvas, height) =>
285
286
  printImg(canvas.toDataURL(), height)
286
287
 
287
- export const vconsoles = new Set()
288
+ export const vconsoles = set.create()
288
289
 
289
290
  /* istanbul ignore next */
290
291
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lib0",
3
- "version": "0.2.59",
3
+ "version": "0.2.61",
4
4
  "description": "",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -14,6 +14,7 @@
14
14
  "exports": {
15
15
  "./package.json": "./package.json",
16
16
  ".": {
17
+ "types": "./index.d.ts",
17
18
  "module": "./index.js",
18
19
  "import": "./index.js",
19
20
  "require": "./dist/index.cjs"
@@ -21,6 +22,7 @@
21
22
  "./array.js": "./array.js",
22
23
  "./dist/array.cjs": "./dist/array.cjs",
23
24
  "./array": {
25
+ "types": "./array.d.ts",
24
26
  "module": "./array.js",
25
27
  "import": "./array.js",
26
28
  "require": "./dist/array.cjs"
@@ -28,6 +30,7 @@
28
30
  "./binary.js": "./binary.js",
29
31
  "./dist/binary.cjs": "./dist/binary.cjs",
30
32
  "./binary": {
33
+ "types": "./binary.d.ts",
31
34
  "module": "./binary.js",
32
35
  "import": "./binary.js",
33
36
  "require": "./dist/binary.cjs"
@@ -35,6 +38,7 @@
35
38
  "./broadcastchannel.js": "./broadcastchannel.js",
36
39
  "./dist/broadcastchannel.cjs": "./dist/broadcastchannel.cjs",
37
40
  "./broadcastchannel": {
41
+ "types": "./broadcastchannel.d.ts",
38
42
  "module": "./broadcastchannel.js",
39
43
  "import": "./broadcastchannel.js",
40
44
  "require": "./dist/broadcastchannel.cjs"
@@ -42,6 +46,7 @@
42
46
  "./buffer.js": "./buffer.js",
43
47
  "./dist/buffer.cjs": "./dist/buffer.cjs",
44
48
  "./buffer": {
49
+ "types": "./buffer.d.ts",
45
50
  "module": "./buffer.js",
46
51
  "import": "./buffer.js",
47
52
  "require": "./dist/buffer.cjs"
@@ -49,6 +54,7 @@
49
54
  "./cache.js": "./cache.js",
50
55
  "./dist/cache.cjs": "./dist/cache.cjs",
51
56
  "./cache": {
57
+ "types": "./cache.d.ts",
52
58
  "module": "./cache.js",
53
59
  "import": "./cache.js",
54
60
  "require": "./dist/cache.cjs"
@@ -56,6 +62,7 @@
56
62
  "./component.js": "./component.js",
57
63
  "./dist/component.cjs": "./dist/component.cjs",
58
64
  "./component": {
65
+ "types": "./component.d.ts",
59
66
  "module": "./component.js",
60
67
  "import": "./component.js",
61
68
  "require": "./dist/component.cjs"
@@ -63,6 +70,7 @@
63
70
  "./conditions.js": "./conditions.js",
64
71
  "./dist/conditions.cjs": "./dist/conditions.cjs",
65
72
  "./conditions": {
73
+ "types": "./condititons.d.ts",
66
74
  "module": "./condititons.js",
67
75
  "import": "./condititons.js",
68
76
  "require": "./dist/conditions.cjs"
@@ -70,6 +78,7 @@
70
78
  "./decoding.js": "./decoding.js",
71
79
  "./dist/decoding.cjs": "./dist/decoding.cjs",
72
80
  "./decoding": {
81
+ "types": "./decoding.d.ts",
73
82
  "module": "./decoding.js",
74
83
  "import": "./decoding.js",
75
84
  "require": "./dist/decoding.cjs"
@@ -77,6 +86,7 @@
77
86
  "./diff.js": "./diff.js",
78
87
  "./dist/diff.cjs": "./dist/diff.cjs",
79
88
  "./diff": {
89
+ "types": "./diff.d.ts",
80
90
  "module": "./diff.js",
81
91
  "import": "./diff.js",
82
92
  "require": "./dist/diff.cjs"
@@ -84,6 +94,7 @@
84
94
  "./dom.js": "./dom.js",
85
95
  "./dist/dom.cjs": "./dist/dom.cjs",
86
96
  "./dom": {
97
+ "types": "./dom.d.ts",
87
98
  "module": "./dom.js",
88
99
  "import": "./dom.js",
89
100
  "require": "./dist/dom.cjs"
@@ -91,6 +102,7 @@
91
102
  "./encoding.js": "./encoding.js",
92
103
  "./dist/encoding.cjs": "./dist/encoding.cjs",
93
104
  "./encoding": {
105
+ "types": "./encoding.d.ts",
94
106
  "module": "./encoding.js",
95
107
  "import": "./encoding.js",
96
108
  "require": "./dist/encoding.cjs"
@@ -98,6 +110,7 @@
98
110
  "./environment.js": "./environment.js",
99
111
  "./dist/environment.cjs": "./dist/environment.cjs",
100
112
  "./environment": {
113
+ "types": "./environment.d.ts",
101
114
  "module": "./environment.js",
102
115
  "import": "./environment.js",
103
116
  "require": "./dist/environment.cjs"
@@ -105,6 +118,7 @@
105
118
  "./error.js": "./error.js",
106
119
  "./dist/error.cjs": "./dist/error.cjs",
107
120
  "./error": {
121
+ "types": "./error.d.ts",
108
122
  "module": "./error.js",
109
123
  "import": "./error.js",
110
124
  "require": "./dist/error.cjs"
@@ -112,6 +126,7 @@
112
126
  "./eventloop.js": "./eventloop.js",
113
127
  "./dist/eventloop.cjs": "./dist/eventloop.cjs",
114
128
  "./eventloop": {
129
+ "types": "./eventloop.d.ts",
115
130
  "module": "./eventloop.js",
116
131
  "import": "./eventloop.js",
117
132
  "require": "./dist/eventloop.cjs"
@@ -119,6 +134,7 @@
119
134
  "./function.js": "./function.js",
120
135
  "./dist/function.cjs": "./dist/function.cjs",
121
136
  "./function": {
137
+ "types": "./function.d.ts",
122
138
  "module": "./function.js",
123
139
  "import": "./function.js",
124
140
  "require": "./dist/function.cjs"
@@ -126,6 +142,7 @@
126
142
  "./indexeddb.js": "./indexeddb.js",
127
143
  "./dist/indexeddb.cjs": "./dist/indexeddb.cjs",
128
144
  "./indexeddb": {
145
+ "types": "./indexeddb.d.ts",
129
146
  "module": "./indexeddb.js",
130
147
  "import": "./indexeddb.js",
131
148
  "require": "./dist/indexeddb.cjs"
@@ -133,6 +150,7 @@
133
150
  "./isomorphic.js": "./isomorphic.js",
134
151
  "./dist/isomorphic.cjs": "./dist/isomorphic.cjs",
135
152
  "./isomorphic": {
153
+ "types": "./isomorphic.d.ts",
136
154
  "module": "./isomorphic.js",
137
155
  "import": "./isomorphic.js",
138
156
  "require": "./dist/isomorphic.cjs"
@@ -140,6 +158,7 @@
140
158
  "./iterator.js": "./iterator.js",
141
159
  "./dist/iterator.cjs": "./dist/iterator.cjs",
142
160
  "./iterator": {
161
+ "types": "./iterator.d.ts",
143
162
  "module": "./iterator.js",
144
163
  "import": "./iterator.js",
145
164
  "require": "./dist/iterator.cjs"
@@ -147,6 +166,7 @@
147
166
  "./json.js": "./json.js",
148
167
  "./dist/json.cjs": "./dist/json.cjs",
149
168
  "./json": {
169
+ "types": "./json.d.ts",
150
170
  "module": "./json.js",
151
171
  "import": "./json.js",
152
172
  "require": "./dist/json.cjs"
@@ -154,6 +174,7 @@
154
174
  "./list.js": "./list.js",
155
175
  "./dist/list.cjs": "./dist/list.cjs",
156
176
  "./list": {
177
+ "types": "./list.d.ts",
157
178
  "module": "./list.js",
158
179
  "import": "./list.js",
159
180
  "require": "./dist/list.cjs"
@@ -161,6 +182,7 @@
161
182
  "./logging.js": "./logging.js",
162
183
  "./dist/logging.cjs": "./dist/logging.cjs",
163
184
  "./logging": {
185
+ "types": "./logging.d.ts",
164
186
  "module": "./logging.js",
165
187
  "import": "./logging.js",
166
188
  "require": "./dist/logging.cjs"
@@ -168,6 +190,7 @@
168
190
  "./map.js": "./map.js",
169
191
  "./dist/map.cjs": "./dist/map.cjs",
170
192
  "./map": {
193
+ "types": "./map.d.ts",
171
194
  "module": "./map.js",
172
195
  "import": "./map.js",
173
196
  "require": "./dist/map.cjs"
@@ -175,6 +198,7 @@
175
198
  "./math.js": "./math.js",
176
199
  "./dist/math.cjs": "./dist/math.cjs",
177
200
  "./math": {
201
+ "types": "./math.d.ts",
178
202
  "module": "./math.js",
179
203
  "import": "./math.js",
180
204
  "require": "./dist/math.cjs"
@@ -182,6 +206,7 @@
182
206
  "./metric.js": "./metric.js",
183
207
  "./dist/metric.cjs": "./dist/metric.cjs",
184
208
  "./metric": {
209
+ "types": "./metric.d.ts",
185
210
  "module": "./metric.js",
186
211
  "import": "./metric.js",
187
212
  "require": "./dist/metric.cjs"
@@ -189,6 +214,7 @@
189
214
  "./mutex.js": "./mutex.js",
190
215
  "./dist/mutex.cjs": "./dist/mutex.cjs",
191
216
  "./mutex": {
217
+ "types": "./mutex.d.ts",
192
218
  "module": "./mutex.js",
193
219
  "import": "./mutex.js",
194
220
  "require": "./dist/mutex.cjs"
@@ -196,6 +222,7 @@
196
222
  "./number.js": "./number.js",
197
223
  "./dist/number.cjs": "./dist/number.cjs",
198
224
  "./number": {
225
+ "types": "./number.d.ts",
199
226
  "module": "./number.js",
200
227
  "import": "./number.js",
201
228
  "require": "./dist/number.cjs"
@@ -203,6 +230,7 @@
203
230
  "./object.js": "./object.js",
204
231
  "./dist/object.cjs": "./dist/object.cjs",
205
232
  "./object": {
233
+ "types": "./object.d.ts",
206
234
  "module": "./object.js",
207
235
  "import": "./object.js",
208
236
  "require": "./dist/object.cjs"
@@ -210,6 +238,7 @@
210
238
  "./observable.js": "./observable.js",
211
239
  "./dist/observable.cjs": "./dist/observable.cjs",
212
240
  "./observable": {
241
+ "types": "./observable.d.ts",
213
242
  "module": "./observable.js",
214
243
  "import": "./observable.js",
215
244
  "require": "./dist/observable.cjs"
@@ -217,6 +246,7 @@
217
246
  "./pair.js": "./pair.js",
218
247
  "./dist/pair.cjs": "./dist/pair.cjs",
219
248
  "./pair": {
249
+ "types": "./pair.d.ts",
220
250
  "module": "./pair.js",
221
251
  "import": "./pair.js",
222
252
  "require": "./dist/pair.cjs"
@@ -224,6 +254,7 @@
224
254
  "./prng.js": "./prng.js",
225
255
  "./dist/prng.cjs": "./dist/prng.cjs",
226
256
  "./prng": {
257
+ "types": "./prng.d.ts",
227
258
  "module": "./prng.js",
228
259
  "import": "./prng.js",
229
260
  "require": "./dist/prng.cjs"
@@ -231,6 +262,7 @@
231
262
  "./promise.js": "./promise.js",
232
263
  "./dist/promise.cjs": "./dist/promise.cjs",
233
264
  "./promise": {
265
+ "types": "./promise.d.ts",
234
266
  "module": "./promise.js",
235
267
  "import": "./promise.js",
236
268
  "require": "./dist/promise.cjs"
@@ -238,6 +270,7 @@
238
270
  "./queue.js": "./queue.js",
239
271
  "./dist/queue.cjs": "./dist/queue.cjs",
240
272
  "./queue": {
273
+ "types": "./queue.d.ts",
241
274
  "module": "./queue.js",
242
275
  "import": "./queue.js",
243
276
  "require": "./dist/queue.cjs"
@@ -245,6 +278,7 @@
245
278
  "./random.js": "./random.js",
246
279
  "./dist/random.cjs": "./dist/random.cjs",
247
280
  "./random": {
281
+ "types": "./random.d.ts",
248
282
  "module": "./random.js",
249
283
  "import": "./random.js",
250
284
  "require": "./dist/random.cjs"
@@ -252,6 +286,7 @@
252
286
  "./set.js": "./set.js",
253
287
  "./dist/set.cjs": "./dist/set.cjs",
254
288
  "./set": {
289
+ "types": "./set.d.ts",
255
290
  "module": "./set.js",
256
291
  "import": "./set.js",
257
292
  "require": "./dist/set.cjs"
@@ -259,6 +294,7 @@
259
294
  "./sort.js": "./sort.js",
260
295
  "./dist/sort.cjs": "./dist/sort.cjs",
261
296
  "./sort": {
297
+ "types": "./sort.d.ts",
262
298
  "module": "./sort.js",
263
299
  "import": "./sort.js",
264
300
  "require": "./dist/sort.cjs"
@@ -266,6 +302,7 @@
266
302
  "./statistics.js": "./statistics.js",
267
303
  "./dist/statistics.cjs": "./dist/statistics.cjs",
268
304
  "./statistics": {
305
+ "types": "./statistics.d.ts",
269
306
  "module": "./statistics.js",
270
307
  "import": "./statistics.js",
271
308
  "require": "./dist/statistics.cjs"
@@ -273,6 +310,7 @@
273
310
  "./storage.js": "./storage.js",
274
311
  "./dist/storage.cjs": "./dist/storage.cjs",
275
312
  "./storage": {
313
+ "types": "./storage.d.ts",
276
314
  "module": "./storage.js",
277
315
  "import": "./storage.js",
278
316
  "require": "./dist/storage.cjs"
@@ -280,6 +318,7 @@
280
318
  "./string.js": "./string.js",
281
319
  "./dist/string.cjs": "./dist/string.cjs",
282
320
  "./string": {
321
+ "types": "./string.d.ts",
283
322
  "module": "./string.js",
284
323
  "import": "./string.js",
285
324
  "require": "./dist/string.cjs"
@@ -287,6 +326,7 @@
287
326
  "./symbol.js": "./symbol.js",
288
327
  "./dist/symbol.cjs": "./dist/symbol.cjs",
289
328
  "./symbol": {
329
+ "types": "./symbol.d.ts",
290
330
  "module": "./symbol.js",
291
331
  "import": "./symbol.js",
292
332
  "require": "./dist/symbol.cjs"
@@ -294,6 +334,7 @@
294
334
  "./testing.js": "./testing.js",
295
335
  "./dist/testing.cjs": "./dist/testing.cjs",
296
336
  "./testing": {
337
+ "types": "./testing.d.ts",
297
338
  "module": "./testing.js",
298
339
  "import": "./testing.js",
299
340
  "require": "./dist/testing.cjs"
@@ -301,6 +342,7 @@
301
342
  "./time.js": "./time.js",
302
343
  "./dist/time.cjs": "./dist/time.cjs",
303
344
  "./time": {
345
+ "types": "./time.d.ts",
304
346
  "module": "./time.js",
305
347
  "import": "./time.js",
306
348
  "require": "./dist/time.cjs"
@@ -308,6 +350,7 @@
308
350
  "./tree.js": "./tree.js",
309
351
  "./dist/tree.cjs": "./dist/tree.cjs",
310
352
  "./tree": {
353
+ "types": "./tree.d.ts",
311
354
  "module": "./tree.js",
312
355
  "import": "./tree.js",
313
356
  "require": "./dist/tree.cjs"
@@ -315,6 +358,7 @@
315
358
  "./url.js": "./url.js",
316
359
  "./dist/url.cjs": "./dist/url.cjs",
317
360
  "./url": {
361
+ "types": "./url.d.ts",
318
362
  "module": "./url.js",
319
363
  "import": "./url.js",
320
364
  "require": "./dist/url.cjs"
@@ -322,6 +366,7 @@
322
366
  "./websocket.js": "./websocket.js",
323
367
  "./dist/websocket.cjs": "./dist/websocket.cjs",
324
368
  "./websocket": {
369
+ "types": "./websocket.d.ts",
325
370
  "module": "./websocket.js",
326
371
  "import": "./websocket.js",
327
372
  "require": "./dist/websocket.cjs"
package/testing.d.ts CHANGED
@@ -44,6 +44,7 @@ export function compareStrings(a: string, b: string, m?: string | undefined): vo
44
44
  export function compareObjects<K, V>(a: any, b: any, m?: string | undefined): void;
45
45
  export function compare<T>(a: T, b: T, message?: string | null | undefined, customCompare?: ((arg0: any, arg1: T, arg2: T, arg3: string, arg4: any) => boolean) | undefined): boolean;
46
46
  export function assert(condition: boolean, message?: string | null | undefined): true;
47
+ export function promiseRejected(f: () => Promise<any>): Promise<void>;
47
48
  export function fails(f: () => void): void;
48
49
  export function runTests(tests: {
49
50
  [x: string]: {
package/testing.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["testing.js"],"names":[],"mappings":";AA+DA,gCAAiD;AAGjD,oCAAmG;AAEnG;IACE;;;OAGG;IACH,wBAHW,MAAM,YACN,MAAM,EAahB;IAVC;;OAEG;IACH,YAFU,MAAM,CAEY;IAC5B;;OAEG;IACH,UAFU,MAAM,CAEQ;IACxB,qBAAiB;IACjB,wBAAiB;IAGnB,kBAGC;IAED;;OAEG;IAEH,mBAOC;IAED;;;;OAIG;IACH,sBAMC;CACF;AAED,oCAA6E;AAgBtE,gCANI,MAAM,QACN,MAAM,YACG,QAAQ,KAAE,IAAI,GAAC,QAAQ,GAAG,CAAC,KACpC,MAAM,iBACN,MAAM,oBAyEhB;AAcM,sCAHI,MAAM,SACN,MAAM,QAEwF;AAYlG,2BAFI,MAAM,QAE6B;AAE9C,wDAAoC;AAEpC,8EAA0C;AAoBnC,mCAHI,MAAM,YACG,IAAI,KAAE,IAAI,QAS7B;AAoBM,wCAHI,MAAM,YACG,IAAI,KAAE,QAAQ,GAAG,CAAC,iBASrC;AAoBM,qCAJI,MAAM,WACK,IAAI,GACd,MAAM,CAYjB;AAoBM,0CAJI,MAAM,WACK,QAAQ,GAAG,CAAC,GACtB,QAAQ,MAAM,CAAC,CAY1B;AASM,4EAFK,OAAO,CAYlB;AAQM,kCALI,MAAM,KACN,MAAM,gCAUhB;AASM,mFAA2F;AAsH3F,oGAFa,GAAG,0BAAK,MAAM,QAAC,GAAG,KAAE,OAAO,wBAE8E;AAQtH,kCAJI,OAAO,6CAIiH;AAM5H,+BAHe,IAAI,QAezB;AAKM;QAFW,MAAM;YAAS,MAAM,UAAW,QAAQ,KAAE,IAAI,GAAC,QAAQ,GAAG,CAAC;;qBA4C5E;AAQM,6BAHI,MAAM,SAMhB;AAQM,4BAHI,OAAO,QAOjB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["testing.js"],"names":[],"mappings":";AA+DA,gCAAiD;AAGjD,oCAAmG;AAEnG;IACE;;;OAGG;IACH,wBAHW,MAAM,YACN,MAAM,EAahB;IAVC;;OAEG;IACH,YAFU,MAAM,CAEY;IAC5B;;OAEG;IACH,UAFU,MAAM,CAEQ;IACxB,qBAAiB;IACjB,wBAAiB;IAGnB,kBAGC;IAED;;OAEG;IAEH,mBAOC;IAED;;;;OAIG;IACH,sBAMC;CACF;AAED,oCAA6E;AAgBtE,gCANI,MAAM,QACN,MAAM,YACG,QAAQ,KAAE,IAAI,GAAC,QAAQ,GAAG,CAAC,KACpC,MAAM,iBACN,MAAM,oBAyEhB;AAcM,sCAHI,MAAM,SACN,MAAM,QAEwF;AAYlG,2BAFI,MAAM,QAE6B;AAE9C,wDAAoC;AAEpC,8EAA0C;AAoBnC,mCAHI,MAAM,YACG,IAAI,KAAE,IAAI,QAS7B;AAoBM,wCAHI,MAAM,YACG,IAAI,KAAE,QAAQ,GAAG,CAAC,iBASrC;AAoBM,qCAJI,MAAM,WACK,IAAI,GACd,MAAM,CAYjB;AAoBM,0CAJI,MAAM,WACK,QAAQ,GAAG,CAAC,GACtB,QAAQ,MAAM,CAAC,CAY1B;AASM,4EAFK,OAAO,CAYlB;AAQM,kCALI,MAAM,KACN,MAAM,gCAUhB;AASM,mFAA2F;AAsH3F,oGAFa,GAAG,0BAAK,MAAM,QAAC,GAAG,KAAE,OAAO,wBAE8E;AAQtH,kCAJI,OAAO,6CAIiH;AAK5H,yCAFe,QAAQ,GAAG,CAAC,iBASjC;AAMM,+BAHe,IAAI,QAWzB;AAKM;QAFW,MAAM;YAAS,MAAM,UAAW,QAAQ,KAAE,IAAI,GAAC,QAAQ,GAAG,CAAC;;qBA4C5E;AAQM,6BAHI,MAAM,SAMhB;AAQM,4BAHI,OAAO,QAOjB"}
package/testing.js CHANGED
@@ -392,13 +392,13 @@ export const compareStrings = (a, b, m = 'Strings match') => {
392
392
  export const compareObjects = (a, b, m = 'Objects match') => { object.equalFlat(a, b) || fail(m) }
393
393
 
394
394
  /**
395
- * @param {any} constructor
395
+ * @param {any} _constructor
396
396
  * @param {any} a
397
397
  * @param {any} b
398
398
  * @param {string} path
399
399
  * @throws {TestError}
400
400
  */
401
- const compareValues = (constructor, a, b, path) => {
401
+ const compareValues = (_constructor, a, b, path) => {
402
402
  if (a !== b) {
403
403
  fail(`Values ${json.stringify(a)} and ${json.stringify(b)} don't match (${path})`)
404
404
  }
@@ -517,22 +517,30 @@ export const compare = (a, b, message = null, customCompare = compareValues) =>
517
517
  */
518
518
  export const assert = (condition, message = null) => condition || fail(`Assertion failed${message !== null ? `: ${message}` : ''}`)
519
519
 
520
+ /**
521
+ * @param {function():Promise<any>} f
522
+ */
523
+ export const promiseRejected = async f => {
524
+ try {
525
+ await f()
526
+ } catch (err) {
527
+ return
528
+ }
529
+ fail('Expected promise to fail')
530
+ }
531
+
520
532
  /**
521
533
  * @param {function():void} f
522
534
  * @throws {TestError}
523
535
  */
524
536
  export const fails = f => {
525
- let err = null
526
537
  try {
527
538
  f()
528
539
  } catch (_err) {
529
- err = _err
530
540
  log.print(log.GREEN, '⇖ This Error was expected')
541
+ return
531
542
  }
532
- /* istanbul ignore if */
533
- if (err === null) {
534
- fail('Expected this to fail')
535
- }
543
+ fail('Expected this to fail')
536
544
  }
537
545
 
538
546
  /**
package/testing.test.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export function nottestingNotTested(): void;
2
- export function testComparing(tc: t.TestCase): void;
3
- export function testFailing(): void;
2
+ export function testComparing(_tc: t.TestCase): void;
3
+ export function testFailing(): Promise<void>;
4
4
  export function testSkipping(): void;
5
5
  export function testAsync(): Promise<void>;
6
6
  export function testRepeatRepetition(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.test.d.ts","sourceRoot":"","sources":["testing.test.js"],"names":[],"mappings":"AAOO,4CAEN;AAKM,kCAFI,EAAE,QAAQ,QA+FpB;AAEM,oCAIN;AAEM,qCAMN;AAEM,2CAGN;AAEM,6CAON"}
1
+ {"version":3,"file":"testing.test.d.ts","sourceRoot":"","sources":["testing.test.js"],"names":[],"mappings":"AAQO,4CAEN;AAKM,mCAFI,EAAE,QAAQ,QA+FpB;AAEM,6CAWN;AAEM,qCAMN;AAEM,2CAIN;AAEM,6CAON"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-acefe0f2.cjs","sources":["../array.js"],"sourcesContent":["/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array<L>} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array<C>}\n */\nexport const create = () => /** @type {Array<C>} */ ([])\n\n/**\n * @template D\n * @param {Array<D>} a\n * @return {Array<D>}\n */\nexport const copy = a => /** @type {Array<D>} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array<M>} dest\n * @param {Array<M>} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike<T>|Iterable<T>} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array<ITEM>} arr\n * @param {function(ITEM, number, Array<ITEM>):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array<S>} arr\n * @param {function(S, number, Array<S>):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array<ELEM>} a\n * @param {Array<ELEM>} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array<Array<ELEM>>} arr\n * @return {Array<ELEM>}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAC;AAC9C;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,+BAA+B,EAAE,EAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,EAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK;AACvC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC;AACrB,GAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,KAAK,CAAC,KAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,EAAC;AACxG;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAC;AAC3E;AACY,MAAC,OAAO,GAAG,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"broadcastchannel-02adb071.cjs","sources":["../broadcastchannel.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set<function(any, any):any>} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map<string, Channel>}\n */\nconst channels = new Map()\n\n/* istanbul ignore next */\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:ArrayBuffer}):void}\n */\n this.onmessage = null\n storage.onChange(e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') }))\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n}\n\n/* istanbul ignore next */\n// Use BroadcastChannel or Polyfill\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = new Set()\n const bc = new BC(room)\n /* istanbul ignore next */\n /**\n * @param {{data:ArrayBuffer}} e\n */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => {\n getChannel(room).subs.add(f)\n return f\n}\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => {\n const channel = getChannel(room)\n const unsubscribed = channel.subs.delete(f)\n /* istanbul ignore else */\n if (unsubscribed && channel.subs.size === 0) {\n channel.bc.close()\n channels.delete(room)\n }\n return unsubscribed\n}\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n"],"names":["storage.onChange","buffer.fromBase64","storage.varStorage","buffer.toBase64","buffer.createUint8ArrayFromArrayBuffer","map.setIfUndefined"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logging-00ff6aaf.cjs","sources":["../logging.js"],"sourcesContent":["/**\n * Isomorphic logging module with support for colors!\n *\n * @module logging\n */\n\nimport * as env from './environment.js'\nimport * as symbol from './symbol.js'\nimport * as pair from './pair.js'\nimport * as dom from './dom.js'\nimport * as json from './json.js'\nimport * as map from './map.js'\nimport * as eventloop from './eventloop.js'\nimport * as math from './math.js'\nimport * as time from './time.js'\nimport * as func from './function.js'\n\nexport const BOLD = symbol.create()\nexport const UNBOLD = symbol.create()\nexport const BLUE = symbol.create()\nexport const GREY = symbol.create()\nexport const GREEN = symbol.create()\nexport const RED = symbol.create()\nexport const PURPLE = symbol.create()\nexport const ORANGE = symbol.create()\nexport const UNCOLOR = symbol.create()\n\n/**\n * @type {Object<Symbol,pair.Pair<string,string>>}\n */\nconst _browserStyleMap = {\n [BOLD]: pair.create('font-weight', 'bold'),\n [UNBOLD]: pair.create('font-weight', 'normal'),\n [BLUE]: pair.create('color', 'blue'),\n [GREEN]: pair.create('color', 'green'),\n [GREY]: pair.create('color', 'grey'),\n [RED]: pair.create('color', 'red'),\n [PURPLE]: pair.create('color', 'purple'),\n [ORANGE]: pair.create('color', 'orange'), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n [UNCOLOR]: pair.create('color', 'black')\n}\n\nconst _nodeStyleMap = {\n [BOLD]: '\\u001b[1m',\n [UNBOLD]: '\\u001b[2m',\n [BLUE]: '\\x1b[34m',\n [GREEN]: '\\x1b[32m',\n [GREY]: '\\u001b[37m',\n [RED]: '\\x1b[31m',\n [PURPLE]: '\\x1b[35m',\n [ORANGE]: '\\x1b[38;5;208m',\n [UNCOLOR]: '\\x1b[0m'\n}\n\n/* istanbul ignore next */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n * @return {Array<string|object|number>}\n */\nconst computeBrowserLoggingArgs = (args) => {\n const strBuilder = []\n const styles = []\n const currentStyle = map.create()\n /**\n * @type {Array<string|Object|number>}\n */\n let logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg.constructor === String || arg.constructor === Number) {\n const style = dom.mapToStyleString(currentStyle)\n if (i > 0 || style.length > 0) {\n strBuilder.push('%c' + arg)\n styles.push(style)\n } else {\n strBuilder.push(arg)\n }\n } else {\n break\n }\n }\n }\n\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs = styles\n logArgs.unshift(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n\n/* istanbul ignore next */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n * @return {Array<string|object|number>}\n */\nconst computeNoColorLoggingArgs = args => {\n const strBuilder = []\n const logArgs = []\n\n // try with formatting until we find something unsupported\n let i = 0\n\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _nodeStyleMap[arg]\n if (style === undefined) {\n if (arg.constructor === String || arg.constructor === Number) {\n strBuilder.push(arg)\n } else {\n break\n }\n }\n }\n if (i > 0) {\n logArgs.push(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n /* istanbul ignore else */\n if (!(arg instanceof Symbol)) {\n if (arg.constructor === Object) {\n logArgs.push(JSON.stringify(arg))\n } else {\n logArgs.push(arg)\n }\n }\n }\n return logArgs\n}\n\n/* istanbul ignore next */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n * @return {Array<string|object|number>}\n */\nconst computeNodeLoggingArgs = (args) => {\n const strBuilder = []\n const logArgs = []\n\n // try with formatting until we find something unsupported\n let i = 0\n\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _nodeStyleMap[arg]\n if (style !== undefined) {\n strBuilder.push(style)\n } else {\n if (arg.constructor === String || arg.constructor === Number) {\n strBuilder.push(arg)\n } else {\n break\n }\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n strBuilder.push('\\x1b[0m')\n logArgs.push(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n /* istanbul ignore else */\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n\n/* istanbul ignore next */\nconst computeLoggingArgs = env.supportsColor\n ? (env.isNode ? computeNodeLoggingArgs : computeBrowserLoggingArgs)\n : computeNoColorLoggingArgs\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const print = (...args) => {\n console.log(...computeLoggingArgs(args))\n /* istanbul ignore next */\n vconsoles.forEach((vc) => vc.print(args))\n}\n\n/* istanbul ignore next */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const warn = (...args) => {\n console.warn(...computeLoggingArgs(args))\n args.unshift(ORANGE)\n vconsoles.forEach((vc) => vc.print(args))\n}\n\n/* istanbul ignore next */\n/**\n * @param {Error} err\n */\nexport const printError = (err) => {\n console.error(err)\n vconsoles.forEach((vc) => vc.printError(err))\n}\n\n/* istanbul ignore next */\n/**\n * @param {string} url image location\n * @param {number} height height of the image in pixel\n */\nexport const printImg = (url, height) => {\n if (env.isBrowser) {\n console.log(\n '%c ',\n `font-size: ${height}px; background-size: contain; background-repeat: no-repeat; background-image: url(${url})`\n )\n // console.log('%c ', `font-size: ${height}x; background: url(${url}) no-repeat;`)\n }\n vconsoles.forEach((vc) => vc.printImg(url, height))\n}\n\n/* istanbul ignore next */\n/**\n * @param {string} base64\n * @param {number} height\n */\nexport const printImgBase64 = (base64, height) =>\n printImg(`data:image/gif;base64,${base64}`, height)\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const group = (...args) => {\n console.group(...computeLoggingArgs(args))\n /* istanbul ignore next */\n vconsoles.forEach((vc) => vc.group(args))\n}\n\n/**\n * @param {Array<string|Symbol|Object|number>} args\n */\nexport const groupCollapsed = (...args) => {\n console.groupCollapsed(...computeLoggingArgs(args))\n /* istanbul ignore next */\n vconsoles.forEach((vc) => vc.groupCollapsed(args))\n}\n\nexport const groupEnd = () => {\n console.groupEnd()\n /* istanbul ignore next */\n vconsoles.forEach((vc) => vc.groupEnd())\n}\n\n/* istanbul ignore next */\n/**\n * @param {function():Node} createNode\n */\nexport const printDom = (createNode) =>\n vconsoles.forEach((vc) => vc.printDom(createNode()))\n\n/* istanbul ignore next */\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {number} height\n */\nexport const printCanvas = (canvas, height) =>\n printImg(canvas.toDataURL(), height)\n\nexport const vconsoles = new Set()\n\n/* istanbul ignore next */\n/**\n * @param {Array<string|Symbol|Object|number>} args\n * @return {Array<Element>}\n */\nconst _computeLineSpans = (args) => {\n const spans = []\n const currentStyle = new Map()\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg.constructor === String || arg.constructor === Number) {\n // @ts-ignore\n const span = dom.element('span', [\n pair.create('style', dom.mapToStyleString(currentStyle))\n ], [dom.text(arg.toString())])\n if (span.innerHTML === '') {\n span.innerHTML = '&nbsp;'\n }\n spans.push(span)\n } else {\n break\n }\n }\n }\n // append the rest\n for (; i < args.length; i++) {\n let content = args[i]\n if (!(content instanceof Symbol)) {\n if (content.constructor !== String && content.constructor !== Number) {\n content = ' ' + json.stringify(content) + ' '\n }\n spans.push(\n dom.element('span', [], [dom.text(/** @type {string} */ (content))])\n )\n }\n }\n return spans\n}\n\nconst lineStyle =\n 'font-family:monospace;border-bottom:1px solid #e2e2e2;padding:2px;'\n\n/* istanbul ignore next */\nexport class VConsole {\n /**\n * @param {Element} dom\n */\n constructor (dom) {\n this.dom = dom\n /**\n * @type {Element}\n */\n this.ccontainer = this.dom\n this.depth = 0\n vconsoles.add(this)\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n * @param {boolean} collapsed\n */\n group (args, collapsed = false) {\n eventloop.enqueue(() => {\n const triangleDown = dom.element('span', [\n pair.create('hidden', collapsed),\n pair.create('style', 'color:grey;font-size:120%;')\n ], [dom.text('▼')])\n const triangleRight = dom.element('span', [\n pair.create('hidden', !collapsed),\n pair.create('style', 'color:grey;font-size:125%;')\n ], [dom.text('▶')])\n const content = dom.element(\n 'div',\n [pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )],\n [triangleDown, triangleRight, dom.text(' ')].concat(\n _computeLineSpans(args)\n )\n )\n const nextContainer = dom.element('div', [\n pair.create('hidden', collapsed)\n ])\n const nextLine = dom.element('div', [], [content, nextContainer])\n dom.append(this.ccontainer, [nextLine])\n this.ccontainer = nextContainer\n this.depth++\n // when header is clicked, collapse/uncollapse container\n dom.addEventListener(content, 'click', (_event) => {\n nextContainer.toggleAttribute('hidden')\n triangleDown.toggleAttribute('hidden')\n triangleRight.toggleAttribute('hidden')\n })\n })\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n */\n groupCollapsed (args) {\n this.group(args, true)\n }\n\n groupEnd () {\n eventloop.enqueue(() => {\n if (this.depth > 0) {\n this.depth--\n // @ts-ignore\n this.ccontainer = this.ccontainer.parentElement.parentElement\n }\n })\n }\n\n /**\n * @param {Array<string|Symbol|Object|number>} args\n */\n print (args) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('div', [\n pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )\n ], _computeLineSpans(args))\n ])\n })\n }\n\n /**\n * @param {Error} err\n */\n printError (err) {\n this.print([RED, BOLD, err.toString()])\n }\n\n /**\n * @param {string} url\n * @param {number} height\n */\n printImg (url, height) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('img', [\n pair.create('src', url),\n pair.create('height', `${math.round(height * 1.5)}px`)\n ])\n ])\n })\n }\n\n /**\n * @param {Node} node\n */\n printDom (node) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [node])\n })\n }\n\n destroy () {\n eventloop.enqueue(() => {\n vconsoles.delete(this)\n })\n }\n}\n\n/* istanbul ignore next */\n/**\n * @param {Element} dom\n */\nexport const createVConsole = (dom) => new VConsole(dom)\n\nconst loggingColors = [GREEN, PURPLE, ORANGE, BLUE]\nlet nextColor = 0\nlet lastLoggingTime = time.getUnixTime()\n\n/**\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (moduleName) => {\n const color = loggingColors[nextColor]\n const debugRegexVar = env.getVariable('log')\n const doLogging = debugRegexVar !== null &&\n (debugRegexVar === '*' || debugRegexVar === 'true' ||\n new RegExp(debugRegexVar, 'gi').test(moduleName))\n nextColor = (nextColor + 1) % loggingColors.length\n moduleName += ': '\n\n return !doLogging ? func.nop : (...args) => {\n const timeNow = time.getUnixTime()\n const timeDiff = timeNow - lastLoggingTime\n lastLoggingTime = timeNow\n print(\n color,\n moduleName,\n UNCOLOR,\n ...args.map((arg) =>\n (typeof arg === 'string' || typeof arg === 'symbol')\n ? arg\n : JSON.stringify(arg)\n ),\n color,\n ' +' + timeDiff + 'ms'\n )\n }\n}\n"],"names":["symbol.create","pair.create","map.create","dom.mapToStyleString","env.supportsColor","env.isNode","env.isBrowser","dom.element","dom.text","json.stringify","eventloop.enqueue","dom.append","dom.addEventListener","math.round","time.getUnixTime","env.getVariable","func.nop"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAYA;AACY,MAAC,IAAI,GAAGA,aAAa,GAAE;AACvB,MAAC,MAAM,GAAGA,aAAa,GAAE;AACzB,MAAC,IAAI,GAAGA,aAAa,GAAE;AACvB,MAAC,IAAI,GAAGA,aAAa,GAAE;AACvB,MAAC,KAAK,GAAGA,aAAa,GAAE;AACxB,MAAC,GAAG,GAAGA,aAAa,GAAE;AACtB,MAAC,MAAM,GAAGA,aAAa,GAAE;AACzB,MAAC,MAAM,GAAGA,aAAa,GAAE;AACzB,MAAC,OAAO,GAAGA,aAAa,GAAE;AACtC;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG;AACzB,EAAE,CAAC,IAAI,GAAGC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC;AAC5C,EAAE,CAAC,MAAM,GAAGA,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC;AAChD,EAAE,CAAC,IAAI,GAAGA,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;AACtC,EAAE,CAAC,KAAK,GAAGA,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC;AACxC,EAAE,CAAC,IAAI,GAAGA,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;AACtC,EAAE,CAAC,GAAG,GAAGA,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AACpC,EAAE,CAAC,MAAM,GAAGA,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC1C,EAAE,CAAC,MAAM,GAAGA,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC1C,EAAE,CAAC,OAAO,GAAGA,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC;AAC1C,EAAC;AACD;AACA,MAAM,aAAa,GAAG;AACtB,EAAE,CAAC,IAAI,GAAG,WAAW;AACrB,EAAE,CAAC,MAAM,GAAG,WAAW;AACvB,EAAE,CAAC,IAAI,GAAG,UAAU;AACpB,EAAE,CAAC,KAAK,GAAG,UAAU;AACrB,EAAE,CAAC,IAAI,GAAG,YAAY;AACtB,EAAE,CAAC,GAAG,GAAG,UAAU;AACnB,EAAE,CAAC,MAAM,GAAG,UAAU;AACtB,EAAE,CAAC,MAAM,GAAG,gBAAgB;AAC5B,EAAE,CAAC,OAAO,GAAG,SAAS;AACtB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yBAAyB,GAAG,CAAC,IAAI,KAAK;AAC5C,EAAE,MAAM,UAAU,GAAG,GAAE;AACvB,EAAE,MAAM,MAAM,GAAG,GAAE;AACnB,EAAE,MAAM,YAAY,GAAGC,UAAU,GAAE;AACnC;AACA;AACA;AACA,EAAE,IAAI,OAAO,GAAG,GAAE;AAClB;AACA,EAAE,IAAI,CAAC,GAAG,EAAC;AACX;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB;AACA,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAC;AACvC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAC;AAC/C,KAAK,MAAM;AACX,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;AACpE,QAAQ,MAAM,KAAK,GAAGC,oBAAoB,CAAC,YAAY,EAAC;AACxD,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,UAAU,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAC;AACrC,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,EAAC;AAC5B,SAAS,MAAM;AACf,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC;AAC9B,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,KAAK;AACb,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb;AACA,IAAI,OAAO,GAAG,OAAM;AACpB,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;AACxC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB,IAAI,IAAI,EAAE,GAAG,YAAY,MAAM,CAAC,EAAE;AAClC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,OAAO;AAChB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yBAAyB,GAAG,IAAI,IAAI;AAC1C,EAAE,MAAM,UAAU,GAAG,GAAE;AACvB,EAAE,MAAM,OAAO,GAAG,GAAE;AACpB;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAC;AACX;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB;AACA,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAC;AACpC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;AACpE,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC;AAC5B,OAAO,MAAM;AACb,QAAQ,KAAK;AACb,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;AACrC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB;AACA,IAAI,IAAI,EAAE,GAAG,YAAY,MAAM,CAAC,EAAE;AAClC,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;AACtC,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC;AACzC,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC;AACzB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,OAAO;AAChB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB,GAAG,CAAC,IAAI,KAAK;AACzC,EAAE,MAAM,UAAU,GAAG,GAAE;AACvB,EAAE,MAAM,OAAO,GAAG,GAAE;AACpB;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAC;AACX;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB;AACA,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAC;AACpC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAC;AAC5B,KAAK,MAAM;AACX,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;AACpE,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,EAAC;AAC5B,OAAO,MAAM;AACb,QAAQ,KAAK;AACb,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb;AACA,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAC;AAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;AACrC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB;AACA,IAAI,IAAI,EAAE,GAAG,YAAY,MAAM,CAAC,EAAE;AAClC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,OAAO;AAChB,EAAC;AACD;AACA;AACA,MAAM,kBAAkB,GAAGC,yBAAiB;AAC5C,KAAKC,kBAAU,GAAG,sBAAsB,GAAG,yBAAyB;AACpE,IAAI,0BAAyB;AAC7B;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK;AAClC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAC;AAC1C;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;AAC3C,EAAC;AACD;AACA;AACA;AACA;AACA;AACY,MAAC,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK;AACjC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAC;AAC3C,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAC;AACtB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;AAC3C,EAAC;AACD;AACA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG,CAAC,GAAG,KAAK;AACnC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAC;AACpB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC;AAC/C,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;AACzC,EAAE,IAAIC,qBAAa,EAAE;AACrB,IAAI,OAAO,CAAC,GAAG;AACf,MAAM,0BAA0B;AAChC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,kFAAkF,EAAE,GAAG,CAAC,CAAC,CAAC;AACrH,MAAK;AACL;AACA,GAAG;AACH,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAC;AACrD,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM;AAC7C,EAAE,QAAQ,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAC;AACrD;AACA;AACA;AACA;AACY,MAAC,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK;AAClC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAC;AAC5C;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;AAC3C,EAAC;AACD;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,GAAG,IAAI,KAAK;AAC3C,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAC;AACrD;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC;AACpD,EAAC;AACD;AACY,MAAC,QAAQ,GAAG,MAAM;AAC9B,EAAE,OAAO,CAAC,QAAQ,GAAE;AACpB;AACA,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAC;AAC1C,EAAC;AACD;AACA;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,CAAC,UAAU;AACnC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM;AAC1C,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAC;AACtC;AACY,MAAC,SAAS,GAAG,IAAI,GAAG,GAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,CAAC,IAAI,KAAK;AACpC,EAAE,MAAM,KAAK,GAAG,GAAE;AAClB,EAAE,MAAM,YAAY,GAAG,IAAI,GAAG,GAAE;AAChC;AACA,EAAE,IAAI,CAAC,GAAG,EAAC;AACX,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAC;AACvB;AACA,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAC;AACvC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAC;AAC/C,KAAK,MAAM;AACX,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;AACpE;AACA,QAAQ,MAAM,IAAI,GAAGC,WAAW,CAAC,MAAM,EAAE;AACzC,UAAUN,WAAW,CAAC,OAAO,EAAEE,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAClE,SAAS,EAAE,CAACK,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAC;AACtC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;AACnC,UAAU,IAAI,CAAC,SAAS,GAAG,SAAQ;AACnC,SAAS;AACT,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC;AACxB,OAAO,MAAM;AACb,QAAQ,KAAK;AACb,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,EAAC;AACzB,IAAI,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,EAAE;AACtC,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;AAC5E,QAAQ,OAAO,GAAG,GAAG,GAAGC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAG;AACrD,OAAO;AACP,MAAM,KAAK,CAAC,IAAI;AAChB,QAAQF,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,CAACC,QAAQ,wBAAwB,OAAO,EAAE,CAAC,CAAC;AAC5E,QAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK;AACd,EAAC;AACD;AACA,MAAM,SAAS;AACf,EAAE,qEAAoE;AACtE;AACA;AACO,MAAM,QAAQ,CAAC;AACtB;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE;AACpB,IAAI,IAAI,CAAC,GAAG,GAAG,IAAG;AAClB;AACA;AACA;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAG;AAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAC;AAClB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,EAAC;AACvB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE;AAClC,IAAIE,iBAAiB,CAAC,MAAM;AAC5B,MAAM,MAAM,YAAY,GAAGH,WAAW,CAAC,MAAM,EAAE;AAC/C,QAAQN,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;AACxC,QAAQA,WAAW,CAAC,OAAO,EAAE,4BAA4B,CAAC;AAC1D,OAAO,EAAE,CAACO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC;AACzB,MAAM,MAAM,aAAa,GAAGD,WAAW,CAAC,MAAM,EAAE;AAChD,QAAQN,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;AACzC,QAAQA,WAAW,CAAC,OAAO,EAAE,4BAA4B,CAAC;AAC1D,OAAO,EAAE,CAACO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC;AACzB,MAAM,MAAM,OAAO,GAAGD,WAAW;AACjC,QAAQ,KAAK;AACb,QAAQ,CAACN,WAAW;AACpB,UAAU,OAAO;AACjB,UAAU,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;AAC1D,SAAS,CAAC;AACV,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAEO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC3D,UAAU,iBAAiB,CAAC,IAAI,CAAC;AACjC,SAAS;AACT,QAAO;AACP,MAAM,MAAM,aAAa,GAAGD,WAAW,CAAC,KAAK,EAAE;AAC/C,QAAQN,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;AACxC,OAAO,EAAC;AACR,MAAM,MAAM,QAAQ,GAAGM,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAC;AACvE,MAAMI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAC;AAC7C,MAAM,IAAI,CAAC,UAAU,GAAG,cAAa;AACrC,MAAM,IAAI,CAAC,KAAK,GAAE;AAClB;AACA,MAAMC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK;AACzD,QAAQ,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAC;AAC/C,QAAQ,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAC;AAC9C,QAAQ,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAC;AAC/C,OAAO,EAAC;AACR,KAAK,EAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE;AACxB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAC;AAC1B,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAIF,iBAAiB,CAAC,MAAM;AAC5B,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAE;AACpB;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAa;AACrE,OAAO;AACP,KAAK,EAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACf,IAAIA,iBAAiB,CAAC,MAAM;AAC5B,MAAMC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AAClC,QAAQJ,WAAW,CAAC,KAAK,EAAE;AAC3B,UAAUN,WAAW;AACrB,YAAY,OAAO;AACnB,YAAY,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;AAC5D,WAAW;AACX,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACnC,OAAO,EAAC;AACR,KAAK,EAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE;AACnB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAC;AAC3C,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE;AACzB,IAAIS,iBAAiB,CAAC,MAAM;AAC5B,MAAMC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AAClC,QAAQJ,WAAW,CAAC,KAAK,EAAE;AAC3B,UAAUN,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC;AACjC,UAAUA,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAEY,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAChE,SAAS,CAAC;AACV,OAAO,EAAC;AACR,KAAK,EAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;AAClB,IAAIH,iBAAiB,CAAC,MAAM;AAC5B,MAAMC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAC;AACzC,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAID,iBAAiB,CAAC,MAAM;AAC5B,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,EAAC;AAC5B,KAAK,EAAC;AACN,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAC;AACxD;AACA,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC;AACnD,IAAI,SAAS,GAAG,EAAC;AACjB,IAAI,eAAe,GAAGI,gBAAgB,GAAE;AACxC;AACA;AACA;AACA;AACA;AACY,MAAC,kBAAkB,GAAG,CAAC,UAAU,KAAK;AAClD,EAAE,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAC;AACxC,EAAE,MAAM,aAAa,GAAGC,uBAAe,CAAC,KAAK,EAAC;AAC9C,EAAE,MAAM,SAAS,GAAG,aAAa,KAAK,IAAI;AAC1C,KAAK,aAAa,KAAK,GAAG,IAAI,aAAa,KAAK,MAAM;AACtD,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC;AACvD,EAAE,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,aAAa,CAAC,OAAM;AACpD,EAAE,UAAU,IAAI,KAAI;AACpB;AACA,EAAE,OAAO,CAAC,SAAS,GAAGC,aAAQ,GAAG,CAAC,GAAG,IAAI,KAAK;AAC9C,IAAI,MAAM,OAAO,GAAGF,gBAAgB,GAAE;AACtC,IAAI,MAAM,QAAQ,GAAG,OAAO,GAAG,gBAAe;AAC9C,IAAI,eAAe,GAAG,QAAO;AAC7B,IAAI,KAAK;AACT,MAAM,KAAK;AACX,MAAM,UAAU;AAChB,MAAM,OAAO;AACb,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;AACtB,QAAQ,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ;AAC3D,YAAY,GAAG;AACf,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAC/B,OAAO;AACP,MAAM,KAAK;AACX,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI;AAC5B,MAAK;AACL,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}