@memberstack/dom 1.9.40 → 1.9.44

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 (61) hide show
  1. package/lib/auth/index.global.js +244 -0
  2. package/lib/auth/index.js +8 -0
  3. package/lib/auth/index.mjs +8 -0
  4. package/lib/constants/endpoints.global.js +29 -0
  5. package/lib/constants/endpoints.js +1 -1
  6. package/lib/constants/endpoints.mjs +1 -1
  7. package/lib/index.d.mts +21 -5
  8. package/lib/index.d.ts +21 -5
  9. package/lib/index.global.js +46364 -0
  10. package/lib/index.js +5828 -1511
  11. package/lib/index.mjs +5828 -1511
  12. package/lib/methods/dom/index.global.js +2 -0
  13. package/lib/methods/dom/main-dom.global.js +30620 -0
  14. package/lib/methods/dom/main-dom.js +5435 -1410
  15. package/lib/methods/dom/main-dom.mjs +5435 -1410
  16. package/lib/methods/dom/methods.d.mts +7 -1
  17. package/lib/methods/dom/methods.d.ts +7 -1
  18. package/lib/methods/dom/methods.global.js +30827 -0
  19. package/lib/methods/dom/methods.js +5571 -1536
  20. package/lib/methods/dom/methods.mjs +5571 -1536
  21. package/lib/methods/index.d.mts +19 -3
  22. package/lib/methods/index.d.ts +19 -3
  23. package/lib/methods/index.global.js +46361 -0
  24. package/lib/methods/index.js +5828 -1511
  25. package/lib/methods/index.mjs +5828 -1511
  26. package/lib/methods/requests/index.d.mts +14 -2
  27. package/lib/methods/requests/index.d.ts +14 -2
  28. package/lib/methods/requests/index.global.js +15553 -0
  29. package/lib/methods/requests/index.js +302 -20
  30. package/lib/methods/requests/index.mjs +302 -20
  31. package/lib/methods/requests/requests.d.mts +12 -1
  32. package/lib/methods/requests/requests.d.ts +12 -1
  33. package/lib/methods/requests/requests.global.js +14528 -0
  34. package/lib/methods/requests/requests.js +73 -3
  35. package/lib/methods/requests/requests.mjs +73 -3
  36. package/lib/types/index.d.mts +3 -2
  37. package/lib/types/index.d.ts +3 -2
  38. package/lib/types/index.global.js +19 -0
  39. package/lib/types/params.d.mts +87 -1
  40. package/lib/types/params.d.ts +87 -1
  41. package/lib/types/params.global.js +19 -0
  42. package/lib/types/payloads.d.mts +72 -1
  43. package/lib/types/payloads.d.ts +72 -1
  44. package/lib/types/payloads.global.js +19 -0
  45. package/lib/types/translations.d.mts +43 -0
  46. package/lib/types/translations.d.ts +43 -0
  47. package/lib/types/translations.global.js +19 -0
  48. package/lib/types/translations.js +17 -0
  49. package/lib/types/translations.mjs +0 -0
  50. package/lib/types/utils/payloads.d.mts +3 -0
  51. package/lib/types/utils/payloads.d.ts +3 -0
  52. package/lib/types/utils/payloads.global.js +19 -0
  53. package/lib/utils/cookies.d.mts +4 -1
  54. package/lib/utils/cookies.d.ts +4 -1
  55. package/lib/utils/cookies.global.js +261 -0
  56. package/lib/utils/cookies.js +30 -0
  57. package/lib/utils/cookies.mjs +27 -0
  58. package/lib/utils/defaultMessageBox.global.js +125 -0
  59. package/lib/utils/defaultMessageBox.js +10 -0
  60. package/lib/utils/defaultMessageBox.mjs +10 -0
  61. package/package.json +4 -4
@@ -76,7 +76,7 @@ var import_axios = __toESM(require("axios"));
76
76
 
77
77
  // src/constants/endpoints.ts
78
78
  var endpoints = {
79
- API: "https://client.memberstack.com"
79
+ API: "https://dev-client.memberstack.com"
80
80
  };
