mojix 0.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.
@@ -0,0 +1,504 @@
1
+ export { Mojix as default };
2
+ /**
3
+ * 面区点情報
4
+ */
5
+ export type MenKuTen = {
6
+ /**
7
+ * 面-区-点
8
+ */
9
+ text?: string;
10
+ /**
11
+ * 面
12
+ */
13
+ men?: number;
14
+ /**
15
+ * 区
16
+ */
17
+ ku: number;
18
+ /**
19
+ * 点
20
+ */
21
+ ten: number;
22
+ };
23
+ /**
24
+ * 文字のエンコード情報
25
+ */
26
+ export type MojiEncodeData = {
27
+ /**
28
+ * 区点 コード
29
+ */
30
+ kuten: any;
31
+ /**
32
+ * 面区点 コード
33
+ */
34
+ menkuten: any;
35
+ /**
36
+ * CP932(Windows-31J) コード
37
+ */
38
+ cp932_code: number;
39
+ /**
40
+ * Shift_JIS-2004 コード
41
+ */
42
+ sjis2004_code: number;
43
+ /**
44
+ * UTF-8 配列
45
+ */
46
+ utf8_array: Array<number>;
47
+ /**
48
+ * UTF-16 配列
49
+ */
50
+ utf16_array: Array<number>;
51
+ /**
52
+ * UTF-32 配列
53
+ */
54
+ utf32_array: Array<number>;
55
+ /**
56
+ * CP932(Windows-31J) バイト配列
57
+ */
58
+ cp932_array: Array<number>;
59
+ /**
60
+ * Shift_JIS-2004 コード バイト配列
61
+ */
62
+ sjis2004_array: Array<number>;
63
+ /**
64
+ * Shift_JIS バイト配列
65
+ */
66
+ shift_jis_array: Array<number>;
67
+ /**
68
+ * ISO-2022-JP バイト配列
69
+ */
70
+ iso2022jp_array: Array<number>;
71
+ /**
72
+ * eucJP-ms バイト配列
73
+ */
74
+ eucjpms_array: Array<number>;
75
+ /**
76
+ * EUC-JP-2004 バイト配列
77
+ */
78
+ eucjis2004_array: Array<number>;
79
+ };
80
+ /**
81
+ * 文字の種別情報
82
+ */
83
+ export type MojiTypeData = {
84
+ /**
85
+ * Shift_JIS に登録された文字
86
+ */
87
+ is_regular_sjis: boolean;
88
+ /**
89
+ * Shift_JIS-2004 に登録された文字
90
+ */
91
+ is_regular_sjis2004: boolean;
92
+ /**
93
+ * 常用漢字
94
+ */
95
+ is_joyo_kanji: boolean;
96
+ /**
97
+ * 人名用漢字
98
+ */
99
+ is_jinmeiyo_kanji: boolean;
100
+ /**
101
+ * Windows-31J(CP932) 外字
102
+ */
103
+ is_gaiji_cp932: boolean;
104
+ /**
105
+ * Windows-31J(CP932) IBM拡張文字
106
+ */
107
+ is_IBM_extended_character: boolean;
108
+ /**
109
+ * Windows-31J(CP932) NEC選定IBM拡張文字
110
+ */
111
+ is_NEC_selection_IBM_extended_character: boolean;
112
+ /**
113
+ * Windows-31J(CP932) NEC特殊文字
114
+ */
115
+ is_NEC_special_character: boolean;
116
+ /**
117
+ * Shift_JIS-2004 を使用して漢字の水準調査(1未満だと水準調査失敗)
118
+ */
119
+ kanji_suijun: number;
120
+ /**
121
+ * 要 Unicode サロゲートペア
122
+ */
123
+ is_surrogate_pair: boolean;
124
+ /**
125
+ * 制御文字名(制御文字ではない場合は null)
126
+ */
127
+ control_name: string;
128
+ /**
129
+ * 制御文字
130
+ */
131
+ is_control_charcter: boolean;
132
+ /**
133
+ * Unicodeブロック名
134
+ */
135
+ blockname: string;
136
+ /**
137
+ * 漢字
138
+ */
139
+ is_kanji: boolean;
140
+ /**
141
+ * ひらがな
142
+ */
143
+ is_hiragana: boolean;
144
+ /**
145
+ * カタカナ
146
+ */
147
+ is_katakana: boolean;
148
+ /**
149
+ * 全角ASCII
150
+ */
151
+ is_fullwidth_ascii: boolean;
152
+ /**
153
+ * 半角カタカナ
154
+ */
155
+ is_halfwidth_katakana: boolean;
156
+ /**
157
+ * 絵文字
158
+ */
159
+ is_emoji: boolean;
160
+ /**
161
+ * 顔文字
162
+ */
163
+ is_emoticons: boolean;
164
+ /**
165
+ * 記号(VS16 が付くと絵文字化)
166
+ */
167
+ is_symbol_base: boolean;
168
+ /**
169
+ * 外字
170
+ */
171
+ is_gaiji: boolean;
172
+ /**
173
+ * グラフェムを構成するための文字
174
+ */
175
+ is_grapheme_component: boolean;
176
+ /**
177
+ * ゼロ幅文字
178
+ */
179
+ is_zero_width_character: boolean;
180
+ /**
181
+ * 結合文字
182
+ */
183
+ is_combining_mark: boolean;
184
+ /**
185
+ * 異体字セレクタ
186
+ */
187
+ is_variation_selector: boolean;
188
+ /**
189
+ * スキントーン修飾子
190
+ */
191
+ is_skin_tone_modifier: boolean;
192
+ /**
193
+ * タグ文字
194
+ */
195
+ is_tag_character: boolean;
196
+ };
197
+ /**
198
+ * 文字の種別情報
199
+ */
200
+ export type MojiData = {
201
+ /**
202
+ * 文字のエンコード情報
203
+ */
204
+ encode: MojiEncodeData;
205
+ /**
206
+ * 文字の種別情報
207
+ */
208
+ type: MojiTypeData;
209
+ /**
210
+ * 解析した文字
211
+ */
212
+ character: string;
213
+ /**
214
+ * 解析した文字のコードポイント
215
+ */
216
+ codepoint: number;
217
+ };
218
+ /**
219
+ * The script is part of Mojix.
220
+ *
221
+ * AUTHOR:
222
+ * natade (http://twitter.com/natadea)
223
+ *
224
+ * LICENSE:
225
+ * The MIT license https://opensource.org/licenses/MIT
226
+ */
227
+ /**
228
+ * 日本語を扱うための様々な機能を提供します
229
+ */
230
+ declare class Mojix {
231
+ /**
232
+ * 文字列からバイナリ配列にエンコードする
233
+ * @param {String} text - 変換したいテキスト
234
+ * @param {String} charset - キャラセット(UTF-8/16/32,Shift_JIS,Windows-31J,Shift_JIS-2004,EUC-JP,EUC-JP-2004)
235
+ * @param {boolean} [is_with_bom=false] - BOMをつけるかどうか
236
+ * @returns {Array<number>} バイナリ配列(失敗時はnull)
237
+ */
238
+ static encode(text: string, charset: string, is_with_bom?: boolean): Array<number>;
239
+ /**
240
+ * バイナリ配列から文字列にデコードする
241
+ * @param {Array<number>} binary - 変換したいバイナリ配列
242
+ * @param {String} [charset="autodetect"] - キャラセット(UTF-8/16/32,Shift_JIS,Windows-31J,Shift_JIS-2004,EUC-JP,EUC-JP-2004)
243
+ * @returns {String} 変換した文字列(失敗したらnull)
244
+ */
245
+ static decode(binary: Array<number>, charset?: string): string;
246
+ /**
247
+ * サロゲートペア対応のコードポイント取得
248
+ * @param {String} text - 対象テキスト
249
+ * @param {Number} [index = 0] - インデックス
250
+ * @returns {Number} コードポイント
251
+ */
252
+ static codePointAt(text: string, index?: number): number;
253
+ /**
254
+ * コードポイントの数値データを文字列に変換
255
+ * @param {...(number|Array<number>)} codepoint - 変換したいコードポイントの数値配列、又は数値を並べた可変引数
256
+ * @returns {String} 変換後のテキスト
257
+ */
258
+ static fromCodePoint(...args: (number | number[])[]): string;
259
+ /**
260
+ * コードポイント換算で文字列数をカウント
261
+ * @param {String} text - 対象テキスト
262
+ * @param {Number} [beginIndex=0] - 最初のインデックス(省略可)
263
+ * @param {Number} [endIndex] - 最後のインデックス(ここは含めない)(省略可)
264
+ * @returns {Number} 文字数
265
+ */
266
+ static codePointCount(text: string, beginIndex?: number, endIndex?: number): number;
267
+ /**
268
+ * 文字列をUTF32(コードポイント)の配列に変換
269
+ * @param {String} text - 変換したいテキスト
270
+ * @returns {Array<number>} UTF32(コードポイント)のデータが入った配列
271
+ */
272
+ static toUTF32Array(text: string): Array<number>;
273
+ /**
274
+ * UTF32の配列から文字列に変換
275
+ * @param {Array<number>} utf32 - 変換したいテキスト
276
+ * @returns {String} 変換後のテキスト
277
+ */
278
+ static fromUTF32Array(utf32: Array<number>): string;
279
+ /**
280
+ * 文字列をUTF16の配列に変換
281
+ * @param {String} text - 変換したいテキスト
282
+ * @returns {Array<number>} UTF16のデータが入った配列
283
+ */
284
+ static toUTF16Array(text: string): Array<number>;
285
+ /**
286
+ * UTF16の配列から文字列に変換
287
+ * @param {Array<number>} utf16 - 変換したいテキスト
288
+ * @returns {String} 変換後のテキスト
289
+ */
290
+ static fromUTF16Array(utf16: Array<number>): string;
291
+ /**
292
+ * 文字列をUTF8の配列に変換
293
+ * @param {String} text - 変換したいテキスト
294
+ * @returns {Array<number>} UTF8のデータが入った配列
295
+ */
296
+ static toUTF8Array(text: string): Array<number>;
297
+ /**
298
+ * UTF8の配列から文字列に変換
299
+ * @param {Array<number>} utf8 - 変換したいテキスト
300
+ * @returns {String} 変換後のテキスト
301
+ */
302
+ static fromUTF8Array(utf8: Array<number>): string;
303
+ /**
304
+ * 結合した文字を考慮して文字列を文字の配列に変換する
305
+ * @param {String} text - 変換したいテキスト
306
+ * @returns {Array<Array<number>>} UTF32(コードポイント)の配列が入った配列
307
+ */
308
+ static toMojiArrayFromString(text: string): Array<Array<number>>;
309
+ /**
310
+ * 結合した文字を考慮して文字の配列を文字列に変換する
311
+ * @param {Array<Array<number>>} mojiarray - UTF32(コードポイント)の配列が入った配列
312
+ * @returns {string} UTF32(コードポイント)の配列が入った配列
313
+ */
314
+ static toStringFromMojiArray(mojiarray: Array<Array<number>>): string;
315
+ /**
316
+ * 指定したテキストを切り出す
317
+ * - 単位はコードポイントの文字数
318
+ * - 結合文字, 異体字セレクタ, スキントーン修飾子, タグ文字を考慮しません
319
+ * @param {String} text - 切り出したいテキスト
320
+ * @param {Number} offset - 切り出し位置
321
+ * @param {Number} size - 切り出す長さ
322
+ * @returns {String} 切り出したテキスト
323
+ */
324
+ static cutTextForCodePoint(text: string, offset: number, size: number): string;
325
+ /**
326
+ * 指定したテキストの横幅を半角/全角でカウント
327
+ * - 0幅 ... 結合文字, 異体字セレクタ, スキントーン修飾子, タグ文字, ゼロ幅スペース, ゼロ幅非接合子, ゼロ幅接合子, 単語結合子
328
+ * - 1幅 ... ASCII文字, 半角カタカナ
329
+ * - 2幅 ... 上記以外
330
+ * @param {String} text - カウントしたいテキスト
331
+ * @returns {Number} 文字の横幅
332
+ */
333
+ static getWidth(text: string): number;
334
+ /**
335
+ * 指定したテキストを切り出す
336
+ * - 0幅 ... 結合文字, 異体字セレクタ, スキントーン修飾子, タグ文字, ゼロ幅スペース, ゼロ幅非接合子, ゼロ幅接合子, 単語結合子
337
+ * - 1幅 ... ASCII文字, 半角カタカナ
338
+ * - 2幅 ... 上記以外
339
+ * @param {String} text - 切り出したいテキスト
340
+ * @param {Number} offset - 切り出し位置
341
+ * @param {Number} size - 切り出す長さ
342
+ * @returns {String} 切り出したテキスト
343
+ */
344
+ static cutTextForWidth(text: string, offset: number, size: number): string;
345
+ /**
346
+ * 指定した文字から Windows-31J 上の区点番号に変換
347
+ * - 2文字以上を指定した場合は、1文字目のみを変換する
348
+ * @param {String} text - 変換したいテキスト
349
+ * @returns {import("./encode/SJIS.js").MenKuTen} 区点番号(存在しない場合(1バイトのJISコードなど)はnullを返す)
350
+ */
351
+ static toKuTen(text: string): any;
352
+ /**
353
+ * Windows-31J 上の区点番号から文字列に変換
354
+ * @param {import("./encode/SJIS.js").MenKuTen|string} kuten - 区点番号
355
+ * @returns {String} 変換後のテキスト
356
+ */
357
+ static fromKuTen(kuten: any | string): string;
358
+ /**
359
+ * 指定した文字から Shift_JIS-2004 上の面区点番号に変換
360
+ * - 2文字以上を指定した場合は、1文字目のみを変換する
361
+ * @param {String} text - 変換したいテキスト
362
+ * @returns {import("./encode/SJIS.js").MenKuTen} 面区点番号(存在しない場合(1バイトのJISコードなど)はnullを返す)
363
+ */
364
+ static toMenKuTen(text: string): any;
365
+ /**
366
+ * Shift_JIS-2004 上の面区点番号から文字列に変換
367
+ * @param {import("./encode/SJIS.js").MenKuTen|string} menkuten - 面区点番号
368
+ * @returns {String} 変換後のテキスト
369
+ */
370
+ static fromMenKuTen(menkuten: any | string): string;
371
+ /**
372
+ * カタカナをひらがなに変換
373
+ * @param {String} text - 変換したいテキスト
374
+ * @returns {String} 変換後のテキスト
375
+ */
376
+ static toHiragana(text: string): string;
377
+ /**
378
+ * ひらがなをカタカナに変換
379
+ * @param {String} text - 変換したいテキスト
380
+ * @returns {String} 変換後のテキスト
381
+ */
382
+ static toKatakana(text: string): string;
383
+ /**
384
+ * スペースを半角に変換
385
+ * @param {String} text - 変換したいテキスト
386
+ * @returns {String} 変換後のテキスト
387
+ */
388
+ static toHalfWidthSpace(text: string): string;
389
+ /**
390
+ * スペースを全角に変換
391
+ * @param {String} text - 変換したいテキスト
392
+ * @returns {String} 変換後のテキスト
393
+ */
394
+ static toFullWidthSpace(text: string): string;
395
+ /**
396
+ * 英数記号を半角に変換
397
+ * @param {String} text - 変換したいテキスト
398
+ * @returns {String} 変換後のテキスト
399
+ */
400
+ static toHalfWidthAsciiCode(text: string): string;
401
+ /**
402
+ * 英数記号を全角に変換
403
+ * @param {String} text - 変換したいテキスト
404
+ * @returns {String} 変換後のテキスト
405
+ */
406
+ static toFullWidthAsciiCode(text: string): string;
407
+ /**
408
+ * アルファベットを半角に変換
409
+ * @param {String} text - 変換したいテキスト
410
+ * @returns {String} 変換後のテキスト
411
+ */
412
+ static toHalfWidthAlphabet(text: string): string;
413
+ /**
414
+ * アルファベットを全角に変換
415
+ * @param {String} text - 変換したいテキスト
416
+ * @returns {String} 変換後のテキスト
417
+ */
418
+ static toFullWidthAlphabet(text: string): string;
419
+ /**
420
+ * 数値を半角に変換
421
+ * @param {String} text - 変換したいテキスト
422
+ * @returns {String} 変換後のテキスト
423
+ */
424
+ static toHalfWidthNumber(text: string): string;
425
+ /**
426
+ * 数値を全角に変換
427
+ * @param {String} text - 変換したいテキスト
428
+ * @returns {String} 変換後のテキスト
429
+ */
430
+ static toFullWidthNumber(text: string): string;
431
+ /**
432
+ * カタカナを半角に変換
433
+ * @param {String} text - 変換したいテキスト
434
+ * @returns {String} 変換後のテキスト
435
+ */
436
+ static toHalfWidthKana(text: string): string;
437
+ /**
438
+ * カタカナを全角に変換
439
+ * @param {String} text - 変換したいテキスト
440
+ * @returns {String} 変換後のテキスト
441
+ */
442
+ static toFullWidthKana(text: string): string;
443
+ /**
444
+ * 半角に変換
445
+ * @param {String} text - 変換したいテキスト
446
+ * @returns {String} 変換後のテキスト
447
+ */
448
+ static toHalfWidth(text: string): string;
449
+ /**
450
+ * 全角に変換
451
+ * @param {String} text - 変換したいテキスト
452
+ * @returns {String} 変換後のテキスト
453
+ */
454
+ static toFullWidth(text: string): string;
455
+ /**
456
+ * ローマ字からひらがなに変換
457
+ * @param {String} text - 変換したいテキスト
458
+ * @returns {String} 変換後のテキスト
459
+ */
460
+ static toHiraganaFromRomaji(text: string): string;
461
+ /**
462
+ * ローマ字からカタカナに変換
463
+ * @param {String} text - 変換したいテキスト
464
+ * @returns {String} 変換後のテキスト
465
+ */
466
+ static toKatakanaFromRomaji(text: string): string;
467
+ /**
468
+ * ひらがなからローマ字に変換
469
+ * @param {String} text - 変換したいテキスト
470
+ * @returns {String} 変換後のテキスト
471
+ */
472
+ static toRomajiFromHiragana(text: string): string;
473
+ /**
474
+ * カタカナからローマ字に変換
475
+ * @param {String} text - 変換したいテキスト
476
+ * @returns {String} 変換後のテキスト
477
+ */
478
+ static toRomajiFromKatakana(text: string): string;
479
+ /**
480
+ * 指定した1つのUTF-32 コードポイントに関して、解析を行い情報を返します
481
+ * @param {Number} unicode_codepoint - UTF-32 のコードポイント
482
+ * @returns {import("./tools/MojiAnalyzer.js").MojiData} 文字の情報がつまったオブジェクト
483
+ */
484
+ static getMojiData(unicode_codepoint: number): any;
485
+ /**
486
+ * 2つの文字列を比較する関数
487
+ * - sortの引数で利用できます
488
+ *
489
+ * @param {any} a - 比較元
490
+ * @param {any} b - 比較先
491
+ * @returns {number} Compare結果
492
+ */
493
+ static compareToForDefault(a: any, b: any): number;
494
+ /**
495
+ * 2つの文字列を自然順ソートで比較する関数
496
+ * - sortの引数で利用できます
497
+ * - 入力引数は文字列化して比較します
498
+ *
499
+ * @param {any} a - 比較元
500
+ * @param {any} b - 比較先
501
+ * @returns {number} Compare結果
502
+ */
503
+ static compareToForNatural(a: any, b: any): number;
504
+ }