@metamask/connect-multichain 0.11.0 → 0.12.0

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 (39) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/LICENSE +18 -20
  3. package/dist/browser/es/connect-multichain.d.mts +3 -0
  4. package/dist/browser/es/connect-multichain.mjs +25 -35
  5. package/dist/browser/es/connect-multichain.mjs.map +1 -1
  6. package/dist/browser/es/metafile-esm.json +1 -1
  7. package/dist/browser/iife/connect-multichain.d.ts +3 -0
  8. package/dist/browser/iife/connect-multichain.js +25 -35
  9. package/dist/browser/iife/connect-multichain.js.map +1 -1
  10. package/dist/browser/iife/metafile-iife.json +1 -1
  11. package/dist/browser/umd/connect-multichain.d.ts +3 -0
  12. package/dist/browser/umd/connect-multichain.js +25 -35
  13. package/dist/browser/umd/connect-multichain.js.map +1 -1
  14. package/dist/browser/umd/metafile-cjs.json +1 -1
  15. package/dist/node/cjs/connect-multichain.d.ts +3 -0
  16. package/dist/node/cjs/connect-multichain.js +25 -35
  17. package/dist/node/cjs/connect-multichain.js.map +1 -1
  18. package/dist/node/cjs/metafile-cjs.json +1 -1
  19. package/dist/node/es/connect-multichain.d.mts +3 -0
  20. package/dist/node/es/connect-multichain.mjs +25 -35
  21. package/dist/node/es/connect-multichain.mjs.map +1 -1
  22. package/dist/node/es/metafile-esm.json +1 -1
  23. package/dist/react-native/es/connect-multichain.d.mts +3 -0
  24. package/dist/react-native/es/connect-multichain.mjs +25 -35
  25. package/dist/react-native/es/connect-multichain.mjs.map +1 -1
  26. package/dist/react-native/es/metafile-esm.json +1 -1
  27. package/dist/src/domain/multichain/types.d.ts +3 -0
  28. package/dist/src/domain/multichain/types.d.ts.map +1 -1
  29. package/dist/src/domain/platform/index.js +9 -10
  30. package/dist/src/domain/platform/index.js.map +1 -1
  31. package/dist/src/multichain/index.d.ts.map +1 -1
  32. package/dist/src/multichain/index.js +17 -24
  33. package/dist/src/multichain/index.js.map +1 -1
  34. package/dist/src/multichain/transports/mwp/index.d.ts +1 -0
  35. package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -1
  36. package/dist/src/multichain/transports/mwp/index.js +1 -1
  37. package/dist/src/multichain/transports/mwp/index.js.map +1 -1
  38. package/dist/types/connect-multichain.d.ts +3 -0
  39. package/package.json +5 -7
@@ -393,6 +393,9 @@ type ConnectionRequest = {
393
393
  version: string;
394
394
  platform: PlatformType;
395
395
  };
396
+ analytics?: {
397
+ remote_session_id: string;
398
+ };
396
399
  };
397
400
  };
