@rippling/rippling-sdk 0.2.0-alpha.104 → 0.2.0-alpha.105
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/client.d.mts +6 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts +6 -0
- package/client.d.ts.map +1 -1
- package/client.js +6 -0
- package/client.js.map +1 -1
- package/client.mjs +6 -0
- package/client.mjs.map +1 -1
- package/lib/manifest/_existing-component-fields.d.mts.map +1 -1
- package/lib/manifest/_existing-component-fields.d.ts.map +1 -1
- package/lib/manifest/_existing-component-fields.js +2 -0
- package/lib/manifest/_existing-component-fields.js.map +1 -1
- package/lib/manifest/_existing-component-fields.mjs +2 -0
- package/lib/manifest/_existing-component-fields.mjs.map +1 -1
- package/lib/manifest/existing-manifest-context.d.mts +3 -0
- package/lib/manifest/existing-manifest-context.d.mts.map +1 -1
- package/lib/manifest/existing-manifest-context.d.ts +3 -0
- package/lib/manifest/existing-manifest-context.d.ts.map +1 -1
- package/lib/manifest/existing-manifest-context.js +14 -0
- package/lib/manifest/existing-manifest-context.js.map +1 -1
- package/lib/manifest/existing-manifest-context.mjs +14 -0
- package/lib/manifest/existing-manifest-context.mjs.map +1 -1
- package/lib/manifest/workflow/index.d.mts +4 -0
- package/lib/manifest/workflow/index.d.mts.map +1 -1
- package/lib/manifest/workflow/index.d.ts +4 -0
- package/lib/manifest/workflow/index.d.ts.map +1 -1
- package/lib/manifest/workflow/index.js +49 -0
- package/lib/manifest/workflow/index.js.map +1 -1
- package/lib/manifest/workflow/index.mjs +49 -0
- package/lib/manifest/workflow/index.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/activity-log.d.mts +517 -0
- package/resources/activity-log.d.mts.map +1 -0
- package/resources/activity-log.d.ts +517 -0
- package/resources/activity-log.d.ts.map +1 -0
- package/resources/activity-log.js +171 -0
- package/resources/activity-log.js.map +1 -0
- package/resources/activity-log.mjs +167 -0
- package/resources/activity-log.mjs.map +1 -0
- package/resources/compensations.d.mts +1 -1
- package/resources/compensations.d.ts +1 -1
- package/resources/compensations.js +1 -1
- package/resources/compensations.mjs +1 -1
- package/resources/developer-program-application.d.mts +1 -1
- package/resources/developer-program-application.d.ts +1 -1
- package/resources/developer-program-application.js +1 -1
- package/resources/developer-program-application.mjs +1 -1
- package/resources/developer-users.d.mts +2 -1
- package/resources/developer-users.d.mts.map +1 -1
- package/resources/developer-users.d.ts +2 -1
- package/resources/developer-users.d.ts.map +1 -1
- package/resources/developer-users.js +2 -1
- package/resources/developer-users.js.map +1 -1
- package/resources/developer-users.mjs +2 -1
- package/resources/developer-users.mjs.map +1 -1
- package/resources/index.d.mts +1 -0
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +1 -0
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +5 -2
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/listing-submissions.d.mts +1 -1
- package/resources/listing-submissions.d.ts +1 -1
- package/resources/listing-submissions.js +1 -1
- package/resources/listing-submissions.mjs +1 -1
- package/resources/listing-transitions.d.mts +1 -1
- package/resources/listing-transitions.d.ts +1 -1
- package/resources/listing-transitions.js +1 -1
- package/resources/listing-transitions.mjs +1 -1
- package/resources/listing.d.mts +1 -1
- package/resources/listing.d.ts +1 -1
- package/resources/listing.js +1 -1
- package/resources/listing.mjs +1 -1
- package/resources/variable-compensation-payout-labels.d.mts +2 -1
- package/resources/variable-compensation-payout-labels.d.mts.map +1 -1
- package/resources/variable-compensation-payout-labels.d.ts +2 -1
- package/resources/variable-compensation-payout-labels.d.ts.map +1 -1
- package/resources/variable-compensation-payout-labels.js +2 -1
- package/resources/variable-compensation-payout-labels.js.map +1 -1
- package/resources/variable-compensation-payout-labels.mjs +2 -1
- package/resources/variable-compensation-payout-labels.mjs.map +1 -1
- package/resources/variable-compensation-payout-types.d.mts +1 -1
- package/resources/variable-compensation-payout-types.d.ts +1 -1
- package/resources/variable-compensation-payout-types.js +1 -1
- package/resources/variable-compensation-payout-types.mjs +1 -1
- package/resources/variable-compensation-payouts.d.mts +4 -1
- package/resources/variable-compensation-payouts.d.mts.map +1 -1
- package/resources/variable-compensation-payouts.d.ts +4 -1
- package/resources/variable-compensation-payouts.d.ts.map +1 -1
- package/resources/variable-compensation-payouts.js +4 -1
- package/resources/variable-compensation-payouts.js.map +1 -1
- package/resources/variable-compensation-payouts.mjs +4 -1
- package/resources/variable-compensation-payouts.mjs.map +1 -1
- package/src/client.ts +22 -0
- package/src/lib/manifest/_existing-component-fields.ts +2 -0
- package/src/lib/manifest/existing-manifest-context.ts +22 -0
- package/src/lib/manifest/workflow/index.ts +64 -0
- package/src/resources/activity-log.ts +645 -0
- package/src/resources/compensations.ts +1 -1
- package/src/resources/developer-program-application.ts +1 -1
- package/src/resources/developer-users.ts +2 -1
- package/src/resources/index.ts +8 -0
- package/src/resources/listing-submissions.ts +1 -1
- package/src/resources/listing-transitions.ts +1 -1
- package/src/resources/listing.ts +1 -1
- package/src/resources/variable-compensation-payout-labels.ts +2 -1
- package/src/resources/variable-compensation-payout-types.ts +1 -1
- package/src/resources/variable-compensation-payouts.ts +4 -1
- 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
|
@@ -16,6 +16,7 @@ import { ManifestFunction } from './manifest-function';
|
|
|
16
16
|
import { Rule } from './rule';
|
|
17
17
|
import { SduiPage } from './sdui-page';
|
|
18
18
|
import { Validation } from './validation';
|
|
19
|
+
import { Workflow } from './workflow';
|
|
19
20
|
import {
|
|
20
21
|
optionalStringComponentField,
|
|
21
22
|
requireObjectComponentField,
|
|
@@ -92,6 +93,8 @@ function componentLabel(component: Record<string, any>): string {
|
|
|
92
93
|
component['source_skill_id'] ??
|
|
93
94
|
component['field_api_name'] ??
|
|
94
95
|
component['section_id'] ??
|
|
96
|
+
component['definition_id'] ??
|
|
97
|
+
component['obj_id'] ??
|
|
95
98
|
'unknown';
|
|
96
99
|
return `${type}:${id}`;
|
|
97
100
|
}
|
|
@@ -355,6 +358,15 @@ export class ExistingManifestContext {
|
|
|
355
358
|
return this.loadACPAgentComponent(component);
|
|
356
359
|
}
|
|
357
360
|
|
|
361
|
+
loadWorkflow(definitionId: string): Workflow {
|
|
362
|
+
const component = this.findUnique(
|
|
363
|
+
'WORKFLOW_DEFINITION',
|
|
364
|
+
(candidate) => candidate['definition_id'] === definitionId,
|
|
365
|
+
`WORKFLOW_DEFINITION ${definitionId}`,
|
|
366
|
+
);
|
|
367
|
+
return this.loadWorkflowComponent(component);
|
|
368
|
+
}
|
|
369
|
+
|
|
358
370
|
private loadComponent(component: Record<string, any>): unknown {
|
|
359
371
|
switch (component['type']) {
|
|
360
372
|
case 'AGENT':
|
|
@@ -391,6 +403,8 @@ export class ExistingManifestContext {
|
|
|
391
403
|
return this.loadSduiPageComponent(component);
|
|
392
404
|
case 'CUSTOM_APP':
|
|
393
405
|
return this.loadAppComponent(component);
|
|
406
|
+
case 'WORKFLOW_DEFINITION':
|
|
407
|
+
return this.loadWorkflowComponent(component);
|
|
394
408
|
default:
|
|
395
409
|
return this.loadRawComponent(component);
|
|
396
410
|
}
|
|
@@ -626,6 +640,14 @@ export class ExistingManifestContext {
|
|
|
626
640
|
);
|
|
627
641
|
}
|
|
628
642
|
|
|
643
|
+
private loadWorkflowComponent(component: Record<string, any>): Workflow {
|
|
644
|
+
const definitionId = requireStringComponentField(component, 'definition_id', Workflow.componentType);
|
|
645
|
+
const cacheKey = this.cacheKey('WORKFLOW_DEFINITION', definitionId);
|
|
646
|
+
return this.getOrLoad(cacheKey, () =>
|
|
647
|
+
Workflow._fromExistingComponent(this.getManifestBuilder(), component),
|
|
648
|
+
);
|
|
649
|
+
}
|
|
650
|
+
|
|
629
651
|
private loadRawComponent(component: Record<string, any>): ExistingRawComponent {
|
|
630
652
|
const index = this.componentIndexes.get(component) ?? -1;
|
|
631
653
|
const cacheKey = this.cacheKey('RAW', `${index}:${componentLabel(component)}`);
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { generateId } from '../_helpers';
|
|
2
2
|
import type { BusinessEventKey } from '../business-event';
|
|
3
|
+
import { requireObjectComponentField, requireStringComponentField } from '../_existing-component-fields';
|
|
4
|
+
import {
|
|
5
|
+
getExistingManifestContext,
|
|
6
|
+
type ExistingManifestContextOptions,
|
|
7
|
+
} from '../existing-manifest-context';
|
|
3
8
|
import type { ManifestFunction } from '../manifest-function';
|
|
4
9
|
import type { ManifestComponentDeletion, ManifestScope } from '../manifest-builder';
|
|
5
10
|
import type { WorkflowActionPayloads } from './actions';
|
|
@@ -473,6 +478,11 @@ export interface WorkflowProps {
|
|
|
473
478
|
categories?: WorkflowCategory[];
|
|
474
479
|
}
|
|
475
480
|
|
|
481
|
+
function cloneJson<T>(value: T): T {
|
|
482
|
+
if (value == null) return value;
|
|
483
|
+
return JSON.parse(JSON.stringify(value)) as T;
|
|
484
|
+
}
|
|
485
|
+
|
|
476
486
|
function assertNonEmptyString(value: unknown, path: string): void {
|
|
477
487
|
if (typeof value !== 'string' || !value.trim()) throw new Error(`${path} is required.`);
|
|
478
488
|
}
|
|
@@ -882,6 +892,60 @@ export class Workflow {
|
|
|
882
892
|
scope._register(this);
|
|
883
893
|
}
|
|
884
894
|
|
|
895
|
+
static loadFromExisting(definitionId: string, options: ExistingManifestContextOptions = {}): Workflow {
|
|
896
|
+
return getExistingManifestContext(options).loadWorkflow(definitionId);
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
/** @internal Hydrates a workflow from existing manifest wire JSON. */
|
|
900
|
+
static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>): Workflow {
|
|
901
|
+
const workflowMeta = requireObjectComponentField(component, 'workflow_meta', Workflow.componentType);
|
|
902
|
+
const definitionId = requireStringComponentField(component, 'definition_id', Workflow.componentType);
|
|
903
|
+
const props: WorkflowProps = {
|
|
904
|
+
definitionId,
|
|
905
|
+
title: requireStringComponentField(
|
|
906
|
+
{ definition_id: definitionId, name: workflowMeta['name'] },
|
|
907
|
+
'name',
|
|
908
|
+
Workflow.componentType,
|
|
909
|
+
),
|
|
910
|
+
trigger: cloneJson(
|
|
911
|
+
requireObjectComponentField(component, 'trigger', Workflow.componentType),
|
|
912
|
+
) as WorkflowTrigger,
|
|
913
|
+
};
|
|
914
|
+
if (typeof workflowMeta['description'] === 'string') props.description = workflowMeta['description'];
|
|
915
|
+
if (typeof workflowMeta['recipe_id'] === 'string') props.recipeId = workflowMeta['recipe_id'];
|
|
916
|
+
if (typeof component['function_api_name'] === 'string') {
|
|
917
|
+
props.function = component['function_api_name'];
|
|
918
|
+
}
|
|
919
|
+
if (typeof component['version_status'] === 'string') {
|
|
920
|
+
props.versionStatus = component['version_status'] as WorkflowVersionStatus;
|
|
921
|
+
}
|
|
922
|
+
if (typeof component['trigger_status'] === 'string') {
|
|
923
|
+
props.triggerStatus = component['trigger_status'] as WorkflowTriggerStatus;
|
|
924
|
+
}
|
|
925
|
+
if (component['graph'] != null) {
|
|
926
|
+
props.graph = cloneJson(component['graph']) as WorkflowGraph;
|
|
927
|
+
}
|
|
928
|
+
if (component['functions_inferred_graph'] != null) {
|
|
929
|
+
props.functionsInferredGraph = cloneJson(component['functions_inferred_graph']) as WorkflowGraph;
|
|
930
|
+
}
|
|
931
|
+
if (component['custom_variables'] != null) {
|
|
932
|
+
props.customVariables = cloneJson(component['custom_variables']) as Record<
|
|
933
|
+
string,
|
|
934
|
+
WorkflowCustomVariable
|
|
935
|
+
>;
|
|
936
|
+
}
|
|
937
|
+
if (component['function_api_names_by_old_id'] != null) {
|
|
938
|
+
props.functionApiNamesByOldId = cloneJson(component['function_api_names_by_old_id']) as Record<
|
|
939
|
+
string,
|
|
940
|
+
string
|
|
941
|
+
>;
|
|
942
|
+
}
|
|
943
|
+
if (component['categories'] != null) {
|
|
944
|
+
props.categories = cloneJson(component['categories']) as WorkflowCategory[];
|
|
945
|
+
}
|
|
946
|
+
return new Workflow(scope, props);
|
|
947
|
+
}
|
|
948
|
+
|
|
885
949
|
private _validate(): void {
|
|
886
950
|
assertNonEmptyString(this._title, 'Workflow.workflow_meta.name');
|
|
887
951
|
if (this._props.function !== undefined)
|