@bitbeater/ecma-utils 2.10.1 → 2.10.2

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 (103) hide show
  1. package/dist/bytes.d.ts +0 -0
  2. package/dist/bytes.d.ts.map +0 -0
  3. package/dist/bytes.js +8 -11
  4. package/dist/bytes.js.map +1 -1
  5. package/dist/collection/CircularArray.d.ts +0 -0
  6. package/dist/collection/CircularArray.d.ts.map +0 -0
  7. package/dist/collection/CircularArray.js +4 -7
  8. package/dist/collection/CircularArray.js.map +1 -1
  9. package/dist/collection/EvictingDequeue.d.ts +0 -0
  10. package/dist/collection/EvictingDequeue.d.ts.map +0 -0
  11. package/dist/collection/EvictingDequeue.js +6 -23
  12. package/dist/collection/EvictingDequeue.js.map +1 -1
  13. package/dist/collection/collection.d.ts +3 -3
  14. package/dist/collection/collection.d.ts.map +1 -1
  15. package/dist/collection/collection.js +3 -22
  16. package/dist/collection/collection.js.map +1 -1
  17. package/dist/collection/collectionOperations.d.ts +0 -0
  18. package/dist/collection/collectionOperations.d.ts.map +0 -0
  19. package/dist/collection/collectionOperations.js +11 -22
  20. package/dist/collection/collectionOperations.js.map +1 -1
  21. package/dist/cons.d.ts +0 -0
  22. package/dist/cons.d.ts.map +0 -0
  23. package/dist/cons.js +3 -8
  24. package/dist/cons.js.map +1 -1
  25. package/dist/consts.d.ts +0 -0
  26. package/dist/consts.d.ts.map +0 -0
  27. package/dist/consts.js +1 -4
  28. package/dist/consts.js.map +1 -1
  29. package/dist/index.d.ts +12 -12
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +12 -48
  32. package/dist/index.js.map +1 -1
  33. package/dist/logger.d.ts +0 -0
  34. package/dist/logger.d.ts.map +0 -0
  35. package/dist/logger.js +8 -13
  36. package/dist/logger.js.map +1 -1
  37. package/dist/math.d.ts +0 -0
  38. package/dist/math.d.ts.map +0 -0
  39. package/dist/math.js +12 -26
  40. package/dist/math.js.map +1 -1
  41. package/dist/mime.js +3 -6
  42. package/dist/mime.js.map +1 -1
  43. package/dist/net/http/cookies.js +3 -8
  44. package/dist/net/http/cookies.js.map +1 -1
  45. package/dist/net/http/errors.js +2 -5
  46. package/dist/net/http/errors.js.map +1 -1
  47. package/dist/net/http/headers.js +2 -5
  48. package/dist/net/http/headers.js.map +1 -1
  49. package/dist/net/http/http.d.ts +4 -0
  50. package/dist/net/http/http.d.ts.map +1 -1
  51. package/dist/net/http/http.js +14 -14
  52. package/dist/net/http/http.js.map +1 -1
  53. package/dist/net/http/methods.js +2 -5
  54. package/dist/net/http/methods.js.map +1 -1
  55. package/dist/object.d.ts +0 -0
  56. package/dist/object.d.ts.map +0 -0
  57. package/dist/object.js +3 -8
  58. package/dist/object.js.map +1 -1
  59. package/dist/path/path.d.ts +1 -1
  60. package/dist/path/path.d.ts.map +1 -1
  61. package/dist/path/path.js +1 -0
  62. package/dist/path/path.js.map +0 -0
  63. package/dist/promises.d.ts +0 -0
  64. package/dist/promises.d.ts.map +0 -0
  65. package/dist/promises.js +2 -6
  66. package/dist/promises.js.map +1 -1
  67. package/dist/random.d.ts +0 -0
  68. package/dist/random.d.ts.map +0 -0
  69. package/dist/random.js +10 -19
  70. package/dist/random.js.map +1 -1
  71. package/dist/revivers.d.ts +0 -0
  72. package/dist/revivers.d.ts.map +0 -0
  73. package/dist/revivers.js +3 -8
  74. package/dist/revivers.js.map +1 -1
  75. package/dist/strings.d.ts +0 -0
  76. package/dist/strings.d.ts.map +0 -0
  77. package/dist/strings.js +9 -20
  78. package/dist/strings.js.map +1 -1
  79. package/dist/time/time.d.ts +0 -0
  80. package/dist/time/time.d.ts.map +0 -0
  81. package/dist/time/time.js +60 -74
  82. package/dist/time/time.js.map +1 -1
  83. package/dist/time/timer.d.ts +1 -1
  84. package/dist/time/timer.d.ts.map +1 -1
  85. package/dist/time/timer.js +55 -67
  86. package/dist/time/timer.js.map +1 -1
  87. package/dist/utils/task_duration_tracker.d.ts +1 -1
  88. package/dist/utils/task_duration_tracker.d.ts.map +1 -1
  89. package/dist/utils/task_duration_tracker.js +12 -15
  90. package/dist/utils/task_duration_tracker.js.map +1 -1
  91. package/dist/utils/utils.d.ts +1 -1
  92. package/dist/utils/utils.d.ts.map +1 -1
  93. package/dist/utils/utils.js +5 -11
  94. package/dist/utils/utils.js.map +1 -1
  95. package/package.json +6 -2
  96. package/dist/net/http.d.ts +0 -22
  97. package/dist/net/http.d.ts.map +0 -1
  98. package/dist/net/http.js +0 -74
  99. package/dist/net/http.js.map +0 -1
  100. package/dist/time.d.ts +0 -189
  101. package/dist/time.d.ts.map +0 -1
  102. package/dist/time.js +0 -308
  103. package/dist/time.js.map +0 -1
