@shuji-bonji/rfcxml-mcp 0.4.0 → 0.4.2
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/README.ja.md +29 -27
- package/README.md +37 -29
- package/dist/constants.d.ts +19 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +34 -0
- package/dist/constants.js.map +1 -1
- package/dist/services/checklist-generator.d.ts +43 -0
- package/dist/services/checklist-generator.d.ts.map +1 -0
- package/dist/services/checklist-generator.js +107 -0
- package/dist/services/checklist-generator.js.map +1 -0
- package/dist/services/rfc-text-parser.d.ts +4 -6
- package/dist/services/rfc-text-parser.d.ts.map +1 -1
- package/dist/services/rfc-text-parser.js +8 -40
- package/dist/services/rfc-text-parser.js.map +1 -1
- package/dist/services/rfcxml-parser.d.ts +5 -19
- package/dist/services/rfcxml-parser.d.ts.map +1 -1
- package/dist/services/rfcxml-parser.js +18 -93
- package/dist/services/rfcxml-parser.js.map +1 -1
- package/dist/tools/handlers.d.ts +1 -6
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +9 -108
- package/dist/tools/handlers.js.map +1 -1
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/requirement-extractor.d.ts +24 -0
- package/dist/utils/requirement-extractor.d.ts.map +1 -0
- package/dist/utils/requirement-extractor.js +100 -0
- package/dist/utils/requirement-extractor.js.map +1 -0
- package/dist/utils/section.d.ts +21 -0
- package/dist/utils/section.d.ts.map +1 -0
- package/dist/utils/section.js +53 -0
- package/dist/utils/section.js.map +1 -0
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/text.js +3 -2
- package/dist/utils/text.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-extractor.js","sourceRoot":"","sources":["../../src/utils/requirement-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* セクション関連ユーティリティ
|
|
3
|
+
*/
|
|
4
|
+
import type { Section } from '../types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* セクション番号を正規化(section-3.5 → 3.5)
|
|
7
|
+
*/
|
|
8
|
+
export declare function normalizeSectionNumber(sectionId: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* セクションを検索(複数フォーマット対応)
|
|
11
|
+
*/
|
|
12
|
+
export declare function findSection(sections: Section[], target: string): Section | null;
|
|
13
|
+
/**
|
|
14
|
+
* セクションのフルパスを取得
|
|
15
|
+
*/
|
|
16
|
+
export declare function getSectionPath(section: Section): string;
|
|
17
|
+
/**
|
|
18
|
+
* セクションからクロスリファレンスを収集
|
|
19
|
+
*/
|
|
20
|
+
export declare function collectCrossReferences(section: Section): Set<string>;
|
|
21
|
+
//# sourceMappingURL=section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/utils/section.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAqB/E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAcpE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* セクション関連ユーティリティ
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* セクション番号を正規化(section-3.5 → 3.5)
|
|
6
|
+
*/
|
|
7
|
+
export function normalizeSectionNumber(sectionId) {
|
|
8
|
+
return sectionId.replace(/^section-/, '');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* セクションを検索(複数フォーマット対応)
|
|
12
|
+
*/
|
|
13
|
+
export function findSection(sections, target) {
|
|
14
|
+
const normalizedTarget = normalizeSectionNumber(target);
|
|
15
|
+
for (const sec of sections) {
|
|
16
|
+
// 各フォーマットでマッチを試行
|
|
17
|
+
const secNumber = sec.number ? normalizeSectionNumber(sec.number) : '';
|
|
18
|
+
const secAnchor = sec.anchor ? normalizeSectionNumber(sec.anchor) : '';
|
|
19
|
+
if (secNumber === normalizedTarget ||
|
|
20
|
+
secAnchor === normalizedTarget ||
|
|
21
|
+
sec.number === target ||
|
|
22
|
+
sec.anchor === target) {
|
|
23
|
+
return sec;
|
|
24
|
+
}
|
|
25
|
+
const found = findSection(sec.subsections || [], target);
|
|
26
|
+
if (found)
|
|
27
|
+
return found;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* セクションのフルパスを取得
|
|
33
|
+
*/
|
|
34
|
+
export function getSectionPath(section) {
|
|
35
|
+
return section.number || section.anchor || '';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* セクションからクロスリファレンスを収集
|
|
39
|
+
*/
|
|
40
|
+
export function collectCrossReferences(section) {
|
|
41
|
+
const refs = new Set();
|
|
42
|
+
for (const block of section.content || []) {
|
|
43
|
+
if (block.type === 'text' && block.crossReferences) {
|
|
44
|
+
for (const ref of block.crossReferences) {
|
|
45
|
+
if (ref.type === 'section' && ref.section) {
|
|
46
|
+
refs.add(ref.section);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return refs;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/utils/section.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAmB,EAAE,MAAc;IAC7D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAExD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,iBAAiB;QACjB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,IACE,SAAS,KAAK,gBAAgB;YAC9B,SAAS,KAAK,gBAAgB;YAC9B,GAAG,CAAC,MAAM,KAAK,MAAM;YACrB,GAAG,CAAC,MAAM,KAAK,MAAM,EACrB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACnD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/utils/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CActE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAwBrE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE,CAG1D"}
|
package/dist/utils/text.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* テキスト処理ユーティリティ
|
|
3
3
|
* RFC パーサー共通のテキスト抽出・解析関数
|
|
4
4
|
*/
|
|
5
|
+
import { createRFCReferenceRegex, createSectionReferenceRegex } from '../constants.js';
|
|
5
6
|
/**
|
|
6
7
|
* 指定位置を含む文を抽出
|
|
7
8
|
* @param text - 対象テキスト
|
|
@@ -30,7 +31,7 @@ export function extractSentence(text, position) {
|
|
|
30
31
|
export function extractCrossReferences(text) {
|
|
31
32
|
const refs = [];
|
|
32
33
|
// RFC参照パターン
|
|
33
|
-
const rfcPattern =
|
|
34
|
+
const rfcPattern = createRFCReferenceRegex();
|
|
34
35
|
let match;
|
|
35
36
|
while ((match = rfcPattern.exec(text)) !== null) {
|
|
36
37
|
refs.push({
|
|
@@ -39,7 +40,7 @@ export function extractCrossReferences(text) {
|
|
|
39
40
|
});
|
|
40
41
|
}
|
|
41
42
|
// セクション参照パターン
|
|
42
|
-
const sectionPattern =
|
|
43
|
+
const sectionPattern = createSectionReferenceRegex();
|
|
43
44
|
while ((match = sectionPattern.exec(text)) !== null) {
|
|
44
45
|
refs.push({
|
|
45
46
|
target: match[1],
|
package/dist/utils/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAgB;IAC5D,UAAU;IACV,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,KAAK,EAAE,CAAC;IACV,CAAC;IAED,UAAU;IACV,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,EAAE,CAAC;IACR,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAqB,EAAE,CAAC;IAElC,YAAY;IACZ,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAC7C,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,MAAM,cAAc,GAAG,2BAA2B,EAAE,CAAC;IACrD,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAI,KAA0B;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC"}
|