@metrostar/comet-mcp 1.1.0 → 1.3.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/README.md CHANGED
@@ -30,13 +30,15 @@ npm install -g @metrostar/comet-mcp
30
30
 
31
31
  ## Available Tools
32
32
 
33
- | Tool | Description | Parameters |
34
- | ----------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
35
- | `init_project` | Initialize a new Comet project (UI or API) | `type`: Project type ("ui" or "api")<br>`name`: Project name and directory name |
36
- | `get_comet_version` | Get the current version of Comet Packages and Versions | None |
37
- | `list_components` | Get a list of all available Comet components | `package`: Filter by package ("all", "comet-uswds", "comet-extras", "comet-data-viz") - optional, defaults to "all" |
38
- | `get_component_details` | Get detailed information about a specific component | `componentName`: The name of the component to get details for (required) |
39
- | `get_env_variables` | Get current Node.js environment variables | `filter`: Optional filter to search for specific variables (case-insensitive) |
33
+ | Tool | Description | Parameters |
34
+ | ----------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
35
+ | `init_project` | Initialize a new Comet project (UI or API) | `type`: Project type ("ui" or "api")<br>`name`: Project name and directory name |
36
+ | `add_comet` | Add Comet packages and configurations to an existing app | None |
37
+ | `get_comet_version` | Get the current version of Comet Packages and Versions | None |
38
+ | `list_components` | Get a list of all available Comet components | `package`: Filter by package ("all", "comet-uswds", "comet-extras", "comet-data-viz") - optional, defaults to "all" |
39
+ | `get_component_details` | Get detailed information about a specific component | `componentName`: The name of the component to get details for (required) |
40
+ | `search_uswds` | Search USWDS design system documentation | `query`: Search query for utilities, design tokens, etc. (required)<br>`limit`: Max results to return (1-20, default: 5) |
41
+ | `get_env_variables` | Get current Node.js environment variables | `filter`: Optional filter to search for specific variables (case-insensitive) |
40
42
 
41
43
  ### Component Tools
42
44
 
@@ -54,6 +56,29 @@ The `get_component_details` tool provides detailed information about a specific
54
56
  - Available props (extracted from TypeScript interfaces)
55
57
  - Exported types and interfaces
56
58
 
59
+ ### Add Comet Tool
60
+
61
+ The `add_comet` tool helps integrate Comet packages into existing applications by:
62
+
63
+ 1. **Checking existing installation**: Detects if Comet packages are already installed and configured
64
+ 2. **Prerequisites verification**: Ensures required dependencies (Vite and SCSS) are present
65
+ 3. **Setup guidance**: Provides complete step-by-step installation instructions when prerequisites are met
66
+
67
+ **Key Features:**
68
+
69
+ - **Smart detection**: Automatically checks for existing Comet packages to avoid duplicate setup
70
+ - **Dependency validation**: Verifies that Vite and SCSS/Sass are properly configured
71
+ - **Complete installation guide**: Provides detailed instructions following the official Comet USWDS documentation
72
+ - **Ready-to-use configurations**: Includes all necessary Vite config updates, SCSS setup, and example component usage
73
+
74
+ **When to use:**
75
+
76
+ - Adding Comet to an existing React/TypeScript project
77
+ - Migrating from custom components to Comet USWDS components
78
+ - Setting up Comet in a project that already has Vite and SCSS configured
79
+
80
+ The tool follows the official "Getting Started with a Custom App (NOT pre-configured for USWDS)" documentation and ensures all USWDS-specific configurations are properly applied.
81
+
57
82
  ### Environment Variables Tool
58
83
 
59
84
  The `get_env_variables` tool helps inspect the current Node.js environment variables:
@@ -63,6 +88,34 @@ The `get_env_variables` tool helps inspect the current Node.js environment varia
63
88
 
64
89
  This tool is useful for debugging environment configuration, checking if required variables are set, and understanding the runtime environment.
65
90
 
