cjk-number 0.2.0 → 0.2.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/dist/index.d.ts.map +1 -1
- package/dist/index.js +329 -102
- package/package.json +21 -5
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAk5BnC,eAAO,MAAM,OAAO;oBACF,MAAM,YAAY,mBAAmB,GAAG,MAAM,GAAG,MAAM;CAGxE,CAAC;AAEF,eAAO,MAAM,cAAc;iBACZ,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;iBACjB,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,iBAAiB;iBACf,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;iBACjB,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,iBAAiB;iBACf,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,eAAe;iBACb,WAAW,YAAW,kBAAkB,GAAQ,MAAM;CAGpE,CAAC;AAEF,eAAO,MAAM,gBAAgB;iBACd,WAAW,YAAW,kBAAkB,GAAQ,MAAM;CAGpE,CAAC;AAEF,eAAO,MAAM,kBAAkB;iBAChB,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,iBAAiB;iBACf,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;iBACjB,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,cAAc;iBACZ,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,gBAAgB;iBACd,WAAW,GAAG,MAAM;CAMlC,CAAC;AAEF,eAAO,MAAM,QAAQ;iBACN,WAAW,YAAW,kBAAkB,GAAQ,MAAM;CAGpE,CAAC;AAEF,eAAO,MAAM,aAAa;iBACX,WAAW,YAAW,kBAAkB,GAAQ,MAAM;CAGpE,CAAC;AAEF,eAAO,MAAM,QAAQ;iBACN,WAAW,YAAW,kBAAkB,GAAQ,MAAM;CAGpE,CAAC;AAEF,eAAO,MAAM,aAAa;iBACX,WAAW,YAAW,kBAAkB,GAAQ,MAAM;CAGpE,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;;CAYnB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,51 +1,277 @@
|
|
|
1
|
-
const STEMS = [
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
const STEMS = [
|
|
2
|
+
"甲",
|
|
3
|
+
"乙",
|
|
4
|
+
"丙",
|
|
5
|
+
"丁",
|
|
6
|
+
"戊",
|
|
7
|
+
"己",
|
|
8
|
+
"庚",
|
|
9
|
+
"辛",
|
|
10
|
+
"壬",
|
|
11
|
+
"癸",
|
|
12
|
+
];
|
|
13
|
+
const BRANCHES = [
|
|
14
|
+
"子",
|
|
15
|
+
"丑",
|
|
16
|
+
"寅",
|
|
17
|
+
"卯",
|
|
18
|
+
"辰",
|
|
19
|
+
"巳",
|
|
20
|
+
"午",
|
|
21
|
+
"未",
|
|
22
|
+
"申",
|
|
23
|
+
"酉",
|
|
24
|
+
"戌",
|
|
25
|
+
"亥",
|
|
26
|
+
];
|
|
27
|
+
const KOREAN_HANGUL_DIGITS = [
|
|
28
|
+
"일",
|
|
29
|
+
"이",
|
|
30
|
+
"삼",
|
|
31
|
+
"사",
|
|
32
|
+
"오",
|
|
33
|
+
"육",
|
|
34
|
+
"칠",
|
|
35
|
+
"팔",
|
|
36
|
+
"구",
|
|
37
|
+
];
|
|
38
|
+
const KOREAN_HANJA_FORMAL_DIGITS = [
|
|
39
|
+
"壹",
|
|
40
|
+
"貳",
|
|
41
|
+
"參",
|
|
42
|
+
"四",
|
|
43
|
+
"五",
|
|
44
|
+
"六",
|
|
45
|
+
"七",
|
|
46
|
+
"八",
|
|
47
|
+
"九",
|
|
48
|
+
];
|
|
49
|
+
const KOREAN_HANJA_INFORMAL_DIGITS = [
|
|
50
|
+
"一",
|
|
51
|
+
"二",
|
|
52
|
+
"三",
|
|
53
|
+
"四",
|
|
54
|
+
"五",
|
|
55
|
+
"六",
|
|
56
|
+
"七",
|
|
57
|
+
"八",
|
|
58
|
+
"九",
|
|
59
|
+
];
|
|
60
|
+
const JAPANESE_FORMAL_DIGITS = [
|
|
61
|
+
"壱",
|
|
62
|
+
"弐",
|
|
63
|
+
"参",
|
|
64
|
+
"四",
|
|
65
|
+
"五",
|
|
66
|
+
"六",
|
|
67
|
+
"七",
|
|
68
|
+
"八",
|
|
69
|
+
"九",
|
|
70
|
+
];
|
|
71
|
+
const JAPANESE_INFORMAL_DIGITS = [
|
|
72
|
+
"一",
|
|
73
|
+
"二",
|
|
74
|
+
"三",
|
|
75
|
+
"四",
|
|
76
|
+
"五",
|
|
77
|
+
"六",
|
|
78
|
+
"七",
|
|
79
|
+
"八",
|
|
80
|
+
"九",
|
|
81
|
+
];
|
|
8
82
|
const HIRAGANA = [
|
|
9
|
-
"あ",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
83
|
+
"あ",
|
|
84
|
+
"い",
|
|
85
|
+
"う",
|
|
86
|
+
"え",
|
|
87
|
+
"お",
|
|
88
|
+
"か",
|
|
89
|
+
"き",
|
|
90
|
+
"く",
|
|
91
|
+
"け",
|
|
92
|
+
"こ",
|
|
93
|
+
"さ",
|
|
94
|
+
"し",
|
|
95
|
+
"す",
|
|
96
|
+
"せ",
|
|
97
|
+
"そ",
|
|
98
|
+
"た",
|
|
99
|
+
"ち",
|
|
100
|
+
"つ",
|
|
101
|
+
"て",
|
|
102
|
+
"と",
|
|
103
|
+
"な",
|
|
104
|
+
"に",
|
|
105
|
+
"ぬ",
|
|
106
|
+
"ね",
|
|
107
|
+
"の",
|
|
108
|
+
"は",
|
|
109
|
+
"ひ",
|
|
110
|
+
"ふ",
|
|
111
|
+
"へ",
|
|
112
|
+
"ほ",
|
|
113
|
+
"ま",
|
|
114
|
+
"み",
|
|
115
|
+
"む",
|
|
116
|
+
"め",
|
|
117
|
+
"も",
|
|
118
|
+
"や",
|
|
119
|
+
"ゆ",
|
|
120
|
+
"よ",
|
|
121
|
+
"ら",
|
|
122
|
+
"り",
|
|
123
|
+
"る",
|
|
124
|
+
"れ",
|
|
125
|
+
"ろ",
|
|
126
|
+
"わ",
|
|
127
|
+
"を",
|
|
128
|
+
"ん",
|
|
19
129
|
];
|
|
20
130
|
const HIRAGANA_IROHA = [
|
|
21
|
-
"い",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
131
|
+
"い",
|
|
132
|
+
"ろ",
|
|
133
|
+
"は",
|
|
134
|
+
"に",
|
|
135
|
+
"ほ",
|
|
136
|
+
"へ",
|
|
137
|
+
"と",
|
|
138
|
+
"ち",
|
|
139
|
+
"り",
|
|
140
|
+
"ぬ",
|
|
141
|
+
"る",
|
|
142
|
+
"を",
|
|
143
|
+
"わ",
|
|
144
|
+
"か",
|
|
145
|
+
"よ",
|
|
146
|
+
"た",
|
|
147
|
+
"れ",
|
|
148
|
+
"そ",
|
|
149
|
+
"つ",
|
|
150
|
+
"ね",
|
|
151
|
+
"な",
|
|
152
|
+
"ら",
|
|
153
|
+
"む",
|
|
154
|
+
"う",
|
|
155
|
+
"ゐ",
|
|
156
|
+
"の",
|
|
157
|
+
"お",
|
|
158
|
+
"く",
|
|
159
|
+
"や",
|
|
160
|
+
"ま",
|
|
161
|
+
"け",
|
|
162
|
+
"ふ",
|
|
163
|
+
"こ",
|
|
164
|
+
"え",
|
|
165
|
+
"て",
|
|
166
|
+
"あ",
|
|
167
|
+
"さ",
|
|
168
|
+
"き",
|
|
169
|
+
"ゆ",
|
|
170
|
+
"め",
|
|
171
|
+
"み",
|
|
172
|
+
"し",
|
|
173
|
+
"ゑ",
|
|
174
|
+
"ひ",
|
|
175
|
+
"も",
|
|
176
|
+
"せ",
|
|
177
|
+
"す",
|
|
28
178
|
];
|
|
29
179
|
const KATAKANA = [
|
|
30
|
-
"ア",
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
180
|
+
"ア",
|
|
181
|
+
"イ",
|
|
182
|
+
"ウ",
|
|
183
|
+
"エ",
|
|
184
|
+
"オ",
|
|
185
|
+
"カ",
|
|
186
|
+
"キ",
|
|
187
|
+
"ク",
|
|
188
|
+
"ケ",
|
|
189
|
+
"コ",
|
|
190
|
+
"サ",
|
|
191
|
+
"シ",
|
|
192
|
+
"ス",
|
|
193
|
+
"セ",
|
|
194
|
+
"ソ",
|
|
195
|
+
"タ",
|
|
196
|
+
"チ",
|
|
197
|
+
"ツ",
|
|
198
|
+
"テ",
|
|
199
|
+
"ト",
|
|
200
|
+
"ナ",
|
|
201
|
+
"ニ",
|
|
202
|
+
"ヌ",
|
|
203
|
+
"ネ",
|
|
204
|
+
"ノ",
|
|
205
|
+
"ハ",
|
|
206
|
+
"ヒ",
|
|
207
|
+
"フ",
|
|
208
|
+
"ヘ",
|
|
209
|
+
"ホ",
|
|
210
|
+
"マ",
|
|
211
|
+
"ミ",
|
|
212
|
+
"ム",
|
|
213
|
+
"メ",
|
|
214
|
+
"モ",
|
|
215
|
+
"ヤ",
|
|
216
|
+
"ユ",
|
|
217
|
+
"ヨ",
|
|
218
|
+
"ラ",
|
|
219
|
+
"リ",
|
|
220
|
+
"ル",
|
|
221
|
+
"レ",
|
|
222
|
+
"ロ",
|
|
223
|
+
"ワ",
|
|
224
|
+
"ヲ",
|
|
225
|
+
"ン",
|
|
40
226
|
];
|
|
41
227
|
const KATAKANA_IROHA = [
|
|
42
|
-
"イ",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
228
|
+
"イ",
|
|
229
|
+
"ロ",
|
|
230
|
+
"ハ",
|
|
231
|
+
"ニ",
|
|
232
|
+
"ホ",
|
|
233
|
+
"ヘ",
|
|
234
|
+
"ト",
|
|
235
|
+
"チ",
|
|
236
|
+
"リ",
|
|
237
|
+
"ヌ",
|
|
238
|
+
"ル",
|
|
239
|
+
"ヲ",
|
|
240
|
+
"ワ",
|
|
241
|
+
"カ",
|
|
242
|
+
"ヨ",
|
|
243
|
+
"タ",
|
|
244
|
+
"レ",
|
|
245
|
+
"ソ",
|
|
246
|
+
"ツ",
|
|
247
|
+
"ネ",
|
|
248
|
+
"ナ",
|
|
249
|
+
"ラ",
|
|
250
|
+
"ム",
|
|
251
|
+
"ウ",
|
|
252
|
+
"ヰ",
|
|
253
|
+
"ノ",
|
|
254
|
+
"オ",
|
|
255
|
+
"ク",
|
|
256
|
+
"ヤ",
|
|
257
|
+
"マ",
|
|
258
|
+
"ケ",
|
|
259
|
+
"フ",
|
|
260
|
+
"コ",
|
|
261
|
+
"エ",
|
|
262
|
+
"テ",
|
|
263
|
+
"ア",
|
|
264
|
+
"サ",
|
|
265
|
+
"キ",
|
|
266
|
+
"ユ",
|
|
267
|
+
"メ",
|
|
268
|
+
"ミ",
|
|
269
|
+
"シ",
|
|
270
|
+
"ヱ",
|
|
271
|
+
"ヒ",
|
|
272
|
+
"モ",
|
|
273
|
+
"セ",
|
|
274
|
+
"ス",
|
|
49
275
|
];
|
|
50
276
|
const KOREAN_BIG_UNITS = [
|
|
51
277
|
"만",
|
|
@@ -64,7 +290,7 @@ const KOREAN_BIG_UNITS = [
|
|
|
64
290
|
"아승기",
|
|
65
291
|
"나유타",
|
|
66
292
|
"불가사의",
|
|
67
|
-
"무량대수"
|
|
293
|
+
"무량대수",
|
|
68
294
|
];
|
|
69
295
|
const JAPANESE_BIG_UNITS = [
|
|
70
296
|
"万",
|
|
@@ -83,7 +309,7 @@ const JAPANESE_BIG_UNITS = [
|
|
|
83
309
|
"阿僧祇",
|
|
84
310
|
"那由他",
|
|
85
311
|
"不可思議",
|
|
86
|
-
"無量大数"
|
|
312
|
+
"無量大数",
|
|
87
313
|
];
|
|
88
314
|
const SEQUENCE_SYMBOL_TO_NUMBER = (() => {
|
|
89
315
|
const map = {};
|
|
@@ -101,34 +327,34 @@ const SEQUENCE_SYMBOL_TO_NUMBER = (() => {
|
|
|
101
327
|
return map;
|
|
102
328
|
})();
|
|
103
329
|
const CANONICAL_DIGITS = {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
330
|
+
零: 0,
|
|
331
|
+
영: 0,
|
|
332
|
+
령: 0,
|
|
333
|
+
〇: 0,
|
|
108
334
|
"○": 0,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
335
|
+
一: 1,
|
|
336
|
+
壹: 1,
|
|
337
|
+
二: 2,
|
|
338
|
+
貳: 2,
|
|
339
|
+
贰: 2,
|
|
340
|
+
兩: 2,
|
|
341
|
+
两: 2,
|
|
342
|
+
三: 3,
|
|
343
|
+
參: 3,
|
|
344
|
+
叁: 3,
|
|
345
|
+
四: 4,
|
|
346
|
+
肆: 4,
|
|
347
|
+
五: 5,
|
|
348
|
+
伍: 5,
|
|
349
|
+
六: 6,
|
|
350
|
+
陸: 6,
|
|
351
|
+
陆: 6,
|
|
352
|
+
七: 7,
|
|
353
|
+
柒: 7,
|
|
354
|
+
八: 8,
|
|
355
|
+
捌: 8,
|
|
356
|
+
九: 9,
|
|
357
|
+
玖: 9,
|
|
132
358
|
};
|
|
133
359
|
const SMALL_UNITS = {
|
|
134
360
|
十: 10n,
|
|
@@ -136,7 +362,7 @@ const SMALL_UNITS = {
|
|
|
136
362
|
百: 100n,
|
|
137
363
|
佰: 100n,
|
|
138
364
|
千: 1000n,
|
|
139
|
-
仟: 1000n
|
|
365
|
+
仟: 1000n,
|
|
140
366
|
};
|
|
141
367
|
const TRAD_BIG_UNITS = [
|
|
142
368
|
"萬",
|
|
@@ -155,7 +381,7 @@ const TRAD_BIG_UNITS = [
|
|
|
155
381
|
"阿僧祇",
|
|
156
382
|
"那由他",
|
|
157
383
|
"不可思議",
|
|
158
|
-
"無量大數"
|
|
384
|
+
"無量大數",
|
|
159
385
|
];
|
|
160
386
|
const SIMP_BIG_UNITS = [
|
|
161
387
|
"万",
|
|
@@ -174,7 +400,7 @@ const SIMP_BIG_UNITS = [
|
|
|
174
400
|
"阿僧祇",
|
|
175
401
|
"那由他",
|
|
176
402
|
"不可思议",
|
|
177
|
-
"无量大数"
|
|
403
|
+
"无量大数",
|
|
178
404
|
];
|
|
179
405
|
function createBigUnitOrder(units) {
|
|
180
406
|
return units
|
|
@@ -186,63 +412,63 @@ const TRAD_INFORMAL_SET = {
|
|
|
186
412
|
point: "點",
|
|
187
413
|
digits: ["一", "二", "三", "四", "五", "六", "七", "八", "九"],
|
|
188
414
|
smallUnits: ["十", "百", "千"],
|
|
189
|
-
bigUnits: [...TRAD_BIG_UNITS]
|
|
415
|
+
bigUnits: [...TRAD_BIG_UNITS],
|
|
190
416
|
};
|
|
191
417
|
const TRAD_FORMAL_SET = {
|
|
192
418
|
zero: "零",
|
|
193
419
|
point: "點",
|
|
194
420
|
digits: ["壹", "貳", "參", "肆", "伍", "陸", "柒", "捌", "玖"],
|
|
195
421
|
smallUnits: ["拾", "佰", "仟"],
|
|
196
|
-
bigUnits: [...TRAD_BIG_UNITS]
|
|
422
|
+
bigUnits: [...TRAD_BIG_UNITS],
|
|
197
423
|
};
|
|
198
424
|
const SIMP_INFORMAL_SET = {
|
|
199
425
|
zero: "零",
|
|
200
426
|
point: "点",
|
|
201
427
|
digits: ["一", "二", "三", "四", "五", "六", "七", "八", "九"],
|
|
202
428
|
smallUnits: ["十", "百", "千"],
|
|
203
|
-
bigUnits: [...SIMP_BIG_UNITS]
|
|
429
|
+
bigUnits: [...SIMP_BIG_UNITS],
|
|
204
430
|
};
|
|
205
431
|
const SIMP_FORMAL_SET = {
|
|
206
432
|
zero: "零",
|
|
207
433
|
point: "点",
|
|
208
434
|
digits: ["壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"],
|
|
209
435
|
smallUnits: ["拾", "佰", "仟"],
|
|
210
|
-
bigUnits: [...SIMP_BIG_UNITS]
|
|
436
|
+
bigUnits: [...SIMP_BIG_UNITS],
|
|
211
437
|
};
|
|
212
438
|
const KOREAN_HANGUL_SET = {
|
|
213
439
|
zero: "영",
|
|
214
440
|
point: "점",
|
|
215
441
|
digits: [...KOREAN_HANGUL_DIGITS],
|
|
216
442
|
smallUnits: ["십", "백", "천"],
|
|
217
|
-
bigUnits: [...KOREAN_BIG_UNITS]
|
|
443
|
+
bigUnits: [...KOREAN_BIG_UNITS],
|
|
218
444
|
};
|
|
219
445
|
const KOREAN_HANJA_FORMAL_SET = {
|
|
220
446
|
zero: "零",
|
|
221
447
|
point: "점",
|
|
222
448
|
digits: [...KOREAN_HANJA_FORMAL_DIGITS],
|
|
223
449
|
smallUnits: ["拾", "佰", "仟"],
|
|
224
|
-
bigUnits: [...TRAD_BIG_UNITS]
|
|
450
|
+
bigUnits: [...TRAD_BIG_UNITS],
|
|
225
451
|
};
|
|
226
452
|
const KOREAN_HANJA_INFORMAL_SET = {
|
|
227
453
|
zero: "零",
|
|
228
454
|
point: "점",
|
|
229
455
|
digits: [...KOREAN_HANJA_INFORMAL_DIGITS],
|
|
230
456
|
smallUnits: ["十", "百", "千"],
|
|
231
|
-
bigUnits: [...TRAD_BIG_UNITS]
|
|
457
|
+
bigUnits: [...TRAD_BIG_UNITS],
|
|
232
458
|
};
|
|
233
459
|
const JAPANESE_FORMAL_SET = {
|
|
234
460
|
zero: "零",
|
|
235
461
|
point: "点",
|
|
236
462
|
digits: [...JAPANESE_FORMAL_DIGITS],
|
|
237
463
|
smallUnits: ["拾", "百", "千"],
|
|
238
|
-
bigUnits: [...JAPANESE_BIG_UNITS]
|
|
464
|
+
bigUnits: [...JAPANESE_BIG_UNITS],
|
|
239
465
|
};
|
|
240
466
|
const JAPANESE_INFORMAL_SET = {
|
|
241
467
|
zero: "零",
|
|
242
468
|
point: "点",
|
|
243
469
|
digits: [...JAPANESE_INFORMAL_DIGITS],
|
|
244
470
|
smallUnits: ["十", "百", "千"],
|
|
245
|
-
bigUnits: [...JAPANESE_BIG_UNITS]
|
|
471
|
+
bigUnits: [...JAPANESE_BIG_UNITS],
|
|
246
472
|
};
|
|
247
473
|
const BIG_UNIT_ORDER = createBigUnitOrder(SIMP_BIG_UNITS);
|
|
248
474
|
function normalizeInput(raw) {
|
|
@@ -393,7 +619,8 @@ function toBestNumeric(value, preferBigInt) {
|
|
|
393
619
|
if (preferBigInt) {
|
|
394
620
|
return value;
|
|
395
621
|
}
|
|
396
|
-
if (value > BigInt(Number.MAX_SAFE_INTEGER) ||
|
|
622
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER) ||
|
|
623
|
+
value < BigInt(Number.MIN_SAFE_INTEGER)) {
|
|
397
624
|
return value;
|
|
398
625
|
}
|
|
399
626
|
return Number(value);
|
|
@@ -413,7 +640,7 @@ function fromCycle(value, chars, mode) {
|
|
|
413
640
|
}
|
|
414
641
|
return chars[Number(asBigInt - 1n)];
|
|
415
642
|
}
|
|
416
|
-
const normalized = ((asBigInt - 1n) % length + length) % length;
|
|
643
|
+
const normalized = (((asBigInt - 1n) % length) + length) % length;
|
|
417
644
|
return chars[Number(normalized)];
|
|
418
645
|
}
|
|
419
646
|
function parseCycle(input, chars, mode) {
|
|
@@ -556,7 +783,7 @@ function parseValue(input, options = {}) {
|
|
|
556
783
|
export const integer = {
|
|
557
784
|
parseInt(input, options) {
|
|
558
785
|
return parseValue(input, options);
|
|
559
|
-
}
|
|
786
|
+
},
|
|
560
787
|
};
|
|
561
788
|
export const cjkIdeographic = {
|
|
562
789
|
parse(value) {
|
|
@@ -564,7 +791,7 @@ export const cjkIdeographic = {
|
|
|
564
791
|
return formatDecimal(value, TRAD_INFORMAL_SET);
|
|
565
792
|
}
|
|
566
793
|
return formatChineseInteger(value, TRAD_INFORMAL_SET);
|
|
567
|
-
}
|
|
794
|
+
},
|
|
568
795
|
};
|
|
569
796
|
export const tradChineseInformal = {
|
|
570
797
|
parse(value) {
|
|
@@ -572,7 +799,7 @@ export const tradChineseInformal = {
|
|
|
572
799
|
return formatDecimal(value, TRAD_INFORMAL_SET);
|
|
573
800
|
}
|
|
574
801
|
return formatChineseInteger(value, TRAD_INFORMAL_SET);
|
|
575
|
-
}
|
|
802
|
+
},
|
|
576
803
|
};
|
|
577
804
|
export const tradChineseFormal = {
|
|
578
805
|
parse(value) {
|
|
@@ -580,7 +807,7 @@ export const tradChineseFormal = {
|
|
|
580
807
|
return formatDecimal(value, TRAD_FORMAL_SET);
|
|
581
808
|
}
|
|
582
809
|
return formatChineseInteger(value, TRAD_FORMAL_SET);
|
|
583
|
-
}
|
|
810
|
+
},
|
|
584
811
|
};
|
|
585
812
|
export const simpChineseInformal = {
|
|
586
813
|
parse(value) {
|
|
@@ -588,7 +815,7 @@ export const simpChineseInformal = {
|
|
|
588
815
|
return formatDecimal(value, SIMP_INFORMAL_SET);
|
|
589
816
|
}
|
|
590
817
|
return formatChineseInteger(value, SIMP_INFORMAL_SET);
|
|
591
|
-
}
|
|
818
|
+
},
|
|
592
819
|
};
|
|
593
820
|
export const simpChineseFormal = {
|
|
594
821
|
parse(value) {
|
|
@@ -596,17 +823,17 @@ export const simpChineseFormal = {
|
|
|
596
823
|
return formatDecimal(value, SIMP_FORMAL_SET);
|
|
597
824
|
}
|
|
598
825
|
return formatChineseInteger(value, SIMP_FORMAL_SET);
|
|
599
|
-
}
|
|
826
|
+
},
|
|
600
827
|
};
|
|
601
828
|
export const cjkHeavenlyStem = {
|
|
602
829
|
parse(value, options = {}) {
|
|
603
830
|
return fromCycle(value, STEMS, options.mode ?? "fixed");
|
|
604
|
-
}
|
|
831
|
+
},
|
|
605
832
|
};
|
|
606
833
|
export const cjkEarthlyBranch = {
|
|
607
834
|
parse(value, options = {}) {
|
|
608
835
|
return fromCycle(value, BRANCHES, options.mode ?? "fixed");
|
|
609
|
-
}
|
|
836
|
+
},
|
|
610
837
|
};
|
|
611
838
|
export const koreanHangulFormal = {
|
|
612
839
|
parse(value) {
|
|
@@ -614,7 +841,7 @@ export const koreanHangulFormal = {
|
|
|
614
841
|
return formatDecimal(value, KOREAN_HANGUL_SET);
|
|
615
842
|
}
|
|
616
843
|
return formatChineseInteger(value, KOREAN_HANGUL_SET);
|
|
617
|
-
}
|
|
844
|
+
},
|
|
618
845
|
};
|
|
619
846
|
export const koreanHanjaFormal = {
|
|
620
847
|
parse(value) {
|
|
@@ -622,7 +849,7 @@ export const koreanHanjaFormal = {
|
|
|
622
849
|
return formatDecimal(value, KOREAN_HANJA_FORMAL_SET);
|
|
623
850
|
}
|
|
624
851
|
return formatChineseInteger(value, KOREAN_HANJA_FORMAL_SET);
|
|
625
|
-
}
|
|
852
|
+
},
|
|
626
853
|
};
|
|
627
854
|
export const koreanHanjaInformal = {
|
|
628
855
|
parse(value) {
|
|
@@ -630,7 +857,7 @@ export const koreanHanjaInformal = {
|
|
|
630
857
|
return formatDecimal(value, KOREAN_HANJA_INFORMAL_SET);
|
|
631
858
|
}
|
|
632
859
|
return formatChineseInteger(value, KOREAN_HANJA_INFORMAL_SET);
|
|
633
|
-
}
|
|
860
|
+
},
|
|
634
861
|
};
|
|
635
862
|
export const japaneseFormal = {
|
|
636
863
|
parse(value) {
|
|
@@ -638,7 +865,7 @@ export const japaneseFormal = {
|
|
|
638
865
|
return formatDecimal(value, JAPANESE_FORMAL_SET);
|
|
639
866
|
}
|
|
640
867
|
return formatChineseInteger(value, JAPANESE_FORMAL_SET);
|
|
641
|
-
}
|
|
868
|
+
},
|
|
642
869
|
};
|
|
643
870
|
export const japaneseInformal = {
|
|
644
871
|
parse(value) {
|
|
@@ -646,27 +873,27 @@ export const japaneseInformal = {
|
|
|
646
873
|
return formatDecimal(value, JAPANESE_INFORMAL_SET);
|
|
647
874
|
}
|
|
648
875
|
return formatChineseInteger(value, JAPANESE_INFORMAL_SET);
|
|
649
|
-
}
|
|
876
|
+
},
|
|
650
877
|
};
|
|
651
878
|
export const hiragana = {
|
|
652
879
|
parse(value, options = {}) {
|
|
653
880
|
return fromCycle(value, HIRAGANA, options.mode ?? "fixed");
|
|
654
|
-
}
|
|
881
|
+
},
|
|
655
882
|
};
|
|
656
883
|
export const hiraganaIroha = {
|
|
657
884
|
parse(value, options = {}) {
|
|
658
885
|
return fromCycle(value, HIRAGANA_IROHA, options.mode ?? "fixed");
|
|
659
|
-
}
|
|
886
|
+
},
|
|
660
887
|
};
|
|
661
888
|
export const katakana = {
|
|
662
889
|
parse(value, options = {}) {
|
|
663
890
|
return fromCycle(value, KATAKANA, options.mode ?? "fixed");
|
|
664
|
-
}
|
|
891
|
+
},
|
|
665
892
|
};
|
|
666
893
|
export const katakanaIroha = {
|
|
667
894
|
parse(value, options = {}) {
|
|
668
895
|
return fromCycle(value, KATAKANA_IROHA, options.mode ?? "fixed");
|
|
669
|
-
}
|
|
896
|
+
},
|
|
670
897
|
};
|
|
671
898
|
export const systems = {
|
|
672
899
|
heavenlyStem: STEMS,
|
|
@@ -679,5 +906,5 @@ export const systems = {
|
|
|
679
906
|
hiragana: HIRAGANA,
|
|
680
907
|
hiraganaIroha: HIRAGANA_IROHA,
|
|
681
908
|
katakana: KATAKANA,
|
|
682
|
-
katakanaIroha: KATAKANA_IROHA
|
|
909
|
+
katakanaIroha: KATAKANA_IROHA,
|
|
683
910
|
};
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cjk-number",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Convert between numbers and CJK number systems",
|
|
5
5
|
"author": "gary2",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/tse-wei-chen/cjk-number.git"
|
|
9
9
|
},
|
|
10
10
|
"bugs": {
|
|
11
|
-
"url": "https://github.com/
|
|
11
|
+
"url": "https://github.com/tse-wei-chen/cjk-number/issues"
|
|
12
12
|
},
|
|
13
|
-
"homepage": "https://github.com/
|
|
13
|
+
"homepage": "https://github.com/tse-wei-chen/cjk-number#readme",
|
|
14
14
|
"type": "module",
|
|
15
15
|
"main": "./dist/index.js",
|
|
16
16
|
"types": "./dist/index.d.ts",
|
|
@@ -39,7 +39,23 @@
|
|
|
39
39
|
"keywords": [
|
|
40
40
|
"cjk",
|
|
41
41
|
"chinese",
|
|
42
|
-
"number"
|
|
42
|
+
"number",
|
|
43
|
+
"numeral",
|
|
44
|
+
"number-conversion",
|
|
45
|
+
"number-parser",
|
|
46
|
+
"number-formatter",
|
|
47
|
+
"chinese-numerals",
|
|
48
|
+
"traditional-chinese",
|
|
49
|
+
"simplified-chinese",
|
|
50
|
+
"japanese",
|
|
51
|
+
"korean",
|
|
52
|
+
"kanji",
|
|
53
|
+
"hangul",
|
|
54
|
+
"hanja",
|
|
55
|
+
"hiragana",
|
|
56
|
+
"katakana",
|
|
57
|
+
"heavenly-stems",
|
|
58
|
+
"earthly-branches"
|
|
43
59
|
],
|
|
44
60
|
"license": "MIT",
|
|
45
61
|
"devDependencies": {
|