@zajno/common 2.8.4 → 2.8.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.
package/cjs/dates/tz.js CHANGED
@@ -38,7 +38,7 @@ var Timezones;
38
38
  if (sign === '+') {
39
39
  result *= -1;
40
40
  }
41
- return result;
41
+ return result || 0;
42
42
  }
43
43
  Timezones.getOffset = getOffset;
44
44
  /** Returns a new date with the specified timezone offset applied.
@@ -1 +1 @@
1
- {"version":3,"file":"tz.js","sourceRoot":"","sources":["../../../src/dates/tz.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAC7D,IAAiB,SAAS,CAyDzB;AAzDD,WAAiB,SAAS;IAET,iBAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC3D,uBAAa,GAAG,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAE5D,+CAA+C;IAC/C;;;;;;OAMG;IACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,IAAoB;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC3C,YAAY,EAAE,YAAY;YAC1B,QAAQ;SACX,CAAC;aACG,aAAa,CAAC,IAAI,CAAC;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;YACvC,EAAE,KAAK,CAAC;QAEZ,MAAM,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,eAAe,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;QACzC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IA7Be,mBAAS,YA6BxB,CAAA;IAED;;;;MAIE;IACF,SAAgB,eAAe,CAAC,IAAU,EAAE,EAAmB;QAC3D,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,QAAQ;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACnB,CAAC;IAPe,yBAAe,kBAO9B,CAAA;AACL,CAAC,EAzDgB,SAAS,yBAAT,SAAS,QAyDzB"}
1
+ {"version":3,"file":"tz.js","sourceRoot":"","sources":["../../../src/dates/tz.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAC7D,IAAiB,SAAS,CAyDzB;AAzDD,WAAiB,SAAS;IAET,iBAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC3D,uBAAa,GAAG,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAE5D,+CAA+C;IAC/C;;;;;;OAMG;IACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,IAAoB;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC3C,YAAY,EAAE,YAAY;YAC1B,QAAQ;SACX,CAAC;aACG,aAAa,CAAC,IAAI,CAAC;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;YACvC,EAAE,KAAK,CAAC;QAEZ,MAAM,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,eAAe,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;QACzC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,CAAC;IACvB,CAAC;IA7Be,mBAAS,YA6BxB,CAAA;IAED;;;;MAIE;IACF,SAAgB,eAAe,CAAC,IAAU,EAAE,EAAmB;QAC3D,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,QAAQ;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACnB,CAAC;IAPe,yBAAe,kBAO9B,CAAA;AACL,CAAC,EAzDgB,SAAS,yBAAT,SAAS,QAyDzB"}
@@ -4,67 +4,84 @@ exports.CompositeObjectMath = void 0;
4
4
  const helpers_js_1 = require("./helpers.js");
5
5
  const ops_composite_js_1 = require("./ops.composite.js");
6
6
  class CompositeObjectMath extends ops_composite_js_1.CompositeObjectOps {
7
- _math;
7
+ innerMath;
8
+ returnInfinityOnDivByEmpty = false;
8
9
  constructor(innerMath) {
9
10
  super(innerMath);
10
- this._math = Object.entries(innerMath)
11
+ this.innerMath = Object.entries(innerMath)
11
12
  .map(pair => ({
12
13
  key: pair[0],
13
14
  ops: pair[1],
14
15
  }));
15
16
  }
17
+ useInfinityOnDivByEmpty(enable) {
18
+ this.returnInfinityOnDivByEmpty = enable;
19
+ return this;
20
+ }
16
21
  contains(base, target) {
17
- if (!base || !target) {
22
+ if (!base) {
18
23
  return false;
19
24
  }
20
- return this._math.every(pair => {
25
+ if (!target) {
26
+ return true;
27
+ }
28
+ return this.innerMath.every(pair => {
21
29
  const baseVal = (0, helpers_js_1._getInnerValue)(base, pair.key);
22
30
  const targetVal = (0, helpers_js_1._getInnerValue)(target, pair.key);
23
31
  return pair.ops.contains(baseVal, targetVal);
24
32
  });
25
33
  }
26
34
  inverse(o) {
27
- return (0, helpers_js_1.doOps)(this._math, o, (ops, val) => ops.inverse(val));
35
+ return (0, helpers_js_1.doOps)(this.innerMath, o, (ops, val) => ops.inverse(val));
28
36
  }
29
37
  abs(o, options) {
30
- return (0, helpers_js_1.doOps)(this._math, o, (ops, val) => ops.abs(val, options));
38
+ if (!o) {
39
+ return null;
40
+ }
41
+ return (0, helpers_js_1.doOps)(this.innerMath, o, (ops, val) => ops.abs(val, options));
31
42
  }
32
43
  round(o, options) {
33
- return (0, helpers_js_1.doOps)(this._math, o, (ops, val) => ops.round(val, options));
44
+ if (!o) {
45
+ return null;
46
+ }
47
+ return (0, helpers_js_1.doOps)(this.innerMath, o, (ops, val) => ops.round(val, options));
34
48
  }
35
49
  add(o1, o2) {
36
- if (this.isEmpty(o1) && this.isEmpty(o2)) {
37
- return this.getEmpty();
38
- }
39
- return (0, helpers_js_1.doOps)(this._math, o1, (ops, val, key) => ops.add(val, (0, helpers_js_1._getInnerValue)(o2, key)));
50
+ return (0, helpers_js_1.doOps)(this.innerMath, o1, (ops, val, key) => ops.add(val, (0, helpers_js_1._getInnerValue)(o2, key)));
40
51
  }
41
52
  subtract(base, amount) {
42
- return (0, helpers_js_1.doOps)(this._math, base, (ops, val, key) => ops.subtract(val, (0, helpers_js_1._getInnerValue)(amount, key)));
53
+ return (0, helpers_js_1.doOps)(this.innerMath, base, (ops, val, key) => ops.subtract(val, (0, helpers_js_1._getInnerValue)(amount, key)));
43
54
  }
44
55
  multiply(o1, o2) {
45
- return (0, helpers_js_1.doOps)(this._math, o1, (ops, val, key) => ops.multiply(val, (0, helpers_js_1._getInnerValue)(o2, key)));
56
+ return (0, helpers_js_1.doOps)(this.innerMath, o1, (ops, val, key) => ops.multiply(val, (0, helpers_js_1._getInnerValue)(o2, key)));
46
57
  }
47
58
  div(o1, o2) {
48
59
  if (this.isEmpty(o1)) {
49
- return 0;
60
+ return typeof o2 === 'number' ? this.getEmpty() : 0;
61
+ }
62
+ // Scalar division - divide each child by the scalar
63
+ if (typeof o2 === 'number') {
64
+ if (o2 === 0) {
65
+ return this.getEmpty(); // Division by zero returns empty
66
+ }
67
+ return (0, helpers_js_1.doOps)(this.innerMath, o1, (ops, val) => ops.div(val, o2));
50
68
  }
51
69
  const checkRight = (val, getIsEmpty) => {
52
- return typeof val === 'number' && val === 0 || typeof val !== 'number' && getIsEmpty(val);
70
+ return getIsEmpty(val);
53
71
  };
54
72
  if (checkRight(o2, v => this.isEmpty(v))) {
55
- return Number.POSITIVE_INFINITY;
73
+ return this.returnInfinityOnDivByEmpty ? Number.POSITIVE_INFINITY : 0;
56
74
  }
57
- const results = this._math.map(pair => {
75
+ const results = this.innerMath.map(pair => {
58
76
  const left = (0, helpers_js_1._getInnerValue)(o1, pair.key);
59
- if (pair.ops.isEmpty(left)) {
60
- return 0;
61
- }
62
77
  const right = (0, helpers_js_1._getInnerValue)(o2, pair.key);
78
+ // Skip this field if right side is empty (can't divide by empty)
63
79
  if (checkRight(right, v => pair.ops.isEmpty(v))) {
64
- return 0;
80
+ return null; // Mark as no valid division
65
81
  }
82
+ // Perform division - if left is empty/zero, result will be 0
66
83
  return pair.ops.div(left, right);
67
- }).filter(Boolean);
84
+ }).filter((val) => val !== null); // Filter out null markers, keep zeros
68
85
  return results.length ? Math.min(...results) : 0;
69
86
  }
70
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"math.composite.js","sourceRoot":"","sources":["../../../../src/math/object/math.composite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math.composite.js","sourceRoot":"","sources":["../../../../src/math/object/math.composite.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,16 @@ const helpers_js_1 = require("./helpers.js");
5
5
  const ops_js_1 = require("./ops.js");
6
6
  const DELETE = 'delete';
7
7
  class ObjectMath extends ops_js_1.ObjectOps {
8
+ returnInfinityOnDivByEmpty = false;
9
+ divisionMethod = 'floor';
10
+ useInfinityOnDivByEmpty(enable) {
11
+ this.returnInfinityOnDivByEmpty = enable;
12
+ return this;
13
+ }
14
+ useDivisionMethod(method) {
15
+ this.divisionMethod = method;
16
+ return this;
17
+ }
8
18
  getTotal(o) {
9
19
  let sum = 0;
10
20
  if (o) {
@@ -27,31 +37,46 @@ class ObjectMath extends ops_js_1.ObjectOps {
27
37
  }
28
38
  div(o1, o2) {
29
39
  if (!o1 || !o2) {
30
- return 0;
40
+ return this.returnInfinityOnDivByEmpty ? Number.POSITIVE_INFINITY : 0;
31
41
  }
32
42
  if (typeof o2 === 'number') {
33
43
  const res = {};
34
44
  Object.keys(o1).forEach(key => {
35
45
  const kk = key;
36
46
  const ov = o1[kk];
37
- res[kk] = Math.round(ov / o2);
47
+ res[kk] = this.getDivisionResult(ov, o2);
38
48
  });
39
49
  return res;
40
50
  }
41
51
  let min = null;
52
+ let hasValidDivisor = false;
42
53
  Object.keys(o2).forEach(key => {
43
54
  const kk = key;
44
- const v = o2[kk];
45
- if (!v) {
46
- return;
55
+ const divisor = o2[kk];
56
+ if (!divisor) {
57
+ return; // Skip zero divisors
58
+ }
59
+ // Only consider keys that exist in both objects
60
+ const dividend = o1[kk];
61
+ if (dividend === undefined) {
62
+ return; // Skip keys that don't exist in dividend
47
63
  }
48
- const b = o1[kk] || 0;
49
- const c = Math.round(b / v);
64
+ hasValidDivisor = true;
65
+ const c = this.getDivisionResult(dividend, divisor);
50
66
  if (min == null || c < min) {
51
67
  min = c;
52
68
  }
53
69
  });
54
- return min ?? 0;
70
+ // If no valid divisors found, treat as division by empty/zero
71
+ if (!hasValidDivisor) {
72
+ return this.returnInfinityOnDivByEmpty ? Number.POSITIVE_INFINITY : 0;
73
+ }
74
+ const result = min ?? 0;
75
+ // Return Infinity only if configured to do so
76
+ if (!Number.isFinite(result) && !this.returnInfinityOnDivByEmpty) {
77
+ return 0;
78
+ }
79
+ return result;
55
80
  }
56
81
  process(o, processor) {
57
82
  if (!o) {
@@ -119,6 +144,23 @@ class ObjectMath extends ops_js_1.ObjectOps {
119
144
  multiply(c1, c2) {
120
145
  return this.calc(c1, c2, (n1, n2) => (n1 || 0) * (n2 || 0));
121
146
  }
147
+ getDivisionResult(dividend, divisor) {
148
+ let result = dividend / divisor;
149
+ switch (this.divisionMethod) {
150
+ case 'floor':
151
+ result = Math.floor(result);
152
+ break;
153
+ case 'ceil':
154
+ result = Math.ceil(result);
155
+ break;
156
+ case 'round':
157
+ result = Math.round(result);
158
+ break;
159
+ default:
160
+ break;
161
+ }
162
+ return result;
163
+ }
122
164
  }
123
165
  exports.ObjectMath = ObjectMath;
124
166
  //# sourceMappingURL=math.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../../src/math/object/math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../../src/math/object/math.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ exports.CompositeObjectOps = void 0;
4
4
  const helpers_js_1 = require("./helpers.js");
5
5
  class CompositeObjectOps {
6
6
  Empty;
7
- _ops;
7
+ innerOps;
8
8
  constructor(innerOps) {
9
- this._ops = Object.entries(innerOps)
9
+ this.innerOps = Object.entries(innerOps)
10
10
  .map(pair => {
11
11
  const result = {
12
12
  key: pair[0],
@@ -17,16 +17,16 @@ class CompositeObjectOps {
17
17
  this.Empty = this.getEmpty();
18
18
  }
19
19
  isEmpty(o) {
20
- return !o || this._ops.every(op => op.ops.isEmpty((0, helpers_js_1._getInnerValue)(o, op.key)));
20
+ return !o || this.innerOps.every(op => op.ops.isEmpty((0, helpers_js_1._getInnerValue)(o, op.key)));
21
21
  }
22
22
  getEmpty() {
23
- return (0, helpers_js_1.doOps)(this._ops, null, ops => ops.getEmpty());
23
+ return (0, helpers_js_1.doOps)(this.innerOps, null, ops => ops.getEmpty());
24
24
  }
25
25
  clone(o) {
26
- return (0, helpers_js_1.doOps)(this._ops, o);
26
+ return (0, helpers_js_1.doOps)(this.innerOps, o);
27
27
  }
28
28
  isValid(o) {
29
- return o != null && this._ops.every(op => op.ops.isValid((0, helpers_js_1._getInnerValue)(o, op.key)));
29
+ return o != null && this.innerOps.every(op => op.ops.isValid((0, helpers_js_1._getInnerValue)(o, op.key)));
30
30
  }
31
31
  isEquals(a, b) {
32
32
  if (!a && !b) {
@@ -35,10 +35,10 @@ class CompositeObjectOps {
35
35
  if (!a || !b) {
36
36
  return false;
37
37
  }
38
- return this._ops.every(pair => pair.ops.isEquals((0, helpers_js_1._getInnerValue)(a, pair.key), (0, helpers_js_1._getInnerValue)(b, pair.key)));
38
+ return this.innerOps.every(pair => pair.ops.isEquals((0, helpers_js_1._getInnerValue)(a, pair.key), (0, helpers_js_1._getInnerValue)(b, pair.key)));
39
39
  }
40
40
  assign(to, other) {
41
- this._ops.forEach(pair => {
41
+ this.innerOps.forEach(pair => {
42
42
  const val = (0, helpers_js_1._getInnerValue)(other, pair.key);
43
43
  if (val !== undefined) {
44
44
  to[pair.key] = val;
@@ -1 +1 @@
1
- {"version":3,"file":"ops.composite.js","sourceRoot":"","sources":["../../../../src/math/object/ops.composite.ts"],"names":[],"mappings":";;;AAGA,6CAAqD;AAErD,MAAa,kBAAkB;IAClB,KAAK,CAAc;IAEX,IAAI,CAAe;IAEpC,YAAY,QAAwB;QAEhC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC/B,GAAG,CAAC,IAAI,CAAC,EAAE;YACR,MAAM,MAAM,GAAe;gBACvB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAS;gBACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAwB;aACtC,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAA,2BAAc,EAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,QAAQ;QACJ,OAAO,IAAA,kBAAK,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,CAA4B;QAC9B,OAAO,IAAA,kBAAK,EAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAA,2BAAc,EAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,QAAQ,CAAC,CAA4B,EAAE,CAA4B;QAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAC5C,IAAA,2BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAC3B,IAAA,2BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAC9B,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAK,EAAE,KAAgC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,GAAG,IAAA,2BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAxDD,gDAwDC"}
1
+ {"version":3,"file":"ops.composite.js","sourceRoot":"","sources":["../../../../src/math/object/ops.composite.ts"],"names":[],"mappings":";;;AAGA,6CAAqD;AAErD,MAAa,kBAAkB;IAClB,KAAK,CAAc;IAET,QAAQ,CAAe;IAE1C,YAAY,QAAwB;QAEhC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACnC,GAAG,CAAC,IAAI,CAAC,EAAE;YACR,MAAM,MAAM,GAAe;gBACvB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAS;gBACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAwB;aACtC,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAA,2BAAc,EAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,QAAQ;QACJ,OAAO,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,CAA4B;QAC9B,OAAO,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAA,2BAAc,EAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,QAAQ,CAAC,CAA4B,EAAE,CAA4B;QAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAChD,IAAA,2BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAC3B,IAAA,2BAAc,EAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAC9B,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAK,EAAE,KAAgC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,IAAA,2BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAxDD,gDAwDC"}
@@ -1,23 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TasksQueue = void 0;
4
+ const manualPromise_js_1 = require("../../async/manualPromise.js");
4
5
  class TasksQueue {
5
6
  limit;
6
7
  _items = [];
7
8
  _running = 0;
8
9
  _logger = null;
9
- constructor(limit) {
10
+ _delayBetweenTasks;
11
+ _onTaskError;
12
+ _delayedTasks = new Set();
13
+ constructor(limit, options) {
10
14
  this.limit = limit;
11
15
  if (!limit || limit < 0) {
12
16
  throw new Error('TasksQueue: limit should be a positive number');
13
17
  }
18
+ this._delayBetweenTasks = options?.delayBetweenTasks ?? 0;
19
+ this._onTaskError = options?.onTaskError;
14
20
  }
15
21
  get isFull() { return this._running >= this.limit; }
16
22
  get running() { return this._running; }
23
+ /** Number of tasks waiting in the queue (not including currently running) */
24
+ get pending() { return this._items.length; }
17
25
  addLogger(logger) {
18
26
  this._logger = logger;
19
27
  return this;
20
28
  }
