@bereasoftware/time-guard 2.0.3 → 2.0.5
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.en.md +10 -2
- package/README.md +17 -7
- package/dist/{calendars.es.js → calendars/index.es.js} +1 -1
- package/dist/full.cjs +1 -1
- package/dist/full.es.js +2 -2
- package/dist/{locales.es.js → locales/index.es.js} +1 -1
- package/dist/{plugin-advanced-format.es.js → plugins/advanced-format.es.js} +1 -1
- package/dist/{plugin-duration.es.js → plugins/duration.es.js} +1 -1
- package/dist/{plugin-relative-time.es.js → plugins/relative-time.es.js} +1 -1
- package/dist/time-guard.cjs +1 -1
- package/dist/time-guard.es.js +2 -2
- package/dist/time-guard.iife.js +1 -1
- package/dist/time-guard.umd.js +1 -1
- package/dist/types/calendars.d.ts +1 -1
- package/dist/types/full.d.ts +1 -0
- package/dist/types/locales.d.ts +1 -1
- package/dist/types/plugins/advanced-format.d.ts +2 -0
- package/dist/types/plugins/duration.d.ts +3 -0
- package/dist/types/plugins/relative-time.d.ts +3 -0
- package/dist/types/time-guard.d.ts +1 -1
- package/package.json +24 -23
- package/dist/types/plugin-advanced-format.d.ts +0 -1
- package/dist/types/plugin-duration.d.ts +0 -1
- package/dist/types/plugin-relative-time.d.ts +0 -1
- package/dist/types/src/adapters/temporal.adapter.d.ts +0 -60
- package/dist/types/src/calendars/calendar.manager.d.ts +0 -52
- package/dist/types/src/calendars/index.d.ts +0 -81
- package/dist/types/src/formatters/date.formatter.d.ts +0 -21
- package/dist/types/src/full.d.ts +0 -8
- package/dist/types/src/index.d.ts +0 -23
- package/dist/types/src/locales/additional.locale.d.ts +0 -5
- package/dist/types/src/locales/asian.locale.d.ts +0 -9
- package/dist/types/src/locales/english.locale.d.ts +0 -6
- package/dist/types/src/locales/european.locale.d.ts +0 -9
- package/dist/types/src/locales/index.d.ts +0 -17
- package/dist/types/src/locales/locale.manager.d.ts +0 -42
- package/dist/types/src/locales/locales-data.d.ts +0 -17
- package/dist/types/src/locales/middle-eastern.locale.d.ts +0 -5
- package/dist/types/src/locales/nordic.locale.d.ts +0 -6
- package/dist/types/src/locales/romance.locale.d.ts +0 -7
- package/dist/types/src/locales/slavic.locale.d.ts +0 -6
- package/dist/types/src/locales/spanish.locale.d.ts +0 -5
- package/dist/types/src/plugins/advanced-format/index.d.ts +0 -47
- package/dist/types/src/plugins/duration/index.d.ts +0 -107
- package/dist/types/src/plugins/duration/types.d.ts +0 -85
- package/dist/types/src/plugins/index.d.ts +0 -10
- package/dist/types/src/plugins/manager.d.ts +0 -58
- package/dist/types/src/plugins/relative-time/index.d.ts +0 -39
- package/dist/types/src/plugins/relative-time/types.d.ts +0 -27
- package/dist/types/src/polyfill-loader.d.ts +0 -5
- package/dist/types/src/time-guard.d.ts +0 -154
- package/dist/types/src/types/index.d.ts +0 -301
- /package/dist/{calendars.cjs → calendars/index.cjs} +0 -0
- /package/dist/{locales.cjs → locales/index.cjs} +0 -0
- /package/dist/{plugin-advanced-format.cjs → plugins/advanced-format.cjs} +0 -0
- /package/dist/{plugin-duration.cjs → plugins/duration.cjs} +0 -0
- /package/dist/{plugin-relative-time.cjs → plugins/relative-time.cjs} +0 -0
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TimeGuard - Core Types and Interfaces
|
|
3
|
-
* Following SOLID principles and TypeScript best practices
|
|
4
|
-
*
|
|
5
|
-
* Temporal types are provided natively by TypeScript (lib.esnext.temporal).
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Unit type for date/time operations
|
|
9
|
-
*/
|
|
10
|
-
export type Unit = 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond' | 'microsecond' | 'nanosecond';
|
|
11
|
-
/**
|
|
12
|
-
* Format preset strings for common patterns
|
|
13
|
-
*/
|
|
14
|
-
export type FormatPreset = 'iso' | 'date' | 'time' | 'datetime' | 'rfc2822' | 'rfc3339' | 'utc';
|
|
15
|
-
/**
|
|
16
|
-
* Duration-like object for arithmetic operations
|
|
17
|
-
*/
|
|
18
|
-
export interface IDuration {
|
|
19
|
-
years?: number;
|
|
20
|
-
months?: number;
|
|
21
|
-
weeks?: number;
|
|
22
|
-
days?: number;
|
|
23
|
-
hours?: number;
|
|
24
|
-
minutes?: number;
|
|
25
|
-
seconds?: number;
|
|
26
|
-
milliseconds?: number;
|
|
27
|
-
microseconds?: number;
|
|
28
|
-
nanoseconds?: number;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Round options for precision control
|
|
32
|
-
*/
|
|
33
|
-
export interface IRoundOptions {
|
|
34
|
-
smallestUnit?: Unit;
|
|
35
|
-
roundingMode?: 'ceil' | 'floor' | 'expand' | 'trunc' | 'halfExpand' | 'halfFloor' | 'halfCeil' | 'halfTrunc';
|
|
36
|
-
roundingIncrement?: number;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Calendar system interface
|
|
40
|
-
*/
|
|
41
|
-
export interface ICalendarSystem {
|
|
42
|
-
id: string;
|
|
43
|
-
name: string;
|
|
44
|
-
locale?: string;
|
|
45
|
-
getMonthName(month: number, short?: boolean): string;
|
|
46
|
-
getWeekdayName(day: number, short?: boolean): string;
|
|
47
|
-
isLeapYear(year: number): boolean;
|
|
48
|
-
daysInMonth(year: number, month: number): number;
|
|
49
|
-
daysInYear(year: number): number;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Calendar manager interface
|
|
53
|
-
*/
|
|
54
|
-
export interface ICalendarManager {
|
|
55
|
-
register(calendar: ICalendarSystem): void;
|
|
56
|
-
get(id: string): ICalendarSystem | undefined;
|
|
57
|
-
list(): string[];
|
|
58
|
-
setDefault(id: string): void;
|
|
59
|
-
getDefault(): ICalendarSystem;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Locale configuration interface
|
|
63
|
-
*/
|
|
64
|
-
export interface ILocale {
|
|
65
|
-
name: string;
|
|
66
|
-
months: string[];
|
|
67
|
-
monthsShort: string[];
|
|
68
|
-
weekdays: string[];
|
|
69
|
-
weekdaysShort: string[];
|
|
70
|
-
weekdaysMin: string[];
|
|
71
|
-
meridiem?: {
|
|
72
|
-
am: string;
|
|
73
|
-
pm: string;
|
|
74
|
-
};
|
|
75
|
-
formats?: Record<string, string>;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Configuration options for TimeGuard instance
|
|
79
|
-
*/
|
|
80
|
-
export interface ITimeGuardConfig {
|
|
81
|
-
locale?: string;
|
|
82
|
-
timezone?: string;
|
|
83
|
-
strict?: boolean;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Interface for date/time parsing strategy (Strategy Pattern)
|
|
87
|
-
*/
|
|
88
|
-
export interface IDateParser {
|
|
89
|
-
parse(input: unknown): any | null;
|
|
90
|
-
canHandle(input: unknown): boolean;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Interface for date/time formatting (Strategy Pattern)
|
|
94
|
-
*/
|
|
95
|
-
export interface IDateFormatter {
|
|
96
|
-
format(date: any, pattern: string): string;
|
|
97
|
-
getPreset(preset: FormatPreset): string;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Interface for locale management (Single Responsibility)
|
|
101
|
-
*/
|
|
102
|
-
export interface ILocaleManager {
|
|
103
|
-
setLocale(locale: string, data?: ILocale): void;
|
|
104
|
-
getLocale(locale?: string): ILocale;
|
|
105
|
-
listLocales(): string[];
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Interface for arithmetic operations
|
|
109
|
-
*/
|
|
110
|
-
export interface IDateArithmetic {
|
|
111
|
-
add(units: Partial<Record<Unit, number>> | IDuration): TimeGuard;
|
|
112
|
-
subtract(units: Partial<Record<Unit, number>> | IDuration): TimeGuard;
|
|
113
|
-
diff(other: TimeGuard, unit?: Unit): number;
|
|
114
|
-
until(other: TimeGuard, options?: IRoundOptions): IDuration;
|
|
115
|
-
round(options: IRoundOptions): TimeGuard;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Interface for query operations
|
|
119
|
-
*/
|
|
120
|
-
export interface IDateQuery {
|
|
121
|
-
isBefore(other: TimeGuard): boolean;
|
|
122
|
-
isAfter(other: TimeGuard): boolean;
|
|
123
|
-
isSame(other: TimeGuard, unit?: Unit): boolean;
|
|
124
|
-
isBetween(start: TimeGuard, end: TimeGuard, unit?: Unit, inclusivity?: '[)' | '()' | '[]' | '(]'): boolean;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Interface for manipulation operations
|
|
128
|
-
*/
|
|
129
|
-
export interface IDateManipulation {
|
|
130
|
-
clone(): TimeGuard;
|
|
131
|
-
startOf(unit: Unit): TimeGuard;
|
|
132
|
-
endOf(unit: Unit): TimeGuard;
|
|
133
|
-
set(values: Partial<Record<Unit, number>>): TimeGuard;
|
|
134
|
-
year(): number;
|
|
135
|
-
month(): number;
|
|
136
|
-
day(): number;
|
|
137
|
-
hour(): number;
|
|
138
|
-
minute(): number;
|
|
139
|
-
second(): number;
|
|
140
|
-
millisecond(): number;
|
|
141
|
-
dayOfWeek(): number;
|
|
142
|
-
dayOfYear(): number;
|
|
143
|
-
weekOfYear(): number;
|
|
144
|
-
daysInMonth(): number;
|
|
145
|
-
daysInYear(): number;
|
|
146
|
-
inLeapYear(): boolean;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Interface for timezone operations
|
|
150
|
-
*/
|
|
151
|
-
export interface ITimezoneAdapter {
|
|
152
|
-
toTimezone(date: any, timezone: string): any;
|
|
153
|
-
fromTimezone(date: any, targetTimezone: string): any;
|
|
154
|
-
getOffset(timezone: string): number;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Main TimeGuard interface (Facade Pattern)
|
|
158
|
-
*/
|
|
159
|
-
export interface ITimeGuard extends IDateArithmetic, IDateQuery, IDateManipulation {
|
|
160
|
-
/**
|
|
161
|
-
* Get the underlying Temporal date object
|
|
162
|
-
*/
|
|
163
|
-
toTemporal(): any;
|
|
164
|
-
/**
|
|
165
|
-
* Get as JavaScript Date (compatibility)
|
|
166
|
-
*/
|
|
167
|
-
toDate(): Date;
|
|
168
|
-
/**
|
|
169
|
-
* Get as ISO string
|
|
170
|
-
*/
|
|
171
|
-
toISOString(): string;
|
|
172
|
-
/**
|
|
173
|
-
* Get as Unix timestamp (milliseconds)
|
|
174
|
-
*/
|
|
175
|
-
valueOf(): number;
|
|
176
|
-
/**
|
|
177
|
-
* Format the date with pattern or preset
|
|
178
|
-
*/
|
|
179
|
-
format(pattern: string | FormatPreset): string;
|
|
180
|
-
/**
|
|
181
|
-
* Get accessor for components
|
|
182
|
-
*/
|
|
183
|
-
get(component: Unit): number;
|
|
184
|
-
/**
|
|
185
|
-
* Locale of this instance
|
|
186
|
-
*/
|
|
187
|
-
locale(): string;
|
|
188
|
-
/**
|
|
189
|
-
* Clone with new locale
|
|
190
|
-
*/
|
|
191
|
-
locale(locale: string): TimeGuard;
|
|
192
|
-
/**
|
|
193
|
-
* Timezone info
|
|
194
|
-
*/
|
|
195
|
-
timezone(): string | null;
|
|
196
|
-
/**
|
|
197
|
-
* Convert to another timezone
|
|
198
|
-
*/
|
|
199
|
-
timezone(timezone: string): TimeGuard;
|
|
200
|
-
/**
|
|
201
|
-
* Get Unix timestamp in seconds
|
|
202
|
-
*/
|
|
203
|
-
unix(): number;
|
|
204
|
-
/**
|
|
205
|
-
* Convert to JSON
|
|
206
|
-
*/
|
|
207
|
-
toJSON(): string;
|
|
208
|
-
/**
|
|
209
|
-
* String representation
|
|
210
|
-
*/
|
|
211
|
-
toString(): string;
|
|
212
|
-
/**
|
|
213
|
-
* Convert to PlainDate object
|
|
214
|
-
*/
|
|
215
|
-
toPlainDate(): {
|
|
216
|
-
year: number;
|
|
217
|
-
month: number;
|
|
218
|
-
day: number;
|
|
219
|
-
dayOfWeek: number;
|
|
220
|
-
};
|
|
221
|
-
/**
|
|
222
|
-
* Convert to PlainTime object
|
|
223
|
-
*/
|
|
224
|
-
toPlainTime(): {
|
|
225
|
-
hour: number;
|
|
226
|
-
minute: number;
|
|
227
|
-
second: number;
|
|
228
|
-
millisecond: number;
|
|
229
|
-
};
|
|
230
|
-
/**
|
|
231
|
-
* Get timezone offset (±HH:mm format or Z)
|
|
232
|
-
*/
|
|
233
|
-
getOffset(): string;
|
|
234
|
-
/**
|
|
235
|
-
* Get timezone offset in nanoseconds
|
|
236
|
-
*/
|
|
237
|
-
getOffsetNanoseconds(): number;
|
|
238
|
-
/**
|
|
239
|
-
* Get timezone ID
|
|
240
|
-
*/
|
|
241
|
-
getTimeZoneId(): string | null;
|
|
242
|
-
/**
|
|
243
|
-
* Start of day
|
|
244
|
-
*/
|
|
245
|
-
startOfDay(): TimeGuard;
|
|
246
|
-
/**
|
|
247
|
-
* End of day
|
|
248
|
-
*/
|
|
249
|
-
endOfDay(): TimeGuard;
|
|
250
|
-
/**
|
|
251
|
-
* Duration from another date (inverse of until)
|
|
252
|
-
*/
|
|
253
|
-
since(other: TimeGuard): IDuration;
|
|
254
|
-
/**
|
|
255
|
-
* ISO 8601 duration string (P1Y2M3DT4H5M6S)
|
|
256
|
-
*/
|
|
257
|
-
toDurationString(other?: TimeGuard): string;
|
|
258
|
-
/**
|
|
259
|
-
* Check if in past
|
|
260
|
-
*/
|
|
261
|
-
isPast(): boolean;
|
|
262
|
-
/**
|
|
263
|
-
* Check if in future
|
|
264
|
-
*/
|
|
265
|
-
isFuture(): boolean;
|
|
266
|
-
/**
|
|
267
|
-
* Check if today
|
|
268
|
-
*/
|
|
269
|
-
isToday(): boolean;
|
|
270
|
-
/**
|
|
271
|
-
* Check if tomorrow
|
|
272
|
-
*/
|
|
273
|
-
isTomorrow(): boolean;
|
|
274
|
-
/**
|
|
275
|
-
* Check if yesterday
|
|
276
|
-
*/
|
|
277
|
-
isYesterday(): boolean;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Plugin interface for extending functionality
|
|
281
|
-
*/
|
|
282
|
-
export interface ITimeGuardPlugin {
|
|
283
|
-
name: string;
|
|
284
|
-
version: string;
|
|
285
|
-
install(timeGuard: typeof TimeGuard, config?: unknown): void;
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Factory interface
|
|
289
|
-
*/
|
|
290
|
-
export interface ITimeGuardFactory {
|
|
291
|
-
create(input?: unknown, config?: ITimeGuardConfig): ITimeGuard;
|
|
292
|
-
now(config?: ITimeGuardConfig): ITimeGuard;
|
|
293
|
-
fromTemporal(date: any, config?: ITimeGuardConfig): ITimeGuard;
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Forward declaration for TimeGuard class
|
|
297
|
-
* Implementation is in ./time-guard.ts, exported via ./index.ts
|
|
298
|
-
*/
|
|
299
|
-
export declare class TimeGuard {
|
|
300
|
-
constructor(input?: unknown, config?: ITimeGuardConfig);
|
|
301
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|