All entries

October 14, 2026

962faac5322b05678eb88159fa7c0a9c0a46fa70cde3a4688794410edb1428b5
Previous: 25da58b4 Bundle: 98.9 KB

The user module now returns the user's locale and syncs it into api.config; link click interception is narrowed.

Highlights

  • The user() API result now includes a locale field taken from the user data.
  • The user module now calls user() at startup and updates api.config.locale when the user's locale differs.
  • api.config is replaced with a frozen copy carrying the user's locale, so config.locale can change after initialization.
  • The link click interceptor now only runs its handler for _blank links to http/https URLs when certain conditions hold, changing how external links open.
  • The Shopify protocols version was bumped from 0.40.0 to 0.40.1.
3 files changed +22 -11

Infrastructure Changes

REPORT.md
+4 -4
@@ -1,6 +1,6 @@
# Shopify App Bridge — Unminification Report

Generated: 2026-10-10T08:03:46.944Z
Generated: 2026-10-14T08:03:37.784Z

## Files

@@ -8,7 +8,7 @@ Generated: 2026-10-10T08:03:46.944Z
|------|------|-------|------|
| _bootstrap.js | 30.7KB | 1071 | Infrastructure |
| _remote-ui.js | 6.4KB | 267 | Infrastructure |
| _utilities.js | 78.1KB | 2930 | Infrastructure |
| _utilities.js | 78.2KB | 2932 | Infrastructure |
| _web-vitals.js | 11.6KB | 527 | Infrastructure |
| analytics.js | 211B | 11 | Module |
| app-modal.js | 1.2KB | 60 | Module |
@@ -44,10 +44,10 @@ Generated: 2026-10-10T08:03:46.944Z
| tools.js | 2.1KB | 75 | Module |
| ui-modal.js | 153B | 10 | Module |
| ui-nav-menu.js | 164B | 10 | Module |
| user.js | 940B | 37 | Module |
| user.js | 1.1KB | 46 | Module |
| visibility.js | 973B | 34 | Module |
| web-vitals.js | 1.9KB | 66 | Module |
| **Total** | **184.7KB** | **7033** | |
| **Total** | **185.1KB** | **7044** | |

## Pipeline Stages


modules/_utilities.js
+9 -7
@@ -722,7 +722,7 @@ function It(t = false) {
  };
}
It(true);
const SHOPIFY_PROTOCOLS = '0.40.0+879d610b';
const SHOPIFY_PROTOCOLS = '0.40.1+89608b2f';
const Mt = Symbol();
function safeAsyncCall(t, n, e) {
  const i = t[n];
@@ -1098,12 +1098,14 @@ const fn = ({ internalApiPromise, saveBarManager, rpcEventTarget }) => {
          t.preventDefault();
          return void t.stopImmediatePropagation();
        }
        en(e, (t) => {
        if (o !== '_blank' || (a !== 'https:' && a !== 'http:') || C() || I()) {
          if (u(i, o, r)) {
          en(e, (t) => {
            t.preventDefault();
            if (u(i, o, r)) {
            t.stopImmediatePropagation();
              t.preventDefault();
          }
              t.stopImmediatePropagation();
        });
            }
          });
        }
      }
    },
    true,

Module Changes

modules/user.js
+9 -0
@@ -24,6 +24,7 @@ const userModule = ({ api, protocol, internalApiPromise }) => {
                email: i.email,
                accountAccess: i.accountAccess,
                accountType: i.accountType || i.userType,
                locale: i.locale,
              };
              t(o);
            },
@@ -33,4 +34,12 @@ const userModule = ({ api, protocol, internalApiPromise }) => {
          );
        });
  };
  api.user().then((n) => {
    if (n?.locale && api.config.locale !== n.locale) {
      api.config = Object.freeze({
        ...api.config,
        locale: n.locale,
      });
    }
  });
};