@jkumonpm/dayjs-roc 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,20 +1,22 @@
1
- # dayjs-roc
1
+ # @jkumonpm/dayjs-roc
2
2
 
3
3
  > Day.js plugin for Taiwan ROC (Republic of China) calendar year. Supports `RRR`/`RR` format output and ROC date parsing.
4
4
 
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- npm install dayjs-roc
8
+ npm install @jkumonpm/dayjs-roc
9
9
  ```
10
10
 
11
11
  Requires [dayjs](https://day.js.org/) as a peer dependency.
12
12
 
13
- ## Quick Start
13
+ ## Two Usage Modes
14
+
15
+ ### 1️⃣ Plugin Mode (Day.js Extension)
14
16
 
15
17
  ```typescript
16
18
  import dayjs from 'dayjs'
17
- import roc from 'dayjs-roc'
19
+ import roc from '@jkumonpm/dayjs-roc'
18
20
 
19
21
  dayjs.extend(roc)
20
22
 
@@ -27,6 +29,41 @@ dayjs('1912-01-01').format('RRR年MM月DD日') // → '001年01月01日'
27
29
  dayjs('2026-04-04').rocYear() // → 115
28
30
  ```
29
31
 
32
+ ### 2️⃣ Direct Function Mode (No Day.js Required)
33
+
34
+ ```typescript
35
+ import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR, isROC, parseROCDate } from '@jkumonpm/dayjs-roc'
36
+
37
+ // Convert ROC year to AD year
38
+ rocToAD(115) // → 2026
39
+ rocToAD(1) // → 1912
40
+ rocToAD(0) // → null
41
+
42
+ // Convert AD year to ROC year
43
+ adToROC(2026) // → 115
44
+ adToROC(1912) // → 1
45
+ adToROC(1911) // → null
46
+
47
+ // Validate ROC date string
48
+ isROCDate('115/04/04') // → true
49
+ isROCDate('115/13/01') // → false
50
+ isROC('115/04/04') // → true (alias)
51
+
52
+ // Parse ROC date string to native Date
53
+ parseROC('115/04/04') // → Date(2026, 3, 4)
54
+ parseROC('invalid') // → null
55
+
56
+ // Parse ROC date string to Dayjs
57
+ parseROCDate('115/04/04')?.format('YYYY-MM-DD') // → '2026-04-04'
58
+ parseROCDate('invalid') // → null
59
+
60
+ // Format ROC year
61
+ formatRRR(115) // → '115'
62
+ formatRRR(1) // → '001'
63
+ formatRR(15) // → '15'
64
+ formatRR(1) // → '01'
65
+ ```
66
+
30
67
  ## Format Tokens
31
68
 
32
69
  | Token | Output | Description |
@@ -53,7 +90,7 @@ today.format('RR/MM/DD HH:mm') // → '15/04/04 14:30'
53
90
  Check if a string is a valid ROC date format.
54
91
 
55
92
  ```typescript
56
- import { isROC } from 'dayjs-roc'
93
+ import { isROC } from '@jkumonpm/dayjs-roc'
57
94
 
58
95
  isROC('115/04/04') // → true
59
96
  isROC('1/1/1') // → true
@@ -68,7 +105,7 @@ isROC('abc') // → false
68
105
  Parse a ROC date string into a Dayjs instance.
69
106
 
70
107
  ```typescript
71
- import { parseROCDate } from 'dayjs-roc'
108
+ import { parseROCDate } from '@jkumonpm/dayjs-roc'
72
109
 
73
110
  const date = parseROCDate('115/04/04')
74
111
  date?.year() // → 2026
@@ -82,7 +119,7 @@ parseROCDate('invalid') // → null
82
119
  ### Core Functions (no Day.js required)
83
120
 
84
121
  ```typescript
85
- import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR } from 'dayjs-roc'
122
+ import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR } from '@jkumonpm/dayjs-roc'
86
123
 
87
124
  // Convert ROC year to AD year
88
125
  rocToAD(115) // → 2026
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type { PluginFunc, Dayjs } from 'dayjs';
2
+ import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR } from './roc-utils.js';
2
3
  declare module 'dayjs' {
3
4
  interface Dayjs {
4
5
  rocYear(): number | null;
5
6
  }
6
7
  }
8
+ export { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR };
7
9
  /**
8
10
  * Check if a string is a valid ROC date format.
9
11
  * @param str - Date string to check
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAU9C,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,KAAK;QACb,OAAO,IAAI,MAAM,GAAG,IAAI,CAAA;KACzB;CACF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAItD;AAED,QAAA,MAAM,GAAG,EAAE,UA+BV,CAAA;AAED,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAEvB,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,KAAK;QACb,OAAO,IAAI,MAAM,GAAG,IAAI,CAAA;KACzB;CACF;AAGD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAErE;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAItD;AAED,QAAA,MAAM,GAAG,EAAE,UA+BV,CAAA;AAED,eAAe,GAAG,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import dayjs from 'dayjs';
2
- import { adToROC, isROCDate, parseROC, formatRRR, formatRR, } from './roc-utils.js';
2
+ import { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR, } from './roc-utils.js';
3
+ // Re-export utility functions for direct use (no Day.js required)
4
+ export { rocToAD, adToROC, isROCDate, parseROC, formatRRR, formatRR };
3
5
  /**
4
6
  * Check if a string is a valid ROC date format.
5
7
  * @param str - Date string to check
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAQvB;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,GAAG,GAAe,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;IAC7D,uDAAuD;IACvD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAC7C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,SAAkB;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAE/B,0BAA0B;QAC1B,IAAI,MAAM,GAAG,SAAS,CAAA;QACtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC5B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,kDAAkD;IAClD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAQvB,kEAAkE;AAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAErE;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,GAAG,GAAe,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;IAC7D,uDAAuD;IACvD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAA;IAC7C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,SAAkB;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAE/B,0BAA0B;QAC1B,IAAI,MAAM,GAAG,SAAS,CAAA;QACtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC5B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,kDAAkD;IAClD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,GAAG,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jkumonpm/dayjs-roc",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Day.js plugin for Taiwan ROC calendar year. Supports RRR/RR format and ROC date parsing.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",