nepali-date-library 1.1.2 → 1.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # NepaliDate Library
2
2
 
3
3
  ## Overview
4
- The `NepaliDate` library provides a way to work with Nepali (Bikram Sambat) dates in TypeScript/JavaScript. It allows you to create, manipulate, format, and convert between Nepali and Gregorian dates.
4
+ The `NepaliDate` library provides a proper way to work with Nepali (Bikram Sambat) dates in TypeScript/JavaScript. It allows you to create, manipulate, format, and convert between Nepali and Gregorian dates with support for fiscal years, quarters, and extensive date operations.
5
5
 
6
6
  ## Installation
7
7
  ```sh
@@ -10,10 +10,11 @@ npm install nepali-date-library
10
10
 
11
11
  ## Importing the Library
12
12
  ```ts
13
- import { NepaliDate } from 'nepali-date-library';
13
+ import { NepaliDate, ADtoBS, BStoAD } from 'nepali-date-library';
14
14
  ```
15
15
 
16
16
  ## Class: `NepaliDate`
17
+
17
18
  ### Constructors
18
19
  ```ts
19
20
  new NepaliDate();
@@ -24,41 +25,43 @@ new NepaliDate(year: number, month: number, day: number);
24
25
  - Accepts either no arguments (current date), a JavaScript `Date`, another `NepaliDate`, a timestamp, or a formatted date string.
25
26
  - Can also accept year, month (0-11), and day (1-32) as separate arguments.
26
27
 
27
- ### Methods
28
- #### Date Conversion
28
+ ### Date Conversion Functions
29
29
 
30
+ #### Pre-built Conversion Functions
30
31
  ```ts
31
- //PreBuild Functions
32
-
33
32
  import { ADtoBS, BStoAD } from 'nepali-date-library';
33
+
34
34
  // Convert AD to BS
35
35
  const bsDate = ADtoBS('2025-02-22'); // Returns: '2081-10-10'
36
+
36
37
  // Convert BS to AD
37
38
  const adDate = BStoAD('2081-10-14'); // Returns: '2025-02-26'
39
+ ```
38
40
 
39
- //Class Functions
40
- const adDate = new NepaliDate().getEnglishDate();
41
+ #### Class Method
42
+ ```ts
43
+ const nepaliDate = new NepaliDate();
44
+ const adDate = nepaliDate.getEnglishDate(); // Returns JavaScript Date object
41
45
  ```
42
46
 
43
47
  ---
44
48
 
45
- #### Getters
49
+ ### Getters
46
50
  ```ts
47
- getYear(): number;
48
- getMonth(): number;
49
- getDate(): number;
50
- getDay(): number;
51
- getHours(): number;
52
- getMinutes(): number;
53
- getSeconds(): number;
54
- getMilliseconds(): number;
55
- getTime(): number;
51
+ getYear(): number; // Returns Nepali year
52
+ getMonth(): number; // Returns Nepali month (0-11)
53
+ getDate(): number; // Returns Nepali day (1-32)
54
+ getDay(): number; // Returns day of week (0-6, 0 = Sunday)
55
+ getHours(): number; // Returns hour (0-23)
56
+ getMinutes(): number; // Returns minutes (0-59)
57
+ getSeconds(): number; // Returns seconds (0-59)
58
+ getMilliseconds(): number; // Returns milliseconds (0-999)
59
+ getTime(): number; // Returns timestamp in milliseconds
56
60
  ```
57
- - Returns individual date components like year, month (0-11), day (1-32), and other time properties.
58
61
 
59
62
  ---
60
63
 
61
- #### Setters
64
+ ### Setters
62
65
  ```ts
63
66
  setYear(year: number): void;
64
67
  setMonth(month: number): void;
@@ -69,38 +72,47 @@ set(year: number, month: number, day: number): void;
69
72
 
70
73
  ---
71
74
 
72
- #### Formatting
75
+ ### Parsing
76
+ ```ts
77
+ parse(dateString: string): void;
78
+ ```
79
+ - Parses a date string and updates the current instance
80
+ - Supports formats: YYYY-MM-DD, YYYY/MM/DD, or YYYY.MM.DD
81
+
82
+ ---
83
+
84
+ ### Formatting
73
85
  ```ts
74
86
  format(formatStr: string): string;
