ts-time-utils 0.0.1 → 1.0.0

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 (72) hide show
  1. package/README.md +365 -1
  2. package/dist/age.d.ts +1 -10
  3. package/dist/age.d.ts.map +1 -1
  4. package/dist/constants.d.ts +2 -21
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +12 -13
  7. package/dist/duration.d.ts +171 -0
  8. package/dist/duration.d.ts.map +1 -0
  9. package/dist/duration.js +382 -0
  10. package/dist/esm/age.d.ts +1 -10
  11. package/dist/esm/age.d.ts.map +1 -1
  12. package/dist/esm/constants.d.ts +2 -21
  13. package/dist/esm/constants.d.ts.map +1 -1
  14. package/dist/esm/constants.js +12 -13
  15. package/dist/esm/duration.d.ts +171 -0
  16. package/dist/esm/duration.d.ts.map +1 -0
  17. package/dist/esm/duration.js +382 -0
  18. package/dist/esm/format.d.ts.map +1 -1
  19. package/dist/esm/index.d.ts +10 -6
  20. package/dist/esm/index.d.ts.map +1 -1
  21. package/dist/esm/index.js +8 -0
  22. package/dist/esm/interval.d.ts +3 -6
  23. package/dist/esm/interval.d.ts.map +1 -1
  24. package/dist/esm/locale.d.ts +94 -0
  25. package/dist/esm/locale.d.ts.map +1 -0
  26. package/dist/esm/locale.js +1087 -0
  27. package/dist/esm/performance.d.ts +2 -9
  28. package/dist/esm/performance.d.ts.map +1 -1
  29. package/dist/esm/performance.js +7 -8
  30. package/dist/esm/rangePresets.d.ts +7 -8
  31. package/dist/esm/rangePresets.d.ts.map +1 -1
  32. package/dist/esm/rangePresets.js +11 -9
  33. package/dist/esm/serialize.d.ts +73 -0
  34. package/dist/esm/serialize.d.ts.map +1 -0
  35. package/dist/esm/serialize.js +365 -0
  36. package/dist/esm/timezone.d.ts +2 -6
  37. package/dist/esm/timezone.d.ts.map +1 -1
  38. package/dist/esm/timezone.js +1 -1
  39. package/dist/esm/types.d.ts +229 -0
  40. package/dist/esm/types.d.ts.map +1 -0
  41. package/dist/esm/types.js +25 -0
  42. package/dist/esm/workingHours.d.ts +4 -13
  43. package/dist/esm/workingHours.d.ts.map +1 -1
  44. package/dist/esm/workingHours.js +3 -1
  45. package/dist/format.d.ts.map +1 -1
  46. package/dist/index.d.ts +10 -6
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +8 -0
  49. package/dist/interval.d.ts +3 -6
  50. package/dist/interval.d.ts.map +1 -1
  51. package/dist/locale.d.ts +94 -0
  52. package/dist/locale.d.ts.map +1 -0
  53. package/dist/locale.js +1087 -0
  54. package/dist/performance.d.ts +2 -9
  55. package/dist/performance.d.ts.map +1 -1
  56. package/dist/performance.js +7 -8
  57. package/dist/rangePresets.d.ts +7 -8
  58. package/dist/rangePresets.d.ts.map +1 -1
  59. package/dist/rangePresets.js +11 -9
  60. package/dist/serialize.d.ts +73 -0
  61. package/dist/serialize.d.ts.map +1 -0
  62. package/dist/serialize.js +365 -0
  63. package/dist/timezone.d.ts +2 -6
  64. package/dist/timezone.d.ts.map +1 -1
  65. package/dist/timezone.js +1 -1
  66. package/dist/types.d.ts +229 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/types.js +25 -0
  69. package/dist/workingHours.d.ts +4 -13
  70. package/dist/workingHours.d.ts.map +1 -1
  71. package/dist/workingHours.js +3 -1
  72. package/package.json +39 -3
