mol_wire_lib 1.0.1503 → 1.0.1504

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/node.mjs CHANGED
@@ -152,6 +152,16 @@ var $;
152
152
  $.$mol_wire_affected = [];
153
153
  })($ || ($ = {}));
154
154
 
155
+ ;
156
+ "use strict";
157
+ var $;
158
+ (function ($) {
159
+ function $mol_fail_hidden(error) {
160
+ throw error;
161
+ }
162
+ $.$mol_fail_hidden = $mol_fail_hidden;
163
+ })($ || ($ = {}));
164
+
155
165
  ;
156
166
  "use strict";
157
167
  var $;
@@ -163,6 +173,17 @@ var $;
163
173
  $.$mol_dev_format_register = $mol_dev_format_register;
164
174
  $.$mol_dev_format_head = Symbol('$mol_dev_format_head');
165
175
  $.$mol_dev_format_body = Symbol('$mol_dev_format_body');
176
+ function $mol_dev_format_button(label, click) {
177
+ return $mol_dev_format_auto({
178
+ [$.$mol_dev_format_head]() {
179
+ return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
180
+ },
181
+ [$.$mol_dev_format_body]() {
182
+ Promise.resolve().then(click);
183
+ return $mol_dev_format_span({});
184
+ }
185
+ });
186
+ }
166
187
  $mol_dev_format_register({
167
188
  header: (val, config = false) => {
168
189
  if (config)
@@ -180,13 +201,41 @@ var $;
180
201
  if (typeof val === 'function') {
181
202
  return $mol_dev_format_native(val);
182
203
  }
204
+ if (Error.isError(val)) {
205
+ return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
206
+ }
207
+ if (val instanceof Promise) {
208
+ return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
209
+ }
183
210
  if (Symbol.toStringTag in val) {
184
211
  return $mol_dev_format_native(val);
185
212
  }
186
213
  return null;
187
214
  },
188
- hasBody: val => val[$.$mol_dev_format_body],
189
- body: val => val[$.$mol_dev_format_body](),
215
+ hasBody: (val, config = false) => {
216
+ if (config)
217
+ return false;
218
+ if (!val)
219
+ return false;
220
+ if (val[$.$mol_dev_format_body])
221
+ return true;
222
+ return false;
223
+ },
224
+ body: (val, config = false) => {
225
+ if (config)
226
+ return null;
227
+ if (!val)
228
+ return null;
229
+ if ($.$mol_dev_format_body in val) {
230
+ try {
231
+ return val[$.$mol_dev_format_body]();
232
+ }
233
+ catch (error) {
234
+ return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
235
+ }
236
+ }
237
+ return null;
238
+ },
190
239
  });
191
240
  function $mol_dev_format_native(obj) {
192
241
  if (typeof obj === 'undefined')
@@ -252,6 +301,69 @@ var $;
252
301
  $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
253
302
  'margin-left': '13px'
254
303
  });
304
+ class Stack extends Array {
305
+ toString() {
306
+ return this.join('\n');
307
+ }
308
+ }
309
+ class Call extends Object {
310
+ type;
311
+ function;
312
+ method;
313
+ eval;
314
+ source;
315
+ offset;
316
+ pos;
317
+ object;
318
+ flags;
319
+ [Symbol.toStringTag];
320
+ constructor(call) {
321
+ super();
322
+ this.type = call.getTypeName() ?? '';
323
+ this.function = call.getFunctionName() ?? '';
324
+ this.method = call.getMethodName() ?? '';
325
+ if (this.method === this.function)
326
+ this.method = '';
327
+ this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
328
+ this.eval = call.getEvalOrigin() ?? '';
329
+ this.source = call.getScriptNameOrSourceURL() ?? '';
330
+ this.object = call.getThis();
331
+ this.offset = call.getPosition();
332
+ const flags = [];
333
+ if (call.isAsync())
334
+ flags.push('async');
335
+ if (call.isConstructor())
336
+ flags.push('constructor');
337
+ if (call.isEval())
338
+ flags.push('eval');
339
+ if (call.isNative())
340
+ flags.push('native');
341
+ if (call.isPromiseAll())
342
+ flags.push('PromiseAll');
343
+ if (call.isToplevel())
344
+ flags.push('top');
345
+ this.flags = flags;
346
+ const type = this.type ? this.type + '.' : '';
347
+ const func = this.function || '<anon>';
348
+ const method = this.method ? ' [' + this.method + '] ' : '';
349
+ this[Symbol.toStringTag] = `${type}${func}${method}`;
350
+ }
351
+ [Symbol.toPrimitive]() {
352
+ return this.toString();
353
+ }
354
+ toString() {
355
+ const object = this.object || '';
356
+ const label = this[Symbol.toStringTag];
357
+ const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
358
+ return `\tat ${object}${label} (${source})`;
359
+ }
360
+ [$.$mol_dev_format_head]() {
361
+ return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
362
+ $mol_dev_format_native(this.object),
363
+ ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
364
+ }
365
+ }
366
+ Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
255
367
  })($ || ($ = {}));
