@defai.digital/ax-cli 3.14.9 → 3.14.11
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 +17 -2
- package/dist/agent/execution/tool-executor.d.ts +6 -0
- package/dist/agent/execution/tool-executor.js +72 -0
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/commands/design.d.ts +18 -0
- package/dist/commands/design.js +495 -0
- package/dist/commands/design.js.map +1 -0
- package/dist/commands/vscode.js +1 -1
- package/dist/commands/vscode.js.map +1 -1
- package/dist/design/figma-alias.d.ts +88 -0
- package/dist/design/figma-alias.js +324 -0
- package/dist/design/figma-alias.js.map +1 -0
- package/dist/design/figma-audit.d.ts +40 -0
- package/dist/design/figma-audit.js +375 -0
- package/dist/design/figma-audit.js.map +1 -0
- package/dist/design/figma-client.d.ts +123 -0
- package/dist/design/figma-client.js +316 -0
- package/dist/design/figma-client.js.map +1 -0
- package/dist/design/figma-map.d.ts +29 -0
- package/dist/design/figma-map.js +274 -0
- package/dist/design/figma-map.js.map +1 -0
- package/dist/design/figma-tokens.d.ts +73 -0
- package/dist/design/figma-tokens.js +431 -0
- package/dist/design/figma-tokens.js.map +1 -0
- package/dist/design/index.d.ts +13 -0
- package/dist/design/index.js +18 -0
- package/dist/design/index.js.map +1 -0
- package/dist/design/types.d.ts +89 -0
- package/dist/design/types.js +9 -0
- package/dist/design/types.js.map +1 -0
- package/dist/hooks/hook-runner.js +2 -2
- package/dist/hooks/hook-runner.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/ipc/vscode-client.js +1 -1
- package/dist/ipc/vscode-client.js.map +1 -1
- package/dist/llm/tools.js +170 -0
- package/dist/llm/tools.js.map +1 -1
- package/dist/mcp/client-v2.js +1 -1
- package/dist/mcp/client-v2.js.map +1 -1
- package/dist/mcp/validation.js +1 -1
- package/dist/mcp/validation.js.map +1 -1
- package/dist/permissions/permission-manager.js +2 -2
- package/dist/permissions/permission-manager.js.map +1 -1
- package/dist/tools/design-tool.d.ts +59 -0
- package/dist/tools/design-tool.js +258 -0
- package/dist/tools/design-tool.js.map +1 -0
- package/dist/ui/hooks/use-input-history.js +1 -1
- package/dist/ui/hooks/use-input-history.js.map +1 -1
- package/dist/ui/utils/image-handler.js +1 -1
- package/dist/ui/utils/image-handler.js.map +1 -1
- package/dist/utils/path-security.js +2 -2
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/progress-tracker.js +1 -1
- package/dist/utils/progress-tracker.js.map +1 -1
- package/dist/utils/settings-manager.js +8 -3
- package/dist/utils/settings-manager.js.map +1 -1
- package/node_modules/@ax-cli/schemas/dist/index.d.ts +1 -0
- package/node_modules/@ax-cli/schemas/dist/index.d.ts.map +1 -1
- package/node_modules/@ax-cli/schemas/dist/index.js +2 -2
- package/node_modules/@ax-cli/schemas/dist/index.js.map +1 -1
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.d.ts +346 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.js +171 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.d.ts +545 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.js +307 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.d.ts +1306 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.js +428 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.d.ts +13 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.js +82 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.d.ts +1245 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.js +282 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.js.map +1 -0
- package/package.json +2 -2
- package/packages/schemas/dist/index.d.ts +1 -0
- package/packages/schemas/dist/index.d.ts.map +1 -1
- package/packages/schemas/dist/index.js +2 -2
- package/packages/schemas/dist/index.js.map +1 -1
- package/packages/schemas/dist/public/design/alias-types.d.ts +346 -0
- package/packages/schemas/dist/public/design/alias-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/alias-types.js +171 -0
- package/packages/schemas/dist/public/design/alias-types.js.map +1 -0
- package/packages/schemas/dist/public/design/audit-types.d.ts +545 -0
- package/packages/schemas/dist/public/design/audit-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/audit-types.js +307 -0
- package/packages/schemas/dist/public/design/audit-types.js.map +1 -0
- package/packages/schemas/dist/public/design/figma-types.d.ts +1306 -0
- package/packages/schemas/dist/public/design/figma-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/figma-types.js +428 -0
- package/packages/schemas/dist/public/design/figma-types.js.map +1 -0
- package/packages/schemas/dist/public/design/index.d.ts +13 -0
- package/packages/schemas/dist/public/design/index.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/index.js +82 -0
- package/packages/schemas/dist/public/design/index.js.map +1 -0
- package/packages/schemas/dist/public/design/token-types.d.ts +1245 -0
- package/packages/schemas/dist/public/design/token-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/token-types.js +282 -0
- package/packages/schemas/dist/public/design/token-types.js.map +1 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Figma Alias System
|
|
3
|
+
*
|
|
4
|
+
* Maps human-readable names to Figma file keys and node IDs.
|
|
5
|
+
* Stored in .ax-cli/design.json
|
|
6
|
+
*
|
|
7
|
+
* @module design/figma-alias
|
|
8
|
+
*/
|
|
9
|
+
import { type DesignConfig, type AliasTarget, type AliasOperationResult, type ResolvedAlias, type AliasListEntry, type AliasListResponse } from '@ax-cli/schemas';
|
|
10
|
+
/**
|
|
11
|
+
* Get the path to the design config file
|
|
12
|
+
*/
|
|
13
|
+
export declare function getDesignConfigPath(basePath?: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Load the design config from disk
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadDesignConfig(basePath?: string): DesignConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Save the design config to disk
|
|
20
|
+
*/
|
|
21
|
+
export declare function saveDesignConfig(config: DesignConfig, basePath?: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Add or update an alias
|
|
24
|
+
*/
|
|
25
|
+
export declare function addAlias(aliasName: string, fileKey: string, nodeId: string, options?: {
|
|
26
|
+
description?: string;
|
|
27
|
+
basePath?: string;
|
|
28
|
+
}): AliasOperationResult;
|
|
29
|
+
/**
|
|
30
|
+
* Remove an alias
|
|
31
|
+
*/
|
|
32
|
+
export declare function removeAlias(aliasName: string, options?: {
|
|
33
|
+
basePath?: string;
|
|
34
|
+
}): AliasOperationResult;
|
|
35
|
+
/**
|
|
36
|
+
* List all aliases
|
|
37
|
+
*/
|
|
38
|
+
export declare function listAliases(options?: {
|
|
39
|
+
basePath?: string;
|
|
40
|
+
}): AliasListResponse;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve an alias to its target
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveAlias(aliasOrNodeId: string, options?: {
|
|
45
|
+
basePath?: string;
|
|
46
|
+
}): ResolvedAlias | {
|
|
47
|
+
error: string;
|
|
48
|
+
suggestions?: string[];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Set the default file key
|
|
52
|
+
*/
|
|
53
|
+
export declare function setDefaultFile(fileKey: string, options?: {
|
|
54
|
+
basePath?: string;
|
|
55
|
+
fileName?: string;
|
|
56
|
+
}): AliasOperationResult;
|
|
57
|
+
/**
|
|
58
|
+
* Set the design system file key
|
|
59
|
+
*/
|
|
60
|
+
export declare function setDsFile(fileKey: string, options?: {
|
|
61
|
+
basePath?: string;
|
|
62
|
+
fileName?: string;
|
|
63
|
+
}): AliasOperationResult;
|
|
64
|
+
/**
|
|
65
|
+
* Get an alias by name
|
|
66
|
+
*/
|
|
67
|
+
export declare function getAlias(aliasName: string, options?: {
|
|
68
|
+
basePath?: string;
|
|
69
|
+
}): AliasTarget | null;
|
|
70
|
+
/**
|
|
71
|
+
* Check if an alias exists
|
|
72
|
+
*/
|
|
73
|
+
export declare function hasAlias(aliasName: string, options?: {
|
|
74
|
+
basePath?: string;
|
|
75
|
+
}): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Get all aliases for a specific file
|
|
78
|
+
*/
|
|
79
|
+
export declare function getAliasesForFile(fileKey: string, options?: {
|
|
80
|
+
basePath?: string;
|
|
81
|
+
}): AliasListEntry[];
|
|
82
|
+
/**
|
|
83
|
+
* Import aliases from another config file
|
|
84
|
+
*/
|
|
85
|
+
export declare function importAliases(sourcePath: string, options?: {
|
|
86
|
+
basePath?: string;
|
|
87
|
+
overwrite?: boolean;
|
|
88
|
+
}): AliasOperationResult;
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Figma Alias System
|
|
3
|
+
*
|
|
4
|
+
* Maps human-readable names to Figma file keys and node IDs.
|
|
5
|
+
* Stored in .ax-cli/design.json
|
|
6
|
+
*
|
|
7
|
+
* @module design/figma-alias
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
10
|
+
import { dirname, join } from 'path';
|
|
11
|
+
import { DesignConfigSchema, AliasTargetSchema, createEmptyDesignConfig, createDesignAlias, } from '@ax-cli/schemas';
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Constants
|
|
14
|
+
// =============================================================================
|
|
15
|
+
const AX_CLI_DIR = '.ax-cli';
|
|
16
|
+
const DESIGN_CONFIG_FILE = 'design.json';
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Config File Management
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Get the path to the design config file
|
|
22
|
+
*/
|
|
23
|
+
export function getDesignConfigPath(basePath) {
|
|
24
|
+
const base = basePath ?? process.cwd();
|
|
25
|
+
return join(base, AX_CLI_DIR, DESIGN_CONFIG_FILE);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Load the design config from disk
|
|
29
|
+
*/
|
|
30
|
+
export function loadDesignConfig(basePath) {
|
|
31
|
+
const configPath = getDesignConfigPath(basePath);
|
|
32
|
+
if (!existsSync(configPath)) {
|
|
33
|
+
return createEmptyDesignConfig();
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
37
|
+
const parsed = JSON.parse(content);
|
|
38
|
+
return DesignConfigSchema.parse(parsed);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// If parsing fails, return empty config
|
|
42
|
+
console.warn(`Warning: Could not parse ${configPath}, using empty config`);
|
|
43
|
+
return createEmptyDesignConfig();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Save the design config to disk
|
|
48
|
+
*/
|
|
49
|
+
export function saveDesignConfig(config, basePath) {
|
|
50
|
+
const configPath = getDesignConfigPath(basePath);
|
|
51
|
+
const configDir = dirname(configPath);
|
|
52
|
+
// Ensure directory exists
|
|
53
|
+
if (!existsSync(configDir)) {
|
|
54
|
+
mkdirSync(configDir, { recursive: true });
|
|
55
|
+
}
|
|
56
|
+
// Update last modified timestamp
|
|
57
|
+
const updatedConfig = {
|
|
58
|
+
...config,
|
|
59
|
+
meta: {
|
|
60
|
+
...config.meta,
|
|
61
|
+
lastModified: new Date().toISOString(),
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
writeFileSync(configPath, JSON.stringify(updatedConfig, null, 2), 'utf-8');
|
|
65
|
+
}
|
|
66
|
+
// =============================================================================
|
|
67
|
+
// Alias Operations
|
|
68
|
+
// =============================================================================
|
|
69
|
+
/**
|
|
70
|
+
* Add or update an alias
|
|
71
|
+
*/
|
|
72
|
+
export function addAlias(aliasName, fileKey, nodeId, options) {
|
|
73
|
+
try {
|
|
74
|
+
// Validate alias name (throws if invalid)
|
|
75
|
+
createDesignAlias(aliasName);
|
|
76
|
+
// Validate target
|
|
77
|
+
const target = AliasTargetSchema.parse({
|
|
78
|
+
fileKey,
|
|
79
|
+
nodeId,
|
|
80
|
+
description: options?.description,
|
|
81
|
+
updatedAt: new Date().toISOString(),
|
|
82
|
+
});
|
|
83
|
+
// Load existing config
|
|
84
|
+
const config = loadDesignConfig(options?.basePath);
|
|
85
|
+
// Check if alias already exists
|
|
86
|
+
const existed = aliasName in config.aliases;
|
|
87
|
+
// Add/update alias
|
|
88
|
+
config.aliases[aliasName] = target;
|
|
89
|
+
// Save config
|
|
90
|
+
saveDesignConfig(config, options?.basePath);
|
|
91
|
+
return {
|
|
92
|
+
success: true,
|
|
93
|
+
alias: aliasName,
|
|
94
|
+
message: existed
|
|
95
|
+
? `Updated alias "${aliasName}" → ${fileKey}/${nodeId}`
|
|
96
|
+
: `Added alias "${aliasName}" → ${fileKey}/${nodeId}`,
|
|
97
|
+
target,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
return {
|
|
102
|
+
success: false,
|
|
103
|
+
alias: aliasName,
|
|
104
|
+
message: error instanceof Error ? error.message : 'Failed to add alias',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Remove an alias
|
|
110
|
+
*/
|
|
111
|
+
export function removeAlias(aliasName, options) {
|
|
112
|
+
try {
|
|
113
|
+
const config = loadDesignConfig(options?.basePath);
|
|
114
|
+
if (!(aliasName in config.aliases)) {
|
|
115
|
+
return {
|
|
116
|
+
success: false,
|
|
117
|
+
alias: aliasName,
|
|
118
|
+
message: `Alias "${aliasName}" not found`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const target = config.aliases[aliasName];
|
|
122
|
+
delete config.aliases[aliasName];
|
|
123
|
+
saveDesignConfig(config, options?.basePath);
|
|
124
|
+
return {
|
|
125
|
+
success: true,
|
|
126
|
+
alias: aliasName,
|
|
127
|
+
message: `Removed alias "${aliasName}"`,
|
|
128
|
+
target,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
return {
|
|
133
|
+
success: false,
|
|
134
|
+
alias: aliasName,
|
|
135
|
+
message: error instanceof Error ? error.message : 'Failed to remove alias',
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* List all aliases
|
|
141
|
+
*/
|
|
142
|
+
export function listAliases(options) {
|
|
143
|
+
const config = loadDesignConfig(options?.basePath);
|
|
144
|
+
const aliases = Object.entries(config.aliases).map(([alias, target]) => ({
|
|
145
|
+
alias,
|
|
146
|
+
fileKey: target.fileKey,
|
|
147
|
+
nodeId: target.nodeId,
|
|
148
|
+
fileName: config.meta?.fileNames?.[target.fileKey],
|
|
149
|
+
description: target.description,
|
|
150
|
+
updatedAt: target.updatedAt,
|
|
151
|
+
}));
|
|
152
|
+
// Sort by alias name
|
|
153
|
+
aliases.sort((a, b) => a.alias.localeCompare(b.alias));
|
|
154
|
+
return {
|
|
155
|
+
defaultFile: config.defaultFile,
|
|
156
|
+
dsFile: config.dsFile,
|
|
157
|
+
aliases,
|
|
158
|
+
total: aliases.length,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Resolve an alias to its target
|
|
163
|
+
*/
|
|
164
|
+
export function resolveAlias(aliasOrNodeId, options) {
|
|
165
|
+
const config = loadDesignConfig(options?.basePath);
|
|
166
|
+
// Check if it's a direct alias match
|
|
167
|
+
if (aliasOrNodeId in config.aliases) {
|
|
168
|
+
const target = config.aliases[aliasOrNodeId];
|
|
169
|
+
return {
|
|
170
|
+
alias: aliasOrNodeId,
|
|
171
|
+
fileKey: target.fileKey,
|
|
172
|
+
nodeId: target.nodeId,
|
|
173
|
+
source: 'explicit',
|
|
174
|
+
description: target.description,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// Check if it's a node ID format (number:number)
|
|
178
|
+
if (/^\d+:\d+$/.test(aliasOrNodeId)) {
|
|
179
|
+
// Need a default file to resolve bare node IDs
|
|
180
|
+
if (!config.defaultFile) {
|
|
181
|
+
return {
|
|
182
|
+
error: 'No default file set. Use "ax-cli design alias set-default <file-key>" or provide full alias.',
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
alias: aliasOrNodeId,
|
|
187
|
+
fileKey: config.defaultFile,
|
|
188
|
+
nodeId: aliasOrNodeId,
|
|
189
|
+
source: 'default-file',
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
// Check for partial matches (suggestions)
|
|
193
|
+
const suggestions = Object.keys(config.aliases).filter((alias) => alias.toLowerCase().includes(aliasOrNodeId.toLowerCase()));
|
|
194
|
+
return {
|
|
195
|
+
error: `Alias "${aliasOrNodeId}" not found`,
|
|
196
|
+
suggestions: suggestions.length > 0 ? suggestions.slice(0, 5) : undefined,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Set the default file key
|
|
201
|
+
*/
|
|
202
|
+
export function setDefaultFile(fileKey, options) {
|
|
203
|
+
try {
|
|
204
|
+
const config = loadDesignConfig(options?.basePath);
|
|
205
|
+
config.defaultFile = fileKey;
|
|
206
|
+
// Store file name if provided
|
|
207
|
+
if (options?.fileName) {
|
|
208
|
+
config.meta = {
|
|
209
|
+
...config.meta,
|
|
210
|
+
fileNames: {
|
|
211
|
+
...config.meta?.fileNames,
|
|
212
|
+
[fileKey]: options.fileName,
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
saveDesignConfig(config, options?.basePath);
|
|
217
|
+
return {
|
|
218
|
+
success: true,
|
|
219
|
+
alias: 'default',
|
|
220
|
+
message: `Set default file to "${fileKey}"${options?.fileName ? ` (${options.fileName})` : ''}`,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
return {
|
|
225
|
+
success: false,
|
|
226
|
+
alias: 'default',
|
|
227
|
+
message: error instanceof Error ? error.message : 'Failed to set default file',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Set the design system file key
|
|
233
|
+
*/
|
|
234
|
+
export function setDsFile(fileKey, options) {
|
|
235
|
+
try {
|
|
236
|
+
const config = loadDesignConfig(options?.basePath);
|
|
237
|
+
config.dsFile = fileKey;
|
|
238
|
+
// Store file name if provided
|
|
239
|
+
if (options?.fileName) {
|
|
240
|
+
config.meta = {
|
|
241
|
+
...config.meta,
|
|
242
|
+
fileNames: {
|
|
243
|
+
...config.meta?.fileNames,
|
|
244
|
+
[fileKey]: options.fileName,
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
saveDesignConfig(config, options?.basePath);
|
|
249
|
+
return {
|
|
250
|
+
success: true,
|
|
251
|
+
alias: 'ds',
|
|
252
|
+
message: `Set design system file to "${fileKey}"${options?.fileName ? ` (${options.fileName})` : ''}`,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
return {
|
|
257
|
+
success: false,
|
|
258
|
+
alias: 'ds',
|
|
259
|
+
message: error instanceof Error ? error.message : 'Failed to set DS file',
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get an alias by name
|
|
265
|
+
*/
|
|
266
|
+
export function getAlias(aliasName, options) {
|
|
267
|
+
const config = loadDesignConfig(options?.basePath);
|
|
268
|
+
return config.aliases[aliasName] ?? null;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Check if an alias exists
|
|
272
|
+
*/
|
|
273
|
+
export function hasAlias(aliasName, options) {
|
|
274
|
+
const config = loadDesignConfig(options?.basePath);
|
|
275
|
+
return aliasName in config.aliases;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Get all aliases for a specific file
|
|
279
|
+
*/
|
|
280
|
+
export function getAliasesForFile(fileKey, options) {
|
|
281
|
+
const config = loadDesignConfig(options?.basePath);
|
|
282
|
+
return Object.entries(config.aliases)
|
|
283
|
+
.filter(([_, target]) => target.fileKey === fileKey)
|
|
284
|
+
.map(([alias, target]) => ({
|
|
285
|
+
alias,
|
|
286
|
+
fileKey: target.fileKey,
|
|
287
|
+
nodeId: target.nodeId,
|
|
288
|
+
description: target.description,
|
|
289
|
+
updatedAt: target.updatedAt,
|
|
290
|
+
}));
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Import aliases from another config file
|
|
294
|
+
*/
|
|
295
|
+
export function importAliases(sourcePath, options) {
|
|
296
|
+
try {
|
|
297
|
+
const sourceConfig = loadDesignConfig(sourcePath);
|
|
298
|
+
const targetConfig = loadDesignConfig(options?.basePath);
|
|
299
|
+
let added = 0;
|
|
300
|
+
let skipped = 0;
|
|
301
|
+
for (const [alias, target] of Object.entries(sourceConfig.aliases)) {
|
|
302
|
+
if (alias in targetConfig.aliases && !options?.overwrite) {
|
|
303
|
+
skipped++;
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
targetConfig.aliases[alias] = target;
|
|
307
|
+
added++;
|
|
308
|
+
}
|
|
309
|
+
saveDesignConfig(targetConfig, options?.basePath);
|
|
310
|
+
return {
|
|
311
|
+
success: true,
|
|
312
|
+
alias: 'import',
|
|
313
|
+
message: `Imported ${added} alias(es), skipped ${skipped} existing`,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
return {
|
|
318
|
+
success: false,
|
|
319
|
+
alias: 'import',
|
|
320
|
+
message: error instanceof Error ? error.message : 'Failed to import aliases',
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=figma-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figma-alias.js","sourceRoot":"","sources":["../../src/design/figma-alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Figma Design Audit
|
|
3
|
+
*
|
|
4
|
+
* Rule-based audit system for checking design consistency,
|
|
5
|
+
* accessibility, and best practices.
|
|
6
|
+
*
|
|
7
|
+
* @module design/figma-audit
|
|
8
|
+
*/
|
|
9
|
+
import type { AuditRuleId, AuditResult, AuditSeverity } from '@ax-cli/schemas';
|
|
10
|
+
import type { MapResult } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Audit configuration options (input type with optional fields)
|
|
13
|
+
*/
|
|
14
|
+
interface AuditConfigInput {
|
|
15
|
+
rules?: AuditRuleId[];
|
|
16
|
+
excludeRules?: AuditRuleId[];
|
|
17
|
+
ruleConfig?: Record<AuditRuleId, {
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
severity?: AuditSeverity;
|
|
20
|
+
options?: Record<string, unknown>;
|
|
21
|
+
}>;
|
|
22
|
+
maxDepth?: number;
|
|
23
|
+
failOnError?: boolean;
|
|
24
|
+
failOnWarning?: boolean;
|
|
25
|
+
includeHidden?: boolean;
|
|
26
|
+
tokensPath?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Audit a Figma file/node for design issues
|
|
30
|
+
*/
|
|
31
|
+
export declare function auditDesign(mapResult: MapResult, config?: AuditConfigInput): AuditResult;
|
|
32
|
+
/**
|
|
33
|
+
* Format audit result for terminal display
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatAuditResult(result: AuditResult): string;
|
|
36
|
+
/**
|
|
37
|
+
* Format audit result as compact summary
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatAuditSummary(result: AuditResult): string;
|
|
40
|
+
export {};
|