87
+ toString(): string; // Returns format: YYYY/MM/DD (1-indexed month)
75
88
  ```
76
- - Formats the date based on the provided format string.
77
-
78
- - Available Formats:
79
- - English
80
- - YYYY - Full Year (e.g., 2080)
81
- - MM - Month with leading zero (01-12)
82
- - M - Month without leading zero (1-12)
83
- - MMM - Short month name (Bai, Cha)
84
- - MMMM - Long month name (Baisakh, Chaitra)
85
- - DD - Day with leading zero (01-32)
86
- - D - Day without leading zero (1-32)
87
- - DDD - Short day name (Sun, Sat)
88
- - DDDD - Full day name (Sunday)
89
-
90
- - Nepali
91
- - yyyy - Full Year (e.g., २०८१)
92
- - mm - Month with leading zero (०१-१२)
93
- - m - Month without leading zero (१-१२)
94
- - mmm - Short month name (बै, चै)
95
- - mmmm - Long month name (बैशाख, चैत्र)
96
- - dd - Day with leading zero (०१-३२)
97
- - d - Day without leading zero (१-३२)
98
- - ddd - Short day name (आइत, शनि)
99
- - dddd - Full day name (आइतबार)
100
-
101
- ----
102
-
103
- #### Date Manipulation
89
+
90
+ #### Available Format Tokens:
91
+ - **English Formats:**
92
+ - `YYYY` - Full Year (e.g., 2080)
93
+ - `MM` - Month with leading zero (01-12)
94
+ - `M` - Month without leading zero (1-12)
95
+ - `MMM` - Short month name (Bai, Cha)
96
+ - `MMMM` - Long month name (Baisakh, Chaitra)
97
+ - `DD` - Day with leading zero (01-32)
98
+ - `D` - Day without leading zero (1-32)
99
+ - `DDD` - Short day name (Sun, Sat)
100
+ - `DDDD` - Full day name (Sunday)
101
+
102
+ - **Nepali Formats:**
103
+ - `yyyy` - Full Year (e.g., २०८१)
104
+ - `mm` - Month with leading zero (०१-१२)
105
+ - `m` - Month without leading zero (१-१२)
106
+ - `mmm` - Short month name (बै, चै)
107
+ - `mmmm` - Long month name (बैशाख, चैत्र)
108
+ - `dd` - Day with leading zero (०१-३२)
109
+ - `d` - Day without leading zero (१-३२)
110
+ - `ddd` - Short day name (आइत, शनि)
111
+ - `dddd` - Full day name (आइतबार)
112
+
113
+ ---
114
+
115
+ ### Date Manipulation
104
116
  ```ts
105
117
  addDays(days: number): NepaliDate;
106
118
  addMonths(months: number): NepaliDate;
@@ -110,207 +122,241 @@ addYears(years: number): NepaliDate;
110
122
 
111
123
  ---
112
124
 
113
- ### Additional Methods
125
+ ### Date Information Methods
114
126
 
115
127
  #### `daysInMonth(): number`
116
128
  Returns the number of days in the current month.
117
129
 
118
- ```ts
119
- const date = new NepaliDate(2080, 5, 1);
120
- console.log(date.daysInMonth()); // Outputs the number of days in the given month
121
- ```
122
-
123
130
  #### `isLeapYear(): boolean`
124
131
  Checks if the current year is a leap year in the Nepali calendar.
125
132
 
126
- ```ts
127
- const date = new NepaliDate(2080, 1, 1);
128
- console.log(date.isLeapYear()); // Returns true if it is a leap year
129
- ```
130
-
131
133
  #### `getWeeksInMonth(): number`
132
134
  Calculates the number of weeks in the current month.
133
135
 
134
- ```ts
135
- const date = new NepaliDate(2080, 5, 1);
136
- console.log(date.getWeeksInMonth()); // Outputs the number of weeks
137
- ```
136
+ ---
137
+
138
+ ### Date Comparison Methods
138
139
 
139
140
  #### `diff(date: NepaliDate, unit: 'year' | 'month' | 'day'): number`
140
- Calculates the difference between two `NepaliDate` instances in the specified unit (`year`, `month`, or `day`).
141
+ Calculates the difference between two `NepaliDate` instances.
141
142
 
142
- ```ts
143
- const date1 = new NepaliDate(2080, 5, 10); // Example date
144
- const date2 = new NepaliDate(2079, 5, 10); // Another example date
143
+ #### `isAfter(date: NepaliDate): boolean`
144
+ Checks if this date comes after the specified date.
145
145
 
146
- console.log(date1.diff(date2, 'day')); // Outputs the difference in days
147
- console.log(date1.diff(date2, 'month')); // Outputs the difference in months
148
- console.log(date1.diff(date2, 'year')); // Outputs the difference in years
149
- ```
146
+ #### `isBefore(date: NepaliDate): boolean`
147
+ Checks if this date comes before the specified date.
148
+
149
+ #### `isEqual(date: NepaliDate): boolean`
150
+ Checks if this date is exactly equal to the specified date (year, month, day).
151
+
152
+ #### `isSame(date: NepaliDate, unit: 'year' | 'month' | 'day'): boolean`
153
+ Checks if this date is the same as the specified date for the given unit.
154
+
155
+ ---
156
+
157
+ ### Date Range Methods
150
158
 
