nhb-toolbox 4.29.1 → 4.29.20
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/CHANGELOG.md +10 -0
- package/dist/cjs/array/Finder.js +16 -20
- package/dist/cjs/array/sort.js +4 -4
- package/dist/cjs/colors/Color.js +2 -3
- package/dist/cjs/colors/convert.js +2 -2
- package/dist/cjs/colors/helpers.js +1 -7
- package/dist/cjs/colors/initials.js +5 -3
- package/dist/cjs/colors/utils.js +34 -7
- package/dist/cjs/date/chronos-fn.js +4 -2
- package/dist/cjs/date/guards.js +13 -15
- package/dist/cjs/date/utils.js +40 -4
- package/dist/cjs/dom/query.js +5 -8
- package/dist/cjs/form/convert.js +2 -2
- package/dist/cjs/form/guards.js +2 -1
- package/dist/cjs/form/transform.js +4 -3
- package/dist/cjs/index.js +11 -6
- package/dist/cjs/number/basics.js +8 -5
- package/dist/cjs/number/guards.js +10 -2
- package/dist/cjs/pluralizer/Pluralizer.js +3 -3
- package/dist/cjs/string/convert.js +2 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/dts/colors/helpers.d.ts +0 -8
- package/dist/dts/colors/utils.d.ts +64 -3
- package/dist/dts/converter/Converter.d.ts +1 -1
- package/dist/dts/date/utils.d.ts +21 -2
- package/dist/dts/index.d.ts +2 -2
- package/dist/dts/number/guards.d.ts +5 -4
- package/dist/esm/array/Finder.js +16 -20
- package/dist/esm/array/sort.js +4 -4
- package/dist/esm/colors/Color.js +3 -4
- package/dist/esm/colors/convert.js +4 -4
- package/dist/esm/colors/helpers.js +0 -5
- package/dist/esm/colors/initials.js +6 -4
- package/dist/esm/colors/utils.js +31 -5
- package/dist/esm/converter/Converter.js +1 -1
- package/dist/esm/date/chronos-fn.js +4 -2
- package/dist/esm/date/guards.js +14 -16
- package/dist/esm/date/plugins/timeZonePlugin.js +1 -1
- package/dist/esm/date/utils.js +39 -4
- package/dist/esm/dom/query.js +5 -8
- package/dist/esm/form/convert.js +3 -3
- package/dist/esm/form/guards.js +2 -1
- package/dist/esm/form/transform.js +4 -3
- package/dist/esm/index.js +2 -2
- package/dist/esm/number/basics.js +9 -6
- package/dist/esm/number/guards.js +10 -2
- package/dist/esm/pluralizer/Pluralizer.js +4 -4
- package/dist/esm/string/convert.js +2 -1
- package/dist/esm/utils/index.js +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
All notable changes to the package will be documented here.
|
|
6
6
|
|
|
7
|
+
## [4.29.20] - 2026-04-03
|
|
8
|
+
|
|
9
|
+
- **Updated** `isEven` and `isOdd` utilities to accept *numeric string* and return `false` for `NaN` and *non-integer* values.
|
|
10
|
+
- **Replaced** manual type checks with *type guards* internally for better *type safety* and *code readability*.
|
|
11
|
+
|
|
12
|
+
## [4.29.10] - 2026-03-27
|
|
13
|
+
|
|
14
|
+
- **Added** new *color utlities* `applyOpacityToHex` and `percentToHex` for working with *hex colors* and *opacity*.
|
|
15
|
+
- **Added** new *date utility* `formatDateRelative` to format a date as a relative time string (e.g., `"5m ago"`, `"2h from now"`, etc.) with an optional *custom format* for dates older than a week.
|
|
16
|
+
|
|
7
17
|
## [4.29.1] - 2026-03-27
|
|
8
18
|
|
|
9
19
|
- **Updated** `getLevenshteinDistance` utility to be more *efficient* by using a *single-dimensional array* instead of a *matrix* for storing intermediate distances.
|
package/dist/cjs/array/Finder.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Finder = void 0;
|
|
4
|
+
const non_primitives_1 = require("../guards/non-primitives");
|
|
5
|
+
const primitives_1 = require("../guards/primitives");
|
|
4
6
|
class Finder {
|
|
5
7
|
static #DEFAULT_TTL = 1000 * 60 * 5;
|
|
6
8
|
#cachedResult = new Map();
|
|
@@ -9,7 +11,7 @@ class Finder {
|
|
|
9
11
|
#items;
|
|
10
12
|
constructor(data, ttl = Finder.#DEFAULT_TTL) {
|
|
11
13
|
this.#ttl = ttl;
|
|
12
|
-
this.#items =
|
|
14
|
+
this.#items = (0, non_primitives_1.isFunction)(data) ? data() : data;
|
|
13
15
|
}
|
|
14
16
|
clearCache(key) {
|
|
15
17
|
if (key) {
|
|
@@ -21,14 +23,14 @@ class Finder {
|
|
|
21
23
|
}
|
|
22
24
|
findAll(matcher, keySelector, options) {
|
|
23
25
|
const { fuzzy = false, needSorting = true, cacheKey = 'finder-cache', forceBinary = false, caseInsensitive = true, data, } = options ?? {};
|
|
24
|
-
const source =
|
|
26
|
+
const source = (0, non_primitives_1.isFunction)(data) ? data() : (data ?? this.#items);
|
|
25
27
|
if (!source?.length)
|
|
26
28
|
return [];
|
|
27
29
|
const rawGetKey = typeof keySelector === 'function'
|
|
28
30
|
? keySelector
|
|
29
31
|
: (item) => item[keySelector];
|
|
30
32
|
const getKey = Finder.#createMemoizedKeyGetter(rawGetKey);
|
|
31
|
-
const normalizedMatcher = caseInsensitive &&
|
|
33
|
+
const normalizedMatcher = caseInsensitive && (0, primitives_1.isString)(matcher) ? matcher.toLowerCase() : matcher;
|
|
32
34
|
if (cacheKey) {
|
|
33
35
|
const entry = this.#cachedResult.get(cacheKey);
|
|
34
36
|
if (entry && Date.now() - entry.timestamp < this.#ttl) {
|
|
@@ -42,7 +44,7 @@ class Finder {
|
|
|
42
44
|
if (source.length < 100 && !forceBinary) {
|
|
43
45
|
results = source.filter((item) => {
|
|
44
46
|
const key = getKey(item);
|
|
45
|
-
const value = caseInsensitive &&
|
|
47
|
+
const value = caseInsensitive && (0, primitives_1.isString)(key) ? key.toLowerCase() : key;
|
|
46
48
|
return value === normalizedMatcher;
|
|
47
49
|
});
|
|
48
50
|
}
|
|
@@ -51,22 +53,18 @@ class Finder {
|
|
|
51
53
|
const firstMatch = this.binarySearch(sorted, normalizedMatcher, getKey, caseInsensitive);
|
|
52
54
|
if (firstMatch) {
|
|
53
55
|
const baseKey = getKey(firstMatch);
|
|
54
|
-
const base = caseInsensitive &&
|
|
55
|
-
? baseKey.toLowerCase()
|
|
56
|
-
: baseKey;
|
|
56
|
+
const base = caseInsensitive && (0, primitives_1.isString)(baseKey) ? baseKey.toLowerCase() : baseKey;
|
|
57
57
|
results = sorted.filter((item) => {
|
|
58
58
|
const key = getKey(item);
|
|
59
|
-
const value = caseInsensitive &&
|
|
59
|
+
const value = caseInsensitive && (0, primitives_1.isString)(key) ? key.toLowerCase() : key;
|
|
60
60
|
return value === base;
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
if (!results.length && fuzzy &&
|
|
64
|
+
if (!results.length && fuzzy && (0, primitives_1.isString)(normalizedMatcher)) {
|
|
65
65
|
results = source.filter((item) => {
|
|
66
66
|
const rawKey = getKey(item);
|
|
67
|
-
const key = caseInsensitive &&
|
|
68
|
-
? rawKey.toLowerCase()
|
|
69
|
-
: String(rawKey);
|
|
67
|
+
const key = caseInsensitive && (0, primitives_1.isString)(rawKey) ? rawKey.toLowerCase() : String(rawKey);
|
|
70
68
|
return this.#match(key, normalizedMatcher);
|
|
71
69
|
});
|
|
72
70
|
}
|
|
@@ -80,14 +78,14 @@ class Finder {
|
|
|
80
78
|
}
|
|
81
79
|
findOne(matcher, keySelector, options) {
|
|
82
80
|
const { fuzzy = false, needSorting = true, cacheKey = 'finder-cache', forceBinary = false, caseInsensitive = true, data, } = options ?? {};
|
|
83
|
-
const source =
|
|
81
|
+
const source = (0, non_primitives_1.isFunction)(data) ? data() : (data ?? this.#items);
|
|
84
82
|
if (!source?.length)
|
|
85
83
|
return undefined;
|
|
86
84
|
const rawGetKey = typeof keySelector === 'function'
|
|
87
85
|
? keySelector
|
|
88
86
|
: (item) => item[keySelector];
|
|
89
87
|
const getKey = Finder.#createMemoizedKeyGetter(rawGetKey);
|
|
90
|
-
const normalizedMatcher = caseInsensitive &&
|
|
88
|
+
const normalizedMatcher = caseInsensitive && (0, primitives_1.isString)(matcher) ? matcher.toLowerCase() : matcher;
|
|
91
89
|
if (cacheKey) {
|
|
92
90
|
const entry = this.#cachedResult.get(cacheKey);
|
|
93
91
|
if (entry && Date.now() - entry.timestamp < this.#ttl) {
|
|
@@ -101,14 +99,14 @@ class Finder {
|
|
|
101
99
|
if (source?.length < 100 && !forceBinary) {
|
|
102
100
|
result = source?.find((item) => {
|
|
103
101
|
const key = getKey(item);
|
|
104
|
-
const value = caseInsensitive &&
|
|
102
|
+
const value = caseInsensitive && (0, primitives_1.isString)(key) ? key.toLowerCase() : key;
|
|
105
103
|
return value === normalizedMatcher;
|
|
106
104
|
});
|
|
107
105
|
}
|
|
108
106
|
else {
|
|
109
107
|
result = this.binarySearch(needSorting ? this.#sortAndCache(source, getKey, cacheKey) : source, normalizedMatcher, getKey, caseInsensitive);
|
|
110
108
|
}
|
|
111
|
-
if (!result && fuzzy &&
|
|
109
|
+
if (!result && fuzzy && (0, primitives_1.isString)(normalizedMatcher)) {
|
|
112
110
|
return this.fuzzySearch(source, normalizedMatcher, getKey, caseInsensitive);
|
|
113
111
|
}
|
|
114
112
|
if (cacheKey && result) {
|
|
@@ -132,7 +130,7 @@ class Finder {
|
|
|
132
130
|
while (min <= max) {
|
|
133
131
|
const mid = Math.floor((min + max) / 2);
|
|
134
132
|
const midKey = keySelector(sorted[mid]);
|
|
135
|
-
const key = caseInsensitive &&
|
|
133
|
+
const key = caseInsensitive && (0, primitives_1.isString)(midKey) ? midKey.toLowerCase() : midKey;
|
|
136
134
|
if (key === matcher)
|
|
137
135
|
return sorted[mid];
|
|
138
136
|
if (key < matcher)
|
|
@@ -145,9 +143,7 @@ class Finder {
|
|
|
145
143
|
fuzzySearch(array, matcher, keySelector, caseInsensitive) {
|
|
146
144
|
for (const item of array) {
|
|
147
145
|
const rawKey = keySelector(item);
|
|
148
|
-
const key = caseInsensitive &&
|
|
149
|
-
? rawKey.toLowerCase()
|
|
150
|
-
: String(rawKey);
|
|
146
|
+
const key = caseInsensitive && (0, primitives_1.isString)(rawKey) ? rawKey.toLowerCase() : String(rawKey);
|
|
151
147
|
if (this.#match(key, matcher))
|
|
152
148
|
return item;
|
|
153
149
|
}
|
package/dist/cjs/array/sort.js
CHANGED
|
@@ -36,18 +36,18 @@ function naturalSort(a, b, options) {
|
|
|
36
36
|
for (let i = 0; i < Math.min(aChunks?.length, bChunks?.length); i++) {
|
|
37
37
|
let aChunk = aChunks[i];
|
|
38
38
|
let bChunk = bChunks[i];
|
|
39
|
-
if (caseInsensitive &&
|
|
39
|
+
if (caseInsensitive && (0, primitives_1.isString)(aChunk) && (0, primitives_1.isString)(bChunk)) {
|
|
40
40
|
aChunk = aChunk?.toLowerCase();
|
|
41
41
|
bChunk = bChunk?.toLowerCase();
|
|
42
42
|
}
|
|
43
43
|
if (typeof aChunk !== typeof bChunk) {
|
|
44
|
-
return
|
|
44
|
+
return (0, primitives_1.isString)(aChunk) ? 1 : -1;
|
|
45
45
|
}
|
|
46
46
|
if (aChunk !== bChunk) {
|
|
47
|
-
if (
|
|
47
|
+
if ((0, primitives_1.isNumber)(aChunk) && (0, primitives_1.isNumber)(bChunk)) {
|
|
48
48
|
return aChunk - bChunk;
|
|
49
49
|
}
|
|
50
|
-
if (
|
|
50
|
+
if ((0, primitives_1.isString)(aChunk) && (0, primitives_1.isString)(bChunk)) {
|
|
51
51
|
if (localeAware) {
|
|
52
52
|
const cmp = aChunk.localeCompare(bChunk, undefined, {
|
|
53
53
|
sensitivity: caseInsensitive ? 'accent' : 'variant',
|
package/dist/cjs/colors/Color.js
CHANGED
|
@@ -6,7 +6,6 @@ const primitives_1 = require("../guards/primitives");
|
|
|
6
6
|
const convert_1 = require("./convert");
|
|
7
7
|
const css_colors_1 = require("./css-colors");
|
|
8
8
|
const guards_1 = require("./guards");
|
|
9
|
-
const helpers_1 = require("./helpers");
|
|
10
9
|
const random_1 = require("./random");
|
|
11
10
|
const utils_1 = require("./utils");
|
|
12
11
|
class Color {
|
|
@@ -70,7 +69,7 @@ class Color {
|
|
|
70
69
|
yield this.hsla;
|
|
71
70
|
}
|
|
72
71
|
#hex6ToHex8(hex) {
|
|
73
|
-
return `${hex.toUpperCase()}${(0,
|
|
72
|
+
return `${hex.toUpperCase()}${(0, utils_1.percentToHex)(100)}`;
|
|
74
73
|
}
|
|
75
74
|
#rgbToRGBA(rgb) {
|
|
76
75
|
const [r, g, b] = (0, utils_1.extractSolidColorValues)(rgb);
|
|
@@ -81,7 +80,7 @@ class Color {
|
|
|
81
80
|
return `hsla(${h}, ${s}%, ${l}%, 1)`;
|
|
82
81
|
}
|
|
83
82
|
applyOpacity(opacity) {
|
|
84
|
-
const hex8 = `${this.hex.slice(0, 7)}${(0,
|
|
83
|
+
const hex8 = `${this.hex.slice(0, 7)}${(0, utils_1.percentToHex)(opacity)}`.toUpperCase();
|
|
85
84
|
return new _a(hex8);
|
|
86
85
|
}
|
|
87
86
|
applyDarkness(percent) {
|
|
@@ -113,7 +113,7 @@ const convertRgbaToHex8 = (r, g, b, a = 1) => {
|
|
|
113
113
|
newAlpha = 1;
|
|
114
114
|
console.warn(`Alpha value must be between 0-1, ${a} converted to 1!`);
|
|
115
115
|
}
|
|
116
|
-
const alphaHex = (0,
|
|
116
|
+
const alphaHex = (0, utils_1.percentToHex)(Math.round(newAlpha * 100));
|
|
117
117
|
const hex = (0, exports.convertRgbToHex)(r, g, b);
|
|
118
118
|
return `${hex}${alphaHex}`;
|
|
119
119
|
};
|
|
@@ -155,7 +155,7 @@ const convertHslaToHex8 = (h, s, l, a = 1) => {
|
|
|
155
155
|
newAlpha = 1;
|
|
156
156
|
console.warn(`Alpha value must be between 0-1, ${a} converted to 1!`);
|
|
157
157
|
}
|
|
158
|
-
const alphaHex = (0,
|
|
158
|
+
const alphaHex = (0, utils_1.percentToHex)(Math.round(newAlpha * 100));
|
|
159
159
|
const hex = (0, exports.convertHslToHex)(h, s, l);
|
|
160
160
|
return `${hex}${alphaHex}`;
|
|
161
161
|
};
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._isSimilarToLast = exports._generateRandomHSL = exports._applyOpacity =
|
|
3
|
+
exports._isSimilarToLast = exports._generateRandomHSL = exports._applyOpacity = void 0;
|
|
4
4
|
exports._isValidAlpha = _isValidAlpha;
|
|
5
5
|
exports._isValidRGBComponent = _isValidRGBComponent;
|
|
6
6
|
exports._isValidHue = _isValidHue;
|
|
7
7
|
exports._isValidPercentage = _isValidPercentage;
|
|
8
|
-
const _percentToHex = (percent) => {
|
|
9
|
-
const validOpacity = Math.min(100, Math.max(0, percent));
|
|
10
|
-
const alpha = Math.round((validOpacity / 100) * 255);
|
|
11
|
-
return alpha.toString(16).padStart(2, '0').toUpperCase();
|
|
12
|
-
};
|
|
13
|
-
exports._percentToHex = _percentToHex;
|
|
14
8
|
const _applyOpacity = (color, opacity) => {
|
|
15
9
|
return color?.slice(0, 7).concat(opacity);
|
|
16
10
|
};
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getColorForInitial = getColorForInitial;
|
|
4
|
+
const primitives_1 = require("../guards/primitives");
|
|
4
5
|
const constants_1 = require("./constants");
|
|
5
6
|
const helpers_1 = require("./helpers");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
6
8
|
function getColorForInitial(input = '', opacity = 100) {
|
|
7
9
|
let initial;
|
|
8
|
-
const hexOpacity = (0,
|
|
10
|
+
const hexOpacity = (0, utils_1.percentToHex)(opacity);
|
|
9
11
|
const NUMBERS = '0123456789';
|
|
10
12
|
const DEFAULT = '#010514';
|
|
11
13
|
if (!input)
|
|
12
14
|
return (0, helpers_1._applyOpacity)(DEFAULT, hexOpacity);
|
|
13
|
-
if (
|
|
15
|
+
if ((0, primitives_1.isString)(input)) {
|
|
14
16
|
initial = input[0];
|
|
15
17
|
if (NUMBERS.includes(initial)) {
|
|
16
18
|
return (0, helpers_1._applyOpacity)(constants_1.NUMBER_COLOR_PALETTE[parseInt(initial, 10)], hexOpacity);
|
|
@@ -22,7 +24,7 @@ function getColorForInitial(input = '', opacity = 100) {
|
|
|
22
24
|
}
|
|
23
25
|
return (0, helpers_1._applyOpacity)(DEFAULT, hexOpacity);
|
|
24
26
|
}
|
|
25
|
-
else if (
|
|
27
|
+
else if ((0, primitives_1.isNumber)(input)) {
|
|
26
28
|
initial = input.toString()[0];
|
|
27
29
|
if (NUMBERS.includes(initial)) {
|
|
28
30
|
return (0, helpers_1._applyOpacity)(constants_1.NUMBER_COLOR_PALETTE[parseInt(initial, 10)], hexOpacity);
|
package/dist/cjs/colors/utils.js
CHANGED
|
@@ -1,18 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.extractSolidColorValues = extractSolidColorValues;
|
|
4
|
+
exports.extractAlphaColorValues = extractAlphaColorValues;
|
|
5
|
+
exports.percentToHex = percentToHex;
|
|
6
|
+
exports.applyOpacityToHex = applyOpacityToHex;
|
|
7
|
+
const primitives_1 = require("../guards/primitives");
|
|
4
8
|
const guards_1 = require("./guards");
|
|
5
|
-
const
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
function extractSolidColorValues(color) {
|
|
6
11
|
if ((0, guards_1.isHSL)(color) || (0, guards_1.isRGB)(color)) {
|
|
7
12
|
return (color?.trim()?.match(/[\d.]+%?/g) || [])?.map((value) => parseFloat(value));
|
|
8
13
|
}
|
|
9
14
|
return [0, 0, 0];
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const extractAlphaColorValues = (color) => {
|
|
15
|
+
}
|
|
16
|
+
function extractAlphaColorValues(color) {
|
|
13
17
|
if ((0, guards_1.isHSLA)(color) || (0, guards_1.isRGBA)(color)) {
|
|
14
18
|
return (color?.trim()?.match(/[\d.]+%?/g) || [])?.map((value) => parseFloat(value));
|
|
15
19
|
}
|
|
16
20
|
return [0, 0, 0, 0];
|
|
17
|
-
}
|
|
18
|
-
|
|
21
|
+
}
|
|
22
|
+
function percentToHex(percent) {
|
|
23
|
+
const validOpacity = Math.min(100, Math.max(0, percent));
|
|
24
|
+
const alpha = Math.round((validOpacity / 100) * 255);
|
|
25
|
+
return alpha.toString(16).padStart(2, '0').toUpperCase();
|
|
26
|
+
}
|
|
27
|
+
function applyOpacityToHex(color, opacity) {
|
|
28
|
+
if ((0, guards_1.isHex6)(color) || (0, guards_1.isHex8)(color)) {
|
|
29
|
+
const upperColor = color.toUpperCase();
|
|
30
|
+
if ((0, primitives_1.isNumber)(opacity)) {
|
|
31
|
+
return (0, helpers_1._applyOpacity)(upperColor, percentToHex(opacity));
|
|
32
|
+
}
|
|
33
|
+
else if ((0, primitives_1.isNonEmptyString)(opacity) && /^[0-9A-Fa-f]{2}$/.test(opacity)) {
|
|
34
|
+
return (0, helpers_1._applyOpacity)(upperColor, opacity.toUpperCase());
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return (0, helpers_1._applyOpacity)(upperColor, percentToHex(100));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new TypeError('Invalid color value!', {
|
|
42
|
+
cause: 'Value must be a hex color string in the format #RRGGBB or #RRGGBBAA.',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = void 0;
|
|
4
|
+
const non_primitives_1 = require("../guards/non-primitives");
|
|
5
|
+
const primitives_1 = require("../guards/primitives");
|
|
4
6
|
const Chronos_1 = require("./Chronos");
|
|
5
7
|
const $chronos = (valueOrYear, month, date, hours, minutes, seconds, ms) => {
|
|
6
|
-
if (
|
|
8
|
+
if ((0, primitives_1.isNumber)(valueOrYear) && (0, primitives_1.isNumber)(month)) {
|
|
7
9
|
return new Chronos_1.Chronos(valueOrYear, month, date ?? 1, hours ?? 0, minutes ?? 0, seconds ?? 0, ms ?? 0);
|
|
8
10
|
}
|
|
9
11
|
else {
|
|
@@ -15,7 +17,7 @@ function _isChronosStaticKey(prop) {
|
|
|
15
17
|
prop !== 'prototype' &&
|
|
16
18
|
prop !== 'name' &&
|
|
17
19
|
prop !== 'length' &&
|
|
18
|
-
|
|
20
|
+
(0, non_primitives_1.isFunction)(Chronos_1.Chronos[prop]));
|
|
19
21
|
}
|
|
20
22
|
exports.chronos = new Proxy($chronos, {
|
|
21
23
|
get(target, prop, receiver) {
|
package/dist/cjs/date/guards.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.isNativeTimeZoneId = isNativeTimeZoneId;
|
|
|
7
7
|
exports.isLeapYear = isLeapYear;
|
|
8
8
|
exports.isDateLike = isDateLike;
|
|
9
9
|
exports.isTimeWithUnit = isTimeWithUnit;
|
|
10
|
+
const non_primitives_1 = require("../guards/non-primitives");
|
|
10
11
|
const primitives_1 = require("../guards/primitives");
|
|
11
12
|
const specials_1 = require("../guards/specials");
|
|
12
13
|
const utilities_1 = require("../number/utilities");
|
|
@@ -37,27 +38,24 @@ function isLeapYear(year) {
|
|
|
37
38
|
function isDateLike(value) {
|
|
38
39
|
if (value instanceof Date)
|
|
39
40
|
return true;
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
typeof v.toISOString === 'function') {
|
|
41
|
+
if ((0, non_primitives_1.isObject)(value)) {
|
|
42
|
+
if ((0, non_primitives_1.isFunction)(value.format) &&
|
|
43
|
+
(0, non_primitives_1.isFunction)(value.toJSON) &&
|
|
44
|
+
(0, non_primitives_1.isFunction)(value.toISOString)) {
|
|
45
45
|
return true;
|
|
46
46
|
}
|
|
47
|
-
if (
|
|
48
|
-
typeof v.toFormat === 'function' &&
|
|
49
|
-
typeof v.isValid === 'boolean') {
|
|
47
|
+
if ((0, non_primitives_1.isFunction)(value.toISO) && (0, non_primitives_1.isFunction)(value.toFormat) && (0, primitives_1.isBoolean)(value.isValid)) {
|
|
50
48
|
return true;
|
|
51
49
|
}
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
if ((0, non_primitives_1.isFunction)(value.plus) &&
|
|
51
|
+
(0, non_primitives_1.isFunction)(value.minus) &&
|
|
52
|
+
(0, non_primitives_1.isFunction)(value.equals) &&
|
|
53
|
+
(0, non_primitives_1.isFunction)(value.getClass)) {
|
|
56
54
|
return true;
|
|
57
55
|
}
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
['PlainDate', 'ZonedDateTime', 'Instant'].includes(
|
|
56
|
+
if ((0, non_primitives_1.isFunction)(value.toJSON) &&
|
|
57
|
+
(0, non_primitives_1.isFunction)(value.toString) &&
|
|
58
|
+
['PlainDate', 'ZonedDateTime', 'Instant'].includes(value.constructor?.name ?? '')) {
|
|
61
59
|
return true;
|
|
62
60
|
}
|
|
63
61
|
}
|
package/dist/cjs/date/utils.js
CHANGED
|
@@ -12,8 +12,11 @@ exports.getTimeZoneDetails = getTimeZoneDetails;
|
|
|
12
12
|
exports.getTimeZoneIds = getTimeZoneIds;
|
|
13
13
|
exports.formatDate = formatDate;
|
|
14
14
|
exports.formatTimePart = formatTimePart;
|
|
15
|
+
exports.formatDateRelative = formatDateRelative;
|
|
15
16
|
exports.getTimestamp = getTimestamp;
|
|
16
17
|
const non_primitives_1 = require("../guards/non-primitives");
|
|
18
|
+
const primitives_1 = require("../guards/primitives");
|
|
19
|
+
const utilities_1 = require("../number/utilities");
|
|
17
20
|
const guards_1 = require("./guards");
|
|
18
21
|
const helpers_1 = require("./helpers");
|
|
19
22
|
const timezone_1 = require("./timezone");
|
|
@@ -37,13 +40,24 @@ function extractMinutesFromUTC(utc) {
|
|
|
37
40
|
return getTotalMinutes(extractTimeFromUTC(utc));
|
|
38
41
|
}
|
|
39
42
|
function convertMinutesToTime(minutes) {
|
|
40
|
-
const
|
|
43
|
+
const parsed = (0, utilities_1.normalizeNumber)(minutes);
|
|
44
|
+
if ((0, primitives_1.isUndefined)(parsed)) {
|
|
45
|
+
throw new TypeError(`Invalid numeric input!`, {
|
|
46
|
+
cause: `${minutes} cannot be converted to a number.`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const numMIn = Math.abs(parsed);
|
|
41
50
|
return `${String(Math.floor(numMIn / 60))}:${String(numMIn % 60).padStart(2, '0')}`;
|
|
42
51
|
}
|
|
43
52
|
function formatUTCOffset(minutes) {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
53
|
+
const parsed = (0, utilities_1.normalizeNumber)(minutes);
|
|
54
|
+
if ((0, primitives_1.isUndefined)(parsed)) {
|
|
55
|
+
throw new TypeError(`Invalid numeric input!`, {
|
|
56
|
+
cause: `${minutes} cannot be converted to a number.`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const sign = parsed < 0 ? '-' : '+';
|
|
60
|
+
const abs = Math.abs(parsed);
|
|
47
61
|
const hours = String(Math.floor(abs / 60)).padStart(2, '0');
|
|
48
62
|
const mins = String(abs % 60).padStart(2, '0');
|
|
49
63
|
return `UTC${sign}${hours}:${mins}`;
|
|
@@ -92,6 +106,28 @@ function formatTimePart(time, format) {
|
|
|
92
106
|
const timeWithDate = `${formatDate({ format: 'YYYY-MM-DD' })}T${(0, helpers_1._normalizeOffset)(time)}`;
|
|
93
107
|
return formatDate({ date: timeWithDate, format: format || 'hh:mm:ss a' });
|
|
94
108
|
}
|
|
109
|
+
function formatDateRelative(date, format) {
|
|
110
|
+
const $date = (0, helpers_1._dateArgsToDate)(date);
|
|
111
|
+
if (isNaN($date.getTime())) {
|
|
112
|
+
return 'Invalid Date!';
|
|
113
|
+
}
|
|
114
|
+
const now = Date.now();
|
|
115
|
+
const then = $date.getTime();
|
|
116
|
+
const diff = Math.abs(now - then);
|
|
117
|
+
const minutes = Math.floor(diff / 60000);
|
|
118
|
+
const hours = Math.floor(diff / 3600000);
|
|
119
|
+
const days = Math.floor(diff / 86400000);
|
|
120
|
+
const suffix = then < now ? 'ago' : 'from now';
|
|
121
|
+
if (minutes < 1)
|
|
122
|
+
return 'Just now';
|
|
123
|
+
if (minutes < 60)
|
|
124
|
+
return `${minutes}m ${suffix}`;
|
|
125
|
+
if (hours < 24)
|
|
126
|
+
return `${hours}h ${suffix}`;
|
|
127
|
+
if (days < 7)
|
|
128
|
+
return `${days}d ${suffix}`;
|
|
129
|
+
return formatDate({ date, format: format || 'mmm D, yyyy hh:mm a' });
|
|
130
|
+
}
|
|
95
131
|
function getTimestamp(args, format) {
|
|
96
132
|
let $value;
|
|
97
133
|
let $format;
|
package/dist/cjs/dom/query.js
CHANGED
|
@@ -5,22 +5,19 @@ exports.getQueryParams = getQueryParams;
|
|
|
5
5
|
exports.updateQueryParam = updateQueryParam;
|
|
6
6
|
exports.parseQueryString = parseQueryString;
|
|
7
7
|
exports.parseQueryStringLiteral = parseQueryStringLiteral;
|
|
8
|
+
const primitives_1 = require("../guards/primitives");
|
|
8
9
|
const objectify_1 = require("../object/objectify");
|
|
9
10
|
const sanitize_1 = require("../object/sanitize");
|
|
10
11
|
const index_1 = require("../utils/index");
|
|
11
12
|
function generateQueryParams(params = {}) {
|
|
12
13
|
const flattenedParams = (0, objectify_1.flattenObjectKeyValue)(params);
|
|
13
14
|
const queryParams = Object.entries(flattenedParams)
|
|
14
|
-
?.filter(([_, value]) => value
|
|
15
|
-
value !== null &&
|
|
16
|
-
!(typeof value === 'string' && value?.trim() === ''))
|
|
15
|
+
?.filter(([_, value]) => value != null && !((0, primitives_1.isString)(value) && value?.trim() === ''))
|
|
17
16
|
?.flatMap(([key, value]) => Array.isArray(value)
|
|
18
17
|
? value
|
|
19
|
-
?.filter((v) => v
|
|
20
|
-
v
|
|
21
|
-
|
|
22
|
-
?.map((v) => `${encodeURIComponent(key)}=${encodeURIComponent(typeof v === 'boolean' ? String(v) : String(v))}`)
|
|
23
|
-
: `${encodeURIComponent(key)}=${encodeURIComponent(typeof value === 'boolean' ? String(value) : String(value))}`)
|
|
18
|
+
?.filter((v) => v != null && !((0, primitives_1.isString)(v) && v.trim() === ''))
|
|
19
|
+
?.map((v) => `${encodeURIComponent(key)}=${encodeURIComponent(String(v))}`)
|
|
20
|
+
: `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
|
|
24
21
|
.join('&');
|
|
25
22
|
return queryParams ? `?${queryParams}` : '';
|
|
26
23
|
}
|
package/dist/cjs/form/convert.js
CHANGED
|
@@ -70,7 +70,7 @@ const createControlledFormData = (data, configs) => {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
|
-
if (
|
|
73
|
+
if ((0, primitives_1.isString)(value)) {
|
|
74
74
|
if ((0, primitives_1.isNonEmptyString)(value)) {
|
|
75
75
|
let cleanString = value;
|
|
76
76
|
if (configs?.trimStrings) {
|
|
@@ -175,7 +175,7 @@ const createControlledFormData = (data, configs) => {
|
|
|
175
175
|
else {
|
|
176
176
|
const isNotNullish = value != null && value !== '';
|
|
177
177
|
if (isNotNullish || _isRequiredKey(key)) {
|
|
178
|
-
if (
|
|
178
|
+
if ((0, primitives_1.isString)(value) && _shouldLowercaseValue(key)) {
|
|
179
179
|
formData.append(transformedKey, value?.toLowerCase());
|
|
180
180
|
}
|
|
181
181
|
else {
|
package/dist/cjs/form/guards.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.isFileArray = isFileArray;
|
|
|
8
8
|
exports.isFileList = isFileList;
|
|
9
9
|
exports.isFileOrBlob = isFileOrBlob;
|
|
10
10
|
exports.isFileUpload = isFileUpload;
|
|
11
|
+
const primitives_1 = require("../guards/primitives");
|
|
11
12
|
function isValidFormData(value) {
|
|
12
13
|
if (!(value instanceof FormData))
|
|
13
14
|
return false;
|
|
@@ -25,7 +26,7 @@ function isOriginFileObj(value) {
|
|
|
25
26
|
return false;
|
|
26
27
|
}
|
|
27
28
|
const obj = value;
|
|
28
|
-
return
|
|
29
|
+
return (0, primitives_1.isString)(obj.uid);
|
|
29
30
|
}
|
|
30
31
|
function isCustomFile(value) {
|
|
31
32
|
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.serializeForm = serializeForm;
|
|
4
4
|
exports.parseFormData = parseFormData;
|
|
5
5
|
const query_1 = require("../dom/query");
|
|
6
|
+
const primitives_1 = require("../guards/primitives");
|
|
6
7
|
const sanitize_1 = require("../object/sanitize");
|
|
7
8
|
function serializeForm(form, toQueryString = false) {
|
|
8
9
|
const formData = new FormData(form);
|
|
@@ -25,11 +26,11 @@ function serializeForm(form, toQueryString = false) {
|
|
|
25
26
|
}
|
|
26
27
|
function parseFormData(data, parsePrimitives = true) {
|
|
27
28
|
const parsed = {};
|
|
28
|
-
if (
|
|
29
|
+
if ((0, primitives_1.isString)(data)) {
|
|
29
30
|
const params = new URLSearchParams(data);
|
|
30
31
|
params?.forEach((value, key) => {
|
|
31
32
|
const existing = parsed[key];
|
|
32
|
-
if (
|
|
33
|
+
if ((0, primitives_1.isString)(existing)) {
|
|
33
34
|
parsed[key] = [existing, value];
|
|
34
35
|
}
|
|
35
36
|
else if (Array.isArray(existing)) {
|
|
@@ -55,7 +56,7 @@ function parseFormData(data, parsePrimitives = true) {
|
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
else {
|
|
58
|
-
if (
|
|
59
|
+
if ((0, primitives_1.isString)(existing)) {
|
|
59
60
|
parsed[key] = [existing, value];
|
|
60
61
|
}
|
|
61
62
|
else if (Array.isArray(existing)) {
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateFactorial = exports.calculateAverage = exports.verbalizer = exports.Verbalizer = exports.pluralizer = exports.Pluralizer = exports.VolumeConverter = exports.TimeConverter = exports.TemperatureConverter = exports.MassConverter = exports.LengthConverter = exports.DataConverter = exports.converter = exports.Converter = exports.AreaConverter = exports.wordCount = exports.parseNumbersFromText = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.extractNumbers = exports.countWordsInString = exports.countWords = exports.getCharacterDifferences = exports.computeTextDiff = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.capitalizeString = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = void 0;
|
|
4
4
|
exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.banglaToDigit = exports.arabicToRoman = exports.isPerfectSquare = exports.isPartOfFibonacciSeries = exports.isPartOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = exports.Unit = exports.Currency = exports.sumOfNumbers = exports.sumNumbers = exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = exports.getRandomInt = exports.getFactors = exports.getFactorial = exports.getDivisors = exports.getAverageOfNumbers = exports.getAverage = exports.factorsOf = exports.factorial = exports.convertToFixed = exports.convertToDecimal = exports.calculateLCM = void 0;
|
|
5
5
|
exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.getRandomHSL = exports.getRandomColor = exports.generateRandomHSLColor = exports.generateRandomHSL = exports.generateRandomColorInHexRGB = exports.generateRandomColor = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.romanToNumeric = exports.romanToInteger = exports.romanToArabic = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.digitToBangla = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = exports.convertRomanToNumeric = exports.convertRomanToInteger = exports.convertRomanToArabic = void 0;
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = void 0;
|
|
6
|
+
exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.Bongabdo = exports.BnCalendar = exports.BanglaCalendar = exports.isValidUTCOffset = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeZoneId = exports.isValidTimeString = exports.isValidTime = exports.isTimeWithUnit = exports.isNativeTimeZoneId = exports.isLeapYear = exports.isDateLike = exports.parseMSec = exports.parseMs = exports.greet = exports.getGreeting = exports.generateGreeting = exports.percentToHex = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.applyOpacityToHex = exports.Colour = exports.Color = exports.isRGBA = exports.isRGB = exports.isHSLA = exports.isHSL = exports.isHex8 = exports.isHex6 = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = void 0;
|
|
7
|
+
exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeZoneIds = exports.getTimeZoneDetails = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getNativeTimeZoneId = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getTimestamp = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.formatTimePart = exports.formatRelativeTime = exports.formatRelativeDate = exports.formatDateRelative = exports.formatDateTime = exports.formatDate = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = void 0;
|
|
8
|
+
exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.extractObjectKeysDeep = exports.extractObjectKeys = exports.extractKeysDeep = exports.extractKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = void 0;
|
|
9
|
+
exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.stripJsonEdgeGarbage = exports.stableStringify = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getStaticGetterNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getInstanceGetterNames = exports.getClassDetails = exports.definePrototypeMethod = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryStringLiteral = exports.parseQueryString = exports.literalQueryStringToObject = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = void 0;
|
|
10
|
+
exports.isHexString = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBinaryString = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = void 0;
|
|
11
|
+
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = void 0;
|
|
12
12
|
var basics_1 = require("./string/basics");
|
|
13
13
|
Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
|
|
14
14
|
Object.defineProperty(exports, "trimString", { enumerable: true, get: function () { return basics_1.trimString; } });
|
|
@@ -203,8 +203,10 @@ var Color_1 = require("./colors/Color");
|
|
|
203
203
|
Object.defineProperty(exports, "Color", { enumerable: true, get: function () { return Color_1.Color; } });
|
|
204
204
|
Object.defineProperty(exports, "Colour", { enumerable: true, get: function () { return Color_1.Colour; } });
|
|
205
205
|
var utils_1 = require("./colors/utils");
|
|
206
|
+
Object.defineProperty(exports, "applyOpacityToHex", { enumerable: true, get: function () { return utils_1.applyOpacityToHex; } });
|
|
206
207
|
Object.defineProperty(exports, "extractAlphaColorValues", { enumerable: true, get: function () { return utils_1.extractAlphaColorValues; } });
|
|
207
208
|
Object.defineProperty(exports, "extractSolidColorValues", { enumerable: true, get: function () { return utils_1.extractSolidColorValues; } });
|
|
209
|
+
Object.defineProperty(exports, "percentToHex", { enumerable: true, get: function () { return utils_1.percentToHex; } });
|
|
208
210
|
var greet_1 = require("./date/greet");
|
|
209
211
|
Object.defineProperty(exports, "generateGreeting", { enumerable: true, get: function () { return greet_1.getGreeting; } });
|
|
210
212
|
Object.defineProperty(exports, "getGreeting", { enumerable: true, get: function () { return greet_1.getGreeting; } });
|
|
@@ -250,6 +252,9 @@ Object.defineProperty(exports, "extractTimeStringFromUTC", { enumerable: true, g
|
|
|
250
252
|
Object.defineProperty(exports, "extractTotalMinutesFromTime", { enumerable: true, get: function () { return utils_2.getTotalMinutes; } });
|
|
251
253
|
Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return utils_2.formatDate; } });
|
|
252
254
|
Object.defineProperty(exports, "formatDateTime", { enumerable: true, get: function () { return utils_2.formatDate; } });
|
|
255
|
+
Object.defineProperty(exports, "formatDateRelative", { enumerable: true, get: function () { return utils_2.formatDateRelative; } });
|
|
256
|
+
Object.defineProperty(exports, "formatRelativeDate", { enumerable: true, get: function () { return utils_2.formatDateRelative; } });
|
|
257
|
+
Object.defineProperty(exports, "formatRelativeTime", { enumerable: true, get: function () { return utils_2.formatDateRelative; } });
|
|
253
258
|
Object.defineProperty(exports, "formatTimePart", { enumerable: true, get: function () { return utils_2.formatTimePart; } });
|
|
254
259
|
Object.defineProperty(exports, "formatUTCOffset", { enumerable: true, get: function () { return utils_2.formatUTCOffset; } });
|
|
255
260
|
Object.defineProperty(exports, "getCurrentDateTime", { enumerable: true, get: function () { return utils_2.getCurrentDateTime; } });
|