91
+ ### USWDS Search Tool
92
+
93
+ The `search_uswds` tool provides direct access to the official USWDS design system documentation from https://designsystem.digital.gov/:
94
+
95
+ - **Comprehensive Search**: Searches across utilities and design tokens documentation
96
+ - **Real-time Data**: Fetches current documentation directly from the USWDS website
97
+ - **Rich Results**: Returns detailed information including:
98
+ - Page titles and content excerpts
99
+ - Code examples and usage patterns
100
+ - CSS utility classes and design tokens
101
+ - Direct links to official documentation
102
+
103
+ **Key Features:**
104
+
105
+ - **Utilities Search**: Find CSS utility classes for spacing, typography, colors, layout, and more
106
+ - **Design Tokens**: Discover design tokens for colors, spacing, typography scales, and other design properties
107
+ - **Code Examples**: Get actual code snippets showing how to use USWDS utilities and tokens
108
+ - **Smart Parsing**: Extracts relevant class names and utilities from documentation content
109
+
110
+ **Example Queries:**
111
+
112
+ - `"margin spacing"` - Find margin-related utility classes
113
+ - `"color tokens"` - Discover available color design tokens
114
+ - `"typography"` - Search for typography utilities and tokens
115
+ - `"grid layout"` - Find grid and layout-related utilities
116
+
117
+ This tool is essential for developers working with USWDS who need quick access to the latest utility classes, design tokens, and implementation patterns without leaving their development environment.
118
+
66
119
  ## Running the Project Locally
67
120
 
68
121
  The MCP server is built using the official TypeScript MCP SDK and follows the existing Comet project structure and patterns.
package/dist/index.js CHANGED
@@ -7,15 +7,13 @@ import path from 'path';
7
7
  import { exec } from 'child_process';
8
8
  import { promisify } from 'util';
9
9
  import { API_REPO_URL, PROJECT_TYPES, UI_REPO_URL } from './constants.js';
10
- import { log, getComponentsFromPackage, getComponentDetails } from './utils.js';
10
+ import { log, getComponentsFromPackage, getComponentDetails, fetchUrl, parseSitemapForUrls, extractUSWDSContent, } from './utils.js';
11
11
  const execAsync = promisify(exec);
12
12
  const server = new Server({
13
13
  name: 'comet-mcp',
14
- version: '1.1.0',
14
+ version: '1.3.0',
15
15
  }, {
16
- capabilities: {
17
- tools: {},
18
- },
16
+ capabilities: {},
19
17
  });
20
18
  // Tool definitions
21
19
  server.setRequestHandler(ListToolsRequestSchema, async () => {
@@ -89,6 +87,34 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
89
87
  },
90
88
  },
91
89
  },
90
+ {
91
+ name: 'add_comet',
92
+ description: 'Add comet packages and configurations to an existing app',
93
+ inputSchema: {
94
+ type: 'object',
95
+ properties: {},
96
+ },
97
+ },
98
+ {
99
+ name: 'search_uswds',
100
+ description: 'Search USWDS design system documentation for utilities, classes, design tokens, and other information from https://designsystem.digital.gov/',
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {
104
+ query: {
105
+ type: 'string',
106
+ description: 'Search query for USWDS documentation (utilities, design tokens, etc.)',
107
+ },
108
+ limit: {
109
+ type: 'number',
110
+ description: 'Maximum number of results to return (default: 5)',
111
+ minimum: 1,
112
+ maximum: 20,
113
+ },
114
+ },
115
+ required: ['query'],
116
+ },
117
+ },
92
118
  ],
93
119
  };
94
120
  });
@@ -245,6 +271,148 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
245
271
  ],
246
272
  };
247
273
  }
