@eui/mcp 1.0.3
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 +846 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +27 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +224 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +171 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +100 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/cache-manager.d.ts +74 -0
- package/dist/loader/cache-manager.d.ts.map +1 -0
- package/dist/loader/cache-manager.js +107 -0
- package/dist/loader/cache-manager.js.map +1 -0
- package/dist/loader/documentation-loader.d.ts +57 -0
- package/dist/loader/documentation-loader.d.ts.map +1 -0
- package/dist/loader/documentation-loader.js +81 -0
- package/dist/loader/documentation-loader.js.map +1 -0
- package/dist/loader/documentation-source.d.ts +37 -0
- package/dist/loader/documentation-source.d.ts.map +1 -0
- package/dist/loader/documentation-source.js +2 -0
- package/dist/loader/documentation-source.js.map +1 -0
- package/dist/loader/errors.d.ts +34 -0
- package/dist/loader/errors.d.ts.map +1 -0
- package/dist/loader/errors.js +65 -0
- package/dist/loader/errors.js.map +1 -0
- package/dist/loader/http-client.d.ts +43 -0
- package/dist/loader/http-client.d.ts.map +1 -0
- package/dist/loader/http-client.js +144 -0
- package/dist/loader/http-client.js.map +1 -0
- package/dist/loader/index.d.ts +6 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +5 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/local-documentation-source.d.ts +62 -0
- package/dist/loader/local-documentation-source.d.ts.map +1 -0
- package/dist/loader/local-documentation-source.js +190 -0
- package/dist/loader/local-documentation-source.js.map +1 -0
- package/dist/loader/path-type-detector.d.ts +34 -0
- package/dist/loader/path-type-detector.d.ts.map +1 -0
- package/dist/loader/path-type-detector.js +78 -0
- package/dist/loader/path-type-detector.js.map +1 -0
- package/dist/loader/remote-documentation-source.d.ts +112 -0
- package/dist/loader/remote-documentation-source.d.ts.map +1 -0
- package/dist/loader/remote-documentation-source.js +252 -0
- package/dist/loader/remote-documentation-source.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +211 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +65 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +224 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/publish/index.d.ts +8 -0
- package/dist/publish/index.d.ts.map +1 -0
- package/dist/publish/index.js +8 -0
- package/dist/publish/index.js.map +1 -0
- package/dist/publish/publish-utils.d.ts +74 -0
- package/dist/publish/publish-utils.d.ts.map +1 -0
- package/dist/publish/publish-utils.js +170 -0
- package/dist/publish/publish-utils.js.map +1 -0
- package/dist/query/component-query.d.ts +33 -0
- package/dist/query/component-query.d.ts.map +1 -0
- package/dist/query/component-query.js +63 -0
- package/dist/query/component-query.js.map +1 -0
- package/dist/query/index-builder.d.ts +79 -0
- package/dist/query/index-builder.d.ts.map +1 -0
- package/dist/query/index-builder.js +217 -0
- package/dist/query/index-builder.js.map +1 -0
- package/dist/query/index.d.ts +5 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +6 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/result-formatter.d.ts +108 -0
- package/dist/query/result-formatter.d.ts.map +1 -0
- package/dist/query/result-formatter.js +165 -0
- package/dist/query/result-formatter.js.map +1 -0
- package/dist/query/search-engine.d.ts +54 -0
- package/dist/query/search-engine.d.ts.map +1 -0
- package/dist/query/search-engine.js +178 -0
- package/dist/query/search-engine.js.map +1 -0
- package/dist/test-error.ts +1 -0
- package/dist/tools/get-component-docs.d.ts +43 -0
- package/dist/tools/get-component-docs.d.ts.map +1 -0
- package/dist/tools/get-component-docs.js +55 -0
- package/dist/tools/get-component-docs.js.map +1 -0
- package/dist/tools/get-component-examples.d.ts +45 -0
- package/dist/tools/get-component-examples.d.ts.map +1 -0
- package/dist/tools/get-component-examples.js +56 -0
- package/dist/tools/get-component-examples.js.map +1 -0
- package/dist/tools/get-component-inputs.d.ts +44 -0
- package/dist/tools/get-component-inputs.d.ts.map +1 -0
- package/dist/tools/get-component-inputs.js +55 -0
- package/dist/tools/get-component-inputs.js.map +1 -0
- package/dist/tools/get-component-outputs.d.ts +44 -0
- package/dist/tools/get-component-outputs.d.ts.map +1 -0
- package/dist/tools/get-component-outputs.js +55 -0
- package/dist/tools/get-component-outputs.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-components.d.ts +69 -0
- package/dist/tools/list-components.d.ts.map +1 -0
- package/dist/tools/list-components.js +84 -0
- package/dist/tools/list-components.js.map +1 -0
- package/dist/tools/search-components.d.ts +69 -0
- package/dist/tools/search-components.d.ts.map +1 -0
- package/dist/tools/search-components.js +98 -0
- package/dist/tools/search-components.js.map +1 -0
- package/dist/types/compodoc.d.ts +261 -0
- package/dist/types/compodoc.d.ts.map +1 -0
- package/dist/types/compodoc.js +5 -0
- package/dist/types/compodoc.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +91 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +186 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/credential-masking.d.ts +90 -0
- package/dist/utils/credential-masking.d.ts.map +1 -0
- package/dist/utils/credential-masking.js +202 -0
- package/dist/utils/credential-masking.js.map +1 -0
- package/dist/utils/error-handler.d.ts +68 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +184 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/errors.d.ts +156 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +242 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +76 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +150 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +19 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +81 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/version/changelog-file-utils.d.ts +69 -0
- package/dist/version/changelog-file-utils.d.ts.map +1 -0
- package/dist/version/changelog-file-utils.js +161 -0
- package/dist/version/changelog-file-utils.js.map +1 -0
- package/dist/version/changelog-utils.d.ts +98 -0
- package/dist/version/changelog-utils.d.ts.map +1 -0
- package/dist/version/changelog-utils.js +198 -0
- package/dist/version/changelog-utils.js.map +1 -0
- package/dist/version/dry-run-utils.d.ts +108 -0
- package/dist/version/dry-run-utils.d.ts.map +1 -0
- package/dist/version/dry-run-utils.js +126 -0
- package/dist/version/dry-run-utils.js.map +1 -0
- package/dist/version/git-tag-utils.d.ts +50 -0
- package/dist/version/git-tag-utils.d.ts.map +1 -0
- package/dist/version/git-tag-utils.js +66 -0
- package/dist/version/git-tag-utils.js.map +1 -0
- package/dist/version/index.d.ts +11 -0
- package/dist/version/index.d.ts.map +1 -0
- package/dist/version/index.js +11 -0
- package/dist/version/index.js.map +1 -0
- package/dist/version/release-utils.d.ts +94 -0
- package/dist/version/release-utils.d.ts.map +1 -0
- package/dist/version/release-utils.js +170 -0
- package/dist/version/release-utils.js.map +1 -0
- package/dist/version/rollback-utils.d.ts +47 -0
- package/dist/version/rollback-utils.d.ts.map +1 -0
- package/dist/version/rollback-utils.js +73 -0
- package/dist/version/rollback-utils.js.map +1 -0
- package/dist/version/version-manager.d.ts +98 -0
- package/dist/version/version-manager.d.ts.map +1 -0
- package/dist/version/version-manager.js +158 -0
- package/dist/version/version-manager.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompodocMcpServer - Main MCP server implementation
|
|
3
|
+
* Handles tool registration, request routing, and error handling
|
|
4
|
+
*/
|
|
5
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
6
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
7
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
+
import { ComponentQuery } from '../query/component-query.js';
|
|
9
|
+
import { SearchEngine } from '../query/search-engine.js';
|
|
10
|
+
import { ResultFormatter } from '../query/result-formatter.js';
|
|
11
|
+
import { ListComponentsTool, GetComponentDocsTool, SearchComponentsTool, GetComponentInputsTool, GetComponentOutputsTool, GetComponentExamplesTool, } from '../tools/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* CompodocMcpServer class
|
|
14
|
+
* Manages the MCP server lifecycle and tool registration
|
|
15
|
+
*/
|
|
16
|
+
export class CompodocMcpServer {
|
|
17
|
+
server;
|
|
18
|
+
index;
|
|
19
|
+
query;
|
|
20
|
+
searchEngine;
|
|
21
|
+
formatter;
|
|
22
|
+
tools;
|
|
23
|
+
isRunning = false;
|
|
24
|
+
constructor(config, index) {
|
|
25
|
+
this.index = index;
|
|
26
|
+
this.query = new ComponentQuery(index);
|
|
27
|
+
this.searchEngine = new SearchEngine(index);
|
|
28
|
+
this.formatter = new ResultFormatter();
|
|
29
|
+
this.tools = new Map();
|
|
30
|
+
// Initialize MCP server
|
|
31
|
+
this.server = new Server({
|
|
32
|
+
name: config.name,
|
|
33
|
+
version: config.version,
|
|
34
|
+
}, {
|
|
35
|
+
capabilities: {
|
|
36
|
+
tools: {},
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
// Register tools
|
|
40
|
+
this.registerTools();
|
|
41
|
+
// Set up request handlers
|
|
42
|
+
this.setupHandlers();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Register all available tools
|
|
46
|
+
*/
|
|
47
|
+
registerTools() {
|
|
48
|
+
// Create tool instances
|
|
49
|
+
const listComponentsTool = new ListComponentsTool(this.query, this.formatter);
|
|
50
|
+
const getComponentDocsTool = new GetComponentDocsTool(this.query, this.formatter);
|
|
51
|
+
const searchComponentsTool = new SearchComponentsTool(this.searchEngine, this.formatter);
|
|
52
|
+
const getComponentInputsTool = new GetComponentInputsTool(this.query, this.formatter);
|
|
53
|
+
const getComponentOutputsTool = new GetComponentOutputsTool(this.query, this.formatter);
|
|
54
|
+
const getComponentExamplesTool = new GetComponentExamplesTool(this.query, this.formatter);
|
|
55
|
+
// Store tool instances
|
|
56
|
+
this.tools.set('list-components', listComponentsTool);
|
|
57
|
+
this.tools.set('get-component-docs', getComponentDocsTool);
|
|
58
|
+
this.tools.set('search-components', searchComponentsTool);
|
|
59
|
+
this.tools.set('get-component-inputs', getComponentInputsTool);
|
|
60
|
+
this.tools.set('get-component-outputs', getComponentOutputsTool);
|
|
61
|
+
this.tools.set('get-component-examples', getComponentExamplesTool);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Set up MCP request handlers
|
|
65
|
+
*/
|
|
66
|
+
setupHandlers() {
|
|
67
|
+
// Handle list tools request
|
|
68
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
69
|
+
const toolDefinitions = [
|
|
70
|
+
ListComponentsTool.getToolDefinition(),
|
|
71
|
+
GetComponentDocsTool.getToolDefinition(),
|
|
72
|
+
SearchComponentsTool.getToolDefinition(),
|
|
73
|
+
GetComponentInputsTool.getToolDefinition(),
|
|
74
|
+
GetComponentOutputsTool.getToolDefinition(),
|
|
75
|
+
GetComponentExamplesTool.getToolDefinition(),
|
|
76
|
+
];
|
|
77
|
+
return {
|
|
78
|
+
tools: toolDefinitions,
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
// Handle call tool request
|
|
82
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
83
|
+
const { name, arguments: args } = request.params;
|
|
84
|
+
try {
|
|
85
|
+
// Validate tool exists
|
|
86
|
+
const tool = this.tools.get(name);
|
|
87
|
+
if (!tool) {
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: 'text',
|
|
92
|
+
text: JSON.stringify({
|
|
93
|
+
error: {
|
|
94
|
+
code: 'TOOL_NOT_FOUND',
|
|
95
|
+
message: `Tool '${name}' does not exist. Available tools: ${Array.from(this.tools.keys()).join(', ')}`,
|
|
96
|
+
},
|
|
97
|
+
}),
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
isError: true,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Validate parameters (basic check - tools will do detailed validation)
|
|
104
|
+
if (args === undefined || args === null) {
|
|
105
|
+
return {
|
|
106
|
+
content: [
|
|
107
|
+
{
|
|
108
|
+
type: 'text',
|
|
109
|
+
text: JSON.stringify({
|
|
110
|
+
error: {
|
|
111
|
+
code: 'INVALID_PARAMETERS',
|
|
112
|
+
message: 'Tool parameters are required',
|
|
113
|
+
},
|
|
114
|
+
}),
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
isError: true,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// Execute tool
|
|
121
|
+
const result = tool.execute(args);
|
|
122
|
+
// Format response
|
|
123
|
+
return {
|
|
124
|
+
content: [
|
|
125
|
+
{
|
|
126
|
+
type: 'text',
|
|
127
|
+
text: JSON.stringify(result, null, 2),
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
// Handle errors gracefully
|
|
134
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
|
|
135
|
+
const errorCode = this.categorizeError(error);
|
|
136
|
+
return {
|
|
137
|
+
content: [
|
|
138
|
+
{
|
|
139
|
+
type: 'text',
|
|
140
|
+
text: JSON.stringify({
|
|
141
|
+
error: {
|
|
142
|
+
code: errorCode,
|
|
143
|
+
message: errorMessage,
|
|
144
|
+
},
|
|
145
|
+
}),
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
isError: true,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Categorize errors for appropriate error codes
|
|
155
|
+
*/
|
|
156
|
+
categorizeError(error) {
|
|
157
|
+
if (error instanceof Error) {
|
|
158
|
+
const message = error.message.toLowerCase();
|
|
159
|
+
if (message.includes('not found') || message.includes('does not exist')) {
|
|
160
|
+
return 'NOT_FOUND';
|
|
161
|
+
}
|
|
162
|
+
if (message.includes('invalid') ||
|
|
163
|
+
message.includes('must be') ||
|
|
164
|
+
message.includes('required')) {
|
|
165
|
+
return 'INVALID_PARAMETERS';
|
|
166
|
+
}
|
|
167
|
+
if (message.includes('limit') || message.includes('offset')) {
|
|
168
|
+
return 'INVALID_PARAMETERS';
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return 'INTERNAL_ERROR';
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Start the MCP server
|
|
175
|
+
*/
|
|
176
|
+
async start() {
|
|
177
|
+
if (this.isRunning) {
|
|
178
|
+
throw new Error('Server is already running');
|
|
179
|
+
}
|
|
180
|
+
const transport = new StdioServerTransport();
|
|
181
|
+
await this.server.connect(transport);
|
|
182
|
+
this.isRunning = true;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Stop the MCP server
|
|
186
|
+
*/
|
|
187
|
+
async stop() {
|
|
188
|
+
if (!this.isRunning) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
await this.server.close();
|
|
192
|
+
this.isRunning = false;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Check if server is running
|
|
196
|
+
*/
|
|
197
|
+
isHealthy() {
|
|
198
|
+
return this.isRunning;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get server statistics
|
|
202
|
+
*/
|
|
203
|
+
getStats() {
|
|
204
|
+
return {
|
|
205
|
+
isRunning: this.isRunning,
|
|
206
|
+
toolCount: this.tools.size,
|
|
207
|
+
indexStats: {
|
|
208
|
+
totalComponents: this.index.totalCount,
|
|
209
|
+
lastUpdated: this.index.lastUpdated,
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Update the index (for hot reloading)
|
|
215
|
+
*/
|
|
216
|
+
updateIndex(newIndex) {
|
|
217
|
+
this.index = newIndex;
|
|
218
|
+
this.query = new ComponentQuery(newIndex);
|
|
219
|
+
this.searchEngine = new SearchEngine(newIndex);
|
|
220
|
+
// Re-register tools with new index
|
|
221
|
+
this.registerTools();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publishing module
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for npm package publishing, authentication validation,
|
|
5
|
+
* and error handling with credential sanitization.
|
|
6
|
+
*/
|
|
7
|
+
export { validateNpmToken, sanitizeErrorMessage, isAuthenticationError, isVersionConflictError, extractVersionFromError, createAuthenticationErrorMessage, createVersionConflictErrorMessage, createPublishErrorMessage, } from './publish-utils';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publish/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publishing module
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for npm package publishing, authentication validation,
|
|
5
|
+
* and error handling with credential sanitization.
|
|
6
|
+
*/
|
|
7
|
+
export { validateNpmToken, sanitizeErrorMessage, isAuthenticationError, isVersionConflictError, extractVersionFromError, createAuthenticationErrorMessage, createVersionConflictErrorMessage, createPublishErrorMessage, } from './publish-utils';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publish/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publishing Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for npm package publishing, authentication validation,
|
|
5
|
+
* and error handling with credential sanitization.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Validates that the NPM authentication token is set and non-empty.
|
|
9
|
+
*
|
|
10
|
+
* @param token - The NPM_TOKEN value from environment variables
|
|
11
|
+
* @returns true if token is valid, false otherwise
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateNpmToken(token: string | undefined): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Sanitizes error messages to remove any credential information.
|
|
16
|
+
*
|
|
17
|
+
* This function masks authentication tokens and other sensitive data
|
|
18
|
+
* that might appear in error messages or logs.
|
|
19
|
+
*
|
|
20
|
+
* @param message - The error message to sanitize
|
|
21
|
+
* @returns Sanitized error message with credentials masked
|
|
22
|
+
*/
|
|
23
|
+
export declare function sanitizeErrorMessage(message: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Determines if an npm publish error is due to authentication failure.
|
|
26
|
+
*
|
|
27
|
+
* Checks error messages and status codes to identify authentication-related failures.
|
|
28
|
+
*
|
|
29
|
+
* @param error - The error object or message from npm publish
|
|
30
|
+
* @returns true if the error is authentication-related, false otherwise
|
|
31
|
+
*/
|
|
32
|
+
export declare function isAuthenticationError(error: Error | string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Determines if an npm publish error is due to a version conflict.
|
|
35
|
+
*
|
|
36
|
+
* Checks error messages and status codes to identify version conflict failures.
|
|
37
|
+
*
|
|
38
|
+
* @param error - The error object or message from npm publish
|
|
39
|
+
* @returns true if the error is a version conflict, false otherwise
|
|
40
|
+
*/
|
|
41
|
+
export declare function isVersionConflictError(error: Error | string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a user-friendly error message for authentication failures.
|
|
44
|
+
*
|
|
45
|
+
* Provides actionable guidance without exposing credential values.
|
|
46
|
+
*
|
|
47
|
+
* @returns Formatted authentication error message
|
|
48
|
+
*/
|
|
49
|
+
export declare function createAuthenticationErrorMessage(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Extracts version number from a version conflict error message.
|
|
52
|
+
*
|
|
53
|
+
* Searches for semantic version patterns (MAJOR.MINOR.PATCH) in error messages
|
|
54
|
+
* to identify the conflicting version.
|
|
55
|
+
*
|
|
56
|
+
* @param error - The error object or message from npm publish
|
|
57
|
+
* @returns The extracted version string, or null if no version found
|
|
58
|
+
*/
|
|
59
|
+
export declare function extractVersionFromError(error: Error | string): string | null;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a user-friendly error message for version conflicts.
|
|
62
|
+
*
|
|
63
|
+
* @param version - The version that conflicts
|
|
64
|
+
* @returns Formatted version conflict error message
|
|
65
|
+
*/
|
|
66
|
+
export declare function createVersionConflictErrorMessage(version: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Creates a generic error message for npm publish failures.
|
|
69
|
+
*
|
|
70
|
+
* @param error - The original error
|
|
71
|
+
* @returns Formatted error message with sanitized credentials
|
|
72
|
+
*/
|
|
73
|
+
export declare function createPublishErrorMessage(error: Error | string): string;
|
|
74
|
+
//# sourceMappingURL=publish-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-utils.d.ts","sourceRoot":"","sources":["../../src/publish/publish-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAwBpE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAerE;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAezD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAc5E;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAazE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAiBvE"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publishing Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for npm package publishing, authentication validation,
|
|
5
|
+
* and error handling with credential sanitization.
|
|
6
|
+
*/
|
|
7
|
+
import { maskCredentials } from '../utils/credential-masking.js';
|
|
8
|
+
/**
|
|
9
|
+
* Validates that the NPM authentication token is set and non-empty.
|
|
10
|
+
*
|
|
11
|
+
* @param token - The NPM_TOKEN value from environment variables
|
|
12
|
+
* @returns true if token is valid, false otherwise
|
|
13
|
+
*/
|
|
14
|
+
export function validateNpmToken(token) {
|
|
15
|
+
return typeof token === 'string' && token.trim().length > 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Sanitizes error messages to remove any credential information.
|
|
19
|
+
*
|
|
20
|
+
* This function masks authentication tokens and other sensitive data
|
|
21
|
+
* that might appear in error messages or logs.
|
|
22
|
+
*
|
|
23
|
+
* @param message - The error message to sanitize
|
|
24
|
+
* @returns Sanitized error message with credentials masked
|
|
25
|
+
*/
|
|
26
|
+
export function sanitizeErrorMessage(message) {
|
|
27
|
+
// Use the centralized credential masking utility
|
|
28
|
+
return maskCredentials(message);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Determines if an npm publish error is due to authentication failure.
|
|
32
|
+
*
|
|
33
|
+
* Checks error messages and status codes to identify authentication-related failures.
|
|
34
|
+
*
|
|
35
|
+
* @param error - The error object or message from npm publish
|
|
36
|
+
* @returns true if the error is authentication-related, false otherwise
|
|
37
|
+
*/
|
|
38
|
+
export function isAuthenticationError(error) {
|
|
39
|
+
const errorMessage = typeof error === 'string' ? error : error.message;
|
|
40
|
+
const lowerMessage = errorMessage.toLowerCase();
|
|
41
|
+
// Common authentication error patterns from npm
|
|
42
|
+
const authPatterns = [
|
|
43
|
+
'authentication',
|
|
44
|
+
'unauthorized',
|
|
45
|
+
'401',
|
|
46
|
+
'forbidden',
|
|
47
|
+
'403',
|
|
48
|
+
'token',
|
|
49
|
+
'credentials',
|
|
50
|
+
'login',
|
|
51
|
+
'auth',
|
|
52
|
+
'permission denied',
|
|
53
|
+
'access denied',
|
|
54
|
+
'not authorized',
|
|
55
|
+
'authentication required',
|
|
56
|
+
'invalid token',
|
|
57
|
+
'expired token',
|
|
58
|
+
];
|
|
59
|
+
return authPatterns.some(pattern => lowerMessage.includes(pattern));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Determines if an npm publish error is due to a version conflict.
|
|
63
|
+
*
|
|
64
|
+
* Checks error messages and status codes to identify version conflict failures.
|
|
65
|
+
*
|
|
66
|
+
* @param error - The error object or message from npm publish
|
|
67
|
+
* @returns true if the error is a version conflict, false otherwise
|
|
68
|
+
*/
|
|
69
|
+
export function isVersionConflictError(error) {
|
|
70
|
+
const errorMessage = typeof error === 'string' ? error : error.message;
|
|
71
|
+
const lowerMessage = errorMessage.toLowerCase();
|
|
72
|
+
// Common version conflict error patterns from npm
|
|
73
|
+
const conflictPatterns = [
|
|
74
|
+
'already exists',
|
|
75
|
+
'cannot publish over',
|
|
76
|
+
'already published',
|
|
77
|
+
'version conflict',
|
|
78
|
+
'duplicate version',
|
|
79
|
+
'already in use',
|
|
80
|
+
];
|
|
81
|
+
return conflictPatterns.some(pattern => lowerMessage.includes(pattern));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Creates a user-friendly error message for authentication failures.
|
|
85
|
+
*
|
|
86
|
+
* Provides actionable guidance without exposing credential values.
|
|
87
|
+
*
|
|
88
|
+
* @returns Formatted authentication error message
|
|
89
|
+
*/
|
|
90
|
+
export function createAuthenticationErrorMessage() {
|
|
91
|
+
return [
|
|
92
|
+
'ERROR: npm authentication failed',
|
|
93
|
+
'',
|
|
94
|
+
'This could be due to:',
|
|
95
|
+
' - Invalid or expired NPM_TOKEN',
|
|
96
|
+
' - Insufficient permissions for the package',
|
|
97
|
+
' - Token not configured in GitLab CI/CD variables',
|
|
98
|
+
'',
|
|
99
|
+
'To resolve:',
|
|
100
|
+
' 1. Verify NPM_TOKEN is set in GitLab CI/CD variables',
|
|
101
|
+
' 2. Ensure the token has publish permissions',
|
|
102
|
+
' 3. Check that the token has not expired',
|
|
103
|
+
' 4. Verify you have ownership/maintainer access to the package',
|
|
104
|
+
].join('\n');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Extracts version number from a version conflict error message.
|
|
108
|
+
*
|
|
109
|
+
* Searches for semantic version patterns (MAJOR.MINOR.PATCH) in error messages
|
|
110
|
+
* to identify the conflicting version.
|
|
111
|
+
*
|
|
112
|
+
* @param error - The error object or message from npm publish
|
|
113
|
+
* @returns The extracted version string, or null if no version found
|
|
114
|
+
*/
|
|
115
|
+
export function extractVersionFromError(error) {
|
|
116
|
+
const errorMessage = typeof error === 'string' ? error : error.message;
|
|
117
|
+
// Match semantic version pattern: digits.digits.digits (with optional 'v' prefix)
|
|
118
|
+
// This regex matches versions like "1.2.3", "v1.2.3", "10.20.30", etc.
|
|
119
|
+
const versionPattern = /v?(\d+\.\d+\.\d+)/;
|
|
120
|
+
const match = errorMessage.match(versionPattern);
|
|
121
|
+
if (match) {
|
|
122
|
+
// Return the version without the 'v' prefix if present
|
|
123
|
+
return match[1];
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Creates a user-friendly error message for version conflicts.
|
|
129
|
+
*
|
|
130
|
+
* @param version - The version that conflicts
|
|
131
|
+
* @returns Formatted version conflict error message
|
|
132
|
+
*/
|
|
133
|
+
export function createVersionConflictErrorMessage(version) {
|
|
134
|
+
return [
|
|
135
|
+
`ERROR: Version ${version} has already been published to npm`,
|
|
136
|
+
'',
|
|
137
|
+
'This could be due to:',
|
|
138
|
+
' - The version was published in a previous release',
|
|
139
|
+
' - Another pipeline published this version concurrently',
|
|
140
|
+
'',
|
|
141
|
+
'To resolve:',
|
|
142
|
+
' 1. Verify the current published version on npm',
|
|
143
|
+
' 2. Bump to the next version using the appropriate release type',
|
|
144
|
+
' 3. Ensure version tags are synchronized with npm',
|
|
145
|
+
].join('\n');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Creates a generic error message for npm publish failures.
|
|
149
|
+
*
|
|
150
|
+
* @param error - The original error
|
|
151
|
+
* @returns Formatted error message with sanitized credentials
|
|
152
|
+
*/
|
|
153
|
+
export function createPublishErrorMessage(error) {
|
|
154
|
+
const errorMessage = typeof error === 'string' ? error : error.message;
|
|
155
|
+
// Use centralized credential masking - no need to pass credentials explicitly
|
|
156
|
+
const sanitized = maskCredentials(errorMessage);
|
|
157
|
+
return [
|
|
158
|
+
'ERROR: Failed to publish package to npm',
|
|
159
|
+
'',
|
|
160
|
+
'Error details:',
|
|
161
|
+
` ${sanitized}`,
|
|
162
|
+
'',
|
|
163
|
+
'This could be due to:',
|
|
164
|
+
' - Network connectivity issues',
|
|
165
|
+
' - npm registry unavailable',
|
|
166
|
+
' - Package validation errors',
|
|
167
|
+
' - Insufficient permissions',
|
|
168
|
+
].join('\n');
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=publish-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-utils.js","sourceRoot":"","sources":["../../src/publish/publish-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComponentQuery - Handles component lookups by name and selector
|
|
3
|
+
*/
|
|
4
|
+
import { ComponentIndex, IndexableDoc } from './index-builder.js';
|
|
5
|
+
/**
|
|
6
|
+
* ComponentQuery class
|
|
7
|
+
* Provides methods for querying components by name and selector
|
|
8
|
+
*/
|
|
9
|
+
export declare class ComponentQuery {
|
|
10
|
+
private index;
|
|
11
|
+
constructor(index: ComponentIndex);
|
|
12
|
+
/**
|
|
13
|
+
* Get a component by name (case-sensitive)
|
|
14
|
+
*/
|
|
15
|
+
getByName(name: string): IndexableDoc | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Get a component by selector (case-sensitive)
|
|
18
|
+
*/
|
|
19
|
+
getBySelector(selector: string): IndexableDoc | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Get all components of a specific type
|
|
22
|
+
*/
|
|
23
|
+
getByType(type: 'component' | 'directive' | 'pipe' | 'service' | 'all'): IndexableDoc[];
|
|
24
|
+
/**
|
|
25
|
+
* Get all components, optionally filtering deprecated ones
|
|
26
|
+
*/
|
|
27
|
+
getAll(includeDeprecated?: boolean): IndexableDoc[];
|
|
28
|
+
/**
|
|
29
|
+
* Update the index
|
|
30
|
+
*/
|
|
31
|
+
updateIndex(index: ComponentIndex): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=component-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-query.d.ts","sourceRoot":"","sources":["../../src/query/component-query.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElE;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAiB;gBAElB,KAAK,EAAE,cAAc;IAIjC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,EAAE;IAsBvF;;OAEG;IACH,MAAM,CAAC,iBAAiB,GAAE,OAAe,GAAG,YAAY,EAAE;IAQ1D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAGzC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComponentQuery class
|
|
3
|
+
* Provides methods for querying components by name and selector
|
|
4
|
+
*/
|
|
5
|
+
export class ComponentQuery {
|
|
6
|
+
index;
|
|
7
|
+
constructor(index) {
|
|
8
|
+
this.index = index;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get a component by name (case-sensitive)
|
|
12
|
+
*/
|
|
13
|
+
getByName(name) {
|
|
14
|
+
return this.index.byName.get(name);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get a component by selector (case-sensitive)
|
|
18
|
+
*/
|
|
19
|
+
getBySelector(selector) {
|
|
20
|
+
return this.index.bySelector.get(selector);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get all components of a specific type
|
|
24
|
+
*/
|
|
25
|
+
getByType(type) {
|
|
26
|
+
switch (type) {
|
|
27
|
+
case 'component':
|
|
28
|
+
return this.index.components;
|
|
29
|
+
case 'directive':
|
|
30
|
+
return this.index.directives;
|
|
31
|
+
case 'pipe':
|
|
32
|
+
return this.index.pipes;
|
|
33
|
+
case 'service':
|
|
34
|
+
return this.index.services;
|
|
35
|
+
case 'all':
|
|
36
|
+
return [
|
|
37
|
+
...this.index.components,
|
|
38
|
+
...this.index.directives,
|
|
39
|
+
...this.index.pipes,
|
|
40
|
+
...this.index.services,
|
|
41
|
+
];
|
|
42
|
+
default:
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get all components, optionally filtering deprecated ones
|
|
48
|
+
*/
|
|
49
|
+
getAll(includeDeprecated = false) {
|
|
50
|
+
const all = this.getByType('all');
|
|
51
|
+
if (includeDeprecated) {
|
|
52
|
+
return all;
|
|
53
|
+
}
|
|
54
|
+
return all.filter((doc) => !doc.deprecated);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Update the index
|
|
58
|
+
*/
|
|
59
|
+
updateIndex(index) {
|
|
60
|
+
this.index = index;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=component-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-query.js","sourceRoot":"","sources":["../../src/query/component-query.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,CAAiB;IAE9B,YAAY,KAAqB;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAA4D;QACpE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1B,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC7B,KAAK,KAAK;gBACR,OAAO;oBACL,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;oBACxB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;oBACxB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;oBACnB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;iBACvB,CAAC;YACJ;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAA6B,KAAK;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAqB;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|