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.
- package/README.md +365 -1
- package/dist/age.d.ts +1 -10
- package/dist/age.d.ts.map +1 -1
- package/dist/constants.d.ts +2 -21
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -13
- package/dist/duration.d.ts +171 -0
- package/dist/duration.d.ts.map +1 -0
- package/dist/duration.js +382 -0
- package/dist/esm/age.d.ts +1 -10
- package/dist/esm/age.d.ts.map +1 -1
- package/dist/esm/constants.d.ts +2 -21
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +12 -13
- package/dist/esm/duration.d.ts +171 -0
- package/dist/esm/duration.d.ts.map +1 -0
- package/dist/esm/duration.js +382 -0
- package/dist/esm/format.d.ts.map +1 -1
- package/dist/esm/index.d.ts +10 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -0
- package/dist/esm/interval.d.ts +3 -6
- package/dist/esm/interval.d.ts.map +1 -1
- package/dist/esm/locale.d.ts +94 -0
- package/dist/esm/locale.d.ts.map +1 -0
- package/dist/esm/locale.js +1087 -0
- package/dist/esm/performance.d.ts +2 -9
- package/dist/esm/performance.d.ts.map +1 -1
- package/dist/esm/performance.js +7 -8
- package/dist/esm/rangePresets.d.ts +7 -8
- package/dist/esm/rangePresets.d.ts.map +1 -1
- package/dist/esm/rangePresets.js +11 -9
- package/dist/esm/serialize.d.ts +73 -0
- package/dist/esm/serialize.d.ts.map +1 -0
- package/dist/esm/serialize.js +365 -0
- package/dist/esm/timezone.d.ts +2 -6
- package/dist/esm/timezone.d.ts.map +1 -1
- package/dist/esm/timezone.js +1 -1
- package/dist/esm/types.d.ts +229 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +25 -0
- package/dist/esm/workingHours.d.ts +4 -13
- package/dist/esm/workingHours.d.ts.map +1 -1
- package/dist/esm/workingHours.js +3 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/interval.d.ts +3 -6
- package/dist/interval.d.ts.map +1 -1
- package/dist/locale.d.ts +94 -0
- package/dist/locale.d.ts.map +1 -0
- package/dist/locale.js +1087 -0
- package/dist/performance.d.ts +2 -9
- package/dist/performance.d.ts.map +1 -1
- package/dist/performance.js +7 -8
- package/dist/rangePresets.d.ts +7 -8
- package/dist/rangePresets.d.ts.map +1 -1
- package/dist/rangePresets.js +11 -9
- package/dist/serialize.d.ts +73 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/serialize.js +365 -0
- package/dist/timezone.d.ts +2 -6
- package/dist/timezone.d.ts.map +1 -1
- package/dist/timezone.js +1 -1
- package/dist/types.d.ts +229 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +25 -0
- package/dist/workingHours.d.ts +4 -13
- package/dist/workingHours.d.ts.map +1 -1
- package/dist/workingHours.js +3 -1
- package/package.json +39 -3
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types and interfaces used across ts-time-utils modules
|
|
3
|
+
*/
|
|
4
|
+
/** Input that can be converted to a Date */
|
|
5
|
+
export type DateInput = string | number | Date;
|
|
6
|
+
/** A date range with start and end dates */
|
|
7
|
+
export interface DateRange {
|
|
8
|
+
start: Date;
|
|
9
|
+
end: Date;
|
|
10
|
+
}
|
|
11
|
+
/** Options for parsing operations */
|
|
12
|
+
export interface ParseOptions {
|
|
13
|
+
/** Whether to use strict parsing (reject ambiguous formats) */
|
|
14
|
+
strict?: boolean;
|
|
15
|
+
/** Timezone to use for parsing */
|
|
16
|
+
timezone?: string;
|
|
17
|
+
/** Default locale for parsing */
|
|
18
|
+
locale?: string;
|
|
19
|
+
}
|
|
20
|
+
/** Options for formatting operations */
|
|
21
|
+
export interface FormatOptions {
|
|
22
|
+
/** Use short format (abbreviated units) */
|
|
23
|
+
short?: boolean;
|
|
24
|
+
/** Maximum number of units to display */
|
|
25
|
+
maxUnits?: number;
|
|
26
|
+
/** Round fractional units */
|
|
27
|
+
round?: boolean;
|
|
28
|
+
/** Include milliseconds in output */
|
|
29
|
+
includeMs?: boolean;
|
|
30
|
+
/** Locale for formatting */
|
|
31
|
+
locale?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Time units supported across the library */
|
|
34
|
+
export type TimeUnit = 'millisecond' | 'milliseconds' | 'ms' | 'second' | 'seconds' | 's' | 'minute' | 'minutes' | 'm' | 'hour' | 'hours' | 'h' | 'day' | 'days' | 'd' | 'week' | 'weeks' | 'w' | 'month' | 'months' | 'M' | 'year' | 'years' | 'y';
|
|
35
|
+
/** Standardized error types */
|
|
36
|
+
export declare class TimeUtilsError extends Error {
|
|
37
|
+
code?: string | undefined;
|
|
38
|
+
constructor(message: string, code?: string | undefined);
|
|
39
|
+
}
|
|
40
|
+
export declare class ParseError extends TimeUtilsError {
|
|
41
|
+
input?: unknown | undefined;
|
|
42
|
+
constructor(message: string, input?: unknown | undefined);
|
|
43
|
+
}
|
|
44
|
+
export declare class ValidationError extends TimeUtilsError {
|
|
45
|
+
value?: unknown | undefined;
|
|
46
|
+
constructor(message: string, value?: unknown | undefined);
|
|
47
|
+
}
|
|
48
|
+
/** Common validation function type */
|
|
49
|
+
export type DateValidator = (date: Date) => boolean;
|
|
50
|
+
/** Common date transformation function type */
|
|
51
|
+
export type DateTransformer = (date: Date) => Date;
|
|
52
|
+
/** Options for working hours calculations */
|
|
53
|
+
export interface WorkingHoursConfig {
|
|
54
|
+
/** Working days (0=Sunday, 1=Monday, etc.) */
|
|
55
|
+
workingDays: number[];
|
|
56
|
+
/** Working hours range */
|
|
57
|
+
hours: {
|
|
58
|
+
start: number;
|
|
59
|
+
end: number;
|
|
60
|
+
};
|
|
61
|
+
/** Break periods during working hours */
|
|
62
|
+
breaks?: {
|
|
63
|
+
start: number;
|
|
64
|
+
end: number;
|
|
65
|
+
}[];
|
|
66
|
+
/** Timezone for working hours calculation */
|
|
67
|
+
timezone?: string;
|
|
68
|
+
}
|
|
69
|
+
/** Result of age calculation */
|
|
70
|
+
export interface AgeResult {
|
|
71
|
+
years: number;
|
|
72
|
+
months: number;
|
|
73
|
+
days: number;
|
|
74
|
+
totalDays: number;
|
|
75
|
+
totalMonths: number;
|
|
76
|
+
}
|
|
77
|
+
/** Timezone information */
|
|
78
|
+
export interface ZonedTime {
|
|
79
|
+
date: Date;
|
|
80
|
+
zone: string;
|
|
81
|
+
offsetMinutes: number;
|
|
82
|
+
}
|
|
83
|
+
/** Interval between two points in time */
|
|
84
|
+
export interface Interval {
|
|
85
|
+
start: Date;
|
|
86
|
+
end: Date;
|
|
87
|
+
}
|
|
88
|
+
/** Performance benchmarking result */
|
|
89
|
+
export interface BenchmarkResult {
|
|
90
|
+
average: number;
|
|
91
|
+
min: number;
|
|
92
|
+
max: number;
|
|
93
|
+
total: number;
|
|
94
|
+
totalTime: number;
|
|
95
|
+
iterations: number;
|
|
96
|
+
}
|
|
97
|
+
/** Calendar event recurrence pattern */
|
|
98
|
+
export interface RecurrencePattern {
|
|
99
|
+
frequency: 'daily' | 'weekly' | 'monthly' | 'yearly';
|
|
100
|
+
interval?: number;
|
|
101
|
+
byWeekDay?: number[];
|
|
102
|
+
byMonthDay?: number[];
|
|
103
|
+
byMonth?: number[];
|
|
104
|
+
count?: number;
|
|
105
|
+
until?: Date;
|
|
106
|
+
}
|
|
107
|
+
/** Locale-specific formatting options */
|
|
108
|
+
export interface LocaleFormatOptions extends FormatOptions {
|
|
109
|
+
/** Calendar system to use */
|
|
110
|
+
calendar?: 'gregory' | 'islamic' | 'hebrew' | 'persian' | 'chinese';
|
|
111
|
+
/** Number system to use */
|
|
112
|
+
numberingSystem?: 'arab' | 'arabext' | 'bali' | 'beng' | 'latn';
|
|
113
|
+
}
|
|
114
|
+
/** Business calendar configuration */
|
|
115
|
+
export interface BusinessConfig {
|
|
116
|
+
/** Fiscal year start month (1-12) */
|
|
117
|
+
fiscalYearStart?: number;
|
|
118
|
+
/** Custom holidays */
|
|
119
|
+
holidays?: Date[];
|
|
120
|
+
/** Trading days override */
|
|
121
|
+
tradingDays?: number[];
|
|
122
|
+
/** Country code for built-in holidays */
|
|
123
|
+
country?: string;
|
|
124
|
+
}
|
|
125
|
+
/** Duration unit types */
|
|
126
|
+
export type DurationUnit = 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'years';
|
|
127
|
+
/** Duration input configuration */
|
|
128
|
+
export interface DurationInput {
|
|
129
|
+
milliseconds?: number;
|
|
130
|
+
seconds?: number;
|
|
131
|
+
minutes?: number;
|
|
132
|
+
hours?: number;
|
|
133
|
+
days?: number;
|
|
134
|
+
weeks?: number;
|
|
135
|
+
months?: number;
|
|
136
|
+
years?: number;
|
|
137
|
+
}
|
|
138
|
+
/** Duration comparison result */
|
|
139
|
+
export type DurationComparison = -1 | 0 | 1;
|
|
140
|
+
/** Serialization format options */
|
|
141
|
+
export interface SerializationOptions {
|
|
142
|
+
/** Include timezone information */
|
|
143
|
+
includeTimezone?: boolean;
|
|
144
|
+
/** Use UTC for serialization */
|
|
145
|
+
useUTC?: boolean;
|
|
146
|
+
/** Custom date format */
|
|
147
|
+
format?: 'iso' | 'epoch' | 'object' | 'custom';
|
|
148
|
+
/** Precision for epoch timestamps */
|
|
149
|
+
precision?: 'milliseconds' | 'seconds' | 'microseconds';
|
|
150
|
+
/** Custom format string when format is 'custom' */
|
|
151
|
+
customFormat?: string;
|
|
152
|
+
}
|
|
153
|
+
/** Date object representation for safe serialization */
|
|
154
|
+
export interface DateObject {
|
|
155
|
+
year: number;
|
|
156
|
+
month: number;
|
|
157
|
+
day: number;
|
|
158
|
+
hour: number;
|
|
159
|
+
minute: number;
|
|
160
|
+
second: number;
|
|
161
|
+
millisecond: number;
|
|
162
|
+
timezone?: string;
|
|
163
|
+
}
|
|
164
|
+
/** Epoch timestamp with metadata */
|
|
165
|
+
export interface EpochTimestamp {
|
|
166
|
+
timestamp: number;
|
|
167
|
+
precision: 'milliseconds' | 'seconds' | 'microseconds';
|
|
168
|
+
timezone?: string;
|
|
169
|
+
}
|
|
170
|
+
/** Supported locales for internationalization */
|
|
171
|
+
export type SupportedLocale = 'en' | 'en-US' | 'en-GB' | 'en-CA' | 'en-AU' | 'es' | 'es-ES' | 'es-MX' | 'es-AR' | 'fr' | 'fr-FR' | 'fr-CA' | 'de' | 'de-DE' | 'de-AT' | 'de-CH' | 'it' | 'it-IT' | 'pt' | 'pt-PT' | 'pt-BR' | 'ru' | 'ru-RU' | 'zh' | 'zh-CN' | 'zh-TW' | 'ja' | 'ja-JP' | 'ko' | 'ko-KR' | 'ar' | 'ar-SA' | 'hi' | 'hi-IN' | 'tr' | 'tr-TR' | 'pl' | 'pl-PL' | 'nl' | 'nl-NL' | 'sv' | 'sv-SE' | 'da' | 'da-DK' | 'no' | 'no-NO' | 'fi' | 'fi-FI' | 'fa' | 'fa-IR';
|
|
172
|
+
/** Relative time units for localization */
|
|
173
|
+
export type RelativeTimeUnit = 'second' | 'seconds' | 'minute' | 'minutes' | 'hour' | 'hours' | 'day' | 'days' | 'week' | 'weeks' | 'month' | 'months' | 'year' | 'years';
|
|
174
|
+
/** Locale-specific configuration */
|
|
175
|
+
export interface LocaleConfig {
|
|
176
|
+
/** Locale identifier */
|
|
177
|
+
locale: SupportedLocale;
|
|
178
|
+
/** Date format patterns */
|
|
179
|
+
dateFormats?: {
|
|
180
|
+
short?: string;
|
|
181
|
+
medium?: string;
|
|
182
|
+
long?: string;
|
|
183
|
+
full?: string;
|
|
184
|
+
};
|
|
185
|
+
/** Time format patterns */
|
|
186
|
+
timeFormats?: {
|
|
187
|
+
short?: string;
|
|
188
|
+
medium?: string;
|
|
189
|
+
long?: string;
|
|
190
|
+
full?: string;
|
|
191
|
+
};
|
|
192
|
+
/** Relative time translations */
|
|
193
|
+
relativeTime?: {
|
|
194
|
+
future?: string;
|
|
195
|
+
past?: string;
|
|
196
|
+
units?: Partial<Record<RelativeTimeUnit, string>>;
|
|
197
|
+
};
|
|
198
|
+
/** Calendar-specific settings */
|
|
199
|
+
calendar?: {
|
|
200
|
+
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
201
|
+
monthNames?: string[];
|
|
202
|
+
monthNamesShort?: string[];
|
|
203
|
+
dayNames?: string[];
|
|
204
|
+
dayNamesShort?: string[];
|
|
205
|
+
};
|
|
206
|
+
/** Number formatting */
|
|
207
|
+
numbers?: {
|
|
208
|
+
decimal?: string;
|
|
209
|
+
thousands?: string;
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/** Relative time formatting options */
|
|
213
|
+
export interface RelativeTimeOptions {
|
|
214
|
+
/** Locale to use for formatting */
|
|
215
|
+
locale?: SupportedLocale;
|
|
216
|
+
/** Maximum unit to display (e.g., don't show years) */
|
|
217
|
+
maxUnit?: RelativeTimeUnit;
|
|
218
|
+
/** Minimum unit to display (e.g., don't show seconds) */
|
|
219
|
+
minUnit?: RelativeTimeUnit;
|
|
220
|
+
/** Number of decimal places for precise units */
|
|
221
|
+
precision?: number;
|
|
222
|
+
/** Use short forms (1h vs 1 hour) */
|
|
223
|
+
short?: boolean;
|
|
224
|
+
/** Use numeric format when possible */
|
|
225
|
+
numeric?: 'always' | 'auto';
|
|
226
|
+
/** Custom formatting style */
|
|
227
|
+
style?: 'long' | 'short' | 'narrow';
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types and interfaces used across ts-time-utils modules
|
|
3
|
+
*/
|
|
4
|
+
/** Standardized error types */
|
|
5
|
+
export class TimeUtilsError extends Error {
|
|
6
|
+
constructor(message, code) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.name = 'TimeUtilsError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class ParseError extends TimeUtilsError {
|
|
13
|
+
constructor(message, input) {
|
|
14
|
+
super(message, 'PARSE_ERROR');
|
|
15
|
+
this.input = input;
|
|
16
|
+
this.name = 'ParseError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class ValidationError extends TimeUtilsError {
|
|
20
|
+
constructor(message, value) {
|
|
21
|
+
super(message, 'VALIDATION_ERROR');
|
|
22
|
+
this.value = value;
|
|
23
|
+
this.name = 'ValidationError';
|
|
24
|
+
}
|
|
25
|
+
}
|
package/dist/workingHours.d.ts
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
start: number;
|
|
6
|
-
end: number;
|
|
7
|
-
};
|
|
8
|
-
breaks?: {
|
|
9
|
-
start: number;
|
|
10
|
-
end: number;
|
|
11
|
-
}[];
|
|
12
|
-
timezone?: string;
|
|
13
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Working hours utilities for business time calculations
|
|
3
|
+
*/
|
|
4
|
+
import type { WorkingHoursConfig } from './types.js';
|
|
14
5
|
export declare const DEFAULT_WORKING_HOURS: WorkingHoursConfig;
|
|
15
6
|
/** Check if a date is a configured working day */
|
|
16
7
|
export declare function isWorkingDay(date: Date, config?: WorkingHoursConfig): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workingHours.d.ts","sourceRoot":"","sources":["../src/workingHours.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workingHours.d.ts","sourceRoot":"","sources":["../src/workingHours.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,kBAA0C,GAAG,OAAO,CAEpG;AAOD,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,kBAA0C,GAAG,OAAO,CAUrG;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,kBAA0C,GAAG,IAAI,CAMpG;AAYD,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAE,kBAA0C,GAAG,MAAM,CA+BrH;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,kBAA0C,GAAG,IAAI,CAcpH"}
|
package/dist/workingHours.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-time-utils",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A comprehensive TypeScript utility library for time, dates, durations, and calendar operations with full tree-shaking support",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -71,6 +71,21 @@
|
|
|
71
71
|
"import": "./dist/esm/rangePresets.js",
|
|
72
72
|
"require": "./dist/rangePresets.js",
|
|
73
73
|
"types": "./dist/rangePresets.d.ts"
|
|
74
|
+
},
|
|
75
|
+
"./duration": {
|
|
76
|
+
"import": "./dist/esm/duration.js",
|
|
77
|
+
"require": "./dist/duration.js",
|
|
78
|
+
"types": "./dist/duration.d.ts"
|
|
79
|
+
},
|
|
80
|
+
"./serialize": {
|
|
81
|
+
"import": "./dist/esm/serialize.js",
|
|
82
|
+
"require": "./dist/serialize.js",
|
|
83
|
+
"types": "./dist/serialize.d.ts"
|
|
84
|
+
},
|
|
85
|
+
"./locale": {
|
|
86
|
+
"import": "./dist/esm/locale.js",
|
|
87
|
+
"require": "./dist/locale.js",
|
|
88
|
+
"types": "./dist/locale.d.ts"
|
|
74
89
|
}
|
|
75
90
|
},
|
|
76
91
|
"files": [
|
|
@@ -88,15 +103,36 @@
|
|
|
88
103
|
"keywords": [
|
|
89
104
|
"time",
|
|
90
105
|
"date",
|
|
106
|
+
"duration",
|
|
107
|
+
"calendar",
|
|
91
108
|
"utilities",
|
|
92
109
|
"formatting",
|
|
93
110
|
"typescript",
|
|
94
|
-
"tree-shaking"
|
|
111
|
+
"tree-shaking",
|
|
112
|
+
"timezone",
|
|
113
|
+
"working-hours",
|
|
114
|
+
"intervals",
|
|
115
|
+
"age-calculation",
|
|
116
|
+
"business-days",
|
|
117
|
+
"date-parsing",
|
|
118
|
+
"serialization",
|
|
119
|
+
"internationalization",
|
|
120
|
+
"i18n",
|
|
121
|
+
"locale",
|
|
122
|
+
"relative-time"
|
|
95
123
|
],
|
|
96
124
|
"author": "",
|
|
97
125
|
"license": "MIT",
|
|
98
126
|
"devDependencies": {
|
|
99
127
|
"typescript": "^5.9.2",
|
|
100
128
|
"vitest": "^3.2.4"
|
|
129
|
+
},
|
|
130
|
+
"repository": {
|
|
131
|
+
"type": "git",
|
|
132
|
+
"url": "https://github.com/hatefrad/ts-time-utils.git"
|
|
133
|
+
},
|
|
134
|
+
"homepage": "https://github.com/hatefrad/ts-time-utils#readme",
|
|
135
|
+
"bugs": {
|
|
136
|
+
"url": "https://github.com/hatefrad/ts-time-utils/issues"
|
|
101
137
|
}
|
|
102
138
|
}
|