@acquis-consulting/asm 1.0.12 → 1.0.14
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 +31 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/docsFetch.d.ts +25 -0
- package/dist/tools/docsFetch.js +51 -0
- package/dist/tools/docsFetch.js.map +1 -0
- package/dist/tools/docsListCollections.d.ts +44 -0
- package/dist/tools/docsListCollections.js +63 -0
- package/dist/tools/docsListCollections.js.map +1 -0
- package/dist/tools/docsSearch.d.ts +42 -0
- package/dist/tools/docsSearch.js +87 -0
- package/dist/tools/docsSearch.js.map +1 -0
- package/dist/tools/executeAnonymous.js +76 -7
- package/dist/tools/executeAnonymous.js.map +1 -1
- package/dist/tools/objectSchema.d.ts +7 -0
- package/dist/tools/objectSchema.js +40 -3
- package/dist/tools/objectSchema.js.map +1 -1
- package/dist/tools/trailheadFetch.d.ts +28 -0
- package/dist/tools/trailheadFetch.js +66 -0
- package/dist/tools/trailheadFetch.js.map +1 -0
- package/dist/tools/trailheadSearch.d.ts +94 -0
- package/dist/tools/trailheadSearch.js +112 -0
- package/dist/tools/trailheadSearch.js.map +1 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/relatedComponents.d.ts +9 -0
- package/dist/utils/relatedComponents.js +227 -4
- package/dist/utils/relatedComponents.js.map +1 -1
- package/dist/utils/salesforceDocsClient.d.ts +2 -0
- package/dist/utils/salesforceDocsClient.js +43 -0
- package/dist/utils/salesforceDocsClient.js.map +1 -0
- package/dist/utils/trailheadClient.d.ts +7 -0
- package/dist/utils/trailheadClient.js +35 -0
- package/dist/utils/trailheadClient.js.map +1 -0
- package/package.json +1 -1
|
@@ -6,6 +6,12 @@ const TYPES_WITH_DESCRIPTION = new Set([
|
|
|
6
6
|
'LightningComponentBundle',
|
|
7
7
|
'PermissionSet',
|
|
8
8
|
]);
|
|
9
|
+
// EntityDefinition.Id is a non-queryable placeholder for MetadataComponentDependency
|
|
10
|
+
// purposes — the real dependency-graph id for a custom object comes from CustomObject.Id.
|
|
11
|
+
function buildCustomObjectIdQuery(objectApiName) {
|
|
12
|
+
const developerName = objectApiName.replace(/__c$/i, '');
|
|
13
|
+
return `SELECT Id FROM CustomObject WHERE DeveloperName = '${esc(developerName)}'`;
|
|
14
|
+
}
|
|
9
15
|
// Maps metadata type to a Tooling API query that resolves the component ID.
|
|
10
16
|
// Returns null if the type is not supported.
|
|
11
17
|
function buildIdQuery(metadataType, fullName) {
|
|
@@ -18,13 +24,12 @@ function buildIdQuery(metadataType, fullName) {
|
|
|
18
24
|
const devName = fullName.split('-')[0]; // strip version suffix if present
|
|
19
25
|
return `SELECT Id FROM Flow WHERE DeveloperName = '${esc(devName)}' AND Status = 'Active' LIMIT 1`;
|
|
20
26
|
}
|
|
21
|
-
case 'CustomObject':
|
|
22
|
-
return `SELECT Id FROM EntityDefinition WHERE QualifiedApiName = '${esc(fullName)}'`;
|
|
23
27
|
case 'CustomField': {
|
|
24
28
|
const [obj, field] = splitDot(fullName);
|
|
25
29
|
if (!field)
|
|
26
30
|
return null;
|
|
27
|
-
|
|
31
|
+
const developerName = field.replace(/__c$/i, '');
|
|
32
|
+
return `SELECT Id FROM CustomField WHERE EntityDefinition.QualifiedApiName = '${esc(obj)}' AND DeveloperName = '${esc(developerName)}'`;
|
|
28
33
|
}
|
|
29
34
|
case 'ValidationRule': {
|
|
30
35
|
const [obj, rule] = splitDot(fullName);
|
|
@@ -45,6 +50,12 @@ function buildIdQuery(metadataType, fullName) {
|
|
|
45
50
|
}
|
|
46
51
|
}
|
|
47
52
|
export async function resolveComponentId(conn, metadataType, fullName) {
|
|
53
|
+
// CustomObject needs to handle both standard and custom object names (see
|
|
54
|
+
// resolveObjectComponentId), which doesn't fit the single-query-string shape
|
|
55
|
+
// buildIdQuery uses for every other type.
|
|
56
|
+
if (metadataType === 'CustomObject') {
|
|
57
|
+
return resolveObjectComponentId(conn, fullName);
|
|
58
|
+
}
|
|
48
59
|
const query = buildIdQuery(metadataType, fullName);
|
|
49
60
|
if (!query) {
|
|
50
61
|
console.error(`[relatedComponents] resolveComponentId: unsupported metadata type "${metadataType}"`);
|
|
@@ -64,6 +75,137 @@ export async function resolveComponentId(conn, metadataType, fullName) {
|
|
|
64
75
|
return null;
|
|
65
76
|
}
|
|
66
77
|
}
|
|
78
|
+
// Resolves the MetadataComponentDependency-graph component id for an SObject itself
|
|
79
|
+
// (as opposed to a field/rule/trigger that belongs to it). Standard objects are
|
|
80
|
+
// referenced by their plain API name in MetadataComponentDependency; custom objects
|
|
81
|
+
// need the CustomObject Tooling record's id.
|
|
82
|
+
export async function resolveObjectComponentId(conn, objectApiName) {
|
|
83
|
+
if (!objectApiName.endsWith('__c')) {
|
|
84
|
+
return objectApiName;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const result = await conn.tooling.query(buildCustomObjectIdQuery(objectApiName));
|
|
88
|
+
const record = result.records?.[0];
|
|
89
|
+
if (!record?.Id) {
|
|
90
|
+
console.error(`[relatedComponents] resolveObjectComponentId: no CustomObject record found for "${objectApiName}"`);
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return record.Id;
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
console.error(`[relatedComponents] resolveObjectComponentId failed for "${objectApiName}": ${err.message}`);
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// MetadataComponentDependency only tracks explicit field-level references made by a
|
|
101
|
+
// validation rule's formula — it does not emit an edge for the object the rule is
|
|
102
|
+
// defined on unless the formula happens to reference that object back. Query
|
|
103
|
+
// ValidationRule directly (scoped by EntityDefinition) so rules aren't silently missed.
|
|
104
|
+
export async function fetchValidationRulesForObject(conn, objectApiName) {
|
|
105
|
+
try {
|
|
106
|
+
const result = await conn.tooling.query(`SELECT Id, ValidationName, Description FROM ValidationRule WHERE EntityDefinition.QualifiedApiName = '${esc(objectApiName)}' AND Active = true`);
|
|
107
|
+
return (result.records || []).map((r) => ({
|
|
108
|
+
id: r.Id,
|
|
109
|
+
apiName: `${objectApiName}.${r.ValidationName}`,
|
|
110
|
+
type: 'ValidationRule',
|
|
111
|
+
description: r.Description ?? null,
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
console.error(`[relatedComponents] fetchValidationRulesForObject failed for "${objectApiName}": ${err.message}`);
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Same MetadataComponentDependency blind spot as validation rules — classic Workflow
|
|
120
|
+
// Rules are defined per-object without necessarily being tracked as depending on it.
|
|
121
|
+
// TableEnumOrId holds the plain object API name for both standard and custom objects.
|
|
122
|
+
export async function fetchWorkflowRulesForObject(conn, objectApiName) {
|
|
123
|
+
try {
|
|
124
|
+
const result = await conn.tooling.query(`SELECT Id, Name FROM WorkflowRule WHERE TableEnumOrId = '${esc(objectApiName)}'`);
|
|
125
|
+
return (result.records || []).map((r) => ({
|
|
126
|
+
id: r.Id,
|
|
127
|
+
apiName: `${objectApiName}.${r.Name}`,
|
|
128
|
+
type: 'WorkflowRule',
|
|
129
|
+
description: null,
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
console.error(`[relatedComponents] fetchWorkflowRulesForObject failed for "${objectApiName}": ${err.message}`);
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// ApprovalProcess and DuplicateRule aren't queryable via Tooling API SOQL at all (no
|
|
138
|
+
// matching sObject) — list them via the Metadata API instead. Both use the same
|
|
139
|
+
// "Object.Name" fullName convention as ValidationRule/WorkflowRule, so a prefix filter
|
|
140
|
+
// recovers the object scope. listMetadata's FileProperties conveniently includes a real id.
|
|
141
|
+
async function fetchViaMetadataList(conn, metadataType, objectApiName) {
|
|
142
|
+
try {
|
|
143
|
+
const result = await conn.metadata.list([{ type: metadataType }]);
|
|
144
|
+
const items = Array.isArray(result) ? result : result ? [result] : [];
|
|
145
|
+
const prefix = `${objectApiName}.`;
|
|
146
|
+
return items
|
|
147
|
+
.filter((item) => typeof item.fullName === 'string' && item.fullName.startsWith(prefix))
|
|
148
|
+
.map((item) => ({
|
|
149
|
+
id: item.id,
|
|
150
|
+
apiName: item.fullName,
|
|
151
|
+
type: metadataType,
|
|
152
|
+
description: null,
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
console.error(`[relatedComponents] fetchViaMetadataList failed for ${metadataType} on "${objectApiName}": ${err.message}`);
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
export async function fetchApprovalProcessesForObject(conn, objectApiName) {
|
|
161
|
+
return fetchViaMetadataList(conn, 'ApprovalProcess', objectApiName);
|
|
162
|
+
}
|
|
163
|
+
export async function fetchDuplicateRulesForObject(conn, objectApiName) {
|
|
164
|
+
return fetchViaMetadataList(conn, 'DuplicateRule', objectApiName);
|
|
165
|
+
}
|
|
166
|
+
// Assignment Rules, Auto-Response Rules, and (Case) Escalation Rules only ever apply to
|
|
167
|
+
// Lead and/or Case — Salesforce doesn't support them on any other object — and individual
|
|
168
|
+
// rules have no Salesforce ID at all; they're child entries inside one per-object metadata
|
|
169
|
+
// container (e.g. AssignmentRules for "Lead" holds an assignmentRule[] with no id field).
|
|
170
|
+
// Synthesize a stable id from the object + rule name for display/dedup purposes.
|
|
171
|
+
const CONTAINER_RULE_TYPES = {
|
|
172
|
+
AssignmentRules: { objects: ['Lead', 'Case'], childField: 'assignmentRule' },
|
|
173
|
+
AutoResponseRules: { objects: ['Lead', 'Case'], childField: 'autoResponseRule' },
|
|
174
|
+
EscalationRules: { objects: ['Case'], childField: 'escalationRule' },
|
|
175
|
+
};
|
|
176
|
+
async function fetchContainerRulesForObject(conn, metadataType, objectApiName) {
|
|
177
|
+
const config = CONTAINER_RULE_TYPES[metadataType];
|
|
178
|
+
if (!config.objects.includes(objectApiName))
|
|
179
|
+
return [];
|
|
180
|
+
try {
|
|
181
|
+
const result = await conn.metadata.read(metadataType, [objectApiName]);
|
|
182
|
+
const container = Array.isArray(result) ? result[0] : result;
|
|
183
|
+
const rules = container?.[config.childField];
|
|
184
|
+
const list = Array.isArray(rules) ? rules : rules ? [rules] : [];
|
|
185
|
+
const singularType = metadataType.slice(0, -1); // 'AssignmentRules' -> 'AssignmentRule'
|
|
186
|
+
return list
|
|
187
|
+
.filter((r) => r.active !== false)
|
|
188
|
+
.map((r) => ({
|
|
189
|
+
id: `${objectApiName}.${metadataType}.${r.fullName}`,
|
|
190
|
+
apiName: `${objectApiName}.${r.fullName}`,
|
|
191
|
+
type: singularType,
|
|
192
|
+
description: null,
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
console.error(`[relatedComponents] fetchContainerRulesForObject failed for ${metadataType} on "${objectApiName}": ${err.message}`);
|
|
197
|
+
return [];
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
export async function fetchAssignmentRulesForObject(conn, objectApiName) {
|
|
201
|
+
return fetchContainerRulesForObject(conn, 'AssignmentRules', objectApiName);
|
|
202
|
+
}
|
|
203
|
+
export async function fetchAutoResponseRulesForObject(conn, objectApiName) {
|
|
204
|
+
return fetchContainerRulesForObject(conn, 'AutoResponseRules', objectApiName);
|
|
205
|
+
}
|
|
206
|
+
export async function fetchEscalationRulesForObject(conn, objectApiName) {
|
|
207
|
+
return fetchContainerRulesForObject(conn, 'EscalationRules', objectApiName);
|
|
208
|
+
}
|
|
67
209
|
export async function fetchRelatedComponents(conn, componentId) {
|
|
68
210
|
try {
|
|
69
211
|
const [parentsResult, childrenResult] = await Promise.all([
|
|
@@ -85,13 +227,34 @@ export async function fetchRelatedComponents(conn, componentId) {
|
|
|
85
227
|
children.push({ id: r.MetadataComponentId, apiName: r.MetadataComponentName, type: r.MetadataComponentType, description: null });
|
|
86
228
|
}
|
|
87
229
|
}
|
|
88
|
-
return {
|
|
230
|
+
return {
|
|
231
|
+
parents: await filterInactiveFlowVersions(conn, parents),
|
|
232
|
+
children: await filterInactiveFlowVersions(conn, children),
|
|
233
|
+
};
|
|
89
234
|
}
|
|
90
235
|
catch (err) {
|
|
91
236
|
console.error(`[relatedComponents] fetchRelatedComponents failed for ${componentId}: ${err.message}`);
|
|
92
237
|
return { parents: [], children: [] };
|
|
93
238
|
}
|
|
94
239
|
}
|
|
240
|
+
// Each save of a Flow creates a new versioned Flow component with its own Id, so
|
|
241
|
+
// MetadataComponentDependency accumulates one entry per version. Collapse those
|
|
242
|
+
// down to only the Active version so obsolete/draft versions don't show as duplicates.
|
|
243
|
+
async function filterInactiveFlowVersions(conn, components) {
|
|
244
|
+
const flowIds = components.filter((c) => c.type === 'Flow').map((c) => c.id);
|
|
245
|
+
if (flowIds.length === 0)
|
|
246
|
+
return components;
|
|
247
|
+
try {
|
|
248
|
+
const ids = flowIds.map((id) => `'${id}'`).join(',');
|
|
249
|
+
const result = await conn.tooling.query(`SELECT Id, Status FROM Flow WHERE Id IN (${ids})`);
|
|
250
|
+
const activeIds = new Set((result.records || []).filter((r) => r.Status === 'Active').map((r) => r.Id));
|
|
251
|
+
return components.filter((c) => c.type !== 'Flow' || activeIds.has(c.id));
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
console.error(`[relatedComponents] filterInactiveFlowVersions failed: ${err.message}`);
|
|
255
|
+
return components;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
95
258
|
export async function fetchDescriptions(conn, components) {
|
|
96
259
|
if (components.length === 0)
|
|
97
260
|
return components;
|
|
@@ -137,6 +300,66 @@ export function formatRelatedComponentsSection(parents, children) {
|
|
|
137
300
|
}
|
|
138
301
|
return lines.join('\n');
|
|
139
302
|
}
|
|
303
|
+
const TYPE_LABELS = {
|
|
304
|
+
ApexTrigger: 'Apex Triggers',
|
|
305
|
+
Flow: 'Flows',
|
|
306
|
+
ValidationRule: 'Validation Rules',
|
|
307
|
+
ApexClass: 'Apex Classes',
|
|
308
|
+
EmailTemplate: 'Email Templates',
|
|
309
|
+
WorkflowRule: 'Workflow Rules',
|
|
310
|
+
LightningComponentBundle: 'Lightning Web Components',
|
|
311
|
+
AuraDefinitionBundle: 'Aura Components',
|
|
312
|
+
PermissionSet: 'Permission Sets',
|
|
313
|
+
Profile: 'Profiles',
|
|
314
|
+
Layout: 'Page Layouts',
|
|
315
|
+
RecordType: 'Record Types',
|
|
316
|
+
CustomField: 'Custom Fields',
|
|
317
|
+
CustomObject: 'Custom Objects',
|
|
318
|
+
ApprovalProcess: 'Approval Processes',
|
|
319
|
+
CustomTab: 'Custom Tabs',
|
|
320
|
+
QuickAction: 'Quick Actions',
|
|
321
|
+
};
|
|
322
|
+
// Types shown first, in this order, when present — everything else follows alphabetically.
|
|
323
|
+
const PRIORITY_TYPES = ['ApexTrigger', 'Flow', 'ValidationRule'];
|
|
324
|
+
function humanizeComponentType(type) {
|
|
325
|
+
if (TYPE_LABELS[type])
|
|
326
|
+
return TYPE_LABELS[type];
|
|
327
|
+
const spaced = type.replace(/([a-z0-9])([A-Z])/g, '$1 $2');
|
|
328
|
+
return spaced.endsWith('s') ? spaced : `${spaced}s`;
|
|
329
|
+
}
|
|
330
|
+
// Renders every dependent type that references a component (e.g. everything that
|
|
331
|
+
// references an SObject), grouped dynamically by MetadataComponentType rather than
|
|
332
|
+
// a fixed set of types, so no dependent type is ever silently dropped.
|
|
333
|
+
export function formatObjectDependentsSection(components) {
|
|
334
|
+
if (components.length === 0)
|
|
335
|
+
return '';
|
|
336
|
+
const byType = new Map();
|
|
337
|
+
for (const c of components) {
|
|
338
|
+
if (!byType.has(c.type))
|
|
339
|
+
byType.set(c.type, []);
|
|
340
|
+
byType.get(c.type).push(c);
|
|
341
|
+
}
|
|
342
|
+
const types = Array.from(byType.keys()).sort((a, b) => {
|
|
343
|
+
const aPriority = PRIORITY_TYPES.indexOf(a);
|
|
344
|
+
const bPriority = PRIORITY_TYPES.indexOf(b);
|
|
345
|
+
if (aPriority !== -1 || bPriority !== -1) {
|
|
346
|
+
if (aPriority === -1)
|
|
347
|
+
return 1;
|
|
348
|
+
if (bPriority === -1)
|
|
349
|
+
return -1;
|
|
350
|
+
return aPriority - bPriority;
|
|
351
|
+
}
|
|
352
|
+
return humanizeComponentType(a).localeCompare(humanizeComponentType(b));
|
|
353
|
+
});
|
|
354
|
+
const lines = ['', '## Related Components (what references this object)'];
|
|
355
|
+
for (const type of types) {
|
|
356
|
+
lines.push('', `### ${humanizeComponentType(type)}`, '');
|
|
357
|
+
for (const c of byType.get(type)) {
|
|
358
|
+
lines.push(`- **${c.apiName}** [${c.id}]${c.description ? ` — ${c.description}` : ''}`);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return lines.join('\n');
|
|
362
|
+
}
|
|
140
363
|
function esc(s) {
|
|
141
364
|
return s.replace(/'/g, "\\'");
|
|
142
365
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relatedComponents.js","sourceRoot":"","sources":["../../src/utils/relatedComponents.ts"],"names":[],"mappings":"AAcA,gEAAgE;AAChE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,gBAAgB;IAChB,MAAM;IACN,aAAa;IACb,0BAA0B;IAC1B,eAAe;CAChB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,6CAA6C;AAC7C,SAAS,YAAY,CAAC,YAAoB,EAAE,QAAgB;IAC1D,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,0CAA0C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpE,KAAK,aAAa;YAChB,OAAO,4CAA4C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtE,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;YAC1E,OAAO,8CAA8C,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC;QACrG,CAAC;QACD,KAAK,cAAc;YACjB,OAAO,6DAA6D,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvF,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO,yEAAyE,GAAG,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAClI,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,OAAO,4EAA4E,GAAG,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACrI,CAAC;QACD,KAAK,0BAA0B;YAC7B,OAAO,kEAAkE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5F,KAAK,sBAAsB;YACzB,OAAO,8DAA8D,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxF,KAAK,eAAe;YAClB,OAAO,8CAA8C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxE,KAAK,SAAS;YACZ,OAAO,wCAAwC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClE;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,YAAoB,EACpB,QAAgB;IAEhB,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,sEAAsE,YAAY,GAAG,CAAC,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAQ,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,+DAA+D,YAAY,KAAK,QAAQ,GAAG,CAAC,CAAC;YAC3G,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,EAAY,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,qDAAqD,YAAY,KAAK,QAAQ,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAgB,EAChB,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,mJAAmJ,WAAW,GAAG,CAClK;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,6IAA6I,WAAW,GAAG,CAC5J;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAuB,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAU,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,wBAAwB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3I,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,EAAE,CAAU,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACnI,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,yDAAyD,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAgB,EAChB,UAA8B;IAE9B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,8DAA8D;IAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IAExD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CACrC,+BAA+B,IAAI,iBAAiB,GAAG,GAAG,CAC3D,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAU,EAAE,CAAC;gBAChD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,yDAAyD,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAA2B,EAAE,QAA4B;IACtG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7D,MAAM,KAAK,GAAa,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,8CAA8C,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,+CAA+C,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB;IAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
1
|
+
{"version":3,"file":"relatedComponents.js","sourceRoot":"","sources":["../../src/utils/relatedComponents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Official Salesforce Labs "Salesforce Docs MCP" server — see https://labs.agentforce.com/docs/salesforce-docs-mcp
|
|
2
|
+
const DOCS_MCP_ENDPOINT = 'https://salesforce-docs-76258744c9d7.herokuapp.com/api/mcp';
|
|
3
|
+
async function callJsonRpc(method, params) {
|
|
4
|
+
const response = await fetch(DOCS_MCP_ENDPOINT, {
|
|
5
|
+
method: 'POST',
|
|
6
|
+
headers: {
|
|
7
|
+
'Content-Type': 'application/json',
|
|
8
|
+
Accept: 'application/json, text/event-stream',
|
|
9
|
+
},
|
|
10
|
+
body: JSON.stringify({ jsonrpc: '2.0', method, params, id: 1 }),
|
|
11
|
+
});
|
|
12
|
+
const text = await response.text();
|
|
13
|
+
let json;
|
|
14
|
+
try {
|
|
15
|
+
json = JSON.parse(text);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
throw new Error(`Salesforce Docs MCP returned a non-JSON response (HTTP ${response.status}): ${text.slice(0, 500)}`);
|
|
19
|
+
}
|
|
20
|
+
if (!response.ok && !json.error) {
|
|
21
|
+
throw new Error(`Salesforce Docs MCP request failed (HTTP ${response.status})`);
|
|
22
|
+
}
|
|
23
|
+
return json;
|
|
24
|
+
}
|
|
25
|
+
export async function callDocsMcpTool(name, args) {
|
|
26
|
+
const json = await callJsonRpc('tools/call', { name, arguments: args });
|
|
27
|
+
if (json.error) {
|
|
28
|
+
throw new Error(`Salesforce Docs MCP error: ${json.error.message}`);
|
|
29
|
+
}
|
|
30
|
+
return json.result?.structuredContent ?? {};
|
|
31
|
+
}
|
|
32
|
+
export async function readDocsMcpResource(uri) {
|
|
33
|
+
const json = await callJsonRpc('resources/read', { uri });
|
|
34
|
+
if (json.error) {
|
|
35
|
+
throw new Error(`Salesforce Docs MCP error: ${json.error.message}`);
|
|
36
|
+
}
|
|
37
|
+
const text = json.result?.contents?.[0]?.text;
|
|
38
|
+
if (!text) {
|
|
39
|
+
throw new Error('Salesforce Docs MCP returned no content for resource ' + uri);
|
|
40
|
+
}
|
|
41
|
+
return JSON.parse(text);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=salesforceDocsClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"salesforceDocsClient.js","sourceRoot":"","sources":["../../src/utils/salesforceDocsClient.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,MAAM,iBAAiB,GAAG,4DAA4D,CAAC;AAUvF,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,MAA2B;IACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,qCAAqC;SAC9C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,0DAA0D,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,IAAyB;IAC3E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,uDAAuD,GAAG,GAAG,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Public Salesforce Trailhead MCP server — see https://mcp.trailhead.salesforce.com/mcp
|
|
2
|
+
const TRAILHEAD_MCP_ENDPOINT = 'https://mcp.trailhead.salesforce.com/mcp';
|
|
3
|
+
async function callJsonRpc(method, params) {
|
|
4
|
+
const response = await fetch(TRAILHEAD_MCP_ENDPOINT, {
|
|
5
|
+
method: 'POST',
|
|
6
|
+
headers: {
|
|
7
|
+
'Content-Type': 'application/json',
|
|
8
|
+
Accept: 'application/json, text/event-stream',
|
|
9
|
+
},
|
|
10
|
+
body: JSON.stringify({ jsonrpc: '2.0', method, params, id: 1 }),
|
|
11
|
+
});
|
|
12
|
+
const text = await response.text();
|
|
13
|
+
let json;
|
|
14
|
+
try {
|
|
15
|
+
json = JSON.parse(text);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
throw new Error(`Trailhead MCP returned a non-JSON response (HTTP ${response.status}): ${text.slice(0, 500)}`);
|
|
19
|
+
}
|
|
20
|
+
if (!response.ok && !json.error) {
|
|
21
|
+
throw new Error(`Trailhead MCP request failed (HTTP ${response.status})`);
|
|
22
|
+
}
|
|
23
|
+
return json;
|
|
24
|
+
}
|
|
25
|
+
export async function callTrailheadMcpTool(name, args) {
|
|
26
|
+
const json = await callJsonRpc('tools/call', { name, arguments: args });
|
|
27
|
+
if (json.error) {
|
|
28
|
+
throw new Error(`Trailhead MCP error: ${json.error.message}`);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
structuredContent: json.result?.structuredContent,
|
|
32
|
+
content: json.result?.content ?? [],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=trailheadClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trailheadClient.js","sourceRoot":"","sources":["../../src/utils/trailheadClient.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,sBAAsB,GAAG,0CAA0C,CAAC;AAU1E,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,MAA2B;IACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,qCAAqC;SAC9C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,oDAAoD,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,IAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO;QACL,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB;QACjD,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC"}
|