@my-devkit/core 1.0.107 → 1.0.109

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.
@@ -2,7 +2,19 @@ export declare class DateHelper {
2
2
  static getUTCTimestamp(): number;
3
3
  static getElapsedTime(startDate: Date, endDate?: Date): number;
4
4
  static getReadableElapsedTime(startDate: Date, endDate?: Date, short?: boolean): string;
5
+ static format(date: Date, format: DateHelper.Format): string;
6
+ static getFormat(formatedDate: string): DateHelper.Format;
7
+ static getAverage(...dates: Date[]): Date;
8
+ static addYears(startDate: Date, numberOfYears: number): Date;
9
+ static addMonths(startDate: Date, numberOfMonths: number): Date;
5
10
  static addDays(startDate: Date, numberOfDays: number): Date;
11
+ static addHours(startDate: Date, numberOfHours: number): Date;
12
+ static addMinutes(startDate: Date, numberOfMinutes: number): Date;
13
+ static addSeconds(startDate: Date, numberOfSeconds: number): Date;
14
+ static addMiliseconds(startDate: Date, numberOfMiliseconds: number): Date;
6
15
  static getDay(date: Date): string;
7
16
  static getMilitaryTime(date: Date): string;
8
17
  }
18
+ export declare namespace DateHelper {
19
+ type Format = 'year' | 'quarter' | 'month';
20
+ }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DateHelper = void 0;
4
+ const vendors_1 = require("./vendors");
4
5
  class DateHelper {
5
6
  static getUTCTimestamp() {
6
7
  const now = new Date;
@@ -28,8 +29,59 @@ class DateHelper {
28
29
  }
29
30
  return `${miliseconds} ms`;
30
31
  }
32
+ static format(date, format) {
33
+ const year = date.getUTCFullYear();
34
+ const quarter = Math.floor(date.getUTCMonth() / 3) + 1;
35
+ const month = `00${date.getUTCMonth() + 1}`.slice(-2);
36
+ switch (format) {
37
+ case 'year':
38
+ return `${year}`;
39
+ case 'quarter':
40
+ return `${year}-Q${quarter}`;
41
+ case 'month':
42
+ return `${year}-${month}`;
43
+ default:
44
+ return format;
45
+ }
46
+ }
47
+ static getFormat(formatedDate) {
48
+ switch (true) {
49
+ case /^\d{4}$/.test(formatedDate):
50
+ return 'year';
51
+ case /^\d{4}-Q[1-4]$/.test(formatedDate):
52
+ return 'quarter';
53
+ case /^\d{4}-(0[1-9]|1[0-2])$/.test(formatedDate):
54
+ return 'month';
55
+ default:
56
+ throw new Error(`Date '${formatedDate}' does not have a supported format!`);
57
+ }
58
+ }
59
+ static getAverage(...dates) {
60
+ if (dates.length === 0)
61
+ return null;
62
+ const averageTime = (0, vendors_1._sumBy)(dates, d => d.getTime()) / dates.length;
63
+ return new Date(averageTime);
64
+ }
65
+ static addYears(startDate, numberOfYears) {
66
+ return new Date(Date.UTC(startDate.getUTCFullYear() + numberOfYears, startDate.getUTCMonth(), startDate.getUTCDate(), startDate.getUTCHours(), startDate.getUTCMinutes(), startDate.getUTCSeconds(), startDate.getUTCMilliseconds()));
67
+ }
68
+ static addMonths(startDate, numberOfMonths) {
69
+ return new Date(Date.UTC(startDate.getUTCFullYear(), startDate.getUTCMonth() + numberOfMonths, startDate.getUTCDate(), startDate.getUTCHours(), startDate.getUTCMinutes(), startDate.getUTCSeconds(), startDate.getUTCMilliseconds()));
70
+ }
31
71
  static addDays(startDate, numberOfDays) {
32
- return new Date(Date.UTC(startDate.getUTCFullYear(), startDate.getUTCMonth(), startDate.getUTCDate() + numberOfDays, startDate.getUTCHours(), startDate.getUTCMinutes(), startDate.getUTCSeconds()));
72
+ return new Date(Date.UTC(startDate.getUTCFullYear(), startDate.getUTCMonth(), startDate.getUTCDate() + numberOfDays, startDate.getUTCHours(), startDate.getUTCMinutes(), startDate.getUTCSeconds(), startDate.getUTCMilliseconds()));
73
+ }
74
+ static addHours(startDate, numberOfHours) {
75
+ return this.addMinutes(startDate, 60 * numberOfHours);
76
+ }
77
+ static addMinutes(startDate, numberOfMinutes) {
78
+ return this.addSeconds(startDate, 60 * numberOfMinutes);
79
+ }
80
+ static addSeconds(startDate, numberOfSeconds) {
81
+ return this.addMiliseconds(startDate, 1000 * numberOfSeconds);
82
+ }
83
+ static addMiliseconds(startDate, numberOfMiliseconds) {
84
+ return new Date(Date.UTC(startDate.getUTCFullYear(), startDate.getUTCMonth(), startDate.getUTCDate(), startDate.getUTCHours(), startDate.getUTCMinutes(), startDate.getUTCSeconds(), startDate.getUTCMilliseconds() + numberOfMiliseconds));
33
85
  }
34
86
  static getDay(date) {
35
87
  return date ? new Date(date).toISOString().substring(0, 10) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"date-helper.js","sourceRoot":"","sources":["../src/date-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-helper.js","sourceRoot":"","sources":["../src/date-helper.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,12 @@ class JsonHelper {
12
12
  }
13
13
  }
14
14
  static parse(body) {
15
- return JSON.parse(body, JsonHelper.dateParser.bind(this));
15
+ try {
16
+ return JSON.parse(body, JsonHelper.dateParser.bind(this));
17
+ }
18
+ catch (_a) {
19
+ return null;
20
+ }
16
21
  }
17
22
  static stringify(value) {
18
23
  return JSON.stringify(value);
@@ -1 +1 @@
1
- {"version":3,"file":"json-helper.js","sourceRoot":"","sources":["../src/json-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACZ,MAAM,CAAC,MAAM,CAAC,IAAY;QAC7B,IAAI;YACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;SACf;QAAC,WAAM;YACJ,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAI,IAAY;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,SAAS,CAAI,KAAQ;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,KAAU;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAY;QACvC,OAAO,wGAAwG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/H,CAAC;CACJ;AA5BD,gCA4BC"}
1
+ {"version":3,"file":"json-helper.js","sourceRoot":"","sources":["../src/json-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACZ,MAAM,CAAC,MAAM,CAAC,IAAY;QAC7B,IAAI;YACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;SACf;QAAC,WAAM;YACJ,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAI,IAAY;QAC/B,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7D;QAAC,WAAM;YACJ,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAEM,MAAM,CAAC,SAAS,CAAI,KAAQ;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,KAAU;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAY;QACvC,OAAO,wGAAwG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/H,CAAC;CACJ;AAhCD,gCAgCC"}
@@ -1 +1 @@
1
- export { chunk as _chunk, cloneDeep as _cloneDeep, compact as _compact, deburr as _deburr, findLastIndex as _findLastIndex, first as _first, flatten as _flatten, flattenDeep as _flattenDeep, get as _get, groupBy as _groupBy, isArray as _isArray, isBoolean as _isBoolean, isDate as _isDate, isEqual as _isEqual, isNil as _isNil, isObjectLike as _isObjectLike, isString as _isString, kebabCase as _kebabCase, keys as _keys, last as _last, lowerFirst as _lowerFirst, maxBy as _maxBy, minBy as _minBy, orderBy as _orderBy, padStart as _padStart, set as _set, shuffle as _shuffle, sortBy as _sortBy, sum as _sum, sumBy as _sumBy, trim as _trim, trimEnd as _trimEnd, trimStart as _trimStart, uniq as _uniq, uniqBy as _uniqBy, upperFirst as _upperFirst, values as _values, words as _words } from 'lodash';
1
+ export { chunk as _chunk, cloneDeep as _cloneDeep, compact as _compact, deburr as _deburr, findLastIndex as _findLastIndex, first as _first, flatten as _flatten, flattenDeep as _flattenDeep, get as _get, groupBy as _groupBy, isArray as _isArray, isBoolean as _isBoolean, isDate as _isDate, isEqual as _isEqual, isNil as _isNil, isObjectLike as _isObjectLike, isString as _isString, kebabCase as _kebabCase, keys as _keys, last as _last, lowerFirst as _lowerFirst, maxBy as _maxBy, minBy as _minBy, orderBy as _orderBy, padStart as _padStart, random as _random, set as _set, shuffle as _shuffle, sortBy as _sortBy, sum as _sum, sumBy as _sumBy, trim as _trim, trimEnd as _trimEnd, trimStart as _trimStart, uniq as _uniq, uniqBy as _uniqBy, upperFirst as _upperFirst, values as _values, words as _words } from 'lodash';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._words = exports._values = exports._upperFirst = exports._uniqBy = exports._uniq = exports._trimStart = exports._trimEnd = exports._trim = exports._sumBy = exports._sum = exports._sortBy = exports._shuffle = exports._set = exports._padStart = exports._orderBy = exports._minBy = exports._maxBy = exports._lowerFirst = exports._last = exports._keys = exports._kebabCase = exports._isString = exports._isObjectLike = exports._isNil = exports._isEqual = exports._isDate = exports._isBoolean = exports._isArray = exports._groupBy = exports._get = exports._flattenDeep = exports._flatten = exports._first = exports._findLastIndex = exports._deburr = exports._compact = exports._cloneDeep = exports._chunk = void 0;
3
+ exports._words = exports._values = exports._upperFirst = exports._uniqBy = exports._uniq = exports._trimStart = exports._trimEnd = exports._trim = exports._sumBy = exports._sum = exports._sortBy = exports._shuffle = exports._set = exports._random = exports._padStart = exports._orderBy = exports._minBy = exports._maxBy = exports._lowerFirst = exports._last = exports._keys = exports._kebabCase = exports._isString = exports._isObjectLike = exports._isNil = exports._isEqual = exports._isDate = exports._isBoolean = exports._isArray = exports._groupBy = exports._get = exports._flattenDeep = exports._flatten = exports._first = exports._findLastIndex = exports._deburr = exports._compact = exports._cloneDeep = exports._chunk = void 0;
4
4
  var lodash_1 = require("lodash");
5
5
  Object.defineProperty(exports, "_chunk", { enumerable: true, get: function () { return lodash_1.chunk; } });
6
6
  Object.defineProperty(exports, "_cloneDeep", { enumerable: true, get: function () { return lodash_1.cloneDeep; } });
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "_maxBy", { enumerable: true, get: function () {
27
27
  Object.defineProperty(exports, "_minBy", { enumerable: true, get: function () { return lodash_1.minBy; } });
28
28
  Object.defineProperty(exports, "_orderBy", { enumerable: true, get: function () { return lodash_1.orderBy; } });
29
29
  Object.defineProperty(exports, "_padStart", { enumerable: true, get: function () { return lodash_1.padStart; } });
30
+ Object.defineProperty(exports, "_random", { enumerable: true, get: function () { return lodash_1.random; } });
30
31
  Object.defineProperty(exports, "_set", { enumerable: true, get: function () { return lodash_1.set; } });
31
32
  Object.defineProperty(exports, "_shuffle", { enumerable: true, get: function () { return lodash_1.shuffle; } });
32
33
  Object.defineProperty(exports, "_sortBy", { enumerable: true, get: function () { return lodash_1.sortBy; } });
@@ -1 +1 @@
1
- {"version":3,"file":"lodash.js","sourceRoot":"","sources":["../../src/vendors/lodash.ts"],"names":[],"mappings":";;;AAAA,iCAuCgB;AAtCZ,gGAAA,KAAK,OAAU;AACf,oGAAA,SAAS,OAAc;AACvB,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,wGAAA,aAAa,OAAkB;AAC/B,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,sGAAA,WAAW,OAAgB;AAC3B,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,iGAAA,MAAM,OAAW;AACjB,kGAAA,OAAO,OAAY;AACnB,gGAAA,KAAK,OAAU;AACf,uGAAA,YAAY,OAAiB;AAC7B,mGAAA,QAAQ,OAAa;AACrB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,+FAAA,IAAI,OAAS;AACb,qGAAA,UAAU,OAAe;AACzB,gGAAA,KAAK,OAAU;AACf,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,mGAAA,QAAQ,OAAa;AACrB,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,gGAAA,KAAK,OAAU;AACf,+FAAA,IAAI,OAAS;AACb,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,iGAAA,MAAM,OAAW;AACjB,qGAAA,UAAU,OAAe;AACzB,iGAAA,MAAM,OAAW;AACjB,gGAAA,KAAK,OAAU"}
1
+ {"version":3,"file":"lodash.js","sourceRoot":"","sources":["../../src/vendors/lodash.ts"],"names":[],"mappings":";;;AAAA,iCAwCgB;AAvCZ,gGAAA,KAAK,OAAU;AACf,oGAAA,SAAS,OAAc;AACvB,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,wGAAA,aAAa,OAAkB;AAC/B,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,sGAAA,WAAW,OAAgB;AAC3B,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,iGAAA,MAAM,OAAW;AACjB,kGAAA,OAAO,OAAY;AACnB,gGAAA,KAAK,OAAU;AACf,uGAAA,YAAY,OAAiB;AAC7B,mGAAA,QAAQ,OAAa;AACrB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,+FAAA,IAAI,OAAS;AACb,qGAAA,UAAU,OAAe;AACzB,gGAAA,KAAK,OAAU;AACf,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,mGAAA,QAAQ,OAAa;AACrB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,gGAAA,KAAK,OAAU;AACf,+FAAA,IAAI,OAAS;AACb,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,iGAAA,MAAM,OAAW;AACjB,qGAAA,UAAU,OAAe;AACzB,iGAAA,MAAM,OAAW;AACjB,gGAAA,KAAK,OAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@my-devkit/core",
3
- "version": "1.0.107",
3
+ "version": "1.0.109",
4
4
  "description": "My Devkit: common tools",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -1,3 +1,5 @@
1
+ import { _sumBy } from './vendors';
2
+
1
3
  export class DateHelper {
2
4
  public static getUTCTimestamp(): number {
3
5
  const now = new Date;
@@ -33,6 +35,72 @@ export class DateHelper {
33
35
  return `${miliseconds} ms`;
34
36
  }
35
37
 
38
+ public static format(date: Date, format: DateHelper.Format): string {
39
+ const year = date.getUTCFullYear();
40
+ const quarter = Math.floor(date.getUTCMonth() / 3) + 1;
41
+ const month = `00${date.getUTCMonth() + 1}`.slice(-2);
42
+
43
+ switch (format) {
44
+ case 'year':
45
+ return `${year}`;
46
+ case 'quarter':
47
+ return `${year}-Q${quarter}`;
48
+ case 'month':
49
+ return `${year}-${month}`;
50
+
51
+ default:
52
+ return format satisfies never;
53
+ }
54
+ }
55
+
56
+ public static getFormat(formatedDate: string): DateHelper.Format {
57
+ switch (true) {
58
+ case /^\d{4}$/.test(formatedDate):
59
+ return 'year';
60
+ case /^\d{4}-Q[1-4]$/.test(formatedDate):
61
+ return 'quarter';
62
+ case /^\d{4}-(0[1-9]|1[0-2])$/.test(formatedDate):
63
+ return 'month';
64
+
65
+ default:
66
+ throw new Error(`Date '${formatedDate}' does not have a supported format!`);
67
+ }
68
+ }
69
+
70
+ public static getAverage(...dates: Date[]): Date {
71
+ if (dates.length === 0)
72
+ return null;
73
+
74
+ const averageTime = _sumBy(dates, d => d.getTime()) / dates.length;
75
+
76
+ return new Date(averageTime);
77
+ }
78
+
79
+ public static addYears(startDate: Date, numberOfYears: number): Date {
80
+ return new Date(Date.UTC(
81
+ startDate.getUTCFullYear() + numberOfYears,
82
+ startDate.getUTCMonth(),
83
+ startDate.getUTCDate(),
84
+ startDate.getUTCHours(),
85
+ startDate.getUTCMinutes(),
86
+ startDate.getUTCSeconds(),
87
+ startDate.getUTCMilliseconds()
88
+ ));
89
+ }
90
+
91
+
92
+ public static addMonths(startDate: Date, numberOfMonths: number): Date {
93
+ return new Date(Date.UTC(
94
+ startDate.getUTCFullYear(),
95
+ startDate.getUTCMonth() + numberOfMonths,
96
+ startDate.getUTCDate(),
97
+ startDate.getUTCHours(),
98
+ startDate.getUTCMinutes(),
99
+ startDate.getUTCSeconds(),
100
+ startDate.getUTCMilliseconds()
101
+ ));
102
+ }
103
+
36
104
  public static addDays(startDate: Date, numberOfDays: number): Date {
37
105
  return new Date(Date.UTC(
38
106
  startDate.getUTCFullYear(),
@@ -40,7 +108,32 @@ export class DateHelper {
40
108
  startDate.getUTCDate() + numberOfDays,
41
109
  startDate.getUTCHours(),
42
110
  startDate.getUTCMinutes(),
43
- startDate.getUTCSeconds()
111
+ startDate.getUTCSeconds(),
112
+ startDate.getUTCMilliseconds()
113
+ ));
114
+ }
115
+
116
+ public static addHours(startDate: Date, numberOfHours: number): Date {
117
+ return this.addMinutes(startDate, 60 * numberOfHours);
118
+ }
119
+
120
+ public static addMinutes(startDate: Date, numberOfMinutes: number): Date {
121
+ return this.addSeconds(startDate, 60 * numberOfMinutes);
122
+ }
123
+
124
+ public static addSeconds(startDate: Date, numberOfSeconds: number): Date {
125
+ return this.addMiliseconds(startDate, 1000 * numberOfSeconds);
126
+ }
127
+
128
+ public static addMiliseconds(startDate: Date, numberOfMiliseconds: number): Date {
129
+ return new Date(Date.UTC(
130
+ startDate.getUTCFullYear(),
131
+ startDate.getUTCMonth(),
132
+ startDate.getUTCDate(),
133
+ startDate.getUTCHours(),
134
+ startDate.getUTCMinutes(),
135
+ startDate.getUTCSeconds(),
136
+ startDate.getUTCMilliseconds() + numberOfMiliseconds
44
137
  ));
45
138
  }
46
139
 
@@ -59,3 +152,7 @@ export class DateHelper {
59
152
  return `${('00' + hours).slice(-2)}:${('00' + minute).slice(-2)}`;
60
153
  }
61
154
  }
155
+
156
+ export namespace DateHelper {
157
+ export type Format = 'year' | 'quarter' | 'month';
158
+ }
@@ -9,7 +9,11 @@ export class JsonHelper {
9
9
  }
10
10
 
11
11
  public static parse<T>(body: string): T {
12
- return JSON.parse(body, JsonHelper.dateParser.bind(this));
12
+ try {
13
+ return JSON.parse(body, JsonHelper.dateParser.bind(this));
14
+ } catch {
15
+ return null;
16
+ }
13
17
  }
14
18
 
15
19
  public static stringify<T>(value: T): string {
@@ -24,6 +24,7 @@ export {
24
24
  minBy as _minBy,
25
25
  orderBy as _orderBy,
26
26
  padStart as _padStart,
27
+ random as _random,
27
28
  set as _set,
28
29
  shuffle as _shuffle,
29
30
  sortBy as _sortBy,