nepali-date-library 1.1.6 → 1.1.8
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 +3 -123
- package/dist/Helper/DateFormatter.d.ts +12 -2
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs.js +1 -1
- package/package.json +1 -1
- package/dist/test.d.ts +0 -26
package/ReadMe.md
CHANGED
|
@@ -33,10 +33,6 @@ console.log(today.toString()); // 2081/10/15
|
|
|
33
33
|
const bsDate = ADtoBS('2025-02-22'); // "2081-10-10"
|
|
34
34
|
const adDate = BStoAD('2081-10-14'); // "2025-02-26"
|
|
35
35
|
|
|
36
|
-
// Convert with custom formats
|
|
37
|
-
const customBS = ADtoBS('22/02/2025', 'DD/MM/YYYY', 'YYYY.MM.DD'); // "2081.10.10"
|
|
38
|
-
const customAD = BStoAD('10.10.2081', 'DD.MM.YYYY', 'MM-DD-YYYY'); // "10-10-2025"
|
|
39
|
-
|
|
40
36
|
// Format dates
|
|
41
37
|
const formatted = today.format('MMMM DD, YYYY'); // "Magh 15, 2081"
|
|
42
38
|
const nepali = today.format('mmmm dd, yyyy'); // "माघ १५, २०८१"
|
|
@@ -61,63 +57,35 @@ import {
|
|
|
61
57
|
|
|
62
58
|
### Date Conversion Utilities
|
|
63
59
|
|
|
64
|
-
#### `ADtoBS(adDate: string
|
|
60
|
+
#### `ADtoBS(adDate: string): string`
|
|
65
61
|
|
|
66
62
|
Converts an Anno Domini (AD) date to a Bikram Sambat (BS) date with custom format support.
|
|
67
63
|
|
|
68
64
|
**Parameters:**
|
|
69
65
|
- `adDate` - The AD date string
|
|
70
|
-
- `inputFormat` - The input date format pattern (default: "YYYY-MM-DD")
|
|
71
|
-
- `outputFormat` - The output date format pattern (default: "YYYY-MM-DD")
|
|
72
66
|
|
|
73
67
|
**Returns:** The corresponding BS date in the specified output format
|
|
74
68
|
|
|
75
69
|
**Supported Input/Output Formats:**
|
|
76
|
-
- `YYYY-MM-DD`, `YYYY/MM/DD
|
|
77
|
-
- `DD-MM-YYYY`, `DD/MM/YYYY`, `DD.MM.YYYY`
|
|
78
|
-
- `MM-DD-YYYY`, `MM/DD/YYYY`, `MM.DD.YYYY`
|
|
79
|
-
- `DD MM YYYY`, `YYYY MM DD`
|
|
70
|
+
- `YYYY-MM-DD`, `YYYY/MM/DD`
|
|
80
71
|
|
|
81
72
|
```typescript
|
|
82
73
|
// Default format conversion
|
|
83
74
|
const bsDate = ADtoBS('2025-02-22'); // "2081-10-10"
|
|
84
|
-
|
|
85
|
-
// Custom input format
|
|
86
|
-
const bsDate2 = ADtoBS('22/02/2025', 'DD/MM/YYYY'); // "2081-10-10"
|
|
87
|
-
|
|
88
|
-
// Custom input and output formats
|
|
89
|
-
const bsDate3 = ADtoBS('22.02.2025', 'DD.MM.YYYY', 'YYYY/MM/DD'); // "2081/10/10"
|
|
90
|
-
|
|
91
|
-
// US format to Nepali format
|
|
92
|
-
const bsDate4 = ADtoBS('02-22-2025', 'MM-DD-YYYY', 'DD.MM.YYYY'); // "10.10.2081"
|
|
93
75
|
```
|
|
94
76
|
|
|
95
|
-
#### `BStoAD(bsDate: string
|
|
77
|
+
#### `BStoAD(bsDate: string): string`
|
|
96
78
|
|
|
97
79
|
Converts a Bikram Sambat (BS) date to an Anno Domini (AD) date with custom format support.
|
|
98
80
|
|
|
99
81
|
**Parameters:**
|
|
100
82
|
- `bsDate` - The BS date string (supports both English and Nepali numerals)
|
|
101
|
-
- `inputFormat` - The input date format pattern (default: "YYYY-MM-DD")
|
|
102
|
-
- `outputFormat` - The output date format pattern (default: "YYYY-MM-DD")
|
|
103
83
|
|
|
104
84
|
**Returns:** The corresponding AD date in the specified output format
|
|
105
85
|
|
|
106
86
|
```typescript
|
|
107
87
|
// Default format conversion
|
|
108
88
|
const adDate = BStoAD('2081-10-14'); // "2025-02-26"
|
|
109
|
-
|
|
110
|
-
// Custom input format
|
|
111
|
-
const adDate2 = BStoAD('14/10/2081', 'DD/MM/YYYY'); // "2025-02-26"
|
|
112
|
-
|
|
113
|
-
// Custom input and output formats
|
|
114
|
-
const adDate3 = BStoAD('14.10.2081', 'DD.MM.YYYY', 'MM/DD/YYYY'); // "02/26/2025"
|
|
115
|
-
|
|
116
|
-
// Nepali numerals support
|
|
117
|
-
const adDate4 = BStoAD('२०८१-१०-१४'); // "2025-02-26"
|
|
118
|
-
|
|
119
|
-
// Mixed format conversion
|
|
120
|
-
const adDate5 = BStoAD('10 14 2081', 'MM DD YYYY', 'DD-MM-YYYY'); // "26-02-2025"
|
|
121
89
|
```
|
|
122
90
|
|
|
123
91
|
### NepaliDate Class
|
|
@@ -406,70 +374,6 @@ NepaliDate.maximum(); // Latest supported date
|
|
|
406
374
|
const copy = date.clone(); // Deep copy of NepaliDate
|
|
407
375
|
```
|
|
408
376
|
|
|
409
|
-
## Advanced Format Examples
|
|
410
|
-
|
|
411
|
-
### Multi-Format Date Conversion
|
|
412
|
-
|
|
413
|
-
```typescript
|
|
414
|
-
import { ADtoBS, BStoAD } from 'nepali-date-library';
|
|
415
|
-
|
|
416
|
-
// Converting from various AD formats to BS
|
|
417
|
-
const europeanToBS = ADtoBS('22/02/2025', 'DD/MM/YYYY'); // "2081-10-10"
|
|
418
|
-
const americanToBS = ADtoBS('02-22-2025', 'MM-DD-YYYY'); // "2081-10-10"
|
|
419
|
-
const dotFormatToBS = ADtoBS('2025.02.22', 'YYYY.MM.DD'); // "2081-10-10"
|
|
420
|
-
const spaceFormatToBS = ADtoBS('22 02 2025', 'DD MM YYYY'); // "2081-10-10"
|
|
421
|
-
|
|
422
|
-
// Converting with custom output formats
|
|
423
|
-
const customOutput1 = ADtoBS('2025-02-22', 'YYYY-MM-DD', 'DD/MM/YYYY'); // "10/10/2081"
|
|
424
|
-
const customOutput2 = ADtoBS('22/02/2025', 'DD/MM/YYYY', 'YYYY.MM.DD'); // "2081.10.10"
|
|
425
|
-
|
|
426
|
-
// Converting from various BS formats to AD
|
|
427
|
-
const bsSlashToAD = BStoAD('10/10/2081', 'DD/MM/YYYY'); // "2025-02-22"
|
|
428
|
-
const bsDotToAD = BStoAD('2081.10.10', 'YYYY.MM.DD'); // "2025-02-22"
|
|
429
|
-
const bsSpaceToAD = BStoAD('10 10 2081', 'DD MM YYYY'); // "2025-02-22"
|
|
430
|
-
|
|
431
|
-
// Converting with custom AD output formats
|
|
432
|
-
const adCustom1 = BStoAD('2081-10-10', 'YYYY-MM-DD', 'MM/DD/YYYY'); // "02/22/2025"
|
|
433
|
-
const adCustom2 = BStoAD('10/10/2081', 'DD/MM/YYYY', 'DD.MM.YYYY'); // "22.02.2025"
|
|
434
|
-
```
|
|
435
|
-
|
|
436
|
-
### Handling Different Date Sources
|
|
437
|
-
|
|
438
|
-
```typescript
|
|
439
|
-
// API data conversion utility
|
|
440
|
-
function convertAPIDate(dateStr: string, sourceFormat: string, targetCalendar: 'AD' | 'BS', targetFormat: string = 'YYYY-MM-DD') {
|
|
441
|
-
try {
|
|
442
|
-
if (targetCalendar === 'BS') {
|
|
443
|
-
return ADtoBS(dateStr, sourceFormat, targetFormat);
|
|
444
|
-
} else {
|
|
445
|
-
return BStoAD(dateStr, sourceFormat, targetFormat);
|
|
446
|
-
}
|
|
447
|
-
} catch (error) {
|
|
448
|
-
throw new Error(`Date conversion failed: ${error.message}`);
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
// Usage examples
|
|
453
|
-
const dbDate = convertAPIDate('2025/02/22', 'YYYY/MM/DD', 'BS', 'DD-MM-YYYY'); // "10-10-2081"
|
|
454
|
-
const userInput = convertAPIDate('22.10.2081', 'DD.MM.YYYY', 'AD', 'MM/DD/YYYY'); // "02/26/2025"
|
|
455
|
-
const csvDate = convertAPIDate('02 22 2025', 'MM DD YYYY', 'BS', 'YYYY/MM/DD'); // "2081/10/10"
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
### Nepali Numeral Support
|
|
459
|
-
|
|
460
|
-
The library automatically handles Nepali numerals in input:
|
|
461
|
-
|
|
462
|
-
```typescript
|
|
463
|
-
// Both of these work identically
|
|
464
|
-
const withEnglishNumerals = BStoAD('2081-10-14');
|
|
465
|
-
const withNepaliNumerals = BStoAD('२०८१-१०-१४');
|
|
466
|
-
|
|
467
|
-
// Mixed numerals are also supported
|
|
468
|
-
const mixedNumerals = BStoAD('२०८१-10-१४');
|
|
469
|
-
|
|
470
|
-
// All produce the same result: "2025-02-26"
|
|
471
|
-
```
|
|
472
|
-
|
|
473
377
|
### Constants
|
|
474
378
|
|
|
475
379
|
#### Calendar Data
|
|
@@ -547,30 +451,6 @@ console.log(nextMonth.format('YYYY-MM-DD')); // "2081-11-15"
|
|
|
547
451
|
console.log(nextYear.format('YYYY-MM-DD')); // "2082-10-15"
|
|
548
452
|
```
|
|
549
453
|
|
|
550
|
-
### Working with Different Date Formats
|
|
551
|
-
|
|
552
|
-
```typescript
|
|
553
|
-
import { ADtoBS, BStoAD } from 'nepali-date-library';
|
|
554
|
-
|
|
555
|
-
// Database integration - handle various formats
|
|
556
|
-
function handleDatabaseDate(dateStr: string, sourceFormat: string): string {
|
|
557
|
-
// Convert to standard BS format for storage
|
|
558
|
-
return ADtoBS(dateStr, sourceFormat, 'YYYY-MM-DD');
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
// User interface - display in user's preferred format
|
|
562
|
-
function displayUserDate(bsDate: string, userPreference: string): string {
|
|
563
|
-
return BStoAD(bsDate, 'YYYY-MM-DD', userPreference);
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
// Examples
|
|
567
|
-
const dbDate1 = handleDatabaseDate('22/02/2025', 'DD/MM/YYYY'); // "2081-10-10"
|
|
568
|
-
const dbDate2 = handleDatabaseDate('02.22.2025', 'MM.DD.YYYY'); // "2081-10-10"
|
|
569
|
-
|
|
570
|
-
const userDate1 = displayUserDate('2081-10-10', 'DD/MM/YYYY'); // "22/02/2025"
|
|
571
|
-
const userDate2 = displayUserDate('2081-10-10', 'MM-DD-YYYY'); // "02-22-2025"
|
|
572
|
-
```
|
|
573
|
-
|
|
574
454
|
### Working with Localized Names
|
|
575
455
|
|
|
576
456
|
```typescript
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Converts a Anno Domini (AD) date to an Bikram Sambat(BS) Date.
|
|
3
|
+
* @param {string} adDate - The Anno Domini (AD) date in "YYYY-MM-DD" format.
|
|
4
|
+
* @returns {string} - The corresponding Bikram Sambat(BS) date in "YYYY-MM-DD" format.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ADtoBS: (adDate: string) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Converts a Bikram Sambat(BS) to an Anno Domini (AD) Date.
|
|
9
|
+
* @param bsDate - The Bikram Sambat(BS) date in "YYYY-MM-DD" format.
|
|
10
|
+
* @returns {string} - The corresponding Anno Domini (AD) date in "YYYY-MM-DD" format.
|
|
11
|
+
*/
|
|
12
|
+
export declare function BStoAD(bsDate: string): string;
|
package/dist/index.cjs.js
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,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of __getOwnPropNames(t))__hasOwnProp.call(a,s)||s===e||__defProp(a,s,{get:()=>t[s],enumerable:!(r=__getOwnPropDesc(t,s))||r.enumerable});return a},__toCommonJS=a=>__copyProps(__defProp({},"__esModule",{value:!0}),a),index_exports={};__export(index_exports,{ADtoBS:()=>ADtoBS,BStoAD:()=>BStoAD,MONTH_EN:()=>MONTH_EN,MONTH_NP:()=>MONTH_NP,MONTH_SHORT_EN:()=>MONTH_SHORT_EN,MONTH_SHORT_NP:()=>MONTH_SHORT_NP,NEPALI_DATE_MAP:()=>NEPALI_DATE_MAP,NUMBER_NP:()=>NUMBER_NP,NepaliDate:()=>NepaliDate,WEEK_EN:()=>WEEK_EN,WEEK_NP:()=>WEEK_NP,WEEK_SHORT_EN:()=>WEEK_SHORT_EN,WEEK_SHORT_NP:()=>WEEK_SHORT_NP}),module.exports=__toCommonJS(index_exports);var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${a}`:`${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="",r="",s=0;const y=[];for(let o=0;o<a.length;o+=1){const d=a[o];d!==r?(""!==r&&(y.push(fn[r](s)),r="",s=0),'"'!==d?!isSpecial(d)||t?e+=d:(e&&(y.push(pass(e)),e=""),r=d,s=1):t=!t):s+=1}return e?y.push(pass(e)):r&&y.push(fn[r](s)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,r=1,s=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. Supported range: ${NEPALI_DATE_MAP[0].year}-${NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length-1}`);if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[r-1];if(s<1||s>y)throw new Error(`Invalid nepali date must be between 1 - ${y} in ${e} ${r}`);return[e,r-1,s]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const r=NEPALI_DATE_MAP[e];for(this.year=r.year,this.month=0;t>=r.days[this.month];)this.month+=1,t-=r.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const r=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r];let y=s.daysTillNow-s.totalDays;const o=t%12,d=o<0?12+o:o;for(let a=0;a<d;a+=1)y+=s.days[a];y+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*y))}format(a){return format(this,a)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,r=this.month+t;e+=Math.floor(r/12),r%=12,r<0&&(r+=12,e-=1);const s=e-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[s].days[r],o=Math.min(this.day,y);return new a(e,r,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 r=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[r].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 r="";return r=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],r}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 r="";return r=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],r}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 r=a-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r].days[t];return!(e<1||e>s)}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 r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,d=new a(t,e,1).getDay(),n=NEPALI_DATE_MAP[o].days[e];s.year=t,s.month=e;let l=e-1,i=t,D=e+1,h=t;if(l<0&&(l=11,i--),i>=NEPALI_DATE_MAP[0].year&&(r.year=i,r.month=l),i>=NEPALI_DATE_MAP[0].year&&d>0){const a=i-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[l];for(let a=0;a<d;a++)r.days.push(t-d+a+1)}for(let a=1;a<=n;a++)s.days.push(a);D>11&&(D=0,h++),h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=h,y.month=D);const N=42-d-s.days.length;if(h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&N>0)for(let a=1;a<=N;a++)y.days.push(a);return{prevRemainingDays:d,prevMonth:r,currentMonth:s,nextMonth:y,remainingDays:N}}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 r=null!=e?e:(new a).getYear(),s=3*(t-1);return{start:new a(r,s,1),end:new a(r,s+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 r=null!=e?e:a.getCurrentFiscalYear();let s=r,y=3*(t-1)+3;4===t&&(s=r+1,y=0),y>11&&(s++,y-=12);let o=y+2,d=s;o>11&&(d++,o-=12);return{start:new a(s,y,1),end:new a(d,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)}}};function parseADDate(a,t){const e={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}}[t.replace(/"/g,"")];if(!e)throw new Error(`Unsupported AD date format: "${t}"`);const r=a.match(e.regex);if(!r)throw new Error(`Date string "${a}" does not match format "${t}"`);const s={};e.order.forEach((a,t)=>{s[a]=parseInt(r[t+1],10)});const y=s.year<100?s.year<50?2e3+s.year:1900+s.year:s.year;if(y<1e3||y>9999)throw new Error(`Invalid year: ${y}`);if(s.month<1||s.month>12)throw new Error(`Invalid month: ${s.month}`);if(s.day<1||s.day>31)throw new Error(`Invalid day: ${s.day}`);const o=new Date(y,s.month-1,s.day);if(o.getFullYear()!==y||o.getMonth()!==s.month-1||o.getDate()!==s.day)throw new Error(`Invalid date: ${a}`);return o}var ADtoBS=function(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const r=parseADDate(a,t);return format(new NepaliDate(r),e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert AD to BS: ${a instanceof Error?a.message:"Unknown error"}`)}};function parseBSDate(a,t){let e=a;const r={"०":"0","१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9"};for(const[a,t]of Object.entries(r))e=e.replace(new RegExp(a,"g"),t);const s={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"yyyy-mm-dd":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"yyyy/mm/dd":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"dd-mm-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"dd/mm/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"mm-dd-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"mm/dd/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}},y=s[t.replace(/"/g,"")];if(!y)throw new Error(`Unsupported BS date format: "${t}". Supported formats: ${Object.keys(s).join(", ")}`);const o=e.match(y.regex);if(!o)throw new Error(`Date string "${a}" does not match format "${t}"`);const d={};y.order.forEach((a,t)=>{d[a]=parseInt(o[t+1],10)});const n=d.year<100?d.year<10?2e3+d.year:1900+d.year:d.year;if(n<1970||n>2100)throw new Error(`Invalid BS year: ${n}`);if(d.month<1||d.month>12)throw new Error(`Invalid month: ${d.month}`);if(d.day<1||d.day>32)throw new Error(`Invalid day: ${d.day}`);return{year:n,month:d.month,day:d.day}}function formatADDate(a,t){const e=a=>a<10?`0${a}`:`${a}`;let r=t;return r=r.replace(/YYYY/g,String(a.getFullYear())),r=r.replace(/YY/g,String(a.getFullYear()).substring(2)),r=r.replace(/MM/g,e(a.getMonth()+1)),r=r.replace(/M/g,String(a.getMonth()+1)),r=r.replace(/DD/g,e(a.getDate())),r=r.replace(/D/g,String(a.getDate())),r}function BStoAD(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const{year:r,month:s,day:y}=parseBSDate(a,t),o=new NepaliDate(r,s-1,y).getEnglishDate();if("YYYY-MM-DD"===e){const a=a=>a<10?`0${a}`:`${a}`;return`${o.getFullYear()}-${a(o.getMonth()+1)}-${a(o.getDate())}`}return formatADDate(o,e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert BS to AD: ${a instanceof Error?a.message:"Unknown error"}`)}}
|
|
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,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of __getOwnPropNames(t))__hasOwnProp.call(a,s)||s===e||__defProp(a,s,{get:()=>t[s],enumerable:!(r=__getOwnPropDesc(t,s))||r.enumerable});return a},__toCommonJS=a=>__copyProps(__defProp({},"__esModule",{value:!0}),a),index_exports={};__export(index_exports,{ADtoBS:()=>ADtoBS,BStoAD:()=>BStoAD,MONTH_EN:()=>MONTH_EN,MONTH_NP:()=>MONTH_NP,MONTH_SHORT_EN:()=>MONTH_SHORT_EN,MONTH_SHORT_NP:()=>MONTH_SHORT_NP,NEPALI_DATE_MAP:()=>NEPALI_DATE_MAP,NUMBER_NP:()=>NUMBER_NP,NepaliDate:()=>NepaliDate,WEEK_EN:()=>WEEK_EN,WEEK_NP:()=>WEEK_NP,WEEK_SHORT_EN:()=>WEEK_SHORT_EN,WEEK_SHORT_NP:()=>WEEK_SHORT_NP}),module.exports=__toCommonJS(index_exports);var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bha","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अस","श्र","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${a}`:`${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="",r="",s=0;const y=[];for(let o=0;o<a.length;o+=1){const d=a[o];d!==r?(""!==r&&(y.push(fn[r](s)),r="",s=0),'"'!==d?!isSpecial(d)||t?e+=d:(e&&(y.push(pass(e)),e=""),r=d,s=1):t=!t):s+=1}return e?y.push(pass(e)):r&&y.push(fn[r](s)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,r=1,s=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. Supported range: ${NEPALI_DATE_MAP[0].year}-${NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length-1}`);if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[r-1];if(s<1||s>y)throw new Error(`Invalid nepali date must be between 1 - ${y} in ${e} ${r}`);return[e,r-1,s]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const r=NEPALI_DATE_MAP[e];for(this.year=r.year,this.month=0;t>=r.days[this.month];)this.month+=1,t-=r.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const r=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r];let y=s.daysTillNow-s.totalDays;const o=t%12,d=o<0?12+o:o;for(let a=0;a<d;a+=1)y+=s.days[a];y+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*y))}format(a){return format(this,a)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,r=this.month+t;e+=Math.floor(r/12),r%=12,r<0&&(r+=12,e-=1);const s=e-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[s].days[r],o=Math.min(this.day,y);return new a(e,r,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 r=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[r].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 r="";return r=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],r}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 r="";return r=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],r}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 r=a-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r].days[t];return!(e<1||e>s)}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 r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,d=new a(t,e,1).getDay(),n=NEPALI_DATE_MAP[o].days[e];s.year=t,s.month=e;let l=e-1,i=t,D=e+1,h=t;if(l<0&&(l=11,i--),i>=NEPALI_DATE_MAP[0].year&&(r.year=i,r.month=l),i>=NEPALI_DATE_MAP[0].year&&d>0){const a=i-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[l];for(let a=0;a<d;a++)r.days.push(t-d+a+1)}for(let a=1;a<=n;a++)s.days.push(a);D>11&&(D=0,h++),h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=h,y.month=D);const N=42-d-s.days.length;if(h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&N>0)for(let a=1;a<=N;a++)y.days.push(a);return{prevRemainingDays:d,prevMonth:r,currentMonth:s,nextMonth:y,remainingDays:N}}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 r=null!=e?e:(new a).getYear(),s=3*(t-1);return{start:new a(r,s,1),end:new a(r,s+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 r=null!=e?e:a.getCurrentFiscalYear();let s=r,y=3*(t-1)+3;4===t&&(s=r+1,y=0),y>11&&(s++,y-=12);let o=y+2,d=s;o>11&&(d++,o-=12);return{start:new a(s,y,1),end:new a(d,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)}}};function parseADDate(a,t){const e={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}}[t.replace(/"/g,"")];if(!e)throw new Error(`Unsupported AD date format: "${t}"`);const r=a.match(e.regex);if(!r)throw new Error(`Date string "${a}" does not match format "${t}"`);const s={};e.order.forEach((a,t)=>{s[a]=parseInt(r[t+1],10)});const y=s.year<100?s.year<50?2e3+s.year:1900+s.year:s.year;if(y<1e3||y>9999)throw new Error(`Invalid year: ${y}`);if(s.month<1||s.month>12)throw new Error(`Invalid month: ${s.month}`);if(s.day<1||s.day>31)throw new Error(`Invalid day: ${s.day}`);const o=new Date(y,s.month-1,s.day);if(o.getFullYear()!==y||o.getMonth()!==s.month-1||o.getDate()!==s.day)throw new Error(`Invalid date: ${a}`);return o}var ADtoBS=function(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const r=parseADDate(a,t);return format(new NepaliDate(r),e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert AD to BS: ${a instanceof Error?a.message:"Unknown error"}`)}};function parseBSDate(a,t){let e=a;const r={"०":"0","१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9"};for(const[a,t]of Object.entries(r))e=e.replace(new RegExp(a,"g"),t);const s={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"yyyy-mm-dd":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"yyyy/mm/dd":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"dd-mm-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"dd/mm/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"mm-dd-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"mm/dd/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}},y=s[t.replace(/"/g,"")];if(!y)throw new Error(`Unsupported BS date format: "${t}". Supported formats: ${Object.keys(s).join(", ")}`);const o=e.match(y.regex);if(!o)throw new Error(`Date string "${a}" does not match format "${t}"`);const d={};y.order.forEach((a,t)=>{d[a]=parseInt(o[t+1],10)});const n=d.year<100?d.year<10?2e3+d.year:1900+d.year:d.year;if(n<1970||n>2100)throw new Error(`Invalid BS year: ${n}`);if(d.month<1||d.month>12)throw new Error(`Invalid month: ${d.month}`);if(d.day<1||d.day>32)throw new Error(`Invalid day: ${d.day}`);return{year:n,month:d.month,day:d.day}}function formatADDate(a,t){const e=a=>a<10?`0${a}`:`${a}`;let r=t;return r=r.replace(/YYYY/g,String(a.getFullYear())),r=r.replace(/YY/g,String(a.getFullYear()).substring(2)),r=r.replace(/MM/g,e(a.getMonth()+1)),r=r.replace(/M/g,String(a.getMonth()+1)),r=r.replace(/DD/g,e(a.getDate())),r=r.replace(/D/g,String(a.getDate())),r}function BStoAD(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const{year:r,month:s,day:y}=parseBSDate(a,t),o=new NepaliDate(r,s-1,y).getEnglishDate();if("YYYY-MM-DD"===e){const a=a=>a<10?`0${a}`:`${a}`;return`${o.getFullYear()}-${a(o.getMonth()+1)}-${a(o.getDate())}`}return formatADDate(o,e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert BS to AD: ${a instanceof Error?a.message:"Unknown error"}`)}}
|
package/dist/index.mjs.js
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=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${a}`:`${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="",r="",s=0;const y=[];for(let o=0;o<a.length;o+=1){const d=a[o];d!==r?(""!==r&&(y.push(fn[r](s)),r="",s=0),'"'!==d?!isSpecial(d)||t?e+=d:(e&&(y.push(pass(e)),e=""),r=d,s=1):t=!t):s+=1}return e?y.push(pass(e)):r&&y.push(fn[r](s)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,r=1,s=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. Supported range: ${NEPALI_DATE_MAP[0].year}-${NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length-1}`);if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[r-1];if(s<1||s>y)throw new Error(`Invalid nepali date must be between 1 - ${y} in ${e} ${r}`);return[e,r-1,s]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const r=NEPALI_DATE_MAP[e];for(this.year=r.year,this.month=0;t>=r.days[this.month];)this.month+=1,t-=r.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const r=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r];let y=s.daysTillNow-s.totalDays;const o=t%12,d=o<0?12+o:o;for(let a=0;a<d;a+=1)y+=s.days[a];y+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*y))}format(a){return format(this,a)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,r=this.month+t;e+=Math.floor(r/12),r%=12,r<0&&(r+=12,e-=1);const s=e-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[s].days[r],o=Math.min(this.day,y);return new a(e,r,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 r=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[r].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 r="";return r=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],r}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 r="";return r=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],r}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 r=a-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r].days[t];return!(e<1||e>s)}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 r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,d=new a(t,e,1).getDay(),l=NEPALI_DATE_MAP[o].days[e];s.year=t,s.month=e;let n=e-1,i=t,D=e+1,h=t;if(n<0&&(n=11,i--),i>=NEPALI_DATE_MAP[0].year&&(r.year=i,r.month=n),i>=NEPALI_DATE_MAP[0].year&&d>0){const a=i-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<d;a++)r.days.push(t-d+a+1)}for(let a=1;a<=l;a++)s.days.push(a);D>11&&(D=0,h++),h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=h,y.month=D);const N=42-d-s.days.length;if(h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&N>0)for(let a=1;a<=N;a++)y.days.push(a);return{prevRemainingDays:d,prevMonth:r,currentMonth:s,nextMonth:y,remainingDays:N}}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 r=null!=e?e:(new a).getYear(),s=3*(t-1);return{start:new a(r,s,1),end:new a(r,s+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 r=null!=e?e:a.getCurrentFiscalYear();let s=r,y=3*(t-1)+3;4===t&&(s=r+1,y=0),y>11&&(s++,y-=12);let o=y+2,d=s;o>11&&(d++,o-=12);return{start:new a(s,y,1),end:new a(d,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)}}};function parseADDate(a,t){const e={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}}[t.replace(/"/g,"")];if(!e)throw new Error(`Unsupported AD date format: "${t}"`);const r=a.match(e.regex);if(!r)throw new Error(`Date string "${a}" does not match format "${t}"`);const s={};e.order.forEach((a,t)=>{s[a]=parseInt(r[t+1],10)});const y=s.year<100?s.year<50?2e3+s.year:1900+s.year:s.year;if(y<1e3||y>9999)throw new Error(`Invalid year: ${y}`);if(s.month<1||s.month>12)throw new Error(`Invalid month: ${s.month}`);if(s.day<1||s.day>31)throw new Error(`Invalid day: ${s.day}`);const o=new Date(y,s.month-1,s.day);if(o.getFullYear()!==y||o.getMonth()!==s.month-1||o.getDate()!==s.day)throw new Error(`Invalid date: ${a}`);return o}var ADtoBS=function(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const r=parseADDate(a,t);return format(new NepaliDate(r),e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert AD to BS: ${a instanceof Error?a.message:"Unknown error"}`)}};function parseBSDate(a,t){let e=a;const r={"०":"0","१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9"};for(const[a,t]of Object.entries(r))e=e.replace(new RegExp(a,"g"),t);const s={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"yyyy-mm-dd":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"yyyy/mm/dd":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"dd-mm-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"dd/mm/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"mm-dd-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"mm/dd/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}},y=s[t.replace(/"/g,"")];if(!y)throw new Error(`Unsupported BS date format: "${t}". Supported formats: ${Object.keys(s).join(", ")}`);const o=e.match(y.regex);if(!o)throw new Error(`Date string "${a}" does not match format "${t}"`);const d={};y.order.forEach((a,t)=>{d[a]=parseInt(o[t+1],10)});const l=d.year<100?d.year<10?2e3+d.year:1900+d.year:d.year;if(l<1970||l>2100)throw new Error(`Invalid BS year: ${l}`);if(d.month<1||d.month>12)throw new Error(`Invalid month: ${d.month}`);if(d.day<1||d.day>32)throw new Error(`Invalid day: ${d.day}`);return{year:l,month:d.month,day:d.day}}function formatADDate(a,t){const e=a=>a<10?`0${a}`:`${a}`;let r=t;return r=r.replace(/YYYY/g,String(a.getFullYear())),r=r.replace(/YY/g,String(a.getFullYear()).substring(2)),r=r.replace(/MM/g,e(a.getMonth()+1)),r=r.replace(/M/g,String(a.getMonth()+1)),r=r.replace(/DD/g,e(a.getDate())),r=r.replace(/D/g,String(a.getDate())),r}function BStoAD(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const{year:r,month:s,day:y}=parseBSDate(a,t),o=new NepaliDate(r,s-1,y).getEnglishDate();if("YYYY-MM-DD"===e){const a=a=>a<10?`0${a}`:`${a}`;return`${o.getFullYear()}-${a(o.getMonth()+1)}-${a(o.getDate())}`}return formatADDate(o,e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert BS to AD: ${a instanceof Error?a.message:"Unknown error"}`)}}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};
|
|
1
|
+
var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bha","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अस","श्र","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${a}`:`${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="",r="",s=0;const y=[];for(let o=0;o<a.length;o+=1){const d=a[o];d!==r?(""!==r&&(y.push(fn[r](s)),r="",s=0),'"'!==d?!isSpecial(d)||t?e+=d:(e&&(y.push(pass(e)),e=""),r=d,s=1):t=!t):s+=1}return e?y.push(pass(e)):r&&y.push(fn[r](s)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,r=1,s=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. Supported range: ${NEPALI_DATE_MAP[0].year}-${NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length-1}`);if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[r-1];if(s<1||s>y)throw new Error(`Invalid nepali date must be between 1 - ${y} in ${e} ${r}`);return[e,r-1,s]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const r=NEPALI_DATE_MAP[e];for(this.year=r.year,this.month=0;t>=r.days[this.month];)this.month+=1,t-=r.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const r=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r];let y=s.daysTillNow-s.totalDays;const o=t%12,d=o<0?12+o:o;for(let a=0;a<d;a+=1)y+=s.days[a];y+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*y))}format(a){return format(this,a)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,r=this.month+t;e+=Math.floor(r/12),r%=12,r<0&&(r+=12,e-=1);const s=e-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[s].days[r],o=Math.min(this.day,y);return new a(e,r,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 r=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[r].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 r="";return r=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],r}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 r="";return r=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],r}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 r=a-NEPALI_DATE_MAP[0].year,s=NEPALI_DATE_MAP[r].days[t];return!(e<1||e>s)}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 r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,d=new a(t,e,1).getDay(),l=NEPALI_DATE_MAP[o].days[e];s.year=t,s.month=e;let n=e-1,i=t,D=e+1,h=t;if(n<0&&(n=11,i--),i>=NEPALI_DATE_MAP[0].year&&(r.year=i,r.month=n),i>=NEPALI_DATE_MAP[0].year&&d>0){const a=i-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<d;a++)r.days.push(t-d+a+1)}for(let a=1;a<=l;a++)s.days.push(a);D>11&&(D=0,h++),h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=h,y.month=D);const N=42-d-s.days.length;if(h<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&N>0)for(let a=1;a<=N;a++)y.days.push(a);return{prevRemainingDays:d,prevMonth:r,currentMonth:s,nextMonth:y,remainingDays:N}}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 r=null!=e?e:(new a).getYear(),s=3*(t-1);return{start:new a(r,s,1),end:new a(r,s+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 r=null!=e?e:a.getCurrentFiscalYear();let s=r,y=3*(t-1)+3;4===t&&(s=r+1,y=0),y>11&&(s++,y-=12);let o=y+2,d=s;o>11&&(d++,o-=12);return{start:new a(s,y,1),end:new a(d,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)}}};function parseADDate(a,t){const e={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}}[t.replace(/"/g,"")];if(!e)throw new Error(`Unsupported AD date format: "${t}"`);const r=a.match(e.regex);if(!r)throw new Error(`Date string "${a}" does not match format "${t}"`);const s={};e.order.forEach((a,t)=>{s[a]=parseInt(r[t+1],10)});const y=s.year<100?s.year<50?2e3+s.year:1900+s.year:s.year;if(y<1e3||y>9999)throw new Error(`Invalid year: ${y}`);if(s.month<1||s.month>12)throw new Error(`Invalid month: ${s.month}`);if(s.day<1||s.day>31)throw new Error(`Invalid day: ${s.day}`);const o=new Date(y,s.month-1,s.day);if(o.getFullYear()!==y||o.getMonth()!==s.month-1||o.getDate()!==s.day)throw new Error(`Invalid date: ${a}`);return o}var ADtoBS=function(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const r=parseADDate(a,t);return format(new NepaliDate(r),e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert AD to BS: ${a instanceof Error?a.message:"Unknown error"}`)}};function parseBSDate(a,t){let e=a;const r={"०":"0","१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9"};for(const[a,t]of Object.entries(r))e=e.replace(new RegExp(a,"g"),t);const s={"YYYY-MM-DD":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"YYYY/MM/DD":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"YYYY.MM.DD":{regex:/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/,order:["year","month","day"]},"DD-MM-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"DD/MM/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"DD.MM.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["day","month","year"]},"MM-DD-YYYY":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"MM/DD/YYYY":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"MM.DD.YYYY":{regex:/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/,order:["month","day","year"]},"yyyy-mm-dd":{regex:/^(\d{4})-(\d{1,2})-(\d{1,2})$/,order:["year","month","day"]},"yyyy/mm/dd":{regex:/^(\d{4})\/(\d{1,2})\/(\d{1,2})$/,order:["year","month","day"]},"dd-mm-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["day","month","year"]},"dd/mm/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["day","month","year"]},"mm-dd-yyyy":{regex:/^(\d{1,2})-(\d{1,2})-(\d{4})$/,order:["month","day","year"]},"mm/dd/yyyy":{regex:/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,order:["month","day","year"]},"DD MM YYYY":{regex:/^(\d{1,2})\s+(\d{1,2})\s+(\d{4})$/,order:["day","month","year"]},"YYYY MM DD":{regex:/^(\d{4})\s+(\d{1,2})\s+(\d{1,2})$/,order:["year","month","day"]}},y=s[t.replace(/"/g,"")];if(!y)throw new Error(`Unsupported BS date format: "${t}". Supported formats: ${Object.keys(s).join(", ")}`);const o=e.match(y.regex);if(!o)throw new Error(`Date string "${a}" does not match format "${t}"`);const d={};y.order.forEach((a,t)=>{d[a]=parseInt(o[t+1],10)});const l=d.year<100?d.year<10?2e3+d.year:1900+d.year:d.year;if(l<1970||l>2100)throw new Error(`Invalid BS year: ${l}`);if(d.month<1||d.month>12)throw new Error(`Invalid month: ${d.month}`);if(d.day<1||d.day>32)throw new Error(`Invalid day: ${d.day}`);return{year:l,month:d.month,day:d.day}}function formatADDate(a,t){const e=a=>a<10?`0${a}`:`${a}`;let r=t;return r=r.replace(/YYYY/g,String(a.getFullYear())),r=r.replace(/YY/g,String(a.getFullYear()).substring(2)),r=r.replace(/MM/g,e(a.getMonth()+1)),r=r.replace(/M/g,String(a.getMonth()+1)),r=r.replace(/DD/g,e(a.getDate())),r=r.replace(/D/g,String(a.getDate())),r}function BStoAD(a){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD";try{const{year:r,month:s,day:y}=parseBSDate(a,t),o=new NepaliDate(r,s-1,y).getEnglishDate();if("YYYY-MM-DD"===e){const a=a=>a<10?`0${a}`:`${a}`;return`${o.getFullYear()}-${a(o.getMonth()+1)}-${a(o.getDate())}`}return formatADDate(o,e)}catch(a){throw console.error("Error During Date Conversion:",a),new Error(`Failed to convert BS to AD: ${a instanceof Error?a.message:"Unknown error"}`)}}export{ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP};
|
package/package.json
CHANGED
package/dist/test.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
declare function runDateConversionExamples(): void;
|
|
2
|
-
export { runDateConversionExamples };
|
|
3
|
-
export declare const DateUtils: {
|
|
4
|
-
/**
|
|
5
|
-
* Get current date in both calendars
|
|
6
|
-
*/
|
|
7
|
-
getCurrentDates(): {
|
|
8
|
-
bs: {
|
|
9
|
-
standard: string;
|
|
10
|
-
nepali: string;
|
|
11
|
-
full: string;
|
|
12
|
-
};
|
|
13
|
-
ad: {
|
|
14
|
-
standard: string;
|
|
15
|
-
full: string;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Convert multiple dates at once
|
|
20
|
-
*/
|
|
21
|
-
batchConvert(dates: string[], fromCalendar: "AD" | "BS", inputFormat?: string, outputFormat?: string): string[];
|
|
22
|
-
/**
|
|
23
|
-
* Validate date format
|
|
24
|
-
*/
|
|
25
|
-
isValidFormat(dateStr: string, format: string): boolean;
|
|
26
|
-
};
|