29
+ /**
30
+ * Enqueue a task factory to run when a slot is available.
31
+ *
32
+ * **Note:** When `onTaskError` is provided in the constructor options and the factory throws,
33
+ * the error is passed to `onTaskError` and the returned promise resolves with `undefined`.
34
+ */
21
35
  enqueue(factory, name) {
22
36
  if (typeof factory !== 'function') {
23
37
  throw new Error('Invalid arg: factory not a function');
@@ -25,39 +39,71 @@ class TasksQueue {
25
39
  if (this.isFull) {
26
40
  const item = {
27
41
  factory,
28
- finish: undefined,
42
+ promise: (0, manualPromise_js_1.createManualPromise)(),
29
43
  name,
30
44
  };
31
- const waitPromise = new Promise((resolve, reject) => {
32
- item.finish = async (res) => {
33
- try {
34
- const rr = await res;
35
- resolve(rr);
36
- return rr;
37
- }
38
- catch (err) {
39
- reject(err);
40
- throw err;
41
- }
42
- };
43
- });
44
45
  this._items.push(item);
45
- return waitPromise;
46
+ return item.promise.promise;
46
47
  }
47
- return this._runFactory(factory);
48
+ return this._runFactory(factory, name)
49
+ .then(res => res.ok === true ? res.result : undefined);
50
+ }
51
+ /** Enqueue a task to run after `delay` ms. Returns a promise and a cancel function. */
52
+ enqueueDelayed(factory, delay, name) {
53
+ const mp = (0, manualPromise_js_1.createManualPromise)();
54
+ let started = false;
55
+ const timer = setTimeout(() => {
56
+ started = true;
57
+ this._delayedTasks.delete(task);
58
+ this.enqueue(factory, name).then(result => mp.resolve(result), err => mp.reject(err));
59
+ }, delay);
60
+ const cancel = () => {
61
+ if (!started) {
62
+ clearTimeout(timer);
63
+ this._delayedTasks.delete(task);
64
+ mp.reject(new Error('Cancelled'));
65
+ }
66
+ };
67
+ const task = { promise: mp.promise, cancel };
68
+ this._delayedTasks.add(task);
69
+ return task;
70
+ }
71
+ /** Remove all pending tasks from the queue. Does not cancel running tasks. Also cancels all delayed enqueues.
72
+ * Pending enqueue() promises are rejected with a 'TasksQueue cleared' error so callers don't hang indefinitely.
73
+ * Delayed tasks are cancelled and their promises are rejected with a 'Cancelled' error. */
74
+ clear() {
75
+ const pending = this._items.splice(0);
76
+ if (pending.length > 0) {
77
+ const clearError = new Error('TasksQueue cleared');
78
+ for (const item of pending) {
79
+ item.promise.reject(clearError);
80
+ }
81
+ }
82
+ const delayed = [...this._delayedTasks];
83
+ for (const task of delayed) {
84
+ task.cancel();
85
+ }
86
+ this._delayedTasks.clear();
48
87
  }
49
88
  _runFactory = async (factory, name) => {
50
89
  this._running++;
51
90
  try {
52
91
  const result = await factory();
53
- return result;
92
+ return { ok: true, result };
54
93
  }
55
94
  catch (err) {
95
+ if (this._onTaskError) {
96
+ this._onTaskError(err, name || factory.name || undefined);
97
+ return { ok: false };
98
+ }
56
99
  this._logger?.warn(`Factory "${name || factory.name || '<unknown>'}" thrown. Rethrowing...`);
57
100
  throw err;
58
101
  }
59
102
  finally {
60
103
  this._running--;
104
+ if (this._delayBetweenTasks > 0 && this._items.length > 0) {
105
+ await new Promise(resolve => setTimeout(resolve, this._delayBetweenTasks));
106
+ }
61
107
  this._tryRunNext();
62
108
  }
63
109
  };
@@ -66,10 +112,16 @@ class TasksQueue {
66
112
  return;
67
113
  }
68
114
  const next = this._items.shift();
69
- if (!next || !next.finish || !next.factory) {
115
+ if (!next || !next.factory || !next.promise) {
70
116
  return;
71
117
  }
72
- await next.finish(this._runFactory(next.factory));
118
+ try {
119
+ const res = await this._runFactory(next.factory, next.name);
120
+ next.promise.resolve(res.ok === true ? res.result : undefined);
121
+ }
122
+ catch (err) {
123
+ next.promise.reject(err);
124
+ }
73
125
  };
74
126
  }
75
127
  exports.TasksQueue = TasksQueue;
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../../src/structures/queue/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../../src/structures/queue/tasks.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ exports.ValidatorsRegExps = {
21
21
  creditCardNumber: /^\d+$/,
22
22
  expiryDateCard: /^\d+$/,
23
23
  cvv: /^\d+$/,
24
- website: /^(https?:\/\/)?((\p{N}|\p{L})+((((-?(\p{N}|\p{L})+)+)?)\.))+\p{L}{2,}(:[0-9]+)?(\/.*)?$/iu,
24
+ website: /^(https?:\/\/)?([\p{L}\p{N}]+(-[\p{L}\p{N}]+)*\.)+\p{L}{2,}(:[0-9]+)?(\/.*)?$/iu,
25
25
  linkedin: /^(https?:\/\/)?([a-z]+\d*[a-z]*\.)?linkedin\.com\/.*$/i,
26
26
  };
27
27
  exports.Validators = {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/validation/validators.ts"],"names":[],"mappings":";;;;AAAA,4EAAyC;AACzC,+DAAyD;AAE5C,QAAA,iBAAiB,GAAG;IAC7B,wCAAwC;IACxC,6CAA6C;IAC7C,IAAI,EAAE,qCAAqC;IAC3C,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,kEAAkE;IAEzE,+CAA+C;IAC/C,mCAAmC;IACnC,sDAAsD;IACtD,mDAAmD;IACnD,QAAQ,EAAE,kDAAkD;IAE5D,WAAW,EAAE,aAAa;IAE1B,qCAAqC;IACrC,SAAS,EAAE,OAAO;IAClB,gBAAgB,EAAE,OAAO;IACzB,cAAc,EAAE,OAAO;IACvB,GAAG,EAAE,OAAO;IACZ,OAAO,EAAE,2FAA2F;IACpG,QAAQ,EAAE,wDAAwD;CACrE,CAAC;AAEW,QAAA,UAAU,GAAG;IAEtB,QAAQ,EAAE,CAAa,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,gBAAgB;IAEjG,SAAS,EAAE,CAAa,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,SAAS;IAC3F,QAAQ,EAAE,CAAa,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,QAAQ;IAEzF,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,iBAAiB;IAC/H,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,kBAAkB;IACtI,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,kBAAkB;IACvH,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,qBAAqB;IAChI,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,SAAS;IACtH,gBAAgB,EAAE,CAAC,GAAW,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,yBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,uBAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3H,OAAO,KAAK,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,uBAAuB,CAAC;IACpF,CAAC;IACD,oBAAoB,EAAE,CAAC,GAAW,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,yBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,iCAAiC,CAAC;IAC9F,CAAC;IACD,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAC3B,CAAC,yBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,0BAA0B;IACjJ,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,OAAO;IAChH,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,QAAQ;IAEnH,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAgB,CAAC,aAAa,CAAC;CACxH,CAAC"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/validation/validators.ts"],"names":[],"mappings":"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"}
