diff --git a/examples/browser/index.html b/examples/browser/index.html index 755a664f..717fdb27 100644 --- a/examples/browser/index.html +++ b/examples/browser/index.html @@ -1,40 +1,40 @@ - + Serveless Workflow JS SDK - - - - -
- - + - + })(); + + diff --git a/examples/browser/mermaid.html b/examples/browser/mermaid.html index f0e4625f..95c1249c 100644 --- a/examples/browser/mermaid.html +++ b/examples/browser/mermaid.html @@ -4,19 +4,19 @@ Serveless Workflow JS SDK - + -
+
- + - diff --git a/examples/node/index.ts b/examples/node/index.ts index 54dd27b9..2425e1a9 100644 --- a/examples/node/index.ts +++ b/examples/node/index.ts @@ -13,7 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { workflowBuilder, injectstateBuilder, Specification } from '../../dist'; +import { injectstateBuilder, Specification, workflowBuilder } from '../../dist'; + const workflow: Specification.Workflow = workflowBuilder() .id('helloworld') .version('1.0') diff --git a/src/lib/builders/README.md b/src/lib/builders/README.md index 7d5a8642..86d82d3e 100644 --- a/src/lib/builders/README.md +++ b/src/lib/builders/README.md @@ -1,2 +1,3 @@ # Auto generated notice + This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/definitions/action.ts b/src/lib/definitions/action.ts index 7d15c3cc..b57d098d 100644 --- a/src/lib/definitions/action.ts +++ b/src/lib/definitions/action.ts @@ -32,19 +32,6 @@ import { Sleep } from './sleep'; export class Action { sourceModel?: Action; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - - overwriteFunctionRef(this); - overwriteEventRef(this); - overwriteSubFlowRef(this); - overwriteSleep(this); - overwriteActionDataFilter(this); - } - /** * Unique action identifier */ @@ -75,6 +62,18 @@ export class Action { */ condition?: string; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + + overwriteFunctionRef(this); + overwriteEventRef(this); + overwriteSubFlowRef(this); + overwriteSleep(this); + overwriteActionDataFilter(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Action} without deleted properties. diff --git a/src/lib/definitions/actiondatafilter.ts b/src/lib/definitions/actiondatafilter.ts index fda52a51..a227be10 100644 --- a/src/lib/definitions/actiondatafilter.ts +++ b/src/lib/definitions/actiondatafilter.ts @@ -15,10 +15,6 @@ */ export class Actiondatafilter { - constructor(model: any) { - Object.assign(this, model); - } - /** * Workflow expression that selects state data that the state action can use */ @@ -35,4 +31,8 @@ export class Actiondatafilter { * Workflow expression that selects a state data element to which the action results should be added/merged into. If not specified, denote, the top-level state data element */ toStateData?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/authdef.ts b/src/lib/definitions/authdef.ts index 921f96f0..0d65cf1a 100644 --- a/src/lib/definitions/authdef.ts +++ b/src/lib/definitions/authdef.ts @@ -19,15 +19,6 @@ import { Properties } from './types'; export class Authdef { sourceModel?: Authdef; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { scheme: 'basic' }; - Object.assign(this, defaultModel, model); - - overwriteProperties(this); - } /** * Unique auth definition name */ @@ -38,6 +29,15 @@ export class Authdef { scheme?: 'basic' | 'bearer' | 'oauth2'; properties: string | Properties; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { scheme: 'basic' }; + Object.assign(this, defaultModel, model); + + overwriteProperties(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Authdef} without deleted properties. diff --git a/src/lib/definitions/basicpropsdef.ts b/src/lib/definitions/basicpropsdef.ts index ac81e259..fb07db82 100644 --- a/src/lib/definitions/basicpropsdef.ts +++ b/src/lib/definitions/basicpropsdef.ts @@ -16,13 +16,8 @@ import { Metadata } from './metadata'; import { overwriteMetadata } from './utils'; -export class Basicpropsdef { - constructor(model: any) { - Object.assign(this, model); - - overwriteMetadata(this); - } +export class Basicpropsdef { /** * String or a workflow expression. Contains the user name */ @@ -32,4 +27,10 @@ export class Basicpropsdef { */ password: string; metadata?: /* Metadata information */ Metadata; + + constructor(model: any) { + Object.assign(this, model); + + overwriteMetadata(this); + } } diff --git a/src/lib/definitions/bearerpropsdef.ts b/src/lib/definitions/bearerpropsdef.ts index 0a5cc72d..bca83da8 100644 --- a/src/lib/definitions/bearerpropsdef.ts +++ b/src/lib/definitions/bearerpropsdef.ts @@ -16,15 +16,16 @@ import { Metadata } from './metadata'; import { overwriteMetadata } from './utils'; -export class Bearerpropsdef { - constructor(model: any) { - Object.assign(this, model); - overwriteMetadata(this); - } +export class Bearerpropsdef { /** * String or a workflow expression. Contains the token */ token: string; metadata?: /* Metadata information */ Metadata; + + constructor(model: any) { + Object.assign(this, model); + overwriteMetadata(this); + } } diff --git a/src/lib/definitions/branch.ts b/src/lib/definitions/branch.ts index feafc67a..0ce27539 100644 --- a/src/lib/definitions/branch.ts +++ b/src/lib/definitions/branch.ts @@ -20,15 +20,6 @@ import { ActionExecTimeout, BranchExecTimeout } from './types'; export class Branch /* Branch Definition */ { sourceModel?: Branch; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - overwriteActions(this); - overwritePropertyAsPlainType('timeouts', this); - } - /** * Branch name */ @@ -45,6 +36,14 @@ export class Branch /* Branch Definition */ { */ actions: Action[]; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + overwriteActions(this); + overwritePropertyAsPlainType('timeouts', this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Branch} without deleted properties. diff --git a/src/lib/definitions/callbackstate.ts b/src/lib/definitions/callbackstate.ts index e5028f54..3b66b2e1 100644 --- a/src/lib/definitions/callbackstate.ts +++ b/src/lib/definitions/callbackstate.ts @@ -43,27 +43,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Callbackstate { sourceModel?: Callbackstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'callback', - usedForCompensation: false, - }; - Object.assign(this, defaultModel, model); - - overwriteAction(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteEventDataFilter(this); - overwriteStateDataFilter(this); - overwriteOnErrors(this); - overwriteTransition(this); - overwriteEnd(this); - overwriteMetadata(this); - } /** * Unique state id */ @@ -122,6 +101,27 @@ export class Callbackstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'callback', + usedForCompensation: false, + }; + Object.assign(this, defaultModel, model); + + overwriteAction(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteEventDataFilter(this); + overwriteStateDataFilter(this); + overwriteOnErrors(this); + overwriteTransition(this); + overwriteEnd(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Callbackstate} without deleted properties. diff --git a/src/lib/definitions/continueasdef.ts b/src/lib/definitions/continueasdef.ts index 63912623..0360d571 100644 --- a/src/lib/definitions/continueasdef.ts +++ b/src/lib/definitions/continueasdef.ts @@ -25,15 +25,6 @@ import { export class Continueasdef { sourceModel?: Continueasdef; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - overwriteWorkflowExecTimeout(this); - overwritePropertyAsPlainType('data', this); - } - /** * Unique id of the workflow to continue execution as */ @@ -55,6 +46,14 @@ export class Continueasdef { */ workflowExecTimeout?: WorkflowExecTimeout; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + overwriteWorkflowExecTimeout(this); + overwritePropertyAsPlainType('data', this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Exectimeout} without deleted properties. diff --git a/src/lib/definitions/correlationDef.ts b/src/lib/definitions/correlationDef.ts index f8f6adef..f487fd59 100644 --- a/src/lib/definitions/correlationDef.ts +++ b/src/lib/definitions/correlationDef.ts @@ -15,10 +15,6 @@ */ export class CorrelationDef { - constructor(model: any) { - Object.assign(this, model); - } - /** * CloudEvent Extension Context Attribute name */ @@ -27,4 +23,8 @@ export class CorrelationDef { * CloudEvent Extension Context Attribute value */ contextAttributeValue?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/crondef.ts b/src/lib/definitions/crondef.ts index 6b977739..50d3b101 100644 --- a/src/lib/definitions/crondef.ts +++ b/src/lib/definitions/crondef.ts @@ -15,10 +15,6 @@ */ export class Crondef { - constructor(model: any) { - Object.assign(this, model); - } - /** * Repeating interval (cron expression) describing when the workflow instance should be created */ @@ -27,4 +23,8 @@ export class Crondef { * Specific date and time (ISO 8601 format) when the cron expression invocation is no longer valid */ validUntil?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/databasedswitchstate.ts b/src/lib/definitions/databasedswitchstate.ts index 81bcadc0..c0b14de9 100644 --- a/src/lib/definitions/databasedswitchstate.ts +++ b/src/lib/definitions/databasedswitchstate.ts @@ -36,21 +36,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Databasedswitchstate { sourceModel?: Databasedswitchstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { id: undefined, name: undefined, type: 'switch', usedForCompensation: false }; - Object.assign(this, defaultModel, model); - - overwriteStateDataFilter(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteDataConditions(this); - overwriteOnErrors(this); - overwriteDefaultCondition(this); - overwriteMetadata(this); - } - /** * Unique State id */ @@ -95,6 +80,20 @@ export class Databasedswitchstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { id: undefined, name: undefined, type: 'switch', usedForCompensation: false }; + Object.assign(this, defaultModel, model); + + overwriteStateDataFilter(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteDataConditions(this); + overwriteOnErrors(this); + overwriteDefaultCondition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Databasedswitch} without deleted properties. diff --git a/src/lib/definitions/defaultconditiondef.ts b/src/lib/definitions/defaultconditiondef.ts index 77203dd3..5617012d 100644 --- a/src/lib/definitions/defaultconditiondef.ts +++ b/src/lib/definitions/defaultconditiondef.ts @@ -24,8 +24,11 @@ import { overwriteTransition, setEndValueIfNoTransition, } from './utils'; + export class Defaultconditiondef /* DefaultCondition definition. Can be either a transition or end definition */ { sourceModel?: Defaultconditiondef; + transition: string | Transition; + end?: boolean | End; constructor(model: any) { this.sourceModel = Object.assign({}, model); @@ -36,9 +39,6 @@ export class Defaultconditiondef /* DefaultCondition definition. Can be either a overwriteEnd(this); } - transition: string | Transition; - end?: boolean | End; - /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Defaultdef} without deleted properties. diff --git a/src/lib/definitions/end.ts b/src/lib/definitions/end.ts index a77ee94c..1339dc35 100644 --- a/src/lib/definitions/end.ts +++ b/src/lib/definitions/end.ts @@ -26,20 +26,6 @@ import { Continueasdef } from './continueasdef'; export class End { sourceModel?: End; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - compensate: false, - terminate: false, - }; - Object.assign(this, defaultModel, model); - - overwriteProduceEvents(this); - overwriteContinueAs(this); - } - /** * If true, completes all execution flows in the given workflow instance */ @@ -54,6 +40,19 @@ export class End { compensate?: boolean; continueAs?: string | Continueasdef; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + compensate: false, + terminate: false, + }; + Object.assign(this, defaultModel, model); + + overwriteProduceEvents(this); + overwriteContinueAs(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.End} without deleted properties. diff --git a/src/lib/definitions/enddatacondition.ts b/src/lib/definitions/enddatacondition.ts index 8b8e7829..ce49f4dc 100644 --- a/src/lib/definitions/enddatacondition.ts +++ b/src/lib/definitions/enddatacondition.ts @@ -19,16 +19,6 @@ import { cleanSourceModelProperty, normalizeEnd, overwriteEnd, overwriteMetadata export class Enddatacondition { sourceModel?: Enddatacondition; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - - overwriteEnd(this); - overwriteMetadata(this); - } - /** * Data condition name */ @@ -43,6 +33,15 @@ export class Enddatacondition { end: boolean | End; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + + overwriteEnd(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Enddatacondition} without deleted properties. diff --git a/src/lib/definitions/enddeventcondition.ts b/src/lib/definitions/enddeventcondition.ts index fa6299e2..fcd77e70 100644 --- a/src/lib/definitions/enddeventcondition.ts +++ b/src/lib/definitions/enddeventcondition.ts @@ -26,17 +26,6 @@ import { export class Enddeventcondition { sourceModel?: Enddeventcondition; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - - overwriteEnd(this); - overwriteEventDataFilter(this); - overwriteMetadata(this); - } - /** * Event condition name */ @@ -55,6 +44,16 @@ export class Enddeventcondition { eventDataFilter?: Eventdatafilter; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + + overwriteEnd(this); + overwriteEventDataFilter(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Enddeventcondition} without deleted properties. diff --git a/src/lib/definitions/error.ts b/src/lib/definitions/error.ts index 9a83e629..76e3863f 100644 --- a/src/lib/definitions/error.ts +++ b/src/lib/definitions/error.ts @@ -26,16 +26,6 @@ import { export class Error { sourceModel?: Error; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - - overwriteTransition(this); - overwriteEnd(this); - } - /** * Reference to a unique workflow error definition. Used of errorRefs is not used */ @@ -47,6 +37,15 @@ export class Error { transition: string | Transition; end?: boolean | End; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + + overwriteTransition(this); + overwriteEnd(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Error} without deleted properties. diff --git a/src/lib/definitions/errordef.ts b/src/lib/definitions/errordef.ts index 5c6d6ea1..e0e56c26 100644 --- a/src/lib/definitions/errordef.ts +++ b/src/lib/definitions/errordef.ts @@ -15,10 +15,6 @@ */ export class Errordef { - constructor(model: any) { - Object.assign(this, model); - } - /** * Domain-specific error name */ @@ -31,4 +27,8 @@ export class Errordef { * Error description */ description?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/eventbasedswitchstate.ts b/src/lib/definitions/eventbasedswitchstate.ts index ad4821c8..ac0c77d8 100644 --- a/src/lib/definitions/eventbasedswitchstate.ts +++ b/src/lib/definitions/eventbasedswitchstate.ts @@ -36,20 +36,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Eventbasedswitchstate { sourceModel?: Eventbasedswitchstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { id: undefined, name: undefined, type: 'switch', usedForCompensation: false }; - Object.assign(this, defaultModel, model); - - overwriteStateDataFilter(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteEventConditions(this); - overwriteOnErrors(this); - overwriteDefaultCondition(this); - overwriteMetadata(this); - } /** * Unique State id */ @@ -95,6 +81,20 @@ export class Eventbasedswitchstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { id: undefined, name: undefined, type: 'switch', usedForCompensation: false }; + Object.assign(this, defaultModel, model); + + overwriteStateDataFilter(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteEventConditions(this); + overwriteOnErrors(this); + overwriteDefaultCondition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Eventbasedswitch} without deleted properties. diff --git a/src/lib/definitions/eventdatafilter.ts b/src/lib/definitions/eventdatafilter.ts index 1926ec66..28a22140 100644 --- a/src/lib/definitions/eventdatafilter.ts +++ b/src/lib/definitions/eventdatafilter.ts @@ -15,10 +15,6 @@ */ export class Eventdatafilter { - constructor(model: any) { - Object.assign(this, model); - } - /** * If set to false, event payload is not added/merged to state data. In this case 'data' and 'toStateData' should be ignored. Default is true. */ @@ -31,4 +27,8 @@ export class Eventdatafilter { * Workflow expression that selects a state data element to which the filtered event should be added/merged into. If not specified, denotes, the top-level state data element. */ toStateData?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/eventdef.ts b/src/lib/definitions/eventdef.ts index 8833683a..603acbc8 100644 --- a/src/lib/definitions/eventdef.ts +++ b/src/lib/definitions/eventdef.ts @@ -25,20 +25,6 @@ import { CorrelationDefs } from './types'; export class Eventdef { sourceModel?: Eventdef; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - kind: 'consumed', - dataOnly: true, - }; - Object.assign(this, defaultModel, model); - - overwriteCorrelation(this); - overwriteMetadata(this); - } - /** * Unique event name */ @@ -59,7 +45,6 @@ export class Eventdef { * CloudEvent correlation definitions */ correlation?: CorrelationDefs; - /** * If `true`, only the Event payload is accessible to consuming Workflow states. If `false`, both event payload and context attributes should be accessible */ @@ -69,6 +54,19 @@ export class Eventdef { */ metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + kind: 'consumed', + dataOnly: true, + }; + Object.assign(this, defaultModel, model); + + overwriteCorrelation(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Eventdef} without deleted properties. diff --git a/src/lib/definitions/eventref.ts b/src/lib/definitions/eventref.ts index e65f5f41..c89e3dd8 100644 --- a/src/lib/definitions/eventref.ts +++ b/src/lib/definitions/eventref.ts @@ -18,15 +18,6 @@ import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType export class Eventref { sourceModel?: Eventref; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - overwritePropertyAsPlainType('data', this); - overwritePropertyAsPlainType('contextAttributes', this); - } - /** * Reference to the unique name of a 'produced' event definition */ @@ -58,6 +49,14 @@ export class Eventref { */ invoke?: 'sync' | 'async'; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + overwritePropertyAsPlainType('data', this); + overwritePropertyAsPlainType('contextAttributes', this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Eventref} without deleted properties. diff --git a/src/lib/definitions/eventstate.ts b/src/lib/definitions/eventstate.ts index 2d5bab25..f26a8d66 100644 --- a/src/lib/definitions/eventstate.ts +++ b/src/lib/definitions/eventstate.ts @@ -40,27 +40,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Eventstate /* This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel */ { sourceModel?: Eventstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'event', - exclusive: true, - }; - Object.assign(this, defaultModel, model); - - overwriteOnEvents(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteStateDataFilter(this); - overwriteOnErrors(this); - overwriteTransition(this); - overwriteEnd(this); - overwriteMetadata(this); - } - /** * Unique State id */ @@ -102,6 +81,26 @@ export class Eventstate /* This state is used to wait for events from event sour compensatedBy?: string; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'event', + exclusive: true, + }; + Object.assign(this, defaultModel, model); + + overwriteOnEvents(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteStateDataFilter(this); + overwriteOnErrors(this); + overwriteTransition(this); + overwriteEnd(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Eventstate} without deleted properties. diff --git a/src/lib/definitions/foreachstate.ts b/src/lib/definitions/foreachstate.ts index 69dd8253..98a83b76 100644 --- a/src/lib/definitions/foreachstate.ts +++ b/src/lib/definitions/foreachstate.ts @@ -41,28 +41,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Foreachstate { sourceModel?: Foreachstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'foreach', - usedForCompensation: false, - mode: 'parallel', - }; - Object.assign(this, defaultModel, model); - - overwriteEnd(this); - overwriteActions(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteStateDataFilter(this); - overwriteOnErrors(this); - overwriteTransition(this); - overwriteMetadata(this); - } - /** * Unique State id */ @@ -132,6 +110,27 @@ export class Foreachstate { mode?: 'sequential' | 'parallel'; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'foreach', + usedForCompensation: false, + mode: 'parallel', + }; + Object.assign(this, defaultModel, model); + + overwriteEnd(this); + overwriteActions(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteStateDataFilter(this); + overwriteOnErrors(this); + overwriteTransition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Foreachstate} without deleted properties. diff --git a/src/lib/definitions/function.ts b/src/lib/definitions/function.ts index 0e38722e..94446c99 100644 --- a/src/lib/definitions/function.ts +++ b/src/lib/definitions/function.ts @@ -16,17 +16,9 @@ import { cleanSourceModelProperty, normalizeType, overwriteMetadata } from './utils'; import { Metadata } from './metadata'; + export class Function { sourceModel?: Function; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { type: 'rest' }; - Object.assign(this, defaultModel, model); - overwriteMetadata(this); - } - /** * Unique function name */ @@ -45,6 +37,14 @@ export class Function { authRef?: string; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { type: 'rest' }; + Object.assign(this, defaultModel, model); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Function} without deleted properties. diff --git a/src/lib/definitions/functionref.ts b/src/lib/definitions/functionref.ts index 44933fc7..b969bcec 100644 --- a/src/lib/definitions/functionref.ts +++ b/src/lib/definitions/functionref.ts @@ -18,14 +18,6 @@ import { cleanSourceModelProperty, normalizeInvoke, overwritePropertyAsPlainType export class Functionref { sourceModel?: Functionref; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - overwritePropertyAsPlainType('arguments', this); - } - /** * Name of the referenced function */ @@ -45,6 +37,13 @@ export class Functionref { */ invoke?: 'sync' | 'async'; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + overwritePropertyAsPlainType('arguments', this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Functionref} without deleted properties. diff --git a/src/lib/definitions/injectstate.ts b/src/lib/definitions/injectstate.ts index 379908bb..e0a3cf12 100644 --- a/src/lib/definitions/injectstate.ts +++ b/src/lib/definitions/injectstate.ts @@ -35,26 +35,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Injectstate { sourceModel?: Injectstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'inject', - usedForCompensation: false, - }; - Object.assign(this, defaultModel, model); - - overwriteEnd(this); - overwritePropertyAsPlainType('data', this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteStateDataFilter(this); - overwriteTransition(this); - overwriteMetadata(this); - } - /** * Unique state id */ @@ -101,6 +81,25 @@ export class Injectstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'inject', + usedForCompensation: false, + }; + Object.assign(this, defaultModel, model); + + overwriteEnd(this); + overwritePropertyAsPlainType('data', this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteStateDataFilter(this); + overwriteTransition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Injectstate} without deleted properties. diff --git a/src/lib/definitions/oauth2propsdef.ts b/src/lib/definitions/oauth2propsdef.ts index f425596f..d297c55e 100644 --- a/src/lib/definitions/oauth2propsdef.ts +++ b/src/lib/definitions/oauth2propsdef.ts @@ -16,12 +16,8 @@ import { Metadata } from './metadata'; import { overwriteMetadata } from './utils'; -export class Oauth2propsdef { - constructor(model: any) { - Object.assign(this, model); - overwriteMetadata(this); - } +export class Oauth2propsdef { /** * String or a workflow expression. Contains the authority information */ @@ -67,4 +63,9 @@ export class Oauth2propsdef { */ requestedIssuer?: string; metadata?: /* Metadata information */ Metadata; + + constructor(model: any) { + Object.assign(this, model); + overwriteMetadata(this); + } } diff --git a/src/lib/definitions/onevents.ts b/src/lib/definitions/onevents.ts index c8ebec5c..fc30353a 100644 --- a/src/lib/definitions/onevents.ts +++ b/src/lib/definitions/onevents.ts @@ -25,17 +25,6 @@ import { export class Onevents { sourceModel?: Onevents; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { actionMode: 'sequential' }; - Object.assign(this, defaultModel, model); - - overwriteActions(this); - overwriteEventDataFilter(this); - } - /** * References one or more unique event names in the defined workflow events */ @@ -53,6 +42,16 @@ export class Onevents { */ eventDataFilter?: Eventdatafilter; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { actionMode: 'sequential' }; + Object.assign(this, defaultModel, model); + + overwriteActions(this); + overwriteEventDataFilter(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Onevents} without deleted properties. diff --git a/src/lib/definitions/operationstate.ts b/src/lib/definitions/operationstate.ts index f8e9c79f..70823c09 100644 --- a/src/lib/definitions/operationstate.ts +++ b/src/lib/definitions/operationstate.ts @@ -41,28 +41,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Operationstate { sourceModel?: Operationstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'operation', - actionMode: 'sequential', - usedForCompensation: false, - }; - Object.assign(this, defaultModel, model); - - overwriteEnd(this); - overwriteStateDataFilter(this); - overwriteActions(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteOnErrors(this); - overwriteTransition(this); - overwriteMetadata(this); - } - /** * Unique State id */ @@ -116,6 +94,27 @@ export class Operationstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'operation', + actionMode: 'sequential', + usedForCompensation: false, + }; + Object.assign(this, defaultModel, model); + + overwriteEnd(this); + overwriteStateDataFilter(this); + overwriteActions(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteOnErrors(this); + overwriteTransition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Operationstate} without deleted properties. diff --git a/src/lib/definitions/parallelstate.ts b/src/lib/definitions/parallelstate.ts index df2168e8..32761c3e 100644 --- a/src/lib/definitions/parallelstate.ts +++ b/src/lib/definitions/parallelstate.ts @@ -42,28 +42,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Parallelstate { sourceModel?: Parallelstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'parallel', - completionType: 'allOf', - usedForCompensation: false, - }; - Object.assign(this, defaultModel, model); - - overwriteEnd(this); - overwriteStateDataFilter(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteBranches(this); - overwriteOnErrors(this); - overwriteTransition(this); - overwriteMetadata(this); - } - /** * Unique State id */ @@ -121,6 +99,27 @@ export class Parallelstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'parallel', + completionType: 'allOf', + usedForCompensation: false, + }; + Object.assign(this, defaultModel, model); + + overwriteEnd(this); + overwriteStateDataFilter(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteBranches(this); + overwriteOnErrors(this); + overwriteTransition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Parallelstate} without deleted properties. diff --git a/src/lib/definitions/produceeventdef.ts b/src/lib/definitions/produceeventdef.ts index ff7db272..d0bb5504 100644 --- a/src/lib/definitions/produceeventdef.ts +++ b/src/lib/definitions/produceeventdef.ts @@ -17,12 +17,6 @@ import { overwritePropertyAsPlainType } from './utils'; export class Produceeventdef { - constructor(model: any) { - Object.assign(this, model); - overwritePropertyAsPlainType('data', this); - overwritePropertyAsPlainType('contextAttributes', this); - } - /** * References a name of a defined event */ @@ -41,4 +35,10 @@ export class Produceeventdef { contextAttributes?: { [name: string]: string; }; + + constructor(model: any) { + Object.assign(this, model); + overwritePropertyAsPlainType('data', this); + overwritePropertyAsPlainType('contextAttributes', this); + } } diff --git a/src/lib/definitions/retrydef.ts b/src/lib/definitions/retrydef.ts index 877a9837..e0a141b9 100644 --- a/src/lib/definitions/retrydef.ts +++ b/src/lib/definitions/retrydef.ts @@ -15,10 +15,6 @@ */ export class Retrydef { - constructor(model: any) { - Object.assign(this, model); - } - /** * Unique retry strategy name */ @@ -47,4 +43,8 @@ export class Retrydef { * If float type, maximum amount of random time added or subtracted from the delay between each retry relative to total delay (between 0 and 1). If string type, absolute maximum amount of random time added or subtracted from the delay between each retry (ISO 8601 duration format) */ jitter?: number | string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/schedule.ts b/src/lib/definitions/schedule.ts index 9052c933..f6064ab7 100644 --- a/src/lib/definitions/schedule.ts +++ b/src/lib/definitions/schedule.ts @@ -17,12 +17,6 @@ import { Crondef } from './crondef'; import { overwriteCron } from './utils'; export class Schedule { - constructor(model: any) { - Object.assign(this, model); - - overwriteCron(this); - } - /** * Time interval (must be repeating interval) described with ISO 8601 format. Declares when workflow instances will be automatically created. */ @@ -32,4 +26,10 @@ export class Schedule { * Timezone name used to evaluate the interval & cron-expression. (default: UTC) */ timezone?: string; + + constructor(model: any) { + Object.assign(this, model); + + overwriteCron(this); + } } diff --git a/src/lib/definitions/sleep.ts b/src/lib/definitions/sleep.ts index 0ce1b6f0..f9c45b0c 100644 --- a/src/lib/definitions/sleep.ts +++ b/src/lib/definitions/sleep.ts @@ -15,10 +15,6 @@ */ export class Sleep { - constructor(model: any) { - Object.assign(this, model); - } - /** * Amount of time (ISO 8601 duration format) to sleep before function/subflow invocation. Does not apply if 'eventRef' is defined. */ @@ -27,4 +23,8 @@ export class Sleep { * Amount of time (ISO 8601 duration format) to sleep after function/subflow invocation. Does not apply if 'eventRef' is defined. */ after?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/sleepstate.ts b/src/lib/definitions/sleepstate.ts index 7052cab8..0895db1c 100644 --- a/src/lib/definitions/sleepstate.ts +++ b/src/lib/definitions/sleepstate.ts @@ -37,26 +37,6 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Sleepstate { sourceModel?: Sleepstate; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - type: 'sleep', - usedForCompensation: false, - }; - Object.assign(this, defaultModel, model); - - overwriteEnd(this); - overwriteStateDataFilter(this); - overwriteTimeoutWithStateExecTimeout(this); - overwriteOnErrors(this); - overwriteTransition(this); - overwriteMetadata(this); - } - /** * Unique State id */ @@ -105,6 +85,25 @@ export class Sleepstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + id: undefined, + name: undefined, + type: 'sleep', + usedForCompensation: false, + }; + Object.assign(this, defaultModel, model); + + overwriteEnd(this); + overwriteStateDataFilter(this); + overwriteTimeoutWithStateExecTimeout(this); + overwriteOnErrors(this); + overwriteTransition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Delaystate} without deleted properties. diff --git a/src/lib/definitions/startdef.ts b/src/lib/definitions/startdef.ts index d53ef03c..088494a9 100644 --- a/src/lib/definitions/startdef.ts +++ b/src/lib/definitions/startdef.ts @@ -17,12 +17,6 @@ import { Schedule } from './schedule'; import { overwriteSchedule } from './utils'; export class Startdef { - constructor(model: any) { - Object.assign(this, model); - - overwriteSchedule(this); - } - /** * Name of the starting workflow state */ @@ -31,4 +25,10 @@ export class Startdef { * Define the time/repeating intervals or cron at which workflow instances should be automatically started. */ schedule: string | Schedule; + + constructor(model: any) { + Object.assign(this, model); + + overwriteSchedule(this); + } } diff --git a/src/lib/definitions/stateExecTimeout.ts b/src/lib/definitions/stateExecTimeout.ts index db3e31fa..f872a266 100644 --- a/src/lib/definitions/stateExecTimeout.ts +++ b/src/lib/definitions/stateExecTimeout.ts @@ -15,10 +15,6 @@ */ export class StateExecTimeout { - constructor(model: any) { - Object.assign(this, model); - } - /** * Single state execution timeout, not including retries (ISO 8601 duration format) */ @@ -27,4 +23,8 @@ export class StateExecTimeout { * Total state execution timeout, including retries (ISO 8601 duration format) */ total: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/statedatafilter.ts b/src/lib/definitions/statedatafilter.ts index a92f80d5..f55234ec 100644 --- a/src/lib/definitions/statedatafilter.ts +++ b/src/lib/definitions/statedatafilter.ts @@ -15,10 +15,6 @@ */ export class Statedatafilter { - constructor(model: any) { - Object.assign(this, model); - } - /** * Workflow expression to filter the state data input */ @@ -27,4 +23,8 @@ export class Statedatafilter { * Workflow expression that filters the state data output */ output?: string; + + constructor(model: any) { + Object.assign(this, model); + } } diff --git a/src/lib/definitions/subflowref.ts b/src/lib/definitions/subflowref.ts index 329680b6..5becbe40 100644 --- a/src/lib/definitions/subflowref.ts +++ b/src/lib/definitions/subflowref.ts @@ -18,13 +18,6 @@ import { cleanSourceModelProperty, normalizeInvoke, normalizeOnParentComplete } export class Subflowref { sourceModel?: Subflowref; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - } - /** * Unique id of the sub-workflow to be invoked */ @@ -41,6 +34,13 @@ export class Subflowref { * Specifies if the subflow should be invoked sync or async */ invoke?: 'sync' | 'async'; + + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Subflowref} without deleted properties. diff --git a/src/lib/definitions/timeouts.ts b/src/lib/definitions/timeouts.ts index 44316201..0f07aca0 100644 --- a/src/lib/definitions/timeouts.ts +++ b/src/lib/definitions/timeouts.ts @@ -25,6 +25,11 @@ import { StateExecTimeout } from './stateExecTimeout'; export class Timeouts { sourceModel?: Timeouts; + workflowExecTimeout?: WorkflowExecTimeout; + stateExecTimeout?: StateExecTimeout; + actionExecTimeout?: /* Single actions definition execution timeout duration (ISO 8601 duration format) */ ActionExecTimeout; + branchExecTimeout?: /* Single branch execution timeout duration (ISO 8601 duration format) */ BranchExecTimeout; + eventTimeout?: /* Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ EventTimeout; constructor(model: any) { this.sourceModel = Object.assign({}, model); @@ -34,12 +39,6 @@ export class Timeouts { overwriteStateExecTimeout(this); } - workflowExecTimeout?: WorkflowExecTimeout; - stateExecTimeout?: StateExecTimeout; - actionExecTimeout?: /* Single actions definition execution timeout duration (ISO 8601 duration format) */ ActionExecTimeout; - branchExecTimeout?: /* Single branch execution timeout duration (ISO 8601 duration format) */ BranchExecTimeout; - eventTimeout?: /* Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ EventTimeout; - /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Exectimeout} without deleted properties. diff --git a/src/lib/definitions/transition.ts b/src/lib/definitions/transition.ts index fec22966..4477f616 100644 --- a/src/lib/definitions/transition.ts +++ b/src/lib/definitions/transition.ts @@ -18,18 +18,6 @@ import { cleanSourceModelProperty, normalizeCompensate, overwriteProduceEvents } export class Transition { sourceModel?: Transition; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - compensate: false, - }; - Object.assign(this, defaultModel, model); - - overwriteProduceEvents(this); - } - /** * Name of state to transition to */ @@ -43,6 +31,17 @@ export class Transition { */ compensate?: boolean; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { + compensate: false, + }; + Object.assign(this, defaultModel, model); + + overwriteProduceEvents(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Transition} without deleted properties. diff --git a/src/lib/definitions/transitiondatacondition.ts b/src/lib/definitions/transitiondatacondition.ts index 4e72eb8f..65dda3b9 100644 --- a/src/lib/definitions/transitiondatacondition.ts +++ b/src/lib/definitions/transitiondatacondition.ts @@ -19,16 +19,6 @@ import { cleanSourceModelProperty, normalizeTransition, overwriteMetadata, overw export class Transitiondatacondition { sourceModel?: Transitiondatacondition; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - - overwriteTransition(this); - overwriteMetadata(this); - } - /** * Data condition name */ @@ -43,6 +33,15 @@ export class Transitiondatacondition { transition: string | Transition; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + + overwriteTransition(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Transitiondatacondition} without deleted properties. diff --git a/src/lib/definitions/transitioneventcondition.ts b/src/lib/definitions/transitioneventcondition.ts index a2fc67b6..7fe0bd89 100644 --- a/src/lib/definitions/transitioneventcondition.ts +++ b/src/lib/definitions/transitioneventcondition.ts @@ -26,17 +26,6 @@ import { export class Transitioneventcondition { sourceModel?: Transitioneventcondition; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - Object.assign(this, model); - - overwriteTransition(this); - overwriteEventDataFilter(this); - overwriteMetadata(this); - } - /** * Event condition name */ @@ -55,6 +44,16 @@ export class Transitioneventcondition { eventDataFilter?: Eventdatafilter; metadata?: /* Metadata information */ Metadata; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + Object.assign(this, model); + + overwriteTransition(this); + overwriteEventDataFilter(this); + overwriteMetadata(this); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.Transitioneventcondition} without deleted properties. diff --git a/src/lib/definitions/workflow.ts b/src/lib/definitions/workflow.ts index f5be143a..52889226 100644 --- a/src/lib/definitions/workflow.ts +++ b/src/lib/definitions/workflow.ts @@ -46,40 +46,6 @@ import { Auth, Errors, Events, Functions, Retries, Secrets, States } from './typ export class Workflow { sourceModel?: Workflow; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { - id: undefined, - name: undefined, - version: undefined, - description: undefined, - specVersion: undefined, - start: undefined, - states: undefined, - functions: undefined, - events: undefined, - retries: undefined, - timeouts: undefined, - expressionLang: 'jq', - keepActive: true, - }; - - Object.assign(this, defaultModel, model); - - overwritePropertyAsPlainType('dataInputSchema', this); - overwritePropertyAsPlainType('constants', this); - overwriteStart(this); - overwriteTimeouts(this); - overwriteErrors(this); - overwriteMetadata(this); - overwriteEvents(this); - overwriteFunctions(this); - overwriteRetries(this); - overwriteAuth(this); - overwriteStates(this); - } /** * Workflow unique identifier */ @@ -150,24 +116,40 @@ export class Workflow { * State definitions */ states: States; - /** - * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. - * @returns {Specification.Workflow} without deleted properties. - */ - normalize = (): Workflow => { - const clone = new Workflow(this); - normalizeExpressionLang(clone, this.sourceModel); - normalizeTimeouts(clone); - normalizeKeepActive(clone, this.sourceModel); - normalizeEvents(clone); - normalizeFunctions(clone); - normalizeAuth(clone); - normalizeStates(clone); + constructor(model: any) { + this.sourceModel = Object.assign({}, model); - cleanSourceModelProperty(clone); - return clone; - }; + const defaultModel = { + id: undefined, + name: undefined, + version: undefined, + description: undefined, + specVersion: undefined, + start: undefined, + states: undefined, + functions: undefined, + events: undefined, + retries: undefined, + timeouts: undefined, + expressionLang: 'jq', + keepActive: true, + }; + + Object.assign(this, defaultModel, model); + + overwritePropertyAsPlainType('dataInputSchema', this); + overwritePropertyAsPlainType('constants', this); + overwriteStart(this); + overwriteTimeouts(this); + overwriteErrors(this); + overwriteMetadata(this); + overwriteEvents(this); + overwriteFunctions(this); + overwriteRetries(this); + overwriteAuth(this); + overwriteStates(this); + } /** * Parses the provided string as Workflow @@ -202,4 +184,23 @@ export class Workflow { validate('Workflow', workflow.normalize()); return yaml.dump(JSON.parse(JSON.stringify(workflow.normalize()))); } + + /** + * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. + * @returns {Specification.Workflow} without deleted properties. + */ + normalize = (): Workflow => { + const clone = new Workflow(this); + + normalizeExpressionLang(clone, this.sourceModel); + normalizeTimeouts(clone); + normalizeKeepActive(clone, this.sourceModel); + normalizeEvents(clone); + normalizeFunctions(clone); + normalizeAuth(clone); + normalizeStates(clone); + + cleanSourceModelProperty(clone); + return clone; + }; } diff --git a/src/lib/definitions/workflowExecTimeout.ts b/src/lib/definitions/workflowExecTimeout.ts index c2a8241c..37ead5fe 100644 --- a/src/lib/definitions/workflowExecTimeout.ts +++ b/src/lib/definitions/workflowExecTimeout.ts @@ -18,14 +18,6 @@ import { cleanSourceModelProperty, normalizeInterrupt } from './utils'; export class WorkflowExecTimeout { sourceModel?: WorkflowExecTimeout; - - constructor(model: any) { - this.sourceModel = Object.assign({}, model); - - const defaultModel = { interrupt: true }; - Object.assign(this, defaultModel, model); - } - /** * Workflow execution timeout duration (ISO 8601 duration format). If not specified should be 'unlimited' */ @@ -39,6 +31,13 @@ export class WorkflowExecTimeout { */ runBefore?: string; + constructor(model: any) { + this.sourceModel = Object.assign({}, model); + + const defaultModel = { interrupt: true }; + Object.assign(this, defaultModel, model); + } + /** * Normalize the value of each property by recursively deleting properties whose value is equal to its default value. Does not modify the object state. * @returns {Specification.WorkflowExecTimeout} without deleted properties. diff --git a/src/lib/schema/README.md b/src/lib/schema/README.md index 7d5a8642..86d82d3e 100644 --- a/src/lib/schema/README.md +++ b/src/lib/schema/README.md @@ -1,2 +1,3 @@ # Auto generated notice + This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/schema/types/README.md b/src/lib/schema/types/README.md index 7d5a8642..86d82d3e 100644 --- a/src/lib/schema/types/README.md +++ b/src/lib/schema/types/README.md @@ -1,2 +1,3 @@ # Auto generated notice + This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/schema/types/workflow.ts b/src/lib/schema/types/workflow.ts index bf4ca24a..e4e98bba 100644 --- a/src/lib/schema/types/workflow.ts +++ b/src/lib/schema/types/workflow.ts @@ -302,6 +302,7 @@ export type Action = * Single actions definition execution timeout duration (ISO 8601 duration format) */ export type ActionExecTimeout = string; + export interface Actiondatafilter { /** * Workflow expression that selects state data that the state action can use @@ -320,7 +321,9 @@ export interface Actiondatafilter { */ toStateData?: string; } + export type Auth = string /* uri */ | [Authdef, ...Authdef[]]; + export interface Authdef { /** * Unique auth definition name @@ -332,6 +335,7 @@ export interface Authdef { scheme?: 'basic' | 'bearer' | 'oauth2'; properties: string | Basicpropsdef | Bearerpropsdef | Oauth2propsdef; } + export type Basicpropsdef = | string | { @@ -354,6 +358,7 @@ export type Bearerpropsdef = token: string; metadata?: /* Metadata information */ Metadata; }; + /** * Branch Definition */ @@ -374,10 +379,12 @@ export interface Branch { */ actions: Action[]; } + /** * Single branch execution timeout duration (ISO 8601 duration format) */ export type BranchExecTimeout = string; + /** * This state performs an action, then waits for the callback event that denotes completion of the action */ @@ -440,6 +447,7 @@ export interface Callbackstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + export type Continueasdef = | string | { @@ -464,6 +472,7 @@ export type Continueasdef = */ workflowExecTimeout?: WorkflowExecTimeout; }; + /** * CloudEvent correlation definition */ @@ -477,6 +486,7 @@ export interface CorrelationDef { */ contextAttributeValue?: string; } + export type Crondef = | string | { @@ -489,6 +499,7 @@ export type Crondef = */ validUntil?: string; }; + /** * Permits transitions to other states based on data conditions */ @@ -537,6 +548,7 @@ export interface Databasedswitchstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + export type Datacondition /* Switch state data based condition */ = | Transitiondatacondition | /* Switch state data based condition */ Enddatacondition; @@ -569,6 +581,7 @@ export type End = compensate?: boolean; continueAs?: Continueasdef; }; + /** * Switch state data based condition */ @@ -587,6 +600,7 @@ export interface Enddatacondition { end: End; metadata?: /* Metadata information */ Metadata; } + /** * Switch state data event condition */ @@ -609,6 +623,7 @@ export interface Enddeventcondition { eventDataFilter?: Eventdatafilter; metadata?: /* Metadata information */ Metadata; } + export type Error = | { /** @@ -658,6 +673,7 @@ export type Error = transition?: Transition; end: End; }; + export interface Errordef { /** * Domain-specific error name @@ -672,11 +688,13 @@ export interface Errordef { */ description?: string; } + export type Errors = string /* uri */ | [Errordef, ...Errordef[]]; /** * Timeout duration to wait for consuming defined events (ISO 8601 duration format) */ export type EventTimeout = string; + /** * Permits transitions to other states based on events */ @@ -726,9 +744,11 @@ export interface Eventbasedswitchstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + export type Eventcondition /* Switch state data event condition */ = | Transitioneventcondition | /* Switch state data event condition */ Enddeventcondition; + export interface Eventdatafilter { /** * If set to false, event payload is not added/merged to state data. In this case 'data' and 'toStateData' should be ignored. Default is true. @@ -743,6 +763,7 @@ export interface Eventdatafilter { */ toStateData?: string; } + export interface Eventdef { /** * Unique event name @@ -776,6 +797,7 @@ export interface Eventdef { */ metadata?: /* Metadata information */ Metadata; } + /** * Event References */ @@ -811,6 +833,7 @@ export interface Eventref { */ invoke?: 'sync' | 'async'; } + export type Events = string /* uri */ | [Eventdef, ...Eventdef[]]; /** * This state is used to wait for events from event sources, then consumes them and invoke one or more actions to run in sequence or parallel @@ -901,6 +924,7 @@ export type Eventstate = compensatedBy?: string; metadata?: /* Metadata information */ Metadata; }; + /** * Execute a set of defined actions or workflows for each element of a data array */ @@ -974,6 +998,7 @@ export interface Foreachstate { mode?: 'sequential' | 'parallel'; metadata?: /* Metadata information */ Metadata; } + export interface Function { /** * Unique function name @@ -993,6 +1018,7 @@ export interface Function { authRef?: string; metadata?: /* Metadata information */ Metadata; } + export type Functionref = | string | { @@ -1016,6 +1042,7 @@ export type Functionref = invoke?: 'sync' | 'async'; }; export type Functions = string /* uri */ | [Function, ...Function[]]; + /** * Inject static data into state data. Does not perform any actions */ @@ -1066,12 +1093,14 @@ export interface Injectstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + /** * Metadata information */ export interface Metadata { [name: string]: string; } + export type Oauth2propsdef = | string | { @@ -1121,6 +1150,7 @@ export type Oauth2propsdef = requestedIssuer?: string; metadata?: /* Metadata information */ Metadata; }; + export interface Onevents { /** * References one or more unique event names in the defined workflow events @@ -1139,6 +1169,7 @@ export interface Onevents { */ eventDataFilter?: Eventdatafilter; } + /** * Defines actions be performed. Does not wait for incoming events */ @@ -1196,6 +1227,7 @@ export interface Operationstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + /** * Consists of a number of states that are executed in parallel */ @@ -1257,6 +1289,7 @@ export interface Parallelstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + /** * Produce an event and set its data */ @@ -1280,7 +1313,9 @@ export interface Produceeventdef { [name: string]: string; }; } + export type Retries = string /* uri */ | [Retrydef, ...Retrydef[]]; + export interface Retrydef { /** * Unique retry strategy name @@ -1311,6 +1346,7 @@ export interface Retrydef { */ jitter?: number | string; } + export type Schedule = | string | /* Start state schedule definition */ ( @@ -1369,6 +1405,7 @@ export type Sleep = */ after: string; }; + /** * Causes the workflow execution to sleep for a specified duration */ @@ -1421,6 +1458,7 @@ export interface Sleepstate { usedForCompensation?: boolean; metadata?: /* Metadata information */ Metadata; } + export type Startdef = | string | { @@ -1445,6 +1483,7 @@ export type StateExecTimeout = */ total: string; }; + export interface Statedatafilter { /** * Workflow expression to filter the state data input @@ -1455,6 +1494,7 @@ export interface Statedatafilter { */ output?: string; } + export type Subflowref = | string | { @@ -1503,6 +1543,7 @@ export type Transition = */ compensate?: boolean; }; + /** * Switch state data based condition */ @@ -1521,6 +1562,7 @@ export interface Transitiondatacondition { transition: Transition; metadata?: /* Metadata information */ Metadata; } + /** * Switch state data event condition */ @@ -1543,6 +1585,7 @@ export interface Transitioneventcondition { eventDataFilter?: Eventdatafilter; metadata?: /* Metadata information */ Metadata; } + export type WorkflowExecTimeout = | string | { diff --git a/src/lib/schema/validation/README.md b/src/lib/schema/validation/README.md index 7d5a8642..86d82d3e 100644 --- a/src/lib/schema/validation/README.md +++ b/src/lib/schema/validation/README.md @@ -1,2 +1,3 @@ # Auto generated notice + This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/validation/README.md b/src/lib/validation/README.md index 7d5a8642..86d82d3e 100644 --- a/src/lib/validation/README.md +++ b/src/lib/validation/README.md @@ -1,2 +1,3 @@ # Auto generated notice + This directory and its content has been generated automatically. Do not modify its content, it WILL be lost. \ No newline at end of file diff --git a/src/lib/validation/validators-paths.ts b/src/lib/validation/validators-paths.ts index 50161dd3..7d5f4132 100644 --- a/src/lib/validation/validators-paths.ts +++ b/src/lib/validation/validators-paths.ts @@ -18,71 +18,71 @@ * A map of type names and their corresponding schema */ export const validatorsPaths: [string, string][] = [ - ['Workflow', 'https://serverlessworkflow.io/schemas/0.8/workflow.json'], - ['Sleep', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/sleep'], - ['Crondef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/crondef'], - ['Continueasdef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/continueasdef'], - ['Transition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/transition'], - ['Error', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/error'], - ['Onevents', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/onevents'], - ['Action', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/action'], - ['Functionref', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/functionref'], - ['Eventref', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventref'], - ['Subflowref', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/subflowref'], - ['Branch', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/branch'], - ['Sleepstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/sleepstate'], - ['Eventstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventstate'], - ['Operationstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/operationstate'], - ['Parallelstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/parallelstate'], - ['Switchstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/switchstate'], - [ - 'Eventbasedswitchstate', - 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventbasedswitchstate', - ], - ['Databasedswitchstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/databasedswitchstate'], - ['Defaultconditiondef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/defaultconditiondef'], - ['Eventcondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventcondition'], - [ - 'Transitioneventcondition', - 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/transitioneventcondition', - ], - ['Enddeventcondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/enddeventcondition'], - ['Datacondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/datacondition'], - [ - 'Transitiondatacondition', - 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/transitiondatacondition', - ], - ['Enddatacondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/enddatacondition'], - ['Injectstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/injectstate'], - ['Foreachstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/foreachstate'], - ['Callbackstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/callbackstate'], - ['Startdef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/startdef'], - ['Schedule', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/schedule'], - ['End', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/end'], - ['Produceeventdef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/produceeventdef'], - ['Statedatafilter', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/statedatafilter'], - ['Eventdatafilter', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventdatafilter'], - ['Actiondatafilter', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/actiondatafilter'], - ['WorkflowExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/workflowExecTimeout'], - ['StateExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/stateExecTimeout'], - ['ActionExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/actionExecTimeout'], - ['BranchExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/branchExecTimeout'], - ['EventTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/eventTimeout'], - ['Errordef', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/definitions/errordef'], - ['Metadata', 'https://serverlessworkflow.io/schemas/0.8/common.json#/definitions/metadata'], - ['Eventdef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/eventdef'], - ['CorrelationDef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/correlationDef'], - ['Function', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/definitions/function'], - ['Retrydef', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/definitions/retrydef'], - ['Authdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/authdef'], - ['Basicpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/basicpropsdef'], - ['Bearerpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/bearerpropsdef'], - ['Oauth2propsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/oauth2propsdef'], - ['Secrets', 'https://serverlessworkflow.io/schemas/0.8/secrets.json#/secrets'], - ['Timeouts', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/timeouts'], - ['Errors', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/errors'], - ['Events', 'https://serverlessworkflow.io/schemas/0.8/events.json#/events'], - ['Functions', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/functions'], - ['Retries', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/retries'], - ['Auth', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/auth'], + ['Workflow', 'https://serverlessworkflow.io/schemas/0.8/workflow.json'], + ['Sleep', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/sleep'], + ['Crondef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/crondef'], + ['Continueasdef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/continueasdef'], + ['Transition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/transition'], + ['Error', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/error'], + ['Onevents', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/onevents'], + ['Action', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/action'], + ['Functionref', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/functionref'], + ['Eventref', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventref'], + ['Subflowref', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/subflowref'], + ['Branch', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/branch'], + ['Sleepstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/sleepstate'], + ['Eventstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventstate'], + ['Operationstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/operationstate'], + ['Parallelstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/parallelstate'], + ['Switchstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/switchstate'], + [ + 'Eventbasedswitchstate', + 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventbasedswitchstate', + ], + ['Databasedswitchstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/databasedswitchstate'], + ['Defaultconditiondef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/defaultconditiondef'], + ['Eventcondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventcondition'], + [ + 'Transitioneventcondition', + 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/transitioneventcondition', + ], + ['Enddeventcondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/enddeventcondition'], + ['Datacondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/datacondition'], + [ + 'Transitiondatacondition', + 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/transitiondatacondition', + ], + ['Enddatacondition', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/enddatacondition'], + ['Injectstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/injectstate'], + ['Foreachstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/foreachstate'], + ['Callbackstate', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/callbackstate'], + ['Startdef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/startdef'], + ['Schedule', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/schedule'], + ['End', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/end'], + ['Produceeventdef', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/produceeventdef'], + ['Statedatafilter', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/statedatafilter'], + ['Eventdatafilter', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/eventdatafilter'], + ['Actiondatafilter', 'https://serverlessworkflow.io/schemas/0.8/workflow.json#/definitions/actiondatafilter'], + ['WorkflowExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/workflowExecTimeout'], + ['StateExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/stateExecTimeout'], + ['ActionExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/actionExecTimeout'], + ['BranchExecTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/branchExecTimeout'], + ['EventTimeout', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/definitions/eventTimeout'], + ['Errordef', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/definitions/errordef'], + ['Metadata', 'https://serverlessworkflow.io/schemas/0.8/common.json#/definitions/metadata'], + ['Eventdef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/eventdef'], + ['CorrelationDef', 'https://serverlessworkflow.io/schemas/0.8/events.json#/definitions/correlationDef'], + ['Function', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/definitions/function'], + ['Retrydef', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/definitions/retrydef'], + ['Authdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/authdef'], + ['Basicpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/basicpropsdef'], + ['Bearerpropsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/bearerpropsdef'], + ['Oauth2propsdef', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/definitions/oauth2propsdef'], + ['Secrets', 'https://serverlessworkflow.io/schemas/0.8/secrets.json#/secrets'], + ['Timeouts', 'https://serverlessworkflow.io/schemas/0.8/timeouts.json#/timeouts'], + ['Errors', 'https://serverlessworkflow.io/schemas/0.8/errors.json#/errors'], + ['Events', 'https://serverlessworkflow.io/schemas/0.8/events.json#/events'], + ['Functions', 'https://serverlessworkflow.io/schemas/0.8/functions.json#/functions'], + ['Retries', 'https://serverlessworkflow.io/schemas/0.8/retries.json#/retries'], + ['Auth', 'https://serverlessworkflow.io/schemas/0.8/auth.json#/auth'], ]; diff --git a/tests/examples/applicantrequest.json b/tests/examples/applicantrequest.json index facb84b2..8a05887b 100644 --- a/tests/examples/applicantrequest.json +++ b/tests/examples/applicantrequest.json @@ -5,10 +5,10 @@ "description": "Determine if applicant request is valid", "specVersion": "0.8", "start": "CheckApplication", - "states":[ + "states": [ { - "name":"CheckApplication", - "type":"switch", + "name": "CheckApplication", + "type": "switch", "dataConditions": [ { "condition": "${ .applicants | .age >= 18 }", @@ -34,10 +34,10 @@ "end": true }, { - "name":"RejectApplication", - "type":"operation", - "actionMode":"sequential", - "actions":[ + "name": "RejectApplication", + "type": "operation", + "actionMode": "sequential", + "actions": [ { "functionRef": { "refName": "sendRejectionEmailFunction", diff --git a/tests/examples/applicantrequest.spec.ts b/tests/examples/applicantrequest.spec.ts index f5a4296a..6be412d9 100644 --- a/tests/examples/applicantrequest.spec.ts +++ b/tests/examples/applicantrequest.spec.ts @@ -18,12 +18,12 @@ import * as fs from 'fs'; import { actionBuilder, databasedswitchstateBuilder, + defaultconditiondefBuilder, functionBuilder, functionrefBuilder, operationstateBuilder, transitiondataconditionBuilder, workflowBuilder, - defaultconditiondefBuilder, } from '../../src'; describe('applicationrequest workflow example', () => { diff --git a/tests/examples/booklending.json b/tests/examples/booklending.json index 89ea88d4..cc640fc0 100644 --- a/tests/examples/booklending.json +++ b/tests/examples/booklending.json @@ -10,7 +10,9 @@ "type": "event", "onEvents": [ { - "eventRefs": ["Book Lending Request Event"] + "eventRefs": [ + "Book Lending Request Event" + ] } ], "transition": "Get Book Status" diff --git a/tests/examples/booklending.spec.ts b/tests/examples/booklending.spec.ts index 874fbb3c..289506ea 100644 --- a/tests/examples/booklending.spec.ts +++ b/tests/examples/booklending.spec.ts @@ -18,16 +18,16 @@ import * as fs from 'fs'; import { actionBuilder, databasedswitchstateBuilder, + defaultconditiondefBuilder, eventbasedswitchstateBuilder, eventstateBuilder, + functionrefBuilder, oneventsBuilder, operationstateBuilder, + sleepstateBuilder, transitiondataconditionBuilder, transitioneventconditionBuilder, workflowBuilder, - functionrefBuilder, - sleepstateBuilder, - defaultconditiondefBuilder, } from '../../src'; describe('booklending workflow example', () => { diff --git a/tests/examples/carauctionbids.spec.ts b/tests/examples/carauctionbids.spec.ts index a14514c0..6e42a711 100644 --- a/tests/examples/carauctionbids.spec.ts +++ b/tests/examples/carauctionbids.spec.ts @@ -19,9 +19,9 @@ import { eventdefBuilder, eventstateBuilder, functionBuilder, + functionrefBuilder, oneventsBuilder, workflowBuilder, - functionrefBuilder, } from '../../src'; describe('carauctionbids workflow example', () => { diff --git a/tests/examples/checkcarvitals.json b/tests/examples/checkcarvitals.json index 6aba4398..af6ecd31 100644 --- a/tests/examples/checkcarvitals.json +++ b/tests/examples/checkcarvitals.json @@ -10,7 +10,9 @@ "type": "event", "onEvents": [ { - "eventRefs": ["CarTurnedOnEvent"] + "eventRefs": [ + "CarTurnedOnEvent" + ] } ], "transition": "DoCarVitalChecks" diff --git a/tests/examples/checkcarvitals.spec.ts b/tests/examples/checkcarvitals.spec.ts index ed77e51d..d8656307 100644 --- a/tests/examples/checkcarvitals.spec.ts +++ b/tests/examples/checkcarvitals.spec.ts @@ -16,16 +16,16 @@ import * as fs from 'fs'; import { - eventdefBuilder, actionBuilder, - operationstateBuilder, + defaultconditiondefBuilder, + enddeventconditionBuilder, + eventbasedswitchstateBuilder, + eventdefBuilder, eventstateBuilder, oneventsBuilder, - workflowBuilder, + operationstateBuilder, sleepBuilder, - eventbasedswitchstateBuilder, - enddeventconditionBuilder, - defaultconditiondefBuilder, + workflowBuilder, } from '../../src'; describe('checkcarvitals workflow example', () => { diff --git a/tests/examples/jobmonitoring.json b/tests/examples/jobmonitoring.json index 7c77ffc0..815b7117 100644 --- a/tests/examples/jobmonitoring.json +++ b/tests/examples/jobmonitoring.json @@ -5,12 +5,12 @@ "description": "Monitor finished execution of a submitted job", "specVersion": "0.8", "start": "SubmitJob", - "states":[ + "states": [ { - "name":"SubmitJob", - "type":"operation", - "actionMode":"sequential", - "actions":[ + "name": "SubmitJob", + "type": "operation", + "actionMode": "sequential", + "actions": [ { "functionRef": { "refName": "submitJob", @@ -35,10 +35,10 @@ "transition": "GetJobStatus" }, { - "name":"GetJobStatus", - "type":"operation", - "actionMode":"sequential", - "actions":[ + "name": "GetJobStatus", + "type": "operation", + "actionMode": "sequential", + "actions": [ { "functionRef": { "refName": "checkJobStatus", @@ -57,8 +57,8 @@ "transition": "DetermineCompletion" }, { - "name":"DetermineCompletion", - "type":"switch", + "name": "DetermineCompletion", + "type": "switch", "dataConditions": [ { "condition": "${ .jobStatus == \"SUCCEEDED\" }", @@ -74,10 +74,10 @@ } }, { - "name":"JobSucceeded", - "type":"operation", - "actionMode":"sequential", - "actions":[ + "name": "JobSucceeded", + "type": "operation", + "actionMode": "sequential", + "actions": [ { "functionRef": { "refName": "reportJobSuceeded", @@ -90,10 +90,10 @@ "end": true }, { - "name":"JobFailed", - "type":"operation", - "actionMode":"sequential", - "actions":[ + "name": "JobFailed", + "type": "operation", + "actionMode": "sequential", + "actions": [ { "functionRef": { "refName": "reportJobFailed", diff --git a/tests/examples/jobmonitoring.spec.ts b/tests/examples/jobmonitoring.spec.ts index 5b8b6965..8c45351c 100644 --- a/tests/examples/jobmonitoring.spec.ts +++ b/tests/examples/jobmonitoring.spec.ts @@ -19,14 +19,14 @@ import { actionBuilder, actiondatafilterBuilder, databasedswitchstateBuilder, + defaultconditiondefBuilder, functionBuilder, functionrefBuilder, operationstateBuilder, + sleepstateBuilder, statedatafilterBuilder, transitiondataconditionBuilder, workflowBuilder, - defaultconditiondefBuilder, - sleepstateBuilder, } from '../../src'; describe('jobmonitoring workflow example', () => { diff --git a/tests/examples/parallel.json b/tests/examples/parallel.json index e63bf848..6282297f 100644 --- a/tests/examples/parallel.json +++ b/tests/examples/parallel.json @@ -5,7 +5,7 @@ "description": "Executes two branches in parallel", "specVersion": "0.8", "start": "ParallelExec", - "states":[ + "states": [ { "name": "ParallelExec", "type": "parallel", @@ -13,15 +13,19 @@ "branches": [ { "name": "ShortDelayBranch", - "actions": [{ - "subFlowRef": "shortdelayworkflowid" - }] + "actions": [ + { + "subFlowRef": "shortdelayworkflowid" + } + ] }, { "name": "LongDelayBranch", - "actions": [{ - "subFlowRef": "longdelayworkflowid" - }] + "actions": [ + { + "subFlowRef": "longdelayworkflowid" + } + ] } ], "end": true diff --git a/tests/examples/provisionorder.json b/tests/examples/provisionorder.json index fbb83e8a..2ef8d235 100644 --- a/tests/examples/provisionorder.json +++ b/tests/examples/provisionorder.json @@ -5,12 +5,12 @@ "description": "Provision Orders and handle errors thrown", "specVersion": "0.8", "start": "ProvisionOrder", - "states":[ + "states": [ { - "name":"ProvisionOrder", - "type":"operation", - "actionMode":"sequential", - "actions":[ + "name": "ProvisionOrder", + "type": "operation", + "actionMode": "sequential", + "actions": [ { "functionRef": { "refName": "provisionOrderFunction", diff --git a/tests/examples/provisionorder.spec.ts b/tests/examples/provisionorder.spec.ts index 3b20bb2b..d37e9a87 100644 --- a/tests/examples/provisionorder.spec.ts +++ b/tests/examples/provisionorder.spec.ts @@ -18,12 +18,12 @@ import * as fs from 'fs'; import { actionBuilder, errorBuilder, + errordefBuilder, functionBuilder, + functionrefBuilder, operationstateBuilder, statedatafilterBuilder, workflowBuilder, - functionrefBuilder, - errordefBuilder, } from '../../src'; describe('provisionorder workflow example', () => { diff --git a/tests/examples/sendcloudevent.json b/tests/examples/sendcloudevent.json index 253baf89..11f5ac8a 100644 --- a/tests/examples/sendcloudevent.json +++ b/tests/examples/sendcloudevent.json @@ -22,10 +22,12 @@ } ], "end": { - "produceEvents": [{ - "eventRef": "provisioningCompleteEvent", - "data": "${ .provisionedOrders }" - }] + "produceEvents": [ + { + "eventRef": "provisioningCompleteEvent", + "data": "${ .provisionedOrders }" + } + ] } } ], diff --git a/tests/examples/sendcloudevent.spec.ts b/tests/examples/sendcloudevent.spec.ts index a4f039af..0bb63bf0 100644 --- a/tests/examples/sendcloudevent.spec.ts +++ b/tests/examples/sendcloudevent.spec.ts @@ -16,13 +16,13 @@ import * as fs from 'fs'; import { actionBuilder, + endBuilder, eventdefBuilder, foreachstateBuilder, functionBuilder, + functionrefBuilder, produceeventdefBuilder, workflowBuilder, - functionrefBuilder, - endBuilder, } from '../../src'; describe('sendcloudevent workflow example', () => { diff --git a/tests/examples/solvemathproblems.json b/tests/examples/solvemathproblems.json index 876ffac4..d525922f 100644 --- a/tests/examples/solvemathproblems.json +++ b/tests/examples/solvemathproblems.json @@ -5,14 +5,14 @@ "description": "Solve math problems", "specVersion": "0.8", "start": "Solve", - "states":[ + "states": [ { - "name":"Solve", - "type":"foreach", + "name": "Solve", + "type": "foreach", "inputCollection": "${ .expressions }", "iterationParam": "singleexpression", "outputCollection": "${ .results }", - "actions":[ + "actions": [ { "functionRef": { "refName": "solveMathExpressionFunction", diff --git a/tests/examples/solvemathproblems.spec.ts b/tests/examples/solvemathproblems.spec.ts index b88d6eec..a9eb5ac8 100644 --- a/tests/examples/solvemathproblems.spec.ts +++ b/tests/examples/solvemathproblems.spec.ts @@ -18,9 +18,9 @@ import { actionBuilder, foreachstateBuilder, functionBuilder, + functionrefBuilder, statedatafilterBuilder, workflowBuilder, - functionrefBuilder, } from '../../src'; describe('solvemathproblems workflow example', () => { diff --git a/tests/lib/definitions/workflow-converter-hello-world.json b/tests/lib/definitions/workflow-converter-hello-world.json index 9296d76e..d68b1ee3 100644 --- a/tests/lib/definitions/workflow-converter-hello-world.json +++ b/tests/lib/definitions/workflow-converter-hello-world.json @@ -5,10 +5,10 @@ "name": "Hello World Workflow", "description": "Inject Hello World", "start": "Hello State", - "states":[ + "states": [ { - "type":"inject", - "name":"Hello State", + "type": "inject", + "name": "Hello State", "data": { "result": "Hello World!" }, diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 755706b4..92c22bf1 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -5,6 +5,6 @@ }, "include": [ "../src/**/*.ts", - "../**/*.spec.ts", + "../**/*.spec.ts" ] } diff --git a/tools/download-schemas-github.ts b/tools/download-schemas-github.ts index 1ca21b6d..86cc5972 100644 --- a/tools/download-schemas-github.ts +++ b/tools/download-schemas-github.ts @@ -27,6 +27,7 @@ import rimraf from 'rimraf'; import yargs from 'yargs'; import { version } from '../package.json'; import { readMeDisclaimer } from './consts'; + const { writeFile, mkdir } = fsPromises; const rimrafP = async (f: string): Promise => new Promise((resolve, reject) => @@ -35,6 +36,7 @@ const rimrafP = async (f: string): Promise => resolve(); }) ); + /** * Represents the links of a GitHub content item */ diff --git a/tools/download-schemas.ts b/tools/download-schemas.ts index 9984d005..15a3fad3 100644 --- a/tools/download-schemas.ts +++ b/tools/download-schemas.ts @@ -20,6 +20,7 @@ import { URL } from 'url'; import yargs from 'yargs'; import { schemaVersion } from '../package.json'; import { mergeDefinitions, mergeSchemas, reset } from './utils'; + const { writeFile, mkdir } = fsPromises; /** diff --git a/tools/generate-builders.ts b/tools/generate-builders.ts index 873582ae..f9ae0fa0 100644 --- a/tools/generate-builders.ts +++ b/tools/generate-builders.ts @@ -18,6 +18,7 @@ import { promises as fsPromises } from 'fs'; import * as path from 'path'; import { fileHeader } from './consts'; import { reset } from './utils'; + const { readFile, writeFile } = fsPromises; declare global { @@ -32,6 +33,7 @@ interface BuilderExtension { import?: string; preValidate: string; } + /** Stores additional code that needs to be added to builders depending on their type */ const buildersExtensions: { [key: string]: BuilderExtension } = { Callbackstate: { diff --git a/tools/generate-definitions.ts b/tools/generate-definitions.ts index b5a73d4e..6ab3d315 100644 --- a/tools/generate-definitions.ts +++ b/tools/generate-definitions.ts @@ -20,6 +20,7 @@ import { promises as fsPromises } from 'fs'; import * as path from 'path'; import { fileHeader } from './consts'; import { capitalizeFirstLetter, mergeDefinitions, mergeSchemas, reset } from './utils'; + const { writeFile } = fsPromises; /** diff --git a/tools/utils.ts b/tools/utils.ts index c8338e80..af6abdf0 100644 --- a/tools/utils.ts +++ b/tools/utils.ts @@ -19,6 +19,7 @@ import { promises as fsPromises } from 'fs'; import * as path from 'path'; import rimraf from 'rimraf'; import { readMeDisclaimer } from './consts'; + const { writeFile, mkdir } = fsPromises; /**