mol_text_distance 0.0.1261 → 0.0.1263

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.test.js CHANGED
@@ -229,6 +229,32 @@ var $;
229
229
  $.$mol_fail_catch = $mol_fail_catch;
230
230
  })($ || ($ = {}));
231
231
 
232
+ ;
233
+ "use strict";
234
+ var $;
235
+ (function ($) {
236
+ function $mol_try(handler) {
237
+ try {
238
+ return handler();
239
+ }
240
+ catch (error) {
241
+ return error;
242
+ }
243
+ }
244
+ $.$mol_try = $mol_try;
245
+ })($ || ($ = {}));
246
+
247
+ ;
248
+ "use strict";
249
+ var $;
250
+ (function ($) {
251
+ $mol_test({
252
+ 'return result without errors'() {
253
+ $mol_assert_equal($mol_try(() => false), false);
254
+ },
255
+ });
256
+ })($ || ($ = {}));
257
+
232
258
  ;
233
259
  "use strict";
234
260
  var $;
@@ -238,7 +264,7 @@ var $;
238
264
  return false;
239
265
  if (!$mol_fail_catch(error))
240
266
  return false;
241
- console.error(error);
267
+ $mol_try(() => { $mol_fail_hidden(error); });
242
268
  return true;
243
269
  }
244
270
  $.$mol_fail_log = $mol_fail_log;
@@ -376,7 +402,7 @@ var $;
376
402
  get: () => stack_get() + '\n' + [
377
403
  this.cause ?? 'no cause',
378
404
  ...this.errors.flatMap(e => [
379
- e.stack,
405
+ String(e.stack),
380
406
  ...e instanceof $mol_error_mix || !e.cause ? [] : [e.cause]
381
407
  ])
382
408
  ].map(frame_normalize).join('\n')
@@ -745,6 +771,17 @@ var $;
745
771
  $.$mol_dev_format_register = $mol_dev_format_register;
746
772
  $.$mol_dev_format_head = Symbol('$mol_dev_format_head');
747
773
  $.$mol_dev_format_body = Symbol('$mol_dev_format_body');
774
+ function $mol_dev_format_button(label, click) {
775
+ return $mol_dev_format_auto({
776
+ [$.$mol_dev_format_head]() {
777
+ return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
778
+ },
779
+ [$.$mol_dev_format_body]() {
780
+ Promise.resolve().then(click);
781
+ return $mol_dev_format_span({});
782
+ }
783
+ });
784
+ }
748
785
  $mol_dev_format_register({
749
786
  header: (val, config = false) => {
750
787
  if (config)
@@ -762,13 +799,41 @@ var $;
762
799
  if (typeof val === 'function') {
763
800
  return $mol_dev_format_native(val);
764
801
  }
802
+ if (Error.isError(val)) {
803
+ return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
804
+ }
805
+ if (val instanceof Promise) {
806
+ return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
807
+ }
765
808
  if (Symbol.toStringTag in val) {
766
809
  return $mol_dev_format_native(val);
767
810
  }
768
811
  return null;
769
812
  },
770
- hasBody: val => val[$.$mol_dev_format_body],
771
- body: val => val[$.$mol_dev_format_body](),
813
+ hasBody: (val, config = false) => {
814
+ if (config)
815
+ return false;
816
+ if (!val)
817
+ return false;
818
+ if (val[$.$mol_dev_format_body])
819
+ return true;
820
+ return false;
821
+ },
822
+ body: (val, config = false) => {
823
+ if (config)
824
+ return null;
825
+ if (!val)
826
+ return null;
827
+ if ($.$mol_dev_format_body in val) {
828
+ try {
829
+ return val[$.$mol_dev_format_body]();
830
+ }
831
+ catch (error) {
832
+ return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
833
+ }
834
+ }
835
+ return null;
836
+ },
772
837
  });
773
838
  function $mol_dev_format_native(obj) {
774
839
  if (typeof obj === 'undefined')
@@ -834,6 +899,69 @@ var $;
834
899
  $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
835
900
  'margin-left': '13px'
836
901
  });
