@adanami/kaleido 0.1.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.
Files changed (188) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +104 -0
  3. package/dist/cli/index.js +1489 -0
  4. package/dist/client/assets/abap-08VXUWAP.js +1 -0
  5. package/dist/client/assets/abnfDiagram-N423BO3Z-BNC_bOwN.js +1 -0
  6. package/dist/client/assets/apex-BWPQTe0t.js +1 -0
  7. package/dist/client/assets/arc-BQjVBT7z.js +1 -0
  8. package/dist/client/assets/architecture-TIHT7OUA-rtiyad39.js +1 -0
  9. package/dist/client/assets/architectureDiagram-T3A2C74G-NbyTzj4B.js +36 -0
  10. package/dist/client/assets/array-BifhSqXX.js +1 -0
  11. package/dist/client/assets/azcli-Bc_sGQ0U.js +1 -0
  12. package/dist/client/assets/bat-i0X4ZdIN.js +1 -0
  13. package/dist/client/assets/bicep-B5-_aFwp.js +2 -0
  14. package/dist/client/assets/blockDiagram-VBNYF7ZC-D7RFrUDl.js +132 -0
  15. package/dist/client/assets/c4Diagram-5PPSVZJV-CVtHbZ8m.js +10 -0
  16. package/dist/client/assets/cameligo-DMUM7wLl.js +1 -0
  17. package/dist/client/assets/channel-Cg-CR3Kv.js +1 -0
  18. package/dist/client/assets/chunk-2GRJ4B5K-vymlEdvz.js +1 -0
  19. package/dist/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  20. package/dist/client/assets/chunk-4I5QYGJK-Dru7MVd5.js +1 -0
  21. package/dist/client/assets/chunk-5RXB4S5H-_mW4jXZD.js +231 -0
  22. package/dist/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  23. package/dist/client/assets/chunk-6Q2QTUOP-C-Jr6Q1u.js +88 -0
  24. package/dist/client/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  25. package/dist/client/assets/chunk-7Z6QIM7H-CH0etl6L.js +10 -0
  26. package/dist/client/assets/chunk-GF5L2VYU-l0ZYrFWn.js +206 -0
  27. package/dist/client/assets/chunk-I66GZJ75-CKcp5S17.js +127 -0
  28. package/dist/client/assets/chunk-JQJVKLGR-BXKeK8Yn.js +156 -0
  29. package/dist/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  30. package/dist/client/assets/chunk-KBJHAD2P-DPP8q1jj.js +1 -0
  31. package/dist/client/assets/chunk-KEIR6QF5-BICK3FdT.js +161 -0
  32. package/dist/client/assets/chunk-NSK5VX7P-CJvQSFjo.js +2 -0
  33. package/dist/client/assets/chunk-QR6OTTB3-DAmoW-jk.js +62 -0
  34. package/dist/client/assets/chunk-RYQCIY6F-mEV_z1Vs.js +1 -0
  35. package/dist/client/assets/chunk-UBXNYLIW-B9FQ3EVs.js +1 -0
  36. package/dist/client/assets/chunk-W5SLKNZC-B7q4L6_i.js +1 -0
  37. package/dist/client/assets/chunk-WRU74C26-DwPGHVIY.js +70 -0
  38. package/dist/client/assets/chunk-XXDRQBXY-B_1m3XyG.js +1 -0
  39. package/dist/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  40. package/dist/client/assets/classDiagram-JCYQIIEL-DN-cM4gO.js +1 -0
  41. package/dist/client/assets/classDiagram-v2-OCEON4UE-DN-cM4gO.js +1 -0
  42. package/dist/client/assets/clojure-Cm7r79vr.js +1 -0
  43. package/dist/client/assets/codicon-Brq4_Ui5.ttf +0 -0
  44. package/dist/client/assets/coffee-Ba7i2nA0.js +1 -0
  45. package/dist/client/assets/cose-bilkent-JH36ORCC-_wSiGHW9.js +1 -0
  46. package/dist/client/assets/cpp-C7h46wYY.js +1 -0
  47. package/dist/client/assets/csharp-BKxtCVv1.js +1 -0
  48. package/dist/client/assets/csp-bTuwJoIa.js +1 -0
  49. package/dist/client/assets/css-DIMkf-bt.js +3 -0
  50. package/dist/client/assets/cynefin-VYW2F7L2-BSXkfF6B.js +1 -0
  51. package/dist/client/assets/cynefinDiagram-MW4NZA55-DWqP9pCq.js +62 -0
  52. package/dist/client/assets/cypher-CVaqCwHa.js +1 -0
  53. package/dist/client/assets/cytoscape.esm-C2x7inlt.js +321 -0
  54. package/dist/client/assets/dagre-Buvkdvvj.js +1 -0
  55. package/dist/client/assets/dagre-VZM6K2ZE-D-6mKeP4.js +4 -0
  56. package/dist/client/assets/dart-onAF5SnQ.js +1 -0
  57. package/dist/client/assets/defaultLocale-BFoDCU3G.js +1 -0
  58. package/dist/client/assets/diagram-7IWD3JNH-DwifWIOM.js +30 -0
  59. package/dist/client/assets/diagram-B4RE2ZJO-CZy5Cter.js +3 -0
  60. package/dist/client/assets/diagram-LBJQPF4R-D64OHGQ1.js +24 -0
  61. package/dist/client/assets/diagram-Q27KOJAE-CYJYm3MT.js +24 -0
  62. package/dist/client/assets/diagram-UB23O5K3-D9XqDFWB.js +41 -0
  63. package/dist/client/assets/dist-D9557-UX.js +1 -0
  64. package/dist/client/assets/dockerfile-DZFCIeNp.js +1 -0
  65. package/dist/client/assets/ebnfDiagram-BXEA7PRR-DXv0laGY.js +1 -0
  66. package/dist/client/assets/ecl-D05T4iGw.js +1 -0
  67. package/dist/client/assets/editor.worker-D9zwrD0f.js +30 -0
  68. package/dist/client/assets/elixir-6RTg0lbw.js +1 -0
  69. package/dist/client/assets/erDiagram-JOGREHBK-DtgpDnFq.js +85 -0
  70. package/dist/client/assets/eventmodeling-45OFAUF4-CIrFy3PN.js +1 -0
  71. package/dist/client/assets/flow9-C5_-GSwl.js +1 -0
  72. package/dist/client/assets/flowDiagram-UKHOOZJN-CsaPoqV0.js +1 -0
  73. package/dist/client/assets/freemarker2-C0K9bJg3.js +3 -0
  74. package/dist/client/assets/fsharp-C8Ef5oNN.js +1 -0
  75. package/dist/client/assets/ganttDiagram-PKOTCBZU-DbPT_9cm.js +292 -0
  76. package/dist/client/assets/gitGraph-TEB2WS4Q-BSzJ-zot.js +1 -0
  77. package/dist/client/assets/gitGraphDiagram-DS77QQ5N-Dv47ST8y.js +106 -0
  78. package/dist/client/assets/go-C-y9NEjX.js +1 -0
  79. package/dist/client/assets/graphlib-DS17s2tU.js +1 -0
  80. package/dist/client/assets/graphql-fmXr3nnJ.js +1 -0
  81. package/dist/client/assets/handlebars-C5Uh7yG8.js +1 -0
  82. package/dist/client/assets/hcl-CpzslTdj.js +1 -0
  83. package/dist/client/assets/html-CVq09h_T.js +1 -0
  84. package/dist/client/assets/index-BdNjwiL_.css +1 -0
  85. package/dist/client/assets/index-C-Az4wQZ.js +1288 -0
  86. package/dist/client/assets/info-DKCQHKI2-DrnuTwtV.js +1 -0
  87. package/dist/client/assets/infoDiagram-6WML65LV-BbOLkXMO.js +2 -0
  88. package/dist/client/assets/ini-sBoK_t0W.js +1 -0
  89. package/dist/client/assets/init-C-OQMol4.js +1 -0
  90. package/dist/client/assets/ishikawaDiagram-WSZJBQD7-BU0Xf4Jv.js +70 -0
  91. package/dist/client/assets/java-BEtHBSE6.js +1 -0
  92. package/dist/client/assets/javascript-BLNuR3ma.js +1 -0
  93. package/dist/client/assets/journeyDiagram-NVQOT4AX-Be02AxgF.js +139 -0
  94. package/dist/client/assets/julia-Bri6UV-V.js +1 -0
  95. package/dist/client/assets/kanban-definition-27J2QSJJ-DAJOmq0i.js +89 -0
  96. package/dist/client/assets/katex-CXMH3UgJ.js +257 -0
  97. package/dist/client/assets/kotlin-BOotOW0E.js +1 -0
  98. package/dist/client/assets/less-B9JPFI3C.js +2 -0
  99. package/dist/client/assets/lexon-CfSJPG6W.js +1 -0
  100. package/dist/client/assets/line-CY8MZqA_.js +1 -0
  101. package/dist/client/assets/linear-VmQ0cgWf.js +1 -0
  102. package/dist/client/assets/liquid-CqxeTiTR.js +1 -0
  103. package/dist/client/assets/lua-CsQS60Ue.js +1 -0
  104. package/dist/client/assets/m3-D-oSqn_W.js +1 -0
  105. package/dist/client/assets/map-BaFkSB1l.js +1 -0
  106. package/dist/client/assets/markdown-Cimd5fb3.js +1 -0
  107. package/dist/client/assets/mdx-CZgnrcpZ.js +1 -0
  108. package/dist/client/assets/mermaid-parser.core-BNyH4fWd.js +7 -0
  109. package/dist/client/assets/mermaid.core-D6SqRXfj.js +42 -0
  110. package/dist/client/assets/mindmap-definition-FAOFIHXS-Cb4njDU8.js +96 -0
  111. package/dist/client/assets/mips-CIPQ_RoX.js +1 -0
  112. package/dist/client/assets/msdax-DauUninz.js +1 -0
  113. package/dist/client/assets/mysql-SOo6toE5.js +1 -0
  114. package/dist/client/assets/objective-c-FvmIjYaQ.js +1 -0
  115. package/dist/client/assets/ordinal-BDEzSJ7C.js +1 -0
  116. package/dist/client/assets/packet-7NZHBO7P-C0OLtmrN.js +1 -0
  117. package/dist/client/assets/pascal-DrH0SRf2.js +1 -0
  118. package/dist/client/assets/pascaligo-D-ptJ9y-.js +1 -0
  119. package/dist/client/assets/path-fybaL0A-.js +1 -0
  120. package/dist/client/assets/pegDiagram-VL7TDLO6-CUlmavTd.js +1 -0
  121. package/dist/client/assets/perl-oz_6vUea.js +1 -0
  122. package/dist/client/assets/pgsql-DTj74zXo.js +1 -0
  123. package/dist/client/assets/php-nr791fC2.js +1 -0
  124. package/dist/client/assets/pie-RZYD4A2V-BOaXF8wo.js +1 -0
  125. package/dist/client/assets/pieDiagram-7S7Q4E2Y-DAuLOXyl.js +39 -0
  126. package/dist/client/assets/pla-CopQ2nXW.js +1 -0
  127. package/dist/client/assets/postiats-43DmfD33.js +1 -0
  128. package/dist/client/assets/powerquery-D3hlyOfw.js +1 -0
  129. package/dist/client/assets/powershell-DmHpPYUd.js +1 -0
  130. package/dist/client/assets/protobuf-C531GsRP.js +2 -0
  131. package/dist/client/assets/pug-Z5eAx3Zn.js +1 -0
  132. package/dist/client/assets/python-BKTOsIAC.js +1 -0
  133. package/dist/client/assets/qsharp-DkqhCAOL.js +1 -0
  134. package/dist/client/assets/quadrantDiagram-CIZ2JOQS-6T2tUzKE.js +7 -0
  135. package/dist/client/assets/r-BwWrilGY.js +1 -0
  136. package/dist/client/assets/radar-I7S5WNFK-84ZPjfzV.js +1 -0
  137. package/dist/client/assets/railroad-3IZDKUUU-BIancogu.js +1 -0
  138. package/dist/client/assets/railroad-abnf-AHOZXSZD-DY5Umeyq.js +1 -0
  139. package/dist/client/assets/railroad-ebnf-EBAXGLYW-BvHqcDCh.js +1 -0
  140. package/dist/client/assets/railroad-peg-LSFZ7HO6-Bcfw7tSJ.js +1 -0
  141. package/dist/client/assets/railroadDiagram-AXF67PYL-CG4n3oVN.js +1 -0
  142. package/dist/client/assets/razor-D3D2-y9K.js +1 -0
  143. package/dist/client/assets/redis-ClamHrr6.js +1 -0
  144. package/dist/client/assets/redshift-DT7zqm-g.js +1 -0
  145. package/dist/client/assets/requirementDiagram-LRYGKXZP-mZX3Srsb.js +84 -0
  146. package/dist/client/assets/restructuredtext-BYgofb2h.js +1 -0
  147. package/dist/client/assets/rough.esm-Dy-Kn_BL.js +1 -0
  148. package/dist/client/assets/ruby-DezsRK8O.js +1 -0
  149. package/dist/client/assets/rust-DdL9SqIa.js +1 -0
  150. package/dist/client/assets/sankeyDiagram-W5VNT64P-yPa5u_0L.js +40 -0
  151. package/dist/client/assets/sb-CcwsVR0C.js +1 -0
  152. package/dist/client/assets/scala-DHpiXF5c.js +1 -0
  153. package/dist/client/assets/scheme-BeGwcela.js +1 -0
  154. package/dist/client/assets/scss-gp-XZpBa.js +3 -0
  155. package/dist/client/assets/sequenceDiagram-SI44F4Z6-CyNIlTWm.js +162 -0
  156. package/dist/client/assets/shell-CC2rA5mh.js +1 -0
  157. package/dist/client/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  158. package/dist/client/assets/solidity-BEEn4gHE.js +1 -0
  159. package/dist/client/assets/sophia-CRfGWb83.js +1 -0
  160. package/dist/client/assets/sparql-D_Lu-MrJ.js +1 -0
  161. package/dist/client/assets/sql-NEE52Syq.js +1 -0
  162. package/dist/client/assets/src-CUuFImQF.js +1 -0
  163. package/dist/client/assets/st-DbInun42.js +1 -0
  164. package/dist/client/assets/stateDiagram-OKZ733FA-CPylCUxu.js +1 -0
  165. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-87clA1Da.js +1 -0
  166. package/dist/client/assets/swift-Bxkupp3x.js +1 -0
  167. package/dist/client/assets/swimlanes-SLNWSIFB-DBNGs0gR.js +2 -0
  168. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-DrshQU12.js +8 -0
  169. package/dist/client/assets/systemverilog-Bz4Y3fRF.js +1 -0
  170. package/dist/client/assets/tcl-DISqw1ZD.js +1 -0
  171. package/dist/client/assets/timeline-definition-Z64GVDOM-BAUrOlpT.js +120 -0
  172. package/dist/client/assets/treeView-QDETBFTQ-DWU_Tu3e.js +1 -0
  173. package/dist/client/assets/treemap-6X3UGDF4-C0VSsv4b.js +1 -0
  174. package/dist/client/assets/twig-De2hgUGE.js +1 -0
  175. package/dist/client/assets/typescript-DHaWXPl5.js +1 -0
  176. package/dist/client/assets/typespec-B8J7ngcE.js +1 -0
  177. package/dist/client/assets/vb-DV3o63ZY.js +1 -0
  178. package/dist/client/assets/vennDiagram-T6HMQDX7-DMDrxVrh.js +34 -0
  179. package/dist/client/assets/wardley-OPB4EBWU-2FXuD4eH.js +1 -0
  180. package/dist/client/assets/wardleyDiagram-T6FBY63Y-B6MdwST-.js +78 -0
  181. package/dist/client/assets/wgsl-DpFanUEy.js +298 -0
  182. package/dist/client/assets/xml-UOCAZ6xX.js +1 -0
  183. package/dist/client/assets/xychartDiagram-ELKLHX3M-4m0lgQEp.js +7 -0
  184. package/dist/client/assets/yaml-c5v3wojq.js +1 -0
  185. package/dist/client/index.html +22 -0
  186. package/dist/eslint-WWJOZ2KR.js +140 -0
  187. package/dist/server/ts/worker.js +360 -0
  188. package/package.json +85 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 bubble0601
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,104 @@
1
+ # kaleido
2
+
3
+ Monaco Editor ベースのローカル Web ファイルビューア。CLI から起動し、ブラウザで手元のファイルを読む・比較する・レビューする。git リポジトリなら diff レビューができ、**git 管理外のディレクトリでもそのまま開ける**。
4
+
5
+ ![diff から Docs・Markdown プレビュー・HTML プレビューまでの操作](docs/kaleido-demo.gif)
6
+
7
+ ## 特長
8
+
9
+ - 対象プロジェクトの `ts.LanguageService` を動かすので、型ホバー・定義ジャンプ・参照検索が IDE と同じ内容になる
10
+ - Markdown は目次と mermaid 付きでプレビュー、HTML はレンダリングして表示
11
+ - 読みながらその場で編集・保存でき、外部からの変更も自動で反映される
12
+ - 行コメントとレビュー済みマークはサーバー側に残り、AI へ渡せる形式でコピーできる
13
+
14
+ ## インストール
15
+
16
+ Node.js 20 以上が必要。コマンド名は `kaleido`。
17
+
18
+ ```bash
19
+ npx @adanami/kaleido # インストールせずに試す
20
+ npm install -g @adanami/kaleido # 常用する (pnpm add -g でも可)
21
+ ```
22
+
23
+ ## 使い方
24
+
25
+ ```bash
26
+ kaleido # cwd。git 管理下なら自動判定、そうでなければファイル閲覧モード
27
+ kaleido ./docs # そのディレクトリを開く
28
+ kaleido working # unstaged changes (index vs working tree)
29
+ kaleido staged # staged changes (HEAD vs index)
30
+ kaleido <commit> # そのコミットの diff (<commit>^ vs <commit>)
31
+ kaleido <target> <base> # 任意の比較 (base vs target)
32
+
33
+ kaleido comments [target] [base] # 保存済みコメントを AI プロンプト形式で stdout に出力
34
+ ```
35
+
36
+ 位置引数は「ディレクトリ」または「比較範囲」。commit-ish として解決できなければディレクトリと解釈する (`--dir` で明示もできる)。
37
+ 引数なしのときは staged 変更 → working 変更 → 直近コミットの順に自動判定する。
38
+
39
+ 表示中の状態は URL クエリ (`?target=&base=&path=&tab=`) に同期されるので、リロード・共有できる。
40
+
41
+ | オプション | 説明 |
42
+ |---|---|
43
+ | `--port <port>` | 使用ポート (既定 4890、埋まっていれば自動加算) |
44
+ | `--host <host>` | バインドホスト (既定 127.0.0.1) |
45
+ | `--dir <path>` | 対象ディレクトリ (既定 cwd)。`--repo` は別名 |
46
+ | `--exclude <pattern>` | ファイル一覧から隠すパターンを追加 (繰り返し可) |
47
+ | `--no-open` | ブラウザを自動で開かない |
48
+ | `--no-keep-alive` | 全タブが閉じられたらサーバーを終了する |
49
+
50
+ キーボード: `j` / `k` でファイル移動、`v` でレビュー済みトグル、⌘P で Quick Open、⌘B でサイドバー、⌘S で保存。
51
+
52
+ ## 機能
53
+
54
+ - **サイドバー**: `Changes` (比較対象) / `Files` (全ファイル) / `Docs` (Markdown・HTML だけの一覧) をアイコン帯で切替
55
+ - **表示モード**: side-by-side diff / inline diff / ファイル単体表示
56
+ - **Markdown プレビュー**: `github-markdown-css` + 日本語の組版調整。見出しの目次、mermaid の描画、コードブロックのコピー。編集中の内容をライブで反映
57
+ - **HTML プレビュー**: `/preview` から配信するので相対パスの CSS / JS / 画像も読め、スクリプトも動く
58
+ - **型情報と診断**: hover / 型エラー / 定義ジャンプ / 参照検索と、プロジェクトの eslint による行マーカー
59
+ - **レビュー** (git のみ): 比較範囲の切替、内容ハッシュで残るレビュー済みマーク、行/範囲コメント。状態はサーバー側にファイル保存されるのでブラウザを変えても消えない
60
+ - **設定**: 歯車から配色 (既定は OS 追従) と文字サイズ、ライセンス表記
61
+
62
+ ![型情報のホバーと行コメント](docs/kaleido-demo-hover-comment.gif)
63
+
64
+ ### ファイル一覧の除外設定
65
+
66
+ 既定で `node_modules` / `.git` / `dist` / `.next` などを除外する (git リポジトリでは加えて gitignore が効く)。
67
+ ルート直下に `.kaleido.json` を置くと上書きできる。
68
+
69
+ ```json
70
+ {
71
+ "exclude": ["docs/generated", "**/*.min.js"],
72
+ "useDefaultExcludes": true,
73
+ "maxFiles": 20000
74
+ }
75
+ ```
76
+
77
+ `exclude` は gitignore 風のパターン (`/` を含まなければ任意階層のベース名にマッチ)。
78
+ `useDefaultExcludes: false` で既定の除外リストを使わない。`maxFiles` は一覧の件数上限。
79
+
80
+ ## 開発
81
+
82
+ ```bash
83
+ pnpm install
84
+ pnpm dev # API サーバー (tsx watch) + vite dev server
85
+ pnpm typecheck
86
+ pnpm build # tsup (cli/server) + vite build (client)
87
+ ```
88
+
89
+ ## アーキテクチャ
90
+
91
+ ```
92
+ src/
93
+ ├── shared/ # クライアント・サーバー共有型
94
+ ├── cli/ # commander エントリ。引数解釈 → サーバー起動 → ブラウザオープン
95
+ ├── server/ # Hono。files (git 非依存のファイル層) / git / ts / store / eslint / watcher
96
+ └── client/ # React 19 + Monaco
97
+ ```
98
+
99
+ 設計上のポイント:
100
+
101
+ - **TS ワーカーはバンドルしない**: 型情報はサーバーで対象プロジェクトの TypeScript を動かし、`/api/lang/*` への proxy provider で供給する
102
+ - **型ホバーは modified 側のみ**: old 側は当時の依存を再現できず誤情報になるため
103
+ - **git は「あれば使う」層**: 比較なしの状態も `{ target: 'browse', base: 'browse' }` という擬似 range で表し、diff モードと処理を共通化している
104
+ - **プレビューは隔離する**: `allow-same-origin` なしの sandbox iframe で開き、`/api/*` は `Origin` を見て別オリジンからのリクエストを 403 にする