81
81
 
82
82
  // src/utils/cookies.ts
@@ -147,6 +147,30 @@ var getMemberToken = () => {
147
147
  }
148
148
  return import_js_cookie.default.get(memberAuthTokenName);
149
149
  };
150
+ var getSessionId = () => {
151
+ if (typeof window === "undefined")
152
+ return null;
153
+ const sessionId = window.localStorage.getItem("ms_session_id");
154
+ if (!sessionId || sessionId.length > 26) {
155
+ window.localStorage.removeItem("ms_session_id");
156
+ return null;
157
+ }
158
+ return sessionId;
159
+ };
160
+ var setSessionId = (sessionId) => {
161
+ if (typeof window !== "undefined") {
162
+ window.localStorage.setItem("ms_session_id", sessionId);
163
+ } else {
164
+ console.warn("setSessionId: window is not defined");
165
+ }
166
+ };
167
+ var removeSessionId = () => {
168
+ if (typeof window !== "undefined") {
169
+ window.localStorage.removeItem("ms_session_id");
170
+ } else {
171
+ console.warn("removeSessionId: window is not defined");
172
+ }
173
+ };
150
174
 
151
175
  // src/methods/requests/requests.ts
152
176
  var createRequestHandler = ({
@@ -161,6 +185,7 @@ var createRequestHandler = ({
161
185
  try {
162
186
  const { url } = data;
163
187
  const memberToken = getMemberToken();
188
+ const sessionToken = getSessionId();
164
189
  const authHeader = [
165
190
  (_b = (_a = data.headers) == null ? void 0 : _a["Authorization"]) == null ? void 0 : _b.replace("Bearer ", ""),
166
191
  memberToken,
@@ -171,9 +196,13 @@ var createRequestHandler = ({
171
196
  method: data.method,
172
197
  data: data.data,
173
198
  url: formattedUrl,
174
- headers: __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, authHeader && { authorization: `Bearer ${authHeader}` }), publicKey && { ["X-API-Key" /* API_KEY */]: publicKey }), appId && { ["X-APP-ID" /* APP_ID */]: appId }), {
199
+ headers: __spreadProps(__spreadValues(__spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, authHeader && { authorization: `Bearer ${authHeader}` }), publicKey && { ["X-API-Key" /* API_KEY */]: publicKey }), appId && { ["X-APP-ID" /* APP_ID */]: appId }), {
175
200
  ["X-User-Agent" /* USER_AGENT */]: "@memberstack/client@1.2.0"
176
- }), data.contentType && { "Content-Type": data.contentType }),
201
+ }), data.contentType && { "Content-Type": data.contentType }), sessionToken && {
202
+ ["X-Session-ID" /* SESSION_ID */]: sessionToken
203
+ }), {
204
+ "referring-path": window.location.pathname
205
+ }),
177
206
  withCredentials: true
178
207
  });
