@asksuite/askflow-app-sdk 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,36 @@
1
+ export declare enum DefaultFieldEnum {
2
+ name = "name",
3
+ email = "email",
4
+ tags = "tags",
5
+ tagsString = "tagsString",
6
+ platform = "platform",
7
+ phone = "phone",
8
+ city = "city",
9
+ state = "state",
10
+ country = "country",
11
+ arrivalDate = "arrivalDate",
12
+ departureDate = "departureDate",
13
+ language = "language",
14
+ adults = "adults",
15
+ children = "children",
16
+ updatedAt = "updatedAt",
17
+ requestPrice = "requestPrice",
18
+ eventQuote = "eventQuote",
19
+ groupQuote = "groupQuote",
20
+ linkQuotationOpened = "linkQuotationOpened",
21
+ utmSource = "utmSource",
22
+ utmMedium = "utmMedium",
23
+ utmCampaign = "utmCampaign",
24
+ page = "page",
25
+ linkToLiveChat = "linkToLiveChat",
26
+ hasReservation = "hasReservation",
27
+ totalReservation = "totalReservation",
28
+ minTotalValuePriceQuote = "minTotalValuePriceQuote",
29
+ maxTotalValuePriceQuote = "maxTotalValuePriceQuote",
30
+ currencyPriceQuote = "currencyPriceQuote",
31
+ attendant = "attendant",
32
+ attendantEmail = "attendantEmail",
33
+ companyName = "companyName",
34
+ conversationId = "conversationId",
35
+ hotelReservationId = "hotelReservationId"
36
+ }
@@ -0,0 +1,20 @@
1
+ import { IContext, IEvent, IManifest, IResponseDynamicData, IResponseEvent } from "./types";
2
+ export type { IContext, IEvent, IManifest, IOutputData, IResponseEvent, II18nData, IArgument, ISource, IQueryItem, IDependsOn, ISelectItem, IResponseDynamicData } from "./types";
3
+ export { ArgumentTypeEnum, EventTypeEnum, EventTriggerEnum } from "./types";
4
+ export { DefaultFieldEnum } from "./default-fields";
5
+ export declare abstract class AppFlow {
6
+ protected readonly context: IContext;
7
+ protected events: IEvent[];
8
+ protected eventsByKey: Map<string, IEvent>;
9
+ protected executors: Map<IEvent, (context: IContext) => Promise<IResponseEvent>>;
10
+ protected dynamicDataExecutors: Map<string, (context: IContext) => Promise<IResponseDynamicData>>;
11
+ protected constructor(context: IContext);
12
+ registerEvent(event: IEvent, executor: (context: IContext) => Promise<IResponseEvent>): void;
13
+ registerDynamicData(key: string, executor: (context: IContext) => Promise<IResponseDynamicData>): void;
14
+ abstract getManifest(): Promise<IManifest>;
15
+ abstract checkConnection(): Promise<boolean>;
16
+ listEvents(): IEvent[];
17
+ getEvent(key: string): IEvent | undefined;
18
+ executeEvent(event: IEvent | string): Promise<IResponseEvent>;
19
+ getDynamicData(key: string): Promise<IResponseDynamicData>;
20
+ }
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ var e,t,n,r;exports.ArgumentTypeEnum=void 0,(e=exports.ArgumentTypeEnum||(exports.ArgumentTypeEnum={})).string="string",e.url="url",e.email="email",e.phone="phone",e.number="number",e.boolean="boolean",e.select="select",e.selectItem="selectItem",e.multiselect="multiselect",e.date="date",e.timestamp="timestamp",exports.EventTriggerEnum=void 0,(t=exports.EventTriggerEnum||(exports.EventTriggerEnum={})).webhook="webhook",t.polling="polling",t.step="step",exports.EventTypeEnum=void 0,(n=exports.EventTypeEnum||(exports.EventTypeEnum={})).action="action",n.query="query",exports.DefaultFieldEnum=void 0,(r=exports.DefaultFieldEnum||(exports.DefaultFieldEnum={})).name="name",r.email="email",r.tags="tags",r.tagsString="tagsString",r.platform="platform",r.phone="phone",r.city="city",r.state="state",r.country="country",r.arrivalDate="arrivalDate",r.departureDate="departureDate",r.language="language",r.adults="adults",r.children="children",r.updatedAt="updatedAt",r.requestPrice="requestPrice",r.eventQuote="eventQuote",r.groupQuote="groupQuote",r.linkQuotationOpened="linkQuotationOpened",r.utmSource="utmSource",r.utmMedium="utmMedium",r.utmCampaign="utmCampaign",r.page="page",r.linkToLiveChat="linkToLiveChat",r.hasReservation="hasReservation",r.totalReservation="totalReservation",r.minTotalValuePriceQuote="minTotalValuePriceQuote",r.maxTotalValuePriceQuote="maxTotalValuePriceQuote",r.currencyPriceQuote="currencyPriceQuote",r.attendant="attendant",r.attendantEmail="attendantEmail",r.companyName="companyName",r.conversationId="conversationId",r.hotelReservationId="hotelReservationId",exports.AppFlow=/*#__PURE__*/function(){function e(e){this.context=void 0,this.events=[],this.eventsByKey=void 0,this.executors=new Map,this.dynamicDataExecutors=new Map,this.context=e,this.eventsByKey=new Map}var t=e.prototype;return t.registerEvent=function(e,t){this.events.push(e),this.eventsByKey.set(e.key,e),this.executors.set(e,t)},t.registerDynamicData=function(e,t){this.dynamicDataExecutors.set(e,t)},t.listEvents=function(){return this.events},t.getEvent=function(e){return this.eventsByKey.get(e)},t.executeEvent=function(e){try{var t,n,r=this,o=(n="string"==typeof e||e instanceof String?r.getEvent(String(e)):e)?r.executors.get(n):void 0;if(o)return Promise.resolve(o(r.context));throw new Error("Event "+((null==(t=n)?void 0:t.label)||e)+" not found")}catch(e){return Promise.reject(e)}},t.getDynamicData=function(e){try{var t=this.dynamicDataExecutors.get(e);if(t)return Promise.resolve(t(this.context));throw new Error("Dynamic data executor "+e+" not found")}catch(e){return Promise.reject(e)}},e}();
@@ -0,0 +1 @@
1
+ var t,e,n,a;!function(t){t.string="string",t.url="url",t.email="email",t.phone="phone",t.number="number",t.boolean="boolean",t.select="select",t.selectItem="selectItem",t.multiselect="multiselect",t.date="date",t.timestamp="timestamp"}(t||(t={})),function(t){t.webhook="webhook",t.polling="polling",t.step="step"}(e||(e={})),function(t){t.action="action",t.query="query"}(n||(n={})),function(t){t.name="name",t.email="email",t.tags="tags",t.tagsString="tagsString",t.platform="platform",t.phone="phone",t.city="city",t.state="state",t.country="country",t.arrivalDate="arrivalDate",t.departureDate="departureDate",t.language="language",t.adults="adults",t.children="children",t.updatedAt="updatedAt",t.requestPrice="requestPrice",t.eventQuote="eventQuote",t.groupQuote="groupQuote",t.linkQuotationOpened="linkQuotationOpened",t.utmSource="utmSource",t.utmMedium="utmMedium",t.utmCampaign="utmCampaign",t.page="page",t.linkToLiveChat="linkToLiveChat",t.hasReservation="hasReservation",t.totalReservation="totalReservation",t.minTotalValuePriceQuote="minTotalValuePriceQuote",t.maxTotalValuePriceQuote="maxTotalValuePriceQuote",t.currencyPriceQuote="currencyPriceQuote",t.attendant="attendant",t.attendantEmail="attendantEmail",t.companyName="companyName",t.conversationId="conversationId",t.hotelReservationId="hotelReservationId"}(a||(a={}));var o=/*#__PURE__*/function(){function t(t){this.context=void 0,this.events=[],this.eventsByKey=void 0,this.executors=new Map,this.dynamicDataExecutors=new Map,this.context=t,this.eventsByKey=new Map}var e=t.prototype;return e.registerEvent=function(t,e){this.events.push(t),this.eventsByKey.set(t.key,t),this.executors.set(t,e)},e.registerDynamicData=function(t,e){this.dynamicDataExecutors.set(t,e)},e.listEvents=function(){return this.events},e.getEvent=function(t){return this.eventsByKey.get(t)},e.executeEvent=function(t){try{var e,n,a=this,o=(n="string"==typeof t||t instanceof String?a.getEvent(String(t)):t)?a.executors.get(n):void 0;if(o)return Promise.resolve(o(a.context));throw new Error("Event "+((null==(e=n)?void 0:e.label)||t)+" not found")}catch(t){return Promise.reject(t)}},e.getDynamicData=function(t){try{var e=this.dynamicDataExecutors.get(t);if(e)return Promise.resolve(e(this.context));throw new Error("Dynamic data executor "+t+" not found")}catch(t){return Promise.reject(t)}},t}();export{o as AppFlow,t as ArgumentTypeEnum,a as DefaultFieldEnum,e as EventTriggerEnum,n as EventTypeEnum};
@@ -0,0 +1 @@
1
+ var t,e,n,a;!function(t){t.string="string",t.url="url",t.email="email",t.phone="phone",t.number="number",t.boolean="boolean",t.select="select",t.selectItem="selectItem",t.multiselect="multiselect",t.date="date",t.timestamp="timestamp"}(t||(t={})),function(t){t.webhook="webhook",t.polling="polling",t.step="step"}(e||(e={})),function(t){t.action="action",t.query="query"}(n||(n={})),function(t){t.name="name",t.email="email",t.tags="tags",t.tagsString="tagsString",t.platform="platform",t.phone="phone",t.city="city",t.state="state",t.country="country",t.arrivalDate="arrivalDate",t.departureDate="departureDate",t.language="language",t.adults="adults",t.children="children",t.updatedAt="updatedAt",t.requestPrice="requestPrice",t.eventQuote="eventQuote",t.groupQuote="groupQuote",t.linkQuotationOpened="linkQuotationOpened",t.utmSource="utmSource",t.utmMedium="utmMedium",t.utmCampaign="utmCampaign",t.page="page",t.linkToLiveChat="linkToLiveChat",t.hasReservation="hasReservation",t.totalReservation="totalReservation",t.minTotalValuePriceQuote="minTotalValuePriceQuote",t.maxTotalValuePriceQuote="maxTotalValuePriceQuote",t.currencyPriceQuote="currencyPriceQuote",t.attendant="attendant",t.attendantEmail="attendantEmail",t.companyName="companyName",t.conversationId="conversationId",t.hotelReservationId="hotelReservationId"}(a||(a={}));class i{constructor(t){this.context=void 0,this.events=[],this.eventsByKey=void 0,this.executors=new Map,this.dynamicDataExecutors=new Map,this.context=t,this.eventsByKey=new Map}registerEvent(t,e){this.events.push(t),this.eventsByKey.set(t.key,t),this.executors.set(t,e)}registerDynamicData(t,e){this.dynamicDataExecutors.set(t,e)}listEvents(){return this.events}getEvent(t){return this.eventsByKey.get(t)}async executeEvent(t){var e;let n;n="string"==typeof t||t instanceof String?this.getEvent(String(t)):t;const a=n?this.executors.get(n):void 0;if(a)return a(this.context);throw new Error(`Event ${(null==(e=n)?void 0:e.label)||t} not found`)}async getDynamicData(t){const e=this.dynamicDataExecutors.get(t);if(e)return e(this.context);throw new Error(`Dynamic data executor ${t} not found`)}}export{i as AppFlow,t as ArgumentTypeEnum,a as DefaultFieldEnum,e as EventTriggerEnum,n as EventTypeEnum};
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e||self).askflowAppSdk={})}(this,function(e){var t,n,a,i;e.ArgumentTypeEnum=void 0,(t=e.ArgumentTypeEnum||(e.ArgumentTypeEnum={})).string="string",t.url="url",t.email="email",t.phone="phone",t.number="number",t.boolean="boolean",t.select="select",t.selectItem="selectItem",t.multiselect="multiselect",t.date="date",t.timestamp="timestamp",e.EventTriggerEnum=void 0,(n=e.EventTriggerEnum||(e.EventTriggerEnum={})).webhook="webhook",n.polling="polling",n.step="step",e.EventTypeEnum=void 0,(a=e.EventTypeEnum||(e.EventTypeEnum={})).action="action",a.query="query",e.DefaultFieldEnum=void 0,(i=e.DefaultFieldEnum||(e.DefaultFieldEnum={})).name="name",i.email="email",i.tags="tags",i.tagsString="tagsString",i.platform="platform",i.phone="phone",i.city="city",i.state="state",i.country="country",i.arrivalDate="arrivalDate",i.departureDate="departureDate",i.language="language",i.adults="adults",i.children="children",i.updatedAt="updatedAt",i.requestPrice="requestPrice",i.eventQuote="eventQuote",i.groupQuote="groupQuote",i.linkQuotationOpened="linkQuotationOpened",i.utmSource="utmSource",i.utmMedium="utmMedium",i.utmCampaign="utmCampaign",i.page="page",i.linkToLiveChat="linkToLiveChat",i.hasReservation="hasReservation",i.totalReservation="totalReservation",i.minTotalValuePriceQuote="minTotalValuePriceQuote",i.maxTotalValuePriceQuote="maxTotalValuePriceQuote",i.currencyPriceQuote="currencyPriceQuote",i.attendant="attendant",i.attendantEmail="attendantEmail",i.companyName="companyName",i.conversationId="conversationId",i.hotelReservationId="hotelReservationId",e.AppFlow=/*#__PURE__*/function(){function e(e){this.context=void 0,this.events=[],this.eventsByKey=void 0,this.executors=new Map,this.dynamicDataExecutors=new Map,this.context=e,this.eventsByKey=new Map}var t=e.prototype;return t.registerEvent=function(e,t){this.events.push(e),this.eventsByKey.set(e.key,e),this.executors.set(e,t)},t.registerDynamicData=function(e,t){this.dynamicDataExecutors.set(e,t)},t.listEvents=function(){return this.events},t.getEvent=function(e){return this.eventsByKey.get(e)},t.executeEvent=function(e){try{var t,n,a=this,i=(n="string"==typeof e||e instanceof String?a.getEvent(String(e)):e)?a.executors.get(n):void 0;if(i)return Promise.resolve(i(a.context));throw new Error("Event "+((null==(t=n)?void 0:t.label)||e)+" not found")}catch(e){return Promise.reject(e)}},t.getDynamicData=function(e){try{var t=this.dynamicDataExecutors.get(e);if(t)return Promise.resolve(t(this.context));throw new Error("Dynamic data executor "+e+" not found")}catch(e){return Promise.reject(e)}},e}()});
@@ -0,0 +1,133 @@
1
+ export declare enum ArgumentTypeEnum {
2
+ 'string' = "string",
3
+ 'url' = "url",
4
+ 'email' = "email",
5
+ 'phone' = "phone",
6
+ 'number' = "number",
7
+ 'boolean' = "boolean",
8
+ 'select' = "select",
9
+ 'selectItem' = "selectItem",
10
+ 'multiselect' = "multiselect",
11
+ 'date' = "date",
12
+ 'timestamp' = "timestamp"
13
+ }
14
+ export declare type II18nData = {
15
+ pt_br?: string;
16
+ en_us?: string;
17
+ es_es?: string;
18
+ text: string;
19
+ } | {
20
+ pt_br: string;
21
+ en_us: string;
22
+ es_es: string;
23
+ text?: string;
24
+ };
25
+ export declare type ISource = {
26
+ key: string;
27
+ type: 'dynamic';
28
+ dependsOn?: IDependsOn[];
29
+ } | {
30
+ type: 'fixed';
31
+ options: ISelectItem[];
32
+ };
33
+ export declare type IDependsOn = {
34
+ argumentKey: string;
35
+ };
36
+ export declare type IArgument = {
37
+ key: string;
38
+ label: II18nData;
39
+ description?: II18nData;
40
+ type: ArgumentTypeEnum;
41
+ required: boolean;
42
+ defaultValue?: any;
43
+ defaultField?: string;
44
+ source?: ISource;
45
+ expose?: boolean;
46
+ };
47
+ export declare enum EventTriggerEnum {
48
+ 'webhook' = "webhook",
49
+ 'polling' = "polling",
50
+ 'step' = "step"
51
+ }
52
+ export declare enum EventTypeEnum {
53
+ 'action' = "action",
54
+ 'query' = "query"
55
+ }
56
+ export declare type IEvent = {
57
+ key: string;
58
+ type: EventTypeEnum.action;
59
+ trigger: EventTriggerEnum.step;
60
+ label: II18nData;
61
+ description?: II18nData;
62
+ arguments?: IArgument[];
63
+ } | {
64
+ key: string;
65
+ type: EventTypeEnum.query;
66
+ trigger: EventTriggerEnum.webhook;
67
+ label: II18nData;
68
+ description?: II18nData;
69
+ arguments?: IArgument[];
70
+ } | {
71
+ key: string;
72
+ type: EventTypeEnum.query;
73
+ trigger: EventTriggerEnum.polling;
74
+ pollMinInterval: number;
75
+ label: II18nData;
76
+ description?: II18nData;
77
+ arguments?: IArgument[];
78
+ };
79
+ export declare type IContext = {
80
+ connection: {
81
+ connectionParams: Map<string, any>;
82
+ };
83
+ workflowStep?: any;
84
+ arguments: Map<string, any>;
85
+ pushQueryItem: (item: IQueryItem) => Promise<boolean>;
86
+ };
87
+ export declare type IManifest = {
88
+ key: string;
89
+ version: string;
90
+ runtimeVersion: string;
91
+ name: II18nData;
92
+ description?: II18nData;
93
+ url: string;
94
+ iconUrl: string;
95
+ docUrl: string;
96
+ primaryColor: string;
97
+ connectionParams?: IArgument[];
98
+ };
99
+ export declare type IQueryItem = {
100
+ raw: any;
101
+ meta?: {
102
+ uniqueId: string | undefined;
103
+ };
104
+ };
105
+ export declare type IOutputData = {
106
+ key: string;
107
+ label?: II18nData;
108
+ description?: II18nData;
109
+ type: ArgumentTypeEnum;
110
+ value?: any;
111
+ defaultField?: string;
112
+ };
113
+ export declare type ISelectItem = {
114
+ key: string;
115
+ label: II18nData;
116
+ description?: II18nData;
117
+ value?: any;
118
+ };
119
+ export declare type IResponseEvent = {
120
+ data: IOutputData[];
121
+ success: true;
122
+ } | {
123
+ data?: IOutputData[];
124
+ success: false;
125
+ error: string;
126
+ };
127
+ export declare type IResponseDynamicData = {
128
+ data: ISelectItem[];
129
+ success: true;
130
+ } | {
131
+ success: false;
132
+ error: string;
133
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asksuite/askflow-app-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.m.js",
6
6
  "unpkg": "dist/index.umd.js",