274
+ case 'add_comet': {
275
+ const currentDir = process.env.PROJECT_ROOT || process.cwd();
276
+ const packageJsonPath = path.join(currentDir, 'package.json');
277
+ if (!fs.existsSync(packageJsonPath)) {
278
+ throw new Error(`No package.json found in current directory: ${currentDir}`);
279
+ }
280
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
281
+ const dependencies = { ...packageJson.dependencies, ...packageJson.devDependencies };
282
+ // Step 1: Check if comet packages are already added
283
+ const cometPackages = [
284
+ '@metrostar/comet-uswds',
285
+ '@metrostar/comet-extras',
286
+ '@metrostar/comet-data-viz',
287
+ ];
288
+ const installedCometPackages = cometPackages.filter((pkg) => dependencies[pkg]);
289
+ if (installedCometPackages.length > 0) {
290
+ return {
291
+ content: [
292
+ {
293
+ type: 'text',
294
+ text: `Comet packages are already configured in this project:\n${installedCometPackages
295
+ .map((pkg) => `- ${pkg}: ${dependencies[pkg]}`)
296
+ .join('\n')}\n\nNothing more to do.`,
297
+ },
298
+ ],
299
+ };
300
+ }
301
+ // Step 2: Check for Vite and SCSS
302
+ const hasVite = 'vite' in dependencies ||
303
+ '@vitejs/plugin-react' in dependencies ||
304
+ '@vitejs/plugin-react-swc' in dependencies;
305
+ const hasScss = 'sass' in dependencies || 'scss' in dependencies || 'node-sass' in dependencies;
306
+ let result = '# Comet Setup Analysis\n\n';
307
+ result += '## Status\n';
308
+ result += 'Comet packages are not yet configured in this project.\n\n';
309
+ result += '## Prerequisites Check\n';
310
+ result += `- **Vite**: ${hasVite ? '✅ Found' : '❌ Not found'}\n`;
311
+ result += `- **SCSS**: ${hasScss ? '✅ Found' : '❌ Not found'}\n\n`;
312
+ if (!hasVite || !hasScss) {
313
+ result += '## Required Dependencies\n';
314
+ if (!hasVite) {
315
+ result +=
316
+ '- Vite is required for Comet packages. Install with: `npm install --save-dev vite @vitejs/plugin-react`\n';
317
+ }
318
+ if (!hasScss) {
319
+ result +=
320
+ '- SCSS/Sass is required for Comet styling. Install with: `npm install --save-dev sass`\n';
321
+ }
322
+ result += '\nPlease install the required dependencies before adding Comet packages.\n';
323
+ }
324
+ else {
325
+ // All prerequisites are met, proceed with installation
326
+ result += '## Installation Steps\n';
327
+ result +=
328
+ 'All prerequisites are met! Follow these steps to add Comet to your project:\n\n';
329
+ result += '### 1. Add Comet to your project:\n';
330
+ result += '```sh\n';
331
+ result += '# npm\n';
332
+ result += 'npm i --save @uswds/uswds @metrostar/comet-uswds\n\n';
333
+ result += '# or yarn\n';
334
+ result += 'yarn add @uswds/uswds @metrostar/comet-uswds\n';
335
+ result += '```\n\n';
336
+ result += '### 2. Add uswds directory to your src folder\n\n';
337
+ result += '### 3. Add base USWDS file (uswds.scss) to the uswds directory:\n';
338
+ result += '```scss\n';
339
+ result += '// Include a USWDS settings file (required)\n';
340
+ result += "@forward './uswds-settings.scss';\n\n";
341
+ result += '// Point to the USWDS source code (required)\n';
342
+ result += "@forward '~uswds/packages/uswds';\n\n";
343
+ result += "// Include your project's custom Sass (optional)\n";
344
+ result += '// @forward "project-custom.scss";\n';
345
+ result += '```\n\n';
346
+ result +=
347
+ '### 4. Add base USWDS settings file (uswds-settings.scss) to the uswds directory:\n';
348
+ result += '```scss\n';
349
+ result += "@use 'uswds-core' with (\n";
350
+ result += ' // General settings\n';
351
+ result += ' $theme-show-notifications: false,\n';
352
+ result += " $theme-font-path: '~uswds/dist/fonts',\n";
353
+ result += " $theme-image-path: '~uswds/dist/img'\n";
354
+ result += ');\n';
355
+ result += '```\n\n';
356
+ result += '### 5. Add uswds to the top of your SASS entry point (styles.scss):\n';
357
+ result += '```scss\n';
358
+ result += "@forward 'uswds/uswds.scss';\n";
359
+ result += '```\n\n';
360
+ result +=
361
+ '### 6. Update your Vite config file (vite.config.ts) with USWDS configurations:\n';
362
+ result += '```ts\n';
363
+ result += "import react from '@vitejs/plugin-react';\n";
364
+ result += "import autoprefixer from 'autoprefixer';\n";
365
+ result += "import path from 'path';\n";
366
+ result += "import { fileURLToPath } from 'url';\n";
367
+ result += "import { defineConfig } from 'vite';\n";
368
+ result += "import EnvironmentPlugin from 'vite-plugin-environment';\n";
369
+ result += "import eslint from 'vite-plugin-eslint';\n";
370
+ result += "import tsconfigPaths from 'vite-tsconfig-paths';\n\n";
371
+ result += 'const __filename = fileURLToPath(import.meta.url);\n';
372
+ result += 'const __dirname = path.dirname(__filename);\n\n';
373
+ result += '// https://vitejs.dev/config/\n';
374
+ result += 'export default defineConfig({\n';
375
+ result += " plugins: [react(), tsconfigPaths(), eslint(), EnvironmentPlugin('all')],\n";
376
+ result += ' resolve: {\n';
377
+ result += ' alias: {\n';
378
+ result += " '~uswds': path.resolve(__dirname, 'node_modules/@uswds/uswds'),\n";
379
+ result += ' },\n';
380
+ result += ' },\n';
381
+ result += ' css: {\n';
382
+ result += ' preprocessorOptions: {\n';
383
+ result += ' scss: {\n';
384
+ result += " api: 'legacy',\n";
385
+ result += " includePaths: ['node_modules/@uswds/uswds/packages'],\n";
386
+ result += ' // Silence warnings coming from USWDS SCSS\n';
387
+ result += ' quietDeps: true,\n';
388
+ result += ' logger: {\n';
389
+ result += ' warn: (msg) => {\n';
390
+ result += " if (msg.includes('legacy-js-api')) {\n";
391
+ result += ' return;\n';
392
+ result += ' }\n';
393
+ result += ' console.warn(msg);\n';
394
+ result += ' },\n';
395
+ result += ' },\n';
396
+ result += ' },\n';
397
+ result += ' },\n';
398
+ result += ' postcss: {\n';
399
+ result += ' plugins: [autoprefixer],\n';
400
+ result += ' },\n';
401
+ result += ' },\n';
402
+ result += '});\n';
403
+ result += '```\n\n';
404
+ result +=
405
+ 'For additional troubleshooting, refer to the [Comet Starter](https://github.com/MetroStar/comet-starter) app.\n';
406
+ }
407
+ return {
408
+ content: [
409
+ {
410
+ type: 'text',
411
+ text: result,
412
+ },
413
+ ],
414
+ };
415
+ }
248
416
  case 'get_env_variables': {
249
417
  const { filter } = args;
250
418
  const envVars = process.env;
@@ -291,6 +459,129 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
291
459
  ],
