@danything/arib 1.3.1 → 2.0.0

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/ait.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * AIT (Application Information Table) を読む。**Hybridcast の在り処。**
3
3
  *
4
- * データ放送 (BML) と違って、**Hybridcast のアプリは電波に乗っていません**。
5
- * 乗っているのはこの表だけで、中身は「どこにアプリがあるか」のアドレス (URL) です。
4
+ * データ放送 (BML) と違って、**Hybridcast のアプリは放送では送られていません**。
5
+ * 送られているのはこの表だけで、中身は「どこにアプリがあるか」のアドレス (URL) です。
6
6
  * アプリそのものは放送局のサーバから HTTPS で取ってきます。
7
7
  *
8
8
  * ```
9
9
  * PMT ─ ES に application_signalling_descriptor (0x6F) ─→ その PID に AIT
10
- * AIT ─ transport_protocol_descriptor (URL の頭)
10
+ * AIT ─ transport_protocol_descriptor (URL の先頭部分)
11
11
  * └ simple_application_location_descriptor (その先のパス) → アプリの URL
12
12
  * ```
13
13
  *
@@ -87,7 +87,7 @@ export declare class AitReader {
87
87
  /**
88
88
  * TS を読んで、見つかったものを返す。**見つからない間は空**。
89
89
  *
90
- * 同じものが何度も返るのは呼ぶ側で畳んでください。放送は同じ表を
90
+ * 同じものが何度も返るのは呼ぶ側でまとめてください。放送は同じ表を
91
91
  * 繰り返し流すので、ここで覚えると「局を変えても消えない」になります
92
92
  */
93
93
  feed(chunk: Uint8Array): Ait[];
package/dist/ait.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * AIT (Application Information Table) を読む。**Hybridcast の在り処。**
3
3
  *
4
- * データ放送 (BML) と違って、**Hybridcast のアプリは電波に乗っていません**。
5
- * 乗っているのはこの表だけで、中身は「どこにアプリがあるか」のアドレス (URL) です。
4
+ * データ放送 (BML) と違って、**Hybridcast のアプリは放送では送られていません**。
5
+ * 送られているのはこの表だけで、中身は「どこにアプリがあるか」のアドレス (URL) です。
6
6
  * アプリそのものは放送局のサーバから HTTPS で取ってきます。
7
7
  *
8
8
  * ```
9
9
  * PMT ─ ES に application_signalling_descriptor (0x6F) ─→ その PID に AIT
10
- * AIT ─ transport_protocol_descriptor (URL の頭)
10
+ * AIT ─ transport_protocol_descriptor (URL の先頭部分)
11
11
  * └ simple_application_location_descriptor (その先のパス) → アプリの URL
12
12
  * ```
13
13
  *
@@ -73,7 +73,7 @@ export function aitPidsFromPmt(section) {
73
73
  return pids;
74
74
  }
75
75
  /**
76
- * URL の頭を取り出す (transport_protocol_descriptor)。
76
+ * URL の先頭部分を取り出す (transport_protocol_descriptor)。
77
77
  *
78
78
  * **通信路で運ぶものだけ見ます。** `protocol_id` が 1 のものは放送のカルーセルで
79
79
  * 運ぶアプリ (データ放送と同じ経路) で、Hybridcast の話ではありません
@@ -176,7 +176,7 @@ export class AitReader {
176
176
  /**
177
177
  * TS を読んで、見つかったものを返す。**見つからない間は空**。
178
178
  *
179
- * 同じものが何度も返るのは呼ぶ側で畳んでください。放送は同じ表を
179
+ * 同じものが何度も返るのは呼ぶ側でまとめてください。放送は同じ表を
180
180
  * 繰り返し流すので、ここで覚えると「局を変えても消えない」になります
181
181
  */
182
182
  feed(chunk) {
@@ -18,7 +18,7 @@
18
18
  *
19
19
  * 表で空き (U+FFFD) の点は持たない。`aribtext.ts` が「□」にする。
20
20
  *
21
- * 鍵は区点そのまま (第 1 バイトが 0x20+区、第 2 バイトが 0x20+点)。
21
+ * キーは区点そのまま (第 1 バイトが 0x20+区、第 2 バイトが 0x20+点)。
22
22
  */
23
23
  /** 番組表だけで違える字。区点 → 字 (上の説明) */
24
24
  export declare const EPG_ONLY: Map<number, string>;
@@ -18,7 +18,7 @@
18
18
  *
19
19
  * 表で空き (U+FFFD) の点は持たない。`aribtext.ts` が「□」にする。
20
20
  *
21
- * 鍵は区点そのまま (第 1 バイトが 0x20+区、第 2 バイトが 0x20+点)。
21
+ * キーは区点そのまま (第 1 バイトが 0x20+区、第 2 バイトが 0x20+点)。
22
22
  */
23
23
  import { ADDITIONAL } from "./b24-tables.js";
24
24
  /** 番組表だけで違える字。区点 → 字 (上の説明) */
package/dist/aribtext.js CHANGED
@@ -36,7 +36,7 @@ const MOSAIC = { bytes: 1, kind: "blank" };
36
36
  /**
37
37
  * 終端バイト → 符号表。ESC の指示で使う。
38
38
  *
39
- * モザイク (0x32〜0x35) は図形なので読めるものが無い。**捨てずに空へ倒す**のは、
39
+ * モザイク (0x32〜0x35) は図形なので読めるものが無い。**捨てずに字の無い集合として扱う**のは、
40
40
  * 1 バイト表として字数を数え続けないと以降がずれるため。
41
41
  *
42
42
  * **オブジェクトではなく Map。** 数値のキーは書式が 10 進に直されてしまい、
@@ -110,7 +110,7 @@ function twoByte(code, kind) {
110
110
  const cell = (ku - 1) * 94 + low - 0x21;
111
111
  let decoded;
112
112
  if (low > 0x7e) {
113
- decoded = ""; // 0x7F は字ではない (次の区の頭を引かないように)
113
+ decoded = ""; // 0x7F は字ではない (次の区の先頭を引かないように)
114
114
  }
115
115
  else if (kind === "plane2") {
116
116
  decoded = PLANE2_ROWS.get(ku)?.[low - 0x21] ?? "";
@@ -321,7 +321,7 @@ function afterEscape(data, at, designate, invoke) {
321
321
  if (next === undefined)
322
322
  return at + 2;
323
323
  if (next >= 0x28 && next <= 0x2b) {
324
- // ESC 0x24 0x2x 0x20 F は 2 バイト DRCS。読めないので空へ倒す
324
+ // ESC 0x24 0x2x 0x20 F は 2 バイト DRCS。読めないので字の無い集合として扱う
325
325
  if (data[at + 2] === 0x20) {
326
326
  designate(next - 0x28, { bytes: 2, kind: "blank" });
327
327
  return at + 4;
@@ -25,7 +25,7 @@
25
25
  * 1. 字幕の JSON (`/api/recordings/<id>/captions.json` の `drcs`) の `md5` を読み取る。`data` の画像は送るために
26
26
  * なめらかにしたもの (drcs-smooth.ts) なので、`data` から MD5 を取っても表と合わない
27
27
  * 2. `[MD5, 字のコードポイント]` を足し、行末に「何の字か・どこで見たか (局・日付)」を書く
28
- * 3. フォントにその字があること (無い字に置き換えると豆腐になる。画像のままのほうがよい)
28
+ * 3. フォントにその字があるか確かめる (無い字に置き換えると豆腐になる。画像のままのほうがよい)
29
29
  */
30
30
  /** ひらがな集合 (0x21〜0x7E)。0x74〜0x76 は規格で空き (字幕は全角の空白で埋める) */
31
31
  export declare const HIRAGANA = "\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3000\u3000\u3000\u309D\u309E\u30FC\u3002\u300C\u300D\u3001\u30FB";
@@ -48,14 +48,14 @@ export declare const KANJI_DIFF: [number, string][];
48
48
  /** 追加記号・追加漢字を 1 つの文字列にしたもの。(区 − 85) × 94 + (点 − 1) 番目のコードポイント */
49
49
  export declare const ADDITIONAL: string;
50
50
  /**
51
- * JIS X 0213:2004 の1面で、2つのコードポイントで表す字 (半濁点の付いたかな・発音記号と、声調の組)。
52
- * [区×94+点 (0 から), 字]。字幕は1区画、番組表は2つのコードポイントのまま出す
51
+ * JIS X 0213:2004 の 1 面で、2 つのコードポイントで表す字 (半濁点の付いたかな・発音記号と、声調の組)。
52
+ * [区×94+点 (0 から), 字]。字幕は 1 区画、番組表は 2 つのコードポイントのまま出す
53
53
  */
54
54
  export declare const KANJI_SEQUENCES: [number, string][];
55
- /** `PLANE1_HIGH_ROWS` を1つの文字列にしたもの。(区 − 85) × 94 + (点 − 1) 番目のコードポイント */
55
+ /** `PLANE1_HIGH_ROWS` を 1 つの文字列にしたもの。(区 − 85) × 94 + (点 − 1) 番目のコードポイント */
56
56
  export declare const PLANE1_HIGH: string;
57
57
  /**
58
- * JIS X 0213:2004 の2面 (JIS互換漢字2面。終端 0x3A)。[区, 94 字 (点の順)]。字のある区だけ
58
+ * JIS X 0213:2004 の 2 面 (JIS 互換漢字 2 面。終端 0x3A)。[区, 94 字 (点の順)]。字のある区だけ
59
59
  */
60
60
  export declare const PLANE2: [number, string][];
61
61
  /**
@@ -25,7 +25,7 @@
25
25
  * 1. 字幕の JSON (`/api/recordings/<id>/captions.json` の `drcs`) の `md5` を読み取る。`data` の画像は送るために
26
26
  * なめらかにしたもの (drcs-smooth.ts) なので、`data` から MD5 を取っても表と合わない
27
27
  * 2. `[MD5, 字のコードポイント]` を足し、行末に「何の字か・どこで見たか (局・日付)」を書く
28
- * 3. フォントにその字があること (無い字に置き換えると豆腐になる。画像のままのほうがよい)
28
+ * 3. フォントにその字があるか確かめる (無い字に置き換えると豆腐になる。画像のままのほうがよい)
29
29
  */
30
30
  /* 区点と突き合わせる表なので整形しない (bunfig.toml の ignorePatterns) */
31
31
  /** ひらがな集合 (0x21〜0x7E)。0x74〜0x76 は規格で空き (字幕は全角の空白で埋める) */
@@ -102,56 +102,56 @@ const ADDITIONAL_ROWS = [
102
102
  export const ADDITIONAL = ADDITIONAL_ROWS.join('');
103
103
  // ここから JIS X 0213 の表 (packages/arib/scripts/jisx0213.ts が書く。手で直さない)
104
104
  /**
105
- * JIS X 0213:2004 の1面で、2つのコードポイントで表す字 (半濁点の付いたかな・発音記号と、声調の組)。
106
- * [区×94+点 (0 から), 字]。字幕は1区画、番組表は2つのコードポイントのまま出す
105
+ * JIS X 0213:2004 の 1 面で、2 つのコードポイントで表す字 (半濁点の付いたかな・発音記号と、声調の組)。
106
+ * [区×94+点 (0 から), 字]。字幕は 1 区画、番組表は 2 つのコードポイントのまま出す
107
107
  */
108
108
  export const KANJI_SEQUENCES = [
109
- [368, "か゚"], // 4区87点
110
- [369, "き゚"], // 4区88点
111
- [370, "く゚"], // 4区89点
112
- [371, "け゚"], // 4区90点
113
- [372, "こ゚"], // 4区91点
114
- [462, "カ゚"], // 5区87点
115
- [463, "キ゚"], // 5区88点
116
- [464, "ク゚"], // 5区89点
117
- [465, "ケ゚"], // 5区90点
118
- [466, "コ゚"], // 5区91点
119
- [467, "セ゚"], // 5区92点
120
- [468, "ツ゚"], // 5区93点
121
- [469, "ト゚"], // 5区94点
122
- [557, "ㇷ゚"], // 6区88点
123
- [975, "æ̀"], // 11区36点
124
- [979, "ɔ̀"], // 11区40点
125
- [980, "ɔ́"], // 11区41点
126
- [981, "ʌ̀"], // 11区42点
127
- [982, "ʌ́"], // 11区43点
128
- [983, "ə̀"], // 11区44点
129
- [984, "ə́"], // 11区45点
130
- [985, "ɚ̀"], // 11区46点
131
- [986, "ɚ́"], // 11区47点
132
- [1008, "˩˥"], // 11区69点
133
- [1009, "˥˩"], // 11区70点
109
+ [368, "か゚"], // 4 区 87 点
110
+ [369, "き゚"], // 4 区 88 点
111
+ [370, "く゚"], // 4 区 89 点
112
+ [371, "け゚"], // 4 区 90 点
113
+ [372, "こ゚"], // 4 区 91 点
114
+ [462, "カ゚"], // 5 区 87 点
115
+ [463, "キ゚"], // 5 区 88 点
116
+ [464, "ク゚"], // 5 区 89 点
117
+ [465, "ケ゚"], // 5 区 90 点
118
+ [466, "コ゚"], // 5 区 91 点
119
+ [467, "セ゚"], // 5 区 92 点
120
+ [468, "ツ゚"], // 5 区 93 点
121
+ [469, "ト゚"], // 5 区 94 点
122
+ [557, "ㇷ゚"], // 6 区 88 点
123
+ [975, "æ̀"], // 11 区 36 点
124
+ [979, "ɔ̀"], // 11 区 40 点
125
+ [980, "ɔ́"], // 11 区 41 点
126
+ [981, "ʌ̀"], // 11 区 42 点
127
+ [982, "ʌ́"], // 11 区 43 点
128
+ [983, "ə̀"], // 11 区 44 点
129
+ [984, "ə́"], // 11 区 45 点
130
+ [985, "ɚ̀"], // 11 区 46 点
131
+ [986, "ɚ́"], // 11 区 47 点
132
+ [1008, "˩˥"], // 11 区 69 点
133
+ [1009, "˥˩"], // 11 区 70 点
134
134
  ];
135
135
  /**
136
- * JIS X 0213:2004 の1面の 85〜94区 (第3水準の漢字)。JIS互換漢字1面 (終端 0x39) だけが引く。
137
- * 漢字集合 (0x42) と追加記号 (0x3B) の 85区から先は `ADDITIONAL`
136
+ * JIS X 0213:2004 の 1 面の 85〜94 区 (第 3 水準の漢字)。JIS 互換漢字 1 面 (終端 0x39) だけが引く。
137
+ * 漢字集合 (0x42) と追加記号 (0x3B) の 85 区から先は `ADDITIONAL`
138
138
  */
139
139
  const PLANE1_HIGH_ROWS = [
140
- "擄擊擐擷擻攢攩敏敧斝既昀昉昕昞昺昢昤昫昰昱昳曻晈晌𣇄晙晚晡晥晳晷晸暍暑暠暲暻曆曈㬢曛曨曺朓朗朳杦杇杈杻极枓枘枛枻柹柀柗柼栁桒栝栬栱桛桲桵梅梣梥梲棈棐棨棭棰棱棼椊楉𣗄椵楂楗楣楤楨榀﨔榥榭槏㮶", // 85区
141
- "㯃槢槩槪槵槶樏樕𣜿樻樾橅橐橖橛橫橳𣝣檉檔檝檞檥櫤櫧㰏欄欛欞欬欵歆歖歠步歧歷殂殩殭殺每毖毗毿氅氐氳汙汜沪汴汶沅沆沘沜泻泆泔泠泫泮𣳾洄洎洮洱洹洿浘浥海涂涇涉涔涪涬涿淄淖淚淛淝淼渚渴湄湜湞溫溱滁", // 86区
142
- "滇滎漐漚漢漪漯漳潑潙潞潡潢潾澈澌澍澔澠澧澶澼濇濊濹濰濵瀅瀆瀨灊灝灞灎灤灵炅炤炫炷烔烘烤焏焫焞焠焮焰煆煇煑煮煒煜煠煨凞熅熇熒燁熺燄燾爀爕牕牖㸿犍犛犾狀狻𤟱猧猨猪獐獦獼玕玟玠玢玦玫珉珏珖珙珣珩", // 87区
143
- "琇琊琚琛琢琦琨琪琫琬琮琯琰瑄瑆瑇瑋瑗瑢瑫瑭璆璇璉璘璜璟璣璐璦璨璩璵璿瓈瓉瓚瓿甁甗甯畯畹疒㽲痎痤瘀瘂瘈瘕瘖瘙瘞瘭瘵癃癋癤癥癭癯癱皁皛皝皞皦皪皶盅盌盎盔盦盱盼眊眙眴眶睆睍睎睜睟睢睺瞀瞔瞪矠砭𥒎", // 88区
144
- "硃硎硏硑硨确碑碰𥔎碭磤磲礀磷礜礮礱礴社祉祅祆祈祐祖祜祝神祥祹禍禎福禘禱禸秈秊𥝱秔秞秫秭稃穀稹穝穭突窅窠𥧄窳窻竎竫竽笒笭笻筇筎筠筭筯筲箞節篗篙簁簱簞簠簳簶䉤𥶡籙籭籹粏粔粠粼糕糙糝紇紈紓紝紣紱", // 89区
145
- "絁絈絓絜絺綃綋綠綦緂緌緖緣練縨縈縑縕繁繇繒繡纊纍罇署羑羗羿翎翛翟翬翮翺者耔耦耵耷耼胊胗胠胳脘腊腠腧腨腭膻臊臏臗臭䑓䑛艠艴𦫿芎芡芣芤芩芮芷芾芿苆苕苽苾茀茁荢茢茭茺荃荇荑荕荽莆莒莘莧莩莿菀菇菏", // 90区
146
- "菑菡菪萁萆萊著葈葟葰葳蒅蒞蒯蒴蒺蓀蓂𦹀蔲蔞蔣蔯蕙蕤﨟薭蕺薌薏薢薰藋藎藭蘒藿蘄蘅蘐𧃴蘘蘩蘸虗虛虜虢䖝虬虵蚘蚸蛺蛼蛽蜋蝱螇螈螬螭螵䗪蟖蟬蠆蠊蠐蠔蠟袘袪裊裎𧚄裵褜褐褘褙褚褧褰褲褹襀覔視觔觥觶訒訕", // 91区
147
- "訢訷詇詎詝詡詵詹誧諐諟諴諶諸謁謹譆譔譙譩讝豉豨賓賡賴賸賾贈贒贛趯跎跑跗踠踣踽蹰蹻𨉷軀䡄軺輞輭輶轔𨏍辦辵迤迨迮逈逭逸邈邕邗邙邛邢邳邾郄郅郇郗郝郞郯郴都鄔鄕鄖鄢鄣鄧鄯鄱鄴鄽酈酛醃醞醬醱醼釗釻釤", // 92区
148
- "釥釭釱鈇鈐鈸鈹鈺鈼鉀鉃鉏鉸銈鋂鋋鋌鋓鋠鋿錄錟錡錥鍈鍉鍊鍤鍥鍪鍰鎛鎣鎺鏆鏞鏟鐄鏽鐳鑊鑣鑫鑱鑲閎閟閦閩閬閶閽闋闐闓䦰闚闞陘隄隆隝隤隥雒雞難雩雯霳霻靍靎靏靚靮靳鞕鞮鞺韁韉韞韛韴響頊頞頫頰頻顒顓顖", // 93区
149
- "顗顙顚類顥顬颺飈飧饘馞騂騃騤騭騮騸驊驎驒骶髁髃髎髖髹鬂鬈鬠䰗鬭魞魹魦魲魵鮄鮊鮏鮞鮧鯁鯎鯥鯸鯽鰀鰣鱁鱏鱐鱓鱣鱥鱷鴝鴞鵃鵇鵒鵣鵰鵼鶊鶖鷀鶬鶼鷗𪆐鷧鸇鸕鹼麞麤麬麯麴麵黃黑鼐鼹齗龐龔龗龢姸屛幷瘦繫", // 94区
140
+ "擄擊擐擷擻攢攩敏敧斝既昀昉昕昞昺昢昤昫昰昱昳曻晈晌𣇄晙晚晡晥晳晷晸暍暑暠暲暻曆曈㬢曛曨曺朓朗朳杦杇杈杻极枓枘枛枻柹柀柗柼栁桒栝栬栱桛桲桵梅梣梥梲棈棐棨棭棰棱棼椊楉𣗄椵楂楗楣楤楨榀﨔榥榭槏㮶", // 85 区
141
+ "㯃槢槩槪槵槶樏樕𣜿樻樾橅橐橖橛橫橳𣝣檉檔檝檞檥櫤櫧㰏欄欛欞欬欵歆歖歠步歧歷殂殩殭殺每毖毗毿氅氐氳汙汜沪汴汶沅沆沘沜泻泆泔泠泫泮𣳾洄洎洮洱洹洿浘浥海涂涇涉涔涪涬涿淄淖淚淛淝淼渚渴湄湜湞溫溱滁", // 86 区
142
+ "滇滎漐漚漢漪漯漳潑潙潞潡潢潾澈澌澍澔澠澧澶澼濇濊濹濰濵瀅瀆瀨灊灝灞灎灤灵炅炤炫炷烔烘烤焏焫焞焠焮焰煆煇煑煮煒煜煠煨凞熅熇熒燁熺燄燾爀爕牕牖㸿犍犛犾狀狻𤟱猧猨猪獐獦獼玕玟玠玢玦玫珉珏珖珙珣珩", // 87 区
143
+ "琇琊琚琛琢琦琨琪琫琬琮琯琰瑄瑆瑇瑋瑗瑢瑫瑭璆璇璉璘璜璟璣璐璦璨璩璵璿瓈瓉瓚瓿甁甗甯畯畹疒㽲痎痤瘀瘂瘈瘕瘖瘙瘞瘭瘵癃癋癤癥癭癯癱皁皛皝皞皦皪皶盅盌盎盔盦盱盼眊眙眴眶睆睍睎睜睟睢睺瞀瞔瞪矠砭𥒎", // 88 区
144
+ "硃硎硏硑硨确碑碰𥔎碭磤磲礀磷礜礮礱礴社祉祅祆祈祐祖祜祝神祥祹禍禎福禘禱禸秈秊𥝱秔秞秫秭稃穀稹穝穭突窅窠𥧄窳窻竎竫竽笒笭笻筇筎筠筭筯筲箞節篗篙簁簱簞簠簳簶䉤𥶡籙籭籹粏粔粠粼糕糙糝紇紈紓紝紣紱", // 89 区
145
+ "絁絈絓絜絺綃綋綠綦緂緌緖緣練縨縈縑縕繁繇繒繡纊纍罇署羑羗羿翎翛翟翬翮翺者耔耦耵耷耼胊胗胠胳脘腊腠腧腨腭膻臊臏臗臭䑓䑛艠艴𦫿芎芡芣芤芩芮芷芾芿苆苕苽苾茀茁荢茢茭茺荃荇荑荕荽莆莒莘莧莩莿菀菇菏", // 90 区
146
+ "菑菡菪萁萆萊著葈葟葰葳蒅蒞蒯蒴蒺蓀蓂𦹀蔲蔞蔣蔯蕙蕤﨟薭蕺薌薏薢薰藋藎藭蘒藿蘄蘅蘐𧃴蘘蘩蘸虗虛虜虢䖝虬虵蚘蚸蛺蛼蛽蜋蝱螇螈螬螭螵䗪蟖蟬蠆蠊蠐蠔蠟袘袪裊裎𧚄裵褜褐褘褙褚褧褰褲褹襀覔視觔觥觶訒訕", // 91 区
147
+ "訢訷詇詎詝詡詵詹誧諐諟諴諶諸謁謹譆譔譙譩讝豉豨賓賡賴賸賾贈贒贛趯跎跑跗踠踣踽蹰蹻𨉷軀䡄軺輞輭輶轔𨏍辦辵迤迨迮逈逭逸邈邕邗邙邛邢邳邾郄郅郇郗郝郞郯郴都鄔鄕鄖鄢鄣鄧鄯鄱鄴鄽酈酛醃醞醬醱醼釗釻釤", // 92 区
148
+ "釥釭釱鈇鈐鈸鈹鈺鈼鉀鉃鉏鉸銈鋂鋋鋌鋓鋠鋿錄錟錡錥鍈鍉鍊鍤鍥鍪鍰鎛鎣鎺鏆鏞鏟鐄鏽鐳鑊鑣鑫鑱鑲閎閟閦閩閬閶閽闋闐闓䦰闚闞陘隄隆隝隤隥雒雞難雩雯霳霻靍靎靏靚靮靳鞕鞮鞺韁韉韞韛韴響頊頞頫頰頻顒顓顖", // 93 区
149
+ "顗顙顚類顥顬颺飈飧饘馞騂騃騤騭騮騸驊驎驒骶髁髃髎髖髹鬂鬈鬠䰗鬭魞魹魦魲魵鮄鮊鮏鮞鮧鯁鯎鯥鯸鯽鰀鰣鱁鱏鱐鱓鱣鱥鱷鴝鴞鵃鵇鵒鵣鵰鵼鶊鶖鷀鶬鶼鷗𪆐鷧鸇鸕鹼麞麤麬麯麴麵黃黑鼐鼹齗龐龔龗龢姸屛幷瘦繫", // 94 区
150
150
  ];
151
- /** `PLANE1_HIGH_ROWS` を1つの文字列にしたもの。(区 − 85) × 94 + (点 − 1) 番目のコードポイント */
151
+ /** `PLANE1_HIGH_ROWS` を 1 つの文字列にしたもの。(区 − 85) × 94 + (点 − 1) 番目のコードポイント */
152
152
  export const PLANE1_HIGH = PLANE1_HIGH_ROWS.join('');
153
153
  /**
154
- * JIS X 0213:2004 の2面 (JIS互換漢字2面。終端 0x3A)。[区, 94 字 (点の順)]。字のある区だけ
154
+ * JIS X 0213:2004 の 2 面 (JIS 互換漢字 2 面。終端 0x3A)。[区, 94 字 (点の順)]。字のある区だけ
155
155
  */
156
156
  export const PLANE2 = [
157
157
  [1, "𠂉丂丏丒丩丫丮乀乇么𠂢乑㐆𠂤乚乩亝㐬㐮亹亻𠆢亼仃仈仐仫仚仱仵伀伖佤伷伾佔佘𠈓佷佸佺佽侂侅侒侚俦侲侾俅俋俏俒㑪俲倀倐倓倜倞倢㑨偂偆偎偓偗偣偦偪偰傣傈傒傓傕傖傜傪𠌫傱傺傻僄僇僳𠎁僎𠍱僔僙僡僩㒒"],
@@ -147,7 +147,7 @@ function isHalfwidth(code) {
147
147
  const smoothed = new Map();
148
148
  const SMOOTHED_MAX = 256;
149
149
  function sendable(drcs) {
150
- // MD5 は画素だけから取っているので、大きさも鍵に入れる
150
+ // MD5 は画素だけから取っているので、大きさもキーに入れる
151
151
  const key = `${drcs.md5}:${drcs.width}x${drcs.height}:${drcs.depth}`;
152
152
  let sent = smoothed.get(key);
153
153
  if (sent === undefined) {
@@ -917,7 +917,7 @@ export class B24CaptionDecoder {
917
917
  /**
918
918
  * デコードした 1 枚を、送る形式にする。**同じ見た目で続いている字を 1 つの並びに束ねる。**
919
919
  *
920
- * libaribcaption の描き手 (region_renderer) が字ごとに計算している置き場所を、ここで
920
+ * libaribcaption の描画側 (region_renderer) が字ごとに計算している置き場所を、ここで
921
921
  * 面の単位のまま済ませておく。区画は `floor((字の幅 + 字間) × 倍率)`、字の枠は区画の中で
922
922
  * 字間の半分だけ右下へずらしたところ。
923
923
  *
@@ -1001,7 +1001,7 @@ function toPage(caption, plane) {
1001
1001
  return page;
1002
1002
  }
1003
1003
  /**
1004
- * 字幕の PES の中身で、データグループの頭の位置。データ識別 (0x80 = 字幕) と私的ストリーム識別 (0xFF) が
1004
+ * 字幕の PES の中身で、データグループの先頭の位置。データ識別 (0x80 = 字幕) と私的ストリーム識別 (0xFF) が
1005
1005
  * 合わなければ -1
1006
1006
  */
1007
1007
  function groupAt(data) {
@@ -7,7 +7,7 @@
7
7
  * web-bml は MIT で、著作権表示と許諾の文は [LICENSE](../LICENSE) に置いてある。
8
8
  *
9
9
  * 載せるのは denpa が実際に作るものだけ (PMT・モジュール一覧・揃ったモジュール・
10
- * ストリーム記述子のイベント・番組の名乗り・放送の時刻)。web-bml が自前の
10
+ * ストリーム記述子のイベント・番組の情報・放送の時刻)。web-bml が自前の
11
11
  * TS 解析のために持っていた PCR・PES・BIT・映像の URL は作らないので持たない。
12
12
  */
13
13
  /** PMT の ES 1 本。**部品タグ (`componentId`) を持つものだけ**並ぶ (bml.ts の `parsePmt`) */
@@ -123,7 +123,7 @@ export interface ESEventUpdatedMessage {
123
123
  events: ESEvent[];
124
124
  dataEventId: number;
125
125
  }
126
- /** 番組の名乗り。TS からではなく DB から組む (denpa の `server/live.ts`・`server/recorded-bml.ts`) */
126
+ /** 番組の情報。TS からではなく DB から組む (denpa の `server/live.ts`・`server/recorded-bml.ts`) */
127
127
  export interface ProgramInfoMessage {
128
128
  type: "programInfo";
129
129
  originalNetworkId: number | null;
@@ -7,7 +7,7 @@
7
7
  * web-bml は MIT で、著作権表示と許諾の文は [LICENSE](../LICENSE) に置いてある。
8
8
  *
9
9
  * 載せるのは denpa が実際に作るものだけ (PMT・モジュール一覧・揃ったモジュール・
10
- * ストリーム記述子のイベント・番組の名乗り・放送の時刻)。web-bml が自前の
10
+ * ストリーム記述子のイベント・番組の情報・放送の時刻)。web-bml が自前の
11
11
  * TS 解析のために持っていた PCR・PES・BIT・映像の URL は作らないので持たない。
12
12
  */
13
13
  export {};
package/dist/bml.d.ts CHANGED
@@ -49,11 +49,11 @@ export declare class BmlDecoder {
49
49
  * 切り分け済みのパケットを 1 つ。ライブは同じ TS を時計や Hybridcast とも
50
50
  * 分け合うので、切り分けは 1 回で済ませて配る (denpa の `server/live.ts` の `tap`)。
51
51
  *
52
- * **PID で行き先を引く。** 組み立て役を全部に回していた頃は、データ放送と
52
+ * **PID で渡し先を引く。** すべての組み立て処理にパケットを渡していた頃は、データ放送と
53
53
  * 関係ない映像のパケットのたびにカルーセルの数だけ呼んでいた。
54
54
  *
55
- * `packet` は呼び手の塊の上の窓 (`psi.ts` の `PacketStream`)。**返ったあとまで
56
- * 持つなら写すこと。** 塊の入れ物は使い回される
55
+ * `packet` は呼び出し側が渡したチャンクの一部を指す (`psi.ts` の `PacketStream`)。**返ったあとまで
56
+ * 持つならコピーすること。** チャンクのバッファは使い回される
57
57
  */
58
58
  feedPacket(packet: Uint8Array): void;
59
59
  private onPmt;
@@ -81,7 +81,7 @@ export declare class BmlDecoder {
81
81
  * 入っている。Type 記述子が無いときも中身は multipart なので、同じ扱いにする。
82
82
  */
83
83
  export declare function moduleFiles(data: Uint8Array, contentType: string | null): ModuleFile[];
84
- /** zlib で縮めてあれば伸ばす。伸ばせなければ諦めて null */
84
+ /** zlib で圧縮してあれば展開する。展開できなければ諦めて null */
85
85
  export declare function inflate(data: Uint8Array, compression: {
86
86
  type: number;
87
87
  } | null): Uint8Array | null;
package/dist/bml.js CHANGED
@@ -226,15 +226,15 @@ export class BmlDecoder {
226
226
  * 切り分け済みのパケットを 1 つ。ライブは同じ TS を時計や Hybridcast とも
227
227
  * 分け合うので、切り分けは 1 回で済ませて配る (denpa の `server/live.ts` の `tap`)。
228
228
  *
229
- * **PID で行き先を引く。** 組み立て役を全部に回していた頃は、データ放送と
229
+ * **PID で渡し先を引く。** すべての組み立て処理にパケットを渡していた頃は、データ放送と
230
230
  * 関係ない映像のパケットのたびにカルーセルの数だけ呼んでいた。
231
231
  *
232
- * `packet` は呼び手の塊の上の窓 (`psi.ts` の `PacketStream`)。**返ったあとまで
233
- * 持つなら写すこと。** 塊の入れ物は使い回される
232
+ * `packet` は呼び出し側が渡したチャンクの一部を指す (`psi.ts` の `PacketStream`)。**返ったあとまで
233
+ * 持つならコピーすること。** チャンクのバッファは使い回される
234
234
  */
235
235
  feedPacket(packet) {
236
236
  const pid = packetPid(packet);
237
- // 同じ PID を 2 役が名乗ることもあるので、else でつながない
237
+ // 同じ PID を 2 つの用途で使うこともあるので、else でつながない
238
238
  for (const section of this.pmt.feed(packet, pid))
239
239
  this.onPmt(section);
240
240
  if (pid === PID_TIME)
@@ -431,14 +431,14 @@ export class BmlDecoder {
431
431
  const mark = doneMark(component, version);
432
432
  if (component.done.get(moduleId) === mark)
433
433
  return;
434
- // 大きさ 0 は伸ばしようが無い。ファイルの無いモジュールとして配り、待っている受け側を終わらせる
434
+ // 大きさ 0 は展開しようが無い。ファイルの無いモジュールとして配り、待っている受け側を終わらせる
435
435
  const empty = held.module.moduleSize === 0;
436
436
  const data = empty
437
437
  ? held.builder.data
438
438
  : inflate(held.builder.data, held.module.compression);
439
439
  const files = data === null ? [] : moduleFiles(data, held.module.contentType);
440
440
  /*
441
- * **伸ばせない・分けられないモジュールは諦める。** 配らずに黙ると、受け側は DII に
441
+ * **展開できない・分けられないモジュールは諦める。** 配らずに黙ると、受け側は DII に
442
442
  * 載っている限り待ち続ける。ブロックは CRC を通っているので、組み直しても同じ結果になる
443
443
  */
444
444
  if (files.length === 0 && !empty) {
@@ -499,14 +499,14 @@ export function moduleFiles(data, contentType) {
499
499
  function base64(data) {
500
500
  return Buffer.from(data).toString("base64");
501
501
  }
502
- /** zlib で縮めてあれば伸ばす。伸ばせなければ諦めて null */
502
+ /** zlib で圧縮してあれば展開する。展開できなければ諦めて null */
503
503
  export function inflate(data, compression) {
504
504
  if (compression === null)
505
505
  return data;
506
506
  if (compression.type !== COMPRESSION_ZLIB)
507
507
  return null;
508
508
  try {
509
- // 伸ばした大きさにも上限を置く。小さな DDB から何 GB にも伸びるものを作れる
509
+ // 展開した大きさにも上限を置く。小さな DDB から何 GB にも展開されるものを作れる
510
510
  return inflateSync(data, { maxOutputLength: MAX_MODULE_SIZE });
511
511
  }
512
512
  catch {
package/dist/bytes.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * バイト列の細かい道具。**中身の意味は持たない。** 繋ぐ・読むのはここで済ませる (別名で書き直さない)
3
3
  */
4
- /** バイト列を新しい 1 本に繋ぐ (いつも写す。`Blob` などへ渡せる `ArrayBuffer` の上に作る) */
4
+ /** バイト列を新しい 1 本に繋ぐ (いつもコピーする。`Blob` などへ渡せる `ArrayBuffer` の上に作る) */
5
5
  export declare function concatBytes(parts: readonly Uint8Array[]): Uint8Array<ArrayBuffer>;
6
6
  /**
7
7
  * バイト列を 1 本に繋ぐ。
8
8
  *
9
- * **1 本しかないときは写しません。** 分割された記述子を繋ぎ直すところ
9
+ * **1 本しかないときはコピーしません。** 分割された記述子を繋ぎ直すところ
10
10
  * ([eit.ts](eit.ts)) では、繋ぐ必要のないほうが多数です
11
11
  */
12
12
  export declare function joinBytes(parts: readonly Uint8Array[]): Uint8Array;
@@ -16,5 +16,5 @@ export declare function u16(data: Uint8Array, at: number): number;
16
16
  export declare function u24(data: Uint8Array, at: number): number;
17
17
  /** 大きい桁が先の 32 ビット (符号なし) */
18
18
  export declare function u32(data: Uint8Array, at: number): number;
19
- /** `length` バイトをそのまま 1 字ずつの文字列に (MP4 の箱の種別・PNG の塊の名前・言語の符号) */
19
+ /** `length` バイトをそのまま 1 字ずつの文字列に (MP4 のボックスの種別・PNG のチャンクの名前・言語の符号) */
20
20
  export declare function ascii(data: Uint8Array, at: number, length: number): string;
package/dist/bytes.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * バイト列の細かい道具。**中身の意味は持たない。** 繋ぐ・読むのはここで済ませる (別名で書き直さない)
3
3
  */
4
- /** バイト列を新しい 1 本に繋ぐ (いつも写す。`Blob` などへ渡せる `ArrayBuffer` の上に作る) */
4
+ /** バイト列を新しい 1 本に繋ぐ (いつもコピーする。`Blob` などへ渡せる `ArrayBuffer` の上に作る) */
5
5
  export function concatBytes(parts) {
6
6
  let total = 0;
7
7
  for (const part of parts)
@@ -17,7 +17,7 @@ export function concatBytes(parts) {
17
17
  /**
18
18
  * バイト列を 1 本に繋ぐ。
19
19
  *
20
- * **1 本しかないときは写しません。** 分割された記述子を繋ぎ直すところ
20
+ * **1 本しかないときはコピーしません。** 分割された記述子を繋ぎ直すところ
21
21
  * ([eit.ts](eit.ts)) では、繋ぐ必要のないほうが多数です
22
22
  */
23
23
  export function joinBytes(parts) {
@@ -39,7 +39,7 @@ export function u32(data, at) {
39
39
  data[at + 3]) >>>
40
40
  0);
41
41
  }
42
- /** `length` バイトをそのまま 1 字ずつの文字列に (MP4 の箱の種別・PNG の塊の名前・言語の符号) */
42
+ /** `length` バイトをそのまま 1 字ずつの文字列に (MP4 のボックスの種別・PNG のチャンクの名前・言語の符号) */
43
43
  export function ascii(data, at, length) {
44
44
  return String.fromCharCode(...data.subarray(at, at + length));
45
45
  }
@@ -85,7 +85,7 @@ export interface CaptionDrcs {
85
85
  }
86
86
  /** 空白として字を描かない (背景だけ塗る) 字。libaribcaption の IsSpaceCharacter と同じ */
87
87
  export declare function isSpace(code: number): boolean;
88
- /** 録画 1 本ぶんの字幕 (`GET /api/recordings/<id>/captions.json`)。`at` は動画の頭からの秒 */
88
+ /** 録画 1 本ぶんの字幕 (`GET /api/recordings/<id>/captions.json`)。`at` は動画の先頭からの秒 */
89
89
  export interface CaptionPages {
90
90
  v: typeof CAPTION_TEXT_VERSION;
91
91
  /** 第 1 言語 */
@@ -5,7 +5,7 @@
5
5
  * (1920x1080 の全画面で 72 画素ほど) に引き伸ばすので、そのまま渡すと 1 点が 4x4 の階段になり、
6
6
  * なめらかに引き伸ばしても階段がぼやけて残る (スピーカー 🔊 の外字など)。
7
7
  *
8
- * 以前は libaribcaption の描き手にパッチを当てて同じことをしていた (#554)。描くのを受け側に移したとき (#571〜#586)
8
+ * 以前は libaribcaption の描画側にパッチを当てて同じことをしていた (#554)。描くのを受け側に移したとき (#571〜#586)
9
9
  * にその直しが落ちたので、**サーバで 1 回だけ** やって、濃淡の画像 (`bits: 4`・`depth: 16`) で送る。受け側は
10
10
  * もともと `bits` 1・2・4・8 を読み、濃さを字の色の不透明度に掛けて引き伸ばすので変えなくてよい。
11
11
  *
@@ -5,7 +5,7 @@
5
5
  * (1920x1080 の全画面で 72 画素ほど) に引き伸ばすので、そのまま渡すと 1 点が 4x4 の階段になり、
6
6
  * なめらかに引き伸ばしても階段がぼやけて残る (スピーカー 🔊 の外字など)。
7
7
  *
8
- * 以前は libaribcaption の描き手にパッチを当てて同じことをしていた (#554)。描くのを受け側に移したとき (#571〜#586)
8
+ * 以前は libaribcaption の描画側にパッチを当てて同じことをしていた (#554)。描くのを受け側に移したとき (#571〜#586)
9
9
  * にその直しが落ちたので、**サーバで 1 回だけ** やって、濃淡の画像 (`bits: 4`・`depth: 16`) で送る。受け側は
10
10
  * もともと `bits` 1・2・4・8 を読み、濃さを字の色の不透明度に掛けて引き伸ばすので変えなくてよい。
11
11
  *
package/dist/dsmcc.d.ts CHANGED
@@ -35,7 +35,7 @@ export interface DiiModule {
35
35
  name: string | null;
36
36
  /** Type 記述子。`multipart/mixed` など。データ放送だけが使う */
37
37
  contentType: string | null;
38
- /** Compression Type 記述子。**0 が zlib**。伸ばしたあとの大きさ付き */
38
+ /** Compression Type 記述子。**0 が zlib**。展開したあとの大きさ付き */
39
39
  compression: {
40
40
  type: number;
41
41
  originalSize: number;
@@ -63,7 +63,7 @@ export interface Ddb {
63
63
  /**
64
64
  * DII (Download Info Indication)。
65
65
  *
66
- * 頭は共通で protocolDiscriminator/dsmccType/messageId/transaction_id と続き、
66
+ * 先頭は共通で protocolDiscriminator/dsmccType/messageId/transaction_id と続き、
67
67
  * adaptationLength ぶん飛ばした先に本体が入っている。
68
68
  */
69
69
  export declare function parseDii(section: Uint8Array): Dii | null;
@@ -74,13 +74,13 @@ export declare function parseDdb(section: Uint8Array): Ddb | null;
74
74
  *
75
75
  * `moduleSize` は 32 ビットで、そのまま信じると DII 1 つで 4GB を確保させられる。
76
76
  * 実際のデータ放送のモジュールは数 KB〜数百 KB、衛星のロゴも全局ぶんで数百 KB なので、
77
- * 十分に余裕を見た値。zlib で伸ばしたあとの大きさにも同じ上限を使う ([bml.ts](bml.ts) の `inflate`)
77
+ * 十分に余裕を見た値。zlib で展開したあとの大きさにも同じ上限を使う ([bml.ts](bml.ts) の `inflate`)
78
78
  */
79
79
  export declare const MAX_MODULE_SIZE: number;
80
80
  /**
81
81
  * 組み立て中のモジュール。DDB が来るたびに然るべき位置へ置く。
82
82
  *
83
- * **入れ物は届いたところまでしか確保しない。** DII の言う大きさを先に確保すると、
83
+ * **バッファは届いたところまでしか確保しない。** DII の言う大きさを先に確保すると、
84
84
  * 大きいと言うだけの DII でメモリを使い切らせられる。`MAX_MODULE_SIZE` を超える
85
85
  * モジュールはブロックを受け取らない (いつまでも揃わない)。
86
86
  *
@@ -105,6 +105,6 @@ export declare class ModuleBuilder {
105
105
  get complete(): boolean;
106
106
  /** ブロックを 1 つ置く。**揃ったら true** */
107
107
  add(blockNumber: number, block: Uint8Array): boolean;
108
- /** 入れ物を広げる。何度も写し直さないよう倍々で、モジュールの大きさまで */
108
+ /** バッファを広げる。何度もコピーし直さないよう倍々で、モジュールの大きさまで */
109
109
  private grow;
110
110
  }
package/dist/dsmcc.js CHANGED
@@ -49,7 +49,7 @@ function messageOf(section) {
49
49
  /**
50
50
  * DII (Download Info Indication)。
51
51
  *
52
- * 頭は共通で protocolDiscriminator/dsmccType/messageId/transaction_id と続き、
52
+ * 先頭は共通で protocolDiscriminator/dsmccType/messageId/transaction_id と続き、
53
53
  * adaptationLength ぶん飛ばした先に本体が入っている。
54
54
  */
55
55
  export function parseDii(section) {
@@ -157,13 +157,13 @@ export function parseDdb(section) {
157
157
  *
158
158
  * `moduleSize` は 32 ビットで、そのまま信じると DII 1 つで 4GB を確保させられる。
159
159
  * 実際のデータ放送のモジュールは数 KB〜数百 KB、衛星のロゴも全局ぶんで数百 KB なので、
160
- * 十分に余裕を見た値。zlib で伸ばしたあとの大きさにも同じ上限を使う ([bml.ts](bml.ts) の `inflate`)
160
+ * 十分に余裕を見た値。zlib で展開したあとの大きさにも同じ上限を使う ([bml.ts](bml.ts) の `inflate`)
161
161
  */
162
162
  export const MAX_MODULE_SIZE = 16 * 1024 * 1024;
163
163
  /**
164
164
  * 組み立て中のモジュール。DDB が来るたびに然るべき位置へ置く。
165
165
  *
166
- * **入れ物は届いたところまでしか確保しない。** DII の言う大きさを先に確保すると、
166
+ * **バッファは届いたところまでしか確保しない。** DII の言う大きさを先に確保すると、
167
167
  * 大きいと言うだけの DII でメモリを使い切らせられる。`MAX_MODULE_SIZE` を超える
168
168
  * モジュールはブロックを受け取らない (いつまでも揃わない)。
169
169
  *
@@ -222,7 +222,7 @@ export class ModuleBuilder {
222
222
  }
223
223
  return this.complete;
224
224
  }
225
- /** 入れ物を広げる。何度も写し直さないよう倍々で、モジュールの大きさまで */
225
+ /** バッファを広げる。何度もコピーし直さないよう倍々で、モジュールの大きさまで */
226
226
  grow(length) {
227
227
  const next = new Uint8Array(Math.min(this.moduleSize, Math.max(length, this.buffer.length * 2)));
228
228
  next.set(this.buffer);
package/dist/eit.d.ts CHANGED
@@ -99,7 +99,7 @@ export interface EitEvent {
99
99
  */
100
100
  series?: EitSeries | null;
101
101
  /**
102
- * CA契約情報記述子 (0xCB) の contract_verification_info。
102
+ * CA 契約情報記述子 (0xCB) の contract_verification_info。
103
103
  * 有料放送の契約確認・復号判定に使う (B-CAS の 0x90 0x3C コマンド)。
104
104
  * 載っていなければ null。詳細の表では言っていないので undefined。
105
105
  */
@@ -124,10 +124,10 @@ export declare const PID_TIME = 20;
124
124
  /**
125
125
  * TDT / TOT のセクションから**放送の実時刻**を読む。別のテーブルなら null。
126
126
  *
127
- * 頭 3 バイトのあとに MJD + BCD が 5 バイト。**TOT も同じ並び**で、後ろに
127
+ * 先頭 3 バイトのあとに MJD + BCD が 5 バイト。**TOT も同じ並び**で、後ろに
128
128
  * 時差の記述子が付くだけなので同じに読める。
129
129
  *
130
- * データ放送 (`bml.ts` の `onTime`) が読み、BML の時計にします
130
+ * データ放送 (`bml.ts` の `onTime`) が読んで、BML の時計にする
131
131
  */
132
132
  export declare function parseTimeTable(section: Uint8Array): number | null;
133
133
  /**
@@ -194,24 +194,24 @@ export declare class ScheduleProgress {
194
194
  * **番号が飛ぶ。** 1 つの `table_id` が受け持つのは 4 日ぶんで、基本は
195
195
  * `0x50` から、詳細は `0x58` から始まる。日本の放送は 8 日ぶんなので、
196
196
  * 実際に流れてくるのは `0x50` `0x51` と `0x58` `0x59` あたりだけで、
197
- * **`0x52`〜`0x57` は永久に来ません**。
197
+ * **`0x52`〜`0x57` は永久に来ない**。
198
198
  *
199
199
  * `0x50` から `last_table_id` まで全部を待っていた頃は、詳細を積んでいる局が
200
200
  * **一度も「揃った」にならず**、どのチャンネルも上限の 10 分 (denpa の `epgChannelTimeout`) まで開きっぱなしに
201
- * なっていました (実機で、詳細の無い BS11 だけが早く閉じていた)。
201
+ * なっていた (実機で、詳細の無い BS11 だけが早く閉じていた)。
202
202
  *
203
- * 見かけた表と、`last_table_id` が指す表だけを見ます。
203
+ * 見かけた表と、`last_table_id` が指す表だけを見る。
204
204
  */
205
205
  get complete(): boolean;
206
- /** その表でまだ来ていない節。セグメントの先頭すら来ていなければ、先頭の番号を数える */
206
+ /** その表でまだ来ていないセクション。セグメントの先頭すら来ていなければ、先頭の番号を数える */
207
207
  private holes;
208
208
  /**
209
209
  * そのセグメントの時間帯がもう過ぎているか。**過ぎたものは待たない。**
210
210
  *
211
- * セグメントは 0:00 から 3 時間ずつの枠で、`table_id` と節番号から
211
+ * セグメントは 0:00 から 3 時間ずつの枠で、`table_id` とセクション番号から
212
212
  * それがいつの枠なのかが決まる。基本は `0x50` が当日 0:00 から 4 日ぶん、
213
213
  * `0x51` がその次の 4 日ぶん。詳細 (`0x58`〜) も同じ並びをもう一度たどる。
214
- * 終わった枠は放送に乗らない (クラスの説明)。そのぶんの番組は、そこが未来だった数日前に取り込んである。
214
+ * 終わった枠は放送されない (クラスの説明)。そのぶんの番組は、そこが未来だった数日前に取り込んである。
215
215
  */
216
216
  private stale;
217
217
  /**
@@ -281,11 +281,11 @@ export declare class EpgReader {
281
281
  * p/f で「いま流れている」と言えるか。
282
282
  *
283
283
  * **`running_status` を当てにしきれない。** 4 (放送中) を入れてくる局も
284
- * あれば、**0 (未定義) しか入れてこない局もある。** 実機の NHK は 74 節
284
+ * あれば、**0 (未定義) しか入れてこない局もある。** 実機の NHK は 74 セクション
285
285
  * ぜんぶ 0 だった。4 だけを見ていると、そういう局では延長追従が丸ごと
286
286
  * 効かなくなる (denpa の docs/data.md)。
287
287
  *
288
- * そこで 0 のときは**節の番号で決める**。p/f は仕様で
288
+ * そこで 0 のときは**セクションの番号で決める**。p/f は仕様で
289
289
  * **section 0 が現在・section 1 が次**と決まっていて、こちらは局の都合で
290
290
  * 変わらない。1 (まもなく) や 2 (停止中) は今までどおり入れない。
291
291
  */