package/esm/dates/tz.js CHANGED
@@ -35,7 +35,7 @@ export var Timezones;
35
35
  if (sign === '+') {
36
36
  result *= -1;
37
37
  }
38
- return result;
38
+ return result || 0;
39
39
  }
40
40
  Timezones.getOffset = getOffset;
41
41
  /** Returns a new date with the specified timezone offset applied.
@@ -1 +1 @@
1
- {"version":3,"file":"tz.js","sourceRoot":"","sources":["../../../src/dates/tz.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,KAAW,SAAS,CAyDzB;AAzDD,WAAiB,SAAS;IAET,iBAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC3D,uBAAa,GAAG,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAE5D,+CAA+C;IAC/C;;;;;;OAMG;IACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,IAAoB;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC3C,YAAY,EAAE,YAAY;YAC1B,QAAQ;SACX,CAAC;aACG,aAAa,CAAC,IAAI,CAAC;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;YACvC,EAAE,KAAK,CAAC;QAEZ,MAAM,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,eAAe,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;QACzC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IA7Be,mBAAS,YA6BxB,CAAA;IAED;;;;MAIE;IACF,SAAgB,eAAe,CAAC,IAAU,EAAE,EAAmB;QAC3D,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,QAAQ;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACnB,CAAC;IAPe,yBAAe,kBAO9B,CAAA;AACL,CAAC,EAzDgB,SAAS,KAAT,SAAS,QAyDzB"}
1
+ {"version":3,"file":"tz.js","sourceRoot":"","sources":["../../../src/dates/tz.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,KAAW,SAAS,CAyDzB;AAzDD,WAAiB,SAAS;IAET,iBAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC3D,uBAAa,GAAG,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAE5D,+CAA+C;IAC/C;;;;;;OAMG;IACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,IAAoB;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC3C,YAAY,EAAE,YAAY;YAC1B,QAAQ;SACX,CAAC;aACG,aAAa,CAAC,IAAI,CAAC;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;YACvC,EAAE,KAAK,CAAC;QAEZ,MAAM,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,eAAe,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;QACzC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,CAAC;IACvB,CAAC;IA7Be,mBAAS,YA6BxB,CAAA;IAED;;;;MAIE;IACF,SAAgB,eAAe,CAAC,IAAU,EAAE,EAAmB;QAC3D,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,QAAQ;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACnB,CAAC;IAPe,yBAAe,kBAO9B,CAAA;AACL,CAAC,EAzDgB,SAAS,KAAT,SAAS,QAyDzB"}
@@ -1,67 +1,84 @@
1
1
  import { _getInnerValue, doOps } from './helpers.js';
2
2
  import { CompositeObjectOps } from './ops.composite.js';
3
3
  export class CompositeObjectMath extends CompositeObjectOps {
4
- _math;
4
+ innerMath;
5
+ returnInfinityOnDivByEmpty = false;
5
6
  constructor(innerMath) {
6
7
  super(innerMath);
7
- this._math = Object.entries(innerMath)
8
+ this.innerMath = Object.entries(innerMath)
8
9
  .map(pair => ({
9
10
  key: pair[0],
10
11
  ops: pair[1],
11
12
  }));
12
13
  }
14
+ useInfinityOnDivByEmpty(enable) {
15
+ this.returnInfinityOnDivByEmpty = enable;
16
+ return this;
17
+ }
13
18
  contains(base, target) {
14
- if (!base || !target) {
19
+ if (!base) {
15
20
  return false;
16
21
  }
17
- return this._math.every(pair => {
22
+ if (!target) {
23
+ return true;
24
+ }
25
+ return this.innerMath.every(pair => {
18
26
  const baseVal = _getInnerValue(base, pair.key);
19
27
  const targetVal = _getInnerValue(target, pair.key);
20
28
  return pair.ops.contains(baseVal, targetVal);
21
29
  });
22
30
  }
23
31
  inverse(o) {
24
- return doOps(this._math, o, (ops, val) => ops.inverse(val));
32
+ return doOps(this.innerMath, o, (ops, val) => ops.inverse(val));
25
33
  }
26
34
  abs(o, options) {
27
- return doOps(this._math, o, (ops, val) => ops.abs(val, options));
35
+ if (!o) {
36
+ return null;
37
+ }
38
+ return doOps(this.innerMath, o, (ops, val) => ops.abs(val, options));
28
39
  }
29
40
  round(o, options) {
30
- return doOps(this._math, o, (ops, val) => ops.round(val, options));
41
+ if (!o) {
42
+ return null;
43
+ }
44
+ return doOps(this.innerMath, o, (ops, val) => ops.round(val, options));
31
45
  }
32
46
  add(o1, o2) {
33
- if (this.isEmpty(o1) && this.isEmpty(o2)) {
34
- return this.getEmpty();
35
- }
36
- return doOps(this._math, o1, (ops, val, key) => ops.add(val, _getInnerValue(o2, key)));
47
+ return doOps(this.innerMath, o1, (ops, val, key) => ops.add(val, _getInnerValue(o2, key)));
37
48
  }
38
49
  subtract(base, amount) {
39
- return doOps(this._math, base, (ops, val, key) => ops.subtract(val, _getInnerValue(amount, key)));
50
+ return doOps(this.innerMath, base, (ops, val, key) => ops.subtract(val, _getInnerValue(amount, key)));
40
51
  }
41
52
  multiply(o1, o2) {
42
- return doOps(this._math, o1, (ops, val, key) => ops.multiply(val, _getInnerValue(o2, key)));
53
+ return doOps(this.innerMath, o1, (ops, val, key) => ops.multiply(val, _getInnerValue(o2, key)));
43
54
  }
44
55
  div(o1, o2) {
45
56
  if (this.isEmpty(o1)) {
46
- return 0;
57
+ return typeof o2 === 'number' ? this.getEmpty() : 0;
58
+ }
59
+ // Scalar division - divide each child by the scalar
60
+ if (typeof o2 === 'number') {
61
+ if (o2 === 0) {
62
+ return this.getEmpty(); // Division by zero returns empty
63
+ }
64
+ return doOps(this.innerMath, o1, (ops, val) => ops.div(val, o2));
47
65
  }
48
66
  const checkRight = (val, getIsEmpty) => {
49
- return typeof val === 'number' && val === 0 || typeof val !== 'number' && getIsEmpty(val);
67
+ return getIsEmpty(val);
50
68
  };
51
69
  if (checkRight(o2, v => this.isEmpty(v))) {
52
- return Number.POSITIVE_INFINITY;
70
+ return this.returnInfinityOnDivByEmpty ? Number.POSITIVE_INFINITY : 0;
53
71
  }
54
- const results = this._math.map(pair => {
72
+ const results = this.innerMath.map(pair => {
55
73
  const left = _getInnerValue(o1, pair.key);
56
- if (pair.ops.isEmpty(left)) {
57
- return 0;
58
- }
59
74
  const right = _getInnerValue(o2, pair.key);
75
+ // Skip this field if right side is empty (can't divide by empty)
60
76
  if (checkRight(right, v => pair.ops.isEmpty(v))) {
61
- return 0;
77
+ return null; // Mark as no valid division
62
78
  }
79
+ // Perform division - if left is empty/zero, result will be 0
63
80
  return pair.ops.div(left, right);
64
- }).filter(Boolean);
81
+ }).filter((val) => val !== null); // Filter out null markers, keep zeros
65
82
  return results.length ? Math.min(...results) : 0;
66
83
  }
67
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"math.composite.js","sourceRoot":"","sources":["../../../../src/math/object/math.composite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math.composite.js","sourceRoot":"","sources":["../../../../src/math/object/math.composite.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,16 @@ import { _getValue } from './helpers.js';
2
2
  import { ObjectOps } from './ops.js';
3
3
  const DELETE = 'delete';
4
4
  export class ObjectMath extends ObjectOps {
5
+ returnInfinityOnDivByEmpty = false;
6
+ divisionMethod = 'floor';
7
+ useInfinityOnDivByEmpty(enable) {
8
+ this.returnInfinityOnDivByEmpty = enable;
9
+ return this;
10
+ }
11
+ useDivisionMethod(method) {
12
+ this.divisionMethod = method;
13
+ return this;
14
+ }
5
15
  getTotal(o) {
6
16
  let sum = 0;
7
17
  if (o) {
@@ -24,31 +34,46 @@ export class ObjectMath extends ObjectOps {
24
34
  }
25
35
  div(o1, o2) {
26
36
  if (!o1 || !o2) {
27
- return 0;
37
+ return this.returnInfinityOnDivByEmpty ? Number.POSITIVE_INFINITY : 0;
28
38
  }
29
39
  if (typeof o2 === 'number') {
30
40
  const res = {};
31
41
  Object.keys(o1).forEach(key => {
32
42
  const kk = key;
33
43
  const ov = o1[kk];
34
- res[kk] = Math.round(ov / o2);
44
+ res[kk] = this.getDivisionResult(ov, o2);
35
45
  });
36
46
  return res;
37
47
  }
38
48
  let min = null;
49
+ let hasValidDivisor = false;
39
50
  Object.keys(o2).forEach(key => {
40
51
  const kk = key;
41
- const v = o2[kk];
42
- if (!v) {
43
- return;
52
+ const divisor = o2[kk];
53
+ if (!divisor) {
54
+ return; // Skip zero divisors
55
+ }
56
+ // Only consider keys that exist in both objects
57
+ const dividend = o1[kk];
58
+ if (dividend === undefined) {
59
+ return; // Skip keys that don't exist in dividend
44
60
  }
45
- const b = o1[kk] || 0;
46
- const c = Math.round(b / v);
61
+ hasValidDivisor = true;
62
+ const c = this.getDivisionResult(dividend, divisor);
47
63
  if (min == null || c < min) {
48
64
  min = c;
49
65
  }
50
66
  });
51
- return min ?? 0;
67
+ // If no valid divisors found, treat as division by empty/zero
68
+ if (!hasValidDivisor) {
69
+ return this.returnInfinityOnDivByEmpty ? Number.POSITIVE_INFINITY : 0;
70
+ }
71
+ const result = min ?? 0;
72
+ // Return Infinity only if configured to do so
73
+ if (!Number.isFinite(result) && !this.returnInfinityOnDivByEmpty) {
74
+ return 0;
75
+ }
76
+ return result;
52
77
  }
53
78
  process(o, processor) {
54
79
  if (!o) {
@@ -116,5 +141,22 @@ export class ObjectMath extends ObjectOps {
116
141
  multiply(c1, c2) {
117
142
  return this.calc(c1, c2, (n1, n2) => (n1 || 0) * (n2 || 0));
118
143
  }
144
+ getDivisionResult(dividend, divisor) {
145
+ let result = dividend / divisor;
146
+ switch (this.divisionMethod) {
147
+ case 'floor':
148
+ result = Math.floor(result);
149
+ break;
150
+ case 'ceil':
151
+ result = Math.ceil(result);
152
+ break;
153
+ case 'round':
154
+ result = Math.round(result);
155
+ break;
156
+ default:
157
+ break;
158
+ }
159
+ return result;
160
+ }
119
161
  }
120
162
  //# sourceMappingURL=math.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../../src/math/object/math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../../src/math/object/math.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { _getInnerValue, doOps } from './helpers.js';
2
2
  export class CompositeObjectOps {
3
3
  Empty;
4
- _ops;
4
+ innerOps;
5
5
  constructor(innerOps) {
6
- this._ops = Object.entries(innerOps)
6
+ this.innerOps = Object.entries(innerOps)
7
7
  .map(pair => {
8
8
  const result = {
9
9
  key: pair[0],
@@ -14,16 +14,16 @@ export class CompositeObjectOps {
14
14
  this.Empty = this.getEmpty();
15
15
  }
16
16
  isEmpty(o) {
17
- return !o || this._ops.every(op => op.ops.isEmpty(_getInnerValue(o, op.key)));
17
+ return !o || this.innerOps.every(op => op.ops.isEmpty(_getInnerValue(o, op.key)));
18
18
  }
19
19
  getEmpty() {
20
- return doOps(this._ops, null, ops => ops.getEmpty());
20
+ return doOps(this.innerOps, null, ops => ops.getEmpty());
21
21
  }
22
22
  clone(o) {
23
- return doOps(this._ops, o);
23
+ return doOps(this.innerOps, o);
24
24
  }
25
25
  isValid(o) {
26
- return o != null && this._ops.every(op => op.ops.isValid(_getInnerValue(o, op.key)));
26
+ return o != null && this.innerOps.every(op => op.ops.isValid(_getInnerValue(o, op.key)));
27
27
  }
28
28
  isEquals(a, b) {
29
29
  if (!a && !b) {
@@ -32,10 +32,10 @@ export class CompositeObjectOps {
32
32
  if (!a || !b) {
33
33
  return false;
34
34
  }
35
- return this._ops.every(pair => pair.ops.isEquals(_getInnerValue(a, pair.key), _getInnerValue(b, pair.key)));
35
+ return this.innerOps.every(pair => pair.ops.isEquals(_getInnerValue(a, pair.key), _getInnerValue(b, pair.key)));
36
36
  }
37
37
  assign(to, other) {
38
- this._ops.forEach(pair => {
38
+ this.innerOps.forEach(pair => {
39
39
  const val = _getInnerValue(other, pair.key);
40
40
  if (val !== undefined) {
41
41
  to[pair.key] = val;
@@ -1 +1 @@
1
- {"version":3,"file":"ops.composite.js","sourceRoot":"","sources":["../../../../src/math/object/ops.composite.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,OAAO,kBAAkB;IAClB,KAAK,CAAc;IAEX,IAAI,CAAe;IAEpC,YAAY,QAAwB;QAEhC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC/B,GAAG,CAAC,IAAI,CAAC,EAAE;YACR,MAAM,MAAM,GAAe;gBACvB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAS;gBACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAwB;aACtC,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,QAAQ;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,CAA4B;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,QAAQ,CAAC,CAA4B,EAAE,CAA4B;QAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAC5C,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAC3B,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAC9B,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAK,EAAE,KAAgC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"ops.composite.js","sourceRoot":"","sources":["../../../../src/math/object/ops.composite.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,OAAO,kBAAkB;IAClB,KAAK,CAAc;IAET,QAAQ,CAAe;IAE1C,YAAY,QAAwB;QAEhC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACnC,GAAG,CAAC,IAAI,CAAC,EAAE;YACR,MAAM,MAAM,GAAe;gBACvB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAS;gBACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAwB;aACtC,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,QAAQ;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,CAA4B;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,CAA4B;QAChC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,QAAQ,CAAC,CAA4B,EAAE,CAA4B;QAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAChD,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAC3B,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAC9B,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAK,EAAE,KAAgC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,20 +1,34 @@
1
+ import { createManualPromise } from '../../async/manualPromise.js';
1
2
  export class TasksQueue {
2
3
  limit;
3
4
  _items = [];
4
5
  _running = 0;
5
6
  _logger = null;
6
- constructor(limit) {
7
+ _delayBetweenTasks;
8
+ _onTaskError;
9
+ _delayedTasks = new Set();
10
+ constructor(limit, options) {
7
11
  this.limit = limit;
8
12
  if (!limit || limit < 0) {
9
13
  throw new Error('TasksQueue: limit should be a positive number');
10
14
  }
15
+ this._delayBetweenTasks = options?.delayBetweenTasks ?? 0;
16
+ this._onTaskError = options?.onTaskError;
11
17
  }
12
18
  get isFull() { return this._running >= this.limit; }
13
19
  get running() { return this._running; }
20
+ /** Number of tasks waiting in the queue (not including currently running) */
21
+ get pending() { return this._items.length; }
14
22
  addLogger(logger) {
15
23
  this._logger = logger;
16
24
  return this;
17
25
  }
