@rippling/rippling-sdk 0.2.0-alpha.102 → 0.2.0-alpha.104
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/examples/manifest/workflow-creation/workflow-creation.ts +142 -0
- package/lib/manifest/index.d.mts +2 -1
- package/lib/manifest/index.d.mts.map +1 -1
- package/lib/manifest/index.d.ts +2 -1
- package/lib/manifest/index.d.ts.map +1 -1
- package/lib/manifest/index.js +5 -2
- package/lib/manifest/index.js.map +1 -1
- package/lib/manifest/index.mjs +2 -1
- package/lib/manifest/index.mjs.map +1 -1
- package/lib/manifest/workflow/actions/index.d.mts +365 -0
- package/lib/manifest/workflow/actions/index.d.mts.map +1 -0
- package/lib/manifest/workflow/actions/index.d.ts +365 -0
- package/lib/manifest/workflow/actions/index.d.ts.map +1 -0
- package/lib/manifest/workflow/actions/index.js +47 -0
- package/lib/manifest/workflow/actions/index.js.map +1 -0
- package/lib/manifest/workflow/actions/index.mjs +44 -0
- package/lib/manifest/workflow/actions/index.mjs.map +1 -0
- package/lib/manifest/workflow/index.d.mts +384 -0
- package/lib/manifest/workflow/index.d.mts.map +1 -0
- package/lib/manifest/workflow/index.d.ts +384 -0
- package/lib/manifest/workflow/index.d.ts.map +1 -0
- package/lib/manifest/workflow/index.js +447 -0
- package/lib/manifest/workflow/index.js.map +1 -0
- package/lib/manifest/workflow/index.mjs +442 -0
- package/lib/manifest/workflow/index.mjs.map +1 -0
- package/package.json +1 -1
- package/resources/departments.d.mts +3 -5
- package/resources/departments.d.mts.map +1 -1
- package/resources/departments.d.ts +3 -5
- package/resources/departments.d.ts.map +1 -1
- package/resources/departments.js +2 -4
- package/resources/departments.js.map +1 -1
- package/resources/departments.mjs +2 -4
- package/resources/departments.mjs.map +1 -1
- package/resources/hires.d.mts +4 -8
- package/resources/hires.d.mts.map +1 -1
- package/resources/hires.d.ts +4 -8
- package/resources/hires.d.ts.map +1 -1
- package/resources/hires.js +4 -4
- package/resources/hires.mjs +4 -4
- package/resources/job-assignments.d.mts +10 -13
- package/resources/job-assignments.d.mts.map +1 -1
- package/resources/job-assignments.d.ts +10 -13
- package/resources/job-assignments.d.ts.map +1 -1
- package/resources/job-assignments.js +2 -5
- package/resources/job-assignments.js.map +1 -1
- package/resources/job-assignments.mjs +2 -5
- package/resources/job-assignments.mjs.map +1 -1
- package/resources/job-codes.d.mts +10 -13
- package/resources/job-codes.d.mts.map +1 -1
- package/resources/job-codes.d.ts +10 -13
- package/resources/job-codes.d.ts.map +1 -1
- package/resources/job-codes.js +2 -5
- package/resources/job-codes.js.map +1 -1
- package/resources/job-codes.mjs +2 -5
- package/resources/job-codes.mjs.map +1 -1
- package/resources/job-dimensions.d.mts +6 -8
- package/resources/job-dimensions.d.mts.map +1 -1
- package/resources/job-dimensions.d.ts +6 -8
- package/resources/job-dimensions.d.ts.map +1 -1
- package/resources/job-dimensions.js +2 -4
- package/resources/job-dimensions.js.map +1 -1
- package/resources/job-dimensions.mjs +2 -4
- package/resources/job-dimensions.mjs.map +1 -1
- package/resources/kiosk-badges.d.mts +3 -5
- package/resources/kiosk-badges.d.mts.map +1 -1
- package/resources/kiosk-badges.d.ts +3 -5
- package/resources/kiosk-badges.d.ts.map +1 -1
- package/resources/kiosk-badges.js +2 -4
- package/resources/kiosk-badges.js.map +1 -1
- package/resources/kiosk-badges.mjs +2 -4
- package/resources/kiosk-badges.mjs.map +1 -1
- package/resources/leave-accruals.d.mts +4 -4
- package/resources/leave-accruals.d.mts.map +1 -1
- package/resources/leave-accruals.d.ts +4 -4
- package/resources/leave-accruals.d.ts.map +1 -1
- package/resources/leave-requests.d.mts +18 -23
- package/resources/leave-requests.d.mts.map +1 -1
- package/resources/leave-requests.d.ts +18 -23
- package/resources/leave-requests.d.ts.map +1 -1
- package/resources/leave-requests.js +2 -7
- package/resources/leave-requests.js.map +1 -1
- package/resources/leave-requests.mjs +2 -7
- package/resources/leave-requests.mjs.map +1 -1
- package/resources/packages/packages.d.mts +17 -17
- package/resources/packages/packages.d.mts.map +1 -1
- package/resources/packages/packages.d.ts +17 -17
- package/resources/packages/packages.d.ts.map +1 -1
- package/resources/packages/packages.js +5 -5
- package/resources/packages/packages.mjs +5 -5
- package/resources/sandboxes.d.mts +7 -5
- package/resources/sandboxes.d.mts.map +1 -1
- package/resources/sandboxes.d.ts +7 -5
- package/resources/sandboxes.d.ts.map +1 -1
- package/resources/sandboxes.js +3 -1
- package/resources/sandboxes.js.map +1 -1
- package/resources/sandboxes.mjs +3 -1
- package/resources/sandboxes.mjs.map +1 -1
- package/resources/shift-assignments.d.mts +11 -6
- package/resources/shift-assignments.d.mts.map +1 -1
- package/resources/shift-assignments.d.ts +11 -6
- package/resources/shift-assignments.d.ts.map +1 -1
- package/resources/shift-assignments.js +8 -4
- package/resources/shift-assignments.js.map +1 -1
- package/resources/shift-assignments.mjs +8 -4
- package/resources/shift-assignments.mjs.map +1 -1
- package/resources/shift-inputs.d.mts +10 -15
- package/resources/shift-inputs.d.mts.map +1 -1
- package/resources/shift-inputs.d.ts +10 -15
- package/resources/shift-inputs.d.ts.map +1 -1
- package/resources/shift-inputs.js +2 -7
- package/resources/shift-inputs.js.map +1 -1
- package/resources/shift-inputs.mjs +2 -7
- package/resources/shift-inputs.mjs.map +1 -1
- package/resources/sites.d.mts +19 -6
- package/resources/sites.d.mts.map +1 -1
- package/resources/sites.d.ts +19 -6
- package/resources/sites.d.ts.map +1 -1
- package/resources/software-deployments.d.mts +6 -8
- package/resources/software-deployments.d.mts.map +1 -1
- package/resources/software-deployments.d.ts +6 -8
- package/resources/software-deployments.d.ts.map +1 -1
- package/resources/software-deployments.js +2 -4
- package/resources/software-deployments.js.map +1 -1
- package/resources/software-deployments.mjs +2 -4
- package/resources/software-deployments.mjs.map +1 -1
- package/resources/supergroups/members.d.mts +3 -1
- package/resources/supergroups/members.d.mts.map +1 -1
- package/resources/supergroups/members.d.ts +3 -1
- package/resources/supergroups/members.d.ts.map +1 -1
- package/resources/supergroups/members.js +3 -1
- package/resources/supergroups/members.js.map +1 -1
- package/resources/supergroups/members.mjs +3 -1
- package/resources/supergroups/members.mjs.map +1 -1
- package/resources/unassigned-shifts.d.mts +11 -6
- package/resources/unassigned-shifts.d.mts.map +1 -1
- package/resources/unassigned-shifts.d.ts +11 -6
- package/resources/unassigned-shifts.d.ts.map +1 -1
- package/resources/unassigned-shifts.js +8 -4
- package/resources/unassigned-shifts.js.map +1 -1
- package/resources/unassigned-shifts.mjs +8 -4
- package/resources/unassigned-shifts.mjs.map +1 -1
- package/resources/variable-compensation-payouts.d.mts +4 -4
- package/resources/variable-compensation-payouts.d.mts.map +1 -1
- package/resources/variable-compensation-payouts.d.ts +4 -4
- package/resources/variable-compensation-payouts.d.ts.map +1 -1
- package/resources/work-locations.d.mts +4 -7
- package/resources/work-locations.d.mts.map +1 -1
- package/resources/work-locations.d.ts +4 -7
- package/resources/work-locations.d.ts.map +1 -1
- package/resources/work-locations.js +2 -5
- package/resources/work-locations.js.map +1 -1
- package/resources/work-locations.mjs +2 -5
- package/resources/work-locations.mjs.map +1 -1
- package/src/lib/manifest/index.ts +40 -0
- package/src/lib/manifest/workflow/actions/index.ts +338 -0
- package/src/lib/manifest/workflow/index.ts +953 -0
- package/src/resources/departments.ts +7 -5
- package/src/resources/hires.ts +4 -9
- package/src/resources/job-assignments.ts +16 -15
- package/src/resources/job-codes.ts +16 -15
- package/src/resources/job-dimensions.ts +11 -9
- package/src/resources/kiosk-badges.ts +3 -5
- package/src/resources/leave-accruals.ts +8 -4
- package/src/resources/leave-requests.ts +21 -26
- package/src/resources/packages/packages.ts +17 -17
- package/src/resources/sandboxes.ts +7 -5
- package/src/resources/shift-assignments.ts +11 -8
- package/src/resources/shift-inputs.ts +11 -16
- package/src/resources/sites.ts +19 -6
- package/src/resources/software-deployments.ts +7 -9
- package/src/resources/supergroups/members.ts +3 -1
- package/src/resources/unassigned-shifts.ts +11 -8
- package/src/resources/variable-compensation-payouts.ts +0 -4
- package/src/resources/work-locations.ts +8 -7
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/lib/manifest/workflow.d.mts +0 -158
- package/lib/manifest/workflow.d.mts.map +0 -1
- package/lib/manifest/workflow.d.ts +0 -158
- package/lib/manifest/workflow.d.ts.map +0 -1
- package/lib/manifest/workflow.js +0 -51
- package/lib/manifest/workflow.js.map +0 -1
- package/lib/manifest/workflow.mjs +0 -47
- package/lib/manifest/workflow.mjs.map +0 -1
- package/src/lib/manifest/workflow.ts +0 -248
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { generateId } from "./_helpers.mjs";
|
|
2
|
-
/**
|
|
3
|
-
* Defines a simple Workflow Studio workflow and registers it with the manifest.
|
|
4
|
-
*
|
|
5
|
-
* This intentionally models only the authoring inputs we need today: workflow
|
|
6
|
-
* metadata, trigger JSON, and the function reference. The installer/backend can
|
|
7
|
-
* derive the graph from these fields later.
|
|
8
|
-
*/
|
|
9
|
-
export class Workflow {
|
|
10
|
-
static toDeletionIdentifier(identifier) {
|
|
11
|
-
const definitionId = typeof identifier === 'string' ? identifier : identifier.definitionId;
|
|
12
|
-
return {
|
|
13
|
-
type: Workflow.componentType,
|
|
14
|
-
definition_id: definitionId,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
constructor(scope, props) {
|
|
18
|
-
if (!props.function)
|
|
19
|
-
throw new Error('function is required');
|
|
20
|
-
this._definitionId = props.definitionId ?? generateId('workflow');
|
|
21
|
-
this._title = props.title;
|
|
22
|
-
this._description = props.description;
|
|
23
|
-
this._functionApiName = typeof props.function === 'string' ? props.function : props.function.getApiName();
|
|
24
|
-
this._trigger = props.trigger;
|
|
25
|
-
scope._register(this);
|
|
26
|
-
}
|
|
27
|
-
getDefinitionId() {
|
|
28
|
-
return this._definitionId;
|
|
29
|
-
}
|
|
30
|
-
toDict() {
|
|
31
|
-
const component = {
|
|
32
|
-
type: Workflow.componentType,
|
|
33
|
-
definition_id: this._definitionId,
|
|
34
|
-
version_status: 'VERSION_STATUS_DRAFT',
|
|
35
|
-
trigger_status: 'TRIGGER_STATUS_INACTIVE',
|
|
36
|
-
trigger: this._trigger,
|
|
37
|
-
workflow_meta: {
|
|
38
|
-
name: this._title,
|
|
39
|
-
description: this._description,
|
|
40
|
-
},
|
|
41
|
-
function_api_name: this._functionApiName,
|
|
42
|
-
};
|
|
43
|
-
return component;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
Workflow.componentType = 'WORKFLOW_DEFINITION';
|
|
47
|
-
//# sourceMappingURL=workflow.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.mjs","sourceRoot":"","sources":["../../src/lib/manifest/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,uBAAmB;AAkMxC;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IAGnB,MAAM,CAAC,oBAAoB,CAAC,UAA+C;QACzE,MAAM,YAAY,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3F,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,aAAa,EAAE,YAAY;SAC5B,CAAC;IACJ,CAAC;IAQD,YAAY,KAAoB,EAAE,KAAoB;QACpD,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1G,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,SAAS,GAAwB;YACrC,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,sBAAsB;YACtC,cAAc,EAAE,yBAAyB;YACzC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,aAAa,EAAE;gBACb,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,WAAW,EAAE,IAAI,CAAC,YAAY;aAC/B;YACD,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;SACzC,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;;AA5Ce,sBAAa,GAAG,qBAA8B,CAAC"}
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
import { generateId } from './_helpers';
|
|
2
|
-
import type { BusinessEventKey } from './business-event';
|
|
3
|
-
import type { ManifestFunction } from './manifest-function';
|
|
4
|
-
import type { ManifestComponentDeletion, ManifestScope } from './manifest-builder';
|
|
5
|
-
|
|
6
|
-
export type WorkflowAutomationEventType =
|
|
7
|
-
| 'AUTOMATION_EVENT_TYPE_BUSINESS'
|
|
8
|
-
| 'AUTOMATION_EVENT_TYPE_RECORD_CHANGE'
|
|
9
|
-
| 'AUTOMATION_EVENT_TYPE_SCHEDULED'
|
|
10
|
-
| 'AUTOMATION_EVENT_TYPE_MANUAL'
|
|
11
|
-
| 'AUTOMATION_EVENT_TYPE_DATE_RELATIVE';
|
|
12
|
-
|
|
13
|
-
export type WorkflowRecordChangeOperationType =
|
|
14
|
-
| 'RECORD_CHANGE_OPERATION_TYPE_CREATE'
|
|
15
|
-
| 'RECORD_CHANGE_OPERATION_TYPE_UPDATE'
|
|
16
|
-
| 'RECORD_CHANGE_OPERATION_TYPE_DELETE'
|
|
17
|
-
| 'RECORD_CHANGE_OPERATION_TYPE_CREATE_OR_UPDATE';
|
|
18
|
-
|
|
19
|
-
export type WorkflowDateRelativeOperatorType =
|
|
20
|
-
| 'DATE_RELATIVE_TRIGGER_OPERATOR_TYPE_EQ'
|
|
21
|
-
| 'DATE_RELATIVE_TRIGGER_OPERATOR_TYPE_WITHIN'
|
|
22
|
-
| 'DATE_RELATIVE_TRIGGER_OPERATOR_TYPE_BETWEEN';
|
|
23
|
-
|
|
24
|
-
export type WorkflowScheduledFrequencyType =
|
|
25
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_DAILY'
|
|
26
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_WEEKDAY_DAILY'
|
|
27
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_WEEKLY'
|
|
28
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_BIWEEKLY'
|
|
29
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_MONTHLY'
|
|
30
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_MONTHLY_ON_DAY_OF_WEEK'
|
|
31
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_ONE_TIME'
|
|
32
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_QUARTERLY'
|
|
33
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_ANNUALLY'
|
|
34
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_CUSTOM'
|
|
35
|
-
| 'SCHEDULED_TRIGGER_FREQUENCY_TYPE_CRON';
|
|
36
|
-
|
|
37
|
-
export type WorkflowCustomScheduleFrequencyUnit =
|
|
38
|
-
| 'CUSTOM_SCHEDULE_TRIGGER_FREQUENCY_UNIT_DAYS'
|
|
39
|
-
| 'CUSTOM_SCHEDULE_TRIGGER_FREQUENCY_UNIT_WEEKS'
|
|
40
|
-
| 'CUSTOM_SCHEDULE_TRIGGER_FREQUENCY_UNIT_MONTHS'
|
|
41
|
-
| 'CUSTOM_SCHEDULE_TRIGGER_FREQUENCY_UNIT_YEARS'
|
|
42
|
-
| 'CUSTOM_SCHEDULE_TRIGGER_FREQUENCY_UNIT_HOURS'
|
|
43
|
-
| 'CUSTOM_SCHEDULE_TRIGGER_FREQUENCY_UNIT_MINUTES';
|
|
44
|
-
|
|
45
|
-
export interface WorkflowTimeOfDaySchedule {
|
|
46
|
-
hour_of_day: number;
|
|
47
|
-
minute_of_hour?: number;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface WorkflowOneTimeSchedule extends WorkflowTimeOfDaySchedule {
|
|
51
|
-
year: number;
|
|
52
|
-
month_of_year: number;
|
|
53
|
-
day_of_month: number;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export interface WorkflowWeeklySchedule extends WorkflowTimeOfDaySchedule {
|
|
57
|
-
day_of_week: number[];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface WorkflowMonthlySchedule extends WorkflowTimeOfDaySchedule {
|
|
61
|
-
day_of_month: number;
|
|
62
|
-
start_month?: number;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface WorkflowMonthlyOnDayOfWeekSchedule extends WorkflowTimeOfDaySchedule {
|
|
66
|
-
day_of_week: number;
|
|
67
|
-
day_of_month: number;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export interface WorkflowQuarterlySchedule extends WorkflowTimeOfDaySchedule {
|
|
71
|
-
day_of_month: number;
|
|
72
|
-
month_of_year: number;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface WorkflowAnnualSchedule extends WorkflowTimeOfDaySchedule {
|
|
76
|
-
day_of_month: number;
|
|
77
|
-
month_of_year: number;
|
|
78
|
-
start_month?: number;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface WorkflowCronSchedule {
|
|
82
|
-
cron_expression: string;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface WorkflowCustomSchedule extends WorkflowTimeOfDaySchedule {
|
|
86
|
-
custom_schedule_frequency: WorkflowCustomScheduleFrequencyUnit;
|
|
87
|
-
custom_schedule_frequency_value: number;
|
|
88
|
-
daily_schedule?: WorkflowTimeOfDaySchedule;
|
|
89
|
-
weekly_schedule?: WorkflowWeeklySchedule;
|
|
90
|
-
monthly_schedule?: WorkflowMonthlySchedule;
|
|
91
|
-
annual_schedule?: WorkflowAnnualSchedule;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export interface WorkflowTriggerBase {
|
|
95
|
-
automation_event_type: WorkflowAutomationEventType;
|
|
96
|
-
og_module?: string;
|
|
97
|
-
base_model?: string;
|
|
98
|
-
rql_formula?: string;
|
|
99
|
-
is_basic_workflow?: boolean;
|
|
100
|
-
og_category?: string;
|
|
101
|
-
condition_builder_mode?: string;
|
|
102
|
-
conditions_tree?: string;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export interface WorkflowBusinessTrigger extends WorkflowTriggerBase {
|
|
106
|
-
automation_event_type: 'AUTOMATION_EVENT_TYPE_BUSINESS';
|
|
107
|
-
/** Business event to subscribe to. Availability is validated during installation. */
|
|
108
|
-
event_name: BusinessEventKey;
|
|
109
|
-
business_event_trigger?: {
|
|
110
|
-
navigation_path?: string;
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export type WorkflowBusinessEventKey = BusinessEventKey;
|
|
115
|
-
|
|
116
|
-
export interface WorkflowRecordChangeTrigger extends WorkflowTriggerBase {
|
|
117
|
-
automation_event_type: 'AUTOMATION_EVENT_TYPE_RECORD_CHANGE';
|
|
118
|
-
record_change_operation_type: WorkflowRecordChangeOperationType;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export interface WorkflowDateRelativeTrigger extends WorkflowTriggerBase {
|
|
122
|
-
automation_event_type: 'AUTOMATION_EVENT_TYPE_DATE_RELATIVE';
|
|
123
|
-
date_relative_trigger: {
|
|
124
|
-
hour_of_day: number;
|
|
125
|
-
minute_of_hour?: number;
|
|
126
|
-
timezone?: string;
|
|
127
|
-
base_model_date_field_rql_path?: string;
|
|
128
|
-
trigger_on_anniversary?: boolean;
|
|
129
|
-
date_range_operator?: WorkflowDateRelativeOperatorType;
|
|
130
|
-
should_trigger_exactly_once_per_trigger_object?: boolean;
|
|
131
|
-
operands?: Array<{ time_delta?: { days: number } }>;
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export interface WorkflowScheduledTrigger extends WorkflowTriggerBase {
|
|
136
|
-
automation_event_type: 'AUTOMATION_EVENT_TYPE_SCHEDULED';
|
|
137
|
-
scheduled_trigger: {
|
|
138
|
-
frequency: WorkflowScheduledFrequencyType;
|
|
139
|
-
timezone: string;
|
|
140
|
-
daily_schedule?: WorkflowTimeOfDaySchedule;
|
|
141
|
-
weekday_schedule?: WorkflowTimeOfDaySchedule;
|
|
142
|
-
one_time_schedule?: WorkflowOneTimeSchedule;
|
|
143
|
-
weekly_schedule?: WorkflowWeeklySchedule;
|
|
144
|
-
bi_weekly_schedule?: WorkflowWeeklySchedule;
|
|
145
|
-
monthly_schedule?: WorkflowMonthlySchedule;
|
|
146
|
-
monthly_on_day_of_week_schedule?: WorkflowMonthlyOnDayOfWeekSchedule;
|
|
147
|
-
quarterly_schedule?: WorkflowQuarterlySchedule;
|
|
148
|
-
annual_schedule?: WorkflowAnnualSchedule;
|
|
149
|
-
cron_schedule?: WorkflowCronSchedule;
|
|
150
|
-
custom_schedule?: WorkflowCustomSchedule;
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export interface WorkflowManualTrigger extends WorkflowTriggerBase {
|
|
155
|
-
automation_event_type: 'AUTOMATION_EVENT_TYPE_MANUAL';
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export type WorkflowTrigger =
|
|
159
|
-
| WorkflowBusinessTrigger
|
|
160
|
-
| WorkflowRecordChangeTrigger
|
|
161
|
-
| WorkflowDateRelativeTrigger
|
|
162
|
-
| WorkflowScheduledTrigger
|
|
163
|
-
| WorkflowManualTrigger;
|
|
164
|
-
|
|
165
|
-
export interface WorkflowDeletionIdentifier {
|
|
166
|
-
definitionId: string;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
export interface WorkflowProps {
|
|
170
|
-
/**
|
|
171
|
-
* Stable workflow definition id. Auto-generated when omitted.
|
|
172
|
-
*/
|
|
173
|
-
definitionId?: string;
|
|
174
|
-
/**
|
|
175
|
-
* Workflow title shown to admins.
|
|
176
|
-
*/
|
|
177
|
-
title: string;
|
|
178
|
-
/**
|
|
179
|
-
* Short workflow description shown to admins.
|
|
180
|
-
*/
|
|
181
|
-
description: string;
|
|
182
|
-
/**
|
|
183
|
-
* The function this workflow runs. Pass a live {@link ManifestFunction} reference,
|
|
184
|
-
* or a raw api_name string for functions defined outside this manifest.
|
|
185
|
-
*
|
|
186
|
-
* Required.
|
|
187
|
-
*/
|
|
188
|
-
function: ManifestFunction | string;
|
|
189
|
-
/**
|
|
190
|
-
* Trigger definition in the workflows v2 proto JSON shape.
|
|
191
|
-
*/
|
|
192
|
-
trigger: WorkflowTrigger;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Defines a simple Workflow Studio workflow and registers it with the manifest.
|
|
197
|
-
*
|
|
198
|
-
* This intentionally models only the authoring inputs we need today: workflow
|
|
199
|
-
* metadata, trigger JSON, and the function reference. The installer/backend can
|
|
200
|
-
* derive the graph from these fields later.
|
|
201
|
-
*/
|
|
202
|
-
export class Workflow {
|
|
203
|
-
static readonly componentType = 'WORKFLOW_DEFINITION' as const;
|
|
204
|
-
|
|
205
|
-
static toDeletionIdentifier(identifier: WorkflowDeletionIdentifier | string): ManifestComponentDeletion {
|
|
206
|
-
const definitionId = typeof identifier === 'string' ? identifier : identifier.definitionId;
|
|
207
|
-
return {
|
|
208
|
-
type: Workflow.componentType,
|
|
209
|
-
definition_id: definitionId,
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
private readonly _definitionId: string;
|
|
214
|
-
private readonly _title: string;
|
|
215
|
-
private readonly _description: string;
|
|
216
|
-
private readonly _functionApiName: string;
|
|
217
|
-
private readonly _trigger: WorkflowTrigger;
|
|
218
|
-
|
|
219
|
-
constructor(scope: ManifestScope, props: WorkflowProps) {
|
|
220
|
-
if (!props.function) throw new Error('function is required');
|
|
221
|
-
this._definitionId = props.definitionId ?? generateId('workflow');
|
|
222
|
-
this._title = props.title;
|
|
223
|
-
this._description = props.description;
|
|
224
|
-
this._functionApiName = typeof props.function === 'string' ? props.function : props.function.getApiName();
|
|
225
|
-
this._trigger = props.trigger;
|
|
226
|
-
scope._register(this);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
getDefinitionId(): string {
|
|
230
|
-
return this._definitionId;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
toDict(): Record<string, any> {
|
|
234
|
-
const component: Record<string, any> = {
|
|
235
|
-
type: Workflow.componentType,
|
|
236
|
-
definition_id: this._definitionId,
|
|
237
|
-
version_status: 'VERSION_STATUS_DRAFT',
|
|
238
|
-
trigger_status: 'TRIGGER_STATUS_INACTIVE',
|
|
239
|
-
trigger: this._trigger,
|
|
240
|
-
workflow_meta: {
|
|
241
|
-
name: this._title,
|
|
242
|
-
description: this._description,
|
|
243
|
-
},
|
|
244
|
-
function_api_name: this._functionApiName,
|
|
245
|
-
};
|
|
246
|
-
return component;
|
|
247
|
-
}
|
|
248
|
-
}
|