@enactprotocol/shared 2.2.2 → 2.2.4
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +44 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +95 -2
- package/dist/registry.js.map +1 -1
- package/dist/resolver.d.ts +1 -1
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +12 -3
- package/dist/resolver.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +6 -0
- package/src/registry.ts +131 -2
- package/src/resolver.ts +14 -3
- package/tests/registry.test.ts +195 -0
- package/tests/resolver.test.ts +80 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type { ToolManifest, PackageManifest, ParsedManifest, EnvVariable, EnvVar
|
|
|
13
13
|
export { MANIFEST_FILES, PACKAGE_MANIFEST_FILE } from "./types/manifest";
|
|
14
14
|
export { ManifestParseError, parseManifest, parseManifestAuto, parseYaml, extractFrontmatter, detectFormat, type ManifestFormat, validateManifest, validateManifestStrict, isValidToolName, isValidVersion, isValidTimeout, ToolManifestSchema, ManifestLoadError, loadManifest, loadManifestFromDir, findManifestFile, hasManifest, tryLoadManifest, tryLoadManifestFromDir, type LoadedManifest, } from "./manifest";
|
|
15
15
|
export { ToolResolveError, resolveTool, resolveToolAuto, resolveToolFromPath, tryResolveTool, tryResolveToolDetailed, normalizeToolName, toolNameToPath, getToolPath, getToolSearchPaths, type ResolveOptions, type TryResolveResult, } from "./resolver";
|
|
16
|
-
export { loadToolsRegistry, saveToolsRegistry, addToolToRegistry, removeToolFromRegistry, isToolInstalled, getInstalledVersion, getToolCachePath, listInstalledTools, getInstalledToolInfo, getToolsJsonPath, type ToolsRegistry, type RegistryScope, type InstalledToolInfo, } from "./registry";
|
|
16
|
+
export { loadToolsRegistry, saveToolsRegistry, addToolToRegistry, removeToolFromRegistry, isToolInstalled, getInstalledVersion, getToolCachePath, listInstalledTools, getInstalledToolInfo, getToolsJsonPath, addAlias, removeAlias, resolveAlias, getAliasesForTool, removeAliasesForTool, type ToolsRegistry, type RegistryScope, type InstalledToolInfo, } from "./registry";
|
|
17
17
|
export { loadMcpRegistry, saveMcpRegistry, addMcpTool, removeMcpTool, isMcpToolInstalled, getMcpToolVersion, listMcpTools, getMcpToolInfo, getMcpJsonPath, syncMcpWithGlobalTools, createToolset, deleteToolset, addToolToToolset, removeToolFromToolset, setActiveToolset, getActiveToolset, listToolsets, type McpRegistry, type McpToolInfo, } from "./mcp-registry";
|
|
18
18
|
export { Logger, createLogger, configureLogger, getLogger, debug, info, warn, error, type LogLevel, type LogEntry, type LoggerOptions, } from "./utils/logger";
|
|
19
19
|
export { parseVersion, isValidVersion as isValidSemver, compareVersions, parseRange, satisfiesRange, sortVersions, getHighestVersion, incrementVersion, coerceVersion, formatVersion, type ParsedVersion, type VersionRange, } from "./utils/version";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,SAAS,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EAExB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EAEvB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,EAEL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,KAAK,cAAc,EAEnB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAElB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,9 @@ ManifestLoadError, loadManifest, loadManifestFromDir, findManifestFile, hasManif
|
|
|
28
28
|
// Tool resolver
|
|
29
29
|
export { ToolResolveError, resolveTool, resolveToolAuto, resolveToolFromPath, tryResolveTool, tryResolveToolDetailed, normalizeToolName, toolNameToPath, getToolPath, getToolSearchPaths, } from "./resolver";
|
|
30
30
|
// Local tool registry (tools.json management)
|
|
31
|
-
export { loadToolsRegistry, saveToolsRegistry, addToolToRegistry, removeToolFromRegistry, isToolInstalled, getInstalledVersion, getToolCachePath, listInstalledTools, getInstalledToolInfo, getToolsJsonPath,
|
|
31
|
+
export { loadToolsRegistry, saveToolsRegistry, addToolToRegistry, removeToolFromRegistry, isToolInstalled, getInstalledVersion, getToolCachePath, listInstalledTools, getInstalledToolInfo, getToolsJsonPath,
|
|
32
|
+
// Alias management
|
|
33
|
+
addAlias, removeAlias, resolveAlias, getAliasesForTool, removeAliasesForTool, } from "./registry";
|
|
32
34
|
// MCP tool registry (mcp.json management)
|
|
33
35
|
export { loadMcpRegistry, saveMcpRegistry, addMcpTool, removeMcpTool, isMcpToolInstalled, getMcpToolVersion, listMcpTools, getMcpToolInfo, getMcpJsonPath, syncMcpWithGlobalTools,
|
|
34
36
|
// Toolset management
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,YAAY;AACZ,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,SAAS,CAAC;AAEjB,wBAAwB;AACxB,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,wBAAwB;AACxB,2CAA2C;AAC3C,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,uBAAuB;AACvB,8BAA8B;AAC9B,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GAMjB,MAAM,UAAU,CAAC;AAqBlB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,4CAA4C;AAC5C,OAAO;AACL,SAAS;AACT,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,YAAY;AAEZ,YAAY;AACZ,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB;AAClB,SAAS;AACT,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,GAEvB,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,kBAAkB,GAGnB,MAAM,YAAY,CAAC;AAEpB,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
export interface ToolsRegistry {
|
|
15
15
|
/** Map of tool name to installed version */
|
|
16
16
|
tools: Record<string, string>;
|
|
17
|
+
/** Map of alias to full tool name */
|
|
18
|
+
aliases?: Record<string, string>;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Scope for tool registry
|
|
@@ -70,4 +72,46 @@ export declare function listInstalledTools(scope: RegistryScope, startDir?: stri
|
|
|
70
72
|
* Get tool info if installed (checks cache path exists)
|
|
71
73
|
*/
|
|
72
74
|
export declare function getInstalledToolInfo(toolName: string, scope: RegistryScope, startDir?: string): InstalledToolInfo | null;
|
|
75
|
+
/**
|
|
76
|
+
* Add an alias for a tool
|
|
77
|
+
* @param alias - Short name for the tool (e.g., "firebase")
|
|
78
|
+
* @param toolName - Full tool name (e.g., "user/api/firebase")
|
|
79
|
+
* @param scope - Registry scope (global or project)
|
|
80
|
+
* @param startDir - Starting directory for project scope
|
|
81
|
+
* @throws Error if alias already exists for a different tool
|
|
82
|
+
*/
|
|
83
|
+
export declare function addAlias(alias: string, toolName: string, scope: RegistryScope, startDir?: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Remove an alias
|
|
86
|
+
* @param alias - Alias to remove
|
|
87
|
+
* @param scope - Registry scope
|
|
88
|
+
* @param startDir - Starting directory for project scope
|
|
89
|
+
* @returns true if alias was removed, false if it didn't exist
|
|
90
|
+
*/
|
|
91
|
+
export declare function removeAlias(alias: string, scope: RegistryScope, startDir?: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Resolve an alias to its full tool name
|
|
94
|
+
* @param alias - Alias to resolve
|
|
95
|
+
* @param scope - Registry scope
|
|
96
|
+
* @param startDir - Starting directory for project scope
|
|
97
|
+
* @returns Full tool name or null if alias doesn't exist
|
|
98
|
+
*/
|
|
99
|
+
export declare function resolveAlias(alias: string, scope: RegistryScope, startDir?: string): string | null;
|
|
100
|
+
/**
|
|
101
|
+
* Get all aliases for a specific tool
|
|
102
|
+
* @param toolName - Full tool name
|
|
103
|
+
* @param scope - Registry scope
|
|
104
|
+
* @param startDir - Starting directory for project scope
|
|
105
|
+
* @returns Array of aliases for the tool
|
|
106
|
+
*/
|
|
107
|
+
export declare function getAliasesForTool(toolName: string, scope: RegistryScope, startDir?: string): string[];
|
|
108
|
+
/**
|
|
109
|
+
* Remove all aliases for a specific tool
|
|
110
|
+
* Useful when uninstalling a tool
|
|
111
|
+
* @param toolName - Full tool name
|
|
112
|
+
* @param scope - Registry scope
|
|
113
|
+
* @param startDir - Starting directory for project scope
|
|
114
|
+
* @returns Number of aliases removed
|
|
115
|
+
*/
|
|
116
|
+
export declare function removeAliasesForTool(toolName: string, scope: RegistryScope, startDir?: string): number;
|
|
73
117
|
//# sourceMappingURL=registry.d.ts.map
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.js
CHANGED
|
@@ -28,18 +28,19 @@ export function getToolsJsonPath(scope, startDir) {
|
|
|
28
28
|
export function loadToolsRegistry(scope, startDir) {
|
|
29
29
|
const registryPath = getToolsJsonPath(scope, startDir);
|
|
30
30
|
if (!registryPath || !existsSync(registryPath)) {
|
|
31
|
-
return { tools: {} };
|
|
31
|
+
return { tools: {}, aliases: {} };
|
|
32
32
|
}
|
|
33
33
|
try {
|
|
34
34
|
const content = readFileSync(registryPath, "utf-8");
|
|
35
35
|
const parsed = JSON.parse(content);
|
|
36
36
|
return {
|
|
37
37
|
tools: parsed.tools ?? {},
|
|
38
|
+
aliases: parsed.aliases ?? {},
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
catch {
|
|
41
42
|
// Return empty registry on parse error
|
|
42
|
-
return { tools: {} };
|
|
43
|
+
return { tools: {}, aliases: {} };
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
@@ -144,4 +145,96 @@ export function getInstalledToolInfo(toolName, scope, startDir) {
|
|
|
144
145
|
cachePath,
|
|
145
146
|
};
|
|
146
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Add an alias for a tool
|
|
150
|
+
* @param alias - Short name for the tool (e.g., "firebase")
|
|
151
|
+
* @param toolName - Full tool name (e.g., "user/api/firebase")
|
|
152
|
+
* @param scope - Registry scope (global or project)
|
|
153
|
+
* @param startDir - Starting directory for project scope
|
|
154
|
+
* @throws Error if alias already exists for a different tool
|
|
155
|
+
*/
|
|
156
|
+
export function addAlias(alias, toolName, scope, startDir) {
|
|
157
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
158
|
+
// Initialize aliases if not present
|
|
159
|
+
if (!registry.aliases) {
|
|
160
|
+
registry.aliases = {};
|
|
161
|
+
}
|
|
162
|
+
// Check if alias already exists for a different tool
|
|
163
|
+
const existingTarget = registry.aliases[alias];
|
|
164
|
+
if (existingTarget && existingTarget !== toolName) {
|
|
165
|
+
throw new Error(`Alias "${alias}" already exists for tool "${existingTarget}". Remove it first with 'enact alias --remove ${alias}'.`);
|
|
166
|
+
}
|
|
167
|
+
registry.aliases[alias] = toolName;
|
|
168
|
+
saveToolsRegistry(registry, scope, startDir);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Remove an alias
|
|
172
|
+
* @param alias - Alias to remove
|
|
173
|
+
* @param scope - Registry scope
|
|
174
|
+
* @param startDir - Starting directory for project scope
|
|
175
|
+
* @returns true if alias was removed, false if it didn't exist
|
|
176
|
+
*/
|
|
177
|
+
export function removeAlias(alias, scope, startDir) {
|
|
178
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
179
|
+
if (!registry.aliases || !(alias in registry.aliases)) {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
delete registry.aliases[alias];
|
|
183
|
+
saveToolsRegistry(registry, scope, startDir);
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Resolve an alias to its full tool name
|
|
188
|
+
* @param alias - Alias to resolve
|
|
189
|
+
* @param scope - Registry scope
|
|
190
|
+
* @param startDir - Starting directory for project scope
|
|
191
|
+
* @returns Full tool name or null if alias doesn't exist
|
|
192
|
+
*/
|
|
193
|
+
export function resolveAlias(alias, scope, startDir) {
|
|
194
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
195
|
+
return registry.aliases?.[alias] ?? null;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get all aliases for a specific tool
|
|
199
|
+
* @param toolName - Full tool name
|
|
200
|
+
* @param scope - Registry scope
|
|
201
|
+
* @param startDir - Starting directory for project scope
|
|
202
|
+
* @returns Array of aliases for the tool
|
|
203
|
+
*/
|
|
204
|
+
export function getAliasesForTool(toolName, scope, startDir) {
|
|
205
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
206
|
+
const aliases = [];
|
|
207
|
+
if (registry.aliases) {
|
|
208
|
+
for (const [alias, target] of Object.entries(registry.aliases)) {
|
|
209
|
+
if (target === toolName) {
|
|
210
|
+
aliases.push(alias);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return aliases;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Remove all aliases for a specific tool
|
|
218
|
+
* Useful when uninstalling a tool
|
|
219
|
+
* @param toolName - Full tool name
|
|
220
|
+
* @param scope - Registry scope
|
|
221
|
+
* @param startDir - Starting directory for project scope
|
|
222
|
+
* @returns Number of aliases removed
|
|
223
|
+
*/
|
|
224
|
+
export function removeAliasesForTool(toolName, scope, startDir) {
|
|
225
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
226
|
+
let removed = 0;
|
|
227
|
+
if (registry.aliases) {
|
|
228
|
+
for (const [alias, target] of Object.entries(registry.aliases)) {
|
|
229
|
+
if (target === toolName) {
|
|
230
|
+
delete registry.aliases[alias];
|
|
231
|
+
removed++;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if (removed > 0) {
|
|
235
|
+
saveToolsRegistry(registry, scope, startDir);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return removed;
|
|
239
|
+
}
|
|
147
240
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/resolver.d.ts
CHANGED
|
@@ -73,7 +73,7 @@ export declare function resolveToolFromPath(filePath: string): ToolResolution;
|
|
|
73
73
|
/**
|
|
74
74
|
* Resolve a tool by name, searching through standard locations
|
|
75
75
|
*
|
|
76
|
-
* @param toolName - Tool name (e.g., "acme/utils/greeter")
|
|
76
|
+
* @param toolName - Tool name (e.g., "acme/utils/greeter") or alias (e.g., "firebase")
|
|
77
77
|
* @param options - Resolution options
|
|
78
78
|
* @returns ToolResolution
|
|
79
79
|
* @throws ToolResolveError if not found
|
package/dist/resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,QAAQ,EAAE,MAAM;aAChB,iBAAiB,CAAC,EAAE,MAAM,EAAE;gBAF5C,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAA;CAK/C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,oDAAoD;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kDAAkD;IAClD,aAAa,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAiCpE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,QAAQ,EAAE,MAAM;aAChB,iBAAiB,CAAC,EAAE,MAAM,EAAE;gBAF5C,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAA;CAK/C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,oDAAoD;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kDAAkD;IAClD,aAAa,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAiCpE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAgF1F;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,cAAmB,GAC3B,cAAc,GAAG,IAAI,CAGvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,cAAmB,GAC3B,gBAAgB,CAqGlB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,cAAmB,GAC3B,cAAc,CAsBhB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CA2B3F"}
|
package/dist/resolver.js
CHANGED
|
@@ -11,7 +11,7 @@ import { existsSync, readdirSync } from "node:fs";
|
|
|
11
11
|
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
12
12
|
import { ManifestLoadError, findManifestFile, loadManifest, } from "./manifest/loader";
|
|
13
13
|
import { getCacheDir, getProjectEnactDir } from "./paths";
|
|
14
|
-
import { getInstalledVersion, getToolCachePath } from "./registry";
|
|
14
|
+
import { getInstalledVersion, getToolCachePath, resolveAlias } from "./registry";
|
|
15
15
|
/**
|
|
16
16
|
* Error thrown when tool resolution fails
|
|
17
17
|
*/
|
|
@@ -116,14 +116,23 @@ export function resolveToolFromPath(filePath) {
|
|
|
116
116
|
/**
|
|
117
117
|
* Resolve a tool by name, searching through standard locations
|
|
118
118
|
*
|
|
119
|
-
* @param toolName - Tool name (e.g., "acme/utils/greeter")
|
|
119
|
+
* @param toolName - Tool name (e.g., "acme/utils/greeter") or alias (e.g., "firebase")
|
|
120
120
|
* @param options - Resolution options
|
|
121
121
|
* @returns ToolResolution
|
|
122
122
|
* @throws ToolResolveError if not found
|
|
123
123
|
*/
|
|
124
124
|
export function resolveTool(toolName, options = {}) {
|
|
125
|
-
|
|
125
|
+
let normalizedName = normalizeToolName(toolName);
|
|
126
126
|
const searchedLocations = [];
|
|
127
|
+
// Check if this might be an alias (no slashes = not a full tool name)
|
|
128
|
+
if (!normalizedName.includes("/")) {
|
|
129
|
+
// Try project-level alias first, then global
|
|
130
|
+
const aliasedName = resolveAlias(normalizedName, "project", options.startDir) ??
|
|
131
|
+
resolveAlias(normalizedName, "global");
|
|
132
|
+
if (aliasedName) {
|
|
133
|
+
normalizedName = normalizeToolName(aliasedName);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
127
136
|
// 1. Try project tools (.enact/tools/{name}/)
|
|
128
137
|
if (!options.skipProject) {
|
|
129
138
|
const projectDir = getProjectEnactDir(options.startDir);
|
package/dist/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enactprotocol/shared",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.4",
|
|
4
4
|
"description": "Core business logic and utilities for Enact",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"typecheck": "tsc --noEmit"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@enactprotocol/trust": "2.2.
|
|
21
|
+
"@enactprotocol/trust": "2.2.4",
|
|
22
22
|
"js-yaml": "^4.1.1",
|
|
23
23
|
"zod": "^4.1.13"
|
|
24
24
|
},
|
package/src/index.ts
CHANGED
|
@@ -140,6 +140,12 @@ export {
|
|
|
140
140
|
listInstalledTools,
|
|
141
141
|
getInstalledToolInfo,
|
|
142
142
|
getToolsJsonPath,
|
|
143
|
+
// Alias management
|
|
144
|
+
addAlias,
|
|
145
|
+
removeAlias,
|
|
146
|
+
resolveAlias,
|
|
147
|
+
getAliasesForTool,
|
|
148
|
+
removeAliasesForTool,
|
|
143
149
|
type ToolsRegistry,
|
|
144
150
|
type RegistryScope,
|
|
145
151
|
type InstalledToolInfo,
|
package/src/registry.ts
CHANGED
|
@@ -19,6 +19,8 @@ import { getCacheDir, getEnactHome, getProjectEnactDir } from "./paths";
|
|
|
19
19
|
export interface ToolsRegistry {
|
|
20
20
|
/** Map of tool name to installed version */
|
|
21
21
|
tools: Record<string, string>;
|
|
22
|
+
/** Map of alias to full tool name */
|
|
23
|
+
aliases?: Record<string, string>;
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
/**
|
|
@@ -56,7 +58,7 @@ export function loadToolsRegistry(scope: RegistryScope, startDir?: string): Tool
|
|
|
56
58
|
const registryPath = getToolsJsonPath(scope, startDir);
|
|
57
59
|
|
|
58
60
|
if (!registryPath || !existsSync(registryPath)) {
|
|
59
|
-
return { tools: {} };
|
|
61
|
+
return { tools: {}, aliases: {} };
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
try {
|
|
@@ -64,10 +66,11 @@ export function loadToolsRegistry(scope: RegistryScope, startDir?: string): Tool
|
|
|
64
66
|
const parsed = JSON.parse(content);
|
|
65
67
|
return {
|
|
66
68
|
tools: parsed.tools ?? {},
|
|
69
|
+
aliases: parsed.aliases ?? {},
|
|
67
70
|
};
|
|
68
71
|
} catch {
|
|
69
72
|
// Return empty registry on parse error
|
|
70
|
-
return { tools: {} };
|
|
73
|
+
return { tools: {}, aliases: {} };
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
76
|
|
|
@@ -217,3 +220,129 @@ export function getInstalledToolInfo(
|
|
|
217
220
|
cachePath,
|
|
218
221
|
};
|
|
219
222
|
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Add an alias for a tool
|
|
226
|
+
* @param alias - Short name for the tool (e.g., "firebase")
|
|
227
|
+
* @param toolName - Full tool name (e.g., "user/api/firebase")
|
|
228
|
+
* @param scope - Registry scope (global or project)
|
|
229
|
+
* @param startDir - Starting directory for project scope
|
|
230
|
+
* @throws Error if alias already exists for a different tool
|
|
231
|
+
*/
|
|
232
|
+
export function addAlias(
|
|
233
|
+
alias: string,
|
|
234
|
+
toolName: string,
|
|
235
|
+
scope: RegistryScope,
|
|
236
|
+
startDir?: string
|
|
237
|
+
): void {
|
|
238
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
239
|
+
|
|
240
|
+
// Initialize aliases if not present
|
|
241
|
+
if (!registry.aliases) {
|
|
242
|
+
registry.aliases = {};
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Check if alias already exists for a different tool
|
|
246
|
+
const existingTarget = registry.aliases[alias];
|
|
247
|
+
if (existingTarget && existingTarget !== toolName) {
|
|
248
|
+
throw new Error(
|
|
249
|
+
`Alias "${alias}" already exists for tool "${existingTarget}". Remove it first with 'enact alias --remove ${alias}'.`
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
registry.aliases[alias] = toolName;
|
|
254
|
+
saveToolsRegistry(registry, scope, startDir);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Remove an alias
|
|
259
|
+
* @param alias - Alias to remove
|
|
260
|
+
* @param scope - Registry scope
|
|
261
|
+
* @param startDir - Starting directory for project scope
|
|
262
|
+
* @returns true if alias was removed, false if it didn't exist
|
|
263
|
+
*/
|
|
264
|
+
export function removeAlias(alias: string, scope: RegistryScope, startDir?: string): boolean {
|
|
265
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
266
|
+
|
|
267
|
+
if (!registry.aliases || !(alias in registry.aliases)) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
delete registry.aliases[alias];
|
|
272
|
+
saveToolsRegistry(registry, scope, startDir);
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Resolve an alias to its full tool name
|
|
278
|
+
* @param alias - Alias to resolve
|
|
279
|
+
* @param scope - Registry scope
|
|
280
|
+
* @param startDir - Starting directory for project scope
|
|
281
|
+
* @returns Full tool name or null if alias doesn't exist
|
|
282
|
+
*/
|
|
283
|
+
export function resolveAlias(
|
|
284
|
+
alias: string,
|
|
285
|
+
scope: RegistryScope,
|
|
286
|
+
startDir?: string
|
|
287
|
+
): string | null {
|
|
288
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
289
|
+
return registry.aliases?.[alias] ?? null;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Get all aliases for a specific tool
|
|
294
|
+
* @param toolName - Full tool name
|
|
295
|
+
* @param scope - Registry scope
|
|
296
|
+
* @param startDir - Starting directory for project scope
|
|
297
|
+
* @returns Array of aliases for the tool
|
|
298
|
+
*/
|
|
299
|
+
export function getAliasesForTool(
|
|
300
|
+
toolName: string,
|
|
301
|
+
scope: RegistryScope,
|
|
302
|
+
startDir?: string
|
|
303
|
+
): string[] {
|
|
304
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
305
|
+
const aliases: string[] = [];
|
|
306
|
+
|
|
307
|
+
if (registry.aliases) {
|
|
308
|
+
for (const [alias, target] of Object.entries(registry.aliases)) {
|
|
309
|
+
if (target === toolName) {
|
|
310
|
+
aliases.push(alias);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return aliases;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Remove all aliases for a specific tool
|
|
320
|
+
* Useful when uninstalling a tool
|
|
321
|
+
* @param toolName - Full tool name
|
|
322
|
+
* @param scope - Registry scope
|
|
323
|
+
* @param startDir - Starting directory for project scope
|
|
324
|
+
* @returns Number of aliases removed
|
|
325
|
+
*/
|
|
326
|
+
export function removeAliasesForTool(
|
|
327
|
+
toolName: string,
|
|
328
|
+
scope: RegistryScope,
|
|
329
|
+
startDir?: string
|
|
330
|
+
): number {
|
|
331
|
+
const registry = loadToolsRegistry(scope, startDir);
|
|
332
|
+
let removed = 0;
|
|
333
|
+
|
|
334
|
+
if (registry.aliases) {
|
|
335
|
+
for (const [alias, target] of Object.entries(registry.aliases)) {
|
|
336
|
+
if (target === toolName) {
|
|
337
|
+
delete registry.aliases[alias];
|
|
338
|
+
removed++;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (removed > 0) {
|
|
343
|
+
saveToolsRegistry(registry, scope, startDir);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
return removed;
|
|
348
|
+
}
|
package/src/resolver.ts
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
loadManifest,
|
|
18
18
|
} from "./manifest/loader";
|
|
19
19
|
import { getCacheDir, getProjectEnactDir } from "./paths";
|
|
20
|
-
import { getInstalledVersion, getToolCachePath } from "./registry";
|
|
20
|
+
import { getInstalledVersion, getToolCachePath, resolveAlias } from "./registry";
|
|
21
21
|
import type { ToolLocation, ToolResolution } from "./types/manifest";
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -174,15 +174,26 @@ export function resolveToolFromPath(filePath: string): ToolResolution {
|
|
|
174
174
|
/**
|
|
175
175
|
* Resolve a tool by name, searching through standard locations
|
|
176
176
|
*
|
|
177
|
-
* @param toolName - Tool name (e.g., "acme/utils/greeter")
|
|
177
|
+
* @param toolName - Tool name (e.g., "acme/utils/greeter") or alias (e.g., "firebase")
|
|
178
178
|
* @param options - Resolution options
|
|
179
179
|
* @returns ToolResolution
|
|
180
180
|
* @throws ToolResolveError if not found
|
|
181
181
|
*/
|
|
182
182
|
export function resolveTool(toolName: string, options: ResolveOptions = {}): ToolResolution {
|
|
183
|
-
|
|
183
|
+
let normalizedName = normalizeToolName(toolName);
|
|
184
184
|
const searchedLocations: string[] = [];
|
|
185
185
|
|
|
186
|
+
// Check if this might be an alias (no slashes = not a full tool name)
|
|
187
|
+
if (!normalizedName.includes("/")) {
|
|
188
|
+
// Try project-level alias first, then global
|
|
189
|
+
const aliasedName =
|
|
190
|
+
resolveAlias(normalizedName, "project", options.startDir) ??
|
|
191
|
+
resolveAlias(normalizedName, "global");
|
|
192
|
+
if (aliasedName) {
|
|
193
|
+
normalizedName = normalizeToolName(aliasedName);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
186
197
|
// 1. Try project tools (.enact/tools/{name}/)
|
|
187
198
|
if (!options.skipProject) {
|
|
188
199
|
const projectDir = getProjectEnactDir(options.startDir);
|