@product7/product7-js 0.4.4 → 0.4.5

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": "@product7/product7-js",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "JavaScript SDK for integrating Product7 feedback widgets into any website",
5
5
  "main": "dist/product7-js.js",
6
6
  "module": "src/index.js",
@@ -115,6 +115,7 @@ export class BaseAPIService {
115
115
  return {
116
116
  sessionToken: this.sessionToken,
117
117
  config: initData.config,
118
+ widgets: initData.widgets,
118
119
  expiresIn: initData.expiresIn,
119
120
  status: initData.status,
120
121
  message: initData.message,
@@ -135,8 +136,23 @@ export class BaseAPIService {
135
136
  ? response.data
136
137
  : response || {};
137
138
 
138
- const sessionToken = payload.session_token || payload.sessionToken;
139
- const expiresIn = Number(payload.expires_in ?? payload.expiresIn);
139
+ const configData =
140
+ payload.config && typeof payload.config === 'object'
141
+ ? payload.config
142
+ : {};
143
+
144
+ const sessionToken =
145
+ payload.session_token ||
146
+ payload.sessionToken ||
147
+ configData.session_token ||
148
+ configData.sessionToken;
149
+
150
+ const expiresIn = Number(
151
+ payload.expires_in ??
152
+ payload.expiresIn ??
153
+ configData.expires_in ??
154
+ configData.expiresIn
155
+ );
140
156
 
141
157
  if (!sessionToken) {
142
158
  throw new APIError(500, 'Invalid init response: missing session_token');
@@ -149,11 +165,17 @@ export class BaseAPIService {
149
165
  return {
150
166
  sessionToken,
151
167
  expiresIn,
152
- config:
153
- payload.config && typeof payload.config === 'object'
154
- ? payload.config
155
- : {},
156
- configVersion: payload.config_version ?? payload.configVersion ?? null,
168
+ config: configData,
169
+ widgets:
170
+ payload.widgets && typeof payload.widgets === 'object'
171
+ ? payload.widgets
172
+ : null,
173
+ configVersion:
174
+ configData.config_version ??
175
+ configData.configVersion ??
176
+ payload.config_version ??
177
+ payload.configVersion ??
178
+ null,
157
179
  status: response?.status ?? payload?.status ?? true,
158
180
  message: response?.message ?? payload?.message ?? null,
159
181
  };
@@ -56,8 +56,12 @@ export class Product7 {
56
56
  try {
57
57
  const initData = await this.apiService.init();
58
58
 
59
- if (initData.config) {
60
- this.config = deepMerge(initData.config, this.config);
59
+ const serverConfig = initData.config ? { ...initData.config } : {};
60
+ if (initData.widgets) {
61
+ serverConfig.widgets = initData.widgets;
62
+ }
63
+ if (Object.keys(serverConfig).length > 0) {
64
+ this.config = deepMerge(serverConfig, this.config);
61
65
  }
62
66
 
63
67
  this.initialized = true;
@@ -218,6 +222,8 @@ export class Product7 {
218
222
  surveyConfig.showDescription ?? surveyConfig.show_description,
219
223
  customQuestions: surveyConfig.customQuestions || surveyConfig.questions,
220
224
  pages: surveyConfig.pages,
225
+ thankYouConfig:
226
+ surveyConfig.thankYouConfig || surveyConfig.thank_you_config || null,
221
227
  enabled: surveyConfig.enabled,
222
228
  ...displayOptions,
223
229
  });