@party-stack/salesforce-ontology 0.4.0 → 0.4.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/README.md +22 -31
- package/lib/actionMetadata.d.ts +11 -9
- package/lib/actionMetadata.d.ts.map +1 -1
- package/lib/actionMetadata.js +19 -30
- package/lib/actionMetadata.js.map +1 -1
- package/lib/adapter/convertLoadSubsetOptions.d.ts +10 -8
- package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
- package/lib/adapter/convertLoadSubsetOptions.js +110 -173
- package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
- package/lib/adapter/createSalesforceOntologyBackendAdapter.d.ts +14 -12
- package/lib/adapter/createSalesforceOntologyBackendAdapter.d.ts.map +1 -1
- package/lib/adapter/createSalesforceOntologyBackendAdapter.js +124 -191
- package/lib/adapter/createSalesforceOntologyBackendAdapter.js.map +1 -1
- package/lib/adapter/index.d.ts +5 -5
- package/lib/adapter/index.js +5 -5
- package/lib/adapter/objectCollectionOptions.d.ts +22 -23
- package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
- package/lib/adapter/objectCollectionOptions.js +198 -280
- package/lib/adapter/objectCollectionOptions.js.map +1 -1
- package/lib/adapter/salesforceCodec.d.ts +6 -5
- package/lib/adapter/salesforceCodec.d.ts.map +1 -1
- package/lib/adapter/salesforceCodec.js +126 -190
- package/lib/adapter/salesforceCodec.js.map +1 -1
- package/lib/config/index.d.ts +20 -18
- package/lib/config/index.d.ts.map +1 -1
- package/lib/config/index.js +148 -192
- package/lib/config/index.js.map +1 -1
- package/lib/connection.d.ts +35 -33
- package/lib/connection.d.ts.map +1 -1
- package/lib/connection.js +243 -299
- package/lib/connection.js.map +1 -1
- package/lib/crud.d.ts +5 -3
- package/lib/crud.d.ts.map +1 -1
- package/lib/crud.js +0 -1
- package/lib/index.d.ts +10 -5
- package/lib/index.js +10 -5
- package/lib/installation/createSalesforceBackendInstallation.d.ts +28 -26
- package/lib/installation/createSalesforceBackendInstallation.d.ts.map +1 -1
- package/lib/installation/createSalesforceBackendInstallation.js +75 -85
- package/lib/installation/createSalesforceBackendInstallation.js.map +1 -1
- package/lib/installation/index.d.ts +2 -2
- package/lib/installation/index.js +2 -2
- package/lib/meta/actionTypeCollectionOptions.d.ts +10 -8
- package/lib/meta/actionTypeCollectionOptions.d.ts.map +1 -1
- package/lib/meta/actionTypeCollectionOptions.js +105 -212
- package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
- package/lib/meta/convertMetaActionType.d.ts +4 -2
- package/lib/meta/convertMetaActionType.d.ts.map +1 -1
- package/lib/meta/convertMetaActionType.js +32 -32
- package/lib/meta/convertMetaActionType.js.map +1 -1
- package/lib/meta/convertMetaLinkType.d.ts +4 -2
- package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
- package/lib/meta/convertMetaLinkType.js +39 -45
- package/lib/meta/convertMetaLinkType.js.map +1 -1
- package/lib/meta/convertMetaLoadSubsetOptions.d.ts +12 -10
- package/lib/meta/convertMetaLoadSubsetOptions.d.ts.map +1 -1
- package/lib/meta/convertMetaLoadSubsetOptions.js +42 -58
- package/lib/meta/convertMetaLoadSubsetOptions.js.map +1 -1
- package/lib/meta/convertMetaObjectType.d.ts +4 -2
- package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
- package/lib/meta/convertMetaObjectType.js +36 -40
- package/lib/meta/convertMetaObjectType.js.map +1 -1
- package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -2
- package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -1
- package/lib/meta/convertMetaQueryFunctionType.js +27 -25
- package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
- package/lib/meta/convertMetaTypeDef.d.ts +10 -8
- package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
- package/lib/meta/convertMetaTypeDef.js +196 -188
- package/lib/meta/convertMetaTypeDef.js.map +1 -1
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.d.ts +19 -17
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.d.ts.map +1 -1
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.js +38 -40
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.js.map +1 -1
- package/lib/meta/entityCollectionOptions.d.ts +10 -8
- package/lib/meta/entityCollectionOptions.d.ts.map +1 -1
- package/lib/meta/entityCollectionOptions.js +73 -82
- package/lib/meta/entityCollectionOptions.js.map +1 -1
- package/lib/meta/index.d.ts +7 -7
- package/lib/meta/index.js +7 -7
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +7 -5
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.js +53 -91
- package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -1
- package/lib/meta/synthesizeCrudActionTypes.d.ts +4 -2
- package/lib/meta/synthesizeCrudActionTypes.d.ts.map +1 -1
- package/lib/meta/synthesizeCrudActionTypes.js +77 -116
- package/lib/meta/synthesizeCrudActionTypes.js.map +1 -1
- package/lib/standardActions.d.ts +2 -0
- package/lib/standardActions.d.ts.map +1 -1
- package/lib/standardActions.js +22 -20
- package/lib/standardActions.js.map +1 -1
- package/lib/utils/AsyncIterable.d.ts +2 -0
- package/lib/utils/AsyncIterable.d.ts.map +1 -1
- package/lib/utils/AsyncIterable.js +20 -23
- package/lib/utils/AsyncIterable.js.map +1 -1
- package/lib/utils/ids.d.ts +2 -0
- package/lib/utils/ids.d.ts.map +1 -1
- package/lib/utils/ids.js +23 -19
- package/lib/utils/ids.js.map +1 -1
- package/package.json +14 -20
- package/lib/adapter/convertLoadSubsetOptions.test.d.ts +0 -2
- package/lib/adapter/convertLoadSubsetOptions.test.d.ts.map +0 -1
- package/lib/adapter/convertLoadSubsetOptions.test.js +0 -80
- package/lib/adapter/convertLoadSubsetOptions.test.js.map +0 -1
- package/lib/adapter/createSalesforceOntologyBackendAdapter.test.d.ts +0 -2
- package/lib/adapter/createSalesforceOntologyBackendAdapter.test.d.ts.map +0 -1
- package/lib/adapter/createSalesforceOntologyBackendAdapter.test.js +0 -394
- package/lib/adapter/createSalesforceOntologyBackendAdapter.test.js.map +0 -1
- package/lib/adapter/index.d.ts.map +0 -1
- package/lib/adapter/index.js.map +0 -1
- package/lib/adapter/objectCollectionOptions.test.d.ts +0 -2
- package/lib/adapter/objectCollectionOptions.test.d.ts.map +0 -1
- package/lib/adapter/objectCollectionOptions.test.js +0 -160
- package/lib/adapter/objectCollectionOptions.test.js.map +0 -1
- package/lib/adapter/salesforceCodec.test.d.ts +0 -2
- package/lib/adapter/salesforceCodec.test.d.ts.map +0 -1
- package/lib/adapter/salesforceCodec.test.js +0 -57
- package/lib/adapter/salesforceCodec.test.js.map +0 -1
- package/lib/config/index.test.d.ts +0 -2
- package/lib/config/index.test.d.ts.map +0 -1
- package/lib/config/index.test.js +0 -177
- package/lib/config/index.test.js.map +0 -1
- package/lib/connection.test.d.ts +0 -2
- package/lib/connection.test.d.ts.map +0 -1
- package/lib/connection.test.js +0 -189
- package/lib/connection.test.js.map +0 -1
- package/lib/crud.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/installation/createSalesforceBackendInstallation.test.d.ts +0 -2
- package/lib/installation/createSalesforceBackendInstallation.test.d.ts.map +0 -1
- package/lib/installation/createSalesforceBackendInstallation.test.js +0 -55
- package/lib/installation/createSalesforceBackendInstallation.test.js.map +0 -1
- package/lib/installation/index.d.ts.map +0 -1
- package/lib/installation/index.js.map +0 -1
- package/lib/meta/actionTypeCollectionOptions.test.d.ts +0 -2
- package/lib/meta/actionTypeCollectionOptions.test.d.ts.map +0 -1
- package/lib/meta/actionTypeCollectionOptions.test.js +0 -192
- package/lib/meta/actionTypeCollectionOptions.test.js.map +0 -1
- package/lib/meta/convertMetaActionType.test.d.ts +0 -2
- package/lib/meta/convertMetaActionType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaActionType.test.js +0 -185
- package/lib/meta/convertMetaActionType.test.js.map +0 -1
- package/lib/meta/convertMetaObjectType.test.d.ts +0 -2
- package/lib/meta/convertMetaObjectType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaObjectType.test.js +0 -187
- package/lib/meta/convertMetaObjectType.test.js.map +0 -1
- package/lib/meta/convertMetaQueryFunctionType.test.d.ts +0 -2
- package/lib/meta/convertMetaQueryFunctionType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaQueryFunctionType.test.js +0 -58
- package/lib/meta/convertMetaQueryFunctionType.test.js.map +0 -1
- package/lib/meta/entityCollectionOptions.test.d.ts +0 -2
- package/lib/meta/entityCollectionOptions.test.d.ts.map +0 -1
- package/lib/meta/entityCollectionOptions.test.js +0 -120
- package/lib/meta/entityCollectionOptions.test.js.map +0 -1
- package/lib/meta/index.d.ts.map +0 -1
- package/lib/meta/index.js.map +0 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.test.d.ts +0 -2
- package/lib/meta/queryFunctionTypeCollectionOptions.test.d.ts.map +0 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.test.js +0 -71
- package/lib/meta/queryFunctionTypeCollectionOptions.test.js.map +0 -1
- package/lib/meta/synthesizeCrudActionTypes.test.d.ts +0 -2
- package/lib/meta/synthesizeCrudActionTypes.test.d.ts.map +0 -1
- package/lib/meta/synthesizeCrudActionTypes.test.js +0 -153
- package/lib/meta/synthesizeCrudActionTypes.test.js.map +0 -1
|
@@ -1,228 +1,121 @@
|
|
|
1
|
-
import { QueryClient } from "@tanstack/query-core";
|
|
2
|
-
import { queryCollectionOptions } from "@tanstack/query-db-collection";
|
|
3
1
|
import { classifySalesforceStandardAction } from "../standardActions.js";
|
|
4
|
-
import { salesforceCrudActionTypeId, salesforceCrudActionTypeName
|
|
5
|
-
import { convertSalesforceMetaActionType, convertSalesforceMetaStandardActionType
|
|
6
|
-
import { convertMetaNameQuery, matchesMetaNameQuery
|
|
2
|
+
import { salesforceCrudActionTypeId, salesforceCrudActionTypeName } from "../utils/ids.js";
|
|
3
|
+
import { convertSalesforceMetaActionType, convertSalesforceMetaStandardActionType } from "./convertMetaActionType.js";
|
|
4
|
+
import { convertMetaNameQuery, matchesMetaNameQuery } from "./convertMetaLoadSubsetOptions.js";
|
|
7
5
|
import { synthesizeSalesforceCrudActionTypes } from "./synthesizeCrudActionTypes.js";
|
|
6
|
+
import { QueryClient } from "@tanstack/query-core";
|
|
7
|
+
import { queryCollectionOptions } from "@tanstack/query-db-collection";
|
|
8
|
+
//#region src/meta/actionTypeCollectionOptions.ts
|
|
8
9
|
function normalizeFlowActionList(response) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (typeof response === "object" && response !== null && "actions" in response) {
|
|
13
|
-
return Array.isArray(response.actions) ? response.actions : [];
|
|
14
|
-
}
|
|
15
|
-
// Some Salesforce responses return a map of actionName -> url.
|
|
16
|
-
return Object.keys(response).map((name) => ({ name }));
|
|
10
|
+
if (Array.isArray(response)) return response;
|
|
11
|
+
if (typeof response === "object" && response !== null && "actions" in response) return Array.isArray(response.actions) ? response.actions : [];
|
|
12
|
+
return Object.keys(response).map((name) => ({ name }));
|
|
17
13
|
}
|
|
18
14
|
async function loadFlowActionDescribe(client, apiName) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
15
|
+
try {
|
|
16
|
+
return await client.describeFlowAction(apiName);
|
|
17
|
+
} catch {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
26
20
|
}
|
|
27
21
|
async function loadStandardActionDescribe(client, apiName) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
22
|
+
try {
|
|
23
|
+
return await client.describeStandardAction(apiName);
|
|
24
|
+
} catch {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
35
27
|
}
|
|
36
28
|
async function loadFlowActionDescribes(client, names) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// Older Salesforce orgs may not expose Composite API access.
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return Promise.all(names.map((name) => loadFlowActionDescribe(client, name)));
|
|
29
|
+
if (typeof client.describeFlowActions === "function") try {
|
|
30
|
+
return await client.describeFlowActions(names);
|
|
31
|
+
} catch {}
|
|
32
|
+
return Promise.all(names.map((name) => loadFlowActionDescribe(client, name)));
|
|
47
33
|
}
|
|
48
34
|
async function loadStandardActionDescribes(client, names) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
// Older Salesforce orgs may not expose Composite API access.
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return Promise.all(names.map((name) => loadStandardActionDescribe(client, name)));
|
|
35
|
+
if (typeof client.describeStandardActions === "function") try {
|
|
36
|
+
return await client.describeStandardActions(names);
|
|
37
|
+
} catch {}
|
|
38
|
+
return Promise.all(names.map((name) => loadStandardActionDescribe(client, name)));
|
|
59
39
|
}
|
|
60
40
|
async function loadSelectedActionDescribes(client, flowNames, standardNames) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
})),
|
|
73
|
-
]);
|
|
74
|
-
return [
|
|
75
|
-
combined.slice(0, flowNames.length),
|
|
76
|
-
combined.slice(flowNames.length),
|
|
77
|
-
];
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// Fall through to subsystem-specific compatibility methods.
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return Promise.all([
|
|
84
|
-
flowNames.length > 0
|
|
85
|
-
? loadFlowActionDescribes(client, flowNames)
|
|
86
|
-
: [],
|
|
87
|
-
standardNames.length > 0
|
|
88
|
-
? loadStandardActionDescribes(client, standardNames)
|
|
89
|
-
: [],
|
|
90
|
-
]);
|
|
41
|
+
if (typeof client.describeInvocableActions === "function") try {
|
|
42
|
+
const combined = await client.describeInvocableActions([...flowNames.map((apiName) => ({
|
|
43
|
+
kind: "flow",
|
|
44
|
+
apiName
|
|
45
|
+
})), ...standardNames.map((apiName) => ({
|
|
46
|
+
kind: "standard",
|
|
47
|
+
apiName
|
|
48
|
+
}))]);
|
|
49
|
+
return [combined.slice(0, flowNames.length), combined.slice(flowNames.length)];
|
|
50
|
+
} catch {}
|
|
51
|
+
return Promise.all([flowNames.length > 0 ? loadFlowActionDescribes(client, flowNames) : [], standardNames.length > 0 ? loadStandardActionDescribes(client, standardNames) : []]);
|
|
91
52
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
: matchingCandidates.slice(offset, limit === undefined
|
|
157
|
-
? undefined
|
|
158
|
-
: offset +
|
|
159
|
-
Math.max(0, Math.trunc(limit)));
|
|
160
|
-
const names = selectedCandidates
|
|
161
|
-
.filter((candidate) => candidate.kind === "flow")
|
|
162
|
-
.map((candidate) => candidate.name);
|
|
163
|
-
const standardNames = selectedCandidates
|
|
164
|
-
.filter((candidate) => candidate.kind ===
|
|
165
|
-
"standard")
|
|
166
|
-
.map((candidate) => candidate.name);
|
|
167
|
-
const describeCacheKey = JSON.stringify([
|
|
168
|
-
names,
|
|
169
|
-
standardNames,
|
|
170
|
-
]);
|
|
171
|
-
let cached = describeCache.get(describeCacheKey);
|
|
172
|
-
if (!cached) {
|
|
173
|
-
cached =
|
|
174
|
-
loadSelectedActionDescribes(opts.client, names, standardNames);
|
|
175
|
-
describeCache.set(describeCacheKey, cached);
|
|
176
|
-
}
|
|
177
|
-
const [describes, rawStandardDescribes,] = await cached;
|
|
178
|
-
const standardDescribes = rawStandardDescribes.filter((describe) => Boolean(describe) &&
|
|
179
|
-
(opts.standardActionTypeNames !==
|
|
180
|
-
undefined ||
|
|
181
|
-
classifySalesforceStandardAction(describe.name) === "action"));
|
|
182
|
-
const flowDescribes = describes.filter((describe) => Boolean(describe));
|
|
183
|
-
const sObjectNames = new Set((opts.crudActionTypes ?? []).map((selection) => selection.objectType));
|
|
184
|
-
for (const describe of [
|
|
185
|
-
...flowDescribes,
|
|
186
|
-
...standardDescribes,
|
|
187
|
-
]) {
|
|
188
|
-
for (const input of describe.inputs ?? []) {
|
|
189
|
-
const sObjectType = input.sobjectType ??
|
|
190
|
-
input.sObjectType;
|
|
191
|
-
if (input.type?.toLowerCase() ===
|
|
192
|
-
"sobject" &&
|
|
193
|
-
sObjectType) {
|
|
194
|
-
sObjectNames.add(sObjectType);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
const sObjectDescribes = new Map(await Promise.all([...sObjectNames].map(async (name) => [
|
|
199
|
-
name,
|
|
200
|
-
await opts.client.describeSObject(name),
|
|
201
|
-
])));
|
|
202
|
-
const flowActions = flowDescribes.map((describe) => convertSalesforceMetaActionType(describe, sObjectDescribes));
|
|
203
|
-
const standardActions = standardDescribes.map((describe) => convertSalesforceMetaStandardActionType(describe, sObjectDescribes));
|
|
204
|
-
const crudActions = (opts.crudActionTypes ?? []).flatMap((selection) => {
|
|
205
|
-
const describe = sObjectDescribes.get(selection.objectType);
|
|
206
|
-
return describe
|
|
207
|
-
? synthesizeSalesforceCrudActionTypes(describe).filter((action) => (!requestedNames ||
|
|
208
|
-
requestedNames.has(action.name)) &&
|
|
209
|
-
matchesMetaNameQuery(query, action) &&
|
|
210
|
-
selection.operations.some((operation) => action.id ===
|
|
211
|
-
salesforceCrudActionTypeId(operation, selection.objectType)))
|
|
212
|
-
: [];
|
|
213
|
-
});
|
|
214
|
-
const actions = new Map([...flowActions, ...standardActions].map((action) => [
|
|
215
|
-
action.name,
|
|
216
|
-
action,
|
|
217
|
-
]));
|
|
218
|
-
for (const action of crudActions) {
|
|
219
|
-
if (actions.has(action.name)) {
|
|
220
|
-
throw new Error(`Multiple Salesforce actions use ontology name "${action.name}".`);
|
|
221
|
-
}
|
|
222
|
-
actions.set(action.name, action);
|
|
223
|
-
}
|
|
224
|
-
return [...actions.values()];
|
|
225
|
-
},
|
|
226
|
-
});
|
|
53
|
+
function actionTypeCollectionOptions(opts) {
|
|
54
|
+
const describeCache = /* @__PURE__ */ new Map();
|
|
55
|
+
return queryCollectionOptions({
|
|
56
|
+
queryClient: opts.queryClient ?? new QueryClient(),
|
|
57
|
+
getKey: (row) => row.name,
|
|
58
|
+
queryKey: [
|
|
59
|
+
"salesforce",
|
|
60
|
+
"ontology",
|
|
61
|
+
"actionTypes",
|
|
62
|
+
opts.flowActionTypeNames ?? "all",
|
|
63
|
+
opts.standardActionTypeNames ?? [],
|
|
64
|
+
opts.crudActionTypes ?? []
|
|
65
|
+
],
|
|
66
|
+
syncMode: "on-demand",
|
|
67
|
+
queryFn: async (ctx) => {
|
|
68
|
+
const query = convertMetaNameQuery(ctx.meta?.loadSubsetOptions);
|
|
69
|
+
const requestedNames = query.type === "getBatch" ? new Set(query.names) : void 0;
|
|
70
|
+
const configuredCrudNames = new Set((opts.crudActionTypes ?? []).flatMap((selection) => selection.operations.map((operation) => salesforceCrudActionTypeName(operation, selection.objectType))));
|
|
71
|
+
const [flowSummaries, standardSummaries] = await Promise.all([opts.flowActionTypeNames || requestedNames ? Promise.resolve(void 0) : opts.client.listFlowActions().then(normalizeFlowActionList), opts.standardActionTypeNames || requestedNames ? Promise.resolve(void 0) : opts.client.listStandardActions().then(normalizeFlowActionList)]);
|
|
72
|
+
const candidates = [...(opts.flowActionTypeNames ?? (requestedNames ? [...requestedNames].filter((name) => !configuredCrudNames.has(name)) : flowSummaries?.map((summary) => summary.name) ?? [])).map((name) => ({
|
|
73
|
+
kind: "flow",
|
|
74
|
+
name,
|
|
75
|
+
displayName: flowSummaries?.find((summary) => summary.name === name)?.label ?? name
|
|
76
|
+
})), ...(opts.standardActionTypeNames ?? (requestedNames ? [...requestedNames].filter((name) => !configuredCrudNames.has(name)) : standardSummaries?.filter((summary) => classifySalesforceStandardAction(summary.name) === "action").map((summary) => summary.name) ?? [])).map((name) => ({
|
|
77
|
+
kind: "standard",
|
|
78
|
+
name,
|
|
79
|
+
displayName: standardSummaries?.find((summary) => summary.name === name)?.label ?? name
|
|
80
|
+
}))];
|
|
81
|
+
const matchingCandidates = query.type === "search" ? candidates.filter((candidate) => matchesMetaNameQuery(query, candidate)) : candidates;
|
|
82
|
+
matchingCandidates.sort((left, right) => left.name.localeCompare(right.name));
|
|
83
|
+
const offset = Math.max(0, Math.trunc(ctx.meta?.loadSubsetOptions?.offset ?? 0));
|
|
84
|
+
const limit = ctx.meta?.loadSubsetOptions?.limit;
|
|
85
|
+
const selectedCandidates = requestedNames ? matchingCandidates : matchingCandidates.slice(offset, limit === void 0 ? void 0 : offset + Math.max(0, Math.trunc(limit)));
|
|
86
|
+
const names = selectedCandidates.filter((candidate) => candidate.kind === "flow").map((candidate) => candidate.name);
|
|
87
|
+
const standardNames = selectedCandidates.filter((candidate) => candidate.kind === "standard").map((candidate) => candidate.name);
|
|
88
|
+
const describeCacheKey = JSON.stringify([names, standardNames]);
|
|
89
|
+
let cached = describeCache.get(describeCacheKey);
|
|
90
|
+
if (!cached) {
|
|
91
|
+
cached = loadSelectedActionDescribes(opts.client, names, standardNames);
|
|
92
|
+
describeCache.set(describeCacheKey, cached);
|
|
93
|
+
}
|
|
94
|
+
const [describes, rawStandardDescribes] = await cached;
|
|
95
|
+
const standardDescribes = rawStandardDescribes.filter((describe) => Boolean(describe) && (opts.standardActionTypeNames !== void 0 || classifySalesforceStandardAction(describe.name) === "action"));
|
|
96
|
+
const flowDescribes = describes.filter((describe) => Boolean(describe));
|
|
97
|
+
const sObjectNames = new Set((opts.crudActionTypes ?? []).map((selection) => selection.objectType));
|
|
98
|
+
for (const describe of [...flowDescribes, ...standardDescribes]) for (const input of describe.inputs ?? []) {
|
|
99
|
+
const sObjectType = input.sobjectType ?? input.sObjectType;
|
|
100
|
+
if (input.type?.toLowerCase() === "sobject" && sObjectType) sObjectNames.add(sObjectType);
|
|
101
|
+
}
|
|
102
|
+
const sObjectDescribes = new Map(await Promise.all([...sObjectNames].map(async (name) => [name, await opts.client.describeSObject(name)])));
|
|
103
|
+
const flowActions = flowDescribes.map((describe) => convertSalesforceMetaActionType(describe, sObjectDescribes));
|
|
104
|
+
const standardActions = standardDescribes.map((describe) => convertSalesforceMetaStandardActionType(describe, sObjectDescribes));
|
|
105
|
+
const crudActions = (opts.crudActionTypes ?? []).flatMap((selection) => {
|
|
106
|
+
const describe = sObjectDescribes.get(selection.objectType);
|
|
107
|
+
return describe ? synthesizeSalesforceCrudActionTypes(describe).filter((action) => (!requestedNames || requestedNames.has(action.name)) && matchesMetaNameQuery(query, action) && selection.operations.some((operation) => action.id === salesforceCrudActionTypeId(operation, selection.objectType))) : [];
|
|
108
|
+
});
|
|
109
|
+
const actions = new Map([...flowActions, ...standardActions].map((action) => [action.name, action]));
|
|
110
|
+
for (const action of crudActions) {
|
|
111
|
+
if (actions.has(action.name)) throw new Error(`Multiple Salesforce actions use ontology name "${action.name}".`);
|
|
112
|
+
actions.set(action.name, action);
|
|
113
|
+
}
|
|
114
|
+
return [...actions.values()];
|
|
115
|
+
}
|
|
116
|
+
});
|
|
227
117
|
}
|
|
118
|
+
//#endregion
|
|
119
|
+
export { actionTypeCollectionOptions };
|
|
120
|
+
|
|
228
121
|
//# sourceMappingURL=actionTypeCollectionOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionTypeCollectionOptions.js","sourceRoot":"","sources":["../../src/meta/actionTypeCollectionOptions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actionTypeCollectionOptions.js","names":[],"sources":["../../src/meta/actionTypeCollectionOptions.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/query-core\";\nimport { queryCollectionOptions } from \"@tanstack/query-db-collection\";\nimport { classifySalesforceStandardAction } from \"../standardActions.js\";\nimport { salesforceCrudActionTypeId, salesforceCrudActionTypeName } from \"../utils/ids.js\";\nimport {\n convertSalesforceMetaActionType,\n convertSalesforceMetaStandardActionType,\n} from \"./convertMetaActionType.js\";\nimport { convertMetaNameQuery, matchesMetaNameQuery } from \"./convertMetaLoadSubsetOptions.js\";\nimport { synthesizeSalesforceCrudActionTypes } from \"./synthesizeCrudActionTypes.js\";\nimport type { SalesforceCrudActionTypeSelection } from \"../crud.js\";\nimport type { MetaActionType, OntologyCollectionOptions } from \"@party-stack/ontology\";\nimport type {\n SalesforceClient,\n SalesforceInvocableActionDescribe,\n SalesforceInvocableActionListResponse,\n SalesforceInvocableActionSummary,\n SalesforceSObjectDescribe,\n} from \"@party-stack/salesforce-client\";\n\nexport interface ActionTypeCollectionOpts {\n client: SalesforceClient;\n flowActionTypeNames?: string[];\n standardActionTypeNames?: string[];\n crudActionTypes?: readonly SalesforceCrudActionTypeSelection[];\n queryClient?: QueryClient;\n}\n\nfunction normalizeFlowActionList(\n response: SalesforceInvocableActionListResponse\n): SalesforceInvocableActionSummary[] {\n if (Array.isArray(response)) {\n return response;\n }\n if (typeof response === \"object\" && response !== null && \"actions\" in response) {\n return Array.isArray(response.actions) ? response.actions : [];\n }\n // Some Salesforce responses return a map of actionName -> url.\n return Object.keys(response).map((name) => ({ name }));\n}\n\nasync function loadFlowActionDescribe(\n client: SalesforceClient,\n apiName: string\n): Promise<SalesforceInvocableActionDescribe | undefined> {\n try {\n return await client.describeFlowAction(apiName);\n } catch {\n // Skip inaccessible or non-autolaunched flows.\n return undefined;\n }\n}\n\nasync function loadStandardActionDescribe(\n client: SalesforceClient,\n apiName: string\n): Promise<SalesforceInvocableActionDescribe | undefined> {\n try {\n return await client.describeStandardAction(apiName);\n } catch {\n // Skip standard actions unavailable to this user.\n return undefined;\n }\n}\n\nasync function loadFlowActionDescribes(\n client: SalesforceClient,\n names: readonly string[]\n): Promise<Array<SalesforceInvocableActionDescribe | undefined>> {\n if (typeof client.describeFlowActions === \"function\") {\n try {\n return await client.describeFlowActions(names);\n } catch {\n // Older Salesforce orgs may not expose Composite API access.\n }\n }\n return Promise.all(names.map((name) => loadFlowActionDescribe(client, name)));\n}\n\nasync function loadStandardActionDescribes(\n client: SalesforceClient,\n names: readonly string[]\n): Promise<Array<SalesforceInvocableActionDescribe | undefined>> {\n if (typeof client.describeStandardActions === \"function\") {\n try {\n return await client.describeStandardActions(names);\n } catch {\n // Older Salesforce orgs may not expose Composite API access.\n }\n }\n return Promise.all(names.map((name) => loadStandardActionDescribe(client, name)));\n}\n\nasync function loadSelectedActionDescribes(\n client: SalesforceClient,\n flowNames: readonly string[],\n standardNames: readonly string[]\n): Promise<\n [\n Array<SalesforceInvocableActionDescribe | undefined>,\n Array<SalesforceInvocableActionDescribe | undefined>,\n ]\n> {\n if (typeof client.describeInvocableActions === \"function\") {\n try {\n const combined = await client.describeInvocableActions([\n ...flowNames.map((apiName) => ({\n kind: \"flow\" as const,\n apiName,\n })),\n ...standardNames.map((apiName) => ({\n kind: \"standard\" as const,\n apiName,\n })),\n ]);\n return [combined.slice(0, flowNames.length), combined.slice(flowNames.length)];\n } catch {\n // Fall through to subsystem-specific compatibility methods.\n }\n }\n return Promise.all([\n flowNames.length > 0 ? loadFlowActionDescribes(client, flowNames) : [],\n standardNames.length > 0 ? loadStandardActionDescribes(client, standardNames) : [],\n ]);\n}\n\nexport function actionTypeCollectionOptions(opts: ActionTypeCollectionOpts): OntologyCollectionOptions {\n const describeCache = new Map<string, ReturnType<typeof loadSelectedActionDescribes>>();\n return queryCollectionOptions<MetaActionType>({\n queryClient: opts.queryClient ?? new QueryClient(),\n getKey: (row) => row.name,\n queryKey: [\n \"salesforce\",\n \"ontology\",\n \"actionTypes\",\n opts.flowActionTypeNames ?? \"all\",\n opts.standardActionTypeNames ?? [],\n opts.crudActionTypes ?? [],\n ],\n syncMode: \"on-demand\",\n queryFn: async (ctx) => {\n const query = convertMetaNameQuery(ctx.meta?.loadSubsetOptions);\n const requestedNames = query.type === \"getBatch\" ? new Set(query.names) : undefined;\n const configuredCrudNames = new Set(\n (opts.crudActionTypes ?? []).flatMap((selection) =>\n selection.operations.map((operation) =>\n salesforceCrudActionTypeName(operation, selection.objectType)\n )\n )\n );\n const [flowSummaries, standardSummaries] = await Promise.all([\n opts.flowActionTypeNames || requestedNames\n ? Promise.resolve(undefined)\n : opts.client.listFlowActions().then(normalizeFlowActionList),\n opts.standardActionTypeNames || requestedNames\n ? Promise.resolve(undefined)\n : opts.client.listStandardActions().then(normalizeFlowActionList),\n ]);\n const candidates: Array<{\n kind: \"flow\" | \"standard\";\n name: string;\n displayName: string;\n }> = [\n ...(\n opts.flowActionTypeNames ??\n (requestedNames\n ? [...requestedNames].filter((name) => !configuredCrudNames.has(name))\n : (flowSummaries?.map((summary) => summary.name) ?? []))\n ).map((name) => ({\n kind: \"flow\" as const,\n name,\n displayName: flowSummaries?.find((summary) => summary.name === name)?.label ?? name,\n })),\n ...(\n opts.standardActionTypeNames ??\n (requestedNames\n ? [...requestedNames].filter((name) => !configuredCrudNames.has(name))\n : (standardSummaries\n ?.filter(\n (summary) => classifySalesforceStandardAction(summary.name) === \"action\"\n )\n .map((summary) => summary.name) ?? []))\n ).map((name) => ({\n kind: \"standard\" as const,\n name,\n displayName: standardSummaries?.find((summary) => summary.name === name)?.label ?? name,\n })),\n ];\n const matchingCandidates =\n query.type === \"search\"\n ? candidates.filter((candidate) => matchesMetaNameQuery(query, candidate))\n : candidates;\n matchingCandidates.sort((left, right) => left.name.localeCompare(right.name));\n const offset = Math.max(0, Math.trunc(ctx.meta?.loadSubsetOptions?.offset ?? 0));\n const limit = ctx.meta?.loadSubsetOptions?.limit;\n const selectedCandidates = requestedNames\n ? matchingCandidates\n : matchingCandidates.slice(\n offset,\n limit === undefined ? undefined : offset + Math.max(0, Math.trunc(limit))\n );\n const names = selectedCandidates\n .filter((candidate) => candidate.kind === \"flow\")\n .map((candidate) => candidate.name);\n const standardNames = selectedCandidates\n .filter((candidate) => candidate.kind === \"standard\")\n .map((candidate) => candidate.name);\n const describeCacheKey = JSON.stringify([names, standardNames]);\n let cached = describeCache.get(describeCacheKey);\n if (!cached) {\n cached = loadSelectedActionDescribes(opts.client, names, standardNames);\n describeCache.set(describeCacheKey, cached);\n }\n const [describes, rawStandardDescribes] = await cached;\n const standardDescribes = rawStandardDescribes.filter(\n (describe): describe is SalesforceInvocableActionDescribe =>\n Boolean(describe) &&\n (opts.standardActionTypeNames !== undefined ||\n classifySalesforceStandardAction(describe!.name) === \"action\")\n );\n const flowDescribes = describes.filter(\n (describe): describe is SalesforceInvocableActionDescribe => Boolean(describe)\n );\n const sObjectNames = new Set(\n (opts.crudActionTypes ?? []).map((selection) => selection.objectType)\n );\n for (const describe of [...flowDescribes, ...standardDescribes]) {\n for (const input of describe.inputs ?? []) {\n const sObjectType = input.sobjectType ?? input.sObjectType;\n if (input.type?.toLowerCase() === \"sobject\" && sObjectType) {\n sObjectNames.add(sObjectType);\n }\n }\n }\n const sObjectDescribes = new Map<string, SalesforceSObjectDescribe>(\n await Promise.all(\n [...sObjectNames].map(\n async (name) => [name, await opts.client.describeSObject(name)] as const\n )\n )\n );\n const flowActions = flowDescribes.map((describe) =>\n convertSalesforceMetaActionType(describe, sObjectDescribes)\n );\n const standardActions = standardDescribes.map((describe) =>\n convertSalesforceMetaStandardActionType(describe, sObjectDescribes)\n );\n const crudActions = (opts.crudActionTypes ?? []).flatMap((selection) => {\n const describe = sObjectDescribes.get(selection.objectType);\n return describe\n ? synthesizeSalesforceCrudActionTypes(describe).filter(\n (action) =>\n (!requestedNames || requestedNames.has(action.name)) &&\n matchesMetaNameQuery(query, action) &&\n selection.operations.some(\n (operation) =>\n action.id ===\n salesforceCrudActionTypeId(operation, selection.objectType)\n )\n )\n : [];\n });\n const actions = new Map(\n [...flowActions, ...standardActions].map((action) => [action.name, action])\n );\n for (const action of crudActions) {\n if (actions.has(action.name)) {\n throw new Error(`Multiple Salesforce actions use ontology name \"${action.name}\".`);\n }\n actions.set(action.name, action);\n }\n return [...actions.values()];\n },\n }) as unknown as OntologyCollectionOptions;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { SalesforceInvocableActionDescribe, SalesforceSObjectDescribe } from "@party-stack/salesforce-client";
|
|
2
|
+
import { MetaActionType } from "@party-stack/ontology";
|
|
3
|
+
//#region src/meta/convertMetaActionType.d.ts
|
|
3
4
|
export declare function convertSalesforceMetaActionType(describe: SalesforceInvocableActionDescribe, sObjectDescribes?: ReadonlyMap<string, SalesforceSObjectDescribe>): MetaActionType;
|
|
4
5
|
export declare function convertSalesforceMetaStandardActionType(describe: SalesforceInvocableActionDescribe, sObjectDescribes?: ReadonlyMap<string, SalesforceSObjectDescribe>): MetaActionType;
|
|
6
|
+
//#endregion
|
|
5
7
|
//# sourceMappingURL=convertMetaActionType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertMetaActionType.d.ts","
|
|
1
|
+
{"version":3,"file":"convertMetaActionType.d.ts","names":[],"sources":["../../src/meta/convertMetaActionType.ts"],"mappings":";;;wBAoDgB,gCACZ,UAAU,mCACV,mBAAkB,oBAAoB,6BACvC;wBASa,wCACZ,UAAU,mCACV,mBAAkB,oBAAoB,6BACvC"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { fromSalesforceLightningIconName, getSalesforceActionIconName, } from "@party-stack/icons-salesforce-lightning";
|
|
2
1
|
import { salesforceActionMeta } from "../actionMetadata.js";
|
|
3
|
-
import { salesforceFlowActionTypeId, salesforceStandardActionTypeId, toOntologyActionTypeName
|
|
2
|
+
import { salesforceFlowActionTypeId, salesforceStandardActionTypeId, toOntologyActionTypeName } from "../utils/ids.js";
|
|
4
3
|
import { convertSalesforceInvocableParameterType } from "./convertMetaTypeDef.js";
|
|
4
|
+
import { fromSalesforceLightningIconName, getSalesforceActionIconName } from "@party-stack/icons-salesforce-lightning";
|
|
5
|
+
//#region src/meta/convertMetaActionType.ts
|
|
5
6
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
function convertSalesforceInvocableMetaActionType(describe, id, kind, sObjectDescribes = new Map()) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
: undefined),
|
|
29
|
-
})),
|
|
30
|
-
logic: [],
|
|
31
|
-
};
|
|
7
|
+
* Convert an autolaunched Flow describe into a Party Stack action type.
|
|
8
|
+
* Local `logic` stays empty because execution remains native to Salesforce.
|
|
9
|
+
*/
|
|
10
|
+
function convertSalesforceInvocableMetaActionType(describe, id, kind, sObjectDescribes = /* @__PURE__ */ new Map()) {
|
|
11
|
+
return {
|
|
12
|
+
id,
|
|
13
|
+
meta: salesforceActionMeta({
|
|
14
|
+
kind,
|
|
15
|
+
apiName: describe.name
|
|
16
|
+
}),
|
|
17
|
+
name: toOntologyActionTypeName(describe.name),
|
|
18
|
+
displayName: describe.label ?? describe.name,
|
|
19
|
+
description: describe.description,
|
|
20
|
+
icon: fromSalesforceLightningIconName(getSalesforceActionIconName(describe.name)),
|
|
21
|
+
parameters: (describe.inputs ?? []).map((parameter) => ({
|
|
22
|
+
name: parameter.name,
|
|
23
|
+
displayName: parameter.label ?? parameter.name,
|
|
24
|
+
description: parameter.description,
|
|
25
|
+
type: convertSalesforceInvocableParameterType(parameter, parameter.sobjectType ?? parameter.sObjectType ? sObjectDescribes.get(parameter.sobjectType ?? parameter.sObjectType) : void 0)
|
|
26
|
+
})),
|
|
27
|
+
logic: []
|
|
28
|
+
};
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
function convertSalesforceMetaActionType(describe, sObjectDescribes = /* @__PURE__ */ new Map()) {
|
|
31
|
+
return convertSalesforceInvocableMetaActionType(describe, salesforceFlowActionTypeId(describe.name), "flow", sObjectDescribes);
|
|
35
32
|
}
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
function convertSalesforceMetaStandardActionType(describe, sObjectDescribes = /* @__PURE__ */ new Map()) {
|
|
34
|
+
return convertSalesforceInvocableMetaActionType(describe, salesforceStandardActionTypeId(describe.name), "standard", sObjectDescribes);
|
|
38
35
|
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { convertSalesforceMetaActionType, convertSalesforceMetaStandardActionType };
|
|
38
|
+
|
|
39
39
|
//# sourceMappingURL=convertMetaActionType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertMetaActionType.js","
|
|
1
|
+
{"version":3,"file":"convertMetaActionType.js","names":[],"sources":["../../src/meta/convertMetaActionType.ts"],"sourcesContent":["import {\n fromSalesforceLightningIconName,\n getSalesforceActionIconName,\n} from \"@party-stack/icons-salesforce-lightning\";\nimport { salesforceActionMeta } from \"../actionMetadata.js\";\nimport {\n salesforceFlowActionTypeId,\n salesforceStandardActionTypeId,\n toOntologyActionTypeName,\n} from \"../utils/ids.js\";\nimport { convertSalesforceInvocableParameterType } from \"./convertMetaTypeDef.js\";\nimport type { MetaActionType } from \"@party-stack/ontology\";\nimport type {\n SalesforceInvocableActionDescribe,\n SalesforceSObjectDescribe,\n} from \"@party-stack/salesforce-client\";\n\n/**\n * Convert an autolaunched Flow describe into a Party Stack action type.\n * Local `logic` stays empty because execution remains native to Salesforce.\n */\nfunction convertSalesforceInvocableMetaActionType(\n describe: SalesforceInvocableActionDescribe,\n id: string,\n kind: \"flow\" | \"standard\",\n sObjectDescribes: ReadonlyMap<string, SalesforceSObjectDescribe> = new Map()\n): MetaActionType {\n return {\n id,\n meta: salesforceActionMeta({\n kind,\n apiName: describe.name,\n }),\n name: toOntologyActionTypeName(describe.name),\n displayName: describe.label ?? describe.name,\n description: describe.description,\n icon: fromSalesforceLightningIconName(getSalesforceActionIconName(describe.name)),\n parameters: (describe.inputs ?? []).map((parameter) => ({\n name: parameter.name,\n displayName: parameter.label ?? parameter.name,\n description: parameter.description,\n type: convertSalesforceInvocableParameterType(\n parameter,\n (parameter.sobjectType ?? parameter.sObjectType)\n ? sObjectDescribes.get((parameter.sobjectType ?? parameter.sObjectType)!)\n : undefined\n ),\n })),\n logic: [],\n };\n}\n\nexport function convertSalesforceMetaActionType(\n describe: SalesforceInvocableActionDescribe,\n sObjectDescribes: ReadonlyMap<string, SalesforceSObjectDescribe> = new Map()\n): MetaActionType {\n return convertSalesforceInvocableMetaActionType(\n describe,\n salesforceFlowActionTypeId(describe.name),\n \"flow\",\n sObjectDescribes\n );\n}\n\nexport function convertSalesforceMetaStandardActionType(\n describe: SalesforceInvocableActionDescribe,\n sObjectDescribes: ReadonlyMap<string, SalesforceSObjectDescribe> = new Map()\n): MetaActionType {\n return convertSalesforceInvocableMetaActionType(\n describe,\n salesforceStandardActionTypeId(describe.name),\n \"standard\",\n sObjectDescribes\n );\n}\n"],"mappings":";;;;;;;;;AAqBA,SAAS,yCACL,UACA,IACA,MACA,mCAAmE,IAAI,IAAI,GAC7D;CACd,OAAO;EACH;EACA,MAAM,qBAAqB;GACvB;GACA,SAAS,SAAS;EACtB,CAAC;EACD,MAAM,yBAAyB,SAAS,IAAI;EAC5C,aAAa,SAAS,SAAS,SAAS;EACxC,aAAa,SAAS;EACtB,MAAM,gCAAgC,4BAA4B,SAAS,IAAI,CAAC;EAChF,aAAa,SAAS,UAAU,CAAC,EAAA,CAAG,KAAK,eAAe;GACpD,MAAM,UAAU;GAChB,aAAa,UAAU,SAAS,UAAU;GAC1C,aAAa,UAAU;GACvB,MAAM,wCACF,WACC,UAAU,eAAe,UAAU,cAC9B,iBAAiB,IAAK,UAAU,eAAe,UAAU,WAAa,IACtE,KAAA,CACV;EACJ,EAAE;EACF,OAAO,CAAC;CACZ;AACJ;AAEA,SAAgB,gCACZ,UACA,mCAAmE,IAAI,IAAI,GAC7D;CACd,OAAO,yCACH,UACA,2BAA2B,SAAS,IAAI,GACxC,QACA,gBACJ;AACJ;AAEA,SAAgB,wCACZ,UACA,mCAAmE,IAAI,IAAI,GAC7D;CACd,OAAO,yCACH,UACA,+BAA+B,SAAS,IAAI,GAC5C,YACA,gBACJ;AACJ"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { SalesforceSObjectDescribe } from "@party-stack/salesforce-client";
|
|
2
|
+
import { MetaLinkType } from "@party-stack/ontology";
|
|
3
|
+
//#region src/meta/convertMetaLinkType.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Create Party Stack link types for single-target Salesforce reference fields.
|
|
5
6
|
* Polymorphic references (multiple referenceTo values) are intentionally omitted
|
|
6
7
|
* and remain scalar ID properties on the source object.
|
|
7
8
|
*/
|
|
8
9
|
export declare function convertSalesforceMetaLinkTypes(describes: SalesforceSObjectDescribe[]): MetaLinkType[];
|
|
10
|
+
//#endregion
|
|
9
11
|
//# sourceMappingURL=convertMetaLinkType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertMetaLinkType.d.ts","
|
|
1
|
+
{"version":3,"file":"convertMetaLinkType.d.ts","names":[],"sources":["../../src/meta/convertMetaLinkType.ts"],"mappings":";;;;;;;;wBASgB,+BAA+B,WAAW,8BAA8B"}
|