@salesforce/b2c-dx-mcp 0.4.1 → 0.4.2
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/commands/mcp.d.ts +2 -2
- package/dist/tools/storefrontnext/index.js +1 -1
- package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/index.d.ts +2 -2
- package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/index.js +54 -35
- package/oclif.manifest.json +1 -1
- package/package.json +2 -2
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/analyzer.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/analyzer.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/1-mode-selection.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/1-mode-selection.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2a-auto-mode.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2a-auto-mode.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-0-interactive-overview.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-0-interactive-overview.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-1-interactive-analyze.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-1-interactive-analyze.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-2-interactive-select-props.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-2-interactive-select-props.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-3-interactive-configure-attrs.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-3-interactive-configure-attrs.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-4-interactive-configure-regions.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-4-interactive-configure-regions.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-5-interactive-confirm-generation.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules/2b-5-interactive-confirm-generation.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules.js +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/templates/decorator-generator.d.ts +0 -0
- /package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/templates/decorator-generator.js +0 -0
package/dist/commands/mcp.d.ts
CHANGED
|
@@ -51,8 +51,8 @@ export default class McpServerCommand extends BaseCommand<typeof McpServerComman
|
|
|
51
51
|
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
52
52
|
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
53
53
|
'api-key': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
54
|
-
project: import("@oclif/core/interfaces").OptionFlag<string
|
|
55
|
-
environment: import("@oclif/core/interfaces").OptionFlag<string
|
|
54
|
+
project: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
55
|
+
environment: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
56
56
|
'cloud-origin': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
57
57
|
'credentials-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
58
58
|
};
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
import { z } from 'zod';
|
|
24
24
|
import { createToolAdapter, jsonResult } from '../adapter.js';
|
|
25
25
|
import { createDeveloperGuidelinesTool } from './developer-guidelines.js';
|
|
26
|
-
import { createPageDesignerDecoratorTool } from '
|
|
26
|
+
import { createPageDesignerDecoratorTool } from './page-designer-decorator/index.js';
|
|
27
27
|
/**
|
|
28
28
|
* Creates a placeholder tool for Storefront Next development.
|
|
29
29
|
*
|
package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/index.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { McpTool } from '
|
|
3
|
-
import type { Services } from '
|
|
2
|
+
import type { McpTool } from '../../../utils/index.js';
|
|
3
|
+
import type { Services } from '../../../services.js';
|
|
4
4
|
export declare const pageDesignerDecoratorSchema: z.ZodObject<{
|
|
5
5
|
component: z.ZodString;
|
|
6
6
|
searchPaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/index.js
RENAMED
|
@@ -303,8 +303,49 @@ function handleConfigureRegionsStep(args, workspaceRoot) {
|
|
|
303
303
|
],
|
|
304
304
|
};
|
|
305
305
|
}
|
|
306
|
+
function hasNonEmptyConfig(config) {
|
|
307
|
+
return config !== null && config !== undefined && Object.keys(config).length > 0;
|
|
308
|
+
}
|
|
309
|
+
function buildAttributesFromProps(selectedProps, props, attributeConfig) {
|
|
310
|
+
return selectedProps.flatMap((propName) => {
|
|
311
|
+
const prop = props.find((p) => p.name === propName);
|
|
312
|
+
if (!prop)
|
|
313
|
+
return [];
|
|
314
|
+
const config = attributeConfig[propName];
|
|
315
|
+
return [
|
|
316
|
+
{
|
|
317
|
+
name: propName,
|
|
318
|
+
tsType: prop.type,
|
|
319
|
+
optional: prop.optional,
|
|
320
|
+
hasConfig: hasNonEmptyConfig(config),
|
|
321
|
+
config,
|
|
322
|
+
},
|
|
323
|
+
];
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
function buildAttributesFromNewAttrs(newAttributes, attributeConfig) {
|
|
327
|
+
return newAttributes.map((attr) => {
|
|
328
|
+
const config = attributeConfig[attr.name];
|
|
329
|
+
return {
|
|
330
|
+
name: attr.name,
|
|
331
|
+
tsType: 'string',
|
|
332
|
+
optional: !attr.required,
|
|
333
|
+
hasConfig: hasNonEmptyConfig(config),
|
|
334
|
+
config,
|
|
335
|
+
};
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
function resolveRegions(conversationContext) {
|
|
339
|
+
const regionConfig = conversationContext?.regionConfig;
|
|
340
|
+
const enabled = Boolean(regionConfig?.enabled && regionConfig.regions?.length);
|
|
341
|
+
return {
|
|
342
|
+
hasRegions: enabled,
|
|
343
|
+
regions: enabled ? regionConfig.regions : [],
|
|
344
|
+
regionCount: enabled ? regionConfig.regions.length : 0,
|
|
345
|
+
};
|
|
346
|
+
}
|
|
306
347
|
function handleConfirmGenerationStep(args, workspaceRoot) {
|
|
307
|
-
const { componentMetadata, selectedProps = [], newAttributes = [], attributeConfig = {}, } = args.conversationContext
|
|
348
|
+
const { componentMetadata, selectedProps = [], newAttributes = [], attributeConfig = {}, } = args.conversationContext ?? {};
|
|
308
349
|
if (!componentMetadata) {
|
|
309
350
|
return {
|
|
310
351
|
content: [
|
|
@@ -318,45 +359,23 @@ function handleConfirmGenerationStep(args, workspaceRoot) {
|
|
|
318
359
|
}
|
|
319
360
|
const fullPath = resolveComponent(args.component, workspaceRoot, args.searchPaths);
|
|
320
361
|
const componentInfo = componentAnalyzer.analyzeComponent(fullPath);
|
|
321
|
-
const attributes = [
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
const hasConfig = config && Object.keys(config).length > 0;
|
|
328
|
-
attributes.push({
|
|
329
|
-
name: propName,
|
|
330
|
-
tsType: prop.type,
|
|
331
|
-
optional: prop.optional,
|
|
332
|
-
hasConfig,
|
|
333
|
-
config,
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
for (const attr of newAttributes) {
|
|
337
|
-
const config = attributeConfig[attr.name];
|
|
338
|
-
const hasConfig = config && Object.keys(config).length > 0;
|
|
339
|
-
attributes.push({
|
|
340
|
-
name: attr.name,
|
|
341
|
-
tsType: 'string',
|
|
342
|
-
optional: !attr.required,
|
|
343
|
-
hasConfig,
|
|
344
|
-
config,
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
const regionConfig = args.conversationContext?.regionConfig;
|
|
348
|
-
const hasRegions = regionConfig?.enabled && regionConfig.regions && regionConfig.regions.length > 0;
|
|
362
|
+
const attributes = [
|
|
363
|
+
...buildAttributesFromProps(selectedProps, componentInfo.props, attributeConfig),
|
|
364
|
+
...buildAttributesFromNewAttrs(newAttributes, attributeConfig),
|
|
365
|
+
];
|
|
366
|
+
const { hasRegions, regions, regionCount } = resolveRegions(args.conversationContext);
|
|
367
|
+
const componentGroup = componentMetadata.group ?? 'odyssey_base';
|
|
349
368
|
const context = {
|
|
350
369
|
needsImports: true,
|
|
351
370
|
componentId: componentMetadata.id,
|
|
352
371
|
componentName: componentMetadata.name,
|
|
353
372
|
componentDescription: componentMetadata.description,
|
|
354
|
-
componentGroup
|
|
373
|
+
componentGroup,
|
|
355
374
|
metadataClassName: `${componentInfo.componentName}Metadata`,
|
|
356
375
|
hasAttributes: attributes.length > 0,
|
|
357
|
-
hasRegions
|
|
376
|
+
hasRegions,
|
|
358
377
|
hasLoader: false,
|
|
359
|
-
regions
|
|
378
|
+
regions,
|
|
360
379
|
attributes,
|
|
361
380
|
};
|
|
362
381
|
const decoratorCode = generateDecoratorCode(context);
|
|
@@ -364,11 +383,11 @@ function handleConfirmGenerationStep(args, workspaceRoot) {
|
|
|
364
383
|
decoratorCode,
|
|
365
384
|
componentName: componentInfo.componentName,
|
|
366
385
|
componentId: componentMetadata.id,
|
|
367
|
-
componentGroup
|
|
386
|
+
componentGroup,
|
|
368
387
|
file: args.component,
|
|
369
388
|
attributeCount: attributes.length,
|
|
370
|
-
hasRegions
|
|
371
|
-
regionCount
|
|
389
|
+
hasRegions,
|
|
390
|
+
regionCount,
|
|
372
391
|
});
|
|
373
392
|
return {
|
|
374
393
|
content: [
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/b2c-dx-mcp",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "MCP server for B2C Commerce Cloud developer experience tools",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"license": "MIT",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"ts-morph": "^27.0.0",
|
|
80
80
|
"yaml": "2.8.1",
|
|
81
81
|
"zod": "3.25.76",
|
|
82
|
-
"@salesforce/b2c-tooling-sdk": "0.5.
|
|
82
|
+
"@salesforce/b2c-tooling-sdk": "0.5.2"
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
85
|
"@eslint/compat": "^1",
|
/package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/analyzer.d.ts
RENAMED
|
File without changes
|
/package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/analyzer.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules.d.ts
RENAMED
|
File without changes
|
/package/dist/tools/{page-designer-decorator → storefrontnext/page-designer-decorator}/rules.js
RENAMED
|
File without changes
|
|
File without changes
|