@frak-labs/core-sdk 0.2.1-beta.07b0efba → 0.2.1-beta.13642b4b

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 (74) hide show
  1. package/README.md +1 -2
  2. package/cdn/bundle.js +26 -26
  3. package/dist/actions.cjs +1 -1
  4. package/dist/actions.d.cts +3 -3
  5. package/dist/actions.d.ts +3 -3
  6. package/dist/actions.js +1 -1
  7. package/dist/bundle.cjs +1 -1
  8. package/dist/bundle.d.cts +4 -4
  9. package/dist/bundle.d.ts +4 -4
  10. package/dist/bundle.js +1 -1
  11. package/dist/{computeLegacyProductId-b5cUWdAm.d.ts → computeLegacyProductId-I_RuICoY.d.cts} +91 -37
  12. package/dist/{computeLegacyProductId-CCAZvLa5.d.cts → computeLegacyProductId-i75CqMpW.d.ts} +91 -37
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.d.cts +3 -3
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.js +1 -1
  17. package/dist/{openSso-B0g7-807.d.cts → openSso-C5zD2TG6.d.cts} +263 -44
  18. package/dist/{openSso-CMzwvaCa.d.ts → openSso-FO67wnpt.d.ts} +263 -44
  19. package/dist/setupClient-BxNAwmQX.cjs +13 -0
  20. package/dist/setupClient-Dae0NGoi.js +13 -0
  21. package/dist/{siweAuthenticate-CnCZ7mok.d.ts → siweAuthenticate-BPZbejQ9.d.cts} +102 -8
  22. package/dist/{siweAuthenticate-CVigMOxz.d.cts → siweAuthenticate-CMV76M6B.d.ts} +102 -8
  23. package/dist/siweAuthenticate-CWcVvP-G.cjs +1 -0
  24. package/dist/siweAuthenticate-DQfdb5UQ.js +1 -0
  25. package/dist/trackEvent-Ce1XlsIE.js +1 -0
  26. package/dist/trackEvent-CvbJTTqA.cjs +1 -0
  27. package/package.json +2 -2
  28. package/src/actions/displayEmbeddedWallet.ts +6 -2
  29. package/src/actions/displayModal.ts +6 -2
  30. package/src/actions/displaySharingPage.ts +49 -0
  31. package/src/actions/ensureIdentity.ts +2 -2
  32. package/src/actions/getMerchantInformation.test.ts +13 -1
  33. package/src/actions/getMerchantInformation.ts +20 -5
  34. package/src/actions/getUserReferralStatus.ts +42 -0
  35. package/src/actions/index.ts +7 -1
  36. package/src/actions/referral/setupReferral.test.ts +79 -0
  37. package/src/actions/referral/setupReferral.ts +32 -0
  38. package/src/actions/trackPurchaseStatus.test.ts +32 -20
  39. package/src/actions/trackPurchaseStatus.ts +3 -5
  40. package/src/actions/wrapper/modalBuilder.test.ts +4 -2
  41. package/src/actions/wrapper/modalBuilder.ts +6 -8
  42. package/src/clients/createIFrameFrakClient.ts +150 -27
  43. package/src/clients/transports/iframeLifecycleManager.test.ts +14 -94
  44. package/src/clients/transports/iframeLifecycleManager.ts +15 -48
  45. package/src/index.ts +17 -4
  46. package/src/types/config.ts +10 -3
  47. package/src/types/index.ts +13 -1
  48. package/src/types/lifecycle/client.ts +22 -27
  49. package/src/types/lifecycle/iframe.ts +7 -8
  50. package/src/types/resolvedConfig.ts +122 -0
  51. package/src/types/rpc/displaySharingPage.ts +77 -0
  52. package/src/types/rpc/interaction.ts +4 -0
  53. package/src/types/rpc/userReferralStatus.ts +20 -0
  54. package/src/types/rpc.ts +42 -5
  55. package/src/utils/backendUrl.test.ts +2 -2
  56. package/src/utils/backendUrl.ts +1 -1
  57. package/src/utils/cache/index.ts +7 -0
  58. package/src/utils/cache/lruMap.test.ts +55 -0
  59. package/src/utils/cache/lruMap.ts +38 -0
  60. package/src/utils/cache/withCache.test.ts +162 -0
  61. package/src/utils/cache/withCache.ts +105 -0
  62. package/src/utils/inAppBrowser.ts +60 -0
  63. package/src/utils/index.ts +6 -4
  64. package/src/utils/sdkConfigStore.test.ts +405 -0
  65. package/src/utils/sdkConfigStore.ts +263 -0
  66. package/src/utils/sso.ts +3 -7
  67. package/dist/setupClient-CqTHGvVa.cjs +0 -13
  68. package/dist/setupClient-DTyvAPgh.js +0 -13
  69. package/dist/siweAuthenticate-BWmI2_TN.cjs +0 -1
  70. package/dist/siweAuthenticate-zczqxm0a.js +0 -1
  71. package/dist/trackEvent-CeLFVzZn.js +0 -1
  72. package/dist/trackEvent-Ew5r5zfI.cjs +0 -1
  73. package/src/utils/merchantId.test.ts +0 -653
  74. package/src/utils/merchantId.ts +0 -143
