@botonic/shared 2.27.0 → 2.28.0

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.
Files changed (96) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +9 -0
  3. package/package.json +1 -2
  4. package/src/lib/domain/index.d.ts +1 -3
  5. package/src/lib/domain/index.js +1 -6
  6. package/src/lib/domain/index.js.map +1 -1
  7. package/src/lib/index.d.ts +2 -2
  8. package/src/lib/index.js +5 -5
  9. package/src/lib/index.js.map +1 -1
  10. package/src/lib/services/handoff.d.ts +16 -2
  11. package/src/lib/services/handoff.js.map +1 -1
  12. package/src/lib/services/index.d.ts +0 -2
  13. package/src/lib/services/index.js +0 -2
  14. package/src/lib/services/index.js.map +1 -1
  15. package/src/lib/services/webchat-api.d.ts +5 -2
  16. package/src/lib/domain/server/bot-server-message.d.ts +0 -68
  17. package/src/lib/domain/server/bot-server-message.js +0 -111
  18. package/src/lib/domain/server/bot-server-message.js.map +0 -1
  19. package/src/lib/domain/server/botonic-context/botonic-action.d.ts +0 -10
  20. package/src/lib/domain/server/botonic-context/botonic-action.js +0 -9
  21. package/src/lib/domain/server/botonic-context/botonic-action.js.map +0 -1
  22. package/src/lib/domain/server/botonic-context/botonic-context-input.d.ts +0 -96
  23. package/src/lib/domain/server/botonic-context/botonic-context-input.js +0 -124
  24. package/src/lib/domain/server/botonic-context/botonic-context-input.js.map +0 -1
  25. package/src/lib/domain/server/botonic-context/botonic-context-session.d.ts +0 -159
  26. package/src/lib/domain/server/botonic-context/botonic-context-session.js +0 -297
  27. package/src/lib/domain/server/botonic-context/botonic-context-session.js.map +0 -1
  28. package/src/lib/domain/server/botonic-context/botonic-context-settings.d.ts +0 -16
  29. package/src/lib/domain/server/botonic-context/botonic-context-settings.js +0 -48
  30. package/src/lib/domain/server/botonic-context/botonic-context-settings.js.map +0 -1
  31. package/src/lib/domain/server/botonic-context/botonic-context.d.ts +0 -59
  32. package/src/lib/domain/server/botonic-context/botonic-context.js +0 -42
  33. package/src/lib/domain/server/botonic-context/botonic-context.js.map +0 -1
  34. package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.d.ts +0 -30
  35. package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.js +0 -80
  36. package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.js.map +0 -1
  37. package/src/lib/domain/server/botonic-context/factory.d.ts +0 -29
  38. package/src/lib/domain/server/botonic-context/factory.js +0 -31
  39. package/src/lib/domain/server/botonic-context/factory.js.map +0 -1
  40. package/src/lib/domain/server/botonic-context/index.d.ts +0 -9
  41. package/src/lib/domain/server/botonic-context/index.js +0 -10
  42. package/src/lib/domain/server/botonic-context/index.js.map +0 -1
  43. package/src/lib/domain/server/botonic-context/send-messages-utils.d.ts +0 -3
  44. package/src/lib/domain/server/botonic-context/send-messages-utils.js +0 -33
  45. package/src/lib/domain/server/botonic-context/send-messages-utils.js.map +0 -1
  46. package/src/lib/domain/server/botonic-context/types.d.ts +0 -24
  47. package/src/lib/domain/server/botonic-context/types.js +0 -6
  48. package/src/lib/domain/server/botonic-context/types.js.map +0 -1
  49. package/src/lib/domain/server/factory.d.ts +0 -166
  50. package/src/lib/domain/server/factory.js +0 -189
  51. package/src/lib/domain/server/factory.js.map +0 -1
  52. package/src/lib/domain/server/index.d.ts +0 -3
  53. package/src/lib/domain/server/index.js +0 -4
  54. package/src/lib/domain/server/index.js.map +0 -1
  55. package/src/lib/domain/webchat/factory.d.ts +0 -88
  56. package/src/lib/domain/webchat/factory.js +0 -82
  57. package/src/lib/domain/webchat/factory.js.map +0 -1
  58. package/src/lib/domain/webchat/index.d.ts +0 -4
  59. package/src/lib/domain/webchat/index.js +0 -5
  60. package/src/lib/domain/webchat/index.js.map +0 -1
  61. package/src/lib/domain/webchat/realtime/factory.d.ts +0 -52
  62. package/src/lib/domain/webchat/realtime/factory.js +0 -69
  63. package/src/lib/domain/webchat/realtime/factory.js.map +0 -1
  64. package/src/lib/domain/webchat/realtime/index.d.ts +0 -2
  65. package/src/lib/domain/webchat/realtime/index.js +0 -3
  66. package/src/lib/domain/webchat/realtime/index.js.map +0 -1
  67. package/src/lib/domain/webchat/realtime/realtime-response-message.d.ts +0 -50
  68. package/src/lib/domain/webchat/realtime/realtime-response-message.js +0 -73
  69. package/src/lib/domain/webchat/realtime/realtime-response-message.js.map +0 -1
  70. package/src/lib/domain/webchat/user/factory.d.ts +0 -52
  71. package/src/lib/domain/webchat/user/factory.js +0 -59
  72. package/src/lib/domain/webchat/user/factory.js.map +0 -1
  73. package/src/lib/domain/webchat/user/index.d.ts +0 -2
  74. package/src/lib/domain/webchat/user/index.js +0 -3
  75. package/src/lib/domain/webchat/user/index.js.map +0 -1
  76. package/src/lib/domain/webchat/user/user-input-message.d.ts +0 -34
  77. package/src/lib/domain/webchat/user/user-input-message.js +0 -59
  78. package/src/lib/domain/webchat/user/user-input-message.js.map +0 -1
  79. package/src/lib/domain/webchat/webchat-message.d.ts +0 -58
  80. package/src/lib/domain/webchat/webchat-message.js +0 -74
  81. package/src/lib/domain/webchat/webchat-message.js.map +0 -1
  82. package/src/lib/domain/webviews/botonic-context-webviews.d.ts +0 -71
  83. package/src/lib/domain/webviews/botonic-context-webviews.js +0 -80
  84. package/src/lib/domain/webviews/botonic-context-webviews.js.map +0 -1
  85. package/src/lib/domain/webviews/factory.d.ts +0 -17
  86. package/src/lib/domain/webviews/factory.js +0 -21
  87. package/src/lib/domain/webviews/factory.js.map +0 -1
  88. package/src/lib/domain/webviews/index.d.ts +0 -2
  89. package/src/lib/domain/webviews/index.js +0 -3
  90. package/src/lib/domain/webviews/index.js.map +0 -1
  91. package/src/lib/services/hubtype-api-service.d.ts +0 -12
  92. package/src/lib/services/hubtype-api-service.js +0 -67
  93. package/src/lib/services/hubtype-api-service.js.map +0 -1
  94. package/src/lib/services/hubtype-external-api-client.d.ts +0 -21
  95. package/src/lib/services/hubtype-external-api-client.js +0 -111
  96. package/src/lib/services/hubtype-external-api-client.js.map +0 -1