26
+ /**
27
+ * Enqueue a task factory to run when a slot is available.
28
+ *
29
+ * **Note:** When `onTaskError` is provided in the constructor options and the factory throws,
30
+ * the error is passed to `onTaskError` and the returned promise resolves with `undefined`.
31
+ */
18
32
  enqueue(factory, name) {
19
33
  if (typeof factory !== 'function') {
20
34
  throw new Error('Invalid arg: factory not a function');
@@ -22,39 +36,71 @@ export class TasksQueue {
22
36
  if (this.isFull) {
23
37
  const item = {
24
38
  factory,
25
- finish: undefined,
39
+ promise: createManualPromise(),
26
40
  name,
27
41
  };
28
- const waitPromise = new Promise((resolve, reject) => {
29
- item.finish = async (res) => {
30
- try {
31
- const rr = await res;
32
- resolve(rr);
33
- return rr;
34
- }
35
- catch (err) {
36
- reject(err);
37
- throw err;
38
- }
39
- };
40
- });
41
42
  this._items.push(item);
42
- return waitPromise;
43
+ return item.promise.promise;
43
44
  }
44
- return this._runFactory(factory);
45
+ return this._runFactory(factory, name)
46
+ .then(res => res.ok === true ? res.result : undefined);
47
+ }
48
+ /** Enqueue a task to run after `delay` ms. Returns a promise and a cancel function. */
49
+ enqueueDelayed(factory, delay, name) {
50
+ const mp = createManualPromise();
51
+ let started = false;
52
+ const timer = setTimeout(() => {
53
+ started = true;
54
+ this._delayedTasks.delete(task);
55
+ this.enqueue(factory, name).then(result => mp.resolve(result), err => mp.reject(err));
56
+ }, delay);
57
+ const cancel = () => {
58
+ if (!started) {
59
+ clearTimeout(timer);
60
+ this._delayedTasks.delete(task);
61
+ mp.reject(new Error('Cancelled'));
62
+ }
63
+ };
64
+ const task = { promise: mp.promise, cancel };
65
+ this._delayedTasks.add(task);
66
+ return task;
67
+ }
68
+ /** Remove all pending tasks from the queue. Does not cancel running tasks. Also cancels all delayed enqueues.
69
+ * Pending enqueue() promises are rejected with a 'TasksQueue cleared' error so callers don't hang indefinitely.
70
+ * Delayed tasks are cancelled and their promises are rejected with a 'Cancelled' error. */
71
+ clear() {
72
+ const pending = this._items.splice(0);
73
+ if (pending.length > 0) {
74
+ const clearError = new Error('TasksQueue cleared');
75
+ for (const item of pending) {
76
+ item.promise.reject(clearError);
77
+ }
78
+ }
79
+ const delayed = [...this._delayedTasks];
80
+ for (const task of delayed) {
81
+ task.cancel();
82
+ }
83
+ this._delayedTasks.clear();
45
84
  }
46
85
  _runFactory = async (factory, name) => {
47
86
  this._running++;
48
87
  try {
49
88
  const result = await factory();
50
- return result;
89
+ return { ok: true, result };
51
90
  }
52
91
  catch (err) {
92
+ if (this._onTaskError) {
93
+ this._onTaskError(err, name || factory.name || undefined);
94
+ return { ok: false };
95
+ }
53
96
  this._logger?.warn(`Factory "${name || factory.name || '<unknown>'}" thrown. Rethrowing...`);
54
97
  throw err;
55
98
  }
56
99
  finally {
57
100
  this._running--;
101
+ if (this._delayBetweenTasks > 0 && this._items.length > 0) {
102
+ await new Promise(resolve => setTimeout(resolve, this._delayBetweenTasks));
103
+ }
58
104
  this._tryRunNext();
59
105
  }
60
106
  };
@@ -63,10 +109,16 @@ export class TasksQueue {
63
109
  return;
64
110
  }
65
111
  const next = this._items.shift();
66
- if (!next || !next.finish || !next.factory) {
112
+ if (!next || !next.factory || !next.promise) {
67
113
  return;
68
114
  }
69
- await next.finish(this._runFactory(next.factory));
115
+ try {
116
+ const res = await this._runFactory(next.factory, next.name);
117
+ next.promise.resolve(res.ok === true ? res.result : undefined);
118
+ }
119
+ catch (err) {
120
+ next.promise.reject(err);
121
+ }
70
122
  };
71
123
  }
72
124
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../../src/structures/queue/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../../src/structures/queue/tasks.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export const ValidatorsRegExps = {
17
17
  creditCardNumber: /^\d+$/,
18
18
  expiryDateCard: /^\d+$/,
19
19
  cvv: /^\d+$/,
20
- website: /^(https?:\/\/)?((\p{N}|\p{L})+((((-?(\p{N}|\p{L})+)+)?)\.))+\p{L}{2,}(:[0-9]+)?(\/.*)?$/iu,
20
+ website: /^(https?:\/\/)?([\p{L}\p{N}]+(-[\p{L}\p{N}]+)*\.)+\p{L}{2,}(:[0-9]+)?(\/.*)?$/iu,
21
21
  linkedin: /^(https?:\/\/)?([a-z]+\d*[a-z]*\.)?linkedin\.com\/.*$/i,
22
22
  };
23
23
  export const Validators = {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/validation/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/validation/validators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "2.8.4",
3
+ "version": "2.8.6",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "private": false,
6
6
  "type": "module",
@@ -1,16 +1,21 @@
1
1
  import type { AnyObject, Nullable } from '../../types/index.js';
2
2
  import type { DeepReadonly } from '../../types/deep.js';
3
3
  import { CompositeObjectOps } from './ops.composite.js';
4
- import type { AbsOptions, IObjectMath, MathPairsMap, RoundOptions } from './types.js';
4
+ import type { AbsOptions, IObjectMath, MathPair, MathPairsMap, RoundOptions } from './types.js';
5
5
  export declare class CompositeObjectMath<T extends AnyObject> extends CompositeObjectOps<T> implements IObjectMath<T> {
6
- private readonly _math;
6
+ protected readonly innerMath: MathPair<T>[];
7
+ private returnInfinityOnDivByEmpty;
7
8
  constructor(innerMath: MathPairsMap<T>);
9
+ useInfinityOnDivByEmpty(enable: boolean): this;
8
10
  contains(base: Nullable<DeepReadonly<T>>, target: Nullable<DeepReadonly<T>>): boolean;
9
11
  inverse(o: Nullable<DeepReadonly<T>>): T;
12
+ abs(o: DeepReadonly<T>, options?: AbsOptions): T;
10
13
  abs(o: Nullable<DeepReadonly<T>>, options?: AbsOptions): T | null;
11
- round(o: Nullable<DeepReadonly<T>>, options?: RoundOptions): T;
14
+ round(o: DeepReadonly<T>, options?: RoundOptions): T;
15
+ round(o: Nullable<DeepReadonly<T>>, options?: RoundOptions): T | null;
12
16
  add(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T>>): T;
13
17
  subtract(base: Nullable<DeepReadonly<T>>, amount: number | Nullable<DeepReadonly<T>>): T;
14
18
  multiply(o1: Nullable<DeepReadonly<T>>, o2: number | Nullable<DeepReadonly<T>>): T;
15
- div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<number | DeepReadonly<T>>): number;
19
+ div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<number>): T;
20
+ div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T>>): number;
16
21
  }