902
+ class Stack extends Array {
903
+ toString() {
904
+ return this.join('\n');
905
+ }
906
+ }
907
+ class Call extends Object {
908
+ type;
909
+ function;
910
+ method;
911
+ eval;
912
+ source;
913
+ offset;
914
+ pos;
915
+ object;
916
+ flags;
917
+ [Symbol.toStringTag];
918
+ constructor(call) {
919
+ super();
920
+ this.type = call.getTypeName() ?? '';
921
+ this.function = call.getFunctionName() ?? '';
922
+ this.method = call.getMethodName() ?? '';
923
+ if (this.method === this.function)
924
+ this.method = '';
925
+ this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
926
+ this.eval = call.getEvalOrigin() ?? '';
927
+ this.source = call.getScriptNameOrSourceURL() ?? '';
928
+ this.object = call.getThis();
929
+ this.offset = call.getPosition();
930
+ const flags = [];
931
+ if (call.isAsync())
932
+ flags.push('async');
933
+ if (call.isConstructor())
934
+ flags.push('constructor');
935
+ if (call.isEval())
936
+ flags.push('eval');
937
+ if (call.isNative())
938
+ flags.push('native');
939
+ if (call.isPromiseAll())
940
+ flags.push('PromiseAll');
941
+ if (call.isToplevel())
942
+ flags.push('top');
943
+ this.flags = flags;
944
+ const type = this.type ? this.type + '.' : '';
945
+ const func = this.function || '<anon>';
946
+ const method = this.method ? ' [' + this.method + '] ' : '';
947
+ this[Symbol.toStringTag] = `${type}${func}${method}`;
948
+ }
949
+ [Symbol.toPrimitive]() {
950
+ return this.toString();
951
+ }
952
+ toString() {
953
+ const object = this.object || '';
954
+ const label = this[Symbol.toStringTag];
955
+ const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
956
+ return `\tat ${object}${label} (${source})`;
957
+ }
958
+ [$.$mol_dev_format_head]() {
959
+ return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
960
+ $mol_dev_format_native(this.object),
961
+ ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
962
+ }
963
+ }
964
+ Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
837
965
  })($ || ($ = {}));
838
966
 
839
967
  ;
@@ -2798,7 +2926,7 @@ var $;
2798
2926
  if (left instanceof RegExp)
2799
2927
  return left.source === right.source && left.flags === right.flags;
2800
2928
  if (left instanceof Error)
2801
- return left.message === right.message && left.stack === right.stack;
2929
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
2802
2930
  let left_cache = $.$mol_compare_deep_cache.get(left);
2803
2931
  if (left_cache) {
2804
2932
  const right_cache = left_cache.get(right);
@@ -3060,7 +3188,7 @@ var $;
3060
3188
  catch (error) {
3061
3189
  $.$mol_fail = fail;
3062
3190
  if (typeof ErrorRight === 'string') {
3063
- $mol_assert_equal(error.message, ErrorRight);
3191
+ $mol_assert_equal(error.message ?? error, ErrorRight);
3064
3192
  }
3065
3193
  else {
3066
3194
  $mol_assert_equal(error instanceof ErrorRight, true);
@@ -3084,7 +3212,7 @@ var $;
3084
3212
  continue;
3085
3213
  if (!$mol_compare_deep(args[i], args[j]))
3086
3214
  continue;
3087
- $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`));
3215
+ return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
3088
3216
  }
3089
3217
  }
3090
3218
  }
@@ -3095,29 +3223,10 @@ var $;
3095
3223
  continue;
3096
3224
  if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
3097
3225
  continue;
3098
- return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`));
3226
+ return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
3099
3227
  }
3100
3228
  }
3101
3229
  $.$mol_assert_equal = $mol_assert_equal;
3102
- const print = (val) => {
3103
- if (!val)
3104
- return val;
3105
- if (typeof val === 'bigint')
3106
- return String(val) + 'n';
3107
- if (typeof val === 'symbol')
3108
- return `Symbol(${val.description})`;
3109
- if (typeof val !== 'object')
3110
- return val;
3111
- if ('outerHTML' in val)
3112
- return val.outerHTML;
3113
- try {
3114
- return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
3115
- }
3116
- catch (error) {
3117
- console.error(error);
3118
- return val;
3119
- }
3120
- };
3121
3230
  })($ || ($ = {}));
3122
3231
 
3123
3232
  ;