256
368
 
257
369
  ;
@@ -493,16 +605,6 @@ var $;
493
605
  $.$mol_owning_catch = $mol_owning_catch;
494
606
  })($ || ($ = {}));
495
607
 
496
- ;
497
- "use strict";
498
- var $;
499
- (function ($) {
500
- function $mol_fail_hidden(error) {
501
- throw error;
502
- }
503
- $.$mol_fail_hidden = $mol_fail_hidden;
504
- })($ || ($ = {}));
505
-
506
608
  ;
507
609
  "use strict";
508
610
 
@@ -908,7 +1010,7 @@ var $;
908
1010
  if (left instanceof RegExp)
909
1011
  return left.source === right.source && left.flags === right.flags;
910
1012
  if (left instanceof Error)
911
- return left.message === right.message && left.stack === right.stack;
1013
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
912
1014
  let left_cache = $.$mol_compare_deep_cache.get(left);
913
1015
  if (left_cache) {
914
1016
  const right_cache = left_cache.get(right);
@@ -1753,6 +1855,21 @@ var $;
1753
1855
  $.$mol_fail_catch = $mol_fail_catch;
1754
1856
  })($ || ($ = {}));
1755
1857
 
1858
+ ;
1859
+ "use strict";
1860
+ var $;
1861
+ (function ($) {
1862
+ function $mol_try(handler) {
1863
+ try {
1864
+ return handler();
1865
+ }
1866
+ catch (error) {
1867
+ return error;
1868
+ }
1869
+ }
1870
+ $.$mol_try = $mol_try;
1871
+ })($ || ($ = {}));
1872
+
1756
1873
  ;
1757
1874
  "use strict";
1758
1875
  var $;
@@ -1762,7 +1879,7 @@ var $;
1762
1879
  return false;
1763
1880
  if (!$mol_fail_catch(error))
1764
1881
  return false;
1765
- console.error(error);
1882
+ $mol_try(() => { $mol_fail_hidden(error); });
1766
1883
  return true;
1767
1884
  }
1768
1885
  $.$mol_fail_log = $mol_fail_log;
package/node.test.js CHANGED
@@ -143,6 +143,16 @@ var $;
143
143
  $.$mol_wire_affected = [];
144
144
  })($ || ($ = {}));
145
145
 
146
+ ;
147
+ "use strict";
148
+ var $;
149
+ (function ($) {
150
+ function $mol_fail_hidden(error) {
151
+ throw error;
152
+ }
153
+ $.$mol_fail_hidden = $mol_fail_hidden;
154
+ })($ || ($ = {}));
155
+
146
156
  ;
147
157
  "use strict";
148
158
  var $;
@@ -154,6 +164,17 @@ var $;
154
164
  $.$mol_dev_format_register = $mol_dev_format_register;
155
165
  $.$mol_dev_format_head = Symbol('$mol_dev_format_head');
156
166
  $.$mol_dev_format_body = Symbol('$mol_dev_format_body');