@@ -1,18 +1,25 @@
1
- import type { Nullable } from '../../types/index.js';
2
1
  import type { DeepReadonly, DeepReadonlyPartial } from '../../types/deep.js';
2
+ import type { Nullable } from '../../types/index.js';
3
3
  import { ObjectOps } from './ops.js';
4
4
  import type { AbsOptions, DELETE_TYPE, IObjectMath, NumKey, RoundOptions } from './types.js';
5
5
  export declare class ObjectMath<T extends object> extends ObjectOps<T> implements IObjectMath<T> {
6
+ private returnInfinityOnDivByEmpty;
7
+ private divisionMethod;
8
+ useInfinityOnDivByEmpty(enable: boolean): this;
9
+ useDivisionMethod(method: RoundOptions | null): this;
6
10
  getTotal(o: Nullable<DeepReadonlyPartial<T>>): number;
7
11
  contains(base: Nullable<DeepReadonly<T>>, target: Nullable<DeepReadonly<T>>): boolean;
8
12
  inverse(o: Nullable<DeepReadonly<T>>): T;
9
13
  div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<number>): T;
10
14
  div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T>>): number;
11
15
  process(o: Nullable<DeepReadonly<T>>, processor: (val: number, key: NumKey<T>) => number | DELETE_TYPE): T | null;
