@asgard-js/core 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asgard-js/core",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "dependencies": {
5
5
  "@microsoft/fetch-event-source": "^2.0.1",
6
6
  "rxjs": "^7.8.1"
@@ -1,22 +0,0 @@
1
- export declare enum FetchSseAction {
2
- RESET_CHANNEL = "RESET_CHANNEL",
3
- NONE = "NONE"
4
- }
5
- export declare enum EventType {
6
- INIT = "asgard.run.init",
7
- MESSAGE_START = "asgard.message.start",
8
- MESSAGE_DELTA = "asgard.message.delta",
9
- MESSAGE_COMPLETE = "asgard.message.complete",
10
- DONE = "asgard.run.done"
11
- }
12
- export declare enum MessageTemplateType {
13
- TEXT = "TEXT",
14
- HINT = "HINT",
15
- BUTTON = "BUTTON",
16
- IMAGE = "IMAGE",
17
- VIDEO = "VIDEO",
18
- AUDIO = "AUDIO",
19
- LOCATION = "LOCATION",
20
- CAROUSEL = "CAROUSEL"
21
- }
22
- //# sourceMappingURL=enum.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/constants/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;CACd;AAED,oBAAY,SAAS;IACnB,IAAI,oBAAoB;IACxB,aAAa,yBAAyB;IACtC,aAAa,yBAAyB;IACtC,gBAAgB,4BAA4B;IAC5C,IAAI,oBAAoB;CACzB;AAED,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB"}
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export type { Subscription } from 'rxjs';
2
- export type * from './types';
3
- export * from './constants/enum';
4
- export { default as AsgardServiceClient } from './lib/client';
5
- export { default as Conversation } from './lib/conversation';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,mBAAmB,WAAW,CAAC;AAE/B,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,13 +0,0 @@
1
- import { ClientConfig, SendMessageOptions, SendMessagePayload, SetChannelOptions, SetChannelPayload } from '../types';
2
-
3
- export default class AsgardServiceClient {
4
- isConnecting: boolean;
5
- private apiKey;
6
- private endpoint;
7
- private destroy$;
8
- constructor(config: ClientConfig);
9
- setChannel(payload: SetChannelPayload, options?: SetChannelOptions): void;
10
- sendMessage(payload: SendMessagePayload, options?: SendMessageOptions): void;
11
- close(): void;
12
- }
13
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAInB,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC/B,YAAY,UAAS;IAE5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,MAAM,EAAE,YAAY;IAahC,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI;IA8BzE,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAkC5E,KAAK,IAAI,IAAI;CAKd"}
@@ -1,29 +0,0 @@
1
- import { ConversationBotMessage, ConversationMessage, SseResponse } from '../types';
2
- import { EventType } from '../constants/enum';
3
-
4
- interface IConversation {
5
- messages: Map<string, ConversationMessage> | null;
6
- typingMessages: Map<string, ConversationBotMessage> | null;
7
- }
8
- export default class Conversation implements IConversation {
9
- messages: Map<string, ConversationMessage> | null;
10
- typingMessages: Map<string, ConversationBotMessage> | null;
11
- constructor({ messages, typingMessages }: IConversation);
12
- resetConversation(): Conversation;
13
- pushMessage(prev: Conversation, message: ConversationMessage): Conversation;
14
- onMessage(prev: Conversation, response: SseResponse<EventType>, options?: {
15
- showDebugMessage?: boolean;
16
- }): Conversation;
17
- onMessageStart(prev: Conversation, response: SseResponse<EventType.MESSAGE_START>, options: {
18
- showDebugMessage: boolean;
19
- }): Conversation;
20
- onMessageDelta(prev: Conversation, response: SseResponse<EventType.MESSAGE_DELTA>, options: {
21
- showDebugMessage: boolean;
22
- }): Conversation;
23
- onMessageComplete(prev: Conversation, response: SseResponse<EventType.MESSAGE_COMPLETE>, options: {
24
- showDebugMessage: boolean;
25
- }): Conversation;
26
- onMessageDone(prev: Conversation): Conversation;
27
- }
28
- export {};
29
- //# sourceMappingURL=conversation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/lib/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACZ,MAAM,WAAW,CAAC;AAEnB,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAClD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI,CAAC;CAC5D;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,aAAa;IACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAClD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI,CAAQ;gBAE7D,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,aAAa;IAKvD,iBAAiB,IAAI,YAAY;IAOjC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAU3E,SAAS,CACP,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,EAChC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GACvC,YAAY;IA6Bf,cAAc,CACZ,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,EAC9C,OAAO,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAA;KAAE,GACrC,YAAY;IA8Bf,cAAc,CACZ,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,EAC9C,OAAO,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAA;KAAE,GACrC,YAAY;IAuCf,iBAAiB,CACf,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,EACjD,OAAO,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAA;KAAE,GACrC,YAAY;IA+Bf,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;CAgBhD"}
@@ -1,12 +0,0 @@
1
- import { EventType } from '../constants/enum';
2
- import { FetchSsePayload, SseResponse } from '../types';
3
- import { Observable } from 'rxjs';
4
-
5
- interface CreateSseObservableOptions {
6
- endpoint: string;
7
- apiKey: string;
8
- payload: FetchSsePayload;
9
- }
10
- export declare function createSseObservable(options: CreateSseObservableOptions): Observable<SseResponse<EventType>>;
11
- export {};
12
- //# sourceMappingURL=create-sse-observable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-sse-observable.d.ts","sourceRoot":"","sources":["../../src/lib/create-sse-observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAKlC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,UAAU,0BAA0B;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAqCpC"}
@@ -1,43 +0,0 @@
1
- import { Message, SseResponse } from './sse-response';
2
- import { EventType, FetchSseAction } from '../constants/enum';
3
-
4
- export interface ClientConfig {
5
- endpoint: string;
6
- apiKey: string;
7
- webhookToken?: string;
8
- }
9
- export interface FetchSsePayload {
10
- customChannelId: string;
11
- customMessageId?: string;
12
- text: string;
13
- action: FetchSseAction;
14
- }
15
- export interface ConnectionOptions {
16
- onSseStart?: () => void;
17
- onSseMessage?: (response: SseResponse<EventType>) => void;
18
- onSseError?: (error: unknown) => void;
19
- onSseCompleted?: () => void;
20
- }
21
- export type SetChannelPayload = Pick<FetchSsePayload, 'customChannelId' | 'customMessageId'>;
22
- export type SetChannelOptions = ConnectionOptions;
23
- export type SendMessagePayload = Pick<FetchSsePayload, 'customChannelId' | 'customMessageId' | 'text'>;
24
- export type SendMessageOptions = ConnectionOptions & {
25
- delayTime?: number;
26
- };
27
- export type ConversationUserMessage = {
28
- type: 'user';
29
- messageId: string;
30
- text: string;
31
- time: Date;
32
- };
33
- export type ConversationBotMessage = {
34
- type: 'bot';
35
- messageId: string;
36
- eventType: EventType;
37
- isTyping: boolean;
38
- typingText: string | null;
39
- message: Message;
40
- time: Date;
41
- };
42
- export type ConversationMessage = ConversationUserMessage | ConversationBotMessage;
43
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC1D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,eAAe,EACf,iBAAiB,GAAG,iBAAiB,CACtC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,eAAe,EACf,iBAAiB,GAAG,iBAAiB,GAAG,MAAM,CAC/C,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,uBAAuB,GACvB,sBAAsB,CAAC"}
@@ -1,3 +0,0 @@
1
- export type * from './client';
2
- export type * from './sse-response';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,UAAU,CAAC;AAC9B,mBAAmB,gBAAgB,CAAC"}
@@ -1,94 +0,0 @@
1
- import { EventType, MessageTemplateType } from '../constants/enum';
2
-
3
- export interface MessageTemplate {
4
- quickReplies: {
5
- text: string;
6
- }[];
7
- }
8
- export interface TextMessageTemplate extends MessageTemplate {
9
- type: MessageTemplateType.TEXT;
10
- text: string;
11
- }
12
- export interface HintMessageTemplate extends MessageTemplate {
13
- type: MessageTemplateType.HINT;
14
- text: string;
15
- }
16
- export interface ImageMessageTemplate extends MessageTemplate {
17
- type: MessageTemplateType.IMAGE;
18
- originalContentUrl: string;
19
- previewImageUrl: string;
20
- }
21
- export interface VideoMessageTemplate extends MessageTemplate {
22
- type: MessageTemplateType.VIDEO;
23
- originalContentUrl: string;
24
- previewImageUrl: string;
25
- duration: number;
26
- }
27
- export interface AudioMessageTemplate extends MessageTemplate {
28
- type: MessageTemplateType.AUDIO;
29
- originalContentUrl: string;
30
- duration: number;
31
- }
32
- export interface LocationMessageTemplate extends MessageTemplate {
33
- type: MessageTemplateType.LOCATION;
34
- title: string;
35
- text: string;
36
- latitude: number;
37
- longitude: number;
38
- }
39
- export type ButtonAction = {
40
- type: 'message';
41
- text: string;
42
- uri?: null;
43
- } | {
44
- type: 'uri';
45
- text?: null;
46
- uri: string;
47
- };
48
- export interface ButtonMessageTemplate extends MessageTemplate {
49
- type: MessageTemplateType.BUTTON;
50
- title: string;
51
- text: string;
52
- thumbnailImageUrl: string;
53
- imageAspectRatio: 'rectangle' | 'square';
54
- imageSize: 'cover' | 'contain';
55
- imageBackgroundColor: string;
56
- defaultAction: ButtonAction;
57
- buttons: {
58
- label: string;
59
- action: ButtonAction;
60
- }[];
61
- }
62
- export interface CarouselMessageTemplate extends MessageTemplate {
63
- type: MessageTemplateType.CAROUSEL;
64
- columns: Omit<ButtonMessageTemplate, 'type' | 'quickReplies'>[];
65
- }
66
- export interface Message<Payload = unknown> {
67
- messageId: string;
68
- replyToCustomMessageId: string;
69
- text: string;
70
- payload: Payload | null;
71
- isDebug: boolean;
72
- idx: number;
73
- template: TextMessageTemplate | HintMessageTemplate | ButtonMessageTemplate | ImageMessageTemplate | VideoMessageTemplate | AudioMessageTemplate | LocationMessageTemplate | CarouselMessageTemplate;
74
- }
75
- export type EventData<CurrentEventType extends EventType, TargetEventType extends EventType> = CurrentEventType extends TargetEventType ? {
76
- message: Message;
77
- } : null;
78
- export interface Fact<Type extends EventType> {
79
- runInit: null;
80
- runDone: null;
81
- runError: null;
82
- messageStart: EventData<Type, EventType.MESSAGE_START>;
83
- messageDelta: EventData<Type, EventType.MESSAGE_DELTA>;
84
- messageComplete: EventData<Type, EventType.MESSAGE_COMPLETE>;
85
- }
86
- export interface SseResponse<Type extends EventType> {
87
- eventType: Type;
88
- requestId: string;
89
- namespace: string;
90
- botProviderName: string;
91
- customChannelId: string;
92
- fact: Fact<Type>;
93
- }
94
- //# sourceMappingURL=sse-response.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse-response.d.ts","sourceRoot":"","sources":["../../src/types/sse-response.ts"],"names":[],"mappings":"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"}