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.
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,
});
}
});
};