16
+ abs(c: DeepReadonly<T>, stripNegatives?: AbsOptions): T;
12
17
  abs(c: Nullable<DeepReadonly<T>>, stripNegatives?: AbsOptions): T | null;
18
+ round(c: DeepReadonly<T>, method?: RoundOptions): T;
13
19
  round(c: Nullable<DeepReadonly<T>>, method?: RoundOptions): T | null;
14
20
  calc(c1: Nullable<DeepReadonly<T>>, c2: Nullable<DeepReadonly<T> | number>, operator: (n: number, n2: number) => number): T;
15
21
  add(c1: Nullable<DeepReadonly<T>>, c2: Nullable<DeepReadonly<T> | number>): T;
16
22
  subtract(base: Nullable<DeepReadonly<T>>, amount: Nullable<DeepReadonly<T> | number>): T;
17
23
  multiply(c1: Nullable<DeepReadonly<T>>, c2: Nullable<DeepReadonly<T> | number>): T;
24
+ protected getDivisionResult(dividend: number, divisor: number): number;
18
25
  }
@@ -1,9 +1,9 @@
1
1
  import type { AnyObject, Nullable } from '../../types/index.js';
2
2
  import type { DeepReadonly } from '../../types/deep.js';
3
- import type { IObjectOps, OpsPairsMap } from './types.js';
3
+ import type { IObjectOps, OpsPair, OpsPairsMap } from './types.js';
4
4
  export declare class CompositeObjectOps<T extends AnyObject> implements IObjectOps<T> {
5
5
  readonly Empty: Readonly<T>;
6
- private readonly _ops;
6
+ protected readonly innerOps: OpsPair<T>[];
7
7
  constructor(innerOps: OpsPairsMap<T>);
8
8
  isEmpty(o: Nullable<DeepReadonly<T>>): boolean;
9
9
  getEmpty(): T;
@@ -15,12 +15,15 @@ export interface IObjectOps<T extends AnyObject> {
15
15
  export interface IObjectMath<T extends AnyObject> extends IObjectOps<T> {
16
16
  contains(base: Nullable<DeepReadonly<T>>, target: Nullable<DeepReadonly<T>>): boolean;
17
17
  inverse(o: Nullable<DeepReadonly<T>>): T;
18
+ abs(o: DeepReadonly<T>, options?: AbsOptions): T;
18
19
  abs(o: Nullable<DeepReadonly<T>>, options?: AbsOptions): T | null;
20
+ round(o: DeepReadonly<T>, options?: RoundOptions): T;
19
21
  round(o: Nullable<DeepReadonly<T>>, options?: RoundOptions): T | null;
20
22
  add(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T>>): T;
21
23
  subtract(base: Nullable<DeepReadonly<T>>, amount: Nullable<DeepReadonly<T> | number>): T;
22
24
  multiply(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T> | number>): T;
23
- div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T> | number>): number;
25
+ div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<number>): T;
26
+ div(o1: Nullable<DeepReadonly<T>>, o2: Nullable<DeepReadonly<T>>): number;
24
27
  }