@@ -0,0 +1,382 @@
1
+ import { MILLISECONDS_PER_SECOND, MILLISECONDS_PER_MINUTE, MILLISECONDS_PER_HOUR, MILLISECONDS_PER_DAY, MILLISECONDS_PER_WEEK } from './constants.js';
2
+ /**
3
+ * Represents a duration of time with arithmetic and conversion capabilities
4
+ */
5
+ export class Duration {
6
+ constructor(input) {
7
+ if (typeof input === 'number') {
8
+ this._milliseconds = input;
9
+ }
10
+ else if (typeof input === 'string') {
11
+ this._milliseconds = this.parseString(input);
12
+ }
13
+ else {
14
+ this._milliseconds = this.calculateMilliseconds(input);
15
+ }
16
+ }
17
+ /**
18
+ * Create Duration from milliseconds
19
+ */
20
+ static fromMilliseconds(ms) {
21
+ return new Duration(ms);
22
+ }
23
+ /**
24
+ * Create Duration from seconds
25
+ */
26
+ static fromSeconds(seconds) {
27
+ return new Duration(seconds * MILLISECONDS_PER_SECOND);
28
+ }
29
+ /**
30
+ * Create Duration from minutes
31
+ */
32
+ static fromMinutes(minutes) {
33
+ return new Duration(minutes * MILLISECONDS_PER_MINUTE);
34
+ }
35
+ /**
36
+ * Create Duration from hours
37
+ */
38
+ static fromHours(hours) {
39
+ return new Duration(hours * MILLISECONDS_PER_HOUR);
40
+ }
41
+ /**
42
+ * Create Duration from days
43
+ */
44
+ static fromDays(days) {
45
+ return new Duration(days * MILLISECONDS_PER_DAY);
46
+ }
47
+ /**
48
+ * Create Duration from weeks
49
+ */
50
+ static fromWeeks(weeks) {
51
+ return new Duration(weeks * MILLISECONDS_PER_WEEK);
52
+ }
53
+ /**
54
+ * Create Duration from a string (e.g., "1h 30m", "2.5 hours", "90 seconds")
55
+ */
56
+ static fromString(str) {
57
+ return new Duration(str);
58
+ }
59
+ /**
60
+ * Create Duration between two dates
61
+ */
62
+ static between(start, end) {
63
+ return new Duration(Math.abs(end.getTime() - start.getTime()));
64
+ }
65
+ /**
66
+ * Get duration in milliseconds
67
+ */
68
+ get milliseconds() {
69
+ return this._milliseconds;
70
+ }
71
+ /**
72
+ * Get duration in seconds
73
+ */
74
+ get seconds() {
75
+ return this._milliseconds / MILLISECONDS_PER_SECOND;
76
+ }
77
+ /**
78
+ * Get duration in minutes
79
+ */
80
+ get minutes() {
81
+ return this._milliseconds / MILLISECONDS_PER_MINUTE;
82
+ }
83
+ /**
84
+ * Get duration in hours
85
+ */
86
+ get hours() {
87
+ return this._milliseconds / MILLISECONDS_PER_HOUR;
88
+ }
89
+ /**
90
+ * Get duration in days
91
+ */
92
+ get days() {
93
+ return this._milliseconds / MILLISECONDS_PER_DAY;
94
+ }
95
+ /**
96
+ * Get duration in weeks
97
+ */
98
+ get weeks() {
99
+ return this._milliseconds / MILLISECONDS_PER_WEEK;
100
+ }
101
+ /**
102
+ * Add another duration
103
+ */
104
+ add(other) {
105
+ const otherDuration = this.normalizeToDuration(other);
106
+ return new Duration(this._milliseconds + otherDuration._milliseconds);
107
+ }
108
+ /**
109
+ * Subtract another duration
110
+ */
111
+ subtract(other) {
112
+ const otherDuration = this.normalizeToDuration(other);
113
+ return new Duration(Math.max(0, this._milliseconds - otherDuration._milliseconds));
114
+ }
115
+ /**
116
+ * Multiply duration by a factor
117
+ */
118
+ multiply(factor) {
119
+ return new Duration(this._milliseconds * factor);
120
+ }
121
+ /**
122
+ * Divide duration by a factor
123
+ */
124
+ divide(factor) {
125
+ if (factor === 0) {
126
+ throw new Error('Cannot divide duration by zero');
127
+ }
128
+ return new Duration(this._milliseconds / factor);
129
+ }
130
+ /**
131
+ * Get absolute duration (always positive)
132
+ */
133
+ abs() {
134
+ return new Duration(Math.abs(this._milliseconds));
135
+ }
136
+ /**
137
+ * Negate duration
138
+ */
139
+ negate() {
140
+ return new Duration(-this._milliseconds);
141
+ }
142
+ /**
143
+ * Check if duration equals another
144
+ */
145
+ equals(other) {
146
+ const otherMs = typeof other === 'number' ? other : other._milliseconds;
147
+ return Math.abs(this._milliseconds - otherMs) < 1; // Allow for floating point precision
148
+ }
149
+ /**
150
+ * Check if duration is greater than another
151
+ */
152
+ greaterThan(other) {
153
+ const otherMs = typeof other === 'number' ? other : other._milliseconds;
154
+ return this._milliseconds > otherMs;
155
+ }
156
+ /**
157
+ * Check if duration is less than another
158
+ */
159
+ lessThan(other) {
160
+ const otherMs = typeof other === 'number' ? other : other._milliseconds;
161
+ return this._milliseconds < otherMs;
162
+ }
163
+ /**
164
+ * Compare with another duration (-1, 0, 1)
165
+ */
166
+ compareTo(other) {
167
+ if (this._milliseconds < other._milliseconds)
168
+ return -1;
169
+ if (this._milliseconds > other._milliseconds)
170
+ return 1;
171
+ return 0;
172
+ }
173
+ /**
174
+ * Check if duration is zero
175
+ */
176
+ isZero() {
177
+ return Math.abs(this._milliseconds) < 1;
178
+ }
179
+ /**
180
+ * Check if duration is positive
181
+ */
182
+ isPositive() {
183
+ return this._milliseconds > 0;
184
+ }
185
+ /**
186
+ * Check if duration is negative
187
+ */
188
+ isNegative() {
189
+ return this._milliseconds < 0;
190
+ }
191
+ /**
192
+ * Convert to human-readable string
193
+ */
194
+ toString() {
195
+ if (this.isZero())
196
+ return '0ms';
197
+ const parts = [];
198
+ let remaining = Math.abs(this._milliseconds);
199
+ const units = [
200
+ { name: 'd', value: MILLISECONDS_PER_DAY },
201
+ { name: 'h', value: MILLISECONDS_PER_HOUR },
202
+ { name: 'm', value: MILLISECONDS_PER_MINUTE },
203
+ { name: 's', value: MILLISECONDS_PER_SECOND },
204
+ { name: 'ms', value: 1 }
205
+ ];
206
+ for (const unit of units) {
207
+ if (remaining >= unit.value) {
208
+ const count = Math.floor(remaining / unit.value);
209
+ parts.push(`${count}${unit.name}`);
210
+ remaining %= unit.value;
211
+ }
212
+ }
213
+ const result = parts.join(' ');
214
+ return this._milliseconds < 0 ? `-${result}` : result;
215
+ }
216
+ /**
217
+ * Convert to detailed object representation
218
+ */
219
+ toObject() {
220
+ const ms = Math.abs(this._milliseconds);
221
+ const days = Math.floor(ms / MILLISECONDS_PER_DAY);
222
+ const hours = Math.floor((ms % MILLISECONDS_PER_DAY) / MILLISECONDS_PER_HOUR);
223
+ const minutes = Math.floor((ms % MILLISECONDS_PER_HOUR) / MILLISECONDS_PER_MINUTE);
224
+ const seconds = Math.floor((ms % MILLISECONDS_PER_MINUTE) / MILLISECONDS_PER_SECOND);
225
+ const milliseconds = ms % MILLISECONDS_PER_SECOND;
226
+ return {
227
+ years: 0, // Years/months require complex calendar calculations
228
+ months: 0,
229
+ weeks: Math.floor(days / 7),
230
+ days: days,
231
+ hours,
232
+ minutes,
233
+ seconds,
234
+ milliseconds
235
+ };
236
+ }
237
+ /**
238
+ * Convert to JSON representation
239
+ */
240
+ toJSON() {
241
+ return this._milliseconds;
242
+ }
243
+ /**
244
+ * Create Duration from JSON
245
+ */
246
+ static fromJSON(ms) {
247
+ return new Duration(ms);
248
+ }
249
+ calculateMilliseconds(input) {
250
+ let total = 0;
251
+ if (input.milliseconds)
252
+ total += input.milliseconds;
253
+ if (input.seconds)
254
+ total += input.seconds * MILLISECONDS_PER_SECOND;
255
+ if (input.minutes)
256
+ total += input.minutes * MILLISECONDS_PER_MINUTE;
257
+ if (input.hours)
258
+ total += input.hours * MILLISECONDS_PER_HOUR;
259
+ if (input.days)
260
+ total += input.days * MILLISECONDS_PER_DAY;
261
+ if (input.weeks)
262
+ total += input.weeks * MILLISECONDS_PER_WEEK;
263
+ // Approximate conversions for months and years
264
+ if (input.months)
265
+ total += input.months * MILLISECONDS_PER_DAY * 30.44; // Average month
266
+ if (input.years)
267
+ total += input.years * MILLISECONDS_PER_DAY * 365.25; // Average year
268
+ return total;
269
+ }
270
+ parseString(str) {
271
+ const normalized = str.toLowerCase().trim();
272
+ // Handle simple formats like "1000", "1000ms"
273
+ if (/^\d+(?:ms)?$/.test(normalized)) {
274
+ return parseInt(normalized.replace('ms', ''));
275
+ }
276
+ // Handle complex formats like "1h 30m 45s"
277
+ const patterns = [
278
+ { regex: /(\d+(?:\.\d+)?)\s*y(?:ears?)?(?!\w)/g, multiplier: MILLISECONDS_PER_DAY * 365.25 },
279
+ { regex: /(\d+(?:\.\d+)?)\s*mo(?:nths?)?(?!\w)/g, multiplier: MILLISECONDS_PER_DAY * 30.44 },
280
+ { regex: /(\d+(?:\.\d+)?)\s*w(?:eeks?)?(?!\w)/g, multiplier: MILLISECONDS_PER_WEEK },
281
+ { regex: /(\d+(?:\.\d+)?)\s*d(?:ays?)?(?!\w)/g, multiplier: MILLISECONDS_PER_DAY },
282
+ { regex: /(\d+(?:\.\d+)?)\s*h(?:ours?)?(?!\w)/g, multiplier: MILLISECONDS_PER_HOUR },
283
+ { regex: /(\d+(?:\.\d+)?)\s*min(?:utes?)?(?!\w)/g, multiplier: MILLISECONDS_PER_MINUTE },
284
+ { regex: /(\d+(?:\.\d+)?)\s*m(?!s|o)(?!\w)/g, multiplier: MILLISECONDS_PER_MINUTE },
285
+ { regex: /(\d+(?:\.\d+)?)\s*s(?:ec(?:onds?)?)?(?!\w)/g, multiplier: MILLISECONDS_PER_SECOND },
286
+ { regex: /(\d+(?:\.\d+)?)\s*ms(?!\w)/g, multiplier: 1 }
287
+ ];
288
+ let total = 0;
289
+ let hasMatch = false;
290
+ for (const pattern of patterns) {
291
+ let match;
292
+ while ((match = pattern.regex.exec(normalized)) !== null) {
293
+ total += parseFloat(match[1]) * pattern.multiplier;
294
+ hasMatch = true;
295
+ }
296
+ pattern.regex.lastIndex = 0; // Reset regex
297
+ }
298
+ if (!hasMatch) {
299
+ throw new Error(`Invalid duration format: ${str}`);
300
+ }
301
+ return total;
302
+ }
303
+ normalizeToDuration(input) {
304
+ if (input instanceof Duration) {
305
+ return input;
306
+ }
307
+ return new Duration(input);
308
+ }
309
+ }
310
+ /**
311
+ * Create a new Duration instance
312
+ */
313
+ export function createDuration(input) {
314
+ return new Duration(input);
315
+ }
316
+ /**
317
+ * Check if a value is a valid duration
318
+ */
319
+ export function isValidDuration(value) {
320
+ return value instanceof Duration;
321
+ }
322
+ /**
323
+ * Parse duration from various formats
324
+ */
325
+ export function parseDurationString(input) {
326
+ return new Duration(input);
327
+ }
328
+ /**
329
+ * Format duration to human-readable string
330
+ */
331
+ export function formatDurationString(duration, options) {
332
+ const d = typeof duration === 'number' ? new Duration(duration) : duration;
333
+ if (options?.long) {
334
+ const obj = d.toObject();
335
+ const parts = [];
336
+ const units = [
337
+ { key: 'days', singular: 'day', plural: 'days' },
338
+ { key: 'hours', singular: 'hour', plural: 'hours' },
339
+ { key: 'minutes', singular: 'minute', plural: 'minutes' },
340
+ { key: 'seconds', singular: 'second', plural: 'seconds' }
341
+ ];
342
+ for (const unit of units) {
343
+ const value = obj[unit.key];
344
+ if (value > 0) {
345
+ parts.push(`${value} ${value === 1 ? unit.singular : unit.plural}`);
346
+ }
347
+ }
348
+ return parts.length > 0 ? parts.join(', ') : '0 seconds';
349
+ }
350
+ return d.toString();
351
+ }
352
+ /**
353
+ * Get the maximum duration from an array
354
+ */
355
+ export function maxDuration(...durations) {
356
+ if (durations.length === 0)
357
+ return null;
358
+ return durations.reduce((max, current) => current.greaterThan(max) ? current : max);
359
+ }
360
+ /**
361
+ * Get the minimum duration from an array
362
+ */
363
+ export function minDuration(...durations) {
364
+ if (durations.length === 0)
365
+ return null;
366
+ return durations.reduce((min, current) => current.lessThan(min) ? current : min);
367
+ }
368
+ /**
369
+ * Sum multiple durations
370
+ */
371
+ export function sumDurations(...durations) {
372
+ return durations.reduce((sum, current) => sum.add(current), new Duration(0));
373
+ }
374
+ /**
375
+ * Get average duration from an array
376
+ */
377
+ export function averageDuration(...durations) {
378
+ if (durations.length === 0)
379
+ return null;
380
+ const sum = sumDurations(...durations);
381
+ return sum.divide(durations.length);
382
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA2E9E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA+CvE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,KAAK,GAAG,KAAK,GAAG,KAAa,GAAG,MAAM,CAcpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyDtD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA2E9E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA+CvE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,KAAK,GAAG,KAAK,GAAG,KAAa,GAAG,MAAM,CAcpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyDtD"}
@@ -5,13 +5,17 @@
5
5
  export { formatDuration, timeAgo, formatTime, parseDuration } from './format.js';
6
6
  export { differenceInUnits, addTime, subtractTime, startOf, endOf, isBetween, businessDaysBetween } from './calculate.js';
7
7
  export { isValidDate, isLeapYear, isPast, isFuture, isToday, isYesterday, isTomorrow, isSameDay, isWeekend, isWeekday, isValidTimeString, isValidISOString } from './validate.js';
8
- export { calculateAge, getAgeInUnits, getLifeStage, getNextBirthday, getDaysUntilBirthday, isBirthday, type AgeResult } from './age.js';
8
+ export { calculateAge, getAgeInUnits, getLifeStage, getNextBirthday, getDaysUntilBirthday, isBirthday } from './age.js';
9
9
  export { getWeekNumber, getWeekOfMonth, getQuarter, getDayOfYear, getWeeksInYear, getDaysInMonth, getDaysInYear, getEaster, getMonthsInYear, getDaysInMonthArray, getWeekdaysInMonth, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear } from './calendar.js';
10
10
  export { parseDate, parseRelativeDate, parseTimeAgo, parseCustomFormat, parseManyFormats } from './parse.js';
11
- export { sleep, timeout, debounce, throttle, retry, createStopwatch, measureTime, measureAsync, benchmark, Stopwatch, type BenchmarkResult } from './performance.js';
12
- export { createInterval, isValidInterval, intervalDuration, intervalContains, intervalsOverlap, intervalIntersection, mergeIntervals, subtractInterval, splitIntervalByDay, totalIntervalCoverage, normalizeIntervals, type Interval } from './interval.js';
13
- export { getTimezoneOffset, formatInTimeZone, getZonedTime, convertDateToZone, isValidTimeZone, COMMON_TIMEZONES, getLocalOffset, compareZoneOffsets, reinterpretAsZone, type ZonedTime } from './timezone.js';
14
- export { DEFAULT_WORKING_HOURS, isWorkingDay, isWorkingTime, nextWorkingTime, workingTimeBetween, addWorkingHours, type WorkingHoursConfig } from './workingHours.js';
15
- export { today, yesterday, tomorrow, lastNDays, nextNDays, thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear, rollingWindowDays, quarterRange, lastQuarter, nextQuarter, RANGE_PRESETS, type DateRange } from './rangePresets.js';
11
+ export { sleep, timeout, debounce, throttle, retry, createStopwatch, measureTime, measureAsync, benchmark, Stopwatch } from './performance.js';
12
+ export { createInterval, isValidInterval, intervalDuration, intervalContains, intervalsOverlap, intervalIntersection, mergeIntervals, subtractInterval, splitIntervalByDay, totalIntervalCoverage, normalizeIntervals } from './interval.js';
13
+ export { getTimezoneOffset, formatInTimeZone, getZonedTime, convertDateToZone, isValidTimeZone, COMMON_TIMEZONES, getLocalOffset, compareZoneOffsets, reinterpretAsZone } from './timezone.js';
14
+ export { DEFAULT_WORKING_HOURS, isWorkingDay, isWorkingTime, nextWorkingTime, workingTimeBetween, addWorkingHours } from './workingHours.js';
15
+ export { today, yesterday, tomorrow, lastNDays, nextNDays, thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear, rollingWindowDays, quarterRange, lastQuarter, nextQuarter, RANGE_PRESETS } from './rangePresets.js';
16
+ export { Duration, createDuration, isValidDuration, parseDurationString, formatDurationString, maxDuration, minDuration, sumDurations, averageDuration } from './duration.js';
17
+ export { serializeDate, deserializeDate, createDateReviver, createDateReplacer, parseISOString, toEpochTimestamp, fromEpochTimestamp, createEpochTimestamp, toDateObject, fromDateObject, isValidISODateString, isValidEpochTimestamp, cloneDate, datesEqual, now, parseJSONWithDates, stringifyWithDates } from './serialize.js';
18
+ export { registerLocale, getLocaleConfig, getSupportedLocales, formatRelativeTime, formatDateLocale, formatTimeLocale, formatDateTimeLocale, getMonthNames, getDayNames, getFirstDayOfWeek, isLocaleSupported, getBestMatchingLocale, detectLocale, convertRelativeTime, detectLocaleFromRelativeTime, convertFormatPattern, convertFormattedDate, convertRelativeTimeArray, compareLocaleFormats } from './locale.js';
16
19
  export { MILLISECONDS_PER_SECOND, MILLISECONDS_PER_MINUTE, MILLISECONDS_PER_HOUR, MILLISECONDS_PER_DAY, MILLISECONDS_PER_WEEK, MILLISECONDS_PER_MONTH, MILLISECONDS_PER_YEAR, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, type TimeUnit, type FormatOptions } from './constants.js';
20
+ export type { DateInput, DateRange, ParseOptions, WorkingHoursConfig, AgeResult, ZonedTime, Interval, BenchmarkResult, RecurrencePattern, LocaleFormatOptions, BusinessConfig, DateValidator, DateTransformer, TimeUtilsError, ParseError, ValidationError, DurationUnit, DurationInput, DurationComparison, SerializationOptions, DateObject, EpochTimestamp, SupportedLocale, LocaleConfig, RelativeTimeOptions, RelativeTimeUnit } from './types.js';
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,OAAO,EACP,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,OAAO,EACP,KAAK,EACL,SAAS,EACT,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,KAAK,SAAS,EACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,SAAS,EACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -24,5 +24,13 @@ export { getTimezoneOffset, formatInTimeZone, getZonedTime, convertDateToZone, i
24
24
  export { DEFAULT_WORKING_HOURS, isWorkingDay, isWorkingTime, nextWorkingTime, workingTimeBetween, addWorkingHours } from './workingHours.js';
25
25
  // Range preset utilities
26
26
  export { today, yesterday, tomorrow, lastNDays, nextNDays, thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear, rollingWindowDays, quarterRange, lastQuarter, nextQuarter, RANGE_PRESETS } from './rangePresets.js';
27
+ // Duration utilities
28
+ export { Duration, createDuration, isValidDuration, parseDurationString, formatDurationString, maxDuration, minDuration, sumDurations, averageDuration } from './duration.js';
29
+ // Serialization utilities
30
+ export { serializeDate, deserializeDate, createDateReviver, createDateReplacer, parseISOString, toEpochTimestamp, fromEpochTimestamp, createEpochTimestamp, toDateObject, fromDateObject, isValidISODateString, isValidEpochTimestamp, cloneDate, datesEqual, now, parseJSONWithDates, stringifyWithDates } from './serialize.js';
31
+ // Locale utilities
32
+ export { registerLocale, getLocaleConfig, getSupportedLocales, formatRelativeTime, formatDateLocale, formatTimeLocale, formatDateTimeLocale, getMonthNames, getDayNames, getFirstDayOfWeek, isLocaleSupported, getBestMatchingLocale, detectLocale,
33
+ // Conversion utilities
34
+ convertRelativeTime, detectLocaleFromRelativeTime, convertFormatPattern, convertFormattedDate, convertRelativeTimeArray, compareLocaleFormats } from './locale.js';
27
35
  // Constants and types
28
36
  export { MILLISECONDS_PER_SECOND, MILLISECONDS_PER_MINUTE, MILLISECONDS_PER_HOUR, MILLISECONDS_PER_DAY, MILLISECONDS_PER_WEEK, MILLISECONDS_PER_MONTH, MILLISECONDS_PER_YEAR, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK } from './constants.js';
@@ -1,18 +1,15 @@
1
1
  /**
2
2
  * Interval utilities: operations on time intervals [start, end)
3
3
  */
4
- export interface Interval {
5
- start: Date;
6
- end: Date;
7
- }
4
+ import type { Interval, DateInput } from './types.js';
8
5
  /** Create an interval ensuring start <= end */
9
- export declare function createInterval(start: Date | string | number, end: Date | string | number): Interval | null;
6
+ export declare function createInterval(start: DateInput, end: DateInput): Interval | null;
10
7
  /** Validate an object is a proper interval */
11
8
  export declare function isValidInterval(i: any): i is Interval;
12
9
  /** Duration of interval in ms */
13
10
  export declare function intervalDuration(i: Interval): number;
14
11
  /** Whether interval contains date (inclusive start, exclusive end) */
15
- export declare function intervalContains(i: Interval, date: Date | number): boolean;
12
+ export declare function intervalContains(i: Interval, date: DateInput): boolean;
16
13
  /** Whether two intervals overlap */
17
14
  export declare function intervalsOverlap(a: Interval, b: Interval): boolean;
18
15
  /** Intersection of two intervals, or null */
@@ -1 +1 @@
1
- {"version":3,"file":"interval.d.ts","sourceRoot":"","sources":["../../src/interval.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAK1G;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAErD;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpD;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAG1E;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAElE;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAI9E;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAgBhE;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAMrE;AAED,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAU1D;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAEnE;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,CAEzF"}
1
+ {"version":3,"file":"interval.d.ts","sourceRoot":"","sources":["../../src/interval.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAKhF;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAErD;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpD;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAGtE;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAElE;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAI9E;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAgBhE;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAMrE;AAED,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAU1D;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAEnE;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,CAEzF"}
@@ -0,0 +1,94 @@
1
+ import type { DateInput, SupportedLocale, LocaleConfig, RelativeTimeOptions } from './types.js';
2
+ /**
3
+ * Register a custom locale configuration
4
+ */
5
+ export declare function registerLocale(config: LocaleConfig): void;
6
+ /**
7
+ * Get locale configuration, with fallback to base language or English
8
+ */
9
+ export declare function getLocaleConfig(locale: SupportedLocale): LocaleConfig;
10
+ /**
11
+ * Get list of all registered locales
12
+ */
13
+ export declare function getSupportedLocales(): SupportedLocale[];
14
+ /**
15
+ * Format relative time in the specified locale
16
+ */
17
+ export declare function formatRelativeTime(date: DateInput, options?: RelativeTimeOptions): string;
18
+ /**
19
+ * Format date in locale-specific format
20
+ */
21
+ export declare function formatDateLocale(date: DateInput, locale?: SupportedLocale, style?: 'short' | 'medium' | 'long' | 'full'): string;
22
+ /**
23
+ * Format time in locale-specific format
24
+ */
25
+ export declare function formatTimeLocale(date: DateInput, locale?: SupportedLocale, style?: 'short' | 'medium' | 'long' | 'full'): string;
26
+ /**
27
+ * Format both date and time in locale-specific format
28
+ */
29
+ export declare function formatDateTimeLocale(date: DateInput, locale?: SupportedLocale, dateStyle?: 'short' | 'medium' | 'long' | 'full', timeStyle?: 'short' | 'medium' | 'long' | 'full'): string;
30
+ /**
31
+ * Get localized month names
32
+ */
33
+ export declare function getMonthNames(locale?: SupportedLocale, short?: boolean): string[];
34
+ /**
35
+ * Get localized day names
36
+ */
37
+ export declare function getDayNames(locale?: SupportedLocale, short?: boolean): string[];
38
+ /**
39
+ * Get the first day of week for a locale (0 = Sunday, 1 = Monday, etc.)
40
+ */
41
+ export declare function getFirstDayOfWeek(locale?: SupportedLocale): number;
42
+ /**
43
+ * Check if a locale is supported
44
+ */
45
+ export declare function isLocaleSupported(locale: string): locale is SupportedLocale;
46
+ /**
47
+ * Get the best matching locale from a list of preferences
48
+ */
49
+ export declare function getBestMatchingLocale(preferences: string[], fallback?: SupportedLocale): SupportedLocale;
50
+ /**
51
+ * Auto-detect locale from browser or system (if available)
52
+ */
53
+ export declare function detectLocale(fallback?: SupportedLocale): SupportedLocale;
54
+ /**
55
+ * Convert a relative time string from one locale to another
56
+ * Attempts to parse the relative time and reformat in target locale
57
+ */
58
+ export declare function convertRelativeTime(relativeTimeString: string, fromLocale: SupportedLocale, toLocale: SupportedLocale): string | null;
59
+ /**
60
+ * Detect the locale of a formatted relative time string
61
+ * Returns the most likely locale or null if detection fails
62
+ */
63
+ export declare function detectLocaleFromRelativeTime(relativeTimeString: string): SupportedLocale | null;
64
+ /**
65
+ * Convert a date format pattern from one locale's convention to another
66
+ */
67
+ export declare function convertFormatPattern(pattern: string, fromLocale: SupportedLocale, toLocale: SupportedLocale, style?: 'short' | 'medium' | 'long' | 'full'): string;
68
+ /**
69
+ * Convert a formatted date string from one locale to another
70
+ * Attempts to parse the date and reformat in target locale
71
+ */
72
+ export declare function convertFormattedDate(formattedDate: string, fromLocale: SupportedLocale, toLocale: SupportedLocale, targetStyle?: 'short' | 'medium' | 'long' | 'full'): string | null;
73
+ /**
74
+ * Bulk convert an array of relative time strings to a different locale
75
+ */
76
+ export declare function convertRelativeTimeArray(relativeTimeStrings: string[], fromLocale: SupportedLocale, toLocale: SupportedLocale): (string | null)[];
77
+ /**
78
+ * Get format pattern differences between two locales
79
+ */
80
+ export declare function compareLocaleFormats(locale1: SupportedLocale, locale2: SupportedLocale): {
81
+ dateFormats: Record<string, {
82
+ locale1: string;
83
+ locale2: string;
84
+ }>;
85
+ timeFormats: Record<string, {
86
+ locale1: string;
87
+ locale2: string;
88
+ }>;
89
+ weekStartsOn: {
90
+ locale1: number;
91
+ locale2: number;
92
+ };
93
+ };
94
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/locale.ts"],"names":[],"mappings":"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"}