151
159
  #### `startOfDay(): NepaliDate`
152
160
  Returns a new `NepaliDate` representing the start of the current day (00:00:00).
153
161
 
154
- ```ts
155
- const date = new NepaliDate(2080, 5, 10);
156
- console.log(date.startOfDay());
157
- ```
158
-
159
162
  #### `endOfDay(): NepaliDate`
160
163
  Returns a new `NepaliDate` representing the end of the current day (23:59:59.999).
161
164
 
162
- ```ts
163
- const date = new NepaliDate(2080, 5, 10);
164
- console.log(date.endOfDay());
165
- ```
165
+ #### `startOfWeek(startOfWeek: number = 0): NepaliDate`
166
+ Returns a new `NepaliDate` representing the start of the week containing this date.
167
+ - `startOfWeek`: Day to consider as start of week (0-6, where 0 = Sunday, 1 = Monday, etc.)
168
+
169
+ #### `endOfWeek(startOfWeek: number = 0): NepaliDate`
170
+ Returns a new `NepaliDate` representing the end of the week containing this date.
166
171
 
167
172
  #### `startOfMonth(): NepaliDate`
168
173
  Returns a new `NepaliDate` representing the first day of the current month.
169
174
 
170
- ```ts
171
- const date = new NepaliDate(2080, 5, 10);
172
- console.log(date.startOfMonth());
173
- ```
174
-
175
175
  #### `endOfMonth(): NepaliDate`
176
176
  Returns a new `NepaliDate` representing the last day of the current month.
177
177
 
178
- ```ts
179
- const date = new NepaliDate(2080, 5, 10);
180
- console.log(date.endOfMonth());
181
- ```
182
-
183
178
  #### `startOfYear(): NepaliDate`
184
179
  Returns a new `NepaliDate` representing the first day of the current Nepali year (1st Baisakh).
185
180
 
186
- ```ts
187
- const date = new NepaliDate(2080, 5, 10);
188
- console.log(date.startOfYear());
189
- ```
190
-
191
181
  #### `endOfYear(): NepaliDate`
192
182
  Returns a new `NepaliDate` representing the last day of the current Nepali year (last day of Chaitra).
193
183
 
194
- ```ts
195
- const date = new NepaliDate(2080, 5, 10);
196
- console.log(date.endOfYear());
197
- ```
198
-
199
184
  ---
200
185
 
201
- ### Function Overview
186
+ ### Quarter and Fiscal Year Methods
187
+
188
+ #### `getCurrentQuarter(): number`
189
+ Returns the quarter number (1-4) for the current date.
190
+
191
+ #### `getCurrentFiscalYearQuarter(): number`
192
+ Returns the current fiscal year quarter number (1-4) for the current date.
193
+ - Fiscal year starts from Shrawan 1st (month 3, day 1)
202
194
 
203
- #### `getMonthName(month: number, short: boolean, nepali: boolean): string`
204
- ##### Returns
205
- Returns the name of the specified Nepali month in Nepali or English.
195
+ #### `getCurrentFiscalYearQuarterDates(): { start: NepaliDate; end: NepaliDate }`
196
+ Returns the start and end dates of the current fiscal year quarter.
206
197
 
198
+ ---
199
+
200
+ ### Static Methods
201
+
202
+ #### Date Range Utilities
207
203
  ```ts
208
- NepaliDate.getMonthName(2, false, false); // "Asar"
204
+ static minimum(): Date; // Returns earliest supported date
205
+ static maximum(): Date; // Returns latest supported date
209
206
  ```
210
207
 
211
- #### `getDayName(day: number, short: boolean, nepali: boolean): string`
212
- ##### Returns
213
- Returns the name of the specified day of the week in Nepali or English.
214
-
208
+ #### Validation
215
209
  ```ts
216
- NepaliDate.getDayName(0, false, true); // "आइतबार"
210
+ static isValid(year: number, month: number, day: number): boolean;
211
+ isValid(): boolean; // Instance method
217
212
  ```
218
213
 
219
- #### `isValid(year: number, month: number, day: number): boolean`
220
- ##### Returns
221
- Checks if the specified Nepali date is valid.
214
+ #### Name Utilities
215
+ ```ts
216
+ static getMonthName(month: number, short: boolean = false, nepali: boolean = false): string;
217
+ static getDayName(day: number, short: boolean = false, nepali: boolean = false): string;
218
+ ```
222
219
 
