@benji-money/connect-sdk 1.1.4-beta.7 → 1.1.4-beta.8

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.
@@ -110,7 +110,7 @@ var ConnectSDK = (() => {
110
110
  // src/utils/config.ts
111
111
  var buildContext = () => ({
112
112
  namespace: "benji-connect-sdk" ? "benji-connect-sdk" : "benji-connect-sdk",
113
- version: "1.1.4-beta.7" ? String("1.1.4-beta.7") : "0.0.0"
113
+ version: "1.1.4-beta.8" ? String("1.1.4-beta.8") : "0.0.0"
114
114
  });
115
115
  function isBenjiConnectEnvironment(environment) {
116
116
  return environment === "local" /* LOCAL */ || environment === "development" /* DEVELOPMENT */ || environment === "sandbox" /* SANDBOX */ || environment === "production" /* PRODUCTION */;
@@ -258,89 +258,35 @@ var ConnectSDK = (() => {
258
258
  }
259
259
 
260
260
  // src/utils/verifyAppUrl.ts
261
- var VERIFYAPP_HOST = /^verifyapp(?:-[a-z0-9]+)?\.withbenji\.com$/i;
262
- function safeDecode(value) {
263
- try {
264
- return decodeURIComponent(value);
265
- } catch {
266
- return value;
267
- }
268
- }
269
- function rewriteParsedUrl(raw, local) {
270
- let parsed;
271
- try {
272
- parsed = new URL(raw);
273
- } catch {
274
- return raw;
275
- }
276
- let changed = false;
277
- if (VERIFYAPP_HOST.test(parsed.hostname)) {
278
- parsed.protocol = local.protocol;
279
- parsed.hostname = local.hostname;
280
- parsed.port = local.port;
281
- changed = true;
282
- }
283
- for (const key of parsed.searchParams.keys()) {
284
- const value = parsed.searchParams.get(key);
285
- if (value == null) {
286
- continue;
287
- }
288
- const decoded = safeDecode(value);
289
- const nested = rewriteParsedUrl(decoded, local);
290
- if (nested !== decoded) {
291
- parsed.searchParams.set(key, nested);
292
- changed = true;
293
- }
294
- }
295
- return changed ? parsed.toString() : raw;
296
- }
297
- function rewriteVerifyAppHostsInString(value, local) {
298
- const localOrigin = local.origin;
299
- const localHalfEncoded = `${local.protocol.replace(":", "")}%3A//${local.host}`;
300
- const localFullyEncodedOrigin = encodeURIComponent(localOrigin);
301
- let result = value;
302
- result = result.replace(
303
- /https:\/\/verifyapp(?:-[a-z0-9]+)?\.withbenji\.com/gi,
304
- localOrigin
305
- );
306
- result = result.replace(
307
- /https%3A\/\/verifyapp(?:-[a-z0-9]+)?\.withbenji\.com/gi,
308
- localHalfEncoded
309
- );
310
- result = result.replace(
311
- /https%3A%2F%2Fverifyapp(?:-[a-z0-9]+)?\.withbenji\.com/gi,
312
- localFullyEncodedOrigin
313
- );
314
- return result;
315
- }
316
- function rewriteVerifyAppUrlForLocalConnect(partnerLoginLink, localOrigin) {
317
- if (!partnerLoginLink || !localOrigin) {
318
- return partnerLoginLink;
319
- }
320
- let local;
321
- try {
322
- local = new URL(localOrigin);
323
- } catch {
261
+ var DEFAULT_LOCAL_VERIFY_ORIGIN = "http://localhost:3000";
262
+ var REMOTE_VERIFY_ORIGINS = [
263
+ "https://verifyapp-staging.withbenji.com",
264
+ "https://verifyapp-dev.withbenji.com"
265
+ ];
266
+ function rewriteVerifyAppUrlForLocalConnect(partnerLoginLink, localOrigin = DEFAULT_LOCAL_VERIFY_ORIGIN) {
267
+ if (!partnerLoginLink) {
324
268
  return partnerLoginLink;
325
269
  }
326
- if (VERIFYAPP_HOST.test(local.hostname)) {
327
- return partnerLoginLink;
270
+ let url = partnerLoginLink;
271
+ for (const remote of REMOTE_VERIFY_ORIGINS) {
272
+ url = url.replaceAll(remote, localOrigin);
273
+ url = url.replaceAll(
274
+ remote.replace(/^https:\/\//, "https%3A//"),
275
+ localOrigin.replace(/^http:\/\//, "http%3A//")
276
+ );
277
+ url = url.replaceAll(encodeURIComponent(remote), encodeURIComponent(localOrigin));
328
278
  }
329
- let result = rewriteVerifyAppHostsInString(partnerLoginLink, local);
330
- result = rewriteParsedUrl(result, local);
331
- return result;
279
+ return url;
332
280
  }
333
281
 
334
282
  // src/utils/loginTransport.ts
335
- function isIosSafari(userAgent, maxTouchPoints) {
336
- const isIos = /iPhone|iPad|iPod/.test(userAgent) || userAgent.includes("Macintosh") && maxTouchPoints > 1;
337
- const isSafari = /Safari/.test(userAgent) && !/CriOS|FxiOS|EdgiOS|OPiOS|Chrome/.test(userAgent);
338
- return isIos && isSafari;
283
+ function isIosDevice(userAgent, maxTouchPoints) {
284
+ return /iPhone|iPad|iPod/.test(userAgent) || userAgent.includes("Macintosh") && maxTouchPoints > 1;
339
285
  }
340
286
  function shouldUseSameTabLogin(args) {
341
287
  if (!args.isNonDummyLogin) return false;
342
288
  if (args.forceRedirect) return true;
343
- return isIosSafari(args.userAgent, args.maxTouchPoints);
289
+ return isIosDevice(args.userAgent, args.maxTouchPoints);
344
290
  }
345
291
  function isNonDummyLogin(mode, authType) {
346
292
  return mode === 5 /* LOGIN */ && authType != null && authType !== 0 /* DUMMY */;
@@ -442,10 +388,10 @@ var ConnectSDK = (() => {
442
388
  args.returnOrigin
443
389
  );
444
390
  }
445
- if (!args.rewriteForLocalConnect || !args.localVerifyOrigin) {
391
+ if (!args.rewriteForLocalConnect) {
446
392
  return prepared;
447
393
  }
448
- return rewriteVerifyAppUrlForLocalConnect(prepared, args.localVerifyOrigin);
394
+ return rewriteVerifyAppUrlForLocalConnect(prepared);
449
395
  }
450
396
 
451
397
  // src/utils/placement.ts
@@ -1610,13 +1556,11 @@ var ConnectSDK = (() => {
1610
1556
  return;
1611
1557
  }
1612
1558
  const rewriteForLocalConnect = Environment === "local" /* LOCAL */;
1613
- const localVerifyOrigin = rewriteForLocalConnect ? new URL(Endpoints.benji_connect_auth_url).origin : void 0;
1614
1559
  const returnOrigin = window.location.origin;
1615
1560
  const url = buildSameTabPartnerAuthUrl({
1616
1561
  partnerAuthLink,
1617
1562
  configToken: (_d = this.sdkConfig.tokenData) == null ? void 0 : _d.configToken,
1618
1563
  rewriteForLocalConnect,
1619
- localVerifyOrigin,
1620
1564
  returnOrigin
1621
1565
  });
1622
1566
  try {
@@ -1680,7 +1624,8 @@ var ConnectSDK = (() => {
1680
1624
  const partnerAuthLink = (_a = this.sdkConfig.tokenData) == null ? void 0 : _a.partnerAuthLink;
1681
1625
  const configToken = (_b = this.sdkConfig.tokenData) == null ? void 0 : _b.configToken;
1682
1626
  const preparedLink = partnerAuthLink && configToken ? preparePartnerAuthUrl(partnerAuthLink, configToken) : partnerAuthLink;
1683
- const popupUrl = preparedLink ? appendLoginPopupFlag(preparedLink) : "about:blank";
1627
+ const popupLink = preparedLink && Environment === "local" /* LOCAL */ ? rewriteVerifyAppUrlForLocalConnect(preparedLink) : preparedLink;
1628
+ const popupUrl = popupLink ? appendLoginPopupFlag(popupLink) : "about:blank";
1684
1629
  this.loginPopup = window.open(
1685
1630
  popupUrl,
1686
1631
  LOGIN_PARTNER_POPUP_NAME,
@@ -1696,7 +1641,7 @@ var ConnectSDK = (() => {
1696
1641
  );
1697
1642
  return false;
1698
1643
  }
1699
- if (preparedLink) {
1644
+ if (popupLink) {
1700
1645
  this.hasLoginPopupUrl = true;
1701
1646
  } else {
1702
1647
  writeLoginPopupLoadingDocument(this.loginPopup);