nhb-toolbox 4.26.21 → 4.26.40

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 (51) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/dist/cjs/colors/constants.js +2 -2
  3. package/dist/cjs/colors/css-colors.js +1 -1
  4. package/dist/cjs/converter/constants.js +1 -1
  5. package/dist/cjs/date/Chronos.js +15 -11
  6. package/dist/cjs/date/constants.js +17 -17
  7. package/dist/cjs/date/plugins/timeZonePlugin.js +64 -26
  8. package/dist/cjs/date/seasons.js +11 -11
  9. package/dist/cjs/date/timezone.js +6 -6
  10. package/dist/cjs/date/utils.js +15 -0
  11. package/dist/cjs/http-status/constants.js +2 -2
  12. package/dist/cjs/index.js +5 -4
  13. package/dist/cjs/number/constants.js +12 -12
  14. package/dist/cjs/object/countries.js +1 -1
  15. package/dist/cjs/pluralizer/rules.js +4 -4
  16. package/dist/cjs/string/constants.js +1 -1
  17. package/dist/cjs/{utils → stylog}/constants.js +4 -4
  18. package/dist/cjs/verbalizer/rules.js +4 -4
  19. package/dist/dts/date/Chronos.d.ts +15 -13
  20. package/dist/dts/date/plugins/businessPlugin.d.ts +2 -2
  21. package/dist/dts/date/plugins/durationPlugin.d.ts +6 -0
  22. package/dist/dts/date/plugins/timeZonePlugin.d.ts +17 -8
  23. package/dist/dts/date/timezone.d.ts +3 -3
  24. package/dist/dts/date/types.d.ts +12 -0
  25. package/dist/dts/date/utils.d.ts +8 -1
  26. package/dist/dts/index.d.ts +1 -1
  27. package/dist/dts/{utils → stylog}/constants.d.ts +2 -2
  28. package/dist/dts/{utils → stylog}/helpers.d.ts +1 -1
  29. package/dist/esm/colors/constants.js +2 -2
  30. package/dist/esm/colors/css-colors.js +1 -1
  31. package/dist/esm/converter/constants.js +1 -1
  32. package/dist/esm/date/Chronos.js +15 -11
  33. package/dist/esm/date/constants.js +17 -17
  34. package/dist/esm/date/plugins/timeZonePlugin.js +65 -27
  35. package/dist/esm/date/seasons.js +11 -11
  36. package/dist/esm/date/timezone.js +6 -6
  37. package/dist/esm/date/utils.js +14 -0
  38. package/dist/esm/http-status/constants.js +2 -2
  39. package/dist/esm/index.js +1 -1
  40. package/dist/esm/number/constants.js +12 -12
  41. package/dist/esm/object/countries.js +1 -1
  42. package/dist/esm/pluralizer/rules.js +4 -4
  43. package/dist/esm/string/constants.js +1 -1
  44. package/dist/esm/{utils → stylog}/constants.js +4 -4
  45. package/dist/esm/verbalizer/rules.js +4 -4
  46. package/package.json +11 -11
  47. /package/dist/cjs/{utils/stylog.js → stylog/Stylog.js} +0 -0
  48. /package/dist/cjs/{utils → stylog}/helpers.js +0 -0
  49. /package/dist/dts/{utils/stylog.d.ts → stylog/Stylog.d.ts} +0 -0
  50. /package/dist/esm/{utils/stylog.js → stylog/Stylog.js} +0 -0
  51. /package/dist/esm/{utils → stylog}/helpers.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,11 +6,37 @@ All notable changes to the package will be documented here.
6
6
 
7
7
  ---
8
8
 
9
+ ## [4.26.40] - 2025-11-12
10
+
11
+ ### 🕧 Updates in Chronos
12
+
13
+ - **Fixed** *tree-shaking issue* for *constant imports* from same module(s).
14
+ - **Renamed** `$getNativeTimeZone()` method to `$getNativeTimeZoneName()` and *optional* `tzId` parameter.
15
+ - **Enhanced** `timeZoneName()` and `getTimeZoneNameAbbr()`/`getTimeZoneNameShort()` methods: now look up for *time zone name* using `Intl.DateTimeFormat` when fails to resolve from `TIME_ZONE_IDS`.
16
+
17
+ ### 🛠️ Other Updates
18
+
19
+ - **Added** new *date/time utility* `getTimeZoneDetails` to retrieve *time zone information*.
20
+
21
+ ## [4.26.30] - 2025-11-11
22
+
23
+ ### 🕧 Updates in Chronos
24
+
25
+ - **Fixed** issues in `getTimeZoneName()` and `getTimeZoneNameShort()` where expected outputs were *missing or incorrect*.
26
+ - **Updated** *timezone constants* by removing *redundant hints* and *improving internal consistency*.
27
+ - **Introduced** a new *method alias* `getTimeZoneNameAbbr()` for `getTimeZoneNameShort()`.
28
+ - **Fixed** an issue where the `clone()` method *did not correctly duplicate the instance state*.
29
+
9
30
  ## [4.26.21] - 2025-11-10
10
31
 
