@laeng/ja 0.1.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=japanese-characters.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"japanese-characters.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/japanese-characters.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { JapaneseHiraganaInfo } from '../types';
2
+ export declare const hiraganaCharacters: JapaneseHiraganaInfo[];
3
+ //# sourceMappingURL=hiragana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hiragana.d.ts","sourceRoot":"","sources":["../../src/characters/hiragana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,eAAO,MAAM,kBAAkB,EAAE,oBAAoB,EA4XpD,CAAC"}
@@ -0,0 +1,384 @@
1
+ const a = [
2
+ // a-row (あ行)
3
+ {
4
+ char: "あ",
5
+ id: "hiragana-a",
6
+ charType: "hiragana",
7
+ nativeName: "あ",
8
+ romaji: "a",
9
+ row: "a"
10
+ },
11
+ {
12
+ char: "い",
13
+ id: "hiragana-i",
14
+ charType: "hiragana",
15
+ nativeName: "い",
16
+ romaji: "i",
17
+ row: "a"
18
+ },
19
+ {
20
+ char: "う",
21
+ id: "hiragana-u",
22
+ charType: "hiragana",
23
+ nativeName: "う",
24
+ romaji: "u",
25
+ row: "a"
26
+ },
27
+ {
28
+ char: "え",
29
+ id: "hiragana-e",
30
+ charType: "hiragana",
31
+ nativeName: "え",
32
+ romaji: "e",
33
+ row: "a"
34
+ },
35
+ {
36
+ char: "お",
37
+ id: "hiragana-o",
38
+ charType: "hiragana",
39
+ nativeName: "お",
40
+ romaji: "o",
41
+ row: "a"
42
+ },
43
+ // ka-row (か行)
44
+ {
45
+ char: "か",
46
+ id: "hiragana-ka",
47
+ charType: "hiragana",
48
+ nativeName: "か",
49
+ romaji: "ka",
50
+ row: "ka"
51
+ },
52
+ {
53
+ char: "き",
54
+ id: "hiragana-ki",
55
+ charType: "hiragana",
56
+ nativeName: "き",
57
+ romaji: "ki",
58
+ row: "ka"
59
+ },
60
+ {
61
+ char: "く",
62
+ id: "hiragana-ku",
63
+ charType: "hiragana",
64
+ nativeName: "く",
65
+ romaji: "ku",
66
+ row: "ka"
67
+ },
68
+ {
69
+ char: "け",
70
+ id: "hiragana-ke",
71
+ charType: "hiragana",
72
+ nativeName: "け",
73
+ romaji: "ke",
74
+ row: "ka"
75
+ },
76
+ {
77
+ char: "こ",
78
+ id: "hiragana-ko",
79
+ charType: "hiragana",
80
+ nativeName: "こ",
81
+ romaji: "ko",
82
+ row: "ka"
83
+ },
84
+ // sa-row (さ行)
85
+ {
86
+ char: "さ",
87
+ id: "hiragana-sa",
88
+ charType: "hiragana",
89
+ nativeName: "さ",
90
+ romaji: "sa",
91
+ row: "sa"
92
+ },
93
+ {
94
+ char: "し",
95
+ id: "hiragana-shi",
96
+ charType: "hiragana",
97
+ nativeName: "し",
98
+ romaji: "shi",
99
+ row: "sa"
100
+ },
101
+ {
102
+ char: "す",
103
+ id: "hiragana-su",
104
+ charType: "hiragana",
105
+ nativeName: "す",
106
+ romaji: "su",
107
+ row: "sa"
108
+ },
109
+ {
110
+ char: "せ",
111
+ id: "hiragana-se",
112
+ charType: "hiragana",
113
+ nativeName: "せ",
114
+ romaji: "se",
115
+ row: "sa"
116
+ },
117
+ {
118
+ char: "そ",
119
+ id: "hiragana-so",
120
+ charType: "hiragana",
121
+ nativeName: "そ",
122
+ romaji: "so",
123
+ row: "sa"
124
+ },
125
+ // ta-row (た行)
126
+ {
127
+ char: "た",
128
+ id: "hiragana-ta",
129
+ charType: "hiragana",
130
+ nativeName: "た",
131
+ romaji: "ta",
132
+ row: "ta"
133
+ },
134
+ {
135
+ char: "ち",
136
+ id: "hiragana-chi",
137
+ charType: "hiragana",
138
+ nativeName: "ち",
139
+ romaji: "chi",
140
+ row: "ta"
141
+ },
142
+ {
143
+ char: "つ",
144
+ id: "hiragana-tsu",
145
+ charType: "hiragana",
146
+ nativeName: "つ",
147
+ romaji: "tsu",
148
+ row: "ta"
149
+ },
150
+ {
151
+ char: "て",
152
+ id: "hiragana-te",
153
+ charType: "hiragana",
154
+ nativeName: "て",
155
+ romaji: "te",
156
+ row: "ta"
157
+ },
158
+ {
159
+ char: "と",
160
+ id: "hiragana-to",
161
+ charType: "hiragana",
162
+ nativeName: "と",
163
+ romaji: "to",
164
+ row: "ta"
165
+ },
166
+ // na-row (な行)
167
+ {
168
+ char: "な",
169
+ id: "hiragana-na",
170
+ charType: "hiragana",
171
+ nativeName: "な",
172
+ romaji: "na",
173
+ row: "na"
174
+ },
175
+ {
176
+ char: "に",
177
+ id: "hiragana-ni",
178
+ charType: "hiragana",
179
+ nativeName: "に",
180
+ romaji: "ni",
181
+ row: "na"
182
+ },
183
+ {
184
+ char: "ぬ",
185
+ id: "hiragana-nu",
186
+ charType: "hiragana",
187
+ nativeName: "ぬ",
188
+ romaji: "nu",
189
+ row: "na"
190
+ },
191
+ {
192
+ char: "ね",
193
+ id: "hiragana-ne",
194
+ charType: "hiragana",
195
+ nativeName: "ね",
196
+ romaji: "ne",
197
+ row: "na"
198
+ },
199
+ {
200
+ char: "の",
201
+ id: "hiragana-no",
202
+ charType: "hiragana",
203
+ nativeName: "の",
204
+ romaji: "no",
205
+ row: "na"
206
+ },
207
+ // ha-row (は行)
208
+ {
209
+ char: "は",
210
+ id: "hiragana-ha",
211
+ charType: "hiragana",
212
+ nativeName: "は",
213
+ romaji: "ha",
214
+ row: "ha"
215
+ },
216
+ {
217
+ char: "ひ",
218
+ id: "hiragana-hi",
219
+ charType: "hiragana",
220
+ nativeName: "ひ",
221
+ romaji: "hi",
222
+ row: "ha"
223
+ },
224
+ {
225
+ char: "ふ",
226
+ id: "hiragana-fu",
227
+ charType: "hiragana",
228
+ nativeName: "ふ",
229
+ romaji: "fu",
230
+ row: "ha"
231
+ },
232
+ {
233
+ char: "へ",
234
+ id: "hiragana-he",
235
+ charType: "hiragana",
236
+ nativeName: "へ",
237
+ romaji: "he",
238
+ row: "ha"
239
+ },
240
+ {
241
+ char: "ほ",
242
+ id: "hiragana-ho",
243
+ charType: "hiragana",
244
+ nativeName: "ほ",
245
+ romaji: "ho",
246
+ row: "ha"
247
+ },
248
+ // ma-row (ま行)
249
+ {
250
+ char: "ま",
251
+ id: "hiragana-ma",
252
+ charType: "hiragana",
253
+ nativeName: "ま",
254
+ romaji: "ma",
255
+ row: "ma"
256
+ },
257
+ {
258
+ char: "み",
259
+ id: "hiragana-mi",
260
+ charType: "hiragana",
261
+ nativeName: "み",
262
+ romaji: "mi",
263
+ row: "ma"
264
+ },
265
+ {
266
+ char: "む",
267
+ id: "hiragana-mu",
268
+ charType: "hiragana",
269
+ nativeName: "む",
270
+ romaji: "mu",
271
+ row: "ma"
272
+ },
273
+ {
274
+ char: "め",
275
+ id: "hiragana-me",
276
+ charType: "hiragana",
277
+ nativeName: "め",
278
+ romaji: "me",
279
+ row: "ma"
280
+ },
281
+ {
282
+ char: "も",
283
+ id: "hiragana-mo",
284
+ charType: "hiragana",
285
+ nativeName: "も",
286
+ romaji: "mo",
287
+ row: "ma"
288
+ },
289
+ // ya-row (や行)
290
+ {
291
+ char: "や",
292
+ id: "hiragana-ya",
293
+ charType: "hiragana",
294
+ nativeName: "や",
295
+ romaji: "ya",
296
+ row: "ya"
297
+ },
298
+ {
299
+ char: "ゆ",
300
+ id: "hiragana-yu",
301
+ charType: "hiragana",
302
+ nativeName: "ゆ",
303
+ romaji: "yu",
304
+ row: "ya"
305
+ },
306
+ {
307
+ char: "よ",
308
+ id: "hiragana-yo",
309
+ charType: "hiragana",
310
+ nativeName: "よ",
311
+ romaji: "yo",
312
+ row: "ya"
313
+ },
314
+ // ra-row (ら行)
315
+ {
316
+ char: "ら",
317
+ id: "hiragana-ra",
318
+ charType: "hiragana",
319
+ nativeName: "ら",
320
+ romaji: "ra",
321
+ row: "ra"
322
+ },
323
+ {
324
+ char: "り",
325
+ id: "hiragana-ri",
326
+ charType: "hiragana",
327
+ nativeName: "り",
328
+ romaji: "ri",
329
+ row: "ra"
330
+ },
331
+ {
332
+ char: "る",
333
+ id: "hiragana-ru",
334
+ charType: "hiragana",
335
+ nativeName: "る",
336
+ romaji: "ru",
337
+ row: "ra"
338
+ },
339
+ {
340
+ char: "れ",
341
+ id: "hiragana-re",
342
+ charType: "hiragana",
343
+ nativeName: "れ",
344
+ romaji: "re",
345
+ row: "ra"
346
+ },
347
+ {
348
+ char: "ろ",
349
+ id: "hiragana-ro",
350
+ charType: "hiragana",
351
+ nativeName: "ろ",
352
+ romaji: "ro",
353
+ row: "ra"
354
+ },
355
+ // wa-row (わ行)
356
+ {
357
+ char: "わ",
358
+ id: "hiragana-wa",
359
+ charType: "hiragana",
360
+ nativeName: "わ",
361
+ romaji: "wa",
362
+ row: "wa"
363
+ },
364
+ {
365
+ char: "を",
366
+ id: "hiragana-wo",
367
+ charType: "hiragana",
368
+ nativeName: "を",
369
+ romaji: "wo",
370
+ row: "wa"
371
+ },
372
+ // n (ん)
373
+ {
374
+ char: "ん",
375
+ id: "hiragana-n",
376
+ charType: "hiragana",
377
+ nativeName: "ん",
378
+ romaji: "n",
379
+ row: "n"
380
+ }
381
+ ];
382
+ export {
383
+ a as hiraganaCharacters
384
+ };
@@ -0,0 +1,3 @@
1
+ export { hiraganaCharacters } from './hiragana';
2
+ export { katakanaCharacters } from './katakana';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/characters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { JapaneseKatakanaInfo } from '../types';
2
+ export declare const katakanaCharacters: JapaneseKatakanaInfo[];
3
+ //# sourceMappingURL=katakana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"katakana.d.ts","sourceRoot":"","sources":["../../src/characters/katakana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,eAAO,MAAM,kBAAkB,EAAE,oBAAoB,EA4XpD,CAAC"}
@@ -0,0 +1,384 @@
1
+ const a = [
2
+ // a-row (ア行)
3
+ {
4
+ char: "ア",
5
+ id: "katakana-a",
6
+ charType: "katakana",
7
+ nativeName: "ア",
8
+ romaji: "a",
9
+ row: "a"
10
+ },
11
+ {
12
+ char: "イ",
13
+ id: "katakana-i",
14
+ charType: "katakana",
15
+ nativeName: "イ",
16
+ romaji: "i",
17
+ row: "a"
18
+ },
19
+ {
20
+ char: "ウ",
21
+ id: "katakana-u",
22
+ charType: "katakana",
23
+ nativeName: "ウ",
24
+ romaji: "u",
25
+ row: "a"
26
+ },
27
+ {
28
+ char: "エ",
29
+ id: "katakana-e",
30
+ charType: "katakana",
31
+ nativeName: "エ",
32
+ romaji: "e",
33
+ row: "a"
34
+ },
35
+ {
36
+ char: "オ",
37
+ id: "katakana-o",
38
+ charType: "katakana",
39
+ nativeName: "オ",
40
+ romaji: "o",
41
+ row: "a"
42
+ },
43
+ // ka-row (カ行)
44
+ {
45
+ char: "カ",
46
+ id: "katakana-ka",
47
+ charType: "katakana",
48
+ nativeName: "カ",
49
+ romaji: "ka",
50
+ row: "ka"
51
+ },
52
+ {
53
+ char: "キ",
54
+ id: "katakana-ki",
55
+ charType: "katakana",
56
+ nativeName: "キ",
57
+ romaji: "ki",
58
+ row: "ka"
59
+ },
60
+ {
61
+ char: "ク",
62
+ id: "katakana-ku",
63
+ charType: "katakana",
64
+ nativeName: "ク",
65
+ romaji: "ku",
66
+ row: "ka"
67
+ },
68
+ {
69
+ char: "ケ",
70
+ id: "katakana-ke",
71
+ charType: "katakana",
72
+ nativeName: "ケ",
73
+ romaji: "ke",
74
+ row: "ka"
75
+ },
76
+ {
77
+ char: "コ",
78
+ id: "katakana-ko",
79
+ charType: "katakana",
80
+ nativeName: "コ",
81
+ romaji: "ko",
82
+ row: "ka"
83
+ },
84
+ // sa-row (サ行)
85
+ {
86
+ char: "サ",
87
+ id: "katakana-sa",
88
+ charType: "katakana",
89
+ nativeName: "サ",
90
+ romaji: "sa",
91
+ row: "sa"
92
+ },
93
+ {
94
+ char: "シ",
95
+ id: "katakana-shi",
96
+ charType: "katakana",
97
+ nativeName: "シ",
98
+ romaji: "shi",
99
+ row: "sa"
100
+ },
101
+ {
102
+ char: "ス",
103
+ id: "katakana-su",
104
+ charType: "katakana",
105
+ nativeName: "ス",
106
+ romaji: "su",
107
+ row: "sa"
108
+ },
109
+ {
110
+ char: "セ",
111
+ id: "katakana-se",
112
+ charType: "katakana",
113
+ nativeName: "セ",
114
+ romaji: "se",
115
+ row: "sa"
116
+ },
117
+ {
118
+ char: "ソ",
119
+ id: "katakana-so",
120
+ charType: "katakana",
121
+ nativeName: "ソ",
122
+ romaji: "so",
123
+ row: "sa"
124
+ },
125
+ // ta-row (タ行)
126
+ {
127
+ char: "タ",
128
+ id: "katakana-ta",
129
+ charType: "katakana",
130
+ nativeName: "タ",
131
+ romaji: "ta",
132
+ row: "ta"
133
+ },
134
+ {
135
+ char: "チ",
136
+ id: "katakana-chi",
137
+ charType: "katakana",
138
+ nativeName: "チ",
139
+ romaji: "chi",
140
+ row: "ta"
141
+ },
142
+ {
143
+ char: "ツ",
144
+ id: "katakana-tsu",
145
+ charType: "katakana",
146
+ nativeName: "ツ",
147
+ romaji: "tsu",
148
+ row: "ta"
149
+ },
150
+ {
151
+ char: "テ",
152
+ id: "katakana-te",
153
+ charType: "katakana",
154
+ nativeName: "テ",
155
+ romaji: "te",
156
+ row: "ta"
157
+ },
158
+ {
159
+ char: "ト",
160
+ id: "katakana-to",
161
+ charType: "katakana",
162
+ nativeName: "ト",
163
+ romaji: "to",
164
+ row: "ta"
165
+ },
166
+ // na-row (ナ行)
167
+ {
168
+ char: "ナ",
169
+ id: "katakana-na",
170
+ charType: "katakana",
171
+ nativeName: "ナ",
172
+ romaji: "na",
173
+ row: "na"
174
+ },
175
+ {
176
+ char: "ニ",
177
+ id: "katakana-ni",
178
+ charType: "katakana",
179
+ nativeName: "ニ",
180
+ romaji: "ni",
181
+ row: "na"
182
+ },
183
+ {
184
+ char: "ヌ",
185
+ id: "katakana-nu",
186
+ charType: "katakana",
187
+ nativeName: "ヌ",
188
+ romaji: "nu",
189
+ row: "na"
190
+ },
191
+ {
192
+ char: "ネ",
193
+ id: "katakana-ne",
194
+ charType: "katakana",
195
+ nativeName: "ネ",
196
+ romaji: "ne",
197
+ row: "na"
198
+ },
199
+ {
200
+ char: "ノ",
201
+ id: "katakana-no",
202
+ charType: "katakana",
203
+ nativeName: "ノ",
204
+ romaji: "no",
205
+ row: "na"
206
+ },
207
+ // ha-row (ハ行)
208
+ {
209
+ char: "ハ",
210
+ id: "katakana-ha",
211
+ charType: "katakana",
212
+ nativeName: "ハ",
213
+ romaji: "ha",
214
+ row: "ha"
215
+ },
216
+ {
217
+ char: "ヒ",
218
+ id: "katakana-hi",
219
+ charType: "katakana",
220
+ nativeName: "ヒ",
221
+ romaji: "hi",
222
+ row: "ha"
223
+ },
224
+ {
225
+ char: "フ",
226
+ id: "katakana-fu",
227
+ charType: "katakana",
228
+ nativeName: "フ",
229
+ romaji: "fu",
230
+ row: "ha"
231
+ },
232
+ {
233
+ char: "ヘ",
234
+ id: "katakana-he",
235
+ charType: "katakana",
236
+ nativeName: "ヘ",
237
+ romaji: "he",
238
+ row: "ha"
239
+ },
240
+ {
241
+ char: "ホ",
242
+ id: "katakana-ho",
243
+ charType: "katakana",
244
+ nativeName: "ホ",
245
+ romaji: "ho",
246
+ row: "ha"
247
+ },
248
+ // ma-row (マ行)
249
+ {
250
+ char: "マ",
251
+ id: "katakana-ma",
252
+ charType: "katakana",
253
+ nativeName: "マ",
254
+ romaji: "ma",
255
+ row: "ma"
256
+ },
257
+ {
258
+ char: "ミ",
259
+ id: "katakana-mi",
260
+ charType: "katakana",
261
+ nativeName: "ミ",
262
+ romaji: "mi",
263
+ row: "ma"
264
+ },
265
+ {
266
+ char: "ム",
267
+ id: "katakana-mu",
268
+ charType: "katakana",
269
+ nativeName: "ム",
270
+ romaji: "mu",
271
+ row: "ma"
272
+ },
273
+ {
274
+ char: "メ",
275
+ id: "katakana-me",
276
+ charType: "katakana",
277
+ nativeName: "メ",
278
+ romaji: "me",
279
+ row: "ma"
280
+ },
281
+ {
282
+ char: "モ",
283
+ id: "katakana-mo",
284
+ charType: "katakana",
285
+ nativeName: "モ",
286
+ romaji: "mo",
287
+ row: "ma"
288
+ },
289
+ // ya-row (ヤ行)
290
+ {
291
+ char: "ヤ",
292
+ id: "katakana-ya",
293
+ charType: "katakana",
294
+ nativeName: "ヤ",
295
+ romaji: "ya",
296
+ row: "ya"
297
+ },
298
+ {
299
+ char: "ユ",
300
+ id: "katakana-yu",
301
+ charType: "katakana",
302
+ nativeName: "ユ",
303
+ romaji: "yu",
304
+ row: "ya"
305
+ },
306
+ {
307
+ char: "ヨ",
308
+ id: "katakana-yo",
309
+ charType: "katakana",
310
+ nativeName: "ヨ",
311
+ romaji: "yo",
312
+ row: "ya"
313
+ },
314
+ // ra-row (ラ行)
315
+ {
316
+ char: "ラ",
317
+ id: "katakana-ra",
318
+ charType: "katakana",
319
+ nativeName: "ラ",
320
+ romaji: "ra",
321
+ row: "ra"
322
+ },
323
+ {
324
+ char: "リ",
325
+ id: "katakana-ri",
326
+ charType: "katakana",
327
+ nativeName: "リ",
328
+ romaji: "ri",
329
+ row: "ra"
330
+ },
331
+ {
332
+ char: "ル",
333
+ id: "katakana-ru",
334
+ charType: "katakana",
335
+ nativeName: "ル",
336
+ romaji: "ru",
337
+ row: "ra"
338
+ },
339
+ {
340
+ char: "レ",
341
+ id: "katakana-re",
342
+ charType: "katakana",
343
+ nativeName: "レ",
344
+ romaji: "re",
345
+ row: "ra"
346
+ },
347
+ {
348
+ char: "ロ",
349
+ id: "katakana-ro",
350
+ charType: "katakana",
351
+ nativeName: "ロ",
352
+ romaji: "ro",
353
+ row: "ra"
354
+ },
355
+ // wa-row (ワ行)
356
+ {
357
+ char: "ワ",
358
+ id: "katakana-wa",
359
+ charType: "katakana",
360
+ nativeName: "ワ",
361
+ romaji: "wa",
362
+ row: "wa"
363
+ },
364
+ {
365
+ char: "ヲ",
366
+ id: "katakana-wo",
367
+ charType: "katakana",
368
+ nativeName: "ヲ",
369
+ romaji: "wo",
370
+ row: "wa"
371
+ },
372
+ // n (ン)
373
+ {
374
+ char: "ン",
375
+ id: "katakana-n",
376
+ charType: "katakana",
377
+ nativeName: "ン",
378
+ romaji: "n",
379
+ row: "n"
380
+ }
381
+ ];
382
+ export {
383
+ a as katakanaCharacters
384
+ };
@@ -0,0 +1,6 @@
1
+ import { hiraganaCharacters as t } from "./characters/hiragana.js";
2
+ import { katakanaCharacters as o } from "./characters/katakana.js";
3
+ export {
4
+ t as hiraganaCharacters,
5
+ o as katakanaCharacters
6
+ };
package/dist/ids.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Canonical Japanese Character IDs
3
+ *
4
+ * This file exports the canonical IDs used across Japanese language learning content.
5
+ * These IDs are the source of truth for @syllst/ja and other packages.
6
+ * IDs use romaji transliteration for character names (Hiragana and Katakana).
7
+ */
8
+ /**
9
+ * Japanese Hiragana IDs — 46 basic characters
10
+ * Ordered by traditional gojūon (五十音) table
11
+ */
12
+ export declare const JAPANESE_HIRAGANA_IDS: readonly ["hiragana-a", "hiragana-i", "hiragana-u", "hiragana-e", "hiragana-o", "hiragana-ka", "hiragana-ki", "hiragana-ku", "hiragana-ke", "hiragana-ko", "hiragana-sa", "hiragana-shi", "hiragana-su", "hiragana-se", "hiragana-so", "hiragana-ta", "hiragana-chi", "hiragana-tsu", "hiragana-te", "hiragana-to", "hiragana-na", "hiragana-ni", "hiragana-nu", "hiragana-ne", "hiragana-no", "hiragana-ha", "hiragana-hi", "hiragana-fu", "hiragana-he", "hiragana-ho", "hiragana-ma", "hiragana-mi", "hiragana-mu", "hiragana-me", "hiragana-mo", "hiragana-ya", "hiragana-yu", "hiragana-yo", "hiragana-ra", "hiragana-ri", "hiragana-ru", "hiragana-re", "hiragana-ro", "hiragana-wa", "hiragana-wo", "hiragana-n"];
13
+ /**
14
+ * Japanese Katakana IDs — 46 basic characters
15
+ * Ordered by traditional gojūon (五十音) table
16
+ */
17
+ export declare const JAPANESE_KATAKANA_IDS: readonly ["katakana-a", "katakana-i", "katakana-u", "katakana-e", "katakana-o", "katakana-ka", "katakana-ki", "katakana-ku", "katakana-ke", "katakana-ko", "katakana-sa", "katakana-shi", "katakana-su", "katakana-se", "katakana-so", "katakana-ta", "katakana-chi", "katakana-tsu", "katakana-te", "katakana-to", "katakana-na", "katakana-ni", "katakana-nu", "katakana-ne", "katakana-no", "katakana-ha", "katakana-hi", "katakana-fu", "katakana-he", "katakana-ho", "katakana-ma", "katakana-mi", "katakana-mu", "katakana-me", "katakana-mo", "katakana-ya", "katakana-yu", "katakana-yo", "katakana-ra", "katakana-ri", "katakana-ru", "katakana-re", "katakana-ro", "katakana-wa", "katakana-wo", "katakana-n"];
18
+ /**
19
+ * All Japanese character IDs grouped by script
20
+ */
21
+ export declare const JAPANESE_CHAR_IDS: {
22
+ readonly hiragana: readonly ["hiragana-a", "hiragana-i", "hiragana-u", "hiragana-e", "hiragana-o", "hiragana-ka", "hiragana-ki", "hiragana-ku", "hiragana-ke", "hiragana-ko", "hiragana-sa", "hiragana-shi", "hiragana-su", "hiragana-se", "hiragana-so", "hiragana-ta", "hiragana-chi", "hiragana-tsu", "hiragana-te", "hiragana-to", "hiragana-na", "hiragana-ni", "hiragana-nu", "hiragana-ne", "hiragana-no", "hiragana-ha", "hiragana-hi", "hiragana-fu", "hiragana-he", "hiragana-ho", "hiragana-ma", "hiragana-mi", "hiragana-mu", "hiragana-me", "hiragana-mo", "hiragana-ya", "hiragana-yu", "hiragana-yo", "hiragana-ra", "hiragana-ri", "hiragana-ru", "hiragana-re", "hiragana-ro", "hiragana-wa", "hiragana-wo", "hiragana-n"];
23
+ readonly katakana: readonly ["katakana-a", "katakana-i", "katakana-u", "katakana-e", "katakana-o", "katakana-ka", "katakana-ki", "katakana-ku", "katakana-ke", "katakana-ko", "katakana-sa", "katakana-shi", "katakana-su", "katakana-se", "katakana-so", "katakana-ta", "katakana-chi", "katakana-tsu", "katakana-te", "katakana-to", "katakana-na", "katakana-ni", "katakana-nu", "katakana-ne", "katakana-no", "katakana-ha", "katakana-hi", "katakana-fu", "katakana-he", "katakana-ho", "katakana-ma", "katakana-mi", "katakana-mu", "katakana-me", "katakana-mo", "katakana-ya", "katakana-yu", "katakana-yo", "katakana-ra", "katakana-ri", "katakana-ru", "katakana-re", "katakana-ro", "katakana-wa", "katakana-wo", "katakana-n"];
24
+ };
25
+ export type JapaneseHiraganaId = typeof JAPANESE_HIRAGANA_IDS[number];
26
+ export type JapaneseKatakanaId = typeof JAPANESE_KATAKANA_IDS[number];
27
+ export type JapaneseCharacterId = JapaneseHiraganaId | JapaneseKatakanaId;
28
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0rBA0DxB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0rBA0DxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAGX,MAAM,MAAM,kBAAkB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,kBAAkB,CAAC"}
package/dist/ids.js ADDED
@@ -0,0 +1,125 @@
1
+ const a = [
2
+ // a-row (あ行)
3
+ "hiragana-a",
4
+ "hiragana-i",
5
+ "hiragana-u",
6
+ "hiragana-e",
7
+ "hiragana-o",
8
+ // ka-row (か行)
9
+ "hiragana-ka",
10
+ "hiragana-ki",
11
+ "hiragana-ku",
12
+ "hiragana-ke",
13
+ "hiragana-ko",
14
+ // sa-row (さ行)
15
+ "hiragana-sa",
16
+ "hiragana-shi",
17
+ "hiragana-su",
18
+ "hiragana-se",
19
+ "hiragana-so",
20
+ // ta-row (た行)
21
+ "hiragana-ta",
22
+ "hiragana-chi",
23
+ "hiragana-tsu",
24
+ "hiragana-te",
25
+ "hiragana-to",
26
+ // na-row (な行)
27
+ "hiragana-na",
28
+ "hiragana-ni",
29
+ "hiragana-nu",
30
+ "hiragana-ne",
31
+ "hiragana-no",
32
+ // ha-row (は行)
33
+ "hiragana-ha",
34
+ "hiragana-hi",
35
+ "hiragana-fu",
36
+ "hiragana-he",
37
+ "hiragana-ho",
38
+ // ma-row (ま行)
39
+ "hiragana-ma",
40
+ "hiragana-mi",
41
+ "hiragana-mu",
42
+ "hiragana-me",
43
+ "hiragana-mo",
44
+ // ya-row (や行)
45
+ "hiragana-ya",
46
+ "hiragana-yu",
47
+ "hiragana-yo",
48
+ // ra-row (ら行)
49
+ "hiragana-ra",
50
+ "hiragana-ri",
51
+ "hiragana-ru",
52
+ "hiragana-re",
53
+ "hiragana-ro",
54
+ // wa-row (わ行)
55
+ "hiragana-wa",
56
+ "hiragana-wo",
57
+ // n (ん)
58
+ "hiragana-n"
59
+ ], n = [
60
+ // a-row (ア行)
61
+ "katakana-a",
62
+ "katakana-i",
63
+ "katakana-u",
64
+ "katakana-e",
65
+ "katakana-o",
66
+ // ka-row (カ行)
67
+ "katakana-ka",
68
+ "katakana-ki",
69
+ "katakana-ku",
70
+ "katakana-ke",
71
+ "katakana-ko",
72
+ // sa-row (サ行)
73
+ "katakana-sa",
74
+ "katakana-shi",
75
+ "katakana-su",
76
+ "katakana-se",
77
+ "katakana-so",
78
+ // ta-row (タ行)
79
+ "katakana-ta",
80
+ "katakana-chi",
81
+ "katakana-tsu",
82
+ "katakana-te",
83
+ "katakana-to",
84
+ // na-row (ナ行)
85
+ "katakana-na",
86
+ "katakana-ni",
87
+ "katakana-nu",
88
+ "katakana-ne",
89
+ "katakana-no",
90
+ // ha-row (ハ行)
91
+ "katakana-ha",
92
+ "katakana-hi",
93
+ "katakana-fu",
94
+ "katakana-he",
95
+ "katakana-ho",
96
+ // ma-row (マ行)
97
+ "katakana-ma",
98
+ "katakana-mi",
99
+ "katakana-mu",
100
+ "katakana-me",
101
+ "katakana-mo",
102
+ // ya-row (ヤ行)
103
+ "katakana-ya",
104
+ "katakana-yu",
105
+ "katakana-yo",
106
+ // ra-row (ラ行)
107
+ "katakana-ra",
108
+ "katakana-ri",
109
+ "katakana-ru",
110
+ "katakana-re",
111
+ "katakana-ro",
112
+ // wa-row (ワ行)
113
+ "katakana-wa",
114
+ "katakana-wo",
115
+ // n (ン)
116
+ "katakana-n"
117
+ ], k = {
118
+ hiragana: a,
119
+ katakana: n
120
+ };
121
+ export {
122
+ k as JAPANESE_CHAR_IDS,
123
+ a as JAPANESE_HIRAGANA_IDS,
124
+ n as JAPANESE_KATAKANA_IDS
125
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @laeng/ja - Japanese Language Foundation Data
3
+ *
4
+ * This package provides the foundational data for Japanese language learning:
5
+ * - Character data (Hiragana and Katakana scripts)
6
+ * - Canonical IDs for cross-package consistency
7
+ * - Type definitions for Japanese characters
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { hiraganaCharacters, katakanaCharacters } from "@laeng/ja";
12
+ * import { JAPANESE_CHAR_IDS } from "@laeng/ja/ids";
13
+ * import type { JapaneseHiraganaInfo } from "@laeng/ja/types";
14
+ * ```
15
+ */
16
+ export { hiraganaCharacters, katakanaCharacters, } from './characters';
17
+ export { JAPANESE_HIRAGANA_IDS, JAPANESE_KATAKANA_IDS, JAPANESE_CHAR_IDS, } from './ids';
18
+ export type { JapaneseHiraganaInfo, JapaneseKatakanaInfo, JapaneseCharacter, } from './types';
19
+ export { isHiragana, isKatakana, getDisplayCharacter, } from './types';
20
+ export type { JapaneseHiraganaId, JapaneseKatakanaId, JapaneseCharacterId, } from './ids';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,OAAO,CAAC;AAGf,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,UAAU,EACV,UAAU,EACV,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,OAAO,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ import { hiraganaCharacters as A } from "./characters/hiragana.js";
2
+ import { katakanaCharacters as e } from "./characters/katakana.js";
3
+ import { JAPANESE_CHAR_IDS as E, JAPANESE_HIRAGANA_IDS as S, JAPANESE_KATAKANA_IDS as _ } from "./ids.js";
4
+ import { getDisplayCharacter as p, isHiragana as s, isKatakana as N } from "./types.js";
5
+ export {
6
+ E as JAPANESE_CHAR_IDS,
7
+ S as JAPANESE_HIRAGANA_IDS,
8
+ _ as JAPANESE_KATAKANA_IDS,
9
+ p as getDisplayCharacter,
10
+ A as hiraganaCharacters,
11
+ s as isHiragana,
12
+ N as isKatakana,
13
+ e as katakanaCharacters
14
+ };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Japanese Character Types
3
+ *
4
+ * Type definitions for Japanese characters (Hiragana and Katakana scripts).
5
+ * Japanese kana are syllabic scripts where each character represents a mora.
6
+ */
7
+ type JapaneseCharacterBaseInfo = {
8
+ char: string;
9
+ id: string;
10
+ display?: string;
11
+ audio?: string;
12
+ notes?: string;
13
+ };
14
+ export type JapaneseHiraganaInfo = {
15
+ charType: "hiragana";
16
+ nativeName: string;
17
+ romaji: string;
18
+ row: "a" | "ka" | "sa" | "ta" | "na" | "ha" | "ma" | "ya" | "ra" | "wa" | "n";
19
+ } & JapaneseCharacterBaseInfo;
20
+ export type JapaneseKatakanaInfo = {
21
+ charType: "katakana";
22
+ nativeName: string;
23
+ romaji: string;
24
+ row: "a" | "ka" | "sa" | "ta" | "na" | "ha" | "ma" | "ya" | "ra" | "wa" | "n";
25
+ } & JapaneseCharacterBaseInfo;
26
+ export type JapaneseCharacter = JapaneseHiraganaInfo | JapaneseKatakanaInfo;
27
+ export declare function isHiragana(character: JapaneseCharacter): character is JapaneseHiraganaInfo;
28
+ export declare function isKatakana(character: JapaneseCharacter): character is JapaneseKatakanaInfo;
29
+ /**
30
+ * Get the display character for a Japanese character
31
+ */
32
+ export declare function getDisplayCharacter(character: JapaneseCharacter): string;
33
+ export {};
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;CAC/E,GAAG,yBAAyB,CAAC;AAE9B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;CAC/E,GAAG,yBAAyB,CAAC;AAG9B,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,oBAAoB,CAAC;AAGzB,wBAAgB,UAAU,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,IAAI,oBAAoB,CAE1F;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,IAAI,oBAAoB,CAE1F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAExE"}
package/dist/types.js ADDED
@@ -0,0 +1,14 @@
1
+ function n(a) {
2
+ return a.charType === "hiragana";
3
+ }
4
+ function r(a) {
5
+ return a.charType === "katakana";
6
+ }
7
+ function t(a) {
8
+ return a.display ?? a.char;
9
+ }
10
+ export {
11
+ t as getDisplayCharacter,
12
+ n as isHiragana,
13
+ r as isKatakana
14
+ };
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@laeng/ja",
3
+ "version": "0.1.1",
4
+ "description": "Japanese language foundation data - characters and transliterations (Hiragana and Katakana scripts)",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./characters": {
14
+ "types": "./dist/characters/index.d.ts",
15
+ "import": "./dist/characters/index.js"
16
+ },
17
+ "./types": {
18
+ "types": "./dist/types/index.d.ts",
19
+ "import": "./dist/types/index.js"
20
+ },
21
+ "./ids": {
22
+ "types": "./dist/ids.d.ts",
23
+ "import": "./dist/ids.js"
24
+ }
25
+ },
26
+ "files": [
27
+ "dist"
28
+ ],
29
+ "dependencies": {},
30
+ "devDependencies": {
31
+ "vite": "^7.3.1",
32
+ "vite-plugin-dts": "^4.5.4",
33
+ "vitest": "^4.0.18"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "keywords": [
39
+ "japanese",
40
+ "nihongo",
41
+ "language-learning",
42
+ "laeng",
43
+ "characters",
44
+ "hiragana",
45
+ "katakana"
46
+ ],
47
+ "license": "MIT",
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/fustilio/polyglot-bundles",
51
+ "directory": "packages/ja/laeng"
52
+ },
53
+ "scripts": {
54
+ "build": "vite build",
55
+ "clean": "rm -rf dist",
56
+ "lint": "eslint src",
57
+ "test": "vitest run --passWithNoTests"
58
+ }
59
+ }