220
+ #### Calendar Generation
223
221
  ```ts
224
- NepaliDate.isValid(2080, 4, 20); // true
222
+ static getCalendarDays(year: number, month: number): {
223
+ prevRemainingDays: number,
224
+ prevMonth: { year: number, month: number, days: number[] },
225
+ currentMonth: { year: number, month: number, days: number[] },
226
+ nextMonth: { year: number, month: number, days: number[] },
227
+ remainingDays: number
228
+ }
225
229
  ```
230
+ Generates calendar days for a given month, including trailing/leading days from adjacent months.
226
231
 
227
- #### `getCalendarDays(year: number, month: number): Object`
232
+ #### Quarter Methods
233
+ ```ts
234
+ static getQuarter(quarter: number, year?: number): { start: NepaliDate; end: NepaliDate };
235
+ static getQuarters(year?: number): {
236
+ Q1: { start: NepaliDate; end: NepaliDate };
237
+ Q2: { start: NepaliDate; end: NepaliDate };
238
+ Q3: { start: NepaliDate; end: NepaliDate };
239
+ Q4: { start: NepaliDate; end: NepaliDate };
240
+ };
241
+ ```
228
242
 
229
- ##### Returns
230
- Generates calendar days for a given month, including trailing/leading days from adjacent months. It returns an object containing the calendar days for the previous month, the current month, and the next month. Each month includes day objects with the date and a flag indicating whether the day belongs to the current month.
243
+ #### Fiscal Year Methods
244
+ ```ts
245
+ static getCurrentFiscalYear(): number;
246
+ static getFiscalYearQuarter(quarter: number, fiscalYear?: number): { start: NepaliDate; end: NepaliDate };
247
+ static getFiscalYearQuarters(fiscalYear?: number): {
248
+ Q1: { start: NepaliDate; end: NepaliDate };
249
+ Q2: { start: NepaliDate; end: NepaliDate };
250
+ Q3: { start: NepaliDate; end: NepaliDate };
251
+ Q4: { start: NepaliDate; end: NepaliDate };
252
+ };
253
+ ```
231
254
 
255
+ #### Utility Methods
232
256
  ```ts
233
- return { prevRemainingDays: number, prevMonth: { year: number, month: number, days: number[] }, currentMonth: { year: number, month: number, days: number[] }, nextMonth: { year: number, month: number, days: number[] }, remainingDays: number }
257
+ clone(): NepaliDate; // Creates a copy of the current instance
234
258
  ```
235
259
 
236
- ##### Parameters
237
- - `year`: Nepali year (e.g., `2081`)
238
- - `month`: Nepali month (0-11), where 0 represents the first month.
260
+ ---
239
261
 
240
- ##### Example
262
+ ## Example Usage
241
263
 
264
+ ### Basic Usage
242
265
  ```ts
243
- NepaliDate.getCalendarDays(2081, 4);
244
- ```
266
+ const today = new NepaliDate();
267
+ console.log(today.toString()); // 2081/10/15
245
268
 
246
- #### `clone(): NepaliDate`
247
- ##### Returns
248
- Creates a copy of the current `NepaliDate` instance.
269
+ const formatted = today.format('YYYY-MM-DD');
270
+ console.log(formatted); // 2081-10-15
249
271
 
250
- ```ts
251
- const date = new NepaliDate(2080, 4, 20);
252
- const clonedDate = date.clone();
272
+ const nepaliFormatted = today.format('yyyy-mm-dd');
273
+ console.log(nepaliFormatted); // २०८१-१०-१५
253
274
  ```
254
275
 
255
- #### `isAfter(date: NepaliDate): boolean`
256
- ##### Returns
257
- Checks if this date comes after the specified date.
258
-
276
+ ### Date Manipulation
259
277
  ```ts
260
- const date = new NepaliDate(2080, 4, 20);
261
- date.isAfter(new NepaliDate(2080, 3, 15)); // true
278
+ const date = new NepaliDate(2081, 9, 15);
279
+ const futureDate = date.addDays(10);
280
+ const pastDate = date.addMonths(-2);
281
+ const nextYear = date.addYears(1);
262
282
  ```
263
283
 
264
- #### `isBefore(date: NepaliDate): boolean`
265
- ##### Returns
266
- Checks if this date comes before the specified date.
267
-
284
+ ### Date Comparison
268
285
  ```ts
269
- const date = new NepaliDate(2080, 4, 20);
270
- date.isBefore(new NepaliDate(2080, 5, 10)); // true
271
- ```
286
+ const date1 = new NepaliDate(2081, 5, 10);
287
+ const date2 = new NepaliDate(2081, 5, 15);
272
288
 