167
+ function $mol_dev_format_button(label, click) {
168
+ return $mol_dev_format_auto({
169
+ [$.$mol_dev_format_head]() {
170
+ return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
171
+ },
172
+ [$.$mol_dev_format_body]() {
173
+ Promise.resolve().then(click);
174
+ return $mol_dev_format_span({});
175
+ }
176
+ });
177
+ }
157
178
  $mol_dev_format_register({
158
179
  header: (val, config = false) => {
159
180
  if (config)
@@ -171,13 +192,41 @@ var $;
171
192
  if (typeof val === 'function') {
172
193
  return $mol_dev_format_native(val);
173
194
  }
195
+ if (Error.isError(val)) {
196
+ return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
197
+ }
198
+ if (val instanceof Promise) {
199
+ return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
200
+ }
174
201
  if (Symbol.toStringTag in val) {
175
202
  return $mol_dev_format_native(val);
176
203
  }
177
204
  return null;
178
205
  },
179
- hasBody: val => val[$.$mol_dev_format_body],
180
- body: val => val[$.$mol_dev_format_body](),
206
+ hasBody: (val, config = false) => {
207
+ if (config)
208
+ return false;
209
+ if (!val)
210
+ return false;
211
+ if (val[$.$mol_dev_format_body])
212
+ return true;
213
+ return false;
214
+ },
215
+ body: (val, config = false) => {
216
+ if (config)
217
+ return null;
218
+ if (!val)
219
+ return null;
220
+ if ($.$mol_dev_format_body in val) {
221
+ try {
222
+ return val[$.$mol_dev_format_body]();
223
+ }
224
+ catch (error) {
225
+ return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
226
+ }
227
+ }
228
+ return null;
229
+ },
181
230
  });
182
231
  function $mol_dev_format_native(obj) {
183
232
  if (typeof obj === 'undefined')
@@ -243,6 +292,69 @@ var $;
243
292
  $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
244
293
  'margin-left': '13px'
245
294
  });
295
+ class Stack extends Array {
296
+ toString() {
297
+ return this.join('\n');
298
+ }
299
+ }
300
+ class Call extends Object {
301
+ type;
302
+ function;
303
+ method;
304
+ eval;
305
+ source;
306
+ offset;
307
+ pos;
308
+ object;
309
+ flags;
310
+ [Symbol.toStringTag];
311
+ constructor(call) {
312
+ super();
313
+ this.type = call.getTypeName() ?? '';
314
+ this.function = call.getFunctionName() ?? '';
315
+ this.method = call.getMethodName() ?? '';
316
+ if (this.method === this.function)
317
+ this.method = '';
318
+ this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
319
+ this.eval = call.getEvalOrigin() ?? '';
320
+ this.source = call.getScriptNameOrSourceURL() ?? '';
321
+ this.object = call.getThis();
322
+ this.offset = call.getPosition();
323
+ const flags = [];
324
+ if (call.isAsync())
325
+ flags.push('async');
326
+ if (call.isConstructor())
327
+ flags.push('constructor');
328
+ if (call.isEval())
329
+ flags.push('eval');
330
+ if (call.isNative())
331
+ flags.push('native');
332
+ if (call.isPromiseAll())
333
+ flags.push('PromiseAll');
334
+ if (call.isToplevel())
335
+ flags.push('top');
336
+ this.flags = flags;
337
+ const type = this.type ? this.type + '.' : '';
338
+ const func = this.function || '<anon>';
339
+ const method = this.method ? ' [' + this.method + '] ' : '';
340
+ this[Symbol.toStringTag] = `${type}${func}${method}`;
341
+ }
342
+ [Symbol.toPrimitive]() {
343
+ return this.toString();
344
+ }
345
+ toString() {
346
+ const object = this.object || '';
347
+ const label = this[Symbol.toStringTag];
348
+ const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
349
+ return `\tat ${object}${label} (${source})`;
350
+ }
351
+ [$.$mol_dev_format_head]() {
352
+ return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
353
+ $mol_dev_format_native(this.object),
354
+ ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
355
+ }
356
+ }
357
+ Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
246
358
  })($ || ($ = {}));
247
359
 
248
360
  ;
@@ -484,16 +596,6 @@ var $;
484
596
  $.$mol_owning_catch = $mol_owning_catch;
485
597
  })($ || ($ = {}));
486
598
 
487
- ;
488
- "use strict";
489
- var $;
490
- (function ($) {
491
- function $mol_fail_hidden(error) {
492
- throw error;
493
- }
494
- $.$mol_fail_hidden = $mol_fail_hidden;
495
- })($ || ($ = {}));
496
-
497
599
  ;
498
600
  "use strict";
499
601
 
