@purple-brock/time 0.0.0-stage → 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.
@@ -0,0 +1,154 @@
1
+ import { type LocaleInput } from "./localeInfo";
2
+ type UnitOfTime = "year" | "quarter" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond";
3
+ type DurationObject = {
4
+ years?: number;
5
+ year?: number;
6
+ months?: number;
7
+ month?: number;
8
+ weeks?: number;
9
+ week?: number;
10
+ days?: number;
11
+ day?: number;
12
+ hours?: number;
13
+ hour?: number;
14
+ minutes?: number;
15
+ minute?: number;
16
+ seconds?: number;
17
+ second?: number;
18
+ milliseconds?: number;
19
+ millisecond?: number;
20
+ };
21
+
22
+ export declare class Badger {
23
+ private currentDate;
24
+
25
+ constructor(dateTime?: string | Date);
26
+
27
+ static min(...dates: Badger[]): Badger;
28
+
29
+ static max(...dates: Badger[]): Badger;
30
+
31
+ static fromLocal(date: string, time: string): Badger;
32
+
33
+ static range(start: string | Date | Badger, end: string | Date | Badger, unit: "day" | "week" | "month"): Badger[];
34
+
35
+ isValid(): boolean;
36
+
37
+ toDate(): Date;
38
+
39
+ toISOString(): string;
40
+
41
+ toLocalISODate(): string;
42
+
43
+ toUnixTimestamp(): number;
44
+
45
+ toMillisecondTimestamp(): number;
46
+
47
+ toObject(): {
48
+ year: number;
49
+ month: number;
50
+ day: number;
51
+ hour: number;
52
+ minute: number;
53
+ second: number;
54
+ millisecond: number;
55
+ };
56
+
57
+ clone(): Badger;
58
+
59
+ get year(): number;
60
+
61
+ get month(): number;
62
+
63
+ get day(): number;
64
+
65
+ get hour(): number;
66
+
67
+ get minute(): number;
68
+
69
+ get second(): number;
70
+
71
+ get millisecond(): number;
72
+
73
+ get quarter(): number;
74
+
75
+ get weekYear(): number;
76
+
77
+ get dayOfYear(): number;
78
+
79
+ get dayOfWeek(): number;
80
+
81
+ getDaysInMonth(): number;
82
+
83
+ getWeekNumber(): number;
84
+
85
+ daysInYear(): number;
86
+
87
+ isLeapYear(): boolean;
88
+
89
+ startOf(unit: UnitOfTime): Badger;
90
+
91
+ endOf(unit: UnitOfTime): Badger;
92
+
93
+ add(amount: number | Partial<DurationObject>, unit?: UnitOfTime): Badger;
94
+ private _addUnit;
95
+
96
+ set(unit: Exclude<UnitOfTime, "week" | "quarter">, value: number): Badger;
97
+
98
+ subtract(amount: number | Partial<DurationObject>, unit?: UnitOfTime): Badger;
99
+
100
+ isBefore(other: Badger | Date): boolean;
101
+
102
+ isAfter(other: Badger | Date): boolean;
103
+
104
+ isSame(other: Badger | Date, unit?: UnitOfTime): boolean;
105
+
106
+ isSameOrBefore(other: Badger | Date, unit?: UnitOfTime): boolean;
107
+
108
+ isSameOrAfter(other: Badger | Date, unit?: UnitOfTime): boolean;
109
+
110
+ clamp(min: Badger | Date, max: Badger | Date): Badger;
111
+
112
+ isBetween(start: Badger | Date, end: Badger | Date, options?: {
113
+ includeStart?: boolean;
114
+ includeEnd?: boolean;
115
+ }): boolean;
116
+
117
+ isPast(): boolean;
118
+
119
+ isFuture(): boolean;
120
+
121
+ isToday(): boolean;
122
+
123
+ isYesterday(): boolean;
124
+
125
+ isTomorrow(): boolean;
126
+
127
+ isWeekend(): boolean;
128
+
129
+ isWeekday(): boolean;
130
+
131
+ countdown(relativeTo?: Date): {
132
+ days: number;
133
+ hours: number;
134
+ minutes: number;
135
+ seconds: number;
136
+ } | null;
137
+
138
+ private getWeekend;
139
+
140
+ private static buildHolidaySet;
141
+
142
+ private static assertISODate;
143
+
144
+ private localDateKey;
145
+
146
+ isBusinessDay(locale?: LocaleInput, holidays?: Iterable<string>): boolean;
147
+
148
+ addBusinessDays(n: number, locale?: LocaleInput, holidays?: Iterable<string>): Badger;
149
+
150
+ subtractBusinessDays(n: number, locale?: LocaleInput, holidays?: Iterable<string>): Badger;
151
+
152
+ diff(other: Badger | Date, unit: UnitOfTime, float?: boolean): number;
153
+ }
154
+ export {};
@@ -0,0 +1,45 @@
1
+ import { type LocaleInput } from "./localeInfo";
2
+ type Month = "numeric" | "2-digit" | "long" | "short" | "narrow" | undefined;
3
+ type Weekday = "long" | "short" | "narrow" | undefined;
4
+
5
+ export declare class BadgerSett extends Intl.DateTimeFormat {
6
+ readonly currentDate: Date;
7
+
8
+ constructor(date?: Date | string, locale?: LocaleInput, options?: Intl.DateTimeFormatOptions);
9
+
10
+ private assertDateValid;
11
+
12
+ formatForBackend(): string;
13
+
14
+ formatForBackendToStartOfDay(): string;
15
+
16
+ formatForBackendToEndOfDay(): string;
17
+
18
+ private zonedDateKey;
19
+
20
+ private firstInstantOfLocalDate;
21
+
22
+ formatDate(): string;
23
+
24
+ formatDateOnly(): string;
25
+
26
+ formatTimeOnly(): string;
27
+
28
+ getDayName(format?: Weekday): string;
29
+
30
+ getMonthName(format?: Month): string;
31
+
32
+ getDaysOfTheWeek(format?: Weekday): string[];
33
+
34
+ getMonthsOfTheYear(format?: Month): string[];
35
+
36
+ isWeekend(): boolean;
37
+
38
+ startOfWeek(): Date;
39
+
40
+ formatCountdown(target: Date): string | null;
41
+ formatDuration(duration: Record<string, number>): string;
42
+
43
+ formatRelative(relativeTo?: Date): string;
44
+ }
45
+ export {};
@@ -0,0 +1,14 @@
1
+ type LocaleSubscriber = (locale: Intl.Locale) => void;
2
+
3
+ export declare class BadgerSettings {
4
+ static defaultLocale: Intl.Locale | undefined;
5
+ static defaultTimeZone: string | undefined;
6
+ private static subscribers;
7
+
8
+ static setLocale(locale: Intl.Locale): void;
9
+
10
+ static subscribe(fn: LocaleSubscriber): () => void;
11
+
12
+ static reset(): void;
13
+ }
14
+ export {};
@@ -0,0 +1,20 @@
1
+ import { Badger as BadgerClass } from "./Badger";
2
+ import { BadgerSett as BadgerSettClass } from "./BadgerSett";
3
+ import type { LocaleInput } from "./localeInfo";
4
+ export { BadgerSettings } from "./BadgerSettings";
5
+ export type { Badger as BadgerInstance } from "./Badger";
6
+ export type { BadgerSett as BadgerSettInstance } from "./BadgerSett";
7
+ export type { LocaleInput } from "./localeInfo";
8
+
9
+ export declare const Badger: ((date?: string | Date) => BadgerClass) & {
10
+ fromLocal: typeof BadgerClass.fromLocal;
11
+ range: typeof BadgerClass.range;
12
+ min: typeof BadgerClass.min;
13
+ max: typeof BadgerClass.max;
14
+ };
15
+
16
+ export type Badger = BadgerClass;
17
+
18
+ export declare const Sett: (date?: Date | string, locale?: LocaleInput, options?: Intl.DateTimeFormatOptions) => BadgerSettClass;
19
+
20
+ export type Sett = BadgerSettClass;