@chriscamp/sf-data-cloud-mcp 0.1.0 → 0.1.1
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/tools/dmo/list-dmos.d.ts.map +1 -1
- package/dist/tools/dmo/list-dmos.js +3 -1
- package/dist/tools/dmo/list-dmos.js.map +1 -1
- package/dist/util/http.d.ts +13 -3
- package/dist/util/http.d.ts.map +1 -1
- package/dist/util/http.js +32 -5
- package/dist/util/http.js.map +1 -1
- package/dist/util/unwrap.d.ts +2 -0
- package/dist/util/unwrap.d.ts.map +1 -1
- package/dist/util/unwrap.js +4 -1
- package/dist/util/unwrap.js.map +1 -1
- package/package.json +46 -46
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-dmos.d.ts","sourceRoot":"","sources":["../../../src/tools/dmo/list-dmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"list-dmos.d.ts","sourceRoot":"","sources":["../../../src/tools/dmo/list-dmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAYpC"}
|
|
@@ -4,7 +4,9 @@ export const listDmosInputSchema = z.object({
|
|
|
4
4
|
});
|
|
5
5
|
export async function listDmosTool(input, auth, http) {
|
|
6
6
|
const orgCreds = await auth.getOrgCredentials(input.target_org);
|
|
7
|
-
|
|
7
|
+
// DMO API returns max 50 per page with no pagination signals (no totalSize,
|
|
8
|
+
// no batchSize, no nextPageUrl). Pass hintBatchSize so offset fallback works.
|
|
9
|
+
const result = await http.paginatedGet(`${orgCreds.instanceUrl}/services/data/v66.0/ssot/data-model-objects`, orgCreds.accessToken, "dataModelObjects", orgCreds.instanceUrl, 50);
|
|
8
10
|
return result.items;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=list-dmos.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-dmos.js","sourceRoot":"","sources":["../../../src/tools/dmo/list-dmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACpE,CAAC,CAAC;AAaH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAoB,EACpB,IAAiB,EACjB,IAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CACpC,GAAG,QAAQ,CAAC,WAAW,8CAA8C,EACrE,QAAQ,CAAC,WAAW,EACpB,kBAAkB,EAClB,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"list-dmos.js","sourceRoot":"","sources":["../../../src/tools/dmo/list-dmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACpE,CAAC,CAAC;AAaH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAoB,EACpB,IAAiB,EACjB,IAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChE,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CACpC,GAAG,QAAQ,CAAC,WAAW,8CAA8C,EACrE,QAAQ,CAAC,WAAW,EACpB,kBAAkB,EAClB,QAAQ,CAAC,WAAW,EACpB,EAAE,CACH,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
|
package/dist/util/http.d.ts
CHANGED
|
@@ -14,10 +14,20 @@ export declare class DataCloudHttpClient {
|
|
|
14
14
|
delete<T = unknown>(url: string, token: string): Promise<T>;
|
|
15
15
|
patch<T = unknown>(url: string, token: string, body?: unknown): Promise<T>;
|
|
16
16
|
/**
|
|
17
|
-
* Paginated GET — follows nextPageUrl to collect all items.
|
|
18
|
-
*
|
|
17
|
+
* Paginated GET — follows nextPageUrl, nextPageToken, or offset to collect all items.
|
|
18
|
+
*
|
|
19
|
+
* Three pagination styles (tried in order):
|
|
20
|
+
* 1. nextPageUrl — follow the URL (data-streams, data-actions)
|
|
21
|
+
* 2. nextPageToken — collection pattern (calculated-insights)
|
|
22
|
+
* 3. Offset-based fallback — when the API returns no pagination signals
|
|
23
|
+
* but totalSize indicates more items exist, or the page is full.
|
|
24
|
+
* Page size detection priority: API response batchSize > caller hint > page item count.
|
|
25
|
+
*
|
|
26
|
+
* @param hintBatchSize - Caller-provided page size hint for APIs that return no
|
|
27
|
+
* pagination signals at all (e.g. DMOs return a flat array capped at 50 with no
|
|
28
|
+
* totalSize, batchSize, or nextPageUrl).
|
|
19
29
|
*/
|
|
20
|
-
paginatedGet(url: string, token: string, expectedKey: string, baseUrl?: string): Promise<UnwrappedResponse>;
|
|
30
|
+
paginatedGet(url: string, token: string, expectedKey: string, baseUrl?: string, hintBatchSize?: number): Promise<UnwrappedResponse>;
|
|
21
31
|
private request;
|
|
22
32
|
}
|
|
23
33
|
export {};
|
package/dist/util/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/util/http.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,GAAE,iBAAsB;IAMrC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxD,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAIP,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3D,KAAK,CAAC,CAAC,GAAG,OAAO,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAIb
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/util/http.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,GAAE,iBAAsB;IAMrC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxD,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAIP,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3D,KAAK,CAAC,CAAC,GAAG,OAAO,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;;;;;;OAaG;IACG,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC;YAgDf,OAAO;CAoDtB"}
|
package/dist/util/http.js
CHANGED
|
@@ -22,13 +22,24 @@ export class DataCloudHttpClient {
|
|
|
22
22
|
return this.request("PATCH", url, token, body);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Paginated GET — follows nextPageUrl to collect all items.
|
|
26
|
-
*
|
|
25
|
+
* Paginated GET — follows nextPageUrl, nextPageToken, or offset to collect all items.
|
|
26
|
+
*
|
|
27
|
+
* Three pagination styles (tried in order):
|
|
28
|
+
* 1. nextPageUrl — follow the URL (data-streams, data-actions)
|
|
29
|
+
* 2. nextPageToken — collection pattern (calculated-insights)
|
|
30
|
+
* 3. Offset-based fallback — when the API returns no pagination signals
|
|
31
|
+
* but totalSize indicates more items exist, or the page is full.
|
|
32
|
+
* Page size detection priority: API response batchSize > caller hint > page item count.
|
|
33
|
+
*
|
|
34
|
+
* @param hintBatchSize - Caller-provided page size hint for APIs that return no
|
|
35
|
+
* pagination signals at all (e.g. DMOs return a flat array capped at 50 with no
|
|
36
|
+
* totalSize, batchSize, or nextPageUrl).
|
|
27
37
|
*/
|
|
28
|
-
async paginatedGet(url, token, expectedKey, baseUrl) {
|
|
38
|
+
async paginatedGet(url, token, expectedKey, baseUrl, hintBatchSize) {
|
|
29
39
|
const allItems = [];
|
|
30
40
|
let currentUrl = url;
|
|
31
41
|
let totalSize;
|
|
42
|
+
let effectiveBatchSize;
|
|
32
43
|
let pages = 0;
|
|
33
44
|
while (currentUrl && pages < this.maxPages) {
|
|
34
45
|
const raw = await this.get(currentUrl, token);
|
|
@@ -36,17 +47,33 @@ export class DataCloudHttpClient {
|
|
|
36
47
|
allItems.push(...page.items);
|
|
37
48
|
if (page.totalSize !== undefined)
|
|
38
49
|
totalSize = page.totalSize;
|
|
50
|
+
if (page.responseBatchSize !== undefined)
|
|
51
|
+
effectiveBatchSize = page.responseBatchSize;
|
|
52
|
+
// Resolve the page size: API response > caller hint > page length
|
|
53
|
+
const pageSize = effectiveBatchSize ?? hintBatchSize ?? page.items.length;
|
|
39
54
|
if (page.nextPageUrl) {
|
|
40
|
-
//
|
|
55
|
+
// Style 1: follow nextPageUrl (data-streams, data-actions)
|
|
41
56
|
currentUrl = page.nextPageUrl.startsWith("http")
|
|
42
57
|
? page.nextPageUrl
|
|
43
58
|
: `${baseUrl}${page.nextPageUrl}`;
|
|
44
59
|
}
|
|
45
60
|
else if (page.nextPageToken) {
|
|
46
|
-
//
|
|
61
|
+
// Style 2: token-based pagination (calculated-insights collection pattern)
|
|
47
62
|
const sep = currentUrl.includes("?") ? "&" : "?";
|
|
48
63
|
currentUrl = `${url}${sep}pageToken=${page.nextPageToken}`;
|
|
49
64
|
}
|
|
65
|
+
else if (totalSize !== undefined && allItems.length < totalSize) {
|
|
66
|
+
// Offset fallback: API told us the total, we haven't reached it
|
|
67
|
+
const sep = url.includes("?") ? "&" : "?";
|
|
68
|
+
currentUrl = `${url}${sep}offset=${allItems.length}&batchSize=${pageSize}`;
|
|
69
|
+
}
|
|
70
|
+
else if (totalSize === undefined &&
|
|
71
|
+
page.items.length > 0 &&
|
|
72
|
+
page.items.length >= pageSize) {
|
|
73
|
+
// Offset fallback: no totalSize, page was full — assume more exist
|
|
74
|
+
const sep = url.includes("?") ? "&" : "?";
|
|
75
|
+
currentUrl = `${url}${sep}offset=${allItems.length}&batchSize=${pageSize}`;
|
|
76
|
+
}
|
|
50
77
|
else {
|
|
51
78
|
break;
|
|
52
79
|
}
|
package/dist/util/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/util/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAA0B,MAAM,aAAa,CAAC;AAQrE,MAAM,OAAO,mBAAmB;IACtB,UAAU,CAAS;IACnB,YAAY,CAAS;IACrB,QAAQ,CAAS;IAEzB,YAAY,UAA6B,EAAE;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,KAAa;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI,CACR,GAAW,EACX,KAAa,EACb,IAAc;QAEd,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAc,GAAW,EAAE,KAAa;QAClD,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAW,EACX,KAAa,EACb,IAAc;QAEd,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/util/http.ts"],"names":[],"mappings":"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"}
|
package/dist/util/unwrap.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export interface UnwrappedResponse {
|
|
|
7
7
|
totalSize?: number;
|
|
8
8
|
nextPageUrl?: string;
|
|
9
9
|
nextPageToken?: string;
|
|
10
|
+
/** The page size reported by the API (e.g. segments returns batchSize: 20). */
|
|
11
|
+
responseBatchSize?: number;
|
|
10
12
|
}
|
|
11
13
|
export declare function unwrapResponse(data: unknown, expectedKey: string): UnwrappedResponse;
|
|
12
14
|
//# sourceMappingURL=unwrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../../src/util/unwrap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../../src/util/unwrap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAsDnB"}
|
package/dist/util/unwrap.js
CHANGED
|
@@ -45,7 +45,10 @@ export function unwrapResponse(data, expectedKey) {
|
|
|
45
45
|
return {
|
|
46
46
|
items: (items ?? []),
|
|
47
47
|
totalSize: typeof obj.totalSize === "number" ? obj.totalSize : undefined,
|
|
48
|
-
nextPageUrl: typeof obj.nextPageUrl === "string" ? obj.nextPageUrl : undefined
|
|
48
|
+
nextPageUrl: typeof obj.nextPageUrl === "string" ? obj.nextPageUrl : undefined,
|
|
49
|
+
responseBatchSize: typeof obj.batchSize === "number" && obj.batchSize > 0
|
|
50
|
+
? obj.batchSize
|
|
51
|
+
: undefined
|
|
49
52
|
};
|
|
50
53
|
}
|
|
51
54
|
//# sourceMappingURL=unwrap.js.map
|
package/dist/util/unwrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../../src/util/unwrap.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../../src/util/unwrap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,UAAU,cAAc,CAC5B,IAAa,EACb,WAAmB;IAEnB,aAAa;IACb,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,GAAG,GAAG,IAA+B,CAAC;IAE5C,6EAA6E;IAC7E,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAqC,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,KAAkC;YACzC,SAAS,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAClE,aAAa,EAAE,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;SACvF,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,IAAI,KAA4B,CAAC;IAEjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACpC,KAAK,GAAG,GAAG,CAAC,WAAW,CAAc,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,yDAAyD;QACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAc,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,2CAA2C;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,GAAG,GAAG,CAAC;gBACZ,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAA8B;QACjD,SAAS,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACxE,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC9E,iBAAiB,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC;YACvE,CAAC,CAAC,GAAG,CAAC,SAAS;YACf,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@chriscamp/sf-data-cloud-mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP server for Salesforce Data Cloud operations",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"sf-data-cloud-mcp": "./dist/index.js"
|
|
8
|
-
},
|
|
9
|
-
"files": [
|
|
10
|
-
"dist",
|
|
11
|
-
"README.md"
|
|
12
|
-
],
|
|
13
|
-
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
15
|
-
"dev": "tsc --watch",
|
|
16
|
-
"test": "vitest run",
|
|
17
|
-
"test:watch": "vitest",
|
|
18
|
-
"lint": "tsc --noEmit",
|
|
19
|
-
"prepare": "npm run build",
|
|
20
|
-
"prepublishOnly": "npm run build"
|
|
21
|
-
},
|
|
22
|
-
"engines": {
|
|
23
|
-
"node": ">=18"
|
|
24
|
-
},
|
|
25
|
-
"keywords": [
|
|
26
|
-
"mcp",
|
|
27
|
-
"salesforce",
|
|
28
|
-
"data-cloud",
|
|
29
|
-
"ai"
|
|
30
|
-
],
|
|
31
|
-
"author": "Chris Camp",
|
|
32
|
-
"license": "MIT",
|
|
33
|
-
"repository": {
|
|
34
|
-
"type": "git",
|
|
35
|
-
"url": "https://github.com/ChrisCampTN/sf-data-cloud-mcp.git"
|
|
36
|
-
},
|
|
37
|
-
"dependencies": {
|
|
38
|
-
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
39
|
-
"zod": "^4.3.6"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/node": "^25.5.2",
|
|
43
|
-
"typescript": "^6.0.2",
|
|
44
|
-
"vitest": "^4.1.3"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@chriscamp/sf-data-cloud-mcp",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "MCP server for Salesforce Data Cloud operations",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"sf-data-cloud-mcp": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"test": "vitest run",
|
|
17
|
+
"test:watch": "vitest",
|
|
18
|
+
"lint": "tsc --noEmit",
|
|
19
|
+
"prepare": "npm run build",
|
|
20
|
+
"prepublishOnly": "npm run build"
|
|
21
|
+
},
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"mcp",
|
|
27
|
+
"salesforce",
|
|
28
|
+
"data-cloud",
|
|
29
|
+
"ai"
|
|
30
|
+
],
|
|
31
|
+
"author": "Chris Camp",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/ChrisCampTN/sf-data-cloud-mcp.git"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
39
|
+
"zod": "^4.3.6"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^25.5.2",
|
|
43
|
+
"typescript": "^6.0.2",
|
|
44
|
+
"vitest": "^4.1.3"
|
|
45
|
+
}
|
|
46
|
+
}
|