273
- #### `isEqual(date: NepaliDate): boolean`
274
- ##### Returns
275
- Checks if this date is equal to the specified date.
289
+ console.log(date1.isBefore(date2)); // true
290
+ console.log(date1.diff(date2, 'day')); // -5
291
+ console.log(date1.isSame(date2, 'month')); // true
292
+ ```
276
293
 
294
+ ### Working with Quarters
277
295
  ```ts
278
- const date = new NepaliDate(2080, 4, 20);
279
- date.isEqual(new NepaliDate(2080, 4, 20)); // true
280
- ```
296
+ // Get current quarter
297
+ const currentQuarter = new NepaliDate().getCurrentQuarter();
281
298
 
282
- #### `isSame(date: NepaliDate, unit: 'year' | 'month' | 'day'): boolean`
283
- ##### Returns
284
- Checks if this date is the same as the specified date for the given unit.
299
+ // Get fiscal year quarter
300
+ const fiscalQuarter = new NepaliDate().getCurrentFiscalYearQuarter();
301
+
302
+ // Get all quarters for a year
303
+ const quarters = NepaliDate.getQuarters(2081);
304
+ console.log(quarters.Q1); // { start: NepaliDate, end: NepaliDate }
285
305
 
306
+ // Get fiscal year quarters
307
+ const fiscalQuarters = NepaliDate.getFiscalYearQuarters(2081);
308
+ ```
309
+
310
+ ### Calendar Generation
286
311
  ```ts
287
- const date = new NepaliDate(2080, 4, 20);
288
- date.isSame(new NepaliDate(2080, 4, 15), 'month'); // true
312
+ const calendarData = NepaliDate.getCalendarDays(2081, 4);
313
+ console.log(calendarData.currentMonth.days); // [1, 2, 3, ..., 30]
314
+ console.log(calendarData.prevMonth.days); // Days from previous month
289
315
  ```
290
316
 
291
- ---
317
+ ### Date Range Operations
318
+ ```ts
319
+ const date = new NepaliDate(2081, 5, 15);
292
320
 
293
- ## Example Usage
321
+ const startOfWeek = date.startOfWeek(); // Sunday of current week
322
+ const endOfWeek = date.endOfWeek(); // Saturday of current week
323
+ const startOfMonth = date.startOfMonth(); // 1st day of current month
324
+ const endOfYear = date.endOfYear(); // Last day of current year
325
+ ```
326
+
327
+ ### Validation
294
328
  ```ts
295
- const today = new NepaliDate();
296
- console.log(today);
329
+ // Static validation
330
+ console.log(NepaliDate.isValid(2081, 4, 32)); // false (day out of range)
297
331
 
298
- const formatted = today.format('YYYY-MM-DD');
299
- console.log(formatted);
332
+ // Instance validation
333
+ const date = new NepaliDate(2081, 5, 10);
334
+ console.log(date.isValid()); // true
335
+ ```
300
336
 
301
- const futureDate = today.addDays(10);
302
- console.log(futureDate);
337
+ ### Name Utilities
338
+ ```ts
339
+ // Month names
340
+ console.log(NepaliDate.getMonthName(0, false, false)); // "Baisakh"
341
+ console.log(NepaliDate.getMonthName(0, true, true)); // "बै"
303
342
 
304
- const pastDate = today.addDays(-10);
305
- console.log(pastDate);
343
+ // Day names
344
+ console.log(NepaliDate.getDayName(0, false, true)); // "आइतबार"
345
+ console.log(NepaliDate.getDayName(1, true, false)); // "Mon"
306
346
  ```
307
347
 
