@memberjunction/core-actions 5.12.0 → 5.14.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/dist/__tests__/integration-action-executor.test.d.ts +2 -0
- package/dist/__tests__/integration-action-executor.test.d.ts.map +1 -0
- package/dist/__tests__/integration-action-executor.test.js +451 -0
- package/dist/__tests__/integration-action-executor.test.js.map +1 -0
- package/dist/custom/data/run-adhoc-query.action.d.ts.map +1 -1
- package/dist/custom/data/run-adhoc-query.action.js +2 -1
- package/dist/custom/data/run-adhoc-query.action.js.map +1 -1
- package/dist/custom/data/search-query-catalog.action.d.ts +2 -3
- package/dist/custom/data/search-query-catalog.action.d.ts.map +1 -1
- package/dist/custom/data/search-query-catalog.action.js +49 -23
- package/dist/custom/data/search-query-catalog.action.js.map +1 -1
- package/dist/custom/integration/integration-action-executor.d.ts +47 -0
- package/dist/custom/integration/integration-action-executor.d.ts.map +1 -0
- package/dist/custom/integration/integration-action-executor.js +323 -0
- package/dist/custom/integration/integration-action-executor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +29 -26
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { RegisterClass } from "@memberjunction/global";
|
|
8
8
|
import { BaseAction } from "@memberjunction/actions";
|
|
9
9
|
import { AIEngine } from "@memberjunction/aiengine";
|
|
10
|
-
import {
|
|
10
|
+
import { QueryEngineServer } from "@memberjunction/core-entities-server";
|
|
11
11
|
import { LogError } from "@memberjunction/core";
|
|
12
12
|
/**
|
|
13
13
|
* Action that searches the saved query catalog using vector-based semantic search.
|
|
@@ -58,17 +58,18 @@ let SearchQueryCatalogAction = class SearchQueryCatalogAction extends BaseAction
|
|
|
58
58
|
}
|
|
59
59
|
// Ensure AIEngine is loaded for embedding generation
|
|
60
60
|
await AIEngine.Instance.Config(false, params.ContextUser);
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
// Ensure QueryEngineServer is loaded (uses cached queries, no DB call if already loaded)
|
|
62
|
+
await QueryEngineServer.Instance.Config(false, params.ContextUser);
|
|
63
|
+
// Build metadata filter from action params
|
|
64
|
+
const metadataFilter = (meta) => {
|
|
65
|
+
if (approvedOnly && meta.status !== 'Approved')
|
|
66
|
+
return false;
|
|
67
|
+
if (reusableOnly && !meta.reusable)
|
|
68
|
+
return false;
|
|
69
|
+
return true;
|
|
70
|
+
};
|
|
71
|
+
// Search using the persistent vector index
|
|
72
|
+
const matches = await QueryEngineServer.Instance.FindSimilarQueries(searchText, (text) => AIEngine.Instance.EmbedTextLocal(text), topK, minSimilarity, metadataFilter);
|
|
72
73
|
if (matches.length === 0) {
|
|
73
74
|
return {
|
|
74
75
|
Success: true,
|
|
@@ -104,15 +105,14 @@ let SearchQueryCatalogAction = class SearchQueryCatalogAction extends BaseAction
|
|
|
104
105
|
Type: 'Output',
|
|
105
106
|
Value: results.length
|
|
106
107
|
});
|
|
107
|
-
// Build
|
|
108
|
-
//
|
|
109
|
-
|
|
110
|
-
// runtime params and can't be directly composed for aggregate use cases).
|
|
111
|
-
const message = this.buildDirectiveMessage(results);
|
|
108
|
+
// Build the full message (preserved for backward compatibility) and
|
|
109
|
+
// structured AI directives for the agent framework.
|
|
110
|
+
const { message, directives } = this.buildDirectiveMessage(results);
|
|
112
111
|
return {
|
|
113
112
|
Success: true,
|
|
114
113
|
ResultCode: 'SUCCESS',
|
|
115
|
-
Message: message
|
|
114
|
+
Message: message,
|
|
115
|
+
AIDirectives: directives.length > 0 ? directives : undefined
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
118
|
catch (error) {
|
|
@@ -140,9 +140,8 @@ let SearchQueryCatalogAction = class SearchQueryCatalogAction extends BaseAction
|
|
|
140
140
|
return param?.Value !== undefined && param?.Value !== null ? String(param.Value) : undefined;
|
|
141
141
|
}
|
|
142
142
|
/**
|
|
143
|
-
* Builds the
|
|
144
|
-
*
|
|
145
|
-
* Otherwise, tells the LLM to proceed with fresh SQL.
|
|
143
|
+
* Builds the original full-text message (preserved for backward compatibility)
|
|
144
|
+
* and structured AI directives for the agent framework.
|
|
146
145
|
*/
|
|
147
146
|
buildDirectiveMessage(results) {
|
|
148
147
|
const bestOverall = results[0];
|
|
@@ -150,7 +149,10 @@ let SearchQueryCatalogAction = class SearchQueryCatalogAction extends BaseAction
|
|
|
150
149
|
const recommend = bestComposable || bestOverall;
|
|
151
150
|
const similarity = recommend.Similarity;
|
|
152
151
|
if (similarity < 0.6) {
|
|
153
|
-
return
|
|
152
|
+
return {
|
|
153
|
+
message: `Found ${results.length} queries but no high-confidence composable matches (best: ${Math.round(similarity * 100)}%). Proceed with schema exploration and fresh SQL.`,
|
|
154
|
+
directives: []
|
|
155
|
+
};
|
|
154
156
|
}
|
|
155
157
|
const name = recommend.Name;
|
|
156
158
|
const category = recommend.Category;
|
|
@@ -158,6 +160,7 @@ let SearchQueryCatalogAction = class SearchQueryCatalogAction extends BaseAction
|
|
|
158
160
|
const queryID = recommend.QueryID;
|
|
159
161
|
const sql = recommend.SQL;
|
|
160
162
|
const columns = sql ? this.extractSelectColumns(sql) : '';
|
|
163
|
+
// Build the full message matching the original format
|
|
161
164
|
const lines = [`Found ${results.length} matching queries.`];
|
|
162
165
|
if (bestComposable && bestComposable !== bestOverall) {
|
|
163
166
|
lines.push(`Note: "${bestOverall.Name}" scored highest (${Math.round(bestOverall.Similarity * 100)}%) but is parameterized — not directly composable.`);
|
|
@@ -176,7 +179,30 @@ let SearchQueryCatalogAction = class SearchQueryCatalogAction extends BaseAction
|
|
|
176
179
|
const paramFlag = this.hasTemplateParams(r) ? ' [parameterized]' : '';
|
|
177
180
|
lines.push(` - ${r.Name} (${r.Category}) — ${sim}%${paramFlag} — ${r.Description || r.Name}`);
|
|
178
181
|
}
|
|
179
|
-
|
|
182
|
+
// Structured AI directives — surfaced by the agent framework
|
|
183
|
+
const directives = [
|
|
184
|
+
{
|
|
185
|
+
Message: `YOUR NEXT ACTION — pick one:\n\nOption A — Fully covers the request? Call "Run Stored Query":\n Action: "Run Stored Query"\n Params: { QueryID: "${queryID}", DataFormat: "json" }\n\nOption B — Partially covers? Call "Run Ad-hoc Query" with composition SQL:\n Action: "Run Ad-hoc Query"\n Params: { Query: "SELECT base.*, <extra columns> FROM {{query:\\"${categoryPath}\\"}} base <extra JOINs> ORDER BY <column>", MaxRows: 100, DataFormat: "json" }`,
|
|
186
|
+
Type: 'instruction',
|
|
187
|
+
Priority: 'high'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
Message: 'Do NOT call Get Entity Details or write fresh SQL — use one of the options above.',
|
|
191
|
+
Type: 'constraint',
|
|
192
|
+
Priority: 'critical'
|
|
193
|
+
}
|
|
194
|
+
];
|
|
195
|
+
if (columns) {
|
|
196
|
+
directives.push({
|
|
197
|
+
Message: `The stored query provides these columns: ${columns}. Add only the columns/JOINs the user needs that aren't already in the stored query.`,
|
|
198
|
+
Type: 'context',
|
|
199
|
+
Priority: 'medium'
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
message: lines.join('\n'),
|
|
204
|
+
directives
|
|
205
|
+
};
|
|
180
206
|
}
|
|
181
207
|
/** Extracts column aliases from the SELECT portion of SQL (before FROM). */
|
|
182
208
|
extractSelectColumns(sql) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-query-catalog.action.js","sourceRoot":"","sources":["../../../src/custom/data/search-query-catalog.action.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"search-query-catalog.action.js","sourceRoot":"","sources":["../../../src/custom/data/search-query-catalog.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
|
|
2
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
3
|
+
/**
|
|
4
|
+
* Single shared DriverClass for all auto-generated integration actions.
|
|
5
|
+
*
|
|
6
|
+
* Every integration action uses `DriverClass='IntegrationActionExecutor'` and
|
|
7
|
+
* stores its routing info in the Action.Config_ JSON field. At runtime this
|
|
8
|
+
* executor:
|
|
9
|
+
*
|
|
10
|
+
* 1. Parses Config JSON from the Action entity
|
|
11
|
+
* 2. Resolves the correct connector via ConnectorFactory
|
|
12
|
+
* 3. Resolves the CompanyIntegration for the current user/company
|
|
13
|
+
* 4. Maps ActionParams → connector CRUD context (field attributes)
|
|
14
|
+
* 5. Dispatches to the appropriate connector method (Get/Create/Update/Delete/Search/List)
|
|
15
|
+
* 6. Maps results back to output ActionParams
|
|
16
|
+
*/
|
|
17
|
+
export declare class IntegrationActionExecutor extends BaseAction {
|
|
18
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
19
|
+
private ParseConfig;
|
|
20
|
+
private ResolveConnector;
|
|
21
|
+
private LoadIntegrationEntity;
|
|
22
|
+
private ResolveCompanyIntegration;
|
|
23
|
+
private LoadCompanyIntegrationByID;
|
|
24
|
+
private DispatchVerb;
|
|
25
|
+
private HandleGet;
|
|
26
|
+
private HandleCreate;
|
|
27
|
+
private HandleUpdate;
|
|
28
|
+
private HandleDelete;
|
|
29
|
+
private HandleSearch;
|
|
30
|
+
private HandleList;
|
|
31
|
+
/** Gets a parameter value by name (case-insensitive). Returns null if not found. */
|
|
32
|
+
private GetParamValue;
|
|
33
|
+
/** Gets a required parameter, throwing if not found. */
|
|
34
|
+
private GetRequiredParam;
|
|
35
|
+
/** Gets an optional numeric parameter. */
|
|
36
|
+
private GetOptionalNumericParam;
|
|
37
|
+
/**
|
|
38
|
+
* Collects all Input parameters (excluding system params like ExternalID, CompanyIntegrationID,
|
|
39
|
+
* PageSize, Page, Cursor, Sort) into a key-value object suitable for CRUD Attributes.
|
|
40
|
+
*/
|
|
41
|
+
private CollectInputAttributes;
|
|
42
|
+
/** Sets (or creates) an output parameter. */
|
|
43
|
+
private SetOutputParam;
|
|
44
|
+
private BuildResult;
|
|
45
|
+
private CRUDResultToActionResult;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=integration-action-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-action-executor.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/integration-action-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEhG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAwCrD;;;;;;;;;;;;;GAaG;AACH,qBACa,yBAA0B,SAAQ,UAAU;cAErC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgCvF,OAAO,CAAC,WAAW;YAuBL,gBAAgB;YAQhB,qBAAqB;YAqBrB,yBAAyB;YA6BzB,0BAA0B;YAiB1B,YAAY;YA0BZ,SAAS;YA2BT,YAAY;YAwBZ,YAAY;YA0BZ,YAAY;YAwBZ,YAAY;YAuCZ,UAAU;IAwCxB,oFAAoF;IACpF,OAAO,CAAC,aAAa;IAQrB,wDAAwD;IACxD,OAAO,CAAC,gBAAgB;IAQxB,0CAA0C;IAC1C,OAAO,CAAC,uBAAuB;IAO/B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B,6CAA6C;IAC7C,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,wBAAwB;CAwBnC"}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
8
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
9
|
+
import { ConnectorFactory, } from '@memberjunction/integration-engine';
|
|
10
|
+
import { Metadata, RunView } from '@memberjunction/core';
|
|
11
|
+
// ─── IntegrationActionExecutor ───────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Single shared DriverClass for all auto-generated integration actions.
|
|
14
|
+
*
|
|
15
|
+
* Every integration action uses `DriverClass='IntegrationActionExecutor'` and
|
|
16
|
+
* stores its routing info in the Action.Config_ JSON field. At runtime this
|
|
17
|
+
* executor:
|
|
18
|
+
*
|
|
19
|
+
* 1. Parses Config JSON from the Action entity
|
|
20
|
+
* 2. Resolves the correct connector via ConnectorFactory
|
|
21
|
+
* 3. Resolves the CompanyIntegration for the current user/company
|
|
22
|
+
* 4. Maps ActionParams → connector CRUD context (field attributes)
|
|
23
|
+
* 5. Dispatches to the appropriate connector method (Get/Create/Update/Delete/Search/List)
|
|
24
|
+
* 6. Maps results back to output ActionParams
|
|
25
|
+
*/
|
|
26
|
+
let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseAction {
|
|
27
|
+
async InternalRunAction(params) {
|
|
28
|
+
try {
|
|
29
|
+
// 1. Parse config
|
|
30
|
+
const config = this.ParseConfig(params);
|
|
31
|
+
// 2. Resolve connector
|
|
32
|
+
const connector = await this.ResolveConnector(config.IntegrationName, params);
|
|
33
|
+
// 3. Resolve CompanyIntegration
|
|
34
|
+
const companyIntegration = await this.ResolveCompanyIntegration(config.IntegrationName, params);
|
|
35
|
+
// 4. Dispatch to verb handler
|
|
36
|
+
const result = await this.DispatchVerb(config, connector, companyIntegration, params);
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
41
|
+
return {
|
|
42
|
+
Success: false,
|
|
43
|
+
ResultCode: 'EXECUTOR_ERROR',
|
|
44
|
+
Message: message,
|
|
45
|
+
Params: params.Params,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// ─── Config Parsing ──────────────────────────────────────────────
|
|
50
|
+
ParseConfig(params) {
|
|
51
|
+
const configJson = params.Action?.Config_;
|
|
52
|
+
if (!configJson) {
|
|
53
|
+
throw new Error('Action.Config_ is required for IntegrationActionExecutor');
|
|
54
|
+
}
|
|
55
|
+
const parsed = JSON.parse(configJson);
|
|
56
|
+
const integrationName = parsed['IntegrationName'];
|
|
57
|
+
const objectName = parsed['ObjectName'];
|
|
58
|
+
const verb = parsed['Verb'];
|
|
59
|
+
if (!integrationName || !objectName || !verb) {
|
|
60
|
+
throw new Error(`Invalid Action.Config_ — required fields: IntegrationName, ObjectName, Verb. ` +
|
|
61
|
+
`Got: ${configJson}`);
|
|
62
|
+
}
|
|
63
|
+
return { IntegrationName: integrationName, ObjectName: objectName, Verb: verb };
|
|
64
|
+
}
|
|
65
|
+
// ─── Connector Resolution ────────────────────────────────────────
|
|
66
|
+
async ResolveConnector(integrationName, params) {
|
|
67
|
+
const integration = await this.LoadIntegrationEntity(integrationName, params);
|
|
68
|
+
return ConnectorFactory.Resolve(integration);
|
|
69
|
+
}
|
|
70
|
+
async LoadIntegrationEntity(integrationName, params) {
|
|
71
|
+
const rv = new RunView();
|
|
72
|
+
const result = await rv.RunView({
|
|
73
|
+
EntityName: 'Integrations',
|
|
74
|
+
ExtraFilter: `Name='${integrationName.replace(/'/g, "''")}'`,
|
|
75
|
+
MaxRows: 1,
|
|
76
|
+
ResultType: 'entity_object',
|
|
77
|
+
}, params.ContextUser);
|
|
78
|
+
if (!result.Success || result.Results.length === 0) {
|
|
79
|
+
throw new Error(`Integration "${integrationName}" not found`);
|
|
80
|
+
}
|
|
81
|
+
return result.Results[0];
|
|
82
|
+
}
|
|
83
|
+
// ─── CompanyIntegration Resolution ───────────────────────────────
|
|
84
|
+
async ResolveCompanyIntegration(integrationName, params) {
|
|
85
|
+
// Check if CompanyIntegrationID was passed as an ActionParam
|
|
86
|
+
const ciIdParam = this.GetParamValue(params.Params, 'CompanyIntegrationID');
|
|
87
|
+
if (ciIdParam) {
|
|
88
|
+
return this.LoadCompanyIntegrationByID(ciIdParam, params);
|
|
89
|
+
}
|
|
90
|
+
// Otherwise look up the first active CompanyIntegration for this integration name
|
|
91
|
+
const rv = new RunView();
|
|
92
|
+
const result = await rv.RunView({
|
|
93
|
+
EntityName: 'Company Integrations',
|
|
94
|
+
ExtraFilter: `Integration='${integrationName.replace(/'/g, "''")}'`,
|
|
95
|
+
MaxRows: 1,
|
|
96
|
+
ResultType: 'entity_object',
|
|
97
|
+
}, params.ContextUser);
|
|
98
|
+
if (!result.Success || result.Results.length === 0) {
|
|
99
|
+
throw new Error(`No CompanyIntegration found for integration "${integrationName}". ` +
|
|
100
|
+
`Ensure a CompanyIntegration record exists and is accessible to the current user.`);
|
|
101
|
+
}
|
|
102
|
+
return result.Results[0];
|
|
103
|
+
}
|
|
104
|
+
async LoadCompanyIntegrationByID(id, params) {
|
|
105
|
+
const md = new Metadata();
|
|
106
|
+
const entity = await md.GetEntityObject('Company Integrations', params.ContextUser);
|
|
107
|
+
const loaded = await entity.Load(id);
|
|
108
|
+
if (!loaded) {
|
|
109
|
+
throw new Error(`CompanyIntegration with ID "${id}" not found`);
|
|
110
|
+
}
|
|
111
|
+
return entity;
|
|
112
|
+
}
|
|
113
|
+
// ─── Verb Dispatch ───────────────────────────────────────────────
|
|
114
|
+
async DispatchVerb(config, connector, companyIntegration, params) {
|
|
115
|
+
switch (config.Verb) {
|
|
116
|
+
case 'Get':
|
|
117
|
+
return this.HandleGet(config, connector, companyIntegration, params);
|
|
118
|
+
case 'Create':
|
|
119
|
+
return this.HandleCreate(config, connector, companyIntegration, params);
|
|
120
|
+
case 'Update':
|
|
121
|
+
return this.HandleUpdate(config, connector, companyIntegration, params);
|
|
122
|
+
case 'Delete':
|
|
123
|
+
return this.HandleDelete(config, connector, companyIntegration, params);
|
|
124
|
+
case 'Search':
|
|
125
|
+
return this.HandleSearch(config, connector, companyIntegration, params);
|
|
126
|
+
case 'List':
|
|
127
|
+
return this.HandleList(config, connector, companyIntegration, params);
|
|
128
|
+
default:
|
|
129
|
+
throw new Error(`Unsupported verb: ${config.Verb}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// ─── Get ─────────────────────────────────────────────────────────
|
|
133
|
+
async HandleGet(config, connector, companyIntegration, params) {
|
|
134
|
+
const externalID = this.GetRequiredParam(params.Params, 'ExternalID');
|
|
135
|
+
const ctx = {
|
|
136
|
+
CompanyIntegration: companyIntegration,
|
|
137
|
+
ObjectName: config.ObjectName,
|
|
138
|
+
ContextUser: params.ContextUser,
|
|
139
|
+
ExternalID: externalID,
|
|
140
|
+
};
|
|
141
|
+
const record = await connector.GetRecord(ctx);
|
|
142
|
+
if (!record) {
|
|
143
|
+
return this.BuildResult(false, 'NOT_FOUND', `Record ${externalID} not found`, params.Params);
|
|
144
|
+
}
|
|
145
|
+
this.SetOutputParam(params.Params, 'Record', record.Fields);
|
|
146
|
+
this.SetOutputParam(params.Params, 'ExternalID', record.ExternalID);
|
|
147
|
+
return this.BuildResult(true, 'SUCCESS', `Retrieved ${config.ObjectName} ${externalID}`, params.Params);
|
|
148
|
+
}
|
|
149
|
+
// ─── Create ──────────────────────────────────────────────────────
|
|
150
|
+
async HandleCreate(config, connector, companyIntegration, params) {
|
|
151
|
+
if (!connector.SupportsCreate) {
|
|
152
|
+
return this.BuildResult(false, 'NOT_SUPPORTED', `Create not supported for ${config.IntegrationName}`, params.Params);
|
|
153
|
+
}
|
|
154
|
+
const attributes = this.CollectInputAttributes(params.Params);
|
|
155
|
+
const ctx = {
|
|
156
|
+
CompanyIntegration: companyIntegration,
|
|
157
|
+
ObjectName: config.ObjectName,
|
|
158
|
+
ContextUser: params.ContextUser,
|
|
159
|
+
Attributes: attributes,
|
|
160
|
+
};
|
|
161
|
+
const result = await connector.CreateRecord(ctx);
|
|
162
|
+
return this.CRUDResultToActionResult(result, 'Create', config.ObjectName, params.Params);
|
|
163
|
+
}
|
|
164
|
+
// ─── Update ──────────────────────────────────────────────────────
|
|
165
|
+
async HandleUpdate(config, connector, companyIntegration, params) {
|
|
166
|
+
if (!connector.SupportsUpdate) {
|
|
167
|
+
return this.BuildResult(false, 'NOT_SUPPORTED', `Update not supported for ${config.IntegrationName}`, params.Params);
|
|
168
|
+
}
|
|
169
|
+
const externalID = this.GetRequiredParam(params.Params, 'ExternalID');
|
|
170
|
+
const attributes = this.CollectInputAttributes(params.Params);
|
|
171
|
+
const ctx = {
|
|
172
|
+
CompanyIntegration: companyIntegration,
|
|
173
|
+
ObjectName: config.ObjectName,
|
|
174
|
+
ContextUser: params.ContextUser,
|
|
175
|
+
ExternalID: externalID,
|
|
176
|
+
Attributes: attributes,
|
|
177
|
+
};
|
|
178
|
+
const result = await connector.UpdateRecord(ctx);
|
|
179
|
+
return this.CRUDResultToActionResult(result, 'Update', config.ObjectName, params.Params);
|
|
180
|
+
}
|
|
181
|
+
// ─── Delete ──────────────────────────────────────────────────────
|
|
182
|
+
async HandleDelete(config, connector, companyIntegration, params) {
|
|
183
|
+
if (!connector.SupportsDelete) {
|
|
184
|
+
return this.BuildResult(false, 'NOT_SUPPORTED', `Delete not supported for ${config.IntegrationName}`, params.Params);
|
|
185
|
+
}
|
|
186
|
+
const externalID = this.GetRequiredParam(params.Params, 'ExternalID');
|
|
187
|
+
const ctx = {
|
|
188
|
+
CompanyIntegration: companyIntegration,
|
|
189
|
+
ObjectName: config.ObjectName,
|
|
190
|
+
ContextUser: params.ContextUser,
|
|
191
|
+
ExternalID: externalID,
|
|
192
|
+
};
|
|
193
|
+
const result = await connector.DeleteRecord(ctx);
|
|
194
|
+
return this.CRUDResultToActionResult(result, 'Delete', config.ObjectName, params.Params);
|
|
195
|
+
}
|
|
196
|
+
// ─── Search ──────────────────────────────────────────────────────
|
|
197
|
+
async HandleSearch(config, connector, companyIntegration, params) {
|
|
198
|
+
if (!connector.SupportsSearch) {
|
|
199
|
+
return this.BuildResult(false, 'NOT_SUPPORTED', `Search not supported for ${config.IntegrationName}`, params.Params);
|
|
200
|
+
}
|
|
201
|
+
const filters = this.CollectInputAttributes(params.Params);
|
|
202
|
+
const pageSize = this.GetOptionalNumericParam(params.Params, 'PageSize');
|
|
203
|
+
const page = this.GetOptionalNumericParam(params.Params, 'Page');
|
|
204
|
+
const sort = this.GetParamValue(params.Params, 'Sort');
|
|
205
|
+
const ctx = {
|
|
206
|
+
CompanyIntegration: companyIntegration,
|
|
207
|
+
ObjectName: config.ObjectName,
|
|
208
|
+
ContextUser: params.ContextUser,
|
|
209
|
+
Filters: filters,
|
|
210
|
+
PageSize: pageSize,
|
|
211
|
+
Page: page,
|
|
212
|
+
Sort: sort ?? undefined,
|
|
213
|
+
};
|
|
214
|
+
const result = await connector.SearchRecords(ctx);
|
|
215
|
+
this.SetOutputParam(params.Params, 'Records', result.Records.map(r => r.Fields));
|
|
216
|
+
this.SetOutputParam(params.Params, 'TotalCount', result.TotalCount);
|
|
217
|
+
this.SetOutputParam(params.Params, 'HasMore', result.HasMore);
|
|
218
|
+
return this.BuildResult(true, 'SUCCESS', `Found ${result.TotalCount} ${config.ObjectName} record(s)`, params.Params);
|
|
219
|
+
}
|
|
220
|
+
// ─── List ────────────────────────────────────────────────────────
|
|
221
|
+
async HandleList(config, connector, companyIntegration, params) {
|
|
222
|
+
if (!connector.SupportsListing) {
|
|
223
|
+
return this.BuildResult(false, 'NOT_SUPPORTED', `List not supported for ${config.IntegrationName}`, params.Params);
|
|
224
|
+
}
|
|
225
|
+
const pageSize = this.GetOptionalNumericParam(params.Params, 'PageSize');
|
|
226
|
+
const cursor = this.GetParamValue(params.Params, 'Cursor');
|
|
227
|
+
const sort = this.GetParamValue(params.Params, 'Sort');
|
|
228
|
+
const ctx = {
|
|
229
|
+
CompanyIntegration: companyIntegration,
|
|
230
|
+
ObjectName: config.ObjectName,
|
|
231
|
+
ContextUser: params.ContextUser,
|
|
232
|
+
PageSize: pageSize,
|
|
233
|
+
Cursor: cursor ?? undefined,
|
|
234
|
+
Sort: sort ?? undefined,
|
|
235
|
+
};
|
|
236
|
+
const result = await connector.ListRecords(ctx);
|
|
237
|
+
this.SetOutputParam(params.Params, 'Records', result.Records.map(r => r.Fields));
|
|
238
|
+
this.SetOutputParam(params.Params, 'HasMore', result.HasMore);
|
|
239
|
+
this.SetOutputParam(params.Params, 'NextCursor', result.NextCursor);
|
|
240
|
+
if (result.TotalCount != null) {
|
|
241
|
+
this.SetOutputParam(params.Params, 'TotalCount', result.TotalCount);
|
|
242
|
+
}
|
|
243
|
+
return this.BuildResult(true, 'SUCCESS', `Listed ${result.Records.length} ${config.ObjectName} record(s)`, params.Params);
|
|
244
|
+
}
|
|
245
|
+
// ─── Parameter Helpers ───────────────────────────────────────────
|
|
246
|
+
/** Gets a parameter value by name (case-insensitive). Returns null if not found. */
|
|
247
|
+
GetParamValue(actionParams, name) {
|
|
248
|
+
const param = actionParams.find(p => p.Name.trim().toLowerCase() === name.toLowerCase() && p.Type !== 'Output');
|
|
249
|
+
if (!param || param.Value == null)
|
|
250
|
+
return null;
|
|
251
|
+
return String(param.Value);
|
|
252
|
+
}
|
|
253
|
+
/** Gets a required parameter, throwing if not found. */
|
|
254
|
+
GetRequiredParam(actionParams, name) {
|
|
255
|
+
const value = this.GetParamValue(actionParams, name);
|
|
256
|
+
if (!value) {
|
|
257
|
+
throw new Error(`Required parameter "${name}" is missing`);
|
|
258
|
+
}
|
|
259
|
+
return value;
|
|
260
|
+
}
|
|
261
|
+
/** Gets an optional numeric parameter. */
|
|
262
|
+
GetOptionalNumericParam(actionParams, name) {
|
|
263
|
+
const value = this.GetParamValue(actionParams, name);
|
|
264
|
+
if (!value)
|
|
265
|
+
return undefined;
|
|
266
|
+
const parsed = Number(value);
|
|
267
|
+
return isNaN(parsed) ? undefined : parsed;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Collects all Input parameters (excluding system params like ExternalID, CompanyIntegrationID,
|
|
271
|
+
* PageSize, Page, Cursor, Sort) into a key-value object suitable for CRUD Attributes.
|
|
272
|
+
*/
|
|
273
|
+
CollectInputAttributes(actionParams) {
|
|
274
|
+
const systemParams = new Set([
|
|
275
|
+
'externalid', 'companyintegrationid', 'pagesize', 'page', 'cursor', 'sort',
|
|
276
|
+
]);
|
|
277
|
+
const attributes = {};
|
|
278
|
+
for (const param of actionParams) {
|
|
279
|
+
if (param.Type === 'Output')
|
|
280
|
+
continue;
|
|
281
|
+
const nameLower = param.Name.trim().toLowerCase();
|
|
282
|
+
if (systemParams.has(nameLower))
|
|
283
|
+
continue;
|
|
284
|
+
if (param.Value != null) {
|
|
285
|
+
attributes[param.Name] = param.Value;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return attributes;
|
|
289
|
+
}
|
|
290
|
+
/** Sets (or creates) an output parameter. */
|
|
291
|
+
SetOutputParam(actionParams, name, value) {
|
|
292
|
+
const existing = actionParams.find(p => p.Name.trim().toLowerCase() === name.toLowerCase() && p.Type === 'Output');
|
|
293
|
+
if (existing) {
|
|
294
|
+
existing.Value = value;
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
actionParams.push({ Name: name, Type: 'Output', Value: value });
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// ─── Result Builders ─────────────────────────────────────────────
|
|
301
|
+
BuildResult(success, resultCode, message, actionParams) {
|
|
302
|
+
return {
|
|
303
|
+
Success: success,
|
|
304
|
+
ResultCode: resultCode,
|
|
305
|
+
Message: message,
|
|
306
|
+
Params: actionParams,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
CRUDResultToActionResult(result, operation, objectName, actionParams) {
|
|
310
|
+
if (result.Success) {
|
|
311
|
+
if (result.ExternalID) {
|
|
312
|
+
this.SetOutputParam(actionParams, 'ExternalID', result.ExternalID);
|
|
313
|
+
}
|
|
314
|
+
return this.BuildResult(true, 'SUCCESS', `${operation} ${objectName} succeeded${result.ExternalID ? ` (ID: ${result.ExternalID})` : ''}`, actionParams);
|
|
315
|
+
}
|
|
316
|
+
return this.BuildResult(false, `${operation.toUpperCase()}_FAILED`, result.ErrorMessage ?? `${operation} ${objectName} failed (HTTP ${result.StatusCode})`, actionParams);
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
IntegrationActionExecutor = __decorate([
|
|
320
|
+
RegisterClass(BaseAction, 'IntegrationActionExecutor')
|
|
321
|
+
], IntegrationActionExecutor);
|
|
322
|
+
export { IntegrationActionExecutor };
|
|
323
|
+
//# sourceMappingURL=integration-action-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-action-executor.js","sourceRoot":"","sources":["../../../src/custom/integration/integration-action-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -49,6 +49,7 @@ export * from './custom/integration/graphql-query.action.js';
|
|
|
49
49
|
export * from './custom/integration/oauth-flow.action.js';
|
|
50
50
|
export * from './custom/integration/api-rate-limiter.action.js';
|
|
51
51
|
export * from './custom/integration/gamma-generate-presentation.action.js';
|
|
52
|
+
export * from './custom/integration/integration-action-executor.js';
|
|
52
53
|
export * from './custom/security/password-strength.action.js';
|
|
53
54
|
export * from './custom/code-execution/execute-code.action.js';
|
|
54
55
|
export * from './custom/workflow/conditional.action.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AAGjD,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AAGvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AAGjD,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AAGvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AAGjE,cAAc,4CAA4C,CAAC;AAG3D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,uDAAuD,CAAC;AACtE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qDAAqD,CAAC;AACpE,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,yDAAyD,CAAC;AACxE,cAAc,sDAAsD,CAAC;AACrE,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -59,6 +59,7 @@ export * from './custom/integration/graphql-query.action.js';
|
|
|
59
59
|
export * from './custom/integration/oauth-flow.action.js';
|
|
60
60
|
export * from './custom/integration/api-rate-limiter.action.js';
|
|
61
61
|
export * from './custom/integration/gamma-generate-presentation.action.js';
|
|
62
|
+
export * from './custom/integration/integration-action-executor.js';
|
|
62
63
|
// Security Actions
|
|
63
64
|
export * from './custom/security/password-strength.action.js';
|
|
64
65
|
// Code Execution Actions
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AAEjD,wBAAwB;AACxB,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAE5D,eAAe;AACf,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAEnD,eAAe;AACf,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAEpD,kBAAkB;AAClB,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAE3D,cAAc;AACd,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AAEzD,8BAA8B;AAC9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAE1D,yBAAyB;AACzB,cAAc,6CAA6C,CAAC;AAE5D,yBAAyB;AACzB,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAEpD,+DAA+D;AAC/D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AAEvD,sBAAsB;AACtB,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|