292
460
  };
293
461
  }
462
+ case 'search_uswds': {
463
+ const { query, limit = 5 } = args;
464
+ try {
465
+ // Always search both utilities and design-tokens
466
+ const patterns = ['/utilities/', '/design-tokens/'];
467
+ // Fetch sitemap
468
+ const sitemapUrl = 'https://designsystem.digital.gov/sitemap.xml';
469
+ log(`Fetching sitemap from: ${sitemapUrl}`);
470
+ const sitemapContent = await fetchUrl(sitemapUrl);
471
+ // Parse sitemap for relevant URLs
472
+ const relevantUrls = parseSitemapForUrls(sitemapContent, patterns);
473
+ log(`Found ${relevantUrls.length} relevant URLs`);
474
+ if (relevantUrls.length === 0) {
475
+ return {
476
+ content: [
477
+ {
478
+ type: 'text',
479
+ text: 'No USWDS documentation found',
480
+ },
481
+ ],
482
+ };
483
+ }
484
+ // Fetch content from relevant URLs and search for query
485
+ const searchResults = [];
486
+ const searchLimit = Math.min(limit, relevantUrls.length);
487
+ for (let i = 0; i < searchLimit && searchResults.length < limit; i++) {
488
+ const url = relevantUrls[i];
489
+ try {
490
+ log(`Fetching content from: ${url}`);
491
+ const htmlContent = await fetchUrl(url);
492
+ const docContent = extractUSWDSContent(htmlContent, url);
493
+ // Check if content matches the search query
494
+ const queryLower = query.toLowerCase();
495
+ const matchesQuery = docContent.title.toLowerCase().includes(queryLower) ||
496
+ docContent.content.toLowerCase().includes(queryLower) ||
497
+ docContent.utilities.some((util) => util.toLowerCase().includes(queryLower)) ||
498
+ docContent.codeExamples.some((code) => code.toLowerCase().includes(queryLower));
499
+ if (matchesQuery) {
500
+ searchResults.push(docContent);
501
+ }
502
+ }
503
+ catch (error) {
504
+ log(`Error fetching ${url}:`, error);
505
+ // Continue with next URL
506
+ }
507
+ }
508
+ // If we have fewer results than the limit, try searching more URLs
509
+ if (searchResults.length < limit && searchLimit < relevantUrls.length) {
510
+ for (let i = searchLimit; i < relevantUrls.length && searchResults.length < limit; i++) {
511
+ const url = relevantUrls[i];
512
+ try {
513
+ log(`Fetching additional content from: ${url}`);
514
+ const htmlContent = await fetchUrl(url);
515
+ const docContent = extractUSWDSContent(htmlContent, url);
516
+ const queryLower = query.toLowerCase();
517
+ const matchesQuery = docContent.title.toLowerCase().includes(queryLower) ||
518
+ docContent.content.toLowerCase().includes(queryLower) ||
519
+ docContent.utilities.some((util) => util.toLowerCase().includes(queryLower)) ||
520
+ docContent.codeExamples.some((code) => code.toLowerCase().includes(queryLower));
521
+ if (matchesQuery) {
522
+ searchResults.push(docContent);
523
+ }
524
+ }
525
+ catch (error) {
526
+ log(`Error fetching ${url}:`, error);
527
+ // Continue with next URL
528
+ }
529
+ }
530
+ }
531
+ if (searchResults.length === 0) {
532
+ return {
533
+ content: [
534
+ {
535
+ type: 'text',
536
+ text: `No USWDS documentation found matching "${query}"`,
537
+ },
538
+ ],
539
+ };
540
+ }
541
+ // Format results
542
+ let result = `# USWDS Search Results\n\n`;
543
+ result += `**Query:** "${query}"\n`;
544
+ result += `**Results:** ${searchResults.length}\n\n`;
545
+ searchResults.forEach((doc, index) => {
546
+ result += `## ${index + 1}. ${doc.title}\n\n`;
547
+ result += `**Type:** ${doc.type}\n`;
548
+ result += `**URL:** ${doc.url}\n\n`;
549
+ if (doc.content) {
550
+ result += `**Content:**\n${doc.content}\n\n`;
551
+ }
552
+ if (doc.utilities.length > 0) {
553
+ result += `**Utilities/Classes:** ${doc.utilities.slice(0, 10).join(', ')}\n\n`;
554
+ }
555
+ if (doc.codeExamples.length > 0) {
556
+ result += `**Code Examples:**\n`;
557
+ doc.codeExamples.slice(0, 3).forEach((code) => {
558
+ result += `\`\`\`\n${code}\n\`\`\`\n\n`;
559
+ });
560
+ }
561
+ result += '---\n\n';
562
+ });
563
+ return {
564
+ content: [
565
+ {
566
+ type: 'text',
567
+ text: result.trim(),
568
+ },
569
+ ],
570
+ };
571
+ }
572
+ catch (error) {
573
+ const errorMessage = error instanceof Error ? error.message : String(error);
574
+ return {
575
+ content: [
576
+ {
577
+ type: 'text',
578
+ text: `Error searching USWDS documentation: ${errorMessage}`,
579
+ },
580
+ ],
581
+ isError: true,
582
+ };
583
+ }
584
+ }
294
585
  default:
295
586
  throw new Error(`Unknown tool: ${name}`);
296
587
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -50,4 +50,34 @@ export declare const extractProps: (content: string) => string[];
50
50
  * Extracts exported type names from the file
51
51
  */
52
52
  export declare const extractTypes: (content: string) => string[];
53
+ /**
54
+ * HTTP utilities for fetching web content
55
+ */
56
+ /**
57
+ * Fetches content from a URL
58
+ */
59
+ export declare const fetchUrl: (url: string) => Promise<string>;
60
+ /**
61
+ * Parses sitemap XML and extracts URLs that match patterns
62
+ */
63
+ export declare const parseSitemapForUrls: (sitemapContent: string, patterns: string[]) => string[];
64
+ /**
65
+ * Extracts relevant content from USWDS documentation HTML
66
+ */
67
+ export declare const extractUSWDSContent: (html: string, url: string) => USWDSDocContent;
68
+ /**
69
+ * Determines the type of USWDS content based on URL
70
+ */
71
+ export declare const determineContentType: (url: string) => string;
72
+ /**
73
+ * Interface for USWDS documentation content
74
+ */
75
+ export interface USWDSDocContent {
76
+ url: string;
77
+ title: string;
78
+ content: string;
79
+ codeExamples: string[];
80
+ utilities: string[];
81
+ type: string;
82
+ }
53
83
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG;;;CAAgB,CAAC;AACjC,eAAO,MAAM,KAAK;;;CAAgB,CAAC;AAEnC,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,MAAM,KAAG,MAAM,EAqDpE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,gBAAgB,GAAG,IA2D9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAsBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAgBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAOlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAoBpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAcpD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG;;;CAAgB,CAAC;AACjC,eAAO,MAAM,KAAK;;;CAAgB,CAAC;AAEnC,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,MAAM,KAAG,MAAM,EAqDpE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,gBAAgB,GAAG,IA2D9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAsBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAgBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAOlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAoBpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAcpD,CAAC;AAEF;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAW1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,MAAM,EAAE,UAAU,MAAM,EAAE,KAAG,MAAM,EAkBtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,eA4D/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,KAAG,MAOlD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd"}
package/dist/utils.js CHANGED
@@ -201,4 +201,110 @@ export const extractTypes = (content) => {
201
201
  });
