nepali-date-library 1.1.10 → 1.1.12

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License Copyright (c) 2025 Sandip Ghimire
2
+
3
+ Permission is hereby
4
+ granted, free of charge, to any person obtaining a copy of this software and
5
+ associated documentation files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use, copy, modify, merge,
7
+ publish, distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to the
9
+ following conditions:
10
+
11
+ The above copyright notice and this permission notice
12
+ (including the next paragraph) shall be included in all copies or substantial
13
+ portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
16
+ ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
18
+ EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/ReadMe.md CHANGED
@@ -1,362 +1,36 @@
1
1
  # NepaliDate Library
2
2
 
3
- ## Overview
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
-
6
- ## Installation
7
- ```sh
8
- npm install nepali-date-library
9
- ```
10
-
11
- ## Importing the Library
12
- ```ts
13
- import { NepaliDate, ADtoBS, BStoAD } from 'nepali-date-library';
14
- ```
15
-
16
- ## Class: `NepaliDate`
17
-
18
- ### Constructors
19
- ```ts
20
- new NepaliDate();
21
- new NepaliDate(date: Date | NepaliDate | number | string);
22
- new NepaliDate(year: number, month: number, day: number);
23
- ```
24
- - Creates a `NepaliDate` instance.
25
- - Accepts either no arguments (current date), a JavaScript `Date`, another `NepaliDate`, a timestamp, or a formatted date string.
26
- - Can also accept year, month (0-11), and day (1-32) as separate arguments.
27
-
28
- ### Date Conversion Functions
29
-
30
- #### Pre-built Conversion Functions
31
- ```ts
32
- import { ADtoBS, BStoAD } from 'nepali-date-library';
33
-
34
- // Convert AD to BS
35
- const bsDate = ADtoBS('2025-02-22'); // Returns: '2081-10-10'
36
-
37
- // Convert BS to AD
38
- const adDate = BStoAD('2081-10-14'); // Returns: '2025-02-26'
39
- ```
40
-
41
- #### Class Method
42
- ```ts
43
- const nepaliDate = new NepaliDate();
44
- const adDate = nepaliDate.getEnglishDate(); // Returns JavaScript Date object
45
- ```
46
-
47
- ---
48
-
49
- ### Getters
50
- ```ts
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
60
- ```
61
-
62
- ---
63
-
64
- ### Setters
65
- ```ts
66
- setYear(year: number): void;
67
- setMonth(month: number): void;
68
- setDate(day: number): void;
69
- set(year: number, month: number, day: number): void;
70
- ```
71
- - Updates the Nepali date components and synchronizes the internal timestamp.
72
-
73
- ---
74
-
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
85
- ```ts
86
- format(formatStr: string): string;
87
- toString(): string; // Returns format: YYYY/MM/DD (1-indexed month)
88
- ```
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
116
- ```ts
117
- addDays(days: number): NepaliDate;
118
- addMonths(months: number): NepaliDate;
119
- addYears(years: number): NepaliDate;
120
- ```
121
- - Adds a specified number of days, months, or years to the date and returns a new `NepaliDate` instance.
122
-
123
- ---
124
-
125
- ### Date Information Methods
126
-
127
- #### `daysInMonth(): number`
128
- Returns the number of days in the current month.
129
-
130
- #### `isLeapYear(): boolean`
131
- Checks if the current year is a leap year in the Nepali calendar.
132
-
133
- #### `getWeeksInMonth(): number`
134
- Calculates the number of weeks in the current month.
135
-
136
- ---
137
-
138
- ### Date Comparison Methods
139
-
140
- #### `diff(date: NepaliDate, unit: 'year' | 'month' | 'day'): number`
141
- Calculates the difference between two `NepaliDate` instances.
142
-
143
- #### `isAfter(date: NepaliDate): boolean`
144
- Checks if this date comes after the specified date.
145
-
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
158
-
159
- #### `startOfDay(): NepaliDate`
160
- Returns a new `NepaliDate` representing the start of the current day (00:00:00).
161
-
162
- #### `endOfDay(): NepaliDate`
163
- Returns a new `NepaliDate` representing the end of the current day (23:59:59.999).
164
-
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.
3
+ [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/SandipGhimire/Nepali-Date-Library/blob/master/LICENSE)
4
+ [![Docs](https://img.shields.io/badge/Docs-Official%20Wiki-blue)](https://nepalidate.sandip-ghimire.com.np)
5
+ [![GitHub](https://img.shields.io/badge/GitHub-Repository-black)](https://github.com/SandipGhimire/nepali-date-library)
171
6
 
172
- #### `startOfMonth(): NepaliDate`
173
- Returns a new `NepaliDate` representing the first day of the current month.
174
-
175
- #### `endOfMonth(): NepaliDate`
176
- Returns a new `NepaliDate` representing the last day of the current month.
177
-
178
- #### `startOfYear(): NepaliDate`
179
- Returns a new `NepaliDate` representing the first day of the current Nepali year (1st Baisakh).
180
-
181
- #### `endOfYear(): NepaliDate`
182
- Returns a new `NepaliDate` representing the last day of the current Nepali year (last day of Chaitra).
183
-
184
- ---
185
-
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)
194
-
195
- #### `getCurrentFiscalYearQuarterDates(): { start: NepaliDate; end: NepaliDate }`
196
- Returns the start and end dates of the current fiscal year quarter.
197
-
198
- ---
199
-
200
- ### Static Methods
201
-
202
- #### Date Range Utilities
203
- ```ts
204
- static minimum(): Date; // Returns earliest supported date
205
- static maximum(): Date; // Returns latest supported date
206
- ```
207
-
208
- #### Validation
209
- ```ts
210
- static isValid(year: number, month: number, day: number): boolean;
211
- isValid(): boolean; // Instance method
212
- ```
213
-
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
- ```
219
-
220
- #### Calendar Generation
221
- ```ts
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
- }
229
- ```
230
- Generates calendar days for a given month, including trailing/leading days from adjacent months.
231
-
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
- ```
242
-
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
- ```
254
-
255
- #### Utility Methods
256
- ```ts
257
- clone(): NepaliDate; // Creates a copy of the current instance
258
- ```
259
-
260
- ---
261
-
262
- ## Example Usage
263
-
264
- ### Basic Usage
265
- ```ts
266
- const today = new NepaliDate();
267
- console.log(today.toString()); // 2081/10/15
268
-
269
- const formatted = today.format('YYYY-MM-DD');
270
- console.log(formatted); // 2081-10-15
271
-
272
- const nepaliFormatted = today.format('yyyy-mm-dd');
273
- console.log(nepaliFormatted); // २०८१-१०-१५
274
- ```
275
-
276
- ### Date Manipulation
277
- ```ts
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);
282
- ```
283
-
284
- ### Date Comparison
285
- ```ts
286
- const date1 = new NepaliDate(2081, 5, 10);
287
- const date2 = new NepaliDate(2081, 5, 15);
288
-
289
- console.log(date1.isBefore(date2)); // true
290
- console.log(date1.diff(date2, 'day')); // -5
291
- console.log(date1.isSame(date2, 'month')); // true
292
- ```
293
-
294
- ### Working with Quarters
295
- ```ts
296
- // Get current quarter
297
- const currentQuarter = new NepaliDate().getCurrentQuarter();
7
+ ## Overview
298
8
 
299
- // Get fiscal year quarter
300
- const fiscalQuarter = new NepaliDate().getCurrentFiscalYearQuarter();
9
+ 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 Bikram Sambat date (1976/01/01 - 2100/12/31) and Gregorian dates (1919-03-13 - 2044-04-12) with support for fiscal years, quarters, and extensive date operations.
301
10
 
302
- // Get all quarters for a year
303
- const quarters = NepaliDate.getQuarters(2081);
304
- console.log(quarters.Q1); // { start: NepaliDate, end: NepaliDate }
11
+ ## 📚 Documentation
305
12
 
306
- // Get fiscal year quarters
307
- const fiscalQuarters = NepaliDate.getFiscalYearQuarters(2081);
308
- ```
13
+ For detailed guides, API references, and examples, please visit our **official Wiki**:
309
14
 
310
- ### Calendar Generation
311
- ```ts
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
315
- ```
15
+ 👉 **[nepalidate.sandip-ghimire.com.np](https://github.com/SandipGhimire/nepali-date-library)**
316
16
 
317
- ### Date Range Operations
318
- ```ts
319
- const date = new NepaliDate(2081, 5, 15);
17
+ ## Installation
320
18
 
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
19
+ ```sh
20
+ npm install nepali-date-library
325
21
  ```
326
22
 
327
- ### Validation
328
- ```ts
329
- // Static validation
330
- console.log(NepaliDate.isValid(2081, 4, 32)); // false (day out of range)
331
-
332
- // Instance validation
333
- const date = new NepaliDate(2081, 5, 10);
334
- console.log(date.isValid()); // true
335
- ```
23
+ ## Quick Start
336
24
 
337
- ### Name Utilities
338
25
  ```ts
339
- // Month names
340
- console.log(NepaliDate.getMonthName(0, false, false)); // "Baisakh"
341
- console.log(NepaliDate.getMonthName(0, true, true)); // "बै"
26
+ import { NepaliDate, ADtoBS, BStoAD } from "nepali-date-library";
342
27
 
343
- // Day names
344
- console.log(NepaliDate.getDayName(0, false, true)); // "आइतबार"
345
- console.log(NepaliDate.getDayName(1, true, false)); // "Mon"
28
+ const now = new NepaliDate();
29
+ console.log(now.format("YYYY-MM-DD"));
346
30
  ```
347
31
 
348
- ---
349
-
350
- ## Error Handling
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).
32
+ For more advanced usage, please refer to the [Wiki](https://nepalidate.sandip-ghimire.com).
360
33
 
361
34
  ## License
362
- MIT License
35
+
36
+ [MIT](https://choosealicense.com/licenses/mit/)
@@ -1,16 +1,47 @@
1
+ /**
2
+ * Array of objects representing the Nepali calendar.
3
+ * Each object contains the year, days in each month, total days, and days till now.
4
+ */
1
5
  export declare const NEPALI_DATE_MAP: {
2
6
  year: number;
3
- days: Array<number>;
7
+ days: number[];
4
8
  totalDays: number;
5
9
  daysTillNow: number;
6
10
  }[];
7
11
  export declare const EPOCH: number;
12
+ /**
13
+ * Array of English week days.
14
+ */
8
15
  export declare const WEEK_EN: string[];
16
+ /**
17
+ * Array of short English week days.
18
+ */
9
19
  export declare const WEEK_SHORT_EN: string[];
20
+ /**
21
+ * Array of Nepali week days.
22
+ */
10
23
  export declare const WEEK_NP: string[];
24
+ /**
25
+ * Array of short Nepali week days.
26
+ */
11
27
  export declare const WEEK_SHORT_NP: string[];
28
+ /**
29
+ * Array of English months.
30
+ */
12
31
  export declare const MONTH_EN: string[];
32
+ /**
33
+ * Array of short English months.
34
+ */
13
35
  export declare const MONTH_SHORT_EN: string[];
36
+ /**
37
+ * Array of Nepali months.
38
+ */
14
39
  export declare const MONTH_NP: string[];
40
+ /**
41
+ * Array of short Nepali months.
42
+ */
15
43
  export declare const MONTH_SHORT_NP: string[];
44
+ /**
45
+ * Array of Nepali numbers.
46
+ */
16
47
  export declare const NUMBER_NP: string[];
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Converts a Anno Domini (AD) date to an Bikram Sambat(BS) Date.
3
- * @param {string} adDate - The Anno Domini (AD) date in "YYYY-MM-DD" format.
4
- * @returns {string} - The corresponding Bikram Sambat(BS) date in "YYYY-MM-DD" format.
3
+ * @param adDate The Anno Domini (AD) date in "YYYY-MM-DD" format.
4
+ * @returns The corresponding Bikram Sambat(BS) date in "YYYY-MM-DD" format.
5
5
  */
6
6
  export declare const ADtoBS: (adDate: string) => string;
7
7
  /**
8
8
  * Converts a Bikram Sambat(BS) to an Anno Domini (AD) Date.
9
- * @param bsDate - The Bikram Sambat(BS) date in "YYYY-MM-DD" format.
10
- * @returns {string} - The corresponding Anno Domini (AD) date in "YYYY-MM-DD" format.
9
+ * @param bsDate The Bikram Sambat(BS) date in "YYYY-MM-DD" format.
10
+ * @returns The corresponding Anno Domini (AD) date in "YYYY-MM-DD" format.
11
11
  */
12
12
  export declare function BStoAD(bsDate: string): string;
@@ -1,2 +1,8 @@
1
- import { NepaliDate } from '../NepaliDate';
1
+ import type { NepaliDate } from "../NepaliDate";
2
+ /**
3
+ * Formats a NepaliDate using the specified format string.
4
+ * @param nepaliDate Date to format
5
+ * @param formatStr Format string
6
+ * @returns Formatted string
7
+ */
2
8
  export default function format(nepaliDate: NepaliDate, formatStr: string): string;
@@ -12,21 +12,13 @@ export declare class NepaliDate {
12
12
  /** Nepali day of month (1-32) */
13
13
  day: number;
14
14
  /**
15
- * Creates a NepaliDate instance for the current date
15
+ * Creates a NepaliDate instance
16
+ * @param year Nepali year (optional)
17
+ * @param month Nepali month (0-11, optional)
18
+ * @param day Nepali day (1-32, optional)
19
+ * @param date Source date as Date, NepaliDate, timestamp, or string (optional)
16
20
  */
17
- constructor();
18
- /**
19
- * Creates a NepaliDate instance from various input types
20
- * @param date Source date as Date, NepaliDate, timestamp number, or date string
21
- */
22
- constructor(date: Date | NepaliDate | number | string);
23
- /**
24
- * Creates a NepaliDate instance with the specified year, month, and day
25
- * @param year Nepali year
26
- * @param month Nepali month (0-11)
27
- * @param day Nepali day (1-32)
28
- */
29
- constructor(year: number, month: number, day: number);
21
+ constructor(yearOrDate?: Date | NepaliDate | number | string, month?: number, day?: number);
30
22
  /**
31
23
  * Sets the internal properties based on the provided English (Gregorian) date
32
24
  * @param date JavaScript Date object
@@ -171,7 +163,7 @@ export declare class NepaliDate {
171
163
  * @param unit Unit for the difference calculation ('year', 'month', or 'day')
172
164
  * @returns Difference value in the specified unit
173
165
  */
174
- diff(date: NepaliDate, unit: 'year' | 'month' | 'day'): number;
166
+ diff(date: NepaliDate, unit: "year" | "month" | "day"): number;
175
167
  /**
176
168
  * Returns a new NepaliDate representing the start of the current day (00:00:00)
177
169
  * @returns A new NepaliDate set to the start of the day
@@ -299,7 +291,7 @@ export declare class NepaliDate {
299
291
  * @param unit Unit to use for comparison ('year', 'month', or 'day')
300
292
  * @returns true if dates are the same for the specified unit, false otherwise
301
293
  */
302
- isSame(date: NepaliDate, unit: 'year' | 'month' | 'day'): boolean;
294
+ isSame(date: NepaliDate, unit: "year" | "month" | "day"): boolean;
303
295
  /**
304
296
  * Returns the start and end dates for a specific quarter in the specified year
305
297
  * @param quarter Quarter number (1-4)
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(a,t)=>{for(var e in t)__defProp(a,e,{get:t[e],enumerable:!0})},__copyProps=(a,t,e,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of __getOwnPropNames(t))__hasOwnProp.call(a,r)||r===e||__defProp(a,r,{get:()=>t[r],enumerable:!(s=__getOwnPropDesc(t,r))||s.enumerable});return a},__toCommonJS=a=>__copyProps(__defProp({},"__esModule",{value:!0}),a),index_exports={};__export(index_exports,{ADtoBS:()=>ADtoBS,BStoAD:()=>BStoAD,MONTH_EN:()=>MONTH_EN,MONTH_NP:()=>MONTH_NP,MONTH_SHORT_EN:()=>MONTH_SHORT_EN,MONTH_SHORT_NP:()=>MONTH_SHORT_NP,NEPALI_DATE_MAP:()=>NEPALI_DATE_MAP,NUMBER_NP:()=>NUMBER_NP,NepaliDate:()=>NepaliDate,WEEK_EN:()=>WEEK_EN,WEEK_NP:()=>WEEK_NP,WEEK_SHORT_EN:()=>WEEK_SHORT_EN,WEEK_SHORT_NP:()=>WEEK_SHORT_NP,default:()=>index_default}),module.exports=__toCommonJS(index_exports);var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{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}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=Date.UTC(1919,3,13),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${String(a)}`:String(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",r=0;const y=[];for(const o of a)o!==s?(""!==s&&(y.push(fn[s](r)),s="",r=0),'"'!==o?!isSpecial(o)||t?e+=o:(e&&(y.push(pass(e)),e=""),s=o,r=1):t=!t):r+=1;return e?y.push(pass(e)):s&&y.push(fn[s](r)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,r=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(r<1||r>y)throw new Error(`Invalid nepali date must be between 1 - ${String(y)} in ${String(e)} ${String(s)}`);return[e,s-1,r]}var NepaliDate=class a{constructor(t,e,s){if(null==t)this.setEnglishDate(new Date);else if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid argument syntax");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else if("number"==typeof t&&void 0!==e&&void 0!==s)this.set(t,e,s);else{if("number"!=typeof t)throw new Error("Invalid argument syntax");this.setEnglishDate(new Date(t))}}setEnglishDate(a){var t,e;this.timestamp=a;const s=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate());let r=Math.floor((s-EPOCH)/864e5),y=Math.floor(r/366);for(;r>=NEPALI_DATE_MAP[y].daysTillNow;)y+=1;r-=null!==(t=null===(e=NEPALI_DATE_MAP[y-1])||void 0===e?void 0:e.daysTillNow)&&void 0!==t?t:0;const o=NEPALI_DATE_MAP[y];for(this.year=o.year,this.month=0;r>=o.days[this.month];)this.month+=1,r-=o.days[this.month-1];this.day=r+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}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(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range!");const r=NEPALI_DATE_MAP[s];let y=r.daysTillNow-r.totalDays;const o=t%12,l=o<0?12+o:o;for(let a=0;a<l;a+=1)y+=r.days[a];y+=e-1;const i=new Date(EPOCH+864e5*y);this.setEnglishDate(i)}format(a){return format(this,a)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const r=e-NEPALI_DATE_MAP[0].year;if(r<0||r>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[r].days[s],o=Math.min(this.day,y);return new a(e,s,o)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,r=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>r)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},r={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,l=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[o].days[e];r.year=t,r.month=e;let n=e-1,d=t,N=e+1,D=t;if(n<0&&(n=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=n),d>=NEPALI_DATE_MAP[0].year&&l>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<l;a++)s.days.push(t-l+a+1)}for(let a=1;a<=i;a++)r.days.push(a);N>11&&(N=0,D++),D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=D,y.month=N);const T=42-l-r.days.length;if(D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&T>0)for(let a=1;a<=T;a++)y.days.push(a);return{prevRemainingDays:l,prevMonth:s,currentMonth:r,nextMonth:y,remainingDays:T}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),r=3*(t-1);return{start:new a(s,r,1),end:new a(s,r+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let r=s,y=3*(t-1)+3;4===t&&(r=s+1,y=0),y>11&&(r++,y-=12);let o=y+2,l=r;o>11&&(l++,o-=12);return{start:new a(r,y,1),end:new a(l,o,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const[t,e,s]=a.split("-").map(Number),r=new Date(Date.UTC(t,e-1,s));if(Number.isNaN(r.getTime()))throw new Error(`Invalid date input '${a}'`);try{return new NepaliDate(r).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");try{const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?`0${String(a)}`:String(a),s=t.getEnglishDate();return`${String(s.getUTCFullYear())}-${e(s.getUTCMonth()+1)}-${e(s.getUTCDate())}`}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}var index_default=NepaliDate;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
+ import { NepaliDate } from "./NepaliDate";
1
2
  export { NEPALI_DATE_MAP, NUMBER_NP } from "./Helper/Constants";
2
3
  export { WEEK_EN, WEEK_NP, WEEK_SHORT_EN, WEEK_SHORT_NP } from "./Helper/Constants";
3
4
  export { MONTH_EN, MONTH_NP, MONTH_SHORT_EN, MONTH_SHORT_NP } from "./Helper/Constants";
4
5
  export { ADtoBS, BStoAD } from "./Helper/DateConverter";
5
- export { NepaliDate } from "./NepaliDate";
6
+ export { NepaliDate };
7
+ export default NepaliDate;
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{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}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=Date.UTC(1919,3,13),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${String(a)}`:String(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",y=0;const r=[];for(const l of a)l!==s?(""!==s&&(r.push(fn[s](y)),s="",y=0),'"'!==l?!isSpecial(l)||t?e+=l:(e&&(r.push(pass(e)),e=""),s=l,y=1):t=!t):y+=1;return e?r.push(pass(e)):s&&r.push(fn[s](y)),r}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,y=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const r=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(y<1||y>r)throw new Error(`Invalid nepali date must be between 1 - ${String(r)} in ${String(e)} ${String(s)}`);return[e,s-1,y]}var NepaliDate=class a{constructor(t,e,s){if(null==t)this.setEnglishDate(new Date);else if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid argument syntax");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else if("number"==typeof t&&void 0!==e&&void 0!==s)this.set(t,e,s);else{if("number"!=typeof t)throw new Error("Invalid argument syntax");this.setEnglishDate(new Date(t))}}setEnglishDate(a){var t,e;this.timestamp=a;const s=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate());let y=Math.floor((s-EPOCH)/864e5),r=Math.floor(y/366);for(;y>=NEPALI_DATE_MAP[r].daysTillNow;)r+=1;y-=null!==(t=null===(e=NEPALI_DATE_MAP[r-1])||void 0===e?void 0:e.daysTillNow)&&void 0!==t?t:0;const l=NEPALI_DATE_MAP[r];for(this.year=l.year,this.month=0;y>=l.days[this.month];)this.month+=1,y-=l.days[this.month-1];this.day=y+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}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(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range!");const y=NEPALI_DATE_MAP[s];let r=y.daysTillNow-y.totalDays;const l=t%12,o=l<0?12+l:l;for(let a=0;a<o;a+=1)r+=y.days[a];r+=e-1;const i=new Date(EPOCH+864e5*r);this.setEnglishDate(i)}format(a){return format(this,a)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const y=e-NEPALI_DATE_MAP[0].year;if(y<0||y>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const r=NEPALI_DATE_MAP[y].days[s],l=Math.min(this.day,r);return new a(e,s,l)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,y=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>y)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},r={year:0,month:0,days:[]},l=t-NEPALI_DATE_MAP[0].year,o=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[l].days[e];y.year=t,y.month=e;let n=e-1,d=t,D=e+1,N=t;if(n<0&&(n=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=n),d>=NEPALI_DATE_MAP[0].year&&o>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<o;a++)s.days.push(t-o+a+1)}for(let a=1;a<=i;a++)y.days.push(a);D>11&&(D=0,N++),N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(r.year=N,r.month=D);const h=42-o-y.days.length;if(N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)r.days.push(a);return{prevRemainingDays:o,prevMonth:s,currentMonth:y,nextMonth:r,remainingDays:h}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),y=3*(t-1);return{start:new a(s,y,1),end:new a(s,y+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let y=s,r=3*(t-1)+3;4===t&&(y=s+1,r=0),r>11&&(y++,r-=12);let l=r+2,o=y;l>11&&(o++,l-=12);return{start:new a(y,r,1),end:new a(o,l,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const[t,e,s]=a.split("-").map(Number),y=new Date(Date.UTC(t,e-1,s));if(Number.isNaN(y.getTime()))throw new Error(`Invalid date input '${a}'`);try{return new NepaliDate(y).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");try{const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?`0${String(a)}`:String(a),s=t.getEnglishDate();return`${String(s.getUTCFullYear())}-${e(s.getUTCMonth()+1)}-${e(s.getUTCDate())}`}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}var index_default=NepaliDate;export{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,index_default as default};
package/package.json CHANGED
@@ -1,52 +1,90 @@
1
1
  {
2
2
  "name": "nepali-date-library",
3
3
  "private": false,
4
- "version": "1.1.10",
4
+ "version": "1.1.12",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
+ "engines": {
10
+ "node": ">=24.0.0 <25.0.0"
11
+ },
9
12
  "license": "MIT",
10
13
  "author": "Sandip Ghimire",
11
- "main": "dist/index.cjs.js",
12
- "module": "dist/index.mjs.js",
13
- "types": "dist/index.d.ts",
14
- "exports": {
15
- "types": "./dist/index.d.ts",
16
- "import": "./dist/index.mjs.js",
17
- "require": "./dist/index.cjs.js"
14
+ "homepage": "https://nepalidate.sandip-ghimire.com.np",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/SandipGhimire/nepali-date-library.git"
18
18
  },
19
+ "main": "dist/index.cjs",
20
+ "module": "dist/index.mjs",
21
+ "types": "dist/index.d.ts",
19
22
  "scripts": {
20
- "build:esbuild": "esbuild src/index.ts --bundle --platform=node --format=cjs --outfile=dist/index.cjs.js && esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.mjs.js",
21
- "build:babel": "babel dist/index.cjs.js --out-file dist/index.cjs.js --config-file ./babel.config.json && terser dist/index.cjs.js -c -m -o dist/index.cjs.js && babel dist/index.mjs.js --out-file dist/index.mjs.js --config-file ./babel.config.json && terser dist/index.mjs.js -c -m -o dist/index.mjs.js",
22
- "build": "tsc --emitDeclarationOnly && npm run build:esbuild && npm run build:babel"
23
+ "prebuild": "pnpm run lint",
24
+ "lint": "eslint src --max-warnings 0 --flag unstable_native_nodejs_ts_config",
25
+ "lint:fix": "eslint src --max-warnings 0 --fix --flag unstable_native_nodejs_ts_config",
26
+ "test": "pnpm run test:node && pnpm run test:browser",
27
+ "test:node": "jest --silent=false --selectProjects node",
28
+ "test:browser": "jest --selectProjects browser",
29
+ "build:esbuild": "pnpm run build:esbuild:cjs && pnpm run build:esbuild:mjs",
30
+ "build:esbuild:cjs": "esbuild src/index.ts --bundle --platform=node --format=cjs --outfile=dist/index.cjs",
31
+ "build:esbuild:mjs": "esbuild src/index.ts --bundle --platform=neutral --format=esm --outfile=dist/index.mjs",
32
+ "build:babel": "pnpm run build:babel:cjs && pnpm run build:terser:cjs && pnpm run build:babel:mjs && pnpm run build:terser:mjs",
33
+ "build:babel:cjs": "babel dist/index.cjs --out-file dist/index.cjs --config-file ./babel.config.json",
34
+ "build:terser:cjs": "terser dist/index.cjs -c -m -o dist/index.cjs",
35
+ "build:babel:mjs": "babel dist/index.mjs --out-file dist/index.mjs --config-file ./babel.config.json",
36
+ "build:terser:mjs": "terser dist/index.mjs -c -m -o dist/index.mjs",
37
+ "build": "tsc --emitDeclarationOnly && pnpm run build:esbuild && pnpm run build:babel",
38
+ "format": "prettier --write src/"
23
39
  },
24
40
  "description": "A Nepali Date Library for both typescript and javascript",
25
41
  "devDependencies": {
26
- "@babel/cli": "^7.28.3",
27
- "@babel/core": "^7.28.3",
28
- "@babel/preset-env": "^7.28.3",
29
- "@types/node": "^22.13.5",
30
- "esbuild": "^0.25.9",
31
- "terser": "^5.43.1",
32
- "typescript": "^5.9.2"
42
+ "@babel/cli": "^7.28.6",
43
+ "@babel/core": "^7.28.6",
44
+ "@babel/preset-env": "^7.28.6",
45
+ "@eslint/js": "^9.39.2",
46
+ "@types/jest": "^30.0.0",
47
+ "@types/node": "^24.10.8",
48
+ "@typescript-eslint/eslint-plugin": "^8.53.0",
49
+ "@typescript-eslint/parser": "^8.53.0",
50
+ "esbuild": "^0.27.2",
51
+ "eslint": "^9.39.2",
52
+ "eslint-plugin-prettier": "^5.5.5",
53
+ "jest": "^30.2.0",
54
+ "jest-environment-jsdom": "^30.2.0",
55
+ "prettier": "^3.7.4",
56
+ "terser": "^5.44.1",
57
+ "ts-jest": "^29.4.6",
58
+ "typescript": "^5.9.3",
59
+ "typescript-eslint": "^8.53.0"
33
60
  },
34
61
  "keywords": [
62
+ "nepali",
35
63
  "nepal",
36
64
  "nepali-date-library",
37
- "nepali",
65
+ "nepali-calendar",
38
66
  "nepali-date",
67
+ "bikram-sambat",
68
+ "bikram-sambat-date",
69
+ "bs-date",
70
+ "date-conversion",
39
71
  "nepali-date-converter",
72
+ "nepali-time",
73
+ "nepali-datetime",
40
74
  "date-converter",
41
75
  "ad-bs",
42
76
  "ad-to-bs",
43
- "bs-ad",
44
77
  "bikram-sambat",
45
78
  "typescript",
46
79
  "javascript",
80
+ "nodejs",
81
+ "browser",
82
+ "esbuild",
83
+ "module",
84
+ "esm",
85
+ "cjs",
47
86
  "BS date",
48
87
  "AD to BS",
49
- "BS to AD",
50
- "nepali-ad-bs"
88
+ "BS to AD"
51
89
  ]
52
90
  }
package/dist/index.cjs.js DELETED
@@ -1 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(a,t)=>{for(var e in t)__defProp(a,e,{get:t[e],enumerable:!0})},__copyProps=(a,t,e,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of __getOwnPropNames(t))__hasOwnProp.call(a,r)||r===e||__defProp(a,r,{get:()=>t[r],enumerable:!(s=__getOwnPropDesc(t,r))||s.enumerable});return a},__toCommonJS=a=>__copyProps(__defProp({},"__esModule",{value:!0}),a),index_exports={};__export(index_exports,{ADtoBS:()=>ADtoBS,BStoAD:()=>BStoAD,MONTH_EN:()=>MONTH_EN,MONTH_NP:()=>MONTH_NP,MONTH_SHORT_EN:()=>MONTH_SHORT_EN,MONTH_SHORT_NP:()=>MONTH_SHORT_NP,NEPALI_DATE_MAP:()=>NEPALI_DATE_MAP,NUMBER_NP:()=>NUMBER_NP,NepaliDate:()=>NepaliDate,WEEK_EN:()=>WEEK_EN,WEEK_NP:()=>WEEK_NP,WEEK_SHORT_EN:()=>WEEK_SHORT_EN,WEEK_SHORT_NP:()=>WEEK_SHORT_NP}),module.exports=__toCommonJS(index_exports);var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{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}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?"0".concat(a):"".concat(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",r=0;const y=[];for(let o=0;o<a.length;o+=1){const l=a[o];l!==s?(""!==s&&(y.push(fn[s](r)),s="",r=0),'"'!==l?!isSpecial(l)||t?e+=l:(e&&(y.push(pass(e)),e=""),s=l,r=1):t=!t):r+=1}return e?y.push(pass(e)):s&&y.push(fn[s](r)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,r=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(r<1||r>y)throw new Error("Invalid nepali date must be between 1 - ".concat(y," in ").concat(e," ").concat(s));return[e,s-1,r]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const s=NEPALI_DATE_MAP[e];for(this.year=s.year,this.month=0;t>=s.days[this.month];)this.month+=1,t-=s.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}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(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,r=NEPALI_DATE_MAP[s];let y=r.daysTillNow-r.totalDays;const o=t%12,l=o<0?12+o:o;for(let a=0;a<l;a+=1)y+=r.days[a];y+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*y))}format(a){return format(this,a)}toString(){return"".concat(this.year,"/").concat(this.month+1,"/").concat(this.day)}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const r=e-NEPALI_DATE_MAP[0].year;if(r<0||r>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[r].days[s],o=Math.min(this.day,y);return new a(e,s,o)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,r=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>r)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},r={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,l=new a(t,e,1).getDay(),n=NEPALI_DATE_MAP[o].days[e];r.year=t,r.month=e;let i=e-1,d=t,N=e+1,D=t;if(i<0&&(i=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=i),d>=NEPALI_DATE_MAP[0].year&&l>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[i];for(let a=0;a<l;a++)s.days.push(t-l+a+1)}for(let a=1;a<=n;a++)r.days.push(a);N>11&&(N=0,D++),D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=D,y.month=N);const h=42-l-r.days.length;if(D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)y.days.push(a);return{prevRemainingDays:l,prevMonth:s,currentMonth:r,nextMonth:y,remainingDays:h}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),r=3*(t-1);return{start:new a(s,r,1),end:new a(s,r+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let r=s,y=3*(t-1)+3;4===t&&(r=s+1,y=0),y>11&&(r++,y-=12);let o=y+2,l=r;o>11&&(l++,o-=12);return{start:new a(r,y,1),end:new a(l,o,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=new Date(a);if(Number.isNaN(t.getTime()))throw new Error("Invalid date input '".concat(a,"'"));try{return new NepaliDate(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?"0".concat(a):"".concat(a),s=t.getEnglishDate();return"".concat(s.getFullYear(),"-").concat(e(s.getMonth()+1),"-").concat(e(s.getDate()))}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}
package/dist/index.mjs.js DELETED
@@ -1 +0,0 @@
1
- var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{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}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?"0".concat(a):"".concat(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",y=0;const r=[];for(let o=0;o<a.length;o+=1){const l=a[o];l!==s?(""!==s&&(r.push(fn[s](y)),s="",y=0),'"'!==l?!isSpecial(l)||t?e+=l:(e&&(r.push(pass(e)),e=""),s=l,y=1):t=!t):y+=1}return e?r.push(pass(e)):s&&r.push(fn[s](y)),r}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,y=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const r=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(y<1||y>r)throw new Error("Invalid nepali date must be between 1 - ".concat(r," in ").concat(e," ").concat(s));return[e,s-1,y]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const s=NEPALI_DATE_MAP[e];for(this.year=s.year,this.month=0;t>=s.days[this.month];)this.month+=1,t-=s.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}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(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,y=NEPALI_DATE_MAP[s];let r=y.daysTillNow-y.totalDays;const o=t%12,l=o<0?12+o:o;for(let a=0;a<l;a+=1)r+=y.days[a];r+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*r))}format(a){return format(this,a)}toString(){return"".concat(this.year,"/").concat(this.month+1,"/").concat(this.day)}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const y=e-NEPALI_DATE_MAP[0].year;if(y<0||y>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const r=NEPALI_DATE_MAP[y].days[s],o=Math.min(this.day,r);return new a(e,s,o)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,y=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>y)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},r={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,l=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[o].days[e];y.year=t,y.month=e;let n=e-1,d=t,D=e+1,N=t;if(n<0&&(n=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=n),d>=NEPALI_DATE_MAP[0].year&&l>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<l;a++)s.days.push(t-l+a+1)}for(let a=1;a<=i;a++)y.days.push(a);D>11&&(D=0,N++),N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(r.year=N,r.month=D);const h=42-l-y.days.length;if(N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)r.days.push(a);return{prevRemainingDays:l,prevMonth:s,currentMonth:y,nextMonth:r,remainingDays:h}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),y=3*(t-1);return{start:new a(s,y,1),end:new a(s,y+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let y=s,r=3*(t-1)+3;4===t&&(y=s+1,r=0),r>11&&(y++,r-=12);let o=r+2,l=y;o>11&&(l++,o-=12);return{start:new a(y,r,1),end:new a(l,o,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=new Date(a);if(Number.isNaN(t.getTime()))throw new Error("Invalid date input '".concat(a,"'"));try{return new NepaliDate(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?"0".concat(a):"".concat(a),s=t.getEnglishDate();return"".concat(s.getFullYear(),"-").concat(e(s.getMonth()+1),"-").concat(e(s.getDate()))}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}export{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/test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};