astro-dev-mcp 0.7.0 → 0.7.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.
Files changed (40) hide show
  1. package/dist/editors/appJsEditor.d.ts.map +1 -1
  2. package/dist/editors/appJsEditor.js +4 -2
  3. package/dist/editors/appJsEditor.js.map +1 -1
  4. package/dist/editors/commonEditor.d.ts +0 -4
  5. package/dist/editors/commonEditor.d.ts.map +1 -1
  6. package/dist/editors/commonEditor.js +3 -2
  7. package/dist/editors/commonEditor.js.map +1 -1
  8. package/dist/editors/scssVariablesEditor.d.ts +0 -4
  9. package/dist/editors/scssVariablesEditor.d.ts.map +1 -1
  10. package/dist/editors/scssVariablesEditor.js +3 -2
  11. package/dist/editors/scssVariablesEditor.js.map +1 -1
  12. package/dist/parsers/excelParser.d.ts.map +1 -1
  13. package/dist/parsers/excelParser.js +29 -6
  14. package/dist/parsers/excelParser.js.map +1 -1
  15. package/dist/tools/generateComponent.d.ts.map +1 -1
  16. package/dist/tools/generateComponent.js +6 -1
  17. package/dist/tools/generateComponent.js.map +1 -1
  18. package/dist/tools/generatePage.d.ts.map +1 -1
  19. package/dist/tools/generatePage.js +6 -1
  20. package/dist/tools/generatePage.js.map +1 -1
  21. package/dist/tools/generateSchema.d.ts.map +1 -1
  22. package/dist/tools/generateSchema.js +9 -1
  23. package/dist/tools/generateSchema.js.map +1 -1
  24. package/dist/tools/generateSection.d.ts.map +1 -1
  25. package/dist/tools/generateSection.js +8 -1
  26. package/dist/tools/generateSection.js.map +1 -1
  27. package/dist/tools/getComponentInterface.d.ts.map +1 -1
  28. package/dist/tools/getComponentInterface.js +7 -3
  29. package/dist/tools/getComponentInterface.js.map +1 -1
  30. package/dist/tools/getProjectContext.d.ts.map +1 -1
  31. package/dist/tools/getProjectContext.js +3 -1
  32. package/dist/tools/getProjectContext.js.map +1 -1
  33. package/dist/utils/projectContext.d.ts.map +1 -1
  34. package/dist/utils/projectContext.js +2 -1
  35. package/dist/utils/projectContext.js.map +1 -1
  36. package/dist/utils/security.d.ts +16 -0
  37. package/dist/utils/security.d.ts.map +1 -0
  38. package/dist/utils/security.js +37 -0
  39. package/dist/utils/security.js.map +1 -0
  40. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"appJsEditor.d.ts","sourceRoot":"","sources":["../../src/editors/appJsEditor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,CAW/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAAE,GACf,MAAM,CAgGR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,SAAS,GAChB,OAAO,CAcT"}
