@octaviaflow/flow-rules 0.13.1 → 0.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/catalog/actions/http-request/config.d.ts +2 -0
- package/dist/catalog/index.d.ts +1 -3
- package/dist/catalog/storage/fileEditContract.d.ts +4 -4
- package/dist/catalog/triggers/connector-trigger/config.d.ts +9 -1
- package/dist/catalog/types.d.ts +0 -18
- package/dist/index.cjs +18 -310
- package/dist/index.d.ts +0 -1
- package/dist/index.js +18 -310
- package/dist/rules/configContracts.d.ts +3 -1
- package/package.json +1 -1
- package/dist/catalog/api/graphql-query/config.d.ts +0 -36
- package/dist/catalog/api/graphql-query/index.d.ts +0 -7
- package/dist/catalog/storage/file-action/config.d.ts +0 -197
- package/dist/catalog/storage/file-action/index.d.ts +0 -2
- package/dist/catalog/storage/file-operation/config.d.ts +0 -49
- package/dist/catalog/storage/file-operation/index.d.ts +0 -8
- package/dist/catalog/transforms/format/config.d.ts +0 -24
- package/dist/catalog/transforms/format/index.d.ts +0 -5
- package/dist/catalog/utility/error/config.d.ts +0 -26
- package/dist/catalog/utility/error/index.d.ts +0 -7
|
@@ -43,6 +43,8 @@ export interface HTTPRequestConfigType {
|
|
|
43
43
|
method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
44
44
|
baseUrl?: string;
|
|
45
45
|
url: string;
|
|
46
|
+
/** An OpenAPI connection: its base URL is joined to a relative `url` at run time. */
|
|
47
|
+
connectionId?: string;
|
|
46
48
|
queryParams?: ApiKeyValue[];
|
|
47
49
|
headers?: ApiKeyValue[] | Record<string, string>;
|
|
48
50
|
bodyType?: 'none' | 'json' | 'raw' | 'form-data' | 'xml';
|
package/dist/catalog/index.d.ts
CHANGED
|
@@ -33,9 +33,7 @@ import { teamsMessageDefinition } from './communication/teams-message';
|
|
|
33
33
|
import { googleChatDefinition } from './communication/google-chat';
|
|
34
34
|
import { webhookCallDefinition } from './communication/webhook-call';
|
|
35
35
|
import { debugDefinition } from './utility/debug';
|
|
36
|
-
import { errorDefinition } from './utility/error';
|
|
37
36
|
import { variablesDefinition } from './utility/variables';
|
|
38
|
-
import { graphqlQueryDefinition } from './api/graphql-query';
|
|
39
37
|
import { aiAgentDefinition } from './ai/ai-agent';
|
|
40
38
|
import { idpExtractDefinition } from './ai/idp-extract';
|
|
41
39
|
/**
|
|
@@ -55,4 +53,4 @@ export declare const getActionById: (id: string) => ActionDefinition | undefined
|
|
|
55
53
|
* Get actions by category
|
|
56
54
|
*/
|
|
57
55
|
export declare const getActionsByCategory: (category: ActionCategory) => ActionDefinition[];
|
|
58
|
-
export { csvActionDefinition, jsonActionDefinition, xmlActionDefinition, excelActionDefinition, s3ActionDefinition, ftpActionDefinition, googleDriveActionDefinition, dropboxActionDefinition, onedriveActionDefinition, manualTriggerDefinition, scheduleTriggerDefinition, webhookTriggerDefinition, httpRequestDefinition, consoleLogDefinition, delayDefinition, conditionDefinition, forEachDefinition, groupDefinition, queryDefinition, transformDefinition, aggregateDefinition, debugDefinition,
|
|
56
|
+
export { csvActionDefinition, jsonActionDefinition, xmlActionDefinition, excelActionDefinition, s3ActionDefinition, ftpActionDefinition, googleDriveActionDefinition, dropboxActionDefinition, onedriveActionDefinition, manualTriggerDefinition, scheduleTriggerDefinition, webhookTriggerDefinition, httpRequestDefinition, consoleLogDefinition, delayDefinition, conditionDefinition, forEachDefinition, groupDefinition, queryDefinition, transformDefinition, aggregateDefinition, debugDefinition, variablesDefinition, emailDefinition, slackMessageDefinition, whatsappSendDefinition, teamsMessageDefinition, googleChatDefinition, webhookCallDefinition, aiAgentDefinition, idpExtractDefinition, };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What the file-format actions share.
|
|
3
3
|
*
|
|
4
|
-
* `csv_action`, `json_action`, `xml_action
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `csv_action`, `json_action`, `xml_action` and `excel_action` are one panel
|
|
5
|
+
* family (CsvConfigPanel + FileEditControls in the editor) and one executor
|
|
6
|
+
* family (`doEditFile` in the Engine). The keys they share when `operation`
|
|
7
|
+
* is `edit` live here once, so four contracts cannot drift from
|
|
8
8
|
* each other the way `index.ts` and `config.ts` once did.
|
|
9
9
|
*
|
|
10
10
|
* Shapes are what the editor WRITES and the Engine READS today — not what
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* `connectorId`, `connectorName`, `subscribed`, `eventCount` and `summary` are
|
|
9
9
|
* written by the panel (and by the Backend on an agent's behalf) so the canvas
|
|
10
10
|
* and `check_flow` can read the registration without a second lookup. The
|
|
11
|
-
* Google Sheets keys apply only when `connectorId` is `google_sheets
|
|
11
|
+
* Google Sheets keys apply only when `connectorId` is `google_sheets`, and
|
|
12
|
+
* `folderPath` only when it is `dropbox`.
|
|
12
13
|
*/
|
|
13
14
|
import { type ConnectorTriggerEvent } from './events';
|
|
14
15
|
export interface ConnectorTriggerConfigType {
|
|
@@ -34,6 +35,8 @@ export interface ConnectorTriggerConfigType {
|
|
|
34
35
|
sheetName?: string;
|
|
35
36
|
/** Google Sheets: the column that identifies a row, for change detection. */
|
|
36
37
|
sheetKeyColumn?: string;
|
|
38
|
+
/** Dropbox: the folder watched, recursively ('' or absent = the whole Dropbox). */
|
|
39
|
+
folderPath?: string;
|
|
37
40
|
/** Free text the Engine adds to the trigger's output when set. */
|
|
38
41
|
description?: string;
|
|
39
42
|
}
|
|
@@ -95,6 +98,11 @@ export declare const ConnectorTriggerConfig: {
|
|
|
95
98
|
required: boolean;
|
|
96
99
|
description: string;
|
|
97
100
|
};
|
|
101
|
+
folderPath: {
|
|
102
|
+
type: string;
|
|
103
|
+
required: boolean;
|
|
104
|
+
description: string;
|
|
105
|
+
};
|
|
98
106
|
description: {
|
|
99
107
|
type: string;
|
|
100
108
|
required: boolean;
|
package/dist/catalog/types.d.ts
CHANGED
|
@@ -26,30 +26,16 @@ export declare enum ActionType {
|
|
|
26
26
|
Schedule = "schedule",
|
|
27
27
|
Webhook = "webhook",
|
|
28
28
|
Manual = "manual",
|
|
29
|
-
DataChange = "data_change",
|
|
30
29
|
Event = "event",
|
|
31
|
-
Read = "read",
|
|
32
30
|
Write = "write",
|
|
33
|
-
Update = "update",
|
|
34
|
-
Delete = "delete",
|
|
35
31
|
Query = "query",
|
|
36
32
|
HTTPRequest = "http_request",
|
|
37
|
-
GraphQLQuery = "graphql_query",
|
|
38
33
|
Condition = "condition",
|
|
39
34
|
ForEach = "for_each",
|
|
40
35
|
Group = "group",
|
|
41
|
-
Format = "format",
|
|
42
36
|
AIAgent = "ai_agent",
|
|
43
|
-
Embedding = "embedding",
|
|
44
|
-
VectorSearch = "vector_search",
|
|
45
|
-
ImageGeneration = "image_generation",
|
|
46
|
-
ImageAnalysis = "image_analysis",
|
|
47
|
-
SpeechToText = "speech_to_text",
|
|
48
|
-
TextToSpeech = "text_to_speech",
|
|
49
37
|
Transform = "transform",
|
|
50
38
|
Aggregate = "aggregate",
|
|
51
|
-
FileOperation = "file_operation",
|
|
52
|
-
FileAction = "file_action",
|
|
53
39
|
CsvAction = "csv_action",
|
|
54
40
|
JsonAction = "json_action",
|
|
55
41
|
XmlAction = "xml_action",
|
|
@@ -67,12 +53,8 @@ export declare enum ActionType {
|
|
|
67
53
|
GoogleChat = "google_chat",
|
|
68
54
|
WebhookCall = "webhook_call",
|
|
69
55
|
Delay = "delay",
|
|
70
|
-
Wait = "wait",
|
|
71
56
|
Console = "console",
|
|
72
57
|
Debug = "debug",
|
|
73
|
-
Error = "error",
|
|
74
|
-
CustomCode = "custom_code",
|
|
75
|
-
CustomAction = "custom_action",
|
|
76
58
|
IdpExtract = "idp_extract"
|
|
77
59
|
}
|
|
78
60
|
export declare enum ActionStatus {
|
package/dist/index.cjs
CHANGED
|
@@ -61,10 +61,6 @@ __export(exports_src, {
|
|
|
61
61
|
EdgeType: () => EdgeType,
|
|
62
62
|
EmailConfig: () => EmailConfig,
|
|
63
63
|
ExcelActionConfig: () => ExcelActionConfig,
|
|
64
|
-
FILE_ACTION_FORMATS: () => FILE_ACTION_FORMATS,
|
|
65
|
-
FILE_ACTION_MODES: () => FILE_ACTION_MODES,
|
|
66
|
-
FILE_ACTION_OUTPUT_FORMATS: () => FILE_ACTION_OUTPUT_FORMATS,
|
|
67
|
-
FILE_ACTION_SOURCES: () => FILE_ACTION_SOURCES,
|
|
68
64
|
FILE_EDIT_DESTINATIONS: () => FILE_EDIT_DESTINATIONS,
|
|
69
65
|
FILE_EDIT_MATCH_OPS: () => FILE_EDIT_MATCH_OPS,
|
|
70
66
|
FILE_EDIT_OPERATIONS: () => FILE_EDIT_OPERATIONS,
|
|
@@ -73,7 +69,6 @@ __export(exports_src, {
|
|
|
73
69
|
FILE_FORMAT_OPERATIONS: () => FILE_FORMAT_OPERATIONS,
|
|
74
70
|
FTP_OPERATIONS: () => FTP_OPERATIONS,
|
|
75
71
|
FieldType: () => FieldType,
|
|
76
|
-
FileActionConfig: () => FileActionConfig,
|
|
77
72
|
ForEachConfig: () => ForEachConfig,
|
|
78
73
|
FtpActionConfig: () => FtpActionConfig,
|
|
79
74
|
GOOGLE_DRIVE_OPERATIONS: () => GOOGLE_DRIVE_OPERATIONS,
|
|
@@ -187,30 +182,16 @@ var ActionType;
|
|
|
187
182
|
ActionType["Schedule"] = "schedule";
|
|
188
183
|
ActionType["Webhook"] = "webhook";
|
|
189
184
|
ActionType["Manual"] = "manual";
|
|
190
|
-
ActionType["DataChange"] = "data_change";
|
|
191
185
|
ActionType["Event"] = "event";
|
|
192
|
-
ActionType["Read"] = "read";
|
|
193
186
|
ActionType["Write"] = "write";
|
|
194
|
-
ActionType["Update"] = "update";
|
|
195
|
-
ActionType["Delete"] = "delete";
|
|
196
187
|
ActionType["Query"] = "query";
|
|
197
188
|
ActionType["HTTPRequest"] = "http_request";
|
|
198
|
-
ActionType["GraphQLQuery"] = "graphql_query";
|
|
199
189
|
ActionType["Condition"] = "condition";
|
|
200
190
|
ActionType["ForEach"] = "for_each";
|
|
201
191
|
ActionType["Group"] = "group";
|
|
202
|
-
ActionType["Format"] = "format";
|
|
203
192
|
ActionType["AIAgent"] = "ai_agent";
|
|
204
|
-
ActionType["Embedding"] = "embedding";
|
|
205
|
-
ActionType["VectorSearch"] = "vector_search";
|
|
206
|
-
ActionType["ImageGeneration"] = "image_generation";
|
|
207
|
-
ActionType["ImageAnalysis"] = "image_analysis";
|
|
208
|
-
ActionType["SpeechToText"] = "speech_to_text";
|
|
209
|
-
ActionType["TextToSpeech"] = "text_to_speech";
|
|
210
193
|
ActionType["Transform"] = "transform";
|
|
211
194
|
ActionType["Aggregate"] = "aggregate";
|
|
212
|
-
ActionType["FileOperation"] = "file_operation";
|
|
213
|
-
ActionType["FileAction"] = "file_action";
|
|
214
195
|
ActionType["CsvAction"] = "csv_action";
|
|
215
196
|
ActionType["JsonAction"] = "json_action";
|
|
216
197
|
ActionType["XmlAction"] = "xml_action";
|
|
@@ -228,12 +209,8 @@ var ActionType;
|
|
|
228
209
|
ActionType["GoogleChat"] = "google_chat";
|
|
229
210
|
ActionType["WebhookCall"] = "webhook_call";
|
|
230
211
|
ActionType["Delay"] = "delay";
|
|
231
|
-
ActionType["Wait"] = "wait";
|
|
232
212
|
ActionType["Console"] = "console";
|
|
233
213
|
ActionType["Debug"] = "debug";
|
|
234
|
-
ActionType["Error"] = "error";
|
|
235
|
-
ActionType["CustomCode"] = "custom_code";
|
|
236
|
-
ActionType["CustomAction"] = "custom_action";
|
|
237
214
|
ActionType["IdpExtract"] = "idp_extract";
|
|
238
215
|
})(ActionType ||= {});
|
|
239
216
|
var ActionStatus;
|
|
@@ -2586,48 +2563,6 @@ var debugDefinition = {
|
|
|
2586
2563
|
testable: false
|
|
2587
2564
|
};
|
|
2588
2565
|
|
|
2589
|
-
// src/catalog/utility/error/index.ts
|
|
2590
|
-
var errorDefinition = {
|
|
2591
|
-
id: "error",
|
|
2592
|
-
name: "Error",
|
|
2593
|
-
description: "Throw an error to stop workflow execution",
|
|
2594
|
-
category: "utility" /* Utility */,
|
|
2595
|
-
type: "error" /* Error */,
|
|
2596
|
-
tags: ["utility", "error", "control", "built-in"],
|
|
2597
|
-
status: "stable" /* Stable */,
|
|
2598
|
-
icon: "ErrorFilled",
|
|
2599
|
-
color: "#da3742",
|
|
2600
|
-
inputSchema: {
|
|
2601
|
-
fields: [
|
|
2602
|
-
{
|
|
2603
|
-
key: "message",
|
|
2604
|
-
label: "Error Message",
|
|
2605
|
-
type: "string" /* String */,
|
|
2606
|
-
description: "Error message to throw",
|
|
2607
|
-
validation: { required: true }
|
|
2608
|
-
},
|
|
2609
|
-
{
|
|
2610
|
-
key: "code",
|
|
2611
|
-
label: "Error Code",
|
|
2612
|
-
type: "string" /* String */,
|
|
2613
|
-
description: "Error code",
|
|
2614
|
-
validation: { required: false }
|
|
2615
|
-
}
|
|
2616
|
-
]
|
|
2617
|
-
},
|
|
2618
|
-
outputSchema: {
|
|
2619
|
-
type: "void",
|
|
2620
|
-
properties: [],
|
|
2621
|
-
sampleOutput: null
|
|
2622
|
-
},
|
|
2623
|
-
version: "1.0.0",
|
|
2624
|
-
createdAt: "2025-01-01T00:00:00Z",
|
|
2625
|
-
updatedAt: "2025-12-15T00:00:00Z",
|
|
2626
|
-
createdBy: "system",
|
|
2627
|
-
isOfficial: true,
|
|
2628
|
-
testable: true
|
|
2629
|
-
};
|
|
2630
|
-
|
|
2631
2566
|
// src/catalog/utility/variables/index.ts
|
|
2632
2567
|
var variablesDefinition = {
|
|
2633
2568
|
id: "variables",
|
|
@@ -2653,77 +2588,6 @@ var variablesDefinition = {
|
|
|
2653
2588
|
testable: false
|
|
2654
2589
|
};
|
|
2655
2590
|
|
|
2656
|
-
// src/catalog/api/graphql-query/index.ts
|
|
2657
|
-
var graphqlQueryDefinition = {
|
|
2658
|
-
id: "graphql_query",
|
|
2659
|
-
name: "GraphQL Query",
|
|
2660
|
-
description: "Execute GraphQL queries against GraphQL endpoints",
|
|
2661
|
-
category: "api" /* API */,
|
|
2662
|
-
type: "graphql_query" /* GraphQLQuery */,
|
|
2663
|
-
tags: ["api", "graphql", "query", "built-in"],
|
|
2664
|
-
status: "stable" /* Stable */,
|
|
2665
|
-
icon: "GraphQL",
|
|
2666
|
-
color: "#0043ce",
|
|
2667
|
-
inputSchema: {
|
|
2668
|
-
fields: [
|
|
2669
|
-
{
|
|
2670
|
-
key: "endpoint",
|
|
2671
|
-
label: "GraphQL Endpoint",
|
|
2672
|
-
type: "url" /* URL */,
|
|
2673
|
-
description: "GraphQL endpoint URL",
|
|
2674
|
-
validation: { required: true }
|
|
2675
|
-
},
|
|
2676
|
-
{
|
|
2677
|
-
key: "query",
|
|
2678
|
-
label: "Query",
|
|
2679
|
-
type: "code" /* Code */,
|
|
2680
|
-
description: "GraphQL query",
|
|
2681
|
-
language: "json",
|
|
2682
|
-
validation: { required: true }
|
|
2683
|
-
},
|
|
2684
|
-
{
|
|
2685
|
-
key: "variables",
|
|
2686
|
-
label: "Variables",
|
|
2687
|
-
type: "json" /* JSON */,
|
|
2688
|
-
description: "Query variables",
|
|
2689
|
-
validation: { required: false }
|
|
2690
|
-
},
|
|
2691
|
-
{
|
|
2692
|
-
key: "headers",
|
|
2693
|
-
label: "Headers",
|
|
2694
|
-
type: "json" /* JSON */,
|
|
2695
|
-
description: "HTTP headers",
|
|
2696
|
-
validation: { required: false }
|
|
2697
|
-
}
|
|
2698
|
-
]
|
|
2699
|
-
},
|
|
2700
|
-
outputSchema: {
|
|
2701
|
-
type: "object",
|
|
2702
|
-
properties: [
|
|
2703
|
-
{
|
|
2704
|
-
key: "data",
|
|
2705
|
-
type: "json" /* JSON */,
|
|
2706
|
-
description: "Query result data"
|
|
2707
|
-
},
|
|
2708
|
-
{
|
|
2709
|
-
key: "errors",
|
|
2710
|
-
type: "array" /* Array */,
|
|
2711
|
-
description: "GraphQL errors"
|
|
2712
|
-
}
|
|
2713
|
-
],
|
|
2714
|
-
sampleOutput: {
|
|
2715
|
-
data: { user: { id: "1", name: "John" } },
|
|
2716
|
-
errors: []
|
|
2717
|
-
}
|
|
2718
|
-
},
|
|
2719
|
-
version: "1.0.0",
|
|
2720
|
-
createdAt: "2025-01-01T00:00:00Z",
|
|
2721
|
-
updatedAt: "2025-12-15T00:00:00Z",
|
|
2722
|
-
createdBy: "system",
|
|
2723
|
-
isOfficial: true,
|
|
2724
|
-
testable: true
|
|
2725
|
-
};
|
|
2726
|
-
|
|
2727
2591
|
// src/catalog/ai/ai-agent/index.ts
|
|
2728
2592
|
var aiAgentDefinition = {
|
|
2729
2593
|
id: "ai_agent",
|
|
@@ -2881,8 +2745,6 @@ var actionsRegistry = {
|
|
|
2881
2745
|
for_each: forEachDefinition,
|
|
2882
2746
|
group: groupDefinition
|
|
2883
2747
|
},
|
|
2884
|
-
["transform" /* Transform */]: {},
|
|
2885
|
-
["database" /* Database */]: {},
|
|
2886
2748
|
["storage" /* Storage */]: {
|
|
2887
2749
|
csv_action: csvActionDefinition,
|
|
2888
2750
|
json_action: jsonActionDefinition,
|
|
@@ -2907,8 +2769,6 @@ var actionsRegistry = {
|
|
|
2907
2769
|
variables: variablesDefinition,
|
|
2908
2770
|
debug: debugDefinition
|
|
2909
2771
|
},
|
|
2910
|
-
["ecommerce" /* Ecommerce */]: {},
|
|
2911
|
-
["api" /* API */]: {},
|
|
2912
2772
|
["ai" /* AI */]: {
|
|
2913
2773
|
ai_agent: aiAgentDefinition,
|
|
2914
2774
|
idp_extract: idpExtractDefinition
|
|
@@ -3864,7 +3724,7 @@ var TRANSFORM_OPERATIONS = [
|
|
|
3864
3724
|
{ id: "delete", label: "Delete" }
|
|
3865
3725
|
];
|
|
3866
3726
|
var TRANSFORM_OPERATION_IDS = TRANSFORM_OPERATIONS.map((o) => o.id);
|
|
3867
|
-
var DATABASE_CONNECTOR_IDS = new Set(["mongodb", "postgresql", "mysql", "
|
|
3727
|
+
var DATABASE_CONNECTOR_IDS = new Set(["mongodb", "postgresql", "mysql", "google_sheets"]);
|
|
3868
3728
|
var TransformConfig = {
|
|
3869
3729
|
defaults: {
|
|
3870
3730
|
name: "Transform",
|
|
@@ -3897,7 +3757,7 @@ var TransformConfig = {
|
|
|
3897
3757
|
database: {
|
|
3898
3758
|
type: "text",
|
|
3899
3759
|
required: false,
|
|
3900
|
-
description: "Database name for MongoDB / PostgreSQL / MySQL
|
|
3760
|
+
description: "Database name for MongoDB / PostgreSQL / MySQL; the spreadsheet id for Google Sheets"
|
|
3901
3761
|
},
|
|
3902
3762
|
objectName: {
|
|
3903
3763
|
type: "select",
|
|
@@ -4542,7 +4402,8 @@ var EVENT_CAPABLE_CONNECTOR_IDS = new Set([
|
|
|
4542
4402
|
"hubspot",
|
|
4543
4403
|
"salesforce",
|
|
4544
4404
|
"google_sheets",
|
|
4545
|
-
"whatsapp"
|
|
4405
|
+
"whatsapp",
|
|
4406
|
+
"dropbox"
|
|
4546
4407
|
]);
|
|
4547
4408
|
var QBO_ENTITIES = [
|
|
4548
4409
|
{ entity: "Invoice", supportedOperations: ["Create", "Update", "Delete", "Void", "Emailed"] },
|
|
@@ -4595,13 +4456,17 @@ var GOOGLE_SHEETS_ENTITIES = [
|
|
|
4595
4456
|
var WHATSAPP_ENTITIES = [
|
|
4596
4457
|
{ entity: "Message", supportedOperations: ["Received"] }
|
|
4597
4458
|
];
|
|
4459
|
+
var DROPBOX_ENTITIES = [
|
|
4460
|
+
{ entity: "File", supportedOperations: ["Create", "Update", "Delete"] }
|
|
4461
|
+
];
|
|
4598
4462
|
var CONNECTOR_EVENT_ENTITIES = {
|
|
4599
4463
|
quickbooks_online: QBO_ENTITIES,
|
|
4600
4464
|
salesforce: SALESFORCE_ENTITIES,
|
|
4601
4465
|
hubspot: HUBSPOT_ENTITIES,
|
|
4602
4466
|
shopify: SHOPIFY_ENTITIES,
|
|
4603
4467
|
google_sheets: GOOGLE_SHEETS_ENTITIES,
|
|
4604
|
-
whatsapp: WHATSAPP_ENTITIES
|
|
4468
|
+
whatsapp: WHATSAPP_ENTITIES,
|
|
4469
|
+
dropbox: DROPBOX_ENTITIES
|
|
4605
4470
|
};
|
|
4606
4471
|
function getEntitiesForConnector(connectorId) {
|
|
4607
4472
|
return CONNECTOR_EVENT_ENTITIES[connectorId] ?? [];
|
|
@@ -4671,6 +4536,7 @@ var ConnectorTriggerConfig = {
|
|
|
4671
4536
|
sheetFileLabel: { type: "string", required: false, description: "Google Sheets: spreadsheet name" },
|
|
4672
4537
|
sheetName: { type: "string", required: false, description: "Google Sheets: tab name" },
|
|
4673
4538
|
sheetKeyColumn: { type: "string", required: false, description: "Google Sheets: row key column" },
|
|
4539
|
+
folderPath: { type: "string", required: false, description: "Dropbox: folder watched, recursively, e.g. /Invoices (empty = the whole Dropbox)" },
|
|
4674
4540
|
description: { type: "string", required: false, description: "Added to the trigger output when set" }
|
|
4675
4541
|
},
|
|
4676
4542
|
validate: (config) => {
|
|
@@ -4832,50 +4698,6 @@ var ExcelActionConfig = {
|
|
|
4832
4698
|
merge: (userConfig) => ({ ...ExcelActionConfig.defaults, ...userConfig }),
|
|
4833
4699
|
getLabel: (config) => `Excel: ${config.operation || "parse"}`
|
|
4834
4700
|
};
|
|
4835
|
-
// src/catalog/storage/file-action/config.ts
|
|
4836
|
-
var FILE_ACTION_MODES = ["parse", "generate", "convert", "edit"];
|
|
4837
|
-
var FILE_ACTION_SOURCES = ["inline", "s3", "url", "previous_step", "upload"];
|
|
4838
|
-
var FILE_ACTION_FORMATS = ["auto", "csv", "tsv", "json", "jsonl", "xml", "excel"];
|
|
4839
|
-
var FILE_ACTION_OUTPUT_FORMATS = ["csv", "json", "excel", "xml", "tsv"];
|
|
4840
|
-
var FileActionConfig = {
|
|
4841
|
-
defaults: {
|
|
4842
|
-
mode: "parse",
|
|
4843
|
-
source: "inline",
|
|
4844
|
-
format: "auto"
|
|
4845
|
-
},
|
|
4846
|
-
schema: {
|
|
4847
|
-
...FILE_EDIT_SCHEMA,
|
|
4848
|
-
mode: { type: "select", required: true, options: FILE_ACTION_MODES, description: "parse, generate, convert or edit" },
|
|
4849
|
-
operation: { type: "select", required: false, options: FILE_ACTION_MODES, description: "Alias of mode; read first when both are set" },
|
|
4850
|
-
source: { type: "select", required: false, options: FILE_ACTION_SOURCES, description: "Where the file comes from (inline by default)" },
|
|
4851
|
-
format: { type: "select", required: false, options: FILE_ACTION_FORMATS, description: "File format; auto-detected from the name, then the content" },
|
|
4852
|
-
inlineContent: { type: "text", required: false, description: 'source "inline": the text (base64 for Excel)' },
|
|
4853
|
-
content: { type: "text", required: false, description: "Alias of inlineContent" },
|
|
4854
|
-
outputFormat: { type: "select", required: false, options: FILE_ACTION_OUTPUT_FORMATS, description: "generate / convert: format to write" },
|
|
4855
|
-
outputFileName: { type: "string", required: false, description: "generate / convert: name of the produced file" },
|
|
4856
|
-
fileName: { type: "string", required: false, description: "Name used to detect the format" },
|
|
4857
|
-
encoding: { type: "string", required: false },
|
|
4858
|
-
delimiter: { type: "string", required: false, description: "CSV / TSV delimiter" },
|
|
4859
|
-
headerRow: { type: "number", required: false, min: 1 },
|
|
4860
|
-
rowElement: { type: "string", required: false, description: "XML element that holds one record" },
|
|
4861
|
-
sheetName: { type: "string", required: false, description: "Excel sheet to read" },
|
|
4862
|
-
includeHeader: { type: "boolean", required: false },
|
|
4863
|
-
options: { type: "json", required: false, description: "Parser options read ahead of the top-level keys" }
|
|
4864
|
-
},
|
|
4865
|
-
validate: (config) => {
|
|
4866
|
-
const errors = [];
|
|
4867
|
-
const mode = config.operation || config.mode;
|
|
4868
|
-
if (mode !== undefined && mode !== "" && !FILE_ACTION_MODES.includes(mode)) {
|
|
4869
|
-
errors.push(`Unknown mode "${mode}" — use parse, generate, convert or edit`);
|
|
4870
|
-
}
|
|
4871
|
-
if (config.source === "upload")
|
|
4872
|
-
errors.push('source "upload" is not supported at run time');
|
|
4873
|
-
errors.push(...fileEditErrors({ ...config, operation: mode, source: undefined }));
|
|
4874
|
-
return { valid: errors.length === 0, errors };
|
|
4875
|
-
},
|
|
4876
|
-
merge: (userConfig) => ({ ...FileActionConfig.defaults, ...userConfig }),
|
|
4877
|
-
getLabel: (config) => `File: ${config.operation || config.mode || "parse"}`
|
|
4878
|
-
};
|
|
4879
4701
|
// src/catalog/storage/storage-action/config.ts
|
|
4880
4702
|
var FIXED_SCHEMA = {
|
|
4881
4703
|
connector: { type: "connection", required: true, description: "Storage connector instance; its provider decides the operations" },
|
|
@@ -5553,6 +5375,13 @@ var DelayConfig = {
|
|
|
5553
5375
|
};
|
|
5554
5376
|
|
|
5555
5377
|
// src/catalog/actions/http-request/config.ts
|
|
5378
|
+
function urlCheckedAtRunTime(url, connectionId) {
|
|
5379
|
+
const u = url.trim();
|
|
5380
|
+
if (u.startsWith("{{"))
|
|
5381
|
+
return true;
|
|
5382
|
+
const hasScheme = /^[a-z][a-z0-9+.-]*:/i.test(u);
|
|
5383
|
+
return !!connectionId && !hasScheme;
|
|
5384
|
+
}
|
|
5556
5385
|
var HTTPRequestConfig = {
|
|
5557
5386
|
defaults: {
|
|
5558
5387
|
apiType: "rest",
|
|
@@ -5630,7 +5459,7 @@ var HTTPRequestConfig = {
|
|
|
5630
5459
|
}
|
|
5631
5460
|
if (!config.url) {
|
|
5632
5461
|
errors.push("URL is required");
|
|
5633
|
-
} else if (typeof config.url === "string") {
|
|
5462
|
+
} else if (typeof config.url === "string" && !urlCheckedAtRunTime(config.url, config.connectionId)) {
|
|
5634
5463
|
try {
|
|
5635
5464
|
new URL(config.url);
|
|
5636
5465
|
} catch {
|
|
@@ -5659,36 +5488,6 @@ var HTTPRequestConfig = {
|
|
|
5659
5488
|
}
|
|
5660
5489
|
};
|
|
5661
5490
|
|
|
5662
|
-
// src/catalog/api/graphql-query/config.ts
|
|
5663
|
-
var GraphQLQueryConfig = {
|
|
5664
|
-
defaults: {
|
|
5665
|
-
endpoint: "",
|
|
5666
|
-
query: "",
|
|
5667
|
-
variables: {},
|
|
5668
|
-
headers: {}
|
|
5669
|
-
},
|
|
5670
|
-
schema: {
|
|
5671
|
-
endpoint: { type: "url", required: true },
|
|
5672
|
-
query: { type: "code", required: true },
|
|
5673
|
-
variables: { type: "json", required: false },
|
|
5674
|
-
headers: { type: "json", required: false }
|
|
5675
|
-
},
|
|
5676
|
-
validate: (config) => {
|
|
5677
|
-
const errors = [];
|
|
5678
|
-
if (!config.endpoint)
|
|
5679
|
-
errors.push("Endpoint is required");
|
|
5680
|
-
if (!config.query)
|
|
5681
|
-
errors.push("Query is required");
|
|
5682
|
-
return { valid: errors.length === 0, errors };
|
|
5683
|
-
},
|
|
5684
|
-
merge: (userConfig) => {
|
|
5685
|
-
return { ...GraphQLQueryConfig.defaults, ...userConfig };
|
|
5686
|
-
},
|
|
5687
|
-
getLabel: (config) => {
|
|
5688
|
-
return `GraphQL: ${config.endpoint}`;
|
|
5689
|
-
}
|
|
5690
|
-
};
|
|
5691
|
-
|
|
5692
5491
|
// src/catalog/communication/google-chat/config.ts
|
|
5693
5492
|
var GoogleChatConfig = {
|
|
5694
5493
|
defaults: { connection: "", space: "", spaceName: "", text: "", threadKey: "" },
|
|
@@ -5844,68 +5643,6 @@ var WhatsappSendConfig = {
|
|
|
5844
5643
|
getLabel: (config) => config.mode === "text" ? `WhatsApp to ${config.to || "—"}` : `WhatsApp template "${config.templateName || "—"}" to ${config.to || "—"}`
|
|
5845
5644
|
};
|
|
5846
5645
|
|
|
5847
|
-
// src/catalog/storage/file-operation/config.ts
|
|
5848
|
-
var FileOperationConfig = {
|
|
5849
|
-
defaults: {
|
|
5850
|
-
connection: "",
|
|
5851
|
-
operation: "upload",
|
|
5852
|
-
sourcePath: "",
|
|
5853
|
-
destinationPath: "",
|
|
5854
|
-
fileContent: "",
|
|
5855
|
-
options: {}
|
|
5856
|
-
},
|
|
5857
|
-
schema: {
|
|
5858
|
-
connection: { type: "connection", required: true },
|
|
5859
|
-
operation: { type: "select", required: true, options: ["upload", "download", "delete", "list", "copy", "move", "exists"] },
|
|
5860
|
-
sourcePath: { type: "string", required: false },
|
|
5861
|
-
destinationPath: { type: "string", required: true },
|
|
5862
|
-
fileContent: { type: "string", required: false },
|
|
5863
|
-
options: { type: "json", required: false }
|
|
5864
|
-
},
|
|
5865
|
-
validate: (config) => {
|
|
5866
|
-
const errors = [];
|
|
5867
|
-
if (!config.connection)
|
|
5868
|
-
errors.push("Storage connection is required");
|
|
5869
|
-
if (!config.operation)
|
|
5870
|
-
errors.push("Operation is required");
|
|
5871
|
-
if (!config.destinationPath)
|
|
5872
|
-
errors.push("Destination path is required");
|
|
5873
|
-
if (config.operation === "upload" || config.operation === "copy" || config.operation === "move") {
|
|
5874
|
-
if (!config.sourcePath) {
|
|
5875
|
-
errors.push("Source path is required for upload/copy/move operations");
|
|
5876
|
-
}
|
|
5877
|
-
}
|
|
5878
|
-
return { valid: errors.length === 0, errors };
|
|
5879
|
-
},
|
|
5880
|
-
merge: (userConfig) => {
|
|
5881
|
-
return { ...FileOperationConfig.defaults, ...userConfig };
|
|
5882
|
-
},
|
|
5883
|
-
getLabel: (config) => {
|
|
5884
|
-
return `${config.operation.toUpperCase()}: ${config.destinationPath}`;
|
|
5885
|
-
}
|
|
5886
|
-
};
|
|
5887
|
-
|
|
5888
|
-
// src/catalog/transforms/format/config.ts
|
|
5889
|
-
var FormatConfig = {
|
|
5890
|
-
defaults: { input: "", format: "json" },
|
|
5891
|
-
schema: {
|
|
5892
|
-
input: { type: "expression", required: true },
|
|
5893
|
-
format: { type: "select", required: true, options: ["json", "csv", "xml", "yaml"] }
|
|
5894
|
-
},
|
|
5895
|
-
validate: (config) => {
|
|
5896
|
-
const errors = [];
|
|
5897
|
-
if (!config.input)
|
|
5898
|
-
errors.push("Input required");
|
|
5899
|
-
if (!config.format)
|
|
5900
|
-
errors.push("Format required");
|
|
5901
|
-
return { valid: errors.length === 0, errors };
|
|
5902
|
-
},
|
|
5903
|
-
merge: (userConfig) => {
|
|
5904
|
-
return { ...FormatConfig.defaults, ...userConfig };
|
|
5905
|
-
},
|
|
5906
|
-
getLabel: (config) => `Format as ${config.format.toUpperCase()}`
|
|
5907
|
-
};
|
|
5908
|
-
|
|
5909
5646
|
// src/catalog/triggers/schedule-trigger/config.ts
|
|
5910
5647
|
var ScheduleTriggerConfig = {
|
|
5911
5648
|
defaults: {
|
|
@@ -5973,37 +5710,12 @@ var WebhookTriggerConfig = {
|
|
|
5973
5710
|
}
|
|
5974
5711
|
};
|
|
5975
5712
|
|
|
5976
|
-
// src/catalog/utility/error/config.ts
|
|
5977
|
-
var ErrorConfig = {
|
|
5978
|
-
defaults: {
|
|
5979
|
-
message: "",
|
|
5980
|
-
code: undefined
|
|
5981
|
-
},
|
|
5982
|
-
schema: {
|
|
5983
|
-
message: { type: "string", required: true },
|
|
5984
|
-
code: { type: "string", required: false }
|
|
5985
|
-
},
|
|
5986
|
-
validate: (config) => {
|
|
5987
|
-
const errors = [];
|
|
5988
|
-
if (!config.message)
|
|
5989
|
-
errors.push("Error message is required");
|
|
5990
|
-
return { valid: errors.length === 0, errors };
|
|
5991
|
-
},
|
|
5992
|
-
merge: (userConfig) => {
|
|
5993
|
-
return { ...ErrorConfig.defaults, ...userConfig };
|
|
5994
|
-
},
|
|
5995
|
-
getLabel: (config) => {
|
|
5996
|
-
return `Error: ${config.message}`;
|
|
5997
|
-
}
|
|
5998
|
-
};
|
|
5999
|
-
|
|
6000
5713
|
// src/rules/configContracts.ts
|
|
6001
5714
|
var asValidator = (fn) => (config) => fn(config);
|
|
6002
5715
|
var CONFIG_CONTRACTS = {
|
|
6003
5716
|
console_log: { schema: ConsoleLogConfig.schema, validate: asValidator(ConsoleLogConfig.validate) },
|
|
6004
5717
|
delay: { schema: DelayConfig.schema, validate: asValidator(DelayConfig.validate) },
|
|
6005
5718
|
http_request: { schema: HTTPRequestConfig.schema, validate: asValidator(HTTPRequestConfig.validate) },
|
|
6006
|
-
graphql_query: { schema: GraphQLQueryConfig.schema, validate: asValidator(GraphQLQueryConfig.validate) },
|
|
6007
5719
|
email: { schema: EmailConfig.schema, validate: asValidator(EmailConfig.validate) },
|
|
6008
5720
|
google_chat: { schema: GoogleChatConfig.schema, validate: asValidator(GoogleChatConfig.validate) },
|
|
6009
5721
|
slack_message: { schema: SlackMessageConfig.schema, validate: asValidator(SlackMessageConfig.validate) },
|
|
@@ -6022,13 +5734,10 @@ var CONFIG_CONTRACTS = {
|
|
|
6022
5734
|
aggregate: { schema: AggregateConfig.schema, validate: asValidator(AggregateConfig.validate) },
|
|
6023
5735
|
condition: { schema: ConditionConfig.schema, validate: asValidator(ConditionConfig.validate) },
|
|
6024
5736
|
for_each: { schema: ForEachConfig.schema, validate: asValidator(ForEachConfig.validate) },
|
|
6025
|
-
file_operation: { schema: FileOperationConfig.schema, validate: asValidator(FileOperationConfig.validate) },
|
|
6026
|
-
format: { schema: FormatConfig.schema, validate: asValidator(FormatConfig.validate) },
|
|
6027
5737
|
manual_trigger: { schema: ManualTriggerConfig.schema, validate: asValidator(ManualTriggerConfig.validate) },
|
|
6028
5738
|
schedule_trigger: { schema: ScheduleTriggerConfig.schema, validate: asValidator(ScheduleTriggerConfig.validate) },
|
|
6029
5739
|
webhook_trigger: { schema: WebhookTriggerConfig.schema, validate: asValidator(WebhookTriggerConfig.validate) },
|
|
6030
5740
|
debug: { schema: DebugConfig.schema, validate: asValidator(DebugConfig.validate) },
|
|
6031
|
-
error: { schema: ErrorConfig.schema, validate: asValidator(ErrorConfig.validate) },
|
|
6032
5741
|
variables: { schema: VariablesConfig.schema, validate: asValidator(VariablesConfig.validate) },
|
|
6033
5742
|
ai_agent: { schema: AiAgentConfig.schema, validate: asValidator(AiAgentConfig.validate) },
|
|
6034
5743
|
idp_extract: { schema: IdpExtractConfig.schema, validate: asValidator(IdpExtractConfig.validate) },
|
|
@@ -6038,7 +5747,6 @@ var CONFIG_CONTRACTS = {
|
|
|
6038
5747
|
json_action: { schema: JsonActionConfig.schema, validate: asValidator(JsonActionConfig.validate) },
|
|
6039
5748
|
xml_action: { schema: XmlActionConfig.schema, validate: asValidator(XmlActionConfig.validate) },
|
|
6040
5749
|
excel_action: { schema: ExcelActionConfig.schema, validate: asValidator(ExcelActionConfig.validate) },
|
|
6041
|
-
file_action: { schema: FileActionConfig.schema, validate: asValidator(FileActionConfig.validate) },
|
|
6042
5750
|
storage_action: { schema: StorageActionConfig.schema, validate: asValidator(StorageActionConfig.validate) },
|
|
6043
5751
|
s3_action: { schema: S3ActionConfig.schema, validate: asValidator(S3ActionConfig.validate) },
|
|
6044
5752
|
ftp_action: { schema: FtpActionConfig.schema, validate: asValidator(FtpActionConfig.validate) },
|
package/dist/index.d.ts
CHANGED
|
@@ -50,7 +50,6 @@ export { CsvActionConfig, type CsvActionConfigType } from "./catalog/storage/csv
|
|
|
50
50
|
export { JsonActionConfig, type JsonActionConfigType } from "./catalog/storage/json-action/config";
|
|
51
51
|
export { XmlActionConfig, type XmlActionConfigType } from "./catalog/storage/xml-action/config";
|
|
52
52
|
export { ExcelActionConfig, type ExcelActionConfigType } from "./catalog/storage/excel-action/config";
|
|
53
|
-
export { FileActionConfig, FILE_ACTION_MODES, FILE_ACTION_SOURCES, FILE_ACTION_FORMATS, FILE_ACTION_OUTPUT_FORMATS, type FileActionConfigType, } from "./catalog/storage/file-action/config";
|
|
54
53
|
export { StorageActionConfig, storageOperations, type StorageActionConfigType } from "./catalog/storage/storage-action/config";
|
|
55
54
|
export { S3ActionConfig, S3_OPERATIONS, type S3ActionConfigType } from "./catalog/storage/s3-action/config";
|
|
56
55
|
export { FtpActionConfig, FTP_OPERATIONS, type FtpActionConfigType } from "./catalog/storage/ftp-action/config";
|