@@ -31,7 +31,7 @@ type FrakWalletSdkConfig = {
31
31
  /**
32
32
  * Your application name (will be displayed in a few modals and in SSO)
33
33
  */
34
- name: string;
34
+ name?: string;
35
35
  /**
36
36
  * Your merchant ID from the Frak dashboard (UUID format)
37
37
  * Used for referral tracking and analytics
@@ -75,6 +75,13 @@ type FrakWalletSdkConfig = {
75
75
  * @defaultValue window.location.host
76
76
  */
77
77
  domain?: string;
78
+ /**
79
+ * Wait for backend config before rendering components.
80
+ * When true (default), components show a spinner until backend config is resolved.
81
+ * When false, components render immediately with SDK static config / HTML attributes.
82
+ * @defaultValue true
83
+ */
84
+ waitForBackendConfig?: boolean;
78
85
  };
79
86
  /**
80
87
  * Custom i18n configuration for the modal
@@ -111,19 +118,115 @@ type FrakWalletSdkConfig = {
111
118
  */
112
119
  type I18nConfig = Record<Language, LocalizedI18nConfig> | LocalizedI18nConfig;
113
120
  /**
114
- * A localized i18n config
121
+ * A localized i18n config (inline objects only — URL-based i18n removed)
115
122
  * @category Config
116
123
  */