1
+ {"version":3,"file":"appJsEditor.d.ts","sourceRoot":"","sources":["../../src/editors/appJsEditor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,CAW/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAAE,GACf,MAAM,CAgGR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,SAAS,GAChB,OAAO,CAeT"}
@@ -2,6 +2,7 @@
2
2
  * app.js エディター
3
3
  * UIパターンに応じて必要なスクリプトを自動登録
4
4
  */
5
+ import { escapeRegExp } from '../utils/security.js';
5
6
  /**
6
7
  * UIパターンから必要なスクリプトクラス名を取得
7
8
  */
@@ -112,8 +113,9 @@ export function needsAppJsUpdate(originalContent, pattern) {
112
113
  return false;
113
114
  // すべてのスクリプトが既に登録されているかチェック
114
115
  return requiredScripts.some((script) => {
115
- const importPattern = new RegExp(`import\\s+{\\s*${script}\\s*}\\s+from`);
116
- const initPattern = new RegExp(`new\\s+${script}\\(\\)`);
116
+ const escaped = escapeRegExp(script);
117
+ const importPattern = new RegExp(`import\\s+{\\s*${escaped}\\s*}\\s+from`);
118
+ const initPattern = new RegExp(`new\\s+${escaped}\\(\\)`);
117
119
  return (!importPattern.test(originalContent) || !initPattern.test(originalContent));
118
120
  });
119
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"appJsEditor.js","sourceRoot":"","sources":["../../src/editors/appJsEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appJsEditor.js","sourceRoot":"","sources":["../../src/editors/appJsEditor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Common.astro 編集機能
3
- * サイト全体の設定(head, menu)を解析・更新する
4
- */
5
1
  export interface HeadConfig {
6
2
  siteName?: string;
7
3
  domain?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"commonEditor.d.ts","sourceRoot":"","sources":["../../src/editors/commonEditor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAmCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,UAAU,GAClB,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,QAAQ,EAAE,GACpB,MAAM,CASR;AAkCD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAcR"}
1
+ {"version":3,"file":"commonEditor.d.ts","sourceRoot":"","sources":["../../src/editors/commonEditor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAmCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,UAAU,GAClB,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,QAAQ,EAAE,GACpB,MAAM,CASR;AAkCD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAcR"}
@@ -2,6 +2,7 @@
2
2
  * Common.astro 編集機能
3
3
  * サイト全体の設定(head, menu)を解析・更新する
4
4
  */
5
+ import { escapeRegExp } from "../utils/security.js";
5
6
  /**
6
7
  * Common.astro の内容を解析
7
8
  */
@@ -13,7 +14,7 @@ export function parseCommonAstro(content) {
13
14
  const headContent = headMatch[1];
14
15
  // 各プロパティを正規表現で抽出
15
16
  const extractValue = (key) => {
16
- const match = headContent.match(new RegExp(`${key}:\\s*"([^"]*)"`, 's'));
17
+ const match = headContent.match(new RegExp(`${escapeRegExp(key)}:\\s*"([^"]*)"`, 's'));
17
18
  return match ? match[1] : undefined;
18
19
  };
19
20
  head.siteName = extractValue('siteName');
@@ -45,7 +46,7 @@ export function updateCommonHead(originalContent, updates) {
45
46
  for (const [key, value] of Object.entries(updates)) {
46
47
  if (value !== undefined) {
47
48
  // 既存の行を置換
48
- const regex = new RegExp(`(${key}:\\s*)"[^"]*"`, 'g');
49
+ const regex = new RegExp(`(${escapeRegExp(key)}:\\s*)"[^"]*"`, 'g');
49
50
  const replacement = `$1"${value}"`;
50
51
  if (updatedContent.match(regex)) {
51
52
  updatedContent = updatedContent.replace(regex, replacement);
@@ -1 +1 @@
1
- {"version":3,"file":"commonEditor.js","sourceRoot":"","sources":["../../src/editors/commonEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commonEditor.js","sourceRoot":"","sources":["../../src/editors/commonEditor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- /**
2
- * _variables.scss 編集機能
3
- * SCSS変数(カラー、サイズ、ブレークポイント)を解析・更新する
4
- */
5
1
  export interface ColorVariables {
6
2
  'color-body'?: string;
7
3
  'color-txt'?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"scssVariablesEditor.d.ts","sourceRoot":"","sources":["../../src/editors/scssVariablesEditor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAwCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,cAAc,GACrB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,eAAe,GACtB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,iBAAiB,GAC3B,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAgBR"}
1
+ {"version":3,"file":"scssVariablesEditor.d.ts","sourceRoot":"","sources":["../../src/editors/scssVariablesEditor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,EAAE,CAAC,EAAE,cAAc,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAwCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,cAAc,GACrB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,eAAe,GACtB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,iBAAiB,GAC3B,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAgBR"}
@@ -2,6 +2,7 @@
2
2
  * _variables.scss 編集機能
3
3
  * SCSS変数(カラー、サイズ、ブレークポイント)を解析・更新する
4
4
  */
5
+ import { escapeRegExp } from "../utils/security.js";
5
6
  /**
6
7
  * _variables.scss の内容を解析
7
8
  */
@@ -49,7 +50,7 @@ export function updateScssColors(originalContent, colors) {
49
50
  if (value !== undefined) {
50
51
  // $color-prime: #1d4ed8; のような行を置換
51
52
  const varName = key.replace('color-', '');
52
- const regex = new RegExp(`\\$color-${varName}:\\s*[^;]+;`, 'g');
53
+ const regex = new RegExp(`\\$color-${escapeRegExp(varName)}:\\s*[^;]+;`, 'g');
53
54
  const replacement = `$color-${varName}: ${value};`;
54
55
  updatedContent = updatedContent.replace(regex, replacement);
55
56
  }
@@ -79,7 +80,7 @@ export function updateScssFontSizes(originalContent, fontSizes) {
79
80
  let updatedContent = originalContent;
80
81
  for (const [key, value] of Object.entries(fontSizes)) {
81
82
  if (value !== undefined) {
82
- const regex = new RegExp(`\\$${key}:\\s*\\d+,\\s*\\d+;`, 'g');
83
+ const regex = new RegExp(`\\$${escapeRegExp(key)}:\\s*\\d+,\\s*\\d+;`, 'g');
83
84
  const replacement = `$${key}: ${value.pc}, ${value.sp};`;
84
85
  updatedContent = updatedContent.replace(regex, replacement);
85
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scssVariablesEditor.js","sourceRoot":"","sources":["../../src/editors/scssVariablesEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scssVariablesEditor.js","sourceRoot":"","sources":["../../src/editors/scssVariablesEditor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"excelParser.d.ts","sourceRoot":"","sources":["../../src/parsers/excelParser.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAc/D"}
1
+ {"version":3,"file":"excelParser.d.ts","sourceRoot":"","sources":["../../src/parsers/excelParser.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAsC/D"}
@@ -1,14 +1,37 @@
1
- import * as XLSX from "xlsx";
1
+ import ExcelJS from "exceljs";
2
2
  /**
3
3
  * Excelファイル解析
4
4
  */
5
5
  export async function parseExcel(filePath) {
6
6
  try {
7
- const workbook = XLSX.readFile(filePath);
8
- const sheetName = workbook.SheetNames[0];
9
- const worksheet = workbook.Sheets[sheetName];
10
- // シートをJSONに変換
11
- const data = XLSX.utils.sheet_to_json(worksheet);
7
+ const workbook = new ExcelJS.Workbook();
8
+ await workbook.xlsx.readFile(filePath);
9
+ const worksheet = workbook.worksheets[0];
10
+ if (!worksheet) {
11
+ throw new Error("シートが見つかりません");
12
+ }
13
+ // ヘッダー行を取得
14
+ const headerRow = worksheet.getRow(1);
15
+ const headers = [];
16
+ headerRow.eachCell((cell, colNumber) => {
17
+ headers[colNumber] = String(cell.value ?? "");
18
+ });
19
+ // データ行をJSON配列に変換
20
+ const data = [];
21
+ worksheet.eachRow((row, rowNumber) => {
22
+ if (rowNumber === 1)
23
+ return;
24
+ const rowData = {};
25
+ row.eachCell((cell, colNumber) => {
26
+ const key = headers[colNumber];
27
+ if (key) {
28
+ rowData[key] = cell.value;
29
+ }
30
+ });
31
+ if (Object.keys(rowData).length > 0) {
32
+ data.push(rowData);
33
+ }
34
+ });
12
35
  // データ構造を推測して整形
13
36
  return inferStructureFromExcel(data);
14
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"excelParser.js","sourceRoot":"","sources":["../../src/parsers/excelParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE7C,cAAc;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEjD,eAAe;QACf,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAW;IAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,aAAa;IACb,MAAM,SAAS,GAAQ;QACrB,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,aAAa;IACb,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;oBAChC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;oBACtC,KAAK,EAAE,EAAE;iBACV,CAAC;YACJ,CAAC;YAED,aAAa;YACb,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"excelParser.js","sourceRoot":"","sources":["../../src/parsers/excelParser.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QAED,WAAW;QACX,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACrC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,IAAI,GAA0B,EAAE,CAAC;QACvC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YACnC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO;YAC5B,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;gBAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAW;IAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,aAAa;IACb,MAAM,SAAS,GAAQ;QACrB,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,aAAa;IACb,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;oBAChC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;oBACtC,KAAK,EAAE,EAAE;iBACV,CAAC;YACJ,CAAC;YAED,aAAa;YACb,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateComponent.d.ts","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAiEhD"}
1
+ {"version":3,"file":"generateComponent.d.ts","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAsEhD"}
@@ -4,12 +4,15 @@ import { formatCode } from "../utils/formatter.js";
4
4
  import { writeFileSync, mkdirSync } from "fs";
5
5
  import { resolve, dirname } from "path";
6
6
  import { getGenerationContext } from "../utils/projectContext.js";
7
+ import { validateName, assertPathWithinProject } from "../utils/security.js";
7
8
  /**
8
9
  * Astroコンポーネント生成ツール
9
10
  */
10
11
  export async function generateComponent(args) {
11
12
  const { componentName, props, design = {}, accessibility = true, projectRoot = process.cwd(), } = args;
12
13
  try {
14
+ // 入力バリデーション
15
+ validateName(componentName, "コンポーネント名");
13
16
  const writeLogs = [];
14
17
  // 1. Astroコンポーネント生成
15
18
  const astroCode = await generateAstroComponent({
@@ -25,9 +28,11 @@ export async function generateComponent(args) {
25
28
  // 3. コード整形
26
29
  const formattedAstro = await formatCode(astroCode, "astro");
27
30
  const formattedScss = await formatCode(scssCode, "scss");
28
- // 4. ファイルパス解決
31
+ // 4. ファイルパス解決 & 境界チェック
29
32
  const astroPath = resolve(projectRoot, `src/components/${componentName}.astro`);
30
33
  const scssPath = resolve(projectRoot, `src/scss/components/_c_${toSnakeCase(componentName)}.scss`);
34
+ assertPathWithinProject(astroPath, projectRoot);
35
+ assertPathWithinProject(scssPath, projectRoot);
31
36
  // 5. ディレクトリ作成 & ファイル書き込み
32
37
  try {
33
38
  // Astroコンポーネント
@@ -1 +1 @@
1
- {"version":3,"file":"generateComponent.js","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAclE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAS;IAC/C,MAAM,EACJ,aAAa,EACb,KAAK,EACL,MAAM,GAAG,EAAE,EACX,aAAa,GAAG,IAAI,EACpB,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,GAC5B,GAAG,IAAqB,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;YAC7C,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,aAAa;SACd,CAAC,CAAC;QAEH,YAAY;QACZ,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;YAClC,IAAI,EAAE,aAAa;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,WAAW;QACX,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzD,cAAc;QACd,MAAM,SAAS,GAAG,OAAO,CACvB,WAAW,EACX,kBAAkB,aAAa,QAAQ,CACxC,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CACtB,WAAW,EACX,0BAA0B,WAAW,CAAC,aAAa,CAAC,OAAO,CAC5D,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC;YACH,eAAe;YACf,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAClD,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;YAEjC,WAAW;YACX,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAChD,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa,aAAa,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,cAAc,oCAAoC,aAAa,WAAW,oBAAoB,CAAC,WAAW,CAAC,EAAE;iBAClO;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"generateComponent.js","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generatePage.d.ts","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG;;;;;GA4I3C"}
1
+ {"version":3,"file":"generatePage.d.ts","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG;;;;;GAiJ3C"}
@@ -6,12 +6,16 @@ import { updateScssVariables, } from "../editors/scssVariablesEditor.js";
6
6
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
7
7
  import { resolve, dirname } from "path";
8
8
  import { getGenerationContext } from "../utils/projectContext.js";
9
+ import { validateName, assertPathWithinProject } from "../utils/security.js";
9
10
  /**
10
11
  * ページ生成ツール(サイト設定更新統合版)
11
12
  */
12
13
  export async function generatePage(args) {
13
14
  const { pageName, prompt, pageData, sections, siteConfig, scssConfig, projectRoot = process.cwd(), } = args;
14
15
  try {
16
+ // 入力バリデーション
17
+ validateName(pageName, "ページ名");
18
+ sections.forEach((s) => validateName(s, "セクション名"));
15
19
  const updateLogs = [];
16
20
  // ページタイプ自動判定
17
21
  let pageType;
@@ -84,8 +88,9 @@ export async function generatePage(args) {
84
88
  });
85
89
  // コード整形
86
90
  const formatted = await formatCode(pageCode, "astro");
87
- // 5. ファイルパス解決
91
+ // 5. ファイルパス解決 & 境界チェック
88
92
  const pagePath = resolve(projectRoot, `src/pages/${pageName}/index.astro`);
93
+ assertPathWithinProject(pagePath, projectRoot);
89
94
  // 6. ページファイル書き込み
90
95
  try {
91
96
  mkdirSync(dirname(pagePath), { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"generatePage.js","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generatePage.js","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateSchema.d.ts","sourceRoot":"","sources":["../../src/tools/generateSchema.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,GAAG;;;;;GA0C7C"}
1
+ {"version":3,"file":"generateSchema.d.ts","sourceRoot":"","sources":["../../src/tools/generateSchema.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,GAAG;;;;;GAiD7C"}
@@ -2,12 +2,15 @@ import { parseExcel } from "../parsers/excelParser.js";
2
2
  import { parseMarkdown } from "../parsers/markdownParser.js";
3
3
  import { generateTypeDefinition } from "../generators/typeGenerator.js";
4
4
  import { formatCode } from "../utils/formatter.js";
5
+ import { validateName } from "../utils/security.js";
5
6
  /**
6
7
  * スキーマ生成ツール
7
8
  */
8
9
  export async function generateSchema(args) {
9
10
  const { sourceType, sourceData, schemaName } = args;
10
11
  try {
12
+ // 入力バリデーション
13
+ validateName(schemaName, "スキーマ名");
11
14
  let parsedData;
12
15
  // データソースに応じてパース
13
16
  switch (sourceType) {
@@ -18,7 +21,12 @@ export async function generateSchema(args) {
18
21
  parsedData = await parseMarkdown(sourceData);
19
22
  break;
20
23
  case "json":
21
- parsedData = JSON.parse(sourceData);
24
+ try {
25
+ parsedData = JSON.parse(sourceData);
26
+ }
27
+ catch {
28
+ throw new Error("無効なJSONデータです");
29
+ }
22
30
  break;
23
31
  case "text":
24
32
  // テキストから構造を推測
@@ -1 +1 @@
1
- {"version":3,"file":"generateSchema.js","sourceRoot":"","sources":["../../src/tools/generateSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateSchema.js","sourceRoot":"","sources":["../../src/tools/generateSchema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateSection.d.ts","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"AA0CA;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG;;;;;GA+I9C"}
1
+ {"version":3,"file":"generateSection.d.ts","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"AA2CA;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG;;;;;GAqJ9C"}
@@ -6,12 +6,17 @@ import { getRequiredScripts, updateAppJs, needsAppJsUpdate, } from '../editors/a
6
6
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
7
7
  import { resolve, dirname } from 'path';
8
8
  import { getGenerationContext } from '../utils/projectContext.js';
9
+ import { validateName, assertPathWithinProject } from '../utils/security.js';
9
10
  /**
10
11
  * セクション生成ツール(SCSS生成・app.js更新統合版)
11
12
  */
12
13
  export async function generateSection(args) {
13
14
  const { prompt, sectionType, uiPattern, pageName, content, components = [], generateScss = true, scssOptions = {}, projectRoot = process.cwd(), } = args;
14
15
  try {
16
+ // 入力バリデーション
17
+ validateName(pageName, 'ページ名');
18
+ if (sectionType)
19
+ validateName(sectionType, 'セクション種類');
15
20
  const updateLogs = [];
16
21
  let finalSectionType;
17
22
  let finalUIPattern;
@@ -69,9 +74,11 @@ export async function generateSection(args) {
69
74
  options: scssOptions,
70
75
  });
71
76
  }
72
- // 4. ファイルパス解決
77
+ // 4. ファイルパス解決 & 境界チェック
73
78
  const astroPath = resolve(projectRoot, `src/pages/_parts/_${pageName}/_${finalSectionType}.astro`);
74
79
  const scssPath = resolve(projectRoot, `src/scss/pages/_${pageName}.scss`);
80
+ assertPathWithinProject(astroPath, projectRoot);
81
+ assertPathWithinProject(scssPath, projectRoot);
75
82
  // 5. ファイル書き込み
76
83
  try {
77
84
  // Astroセクションファイル
@@ -1 +1 @@
1
- {"version":3,"file":"generateSection.js","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateSection.js","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getComponentInterface.d.ts","sourceRoot":"","sources":["../../src/tools/getComponentInterface.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,GAAG;;;;;GA0EpD"}
1
+ {"version":3,"file":"getComponentInterface.d.ts","sourceRoot":"","sources":["../../src/tools/getComponentInterface.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,GAAG;;;;;GA6EpD"}
@@ -1,5 +1,6 @@
1
1
  import { readFileSync, existsSync, readdirSync } from "fs";
2
2
  import { resolve, basename } from "path";
3
+ import { validateName, assertPathWithinProject } from "../utils/security.js";
3
4
  /**
4
5
  * コンポーネントインターフェース取得ツール
5
6
  * .astroファイルの---フェンス内からProps interfaceを抽出して返す
@@ -19,10 +20,13 @@ export async function getComponentInterface(args) {
19
20
  }
20
21
  // 特定コンポーネント指定の場合
21
22
  if (componentName) {
22
- const fileName = componentName.endsWith(".astro")
23
- ? componentName
24
- : `${componentName}.astro`;
23
+ const rawName = componentName.endsWith(".astro")
24
+ ? componentName.slice(0, -6)
25
+ : componentName;
26
+ validateName(rawName, "コンポーネント名");
27
+ const fileName = `${rawName}.astro`;
25
28
  const filePath = resolve(componentsDir, fileName);
29
+ assertPathWithinProject(filePath, projectRoot);
26
30
  if (!existsSync(filePath)) {
27
31
  return {
28
32
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"getComponentInterface.js","sourceRoot":"","sources":["../../src/tools/getComponentInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getComponentInterface.js","sourceRoot":"","sources":["../../src/tools/getComponentInterface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getProjectContext.d.ts","sourceRoot":"","sources":["../../src/tools/getProjectContext.ts"],"names":[],"mappings":"AAyFA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAkEhD"}
1
+ {"version":3,"file":"getProjectContext.d.ts","sourceRoot":"","sources":["../../src/tools/getProjectContext.ts"],"names":[],"mappings":"AA0FA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAmEhD"}
@@ -1,5 +1,6 @@
1
1
  import { readFileSync, existsSync, readdirSync, statSync } from "fs";
2
2
  import { resolve } from "path";
3
+ import { assertPathWithinProject, escapeRegExp } from "../utils/security.js";
3
4
  /**
4
5
  * デフォルトのAstro開発規約(ai-context.md が見つからない場合のフォールバック)
5
6
  */
@@ -92,6 +93,7 @@ export async function getProjectContext(args) {
92
93
  let rulesContent = "";
93
94
  for (const file of contextFiles) {
94
95
  const filePath = resolve(projectRoot, file);
96
+ assertPathWithinProject(filePath, projectRoot);
95
97
  if (existsSync(filePath)) {
96
98
  try {
97
99
  rulesContent = readFileSync(filePath, "utf-8")
@@ -156,7 +158,7 @@ function extractScssVariablesSummary(content) {
156
158
  const layoutVars = ["$brakePoint", "$containerSize", "$containerPadding"];
157
159
  const layoutMatches = layoutVars
158
160
  .map((v) => {
159
- const match = content.match(new RegExp(`\\${v}:\\s*[^;]+;`));
161
+ const match = content.match(new RegExp(`${escapeRegExp(v)}:\\s*[^;]+;`));
160
162
  return match ? `- ${match[0].trim()}` : null;
161
163
  })
162
164
  .filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"getProjectContext.js","sourceRoot":"","sources":["../../src/tools/getProjectContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getProjectContext.js","sourceRoot":"","sources":["../../src/tools/getProjectContext.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectContext.d.ts","sourceRoot":"","sources":["../../src/utils/projectContext.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBhE"}
1
+ {"version":3,"file":"projectContext.d.ts","sourceRoot":"","sources":["../../src/utils/projectContext.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBhE"}
@@ -1,5 +1,6 @@
1
1
  import { readFileSync, existsSync } from "fs";
2
2
  import { resolve } from "path";
3
+ import { escapeRegExp } from "./security.js";
3
4
  /**
4
5
  * generate-* ツール実行時にレスポンスへ自動注入するプロジェクト規約を取得
5
6
  * get-project-context の完全版とは異なり、生成に直接関わる最小限の情報のみ返す
@@ -58,7 +59,7 @@ function readScssVariablesSummary(projectRoot) {
58
59
  // レイアウト変数
59
60
  const layoutVars = ["$brakePoint", "$containerSize", "$containerPadding"];
60
61
  for (const v of layoutVars) {
61
- const match = content.match(new RegExp(`\\${v}:\\s*[^;]+;`));
62
+ const match = content.match(new RegExp(`${escapeRegExp(v)}:\\s*[^;]+;`));
62
63
  if (match)
63
64
  lines.push(match[0].trim());
64
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projectContext.js","sourceRoot":"","sources":["../../src/utils/projectContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mBAAmB;IACnB,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,eAAe;IACf,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,OAAO,gCAAgC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,KAAK,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;qBACnC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;qBAC1B,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,WAAmB;IACnD,MAAM,QAAQ,GAAG,OAAO,CACtB,WAAW,EACX,oCAAoC,CACrC,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,QAAQ;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,UAAU;QACV,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7D,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"projectContext.js","sourceRoot":"","sources":["../../src/utils/projectContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * パスがプロジェクトルート内に収まっているか検証
3
+ * パストラバーサル攻撃を防ぐ
4
+ */
5
+ export declare function assertPathWithinProject(resolvedPath: string, projectRoot: string): void;
6
+ /**
7
+ * ファイル名として安全な文字列か検証
8
+ * コンポーネント名、ページ名、セクション名に使用
9
+ */
10
+ export declare function validateName(name: string, label: string): void;
11
+ /**
12
+ * 正規表現の特殊文字をエスケープ
13
+ * ユーザー入力を RegExp パターンに使用する際の安全対策
14
+ */
15
+ export declare function escapeRegExp(str: string): string;
16
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAe9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -0,0 +1,37 @@
1
+ import { resolve, relative } from "path";
2
+ /**
3
+ * パスがプロジェクトルート内に収まっているか検証
4
+ * パストラバーサル攻撃を防ぐ
5
+ */
6
+ export function assertPathWithinProject(resolvedPath, projectRoot) {
7
+ const normalizedRoot = resolve(projectRoot);
8
+ const normalizedPath = resolve(resolvedPath);
9
+ const rel = relative(normalizedRoot, normalizedPath);
10
+ if (rel.startsWith("..") || resolve(normalizedRoot, rel) !== normalizedPath) {
11
+ throw new Error(`セキュリティエラー: パスがプロジェクト外を参照しています: ${resolvedPath}`);
12
+ }
13
+ }
14
+ /**
15
+ * ファイル名として安全な文字列か検証
16
+ * コンポーネント名、ページ名、セクション名に使用
17
+ */
18
+ export function validateName(name, label) {
19
+ if (!name || !name.trim()) {
20
+ throw new Error(`${label}が空です`);
21
+ }
22
+ if (name.length > 255) {
23
+ throw new Error(`${label}が長すぎます(最大255文字)`);
24
+ }
25
+ // 英数字、ハイフン、アンダースコアのみ許可(先頭は英字)
26
+ if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name)) {
27
+ throw new Error(`${label}に無効な文字が含まれています: "${name}"(英数字・ハイフン・アンダースコアのみ、先頭は英字)`);
28
+ }
29
+ }
30
+ /**
31
+ * 正規表現の特殊文字をエスケープ
32
+ * ユーザー入力を RegExp パターンに使用する際の安全対策
33
+ */
34
+ export function escapeRegExp(str) {
35
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
36
+ }
37
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAoB,EACpB,WAAmB;IAEnB,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAErD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,cAAc,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,kCAAkC,YAAY,EAAE,CACjD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,oBAAoB,IAAI,6BAA6B,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro-dev-mcp",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "MCP server for generating Astro components, sections, and pages from design data and content",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -39,10 +39,10 @@
39
39
  "homepage": "https://github.com/YoshiokaY/astro-dev-mcp#readme",
40
40
  "dependencies": {
41
41
  "@modelcontextprotocol/sdk": "^1.0.4",
42
- "zod": "^3.23.8",
43
- "xlsx": "^0.18.5",
42
+ "exceljs": "^4.4.0",
44
43
  "gray-matter": "^4.0.3",
45
- "prettier": "^3.5.3"
44
+ "prettier": "^3.5.3",
45
+ "zod": "^3.23.8"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/node": "^22.15.3",