@multiplatform.one/web3 7.24.0 → 7.26.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.
- package/README.md +33 -0
- package/dist/cjs/bridge/AuthBridge.cjs +124 -0
- package/dist/cjs/bridge/AuthBridge.native.js +186 -0
- package/dist/cjs/bridge/AuthBridge.native.js.map +1 -0
- package/dist/cjs/bridge/BridgeClient.cjs +12 -9
- package/dist/cjs/bridge/BridgeClient.native.js +17 -12
- package/dist/cjs/bridge/BridgeClient.native.js.map +1 -1
- package/dist/cjs/bridge/BridgeHost.cjs +11 -3
- package/dist/cjs/bridge/BridgeHost.native.js +11 -3
- package/dist/cjs/bridge/BridgeHost.native.js.map +1 -1
- package/dist/cjs/bridge/GpgBridge.cjs +61 -0
- package/dist/cjs/bridge/GpgBridge.native.js +111 -0
- package/dist/cjs/bridge/GpgBridge.native.js.map +1 -0
- package/dist/cjs/bridge/SuiBridge.cjs +51 -0
- package/dist/cjs/bridge/SuiBridge.native.js +99 -0
- package/dist/cjs/bridge/SuiBridge.native.js.map +1 -0
- package/dist/cjs/bridge/authTypes.cjs +28 -0
- package/dist/cjs/bridge/authTypes.native.js +31 -0
- package/dist/cjs/bridge/authTypes.native.js.map +1 -0
- package/dist/cjs/bridge/core.cjs +65 -0
- package/dist/cjs/bridge/core.native.js +68 -0
- package/dist/cjs/bridge/core.native.js.map +1 -0
- package/dist/cjs/bridge/hosting.cjs +91 -0
- package/dist/cjs/bridge/hosting.native.js +117 -0
- package/dist/cjs/bridge/hosting.native.js.map +1 -0
- package/dist/cjs/bridge/index.cjs +3 -17
- package/dist/cjs/bridge/index.native.js +2 -16
- package/dist/cjs/bridge/index.native.js.map +1 -1
- package/dist/cjs/bridge/nativeHost.cjs +91 -0
- package/dist/cjs/bridge/nativeHost.native.js +118 -0
- package/dist/cjs/bridge/nativeHost.native.js.map +1 -0
- package/dist/cjs/bridge/protocol.cjs +30 -1
- package/dist/cjs/bridge/protocol.native.js +147 -1
- package/dist/cjs/bridge/protocol.native.js.map +1 -1
- package/dist/cjs/core/family.cjs +88 -0
- package/dist/cjs/core/family.native.js +115 -0
- package/dist/cjs/core/family.native.js.map +1 -0
- package/dist/cjs/core/index.cjs +41 -0
- package/dist/cjs/core/index.native.js +44 -0
- package/dist/cjs/core/index.native.js.map +1 -0
- package/dist/cjs/core/message.cjs +89 -0
- package/dist/cjs/core/message.native.js +104 -0
- package/dist/cjs/core/message.native.js.map +1 -0
- package/dist/cjs/core/names.cjs +51 -0
- package/dist/cjs/core/names.native.js +95 -0
- package/dist/cjs/core/names.native.js.map +1 -0
- package/dist/cjs/core/react.cjs +48 -0
- package/dist/cjs/core/react.native.js +52 -0
- package/dist/cjs/core/react.native.js.map +1 -0
- package/dist/cjs/core/store.cjs +450 -0
- package/dist/cjs/core/store.native.js +637 -0
- package/dist/cjs/core/store.native.js.map +1 -0
- package/dist/cjs/core/types.cjs +18 -0
- package/dist/cjs/core/types.native.js +21 -0
- package/dist/cjs/core/types.native.js.map +1 -0
- package/dist/cjs/index.cjs +3 -1
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/providers/WalletProvider.cjs +2 -0
- package/dist/cjs/providers/WalletProvider.native.js +123 -90
- package/dist/cjs/providers/WalletProvider.native.js.map +1 -1
- package/dist/cjs/providers/index.cjs +1 -0
- package/dist/cjs/providers/index.native.js +1 -0
- package/dist/cjs/providers/index.native.js.map +1 -1
- package/dist/cjs/providers/native/deepLink.cjs +40 -23
- package/dist/cjs/providers/native/deepLink.native.js +43 -25
- package/dist/cjs/providers/native/deepLink.native.js.map +1 -1
- package/dist/cjs/providers/native/inject.cjs +2 -4
- package/dist/cjs/providers/native/inject.native.js +2 -4
- package/dist/cjs/providers/native/inject.native.js.map +1 -1
- package/dist/cjs/providers/walletBridge.cjs +35 -0
- package/dist/cjs/providers/walletBridge.native.js +38 -0
- package/dist/cjs/providers/walletBridge.native.js.map +1 -0
- package/dist/cjs/providers/walletConfig.native.js.map +1 -1
- package/dist/esm/bridge/AuthBridge.mjs +99 -0
- package/dist/esm/bridge/AuthBridge.mjs.map +1 -0
- package/dist/esm/bridge/AuthBridge.native.js +158 -0
- package/dist/esm/bridge/AuthBridge.native.js.map +1 -0
- package/dist/esm/bridge/BridgeClient.mjs +13 -10
- package/dist/esm/bridge/BridgeClient.mjs.map +1 -1
- package/dist/esm/bridge/BridgeClient.native.js +18 -13
- package/dist/esm/bridge/BridgeClient.native.js.map +1 -1
- package/dist/esm/bridge/BridgeHost.mjs +12 -4
- package/dist/esm/bridge/BridgeHost.mjs.map +1 -1
- package/dist/esm/bridge/BridgeHost.native.js +12 -4
- package/dist/esm/bridge/BridgeHost.native.js.map +1 -1
- package/dist/esm/bridge/GpgBridge.mjs +36 -0
- package/dist/esm/bridge/GpgBridge.mjs.map +1 -0
- package/dist/esm/bridge/GpgBridge.native.js +83 -0
- package/dist/esm/bridge/GpgBridge.native.js.map +1 -0
- package/dist/esm/bridge/SuiBridge.mjs +26 -0
- package/dist/esm/bridge/SuiBridge.mjs.map +1 -0
- package/dist/esm/bridge/SuiBridge.native.js +71 -0
- package/dist/esm/bridge/SuiBridge.native.js.map +1 -0
- package/dist/esm/bridge/authTypes.mjs +3 -0
- package/dist/esm/bridge/authTypes.mjs.map +1 -0
- package/dist/esm/bridge/authTypes.native.js +3 -0
- package/dist/esm/bridge/authTypes.native.js.map +1 -0
- package/dist/esm/bridge/core.mjs +17 -0
- package/dist/esm/bridge/core.mjs.map +1 -0
- package/dist/esm/bridge/core.native.js +17 -0
- package/dist/esm/bridge/core.native.js.map +1 -0
- package/dist/esm/bridge/hosting.mjs +62 -0
- package/dist/esm/bridge/hosting.mjs.map +1 -0
- package/dist/esm/bridge/hosting.native.js +85 -0
- package/dist/esm/bridge/hosting.native.js.map +1 -0
- package/dist/esm/bridge/index.mjs +2 -9
- package/dist/esm/bridge/index.mjs.map +1 -1
- package/dist/esm/bridge/index.native.js +2 -9
- package/dist/esm/bridge/index.native.js.map +1 -1
- package/dist/esm/bridge/nativeHost.mjs +65 -0
- package/dist/esm/bridge/nativeHost.mjs.map +1 -0
- package/dist/esm/bridge/nativeHost.native.js +89 -0
- package/dist/esm/bridge/nativeHost.native.js.map +1 -0
- package/dist/esm/bridge/protocol.mjs +28 -2
- package/dist/esm/bridge/protocol.mjs.map +1 -1
- package/dist/esm/bridge/protocol.native.js +145 -2
- package/dist/esm/bridge/protocol.native.js.map +1 -1
- package/dist/esm/core/family.mjs +62 -0
- package/dist/esm/core/family.mjs.map +1 -0
- package/dist/esm/core/family.native.js +86 -0
- package/dist/esm/core/family.native.js.map +1 -0
- package/dist/esm/core/index.mjs +7 -0
- package/dist/esm/core/index.mjs.map +1 -0
- package/dist/esm/core/index.native.js +7 -0
- package/dist/esm/core/index.native.js.map +1 -0
- package/dist/esm/core/message.mjs +63 -0
- package/dist/esm/core/message.mjs.map +1 -0
- package/dist/esm/core/message.native.js +75 -0
- package/dist/esm/core/message.native.js.map +1 -0
- package/dist/esm/core/names.mjs +25 -0
- package/dist/esm/core/names.mjs.map +1 -0
- package/dist/esm/core/names.native.js +66 -0
- package/dist/esm/core/names.native.js.map +1 -0
- package/dist/esm/core/react.mjs +21 -0
- package/dist/esm/core/react.mjs.map +1 -0
- package/dist/esm/core/react.native.js +22 -0
- package/dist/esm/core/react.native.js.map +1 -0
- package/dist/esm/core/store.mjs +424 -0
- package/dist/esm/core/store.mjs.map +1 -0
- package/dist/esm/core/store.native.js +608 -0
- package/dist/esm/core/store.native.js.map +1 -0
- package/dist/esm/core/types.mjs +2 -0
- package/dist/esm/core/types.mjs.map +1 -0
- package/dist/esm/core/types.native.js +2 -0
- package/dist/esm/core/types.native.js.map +1 -0
- package/dist/esm/index.mjs +3 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/providers/WalletProvider.mjs +2 -1
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/providers/WalletProvider.native.js +125 -93
- package/dist/esm/providers/WalletProvider.native.js.map +1 -1
- package/dist/esm/providers/index.mjs +2 -2
- package/dist/esm/providers/index.mjs.map +1 -1
- package/dist/esm/providers/index.native.js +2 -2
- package/dist/esm/providers/index.native.js.map +1 -1
- package/dist/esm/providers/native/deepLink.mjs +36 -24
- package/dist/esm/providers/native/deepLink.mjs.map +1 -1
- package/dist/esm/providers/native/deepLink.native.js +39 -26
- package/dist/esm/providers/native/deepLink.native.js.map +1 -1
- package/dist/esm/providers/native/inject.mjs +1 -3
- package/dist/esm/providers/native/inject.mjs.map +1 -1
- package/dist/esm/providers/native/inject.native.js +1 -3
- package/dist/esm/providers/native/inject.native.js.map +1 -1
- package/dist/esm/providers/walletBridge.mjs +9 -0
- package/dist/esm/providers/walletBridge.mjs.map +1 -0
- package/dist/esm/providers/walletBridge.native.js +9 -0
- package/dist/esm/providers/walletBridge.native.js.map +1 -0
- package/dist/esm/providers/walletConfig.mjs.map +1 -1
- package/dist/esm/providers/walletConfig.native.js.map +1 -1
- package/dist/jsx/bridge/AuthBridge.mjs +99 -0
- package/dist/jsx/bridge/AuthBridge.mjs.map +1 -0
- package/dist/jsx/bridge/AuthBridge.native.js +186 -0
- package/dist/jsx/bridge/AuthBridge.native.js.map +1 -0
- package/dist/jsx/bridge/BridgeClient.mjs +13 -10
- package/dist/jsx/bridge/BridgeClient.mjs.map +1 -1
- package/dist/jsx/bridge/BridgeClient.native.js +17 -12
- package/dist/jsx/bridge/BridgeClient.native.js.map +1 -1
- package/dist/jsx/bridge/BridgeHost.mjs +12 -4
- package/dist/jsx/bridge/BridgeHost.mjs.map +1 -1
- package/dist/jsx/bridge/BridgeHost.native.js +11 -3
- package/dist/jsx/bridge/BridgeHost.native.js.map +1 -1
- package/dist/jsx/bridge/GpgBridge.mjs +36 -0
- package/dist/jsx/bridge/GpgBridge.mjs.map +1 -0
- package/dist/jsx/bridge/GpgBridge.native.js +111 -0
- package/dist/jsx/bridge/GpgBridge.native.js.map +1 -0
- package/dist/jsx/bridge/SuiBridge.mjs +26 -0
- package/dist/jsx/bridge/SuiBridge.mjs.map +1 -0
- package/dist/jsx/bridge/SuiBridge.native.js +99 -0
- package/dist/jsx/bridge/SuiBridge.native.js.map +1 -0
- package/dist/jsx/bridge/authTypes.mjs +3 -0
- package/dist/jsx/bridge/authTypes.mjs.map +1 -0
- package/dist/jsx/bridge/authTypes.native.js +31 -0
- package/dist/jsx/bridge/authTypes.native.js.map +1 -0
- package/dist/jsx/bridge/core.mjs +17 -0
- package/dist/jsx/bridge/core.mjs.map +1 -0
- package/dist/jsx/bridge/core.native.js +68 -0
- package/dist/jsx/bridge/core.native.js.map +1 -0
- package/dist/jsx/bridge/hosting.mjs +62 -0
- package/dist/jsx/bridge/hosting.mjs.map +1 -0
- package/dist/jsx/bridge/hosting.native.js +117 -0
- package/dist/jsx/bridge/hosting.native.js.map +1 -0
- package/dist/jsx/bridge/index.mjs +2 -9
- package/dist/jsx/bridge/index.mjs.map +1 -1
- package/dist/jsx/bridge/index.native.js +2 -16
- package/dist/jsx/bridge/index.native.js.map +1 -1
- package/dist/jsx/bridge/nativeHost.mjs +65 -0
- package/dist/jsx/bridge/nativeHost.mjs.map +1 -0
- package/dist/jsx/bridge/nativeHost.native.js +118 -0
- package/dist/jsx/bridge/nativeHost.native.js.map +1 -0
- package/dist/jsx/bridge/protocol.mjs +28 -2
- package/dist/jsx/bridge/protocol.mjs.map +1 -1
- package/dist/jsx/bridge/protocol.native.js +147 -1
- package/dist/jsx/bridge/protocol.native.js.map +1 -1
- package/dist/jsx/core/family.mjs +62 -0
- package/dist/jsx/core/family.mjs.map +1 -0
- package/dist/jsx/core/family.native.js +115 -0
- package/dist/jsx/core/family.native.js.map +1 -0
- package/dist/jsx/core/index.mjs +7 -0
- package/dist/jsx/core/index.mjs.map +1 -0
- package/dist/jsx/core/index.native.js +44 -0
- package/dist/jsx/core/index.native.js.map +1 -0
- package/dist/jsx/core/message.mjs +63 -0
- package/dist/jsx/core/message.mjs.map +1 -0
- package/dist/jsx/core/message.native.js +104 -0
- package/dist/jsx/core/message.native.js.map +1 -0
- package/dist/jsx/core/names.mjs +25 -0
- package/dist/jsx/core/names.mjs.map +1 -0
- package/dist/jsx/core/names.native.js +95 -0
- package/dist/jsx/core/names.native.js.map +1 -0
- package/dist/jsx/core/react.mjs +21 -0
- package/dist/jsx/core/react.mjs.map +1 -0
- package/dist/jsx/core/react.native.js +52 -0
- package/dist/jsx/core/react.native.js.map +1 -0
- package/dist/jsx/core/store.mjs +424 -0
- package/dist/jsx/core/store.mjs.map +1 -0
- package/dist/jsx/core/store.native.js +637 -0
- package/dist/jsx/core/store.native.js.map +1 -0
- package/dist/jsx/core/types.mjs +2 -0
- package/dist/jsx/core/types.mjs.map +1 -0
- package/dist/jsx/core/types.native.js +21 -0
- package/dist/jsx/core/types.native.js.map +1 -0
- package/dist/jsx/index.js +3 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +3 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +2 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/providers/WalletProvider.mjs +2 -1
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/providers/WalletProvider.native.js +123 -90
- package/dist/jsx/providers/WalletProvider.native.js.map +1 -1
- package/dist/jsx/providers/index.mjs +2 -2
- package/dist/jsx/providers/index.mjs.map +1 -1
- package/dist/jsx/providers/index.native.js +1 -0
- package/dist/jsx/providers/index.native.js.map +1 -1
- package/dist/jsx/providers/native/deepLink.mjs +36 -24
- package/dist/jsx/providers/native/deepLink.mjs.map +1 -1
- package/dist/jsx/providers/native/deepLink.native.js +43 -25
- package/dist/jsx/providers/native/deepLink.native.js.map +1 -1
- package/dist/jsx/providers/native/inject.mjs +1 -3
- package/dist/jsx/providers/native/inject.mjs.map +1 -1
- package/dist/jsx/providers/native/inject.native.js +2 -4
- package/dist/jsx/providers/native/inject.native.js.map +1 -1
- package/dist/jsx/providers/walletBridge.mjs +9 -0
- package/dist/jsx/providers/walletBridge.mjs.map +1 -0
- package/dist/jsx/providers/walletBridge.native.js +38 -0
- package/dist/jsx/providers/walletBridge.native.js.map +1 -0
- package/dist/jsx/providers/walletConfig.mjs.map +1 -1
- package/dist/jsx/providers/walletConfig.native.js.map +1 -1
- package/docs/bridge-protocol.md +485 -0
- package/package.json +14 -6
- package/src/bridge/AuthBridge.ts +146 -0
- package/src/bridge/BridgeClient.spec.ts +12 -0
- package/src/bridge/BridgeClient.ts +15 -10
- package/src/bridge/BridgeHost.spec.ts +20 -4
- package/src/bridge/BridgeHost.ts +16 -5
- package/src/bridge/GpgBridge.ts +49 -0
- package/src/bridge/SuiBridge.ts +34 -0
- package/src/bridge/authTypes.ts +76 -0
- package/src/bridge/core.ts +42 -0
- package/src/bridge/hosting.spec.ts +98 -0
- package/src/bridge/hosting.ts +99 -0
- package/src/bridge/index.ts +1 -8
- package/src/bridge/nativeHost.spec.ts +165 -0
- package/src/bridge/nativeHost.ts +120 -0
- package/src/bridge/protocol.spec.ts +24 -1
- package/src/bridge/protocol.ts +44 -1
- package/src/core/family.spec.ts +117 -0
- package/src/core/family.ts +103 -0
- package/src/core/imports.spec.ts +82 -0
- package/src/core/index.ts +47 -0
- package/src/core/message.spec.ts +178 -0
- package/src/core/message.ts +119 -0
- package/src/core/names.ts +29 -0
- package/src/core/react.spec.tsx +75 -0
- package/src/core/react.ts +34 -0
- package/src/core/store.spec.ts +890 -0
- package/src/core/store.ts +558 -0
- package/src/core/types.ts +96 -0
- package/src/index.ts +6 -0
- package/src/providers/WalletProvider.native.tsx +139 -85
- package/src/providers/WalletProvider.tsx +1 -1
- package/src/providers/index.ts +2 -0
- package/src/providers/native/deepLink.spec.ts +73 -1
- package/src/providers/native/deepLink.ts +76 -28
- package/src/providers/native/inject.ts +1 -9
- package/src/providers/walletBridge.ts +24 -0
- package/src/providers/walletConfig.ts +15 -1
- package/types/bridge/AuthBridge.d.ts +58 -0
- package/types/bridge/AuthBridge.d.ts.map +1 -0
- package/types/bridge/BridgeClient.d.ts +3 -1
- package/types/bridge/BridgeClient.d.ts.map +1 -1
- package/types/bridge/BridgeHost.d.ts +1 -1
- package/types/bridge/BridgeHost.d.ts.map +1 -1
- package/types/bridge/GpgBridge.d.ts +23 -0
- package/types/bridge/GpgBridge.d.ts.map +1 -0
- package/types/bridge/SuiBridge.d.ts +18 -0
- package/types/bridge/SuiBridge.d.ts.map +1 -0
- package/types/bridge/authTypes.d.ts +71 -0
- package/types/bridge/authTypes.d.ts.map +1 -0
- package/types/bridge/core.d.ts +16 -0
- package/types/bridge/core.d.ts.map +1 -0
- package/types/bridge/hosting.d.ts +34 -0
- package/types/bridge/hosting.d.ts.map +1 -0
- package/types/bridge/index.d.ts +1 -8
- package/types/bridge/index.d.ts.map +1 -1
- package/types/bridge/nativeHost.d.ts +55 -0
- package/types/bridge/nativeHost.d.ts.map +1 -0
- package/types/bridge/protocol.d.ts +34 -1
- package/types/bridge/protocol.d.ts.map +1 -1
- package/types/core/family.d.ts +44 -0
- package/types/core/family.d.ts.map +1 -0
- package/types/core/index.d.ts +7 -0
- package/types/core/index.d.ts.map +1 -0
- package/types/core/message.d.ts +44 -0
- package/types/core/message.d.ts.map +1 -0
- package/types/core/names.d.ts +7 -0
- package/types/core/names.d.ts.map +1 -0
- package/types/core/react.d.ts +14 -0
- package/types/core/react.d.ts.map +1 -0
- package/types/core/store.d.ts +64 -0
- package/types/core/store.d.ts.map +1 -0
- package/types/core/types.d.ts +88 -0
- package/types/core/types.d.ts.map +1 -0
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/providers/WalletProvider.d.ts +1 -0
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/providers/WalletProvider.native.d.ts +2 -1
- package/types/providers/WalletProvider.native.d.ts.map +1 -1
- package/types/providers/index.d.ts +1 -1
- package/types/providers/index.d.ts.map +1 -1
- package/types/providers/native/deepLink.d.ts +29 -4
- package/types/providers/native/deepLink.d.ts.map +1 -1
- package/types/providers/native/inject.d.ts +1 -7
- package/types/providers/native/inject.d.ts.map +1 -1
- package/types/providers/walletBridge.d.ts +17 -0
- package/types/providers/walletBridge.d.ts.map +1 -0
- package/types/providers/walletConfig.d.ts +18 -1
- package/types/providers/walletConfig.d.ts.map +1 -1
|
@@ -24,38 +24,56 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
24
24
|
}), mod);
|
|
25
25
|
var deepLink_exports = {};
|
|
26
26
|
__export(deepLink_exports, {
|
|
27
|
+
WALLET_SCHEMES: () => WALLET_SCHEMES,
|
|
28
|
+
WALLET_UNIVERSAL_HOSTS: () => WALLET_UNIVERSAL_HOSTS,
|
|
29
|
+
decideNavigation: () => decideNavigation,
|
|
30
|
+
decideNewWindow: () => decideNewWindow,
|
|
31
|
+
isUnderUrl: () => isUnderUrl,
|
|
27
32
|
parseWalletReturn: () => parseWalletReturn,
|
|
28
33
|
shouldOpenExternally: () => shouldOpenExternally
|
|
29
34
|
});
|
|
30
35
|
module.exports = __toCommonJS(deepLink_exports);
|
|
31
|
-
var
|
|
32
|
-
var
|
|
36
|
+
var import_hosting = require("../../bridge/hosting.native.js");
|
|
37
|
+
var WALLET_SCHEMES = ["ethereum", "metamask", "rainbow", "trust", "phantom", "solflare", "backpack", "solana", "cbwallet", "ledgerlive", "zerion", "rabby", "okx", "imtokenv2", "wallet"];
|
|
38
|
+
var WALLET_UNIVERSAL_HOSTS = ["metamask.app.link", "link.trustwallet.com", "phantom.app", "solflare.com", "backpack.app", "rnbwapp.com", "go.cb-w.com", "ledger.com"];
|
|
39
|
+
var OS_SCHEMES = /* @__PURE__ */new Set(["mailto", "tel", "sms"]);
|
|
33
40
|
function shouldOpenExternally(url) {
|
|
34
|
-
var
|
|
35
|
-
if (!
|
|
36
|
-
if (WALLET_SCHEMES.
|
|
37
|
-
if (scheme
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
var parsed = (0, import_hosting.parseOrigin)(url);
|
|
42
|
+
if (!parsed) return false;
|
|
43
|
+
if (WALLET_SCHEMES.includes(parsed.scheme)) return true;
|
|
44
|
+
if (parsed.scheme !== "https" && parsed.scheme !== "http") return false;
|
|
45
|
+
return WALLET_UNIVERSAL_HOSTS.some(function (h) {
|
|
46
|
+
return parsed.hostname === h || parsed.hostname.endsWith(`.${h}`);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function decideNavigation(url, pageOrigin) {
|
|
50
|
+
var isTopFrame = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
|
|
51
|
+
if (shouldOpenExternally(url)) return "external";
|
|
52
|
+
var parsed = (0, import_hosting.parseOrigin)(url);
|
|
53
|
+
if (!parsed) return "block";
|
|
54
|
+
if (!isTopFrame) return "load";
|
|
55
|
+
if (parsed.origin === pageOrigin) return "load";
|
|
56
|
+
if (url.trim().toLowerCase() === "about:blank") return "load";
|
|
57
|
+
if (parsed.scheme === "https" || parsed.scheme === "http" || OS_SCHEMES.has(parsed.scheme)) {
|
|
58
|
+
return "external";
|
|
46
59
|
}
|
|
47
|
-
return
|
|
60
|
+
return "block";
|
|
48
61
|
}
|
|
49
|
-
function
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
});
|
|
56
|
-
return out;
|
|
57
|
-
} catch (unused) {
|
|
58
|
-
return null;
|
|
62
|
+
function decideNewWindow(url) {
|
|
63
|
+
if (shouldOpenExternally(url)) return "external";
|
|
64
|
+
var parsed = (0, import_hosting.parseOrigin)(url);
|
|
65
|
+
if (!parsed) return "block";
|
|
66
|
+
if (parsed.scheme === "https" || parsed.scheme === "http" || OS_SCHEMES.has(parsed.scheme)) {
|
|
67
|
+
return "external";
|
|
59
68
|
}
|
|
69
|
+
return "block";
|
|
70
|
+
}
|
|
71
|
+
function parseWalletReturn(url) {
|
|
72
|
+
return (0, import_hosting.parseOrigin)(url) ? (0, import_hosting.queryParams)(url) : null;
|
|
73
|
+
}
|
|
74
|
+
function isUnderUrl(url, base) {
|
|
75
|
+
if (!base || !url.startsWith(base)) return false;
|
|
76
|
+
if (url.length === base.length || /[/?#]$/.test(base)) return true;
|
|
77
|
+
return "/?#".includes(url[base.length]);
|
|
60
78
|
}
|
|
61
79
|
//# sourceMappingURL=deepLink.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","deepLink_exports","__export","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","deepLink_exports","__export","WALLET_SCHEMES","WALLET_UNIVERSAL_HOSTS","decideNavigation","decideNewWindow","isUnderUrl","parseWalletReturn","shouldOpenExternally","module","exports","import_hosting","require","OS_SCHEMES","Set","url","parsed","parseOrigin","includes","scheme","some","h","hostname","endsWith","pageOrigin","isTopFrame","arguments","length","origin","trim","toLowerCase","has","queryParams"],"sources":["../../../../src/providers/native/deepLink.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,gBAAA;AAAAC,QAAA,CAAAD,gBAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,UAAA,EAAAA,CAAA,KAAAA,UAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAf,YAAyC,CAAAK,gBAAA;AAUlC,IAAAW,cAAM,GAAAC,OAAoC;AAAA,IAC/CV,cAAA,IACA,YACA,YACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,cACA,UACA,SACA,OACA,aACF,SAGO;AAAkD,IACvDC,sBAAA,IACA,qBACA,wBACA,eACA,gBACA,gBACA,eACA,eACF,aAEA;AAGO,IAAAU,UAAS,kBAAqB,IAAsBC,GAAA,EACzD,QAAM,EACN,KAAK,EACL,KAAI,CACJ;AACA,SAAON,qBAAAO,GAAuB;EAAA,IAC3BC,MAAM,OAAOL,cAAa,CAAAM,WAAY,EAAAF,GAAA;EACzC,KAAAC,MAAA;EACF,IAAAd,cAAA,CAAAgB,QAAA,CAAAF,MAAA,CAAAG,MAAA;EAYO,IAAAH,MAAS,CAAAG,MAAA,YAEd,IAAAH,MAAA,CAAAG,MACA,WAAa,SACO;EACpB,OAAIhB,sBAAwB,CAAGiB,IAAA,WAAOC,CAAA;IACtC,OAAML,MAAA,CAAAM,QAAS,KAAAD,CAAA,IAAAL,MAAA,CAAAM,QAAY,CAAGC,QAAA,KAAAF,CAAA;EAC9B;AACA;AACA,SAAIjB,gBAAkBA,CAAAW,GAAA,EAAAS,UAAY,EAAO;EACzC,IAAIC,UAAS,GAAEC,SAAA,CAAYC,MAAM,QAAAD,SAAe,QAAO,SAAAA,SAAA;EACvD,IAAIlB,oBAAkB,CAAAO,GAAA,UAAW,UAAO;EACtC,IAAAC,MAAO,OAAAL,cAAA,CAAAM,WAAA,EAAAF,GAAA;EACT,KAAAC,MAAA;EACA,KAAAS,UAAO;EACT,IAAAT,MAAA,CAAAY,MAAA,KAAAJ,UAAA;EAMO,IAAAT,GAAS,CAAAc,IAAA,GAAAC,WAAgB,EAAiC;EAC/D,IAAId,MAAA,CAAAG,MAAA,YAAwB,IAAGH,MAAO,CAAAG,MAAA,eAAAN,UAAA,CAAAkB,GAAA,CAAAf,MAAA,CAAAG,MAAA;IACtC,OAAM,UAAS;EACf;EACA,OAAI,OAAO;AACT;AAAO,SACTd,gBAAAU,GAAA;EACA,IAAAP,oBAAO,CAAAO,GAAA;EACT,IAAAC,MAAA,OAAAL,cAAA,CAAAM,WAAA,EAAAF,GAAA;EAGO,KAAAC,MAAS,gBAAkB;EAChC,IAAAA,MAAA,CAAOG,MAAA,gBAAAH,MAAY,CAAAG,MAAG,KAAI,UAAAN,UAAA,CAAAkB,GAAA,CAAAf,MAAe,CAAAG,MAAI;IAC/C;EAOO;EACL,OAAK,OAAS;AACd;AACA,SAAOZ,iBAAeA,CAAAQ,GAAI;EAC5B,WAAAJ,cAAA,CAAAM,WAAA,EAAAF,GAAA,QAAAJ,cAAA,CAAAqB,WAAA,EAAAjB,GAAA","ignoreList":[]}
|
|
@@ -23,12 +23,10 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
23
23
|
var inject_exports = {};
|
|
24
24
|
__export(inject_exports, {
|
|
25
25
|
buildConfigInjection: () => buildConfigInjection,
|
|
26
|
-
buildInjectScript: () => buildInjectScript
|
|
26
|
+
buildInjectScript: () => import_nativeHost.buildInjectScript
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(inject_exports);
|
|
29
|
-
|
|
30
|
-
return `window.__bridgeReceive && window.__bridgeReceive(${JSON.stringify(raw)});true;`;
|
|
31
|
-
}
|
|
29
|
+
var import_nativeHost = require("../../bridge/nativeHost.cjs");
|
|
32
30
|
function buildConfigInjection(config) {
|
|
33
31
|
return `window.__web3Config = ${JSON.stringify(config)};true;`;
|
|
34
32
|
}
|
|
@@ -25,12 +25,10 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
25
25
|
var inject_exports = {};
|
|
26
26
|
__export(inject_exports, {
|
|
27
27
|
buildConfigInjection: () => buildConfigInjection,
|
|
28
|
-
buildInjectScript: () => buildInjectScript
|
|
28
|
+
buildInjectScript: () => import_nativeHost.buildInjectScript
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(inject_exports);
|
|
31
|
-
|
|
32
|
-
return `window.__bridgeReceive && window.__bridgeReceive(${JSON.stringify(raw)});true;`;
|
|
33
|
-
}
|
|
31
|
+
var import_nativeHost = require("../../bridge/nativeHost.native.js");
|
|
34
32
|
function buildConfigInjection(config) {
|
|
35
33
|
return `window.__web3Config = ${JSON.stringify(config)};true;`;
|
|
36
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","inject_exports","__export","buildConfigInjection","buildInjectScript","module","exports","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","inject_exports","__export","buildConfigInjection","buildInjectScript","import_nativeHost","module","exports","require","config","JSON","stringify"],"sources":["../../../../src/providers/native/inject.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,cAAA;AAAAC,QAAA,CAAAD,cAAA;EAAAE,oBAAA,EAAAA,CAAA,KAAAA,oBAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD;AAAA;AAEAE,MAAA,CAAAC,OAAA,GAAAX,YAAkC,CAAAK,cAAA;AAO3B,IAAAI,iBAAS,GAAAG,OAAqB,oCAAuD;AAC1F,SAAOL,qBAAAM,MAAyB;EAClC,gCAAAC,IAAA,CAAAC,SAAA,CAAAF,MAAA","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var walletBridge_exports = {};
|
|
24
|
+
__export(walletBridge_exports, {
|
|
25
|
+
WalletBridgeContext: () => WalletBridgeContext,
|
|
26
|
+
useWalletBridge: () => useWalletBridge
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(walletBridge_exports);
|
|
29
|
+
var import_react = require("react");
|
|
30
|
+
const WalletBridgeContext = (0, import_react.createContext)(null);
|
|
31
|
+
function useWalletBridge() {
|
|
32
|
+
const value = (0, import_react.useContext)(WalletBridgeContext);
|
|
33
|
+
if (!value) throw new Error("useWalletBridge must be used within a native WalletProvider");
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var walletBridge_exports = {};
|
|
26
|
+
__export(walletBridge_exports, {
|
|
27
|
+
WalletBridgeContext: () => WalletBridgeContext,
|
|
28
|
+
useWalletBridge: () => useWalletBridge
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(walletBridge_exports);
|
|
31
|
+
var import_react = require("react");
|
|
32
|
+
var WalletBridgeContext = (0, import_react.createContext)(null);
|
|
33
|
+
function useWalletBridge() {
|
|
34
|
+
var value = (0, import_react.useContext)(WalletBridgeContext);
|
|
35
|
+
if (!value) throw new Error("useWalletBridge must be used within a native WalletProvider");
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=walletBridge.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","walletBridge_exports","__export","WalletBridgeContext","useWalletBridge","module","exports","import_react","require","createContext","useContext","Error"],"sources":["../../../src/providers/walletBridge.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAA0C,CAAAK,oBAAA;AAgBnC,IAAAM,YAAM,GAAAC,OAAA,QAAsB;AAG5B,IAAAL,mBAAS,IAA4C,GAAAI,YAAA,CAAAE,aAAA;AAC1D,SAAML,eAAQA,CAAA;EACd,IAAIJ,KAAC,GAAO,IAAAO,YAAgB,CAAAG,UAAA,EAAAP,mBAAA;EAC5B,KAAAH,KAAO,YAAAW,KAAA;EACT,OAAAX,KAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","walletConfig_exports","__export","Web3ConfigContext","defaultChains","resolveChains","useWeb3Config","module","exports","import_react","require","import_chains","mainnet","polygon","optimism","arbitrum","base","sepolia","config","chains","enableTestnets","localnet","localnetRpcUrl","active","filter","chain","testnet","length","local","hardhat","rpcUrls","default","http"],"sources":["../../../src/providers/walletConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAZ,YAA0C,CAAAK,oBAAA;AAE1C,IAAAQ,YAAA,GAAAC,OAA6E;
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","walletConfig_exports","__export","Web3ConfigContext","defaultChains","resolveChains","useWeb3Config","module","exports","import_react","require","import_chains","mainnet","polygon","optimism","arbitrum","base","sepolia","config","chains","enableTestnets","localnet","localnetRpcUrl","active","filter","chain","testnet","length","local","hardhat","rpcUrls","default","http"],"sources":["../../../src/providers/walletConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAZ,YAA0C,CAAAK,oBAAA;AAE1C,IAAAQ,YAAA,GAAAC,OAA6E;AAStE,IAAAC,aAAM,GAAAD,OAA8C;AAAA,IACzDN,aAAA,IACAO,aAAA,CAAAC,OAAA,EACAD,aAAA,CAAAE,OAAA,EACAF,aAAA,CAAAG,QAAA,EACAH,aAAA,CAAAI,QAAA,EACAJ,aAAA,CAAAK,IAAA,EACFL,aAAA,CAAAM,OAAA,CAmDO;AACL,SAAMZ,cAAAa,MAAA;EAAA,IACJ;IAAAC,MAAS,GAAAf,aAAA;IAAAgB,cAAA;IAAAC,QAAA;IAAAC;EAAA,IAAAJ,MAAA;EAAA,IACTK,MAAA,GAAAH,cAAiB,IACjB,GAAAD,MAAA,CAAW,GACXA,MAAA,CAAAK,MAAA,WAAAC,KAAA;IACF,OAAI,CAAAA,KAAA,CAAAC,OAAA;EACJ;EACA,IAAIH,MAAA,CAAOI,MAAA,KAAW,GAAGJ,MAAA,GAAS,CAClC,GAAIJ,MAAA,CACF;EAGA,IAAAE,QAAU;IACZ,IAAAO,KAAA,GAAAN,cAAA;MACA,GAAOX,aAAA,CAAAkB,OAAA;MACTC,OAAA;QAEaC,OAAA;UAEGC,IAAA,GACRV,cAAS;QAEb;MACF;IACA,IAAAX,aAAO,CAAAkB,OAAA;IACTN,MAAA,I","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { queryParams } from "./hosting.mjs";
|
|
2
|
+
import { BridgeErrorCode, BridgeRequestError } from "./protocol.mjs";
|
|
3
|
+
class AuthBridge {
|
|
4
|
+
constructor(bridge, options) {
|
|
5
|
+
this.bridge = bridge;
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
bridge;
|
|
9
|
+
options;
|
|
10
|
+
pending = null;
|
|
11
|
+
async signIn(params = {}, options = {}) {
|
|
12
|
+
const {
|
|
13
|
+
openOnboarding = true,
|
|
14
|
+
...request
|
|
15
|
+
} = options;
|
|
16
|
+
const onboarding = params.onboarding ?? this.options.defaults?.onboarding;
|
|
17
|
+
const keycloak = this.keycloak(params.keycloak);
|
|
18
|
+
const result = await this.bridge.request("auth", "signIn", {
|
|
19
|
+
family: params.family ?? "eth",
|
|
20
|
+
keycloak,
|
|
21
|
+
...(onboarding ? {
|
|
22
|
+
onboarding
|
|
23
|
+
} : {})
|
|
24
|
+
}, {
|
|
25
|
+
timeoutMs: this.options.signInTimeoutMs ?? 10 * 6e4,
|
|
26
|
+
...request
|
|
27
|
+
});
|
|
28
|
+
if (result.status !== "profile-incomplete") {
|
|
29
|
+
this.pending = null;
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
if (!isAuthorizationUrl(result.browserLogin?.url, keycloak)) {
|
|
33
|
+
throw new BridgeRequestError(BridgeErrorCode.internal, "auth.signIn: the page's browser login is not the realm's authorization endpoint");
|
|
34
|
+
}
|
|
35
|
+
this.pending = result.browserLogin;
|
|
36
|
+
if (!openOnboarding) return {
|
|
37
|
+
...result,
|
|
38
|
+
onboardingOpened: false
|
|
39
|
+
};
|
|
40
|
+
await this.options.openUrl(result.browserLogin.url);
|
|
41
|
+
return {
|
|
42
|
+
...result,
|
|
43
|
+
onboardingOpened: true
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
async refresh(params = {}) {
|
|
47
|
+
const res = await this.bridge.request("auth", "refresh", {
|
|
48
|
+
keycloak: this.keycloak(params.keycloak),
|
|
49
|
+
...(params.refreshToken ? {
|
|
50
|
+
refreshToken: params.refreshToken
|
|
51
|
+
} : {})
|
|
52
|
+
});
|
|
53
|
+
return res.tokens;
|
|
54
|
+
}
|
|
55
|
+
async logout(params = {}) {
|
|
56
|
+
await this.bridge.request("auth", "logout", {
|
|
57
|
+
keycloak: this.keycloak(params.keycloak),
|
|
58
|
+
...(params.refreshToken ? {
|
|
59
|
+
refreshToken: params.refreshToken
|
|
60
|
+
} : {})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/** The browser login the last `profile-incomplete` answer carried, until a sign-in succeeds. */
|
|
64
|
+
get pendingOnboarding() {
|
|
65
|
+
return this.pending;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* True when `url` is Keycloak sending the browser back from that onboarding
|
|
69
|
+
* (its `state` matches) with no `error`. A matching return, cancelled or
|
|
70
|
+
* not, ends the pending onboarding, so the same return never counts twice.
|
|
71
|
+
*/
|
|
72
|
+
isOnboardingReturn(url) {
|
|
73
|
+
if (this.pending === null) return false;
|
|
74
|
+
const params = queryParams(url);
|
|
75
|
+
if (params.state !== this.pending.state) return false;
|
|
76
|
+
this.pending = null;
|
|
77
|
+
return params.error === void 0;
|
|
78
|
+
}
|
|
79
|
+
/** `tokensChanged` fires whenever the page's tokens for a realm and client change. */
|
|
80
|
+
onTokensChanged(handler) {
|
|
81
|
+
return this.bridge.on((ns, method, params) => {
|
|
82
|
+
if (ns === "auth" && method === "tokensChanged") handler(params);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
keycloak(keycloak) {
|
|
86
|
+
const resolved = keycloak ?? this.options.defaults?.keycloak;
|
|
87
|
+
if (!resolved) {
|
|
88
|
+
throw new BridgeRequestError(BridgeErrorCode.invalidParams, "auth: pass keycloak { baseUrl, realm, clientId } or set it in the provider defaults");
|
|
89
|
+
}
|
|
90
|
+
return resolved;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function isAuthorizationUrl(url, keycloak) {
|
|
94
|
+
if (typeof url !== "string") return false;
|
|
95
|
+
const realmUrl = `${keycloak.baseUrl.replace(/\/+$/, "")}/realms/${encodeURIComponent(keycloak.realm)}`;
|
|
96
|
+
return url.startsWith(`${realmUrl}/protocol/openid-connect/auth?`);
|
|
97
|
+
}
|
|
98
|
+
export { AuthBridge };
|
|
99
|
+
//# sourceMappingURL=AuthBridge.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["queryParams","BridgeErrorCode","BridgeRequestError","AuthBridge","constructor","bridge","options","pending","signIn","params","openOnboarding","request","onboarding","defaults","keycloak","result","family","timeoutMs","signInTimeoutMs","status","isAuthorizationUrl","browserLogin","url","internal","onboardingOpened","openUrl","refresh","res","refreshToken","tokens","logout","pendingOnboarding","isOnboardingReturn","state","error","onTokensChanged","handler","on","ns","method","resolved","invalidParams","realmUrl","baseUrl","replace","encodeURIComponent","realm","startsWith"],"sources":["../../../src/bridge/AuthBridge.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { queryParams } from "./hosting.native.js";
|
|
2
|
+
import { BridgeErrorCode, BridgeRequestError } from "./protocol.native.js";
|
|
3
|
+
function _class_call_check(instance, Constructor) {
|
|
4
|
+
if (!(instance instanceof Constructor)) {
|
|
5
|
+
throw new TypeError("Cannot call a class as a function");
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
function _defineProperties(target, props) {
|
|
9
|
+
for (var i = 0; i < props.length; i++) {
|
|
10
|
+
var descriptor = props[i];
|
|
11
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
12
|
+
descriptor.configurable = true;
|
|
13
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
14
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
18
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
19
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
20
|
+
return Constructor;
|
|
21
|
+
}
|
|
22
|
+
function _define_property(obj, key, value) {
|
|
23
|
+
if (key in obj) {
|
|
24
|
+
Object.defineProperty(obj, key, {
|
|
25
|
+
value,
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
obj[key] = value;
|
|
32
|
+
}
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
var AuthBridge = /* @__PURE__ */function () {
|
|
36
|
+
"use strict";
|
|
37
|
+
|
|
38
|
+
function AuthBridge2(bridge, options) {
|
|
39
|
+
_class_call_check(this, AuthBridge2);
|
|
40
|
+
_define_property(this, "bridge", void 0);
|
|
41
|
+
_define_property(this, "options", void 0);
|
|
42
|
+
_define_property(this, "pending", void 0);
|
|
43
|
+
this.bridge = bridge;
|
|
44
|
+
this.options = options;
|
|
45
|
+
this.pending = null;
|
|
46
|
+
}
|
|
47
|
+
_create_class(AuthBridge2, [{
|
|
48
|
+
key: "signIn",
|
|
49
|
+
value: async function signIn() {
|
|
50
|
+
var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},
|
|
51
|
+
options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
52
|
+
var _params_onboarding, _params_family, _this_options_signInTimeoutMs;
|
|
53
|
+
var _this_options_defaults, _result_browserLogin;
|
|
54
|
+
var {
|
|
55
|
+
openOnboarding = true,
|
|
56
|
+
...request
|
|
57
|
+
} = options;
|
|
58
|
+
var onboarding = (_params_onboarding = params.onboarding) !== null && _params_onboarding !== void 0 ? _params_onboarding : (_this_options_defaults = this.options.defaults) === null || _this_options_defaults === void 0 ? void 0 : _this_options_defaults.onboarding;
|
|
59
|
+
var keycloak = this.keycloak(params.keycloak);
|
|
60
|
+
var result = await this.bridge.request("auth", "signIn", {
|
|
61
|
+
family: (_params_family = params.family) !== null && _params_family !== void 0 ? _params_family : "eth",
|
|
62
|
+
keycloak,
|
|
63
|
+
...(onboarding ? {
|
|
64
|
+
onboarding
|
|
65
|
+
} : {})
|
|
66
|
+
}, {
|
|
67
|
+
timeoutMs: (_this_options_signInTimeoutMs = this.options.signInTimeoutMs) !== null && _this_options_signInTimeoutMs !== void 0 ? _this_options_signInTimeoutMs : 10 * 6e4,
|
|
68
|
+
...request
|
|
69
|
+
});
|
|
70
|
+
if (result.status !== "profile-incomplete") {
|
|
71
|
+
this.pending = null;
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
if (!isAuthorizationUrl((_result_browserLogin = result.browserLogin) === null || _result_browserLogin === void 0 ? void 0 : _result_browserLogin.url, keycloak)) {
|
|
75
|
+
throw new BridgeRequestError(BridgeErrorCode.internal, "auth.signIn: the page's browser login is not the realm's authorization endpoint");
|
|
76
|
+
}
|
|
77
|
+
this.pending = result.browserLogin;
|
|
78
|
+
if (!openOnboarding) return {
|
|
79
|
+
...result,
|
|
80
|
+
onboardingOpened: false
|
|
81
|
+
};
|
|
82
|
+
await this.options.openUrl(result.browserLogin.url);
|
|
83
|
+
return {
|
|
84
|
+
...result,
|
|
85
|
+
onboardingOpened: true
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
89
|
+
key: "refresh",
|
|
90
|
+
value: async function refresh() {
|
|
91
|
+
var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
92
|
+
var res = await this.bridge.request("auth", "refresh", {
|
|
93
|
+
keycloak: this.keycloak(params.keycloak),
|
|
94
|
+
...(params.refreshToken ? {
|
|
95
|
+
refreshToken: params.refreshToken
|
|
96
|
+
} : {})
|
|
97
|
+
});
|
|
98
|
+
return res.tokens;
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
key: "logout",
|
|
102
|
+
value: async function logout() {
|
|
103
|
+
var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
104
|
+
await this.bridge.request("auth", "logout", {
|
|
105
|
+
keycloak: this.keycloak(params.keycloak),
|
|
106
|
+
...(params.refreshToken ? {
|
|
107
|
+
refreshToken: params.refreshToken
|
|
108
|
+
} : {})
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
key: "pendingOnboarding",
|
|
113
|
+
get: (/** The browser login the last `profile-incomplete` answer carried, until a sign-in succeeds. */
|
|
114
|
+
function get() {
|
|
115
|
+
return this.pending;
|
|
116
|
+
})
|
|
117
|
+
}, {
|
|
118
|
+
/**
|
|
119
|
+
* True when `url` is Keycloak sending the browser back from that onboarding
|
|
120
|
+
* (its `state` matches) with no `error`. A matching return, cancelled or
|
|
121
|
+
* not, ends the pending onboarding, so the same return never counts twice.
|
|
122
|
+
*/
|
|
123
|
+
key: "isOnboardingReturn",
|
|
124
|
+
value: function isOnboardingReturn(url) {
|
|
125
|
+
if (this.pending === null) return false;
|
|
126
|
+
var params = queryParams(url);
|
|
127
|
+
if (params.state !== this.pending.state) return false;
|
|
128
|
+
this.pending = null;
|
|
129
|
+
return params.error === void 0;
|
|
130
|
+
}
|
|
131
|
+
}, {
|
|
132
|
+
/** `tokensChanged` fires whenever the page's tokens for a realm and client change. */
|
|
133
|
+
key: "onTokensChanged",
|
|
134
|
+
value: function onTokensChanged(handler) {
|
|
135
|
+
return this.bridge.on(function (ns, method, params) {
|
|
136
|
+
if (ns === "auth" && method === "tokensChanged") handler(params);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}, {
|
|
140
|
+
key: "keycloak",
|
|
141
|
+
value: function keycloak(keycloak) {
|
|
142
|
+
var _this_options_defaults;
|
|
143
|
+
var resolved = keycloak !== null && keycloak !== void 0 ? keycloak : (_this_options_defaults = this.options.defaults) === null || _this_options_defaults === void 0 ? void 0 : _this_options_defaults.keycloak;
|
|
144
|
+
if (!resolved) {
|
|
145
|
+
throw new BridgeRequestError(BridgeErrorCode.invalidParams, "auth: pass keycloak { baseUrl, realm, clientId } or set it in the provider defaults");
|
|
146
|
+
}
|
|
147
|
+
return resolved;
|
|
148
|
+
}
|
|
149
|
+
}]);
|
|
150
|
+
return AuthBridge2;
|
|
151
|
+
}();
|
|
152
|
+
function isAuthorizationUrl(url, keycloak) {
|
|
153
|
+
if (typeof url !== "string") return false;
|
|
154
|
+
var realmUrl = `${keycloak.baseUrl.replace(/\/+$/, "")}/realms/${encodeURIComponent(keycloak.realm)}`;
|
|
155
|
+
return url.startsWith(`${realmUrl}/protocol/openid-connect/auth?`);
|
|
156
|
+
}
|
|
157
|
+
export { AuthBridge };
|
|
158
|
+
//# sourceMappingURL=AuthBridge.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["queryParams","BridgeErrorCode","BridgeRequestError","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","AuthBridge","AuthBridge2","bridge","options","pending","signIn","params","arguments","_params_onboarding","_params_family","_this_options_signInTimeoutMs","_this_options_defaults","_result_browserLogin","openOnboarding","request","onboarding","defaults","keycloak","result","family","timeoutMs","signInTimeoutMs","status","isAuthorizationUrl","browserLogin","url","internal","onboardingOpened","openUrl","refresh","res"],"sources":["../../../src/bridge/AuthBridge.ts"],"sourcesContent":[null],"mappings":"AAUA,SAASA,WAAA,QAAmB;AAC5B,SAASC,eAAA,EAAiBC,kBAAA,QAA0B;AA+B7C,SAAMC,iBAAWA,CAAAC,QAAA,EAAAC,WAAA;EAGtB,MAAAD,QACmB,YACAC,WACjB;IAFiB,UAAAC,SAAA;EACA;AAAA;AAChB,SAFgBC,kBAAAC,MAAA,EAAAC,KAAA;EACA,SAAAC,CAAA,MAAAA,CAAA,GAAAD,KAAA,CAAAE,MAAA,EAAAD,CAAA;IAJX,IAAAE,UAAmC,GAAAH,KAAA,CAAAC,CAAA;IAO3CE,UAAM,CACJC,UAAqC,GACrCD,UAA6B,CAACC,UACF;IAC5BD,UAAQ,CAAAE,YAAA,GAAiB;IACzB,WAAM,IAAAF,UAAa,EAAOA,UAAA,CAAAG,QAAmB,OAAQ;IACrDC,MAAM,CAAAC,cAAW,CAAKT,MAAA,EAAAI,UAAgB,CAAAM,GAAA,EAAQN,UAAA;EAC9C;AAAkC;AAChC,SACAO,cAAAd,WAAA,EAAAe,UAAA,EAAAC,WAAA;EAAA,IACAD,UAAA,EAAAb,iBAAA,CAAAF,WAAA,CAAAiB,SAAA,EAAAF,UAAA;EAAA,IAAAC,WACU,EAAAd,iBAAiB,CAAAF,WAAA,EAAAgB,WAAA;EAAA,OACzBhB,WAAA;AAAA;AACmC,SACrCkB,iBAAAC,GAAA,EAAAN,GAAA,EAAAO,KAAA;EAAA,IACAP,GAAE,IAAAM,GAAA;IACJR,MAAA,CAAAC,cAAA,CAAAO,GAAA,EAAAN,GAAA;MACAO,KAAI;MACFZ,UAAK,MAAU;MACfC,YAAO;MACTC,QAAA;IAGA;EACE;IAAUS,GAAA,CACRN,GAAA,IAAAO,KAAA;EAAgB;EAChB,OACFD,GAAA;AAAA;AAEF,IAAAE,UAAK,kBAAiB;EACtB,YAAK;;EACL,SAAMC,WAAKA,CAAQC,MAAA,EAAQC,OAAO;IAClC1B,iBAAY,KAAQ,EAAAwB,WAAA;IACtBJ,gBAAA;IAEAA,gBACE,KAAmE,EAAC,SAC/C;IACrBA,gBAAa,KAAM,EAAK,SAAO,OAAQ;IAAmB,IACxD,CAAAK,MAAA,GAAUA,MAAK;IAAwB,IACvC,CAAIC,OAAO,GAAAA,OAAA;IACb,IAAC,CAAAC,OAAA;EACD;EACFX,aAAA,CAAAQ,WAAA,GAEA;IAGET,GAAA,EAAM,QAAK;IACTO,KAAA,iBAAeM,MAASA,CAAA,EAAO;MAC/B,IAAIC,MAAO,GAAAC,SAAA,CAAetB,MAAE,QAAAsB,SAAqB,aAAa,IAAIA,SAAC;QAAAJ,OAAA,GAAAI,SAAA,CAAAtB,MAAA,QAAAsB,SAAA,iBAAAA,SAAA;MACpE,IAAAC,kBAAA,EAAAC,cAAA,EAAAC,6BAAA;MACH,IAAAC,sBAAA,EAAAC,oBAAA;MAAA;QAAAC,cAAA;QAAA,GAAAC;MAAA,IAAAX,OAAA;MAGI,IAAAY,UAAA,IAA6CP,kBAAA,GAAAF,MAAA,CAAAS,UAAA,cAAAP,kBAAA,cAAAA,kBAAA,IAAAG,sBAAA,QAAAR,OAAA,CAAAa,QAAA,cAAAL,sBAAA,uBAAAA,sBAAA,CAAAI,UAAA;MAC/C,IAAOE,QAAK,QAAAA,QAAA,CAAAX,MAAA,CAAAW,QAAA;MACd,IAAAC,MAAA,cAAAhB,MAAA,CAAAY,OAAA;QAAAK,MAAA,GAAAV,cAAA,GAAAH,MAAA,CAAAa,MAAA,cAAAV,cAAA,cAAAA,cAAA;QAAAQ,QAAA;QAAA,IAAAF,UAAA;UAAAA;QAAA;MAOA;QACMK,SAAK,GAAAV,6BAAyB,QAAAP,OAAA,CAAAkB,eAAA,cAAAX,6BAAA,cAAAA,6BAAA;QAC5B,GAAAI;MACF;MACJ,IAAKI,MAAA,CAAUI,MAAA;QACf,IAAO,CAAAlB,OAAO,OAAU;QAC1B,OAAAc,MAAA;MAAA;MAGA,KAAAK,kBAA0E,EAAAX,oBAAA,GAAAM,MAAA,CAAAM,YAAA,cAAAZ,oBAAA,uBAAAA,oBAAA,CAAAa,GAAA,EAAAR,QAAA;QACxE,MAAY,IAAAzC,kBAAe,CAAQD,eAAW,CAAAmD,QAAA;MAC5C;MACD,KAAAtB,OAAA,GAAAc,MAAA,CAAAM,YAAA;MACH,KAAAX,cAAA;QAEQ,GAASK,MAAA;QACTS,gBAAW;MACb,CAAC;MACH,MAAM,IAAI,CAAAxB,OAAA,CAAAyB,OAAA,CAAAV,MAAA,CAAAM,YAAA,CAAAC,GAAA;MACR;QACA,GAAAP,MAAA;QACFS,gBAAA;MACF;IACA;EACF,GACF;IAEAnC,GAAS;IACHO,KAAA,EAAO,eAAQ8B,OAAUA,CAAA,EAAO;MAC9B,IAAAvB,MAAA,GAAWC,SAAG,CAAStB,MAAA,GAAQ,KAAAsB,SAAQ,CAAQ,EAAE,KAAC,SAAWA,SAAA,QAAmB;MACtF,IAAOuB,GAAI,SAAW,IAAG,CAAA5B,MAAQ,CAAAY,OAAA;QACnCG,QAAA,OAAAA,QAAA,CAAAX,MAAA,CAAAW,QAAA","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isBridgeMessage, newRequestId } from "./protocol.mjs";
|
|
1
|
+
import { BridgeRequestError, isBridgeMessage, newRequestId } from "./protocol.mjs";
|
|
2
2
|
const DEFAULT_TIMEOUT_MS = 12e4;
|
|
3
3
|
class BridgeClient {
|
|
4
4
|
constructor(transport, opts = {}) {
|
|
@@ -53,15 +53,20 @@ class BridgeClient {
|
|
|
53
53
|
this.listeners.delete(handler);
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
|
-
/**
|
|
56
|
+
/** Fail every request in flight and keep the client usable: the page they went to is gone. */
|
|
57
|
+
rejectPending(reason) {
|
|
58
|
+
const pending = Array.from(this.pending.values());
|
|
59
|
+
this.pending.clear();
|
|
60
|
+
for (const p of pending) {
|
|
61
|
+
p.cleanup();
|
|
62
|
+
p.reject(reason);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** Reject all in-flight requests and stop listening. */
|
|
57
66
|
dispose() {
|
|
58
67
|
this.disposed = true;
|
|
59
68
|
this.unsubscribe();
|
|
60
|
-
|
|
61
|
-
p.cleanup();
|
|
62
|
-
p.reject(new Error("Bridge disposed"));
|
|
63
|
-
}
|
|
64
|
-
this.pending.clear();
|
|
69
|
+
this.rejectPending(new Error("Bridge disposed"));
|
|
65
70
|
this.listeners.clear();
|
|
66
71
|
}
|
|
67
72
|
settle(id, reject, error) {
|
|
@@ -88,9 +93,7 @@ class BridgeClient {
|
|
|
88
93
|
};
|
|
89
94
|
}
|
|
90
95
|
function toError(e) {
|
|
91
|
-
|
|
92
|
-
err.code = e.code;
|
|
93
|
-
return err;
|
|
96
|
+
return new BridgeRequestError(e.code, e.message, e.data);
|
|
94
97
|
}
|
|
95
98
|
export { BridgeClient };
|
|
96
99
|
//# sourceMappingURL=BridgeClient.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isBridgeMessage","newRequestId","DEFAULT_TIMEOUT_MS","BridgeClient","constructor","transport","opts","unsubscribe","subscribe","onMessage","pending","Map","listeners","Set","disposed","request","ns","method","params","options","Promise","reject","Error","id","timeoutMs","resolve","onAbort","settle","timer","setTimeout","cleanup","clearTimeout","signal","removeEventListener","set","aborted","addEventListener","once","post","kind","on","handler","add","delete","
|
|
1
|
+
{"version":3,"names":["BridgeRequestError","isBridgeMessage","newRequestId","DEFAULT_TIMEOUT_MS","BridgeClient","constructor","transport","opts","unsubscribe","subscribe","onMessage","pending","Map","listeners","Set","disposed","request","ns","method","params","options","Promise","reject","Error","id","timeoutMs","resolve","onAbort","settle","timer","setTimeout","cleanup","clearTimeout","signal","removeEventListener","set","aborted","addEventListener","once","post","kind","on","handler","add","delete","rejectPending","reason","Array","from","values","clear","p","dispose","error","get","message","toError","result","l","e","code","data"],"sources":["../../../src/bridge/BridgeClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isBridgeMessage, newRequestId } from "./protocol.native.js";
|
|
1
|
+
import { BridgeRequestError, isBridgeMessage, newRequestId } from "./protocol.native.js";
|
|
2
2
|
function _class_call_check(instance, Constructor) {
|
|
3
3
|
if (!(instance instanceof Constructor)) {
|
|
4
4
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -144,19 +144,19 @@ var BridgeClient = /* @__PURE__ */function () {
|
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
146
|
}, {
|
|
147
|
-
/**
|
|
148
|
-
key: "
|
|
149
|
-
value: function
|
|
150
|
-
|
|
151
|
-
this.
|
|
147
|
+
/** Fail every request in flight and keep the client usable: the page they went to is gone. */
|
|
148
|
+
key: "rejectPending",
|
|
149
|
+
value: function rejectPending(reason) {
|
|
150
|
+
var pending = Array.from(this.pending.values());
|
|
151
|
+
this.pending.clear();
|
|
152
152
|
var _iteratorNormalCompletion = true,
|
|
153
153
|
_didIteratorError = false,
|
|
154
154
|
_iteratorError = void 0;
|
|
155
155
|
try {
|
|
156
|
-
for (var _iterator =
|
|
157
|
-
var
|
|
156
|
+
for (var _iterator = pending[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
157
|
+
var p = _step.value;
|
|
158
158
|
p.cleanup();
|
|
159
|
-
p.reject(
|
|
159
|
+
p.reject(reason);
|
|
160
160
|
}
|
|
161
161
|
} catch (err) {
|
|
162
162
|
_didIteratorError = true;
|
|
@@ -172,7 +172,14 @@ var BridgeClient = /* @__PURE__ */function () {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
|
|
175
|
+
}
|
|
176
|
+
}, {
|
|
177
|
+
/** Reject all in-flight requests and stop listening. */
|
|
178
|
+
key: "dispose",
|
|
179
|
+
value: function dispose() {
|
|
180
|
+
this.disposed = true;
|
|
181
|
+
this.unsubscribe();
|
|
182
|
+
this.rejectPending(new Error("Bridge disposed"));
|
|
176
183
|
this.listeners.clear();
|
|
177
184
|
}
|
|
178
185
|
}, {
|
|
@@ -188,9 +195,7 @@ var BridgeClient = /* @__PURE__ */function () {
|
|
|
188
195
|
return BridgeClient2;
|
|
189
196
|
}();
|
|
190
197
|
function toError(e) {
|
|
191
|
-
|
|
192
|
-
err.code = e.code;
|
|
193
|
-
return err;
|
|
198
|
+
return new BridgeRequestError(e.code, e.message, e.data);
|
|
194
199
|
}
|
|
195
200
|
export { BridgeClient };
|
|
196
201
|
//# sourceMappingURL=BridgeClient.native.js.map
|