117
- type LocalizedI18nConfig = `${string}.css` | {
124
+ type LocalizedI18nConfig = {
118
125
  [key: string]: string;
119
126
  };
120
127
  //#endregion
128
+ //#region src/types/resolvedConfig.d.ts
129
+ /**
130
+ * Response from the merchant resolve endpoint
131
+ * @category Config
132
+ */
133
+ type MerchantConfigResponse = {
134
+ merchantId: string;
135
+ name: string;
136
+ domain: string;
137
+ allowedDomains: string[];
138
+ sdkConfig?: ResolvedSdkConfig;
139
+ };
140
+ /**
141
+ * Resolved placement config from backend
142
+ * Translations already flattened: default + lang-specific merged into one record
143
+ * @category Config
144
+ */
145
+ type ResolvedPlacement = {
146
+ /** Per-component configuration within this placement */components?: {
147
+ buttonShare?: {
148
+ text?: string;
149
+ noRewardText?: string;
150
+ clickAction?: "embedded-wallet" | "share-modal" | "sharing-page";
151
+ useReward?: boolean;
152
+ css?: string;
153
+ };
154
+ buttonWallet?: {
155
+ position?: "right" | "left";
156
+ css?: string;
157
+ };
158
+ openInApp?: {
159
+ text?: string;
160
+ css?: string;
161
+ };
162
+ postPurchase?: {
163
+ refereeText?: string;
164
+ refereeNoRewardText?: string;
165
+ referrerText?: string;
166
+ referrerNoRewardText?: string;
167
+ ctaText?: string;
168
+ ctaNoRewardText?: string;
169
+ css?: string;
170
+ };
171
+ banner?: {
172
+ referralTitle?: string;
173
+ referralDescription?: string;
174
+ referralCta?: string;
175
+ inappTitle?: string;
176
+ inappDescription?: string;
177
+ inappCta?: string;
178
+ css?: string;
179
+ };
180
+ };
181
+ targetInteraction?: string; /** Already flattened: default + lang-specific merged into one record */
182
+ translations?: Record<string, string>; /** Global placement CSS (applied to modals/listener) */
183
+ css?: string;
184
+ };
185
+ /**
186
+ * Resolved SDK config from backend `/resolve` endpoint
187
+ * Language resolution and translation merging already applied
188
+ * @category Config
189
+ */
190
+ type ResolvedSdkConfig = {
191
+ name?: string;
192
+ logoUrl?: string;
193
+ homepageLink?: string;
194
+ currency?: Currency;
195
+ lang?: Language; /** When true, all SDK components should be hidden */
196
+ hidden?: boolean;
197
+ css?: string;
198
+ translations?: Record<string, string>;
199
+ placements?: Record<string, ResolvedPlacement>;
200
+ };
201
+ /**
202
+ * Internal SDK config store state
203
+ * Merged config: backend > SDK static > defaults
204
+ * Components subscribe to this reactively
205
+ * @category Config
206
+ */
207
+ type SdkResolvedConfig = {
208
+ /** Whether the backend config has been resolved */isResolved: boolean; /** Merchant ID from resolution */
209
+ merchantId: string; /** Domain returned by the resolve endpoint */
210
+ domain?: string; /** Domains allowed for this merchant (used by iframe trust check) */
211
+ allowedDomains?: string[]; /** Whether the resolve returned a backend sdkConfig object */
212
+ hasRawSdkConfig?: boolean; /** Merged metadata fields */
213
+ name?: string;
214
+ logoUrl?: string;
215
+ homepageLink?: string;
216
+ lang?: Language;
217
+ currency?: Currency; /** When true, all SDK components should be hidden */
218
+ hidden?: boolean; /** Global CSS from backend config (passed to iframe) */
219
+ css?: string; /** Global translations (for reference / component fallback) */
220
+ translations?: Record<string, string>; /** Named placements (keyed by placement ID) */
221
+ placements?: Record<string, ResolvedPlacement>;
222
+ };
223
+ //#endregion
121
224
  //#region src/types/lifecycle/client.d.ts
122
225
  /**
123
226
  * Event related to the iframe lifecycle
124
227
  * @ignore
125
228
  */
126
- type ClientLifecycleEvent = CustomCssEvent | CustomI18nEvent | RestoreBackupEvent | HearbeatEvent | HandshakeResponse | SsoRedirectCompleteEvent | DeepLinkFailedEvent;
229
+ type ClientLifecycleEvent = CustomCssEvent | CustomI18nEvent | RestoreBackupEvent | HearbeatEvent | SsoRedirectCompleteEvent | DeepLinkFailedEvent | ResolvedConfigEvent;
127
230
  type CustomCssEvent = {
128
231
  clientLifecycle: "modal-css";
129
232
  data: {
@@ -146,30 +249,6 @@ type HearbeatEvent = {
146
249
  clientLifecycle: "heartbeat";
147
250
  data?: never;
148
251
  };
149
- type HandshakeResponse = {
150
- clientLifecycle: "handshake-response";
151
- data: {
152
- token: string;
153
- currentUrl: string;
154
- /**
155
- * Pending merge token extracted from URL (?fmt= parameter)
156
- * When present, listener should execute identity merge in background
157
- * URL is cleaned after handshake response is sent
158
- */
159
- pendingMergeToken?: string;
160
- /**
161
- * Client ID for identity tracking (belt & suspenders fallback)
162
- * Primary delivery is via iframe URL query param; handshake is backup for SSR
163
- */
164
- clientId?: string;
165
- /**
166
- * Explicit domain from SDK config (FrakWalletSdkConfig.domain)
167
- * When present, listener should prefer this over URL-derived domain
168
- * for merchant resolution (handles proxied/tunneled environments)
169
- */
170
- configDomain?: string;
171
- };
172
- };
173
252
  type SsoRedirectCompleteEvent = {
174
253
  clientLifecycle: "sso-redirect-complete";
175
254
  data: {
@@ -182,6 +261,21 @@ type DeepLinkFailedEvent = {
182
261
  originalUrl: string;
183
262
  };
184
263
  };
264
+ type ResolvedConfigEvent = {
265
+ clientLifecycle: "resolved-config";
266
+ data: {
267
+ merchantId: string; /** The domain the backend resolved this config for */
268
+ domain: string; /** All domains registered for this merchant (for domain proof) */
269
+ allowedDomains: string[]; /** Full URL of the parent page (for interaction tracking) */
270
+ sourceUrl: string;
271
+ /**
272
+ * Pending merge token extracted from URL (?fmt= parameter).
273
+ * When present, listener should execute identity merge in background.
274
+ */
275
+ pendingMergeToken?: string;
276
+ sdkConfig?: ResolvedSdkConfig;
277
+ };
278
+ };
185
279
  //#endregion
186
280
  //#region src/types/lifecycle/iframe.d.ts
187
281
  /**
@@ -191,19 +285,13 @@ type DeepLinkFailedEvent = {
191
285
  type IFrameLifecycleEvent = {
192
286
  iframeLifecycle: "connected" | "show" | "hide" | "remove-backup";
193
287
  data?: never;
194
- } | DoBackupEvent | HandshakeRequestEvent | RedirectRequestEvent;
288
+ } | DoBackupEvent | RedirectRequestEvent;
195
289
  type DoBackupEvent = {
196
290
  iframeLifecycle: "do-backup";
197
291
  data: {
198
292
  backup?: string;
199
293
  };
200
294
  };
201
- type HandshakeRequestEvent = {
202
- iframeLifecycle: "handshake";
203
- data: {
204
- token: string;
205
- };
206
- };
207
295
  type RedirectRequestEvent = {
208
296
  iframeLifecycle: "redirect";
209
297
  data: {
@@ -218,6 +306,13 @@ type RedirectRequestEvent = {
218
306
  * Used when redirecting out of social browsers to preserve identity across contexts
219
307
  */
220
308
  mergeToken?: string;
309
+ /**
310
+ * When true, open the URL in a new tab via window.open(_blank)
311
+ * instead of navigating the current page.
312
+ * Requires the postMessage to include user activation delegation
313
+ * (includeUserActivation: true) so Safari allows the popup.
314
+ */
315
+ openInNewTab?: boolean;
221
316
  };
222
317
  };
223
318
  //#endregion
@@ -534,6 +629,80 @@ type DisplayModalParamsType<T extends ModalStepTypes[]> = {
534
629
  metadata?: ModalRpcMetadata;
535
630
  };
536
631
  //#endregion
632
+ //#region src/types/rpc/displaySharingPage.d.ts
633
+ /**
634
+ * Product information to display on the sharing page
635
+ * @group Sharing Page
636
+ */
637
+ type SharingPageProduct = {
638
+ /**
639
+ * The product title / name
640
+ */
641
+ title: string;
642
+ /**
643
+ * Optional product image URL
644
+ */
645
+ imageUrl?: string;
646
+ };
647
+ /**
648
+ * Parameters to display the sharing page
649
+ * @group Sharing Page
650
+ * @group RPC Schema
651
+ */
652
+ type DisplaySharingPageParamsType = {
653
+ /**
654
+ * Products to showcase on the sharing page
655
+ * If provided, they will be displayed in a product card section
656
+ */
657
+ products?: SharingPageProduct[];
658
+ /**
659
+ * Optional link override for sharing
660
+ * If not provided, the sharing link will be generated from the current page URL + merchant context
661
+ */
662
+ link?: string;
663
+ /**
664
+ * Optional metadata overrides for the sharing page
665
+ */
666
+ metadata?: {
667
+ /**
668
+ * Logo override for the sharing page header
669
+ */
670
+ logo?: string;
671
+ /**
672
+ * Link to the homepage of the calling website
673
+ */
674
+ homepageLink?: string;
675
+ /**
676
+ * The target interaction behind this sharing page
677
+ */
678
+ targetInteraction?: InteractionTypeKey;
679
+ /**
680
+ * i18n overrides for the sharing page
681
+ */
682
+ i18n?: I18nConfig;
683
+ };
684
+ };
685
+ /**
686
+ * Result of the sharing page display
687
+ * @group Sharing Page
688
+ * @group RPC Schema
689
+ */
690
+ type DisplaySharingPageResultType = {
691
+ /**
692
+ * The action the user took
693
+ * - "shared": User used the native share dialog
694
+ * - "copied": User copied the link to clipboard
695
+ * - "dismissed": User dismissed the sharing page without acting
696
+ */
697
+ action: "shared" | "copied" | "dismissed";
698
+ /**
699
+ * The install URL for the Frak app
700
+ * Can be used as a fallback to redirect the user to the install page
701
+ * from the merchant's top-level page (e.g. via `window.location.href`)
702
+ */
703
+ installUrl?: string;
704
+ };
705
+ //#endregion
537
706
  //#region src/types/rpc/embedded/loggedIn.d.ts
538
707
  /**
539
708
  * The different type of action we can have on the embedded view (once the user is logged in)
@@ -691,7 +860,9 @@ type SendInteractionParamsType = {
691
860
  utmTerm?: string;
692
861
  utmContent?: string;
693
862
  } | {
694
- type: "sharing";
863
+ type: "sharing"; /** Epoch seconds timestamp matching the V2 context `t` field embedded in the referral link URL, used for backend correlation */
864
+ sharingTimestamp?: number; /** Merchant order ID linking this sharing event to a purchase (stays server-side, never in URL) */
865
+ purchaseId?: string;
695
866
  } | {
696
867
  type: "custom";
697
868
  customType: string;
@@ -769,6 +940,28 @@ type GetMerchantInformationReturnType = {
769
940
  }[];
770
941
  };
771
942
  //#endregion
943
+ //#region src/types/rpc/userReferralStatus.d.ts
944
+ /**
945
+ * User referral status returned by `frak_getUserReferralStatus`.
946
+ *
947
+ * Generic referral context for the current user on a merchant.
948
+ * Used by components like `<frak-post-purchase>` and `<frak-referred-banner>`
949
+ * to adapt their display based on the user's referral relationship.
950
+ *
951
+ * Returns `null` when the user's identity cannot be resolved
952
+ * (e.g. no clientId and no wallet session).
953
+ *
954
+ * @group RPC Schema
955
+ */
956
+ type UserReferralStatusType = {
957
+ /**
958
+ * Whether the user was referred to this merchant by someone else.
959
+ *
960
+ * `true` means a referral link exists where this user is the referee.
961
+ */
962
+ isReferred: boolean;
963
+ };
964
+ //#endregion
772
965
  //#region src/types/rpc/walletStatus.d.ts
773
966
  /**
774
967
  * RPC Response for the method `frak_listenToWalletStatus`
@@ -815,7 +1008,7 @@ type WalletNotConnected = {
815
1008
  * - Response Type: stream (emits updates when wallet status changes)
816
1009
  *
817
1010
  * #### frak_displayModal
818
- * - Params: [requests: {@link ModalRpcStepsInput}, metadata?: {@link ModalRpcMetadata}, configMetadata: {@link FrakWalletSdkConfig}["metadata"]]
1011
+ * - Params: [requests: {@link ModalRpcStepsInput}, metadata?: {@link ModalRpcMetadata}, configMetadata: {@link FrakWalletSdkConfig}["metadata"], placement?: string]
819
1012
  * - Returns: {@link ModalRpcStepsResultType}
820
1013
  * - Response Type: promise (one-shot)
821
1014
  *
@@ -830,9 +1023,14 @@ type WalletNotConnected = {
830
1023
  * - Response Type: promise (one-shot)
831
1024
  *
832
1025
  * #### frak_displayEmbeddedWallet
833
- * - Params: [request: {@link DisplayEmbeddedWalletParamsType}, metadata: {@link FrakWalletSdkConfig}["metadata"]]
1026
+ * - Params: [request: {@link DisplayEmbeddedWalletParamsType}, metadata: {@link FrakWalletSdkConfig}["metadata"], placement?: string]
834
1027
  * - Returns: {@link DisplayEmbeddedWalletResultType}
835
1028
  * - Response Type: promise (one-shot)
1029
+ *
1030
+ * #### frak_displaySharingPage
1031
+ * - Params: [request: {@link DisplaySharingPageParamsType}, configMetadata: {@link FrakWalletSdkConfig}["metadata"], placement?: string]
1032
+ * - Returns: {@link DisplaySharingPageResultType}
1033
+ * - Response Type: promise (one-shot)
836
1034
  */
837
1035
  type IFrameRpcSchema = [
838
1036
  /**
@@ -850,7 +1048,7 @@ type IFrameRpcSchema = [
850
1048
  */
851
1049
  {
852
1050
  Method: "frak_displayModal";
853
- Parameters: [requests: ModalRpcStepsInput, metadata: ModalRpcMetadata | undefined, configMetadata: FrakWalletSdkConfig["metadata"]];
1051
+ Parameters: [requests: ModalRpcStepsInput, metadata: ModalRpcMetadata | undefined, configMetadata: FrakWalletSdkConfig["metadata"], placement?: string];
854
1052
  ReturnType: ModalRpcStepsResultType;
855
1053
  },
856
1054
  /**
@@ -860,7 +1058,7 @@ type IFrameRpcSchema = [
860
1058
  */
861
1059
  {
862
1060
  Method: "frak_prepareSso";
863
- Parameters: [params: PrepareSsoParamsType, name: string, customCss?: string];
1061
+ Parameters: [params: PrepareSsoParamsType, name?: string, customCss?: string];
864
1062
  ReturnType: PrepareSsoReturnType;
865
1063
  },
866
1064
  /**
@@ -871,7 +1069,7 @@ type IFrameRpcSchema = [
871
1069
  */
872
1070
  {
873
1071
  Method: "frak_openSso";
874
- Parameters: [params: OpenSsoParamsType, name: string, customCss?: string];
1072
+ Parameters: [params: OpenSsoParamsType, name?: string, customCss?: string];
875
1073
  ReturnType: OpenSsoReturnType;
876
1074
  },
877
1075
  /**
@@ -892,14 +1090,14 @@ type IFrameRpcSchema = [
892
1090
  */
893
1091
  {
894
1092
  Method: "frak_displayEmbeddedWallet";
895
- Parameters: [request: DisplayEmbeddedWalletParamsType, metadata: FrakWalletSdkConfig["metadata"]];
1093
+ Parameters: [request: DisplayEmbeddedWalletParamsType, metadata: FrakWalletSdkConfig["metadata"], placement?: string];
896
1094
  ReturnType: DisplayEmbeddedWalletResultType;
897
1095
  },
898
1096
  /**
899
1097
  * Method to send interactions (arrival, sharing, custom events)
900
1098
  * Fire-and-forget method - no return value expected
901
1099
  * merchantId is resolved from context
902
- * clientId is passed via metadata as safeguard against handshake race condition
1100
+ * clientId is passed via metadata as safeguard against race conditions
903
1101
  */
904
1102
  {
905
1103
  Method: "frak_sendInteraction";
@@ -907,6 +1105,27 @@ type IFrameRpcSchema = [
907
1105
  clientId?: string;
908
1106
  }];
909
1107
  ReturnType: undefined;
1108
+ },
1109
+ /**
1110
+ * Method to get the current user's referral status on this merchant.
1111
+ * Returns whether the user was referred (has a referral link as referee).
1112
+ * Returns null when the user's identity cannot be resolved.
1113
+ * This is a one-shot request.
1114
+ */
1115
+ {
1116
+ Method: "frak_getUserReferralStatus";
1117
+ Parameters?: undefined;
1118
+ ReturnType: UserReferralStatusType | null;
1119
+ },
1120
+ /**
1121
+ * Method to display a sharing page with product info and sharing buttons
1122
+ * Resolves on first user action (share/copy) but the page stays visible
1123
+ * This is a one-shot request
1124
+ */
1125
+ {
1126
+ Method: "frak_displaySharingPage";
1127
+ Parameters: [request: DisplaySharingPageParamsType, configMetadata: FrakWalletSdkConfig["metadata"], placement?: string];
1128
+ ReturnType: DisplaySharingPageResultType;
910
1129
  }];