@@ -899,7 +1001,7 @@ var $;
899
1001
  if (left instanceof RegExp)
900
1002
  return left.source === right.source && left.flags === right.flags;
901
1003
  if (left instanceof Error)
902
- return left.message === right.message && left.stack === right.stack;
1004
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
903
1005
  let left_cache = $.$mol_compare_deep_cache.get(left);
904
1006
  if (left_cache) {
905
1007
  const right_cache = left_cache.get(right);
@@ -1744,6 +1846,21 @@ var $;
1744
1846
  $.$mol_fail_catch = $mol_fail_catch;
1745
1847
  })($ || ($ = {}));
1746
1848
 
1849
+ ;
1850
+ "use strict";
1851
+ var $;
1852
+ (function ($) {
1853
+ function $mol_try(handler) {
1854
+ try {
1855
+ return handler();
1856
+ }
1857
+ catch (error) {
1858
+ return error;
1859
+ }
1860
+ }
1861
+ $.$mol_try = $mol_try;
1862
+ })($ || ($ = {}));
1863
+
1747
1864
  ;
1748
1865
  "use strict";
1749
1866
  var $;
@@ -1753,7 +1870,7 @@ var $;
1753
1870
  return false;
1754
1871
  if (!$mol_fail_catch(error))
1755
1872
  return false;
1756
- console.error(error);
1873
+ $mol_try(() => { $mol_fail_hidden(error); });
1757
1874
  return true;
1758
1875
  }
1759
1876
  $.$mol_fail_log = $mol_fail_log;
@@ -2725,6 +2842,17 @@ var $;
2725
2842
  ;
2726
2843
  "use strict";
2727
2844
 
2845
+ ;
2846
+ "use strict";
2847
+ var $;
2848
+ (function ($) {
2849
+ $mol_test({
2850
+ 'return result without errors'() {
2851
+ $mol_assert_equal($mol_try(() => false), false);
2852
+ },
2853
+ });
2854
+ })($ || ($ = {}));
2855
+
2728
2856
  ;
2729
2857
  "use strict";
2730
2858
  var $;
@@ -2825,7 +2953,7 @@ var $;
2825
2953
  get: () => stack_get() + '\n' + [
2826
2954
  this.cause ?? 'no cause',
2827
2955
  ...this.errors.flatMap(e => [
2828
- e.stack,
2956
+ String(e.stack),
2829
2957
  ...e instanceof $mol_error_mix || !e.cause ? [] : [e.cause]
2830
2958
  ])
2831
2959
  ].map(frame_normalize).join('\n')
@@ -3935,7 +4063,7 @@ var $;
3935
4063
  catch (error) {
3936
4064
  $.$mol_fail = fail;
3937
4065
  if (typeof ErrorRight === 'string') {
3938
- $mol_assert_equal(error.message, ErrorRight);
4066
+ $mol_assert_equal(error.message ?? error, ErrorRight);
3939
4067
  }
3940
4068
  else {
3941
4069
  $mol_assert_equal(error instanceof ErrorRight, true);
@@ -3959,7 +4087,7 @@ var $;
3959
4087
  continue;
3960
4088
  if (!$mol_compare_deep(args[i], args[j]))
3961
4089
  continue;
3962
- $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`));
4090
+ return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
3963
4091
  }
3964
4092
  }
3965
4093
  }
@@ -3970,29 +4098,10 @@ var $;
3970
4098
  continue;
3971
4099
  if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
3972
4100
  continue;
3973
- return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`));
4101
+ return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
3974
4102
  }
3975
4103
  }
3976
4104
  $.$mol_assert_equal = $mol_assert_equal;
3977
- const print = (val) => {
3978
- if (!val)
3979
- return val;
3980
- if (typeof val === 'bigint')
3981
- return String(val) + 'n';
3982
- if (typeof val === 'symbol')
3983
- return `Symbol(${val.description})`;
3984
- if (typeof val !== 'object')
3985
- return val;
3986
- if ('outerHTML' in val)
3987
- return val.outerHTML;
3988
- try {
3989
- return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
3990
- }
3991
- catch (error) {
3992
- console.error(error);
3993
- return val;
3994
- }
3995
- };
3996
4105
  })($ || ($ = {}));
3997
4106
 
3998
4107
  ;