308
- ### Acknowledgements
309
- This project was inspired by [nepali-date](https://github.com/sharingapples/nepali-date).
348
+ ---
310
349
 
311
350
  ## Error Handling
312
- - Throws an error if an invalid date format is used.
313
- - Throws an error if the Nepali date is out of range.
351
+ - Throws an error if an invalid date format is used in constructor or parse method
352
+ - Throws an error if the Nepali date is out of the supported range
353
+ - Validates input parameters and throws appropriate errors for invalid values
354
+
355
+ ## Supported Date Range
356
+ The library supports Nepali dates within a specific range. Use `NepaliDate.minimum()` and `NepaliDate.maximum()` to get the supported date boundaries.
357
+
358
+ ## Acknowledgements
359
+ This project was inspired by [nepali-date](https://github.com/sharingapples/nepali-date).
314
360
 
315
361
  ## License
316
362
  MIT License
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var Q=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var a in t)Q(e,a,{get:t[a],enumerable:!0})},L=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!B.call(e,s)&&s!==a&&Q(e,s,{get:()=>t[s],enumerable:!(r=K(t,s))||r.enumerable});return e};var V=e=>L(Q({},"__esModule",{value:!0}),e);var tt={};k(tt,{ADtoBS:()=>R,BStoAD:()=>W,MONTH_EN:()=>p,MONTH_NP:()=>b,MONTH_SHORT_EN:()=>g,MONTH_SHORT_NP:()=>f,NEPALI_DATE_MAP:()=>n,NUMBER_NP:()=>O,NepaliDate:()=>u,WEEK_EN:()=>m,WEEK_NP:()=>c,WEEK_SHORT_EN:()=>N,WEEK_SHORT_NP:()=>w});module.exports=V(tt);var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],P=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),P+=e.totalDays,e.daysTillNow=P});var E=new Date(1943,3,14).getTime(),m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],w=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],p=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],g=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],b=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],f=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],O=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function S(e){return e<10?`0${e}`:`${e}`}function h(e){let t="";for(let a=0;a<e.length;a+=1)t+=O[e.charCodeAt(a)-48];return t}function U(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function j(e){return t=>e<=2?h(String(t.getYear()).substring(2)):h(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function J(e){return t=>e===1?String(t.getMonth()+1):e===2?S(t.getMonth()+1):e===3?g[t.getMonth()]:p[t.getMonth()]}function G(e){return t=>e===1?h(String(t.getMonth()+1)):e===2?h(S(t.getMonth()+1)):e===3?f[t.getMonth()]:b[t.getMonth()]}function X(e){return t=>e===1?String(t.getDate()):e===2?S(t.getDate()):e===3?N[t.getDay()]:m[t.getDay()]}function Z(e){return t=>e===1?h(String(t.getDate())):e===2?h(S(t.getDate())):e===3?w[t.getDay()]:c[t.getDay()]}function A(e){return()=>e}var v={Y:U,y:j,M:J,m:G,D:X,d:Z};function q(e){return e in v}function z(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(v[r](s)),r="",s=0),y==='"'){t=!t;continue}!q(y)||t?a+=y:(a&&(i.push(A(a)),a=""),r=y,s=1)}return a?i.push(A(a)):r&&i.push(v[r](s)),i}function F(e,t){return z(t).map(a=>a(e)).join("")}function _(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var u=class e{timestamp;year;month;day;constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(..._(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-E)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(..._(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let D=0;D<l;D+=1)o+=i.days[D];o+=r-1,this.setEnglishDate(new Date(E+o*864e5))}format(t){return F(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(E)}static maximum(){return new Date(E+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?f[t]:b[t]:s=a?g[t]:p[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?w[t]:c[t]:s=a?N[t]:m[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),D=n[o].days[a];s.year=t,s.month=a;let M=a-1,T=t,I=a+1,Y=t;if(M<0&&(M=11,T--),T>n[0].year&&(r.year=T,r.month=M),T>=n[0].year&&l>0){let d=T-n[0].year,C=n[d].days[M];for(let H=0;H<l;H++)r.days.push(C-l+H+1)}for(let d=1;d<=D;d++)s.days.push(d);I>11&&(I=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=I);let x=42-l-s.days.length;if(Y<n[0].year+n.length&&x>0)for(let d=1;d<=x;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:x}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),D=new e(y,o,1).endOfMonth();return{start:l,end:D}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var R=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new u(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function W(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new u(e):new u,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}0&&(module.exports={ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP});
1
+ "use strict";var Q=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var a in t)Q(e,a,{get:t[a],enumerable:!0})},L=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!B.call(e,s)&&s!==a&&Q(e,s,{get:()=>t[s],enumerable:!(r=K(t,s))||r.enumerable});return e};var V=e=>L(Q({},"__esModule",{value:!0}),e);var tt={};k(tt,{ADtoBS:()=>R,BStoAD:()=>W,MONTH_EN:()=>p,MONTH_NP:()=>b,MONTH_SHORT_EN:()=>g,MONTH_SHORT_NP:()=>f,NEPALI_DATE_MAP:()=>n,NUMBER_NP:()=>O,NepaliDate:()=>u,WEEK_EN:()=>m,WEEK_NP:()=>c,WEEK_SHORT_EN:()=>N,WEEK_SHORT_NP:()=>w});module.exports=V(tt);var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],P=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),P+=e.totalDays,e.daysTillNow=P});var E=new Date(1943,3,14).getTime(),m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],w=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],p=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],g=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],b=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],f=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],O=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function S(e){return e<10?`0${e}`:`${e}`}function h(e){let t="";for(let a=0;a<e.length;a+=1)t+=O[e.charCodeAt(a)-48];return t}function U(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function j(e){return t=>e<=2?h(String(t.getYear()).substring(2)):h(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function J(e){return t=>e===1?String(t.getMonth()+1):e===2?S(t.getMonth()+1):e===3?g[t.getMonth()]:p[t.getMonth()]}function G(e){return t=>e===1?h(String(t.getMonth()+1)):e===2?h(S(t.getMonth()+1)):e===3?f[t.getMonth()]:b[t.getMonth()]}function X(e){return t=>e===1?String(t.getDate()):e===2?S(t.getDate()):e===3?N[t.getDay()]:m[t.getDay()]}function Z(e){return t=>e===1?h(String(t.getDate())):e===2?h(S(t.getDate())):e===3?w[t.getDay()]:c[t.getDay()]}function A(e){return()=>e}var v={Y:U,y:j,M:J,m:G,D:X,d:Z};function q(e){return e in v}function z(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(v[r](s)),r="",s=0),y==='"'){t=!t;continue}!q(y)||t?a+=y:(a&&(i.push(A(a)),a=""),r=y,s=1)}return a?i.push(A(a)):r&&i.push(v[r](s)),i}function F(e,t){return z(t).map(a=>a(e)).join("")}function _(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var u=class e{constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(..._(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-E)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(..._(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let D=0;D<l;D+=1)o+=i.days[D];o+=r-1,this.setEnglishDate(new Date(E+o*864e5))}format(t){return F(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(E)}static maximum(){return new Date(E+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?f[t]:b[t]:s=a?g[t]:p[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?w[t]:c[t]:s=a?N[t]:m[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),D=n[o].days[a];s.year=t,s.month=a;let M=a-1,T=t,I=a+1,Y=t;if(M<0&&(M=11,T--),T>n[0].year&&(r.year=T,r.month=M),T>=n[0].year&&l>0){let d=T-n[0].year,C=n[d].days[M];for(let H=0;H<l;H++)r.days.push(C-l+H+1)}for(let d=1;d<=D;d++)s.days.push(d);I>11&&(I=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=I);let x=42-l-s.days.length;if(Y<n[0].year+n.length&&x>0)for(let d=1;d<=x;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:x}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),D=new e(y,o,1).endOfMonth();return{start:l,end:D}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var R=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new u(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function W(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new u(e):new u,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}0&&(module.exports={ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP});
package/dist/index.mjs.js CHANGED
@@ -1 +1 @@
1
- var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],F=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),F+=e.totalDays,e.daysTillNow=F});var N=new Date(1943,3,14).getTime(),c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],p=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],g=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],b=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],f=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],T=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],E=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],H=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function O(e){return e<10?`0${e}`:`${e}`}function D(e){let t="";for(let a=0;a<e.length;a+=1)t+=H[e.charCodeAt(a)-48];return t}function R(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function W(e){return t=>e<=2?D(String(t.getYear()).substring(2)):D(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function C(e){return t=>e===1?String(t.getMonth()+1):e===2?O(t.getMonth()+1):e===3?f[t.getMonth()]:b[t.getMonth()]}function K(e){return t=>e===1?D(String(t.getMonth()+1)):e===2?D(O(t.getMonth()+1)):e===3?E[t.getMonth()]:T[t.getMonth()]}function $(e){return t=>e===1?String(t.getDate()):e===2?O(t.getDate()):e===3?w[t.getDay()]:c[t.getDay()]}function B(e){return t=>e===1?D(String(t.getDate())):e===2?D(O(t.getDate())):e===3?g[t.getDay()]:p[t.getDay()]}function P(e){return()=>e}var Q={Y:R,y:W,M:C,m:K,D:$,d:B};function k(e){return e in Q}function L(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(Q[r](s)),r="",s=0),y==='"'){t=!t;continue}!k(y)||t?a+=y:(a&&(i.push(P(a)),a=""),r=y,s=1)}return a?i.push(P(a)):r&&i.push(Q[r](s)),i}function v(e,t){return L(t).map(a=>a(e)).join("")}function A(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var h=class e{timestamp;year;month;day;constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(...A(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-N)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(...A(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let u=0;u<l;u+=1)o+=i.days[u];o+=r-1,this.setEnglishDate(new Date(N+o*864e5))}format(t){return v(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(N)}static maximum(){return new Date(N+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?E[t]:T[t]:s=a?f[t]:b[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?g[t]:p[t]:s=a?w[t]:c[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),u=n[o].days[a];s.year=t,s.month=a;let M=a-1,m=t,S=a+1,Y=t;if(M<0&&(M=11,m--),m>n[0].year&&(r.year=m,r.month=M),m>=n[0].year&&l>0){let d=m-n[0].year,_=n[d].days[M];for(let x=0;x<l;x++)r.days.push(_-l+x+1)}for(let d=1;d<=u;d++)s.days.push(d);S>11&&(S=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=S);let I=42-l-s.days.length;if(Y<n[0].year+n.length&&I>0)for(let d=1;d<=I;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:I}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),u=new e(y,o,1).endOfMonth();return{start:l,end:u}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var V=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new h(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function U(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new h(e):new h,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}export{V as ADtoBS,U as BStoAD,b as MONTH_EN,T as MONTH_NP,f as MONTH_SHORT_EN,E as MONTH_SHORT_NP,n as NEPALI_DATE_MAP,H as NUMBER_NP,h as NepaliDate,c as WEEK_EN,p as WEEK_NP,w as WEEK_SHORT_EN,g as WEEK_SHORT_NP};
1
+ var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],F=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),F+=e.totalDays,e.daysTillNow=F});var N=new Date(1943,3,14).getTime(),c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],p=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],g=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],b=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],f=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],T=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],E=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],H=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function O(e){return e<10?`0${e}`:`${e}`}function D(e){let t="";for(let a=0;a<e.length;a+=1)t+=H[e.charCodeAt(a)-48];return t}function R(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function W(e){return t=>e<=2?D(String(t.getYear()).substring(2)):D(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function C(e){return t=>e===1?String(t.getMonth()+1):e===2?O(t.getMonth()+1):e===3?f[t.getMonth()]:b[t.getMonth()]}function K(e){return t=>e===1?D(String(t.getMonth()+1)):e===2?D(O(t.getMonth()+1)):e===3?E[t.getMonth()]:T[t.getMonth()]}function $(e){return t=>e===1?String(t.getDate()):e===2?O(t.getDate()):e===3?w[t.getDay()]:c[t.getDay()]}function B(e){return t=>e===1?D(String(t.getDate())):e===2?D(O(t.getDate())):e===3?g[t.getDay()]:p[t.getDay()]}function P(e){return()=>e}var Q={Y:R,y:W,M:C,m:K,D:$,d:B};function k(e){return e in Q}function L(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(Q[r](s)),r="",s=0),y==='"'){t=!t;continue}!k(y)||t?a+=y:(a&&(i.push(P(a)),a=""),r=y,s=1)}return a?i.push(P(a)):r&&i.push(Q[r](s)),i}function v(e,t){return L(t).map(a=>a(e)).join("")}function A(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var h=class e{constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(...A(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-N)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(...A(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let u=0;u<l;u+=1)o+=i.days[u];o+=r-1,this.setEnglishDate(new Date(N+o*864e5))}format(t){return v(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(N)}static maximum(){return new Date(N+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?E[t]:T[t]:s=a?f[t]:b[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?g[t]:p[t]:s=a?w[t]:c[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),u=n[o].days[a];s.year=t,s.month=a;let M=a-1,m=t,S=a+1,Y=t;if(M<0&&(M=11,m--),m>n[0].year&&(r.year=m,r.month=M),m>=n[0].year&&l>0){let d=m-n[0].year,_=n[d].days[M];for(let x=0;x<l;x++)r.days.push(_-l+x+1)}for(let d=1;d<=u;d++)s.days.push(d);S>11&&(S=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=S);let I=42-l-s.days.length;if(Y<n[0].year+n.length&&I>0)for(let d=1;d<=I;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:I}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),u=new e(y,o,1).endOfMonth();return{start:l,end:u}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var V=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new h(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function U(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new h(e):new h,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}export{V as ADtoBS,U as BStoAD,b as MONTH_EN,T as MONTH_NP,f as MONTH_SHORT_EN,E as MONTH_SHORT_NP,n as NEPALI_DATE_MAP,H as NUMBER_NP,h as NepaliDate,c as WEEK_EN,p as WEEK_NP,w as WEEK_SHORT_EN,g as WEEK_SHORT_NP};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nepali-date-library",
3
3
  "private": false,
4
- "version": "1.1.2",
4
+ "version": "1.1.4",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -13,8 +13,7 @@
13
13
  "types": "dist/index.d.ts",
14
14
  "exports": {
15
15
  "import": "./dist/index.mjs",
16
- "require": "./dist/index.cjs",
17
- "types": "./dist/index.d.ts"
16
+ "require": "./dist/index.cjs"
18
17
  },
19
18
  "scripts": {
20
19
  "build": "tsc --emitDeclarationOnly && esbuild src/index.ts --bundle --platform=node --format=cjs --minify --outfile=dist/index.cjs.js && esbuild src/index.ts --bundle --platform=node --format=esm --minify --outfile=dist/index.mjs.js"