179
208
  if ((_c = res == null ? void 0 : res.headers) == null ? void 0 : _c["ms-mid"]) {
@@ -194,6 +223,59 @@ var createRequestHandler = ({
194
223
  throw e;
195
224
  throw ((_g = (_f = e.response) == null ? void 0 : _f.data) == null ? void 0 : _g.error) || ((_h = e.response) == null ? void 0 : _h.data);
196
225
  }
226
+ }),
227
+ sendRequestWithFetch: (data, options) => __async(void 0, null, function* () {
228
+ var _a, _b;
229
+ try {
230
+ const { url, method, data: bodyData, headers, contentType } = data;
231
+ const memberToken = getMemberToken();
232
+ const authHeader = [
233
+ (_a = headers == null ? void 0 : headers["Authorization"]) == null ? void 0 : _a.replace("Bearer ", ""),
234
+ memberToken,
235
+ options == null ? void 0 : options.token
236
+ ].find((x) => x);
237
+ const formattedUrl = `${customEndpoint || endpoints.API}${url}`;
238
+ const fetchHeaders = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, authHeader && { Authorization: `Bearer ${authHeader}` }), publicKey && { ["X-API-Key" /* API_KEY */]: publicKey }), appId && { ["X-APP-ID" /* APP_ID */]: appId }), {
239
+ ["X-User-Agent" /* USER_AGENT */]: "@memberstack/client@1.2.0",
240
+ "Content-Type": "application/json",
241
+ Referer: window.location.href
242
+ });
243
+ const response = yield fetch(formattedUrl, {
244
+ method,
245
+ headers: fetchHeaders,
246
+ body: bodyData ? JSON.stringify(bodyData) : void 0,
247
+ credentials: "include",
248
+ keepalive: true
249
+ // Keeps the connection open for further requests
250
+ });
251
+ const contentTypeHeader = response.headers.get("content-type");
252
+ let result;
253
+ if (contentTypeHeader == null ? void 0 : contentTypeHeader.includes("application/json")) {
254
+ result = yield response.json();
255
+ } else if (contentTypeHeader == null ? void 0 : contentTypeHeader.includes("text")) {
256
+ result = yield response.text();
257
+ } else if (response.status === 204) {
258
+ result = null;
259
+ } else {
260
+ result = yield response.text();
261
+ }
262
+ if (response.headers.get("ms-mid")) {
263
+ token = response.headers.get("ms-mid");
264
+ }
265
+ if (!response.ok) {
266
+ if (((_b = result == null ? void 0 : result.error) == null ? void 0 : _b.name) === "JsonWebTokenError") {
267
+ throw {
268
+ code: "client/invalid-token",
269
+ message: "An invalid token has been provided. Please make sure the token is valid."
270
+ };
271
+ }
272
+ throw (result == null ? void 0 : result.error) || result;
273
+ }
274
+ return result;
275
+ } catch (e) {
276
+ console.error("Error in sendRequestWithFetch:", e);
277
+ throw e;
278
+ }
197
279
  })
198
280
  };
199
281
  };
@@ -240,6 +322,7 @@ var updatePersistedMember = (member) => {
240
322
  var unsetPersistedMember = () => {
241
323
  localStorage == null ? void 0 : localStorage.removeItem("_ms-mem");
242
324
  removeMemberToken();
325
+ removeSessionId();
243
326
  observable.notify(null);
244
327
  };
245
328
 
@@ -299,6 +382,64 @@ var openSignInWindow = (url, name) => __async(void 0, null, function* () {
299
382
  promiseReject = reject;
300
383
  });
301
384
  });
385
+ function getBrowser() {
386
+ const userAgent = navigator.userAgent;
387
+ if (/Edg/i.test(userAgent))
388
+ return "EDGE";
389
+ if (/Trident/i.test(userAgent) || /MSIE/i.test(userAgent))
390
+ return "INTERNET_EXPLORER";
391
+ if (/Safari/i.test(userAgent) && !/Chrome/i.test(userAgent))
392
+ return "SAFARI";
393
+ if (/Firefox/i.test(userAgent))
394
+ return "FIREFOX";
395
+ if (/Chrome/i.test(userAgent) && !/Edg/i.test(userAgent))
396
+ return "CHROME";
397
+ if (/OPR/i.test(userAgent) || /Opera/i.test(userAgent))
398
+ return "OPERA";
399
+ return "OTHER";
400
+ }
401
+ function getOS() {
402
+ const userAgent = navigator.userAgent;
403
+ if (/Windows/i.test(userAgent))
404
+ return "WINDOWS";
405
+ if (/Macintosh|Mac OS X/i.test(userAgent))
406
+ return "MACOS";
407
+ if (/Android/i.test(userAgent))
408
+ return "ANDROID";
409
+ if (/iPhone|iPad|iPod/i.test(userAgent))
410
+ return "IOS";
411
+ if (/Linux/i.test(userAgent))
412
+ return "LINUX";
413
+ return "OTHER";
414
+ }
415
+ function getScreenSize() {
416
+ const width = window.innerWidth;
417
+ if (width <= 768)
418
+ return "PHONE";
419
+ if (width <= 1024)
420
+ return "TABLET";
421
+ return "DESKTOP";
422
+ }
423
+ function getUTMParams() {
424
+ const params = new URLSearchParams(window.location.search);
425
+ const utmParams = {};
426
+ const utmKeys = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
427
+ utmKeys.forEach((key) => {
428
+ if (params.has(key)) {
429
+ utmParams[key] = params.get(key);
430
+ }
431
+ });
432
+ return utmParams;
433
+ }
434
+ function getConversionData() {
435
+ return {
436
+ browser: getBrowser(),
437
+ os: getOS(),
438
+ screenSize: getScreenSize(),
439
+ sessionId: getSessionId(),
440
+ utmParams: getUTMParams()
441
+ };
442
+ }
302
443
  var API_ENDPOINT;
