UNPKG

@stateflows/common

Version:

Common package for Stateflows framework clients

1 lines 31.3 kB
{"version":3,"sources":["../src/classes/send-result.ts","../src/classes/request-result.ts","../src/decorators/stateflows-event.ts","../src/events/event.ts","../src/events/behavior-info.ts","../src/events/request.ts","../src/classes/event-holder.ts","../src/events/compound.request.ts","../src/events/behavior-info.request.ts","../src/events/finalize.ts","../src/events/reset.ts","../src/behaviors/behavior.ts","../src/locators/behavior.locator.ts","../src/events/state-machine-info.ts","../src/events/state-machine-info.request.ts","../src/behaviors/state-machine.ts","../src/locators/state-machine.locator.ts","../src/behaviors/activity.ts","../src/locators/activity.locator.ts","../src/classes/stateflows-client.ts","../src/classes/event-header.ts","../src/ids/behavior.class.ts","../src/utils/json.utils.ts","../src/ids/behavior.id.ts","../src/ids/state-machine.id.ts","../src/ids/activity.id.ts","../src/events/compound.response.ts","../src/events/initialize.ts","../src/events/plant-uml-info.request.ts","../src/events/plant-uml-info.ts","../src/enums/event-status.ts","../src/enums/behavior-status.ts","../src/events/notifications.request.ts","../src/events/notifications.response.ts"],"sourcesContent":["import { EventStatus } from \"../enums/event-status\";\r\nimport { EventValidation } from \"./event-validation\";\r\n\r\nexport class SendResult {\r\n constructor(\r\n public event: any,\r\n public status: EventStatus,\r\n public validation: EventValidation,\r\n ) {}\r\n}","import { EventStatus } from \"../enums/event-status\";\r\nimport { EventValidation } from \"./event-validation\";\r\nimport { SendResult } from \"./send-result\";\r\n\r\nexport class RequestResult<TResponse> extends SendResult {\r\n constructor(\r\n public response: TResponse,\r\n event: any,\r\n status: EventStatus,\r\n validation: EventValidation,\r\n ) {\r\n super(event, status, validation);\r\n }\r\n}","export function StateflowsEvent(typeName: string, eventName: string | null = null) {\r\n return function (target: any) {\r\n const constructor = (target as Function).prototype.constructor;\r\n constructor.$type = typeName;\r\n constructor.eventName = (eventName === null)\r\n ? typeName.split(',')[0]\r\n : eventName;\r\n };\r\n}","export abstract class Event {\r\n public static $type: string;\r\n\r\n public static eventName: string;\r\n\r\n public get $type(): string {\r\n return (this as unknown as any).constructor.$type;\r\n }\r\n \r\n public get eventName(): string {\r\n return (this as unknown as any).constructor.eventName;\r\n }\r\n}","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { BehaviorStatus } from \"../enums/behavior-status\";\r\nimport { Event } from \"./event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.Events.BehaviorInfo, Stateflows.Common\")\r\nexport class BehaviorInfo extends Event {\r\n public behaviorStatus: BehaviorStatus;\r\n public expectedEvents: Array<string>;\r\n}","import { Event } from \"./event\";\r\n\r\nexport abstract class Request<TResponse> extends Event {\r\n public response: TResponse;\r\n}","import { BehaviorId } from \"../ids/behavior.id\";\r\nimport { EventHeader } from \"./event-header\";\r\n\r\nexport class EventHolder {\r\n public $type = \"Stateflows.Common.EventHolder<>, Stateflows.Common\";\r\n\r\n public id: string;\r\n public name: string;\r\n public sentAt: string;\r\n public senderId: BehaviorId;\r\n\r\n constructor(\r\n public payload: any,\r\n public headers: EventHeader[] = [],\r\n ) {\r\n this.$type = this.$type.replace('<>', '`1[[' + payload.$type + ']]');\r\n }\r\n}","import { Request } from \"./request\";\r\nimport { CompoundResponse } from \"./compound.response\";\r\nimport { EventHolder } from \"../classes/event-holder\";\r\nimport { StateflowsEvent } from \"../decorators/stateflows-event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.CompoundRequest, Stateflows.Common\")\r\nexport class CompoundRequest extends Request<CompoundResponse> {\r\n constructor(\r\n events: Array<any>,\r\n ) {\r\n super();\r\n this.events = events.map(event => new EventHolder(event));\r\n }\r\n\r\n public events: Array<EventHolder> = [];\r\n}\r\n","import { Request } from \"./request\";\r\nimport { BehaviorInfo } from \"./behavior-info\";\r\nimport { StateflowsEvent } from \"../decorators/stateflows-event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.BehaviorInfoRequest, Stateflows.Common\")\r\nexport class BehaviorInfoRequest extends Request<BehaviorInfo> { }","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { Event } from \"./event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.Finalize, Stateflows.Common\")\r\nexport class Finalize extends Event {}","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { ResetMode } from \"../enums/reset-mode\";\r\nimport { Event } from \"./event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.Reset, Stateflows.Common\")\r\nexport class Reset extends Event {\r\n constructor(\r\n public mode: ResetMode = ResetMode.Full,\r\n ) {\r\n super();\r\n }\r\n}","import { Request } from \"../events/request\";\r\nimport { IBehavior } from \"../interfaces/behavior\";\r\nimport { SendResult } from \"../classes/send-result\";\r\nimport { RequestResult } from \"../classes/request-result\";\r\nimport { BehaviorInfo } from \"../events/behavior-info\";\r\nimport { BehaviorId } from \"../ids/behavior.id\";\r\nimport { CompoundRequest } from \"../events/compound.request\";\r\nimport { CompoundResponse } from \"../events/compound.response\";\r\nimport { BehaviorInfoRequest } from \"../events/behavior-info.request\";\r\nimport { IStateflowsClientTransport } from \"../interfaces/stateflows-client-transport\";\r\nimport { Finalize } from \"../events/finalize\";\r\nimport { Reset } from \"../events/reset\";\r\nimport { IWatcher } from \"../interfaces/watcher\";\r\nimport { NotificationHandler } from \"../utils/notification-handler\";\r\nimport { ResetMode } from \"../enums/reset-mode\";\r\nimport { EventHolder } from \"../classes/event-holder\";\r\nimport { EventHeader } from \"../classes/event-header\";\r\nimport { Event } from \"../events/event\";\r\n\r\nexport class Behavior implements IBehavior, IWatcher {\r\n #transportPromise: Promise<IStateflowsClientTransport>;\r\n #notificationHandlers: Map<string, Array<NotificationHandler<any>>> = new Map<string, Array<NotificationHandler<any>>>();\r\n\r\n constructor(transportPromiseOrBehavior: Promise<IStateflowsClientTransport> | Behavior, public id: BehaviorId) {\r\n this.#transportPromise = transportPromiseOrBehavior instanceof Behavior\r\n ? transportPromiseOrBehavior.#transportPromise\r\n : this.#transportPromise = transportPromiseOrBehavior;\r\n }\r\n\r\n async send(event: Event, headers: EventHeader[] = []): Promise<SendResult> {\r\n let transport = await this.#transportPromise;\r\n let result = await transport.send(this.id, new EventHolder(event, headers));\r\n result.event = result.event.payload;\r\n return result;\r\n }\r\n\r\n sendCompound(...events: Event[]): Promise<RequestResult<CompoundResponse>> {\r\n return this.request(new CompoundRequest(events))\r\n }\r\n \r\n async request<TResponse>(request: Request<TResponse>, headers: EventHeader[] = []): Promise<RequestResult<TResponse>> {\r\n let sendResult = await this.send(request, headers);\r\n request.response = sendResult.event.response;\r\n let result = new RequestResult<TResponse>(request.response, request, sendResult.status, sendResult.validation);\r\n return result;\r\n }\r\n\r\n finalize(): Promise<SendResult> {\r\n return this.send(new Finalize());\r\n }\r\n\r\n reset(resetMode?: ResetMode): Promise<SendResult> {\r\n return this.send(new Reset(resetMode ?? ResetMode.Full));\r\n }\r\n\r\n notify(notification: EventHolder): void {\r\n if (this.#notificationHandlers.has(notification.name))\r\n {\r\n notification.payload.eventName = notification.name;\r\n let handlers = this.#notificationHandlers.get(notification.name) as Array<NotificationHandler<any>>;\r\n handlers.forEach(handler => handler(notification.payload));\r\n }\r\n }\r\n \r\n async watch<TNotification extends Event>(notificationName: string, handler: NotificationHandler<TNotification>): Promise<void> {\r\n let transport = await this.#transportPromise;\r\n await transport.watch(this, notificationName);\r\n\r\n let handlers: Array<NotificationHandler<any>> = this.#notificationHandlers.has(notificationName)\r\n ? this.#notificationHandlers.get(notificationName) as Array<NotificationHandler<any>>\r\n : [];\r\n\r\n handlers.push(n => handler(n as TNotification));\r\n\r\n this.#notificationHandlers.set(notificationName, handlers);\r\n }\r\n\r\n async requestAndWatch<TRequest extends Request<TNotification>, TNotification extends Event>(request: TRequest, notificationName: string, handler: NotificationHandler<TNotification>): Promise<void> {\r\n let promise = await this.watch(notificationName, handler);\r\n let result = await this.request(request);\r\n handler(result.response);\r\n return promise;\r\n }\r\n\r\n async unwatch(notificationName: string): Promise<void> {\r\n let transport = await this.#transportPromise;\r\n await transport.unwatch(this, notificationName);\r\n\r\n this.#notificationHandlers.delete(notificationName);\r\n }\r\n\r\n getStatus(): Promise<RequestResult<BehaviorInfo>> {\r\n return this.request(new BehaviorInfoRequest());\r\n }\r\n\r\n watchStatus(handler: NotificationHandler<BehaviorInfo>): Promise<void> {\r\n return this.watch<BehaviorInfo>(BehaviorInfo.eventName, handler);\r\n }\r\n\r\n async requestAndWatchStatus(handler: NotificationHandler<BehaviorInfo>): Promise<void> {\r\n let promise = this.watch<BehaviorInfo>(BehaviorInfo.eventName, handler);\r\n let result = await this.getStatus();\r\n handler(result.response);\r\n return promise;\r\n }\r\n\r\n unwatchStatus(): Promise<void> {\r\n return this.unwatch(BehaviorInfo.eventName);\r\n }\r\n}","import { Behavior } from \"../behaviors/behavior\";\r\nimport { BehaviorClass } from \"../ids/behavior.class\";\r\nimport { BehaviorId } from \"../ids/behavior.id\";\r\nimport { IBehavior } from \"../interfaces/behavior\";\r\nimport { IBehaviorLocator } from \"../interfaces/behavior.locator\";\r\nimport { IStateflowsClientTransport } from \"../interfaces/stateflows-client-transport\";\r\n\r\nexport class BehaviorLocator implements IBehaviorLocator {\r\n private behaviorClasses: BehaviorClass[] = [];\r\n\r\n private transportPromise: Promise<IStateflowsClientTransport>;\r\n\r\n constructor(transportPromise: Promise<IStateflowsClientTransport>) {\r\n this.transportPromise = new Promise<IStateflowsClientTransport>((resolve, reject) => {\r\n transportPromise\r\n .then(transport => {\r\n transport.getAvailableClasses().then(result => {\r\n this.behaviorClasses = result;\r\n resolve(transport);\r\n });\r\n })\r\n .catch(reason => reject(reason));\r\n });\r\n }\r\n\r\n locateBehavior(behaviorId: BehaviorId): Promise<IBehavior> {\r\n return new Promise<IBehavior>((resolve, reject) => {\r\n this.transportPromise\r\n .then(transport => {\r\n if (this.behaviorClasses.findIndex(behaviorClass => \r\n behaviorClass.type === behaviorId.behaviorClass.type &&\r\n behaviorClass.name === behaviorId.behaviorClass.name\r\n ) !== -1) {\r\n let behavior = new Behavior(this.transportPromise, behaviorId);\r\n resolve(behavior);\r\n }\r\n else\r\n {\r\n reject(\"Behavior not found\");\r\n }\r\n })\r\n .catch(reason => reject(reason));\r\n });\r\n }\r\n}","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { BehaviorInfo } from \"./behavior-info\";\r\n\r\nexport interface TreeNode<T> {\r\n value: T;\r\n nodes: Array<TreeNode<T>>;\r\n}\r\n\r\nexport interface Tree<T> {\r\n value: T;\r\n root: TreeNode<T>;\r\n}\r\n\r\n@StateflowsEvent(\"Stateflows.StateMachines.StateMachineInfo, Stateflows.Common\")\r\nexport class StateMachineInfo extends BehaviorInfo {\r\n public statesTree: Tree<string>;\r\n}","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { Request } from \"./request\";\r\nimport { StateMachineInfo } from \"./state-machine-info\";\r\n\r\n@StateflowsEvent(\"Stateflows.StateMachines.StateMachineInfoRequest, Stateflows.Common\")\r\nexport class StateMachineInfoRequest extends Request<StateMachineInfo> { }","import { RequestResult } from \"../classes/request-result\";\r\nimport { StateMachineInfo } from \"../events/state-machine-info\";\r\nimport { StateMachineInfoRequest } from \"../events/state-machine-info.request\";\r\nimport { IStateMachineBehavior } from \"../interfaces/state-machine.behavior\";\r\nimport { NotificationHandler } from \"../utils/notification-handler\";\r\nimport { Behavior } from \"./behavior\";\r\n\r\nexport class StateMachine extends Behavior implements IStateMachineBehavior {\r\n constructor(behavior: Behavior) {\r\n super(behavior, behavior.id);\r\n }\r\n\r\n async requestAndWatchCurrentState(handler: NotificationHandler<StateMachineInfo>): Promise<void> {\r\n let promise = await this.watch<StateMachineInfo>(StateMachineInfo.eventName, handler);\r\n let result = await this.request(new StateMachineInfoRequest());\r\n handler(result.response);\r\n return promise;\r\n }\r\n\r\n getCurrentState(): Promise<RequestResult<StateMachineInfo>> {\r\n return this.request(new StateMachineInfoRequest());\r\n }\r\n\r\n watchCurrentState(handler: NotificationHandler<StateMachineInfo>): Promise<void> {\r\n return this.watch<StateMachineInfo>(StateMachineInfo.eventName, handler);\r\n }\r\n\r\n unwatchCurrentState(): Promise<void> {\r\n return this.unwatch(StateMachineInfo.eventName);\r\n }\r\n}","import { Behavior } from \"../behaviors/behavior\";\r\nimport { StateMachine } from \"../behaviors/state-machine\";\r\nimport { StateMachineId } from \"../ids/state-machine.id\";\r\nimport { IBehaviorLocator } from \"../interfaces/behavior.locator\";\r\nimport { IStateMachine } from \"../interfaces/state-machine\";\r\nimport { IStateMachineLocator } from \"../interfaces/state-machine.locator\";\r\n\r\nexport class StateMachineLocator implements IStateMachineLocator {\r\n constructor(private behaviorLocator: IBehaviorLocator) {}\r\n\r\n locateStateMachine(id: StateMachineId): Promise<IStateMachine> {\r\n return new Promise<IStateMachine>((resolve, reject) => {\r\n this.behaviorLocator.locateBehavior(id)\r\n .then(behavior => resolve(new StateMachine(behavior as Behavior)))\r\n .catch(_ => reject(\"State Machine not found\"));\r\n });\r\n }\r\n}","import { IActivityBehavior } from \"../interfaces/activity.behavior\";\r\nimport { Behavior } from \"./behavior\";\r\n\r\nexport class Activity extends Behavior implements IActivityBehavior {\r\n constructor(behavior: Behavior) {\r\n super(behavior, behavior.id);\r\n }\r\n}","import { Activity } from \"../behaviors/activity\";\r\nimport { Behavior } from \"../behaviors/behavior\";\r\nimport { ActivityId } from \"../ids/activity.id\";\r\nimport { IActivity } from \"../interfaces/activity\";\r\nimport { IActivityLocator } from \"../interfaces/activity.locator\";\r\nimport { IBehaviorLocator } from \"../interfaces/behavior.locator\";\r\n\r\nexport class ActivityLocator implements IActivityLocator {\r\n constructor(private behaviorLocator: IBehaviorLocator) {}\r\n\r\n locateActivity(id: ActivityId): Promise<IActivity> {\r\n return new Promise<IActivity>((resolve, reject) => {\r\n this.behaviorLocator.locateBehavior(id)\r\n .then(behavior => resolve(new Activity(behavior as Behavior)))\r\n .catch(_ => reject(\"Activity not found\"));\r\n });\r\n }\r\n}","import { IBehaviorLocator } from \"../interfaces/behavior.locator\";\r\nimport { IStateMachineLocator } from \"../interfaces/state-machine.locator\";\r\nimport { BehaviorLocator } from \"../locators/behavior.locator\";\r\nimport { StateMachineLocator } from \"../locators/state-machine.locator\";\r\nimport { IActivityLocator } from \"../interfaces/activity.locator\";\r\nimport { ActivityLocator } from \"../locators/activity.locator\";\r\nimport { IStateflowsClientTransportFactory } from \"../interfaces/stateflows-client-transport-factory\";\r\n\r\nexport class StateflowsClient {\r\n constructor(private transportFactory: IStateflowsClientTransportFactory) { }\r\n\r\n #behaviorLocator: IBehaviorLocator | null = null;\r\n\r\n public get behaviorLocator(): IBehaviorLocator {\r\n return this.#behaviorLocator ??= new BehaviorLocator(this.transportFactory.getTransport());\r\n }\r\n\r\n #stateMachineLocator: IStateMachineLocator | null = null;\r\n\r\n public get stateMachineLocator(): IStateMachineLocator {\r\n return this.#stateMachineLocator ??= new StateMachineLocator(this.behaviorLocator);\r\n }\r\n\r\n #activityLocator: IActivityLocator | null = null;\r\n\r\n public get activityLocator(): IActivityLocator {\r\n return this.#activityLocator ??= new ActivityLocator(this.behaviorLocator);\r\n }\r\n}","export class EventHeader {\r\n}","export class BehaviorClass {\r\n constructor(\r\n public type: string,\r\n public name: string\r\n ) {}\r\n \r\n public $type: string = \"Stateflows.BehaviorClass, Stateflows.Common\";\r\n}","export class JsonUtils {\r\n public static stringify(object: any): string {\r\n const replacer = (key: string, value: any) =>\r\n value instanceof Object && !(value instanceof Array)\r\n ? Object.keys(value)\r\n .sort()\r\n .reduce(\r\n (sorted: any, key: any) => {\r\n sorted[key] = value[key];\r\n return sorted;\r\n },\r\n {}\r\n )\r\n : value;\r\n\r\n return JSON.stringify(object, replacer);\r\n }\r\n\r\n public static parse(json: string): any {\r\n return JSON.parse(json);\r\n }\r\n\r\n public static deepClone<T>(object: T): T {\r\n return JsonUtils.parse(JsonUtils.stringify(object)) as T;\r\n }\r\n}","import { JsonUtils } from \"../utils/json.utils\";\r\nimport { BehaviorClass } from \"./behavior.class\";\r\n\r\nexport class BehaviorId {\r\n constructor(\r\n public behaviorClass: BehaviorClass,\r\n public instance: string\r\n ) {}\r\n\r\n public $type: string = \"Stateflows.BehaviorId, Stateflows.Common\";\r\n\r\n public toString(): string {\r\n return JsonUtils.stringify(this);\r\n }\r\n}","import { BehaviorClass } from \"./behavior.class\";\r\nimport { BehaviorId } from \"./behavior.id\";\r\n\r\nexport class StateMachineId extends BehaviorId {\r\n constructor(\r\n name: string,\r\n instance: string\r\n ) {\r\n super(new BehaviorClass(\"StateMachine\", name), instance);\r\n }\r\n}","import { BehaviorClass } from \"./behavior.class\";\r\nimport { BehaviorId } from \"./behavior.id\";\r\n\r\nexport class ActivityId extends BehaviorId {\r\n constructor(\r\n name: string,\r\n instance: string\r\n ) {\r\n super(new BehaviorClass(\"Activity\", name), instance);\r\n }\r\n}","import { RequestResult } from \"../classes/request-result\";\r\n\r\nexport class CompoundResponse {\r\n constructor(\r\n public results: Array<RequestResult<any>>,\r\n ) { }\r\n}\r\n","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { Event } from \"./event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.Initialize, Stateflows.Common\")\r\nexport class Initialize extends Event { }","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { PlantUmlInfo } from \"./plant-uml-info\";\r\nimport { Request } from \"./request\";\r\n\r\n@StateflowsEvent(\"Stateflows.Extensions.PlantUml.Events.PlantUmlInfoRequest, Stateflows.Extensions.PlantUml\")\r\nexport class PlantUmlInfoRequest extends Request<PlantUmlInfo> { }","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { Event } from \"./event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Extensions.PlantUml.Events.PlantUmlInfo, Stateflows.Extensions.PlantUml\")\r\nexport class PlantUmlInfo extends Event {\r\n public plantUml: string;\r\n}","export enum EventStatus {\r\n Initialized = 0,\r\n NotInitialized = 1,\r\n Undelivered = 2,\r\n Rejected = 3,\r\n Invalid = 4,\r\n Deferred = 5,\r\n Consumed = 6,\r\n NotConsumed = 7,\r\n Omitted = 8,\r\n Failed = 9,\r\n Forwarded = 10\r\n}","export enum BehaviorStatus {\r\n Unknown = 0,\r\n NotInitialized = 1,\r\n Initialized = 2,\r\n Finalized = 3\r\n}","import { Request } from \"./request\";\r\nimport { NotificationsResponse } from \"./notifications.response\";\r\nimport { StateflowsEvent } from \"../decorators/stateflows-event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.NotificationsRequest, Stateflows.Common\")\r\nexport class NotificationsRequest extends Request<NotificationsResponse> { }","import { StateflowsEvent } from \"../decorators/stateflows-event\";\r\nimport { Event } from \"./event\";\r\n\r\n@StateflowsEvent(\"Stateflows.Common.NotificationsResponse, Stateflows.Common\")\r\nexport class NotificationsResponse extends Event { }"],"mappings":"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","names":["_init","_a","_init","_a","_init","_a","_init","_a","_init","_a","_init","_a","_a","key","_init","_a","_init","_a","_init","_a","EventStatus","BehaviorStatus","_init","_a","_init","_a"]}