25
28
  export type BasePair<T extends AnyObject, TKey extends string & keyof T = string & keyof T, TOps extends IObjectOps<T[TKey]> = IObjectOps<T[TKey]>> = {
26
29
  key: TKey;
@@ -1,15 +1,44 @@
1
1
  import type { ILogger } from '../../logger/index.js';
2
2
  type Factory<T> = () => Promise<T>;
3
+ export type DelayedTask<T> = {
4
+ /** Promise that resolves with the task result, or rejects if the task throws or is cancelled. */
5
+ readonly promise: Promise<T | undefined>;
6
+ /** Cancel the delayed task. If the task hasn't started yet, the promise rejects with a 'Cancelled' error. */
7
+ readonly cancel: () => void;
8
+ };
9
+ export type TasksQueueOptions = {
10
+ /** Delay in ms to wait after each task before starting the next one. Default: 0 */
11
+ delayBetweenTasks?: number;
12
+ /** Called when a task throws. If provided, the error is NOT propagated to the enqueue() promise. */
13
+ onTaskError?: (error: unknown, name?: string) => void;
14
+ };
3
15
  export declare class TasksQueue<T> {
4
16
  readonly limit: number;
5
17
  private readonly _items;
6
18
  private _running;
7
19
  private _logger;
8
- constructor(limit: number);
20
+ private readonly _delayBetweenTasks;
21
+ private readonly _onTaskError;
22
+ private readonly _delayedTasks;
23
+ constructor(limit: number, options?: TasksQueueOptions);
9
24
  get isFull(): boolean;
10
25
  get running(): number;
26
+ /** Number of tasks waiting in the queue (not including currently running) */
27
+ get pending(): number;
11
28
  addLogger(logger: ILogger): this;
12
- enqueue(factory: Factory<T>, name?: string): Promise<T>;
29
+ /**
30
+ * Enqueue a task factory to run when a slot is available.
31
+ *
32
+ * **Note:** When `onTaskError` is provided in the constructor options and the factory throws,
33
+ * the error is passed to `onTaskError` and the returned promise resolves with `undefined`.
34
+ */
35
+ enqueue(factory: Factory<T>, name?: string): Promise<T | undefined>;
36
+ /** Enqueue a task to run after `delay` ms. Returns a promise and a cancel function. */
37
+ enqueueDelayed(factory: Factory<T>, delay: number, name?: string): DelayedTask<T>;
38
+ /** Remove all pending tasks from the queue. Does not cancel running tasks. Also cancels all delayed enqueues.
39
+ * Pending enqueue() promises are rejected with a 'TasksQueue cleared' error so callers don't hang indefinitely.
40
+ * Delayed tasks are cancelled and their promises are rejected with a 'Cancelled' error. */
41
+ clear(): void;
13
42
  private _runFactory;
14
43
  private _tryRunNext;
15
44
  }