11
- - **Fixed** issues with `Chronos` timezone methods: `getTimeZoneName()` and `getTimeZoneNameShort()` *not providing name/short* name for *optional UTC*.
32
+ ### 🕧 Updates in Chronos
33
+
34
+ - **Fixed** issues with `Chronos` timezone methods: `getTimeZoneName()` and `getTimeZoneNameShort()` *not providing name/short name* for *optional UTC*.
12
35
  - **Fixed** issues with `Chronos` `diff()` method: now *calculates exact differences for month and year* too.
13
36
  - **Changed** the signature of `Chronos` `set()` method to `set<Unit extends TimeUnit>(unit: Unit, value: TimeUnitValue<Unit>): Chronos`. **Created** new type helper `TimeUnitValue<Unit>`.
37
+
38
+ ### 🛠️ Other Updates
39
+
14
40
  - **Renamed** `isValidUTCOffSet` *guard* as `isValidUTCOffset` and also kept `isValidUTCOffSet` as alias.
15
41
 
16
42
  ## [4.26.20] - 2025-11-10
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NUMBER_COLOR_PALETTE = exports.ALPHABET_COLOR_PALETTE = void 0;
4
- exports.ALPHABET_COLOR_PALETTE = Object.freeze([
4
+ exports.ALPHABET_COLOR_PALETTE = /* @__PURE__ */ Object.freeze([
5
5
  '#00094C',
6
6
  '#00376E',
7
7
  '#005600',
@@ -29,7 +29,7 @@ exports.ALPHABET_COLOR_PALETTE = Object.freeze([
29
29
  '#546F1C',
30
30
  '#824809',
31
31
  ]);
32
- exports.NUMBER_COLOR_PALETTE = Object.freeze([
32
+ exports.NUMBER_COLOR_PALETTE = /* @__PURE__ */ Object.freeze([
33
33
  '#893213',
34
34
  '#A44C15',
35
35
  '#8B4513',
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CSS_COLORS = void 0;
4
- exports.CSS_COLORS = Object.freeze({
4
+ exports.CSS_COLORS = /* @__PURE__ */ Object.freeze({
5
5
  black: '#000000',
6
6
  silver: '#C0C0C0',
7
7
  gray: '#808080',
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Y_TO_IES = exports.INVARIANT_UNITS = exports.IRREGULAR_PLURALS = exports.UNITS = void 0;
4
- exports.UNITS = Object.freeze({
4
+ exports.UNITS = /* @__PURE__ */ Object.freeze({
5
5
  time: [
6
6
  'nanosecond',
7
7
  'microsecond',
@@ -46,7 +46,7 @@ class Chronos {
46
46
  this.origin = this.#ORIGIN;
47
47
  this.#offset = `UTC${this.getUTCOffset()}`;
48
48
  this.utcOffset = this.#offset;
49
- this.timeZoneName = this.$getNativeTimeZone();
49
+ this.timeZoneName = this.$getNativeTimeZoneName();
50
50
  this.timeZoneId = this.$getNativeTimeZoneId();
51
51
  }
52
52
  *[Symbol.iterator]() {
@@ -127,13 +127,9 @@ class Chronos {
127
127
  get [Symbol.isConcatSpreadable]() {
128
128
  return true;
129
129
  }
130
- $getNativeTimeZone() {
131
- const details = new Intl.DateTimeFormat(undefined, {
132
- timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
133
- timeZoneName: 'long',
134
- }).formatToParts(this.toDate());
135
- const tzPart = details.find((p) => p.type === 'timeZoneName');
136
- return tzPart?.value ?? Intl.DateTimeFormat().resolvedOptions().timeZone;
130
+ $getNativeTimeZoneName(tzId) {
131
+ const $tzId = tzId || this.$getNativeTimeZoneId();
132
+ return this.#getNativeTzName(tzId) ?? $tzId;
137
133
  }
138
134
  $getNativeTimeZoneId() {
139
135
  return Intl.DateTimeFormat().resolvedOptions().timeZone;
@@ -162,6 +158,14 @@ class Chronos {
162
158
  instance.native = instance.toDate();
163
159
  return instance;
164
160
  }
161
+ #getNativeTzName(tzId) {
162
+ const tzDetails = new Intl.DateTimeFormat('en', {
163
+ timeZone: tzId,
164
+ timeZoneName: 'long',
165
+ }).formatToParts(this.#date);
166
+ const tzPart = tzDetails.find((p) => p.type === 'timeZoneName');
167
+ return tzPart?.value;
168
+ }
165
169
  #format(format, useUTC = false) {
166
170
  const year = useUTC ? this.#date.getUTCFullYear() : this.#date.getFullYear();
167
171
  const month = useUTC ? this.#date.getUTCMonth() : this.#date.getMonth();
@@ -284,7 +288,7 @@ class Chronos {
284
288
  return this.getTimeStamp();
285
289
  }
286
290
  clone() {
287
- return new _a(this.#date).#withOrigin(this.#ORIGIN);
291
+ return new _a(this.#date).#withOrigin(this.#ORIGIN, this.#offset, this.timeZoneName, this.timeZoneId, this.$tzTracker);
288
292
  }
289
293
  toDate() {
290
294
  switch (this.#ORIGIN) {
@@ -628,7 +632,7 @@ class Chronos {
628
632
  const input = this.startOf('day');
629
633
  const comparison = base.startOf('day');
630
634
  const diff = input.diff(comparison, 'day');
631
- const timeStr = this.toDate().toLocaleString(undefined, {
635
+ const timeStr = this.toDate().toLocaleString('en', {
632
636
  hour: 'numeric',
633
637
  minute: '2-digit',
634
638
  });
@@ -638,7 +642,7 @@ class Chronos {
638
642
  return `Tomorrow at ${timeStr}`;
639
643
  if (diff === -1)
640
644
  return `Yesterday at ${timeStr}`;
641
- return this.toDate().toLocaleString(undefined, {
645
+ return this.toDate().toLocaleString('en', {
642
646
  month: 'long',
643
647
  day: '2-digit',
644
648
  year: 'numeric',
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.INTERNALS = exports.ZODIAC_PRESETS = exports.VEDIC_ZODIAC_SIGNS = exports.WESTERN_ZODIAC_SIGNS = exports.DATE_PART_RANGES = exports.SORTED_TIME_FORMATS = exports.TIME_FORMATS = exports.MILLISECOND_FORMATS = exports.ZONE_FORMATS = exports.SECOND_FORMATS = exports.MINUTE_FORMATS = exports.HOUR_FORMATS = exports.DAY_FORMATS = exports.DATE_FORMATS = exports.MONTH_FORMATS = exports.YEAR_FORMATS = exports.MONTHS = exports.DAYS = void 0;
4
- exports.DAYS = Object.freeze([
4
+ exports.DAYS = /* @__PURE__ */ Object.freeze([
5
5
  'Sunday',
6
6
  'Monday',
7
7
  'Tuesday',
@@ -10,7 +10,7 @@ exports.DAYS = Object.freeze([
10
10
  'Friday',
11
11
  'Saturday',
12
12
  ]);
13
- exports.MONTHS = Object.freeze([
13
+ exports.MONTHS = /* @__PURE__ */ Object.freeze([
14
14
  'January',
15
15
  'February',
16
16
  'March',
@@ -24,22 +24,22 @@ exports.MONTHS = Object.freeze([
24
24
  'November',
25
25
  'December',
26
26
  ]);
27
- exports.YEAR_FORMATS = Object.freeze([
27
+ exports.YEAR_FORMATS = /* @__PURE__ */ Object.freeze([
28
28
  'YYYY',
29
29
  'YY',
30
30
  'yyyy',
31
31
  'yy',
32
32
  ]);
33
- exports.MONTH_FORMATS = Object.freeze(['M', 'MM', 'mmm', 'mmmm']);
34
- exports.DATE_FORMATS = Object.freeze(['DD', 'D', 'Do']);
35
- exports.DAY_FORMATS = Object.freeze(['d', 'dd', 'ddd']);
36
- exports.HOUR_FORMATS = Object.freeze(['H', 'HH', 'hh', 'h']);
37
- exports.MINUTE_FORMATS = Object.freeze(['mm', 'm']);
38
- exports.SECOND_FORMATS = Object.freeze(['ss', 's']);
39
- exports.ZONE_FORMATS = Object.freeze(['ZZ']);
40
- exports.MILLISECOND_FORMATS = Object.freeze(['ms', 'mss']);
41
- exports.TIME_FORMATS = Object.freeze(['a', 'A']);
42
- exports.SORTED_TIME_FORMATS = Object.freeze([
33
+ exports.MONTH_FORMATS = /* @__PURE__ */ Object.freeze(['M', 'MM', 'mmm', 'mmmm']);
34
+ exports.DATE_FORMATS = /* @__PURE__ */ Object.freeze(['DD', 'D', 'Do']);
35
+ exports.DAY_FORMATS = /* @__PURE__ */ Object.freeze(['d', 'dd', 'ddd']);
36
+ exports.HOUR_FORMATS = /* @__PURE__ */ Object.freeze(['H', 'HH', 'hh', 'h']);
37
+ exports.MINUTE_FORMATS = /* @__PURE__ */ Object.freeze(['mm', 'm']);
38
+ exports.SECOND_FORMATS = /* @__PURE__ */ Object.freeze(['ss', 's']);
39
+ exports.ZONE_FORMATS = /* @__PURE__ */ Object.freeze(['ZZ']);
40
+ exports.MILLISECOND_FORMATS = /* @__PURE__ */ Object.freeze(['ms', 'mss']);
41
+ exports.TIME_FORMATS = /* @__PURE__ */ Object.freeze(['a', 'A']);
42
+ exports.SORTED_TIME_FORMATS = /* @__PURE__ */ Object.freeze([
43
43
  ...exports.YEAR_FORMATS,
44
44
  ...exports.MONTH_FORMATS,
45
45
  ...exports.DAY_FORMATS,
@@ -51,7 +51,7 @@ exports.SORTED_TIME_FORMATS = Object.freeze([
51
51
  ...exports.TIME_FORMATS,
52
52
  ...exports.ZONE_FORMATS,
53
53
  ].sort((a, b) => b.length - a.length));
54
- exports.DATE_PART_RANGES = Object.freeze({
54
+ exports.DATE_PART_RANGES = /* @__PURE__ */ Object.freeze({
55
55
  night: ['21', '23'],
56
56
  midnight: ['00', '01'],
57
57
  lateNight: ['02', '04'],
@@ -59,7 +59,7 @@ exports.DATE_PART_RANGES = Object.freeze({
59
59
  afternoon: ['12', '16'],
60
60
  evening: ['17', '20'],
61
61
  });
62
- exports.WESTERN_ZODIAC_SIGNS = Object.freeze([
62
+ exports.WESTERN_ZODIAC_SIGNS = /* @__PURE__ */ Object.freeze([
63
63
  ['Capricorn', [12, 22]],
64
64
  ['Aquarius', [1, 20]],
65
65
  ['Pisces', [2, 19]],
@@ -74,7 +74,7 @@ exports.WESTERN_ZODIAC_SIGNS = Object.freeze([
74
74
  ['Sagittarius', [11, 22]],
75
75
  ['Capricorn', [12, 22]],
76
76
  ]);
77
- exports.VEDIC_ZODIAC_SIGNS = Object.freeze([
77
+ exports.VEDIC_ZODIAC_SIGNS = /* @__PURE__ */ Object.freeze([
78
78
  ['Capricorn', [1, 14]],
79
79
  ['Aquarius', [2, 13]],
80
80
  ['Pisces', [3, 14]],
@@ -89,7 +89,7 @@ exports.VEDIC_ZODIAC_SIGNS = Object.freeze([
89
89
  ['Sagittarius', [12, 15]],
90
90
  ['Capricorn', [1, 14]],
91
91
  ]);
92
- exports.ZODIAC_PRESETS = Object.freeze({
92
+ exports.ZODIAC_PRESETS = /* @__PURE__ */ Object.freeze({
93
93
  western: exports.WESTERN_ZODIAC_SIGNS,
94
94
  vedic: exports.VEDIC_ZODIAC_SIGNS,
95
95
  tropical: exports.WESTERN_ZODIAC_SIGNS,
@@ -7,6 +7,13 @@ const timezone_1 = require("../timezone");
7
7
  const utils_1 = require("../utils");
8
8
  const timeZonePlugin = (ChronosClass) => {
9
9
  const { internalDate: $Date, withOrigin } = ChronosClass[constants_1.INTERNALS];
10
+ const _isGMT = (factor) => {
11
+ return factor === 'UTC+00:00' || factor === 'UTC-00:00';
12
+ };
13
+ const TZ_NAME_ABBR_MAP = new Map(Object.entries(timezone_1.TIME_ZONES).map(([tzAbbr, { offset, tzName }]) => [
14
+ offset,
15
+ { tzAbbr, tzName },
16
+ ]));
10
17
  const _isLabelKey = (offset) => {
11
18
  return offset in timezone_1.TIME_ZONE_LABELS;
12
19
  };
@@ -16,28 +23,38 @@ const timeZonePlugin = (ChronosClass) => {
16
23
  }
17
24
  return undefined;
18
25
  };
19
- const _getTimeZoneName = (zone) => {
26
+ const _getTimeZoneName = (zone, date) => {
27
+ if (_isGMT(zone))
28
+ return 'Greenwich Mean Time';
20
29
  if ((0, guards_1.isValidUTCOffset)(zone)) {
21
- return _resolveTzName(zone);
30
+ const tzName = _resolveTzName(zone);
31
+ if (!tzName && TZ_NAME_ABBR_MAP.has(zone)) {
32
+ return TZ_NAME_ABBR_MAP.get(zone)?.tzName;
33
+ }
34
+ return tzName;
22
35
  }
23
36
  else if ((0, guards_1.isValidTimeZoneId)(zone)) {
24
- const record = timezone_1.TIME_ZONE_IDS[zone];
25
- return record?.tzName ?? _resolveTzName(record?.offset);
37
+ const { offset, tzName } = timezone_1.TIME_ZONE_IDS[zone];
38
+ const { tzNameLongOffset, tzNameLong } = (0, utils_1.getTimeZoneDetails)(zone, date);
39
+ const convertedOffset = tzNameLongOffset?.replace(/^GMT/, 'UTC') ?? '';
40
+ const resolvedName = _resolveTzName(offset);
41
+ const priorityName = convertedOffset === offset ? tzNameLong : resolvedName;
42
+ return tzName || priorityName || resolvedName || tzNameLong;
26
43
  }
27
44
  else {
28
45
  return zone in timezone_1.TIME_ZONES ?
29
46
  timezone_1.TIME_ZONES[zone].tzName
30
- : _resolveTzName(timezone_1.TIME_ZONES[zone].offset);
47
+ : _resolveTzName(timezone_1.TIME_ZONES[zone]?.offset);
31
48
  }
32
49
  };
33
- const TZ_ID_CACHE = new Map(Object.entries(timezone_1.TIME_ZONE_IDS).reduce((acc, [id, { offset }]) => {
50
+ const TZ_ID_MAP = new Map(Object.entries(timezone_1.TIME_ZONE_IDS).reduce((acc, [id, { offset }]) => {
34
51
  const arr = acc.get(offset) ?? [];
35
52
  arr.push(id);
36
53
  acc.set(offset, arr);
37
54
  return acc;
38
55
  }, new Map()));
39
56
  const _getTimeZoneId = (utc) => {
40
- const tzIds = TZ_ID_CACHE.get(utc);
57
+ const tzIds = TZ_ID_MAP.get(utc);
41
58
  if (!tzIds || tzIds?.length === 0)
42
59
  return undefined;
43
60
  if (tzIds?.length === 1)
@@ -59,51 +76,72 @@ const timeZonePlugin = (ChronosClass) => {
59
76
  offset = zone in timezone_1.TIME_ZONES ? timezone_1.TIME_ZONES[zone].offset : timezone_1.TIME_ZONES['UTC'].offset;
60
77
  tzId = _getTimeZoneId(offset) || offset;
61
78
  }
62
- const tzName = _getTimeZoneName(zone) ?? timezone_1.TIME_ZONES['UTC'].offset;
79
+ const $zone = zone || offset;
80
+ const tzName = _getTimeZoneName($zone, $Date(this)) ?? offset;
63
81
  const targetOffset = (0, utils_1.extractMinutesFromUTC)(offset);
64
82
  const previousOffset = this.getTimeZoneOffsetMinutes();
65
83
  const relativeOffset = targetOffset - previousOffset;
66
84
  const adjustedTime = new Date($Date(this).getTime() + relativeOffset * 60 * 1000);
67
85
  const instance = new ChronosClass(adjustedTime);
68
- return withOrigin(instance, `timeZone`, offset, tzName, tzId, zone);
86
+ return withOrigin(instance, `timeZone`, offset, tzName, tzId, $zone);
69
87
  };
70
88
  ChronosClass.prototype.getTimeZoneName = function (utc) {
71
89
  const UTC = utc || this.utcOffset;
72
- return _getTimeZoneName(utc || this?.$tzTracker || this.utcOffset) ?? UTC;
90
+ return _getTimeZoneName(utc || this?.$tzTracker || this.utcOffset, $Date(this)) ?? UTC;
91
+ };
92
+ const TZ_ABBR_CACHE = new Map();
93
+ const _abbreviate = (name) => {
94
+ return name
95
+ .split(/\s+/)
96
+ .map((w) => w[0])
97
+ .join('')
98
+ .replace(/\W/g, '');
73
99
  };
74
- const TZ_SHORT_CACHE = new Map();
75
100
  ChronosClass.prototype.getTimeZoneNameShort = function (utc) {
76
101
  const tracker = this?.$tzTracker;
102
+ const UTC = utc || this.utcOffset;
103
+ const tzMapKey = utc || tracker || this.utcOffset;
104
+ if (_isGMT(tzMapKey))
105
+ return 'GMT';
77
106
  if (!utc && tracker && tracker in timezone_1.TIME_ZONES)
78
107
  return tracker;
79
- const zone = this.getTimeZoneName(utc);
80
- if (TZ_SHORT_CACHE.has(zone))
81
- return TZ_SHORT_CACHE.get(zone);
82
- const customAbbr = (0, guards_1.isValidUTCOffset)(zone) || (0, guards_1.isValidTimeZoneId)(zone) ?
83
- zone
84
- : zone
85
- .split(/\s+/)
86
- .map((w) => w?.[0])
87
- .join('')
88
- .replace(/\W/g, '');
89
- TZ_SHORT_CACHE.set(zone, customAbbr);
108
+ if ((0, guards_1.isValidUTCOffset)(tzMapKey)) {
109
+ if (TZ_ABBR_CACHE.has(tzMapKey))
110
+ return TZ_ABBR_CACHE.get(tzMapKey);
111
+ if (TZ_NAME_ABBR_MAP.has(tzMapKey)) {
112
+ return TZ_NAME_ABBR_MAP.get(tzMapKey)?.tzAbbr;
113
+ }
114
+ const tzName = _resolveTzName(tzMapKey);
115
+ if (tzName) {
116
+ const tzAbbr = _abbreviate(tzName);
117
+ TZ_ABBR_CACHE.set(tzMapKey, tzAbbr);
118
+ return tzAbbr;
119
+ }
120
+ }
121
+ const zone = _getTimeZoneName(tzMapKey, $Date(this)) ?? UTC;
122
+ if (TZ_ABBR_CACHE.has(`name-${zone}`))
123
+ return TZ_ABBR_CACHE.get(zone);
124
+ const customAbbr = (0, guards_1.isValidUTCOffset)(zone) || (0, guards_1.isValidTimeZoneId)(zone) ? zone : _abbreviate(zone);
125
+ TZ_ABBR_CACHE.set(`name-${zone}`, customAbbr);
90
126
  return customAbbr;
91
127
  };
128
+ ChronosClass.prototype.getTimeZoneNameAbbr = function (utc) {
129
+ return this.getTimeZoneNameShort(utc);
130
+ };
92
131
  ChronosClass.prototype.toString = function () {
93
132
  const offset = this.utcOffset;
133
+ const search = /GMT[+-]\d{4}\s+\([^)]+\)/;
94
134
  switch (this.origin) {
95
135
  case 'timeZone': {
96
136
  const gmt = offset.replace('UTC', 'GMT').replace(':', '');
97
137
  const label = this.getTimeZoneName();
98
- return $Date(this)
99
- .toString()
100
- .replace(/GMT[+-]\d{4}\s+\([^)]+\)/, `${gmt} (${label})`);
138
+ return $Date(this).toString().replace(search, `${gmt} (${label})`);
101
139
  }
102
140
  case 'toUTC':
103
141
  case 'utc': {
104
142
  return $Date(this)
105
143
  .toString()
106
- .replace(/GMT[+-]\d{4}\s+\([^)]+\)/, `GMT+0000 (Coordinated Universal Time)`);
144
+ .replace(search, `GMT+0000 (Coordinated Universal Time)`);
107
145
  }
108
146
  default:
109
147
  return $Date(this).toString();
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SEASON_PRESETS = exports.ETHIOPIA_SEASONS = exports.AUSTRALIA_SEASONS = exports.JAPAN_SEASONS = exports.US_ACADEMIC_SEASONS = exports.PHILIPPINES_SEASONS = exports.INDIA_TAMIL_SEASONS = exports.INDIA_VEDIC_SEASONS = exports.INDIA_IMD_SEASONS = exports.BANGLADESH_SEASONS = exports.DEFAULT_SEASONS = void 0;
4
- exports.DEFAULT_SEASONS = Object.freeze([
4
+ exports.DEFAULT_SEASONS = /* @__PURE__ */ Object.freeze([
5
5
  { name: 'Spring', boundary: { startMonth: 2, endMonth: 4 } },
6
6
  { name: 'Summer', boundary: { startMonth: 5, endMonth: 7 } },
7
7
  { name: 'Autumn', boundary: { startMonth: 8, endMonth: 10 } },
8
8
  { name: 'Winter', boundary: { startMonth: 11, endMonth: 1 } },
9
9
  ]);
10
- exports.BANGLADESH_SEASONS = Object.freeze([
10
+ exports.BANGLADESH_SEASONS = /* @__PURE__ */ Object.freeze([
11
11
  {
12
12
  name: 'Grisma (Summer)',
13
13
  boundary: { startDate: '04-15', endDate: '06-14' },
@@ -33,14 +33,14 @@ exports.BANGLADESH_SEASONS = Object.freeze([
33
33
  boundary: { startDate: '02-15', endDate: '04-14' },
34
34
  },
35
35
  ]);
36
- exports.INDIA_IMD_SEASONS = Object.freeze([
36
+ exports.INDIA_IMD_SEASONS = /* @__PURE__ */ Object.freeze([
37
37
  { name: 'Winter', boundary: { startMonth: 0, endMonth: 1 } },
38
38
  { name: 'Pre-Monsoon', boundary: { startMonth: 2, endMonth: 4 } },
39
39
  { name: 'Monsoon', boundary: { startMonth: 5, endMonth: 8 } },
40
40
  { name: 'Post-Monsoon', boundary: { startMonth: 9, endMonth: 10 } },
41
41
  { name: 'Cool Season', boundary: { startMonth: 11, endMonth: 11 } },
42
42
  ]);
43
- exports.INDIA_VEDIC_SEASONS = Object.freeze([
43
+ exports.INDIA_VEDIC_SEASONS = /* @__PURE__ */ Object.freeze([
44
44
  {
45
45
  name: 'Shishir (Winter)',
46
46
  boundary: { startDate: '12-15', endDate: '02-14' },
@@ -66,7 +66,7 @@ exports.INDIA_VEDIC_SEASONS = Object.freeze([
66
66
  boundary: { startDate: '10-15', endDate: '12-14' },
67
67
  },
68
68
  ]);
69
- exports.INDIA_TAMIL_SEASONS = Object.freeze([
69
+ exports.INDIA_TAMIL_SEASONS = /* @__PURE__ */ Object.freeze([
70
70
  { name: 'Ilavenil (Mid-Summer)', boundary: { startMonth: 4, endMonth: 5 } },
71
71
  {
72
72
  name: 'Mutuvenil (Peak-Summer)',
@@ -80,11 +80,11 @@ exports.INDIA_TAMIL_SEASONS = Object.freeze([
80
80
  },
81
81
  { name: 'Pinpani (Late-Winter)', boundary: { startMonth: 0, endMonth: 2 } },
82
82
  ]);
83
- exports.PHILIPPINES_SEASONS = Object.freeze([
83
+ exports.PHILIPPINES_SEASONS = /* @__PURE__ */ Object.freeze([
84
84
  { name: 'Dry Season', boundary: { startMonth: 11, endMonth: 4 } },
85
85
  { name: 'Wet Season', boundary: { startMonth: 5, endMonth: 10 } },
86
86
  ]);
87
- exports.US_ACADEMIC_SEASONS = Object.freeze([
87
+ exports.US_ACADEMIC_SEASONS = /* @__PURE__ */ Object.freeze([
88
88
  {
89
89
  name: 'Spring',
90
90
  boundary: { startDate: '01-10', endDate: '05-15' },
@@ -102,7 +102,7 @@ exports.US_ACADEMIC_SEASONS = Object.freeze([
102
102
  boundary: { startDate: '12-21', endDate: '01-09' },
103
103
  },
104
104
  ]);
105
- exports.JAPAN_SEASONS = Object.freeze([
105
+ exports.JAPAN_SEASONS = /* @__PURE__ */ Object.freeze([
106
106
  {
107
107
  name: 'Haru (Spring)',
108
108
  boundary: { startDate: '03-01', endDate: '05-31' },
@@ -120,18 +120,18 @@ exports.JAPAN_SEASONS = Object.freeze([
120
120
  boundary: { startDate: '12-01', endDate: '02-28' },
121
121
  },
122
122
  ]);
123
- exports.AUSTRALIA_SEASONS = Object.freeze([
123
+ exports.AUSTRALIA_SEASONS = /* @__PURE__ */ Object.freeze([
124
124
  { name: 'Summer', boundary: { startMonth: 11, endMonth: 1 } },
125
125
  { name: 'Autumn', boundary: { startMonth: 2, endMonth: 4 } },
126
126
  { name: 'Winter', boundary: { startMonth: 5, endMonth: 7 } },
127
127
  { name: 'Spring', boundary: { startMonth: 8, endMonth: 10 } },
128
128
  ]);
129
- exports.ETHIOPIA_SEASONS = Object.freeze([
129
+ exports.ETHIOPIA_SEASONS = /* @__PURE__ */ Object.freeze([
130
130
  { name: 'Bega (Dry)', boundary: { startMonth: 10, endMonth: 1 } },
131
131
  { name: 'Belg (Short Rain)', boundary: { startMonth: 2, endMonth: 4 } },
132
132
  { name: 'Kiremt (Main Rain)', boundary: { startMonth: 5, endMonth: 9 } },
133
133
  ]);
134
- exports.SEASON_PRESETS = Object.freeze({
134
+ exports.SEASON_PRESETS = /* @__PURE__ */ Object.freeze({
135
135
  default: exports.DEFAULT_SEASONS,
136
136
  bangladesh: exports.BANGLADESH_SEASONS,
137
137
  india: exports.INDIA_IMD_SEASONS,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TIME_ZONE_IDS = exports.TIME_ZONE_LABELS = exports.TIME_ZONES = void 0;
4
- exports.TIME_ZONES = Object.freeze({
4
+ exports.TIME_ZONES = /* @__PURE__ */ Object.freeze({
5
5
  ACDT: {
6
6
  tzName: 'Australian Central Daylight Saving Time',
7
7
  offset: 'UTC+10:30',
@@ -251,7 +251,7 @@ exports.TIME_ZONES = Object.freeze({
251
251
  offset: 'UTC+07:00',
252
252
  },
253
253
  DDUT: {
254
- tzName: "Dumont d'Urville Time (in French Antarctic Station)",
254
+ tzName: "Dumont d'Urville Time (Antarctic Station in French)",
255
255
  offset: 'UTC+10:00',
256
256
  },
257
257
  DFT: {
@@ -399,7 +399,7 @@ exports.TIME_ZONES = Object.freeze({
399
399
  offset: 'UTC+07:00',
400
400
  },
401
401
  IDLW: {
402
- tzName: 'International Date Line West time zone',
402
+ tzName: 'International Date Line West',
403
403
  offset: 'UTC-12:00',
404
404
  },
405
405
  IDT: {
@@ -851,7 +851,7 @@ exports.TIME_ZONES = Object.freeze({
851
851
  offset: 'UTC+05:00',
852
852
  },
853
853
  });
854
- exports.TIME_ZONE_LABELS = Object.freeze({
854
+ exports.TIME_ZONE_LABELS = /* @__PURE__ */ Object.freeze({
855
855
  'UTC-12:00': 'Baker Island Time',
856
856
  'UTC-11:00': 'Samoa Standard Time',
857
857
  'UTC-10:00': 'Hawaii-Aleutian Standard Time',
@@ -892,11 +892,11 @@ exports.TIME_ZONE_LABELS = Object.freeze({
892
892
  'UTC+10:30': 'Lord Howe Standard Time',
893
893
  'UTC+11:00': 'Central Pacific Standard Time',
894
894
  'UTC+12:00': 'New Zealand Standard Time',
895
- 'UTC+12:45': 'Chatham Islands Time',
895
+ 'UTC+12:45': 'Chatham Standard Time',
896
896
  'UTC+13:00': 'Phoenix Island Time',
897
897
  'UTC+14:00': 'Line Islands Time',
898
898
  });
899
- exports.TIME_ZONE_IDS = Object.freeze({
899
+ exports.TIME_ZONE_IDS = /* @__PURE__ */ Object.freeze({
900
900
  'Africa/Abidjan': {
901
901
  tzName: 'Greenwich Mean Time',
902
902
  offset: 'UTC+00:00',
@@ -7,6 +7,7 @@ exports.extractTimeFromUTC = extractTimeFromUTC;
7
7
  exports.extractMinutesFromUTC = extractMinutesFromUTC;
8
8
  exports.convertMinutesToTime = convertMinutesToTime;
9
9
  exports.formatUTCOffset = formatUTCOffset;
10
+ exports.getTimeZoneDetails = getTimeZoneDetails;
10
11
  function extractHourMinute(time) {
11
12
  const [hour, minute] = time.split(':').map(Number);
12
13
  return [hour, minute];
@@ -38,3 +39,17 @@ function formatUTCOffset(minutes) {
38
39
  const mins = String(abs % 60).padStart(2, '0');
39
40
  return `UTC${sign}${hours}:${mins}`;
40
41
  }
42
+ function getTimeZoneDetails(tzId, date) {
43
+ const TZ_NAME_TYPES = ['long', 'longGeneric', 'longOffset'];
44
+ const obj = { tzIdentifier: tzId };
45
+ for (const type of TZ_NAME_TYPES) {
46
+ const parts = new Intl.DateTimeFormat('en', {
47
+ timeZone: tzId,
48
+ timeZoneName: type,
49
+ }).formatToParts(date);
50
+ const tzPart = parts.find((p) => p.type === 'timeZoneName');
51
+ const key = `tzName${type[0].toUpperCase()}${type.slice(1)}`;
52
+ obj[key] = tzPart?.value;
53
+ }
54
+ return obj;
55
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HTTP_STATUS_CODES = exports.HTTP_STATUS_DATA = void 0;
4
- exports.HTTP_STATUS_DATA = Object.freeze([
4
+ exports.HTTP_STATUS_DATA = /* @__PURE__ */ Object.freeze([
5
5
  {
6
6
  category: 'informational',
7
7
  link: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/100',
@@ -570,7 +570,7 @@ exports.HTTP_STATUS_DATA = Object.freeze([
570
570
  description: 'Indicates that the client needs to authenticate to gain network access.',
571
571
  },
572
572
  ]);
573
- exports.HTTP_STATUS_CODES = Object.freeze({
573
+ exports.HTTP_STATUS_CODES = /* @__PURE__ */ Object.freeze({
574
574
  CONTINUE: 100,
575
575
  SWITCHING_PROTOCOLS: 101,
576
576
  PROCESSING: 102,
package/dist/cjs/index.js CHANGED
@@ -4,10 +4,10 @@ exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports
4
4
  exports.convertRomanToNumeric = exports.convertRomanToInteger = exports.convertRomanToArabic = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = 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 = void 0;
5
5
  exports.convertHslaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHexToRgb = 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.wordsToNumber = exports.wordToNumber = exports.toRomanNumeral = exports.toRoman = exports.romanToNumeric = exports.romanToInteger = exports.romanToArabic = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordsToNumber = exports.convertWordToNumber = exports.convertToRomanNumerals = void 0;
6
6
  exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidUTCOffset = exports.isValidTimeZoneId = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.isRGBA = exports.isRGB = exports.isHex8 = exports.isHex6 = exports.isHSLA = exports.isHSL = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertHslaToRgba = void 0;
7
- exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = 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 = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = 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.getTimeStringFromUTC = void 0;
8
- 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 = 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 = void 0;
9
- 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 = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = void 0;
10
- exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = 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 = void 0;
7
+ exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = 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 = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = 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.getTimeZoneDetails = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = void 0;
8
+ 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 = 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 = void 0;
9
+ 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 = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = void 0;
10
+ exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = 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 = void 0;
11
11
  var basics_1 = require("./string/basics");
12
12
  Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
13
13
  Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
@@ -244,6 +244,7 @@ Object.defineProperty(exports, "getTotalMinutes", { enumerable: true, get: funct
244
244
  Object.defineProperty(exports, "getTotalMinutesFromTime", { enumerable: true, get: function () { return utils_2.getTotalMinutes; } });
245
245
  Object.defineProperty(exports, "getTotalMinutesFromUTC", { enumerable: true, get: function () { return utils_2.extractMinutesFromUTC; } });
246
246
  Object.defineProperty(exports, "minutesToUTCOffset", { enumerable: true, get: function () { return utils_2.formatUTCOffset; } });
247
+ Object.defineProperty(exports, "getTimeZoneDetails", { enumerable: true, get: function () { return utils_2.getTimeZoneDetails; } });
247
248
  var basics_3 = require("./array/basics");
248
249
  Object.defineProperty(exports, "filterArrayOfObjects", { enumerable: true, get: function () { return basics_3.filterArrayOfObjects; } });
249
250
  Object.defineProperty(exports, "flattenArray", { enumerable: true, get: function () { return basics_3.flattenArray; } });