@party-stack/salesforce-ontology 0.4.2 → 0.5.0
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 +61 -68
- package/lib/adapter/backend.d.ts +15 -0
- package/lib/adapter/backend.d.ts.map +1 -0
- package/lib/adapter/backend.js +94 -0
- package/lib/adapter/backend.js.map +1 -0
- package/lib/adapter/index.d.ts +2 -4
- package/lib/adapter/index.js +2 -4
- package/lib/adapter/makeSalesforceOntologyBackend.d.ts +12 -0
- package/lib/adapter/makeSalesforceOntologyBackend.d.ts.map +1 -0
- package/lib/adapter/makeSalesforceOntologyBackend.js +186 -0
- package/lib/adapter/makeSalesforceOntologyBackend.js.map +1 -0
- package/lib/adapter/salesforceCodec.d.ts +1 -1
- package/lib/adapter/salesforceCodec.js.map +1 -1
- package/lib/adapter/salesforceObjectSearch.d.ts +15 -0
- package/lib/adapter/salesforceObjectSearch.d.ts.map +1 -0
- package/lib/adapter/salesforceObjectSearch.js +65 -0
- package/lib/adapter/salesforceObjectSearch.js.map +1 -0
- package/lib/adapter/soql.d.ts +17 -0
- package/lib/adapter/soql.d.ts.map +1 -0
- package/lib/adapter/soql.js +65 -0
- package/lib/adapter/soql.js.map +1 -0
- package/lib/config/index.d.ts +10 -7
- package/lib/config/index.d.ts.map +1 -1
- package/lib/config/index.js +63 -44
- package/lib/config/index.js.map +1 -1
- package/lib/connect.d.ts +18 -0
- package/lib/connect.d.ts.map +1 -0
- package/lib/connect.js +32 -0
- package/lib/connect.js.map +1 -0
- package/lib/connectionOptions.d.ts +10 -0
- package/lib/connectionOptions.d.ts.map +1 -0
- package/lib/connectionOptions.js +1 -0
- package/lib/index.d.ts +4 -7
- package/lib/index.js +3 -7
- package/lib/meta/{createSalesforceMetaOntologyBackendAdapter.d.ts → backend.d.ts} +5 -5
- package/lib/meta/backend.d.ts.map +1 -0
- package/lib/meta/backend.js +86 -0
- package/lib/meta/backend.js.map +1 -0
- package/lib/meta/convertMetaActionType.d.ts +3 -3
- package/lib/meta/convertMetaActionType.d.ts.map +1 -1
- package/lib/meta/convertMetaActionType.js.map +1 -1
- package/lib/meta/convertMetaLinkType.d.ts +2 -2
- package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
- package/lib/meta/convertMetaLinkType.js.map +1 -1
- package/lib/meta/convertMetaLoadSubsetOptions.d.ts +2 -2
- package/lib/meta/convertMetaLoadSubsetOptions.d.ts.map +1 -1
- package/lib/meta/convertMetaLoadSubsetOptions.js +33 -33
- package/lib/meta/convertMetaLoadSubsetOptions.js.map +1 -1
- package/lib/meta/convertMetaObjectType.d.ts +2 -2
- package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
- package/lib/meta/convertMetaObjectType.js.map +1 -1
- package/lib/meta/convertMetaQueryFunctionType.d.ts +1 -1
- package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
- package/lib/meta/convertMetaTypeDef.d.ts +1 -1
- package/lib/meta/convertMetaTypeDef.js.map +1 -1
- package/lib/meta/index.d.ts +2 -4
- package/lib/meta/index.js +3 -5
- package/lib/meta/loadActions.d.ts +15 -0
- package/lib/meta/loadActions.d.ts.map +1 -0
- package/lib/meta/loadActions.js +103 -0
- package/lib/meta/loadActions.js.map +1 -0
- package/lib/meta/loadEntities.d.ts +5 -0
- package/lib/meta/loadEntities.d.ts.map +1 -0
- package/lib/meta/loadEntities.js +14 -0
- package/lib/meta/loadEntities.js.map +1 -0
- package/lib/meta/loadQueryFunctions.d.ts +11 -0
- package/lib/meta/loadQueryFunctions.d.ts.map +1 -0
- package/lib/meta/loadQueryFunctions.js +43 -0
- package/lib/meta/loadQueryFunctions.js.map +1 -0
- package/lib/meta/synthesizeCrudActionTypes.d.ts +2 -2
- package/lib/meta/synthesizeCrudActionTypes.d.ts.map +1 -1
- package/lib/meta/synthesizeCrudActionTypes.js.map +1 -1
- package/lib/serviceConnector.d.ts +8 -0
- package/lib/serviceConnector.d.ts.map +1 -0
- package/lib/serviceConnector.js +125 -0
- package/lib/serviceConnector.js.map +1 -0
- package/lib/utils/AsyncIterable.d.ts +1 -1
- package/lib/utils/AsyncIterable.d.ts.map +1 -1
- package/lib/utils/AsyncIterable.js +11 -0
- package/lib/utils/AsyncIterable.js.map +1 -1
- package/package.json +15 -19
- package/lib/adapter/convertLoadSubsetOptions.d.ts +0 -20
- package/lib/adapter/convertLoadSubsetOptions.d.ts.map +0 -1
- package/lib/adapter/convertLoadSubsetOptions.js +0 -127
- package/lib/adapter/convertLoadSubsetOptions.js.map +0 -1
- package/lib/adapter/createSalesforceOntologyBackendAdapter.d.ts +0 -22
- package/lib/adapter/createSalesforceOntologyBackendAdapter.d.ts.map +0 -1
- package/lib/adapter/createSalesforceOntologyBackendAdapter.js +0 -139
- package/lib/adapter/createSalesforceOntologyBackendAdapter.js.map +0 -1
- package/lib/adapter/objectCollectionOptions.d.ts +0 -36
- package/lib/adapter/objectCollectionOptions.d.ts.map +0 -1
- package/lib/adapter/objectCollectionOptions.js +0 -204
- package/lib/adapter/objectCollectionOptions.js.map +0 -1
- package/lib/connection.d.ts +0 -45
- package/lib/connection.d.ts.map +0 -1
- package/lib/connection.js +0 -258
- package/lib/connection.js.map +0 -1
- package/lib/installation/createSalesforceBackendInstallation.d.ts +0 -37
- package/lib/installation/createSalesforceBackendInstallation.d.ts.map +0 -1
- package/lib/installation/createSalesforceBackendInstallation.js +0 -84
- package/lib/installation/createSalesforceBackendInstallation.js.map +0 -1
- package/lib/installation/index.d.ts +0 -2
- package/lib/installation/index.js +0 -1
- package/lib/meta/actionTypeCollectionOptions.d.ts +0 -15
- package/lib/meta/actionTypeCollectionOptions.d.ts.map +0 -1
- package/lib/meta/actionTypeCollectionOptions.js +0 -121
- package/lib/meta/actionTypeCollectionOptions.js.map +0 -1
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.d.ts.map +0 -1
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.js +0 -42
- package/lib/meta/createSalesforceMetaOntologyBackendAdapter.js.map +0 -1
- package/lib/meta/entityCollectionOptions.d.ts +0 -16
- package/lib/meta/entityCollectionOptions.d.ts.map +0 -1
- package/lib/meta/entityCollectionOptions.js +0 -81
- package/lib/meta/entityCollectionOptions.js.map +0 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +0 -11
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +0 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.js +0 -59
- package/lib/meta/queryFunctionTypeCollectionOptions.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSalesforceMetaOntologyBackendAdapter.d.ts","names":[],"sources":["../../src/meta/createSalesforceMetaOntologyBackendAdapter.ts"],"mappings":";;;;iBAYiB;EACb,QAAQ;;;;;EAKR;;EAEA;;EAEA;;EAEA;;EAEA,2BAA2B;;wBAGf,2CACZ,MAAM,iDACP"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { actionTypeCollectionOptions } from "./actionTypeCollectionOptions.js";
|
|
2
|
-
import { linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions } from "./entityCollectionOptions.js";
|
|
3
|
-
import { queryFunctionTypeCollectionOptions } from "./queryFunctionTypeCollectionOptions.js";
|
|
4
|
-
import { notImplemented } from "@bobbyfidz/panic";
|
|
5
|
-
//#region src/meta/createSalesforceMetaOntologyBackendAdapter.ts
|
|
6
|
-
function createSalesforceMetaOntologyBackendAdapter(opts) {
|
|
7
|
-
const entityOptions = {
|
|
8
|
-
client: opts.client,
|
|
9
|
-
objectTypeNames: opts.objectTypeNames
|
|
10
|
-
};
|
|
11
|
-
return {
|
|
12
|
-
name: "salesforce-metadata",
|
|
13
|
-
getCollectionOptions: (objectType) => {
|
|
14
|
-
switch (objectType) {
|
|
15
|
-
case "ObjectType": return objectTypeCollectionOptions(entityOptions);
|
|
16
|
-
case "ValueType": return valueTypeCollectionOptions();
|
|
17
|
-
case "LinkType": return linkTypeCollectionOptions(entityOptions);
|
|
18
|
-
case "ActionType": return actionTypeCollectionOptions({
|
|
19
|
-
client: opts.client,
|
|
20
|
-
flowActionTypeNames: opts.flowActionTypeNames,
|
|
21
|
-
standardActionTypeNames: opts.standardActionTypeNames,
|
|
22
|
-
crudActionTypes: opts.crudActionTypes
|
|
23
|
-
});
|
|
24
|
-
case "QueryFunctionType": return queryFunctionTypeCollectionOptions({
|
|
25
|
-
client: opts.client,
|
|
26
|
-
standardQueryFunctionTypeNames: opts.standardQueryFunctionTypeNames
|
|
27
|
-
});
|
|
28
|
-
default: throw new Error(`Unsupported Salesforce metadata object type "${objectType}".`);
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
applyAction: () => {
|
|
32
|
-
notImplemented();
|
|
33
|
-
},
|
|
34
|
-
runQueryFunction: () => {
|
|
35
|
-
notImplemented();
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
//#endregion
|
|
40
|
-
export { createSalesforceMetaOntologyBackendAdapter };
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=createSalesforceMetaOntologyBackendAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSalesforceMetaOntologyBackendAdapter.js","names":[],"sources":["../../src/meta/createSalesforceMetaOntologyBackendAdapter.ts"],"sourcesContent":["import { notImplemented } from \"@bobbyfidz/panic\";\nimport { actionTypeCollectionOptions } from \"./actionTypeCollectionOptions.js\";\nimport {\n linkTypeCollectionOptions,\n objectTypeCollectionOptions,\n valueTypeCollectionOptions,\n} from \"./entityCollectionOptions.js\";\nimport { queryFunctionTypeCollectionOptions } from \"./queryFunctionTypeCollectionOptions.js\";\nimport type { SalesforceCrudActionTypeSelection } from \"../crud.js\";\nimport type { OntologyBackendAdapter } from \"@party-stack/ontology\";\nimport type { SalesforceClient } from \"@party-stack/salesforce-client\";\n\nexport interface CreateSalesforceMetaOntologyBackendAdapterOpts {\n client: SalesforceClient;\n /**\n * Optional allowlist of sObject API names for metadata loading.\n * Useful for scoped form pulls without describing the entire org.\n */\n objectTypeNames?: string[];\n /** Optional allowlist of autolaunched Flow API names. */\n flowActionTypeNames?: string[];\n /** Standard Salesforce operations modeled as mutating actions. */\n standardActionTypeNames?: string[];\n /** Standard Salesforce operations modeled as query functions. */\n standardQueryFunctionTypeNames?: string[];\n /** Explicit CRUD actions to synthesize from sObject describe metadata. */\n crudActionTypes?: readonly SalesforceCrudActionTypeSelection[];\n}\n\nexport function createSalesforceMetaOntologyBackendAdapter(\n opts: CreateSalesforceMetaOntologyBackendAdapterOpts\n): OntologyBackendAdapter {\n const entityOptions = {\n client: opts.client,\n objectTypeNames: opts.objectTypeNames,\n };\n\n return {\n name: \"salesforce-metadata\",\n getCollectionOptions: (objectType: string) => {\n switch (objectType) {\n case \"ObjectType\":\n return objectTypeCollectionOptions(entityOptions);\n case \"ValueType\":\n return valueTypeCollectionOptions();\n case \"LinkType\":\n return linkTypeCollectionOptions(entityOptions);\n case \"ActionType\":\n return actionTypeCollectionOptions({\n client: opts.client,\n flowActionTypeNames: opts.flowActionTypeNames,\n standardActionTypeNames: opts.standardActionTypeNames,\n crudActionTypes: opts.crudActionTypes,\n });\n case \"QueryFunctionType\":\n return queryFunctionTypeCollectionOptions({\n client: opts.client,\n standardQueryFunctionTypeNames: opts.standardQueryFunctionTypeNames,\n });\n default:\n throw new Error(`Unsupported Salesforce metadata object type \"${objectType}\".`);\n }\n },\n applyAction: () => {\n notImplemented();\n },\n runQueryFunction: () => {\n notImplemented();\n },\n };\n}\n"],"mappings":";;;;;AA6BA,SAAgB,2CACZ,MACsB;CACtB,MAAM,gBAAgB;EAClB,QAAQ,KAAK;EACb,iBAAiB,KAAK;CAC1B;CAEA,OAAO;EACH,MAAM;EACN,uBAAuB,eAAuB;GAC1C,QAAQ,YAAR;IACI,KAAK,cACD,OAAO,4BAA4B,aAAa;IACpD,KAAK,aACD,OAAO,2BAA2B;IACtC,KAAK,YACD,OAAO,0BAA0B,aAAa;IAClD,KAAK,cACD,OAAO,4BAA4B;KAC/B,QAAQ,KAAK;KACb,qBAAqB,KAAK;KAC1B,yBAAyB,KAAK;KAC9B,iBAAiB,KAAK;IAC1B,CAAC;IACL,KAAK,qBACD,OAAO,mCAAmC;KACtC,QAAQ,KAAK;KACb,gCAAgC,KAAK;IACzC,CAAC;IACL,SACI,MAAM,IAAI,MAAM,gDAAgD,WAAW,GAAG;GACtF;EACJ;EACA,mBAAmB;GACf,eAAe;EACnB;EACA,wBAAwB;GACpB,eAAe;EACnB;CACJ;AACJ"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { SalesforceClient } from "@party-stack/salesforce-client";
|
|
2
|
-
import { OntologyCollectionOptions } from "@party-stack/ontology";
|
|
3
|
-
//#region src/meta/entityCollectionOptions.d.ts
|
|
4
|
-
export interface MetaEntityStoreOpts {
|
|
5
|
-
client: SalesforceClient;
|
|
6
|
-
/**
|
|
7
|
-
* Optional allowlist of sObject API names. When omitted, all queryable
|
|
8
|
-
* sObjects from the global describe are loaded.
|
|
9
|
-
*/
|
|
10
|
-
objectTypeNames?: string[];
|
|
11
|
-
}
|
|
12
|
-
export declare function objectTypeCollectionOptions(opts: MetaEntityStoreOpts): OntologyCollectionOptions;
|
|
13
|
-
export declare function valueTypeCollectionOptions(): OntologyCollectionOptions;
|
|
14
|
-
export declare function linkTypeCollectionOptions(opts: MetaEntityStoreOpts): OntologyCollectionOptions;
|
|
15
|
-
//#endregion
|
|
16
|
-
//# sourceMappingURL=entityCollectionOptions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entityCollectionOptions.d.ts","names":[],"sources":["../../src/meta/entityCollectionOptions.ts"],"mappings":";;;iBASiB;EACb,QAAQ;;;;;EAKR;;wBAmBY,4BAA4B,MAAM,sBAAsB;wBA6BxD,8BAA8B;wBAU9B,0BAA0B,MAAM,sBAAsB"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { salesforceObjectTypeId } from "../utils/ids.js";
|
|
2
|
-
import { convertMetaNameQuery } from "./convertMetaLoadSubsetOptions.js";
|
|
3
|
-
import { convertSalesforceMetaLinkTypes } from "./convertMetaLinkType.js";
|
|
4
|
-
import { convertSalesforceMetaObjectType } from "./convertMetaObjectType.js";
|
|
5
|
-
import { QueryClient } from "@tanstack/query-core";
|
|
6
|
-
import { queryCollectionOptions } from "@tanstack/query-db-collection";
|
|
7
|
-
//#region src/meta/entityCollectionOptions.ts
|
|
8
|
-
async function describeSObjects(client, names) {
|
|
9
|
-
return (await Promise.all([...new Set(names)].map(async (name) => {
|
|
10
|
-
try {
|
|
11
|
-
return await client.describeSObject(name);
|
|
12
|
-
} catch {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
}))).filter((describe) => Boolean(describe));
|
|
16
|
-
}
|
|
17
|
-
function objectTypeCollectionOptions(opts) {
|
|
18
|
-
return queryCollectionOptions({
|
|
19
|
-
queryClient: new QueryClient(),
|
|
20
|
-
getKey: (row) => row.name,
|
|
21
|
-
queryKey: [
|
|
22
|
-
"salesforce",
|
|
23
|
-
"ontology",
|
|
24
|
-
"objectTypes",
|
|
25
|
-
opts.objectTypeNames ?? "all"
|
|
26
|
-
],
|
|
27
|
-
syncMode: "on-demand",
|
|
28
|
-
queryFn: async (ctx) => {
|
|
29
|
-
const query = convertMetaNameQuery(ctx.meta?.loadSubsetOptions);
|
|
30
|
-
if (query.type === "getBatch") {
|
|
31
|
-
const allowlist = opts.objectTypeNames ? new Set(opts.objectTypeNames) : void 0;
|
|
32
|
-
const names = allowlist ? query.names.filter((name) => allowlist.has(name)) : query.names;
|
|
33
|
-
return (await describeSObjects(opts.client, names)).map(convertSalesforceMetaObjectType);
|
|
34
|
-
}
|
|
35
|
-
const global = await opts.client.describeGlobal();
|
|
36
|
-
const allowlist = opts.objectTypeNames ? new Set(opts.objectTypeNames) : void 0;
|
|
37
|
-
return global.sobjects.filter((sObject) => sObject.queryable && (!allowlist || allowlist.has(sObject.name))).map((sObject) => ({
|
|
38
|
-
id: salesforceObjectTypeId(sObject.name),
|
|
39
|
-
name: sObject.name,
|
|
40
|
-
displayName: sObject.label,
|
|
41
|
-
pluralDisplayName: sObject.labelPlural,
|
|
42
|
-
primaryKey: "Id",
|
|
43
|
-
properties: []
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function valueTypeCollectionOptions() {
|
|
49
|
-
return queryCollectionOptions({
|
|
50
|
-
queryClient: new QueryClient(),
|
|
51
|
-
getKey: (row) => row.name,
|
|
52
|
-
queryKey: [
|
|
53
|
-
"salesforce",
|
|
54
|
-
"ontology",
|
|
55
|
-
"valueTypes"
|
|
56
|
-
],
|
|
57
|
-
syncMode: "on-demand",
|
|
58
|
-
queryFn: () => Promise.resolve([])
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function linkTypeCollectionOptions(opts) {
|
|
62
|
-
return queryCollectionOptions({
|
|
63
|
-
queryClient: new QueryClient(),
|
|
64
|
-
getKey: (row) => row.id,
|
|
65
|
-
queryKey: [
|
|
66
|
-
"salesforce",
|
|
67
|
-
"ontology",
|
|
68
|
-
"linkTypes",
|
|
69
|
-
opts.objectTypeNames ?? []
|
|
70
|
-
],
|
|
71
|
-
syncMode: "on-demand",
|
|
72
|
-
queryFn: async () => {
|
|
73
|
-
if (!opts.objectTypeNames?.length) return [];
|
|
74
|
-
return convertSalesforceMetaLinkTypes(await describeSObjects(opts.client, opts.objectTypeNames));
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
//#endregion
|
|
79
|
-
export { linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions };
|
|
80
|
-
|
|
81
|
-
//# sourceMappingURL=entityCollectionOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entityCollectionOptions.js","names":[],"sources":["../../src/meta/entityCollectionOptions.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/query-core\";\nimport { queryCollectionOptions } from \"@tanstack/query-db-collection\";\nimport { salesforceObjectTypeId } from \"../utils/ids.js\";\nimport { convertSalesforceMetaLinkTypes } from \"./convertMetaLinkType.js\";\nimport { convertMetaNameQuery } from \"./convertMetaLoadSubsetOptions.js\";\nimport { convertSalesforceMetaObjectType } from \"./convertMetaObjectType.js\";\nimport type { MetaObjectType, OntologyCollectionOptions } from \"@party-stack/ontology\";\nimport type { SalesforceClient, SalesforceSObjectDescribe } from \"@party-stack/salesforce-client\";\n\nexport interface MetaEntityStoreOpts {\n client: SalesforceClient;\n /**\n * Optional allowlist of sObject API names. When omitted, all queryable\n * sObjects from the global describe are loaded.\n */\n objectTypeNames?: string[];\n}\n\nasync function describeSObjects(\n client: SalesforceClient,\n names: readonly string[]\n): Promise<SalesforceSObjectDescribe[]> {\n const describes = await Promise.all(\n [...new Set(names)].map(async (name) => {\n try {\n return await client.describeSObject(name);\n } catch {\n return undefined;\n }\n })\n );\n return describes.filter((describe): describe is SalesforceSObjectDescribe => Boolean(describe));\n}\n\nexport function objectTypeCollectionOptions(opts: MetaEntityStoreOpts): OntologyCollectionOptions {\n return queryCollectionOptions<MetaObjectType>({\n queryClient: new QueryClient(),\n getKey: (row) => row.name,\n queryKey: [\"salesforce\", \"ontology\", \"objectTypes\", opts.objectTypeNames ?? \"all\"],\n syncMode: \"on-demand\",\n queryFn: async (ctx) => {\n const query = convertMetaNameQuery(ctx.meta?.loadSubsetOptions);\n if (query.type === \"getBatch\") {\n const allowlist = opts.objectTypeNames ? new Set(opts.objectTypeNames) : undefined;\n const names = allowlist ? query.names.filter((name) => allowlist.has(name)) : query.names;\n return (await describeSObjects(opts.client, names)).map(convertSalesforceMetaObjectType);\n }\n const global = await opts.client.describeGlobal();\n const allowlist = opts.objectTypeNames ? new Set(opts.objectTypeNames) : undefined;\n return global.sobjects\n .filter((sObject) => sObject.queryable && (!allowlist || allowlist.has(sObject.name)))\n .map((sObject): MetaObjectType => ({\n id: salesforceObjectTypeId(sObject.name),\n name: sObject.name,\n displayName: sObject.label,\n pluralDisplayName: sObject.labelPlural,\n primaryKey: \"Id\",\n properties: [],\n }));\n },\n }) as unknown as OntologyCollectionOptions;\n}\n\nexport function valueTypeCollectionOptions(): OntologyCollectionOptions {\n return queryCollectionOptions({\n queryClient: new QueryClient(),\n getKey: (row: { name: string }) => row.name,\n queryKey: [\"salesforce\", \"ontology\", \"valueTypes\"],\n syncMode: \"on-demand\",\n queryFn: () => Promise.resolve([]),\n }) as unknown as OntologyCollectionOptions;\n}\n\nexport function linkTypeCollectionOptions(opts: MetaEntityStoreOpts): OntologyCollectionOptions {\n return queryCollectionOptions({\n queryClient: new QueryClient(),\n getKey: (row: { id: string }) => row.id,\n queryKey: [\"salesforce\", \"ontology\", \"linkTypes\", opts.objectTypeNames ?? []],\n syncMode: \"on-demand\",\n queryFn: async () => {\n if (!opts.objectTypeNames?.length) return [];\n return convertSalesforceMetaLinkTypes(await describeSObjects(opts.client, opts.objectTypeNames));\n },\n }) as unknown as OntologyCollectionOptions;\n}\n"],"mappings":";;;;;;;AAkBA,eAAe,iBACX,QACA,OACoC;CAUpC,QAAO,MATiB,QAAQ,IAC5B,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,SAAS;EACpC,IAAI;GACA,OAAO,MAAM,OAAO,gBAAgB,IAAI;EAC5C,QAAQ;GACJ;EACJ;CACJ,CAAC,CACL,EAAA,CACiB,QAAQ,aAAoD,QAAQ,QAAQ,CAAC;AAClG;AAEA,SAAgB,4BAA4B,MAAsD;CAC9F,OAAO,uBAAuC;EAC1C,aAAa,IAAI,YAAY;EAC7B,SAAS,QAAQ,IAAI;EACrB,UAAU;GAAC;GAAc;GAAY;GAAe,KAAK,mBAAmB;EAAK;EACjF,UAAU;EACV,SAAS,OAAO,QAAQ;GACpB,MAAM,QAAQ,qBAAqB,IAAI,MAAM,iBAAiB;GAC9D,IAAI,MAAM,SAAS,YAAY;IAC3B,MAAM,YAAY,KAAK,kBAAkB,IAAI,IAAI,KAAK,eAAe,IAAI,KAAA;IACzE,MAAM,QAAQ,YAAY,MAAM,MAAM,QAAQ,SAAS,UAAU,IAAI,IAAI,CAAC,IAAI,MAAM;IACpF,QAAQ,MAAM,iBAAiB,KAAK,QAAQ,KAAK,EAAA,CAAG,IAAI,+BAA+B;GAC3F;GACA,MAAM,SAAS,MAAM,KAAK,OAAO,eAAe;GAChD,MAAM,YAAY,KAAK,kBAAkB,IAAI,IAAI,KAAK,eAAe,IAAI,KAAA;GACzE,OAAO,OAAO,SACT,QAAQ,YAAY,QAAQ,cAAc,CAAC,aAAa,UAAU,IAAI,QAAQ,IAAI,EAAE,CAAC,CACrF,KAAK,aAA6B;IAC/B,IAAI,uBAAuB,QAAQ,IAAI;IACvC,MAAM,QAAQ;IACd,aAAa,QAAQ;IACrB,mBAAmB,QAAQ;IAC3B,YAAY;IACZ,YAAY,CAAC;GACjB,EAAE;EACV;CACJ,CAAC;AACL;AAEA,SAAgB,6BAAwD;CACpE,OAAO,uBAAuB;EAC1B,aAAa,IAAI,YAAY;EAC7B,SAAS,QAA0B,IAAI;EACvC,UAAU;GAAC;GAAc;GAAY;EAAY;EACjD,UAAU;EACV,eAAe,QAAQ,QAAQ,CAAC,CAAC;CACrC,CAAC;AACL;AAEA,SAAgB,0BAA0B,MAAsD;CAC5F,OAAO,uBAAuB;EAC1B,aAAa,IAAI,YAAY;EAC7B,SAAS,QAAwB,IAAI;EACrC,UAAU;GAAC;GAAc;GAAY;GAAa,KAAK,mBAAmB,CAAC;EAAC;EAC5E,UAAU;EACV,SAAS,YAAY;GACjB,IAAI,CAAC,KAAK,iBAAiB,QAAQ,OAAO,CAAC;GAC3C,OAAO,+BAA+B,MAAM,iBAAiB,KAAK,QAAQ,KAAK,eAAe,CAAC;EACnG;CACJ,CAAC;AACL"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SalesforceClient } from "@party-stack/salesforce-client";
|
|
2
|
-
import { OntologyCollectionOptions } from "@party-stack/ontology";
|
|
3
|
-
import { QueryClient } from "@tanstack/query-core";
|
|
4
|
-
//#region src/meta/queryFunctionTypeCollectionOptions.d.ts
|
|
5
|
-
export declare function queryFunctionTypeCollectionOptions(opts: {
|
|
6
|
-
client: SalesforceClient;
|
|
7
|
-
standardQueryFunctionTypeNames?: string[];
|
|
8
|
-
queryClient?: QueryClient;
|
|
9
|
-
}): OntologyCollectionOptions;
|
|
10
|
-
//#endregion
|
|
11
|
-
//# sourceMappingURL=queryFunctionTypeCollectionOptions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryFunctionTypeCollectionOptions.d.ts","names":[],"sources":["../../src/meta/queryFunctionTypeCollectionOptions.ts"],"mappings":";;;;wBAmCgB,mCAAmC;EAC/C,QAAQ;EACR;EACA,cAAc;IACd"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { classifySalesforceStandardAction } from "../standardActions.js";
|
|
2
|
-
import { convertMetaNameQuery, matchesMetaNameQuery } from "./convertMetaLoadSubsetOptions.js";
|
|
3
|
-
import { convertSalesforceMetaStandardQueryFunctionType } from "./convertMetaQueryFunctionType.js";
|
|
4
|
-
import { QueryClient } from "@tanstack/query-core";
|
|
5
|
-
import { queryCollectionOptions } from "@tanstack/query-db-collection";
|
|
6
|
-
//#region src/meta/queryFunctionTypeCollectionOptions.ts
|
|
7
|
-
async function describeStandardActions(client, names) {
|
|
8
|
-
if (typeof client.describeStandardActions === "function") try {
|
|
9
|
-
return await client.describeStandardActions(names);
|
|
10
|
-
} catch {}
|
|
11
|
-
return Promise.all(names.map(async (name) => {
|
|
12
|
-
try {
|
|
13
|
-
return await client.describeStandardAction(name);
|
|
14
|
-
} catch {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
function queryFunctionTypeCollectionOptions(opts) {
|
|
20
|
-
return queryCollectionOptions({
|
|
21
|
-
queryClient: opts.queryClient ?? new QueryClient(),
|
|
22
|
-
getKey: (row) => row.name,
|
|
23
|
-
queryKey: [
|
|
24
|
-
"salesforce",
|
|
25
|
-
"ontology",
|
|
26
|
-
"queryFunctionTypes",
|
|
27
|
-
opts.standardQueryFunctionTypeNames ?? []
|
|
28
|
-
],
|
|
29
|
-
syncMode: "on-demand",
|
|
30
|
-
queryFn: async (ctx) => {
|
|
31
|
-
const query = convertMetaNameQuery(ctx.meta?.loadSubsetOptions);
|
|
32
|
-
let summaries;
|
|
33
|
-
if (query.type !== "getBatch" && !opts.standardQueryFunctionTypeNames) {
|
|
34
|
-
const response = await opts.client.listStandardActions();
|
|
35
|
-
summaries = Array.isArray(response) ? response : Array.isArray(response.actions) ? response.actions : Object.keys(response).map((name) => ({ name }));
|
|
36
|
-
}
|
|
37
|
-
const requestedNames = query.type === "getBatch" ? new Set(query.names) : void 0;
|
|
38
|
-
const candidates = (opts.standardQueryFunctionTypeNames ?? (requestedNames ? [...requestedNames] : summaries?.map((summary) => summary.name) ?? [])).filter((name) => (!requestedNames || requestedNames.has(name)) && (opts.standardQueryFunctionTypeNames !== void 0 || classifySalesforceStandardAction(name) === "queryFunction")).map((name) => ({
|
|
39
|
-
name,
|
|
40
|
-
displayName: summaries?.find((summary) => summary.name === name)?.label ?? name
|
|
41
|
-
})).filter((candidate) => matchesMetaNameQuery(query, candidate));
|
|
42
|
-
const offset = Math.max(0, Math.trunc(ctx.meta?.loadSubsetOptions?.offset ?? 0));
|
|
43
|
-
const limit = ctx.meta?.loadSubsetOptions?.limit;
|
|
44
|
-
const names = (requestedNames ? candidates : candidates.slice(offset, limit === void 0 ? void 0 : offset + Math.max(0, Math.trunc(limit)))).map((candidate) => candidate.name);
|
|
45
|
-
const describes = (await describeStandardActions(opts.client, names)).filter((describe) => Boolean(describe));
|
|
46
|
-
const sObjectNames = /* @__PURE__ */ new Set();
|
|
47
|
-
for (const describe of describes) for (const parameter of [...describe.inputs ?? [], ...describe.outputs ?? []]) {
|
|
48
|
-
const name = parameter.sobjectType ?? parameter.sObjectType;
|
|
49
|
-
if (name) sObjectNames.add(name);
|
|
50
|
-
}
|
|
51
|
-
const sObjectDescribes = new Map(await Promise.all([...sObjectNames].map(async (name) => [name, await opts.client.describeSObject(name)])));
|
|
52
|
-
return describes.map((describe) => convertSalesforceMetaStandardQueryFunctionType(describe, sObjectDescribes));
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
//#endregion
|
|
57
|
-
export { queryFunctionTypeCollectionOptions };
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=queryFunctionTypeCollectionOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryFunctionTypeCollectionOptions.js","names":[],"sources":["../../src/meta/queryFunctionTypeCollectionOptions.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/query-core\";\nimport { queryCollectionOptions } from \"@tanstack/query-db-collection\";\nimport { classifySalesforceStandardAction } from \"../standardActions.js\";\nimport { convertMetaNameQuery, matchesMetaNameQuery } from \"./convertMetaLoadSubsetOptions.js\";\nimport { convertSalesforceMetaStandardQueryFunctionType } from \"./convertMetaQueryFunctionType.js\";\nimport type { OntologyCollectionOptions, QueryFunctionTypeDef } from \"@party-stack/ontology\";\nimport type {\n SalesforceClient,\n SalesforceInvocableActionDescribe,\n SalesforceInvocableActionSummary,\n SalesforceSObjectDescribe,\n} from \"@party-stack/salesforce-client\";\n\nasync function describeStandardActions(\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 // Fall through when Composite API access is unavailable.\n }\n }\n return Promise.all(\n names.map(async (name) => {\n try {\n return await client.describeStandardAction(name);\n } catch {\n return undefined;\n }\n })\n );\n}\n\nexport function queryFunctionTypeCollectionOptions(opts: {\n client: SalesforceClient;\n standardQueryFunctionTypeNames?: string[];\n queryClient?: QueryClient;\n}): OntologyCollectionOptions {\n return queryCollectionOptions<QueryFunctionTypeDef>({\n queryClient: opts.queryClient ?? new QueryClient(),\n getKey: (row) => row.name,\n queryKey: [\"salesforce\", \"ontology\", \"queryFunctionTypes\", opts.standardQueryFunctionTypeNames ?? []],\n syncMode: \"on-demand\",\n queryFn: async (ctx) => {\n const query = convertMetaNameQuery(ctx.meta?.loadSubsetOptions);\n let summaries: SalesforceInvocableActionSummary[] | undefined;\n if (query.type !== \"getBatch\" && !opts.standardQueryFunctionTypeNames) {\n const response = await opts.client.listStandardActions();\n summaries = Array.isArray(response)\n ? response\n : Array.isArray(response.actions)\n ? response.actions\n : Object.keys(response).map((name) => ({ name }));\n }\n const requestedNames = query.type === \"getBatch\" ? new Set(query.names) : undefined;\n const candidates = (\n opts.standardQueryFunctionTypeNames ??\n (requestedNames ? [...requestedNames] : (summaries?.map((summary) => summary.name) ?? []))\n )\n .filter(\n (name) =>\n (!requestedNames || requestedNames.has(name)) &&\n (opts.standardQueryFunctionTypeNames !== undefined ||\n classifySalesforceStandardAction(name) === \"queryFunction\")\n )\n .map((name) => ({\n name,\n displayName: summaries?.find((summary) => summary.name === name)?.label ?? name,\n }))\n .filter((candidate) => matchesMetaNameQuery(query, candidate));\n const offset = Math.max(0, Math.trunc(ctx.meta?.loadSubsetOptions?.offset ?? 0));\n const limit = ctx.meta?.loadSubsetOptions?.limit;\n const names = (\n requestedNames\n ? candidates\n : candidates.slice(\n offset,\n limit === undefined ? undefined : offset + Math.max(0, Math.trunc(limit))\n )\n ).map((candidate) => candidate.name);\n const describes = (await describeStandardActions(opts.client, names)).filter(\n (describe): describe is SalesforceInvocableActionDescribe => Boolean(describe)\n );\n const sObjectNames = new Set<string>();\n for (const describe of describes) {\n for (const parameter of [...(describe.inputs ?? []), ...(describe.outputs ?? [])]) {\n const name = parameter.sobjectType ?? parameter.sObjectType;\n if (name) sObjectNames.add(name);\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 return describes.map((describe) =>\n convertSalesforceMetaStandardQueryFunctionType(describe, sObjectDescribes)\n );\n },\n }) as unknown as OntologyCollectionOptions;\n}\n"],"mappings":";;;;;;AAaA,eAAe,wBACX,QACA,OAC6D;CAC7D,IAAI,OAAO,OAAO,4BAA4B,YAC1C,IAAI;EACA,OAAO,MAAM,OAAO,wBAAwB,KAAK;CACrD,QAAQ,CAER;CAEJ,OAAO,QAAQ,IACX,MAAM,IAAI,OAAO,SAAS;EACtB,IAAI;GACA,OAAO,MAAM,OAAO,uBAAuB,IAAI;EACnD,QAAQ;GACJ;EACJ;CACJ,CAAC,CACL;AACJ;AAEA,SAAgB,mCAAmC,MAIrB;CAC1B,OAAO,uBAA6C;EAChD,aAAa,KAAK,eAAe,IAAI,YAAY;EACjD,SAAS,QAAQ,IAAI;EACrB,UAAU;GAAC;GAAc;GAAY;GAAsB,KAAK,kCAAkC,CAAC;EAAC;EACpG,UAAU;EACV,SAAS,OAAO,QAAQ;GACpB,MAAM,QAAQ,qBAAqB,IAAI,MAAM,iBAAiB;GAC9D,IAAI;GACJ,IAAI,MAAM,SAAS,cAAc,CAAC,KAAK,gCAAgC;IACnE,MAAM,WAAW,MAAM,KAAK,OAAO,oBAAoB;IACvD,YAAY,MAAM,QAAQ,QAAQ,IAC5B,WACA,MAAM,QAAQ,SAAS,OAAO,IAC5B,SAAS,UACT,OAAO,KAAK,QAAQ,CAAC,CAAC,KAAK,UAAU,EAAE,KAAK,EAAE;GAC1D;GACA,MAAM,iBAAiB,MAAM,SAAS,aAAa,IAAI,IAAI,MAAM,KAAK,IAAI,KAAA;GAC1E,MAAM,cACF,KAAK,mCACJ,iBAAiB,CAAC,GAAG,cAAc,IAAK,WAAW,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,GAAA,CAEtF,QACI,UACI,CAAC,kBAAkB,eAAe,IAAI,IAAI,OAC1C,KAAK,mCAAmC,KAAA,KACrC,iCAAiC,IAAI,MAAM,gBACvD,CAAC,CACA,KAAK,UAAU;IACZ;IACA,aAAa,WAAW,MAAM,YAAY,QAAQ,SAAS,IAAI,CAAC,EAAE,SAAS;GAC/E,EAAE,CAAC,CACF,QAAQ,cAAc,qBAAqB,OAAO,SAAS,CAAC;GACjE,MAAM,SAAS,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,MAAM,mBAAmB,UAAU,CAAC,CAAC;GAC/E,MAAM,QAAQ,IAAI,MAAM,mBAAmB;GAC3C,MAAM,SACF,iBACM,aACA,WAAW,MACP,QACA,UAAU,KAAA,IAAY,KAAA,IAAY,SAAS,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC,CAC5E,EAAA,CACR,KAAK,cAAc,UAAU,IAAI;GACnC,MAAM,aAAa,MAAM,wBAAwB,KAAK,QAAQ,KAAK,EAAA,CAAG,QACjE,aAA4D,QAAQ,QAAQ,CACjF;GACA,MAAM,+BAAe,IAAI,IAAY;GACrC,KAAK,MAAM,YAAY,WACnB,KAAK,MAAM,aAAa,CAAC,GAAI,SAAS,UAAU,CAAC,GAAI,GAAI,SAAS,WAAW,CAAC,CAAE,GAAG;IAC/E,MAAM,OAAO,UAAU,eAAe,UAAU;IAChD,IAAI,MAAM,aAAa,IAAI,IAAI;GACnC;GAEJ,MAAM,mBAAmB,IAAI,IACzB,MAAM,QAAQ,IACV,CAAC,GAAG,YAAY,CAAC,CAAC,IACd,OAAO,SAAS,CAAC,MAAM,MAAM,KAAK,OAAO,gBAAgB,IAAI,CAAC,CAClE,CACJ,CACJ;GACA,OAAO,UAAU,KAAK,aAClB,+CAA+C,UAAU,gBAAgB,CAC7E;EACJ;CACJ,CAAC;AACL"}
|