package/dist/time.js DELETED
@@ -1,308 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.leapMonths = exports.months = exports.december = exports.november = exports.october = exports.september = exports.august = exports.july = exports.june = exports.may = exports.april = exports.march = exports.february = exports.january = exports.leapFebruary = exports.leapYear = exports.year = exports.month = exports.solarYear = exports.week = exports.day = exports.hour = exports.minute = exports.second = exports.millis = exports.MAX_JS_DATE = void 0;
4
- exports.durationToMilliSeconds = durationToMilliSeconds;
5
- exports.millisecondsToDuration = millisecondsToDuration;
6
- exports.durationToSeconds = durationToSeconds;
7
- exports.isDurationBiggerThanInterval = isDurationBiggerThanInterval;
8
- exports.splitIntervalByDuration = splitIntervalByDuration;
9
- exports.multiplyDuration = multiplyDuration;
10
- exports.addDurations = addDurations;
11
- exports.isValidDate = isValidDate;
12
- exports.toSqlDate = toSqlDate;
13
- exports.intervalToDuration = intervalToDuration;
14
- exports.humanizeDuration = humanizeDuration;
15
- exports.MAX_JS_DATE = 8.64e15; // Sat Sep 13 275760 00:00:00 GMT+0000
16
- /** in millis */
17
- exports.millis = 1;
18
- /** in millis */
19
- exports.second = 1000 * exports.millis;
20
- /** in millis */
21
- exports.minute = 60 * exports.second;
22
- /** in millis */
23
- exports.hour = 60 * exports.minute;
24
- /** in millis */
25
- exports.day = 24 * exports.hour;
26
- /** in millis */
27
- exports.week = 7 * exports.day;
28
- /**
29
- * In millis
30
- * The average month is 365/12 = 30.42 days in a regular year and 366/12 = 30.50 days in a leap year. The Gregorian (western) solar calendar has 365.2425/12 = 30.436875 days on the average, varying between 28 and 31 days.
31
- */
32
- exports.solarYear = 365.25 * exports.day;
33
- /** in millis */
34
- exports.month = exports.solarYear / 12;
35
- /** in millis */
36
- exports.year = 365 * exports.day;
37
- /** 366 days */
38
- exports.leapYear = 366 * exports.day;
39
- /** 29 days */
40
- exports.leapFebruary = 29 * exports.day;
41
- /** in millis */
42
- exports.january = 31 * exports.day;
43
- /** in millis */
44
- exports.february = 28 * exports.day;
45
- /** in millis */
46
- exports.march = 31 * exports.day;
47
- /** in millis */
48
- exports.april = 30 * exports.day;
49
- /** in millis */
50
- exports.may = 31 * exports.day;
51
- /** in millis */
52
- exports.june = 30 * exports.day;
53
- /** in millis */
54
- exports.july = 31 * exports.day;
55
- /** in millis */
56
- exports.august = 31 * exports.day;
57
- /** in millis */
58
- exports.september = 30 * exports.day;
59
- /** in millis */
60
- exports.october = 31 * exports.day;
61
- /** in millis */
62
- exports.november = 30 * exports.day;
63
- /** in millis */
64
- exports.december = 31 * exports.day;
65
- exports.months = [exports.january, exports.february, exports.march, exports.april, exports.may, exports.june, exports.july, exports.august, exports.september, exports.october, exports.november, exports.december];
66
- exports.leapMonths = [exports.january, exports.leapFebruary, exports.march, exports.april, exports.may, exports.june, exports.july, exports.august, exports.september, exports.october, exports.november, exports.december];
67
- /**
68
- * parse a duration into millisecconds
69
- *
70
- * @example
71
- * ```js
72
- * durationToMilliSeconds({seconds:1}) // => 1000
73
- * durationToMilliSeconds({minutes:1}) // => 60_000
74
- * durationToMilliSeconds({hours:1}) // => 3_600_000
75
- * durationToMilliSeconds({minutes:1,seconds:1}) // => 61_000
76
- * durationToMilliSeconds({hours:1,minutes:1,seconds:1}) // => 3_661_000
77
- * ```
78
- */
79
- function durationToMilliSeconds(duration) {
80
- return (duration?.years || 0) * exports.year + (duration?.months || 0) * exports.month + (duration?.weeks || 0) * exports.week + (duration?.days || 0) * exports.day + (duration?.hours || 0) * exports.hour + (duration?.minutes || 0) * exports.minute + (duration?.seconds || 0) * exports.second + (duration?.milliseconds || 0) * exports.millis;
81
- }
82
- function millisecondsToDuration(millis) {
83
- const duration = {};
84
- duration.years = Math.floor(millis / exports.year);
85
- millis %= exports.year;
86
- duration.months = Math.floor(millis / exports.month);
87
- millis %= exports.month;
88
- duration.weeks = Math.floor(millis / exports.week);
89
- millis %= exports.week;
90
- duration.days = Math.floor(millis / exports.day);
91
- millis %= exports.day;
92
- duration.hours = Math.floor(millis / exports.hour);
93
- millis %= exports.hour;
94
- duration.minutes = Math.floor(millis / exports.minute);
95
- millis %= exports.minute;
96
- duration.seconds = Math.floor(millis / exports.second);
97
- millis %= exports.second;
98
- duration.milliseconds = millis;
99
- return duration;
100
- }
101
- /**
102
- * parse a duration into millisecconds
103
- *
104
- * @example
105
- * ```js
106
- * durationToMilliSeconds({seconds:1}) // => 1
107
- * durationToMilliSeconds({minutes:1}) // => 60
108
- * durationToMilliSeconds({hours:1}) // => 3_600
109
- * durationToMilliSeconds({minutes:1,seconds:1}) // => 61
110
- * durationToMilliSeconds({hours:1,minutes:1,seconds:1}) // => 3_661
111
- * ```
112
- */
113
- function durationToSeconds(duration) {
114
- return durationToMilliSeconds(duration) / exports.second;
115
- }
116
- /**
117
- * check if the duration is larger than the interval
118
- */
119
- function isDurationBiggerThanInterval(interval, duration) {
120
- const intervalSeconds = Math.abs(interval.end.getTime() - interval.start.getTime()) / 1000;
121
- const durationSeconds = durationToSeconds(duration);
122
- return durationSeconds > intervalSeconds;
123
- }
124
- /**
125
- * divide the given interval into smaller intervals, each having the duration equal to the given duration
126
- *
127
- * @example
128
- * ```js
129
- * const start=new Date('2000-01-01');
130
- * const end=new Date('2000-01-10');
131
- *
132
- * splitIntervalByDuration({start, end},{days:1});
133
- * // [
134
- * // {start:2000-01-01, end:2000-01-02},
135
- * // {start:2000-01-02, end:2000-01-03},
136
- * // {start:2000-01-03, end:2000-01-04},
137
- * // {start:2000-01-04, end:2000-01-05},
138
- * // {start:2000-01-05, end:2000-01-06},
139
- * // {start:2000-01-06, end:2000-01-07},
140
- * // {start:2000-01-07, end:2000-01-08},
141
- * // {start:2000-01-08, end:2000-01-09},
142
- * // {start:2000-01-09, end:2000-01-10},
143
- * // ]
144
- * ```
145
- */
146
- function splitIntervalByDuration(interval, duration) {
147
- if (!interval?.start || !interval?.end)
148
- return;
149
- if (isDurationBiggerThanInterval(interval, duration))
150
- return [interval];
151
- const intervals = [];
152
- var start = interval.start;
153
- while (start < interval.end) {
154
- let end = new Date(start.getTime() + durationToMilliSeconds(duration));
155
- if (end > interval.end)
156
- end = interval.end;
157
- intervals.push({ start, end });
158
- start = end;
159
- }
160
- return intervals;
161
- }
162
- /**
163
- * multiply the given duration
164
- *
165
- * @example
166
- * ```js
167
- * const duration={moths:2, days:3, hours:4};
168
- *
169
- * multiplyDuration(duration:Duration,multiplier:number) // => {moths:4, days:6, hours:8}
170
- * ```
171
- */
172
- function multiplyDuration(duration, multiplier) {
173
- return {
174
- years: duration.years * multiplier,
175
- months: duration.months * multiplier,
176
- weeks: duration.weeks * multiplier,
177
- days: duration.days * multiplier,
178
- hours: duration.hours * multiplier,
179
- minutes: duration.minutes * multiplier,
180
- seconds: duration.seconds * multiplier,
181
- };
182
- }
183
- /**
184
- * add the given durations
185
- *
186
- * @example
187
- * ```js
188
- * const duration1={moths:2, days:3, hours:4};
189
- * const duration2={moths:2, days:3, hours:4};
190
- * const duration3={moths:2, days:3, hours:4};
191
- *
192
- * addDurations(duration1,duration2,duration3) // => {moths:6, days:9, hours:12}
193
- * ```
194
- */
195
- function addDurations(...durations) {
196
- const retval = {
197
- years: 0,
198
- months: 0,
199
- weeks: 0,
200
- days: 0,
201
- hours: 0,
202
- minutes: 0,
203
- seconds: 0,
204
- };
205
- for (const duration of durations) {
206
- retval.years += duration.years || 0;
207
- retval.months += duration.months || 0;
208
- retval.weeks += duration.weeks || 0;
209
- retval.days += duration.days || 0;
210
- retval.hours += duration.hours || 0;
211
- retval.minutes += duration.minutes || 0;
212
- retval.seconds += duration.seconds || 0;
213
- }
214
- return retval;
215
- }
216
- function isValidDate(value) {
217
- return value instanceof Date && !isNaN(value.valueOf());
218
- }
219
- /**
220
- * Format a date into sql datetime value
221
- * @param date
222
- * @returns
223
- * * @example
224
- * ```js
225
- * const date = new Date();
226
- * toSqlDate() // => "2017-06-29 17:54:04"
227
- *
228
- */
229
- function toSqlDate(date) {
230
- return date.toISOString().slice(0, 19).replace('T', ' ');
231
- }
232
- /**
233
- * Convert an interval to a duration
234
- * @param interval
235
- * @returns
236
- *
237
- * @example
238
- * ```ts
239
- * const interval = { start: new Date('2000-01-01'), end: new Date('2000-01-10') };
240
- * const duration = IntervalToDuration(interval);
241
- * // { years: 0, months: 0, weeks: 0, days: 9, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }
242
- * ```
243
- */
244
- function intervalToDuration(interval) {
245
- if (interval.end === undefined) {
246
- throw new Error('Invalid interval, end date is missing: ' + JSON.stringify(interval));
247
- }
248
- if (interval.start === undefined) {
249
- throw new Error('Invalid interval, start date is missing: ' + JSON.stringify(interval));
250
- }
251
- const start = interval.start.getTime();
252
- const end = interval.end.getTime();
253
- if (start > end) {
254
- throw new Error('Invalid interval, end date is before start date: ' + JSON.stringify(interval));
255
- }
256
- let durationInMs = end - start;
257
- const duration = millisecondsToDuration(durationInMs);
258
- return duration;
259
- }
260
- /**
261
- * Humanize a duration object into a human-readable string.
262
- * @example
263
- * ```js
264
- * const duration = { years: 1, months: 2, days: 3, hours: 4, minutes: 5, seconds: 6 };
265
- * humanizeDuration(duration) // => "1 year, 2 months, 3 days, 4 hours, 5 minutes and 6 seconds"
266
- * ```
267
- * * @example
268
- * ```js
269
- * const duration = { seconds: 4000 };
270
- * humanizeDuration(duration) // => "1 hour, 6 minutes and 40 seconds"
271
- * ```
272
- * @param inDuration
273
- * @param options
274
- * @returns
275
- */
276
- function humanizeDuration(inDuration, options) {
277
- let duration = { ...inDuration };
278
- if (options?.reduce) {
279
- duration = millisecondsToDuration(durationToMilliSeconds(duration));
280
- }
281
- const parts = [];
282
- if (duration.years)
283
- parts.push(`${duration.years} year${duration.years > 1 ? 's' : ''}`);
284
- if (duration.months)
285
- parts.push(`${duration.months} month${duration.months > 1 ? 's' : ''}`);
286
- if (duration.weeks)
287
- parts.push(`${duration.weeks} week${duration.weeks > 1 ? 's' : ''}`);
288
- if (duration.days)
289
- parts.push(`${duration.days} day${duration.days > 1 ? 's' : ''}`);
290
- if (duration.hours)
291
- parts.push(`${duration.hours} hour${duration.hours > 1 ? 's' : ''}`);
292
- if (duration.minutes)
293
- parts.push(`${duration.minutes} minute${duration.minutes > 1 ? 's' : ''}`);
294
- if (duration.seconds)
295
- parts.push(`${duration.seconds} second${duration.seconds > 1 ? 's' : ''}`);
296
- if (duration.milliseconds)
297
- parts.push(`${duration.milliseconds} millisecond${duration.milliseconds > 1 ? 's' : ''}`);
298
- // handle singular case
299
- if (parts.length === 1) {
300
- return parts[0];
301
- }
302
- if (parts.length === 0) {
303
- return '0 milliseconds';
304
- }
305
- const last = parts.pop();
306
- return parts.join(', ') + ' and ' + last;
307
- }
308
- //# sourceMappingURL=time.js.map
package/dist/time.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"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"}