@botonic/shared 2.25.0 → 2.27.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 (108) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/package.json +1 -1
  3. package/src/lib/domain/botonic/index.d.ts +5 -4
  4. package/src/lib/domain/botonic/index.js +5 -4
  5. package/src/lib/domain/botonic/index.js.map +1 -1
  6. package/src/lib/domain/botonic/outputs.d.ts +11 -4
  7. package/src/lib/domain/botonic/outputs.js +7 -1
  8. package/src/lib/domain/botonic/outputs.js.map +1 -1
  9. package/src/lib/domain/botonic/session.d.ts +63 -0
  10. package/src/lib/domain/botonic/session.js +2 -0
  11. package/src/lib/domain/botonic/session.js.map +1 -0
  12. package/src/lib/domain/botonic/settings.d.ts +18 -0
  13. package/src/lib/domain/botonic/settings.js +2 -0
  14. package/src/lib/domain/botonic/settings.js.map +1 -0
  15. package/src/lib/domain/botonic/types.d.ts +8 -3
  16. package/src/lib/domain/botonic/types.js +8 -1
  17. package/src/lib/domain/botonic/types.js.map +1 -1
  18. package/src/lib/domain/botonic/webchat-client-settings.d.ts +22 -0
  19. package/src/lib/domain/botonic/webchat-client-settings.js +29 -0
  20. package/src/lib/domain/botonic/webchat-client-settings.js.map +1 -0
  21. package/src/lib/domain/botonic/webviews-session.d.ts +20 -0
  22. package/src/lib/domain/botonic/webviews-session.js +2 -0
  23. package/src/lib/domain/botonic/webviews-session.js.map +1 -0
  24. package/src/lib/domain/botonic/whatsapp-outputs/whatsapp-button-list/index.d.ts +1 -1
  25. package/src/lib/domain/index.d.ts +1 -0
  26. package/src/lib/domain/index.js +2 -0
  27. package/src/lib/domain/index.js.map +1 -1
  28. package/src/lib/domain/server/bot-server-message.d.ts +5 -2
  29. package/src/lib/domain/server/bot-server-message.js +5 -0
  30. package/src/lib/domain/server/bot-server-message.js.map +1 -1
  31. package/src/lib/domain/server/botonic-context/botonic-action.d.ts +10 -0
  32. package/src/lib/domain/server/botonic-context/botonic-action.js +9 -0
  33. package/src/lib/domain/server/botonic-context/botonic-action.js.map +1 -0
  34. package/src/lib/domain/server/botonic-context/botonic-context-input.d.ts +8 -11
  35. package/src/lib/domain/server/botonic-context/botonic-context-input.js +4 -4
  36. package/src/lib/domain/server/botonic-context/botonic-context-input.js.map +1 -1
  37. package/src/lib/domain/server/botonic-context/botonic-context-session.d.ts +90 -77
  38. package/src/lib/domain/server/botonic-context/botonic-context-session.js +193 -105
  39. package/src/lib/domain/server/botonic-context/botonic-context-session.js.map +1 -1
  40. package/src/lib/domain/server/botonic-context/botonic-context-settings.d.ts +16 -0
  41. package/src/lib/domain/server/botonic-context/botonic-context-settings.js +48 -0
  42. package/src/lib/domain/server/botonic-context/botonic-context-settings.js.map +1 -0
  43. package/src/lib/domain/server/botonic-context/botonic-context.d.ts +20 -17
  44. package/src/lib/domain/server/botonic-context/botonic-context.js +24 -5
  45. package/src/lib/domain/server/botonic-context/botonic-context.js.map +1 -1
  46. package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.d.ts +30 -0
  47. package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.js +80 -0
  48. package/src/lib/domain/server/botonic-context/botonic-session-patch-slice.js.map +1 -0
  49. package/src/lib/domain/server/botonic-context/factory.d.ts +18 -12
  50. package/src/lib/domain/server/botonic-context/factory.js +14 -14
  51. package/src/lib/domain/server/botonic-context/factory.js.map +1 -1
  52. package/src/lib/domain/server/botonic-context/index.d.ts +4 -0
  53. package/src/lib/domain/server/botonic-context/index.js +4 -0
  54. package/src/lib/domain/server/botonic-context/index.js.map +1 -1
  55. package/src/lib/domain/server/botonic-context/send-messages-utils.d.ts +3 -0
  56. package/src/lib/domain/server/botonic-context/send-messages-utils.js +33 -0
  57. package/src/lib/domain/server/botonic-context/send-messages-utils.js.map +1 -0
  58. package/src/lib/domain/server/botonic-context/types.d.ts +9 -5
  59. package/src/lib/domain/server/botonic-context/types.js.map +1 -1
  60. package/src/lib/domain/server/factory.d.ts +11 -11
  61. package/src/lib/domain/server/factory.js +31 -8
  62. package/src/lib/domain/server/factory.js.map +1 -1
  63. package/src/lib/domain/webchat/factory.d.ts +21 -14
  64. package/src/lib/domain/webchat/factory.js +17 -8
  65. package/src/lib/domain/webchat/factory.js.map +1 -1
  66. package/src/lib/domain/webchat/realtime/factory.js +5 -2
  67. package/src/lib/domain/webchat/realtime/factory.js.map +1 -1
  68. package/src/lib/domain/webchat/realtime/realtime-response-message.d.ts +5 -2
  69. package/src/lib/domain/webchat/realtime/realtime-response-message.js +5 -0
  70. package/src/lib/domain/webchat/realtime/realtime-response-message.js.map +1 -1
  71. package/src/lib/domain/webchat/webchat-message.d.ts +4 -1
  72. package/src/lib/domain/webchat/webchat-message.js +9 -4
  73. package/src/lib/domain/webchat/webchat-message.js.map +1 -1
  74. package/src/lib/domain/webviews/botonic-context-webviews.d.ts +71 -0
  75. package/src/lib/domain/webviews/botonic-context-webviews.js +80 -0
  76. package/src/lib/domain/webviews/botonic-context-webviews.js.map +1 -0
  77. package/src/lib/domain/webviews/factory.d.ts +17 -0
  78. package/src/lib/domain/webviews/factory.js +21 -0
  79. package/src/lib/domain/webviews/factory.js.map +1 -0
  80. package/src/lib/domain/webviews/index.d.ts +2 -0
  81. package/src/lib/domain/webviews/index.js +3 -0
  82. package/src/lib/domain/webviews/index.js.map +1 -0
  83. package/src/lib/hubtype-analytics-types.d.ts +2 -2
  84. package/src/lib/index.d.ts +1 -1
  85. package/src/lib/index.js +1 -1
  86. package/src/lib/index.js.map +1 -1
  87. package/src/lib/services/handoff.d.ts +4 -0
  88. package/src/lib/services/handoff.js +23 -0
  89. package/src/lib/services/handoff.js.map +1 -0
  90. package/src/lib/services/hubtype-api-service.d.ts +12 -0
  91. package/src/lib/services/hubtype-api-service.js +67 -0
  92. package/src/lib/services/hubtype-api-service.js.map +1 -0
  93. package/src/lib/services/hubtype-external-api-client.d.ts +21 -0
  94. package/src/lib/services/hubtype-external-api-client.js +111 -0
  95. package/src/lib/services/hubtype-external-api-client.js.map +1 -0
  96. package/src/lib/services/index.d.ts +4 -0
  97. package/src/lib/services/index.js +5 -0
  98. package/src/lib/services/index.js.map +1 -0
  99. package/src/lib/services/webchat-api.d.ts +3 -3
  100. package/src/lib/domain/botonic/legacy/index.d.ts +0 -2
  101. package/src/lib/domain/botonic/legacy/index.js +0 -3
  102. package/src/lib/domain/botonic/legacy/index.js.map +0 -1
  103. package/src/lib/domain/botonic/legacy/input-adapter.d.ts +0 -25
  104. package/src/lib/domain/botonic/legacy/input-adapter.js +0 -203
  105. package/src/lib/domain/botonic/legacy/input-adapter.js.map +0 -1
  106. package/src/lib/domain/botonic/legacy/types.d.ts +0 -32
  107. package/src/lib/domain/botonic/legacy/types.js +0 -2
  108. package/src/lib/domain/botonic/legacy/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"botonic-context-input.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/botonic-context-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"botonic-context-input.js","sourceRoot":"","sources":["../../../../../../../../../libs/botonic/shared/src/lib/domain/server/botonic-context/botonic-context-input.ts"],"names":[],"mappings":"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"}
