nepali-date-library 1.1.12 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ReadMe.md CHANGED
@@ -1,36 +1,43 @@
1
1
  # NepaliDate Library
2
2
 
3
- [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/SandipGhimire/Nepali-Date-Library/blob/master/LICENSE)
3
+ [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/SandipGhimire/Nepali-Date-Library-NodeJS/blob/master/LICENSE)
4
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)
5
+ [![GitHub](https://img.shields.io/badge/GitHub-Repository-black)](https://github.com/SandipGhimire/nepali-date-library-nodejs)
6
6
 
7
7
  ## Overview
8
8
 
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.
9
+ **NepaliDate** is a lightweight, high-performance library for working with Nepali (Bikram Sambat) dates in modern TypeScript and JavaScript environments. It provides seamless conversion between BS and Gregorian (AD) dates, support for fiscal years, quarters, and comprehensive formatting options.
10
10
 
11
11
  ## 📚 Documentation
12
12
 
13
13
  For detailed guides, API references, and examples, please visit our **official Wiki**:
14
14
 
15
- 👉 **[nepalidate.sandip-ghimire.com.np](https://github.com/SandipGhimire/nepali-date-library)**
15
+ 👉 **[nepalidate.sandip-ghimire.com.np](https://nepalidate.sandip-ghimire.com.np)**
16
16
 
17
17
  ## Installation
18
18
 
19
19
  ```sh
20
20
  npm install nepali-date-library
21
+ # or
22
+ pnpm add nepali-date-library
21
23
  ```
22
24
 
23
25
  ## Quick Start
24
26
 
25
- ```ts
26
- import { NepaliDate, ADtoBS, BStoAD } from "nepali-date-library";
27
+ 1. **Basic Usage** in your project:
28
+
29
+ ```ts
30
+ import { NepaliDate, ADtoBS, BStoAD } from "nepali-date-library";
31
+ ```
27
32
 
28
33
  const now = new NepaliDate();
29
34
  console.log(now.format("YYYY-MM-DD"));
35
+
30
36
  ```
31
37
 
32
- For more advanced usage, please refer to the [Wiki](https://nepalidate.sandip-ghimire.com).
38
+ For more advanced usage, please refer to the [Wiki](https://nepalidate.sandip-ghimire.com.np).
33
39
 
34
40
  ## License
35
41
 
36
- [MIT](https://choosealicense.com/licenses/mit/)
42
+ [MIT](https://github.com/SandipGhimire/Nepali-Date-Library/blob/master/LICENSE) © [Sandip Ghimire](https://github.com/SandipGhimire)
43
+ ```
@@ -25,6 +25,29 @@ export declare class NepaliDate {
25
25
  * @private
26
26
  */
27
27
  private setEnglishDate;
28
+ /**
29
+ * Sets the Nepali date components and updates the internal timestamp
30
+ * @param year Nepali year
31
+ * @param month Nepali month (0-11)
32
+ * @param date Nepali day (1-32)
33
+ */
34
+ set(year: number, month: number, date: number): void;
35
+ /**
36
+ * Formats the Nepali date according to the specified format string
37
+ * @param formatStr Format string (see DateFormatter for syntax)
38
+ * @returns Formatted date string
39
+ */
40
+ format(formatStr: string): string;
41
+ /**
42
+ * Creates a copy of the current NepaliDate instance
43
+ * @returns A new NepaliDate instance with the same date and time
44
+ */
45
+ clone(): NepaliDate;
46
+ /**
47
+ * Returns the string representation of the Nepali date
48
+ * @returns Date string in format YYYY/MM/DD where MM is 1-indexed
49
+ */
50
+ toString(): string;
28
51
  /**
29
52
  * Returns the equivalent English (Gregorian) date
30
53
  * @returns JavaScript Date object representing the equivalent Gregorian date
@@ -46,16 +69,16 @@ export declare class NepaliDate {
46
69
  * @returns Nepali month (0-11)
47
70
  */
48
71
  getMonth(): number;
49
- /**
50
- * Returns the Nepali day of month
51
- * @returns Nepali day of month (1-32)
52
- */
53
- getDate(): number;
54
72
  /**
55
73
  * Returns the day of week (0-6, 0 = Sunday)
56
74
  * @returns Day of week (0-6, 0 = Sunday)
57
75
  */
58
76
  getDay(): number;
77
+ /**
78
+ * Returns the Nepali day of month
79
+ * @returns Nepali day of month (1-32)
80
+ */
81
+ getDate(): number;
59
82
  /**
60
83
  * Returns the hour (0-23)
61
84
  * @returns Hour (0-23)
@@ -96,24 +119,6 @@ export declare class NepaliDate {
96
119
  * @param day Nepali day of month (1-32)
97
120
  */
98
121
  setDate(day: number): void;
99
- /**
100
- * Sets the Nepali date components and updates the internal timestamp
101
- * @param year Nepali year
102
- * @param month Nepali month (0-11)
103
- * @param date Nepali day (1-32)
104
- */
105
- set(year: number, month: number, date: number): void;
106
- /**
107
- * Formats the Nepali date according to the specified format string
108
- * @param formatStr Format string (see DateFormatter for syntax)
109
- * @returns Formatted date string
110
- */
111
- format(formatStr: string): string;
112
- /**
113
- * Returns the string representation of the Nepali date
114
- * @returns Date string in format YYYY/MM/DD where MM is 1-indexed
115
- */
116
- toString(): string;
117
122
  /**
118
123
  * Adds the specified number of days to the current Nepali date
119
124
  * @param days Number of days to add (can be negative)
@@ -146,7 +151,7 @@ export declare class NepaliDate {
146
151
  * Returns the number of days in the current month
147
152
  * @returns Number of days in the month
148
153
  */
149
- daysInMonth(): number;
154
+ daysInMonth(year?: number, month?: number): number;
150
155
  /**
151
156
  * Checks if the current year is a leap year in the Nepali calendar
152
157
  * @returns true if the year is a leap year, false otherwise
@@ -262,11 +267,6 @@ export declare class NepaliDate {
262
267
  };
263
268
  remainingDays: number;
264
269
  };
265
- /**
266
- * Creates a copy of the current NepaliDate instance
267
- * @returns A new NepaliDate instance with the same date and time
268
- */
269
- clone(): NepaliDate;
270
270
  /**
271
271
  * Checks if this date comes after the specified date
272
272
  * @param date Date to compare with
package/dist/index.cjs CHANGED
@@ -1 +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;
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}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)}clone(){return new a(this)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDay(){return this.timestamp.getDay()}getDate(){return this.day}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)}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,r=NEPALI_DATE_MAP[s].days[this.month],y=Math.min(this.day,r);return new a(e,this.month,y)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(a,t){if(void 0!==t&&(t<0||t>11))throw new Error("Invalid month index, must be between 0-11");const e=(null!=a?a:this.year)-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[e].days[null!=t?t:this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].totalDays>=366}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;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");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 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}}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.mjs CHANGED
@@ -1 +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};
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="",r=0;const y=[];for(const l of a)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 - ${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 l=NEPALI_DATE_MAP[y];for(this.year=l.year,this.month=0;r>=l.days[this.month];)this.month+=1,r-=l.days[this.month-1];this.day=r+1}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 l=t%12,o=l<0?12+l:l;for(let a=0;a<o;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)}clone(){return new a(this)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDay(){return this.timestamp.getDay()}getDate(){return this.day}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)}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],l=Math.min(this.day,y);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,r=NEPALI_DATE_MAP[s].days[this.month],y=Math.min(this.day,r);return new a(e,this.month,y)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(a,t){if(void 0!==t&&(t<0||t>11))throw new Error("Invalid month index, must be between 0-11");const e=(null!=a?a:this.year)-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[e].days[null!=t?t:this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].totalDays>=366}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;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");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:[]},l=t-NEPALI_DATE_MAP[0].year,o=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[l].days[e];r.year=t,r.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++)r.days.push(a);D>11&&(D=0,N++),N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=N,y.month=D);const h=42-o-r.days.length;if(N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)y.days.push(a);return{prevRemainingDays:o,prevMonth:s,currentMonth:r,nextMonth:y,remainingDays:h}}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 l=y+2,o=r;l>11&&(o++,l-=12);return{start:new a(r,y,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),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;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,7 +1,7 @@
1
1
  {
2
2
  "name": "nepali-date-library",
3
3
  "private": false,
4
- "version": "1.1.12",
4
+ "version": "1.1.14",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -14,49 +14,36 @@
14
14
  "homepage": "https://nepalidate.sandip-ghimire.com.np",
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/SandipGhimire/nepali-date-library.git"
17
+ "url": "https://github.com/SandipGhimire/nepali-date-library-nodejs.git"
18
+ },
19
+ "bugs": {
20
+ "url": "https://github.com/SandipGhimire/nepali-date-library/issues"
18
21
  },
19
22
  "main": "dist/index.cjs",
20
23
  "module": "dist/index.mjs",
21
24
  "types": "dist/index.d.ts",
22
- "scripts": {
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/"
39
- },
40
25
  "description": "A Nepali Date Library for both typescript and javascript",
41
26
  "devDependencies": {
42
27
  "@babel/cli": "^7.28.6",
43
- "@babel/core": "^7.28.6",
44
- "@babel/preset-env": "^7.28.6",
45
- "@eslint/js": "^9.39.2",
28
+ "@babel/core": "^7.29.0",
29
+ "@babel/preset-env": "^7.29.2",
30
+ "@eslint/js": "^9.39.4",
46
31
  "@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",
32
+ "@types/node": "^24.12.0",
33
+ "@typescript-eslint/eslint-plugin": "^8.57.1",
34
+ "@typescript-eslint/parser": "^8.57.1",
35
+ "@vitest/coverage-v8": "^4.1.0",
36
+ "@vitest/ui": "^4.1.0",
37
+ "esbuild": "^0.27.4",
38
+ "eslint": "^9.39.4",
52
39
  "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",
40
+ "git-sentry": "^1.0.2",
41
+ "jsdom": "^28.1.0",
42
+ "prettier": "^3.8.1",
43
+ "terser": "^5.46.1",
58
44
  "typescript": "^5.9.3",
59
- "typescript-eslint": "^8.53.0"
45
+ "typescript-eslint": "^8.57.1",
46
+ "vitest": "^4.1.0"
60
47
  },
61
48
  "keywords": [
62
49
  "nepali",
@@ -86,5 +73,24 @@
86
73
  "BS date",
87
74
  "AD to BS",
88
75
  "BS to AD"
89
- ]
90
- }
76
+ ],
77
+ "scripts": {
78
+ "prebuild": "pnpm run lint",
79
+ "lint": "eslint src --max-warnings 0 --flag unstable_native_nodejs_ts_config",
80
+ "lint:fix": "eslint src --max-warnings 0 --fix --flag unstable_native_nodejs_ts_config",
81
+ "test": "vitest run",
82
+ "test:watch": "vitest",
83
+ "test:ui": "vitest --ui",
84
+ "test:coverage": "vitest run --coverage",
85
+ "build:esbuild": "pnpm run build:esbuild:cjs && pnpm run build:esbuild:mjs",
86
+ "build:esbuild:cjs": "esbuild src/index.ts --bundle --platform=node --format=cjs --outfile=dist/index.cjs",
87
+ "build:esbuild:mjs": "esbuild src/index.ts --bundle --platform=neutral --format=esm --outfile=dist/index.mjs",
88
+ "build:babel": "pnpm run build:babel:cjs && pnpm run build:terser:cjs && pnpm run build:babel:mjs && pnpm run build:terser:mjs",
89
+ "build:babel:cjs": "babel dist/index.cjs --out-file dist/index.cjs --config-file ./babel.config.json",
90
+ "build:terser:cjs": "terser dist/index.cjs -c -m -o dist/index.cjs",
91
+ "build:babel:mjs": "babel dist/index.mjs --out-file dist/index.mjs --config-file ./babel.config.json",
92
+ "build:terser:mjs": "terser dist/index.mjs -c -m -o dist/index.mjs",
93
+ "build": "tsc --emitDeclarationOnly && pnpm run build:esbuild && pnpm run build:babel",
94
+ "format": "prettier --write src/"
95
+ }
96
+ }