911
1130
  //#endregion
912
1131
  //#region src/types/transport.d.ts
@@ -1052,4 +1271,4 @@ declare const ssoPopupName = "frak-sso";
1052
1271
  */
1053
1272
  declare function openSso(client: FrakClient, args: OpenSsoParamsType): Promise<OpenSsoReturnType>;
1054
1273
  //#endregion
1055
- export { SendTransactionModalStepType as A, PrepareSsoReturnType as B, EmbeddedViewActionSharing as C, ModalRpcStepsInput as D, ModalRpcMetadata as E, SiweAuthenticationParams as F, InteractionTypeKey as G, FinalActionType as H, LoginModalStepType as I, Currency as J, IFrameLifecycleEvent as K, OpenSsoParamsType as L, SendTransactionTxType as M, SiweAuthenticateModalStepType as N, ModalRpcStepsResultType as O, SiweAuthenticateReturnType as P, LocalizedI18nConfig as Q, OpenSsoReturnType as R, EmbeddedViewActionReferred as S, DisplayModalParamsType as T, FinalModalStepType as U, SsoMetadata as V, ModalStepMetadata as W, I18nConfig as X, FrakWalletSdkConfig as Y, Language as Z, TokenAmountType as _, FrakContextV1 as a, DisplayEmbeddedWalletResultType as b, isV2Context as c, IFrameTransport as d, IFrameRpcSchema as f, RewardTier as g, GetMerchantInformationReturnType as h, FrakContext as i, SendTransactionReturnType as j, ModalStepTypes as k, FrakClient as l, EstimatedReward as m, ssoPopupFeatures as n, FrakContextV2 as o, WalletStatusReturnType as p, ClientLifecycleEvent as q, ssoPopupName as r, isV1Context as s, openSso as t, FrakLifecycleEvent as u, SendInteractionParamsType as v, LoggedInEmbeddedView as w, LoggedOutEmbeddedView as x, DisplayEmbeddedWalletParamsType as y, PrepareSsoParamsType as z };
1274
+ export { ResolvedPlacement as $, ModalRpcMetadata as A, LoginModalStepType as B, EmbeddedViewActionReferred as C, DisplaySharingPageResultType as D, DisplaySharingPageParamsType as E, SendTransactionReturnType as F, SsoMetadata as G, OpenSsoReturnType as H, SendTransactionTxType as I, ModalStepMetadata as J, FinalActionType as K, SiweAuthenticateModalStepType as L, ModalRpcStepsResultType as M, ModalStepTypes as N, SharingPageProduct as O, SendTransactionModalStepType as P, MerchantConfigResponse as Q, SiweAuthenticateReturnType as R, LoggedOutEmbeddedView as S, LoggedInEmbeddedView as T, PrepareSsoParamsType as U, OpenSsoParamsType as V, PrepareSsoReturnType as W, IFrameLifecycleEvent as X, InteractionTypeKey as Y, ClientLifecycleEvent as Z, RewardTier as _, FrakContextV1 as a, Language as at, DisplayEmbeddedWalletParamsType as b, isV2Context as c, IFrameTransport as d, ResolvedSdkConfig as et, IFrameRpcSchema as f, GetMerchantInformationReturnType as g, EstimatedReward as h, FrakContext as i, I18nConfig as it, ModalRpcStepsInput as j, DisplayModalParamsType as k, FrakClient as l, UserReferralStatusType as m, ssoPopupFeatures as n, Currency as nt, FrakContextV2 as o, LocalizedI18nConfig as ot, WalletStatusReturnType as p, FinalModalStepType as q, ssoPopupName as r, FrakWalletSdkConfig as rt, isV1Context as s, openSso as t, SdkResolvedConfig as tt, FrakLifecycleEvent as u, TokenAmountType as v, EmbeddedViewActionSharing as w, DisplayEmbeddedWalletResultType as x, SendInteractionParamsType as y, SiweAuthenticationParams as z };