@@ -1,96 +1,105 @@
1
1
  import { MessagingChannel } from '../../../shared-types';
2
- export interface ContactInfo {
2
+ import type { BotonicSession, BotonicSessionBot, BotonicSessionHubtypeCase, BotonicSessionUser, BotonicSessionUserContactInfoItem, UserExtraData } from '../../botonic/session';
3
+ import { WebchatClientSettings } from '../../botonic/webchat-client-settings';
4
+ import { BotonicAction } from './botonic-action';
5
+ export type { UserExtraData };
6
+ export interface BotonicRequestSessionBasicEntity {
7
+ id: string;
8
+ name: string;
9
+ }
10
+ export type BotonicRequestSessionOrganization = BotonicRequestSessionBasicEntity;
11
+ export type BotonicRequestSessionBot = BotonicRequestSessionBasicEntity;
12
+ export interface BotonicRequestSessionUserContactInfoItem {
3
13
  name: string;
4
14
  type: string;
5
15
  value: string;
6
16
  description?: string;
7
17
  }
8
- export interface BotonicRequestSessionBot {
9
- id: string;
10
- name?: string;
18
+ export interface BotonicRequestSessionChannel {
19
+ provider: MessagingChannel;
20
+ imp_id?: string;
21
+ unformatted_phone_number?: string;
11
22
  }
12
- /** Extra data attached to session user. API and runtime treat it as a string-keyed object. */
13
- export type UserExtraData = Record<string, any>;
14
23
  export interface BotonicRequestSessionUser<TExtraData extends UserExtraData = UserExtraData> {
15
24
  id: string;
16
- username?: string;
25
+ provider_id: string;
17
26
  name?: string;
18
- provider: MessagingChannel;
19
- imp_id?: string;
20
- provider_id?: string;
21
- chat_id?: string;
27
+ override_name?: string;
22
28
  extra_data?: TExtraData;
29
+ contact_info?: BotonicRequestSessionUserContactInfoItem[];
23
30
  locale: string;
24
31
  country: string;
25
32
  system_locale: string;
26
- contact_info?: ContactInfo[];
27
- }
28
- export interface CaptureUserInput {
29
- node_id: string;
30
33
  }
31
- export declare enum BotonicAction {
32
- Redirect = "redirect_action",
33
- CreateCase = "create_case",
34
- DeleteUser = "delete_user",
35
- DiscardCase = "discard_case"
36
- }
37
- type BotonicActionSeparator = ':';
38
- export type BotonicActionType = `${BotonicAction.CreateCase}${BotonicActionSeparator}${string}` | `${BotonicAction.Redirect}${BotonicActionSeparator}${string}` | `${BotonicAction.DiscardCase}${BotonicActionSeparator}${string}` | `${BotonicAction.DiscardCase}` | `${BotonicAction.DeleteUser}`;
39
34
  export interface BotonicRequestSession<TExtraData extends UserExtraData = UserExtraData> {
35
+ organization: BotonicRequestSessionOrganization;
40
36
  bot: BotonicRequestSessionBot;
37
+ channel: BotonicRequestSessionChannel;
41
38
  user: BotonicRequestSessionUser<TExtraData>;
42
- organization: string;
43
- organization_id: string;
44
- __retries: number;
45
- is_first_interaction: boolean;
46
39
  is_test_integration: boolean;
47
- flow_thread_id: string;
48
- _access_token: string;
49
- _botonic_action?: BotonicActionType;
50
- _hubtype_api: string;
51
- _shadowing?: boolean;
52
- _hubtype_case_id?: string;
53
- capture_user_input?: CaptureUserInput;
40
+ is_first_interaction: boolean;
41
+ shadowing: boolean;
42
+ flow_thread_id?: string;
43
+ had_hubtype_handoff: boolean;
44
+ hubtype_case?: BotonicSessionHubtypeCase;
45
+ custom: Record<string, any>;
46
+ external: Record<string, any>;
47
+ webviews_custom: Record<string, any>;
48
+ webchat_client_settings: WebchatClientSettings;
54
49
  }
55
50
  /**
56
- * Developer-friendly subset of session attributes that can be updated.
57
- * Pass only the fields you want to change; they are converted to API shape internally.
51
+ * Hydrated BotonicSession from Lambda `session`.
52
+ * Field names match backend `model_dump(mode="json")` (snake_case).
58
53
  */
59
54
  export interface BotonicSessionUpdate<TExtraData extends UserExtraData = UserExtraData> {
55
+ shadowing?: boolean | null;
56
+ flowThreadId?: string | null;
57
+ custom?: Record<string, unknown>;
58
+ webviewsCustom?: Record<string, unknown>;
59
+ webchatClientSettings?: Record<string, unknown>;
60
+ /** Flow Builder capture node id; maps to `capture_user_input_node_id` on `PATCH …/session/`. */
61
+ captureUserInputNodeId?: string | null;
62
+ /** Stored as `_botonic_action` on session; not sent on v2 session PATCH. */
63
+ botonicAction?: string | null;
64
+ /** Maps to `is_first_interaction` on session; included in `PATCH …/session/` when set. */
60
65
  isFirstInteraction?: boolean;
61
- botonicAction?: BotonicActionType | null;
62
- flowThreadId?: string;
63
- captureUserInput?: CaptureUserInput;
64
66
  user?: {
67
+ overrideName?: string | null;
65
68
  extraData?: TExtraData;
66
- systemLocale?: string;
67
69
  locale?: string;
68
70
  country?: string;
71
+ systemLocale?: string;
69
72
  };
70
73
  }
71
74
  /**
72
- * Converts a developer-facing session update (camelCase) to the raw PATCH body shape (snake_case).
75
+ * Maps camelCase session updates to snake_case PATCH body (v2 only).
76
+ */
77
+ export declare function sessionUpdateToPatchBody<TExtraData extends UserExtraData = UserExtraData>(update: BotonicSessionUpdate<TExtraData>): Record<string, unknown>;
78
+ /**
79
+ * Mutates `session.raw` immediately so the rest of the turn sees updates.
80
+ * Handles `capture_user_input_node_id` (mirror of {@link sessionUpdateToPatchBody}) and
81
+ * `_botonic_action` (not sent on session PATCH).
82
+ * For `isFirstInteraction`, also updates in-memory `is_first_interaction`; the same
83
+ * value is emitted by {@link sessionUpdateToPatchBody} for `PATCH …/session/`.
73
84
  */
74
- export declare function sessionUpdateToPatchBody<TExtraData extends UserExtraData = UserExtraData>(update: BotonicSessionUpdate<TExtraData>): Partial<BotonicRequestSession<TExtraData>>;
85
+ export declare function applyNonPatchSessionUpdateFields<TExtraData extends UserExtraData = UserExtraData>(session: BotonicSession<TExtraData>, updates: BotonicSessionUpdate<TExtraData>): void;
75
86
  /**
76
- * Runtime class that wraps SessionUser and exposes accessor methods for common attributes.
77
- * Use this as request.session.user so consumers can call request.session.user.locale,
78
- * request.session.user.extraData, etc.
87
+ * Maps `BotonicSessionUpdate.user` to `PATCH …/users/<user_id>/` body (ChatUserPatchSerializer keys, snake_case).
88
+ * Unknown keys are omitted only serializer fields are sent.
79
89
  */
90
+ export declare function userUpdateToChatUserPatchBody<TExtraData extends UserExtraData = UserExtraData>(user: BotonicSessionUpdate<TExtraData>['user'] | undefined): Record<string, unknown>;
80
91
  export declare class BotonicContextSessionUser<TExtraData extends UserExtraData = UserExtraData> {
81
92
  private rawUser;
82
93
  private readonly onUserUpdate?;
83
- constructor(rawUser: BotonicRequestSessionUser<TExtraData>, onUserUpdate?: ((updates: {
94
+ constructor(rawUser: BotonicSessionUser<TExtraData>, onUserUpdate?: ((updates: {
84
95
  extraData?: TExtraData;
85
96
  }) => void) | undefined);
86
- /** Raw user for API calls and serialization. */
87
- get raw(): BotonicRequestSessionUser<TExtraData>;
97
+ get raw(): BotonicSessionUser<TExtraData>;
88
98
  get id(): string;
89
99
  get username(): string | undefined;
90
100
  get name(): string | undefined;
91
- get provider(): string;
92
- get impId(): string | undefined;
93
- get chatId(): string | undefined;
101
+ get overrideName(): string | undefined;
102
+ get providerId(): string;
94
103
  get locale(): string;
95
104
  set locale(v: string);
96
105
  get country(): string;
@@ -99,38 +108,46 @@ export declare class BotonicContextSessionUser<TExtraData extends UserExtraData
99
108
  set systemLocale(v: string);
100
109
  get extraData(): TExtraData | undefined;
101
110
  set extraData(v: TExtraData | undefined);
102
- get contactInfo(): ContactInfo[] | undefined;
111
+ get contactInfo(): BotonicSessionUserContactInfoItem[] | undefined;
103
112
  }
104
- /**
105
- * Runtime class that wraps Session and exposes accessor methods for common attributes.
106
- * Use this as BotRequest.session so consumers can call request.session.user.id,
107
- * request.session.bot.id, etc.
108
- */
109
113
  export declare class BotonicContextSession<TExtraData extends UserExtraData = UserExtraData> {
110
- private rawSession;
114
+ private sessionData;
111
115
  private onUpdate?;
112
- constructor(rawSession: BotonicRequestSession<TExtraData>);
113
- /** Register a callback to run when session is mutated (e.g. user.extraData set). Calls updateBotSession internally. */
116
+ constructor(sessionData: BotonicSession<TExtraData>);
114
117
  setOnUpdate(cb: (updates: BotonicSessionUpdate<TExtraData>) => void): void;
115
- /** Raw session for API calls and serialization (e.g. lambda context). */
116
- get raw(): BotonicRequestSession<TExtraData>;
117
- get bot(): BotonicRequestSessionBot;
118
+ /** Replace underlying session object (e.g. after GET session from Hubtype). */
119
+ replaceSession(next: BotonicSession<TExtraData>): void;
120
+ get raw(): BotonicSession<TExtraData>;
121
+ get bot(): BotonicSessionBot;
118
122
  get user(): BotonicContextSessionUser<TExtraData>;
119
- get organization(): string;
120
123
  get organizationId(): string;
121
- get retries(): number;
124
+ get organizationName(): string;
122
125
  get isFirstInteraction(): boolean;
126
+ set isFirstInteraction(v: boolean);
127
+ get botonicAction(): string | undefined;
128
+ set botonicAction(v: string | undefined);
129
+ isBotonicActionRedirect(): boolean;
130
+ getBotonicActionPayload(action: BotonicAction): string | undefined;
123
131
  get isTestIntegration(): boolean;
124
- get flowThreadId(): string;
125
- get accessToken(): string;
126
- get botonicAction(): BotonicActionType | undefined;
127
- set botonicAction(v: BotonicActionType | undefined);
128
- get hubtypeApi(): string;
132
+ get flowThreadId(): string | null | undefined;
129
133
  get shadowing(): boolean | undefined;
134
+ set shadowing(v: boolean | undefined);
135
+ get hadHubtypeHandoff(): boolean | undefined;
136
+ get hubtypeCase(): BotonicSessionHubtypeCase | undefined;
137
+ /** Convenience for legacy code paths; prefer {@link hubtypeCase}. */
130
138
  get hubtypeCaseId(): string | undefined;
131
- get captureUserInput(): {
132
- node_id: string;
133
- } | undefined;
139
+ get custom(): Record<string, unknown> | undefined;
140
+ get external(): Record<string, unknown> | undefined;
141
+ get webviewsCustom(): Record<string, unknown> | undefined;
142
+ set webviewsCustom(v: Record<string, unknown> | undefined);
143
+ get webchatClientSettings(): WebchatClientSettings;
144
+ set webchatClientSettings(v: WebchatClientSettings);
145
+ /** Flow Builder: node id capturing user input (`capture_user_input_node_id` in JSON). */
146
+ get captureUserInputNodeId(): string | undefined;
147
+ /** Channel provider (e.g. webchat, whatsapp). */
148
+ get provider(): string;
149
+ get impId(): string;
150
+ get unformattedPhoneNumber(): string | undefined;
134
151
  isDev(): boolean;
135
152
  isWebchat(): boolean;
136
153
  isTelegram(): boolean;
@@ -138,9 +155,5 @@ export declare class BotonicContextSession<TExtraData extends UserExtraData = Us
138
155
  isInstagram(): boolean;
139
156
  isTwitter(): boolean;
140
157
  isWhatsapp(): boolean;
141
- isBotonicActionRedirect(): boolean;
142
- getBotonicActionPayload(action: BotonicAction): string | undefined;
143
- /** True when the session has a flow thread id. */
144
158
  hasFlowThreadId(): boolean;
145
159
  }
146
- export {};
@@ -1,61 +1,98 @@
1
1
  import { MessagingChannel } from '../../../shared-types';
2
- export var BotonicAction;
3
- (function (BotonicAction) {
4
- BotonicAction["Redirect"] = "redirect_action";
5
- BotonicAction["CreateCase"] = "create_case";
6
- BotonicAction["DeleteUser"] = "delete_user";
7
- BotonicAction["DiscardCase"] = "discard_case";
8
- })(BotonicAction || (BotonicAction = {}));
2
+ import { DEFAULT_WEBCHAT_CLIENT_SETTINGS, } from '../../botonic/webchat-client-settings';
3
+ import { BotonicAction } from './botonic-action';
9
4
  /**
10
- * Converts a developer-facing session update (camelCase) to the raw PATCH body shape (snake_case).
5
+ * Maps camelCase session updates to snake_case PATCH body (v2 only).
11
6
  */
12
7
  export function sessionUpdateToPatchBody(update) {
13
- var _a;
14
- const raw = {};
8
+ const body = {};
15
9
  if (update.isFirstInteraction !== undefined) {
16
- raw.is_first_interaction = update.isFirstInteraction;
17
- }
18
- if ('botonicAction' in update) {
19
- raw._botonic_action =
20
- (_a = update.botonicAction) !== null && _a !== void 0 ? _a : null;
10
+ body.is_first_interaction = update.isFirstInteraction;
21
11
  }
12
+ if (update.shadowing !== undefined)
13
+ body.shadowing = update.shadowing;
22
14
  if (update.flowThreadId !== undefined) {
23
- raw.flow_thread_id = update.flowThreadId;
24
- }
25
- if (update.captureUserInput !== undefined) {
26
- raw.capture_user_input = update.captureUserInput;
27
- }
28
- if (update.user !== undefined) {
29
- const u = update.user;
30
- const userPatch = {};
31
- if (u.extraData !== undefined)
32
- userPatch.extra_data = u.extraData;
33
- if (u.systemLocale !== undefined)
34
- userPatch.system_locale = u.systemLocale;
35
- if (u.locale !== undefined)
36
- userPatch.locale = u.locale;
37
- if (u.country !== undefined)
38
- userPatch.country = u.country;
39
- if (Object.keys(userPatch).length > 0) {
40
- ;
41
- raw.user = userPatch;
15
+ body.flow_thread_id = update.flowThreadId;
16
+ }
17
+ if (update.custom !== undefined)
18
+ body.custom = update.custom;
19
+ if (update.webviewsCustom !== undefined) {
20
+ body.webviews_custom = update.webviewsCustom;
21
+ }
22
+ if (update.webchatClientSettings !== undefined) {
23
+ body.webchat_client_settings = update.webchatClientSettings;
24
+ }
25
+ if (update.captureUserInputNodeId !== undefined) {
26
+ const id = update.captureUserInputNodeId;
27
+ if (id === null || id === '') {
28
+ body.capture_user_input_node_id = null;
29
+ }
30
+ else {
31
+ body.capture_user_input_node_id = id;
42
32
  }
43
33
  }
44
- return raw;
34
+ return body;
45
35
  }
46
36
  /**
47
- * Runtime class that wraps SessionUser and exposes accessor methods for common attributes.
48
- * Use this as request.session.user so consumers can call request.session.user.locale,
49
- * request.session.user.extraData, etc.
37
+ * Mutates `session.raw` immediately so the rest of the turn sees updates.
38
+ * Handles `capture_user_input_node_id` (mirror of {@link sessionUpdateToPatchBody}) and
39
+ * `_botonic_action` (not sent on session PATCH).
40
+ * For `isFirstInteraction`, also updates in-memory `is_first_interaction`; the same
41
+ * value is emitted by {@link sessionUpdateToPatchBody} for `PATCH …/session/`.
50
42
  */
51
- // TODO: Should we do call updateSession against API each time a setter is called?
52
- // feedback TODO: Actually, all sets of this class should use an API call to update the value in the database through the backend. And perhaps the gets should read the data in the same way (I'm not sure about this last point).
43
+ export function applyNonPatchSessionUpdateFields(session, updates) {
44
+ if (updates.captureUserInputNodeId !== undefined) {
45
+ const id = updates.captureUserInputNodeId;
46
+ if (id === null || id === '') {
47
+ delete session.capture_user_input_node_id;
48
+ }
49
+ else {
50
+ session.capture_user_input_node_id = id;
51
+ }
52
+ }
53
+ if (updates.isFirstInteraction !== undefined) {
54
+ session.is_first_interaction = updates.isFirstInteraction;
55
+ }
56
+ if (updates.botonicAction !== undefined) {
57
+ const w = session;
58
+ if (updates.botonicAction === null || updates.botonicAction === '') {
59
+ delete w._botonic_action;
60
+ }
61
+ else {
62
+ w._botonic_action = updates.botonicAction;
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Maps `BotonicSessionUpdate.user` to `PATCH …/users/<user_id>/` body (ChatUserPatchSerializer keys, snake_case).
68
+ * Unknown keys are omitted — only serializer fields are sent.
69
+ */
70
+ export function userUpdateToChatUserPatchBody(user) {
71
+ if (user === undefined)
72
+ return {};
73
+ const body = {};
74
+ if (user.overrideName !== undefined) {
75
+ body.override_name = user.overrideName;
76
+ }
77
+ if (user.locale !== undefined) {
78
+ body.locale = user.locale;
79
+ }
80
+ if (user.country !== undefined) {
81
+ body.country = user.country;
82
+ }
83
+ if (user.systemLocale !== undefined) {
84
+ body.system_locale = user.systemLocale;
85
+ }
86
+ if (user.extraData !== undefined) {
87
+ body.extra_data = user.extraData;
88
+ }
89
+ return body;
90
+ }
53
91
  export class BotonicContextSessionUser {
54
92
  constructor(rawUser, onUserUpdate) {
55
93
  this.rawUser = rawUser;
56
94
  this.onUserUpdate = onUserUpdate;
57
95
  }
58
- /** Raw user for API calls and serialization. */
59
96
  get raw() {
60
97
  return this.rawUser;
61
98
  }
@@ -63,19 +100,19 @@ export class BotonicContextSessionUser {
63
100
  return this.rawUser.id;
64
101
  }
65
102
  get username() {
66
- return this.rawUser.username;
103
+ var _a;
104
+ return (_a = this.rawUser.username) !== null && _a !== void 0 ? _a : undefined;
67
105
  }
68
106
  get name() {
69
- return this.rawUser.name;
70
- }
71
- get provider() {
72
- return this.rawUser.provider;
107
+ var _a;
108
+ return (_a = this.rawUser.name) !== null && _a !== void 0 ? _a : undefined;
73
109
  }
74
- get impId() {
75
- return this.rawUser.imp_id;
110
+ get overrideName() {
111
+ var _a;
112
+ return (_a = this.rawUser.override_name) !== null && _a !== void 0 ? _a : undefined;
76
113
  }
77
- get chatId() {
78
- return this.rawUser.chat_id;
114
+ get providerId() {
115
+ return this.rawUser.provider_id;
79
116
  }
80
117
  get locale() {
81
118
  return this.rawUser.locale;
@@ -107,103 +144,154 @@ export class BotonicContextSessionUser {
107
144
  return this.rawUser.contact_info;
108
145
  }
109
146
  }
110
- /**
111
- * Runtime class that wraps Session and exposes accessor methods for common attributes.
112
- * Use this as BotRequest.session so consumers can call request.session.user.id,
113
- * request.session.bot.id, etc.
114
- */
115
147
  export class BotonicContextSession {
116
- constructor(rawSession) {
117
- this.rawSession = rawSession;
148
+ constructor(sessionData) {
149
+ this.sessionData = sessionData;
118
150
  }
119
- /** Register a callback to run when session is mutated (e.g. user.extraData set). Calls updateBotSession internally. */
120
151
  setOnUpdate(cb) {
121
152
  this.onUpdate = cb;
122
153
  }
123
- /** Raw session for API calls and serialization (e.g. lambda context). */
154
+ /** Replace underlying session object (e.g. after GET session from Hubtype). */
155
+ replaceSession(next) {
156
+ this.sessionData = next;
157
+ }
124
158
  get raw() {
125
- return this.rawSession;
159
+ return this.sessionData;
126
160
  }
127
161
  get bot() {
128
- return this.rawSession.bot;
162
+ return this.sessionData.bot;
129
163
  }
130
164
  get user() {
131
- return new BotonicContextSessionUser(this.rawSession.user,
132
- // Automatically updates the session when the user is updated (e.g. when the user.extraData is set)
133
- this.onUpdate ? updates => this.onUpdate({ user: updates }) : undefined);
134
- }
135
- get organization() {
136
- return this.rawSession.organization;
165
+ const notify = this.onUpdate;
166
+ return new BotonicContextSessionUser(this.sessionData.user, notify !== undefined
167
+ ? updates => {
168
+ notify({ user: updates });
169
+ }
170
+ : undefined);
137
171
  }
138
172
  get organizationId() {
139
- return this.rawSession.organization_id;
173
+ return this.sessionData.organization.id;
140
174
  }
141
- get retries() {
142
- return this.rawSession.__retries;
175
+ get organizationName() {
176
+ return this.sessionData.organization.name;
143
177
  }
144
178
  get isFirstInteraction() {
145
- return this.rawSession.is_first_interaction;
146
- }
147
- get isTestIntegration() {
148
- return this.rawSession.is_test_integration;
179
+ return this.sessionData.is_first_interaction;
149
180
  }
150
- get flowThreadId() {
151
- return this.rawSession.flow_thread_id;
152
- }
153
- get accessToken() {
154
- return this.rawSession._access_token;
181
+ set isFirstInteraction(v) {
182
+ this.sessionData.is_first_interaction = v;
155
183
  }
156
184
  get botonicAction() {
157
- return this.rawSession._botonic_action;
185
+ const w = this.sessionData;
186
+ const v = w._botonic_action;
187
+ return typeof v === 'string' ? v : undefined;
158
188
  }
159
189
  set botonicAction(v) {
160
- this.rawSession._botonic_action = v;
190
+ const w = this.sessionData;
191
+ if (v === undefined || v === '') {
192
+ delete w._botonic_action;
193
+ }
194
+ else {
195
+ w._botonic_action = v;
196
+ }
161
197
  }
162
- get hubtypeApi() {
163
- return this.rawSession._hubtype_api;
198
+ isBotonicActionRedirect() {
199
+ const a = this.botonicAction;
200
+ const prefix = `${BotonicAction.Redirect}:`;
201
+ return typeof a === 'string' && a.startsWith(prefix);
202
+ }
203
+ getBotonicActionPayload(action) {
204
+ const prefix = `${action}:`;
205
+ const a = this.botonicAction;
206
+ if (typeof a !== 'string' || !a.startsWith(prefix))
207
+ return undefined;
208
+ return a.slice(prefix.length);
209
+ }
210
+ get isTestIntegration() {
211
+ return this.sessionData.is_test_integration;
212
+ }
213
+ get flowThreadId() {
214
+ return this.sessionData.flow_thread_id;
164
215
  }
165
216
  get shadowing() {
166
- return this.rawSession._shadowing;
217
+ return this.sessionData.shadowing;
218
+ }
219
+ set shadowing(v) {
220
+ this.sessionData.shadowing = v;
221
+ }
222
+ get hadHubtypeHandoff() {
223
+ return this.sessionData.had_hubtype_handoff;
224
+ }
225
+ get hubtypeCase() {
226
+ return this.sessionData.hubtype_case;
167
227
  }
228
+ /** Convenience for legacy code paths; prefer {@link hubtypeCase}. */
168
229
  get hubtypeCaseId() {
169
- return this.rawSession._hubtype_case_id;
230
+ var _a;
231
+ return (_a = this.sessionData.hubtype_case) === null || _a === void 0 ? void 0 : _a.id;
232
+ }
233
+ get custom() {
234
+ return this.sessionData.custom;
235
+ }
236
+ get external() {
237
+ return this.sessionData.external;
238
+ }
239
+ get webviewsCustom() {
240
+ return this.sessionData.webviews_custom;
170
241
  }
171
- get captureUserInput() {
172
- return this.rawSession.capture_user_input;
242
+ set webviewsCustom(v) {
243
+ this.sessionData.webviews_custom = v;
244
+ }
245
+ get webchatClientSettings() {
246
+ var _a;
247
+ return ((_a = this.sessionData.webchat_client_settings) !== null && _a !== void 0 ? _a : DEFAULT_WEBCHAT_CLIENT_SETTINGS);
248
+ }
249
+ set webchatClientSettings(v) {
250
+ this.sessionData.webchat_client_settings = v;
251
+ }
252
+ /** Flow Builder: node id capturing user input (`capture_user_input_node_id` in JSON). */
253
+ get captureUserInputNodeId() {
254
+ const id = this.sessionData.capture_user_input_node_id;
255
+ if (id == null || id === '') {
256
+ return undefined;
257
+ }
258
+ return id;
259
+ }
260
+ /** Channel provider (e.g. webchat, whatsapp). */
261
+ get provider() {
262
+ return this.sessionData.channel.provider;
263
+ }
264
+ get impId() {
265
+ return this.sessionData.channel.imp_id;
266
+ }
267
+ get unformattedPhoneNumber() {
268
+ var _a;
269
+ return (_a = this.sessionData.channel.unformatted_phone_number) !== null && _a !== void 0 ? _a : undefined;
173
270
  }
174
- // TODO: Still needed?
175
271
  isDev() {
176
- return this.user.provider === MessagingChannel.Webchat;
272
+ return this.provider === MessagingChannel.Webchat;
177
273
  }
178
274
  isWebchat() {
179
- return this.user.provider === MessagingChannel.Webchat;
275
+ return this.provider === MessagingChannel.Webchat;
180
276
  }
181
277
  isTelegram() {
182
- return this.user.provider === MessagingChannel.Telegram;
278
+ return this.provider === MessagingChannel.Telegram;
183
279
  }
184
280
  isFacebook() {
185
- return this.user.provider === MessagingChannel.Facebook;
281
+ return this.provider === MessagingChannel.Facebook;
186
282
  }
187
283
  isInstagram() {
188
- return this.user.provider === MessagingChannel.Instagram;
284
+ return this.provider === MessagingChannel.Instagram;
189
285
  }
190
286
  isTwitter() {
191
- return this.user.provider === MessagingChannel.Twitter;
287
+ return this.provider === MessagingChannel.Twitter;
192
288
  }
193
289
  isWhatsapp() {
194
- return this.user.provider === MessagingChannel.Whatsapp;
195
- }
196
- isBotonicActionRedirect() {
197
- var _a, _b;
198
- return (_b = (_a = this.botonicAction) === null || _a === void 0 ? void 0 : _a.startsWith(BotonicAction.Redirect)) !== null && _b !== void 0 ? _b : false;
199
- }
200
- getBotonicActionPayload(action) {
201
- var _a;
202
- return (_a = this.botonicAction) === null || _a === void 0 ? void 0 : _a.split(action + ':')[1];
290
+ return this.provider === MessagingChannel.Whatsapp;
203
291
  }
204
- /** True when the session has a flow thread id. */
205
292
  hasFlowThreadId() {
206
- return this.flowThreadId !== undefined && this.flowThreadId !== '';
293
+ const ft = this.flowThreadId;
294
+ return ft != null && ft !== '';
207
295
  }
208
296
  }
209
297
  //# sourceMappingURL=botonic-context-session.js.map