303
444
  var initRequest = ({
304
445
  publicKey,
@@ -307,7 +448,7 @@ var initRequest = ({
307
448
  domain
308
449
  //sessionDurationDays
309
450
  }) => {
310
- const { sendRequest } = createRequestHandler({
451
+ const { sendRequest, sendRequestWithFetch } = createRequestHandler({
311
452
  publicKey,
312
453
  token,
313
454
  customEndpoint: domain,
@@ -315,6 +456,26 @@ var initRequest = ({
315
456
  });
316
457
  API_ENDPOINT = domain;
317
458
  return {
459
+ _Event(params) {
460
+ return __async(this, null, function* () {
461
+ const payload = __spreadValues(__spreadValues({}, params.data), getConversionData());
462
+ return sendRequestWithFetch({
463
+ method: "POST" /* POST */,
464
+ url: `/event`,
465
+ data: payload
466
+ });
467
+ });
468
+ },
469
+ deleteMember() {
470
+ return __async(this, null, function* () {
471
+ const data = yield sendRequest({
472
+ method: "DELETE" /* DELETE */,
473
+ url: `/member`
474
+ });
475
+ unsetPersistedMember();
476
+ return data;
477
+ });
478
+ },
318
479
  postIsTyping(params) {
319
480
  return __async(this, null, function* () {
320
481
  return sendRequest({
@@ -485,6 +646,7 @@ var initRequest = ({
485
646
  return __async(this, null, function* () {
486
647
  const customFields = encodeURIComponent(params.customFields ? JSON.stringify(params.customFields) : "{}");
487
648
  const plans = encodeURIComponent(params.plans ? JSON.stringify(params.plans) : "[]");
649
+ const conversionData = getConversionData();
488
650
  const queryParams = new URLSearchParams(__spreadProps(__spreadValues({
489
651
  provider: params.provider,
490
652
  customFields,
@@ -493,7 +655,12 @@ var initRequest = ({
493
655
  }, publicKey && {
494
656
  publicKey
495
657
  }), {
496
- origin: window.location.hostname
658
+ url: window.location.pathname,
659
+ origin: window.location.hostname,
660
+ sessionId: conversionData.sessionId,
661
+ browser: conversionData.browser,
662
+ os: conversionData.os,
663
+ screenSize: conversionData.screenSize
497
664
  }));
498
665
  return openSignInWindow(`${domain}/auth-provider/signup?${queryParams}`, "signup");
499
666
  });
@@ -540,15 +707,29 @@ var initRequest = ({
540
707
  },
541
708
  getAppAndMember(params) {
542
709
  return __async(this, null, function* () {
543
- const queryParams = new URLSearchParams({
544
- // @ts-ignore
545
- includeSSOText: window == null ? void 0 : window.ssoUI,
546
- trackPageView: params == null ? void 0 : params.trackPageView
547
- });
548
- return sendRequest({
549
- method: "GET" /* GET */,
550
- url: `/app-member?${queryParams}`
710
+ var _a2, _b;
711
+ const data = yield sendRequest({
712
+ method: "POST" /* POST */,
713
+ url: `/app-member`,
714
+ data: {
715
+ email: params.email,
716
+ password: params.password,
717
+ data: {
718
+ // @ts-ignore
719
+ includeSSOText: window == null ? void 0 : window.ssoUI,
720
+ trackPageView: params == null ? void 0 : params.trackPageView,
721
+ sessionData: __spreadValues({}, getConversionData())
722
+ }
723
+ }
551
724
  });
725
+ try {
726
+ const backendSessionId = (_b = (_a2 = data.data) == null ? void 0 : _a2.sessionData) == null ? void 0 : _b.sessionId;
727
+ const storedSessionId = getSessionId();
728
+ if (storedSessionId !== backendSessionId)
729
+ setSessionId(backendSessionId);
730
+ } catch (e) {
731
+ }
732
+ return data;
552
733
  });
553
734
  },
554
735
  getApp() {
@@ -733,7 +914,10 @@ var initRequest = ({
733
914
  //window.location requires dom
734
915
  success_url,
735
916
  cancel_url,
736
- origin_url: window.location.href
917
+ origin_url: window.location.href,
918
+ conversionData: __spreadValues({
919
+ url: window.location.pathname
920
+ }, getConversionData())
737
921
  },
738
922
  headers: addHeaders(options)
739
923
  });
@@ -824,7 +1008,7 @@ var initRequest = ({
824
1008
  },
825
1009
  signupMemberPasswordless(params, options) {
826
1010
  return __async(this, null, function* () {
827
- var _a2, _b;
1011
+ var _a2, _b, _c;
828
1012
  const data = yield sendRequest({
829
1013
  method: "POST" /* POST */,
830
1014
  url: `/auth/signup?isPasswordless=true`,
@@ -836,13 +1020,16 @@ var initRequest = ({
836
1020
  }, params.plans && { plans: params.plans }), {
837
1021
  //internal use only
838
1022
  origin_domain: window.location.origin,
1023
+ conversionData: __spreadValues(__spreadProps(__spreadValues({}, (_a2 = params == null ? void 0 : params.conversionData) != null ? _a2 : {}), {
1024
+ url: window.location.pathname
1025
+ }), getConversionData()),
839
1026
  options
840
- }), ((_a2 = window.Rewardful) == null ? void 0 : _a2.referral) && {
1027
+ }), ((_b = window.Rewardful) == null ? void 0 : _b.referral) && {
841
1028
  rewardfulData: {
842
1029
  // @ts-ignore
843
1030
  referral: window.Rewardful.referral,
844
1031
  // @ts-ignore
845
- coupon: (_b = window.Rewardful.coupon) == null ? void 0 : _b.id
1032
+ coupon: (_c = window.Rewardful.coupon) == null ? void 0 : _c.id
846
1033
  }
847
1034
  })
848
1035
  });
@@ -854,7 +1041,7 @@ var initRequest = ({
854
1041
  },
855
1042
  signupMemberEmailPassword(params, options) {
856
1043
  return __async(this, null, function* () {
857
- var _a2, _b;
1044
+ var _a2, _b, _c;
858
1045
  const data = yield sendRequest({
859
1046
  method: "POST" /* POST */,
860
1047
  url: `/auth/signup`,
@@ -868,13 +1055,16 @@ var initRequest = ({
868
1055
  }, params.plans && { plans: params.plans }), {
869
1056
  //internal use only
870
1057
  origin_domain: window.location.origin,
1058
+ conversionData: __spreadValues(__spreadProps(__spreadValues({}, (_a2 = params == null ? void 0 : params.conversionData) != null ? _a2 : {}), {
1059
+ url: window.location.pathname
1060
+ }), getConversionData()),
871
1061
  options
872
- }), ((_a2 = window.Rewardful) == null ? void 0 : _a2.referral) && {
1062
+ }), ((_b = window.Rewardful) == null ? void 0 : _b.referral) && {
873
1063
  rewardfulData: {
874
1064
  // @ts-ignore
875
1065
  referral: window.Rewardful.referral,
876
1066
  // @ts-ignore
877
- coupon: (_b = window.Rewardful.coupon) == null ? void 0 : _b.id
1067
+ coupon: (_c = window.Rewardful.coupon) == null ? void 0 : _c.id
878
1068
  }
879
1069
  })
880
1070
  });
@@ -989,6 +1179,98 @@ var initRequest = ({
989
1179
  unsetPersistedMember();
990
1180
  return data;
991
1181
  });
1182
+ },
1183
+ // Data Tables Methods
1184
+ getDataTables(options) {
1185
+ return __async(this, null, function* () {
1186
+ return sendRequest({
1187
+ method: "GET" /* GET */,
1188
+ url: `/data-tables`,
1189
+ headers: addHeaders(options)
1190
+ });
1191
+ });
1192
+ },
1193
+ getDataTable(params, options) {
1194
+ return __async(this, null, function* () {
1195
+ return sendRequest({
1196
+ method: "GET" /* GET */,
1197
+ url: `/data-tables/${params.tableKey}`,
1198
+ headers: addHeaders(options)
1199
+ });
1200
+ });
1201
+ },
1202
+ getDataRecords(params, options) {
1203
+ return __async(this, null, function* () {
1204
+ const queryParams = new URLSearchParams(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
1205
+ tableKey: params.tableKey
1206
+ }, params.memberId && { memberId: params.memberId }), params.createdAfter && { createdAfter: params.createdAfter }), params.createdBefore && { createdBefore: params.createdBefore }), params.sortBy && { sortBy: params.sortBy }), params.sortDirection && { sortDirection: params.sortDirection }), params.limit && { limit: params.limit.toString() }), params.after && { after: params.after }));
1207
+ Object.keys(params).forEach((key) => {
1208
+ if (!["tableKey", "memberId", "createdAfter", "createdBefore", "sortBy", "sortDirection", "limit", "after"].includes(key)) {
1209
+ queryParams.append(key, params[key]);
1210
+ }
1211
+ });
1212
+ return sendRequest({
1213
+ method: "GET" /* GET */,
1214
+ url: `/data-records?${queryParams}`,
1215
+ headers: addHeaders(options)
1216
+ });
1217
+ });
1218
+ },
1219
+ createDataRecord(params, options) {
1220
+ return __async(this, null, function* () {
1221
+ return sendRequest({
1222
+ method: "POST" /* POST */,
1223
+ url: `/data-records`,
1224
+ data: __spreadValues({
1225
+ tableKey: params.tableKey,
1226
+ data: params.data
1227
+ }, params.memberId && { memberId: params.memberId }),
1228
+ headers: addHeaders(options)
1229
+ });
1230
+ });
1231
+ },
1232
+ getDataRecord(params, options) {
1233
+ return __async(this, null, function* () {
1234
+ return sendRequest({
1235
+ method: "GET" /* GET */,
1236
+ url: `/data-records/${params.recordId}`,
1237
+ headers: addHeaders(options)
1238
+ });
1239
+ });
1240
+ },
1241
+ updateDataRecord(params, options) {
1242
+ return __async(this, null, function* () {
1243
+ return sendRequest({
1244
+ method: "PUT" /* PUT */,
1245
+ url: `/data-records/${params.recordId}`,
1246
+ data: {
1247
+ data: params.data
1248
+ },
1249
+ headers: addHeaders(options)
1250
+ });
1251
+ });
1252
+ },
1253
+ deleteDataRecord(params, options) {
1254
+ return __async(this, null, function* () {
1255
+ return sendRequest({
1256
+ method: "DELETE" /* DELETE */,
1257
+ url: `/data-records/${params.recordId}`,
1258
+ headers: addHeaders(options)
1259
+ });
1260
+ });
1261
+ },
1262
+ queryDataRecords(params, options) {
1263
+ return __async(this, null, function* () {
1264
+ return sendRequest({
1265
+ method: "POST" /* POST */,
1266
+ url: `/data-records/query`,
1267
+ data: {
1268
+ table: params.table,
1269
+ query: params.query
1270
+ },
1271
+ headers: addHeaders(options)
1272
+ });
1273
+ });
992
1274
  }
993
1275
  };
994
1276
  };