@sugukuru/mcp-houjin-bangou 0.2.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/CHANGELOG.md +86 -0
- package/LICENSE +21 -0
- package/README.ja.md +196 -0
- package/README.md +198 -0
- package/dist/api/csv-parser.d.ts +37 -0
- package/dist/api/csv-parser.d.ts.map +1 -0
- package/dist/api/csv-parser.js +189 -0
- package/dist/api/csv-parser.js.map +1 -0
- package/dist/api/nta-client.d.ts +71 -0
- package/dist/api/nta-client.d.ts.map +1 -0
- package/dist/api/nta-client.js +117 -0
- package/dist/api/nta-client.js.map +1 -0
- package/dist/api/rate-limiter.d.ts +39 -0
- package/dist/api/rate-limiter.d.ts.map +1 -0
- package/dist/api/rate-limiter.js +74 -0
- package/dist/api/rate-limiter.js.map +1 -0
- package/dist/completion/handler.d.ts +19 -0
- package/dist/completion/handler.d.ts.map +1 -0
- package/dist/completion/handler.js +136 -0
- package/dist/completion/handler.js.map +1 -0
- package/dist/domain/check-digit.d.ts +47 -0
- package/dist/domain/check-digit.d.ts.map +1 -0
- package/dist/domain/check-digit.js +91 -0
- package/dist/domain/check-digit.js.map +1 -0
- package/dist/domain/close-cause-codes.d.ts +28 -0
- package/dist/domain/close-cause-codes.d.ts.map +1 -0
- package/dist/domain/close-cause-codes.js +27 -0
- package/dist/domain/close-cause-codes.js.map +1 -0
- package/dist/domain/corporate-number.d.ts +81 -0
- package/dist/domain/corporate-number.d.ts.map +1 -0
- package/dist/domain/corporate-number.js +88 -0
- package/dist/domain/corporate-number.js.map +1 -0
- package/dist/domain/invoice-codes.d.ts +142 -0
- package/dist/domain/invoice-codes.d.ts.map +1 -0
- package/dist/domain/invoice-codes.js +106 -0
- package/dist/domain/invoice-codes.js.map +1 -0
- package/dist/domain/invoice-number.d.ts +47 -0
- package/dist/domain/invoice-number.d.ts.map +1 -0
- package/dist/domain/invoice-number.js +71 -0
- package/dist/domain/invoice-number.js.map +1 -0
- package/dist/domain/kind-codes.d.ts +62 -0
- package/dist/domain/kind-codes.d.ts.map +1 -0
- package/dist/domain/kind-codes.js +68 -0
- package/dist/domain/kind-codes.js.map +1 -0
- package/dist/domain/normalizer.d.ts +50 -0
- package/dist/domain/normalizer.d.ts.map +1 -0
- package/dist/domain/normalizer.js +280 -0
- package/dist/domain/normalizer.js.map +1 -0
- package/dist/domain/prefecture-codes.d.ts +61 -0
- package/dist/domain/prefecture-codes.d.ts.map +1 -0
- package/dist/domain/prefecture-codes.js +67 -0
- package/dist/domain/prefecture-codes.js.map +1 -0
- package/dist/domain/process-codes.d.ts +52 -0
- package/dist/domain/process-codes.d.ts.map +1 -0
- package/dist/domain/process-codes.js +28 -0
- package/dist/domain/process-codes.js.map +1 -0
- package/dist/lib/env.d.ts +35 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/env.js +40 -0
- package/dist/lib/env.js.map +1 -0
- package/dist/lib/errors.d.ts +47 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +92 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/mcp-logger.d.ts +29 -0
- package/dist/lib/mcp-logger.d.ts.map +1 -0
- package/dist/lib/mcp-logger.js +98 -0
- package/dist/lib/mcp-logger.js.map +1 -0
- package/dist/lib/pagination.d.ts +28 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +48 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/result.d.ts +29 -0
- package/dist/lib/result.d.ts.map +1 -0
- package/dist/lib/result.js +36 -0
- package/dist/lib/result.js.map +1 -0
- package/dist/lib/trace-context.d.ts +36 -0
- package/dist/lib/trace-context.d.ts.map +1 -0
- package/dist/lib/trace-context.js +77 -0
- package/dist/lib/trace-context.js.map +1 -0
- package/dist/mcp.d.ts +9 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +54 -0
- package/dist/mcp.js.map +1 -0
- package/dist/prompts/business-card-to-database.d.ts +12 -0
- package/dist/prompts/business-card-to-database.d.ts.map +1 -0
- package/dist/prompts/business-card-to-database.js +80 -0
- package/dist/prompts/business-card-to-database.js.map +1 -0
- package/dist/prompts/customer-master-dedup.d.ts +9 -0
- package/dist/prompts/customer-master-dedup.d.ts.map +1 -0
- package/dist/prompts/customer-master-dedup.js +77 -0
- package/dist/prompts/customer-master-dedup.js.map +1 -0
- package/dist/prompts/index.d.ts +3 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +9 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/sales-list-enrichment.d.ts +9 -0
- package/dist/prompts/sales-list-enrichment.d.ts.map +1 -0
- package/dist/prompts/sales-list-enrichment.js +84 -0
- package/dist/prompts/sales-list-enrichment.js.map +1 -0
- package/dist/resources/attribution.d.ts +9 -0
- package/dist/resources/attribution.d.ts.map +1 -0
- package/dist/resources/attribution.js +27 -0
- package/dist/resources/attribution.js.map +1 -0
- package/dist/resources/corporate-template.d.ts +14 -0
- package/dist/resources/corporate-template.d.ts.map +1 -0
- package/dist/resources/corporate-template.js +87 -0
- package/dist/resources/corporate-template.js.map +1 -0
- package/dist/resources/index.d.ts +8 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +9 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/ui-resources.d.ts +9 -0
- package/dist/resources/ui-resources.d.ts.map +1 -0
- package/dist/resources/ui-resources.js +59 -0
- package/dist/resources/ui-resources.js.map +1 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +217 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/get-attribution.d.ts +25 -0
- package/dist/tools/get-attribution.d.ts.map +1 -0
- package/dist/tools/get-attribution.js +120 -0
- package/dist/tools/get-attribution.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/lookup-by-number.d.ts +82 -0
- package/dist/tools/lookup-by-number.d.ts.map +1 -0
- package/dist/tools/lookup-by-number.js +157 -0
- package/dist/tools/lookup-by-number.js.map +1 -0
- package/dist/tools/normalize-company-name.d.ts +60 -0
- package/dist/tools/normalize-company-name.d.ts.map +1 -0
- package/dist/tools/normalize-company-name.js +130 -0
- package/dist/tools/normalize-company-name.js.map +1 -0
- package/dist/tools/search-by-name.d.ts +96 -0
- package/dist/tools/search-by-name.d.ts.map +1 -0
- package/dist/tools/search-by-name.js +176 -0
- package/dist/tools/search-by-name.js.map +1 -0
- package/dist/tools/validate-check-digit.d.ts +35 -0
- package/dist/tools/validate-check-digit.d.ts.map +1 -0
- package/dist/tools/validate-check-digit.js +105 -0
- package/dist/tools/validate-check-digit.js.map +1 -0
- package/dist/ui/corporate-card/mcp-app.html +157 -0
- package/dist/ui/search-results/mcp-app.html +158 -0
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 表記揺れ正規化 (T7 の核)
|
|
3
|
+
* Company name normalization (T7 core logic)
|
|
4
|
+
* Normalisasi nama perusahaan (inti T7)
|
|
5
|
+
*
|
|
6
|
+
* ポジショニング / Positioning:
|
|
7
|
+
* 国税庁 API `target=1` が既にあいまい検索を内蔵する (第二編 §4.6.2):
|
|
8
|
+
* - ひらがな → カタカナ置換
|
|
9
|
+
* - 英小文字 → 英大文字置換
|
|
10
|
+
* - 中点 (・) や全角スペース削除
|
|
11
|
+
*
|
|
12
|
+
* T7 はこれらを重複実装せず、国税庁が拾えない 7 パターンを補完:
|
|
13
|
+
* 1. (株)/㈱/株式会社 表記揺れ (前株・後株・省略 の3展開)
|
|
14
|
+
* 2. 法人種別 [株式/有限/合同/合名/合資/一般社団/...] の正規化 + 分離
|
|
15
|
+
* 3. 英語法人名 → 日本語候補 (K.K. / Kabushiki Kaisha / Inc. 検出)
|
|
16
|
+
* 4. 半角/全角英数字の正規化 (NFKC)
|
|
17
|
+
* 5. 旧字体 → 新字体 (髙 → 高、齋 → 斎 等)
|
|
18
|
+
* 6. 異体字セレクタ (IVS / VS) 除去
|
|
19
|
+
* 7. 空白類の揃え (タブ・連続スペース・全角/半角スペース)
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* 旧字体 → 新字体 辞書 (JIS 第一・第二水準への縮退補助)
|
|
23
|
+
* 根拠: 法務省「戸籍統一文字」「人名用漢字の新字旧字対応表」
|
|
24
|
+
*
|
|
25
|
+
* 国税庁 API の `target=1` (第二編 §4.6.2) は ひらがな↔カタカナ・英大小・中点削除は
|
|
26
|
+
* 吸収するが、旧字体→新字体変換は未対応なので本 lookup で補う。
|
|
27
|
+
*/
|
|
28
|
+
const OLD_TO_NEW = {
|
|
29
|
+
髙: '高',
|
|
30
|
+
﨑: '崎',
|
|
31
|
+
齋: '斎',
|
|
32
|
+
齊: '斉',
|
|
33
|
+
濵: '浜',
|
|
34
|
+
濱: '浜',
|
|
35
|
+
德: '徳',
|
|
36
|
+
眞: '真',
|
|
37
|
+
曻: '昇',
|
|
38
|
+
晄: '晃',
|
|
39
|
+
淸: '清',
|
|
40
|
+
廣: '広',
|
|
41
|
+
禮: '礼',
|
|
42
|
+
藪: '薮',
|
|
43
|
+
邉: '辺',
|
|
44
|
+
邊: '辺',
|
|
45
|
+
澤: '沢',
|
|
46
|
+
國: '国',
|
|
47
|
+
團: '団',
|
|
48
|
+
寳: '宝',
|
|
49
|
+
寶: '宝',
|
|
50
|
+
應: '応',
|
|
51
|
+
靑: '青',
|
|
52
|
+
權: '権',
|
|
53
|
+
氣: '気',
|
|
54
|
+
專: '専',
|
|
55
|
+
單: '単',
|
|
56
|
+
學: '学',
|
|
57
|
+
樂: '楽',
|
|
58
|
+
劍: '剣',
|
|
59
|
+
續: '続',
|
|
60
|
+
圖: '図',
|
|
61
|
+
鐵: '鉄',
|
|
62
|
+
齒: '歯',
|
|
63
|
+
歷: '歴',
|
|
64
|
+
藝: '芸',
|
|
65
|
+
戰: '戦',
|
|
66
|
+
驛: '駅',
|
|
67
|
+
檢: '検',
|
|
68
|
+
營: '営',
|
|
69
|
+
舊: '旧',
|
|
70
|
+
醫: '医',
|
|
71
|
+
號: '号',
|
|
72
|
+
獨: '独',
|
|
73
|
+
讀: '読',
|
|
74
|
+
變: '変',
|
|
75
|
+
體: '体',
|
|
76
|
+
};
|
|
77
|
+
const KIND_KEYWORDS_JA = [
|
|
78
|
+
{ word: '株式会社', hint: 'kabushiki_kaisha' },
|
|
79
|
+
{ word: '㈱', hint: 'kabushiki_kaisha' },
|
|
80
|
+
{ word: '(株)', hint: 'kabushiki_kaisha' },
|
|
81
|
+
{ word: '(株)', hint: 'kabushiki_kaisha' },
|
|
82
|
+
{ word: '有限会社', hint: 'yugen_kaisha' },
|
|
83
|
+
{ word: '(有)', hint: 'yugen_kaisha' },
|
|
84
|
+
{ word: '(有)', hint: 'yugen_kaisha' },
|
|
85
|
+
{ word: '㈲', hint: 'yugen_kaisha' },
|
|
86
|
+
{ word: '合同会社', hint: 'godo_kaisha' },
|
|
87
|
+
{ word: '合名会社', hint: 'gomei_kaisha' },
|
|
88
|
+
{ word: '合資会社', hint: 'goshi_kaisha' },
|
|
89
|
+
{ word: '一般社団法人', hint: 'ippan_shadan_hojin' },
|
|
90
|
+
{ word: '一般財団法人', hint: 'ippan_zaidan_hojin' },
|
|
91
|
+
{ word: '公益社団法人', hint: 'koueki_shadan_hojin' },
|
|
92
|
+
{ word: '公益財団法人', hint: 'koueki_zaidan_hojin' },
|
|
93
|
+
{ word: '特定非営利活動法人', hint: 'npo_hojin' },
|
|
94
|
+
{ word: 'NPO法人', hint: 'npo_hojin' },
|
|
95
|
+
];
|
|
96
|
+
const EN_SUFFIX_PATTERNS = [
|
|
97
|
+
{ regex: /\b(K\.?\s*K\.?)\b/gi, hint: 'kabushiki_kaisha' },
|
|
98
|
+
{ regex: /\bKabushiki\s*Kaisha\b/gi, hint: 'kabushiki_kaisha' },
|
|
99
|
+
{ regex: /\bCo\.?\s*,?\s*Ltd\.?\b/gi, hint: 'kabushiki_kaisha' },
|
|
100
|
+
{ regex: /\bCorp\.?\b/gi, hint: 'other_registered' },
|
|
101
|
+
{ regex: /\bInc\.?\b/gi, hint: 'foreign_company' },
|
|
102
|
+
{ regex: /\bLLC\b/gi, hint: 'godo_kaisha' },
|
|
103
|
+
];
|
|
104
|
+
/**
|
|
105
|
+
* 文字列を正規化して法人名候補リストを生成
|
|
106
|
+
*
|
|
107
|
+
* @param raw 入力文字列 (名刺OCR や手入力の揺れを含む)
|
|
108
|
+
* @returns 最大10件の正規化候補
|
|
109
|
+
*/
|
|
110
|
+
export function normalizeCompanyName(raw) {
|
|
111
|
+
const trimmed = raw.trim();
|
|
112
|
+
if (trimmed.length === 0) {
|
|
113
|
+
return {
|
|
114
|
+
original: raw,
|
|
115
|
+
extracted_core_name: '',
|
|
116
|
+
normalized_candidates: [],
|
|
117
|
+
fallback_note: 'Empty input',
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const appliedRules = [];
|
|
121
|
+
// Rule 7: 空白類の揃え (NFKC で全角→半角 の前段、連続空白の除去)
|
|
122
|
+
let work = trimmed.replace(/[\t\u3000]+/g, ' ').replace(/ {2,}/g, ' ');
|
|
123
|
+
if (work !== trimmed)
|
|
124
|
+
appliedRules.push('rule7_whitespace');
|
|
125
|
+
// Rule 4: NFKC 正規化 (半角/全角英数字の揃え)
|
|
126
|
+
const beforeNfkc = work;
|
|
127
|
+
work = work.normalize('NFKC');
|
|
128
|
+
if (work !== beforeNfkc)
|
|
129
|
+
appliedRules.push('rule4_nfkc');
|
|
130
|
+
// Rule 6: 異体字セレクタ除去 (BMP Variation Selectors + Supplementary IVS)
|
|
131
|
+
// 注意: \uE0100 は 4 hex digit 評価 + 余剰トークンになり char class を破壊するため
|
|
132
|
+
// \u{...} 表記を u フラグ下で使用する必要がある
|
|
133
|
+
const beforeVs = work;
|
|
134
|
+
work = work.replace(/[\uFE00-\uFE0F]|[\u{E0100}-\u{E01EF}]/gu, '');
|
|
135
|
+
if (work !== beforeVs)
|
|
136
|
+
appliedRules.push('rule6_ivs_removed');
|
|
137
|
+
// Rule 5: 旧字体 → 新字体 (候補として別バージョンも保持)
|
|
138
|
+
let newVariant = null;
|
|
139
|
+
const newWork = applyOldToNew(work);
|
|
140
|
+
if (newWork !== work) {
|
|
141
|
+
newVariant = newWork;
|
|
142
|
+
appliedRules.push('rule5_old_to_new_char');
|
|
143
|
+
}
|
|
144
|
+
// Rule 1/2: 法人種別検出 + 前株/後株判定
|
|
145
|
+
const kindDetection = detectKind(work);
|
|
146
|
+
// Rule 3: 英語法人名検出
|
|
147
|
+
const enDetection = detectEnglishKind(work);
|
|
148
|
+
// ターゲット推定
|
|
149
|
+
const suggestedTarget = enDetection.hint !== null ? '3' : '1';
|
|
150
|
+
// コア名 (法人種別を取り除いた部分)
|
|
151
|
+
const coreName = stripKindFromName(work, kindDetection);
|
|
152
|
+
// 候補生成
|
|
153
|
+
const candidates = [];
|
|
154
|
+
// a. 正規化済みの元のまま (core name 保持)
|
|
155
|
+
candidates.push({
|
|
156
|
+
name: work,
|
|
157
|
+
kind_hint: kindDetection.hint ?? enDetection.hint ?? 'unknown',
|
|
158
|
+
prefix_or_suffix: kindDetection.position,
|
|
159
|
+
suggested_target: suggestedTarget,
|
|
160
|
+
confidence: 0.95,
|
|
161
|
+
applied_rules: [...appliedRules],
|
|
162
|
+
});
|
|
163
|
+
// b. 法人種別を除去したコア名のみ
|
|
164
|
+
if (coreName !== work && coreName.length > 0) {
|
|
165
|
+
candidates.push({
|
|
166
|
+
name: coreName,
|
|
167
|
+
kind_hint: kindDetection.hint ?? 'unknown',
|
|
168
|
+
prefix_or_suffix: 'none',
|
|
169
|
+
suggested_target: suggestedTarget,
|
|
170
|
+
confidence: 0.9,
|
|
171
|
+
applied_rules: [...appliedRules, 'rule2_kind_separated'],
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
// c. 前株 ↔ 後株 の反転候補 (株式会社のみ)
|
|
175
|
+
if (kindDetection.hint === 'kabushiki_kaisha' && coreName.length > 0) {
|
|
176
|
+
if (kindDetection.position === 'mae_kabu') {
|
|
177
|
+
candidates.push({
|
|
178
|
+
name: `${coreName}株式会社`,
|
|
179
|
+
kind_hint: 'kabushiki_kaisha',
|
|
180
|
+
prefix_or_suffix: 'ato_kabu',
|
|
181
|
+
suggested_target: suggestedTarget,
|
|
182
|
+
confidence: 0.75,
|
|
183
|
+
applied_rules: [...appliedRules, 'rule1_kabu_position_inverted'],
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
else if (kindDetection.position === 'ato_kabu') {
|
|
187
|
+
candidates.push({
|
|
188
|
+
name: `株式会社${coreName}`,
|
|
189
|
+
kind_hint: 'kabushiki_kaisha',
|
|
190
|
+
prefix_or_suffix: 'mae_kabu',
|
|
191
|
+
suggested_target: suggestedTarget,
|
|
192
|
+
confidence: 0.75,
|
|
193
|
+
applied_rules: [...appliedRules, 'rule1_kabu_position_inverted'],
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// d. 英語法人名が検出された場合、英語表記での検索候補
|
|
198
|
+
if (enDetection.hint !== null) {
|
|
199
|
+
const enCore = enDetection.stripped;
|
|
200
|
+
candidates.push({
|
|
201
|
+
name: enCore,
|
|
202
|
+
kind_hint: enDetection.hint,
|
|
203
|
+
prefix_or_suffix: 'none',
|
|
204
|
+
suggested_target: '3',
|
|
205
|
+
confidence: 0.7,
|
|
206
|
+
applied_rules: [...appliedRules, 'rule3_english_detected'],
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// e. 旧字体→新字体の候補
|
|
210
|
+
if (newVariant !== null) {
|
|
211
|
+
candidates.push({
|
|
212
|
+
name: newVariant,
|
|
213
|
+
kind_hint: kindDetection.hint ?? 'unknown',
|
|
214
|
+
prefix_or_suffix: kindDetection.position,
|
|
215
|
+
suggested_target: '1',
|
|
216
|
+
confidence: 0.8,
|
|
217
|
+
applied_rules: [...appliedRules, 'rule5_old_to_new_applied'],
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
// 重複除去 + 10件上限
|
|
221
|
+
const seen = new Set();
|
|
222
|
+
const uniqueCandidates = candidates
|
|
223
|
+
.filter((c) => {
|
|
224
|
+
if (seen.has(c.name))
|
|
225
|
+
return false;
|
|
226
|
+
seen.add(c.name);
|
|
227
|
+
return true;
|
|
228
|
+
})
|
|
229
|
+
.slice(0, 10);
|
|
230
|
+
return {
|
|
231
|
+
original: raw,
|
|
232
|
+
extracted_core_name: coreName,
|
|
233
|
+
normalized_candidates: uniqueCandidates,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
function detectKind(text) {
|
|
237
|
+
for (const { word, hint } of KIND_KEYWORDS_JA) {
|
|
238
|
+
const idx = text.indexOf(word);
|
|
239
|
+
if (idx === -1)
|
|
240
|
+
continue;
|
|
241
|
+
const atStart = idx === 0;
|
|
242
|
+
const atEnd = idx + word.length === text.length;
|
|
243
|
+
let position = 'none';
|
|
244
|
+
if (atStart)
|
|
245
|
+
position = 'mae_kabu';
|
|
246
|
+
else if (atEnd)
|
|
247
|
+
position = 'ato_kabu';
|
|
248
|
+
return { hint, position, matchedWord: word };
|
|
249
|
+
}
|
|
250
|
+
return { hint: null, position: 'none', matchedWord: null };
|
|
251
|
+
}
|
|
252
|
+
function stripKindFromName(text, detection) {
|
|
253
|
+
if (detection.matchedWord === null)
|
|
254
|
+
return text;
|
|
255
|
+
return text.replace(detection.matchedWord, '').trim();
|
|
256
|
+
}
|
|
257
|
+
function detectEnglishKind(text) {
|
|
258
|
+
for (const { regex, hint } of EN_SUFFIX_PATTERNS) {
|
|
259
|
+
const freshRegex = new RegExp(regex.source, regex.flags);
|
|
260
|
+
const match = freshRegex.exec(text);
|
|
261
|
+
if (match !== null) {
|
|
262
|
+
const stripped = text
|
|
263
|
+
.replace(freshRegex, '')
|
|
264
|
+
.replace(/\s+,?\s*$/, '')
|
|
265
|
+
.trim();
|
|
266
|
+
return { hint, stripped, matchedSuffix: match[0] };
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return { hint: null, stripped: text, matchedSuffix: null };
|
|
270
|
+
}
|
|
271
|
+
function applyOldToNew(text) {
|
|
272
|
+
let result = text;
|
|
273
|
+
for (const [oldChar, newChar] of Object.entries(OLD_TO_NEW)) {
|
|
274
|
+
if (result.includes(oldChar)) {
|
|
275
|
+
result = result.split(oldChar).join(newChar);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return result;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/domain/normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 都道府県コード (JIS X 0401) + 国外
|
|
3
|
+
* Prefecture code (JIS X 0401) + foreign
|
|
4
|
+
*
|
|
5
|
+
* 根拠 / Source: 国税庁仕様書 第二編 §3.1.3・§4.1.3 (address パラメータ)
|
|
6
|
+
* 99 は国外所在地を表す
|
|
7
|
+
*/
|
|
8
|
+
export declare const PREFECTURE_CODES: {
|
|
9
|
+
readonly '01': "北海道";
|
|
10
|
+
readonly '02': "青森県";
|
|
11
|
+
readonly '03': "岩手県";
|
|
12
|
+
readonly '04': "宮城県";
|
|
13
|
+
readonly '05': "秋田県";
|
|
14
|
+
readonly '06': "山形県";
|
|
15
|
+
readonly '07': "福島県";
|
|
16
|
+
readonly '08': "茨城県";
|
|
17
|
+
readonly '09': "栃木県";
|
|
18
|
+
readonly '10': "群馬県";
|
|
19
|
+
readonly '11': "埼玉県";
|
|
20
|
+
readonly '12': "千葉県";
|
|
21
|
+
readonly '13': "東京都";
|
|
22
|
+
readonly '14': "神奈川県";
|
|
23
|
+
readonly '15': "新潟県";
|
|
24
|
+
readonly '16': "富山県";
|
|
25
|
+
readonly '17': "石川県";
|
|
26
|
+
readonly '18': "福井県";
|
|
27
|
+
readonly '19': "山梨県";
|
|
28
|
+
readonly '20': "長野県";
|
|
29
|
+
readonly '21': "岐阜県";
|
|
30
|
+
readonly '22': "静岡県";
|
|
31
|
+
readonly '23': "愛知県";
|
|
32
|
+
readonly '24': "三重県";
|
|
33
|
+
readonly '25': "滋賀県";
|
|
34
|
+
readonly '26': "京都府";
|
|
35
|
+
readonly '27': "大阪府";
|
|
36
|
+
readonly '28': "兵庫県";
|
|
37
|
+
readonly '29': "奈良県";
|
|
38
|
+
readonly '30': "和歌山県";
|
|
39
|
+
readonly '31': "鳥取県";
|
|
40
|
+
readonly '32': "島根県";
|
|
41
|
+
readonly '33': "岡山県";
|
|
42
|
+
readonly '34': "広島県";
|
|
43
|
+
readonly '35': "山口県";
|
|
44
|
+
readonly '36': "徳島県";
|
|
45
|
+
readonly '37': "香川県";
|
|
46
|
+
readonly '38': "愛媛県";
|
|
47
|
+
readonly '39': "高知県";
|
|
48
|
+
readonly '40': "福岡県";
|
|
49
|
+
readonly '41': "佐賀県";
|
|
50
|
+
readonly '42': "長崎県";
|
|
51
|
+
readonly '43': "熊本県";
|
|
52
|
+
readonly '44': "大分県";
|
|
53
|
+
readonly '45': "宮崎県";
|
|
54
|
+
readonly '46': "鹿児島県";
|
|
55
|
+
readonly '47': "沖縄県";
|
|
56
|
+
readonly '99': "国外";
|
|
57
|
+
};
|
|
58
|
+
export type PrefectureCode = keyof typeof PREFECTURE_CODES;
|
|
59
|
+
export declare function isPrefectureCode(value: string): value is PrefectureCode;
|
|
60
|
+
export declare function prefectureName(code: string): string;
|
|
61
|
+
//# sourceMappingURL=prefecture-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefecture-codes.d.ts","sourceRoot":"","sources":["../../src/domain/prefecture-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 都道府県コード (JIS X 0401) + 国外
|
|
3
|
+
* Prefecture code (JIS X 0401) + foreign
|
|
4
|
+
*
|
|
5
|
+
* 根拠 / Source: 国税庁仕様書 第二編 §3.1.3・§4.1.3 (address パラメータ)
|
|
6
|
+
* 99 は国外所在地を表す
|
|
7
|
+
*/
|
|
8
|
+
export const PREFECTURE_CODES = {
|
|
9
|
+
'01': '北海道',
|
|
10
|
+
'02': '青森県',
|
|
11
|
+
'03': '岩手県',
|
|
12
|
+
'04': '宮城県',
|
|
13
|
+
'05': '秋田県',
|
|
14
|
+
'06': '山形県',
|
|
15
|
+
'07': '福島県',
|
|
16
|
+
'08': '茨城県',
|
|
17
|
+
'09': '栃木県',
|
|
18
|
+
'10': '群馬県',
|
|
19
|
+
'11': '埼玉県',
|
|
20
|
+
'12': '千葉県',
|
|
21
|
+
'13': '東京都',
|
|
22
|
+
'14': '神奈川県',
|
|
23
|
+
'15': '新潟県',
|
|
24
|
+
'16': '富山県',
|
|
25
|
+
'17': '石川県',
|
|
26
|
+
'18': '福井県',
|
|
27
|
+
'19': '山梨県',
|
|
28
|
+
'20': '長野県',
|
|
29
|
+
'21': '岐阜県',
|
|
30
|
+
'22': '静岡県',
|
|
31
|
+
'23': '愛知県',
|
|
32
|
+
'24': '三重県',
|
|
33
|
+
'25': '滋賀県',
|
|
34
|
+
'26': '京都府',
|
|
35
|
+
'27': '大阪府',
|
|
36
|
+
'28': '兵庫県',
|
|
37
|
+
'29': '奈良県',
|
|
38
|
+
'30': '和歌山県',
|
|
39
|
+
'31': '鳥取県',
|
|
40
|
+
'32': '島根県',
|
|
41
|
+
'33': '岡山県',
|
|
42
|
+
'34': '広島県',
|
|
43
|
+
'35': '山口県',
|
|
44
|
+
'36': '徳島県',
|
|
45
|
+
'37': '香川県',
|
|
46
|
+
'38': '愛媛県',
|
|
47
|
+
'39': '高知県',
|
|
48
|
+
'40': '福岡県',
|
|
49
|
+
'41': '佐賀県',
|
|
50
|
+
'42': '長崎県',
|
|
51
|
+
'43': '熊本県',
|
|
52
|
+
'44': '大分県',
|
|
53
|
+
'45': '宮崎県',
|
|
54
|
+
'46': '鹿児島県',
|
|
55
|
+
'47': '沖縄県',
|
|
56
|
+
'99': '国外',
|
|
57
|
+
};
|
|
58
|
+
export function isPrefectureCode(value) {
|
|
59
|
+
return Object.prototype.hasOwnProperty.call(PREFECTURE_CODES, value);
|
|
60
|
+
}
|
|
61
|
+
export function prefectureName(code) {
|
|
62
|
+
if (isPrefectureCode(code)) {
|
|
63
|
+
return PREFECTURE_CODES[code];
|
|
64
|
+
}
|
|
65
|
+
return `unknown(${code})`;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=prefecture-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefecture-codes.js","sourceRoot":"","sources":["../../src/domain/prefecture-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;CACF,CAAC;AAIX,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,WAAW,IAAI,GAAG,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 処理区分コード辞書
|
|
3
|
+
* Process division code dictionary
|
|
4
|
+
*
|
|
5
|
+
* 根拠 / Source: 国税庁仕様書 第二編 別紙1 項番9 処理区分
|
|
6
|
+
*/
|
|
7
|
+
export declare const PROCESS_CODES: {
|
|
8
|
+
readonly '01': {
|
|
9
|
+
readonly ja: "新規";
|
|
10
|
+
readonly en: "Newly assigned";
|
|
11
|
+
};
|
|
12
|
+
readonly '11': {
|
|
13
|
+
readonly ja: "商号又は名称の変更";
|
|
14
|
+
readonly en: "Name change";
|
|
15
|
+
};
|
|
16
|
+
readonly '12': {
|
|
17
|
+
readonly ja: "国内所在地の変更";
|
|
18
|
+
readonly en: "Domestic address change";
|
|
19
|
+
};
|
|
20
|
+
readonly '13': {
|
|
21
|
+
readonly ja: "国外所在地の変更";
|
|
22
|
+
readonly en: "Foreign address change";
|
|
23
|
+
};
|
|
24
|
+
readonly '21': {
|
|
25
|
+
readonly ja: "登記記録の閉鎖等";
|
|
26
|
+
readonly en: "Registry closure";
|
|
27
|
+
};
|
|
28
|
+
readonly '22': {
|
|
29
|
+
readonly ja: "登記記録の復活等";
|
|
30
|
+
readonly en: "Registry revival";
|
|
31
|
+
};
|
|
32
|
+
readonly '71': {
|
|
33
|
+
readonly ja: "吸収合併";
|
|
34
|
+
readonly en: "Merger by absorption";
|
|
35
|
+
};
|
|
36
|
+
readonly '72': {
|
|
37
|
+
readonly ja: "吸収合併無効";
|
|
38
|
+
readonly en: "Merger invalidated";
|
|
39
|
+
};
|
|
40
|
+
readonly '81': {
|
|
41
|
+
readonly ja: "商号の登記の抹消";
|
|
42
|
+
readonly en: "Name registration cancelled";
|
|
43
|
+
};
|
|
44
|
+
readonly '99': {
|
|
45
|
+
readonly ja: "削除";
|
|
46
|
+
readonly en: "Deleted (duplicate/withdrawal)";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export type ProcessCode = keyof typeof PROCESS_CODES;
|
|
50
|
+
export declare function isProcessCode(value: string): value is ProcessCode;
|
|
51
|
+
export declare function processLabel(code: string, lang?: 'ja' | 'en'): string;
|
|
52
|
+
//# sourceMappingURL=process-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-codes.d.ts","sourceRoot":"","sources":["../../src/domain/process-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAErD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,GAAG,IAAW,GAAG,MAAM,CAK3E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 処理区分コード辞書
|
|
3
|
+
* Process division code dictionary
|
|
4
|
+
*
|
|
5
|
+
* 根拠 / Source: 国税庁仕様書 第二編 別紙1 項番9 処理区分
|
|
6
|
+
*/
|
|
7
|
+
export const PROCESS_CODES = {
|
|
8
|
+
'01': { ja: '新規', en: 'Newly assigned' },
|
|
9
|
+
'11': { ja: '商号又は名称の変更', en: 'Name change' },
|
|
10
|
+
'12': { ja: '国内所在地の変更', en: 'Domestic address change' },
|
|
11
|
+
'13': { ja: '国外所在地の変更', en: 'Foreign address change' },
|
|
12
|
+
'21': { ja: '登記記録の閉鎖等', en: 'Registry closure' },
|
|
13
|
+
'22': { ja: '登記記録の復活等', en: 'Registry revival' },
|
|
14
|
+
'71': { ja: '吸収合併', en: 'Merger by absorption' },
|
|
15
|
+
'72': { ja: '吸収合併無効', en: 'Merger invalidated' },
|
|
16
|
+
'81': { ja: '商号の登記の抹消', en: 'Name registration cancelled' },
|
|
17
|
+
'99': { ja: '削除', en: 'Deleted (duplicate/withdrawal)' },
|
|
18
|
+
};
|
|
19
|
+
export function isProcessCode(value) {
|
|
20
|
+
return Object.prototype.hasOwnProperty.call(PROCESS_CODES, value);
|
|
21
|
+
}
|
|
22
|
+
export function processLabel(code, lang = 'ja') {
|
|
23
|
+
if (isProcessCode(code)) {
|
|
24
|
+
return PROCESS_CODES[code][lang];
|
|
25
|
+
}
|
|
26
|
+
return `unknown(${code})`;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=process-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-codes.js","sourceRoot":"","sources":["../../src/domain/process-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE;IACxC,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE;IAC5C,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,yBAAyB,EAAE;IACvD,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,wBAAwB,EAAE;IACtD,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE;IAChD,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE;IAChD,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,sBAAsB,EAAE;IAChD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,oBAAoB,EAAE;IAChD,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,6BAA6B,EAAE;IAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,gCAAgC,EAAE;CAChD,CAAC;AAIX,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAoB,IAAI;IACjE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,WAAW,IAAI,GAAG,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 環境変数の Zod validation
|
|
3
|
+
* Startup-time environment variable validation with Zod
|
|
4
|
+
* Validasi variabel lingkungan saat startup
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
declare const EnvSchema: z.ZodObject<{
|
|
8
|
+
NTA_APPLICATION_ID: z.ZodString;
|
|
9
|
+
NTA_BASE_URL: z.ZodDefault<z.ZodString>;
|
|
10
|
+
PORT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
11
|
+
LOG_LEVEL: z.ZodDefault<z.ZodEnum<{
|
|
12
|
+
error: "error";
|
|
13
|
+
debug: "debug";
|
|
14
|
+
info: "info";
|
|
15
|
+
fatal: "fatal";
|
|
16
|
+
warn: "warn";
|
|
17
|
+
trace: "trace";
|
|
18
|
+
}>>;
|
|
19
|
+
NODE_ENV: z.ZodDefault<z.ZodEnum<{
|
|
20
|
+
development: "development";
|
|
21
|
+
test: "test";
|
|
22
|
+
production: "production";
|
|
23
|
+
}>>;
|
|
24
|
+
NTA_RATE_LIMIT_RPS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
25
|
+
NTA_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export type Env = z.infer<typeof EnvSchema>;
|
|
28
|
+
/**
|
|
29
|
+
* 環境変数を取得 (起動時に一度だけ parse、以降はキャッシュ)
|
|
30
|
+
*/
|
|
31
|
+
export declare function getEnv(): Env;
|
|
32
|
+
/** テスト専用: 環境変数キャッシュをリセット */
|
|
33
|
+
export declare function resetEnvCache(): void;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;iBAab,CAAC;AAEH,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAI5C;;GAEG;AACH,wBAAgB,MAAM,IAAI,GAAG,CAY5B;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
|
package/dist/lib/env.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 環境変数の Zod validation
|
|
3
|
+
* Startup-time environment variable validation with Zod
|
|
4
|
+
* Validasi variabel lingkungan saat startup
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
const EnvSchema = z.object({
|
|
8
|
+
NTA_APPLICATION_ID: z
|
|
9
|
+
.string()
|
|
10
|
+
.min(1, 'NTA_APPLICATION_ID is required')
|
|
11
|
+
.describe('国税庁が発行したアプリケーション ID (13桁)。GitHub へのコミット厳禁。第一編 §5.1 参照。'),
|
|
12
|
+
NTA_BASE_URL: z.string().url().default('https://api.houjin-bangou.nta.go.jp/4'),
|
|
13
|
+
PORT: z.coerce.number().int().positive().default(3001),
|
|
14
|
+
LOG_LEVEL: z.enum(['fatal', 'error', 'warn', 'info', 'debug', 'trace']).default('info'),
|
|
15
|
+
NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
|
|
16
|
+
NTA_RATE_LIMIT_RPS: z.coerce.number().positive().default(1),
|
|
17
|
+
NTA_TIMEOUT_MS: z.coerce.number().int().positive().default(8000),
|
|
18
|
+
});
|
|
19
|
+
let cachedEnv;
|
|
20
|
+
/**
|
|
21
|
+
* 環境変数を取得 (起動時に一度だけ parse、以降はキャッシュ)
|
|
22
|
+
*/
|
|
23
|
+
export function getEnv() {
|
|
24
|
+
if (cachedEnv === undefined) {
|
|
25
|
+
const result = EnvSchema.safeParse(process.env);
|
|
26
|
+
if (!result.success) {
|
|
27
|
+
const issues = result.error.issues
|
|
28
|
+
.map((i) => ` - ${i.path.join('.')}: ${i.message}`)
|
|
29
|
+
.join('\n');
|
|
30
|
+
throw new Error(`Invalid environment variables:\n${issues}`);
|
|
31
|
+
}
|
|
32
|
+
cachedEnv = result.data;
|
|
33
|
+
}
|
|
34
|
+
return cachedEnv;
|
|
35
|
+
}
|
|
36
|
+
/** テスト専用: 環境変数キャッシュをリセット */
|
|
37
|
+
export function resetEnvCache() {
|
|
38
|
+
cachedEnv = undefined;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;SACxC,QAAQ,CACP,wDAAwD,CACzD;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;IAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9E,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACjE,CAAC,CAAC;AAIH,IAAI,SAA0B,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;iBACnD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,aAAa;IAC3B,SAAS,GAAG,SAAS,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 型付きエラー階層
|
|
3
|
+
* Typed error hierarchy
|
|
4
|
+
* Hierarki error bertipe
|
|
5
|
+
*
|
|
6
|
+
* 根拠: SEP-1303 Input Validation Errors as Tool Execution Errors
|
|
7
|
+
* → バリデーション失敗は JSON-RPC エラーではなく tool 結果 (isError: true) として返す
|
|
8
|
+
*/
|
|
9
|
+
export type NtaErrorCode = 'http_400' | 'http_403' | 'http_404' | 'http_500' | 'http_other' | 'timeout' | 'parse_error' | 'network_error' | 'unknown';
|
|
10
|
+
/**
|
|
11
|
+
* 国税庁 API 由来のエラー
|
|
12
|
+
* Error originating from NTA Web-API
|
|
13
|
+
*/
|
|
14
|
+
export declare class NtaApiError extends Error {
|
|
15
|
+
readonly code: NtaErrorCode;
|
|
16
|
+
readonly httpStatus?: number | undefined;
|
|
17
|
+
readonly ntaErrorCode?: string | undefined;
|
|
18
|
+
readonly name = "NtaApiError";
|
|
19
|
+
constructor(message: string, code: NtaErrorCode, httpStatus?: number | undefined, ntaErrorCode?: string | undefined);
|
|
20
|
+
static fromHttpStatus(status: number, body?: string): NtaApiError;
|
|
21
|
+
static fromUnknown(err: unknown): NtaApiError;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 入力バリデーションエラー (SEP-1303 でツール実行エラーとして返却)
|
|
25
|
+
*/
|
|
26
|
+
export declare class InputValidationError extends Error {
|
|
27
|
+
readonly field?: string | undefined;
|
|
28
|
+
readonly guidance?: string | undefined;
|
|
29
|
+
readonly name = "InputValidationError";
|
|
30
|
+
constructor(message: string, field?: string | undefined, guidance?: string | undefined);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* レート制限関連エラー
|
|
34
|
+
*/
|
|
35
|
+
export declare class RateLimitError extends Error {
|
|
36
|
+
readonly retryAfterMs: number;
|
|
37
|
+
readonly name = "RateLimitError";
|
|
38
|
+
constructor(message: string, retryAfterMs: number);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 未実装 (部分実装への明示的マーカー、Zero Placeholder 原則)
|
|
42
|
+
*/
|
|
43
|
+
export declare class NotImplementedError extends Error {
|
|
44
|
+
readonly name = "NotImplementedError";
|
|
45
|
+
constructor(feature: string, targetVersion: string);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,YAAY,GACZ,SAAS,GACT,aAAa,GACb,eAAe,GACf,SAAS,CAAC;AAEd;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAIlB,IAAI,EAAE,YAAY;aAClB,UAAU,CAAC,EAAE,MAAM;aACnB,YAAY,CAAC,EAAE,MAAM;IALvC,SAAkB,IAAI,iBAAiB;gBAErC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,YAAY,EAClB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,YAAY,CAAC,EAAE,MAAM,YAAA;IAKvC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAwBjE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAU9C;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAI3B,KAAK,CAAC,EAAE,MAAM;aACd,QAAQ,CAAC,EAAE,MAAM;IAJnC,SAAkB,IAAI,0BAA0B;gBAE9C,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,MAAM,YAAA,EACd,QAAQ,CAAC,EAAE,MAAM,YAAA;CAIpC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAIrB,YAAY,EAAE,MAAM;IAHtC,SAAkB,IAAI,oBAAoB;gBAExC,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,MAAM;CAIvC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAkB,IAAI,yBAAyB;gBACnC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAGnD"}
|