202
202
  return types.sort();
203
203
  };
204
+ /**
205
+ * HTTP utilities for fetching web content
206
+ */
207
+ /**
208
+ * Fetches content from a URL
209
+ */
210
+ export const fetchUrl = async (url) => {
211
+ try {
212
+ const response = await fetch(url);
213
+ if (!response.ok) {
214
+ throw new Error(`HTTP error! status: ${response.status}`);
215
+ }
216
+ return await response.text();
217
+ }
218
+ catch (error) {
219
+ log(`Error fetching ${url}:`, error);
220
+ throw error;
221
+ }
222
+ };
223
+ /**
224
+ * Parses sitemap XML and extracts URLs that match patterns
225
+ */
226
+ export const parseSitemapForUrls = (sitemapContent, patterns) => {
227
+ const urls = [];
228
+ // Simple XML parsing to extract <loc> tags
229
+ const locMatches = sitemapContent.match(/<loc>(.*?)<\/loc>/g) || [];
230
+ locMatches.forEach((match) => {
231
+ const url = match.replace(/<\/?loc>/g, '');
232
+ // Check if URL matches any of the patterns
233
+ const matchesPattern = patterns.some((pattern) => url.includes(pattern.toLowerCase()));
234
+ if (matchesPattern) {
235
+ urls.push(url);
236
+ }
237
+ });
238
+ return urls;
239
+ };
240
+ /**
241
+ * Extracts relevant content from USWDS documentation HTML
242
+ */
243
+ export const extractUSWDSContent = (html, url) => {
244
+ // Remove script tags and other non-content elements
245
+ const cleanHtml = html
246
+ .replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
247
+ .replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
248
+ .replace(/<nav[^>]*>[\s\S]*?<\/nav>/gi, '')
249
+ .replace(/<header[^>]*>[\s\S]*?<\/header>/gi, '')
250
+ .replace(/<footer[^>]*>[\s\S]*?<\/footer>/gi, '');
251
+ // Extract title
252
+ const titleMatch = cleanHtml.match(/<title[^>]*>(.*?)<\/title>/i);
253
+ const title = titleMatch ? titleMatch[1].replace(/\s+/g, ' ').trim() : '';
254
+ // Extract main content - look for common content containers
255
+ const contentMatchers = [
256
+ /<main[^>]*>([\s\S]*?)<\/main>/i,
257
+ /<article[^>]*>([\s\S]*?)<\/article>/i,
258
+ /<div[^>]*class="[^"]*content[^"]*"[^>]*>([\s\S]*?)<\/div>/i,
259
+ /<div[^>]*class="[^"]*main[^"]*"[^>]*>([\s\S]*?)<\/div>/i,
260
+ ];
261
+ let content = '';
262
+ for (const matcher of contentMatchers) {
263
+ const match = cleanHtml.match(matcher);
264
+ if (match) {
265
+ content = match[1];
266
+ break;
267
+ }
268
+ }
269
+ // If no main content found, use the whole body
270
+ if (!content) {
271
+ const bodyMatch = cleanHtml.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
272
+ content = bodyMatch ? bodyMatch[1] : cleanHtml;
273
+ }
274
+ // Extract text content and clean it up
275
+ const textContent = content
276
+ .replace(/<[^>]*>/g, ' ') // Remove HTML tags
277
+ .replace(/\s+/g, ' ') // Normalize whitespace
278
+ .trim();
279
+ // Extract code examples
280
+ const codeMatches = html.match(/<code[^>]*>(.*?)<\/code>/gi) || [];
281
+ const codeExamples = codeMatches.map((match) => match.replace(/<\/?code[^>]*>/gi, '').trim());
282
+ // Extract class names and utilities mentioned
283
+ const classMatches = textContent.match(/\b[a-z-]+:[a-z-]+\b|\b\.?[a-z-]+\b/gi) || [];
284
+ const utilities = [...new Set(classMatches)].filter((item) => item.match(/^\.?[a-z][a-z0-9-]*[a-z0-9]$|^[a-z]+:[a-z-]+$/i));
285
+ return {
286
+ url,
287
+ title,
288
+ content: textContent.substring(0, 2000), // Limit content length
289
+ codeExamples,
290
+ utilities,
291
+ type: determineContentType(url),
292
+ };
293
+ };
294
+ /**
295
+ * Determines the type of USWDS content based on URL
296
+ */
297
+ export const determineContentType = (url) => {
298
+ if (url.includes('/utilities/'))
299
+ return 'utility';
300
+ if (url.includes('/design-tokens/'))
301
+ return 'design-token';
302
+ if (url.includes('/components/'))
303
+ return 'component';
304
+ if (url.includes('/patterns/'))
305
+ return 'pattern';
306
+ if (url.includes('/templates/'))
307
+ return 'template';
308
+ return 'other';
309
+ };
204
310
  //# sourceMappingURL=utils.js.map