398
401
  /**
@@ -526,26 +526,21 @@ var init_multichain = __esm({
526
526
 
527
527
  // src/domain/platform/index.ts
528
528
  function isNotBrowser() {
529
- var _a3;
530
529
  if (typeof window === "undefined") {
531
530
  return true;
532
531
  }
533
532
  if (!(window == null ? void 0 : window.navigator)) {
534
533
  return true;
535
534
  }
536
- if (typeof global !== "undefined" && ((_a3 = global == null ? void 0 : global.navigator) == null ? void 0 : _a3.product) === "ReactNative") {
537
- return true;
538
- }
539
535
  return (navigator == null ? void 0 : navigator.product) === "ReactNative";
540
536
  }
541
537
  function isReactNative() {
542
- var _a3;
543
- const hasWindowNavigator = typeof window !== "undefined" && window.navigator !== void 0;
544
- const nav = hasWindowNavigator ? window.navigator : void 0;
545
- if (!nav) {
546
- return false;
538
+ var _a3, _b;
539
+ if (typeof global !== "undefined" && ((_a3 = global == null ? void 0 : global.navigator) == null ? void 0 : _a3.product) === "ReactNative") {
540
+ return true;
547
541
  }
548
- return hasWindowNavigator && ((_a3 = window.navigator) == null ? void 0 : _a3.product) === "ReactNative";
542
+ const hasWindowNavigator = typeof window !== "undefined" && window.navigator !== void 0;
543
+ return hasWindowNavigator && ((_b = window.navigator) == null ? void 0 : _b.product) === "ReactNative";
549
544
  }
550
545
  function isMetaMaskMobileWebView() {
551
546
  return typeof window !== "undefined" && // @ts-expect-error ReactNativeWebView should be defined
@@ -2302,7 +2297,7 @@ var MWPTransport = class {
2302
2297
  walletSession,
2303
2298
  proposedCaipAccountIds
2304
2299
  );
2305
- if (!hasSameScopesAndAccounts) {
2300
+ if (options.forceRequest || !hasSameScopesAndAccounts) {
2306
2301
  const optionalScopes = addValidAccounts(
2307
2302
  getOptionalScopes((_d = options == null ? void 0 : options.scopes) != null ? _d : []),
2308
2303
  getValidAccounts((_e = options == null ? void 0 : options.caipAccountIds) != null ? _e : [])
@@ -2785,7 +2780,7 @@ var keymanager = new KeyManager();
2785
2780
  init_utils2();
2786
2781
  var logger2 = createLogger("metamask-sdk:core");
2787
2782
  var SINGLETON_KEY = "__METAMASK_CONNECT_MULTICHAIN_SINGLETON__";
2788
- var _a2, _provider, _providerTransportWrapper, _transport2, _dappClient, _beforeUnloadListener, _listener, _sdkInfo, _MetaMaskConnectMultichain_instances, setupAnalytics_fn, onTransportNotification_fn, getStoredTransport_fn, setupTransport_fn, init_fn2, createDappClient_fn, setupMWP_fn, onBeforeUnload_fn, createBeforeUnloadListener_fn, renderInstallModalAsync_fn, showInstallModal_fn, headlessConnect_fn, setupDefaultTransport_fn, deeplinkConnect_fn, handleConnection_fn, getCaipSession_fn, openConnectDeeplinkIfNeeded_fn;
2783
+ var _a2, _provider, _providerTransportWrapper, _transport2, _dappClient, _beforeUnloadListener, _listener, _anonId, _sdkInfo, _MetaMaskConnectMultichain_instances, setupAnalytics_fn, onTransportNotification_fn, getStoredTransport_fn, setupTransport_fn, buildConnectionMetadata_fn, init_fn2, createDappClient_fn, setupMWP_fn, onBeforeUnload_fn, createBeforeUnloadListener_fn, renderInstallModalAsync_fn, showInstallModal_fn, headlessConnect_fn, setupDefaultTransport_fn, deeplinkConnect_fn, handleConnection_fn, getCaipSession_fn, openConnectDeeplinkIfNeeded_fn;
2789
2784
  var _MetaMaskConnectMultichain = class _MetaMaskConnectMultichain extends MultichainCore {
2790
2785
  constructor(options) {
2791
2786
  var _a3, _b, _c, _d, _e, _f;
@@ -2803,7 +2798,7 @@ var _MetaMaskConnectMultichain = class _MetaMaskConnectMultichain extends Multic
2803
2798
  versions: __spreadValues({
2804
2799
  // typeof guard needed: Metro (React Native) bundles TS source directly,
2805
2800
  // bypassing the tsup build that substitutes __PACKAGE_VERSION__.
2806
- "connect-multichain": false ? "unknown" : "0.11.0"
2801
+ "connect-multichain": false ? "unknown" : "0.12.0"
2807
2802
  }, (_f = options.versions) != null ? _f : {})
2808
2803
  });
2809
2804
  super(allOptions);
@@ -2815,6 +2810,7 @@ var _MetaMaskConnectMultichain = class _MetaMaskConnectMultichain extends Multic
2815
2810
  __privateAdd(this, _beforeUnloadListener);
2816
2811
  this._status = "pending";
2817
2812
  __privateAdd(this, _listener);
2813
+ __privateAdd(this, _anonId);
2818
2814
  __privateAdd(this, _sdkInfo, `Sdk/Javascript SdkVersion/${getVersion()} Platform/${getPlatformType()} dApp/${(_a2 = this.options.dapp.url) != null ? _a2 : this.options.dapp.name} dAppTitle/${this.options.dapp.name}`);
2819
2815
  __privateSet(this, _providerTransportWrapper, new MultichainApiClientWrapperTransport(
2820
2816
  this
@@ -3074,6 +3070,7 @@ _transport2 = new WeakMap();
3074
3070
  _dappClient = new WeakMap();
3075
3071
  _beforeUnloadListener = new WeakMap();
3076
3072
  _listener = new WeakMap();
3073
+ _anonId = new WeakMap();
3077
3074
  _sdkInfo = new WeakMap();
3078
3075
  _MetaMaskConnectMultichain_instances = new WeakSet();
3079
3076
  setupAnalytics_fn = function() {
@@ -3087,6 +3084,7 @@ setupAnalytics_fn = function() {
3087
3084
  }
3088
3085
  const dappId = getDappId(this.options.dapp);
3089
3086
  const anonId = yield this.storage.getAnonId();
3087
+ __privateSet(this, _anonId, anonId);
3090
3088
  const { integrationType } = (_a3 = this.options.analytics) != null ? _a3 : {
3091
3089
  integrationType: ""
3092
3090
  };
@@ -3181,6 +3179,16 @@ setupTransport_fn = function() {
3181
3179
  }
3182
3180
  });
3183
3181
  };
3182
+ buildConnectionMetadata_fn = function() {
3183
+ const metadata = {
3184
+ dapp: this.options.dapp,
3185
+ sdk: { version: getVersion(), platform: getPlatformType() }
3186
+ };
3187
+ if (__privateGet(this, _anonId)) {
3188
+ metadata.analytics = { remote_session_id: __privateGet(this, _anonId) };
3189
+ }
3190
+ return metadata;
3191
+ };
3184
3192
  init_fn2 = function() {
3185
3193
  return __async(this, null, function* () {
3186
3194
  try {
@@ -3261,13 +3269,7 @@ renderInstallModalAsync_fn = function(desktopPreferred, scopes, caipAccountIds,
3261
3269
  (sessionRequest) => {
3262
3270
  _resolve({
3263
3271
  sessionRequest,
3264
- metadata: {
3265
- dapp: this.options.dapp,
3266
- sdk: {
3267
- version: getVersion(),
3268
- platform: getPlatformType()
3269
- }
3270
- }
3272
+ metadata: __privateMethod(this, _MetaMaskConnectMultichain_instances, buildConnectionMetadata_fn).call(this)
3271
3273
  });
3272
3274
  }
3273
3275
  );
@@ -3342,13 +3344,7 @@ headlessConnect_fn = function(scopes, caipAccountIds, sessionProperties) {
3342
3344
  (sessionRequest) => {
3343
3345
  const connectionRequest = {
3344
3346
  sessionRequest,
3345
- metadata: {
3346
- dapp: this.options.dapp,
3347
- sdk: {
3348
- version: getVersion(),
3349
- platform: getPlatformType()
3350
- }
3351
- }
3347
+ metadata: __privateMethod(this, _MetaMaskConnectMultichain_instances, buildConnectionMetadata_fn).call(this)
3352
3348
  };
3353
3349
  const deeplink = this.options.ui.factory.createConnectionDeeplink(connectionRequest);
3354
3350
  this.emit("display_uri", deeplink);
@@ -3421,10 +3417,7 @@ deeplinkConnect_fn = function(scopes, caipAccountIds, sessionProperties) {
3421
3417
  var _a3;
3422
3418
  const connectionRequest = {
3423
3419
  sessionRequest,
3424
- metadata: {
3425
- dapp: this.options.dapp,
3426
- sdk: { version: getVersion(), platform: getPlatformType() }
3427
- }
3420
+ metadata: __privateMethod(this, _MetaMaskConnectMultichain_instances, buildConnectionMetadata_fn).call(this)
3428
3421
  };
3429
3422
  const deeplink = this.options.ui.factory.createConnectionDeeplink(
3430
3423
  connectionRequest
@@ -3532,10 +3525,7 @@ openConnectDeeplinkIfNeeded_fn = function() {
3532
3525
  }
3533
3526
  const connectionRequest = {
3534
3527
  sessionRequest: storedSessionRequest,
3535
- metadata: {
3536
- dapp: this.options.dapp,
3537
- sdk: { version: getVersion(), platform: getPlatformType() }
3538
- }
3528
+ metadata: __privateMethod(this, _MetaMaskConnectMultichain_instances, buildConnectionMetadata_fn).call(this)
3539
3529
  };
3540
3530
  const deeplink = this.options.ui.factory.createConnectionDeeplink(connectionRequest);
3541
3531
  const universalLink = this.options.ui.factory.createConnectionUniversalLink(connectionRequest);