@@ -1,30 +0,0 @@
1
- /**
2
- * v2 `PATCH …/session/` success body: stored slice only (not full BotonicSessionBuilder JSON).
3
- * @see openspec/specs/BE-botonic-v2-botonic-session-endpoints/spec.md
4
- */
5
- import type { BotonicSession, BotonicSessionUser, UserExtraData } from '../../botonic/session';
6
- import { WebchatClientSettings } from '../../botonic/webchat-client-settings';
7
- export interface BotonicSessionPatchSlice {
8
- shadowing?: boolean;
9
- flow_thread_id?: string;
10
- is_first_interaction?: boolean;
11
- custom?: Record<string, any>;
12
- webviews_custom?: Record<string, any>;
13
- webchat_client_settings?: WebchatClientSettings;
14
- /** Flow Builder capture node id (`null` clears). */
15
- capture_user_input_node_id?: string | null;
16
- }
17
- /**
18
- * Mutates `session` with fields from the PATCH session response (slice), deep-merging object fields
19
- * to mirror server `deep_merge` behavior for nested dicts.
20
- */
21
- export declare function mergeBotonicSessionPatchSlice<TExtraData extends UserExtraData = UserExtraData>(session: BotonicSession<TExtraData>, slice: BotonicSessionPatchSlice): void;
22
- /** `PATCH …/users/<user_id>/` 200 body (echo slice). */
23
- export interface ChatUserPatchResponse {
24
- override_name?: string;
25
- locale?: string;
26
- country?: string;
27
- system_locale?: string;
28
- extra_data?: UserExtraData;
29
- }
30
- export declare function mergeChatUserPatchResponseIntoSessionUser<TExtraData extends UserExtraData = UserExtraData>(user: BotonicSessionUser<TExtraData>, response: ChatUserPatchResponse): void;
@@ -1,80 +0,0 @@
1
- /**
2
- * v2 `PATCH …/session/` success body: stored slice only (not full BotonicSessionBuilder JSON).
3
- * @see openspec/specs/BE-botonic-v2-botonic-session-endpoints/spec.md
4
- */
5
- import { mergeWebchatClientSettings, WebchatClientSettings, } from '../../botonic/webchat-client-settings';
6
- function isPlainObject(v) {
7
- return typeof v === 'object' && v !== null && !Array.isArray(v);
8
- }
9
- function deepMergeRecords(target, patch) {
10
- const merged = Object.assign({}, target);
11
- for (const [key, patchValue] of Object.entries(patch)) {
12
- const targetValue = merged[key];
13
- if (isPlainObject(patchValue) && isPlainObject(targetValue)) {
14
- merged[key] = deepMergeRecords(targetValue, patchValue);
15
- }
16
- else {
17
- merged[key] = patchValue;
18
- }
19
- }
20
- return merged;
21
- }
22
- /**
23
- * Mutates `session` with fields from the PATCH session response (slice), deep-merging object fields
24
- * to mirror server `deep_merge` behavior for nested dicts.
25
- */
26
- export function mergeBotonicSessionPatchSlice(session, slice) {
27
- var _a, _b, _c;
28
- if (slice.shadowing !== undefined)
29
- session.shadowing = slice.shadowing;
30
- if (slice.flow_thread_id !== undefined)
31
- session.flow_thread_id = slice.flow_thread_id;
32
- if (slice.is_first_interaction !== undefined) {
33
- session.is_first_interaction = slice.is_first_interaction;
34
- }
35
- if (slice.custom !== undefined) {
36
- session.custom = deepMergeRecords(((_a = session.custom) !== null && _a !== void 0 ? _a : {}), slice.custom);
37
- }
38
- if (slice.webviews_custom !== undefined) {
39
- session.webviews_custom = deepMergeRecords(((_b = session.webviews_custom) !== null && _b !== void 0 ? _b : {}), slice.webviews_custom);
40
- }
41
- if (slice.webchat_client_settings !== undefined) {
42
- const current = (_c = session.webchat_client_settings) !== null && _c !== void 0 ? _c : new WebchatClientSettings();
43
- const incoming = slice.webchat_client_settings instanceof WebchatClientSettings
44
- ? slice.webchat_client_settings
45
- : new WebchatClientSettings(slice.webchat_client_settings);
46
- session.webchat_client_settings = mergeWebchatClientSettings(current, incoming);
47
- }
48
- if (slice.capture_user_input_node_id !== undefined) {
49
- const id = slice.capture_user_input_node_id;
50
- if (id === null || id === '') {
51
- delete session.capture_user_input_node_id;
52
- }
53
- else {
54
- session.capture_user_input_node_id = id;
55
- }
56
- }
57
- }
58
- export function mergeChatUserPatchResponseIntoSessionUser(user, response) {
59
- if (response.override_name !== undefined) {
60
- user.override_name = response.override_name;
61
- }
62
- if (response.locale !== undefined) {
63
- user.locale = response.locale;
64
- }
65
- if (response.country !== undefined) {
66
- user.country = response.country;
67
- }
68
- if (response.system_locale !== undefined) {
69
- user.system_locale = response.system_locale;
70
- }
71
- if (response.extra_data !== undefined) {
72
- if (response.extra_data === null) {
73
- user.extra_data = undefined;
74
- }
75
- else {
76
- user.extra_data = response.extra_data;
77
- }
78
- }
79
- }
80
- //# sourceMappingURL=botonic-session-patch-slice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"botonic-session-patch-slice.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/botonic-session-patch-slice.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import type { HubtypeApiService } from '../../../services/hubtype-api-service';
2
- import type { BotonicSession, UserExtraData } from '../../botonic/session';
3
- import type { BotonicSecrets, BotonicSettings } from '../../botonic/settings';
4
- import type { BotonicContextType } from './botonic-context';
5
- import { BotonicContext } from './botonic-context';
6
- import type { BotonicRequestInput } from './botonic-context-input';
7
- import type { ResolvedPlugins, TypingMode } from './types';
8
- /** Bot request after parsing the Hubtype v2 Lambda event (typed input + session + settings + secrets). */
9
- export interface BotonicRequest<TExtraData extends UserExtraData = UserExtraData> {
10
- input: BotonicRequestInput;
11
- session: BotonicSession<TExtraData>;
12
- settings: BotonicSettings;
13
- secrets: BotonicSecrets;
14
- }
15
- /**
16
- * Factory that creates BotonicContext from raw lambda request.
17
- * Injects hubtypeService so the context has working sendMessages, doHandoff, etc.
18
- */
19
- export declare class BotonicContextFactory<TPlugins extends ResolvedPlugins = ResolvedPlugins> {
20
- private readonly hubtypeService;
21
- private readonly plugins;
22
- private readonly defaultTyping;
23
- private readonly defaultDelay;
24
- private readonly defaultTypingMode;
25
- constructor(hubtypeService: HubtypeApiService, plugins: TPlugins, defaultTyping: number, defaultDelay: number, defaultTypingMode?: TypingMode);
26
- /** Creates input, session, settings, and secrets from a {@link BotonicRequest}. */
27
- static from<TExtraData extends UserExtraData = UserExtraData>(raw: BotonicRequest<TExtraData>): BotonicContextType<TExtraData>;
28
- create<TExtraData extends UserExtraData = UserExtraData>(raw: BotonicRequest<TExtraData>): BotonicContext<TPlugins, TExtraData>;
29
- }
@@ -1,31 +0,0 @@
1
- import { BotonicContext } from './botonic-context';
2
- import { BotonicContextInput } from './botonic-context-input';
3
- import { BotonicContextSession } from './botonic-context-session';
4
- import { BotonicContextSecrets, BotonicContextSettings, } from './botonic-context-settings';
5
- /**
6
- * Factory that creates BotonicContext from raw lambda request.
7
- * Injects hubtypeService so the context has working sendMessages, doHandoff, etc.
8
- */
9
- export class BotonicContextFactory {
10
- constructor(hubtypeService, plugins, defaultTyping, defaultDelay, defaultTypingMode = 'inBetweenTyping') {
11
- this.hubtypeService = hubtypeService;
12
- this.plugins = plugins;
13
- this.defaultTyping = defaultTyping;
14
- this.defaultDelay = defaultDelay;
15
- this.defaultTypingMode = defaultTypingMode;
16
- }
17
- /** Creates input, session, settings, and secrets from a {@link BotonicRequest}. */
18
- static from(raw) {
19
- return {
20
- input: new BotonicContextInput(raw.input),
21
- session: new BotonicContextSession(raw.session),
22
- settings: new BotonicContextSettings(raw.settings),
23
- secrets: new BotonicContextSecrets(raw.secrets),
24
- };
25
- }
26
- create(raw) {
27
- const base = BotonicContextFactory.from(raw);
28
- return new BotonicContext(this.hubtypeService, base, this.plugins, this.defaultTyping, this.defaultDelay, this.defaultTypingMode);
29
- }
30
- }
31
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,4BAA4B,CAAA;AAanC;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IAGhC,YACmB,cAAiC,EACjC,OAAiB,EACjB,aAAqB,EACrB,YAAoB,EACpB,oBAAgC,iBAAiB;QAJjD,mBAAc,GAAd,cAAc,CAAmB;QACjC,YAAO,GAAP,OAAO,CAAU;QACjB,kBAAa,GAAb,aAAa,CAAQ;QACrB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,sBAAiB,GAAjB,iBAAiB,CAAgC;IACjE,CAAC;IAEJ,mFAAmF;IACnF,MAAM,CAAC,IAAI,CACT,GAA+B;QAE/B,OAAO;YACL,KAAK,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;YACzC,OAAO,EAAE,IAAI,qBAAqB,CAAa,GAAG,CAAC,OAAO,CAAC;YAC3D,QAAQ,EAAE,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClD,OAAO,EAAE,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC;SAChD,CAAA;IACH,CAAC;IAED,MAAM,CACJ,GAA+B;QAE/B,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5C,OAAO,IAAI,cAAc,CACvB,IAAI,CAAC,cAAc,EACnB,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iBAAiB,CACvB,CAAA;IACH,CAAC;CACF"}
@@ -1,9 +0,0 @@
1
- export * from './botonic-action';
2
- export * from './botonic-context';
3
- export * from './botonic-context-input';
4
- export * from './botonic-context-session';
5
- export * from './botonic-context-settings';
6
- export * from './botonic-session-patch-slice';
7
- export * from './factory';
8
- export * from './send-messages-utils';
9
- export * from './types';
@@ -1,10 +0,0 @@
1
- export * from './botonic-action';
2
- export * from './botonic-context';
3
- export * from './botonic-context-input';
4
- export * from './botonic-context-session';
5
- export * from './botonic-context-settings';
6
- export * from './botonic-session-patch-slice';
7
- export * from './factory';
8
- export * from './send-messages-utils';
9
- export * from './types';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,SAAS,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { BotServerMessage } from '../bot-server-message';
2
- import type { TypingMode } from './types';
3
- export declare function injectTypingEvents(messages: BotServerMessage[], mode: TypingMode | false | undefined): BotServerMessage[];
@@ -1,33 +0,0 @@
1
- import { TypingEventName } from '../../botonic/types';
2
- import { BotServerMessageFactory } from '../factory';
3
- const DEFAULT_TYPING_DELAY = 1;
4
- function typingEvent() {
5
- return BotServerMessageFactory.createTypingEvent({
6
- eventName: TypingEventName.TypingOn,
7
- });
8
- }
9
- function withDefaultDelay(msg) {
10
- if (msg.delay !== undefined)
11
- return msg;
12
- const clone = Object.create(Object.getPrototypeOf(msg));
13
- return Object.assign(clone, msg, { delay: DEFAULT_TYPING_DELAY });
14
- }
15
- export function injectTypingEvents(messages, mode) {
16
- if (!mode || messages.length === 0)
17
- return messages;
18
- if (mode === 'onlyFirst') {
19
- const [first, ...rest] = messages;
20
- return [typingEvent(), withDefaultDelay(first), ...rest];
21
- }
22
- return messages.reduce((acc, msg, index) => {
23
- if (index > 0) {
24
- acc.push(typingEvent());
25
- acc.push(withDefaultDelay(msg));
26
- }
27
- else {
28
- acc.push(msg);
29
- }
30
- return acc;
31
- }, []);
32
- }
33
- //# sourceMappingURL=send-messages-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-messages-utils.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/send-messages-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAGpD,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAE9B,SAAS,WAAW;IAClB,OAAO,uBAAuB,CAAC,iBAAiB,CAAC;QAC/C,SAAS,EAAE,eAAe,CAAC,QAAQ;KACpC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,gBAAgB,CAA6B,GAAM;IAC1D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAA;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAM,CAAA;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,IAAoC;IAEpC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAA;IAEnD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAA;QACjC,OAAO,CAAC,WAAW,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACvB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC"}
@@ -1,24 +0,0 @@
1
- import { BotonicContext } from './botonic-context';
2
- export type TypingMode = 'onlyFirst' | 'inBetweenTyping';
3
- export interface SendMessagesOptions {
4
- typingMode?: TypingMode | false;
5
- }
6
- export interface ActionResponse {
7
- status: number;
8
- response: string;
9
- }
10
- export type Action = (botonicContext: BotonicContext) => Promise<ActionResponse>;
11
- export interface Plugin {
12
- pre?(request: BotonicContext): void | Promise<void>;
13
- post?(request: BotonicContext): void | Promise<void>;
14
- }
15
- export type ResolvedPlugins = Record<string, Plugin>;
16
- export interface RunPluginArgs {
17
- botonicContext: BotonicContext;
18
- mode: PluginMode;
19
- response?: ActionResponse;
20
- }
21
- export declare enum PluginMode {
22
- PRE = "pre",
23
- POST = "post"
24
- }
@@ -1,6 +0,0 @@
1
- export var PluginMode;
2
- (function (PluginMode) {
3
- PluginMode["PRE"] = "pre";
4
- PluginMode["POST"] = "post";
5
- })(PluginMode || (PluginMode = {}));
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/types.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;AACf,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
@@ -1,166 +0,0 @@
1
- import { BotMessageMetadata, BotonicButtonContent, BotonicCarouselElement, TypingEventName, WebchatClientSettings, WhatsappButtonListSection, WhatsappHeaderType, WhatsappMediaCarouselCard, WhatsappProductCarouselCard, WhatsappProductListSection, WhatsappTemplateComponent } from '../botonic';
2
- import { BotServerMessageAudio, BotServerMessageButtonMessage, BotServerMessageCarousel, BotServerMessageCustom, BotServerMessageDocument, BotServerMessageImage, BotServerMessageLocation, BotServerMessageText, BotServerMessageTypingEvent, BotServerMessageVideo, BotServerMessageWebchatClientSettings, BotServerMessageWhatsappButtonList, BotServerMessageWhatsappCatalog, BotServerMessageWhatsappCTAUrlButton, BotServerMessageWhatsappMediaCarousel, BotServerMessageWhatsappProduct, BotServerMessageWhatsappProductCarousel, BotServerMessageWhatsappProductList, BotServerMessageWhatsappTemplate } from './bot-server-message';
3
- import { BotonicContext } from './botonic-context';
4
- interface WebviewButtonParams {
5
- title: string;
6
- webview: string;
7
- params?: Record<string, string>;
8
- }
9
- export declare class BotServerMessageFactory {
10
- static createText({ text, payload, metadata, }: {
11
- text: string;
12
- payload?: string;
13
- metadata?: BotMessageMetadata;
14
- }): BotServerMessageText;
15
- static createAudio({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }: {
16
- attachmentUrl: string;
17
- attachmentContent?: string;
18
- caption?: string;
19
- fileInfo?: Record<string, unknown>;
20
- metadata?: BotMessageMetadata;
21
- }): BotServerMessageAudio;
22
- static createImage({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }: {
23
- attachmentUrl: string;
24
- attachmentContent?: string;
25
- caption?: string;
26
- fileInfo?: Record<string, unknown>;
27
- metadata?: BotMessageMetadata;
28
- }): BotServerMessageImage;
29
- static createVideo({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }: {
30
- attachmentUrl: string;
31
- attachmentContent?: string;
32
- caption?: string;
33
- fileInfo?: Record<string, unknown>;
34
- metadata?: BotMessageMetadata;
35
- }): BotServerMessageVideo;
36
- static createDocument({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }: {
37
- attachmentUrl: string;
38
- attachmentContent?: string;
39
- caption?: string;
40
- fileInfo?: Record<string, unknown>;
41
- metadata?: BotMessageMetadata;
42
- }): BotServerMessageDocument;
43
- static createLocation({ latitude, longitude, title, address, metadata, }: {
44
- latitude: number;
45
- longitude: number;
46
- title?: string;
47
- address?: string;
48
- metadata?: BotMessageMetadata;
49
- }): BotServerMessageLocation;
50
- static createButtonMessage({ text, buttons, metadata, }: {
51
- text: string;
52
- buttons: BotonicButtonContent[];
53
- metadata?: BotMessageMetadata;
54
- }): BotServerMessageButtonMessage;
55
- static createCarousel({ elements, text, metadata, }: {
56
- elements: BotonicCarouselElement[];
57
- text?: string;
58
- metadata?: BotMessageMetadata;
59
- }): BotServerMessageCarousel;
60
- static createCustom({ name, props, metadata, }: {
61
- name: string;
62
- props: Record<string, unknown>;
63
- metadata?: BotMessageMetadata;
64
- }): BotServerMessageCustom;
65
- static createTypingEvent({ eventName, metadata, }: {
66
- eventName: TypingEventName;
67
- metadata?: BotMessageMetadata;
68
- }): BotServerMessageTypingEvent;
69
- /** Payload type `webchat_client_settings` for Hubtype `send_messages` (v2 bots). */
70
- static createWebchatClientSettings({ settings, metadata, }: {
71
- settings: Partial<WebchatClientSettings> | WebchatClientSettings;
72
- metadata?: BotMessageMetadata;
73
- }): BotServerMessageWebchatClientSettings;
74
- /**
75
- * Creates a postback button that sends a payload when clicked
76
- */
77
- static createPostbackButton({ title, payload, }: {
78
- title: string;
79
- payload: string;
80
- }): BotonicButtonContent;
81
- /**
82
- * Creates a URL button that opens a link in the browser
83
- */
84
- static createUrlButton({ title, url, }: {
85
- title: string;
86
- url: string;
87
- }): BotonicButtonContent;
88
- /**
89
- * Creates a webview button that opens a URL in a webview.
90
- * Uses `settings.STATIC_URL` (Lambda settings), not `process.env`.
91
- */
92
- static createWebviewButton(webviewButtonParams: WebviewButtonParams, botonicContext: BotonicContext): BotonicButtonContent;
93
- /**
94
- * Helper method to create a carousel element
95
- * This simplifies carousel element creation
96
- */
97
- static createCarouselElement({ title, subtitle, image, buttons, }: {
98
- title: string;
99
- subtitle: string;
100
- image: string;
101
- buttons: BotonicButtonContent[];
102
- }): BotonicCarouselElement;
103
- static createWhatsappButtonList({ header, body, footer, button, sections, metadata, }: {
104
- header?: string;
105
- body: string;
106
- footer?: string;
107
- button: string;
108
- sections: WhatsappButtonListSection[];
109
- metadata?: BotMessageMetadata;
110
- }): BotServerMessageWhatsappButtonList;
111
- static createWhatsappCTAUrlButton({ headerType, header, headerImage, headerDocument, headerVideo, body, url, displayText, footer, metadata, }: {
112
- headerType?: WhatsappHeaderType;
113
- header?: string;
114
- headerImage?: string;
115
- headerDocument?: string;
116
- headerVideo?: string;
117
- body: string;
118
- url: string;
119
- displayText: string;
120
- footer?: string;
121
- metadata?: BotMessageMetadata;
122
- }): BotServerMessageWhatsappCTAUrlButton;
123
- static createWhatsappCatalog({ body, footer, thumbnailProductId, metadata, }: {
124
- body: string;
125
- footer?: string;
126
- thumbnailProductId?: string;
127
- metadata?: BotMessageMetadata;
128
- }): BotServerMessageWhatsappCatalog;
129
- static createWhatsappProduct({ body, catalogId, productId, footer, metadata, }: {
130
- body: string;
131
- catalogId: string;
132
- productId: string;
133
- footer?: string;
134
- metadata?: BotMessageMetadata;
135
- }): BotServerMessageWhatsappProduct;
136
- static createWhatsappProductList({ header, body, footer, catalogId, sections, metadata, }: {
137
- body: string;
138
- catalogId: string;
139
- header: string;
140
- sections: WhatsappProductListSection[];
141
- footer?: string;
142
- metadata?: BotMessageMetadata;
143
- }): BotServerMessageWhatsappProductList;
144
- static createWhatsappProductCarousel({ templateName, templateLanguage, cards, bodyParameters, metadata, }: {
145
- templateName: string;
146
- templateLanguage: string;
147
- cards: WhatsappProductCarouselCard[];
148
- bodyParameters?: Record<string, any>[];
149
- metadata?: BotMessageMetadata;
150
- }): BotServerMessageWhatsappProductCarousel;
151
- static createWhatsappMediaCarousel({ templateName, templateLanguage, cards, bodyParameters, metadata, }: {
152
- templateName: string;
153
- templateLanguage: string;
154
- cards: WhatsappMediaCarouselCard[];
155
- bodyParameters?: Record<string, any>[];
156
- metadata?: BotMessageMetadata;
157
- }): BotServerMessageWhatsappMediaCarousel;
158
- static createWhatsappTemplate({ name, namespace, languageCode, components, metadata, }: {
159
- name: string;
160
- namespace: string;
161
- languageCode: string;
162
- components: WhatsappTemplateComponent[];
163
- metadata?: BotMessageMetadata;
164
- }): BotServerMessageWhatsappTemplate;
165
- }
166
- export {};
@@ -1,189 +0,0 @@
1
- import { BotonicButtonMessageData, BotonicButtonType, BotonicCarouselData, BotonicCustomData, BotonicLocationData, BotonicOutputAudioData, BotonicOutputDocumentData, BotonicOutputImageData, BotonicOutputVideoData, BotonicTextData, BotonicTypingEventData, BotonicWhatsappButtonListData, BotonicWhatsappCatalogData, BotonicWhatsappCTAUrlButtonData, BotonicWhatsappMediaCarouselData, BotonicWhatsappProductCarouselData, BotonicWhatsappProductData, BotonicWhatsappProductListData, BotonicWhatsappTemplateData, WebchatClientSettings, } from '../botonic';
2
- import { BotServerMessageAudio, BotServerMessageButtonMessage, BotServerMessageCarousel, BotServerMessageCustom, BotServerMessageDocument, BotServerMessageImage, BotServerMessageLocation, BotServerMessageText, BotServerMessageTypingEvent, BotServerMessageVideo, BotServerMessageWebchatClientSettings, BotServerMessageWhatsappButtonList, BotServerMessageWhatsappCatalog, BotServerMessageWhatsappCTAUrlButton, BotServerMessageWhatsappMediaCarousel, BotServerMessageWhatsappProduct, BotServerMessageWhatsappProductCarousel, BotServerMessageWhatsappProductList, BotServerMessageWhatsappTemplate, } from './bot-server-message';
3
- export class BotServerMessageFactory {
4
- static createText({ text, payload, metadata, }) {
5
- return new BotServerMessageText(new BotonicTextData(text, payload), metadata);
6
- }
7
- static createAudio({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }) {
8
- return new BotServerMessageAudio(new BotonicOutputAudioData({
9
- attachment_url: attachmentUrl,
10
- attachment_content: attachmentContent,
11
- caption: caption,
12
- file_info: fileInfo,
13
- }), metadata);
14
- }
15
- static createImage({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }) {
16
- return new BotServerMessageImage(new BotonicOutputImageData({
17
- attachment_url: attachmentUrl,
18
- attachment_content: attachmentContent,
19
- caption: caption,
20
- file_info: fileInfo,
21
- }), metadata);
22
- }
23
- static createVideo({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }) {
24
- return new BotServerMessageVideo(new BotonicOutputVideoData({
25
- attachment_url: attachmentUrl,
26
- attachment_content: attachmentContent,
27
- caption: caption,
28
- file_info: fileInfo,
29
- }), metadata);
30
- }
31
- static createDocument({ attachmentUrl, attachmentContent, caption, fileInfo, metadata, }) {
32
- return new BotServerMessageDocument(new BotonicOutputDocumentData({
33
- attachment_url: attachmentUrl,
34
- attachment_content: attachmentContent,
35
- caption: caption,
36
- file_info: fileInfo,
37
- }), metadata);
38
- }
39
- static createLocation({ latitude, longitude, title, address, metadata, }) {
40
- return new BotServerMessageLocation(new BotonicLocationData(latitude, longitude, title, address), metadata);
41
- }
42
- static createButtonMessage({ text, buttons, metadata, }) {
43
- return new BotServerMessageButtonMessage(new BotonicButtonMessageData(text, buttons), metadata);
44
- }
45
- static createCarousel({ elements, text, metadata, }) {
46
- return new BotServerMessageCarousel(new BotonicCarouselData(elements, text), metadata);
47
- }
48
- static createCustom({ name, props, metadata, }) {
49
- return new BotServerMessageCustom(new BotonicCustomData(name, props), metadata);
50
- }
51
- static createTypingEvent({ eventName, metadata, }) {
52
- return new BotServerMessageTypingEvent(new BotonicTypingEventData(eventName), metadata);
53
- }
54
- /** Payload type `webchat_client_settings` for Hubtype `send_messages` (v2 bots). */
55
- static createWebchatClientSettings({ settings, metadata, }) {
56
- const data = settings instanceof WebchatClientSettings
57
- ? settings
58
- : new WebchatClientSettings(settings);
59
- return new BotServerMessageWebchatClientSettings(data, metadata);
60
- }
61
- /**
62
- * Creates a postback button that sends a payload when clicked
63
- */
64
- static createPostbackButton({ title, payload, }) {
65
- return { type: BotonicButtonType.Postback, title, payload };
66
- }
67
- /**
68
- * Creates a URL button that opens a link in the browser
69
- */
70
- static createUrlButton({ title, url, }) {
71
- return { type: BotonicButtonType.WebUrl, title, url };
72
- }
73
- /**
74
- * Creates a webview button that opens a URL in a webview.
75
- * Uses `settings.STATIC_URL` (Lambda settings), not `process.env`.
76
- */
77
- static createWebviewButton(webviewButtonParams, botonicContext) {
78
- const { title, webview, params } = webviewButtonParams;
79
- const staticUrl = resolveStaticUrl(botonicContext.settings);
80
- if (!staticUrl) {
81
- throw new Error('STATIC_URL is missing from bot context settings (required for webview buttons)');
82
- }
83
- const base = staticUrl.replace(/\/+$/, '');
84
- const url = new URL(`${base}/webviews/${webview}`);
85
- url.searchParams.set('user_id', botonicContext.session.user.id);
86
- url.searchParams.set('bot_id', botonicContext.session.bot.id);
87
- url.searchParams.set('hubtype_api_url', botonicContext.settings.hubtypeApiUrl);
88
- if (params) {
89
- for (const [key, value] of Object.entries(params)) {
90
- url.searchParams.set(key, String(value));
91
- }
92
- }
93
- return {
94
- type: BotonicButtonType.WebUrl,
95
- title,
96
- url: url.toString(),
97
- };
98
- }
99
- /**
100
- * Helper method to create a carousel element
101
- * This simplifies carousel element creation
102
- */
103
- static createCarouselElement({ title, subtitle, image, buttons, }) {
104
- return {
105
- title,
106
- subtitle,
107
- image,
108
- buttons,
109
- };
110
- }
111
- static createWhatsappButtonList({ header, body, footer, button, sections, metadata, }) {
112
- return new BotServerMessageWhatsappButtonList(new BotonicWhatsappButtonListData({
113
- header,
114
- body,
115
- footer,
116
- button,
117
- sections,
118
- }), metadata);
119
- }
120
- static createWhatsappCTAUrlButton({ headerType, header, headerImage, headerDocument, headerVideo, body, url, displayText, footer, metadata, }) {
121
- return new BotServerMessageWhatsappCTAUrlButton(new BotonicWhatsappCTAUrlButtonData({
122
- header_type: headerType,
123
- header,
124
- header_image: headerImage,
125
- header_document: headerDocument,
126
- header_video: headerVideo,
127
- body,
128
- url,
129
- display_text: displayText,
130
- footer,
131
- }), metadata);
132
- }
133
- static createWhatsappCatalog({ body, footer, thumbnailProductId, metadata, }) {
134
- return new BotServerMessageWhatsappCatalog(new BotonicWhatsappCatalogData({
135
- body,
136
- footer,
137
- thumbnail_product_id: thumbnailProductId,
138
- }), metadata);
139
- }
140
- static createWhatsappProduct({ body, catalogId, productId, footer, metadata, }) {
141
- return new BotServerMessageWhatsappProduct(new BotonicWhatsappProductData({
142
- body,
143
- catalog_id: catalogId,
144
- product_id: productId,
145
- footer,
146
- }), metadata);
147
- }
148
- static createWhatsappProductList({ header, body, footer, catalogId, sections, metadata, }) {
149
- return new BotServerMessageWhatsappProductList(new BotonicWhatsappProductListData({
150
- body,
151
- catalog_id: catalogId,
152
- header,
153
- sections,
154
- footer,
155
- }), metadata);
156
- }
157
- static createWhatsappProductCarousel({ templateName, templateLanguage, cards, bodyParameters, metadata, }) {
158
- return new BotServerMessageWhatsappProductCarousel(new BotonicWhatsappProductCarouselData({
159
- template_name: templateName,
160
- template_language: templateLanguage,
161
- cards,
162
- body_parameters: bodyParameters,
163
- }), metadata);
164
- }
165
- static createWhatsappMediaCarousel({ templateName, templateLanguage, cards, bodyParameters, metadata, }) {
166
- return new BotServerMessageWhatsappMediaCarousel(new BotonicWhatsappMediaCarouselData({
167
- template_name: templateName,
168
- template_language: templateLanguage,
169
- cards,
170
- body_parameters: bodyParameters,
171
- }), metadata);
172
- }
173
- static createWhatsappTemplate({ name, namespace, languageCode, components, metadata, }) {
174
- return new BotServerMessageWhatsappTemplate(new BotonicWhatsappTemplateData({
175
- name,
176
- namespace,
177
- language_code: languageCode,
178
- components,
179
- }), metadata);
180
- }
181
- }
182
- const resolveStaticUrl = (settings) => {
183
- // This has to be defined in developers template.yaml (Local Development)
184
- if (process.env.AWS_SAM_LOCAL === 'true') {
185
- return process.env.STATIC_URL;
186
- }
187
- return settings.staticUrl;
188
- };
189
- //# sourceMappingURL=factory.js.map