nepali-date-library 1.1.10 → 1.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/ReadMe.md +18 -344
- package/dist/Helper/Constants.d.ts +32 -1
- package/dist/Helper/DateConverter.d.ts +4 -4
- package/dist/Helper/DateFormatter.d.ts +7 -1
- package/dist/NepaliDate.d.ts +8 -16
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +1 -0
- package/package.json +60 -22
- package/dist/index.cjs.js +0 -1
- package/dist/index.mjs.js +0 -1
- package/dist/test.d.ts +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License Copyright (c) 2025 Sandip Ghimire
|
|
2
|
+
|
|
3
|
+
Permission is hereby
|
|
4
|
+
granted, free of charge, to any person obtaining a copy of this software and
|
|
5
|
+
associated documentation files (the "Software"), to deal in the Software without
|
|
6
|
+
restriction, including without limitation the rights to use, copy, modify, merge,
|
|
7
|
+
publish, distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to the
|
|
9
|
+
following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice
|
|
12
|
+
(including the next paragraph) shall be included in all copies or substantial
|
|
13
|
+
portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
16
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
18
|
+
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
19
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
20
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
package/ReadMe.md
CHANGED
|
@@ -1,362 +1,36 @@
|
|
|
1
1
|
# NepaliDate Library
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## Installation
|
|
7
|
-
```sh
|
|
8
|
-
npm install nepali-date-library
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Importing the Library
|
|
12
|
-
```ts
|
|
13
|
-
import { NepaliDate, ADtoBS, BStoAD } from 'nepali-date-library';
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Class: `NepaliDate`
|
|
17
|
-
|
|
18
|
-
### Constructors
|
|
19
|
-
```ts
|
|
20
|
-
new NepaliDate();
|
|
21
|
-
new NepaliDate(date: Date | NepaliDate | number | string);
|
|
22
|
-
new NepaliDate(year: number, month: number, day: number);
|
|
23
|
-
```
|
|
24
|
-
- Creates a `NepaliDate` instance.
|
|
25
|
-
- Accepts either no arguments (current date), a JavaScript `Date`, another `NepaliDate`, a timestamp, or a formatted date string.
|
|
26
|
-
- Can also accept year, month (0-11), and day (1-32) as separate arguments.
|
|
27
|
-
|
|
28
|
-
### Date Conversion Functions
|
|
29
|
-
|
|
30
|
-
#### Pre-built Conversion Functions
|
|
31
|
-
```ts
|
|
32
|
-
import { ADtoBS, BStoAD } from 'nepali-date-library';
|
|
33
|
-
|
|
34
|
-
// Convert AD to BS
|
|
35
|
-
const bsDate = ADtoBS('2025-02-22'); // Returns: '2081-10-10'
|
|
36
|
-
|
|
37
|
-
// Convert BS to AD
|
|
38
|
-
const adDate = BStoAD('2081-10-14'); // Returns: '2025-02-26'
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
#### Class Method
|
|
42
|
-
```ts
|
|
43
|
-
const nepaliDate = new NepaliDate();
|
|
44
|
-
const adDate = nepaliDate.getEnglishDate(); // Returns JavaScript Date object
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
### Getters
|
|
50
|
-
```ts
|
|
51
|
-
getYear(): number; // Returns Nepali year
|
|
52
|
-
getMonth(): number; // Returns Nepali month (0-11)
|
|
53
|
-
getDate(): number; // Returns Nepali day (1-32)
|
|
54
|
-
getDay(): number; // Returns day of week (0-6, 0 = Sunday)
|
|
55
|
-
getHours(): number; // Returns hour (0-23)
|
|
56
|
-
getMinutes(): number; // Returns minutes (0-59)
|
|
57
|
-
getSeconds(): number; // Returns seconds (0-59)
|
|
58
|
-
getMilliseconds(): number; // Returns milliseconds (0-999)
|
|
59
|
-
getTime(): number; // Returns timestamp in milliseconds
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### Setters
|
|
65
|
-
```ts
|
|
66
|
-
setYear(year: number): void;
|
|
67
|
-
setMonth(month: number): void;
|
|
68
|
-
setDate(day: number): void;
|
|
69
|
-
set(year: number, month: number, day: number): void;
|
|
70
|
-
```
|
|
71
|
-
- Updates the Nepali date components and synchronizes the internal timestamp.
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
### Parsing
|
|
76
|
-
```ts
|
|
77
|
-
parse(dateString: string): void;
|
|
78
|
-
```
|
|
79
|
-
- Parses a date string and updates the current instance
|
|
80
|
-
- Supports formats: YYYY-MM-DD, YYYY/MM/DD, or YYYY.MM.DD
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
### Formatting
|
|
85
|
-
```ts
|
|
86
|
-
format(formatStr: string): string;
|
|
87
|
-
toString(): string; // Returns format: YYYY/MM/DD (1-indexed month)
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
#### Available Format Tokens:
|
|
91
|
-
- **English Formats:**
|
|
92
|
-
- `YYYY` - Full Year (e.g., 2080)
|
|
93
|
-
- `MM` - Month with leading zero (01-12)
|
|
94
|
-
- `M` - Month without leading zero (1-12)
|
|
95
|
-
- `MMM` - Short month name (Bai, Cha)
|
|
96
|
-
- `MMMM` - Long month name (Baisakh, Chaitra)
|
|
97
|
-
- `DD` - Day with leading zero (01-32)
|
|
98
|
-
- `D` - Day without leading zero (1-32)
|
|
99
|
-
- `DDD` - Short day name (Sun, Sat)
|
|
100
|
-
- `DDDD` - Full day name (Sunday)
|
|
101
|
-
|
|
102
|
-
- **Nepali Formats:**
|
|
103
|
-
- `yyyy` - Full Year (e.g., २०८१)
|
|
104
|
-
- `mm` - Month with leading zero (०१-१२)
|
|
105
|
-
- `m` - Month without leading zero (१-१२)
|
|
106
|
-
- `mmm` - Short month name (बै, चै)
|
|
107
|
-
- `mmmm` - Long month name (बैशाख, चैत्र)
|
|
108
|
-
- `dd` - Day with leading zero (०१-३२)
|
|
109
|
-
- `d` - Day without leading zero (१-३२)
|
|
110
|
-
- `ddd` - Short day name (आइत, शनि)
|
|
111
|
-
- `dddd` - Full day name (आइतबार)
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
### Date Manipulation
|
|
116
|
-
```ts
|
|
117
|
-
addDays(days: number): NepaliDate;
|
|
118
|
-
addMonths(months: number): NepaliDate;
|
|
119
|
-
addYears(years: number): NepaliDate;
|
|
120
|
-
```
|
|
121
|
-
- Adds a specified number of days, months, or years to the date and returns a new `NepaliDate` instance.
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
### Date Information Methods
|
|
126
|
-
|
|
127
|
-
#### `daysInMonth(): number`
|
|
128
|
-
Returns the number of days in the current month.
|
|
129
|
-
|
|
130
|
-
#### `isLeapYear(): boolean`
|
|
131
|
-
Checks if the current year is a leap year in the Nepali calendar.
|
|
132
|
-
|
|
133
|
-
#### `getWeeksInMonth(): number`
|
|
134
|
-
Calculates the number of weeks in the current month.
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
### Date Comparison Methods
|
|
139
|
-
|
|
140
|
-
#### `diff(date: NepaliDate, unit: 'year' | 'month' | 'day'): number`
|
|
141
|
-
Calculates the difference between two `NepaliDate` instances.
|
|
142
|
-
|
|
143
|
-
#### `isAfter(date: NepaliDate): boolean`
|
|
144
|
-
Checks if this date comes after the specified date.
|
|
145
|
-
|
|
146
|
-
#### `isBefore(date: NepaliDate): boolean`
|
|
147
|
-
Checks if this date comes before the specified date.
|
|
148
|
-
|
|
149
|
-
#### `isEqual(date: NepaliDate): boolean`
|
|
150
|
-
Checks if this date is exactly equal to the specified date (year, month, day).
|
|
151
|
-
|
|
152
|
-
#### `isSame(date: NepaliDate, unit: 'year' | 'month' | 'day'): boolean`
|
|
153
|
-
Checks if this date is the same as the specified date for the given unit.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
### Date Range Methods
|
|
158
|
-
|
|
159
|
-
#### `startOfDay(): NepaliDate`
|
|
160
|
-
Returns a new `NepaliDate` representing the start of the current day (00:00:00).
|
|
161
|
-
|
|
162
|
-
#### `endOfDay(): NepaliDate`
|
|
163
|
-
Returns a new `NepaliDate` representing the end of the current day (23:59:59.999).
|
|
164
|
-
|
|
165
|
-
#### `startOfWeek(startOfWeek: number = 0): NepaliDate`
|
|
166
|
-
Returns a new `NepaliDate` representing the start of the week containing this date.
|
|
167
|
-
- `startOfWeek`: Day to consider as start of week (0-6, where 0 = Sunday, 1 = Monday, etc.)
|
|
168
|
-
|
|
169
|
-
#### `endOfWeek(startOfWeek: number = 0): NepaliDate`
|
|
170
|
-
Returns a new `NepaliDate` representing the end of the week containing this date.
|
|
3
|
+
[](https://github.com/SandipGhimire/Nepali-Date-Library/blob/master/LICENSE)
|
|
4
|
+
[](https://nepalidate.sandip-ghimire.com.np)
|
|
5
|
+
[](https://github.com/SandipGhimire/nepali-date-library)
|
|
171
6
|
|
|
172
|
-
|
|
173
|
-
Returns a new `NepaliDate` representing the first day of the current month.
|
|
174
|
-
|
|
175
|
-
#### `endOfMonth(): NepaliDate`
|
|
176
|
-
Returns a new `NepaliDate` representing the last day of the current month.
|
|
177
|
-
|
|
178
|
-
#### `startOfYear(): NepaliDate`
|
|
179
|
-
Returns a new `NepaliDate` representing the first day of the current Nepali year (1st Baisakh).
|
|
180
|
-
|
|
181
|
-
#### `endOfYear(): NepaliDate`
|
|
182
|
-
Returns a new `NepaliDate` representing the last day of the current Nepali year (last day of Chaitra).
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
### Quarter and Fiscal Year Methods
|
|
187
|
-
|
|
188
|
-
#### `getCurrentQuarter(): number`
|
|
189
|
-
Returns the quarter number (1-4) for the current date.
|
|
190
|
-
|
|
191
|
-
#### `getCurrentFiscalYearQuarter(): number`
|
|
192
|
-
Returns the current fiscal year quarter number (1-4) for the current date.
|
|
193
|
-
- Fiscal year starts from Shrawan 1st (month 3, day 1)
|
|
194
|
-
|
|
195
|
-
#### `getCurrentFiscalYearQuarterDates(): { start: NepaliDate; end: NepaliDate }`
|
|
196
|
-
Returns the start and end dates of the current fiscal year quarter.
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
### Static Methods
|
|
201
|
-
|
|
202
|
-
#### Date Range Utilities
|
|
203
|
-
```ts
|
|
204
|
-
static minimum(): Date; // Returns earliest supported date
|
|
205
|
-
static maximum(): Date; // Returns latest supported date
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
#### Validation
|
|
209
|
-
```ts
|
|
210
|
-
static isValid(year: number, month: number, day: number): boolean;
|
|
211
|
-
isValid(): boolean; // Instance method
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
#### Name Utilities
|
|
215
|
-
```ts
|
|
216
|
-
static getMonthName(month: number, short: boolean = false, nepali: boolean = false): string;
|
|
217
|
-
static getDayName(day: number, short: boolean = false, nepali: boolean = false): string;
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
#### Calendar Generation
|
|
221
|
-
```ts
|
|
222
|
-
static getCalendarDays(year: number, month: number): {
|
|
223
|
-
prevRemainingDays: number,
|
|
224
|
-
prevMonth: { year: number, month: number, days: number[] },
|
|
225
|
-
currentMonth: { year: number, month: number, days: number[] },
|
|
226
|
-
nextMonth: { year: number, month: number, days: number[] },
|
|
227
|
-
remainingDays: number
|
|
228
|
-
}
|
|
229
|
-
```
|
|
230
|
-
Generates calendar days for a given month, including trailing/leading days from adjacent months.
|
|
231
|
-
|
|
232
|
-
#### Quarter Methods
|
|
233
|
-
```ts
|
|
234
|
-
static getQuarter(quarter: number, year?: number): { start: NepaliDate; end: NepaliDate };
|
|
235
|
-
static getQuarters(year?: number): {
|
|
236
|
-
Q1: { start: NepaliDate; end: NepaliDate };
|
|
237
|
-
Q2: { start: NepaliDate; end: NepaliDate };
|
|
238
|
-
Q3: { start: NepaliDate; end: NepaliDate };
|
|
239
|
-
Q4: { start: NepaliDate; end: NepaliDate };
|
|
240
|
-
};
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
#### Fiscal Year Methods
|
|
244
|
-
```ts
|
|
245
|
-
static getCurrentFiscalYear(): number;
|
|
246
|
-
static getFiscalYearQuarter(quarter: number, fiscalYear?: number): { start: NepaliDate; end: NepaliDate };
|
|
247
|
-
static getFiscalYearQuarters(fiscalYear?: number): {
|
|
248
|
-
Q1: { start: NepaliDate; end: NepaliDate };
|
|
249
|
-
Q2: { start: NepaliDate; end: NepaliDate };
|
|
250
|
-
Q3: { start: NepaliDate; end: NepaliDate };
|
|
251
|
-
Q4: { start: NepaliDate; end: NepaliDate };
|
|
252
|
-
};
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
#### Utility Methods
|
|
256
|
-
```ts
|
|
257
|
-
clone(): NepaliDate; // Creates a copy of the current instance
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
## Example Usage
|
|
263
|
-
|
|
264
|
-
### Basic Usage
|
|
265
|
-
```ts
|
|
266
|
-
const today = new NepaliDate();
|
|
267
|
-
console.log(today.toString()); // 2081/10/15
|
|
268
|
-
|
|
269
|
-
const formatted = today.format('YYYY-MM-DD');
|
|
270
|
-
console.log(formatted); // 2081-10-15
|
|
271
|
-
|
|
272
|
-
const nepaliFormatted = today.format('yyyy-mm-dd');
|
|
273
|
-
console.log(nepaliFormatted); // २०८१-१०-१५
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### Date Manipulation
|
|
277
|
-
```ts
|
|
278
|
-
const date = new NepaliDate(2081, 9, 15);
|
|
279
|
-
const futureDate = date.addDays(10);
|
|
280
|
-
const pastDate = date.addMonths(-2);
|
|
281
|
-
const nextYear = date.addYears(1);
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
### Date Comparison
|
|
285
|
-
```ts
|
|
286
|
-
const date1 = new NepaliDate(2081, 5, 10);
|
|
287
|
-
const date2 = new NepaliDate(2081, 5, 15);
|
|
288
|
-
|
|
289
|
-
console.log(date1.isBefore(date2)); // true
|
|
290
|
-
console.log(date1.diff(date2, 'day')); // -5
|
|
291
|
-
console.log(date1.isSame(date2, 'month')); // true
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
### Working with Quarters
|
|
295
|
-
```ts
|
|
296
|
-
// Get current quarter
|
|
297
|
-
const currentQuarter = new NepaliDate().getCurrentQuarter();
|
|
7
|
+
## Overview
|
|
298
8
|
|
|
299
|
-
|
|
300
|
-
const fiscalQuarter = new NepaliDate().getCurrentFiscalYearQuarter();
|
|
9
|
+
The `NepaliDate` library provides a proper way to work with Nepali (Bikram Sambat) dates in TypeScript/JavaScript. It allows you to create, manipulate, format, and convert between Nepali Bikram Sambat date (1976/01/01 - 2100/12/31) and Gregorian dates (1919-03-13 - 2044-04-12) with support for fiscal years, quarters, and extensive date operations.
|
|
301
10
|
|
|
302
|
-
|
|
303
|
-
const quarters = NepaliDate.getQuarters(2081);
|
|
304
|
-
console.log(quarters.Q1); // { start: NepaliDate, end: NepaliDate }
|
|
11
|
+
## 📚 Documentation
|
|
305
12
|
|
|
306
|
-
|
|
307
|
-
const fiscalQuarters = NepaliDate.getFiscalYearQuarters(2081);
|
|
308
|
-
```
|
|
13
|
+
For detailed guides, API references, and examples, please visit our **official Wiki**:
|
|
309
14
|
|
|
310
|
-
|
|
311
|
-
```ts
|
|
312
|
-
const calendarData = NepaliDate.getCalendarDays(2081, 4);
|
|
313
|
-
console.log(calendarData.currentMonth.days); // [1, 2, 3, ..., 30]
|
|
314
|
-
console.log(calendarData.prevMonth.days); // Days from previous month
|
|
315
|
-
```
|
|
15
|
+
👉 **[nepalidate.sandip-ghimire.com.np](https://github.com/SandipGhimire/nepali-date-library)**
|
|
316
16
|
|
|
317
|
-
|
|
318
|
-
```ts
|
|
319
|
-
const date = new NepaliDate(2081, 5, 15);
|
|
17
|
+
## Installation
|
|
320
18
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
const startOfMonth = date.startOfMonth(); // 1st day of current month
|
|
324
|
-
const endOfYear = date.endOfYear(); // Last day of current year
|
|
19
|
+
```sh
|
|
20
|
+
npm install nepali-date-library
|
|
325
21
|
```
|
|
326
22
|
|
|
327
|
-
|
|
328
|
-
```ts
|
|
329
|
-
// Static validation
|
|
330
|
-
console.log(NepaliDate.isValid(2081, 4, 32)); // false (day out of range)
|
|
331
|
-
|
|
332
|
-
// Instance validation
|
|
333
|
-
const date = new NepaliDate(2081, 5, 10);
|
|
334
|
-
console.log(date.isValid()); // true
|
|
335
|
-
```
|
|
23
|
+
## Quick Start
|
|
336
24
|
|
|
337
|
-
### Name Utilities
|
|
338
25
|
```ts
|
|
339
|
-
|
|
340
|
-
console.log(NepaliDate.getMonthName(0, false, false)); // "Baisakh"
|
|
341
|
-
console.log(NepaliDate.getMonthName(0, true, true)); // "बै"
|
|
26
|
+
import { NepaliDate, ADtoBS, BStoAD } from "nepali-date-library";
|
|
342
27
|
|
|
343
|
-
|
|
344
|
-
console.log(
|
|
345
|
-
console.log(NepaliDate.getDayName(1, true, false)); // "Mon"
|
|
28
|
+
const now = new NepaliDate();
|
|
29
|
+
console.log(now.format("YYYY-MM-DD"));
|
|
346
30
|
```
|
|
347
31
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
## Error Handling
|
|
351
|
-
- Throws an error if an invalid date format is used in constructor or parse method
|
|
352
|
-
- Throws an error if the Nepali date is out of the supported range
|
|
353
|
-
- Validates input parameters and throws appropriate errors for invalid values
|
|
354
|
-
|
|
355
|
-
## Supported Date Range
|
|
356
|
-
The library supports Nepali dates within a specific range. Use `NepaliDate.minimum()` and `NepaliDate.maximum()` to get the supported date boundaries.
|
|
357
|
-
|
|
358
|
-
## Acknowledgements
|
|
359
|
-
This project was inspired by [nepali-date](https://github.com/sharingapples/nepali-date).
|
|
32
|
+
For more advanced usage, please refer to the [Wiki](https://nepalidate.sandip-ghimire.com).
|
|
360
33
|
|
|
361
34
|
## License
|
|
362
|
-
|
|
35
|
+
|
|
36
|
+
[MIT](https://choosealicense.com/licenses/mit/)
|
|
@@ -1,16 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Array of objects representing the Nepali calendar.
|
|
3
|
+
* Each object contains the year, days in each month, total days, and days till now.
|
|
4
|
+
*/
|
|
1
5
|
export declare const NEPALI_DATE_MAP: {
|
|
2
6
|
year: number;
|
|
3
|
-
days:
|
|
7
|
+
days: number[];
|
|
4
8
|
totalDays: number;
|
|
5
9
|
daysTillNow: number;
|
|
6
10
|
}[];
|
|
7
11
|
export declare const EPOCH: number;
|
|
12
|
+
/**
|
|
13
|
+
* Array of English week days.
|
|
14
|
+
*/
|
|
8
15
|
export declare const WEEK_EN: string[];
|
|
16
|
+
/**
|
|
17
|
+
* Array of short English week days.
|
|
18
|
+
*/
|
|
9
19
|
export declare const WEEK_SHORT_EN: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Array of Nepali week days.
|
|
22
|
+
*/
|
|
10
23
|
export declare const WEEK_NP: string[];
|
|
24
|
+
/**
|
|
25
|
+
* Array of short Nepali week days.
|
|
26
|
+
*/
|
|
11
27
|
export declare const WEEK_SHORT_NP: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Array of English months.
|
|
30
|
+
*/
|
|
12
31
|
export declare const MONTH_EN: string[];
|
|
32
|
+
/**
|
|
33
|
+
* Array of short English months.
|
|
34
|
+
*/
|
|
13
35
|
export declare const MONTH_SHORT_EN: string[];
|
|
36
|
+
/**
|
|
37
|
+
* Array of Nepali months.
|
|
38
|
+
*/
|
|
14
39
|
export declare const MONTH_NP: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Array of short Nepali months.
|
|
42
|
+
*/
|
|
15
43
|
export declare const MONTH_SHORT_NP: string[];
|
|
44
|
+
/**
|
|
45
|
+
* Array of Nepali numbers.
|
|
46
|
+
*/
|
|
16
47
|
export declare const NUMBER_NP: string[];
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Converts a Anno Domini (AD) date to an Bikram Sambat(BS) Date.
|
|
3
|
-
* @param
|
|
4
|
-
* @returns
|
|
3
|
+
* @param adDate The Anno Domini (AD) date in "YYYY-MM-DD" format.
|
|
4
|
+
* @returns The corresponding Bikram Sambat(BS) date in "YYYY-MM-DD" format.
|
|
5
5
|
*/
|
|
6
6
|
export declare const ADtoBS: (adDate: string) => string;
|
|
7
7
|
/**
|
|
8
8
|
* Converts a Bikram Sambat(BS) to an Anno Domini (AD) Date.
|
|
9
|
-
* @param bsDate
|
|
10
|
-
* @returns
|
|
9
|
+
* @param bsDate The Bikram Sambat(BS) date in "YYYY-MM-DD" format.
|
|
10
|
+
* @returns The corresponding Anno Domini (AD) date in "YYYY-MM-DD" format.
|
|
11
11
|
*/
|
|
12
12
|
export declare function BStoAD(bsDate: string): string;
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
import { NepaliDate } from
|
|
1
|
+
import type { NepaliDate } from "../NepaliDate";
|
|
2
|
+
/**
|
|
3
|
+
* Formats a NepaliDate using the specified format string.
|
|
4
|
+
* @param nepaliDate Date to format
|
|
5
|
+
* @param formatStr Format string
|
|
6
|
+
* @returns Formatted string
|
|
7
|
+
*/
|
|
2
8
|
export default function format(nepaliDate: NepaliDate, formatStr: string): string;
|
package/dist/NepaliDate.d.ts
CHANGED
|
@@ -12,21 +12,13 @@ export declare class NepaliDate {
|
|
|
12
12
|
/** Nepali day of month (1-32) */
|
|
13
13
|
day: number;
|
|
14
14
|
/**
|
|
15
|
-
* Creates a NepaliDate instance
|
|
15
|
+
* Creates a NepaliDate instance
|
|
16
|
+
* @param year Nepali year (optional)
|
|
17
|
+
* @param month Nepali month (0-11, optional)
|
|
18
|
+
* @param day Nepali day (1-32, optional)
|
|
19
|
+
* @param date Source date as Date, NepaliDate, timestamp, or string (optional)
|
|
16
20
|
*/
|
|
17
|
-
constructor();
|
|
18
|
-
/**
|
|
19
|
-
* Creates a NepaliDate instance from various input types
|
|
20
|
-
* @param date Source date as Date, NepaliDate, timestamp number, or date string
|
|
21
|
-
*/
|
|
22
|
-
constructor(date: Date | NepaliDate | number | string);
|
|
23
|
-
/**
|
|
24
|
-
* Creates a NepaliDate instance with the specified year, month, and day
|
|
25
|
-
* @param year Nepali year
|
|
26
|
-
* @param month Nepali month (0-11)
|
|
27
|
-
* @param day Nepali day (1-32)
|
|
28
|
-
*/
|
|
29
|
-
constructor(year: number, month: number, day: number);
|
|
21
|
+
constructor(yearOrDate?: Date | NepaliDate | number | string, month?: number, day?: number);
|
|
30
22
|
/**
|
|
31
23
|
* Sets the internal properties based on the provided English (Gregorian) date
|
|
32
24
|
* @param date JavaScript Date object
|
|
@@ -171,7 +163,7 @@ export declare class NepaliDate {
|
|
|
171
163
|
* @param unit Unit for the difference calculation ('year', 'month', or 'day')
|
|
172
164
|
* @returns Difference value in the specified unit
|
|
173
165
|
*/
|
|
174
|
-
diff(date: NepaliDate, unit:
|
|
166
|
+
diff(date: NepaliDate, unit: "year" | "month" | "day"): number;
|
|
175
167
|
/**
|
|
176
168
|
* Returns a new NepaliDate representing the start of the current day (00:00:00)
|
|
177
169
|
* @returns A new NepaliDate set to the start of the day
|
|
@@ -299,7 +291,7 @@ export declare class NepaliDate {
|
|
|
299
291
|
* @param unit Unit to use for comparison ('year', 'month', or 'day')
|
|
300
292
|
* @returns true if dates are the same for the specified unit, false otherwise
|
|
301
293
|
*/
|
|
302
|
-
isSame(date: NepaliDate, unit:
|
|
294
|
+
isSame(date: NepaliDate, unit: "year" | "month" | "day"): boolean;
|
|
303
295
|
/**
|
|
304
296
|
* Returns the start and end dates for a specific quarter in the specified year
|
|
305
297
|
* @param quarter Quarter number (1-4)
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(a,t)=>{for(var e in t)__defProp(a,e,{get:t[e],enumerable:!0})},__copyProps=(a,t,e,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of __getOwnPropNames(t))__hasOwnProp.call(a,r)||r===e||__defProp(a,r,{get:()=>t[r],enumerable:!(s=__getOwnPropDesc(t,r))||s.enumerable});return a},__toCommonJS=a=>__copyProps(__defProp({},"__esModule",{value:!0}),a),index_exports={};__export(index_exports,{ADtoBS:()=>ADtoBS,BStoAD:()=>BStoAD,MONTH_EN:()=>MONTH_EN,MONTH_NP:()=>MONTH_NP,MONTH_SHORT_EN:()=>MONTH_SHORT_EN,MONTH_SHORT_NP:()=>MONTH_SHORT_NP,NEPALI_DATE_MAP:()=>NEPALI_DATE_MAP,NUMBER_NP:()=>NUMBER_NP,NepaliDate:()=>NepaliDate,WEEK_EN:()=>WEEK_EN,WEEK_NP:()=>WEEK_NP,WEEK_SHORT_EN:()=>WEEK_SHORT_EN,WEEK_SHORT_NP:()=>WEEK_SHORT_NP,default:()=>index_default}),module.exports=__toCommonJS(index_exports);var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=Date.UTC(1919,3,13),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${String(a)}`:String(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",r=0;const y=[];for(const o of a)o!==s?(""!==s&&(y.push(fn[s](r)),s="",r=0),'"'!==o?!isSpecial(o)||t?e+=o:(e&&(y.push(pass(e)),e=""),s=o,r=1):t=!t):r+=1;return e?y.push(pass(e)):s&&y.push(fn[s](r)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,r=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(r<1||r>y)throw new Error(`Invalid nepali date must be between 1 - ${String(y)} in ${String(e)} ${String(s)}`);return[e,s-1,r]}var NepaliDate=class a{constructor(t,e,s){if(null==t)this.setEnglishDate(new Date);else if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid argument syntax");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else if("number"==typeof t&&void 0!==e&&void 0!==s)this.set(t,e,s);else{if("number"!=typeof t)throw new Error("Invalid argument syntax");this.setEnglishDate(new Date(t))}}setEnglishDate(a){var t,e;this.timestamp=a;const s=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate());let r=Math.floor((s-EPOCH)/864e5),y=Math.floor(r/366);for(;r>=NEPALI_DATE_MAP[y].daysTillNow;)y+=1;r-=null!==(t=null===(e=NEPALI_DATE_MAP[y-1])||void 0===e?void 0:e.daysTillNow)&&void 0!==t?t:0;const o=NEPALI_DATE_MAP[y];for(this.year=o.year,this.month=0;r>=o.days[this.month];)this.month+=1,r-=o.days[this.month-1];this.day=r+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range!");const r=NEPALI_DATE_MAP[s];let y=r.daysTillNow-r.totalDays;const o=t%12,l=o<0?12+o:o;for(let a=0;a<l;a+=1)y+=r.days[a];y+=e-1;const i=new Date(EPOCH+864e5*y);this.setEnglishDate(i)}format(a){return format(this,a)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const r=e-NEPALI_DATE_MAP[0].year;if(r<0||r>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[r].days[s],o=Math.min(this.day,y);return new a(e,s,o)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,r=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>r)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},r={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,l=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[o].days[e];r.year=t,r.month=e;let n=e-1,d=t,N=e+1,D=t;if(n<0&&(n=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=n),d>=NEPALI_DATE_MAP[0].year&&l>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<l;a++)s.days.push(t-l+a+1)}for(let a=1;a<=i;a++)r.days.push(a);N>11&&(N=0,D++),D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=D,y.month=N);const T=42-l-r.days.length;if(D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&T>0)for(let a=1;a<=T;a++)y.days.push(a);return{prevRemainingDays:l,prevMonth:s,currentMonth:r,nextMonth:y,remainingDays:T}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),r=3*(t-1);return{start:new a(s,r,1),end:new a(s,r+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let r=s,y=3*(t-1)+3;4===t&&(r=s+1,y=0),y>11&&(r++,y-=12);let o=y+2,l=r;o>11&&(l++,o-=12);return{start:new a(r,y,1),end:new a(l,o,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const[t,e,s]=a.split("-").map(Number),r=new Date(Date.UTC(t,e-1,s));if(Number.isNaN(r.getTime()))throw new Error(`Invalid date input '${a}'`);try{return new NepaliDate(r).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");try{const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?`0${String(a)}`:String(a),s=t.getEnglishDate();return`${String(s.getUTCFullYear())}-${e(s.getUTCMonth()+1)}-${e(s.getUTCDate())}`}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}var index_default=NepaliDate;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { NepaliDate } from "./NepaliDate";
|
|
1
2
|
export { NEPALI_DATE_MAP, NUMBER_NP } from "./Helper/Constants";
|
|
2
3
|
export { WEEK_EN, WEEK_NP, WEEK_SHORT_EN, WEEK_SHORT_NP } from "./Helper/Constants";
|
|
3
4
|
export { MONTH_EN, MONTH_NP, MONTH_SHORT_EN, MONTH_SHORT_NP } from "./Helper/Constants";
|
|
4
5
|
export { ADtoBS, BStoAD } from "./Helper/DateConverter";
|
|
5
|
-
export { NepaliDate }
|
|
6
|
+
export { NepaliDate };
|
|
7
|
+
export default NepaliDate;
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=Date.UTC(1919,3,13),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?`0${String(a)}`:String(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",y=0;const r=[];for(const l of a)l!==s?(""!==s&&(r.push(fn[s](y)),s="",y=0),'"'!==l?!isSpecial(l)||t?e+=l:(e&&(r.push(pass(e)),e=""),s=l,y=1):t=!t):y+=1;return e?r.push(pass(e)):s&&r.push(fn[s](y)),r}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,y=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const r=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(y<1||y>r)throw new Error(`Invalid nepali date must be between 1 - ${String(r)} in ${String(e)} ${String(s)}`);return[e,s-1,y]}var NepaliDate=class a{constructor(t,e,s){if(null==t)this.setEnglishDate(new Date);else if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid argument syntax");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else if("number"==typeof t&&void 0!==e&&void 0!==s)this.set(t,e,s);else{if("number"!=typeof t)throw new Error("Invalid argument syntax");this.setEnglishDate(new Date(t))}}setEnglishDate(a){var t,e;this.timestamp=a;const s=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate());let y=Math.floor((s-EPOCH)/864e5),r=Math.floor(y/366);for(;y>=NEPALI_DATE_MAP[r].daysTillNow;)r+=1;y-=null!==(t=null===(e=NEPALI_DATE_MAP[r-1])||void 0===e?void 0:e.daysTillNow)&&void 0!==t?t:0;const l=NEPALI_DATE_MAP[r];for(this.year=l.year,this.month=0;y>=l.days[this.month];)this.month+=1,y-=l.days[this.month-1];this.day=y+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year;if(s<0||s>=NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range!");const y=NEPALI_DATE_MAP[s];let r=y.daysTillNow-y.totalDays;const l=t%12,o=l<0?12+l:l;for(let a=0;a<o;a+=1)r+=y.days[a];r+=e-1;const i=new Date(EPOCH+864e5*r);this.setEnglishDate(i)}format(a){return format(this,a)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const y=e-NEPALI_DATE_MAP[0].year;if(y<0||y>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const r=NEPALI_DATE_MAP[y].days[s],l=Math.min(this.day,r);return new a(e,s,l)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,y=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>y)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},r={year:0,month:0,days:[]},l=t-NEPALI_DATE_MAP[0].year,o=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[l].days[e];y.year=t,y.month=e;let n=e-1,d=t,D=e+1,N=t;if(n<0&&(n=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=n),d>=NEPALI_DATE_MAP[0].year&&o>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<o;a++)s.days.push(t-o+a+1)}for(let a=1;a<=i;a++)y.days.push(a);D>11&&(D=0,N++),N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(r.year=N,r.month=D);const h=42-o-y.days.length;if(N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)r.days.push(a);return{prevRemainingDays:o,prevMonth:s,currentMonth:y,nextMonth:r,remainingDays:h}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),y=3*(t-1);return{start:new a(s,y,1),end:new a(s,y+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let y=s,r=3*(t-1)+3;4===t&&(y=s+1,r=0),r>11&&(y++,r-=12);let l=r+2,o=y;l>11&&(o++,l-=12);return{start:new a(y,r,1),end:new a(o,l,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const[t,e,s]=a.split("-").map(Number),y=new Date(Date.UTC(t,e-1,s));if(Number.isNaN(y.getTime()))throw new Error(`Invalid date input '${a}'`);try{return new NepaliDate(y).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");try{const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?`0${String(a)}`:String(a),s=t.getEnglishDate();return`${String(s.getUTCFullYear())}-${e(s.getUTCMonth()+1)}-${e(s.getUTCDate())}`}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}var index_default=NepaliDate;export{ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP,index_default as default};
|
package/package.json
CHANGED
|
@@ -1,52 +1,90 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nepali-date-library",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.12",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
8
8
|
],
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=24.0.0 <25.0.0"
|
|
11
|
+
},
|
|
9
12
|
"license": "MIT",
|
|
10
13
|
"author": "Sandip Ghimire",
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"types": "./dist/index.d.ts",
|
|
16
|
-
"import": "./dist/index.mjs.js",
|
|
17
|
-
"require": "./dist/index.cjs.js"
|
|
14
|
+
"homepage": "https://nepalidate.sandip-ghimire.com.np",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/SandipGhimire/nepali-date-library.git"
|
|
18
18
|
},
|
|
19
|
+
"main": "dist/index.cjs",
|
|
20
|
+
"module": "dist/index.mjs",
|
|
21
|
+
"types": "dist/index.d.ts",
|
|
19
22
|
"scripts": {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
+
"prebuild": "pnpm run lint",
|
|
24
|
+
"lint": "eslint src --max-warnings 0 --flag unstable_native_nodejs_ts_config",
|
|
25
|
+
"lint:fix": "eslint src --max-warnings 0 --fix --flag unstable_native_nodejs_ts_config",
|
|
26
|
+
"test": "pnpm run test:node && pnpm run test:browser",
|
|
27
|
+
"test:node": "jest --silent=false --selectProjects node",
|
|
28
|
+
"test:browser": "jest --selectProjects browser",
|
|
29
|
+
"build:esbuild": "pnpm run build:esbuild:cjs && pnpm run build:esbuild:mjs",
|
|
30
|
+
"build:esbuild:cjs": "esbuild src/index.ts --bundle --platform=node --format=cjs --outfile=dist/index.cjs",
|
|
31
|
+
"build:esbuild:mjs": "esbuild src/index.ts --bundle --platform=neutral --format=esm --outfile=dist/index.mjs",
|
|
32
|
+
"build:babel": "pnpm run build:babel:cjs && pnpm run build:terser:cjs && pnpm run build:babel:mjs && pnpm run build:terser:mjs",
|
|
33
|
+
"build:babel:cjs": "babel dist/index.cjs --out-file dist/index.cjs --config-file ./babel.config.json",
|
|
34
|
+
"build:terser:cjs": "terser dist/index.cjs -c -m -o dist/index.cjs",
|
|
35
|
+
"build:babel:mjs": "babel dist/index.mjs --out-file dist/index.mjs --config-file ./babel.config.json",
|
|
36
|
+
"build:terser:mjs": "terser dist/index.mjs -c -m -o dist/index.mjs",
|
|
37
|
+
"build": "tsc --emitDeclarationOnly && pnpm run build:esbuild && pnpm run build:babel",
|
|
38
|
+
"format": "prettier --write src/"
|
|
23
39
|
},
|
|
24
40
|
"description": "A Nepali Date Library for both typescript and javascript",
|
|
25
41
|
"devDependencies": {
|
|
26
|
-
"@babel/cli": "^7.28.
|
|
27
|
-
"@babel/core": "^7.28.
|
|
28
|
-
"@babel/preset-env": "^7.28.
|
|
29
|
-
"@
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"typescript": "^
|
|
42
|
+
"@babel/cli": "^7.28.6",
|
|
43
|
+
"@babel/core": "^7.28.6",
|
|
44
|
+
"@babel/preset-env": "^7.28.6",
|
|
45
|
+
"@eslint/js": "^9.39.2",
|
|
46
|
+
"@types/jest": "^30.0.0",
|
|
47
|
+
"@types/node": "^24.10.8",
|
|
48
|
+
"@typescript-eslint/eslint-plugin": "^8.53.0",
|
|
49
|
+
"@typescript-eslint/parser": "^8.53.0",
|
|
50
|
+
"esbuild": "^0.27.2",
|
|
51
|
+
"eslint": "^9.39.2",
|
|
52
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
53
|
+
"jest": "^30.2.0",
|
|
54
|
+
"jest-environment-jsdom": "^30.2.0",
|
|
55
|
+
"prettier": "^3.7.4",
|
|
56
|
+
"terser": "^5.44.1",
|
|
57
|
+
"ts-jest": "^29.4.6",
|
|
58
|
+
"typescript": "^5.9.3",
|
|
59
|
+
"typescript-eslint": "^8.53.0"
|
|
33
60
|
},
|
|
34
61
|
"keywords": [
|
|
62
|
+
"nepali",
|
|
35
63
|
"nepal",
|
|
36
64
|
"nepali-date-library",
|
|
37
|
-
"nepali",
|
|
65
|
+
"nepali-calendar",
|
|
38
66
|
"nepali-date",
|
|
67
|
+
"bikram-sambat",
|
|
68
|
+
"bikram-sambat-date",
|
|
69
|
+
"bs-date",
|
|
70
|
+
"date-conversion",
|
|
39
71
|
"nepali-date-converter",
|
|
72
|
+
"nepali-time",
|
|
73
|
+
"nepali-datetime",
|
|
40
74
|
"date-converter",
|
|
41
75
|
"ad-bs",
|
|
42
76
|
"ad-to-bs",
|
|
43
|
-
"bs-ad",
|
|
44
77
|
"bikram-sambat",
|
|
45
78
|
"typescript",
|
|
46
79
|
"javascript",
|
|
80
|
+
"nodejs",
|
|
81
|
+
"browser",
|
|
82
|
+
"esbuild",
|
|
83
|
+
"module",
|
|
84
|
+
"esm",
|
|
85
|
+
"cjs",
|
|
47
86
|
"BS date",
|
|
48
87
|
"AD to BS",
|
|
49
|
-
"BS to AD"
|
|
50
|
-
"nepali-ad-bs"
|
|
88
|
+
"BS to AD"
|
|
51
89
|
]
|
|
52
90
|
}
|
package/dist/index.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(a,t)=>{for(var e in t)__defProp(a,e,{get:t[e],enumerable:!0})},__copyProps=(a,t,e,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of __getOwnPropNames(t))__hasOwnProp.call(a,r)||r===e||__defProp(a,r,{get:()=>t[r],enumerable:!(s=__getOwnPropDesc(t,r))||s.enumerable});return a},__toCommonJS=a=>__copyProps(__defProp({},"__esModule",{value:!0}),a),index_exports={};__export(index_exports,{ADtoBS:()=>ADtoBS,BStoAD:()=>BStoAD,MONTH_EN:()=>MONTH_EN,MONTH_NP:()=>MONTH_NP,MONTH_SHORT_EN:()=>MONTH_SHORT_EN,MONTH_SHORT_NP:()=>MONTH_SHORT_NP,NEPALI_DATE_MAP:()=>NEPALI_DATE_MAP,NUMBER_NP:()=>NUMBER_NP,NepaliDate:()=>NepaliDate,WEEK_EN:()=>WEEK_EN,WEEK_NP:()=>WEEK_NP,WEEK_SHORT_EN:()=>WEEK_SHORT_EN,WEEK_SHORT_NP:()=>WEEK_SHORT_NP}),module.exports=__toCommonJS(index_exports);var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?"0".concat(a):"".concat(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",r=0;const y=[];for(let o=0;o<a.length;o+=1){const l=a[o];l!==s?(""!==s&&(y.push(fn[s](r)),s="",r=0),'"'!==l?!isSpecial(l)||t?e+=l:(e&&(y.push(pass(e)),e=""),s=l,r=1):t=!t):r+=1}return e?y.push(pass(e)):s&&y.push(fn[s](r)),y}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,r=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(r<1||r>y)throw new Error("Invalid nepali date must be between 1 - ".concat(y," in ").concat(e," ").concat(s));return[e,s-1,r]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const s=NEPALI_DATE_MAP[e];for(this.year=s.year,this.month=0;t>=s.days[this.month];)this.month+=1,t-=s.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,r=NEPALI_DATE_MAP[s];let y=r.daysTillNow-r.totalDays;const o=t%12,l=o<0?12+o:o;for(let a=0;a<l;a+=1)y+=r.days[a];y+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*y))}format(a){return format(this,a)}toString(){return"".concat(this.year,"/").concat(this.month+1,"/").concat(this.day)}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const r=e-NEPALI_DATE_MAP[0].year;if(r<0||r>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const y=NEPALI_DATE_MAP[r].days[s],o=Math.min(this.day,y);return new a(e,s,o)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,r=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>r)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},r={year:0,month:0,days:[]},y={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,l=new a(t,e,1).getDay(),n=NEPALI_DATE_MAP[o].days[e];r.year=t,r.month=e;let i=e-1,d=t,N=e+1,D=t;if(i<0&&(i=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=i),d>=NEPALI_DATE_MAP[0].year&&l>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[i];for(let a=0;a<l;a++)s.days.push(t-l+a+1)}for(let a=1;a<=n;a++)r.days.push(a);N>11&&(N=0,D++),D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(y.year=D,y.month=N);const h=42-l-r.days.length;if(D<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)y.days.push(a);return{prevRemainingDays:l,prevMonth:s,currentMonth:r,nextMonth:y,remainingDays:h}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),r=3*(t-1);return{start:new a(s,r,1),end:new a(s,r+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let r=s,y=3*(t-1)+3;4===t&&(r=s+1,y=0),y>11&&(r++,y-=12);let o=y+2,l=r;o>11&&(l++,o-=12);return{start:new a(r,y,1),end:new a(l,o,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=new Date(a);if(Number.isNaN(t.getTime()))throw new Error("Invalid date input '".concat(a,"'"));try{return new NepaliDate(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?"0".concat(a):"".concat(a),s=t.getEnglishDate();return"".concat(s.getFullYear(),"-").concat(e(s.getMonth()+1),"-").concat(e(s.getDate()))}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}
|
package/dist/index.mjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var NEPALI_DATE_MAP=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],totalDays=0;NEPALI_DATE_MAP.forEach(a=>{a.totalDays=a.days.reduce((a,t)=>a+t,0),totalDays+=a.totalDays,a.daysTillNow=totalDays});var EPOCH=new Date(1919,3,13).getTime(),WEEK_EN=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],WEEK_SHORT_EN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEK_NP=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],WEEK_SHORT_NP=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],MONTH_EN=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],MONTH_SHORT_EN=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],MONTH_NP=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],MONTH_SHORT_NP=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],NUMBER_NP=["०","१","२","३","४","५","६","७","८","९"];function pad(a){return a<10?"0".concat(a):"".concat(a)}function npDigit(a){let t="";for(let e=0;e<a.length;e+=1)t+=NUMBER_NP[a.charCodeAt(e)-48];return t}function yearEn(a){return t=>a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear())}function yearNp(a){return t=>npDigit(a<=2?String(t.getYear()).substring(2):3===a?String(t.getYear()).substring(1):String(t.getYear()))}function monthEn(a){return t=>1===a?String(t.getMonth()+1):2===a?pad(t.getMonth()+1):3===a?MONTH_SHORT_EN[t.getMonth()]:MONTH_EN[t.getMonth()]}function monthNp(a){return t=>1===a?npDigit(String(t.getMonth()+1)):2===a?npDigit(pad(t.getMonth()+1)):3===a?MONTH_SHORT_NP[t.getMonth()]:MONTH_NP[t.getMonth()]}function dateEn(a){return t=>1===a?String(t.getDate()):2===a?pad(t.getDate()):3===a?WEEK_SHORT_EN[t.getDay()]:WEEK_EN[t.getDay()]}function dateNp(a){return t=>1===a?npDigit(String(t.getDate())):2===a?npDigit(pad(t.getDate())):3===a?WEEK_SHORT_NP[t.getDay()]:WEEK_NP[t.getDay()]}function pass(a){return()=>a}var fn={Y:yearEn,y:yearNp,M:monthEn,m:monthNp,D:dateEn,d:dateNp};function isSpecial(a){return a in fn}function tokenize(a){let t=!1,e="",s="",y=0;const r=[];for(let o=0;o<a.length;o+=1){const l=a[o];l!==s?(""!==s&&(r.push(fn[s](y)),s="",y=0),'"'!==l?!isSpecial(l)||t?e+=l:(e&&(r.push(pass(e)),e=""),s=l,y=1):t=!t):y+=1}return e?r.push(pass(e)):s&&r.push(fn[s](y)),r}function format(a,t){return tokenize(t).map(t=>t(a)).join("")}function _parse(a){const t=a.split(/[-./]/,3),[e,s=1,y=1]=t.map(a=>{const t=parseInt(a,10);if(Number.isNaN(t))throw new Error("Invalid date");return t});if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Nepal year out of range");if(s<1||s>12)throw new Error("Invalid nepali month must be between 1 - 12");const r=NEPALI_DATE_MAP[e-NEPALI_DATE_MAP[0].year].days[s-1];if(y<1||y>r)throw new Error("Invalid nepali date must be between 1 - ".concat(r," in ").concat(e," ").concat(s));return[e,s-1,y]}var NepaliDate=class a{constructor(){if(0===arguments.length)this.setEnglishDate(new Date);else if(1===arguments.length){const t=arguments.length<=0?void 0:arguments[0];if("object"==typeof t)if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof a))throw new Error("Invalid date argument");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if("string"==typeof t)this.set(..._parse(t));else{if("number"!=typeof t)throw new Error("Invalid date argument");this.setEnglishDate(new Date(t))}}else{if(3!==arguments.length)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(a){this.timestamp=a;let t=Math.floor((this.timestamp.getTime()-EPOCH)/864e5),e=Math.floor(t/366);for(;t>=NEPALI_DATE_MAP[e].daysTillNow;)e+=1;t-=NEPALI_DATE_MAP[e-1]?NEPALI_DATE_MAP[e-1].daysTillNow:0;const s=NEPALI_DATE_MAP[e];for(this.year=s.year,this.month=0;t>=s.days[this.month];)this.month+=1,t-=s.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(a){this.set(..._parse(a))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(a){this.set(a,this.month,this.day)}setMonth(a){this.set(this.year,a,this.day)}setDate(a){this.set(this.year,this.month,a)}set(a,t,e){const s=a+Math.floor(t/12)-NEPALI_DATE_MAP[0].year,y=NEPALI_DATE_MAP[s];let r=y.daysTillNow-y.totalDays;const o=t%12,l=o<0?12+o:o;for(let a=0;a<l;a+=1)r+=y.days[a];r+=e-1,this.setEnglishDate(new Date(EPOCH+864e5*r))}format(a){return format(this,a)}toString(){return"".concat(this.year,"/").concat(this.month+1,"/").concat(this.day)}addDays(t){const e=new Date(this.timestamp.getTime()+864e5*t);return new a(e)}addMonths(t){let e=this.year,s=this.month+t;e+=Math.floor(s/12),s%=12,s<0&&(s+=12,e-=1);const y=e-NEPALI_DATE_MAP[0].year;if(y<0||y>=NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const r=NEPALI_DATE_MAP[y].days[s],o=Math.min(this.day,r);return new a(e,s,o)}addYears(t){const e=this.year+t;if(e<NEPALI_DATE_MAP[0].year||e>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)throw new Error("Resulting date is out of supported range");const s=e-NEPALI_DATE_MAP[0].year;if(11===this.month&&29===this.day){const t=NEPALI_DATE_MAP[s].days[11];if(t<29)return new a(e,11,t)}return new a(e,this.month,this.day)}static minimum(){return new Date(EPOCH)}static maximum(){return new Date(EPOCH+864e5*NEPALI_DATE_MAP[NEPALI_DATE_MAP.length-1].daysTillNow)}daysInMonth(){const a=this.year-NEPALI_DATE_MAP[0].year;return NEPALI_DATE_MAP[a].days[this.month]}isLeapYear(){const a=this.year-NEPALI_DATE_MAP[0].year;return 366===NEPALI_DATE_MAP[a].totalDays}getWeeksInMonth(){const t=new a(this.year,this.month,1).getDay(),e=this.daysInMonth();return Math.ceil((t+e)/7)}diff(a,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-a.timestamp.getTime())/864e5);case"month":return 12*(this.year-a.year)+(this.month-a.month);case"year":return this.year-a.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new a(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new a(t)}startOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(a<0||a>6||!Number.isInteger(a))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-a+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.startOfWeek(a).addDays(6).endOfDay()}startOfMonth(){return new a(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new a(this.year,this.month,t).endOfDay()}startOfYear(){return new a(this.year,0,1)}endOfYear(){const t=this.year-NEPALI_DATE_MAP[0].year,e=NEPALI_DATE_MAP[t].days[11];return new a(this.year,11,e).endOfDay()}static getMonthName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=e?t?MONTH_SHORT_NP[a]:MONTH_NP[a]:t?MONTH_SHORT_EN[a]:MONTH_EN[a],s}static getDayName(a){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a<0||a>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=e?t?WEEK_SHORT_NP[a]:WEEK_NP[a]:t?WEEK_SHORT_EN[a]:WEEK_EN[a],s}static isValid(a,t,e){try{if(a<NEPALI_DATE_MAP[0].year||a>=NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length)return!1;if(t<0||t>11)return!1;const s=a-NEPALI_DATE_MAP[0].year,y=NEPALI_DATE_MAP[s].days[t];return!(e<1||e>y)}catch(a){return!1}}isValid(){return a.isValid(this.year,this.month,this.day)}static getCalendarDays(t,e){if(!a.isValid(t,e,1))throw new Error("Invalid year or month");const s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},r={year:0,month:0,days:[]},o=t-NEPALI_DATE_MAP[0].year,l=new a(t,e,1).getDay(),i=NEPALI_DATE_MAP[o].days[e];y.year=t,y.month=e;let n=e-1,d=t,D=e+1,N=t;if(n<0&&(n=11,d--),d>=NEPALI_DATE_MAP[0].year&&(s.year=d,s.month=n),d>=NEPALI_DATE_MAP[0].year&&l>0){const a=d-NEPALI_DATE_MAP[0].year,t=NEPALI_DATE_MAP[a].days[n];for(let a=0;a<l;a++)s.days.push(t-l+a+1)}for(let a=1;a<=i;a++)y.days.push(a);D>11&&(D=0,N++),N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&(r.year=N,r.month=D);const h=42-l-y.days.length;if(N<NEPALI_DATE_MAP[0].year+NEPALI_DATE_MAP.length&&h>0)for(let a=1;a<=h;a++)r.days.push(a);return{prevRemainingDays:l,prevMonth:s,currentMonth:y,nextMonth:r,remainingDays:h}}clone(){return new a(this)}isAfter(a){return this.timestamp.getTime()>a.timestamp.getTime()}isBefore(a){return this.timestamp.getTime()<a.timestamp.getTime()}isEqual(a){return this.year===a.year&&this.month===a.month&&this.day===a.day}isSame(a,t){switch(t){case"year":return this.year===a.year;case"month":return this.year===a.year&&this.month===a.month;case"day":return this.isEqual(a);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:(new a).getYear(),y=3*(t-1);return{start:new a(s,y,1),end:new a(s,y+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const e=null!=t?t:(new a).getYear();return{Q1:a.getQuarter(1,e),Q2:a.getQuarter(2,e),Q3:a.getQuarter(3,e),Q4:a.getQuarter(4,e)}}static getCurrentFiscalYear(){const t=new a,e=t.getYear();return t.getMonth()<3?e-1:e}static getFiscalYearQuarter(t,e){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const s=null!=e?e:a.getCurrentFiscalYear();let y=s,r=3*(t-1)+3;4===t&&(y=s+1,r=0),r>11&&(y++,r-=12);let o=r+2,l=y;o>11&&(l++,o-=12);return{start:new a(y,r,1),end:new a(l,o,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const a=this.getMonth();return a>=3&&a<=5?1:a>=6&&a<=8?2:a>=9&&a<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),e=a.getCurrentFiscalYear();return a.getFiscalYearQuarter(t,e)}static getFiscalYearQuarters(t){const e=null!=t?t:a.getCurrentFiscalYear();return{Q1:a.getFiscalYearQuarter(1,e),Q2:a.getFiscalYearQuarter(2,e),Q3:a.getFiscalYearQuarter(3,e),Q4:a.getFiscalYearQuarter(4,e)}}},ADtoBS=a=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=new Date(a);if(Number.isNaN(t.getTime()))throw new Error("Invalid date input '".concat(a,"'"));try{return new NepaliDate(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function BStoAD(a){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(a))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");const t=a?new NepaliDate(a):new NepaliDate,e=a=>a<10?"0".concat(a):"".concat(a),s=t.getEnglishDate();return"".concat(s.getFullYear(),"-").concat(e(s.getMonth()+1),"-").concat(e(s.getDate()))}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert BS to AD")}}export{ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP};
|
package/dist/test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|