@credenza3/passport-evm 0.2.15 → 0.2.17
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/dist/{App-Cr6VD6df.js → App-DrYtIsxl.js} +18 -18
- package/dist/{App-Cr6VD6df.js.map → App-DrYtIsxl.js.map} +1 -1
- package/dist/{Button-DM2mshI-.js → Button-B58tbHjg.js} +4 -4
- package/dist/{Button-DM2mshI-.js.map → Button-B58tbHjg.js.map} +1 -1
- package/dist/{ButtonBack-otOBxyhm.js → ButtonBack-yLJ1WhkW.js} +4 -4
- package/dist/{ButtonBack-otOBxyhm.js.map → ButtonBack-yLJ1WhkW.js.map} +1 -1
- package/dist/{ButtonLink-DdkyW6UH.js → ButtonLink-CVzrI4Fv.js} +3 -3
- package/dist/{ButtonLink-DdkyW6UH.js.map → ButtonLink-CVzrI4Fv.js.map} +1 -1
- package/dist/{ConfirmAccount-D-yQ5kf2.js → ConfirmAccount-ncjz-yQ1.js} +58 -58
- package/dist/{ConfirmAccount-D-yQ5kf2.js.map → ConfirmAccount-ncjz-yQ1.js.map} +1 -1
- package/dist/{ContentHeader-yEGO8i6j.js → ContentHeader-D-0aj97w.js} +3 -3
- package/dist/{ContentHeader-yEGO8i6j.js.map → ContentHeader-D-0aj97w.js.map} +1 -1
- package/dist/{Error-NChFqGBT.js → Error-CIuEwqJ-.js} +5 -5
- package/dist/{Error-NChFqGBT.js.map → Error-CIuEwqJ-.js.map} +1 -1
- package/dist/{Input-DZj3Qj-n.js → Input-DeQta7wH.js} +4 -4
- package/dist/{Input-DZj3Qj-n.js.map → Input-DeQta7wH.js.map} +1 -1
- package/dist/{Label-D8cc_Ruk.js → Label-CsM-krt9.js} +3 -3
- package/dist/{Label-D8cc_Ruk.js.map → Label-CsM-krt9.js.map} +1 -1
- package/dist/{Loader-B-YyFNIZ.js → Loader-ByudRoiy.js} +3 -3
- package/dist/{Loader-B-YyFNIZ.js.map → Loader-ByudRoiy.js.map} +1 -1
- package/dist/Login-th1QspZ6.js +294 -0
- package/dist/Login-th1QspZ6.js.map +1 -0
- package/dist/{Logout-CXBHnpw7.js → Logout-Bk28ziTL.js} +6 -6
- package/dist/{Logout-CXBHnpw7.js.map → Logout-Bk28ziTL.js.map} +1 -1
- package/dist/{Nav-Cr9PNYvH.js → Nav-BlIeXcjd.js} +62 -62
- package/dist/{Nav-Cr9PNYvH.js.map → Nav-BlIeXcjd.js.map} +1 -1
- package/dist/{PassportId-CWVGIloj.js → PassportId-bFnyj9d5.js} +6 -6
- package/dist/{PassportId-CWVGIloj.js.map → PassportId-bFnyj9d5.js.map} +1 -1
- package/dist/{Payment-CT0OPhHK.js → Payment-BfBk2Vj4.js} +147 -144
- package/dist/Payment-BfBk2Vj4.js.map +1 -0
- package/dist/{PaymentResult-t52a3o97.js → PaymentResult-B1O3xIUb.js} +4 -4
- package/dist/{PaymentResult-t52a3o97.js.map → PaymentResult-B1O3xIUb.js.map} +1 -1
- package/dist/{Profile-D5MYXt-3.js → Profile-D96I4nz3.js} +23 -23
- package/dist/{Profile-D5MYXt-3.js.map → Profile-D96I4nz3.js.map} +1 -1
- package/dist/{ProgressVideo-jNSI7qda.js → ProgressVideo-SNiU0jSS.js} +13 -13
- package/dist/{ProgressVideo-jNSI7qda.js.map → ProgressVideo-SNiU0jSS.js.map} +1 -1
- package/dist/{RichAlert-Bqj9XlBF.js → RichAlert-Bl6k1lyQ.js} +6 -6
- package/dist/{RichAlert-Bqj9XlBF.js.map → RichAlert-Bl6k1lyQ.js.map} +1 -1
- package/dist/{Scanner-CVGsVag-.js → Scanner-Be30oFob.js} +8 -8
- package/dist/{Scanner-CVGsVag-.js.map → Scanner-Be30oFob.js.map} +1 -1
- package/dist/{SendTokens-civUV4zC.js → SendTokens-Cpbc8pNW.js} +7 -7
- package/dist/{SendTokens-civUV4zC.js.map → SendTokens-Cpbc8pNW.js.map} +1 -1
- package/dist/{Sign-Ce60RADN.js → Sign-Cqt9pYfi.js} +6 -6
- package/dist/{Sign-Ce60RADN.js.map → Sign-Cqt9pYfi.js.map} +1 -1
- package/dist/{Stripe.service-oXsybcus.js → Stripe.service-DkU3OPk-.js} +5 -5
- package/dist/{Stripe.service-oXsybcus.js.map → Stripe.service-DkU3OPk-.js.map} +1 -1
- package/dist/{UpdateProfile-CoUeMS1r.js → UpdateProfile-CsxQubeT.js} +10 -10
- package/dist/{UpdateProfile-CoUeMS1r.js.map → UpdateProfile-CsxQubeT.js.map} +1 -1
- package/dist/{UserInfo-xJVmkkkH.js → UserInfo-0xD5yBFz.js} +4 -4
- package/dist/{UserInfo-xJVmkkkH.js.map → UserInfo-0xD5yBFz.js.map} +1 -1
- package/dist/{Wallet-D6R6CjFq.js → Wallet-DFIt3eLL.js} +7 -7
- package/dist/{Wallet-D6R6CjFq.js.map → Wallet-DFIt3eLL.js.map} +1 -1
- package/dist/{each-D1y4pI2R.js → each-DlTYG9SE.js} +15 -15
- package/dist/{each-D1y4pI2R.js.map → each-DlTYG9SE.js.map} +1 -1
- package/dist/{html-CpZ2yh53.js → html-ClFJTrTO.js} +3 -3
- package/dist/{html-CpZ2yh53.js.map → html-ClFJTrTO.js.map} +1 -1
- package/dist/index-DacuCeWr.js +59443 -0
- package/dist/index-DacuCeWr.js.map +1 -0
- package/dist/{index-client-3un-JMX3.js → index-client-DaK3V4t-.js} +2 -2
- package/dist/{index-client-3un-JMX3.js.map → index-client-DaK3V4t-.js.map} +1 -1
- package/dist/{input-BlDCJfWz.js → input-CV6w1OZd.js} +3 -3
- package/dist/{input-BlDCJfWz.js.map → input-CV6w1OZd.js.map} +1 -1
- package/dist/{legacy-BnQw8ZSv.js → legacy-B3q739rj.js} +2 -2
- package/dist/{legacy-BnQw8ZSv.js.map → legacy-B3q739rj.js.map} +1 -1
- package/dist/passport.es.js +1 -1
- package/dist/passport.umd.js +630 -74
- package/dist/passport.umd.js.map +1 -1
- package/dist/types/app/pages/login/authMethods.helper.d.ts +2 -2
- package/dist/types/stores/config.d.ts +2 -0
- package/package.json +2 -3
- package/dist/Login-CTrNVHVw.js +0 -291
- package/dist/Login-CTrNVHVw.js.map +0 -1
- package/dist/Payment-CT0OPhHK.js.map +0 -1
- package/dist/index-BjcW8vls.js +0 -36986
- package/dist/index-BjcW8vls.js.map +0 -1
- package/dist/main-Cp6wVlR7.js +0 -126
- package/dist/main-Cp6wVlR7.js.map +0 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { TChainId, TPassportConfig } from '../../../utils/types';
|
|
2
2
|
import { Pages } from '../../../utils/enums';
|
|
3
|
+
import { ethers } from '@credenza3/core-web-evm-ext';
|
|
3
4
|
export declare const configStore: import('svelte/store').Writable<TPassportConfig<{
|
|
4
5
|
chainId: TChainId;
|
|
6
|
+
provider?: ethers.Eip1193Provider;
|
|
5
7
|
}>>;
|
|
6
8
|
export declare const forcedPage: import('svelte/store').Readable<"profile" | "logout" | "login" | "passportId" | "wallet" | "updateProfile" | "sendTokens" | "confirmAccount" | "payment" | "paymentResult" | "scanner" | "error" | "loader" | "sign" | "richAlert" | Pages.LOGIN | Pages.UPDATE_PROFILE | Pages.CONFIRM_ACCOUNT | null>;
|
|
7
9
|
export declare const cloakStore: import('svelte/store').Readable<boolean>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@credenza3/passport-evm",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.17",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Credenza Passport",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -54,8 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@credenza-web3/contracts": "^0.1.44",
|
|
57
|
-
"@credenza3/core-web-evm-ext": "0.0.
|
|
58
|
-
"@credenza3/core-web-evm-metamask-ext": "0.0.7",
|
|
57
|
+
"@credenza3/core-web-evm-ext": "^0.0.10",
|
|
59
58
|
"@credenza3/scanner-lib": "0.0.1",
|
|
60
59
|
"@zerodevx/svelte-toast": "^0.9.6",
|
|
61
60
|
"ethers": "^6.14.4",
|
package/dist/Login-CTrNVHVw.js
DELETED
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
import { c as z, p as V, f as k, g as xt, e as st, b as v, d as B, u as K, a as N, i as q, t as bt, r as et, h as it, n as yt, o as rt } from "./legacy-BnQw8ZSv.js";
|
|
2
|
-
import { o as Lt } from "./index-client-3un-JMX3.js";
|
|
3
|
-
import { v as U, B as C, C as S, z as F, u as W, y as j, G as D, F as Ct, D as ot, K as h, E as J, w as St, J as A, m as tt, A as X, x as Ot, I as ct, aY as at, aZ as Qt, L as $, W as At, N as kt, a_ as Mt, a5 as Pt, Q as Tt, R as qt } from "./index-BjcW8vls.js";
|
|
4
|
-
import { C as Dt, a as Rt } from "./App-Cr6VD6df.js";
|
|
5
|
-
import { C as It } from "./ContentHeader-yEGO8i6j.js";
|
|
6
|
-
import { L as lt } from "./Loader-B-YyFNIZ.js";
|
|
7
|
-
import { e as Et, i as Ht } from "./each-D1y4pI2R.js";
|
|
8
|
-
import { h as Nt } from "./html-CpZ2yh53.js";
|
|
9
|
-
import { P as jt, a as Jt } from "./svg-BwNV4pWZ.js";
|
|
10
|
-
var zt = k(`<button class="crtw-w-full crtw-text-center crtw-h-11 crtw-font-medium
|
|
11
|
-
crtw-rounded-sm crtw-text-[13px] sm:crtw-text-sm crtw-items-center crtw-bg-black
|
|
12
|
-
crtw-text-white crtw-mt-[5px] crtw-justify-center crtw-flex"><!></button>`);
|
|
13
|
-
function dt(s, o) {
|
|
14
|
-
if (new.target) return z({ component: dt, ...s });
|
|
15
|
-
U(o, !1);
|
|
16
|
-
let r = V(o, "handler", 12);
|
|
17
|
-
var e = zt(), x = C(e);
|
|
18
|
-
return xt(x, o, "default", {}), S(e), st("click", e, function(...l) {
|
|
19
|
-
var i;
|
|
20
|
-
(i = r()) == null || i.apply(this, l);
|
|
21
|
-
}), v(s, e), F({
|
|
22
|
-
get handler() {
|
|
23
|
-
return r();
|
|
24
|
-
},
|
|
25
|
-
set handler(l) {
|
|
26
|
-
r(l), W();
|
|
27
|
-
},
|
|
28
|
-
$set: K,
|
|
29
|
-
$on: (l, i) => B(o, l, i)
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
var Bt = k('<div class="crtw-text-center crtw-text-gray-500 crtw-text-sm">No login methods available for this client.</div>'), Kt = k('<div class="crtw-m-5"><!></div>');
|
|
33
|
-
function ut(s, o) {
|
|
34
|
-
if (new.target) return z({ component: ut, ...s });
|
|
35
|
-
U(o, !1);
|
|
36
|
-
let r = V(o, "options", 12), { loginMethods: e, handleLogin: x, isLoading: l } = r();
|
|
37
|
-
var i = N(), g = j(i);
|
|
38
|
-
{
|
|
39
|
-
var f = (a) => {
|
|
40
|
-
Dt(a, {
|
|
41
|
-
children: (c, t) => {
|
|
42
|
-
var n = N(), p = j(n);
|
|
43
|
-
{
|
|
44
|
-
var M = (m) => {
|
|
45
|
-
var d = Bt();
|
|
46
|
-
v(m, d);
|
|
47
|
-
}, R = (m) => {
|
|
48
|
-
var d = N(), I = j(d);
|
|
49
|
-
Et(I, 1, () => e, Ht, (E, O) => {
|
|
50
|
-
dt(E, {
|
|
51
|
-
handler: () => x(h(O)),
|
|
52
|
-
children: (_, P) => {
|
|
53
|
-
Ct();
|
|
54
|
-
var T = bt();
|
|
55
|
-
ot(() => et(T, `Continue with ${h(O), D(() => h(O).text) ?? ""}`)), v(_, T);
|
|
56
|
-
},
|
|
57
|
-
$$slots: { default: !0 }
|
|
58
|
-
});
|
|
59
|
-
}), v(m, d);
|
|
60
|
-
};
|
|
61
|
-
q(p, (m) => {
|
|
62
|
-
D(() => e.length === 0) ? m(M) : m(R, !1);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
v(c, n);
|
|
66
|
-
},
|
|
67
|
-
$$slots: { default: !0 }
|
|
68
|
-
});
|
|
69
|
-
}, b = (a) => {
|
|
70
|
-
var c = Kt(), t = C(c);
|
|
71
|
-
lt(t, {}), S(c), v(a, c);
|
|
72
|
-
};
|
|
73
|
-
q(g, (a) => {
|
|
74
|
-
l ? a(b, !1) : a(f);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return v(s, i), F({
|
|
78
|
-
get options() {
|
|
79
|
-
return r();
|
|
80
|
-
},
|
|
81
|
-
set options(a) {
|
|
82
|
-
r(a), W();
|
|
83
|
-
},
|
|
84
|
-
$set: K,
|
|
85
|
-
$on: (a, c) => B(o, a, c)
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
var Ut = k("<div><!></div>"), Ft = k('<div class="crtw-mt-4"><span class="crtw-text-sm">Cached QR is available. <span class="crtw-cursor-pointer crtw-text-warningTextColor" role="button" tabindex="0"> </span></span> <!></div>');
|
|
89
|
-
function vt(s, o) {
|
|
90
|
-
if (new.target) return z({ component: vt, ...s });
|
|
91
|
-
U(o, !1);
|
|
92
|
-
let r = V(o, "options", 12), { qrCodeSvg: e, showQr: x, hideQr: l } = r();
|
|
93
|
-
var i = Ft(), g = C(i), f = J(C(g)), b = C(f, !0);
|
|
94
|
-
S(f), S(g);
|
|
95
|
-
var a = J(g, 2);
|
|
96
|
-
{
|
|
97
|
-
var c = (t) => {
|
|
98
|
-
var n = Ut(), p = C(n);
|
|
99
|
-
Nt(p, () => e), S(n), v(t, n);
|
|
100
|
-
};
|
|
101
|
-
q(a, (t) => {
|
|
102
|
-
e && t(c);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return S(i), ot(() => et(b, e ? "Hide QR!" : "Show QR!")), st("click", f, function(...t) {
|
|
106
|
-
var n;
|
|
107
|
-
(n = e ? l : x) == null || n.apply(this, t);
|
|
108
|
-
}), v(s, i), F({
|
|
109
|
-
get options() {
|
|
110
|
-
return r();
|
|
111
|
-
},
|
|
112
|
-
set options(t) {
|
|
113
|
-
r(t), W();
|
|
114
|
-
},
|
|
115
|
-
$set: K,
|
|
116
|
-
$on: (t, n) => B(o, t, n)
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
var Gt = k('<p class="crtw-text-center crtw-text-xs crtw-text-gray-700"> </p>'), Vt = k('<div class="crtw-flex crtw-flex-col crtw-gap-14 crtw-items-center crtw-w-full"><div class="crtw-flex crtw-flex-col crtw-gap-3 crtw-items-center crtw-w-full"><!> <!></div> <!> <!></div>');
|
|
120
|
-
function ft(s, o) {
|
|
121
|
-
if (new.target) return z({ component: ft, ...s });
|
|
122
|
-
U(o, !1);
|
|
123
|
-
const r = tt();
|
|
124
|
-
let e = V(o, "options", 12), {
|
|
125
|
-
authTitle: x,
|
|
126
|
-
authDescription: l,
|
|
127
|
-
qrOptions: i,
|
|
128
|
-
authOptions: g
|
|
129
|
-
} = e();
|
|
130
|
-
St(() => X(e()), () => {
|
|
131
|
-
A(r, e().isLoading);
|
|
132
|
-
}), Ot(), it();
|
|
133
|
-
var f = N(), b = j(f);
|
|
134
|
-
{
|
|
135
|
-
var a = (t) => {
|
|
136
|
-
lt(t, {});
|
|
137
|
-
}, c = (t) => {
|
|
138
|
-
var n = Vt(), p = C(n), M = C(p);
|
|
139
|
-
It(M, {
|
|
140
|
-
get text() {
|
|
141
|
-
return x;
|
|
142
|
-
},
|
|
143
|
-
get description() {
|
|
144
|
-
return l;
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
var R = J(M, 2);
|
|
148
|
-
{
|
|
149
|
-
var m = (_) => {
|
|
150
|
-
var P = Gt(), T = C(P, !0);
|
|
151
|
-
S(P), ot(() => et(T, (X(e()), D(() => e().infoText)))), v(_, P);
|
|
152
|
-
};
|
|
153
|
-
q(R, (_) => {
|
|
154
|
-
X(e()), D(() => e().infoText) && _(m);
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
S(p);
|
|
158
|
-
var d = J(p, 2);
|
|
159
|
-
const I = ct(() => (h(r), D(() => ({
|
|
160
|
-
...g,
|
|
161
|
-
isLoading: h(r)
|
|
162
|
-
}))));
|
|
163
|
-
ut(d, {
|
|
164
|
-
get options() {
|
|
165
|
-
return h(I);
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
var E = J(d, 2);
|
|
169
|
-
{
|
|
170
|
-
var O = (_) => {
|
|
171
|
-
vt(_, {
|
|
172
|
-
get options() {
|
|
173
|
-
return i;
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
};
|
|
177
|
-
q(E, (_) => {
|
|
178
|
-
i && _(O);
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
S(n), v(t, n);
|
|
182
|
-
};
|
|
183
|
-
q(b, (t) => {
|
|
184
|
-
h(r) ? t(a) : t(c, !1);
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
return v(s, f), F({
|
|
188
|
-
get options() {
|
|
189
|
-
return e();
|
|
190
|
-
},
|
|
191
|
-
set options(t) {
|
|
192
|
-
e(t), W();
|
|
193
|
-
},
|
|
194
|
-
$set: K,
|
|
195
|
-
$on: (t, n) => B(o, t, n)
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
const Wt = (s) => ({
|
|
199
|
-
oauth: {
|
|
200
|
-
provider: at.OAUTH,
|
|
201
|
-
text: "credenza auth",
|
|
202
|
-
condition: s.some((o) => o !== "evm")
|
|
203
|
-
},
|
|
204
|
-
metamask: {
|
|
205
|
-
provider: at.METAMASK,
|
|
206
|
-
text: "metamask",
|
|
207
|
-
condition: s.includes("evm") && !!window.ethereum
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
function Yt(s, o) {
|
|
211
|
-
if (new.target) return z({ component: Yt, ...s });
|
|
212
|
-
U(o, !1);
|
|
213
|
-
const [r, e] = yt(), x = () => rt(Tt, "$forcedPage", r), l = () => rt(qt, "$pageStore", r);
|
|
214
|
-
var i = this && this.__awaiter || function(u, w, y, L) {
|
|
215
|
-
function _t(H) {
|
|
216
|
-
return H instanceof y ? H : new y(function(G) {
|
|
217
|
-
G(H);
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
return new (y || (y = Promise))(function(H, G) {
|
|
221
|
-
function ht(Q) {
|
|
222
|
-
try {
|
|
223
|
-
Y(L.next(Q));
|
|
224
|
-
} catch (Z) {
|
|
225
|
-
G(Z);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
function wt(Q) {
|
|
229
|
-
try {
|
|
230
|
-
Y(L.throw(Q));
|
|
231
|
-
} catch (Z) {
|
|
232
|
-
G(Z);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
function Y(Q) {
|
|
236
|
-
Q.done ? H(Q.value) : _t(Q.value).then(ht, wt);
|
|
237
|
-
}
|
|
238
|
-
Y((L = L.apply(u, w || [])).next());
|
|
239
|
-
});
|
|
240
|
-
}, g, f, b, a, c, t;
|
|
241
|
-
const n = localStorage.getItem(Qt.QR_CODE);
|
|
242
|
-
let p = tt();
|
|
243
|
-
const M = () => {
|
|
244
|
-
if (!n) return;
|
|
245
|
-
const u = JSON.parse(n), w = jt(JSON.stringify(u));
|
|
246
|
-
A(p, Jt(w, { width: 250, height: 250 }));
|
|
247
|
-
}, R = () => A(p, "");
|
|
248
|
-
let m = $(At), d = tt(!1);
|
|
249
|
-
const { login: I, close: E } = $(kt), O = (u) => i(void 0, [u], void 0, function* ({ provider: w }) {
|
|
250
|
-
try {
|
|
251
|
-
A(d, !0), yield I(w), A(d, !1), !x() && !l() && E();
|
|
252
|
-
} catch {
|
|
253
|
-
A(d, !1);
|
|
254
|
-
}
|
|
255
|
-
}), _ = () => i(void 0, void 0, void 0, function* () {
|
|
256
|
-
const u = Wt($(Pt).available_login_types);
|
|
257
|
-
return Object.entries(u).filter(([y, L]) => L.condition !== void 0 ? L.condition : !0).map(([y, L]) => Object.assign({}, L));
|
|
258
|
-
}), P = (b = (f = (g = m.content) === null || g === void 0 ? void 0 : g.auth) === null || f === void 0 ? void 0 : f.title) !== null && b !== void 0 ? b : "Let’s get started", T = (t = (c = (a = m.content) === null || a === void 0 ? void 0 : a.auth) === null || c === void 0 ? void 0 : c.description) !== null && t !== void 0 ? t : "Confirm your account to connect.", gt = Mt.subscribe((u) => A(d, u));
|
|
259
|
-
Lt(gt), it();
|
|
260
|
-
var nt = N(), pt = j(nt);
|
|
261
|
-
Rt(pt, () => D(_), null, (u, w) => {
|
|
262
|
-
const y = ct(() => ({
|
|
263
|
-
isLoading: h(d),
|
|
264
|
-
authTitle: P,
|
|
265
|
-
authDescription: T,
|
|
266
|
-
qrOptions: {
|
|
267
|
-
qrCodeSvg: h(p),
|
|
268
|
-
showQr: M,
|
|
269
|
-
hideQr: R
|
|
270
|
-
},
|
|
271
|
-
authOptions: {
|
|
272
|
-
loginMethods: h(w),
|
|
273
|
-
handleLogin: O
|
|
274
|
-
}
|
|
275
|
-
}));
|
|
276
|
-
ft(u, {
|
|
277
|
-
get options() {
|
|
278
|
-
return h(y);
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
}), v(s, nt);
|
|
282
|
-
var mt = F({
|
|
283
|
-
$set: K,
|
|
284
|
-
$on: (u, w) => B(o, u, w)
|
|
285
|
-
});
|
|
286
|
-
return e(), mt;
|
|
287
|
-
}
|
|
288
|
-
export {
|
|
289
|
-
Yt as default
|
|
290
|
-
};
|
|
291
|
-
//# sourceMappingURL=Login-CTrNVHVw.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Login-CTrNVHVw.js","sources":["../../ui/main/login/auth-methods/AuthButton.svelte","../../ui/main/login/auth-methods/AuthMethods.svelte","../../ui/main/login/cachedQr/CachedQr.svelte","../../ui/main/login/Login.svelte","../src/app/pages/login/authMethods.helper.ts","../src/app/pages/login/Login.svelte"],"sourcesContent":["<script lang=\"ts\">\n export let handler: () => void\n</script>\n\n<button\n class=\"crtw-w-full crtw-text-center crtw-h-11 crtw-font-medium\n crtw-rounded-sm crtw-text-[13px] sm:crtw-text-sm crtw-items-center crtw-bg-black\ncrtw-text-white crtw-mt-[5px] crtw-justify-center crtw-flex\"\n on:click={handler}\n>\n <slot />\n</button>\n","<script lang=\"ts\">\n import { type TAvailableLoginMethod } from \"../../../../utils/types\";\n import Container from \"../../shared/Container.svelte\";\n import Loader from \"../../shared/Loader.svelte\";\n import AuthButton from \"./AuthButton.svelte\";\n\n export let options: {\n loginMethods: TAvailableLoginMethod[];\n handleLogin: (method: TAvailableLoginMethod) => void;\n isLoading: boolean;\n };\n\n let { loginMethods, handleLogin, isLoading } =\n options;\n</script>\n\n{#if !isLoading}\n <Container>\n {#if loginMethods.length === 0}\n <div class=\"crtw-text-center crtw-text-gray-500 crtw-text-sm\">\n No login methods available for this client.\n </div>\n {:else}\n {#each loginMethods as method}\n <AuthButton handler={() => handleLogin(method)}>\n Continue with {method.text}\n </AuthButton>\n {/each}\n {/if}\n </Container>\n{:else}\n <div class=\"crtw-m-5\">\n <Loader />\n </div>\n{/if}\n","<script lang=\"ts\">\n export let options: {\n qrCodeSvg: string;\n showQr: () => void;\n hideQr: () => void;\n };\n\n let { qrCodeSvg, showQr, hideQr } = options;\n</script>\n\n<div class=\"crtw-mt-4\">\n <span class=\"crtw-text-sm\">\n Cached QR is available.\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n <span\n class=\"crtw-cursor-pointer crtw-text-warningTextColor\"\n on:click={qrCodeSvg ? hideQr : showQr}\n role=\"button\"\n tabindex=\"0\"\n >\n {qrCodeSvg ? \"Hide QR!\" : \"Show QR!\"}\n </span>\n </span>\n\n {#if qrCodeSvg}\n <div>{@html qrCodeSvg}</div>\n {/if}\n</div>\n","<script lang=\"ts\">\n import { type TAvailableLoginMethod } from \"../../../utils/types\";\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Loader from \"../shared/Loader.svelte\";\n import AuthMethods from \"./auth-methods/AuthMethods.svelte\";\n import CachedQr from \"./cachedQr/CachedQr.svelte\";\n\n export let options: {\n isLoading: boolean;\n authTitle: string;\n authDescription: string;\n infoText?: string;\n qrOptions?: {\n qrCodeSvg: string;\n showQr: () => void;\n hideQr: () => void;\n };\n authOptions: {\n loginMethods: TAvailableLoginMethod[];\n handleLogin: (method: TAvailableLoginMethod) => void;\n };\n };\n\n let { authTitle, authDescription, qrOptions, authOptions } =\n options;\n\n $:isLoading = options.isLoading;\n</script>\n\n{#if isLoading}\n <Loader />\n{:else}\n <div\n class=\"crtw-flex crtw-flex-col crtw-gap-14 crtw-items-center crtw-w-full\"\n >\n <div\n class=\"crtw-flex crtw-flex-col crtw-gap-3 crtw-items-center crtw-w-full\"\n >\n <ContentHeader text={authTitle} description={authDescription} />\n {#if options.infoText}\n <p class=\"crtw-text-center crtw-text-xs crtw-text-gray-700\">\n {options.infoText}\n </p>\n {/if}\n </div>\n <AuthMethods options={{ ...authOptions, isLoading }} />\n\n {#if qrOptions}\n <CachedQr options={qrOptions} />\n {/if}\n </div>\n{/if}\n","import { AUTH_PROVIDERS } from '@packages/utils/enums'\n\nexport const getAuthMethodsConfigs = (availableMethods: string[]) => {\n return {\n oauth: {\n provider: AUTH_PROVIDERS.OAUTH,\n text: 'credenza auth',\n condition: availableMethods.some(method => method !== 'evm'),\n },\n metamask: {\n provider: AUTH_PROVIDERS.METAMASK,\n text: 'metamask',\n condition: availableMethods.includes('evm') && !!window.ethereum,\n },\n }\n}\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { isLoggingInProcessStore, fn, pageStore, clientPublicStore } from '@packages/stores'\n import { configStore, forcedPage } from '@src/stores'\n import { onDestroy } from 'svelte'\n import { Login } from '@packages/ui'\n import {\n AUTH_PROVIDERS,\n PassportLocalStorage,\n } from '@packages/utils/enums'\n import { generate } from 'lean-qr'\n import { toSvgSource } from 'lean-qr/extras/svg'\n import { getAuthMethodsConfigs } from './authMethods.helper'\n import { type TAvailableLoginMethod } from '@packages/utils/types'\n\n const cachedQr = localStorage.getItem(PassportLocalStorage.QR_CODE)\n let qrCodeSvg: string\n const showQr = () => {\n if (!cachedQr) return\n const qrData = JSON.parse(cachedQr)\n const code = generate(JSON.stringify(qrData))\n qrCodeSvg = toSvgSource(code, { width: 250, height: 250 })\n }\n const hideQr = () => (qrCodeSvg = '')\n\n let config = get(configStore)\n let isLoading: boolean = false\n\n const { login, close } = get(fn)\n\n const handleLogin = async ({\n provider,\n }: {\n provider: AUTH_PROVIDERS\n }) => {\n try {\n isLoading = true\n await login(provider)\n isLoading = false\n if (!$forcedPage && !$pageStore) close()\n } catch (err) {\n isLoading = false\n }\n }\n\n const getAvailableLoginMethods = async (): Promise<TAvailableLoginMethod[]> => {\n const methodConfigs = getAuthMethodsConfigs(get(clientPublicStore).available_login_types)\n const availableLoginMethods = Object.entries(methodConfigs)\n .filter(([_, config]) => (config.condition !== undefined ? config.condition : true))\n .map(([_, config]) => ({\n ...config,\n }))\n\n return availableLoginMethods\n }\n\n const authTitle = config.content?.auth?.title ?? 'Let’s get started'\n const authDescription = config.content?.auth?.description ?? 'Confirm your account to connect.'\n\n const loginIndicatorSub = isLoggingInProcessStore.subscribe((val) => (isLoading = val))\n\n onDestroy(loginIndicatorSub)\n</script>\n\n{#await getAvailableLoginMethods() then loginMethods}\n <Login\n options={{\n isLoading,\n authTitle,\n authDescription,\n qrOptions: {\n qrCodeSvg,\n showQr,\n hideQr,\n },\n authOptions: {\n loginMethods,\n handleLogin\n },\n }}\n />\n{/await}\n\n"],"names":["handler","$.prop","$$props","_a","$$args","options","loginMethods","handleLogin","isLoading","$.each","node_2","method","$.untrack","$.get","$$render","consequent","alternate","alternate_1","consequent_1","qrCodeSvg","showQr","hideQr","authTitle","authDescription","qrOptions","authOptions","consequent_2","getAuthMethodsConfigs","availableMethods","AUTH_PROVIDERS","__awaiter","thisArg","_arguments","P","generator","cachedQr","PassportLocalStorage","$.mutable_source","qrData","code","generate","toSvgSource","$.set","config","get","configStore","login","close","fn","provider","$forcedPage","$pageStore","getAvailableLoginMethods","methodConfigs","clientPublicStore","_","_c","_b","_f","_e","loginIndicatorSub","isLoggingInProcessStore","val","onDestroy","$.await","node"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Payment-CT0OPhHK.js","sources":["../../ui/images/lock.svg","../../ui/main/payment/PaymentSwitchButton.svelte","../../ui/main/payment/Payment.svelte","../../ui/main/payment/Stripe.svelte","../../ui/main/payment/CredenzaBalance.svelte","../src/app/pages/payment/stripe/wallet-pay/WalletPay.svelte","../src/app/pages/payment/stripe/Stripe.styles.ts","../../utils/lib/scripts/scripts.ts","../../utils/lib/orders/index.ts","../src/app/pages/payment/Payment.service.ts","../src/app/pages/payment/stripe/Stripe.svelte","../src/app/pages/payment/credenza-balance/CredenzaBalance.svelte","../src/app/pages/payment/Payment.svelte"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='22'%20height='22'%20viewBox='0%200%2024%2024'%3e%3cpath%20fill='%23bbb'%20d='M17%209.761v-4.761c0-2.761-2.238-5-5-5-2.763%200-5%202.239-5%205v4.761c-1.827%201.466-3%203.714-3%206.239%200%204.418%203.582%208%208%208s8-3.582%208-8c0-2.525-1.173-4.773-3-6.239zm-8-4.761c0-1.654%201.346-3%203-3s3%201.346%203%203v3.587c-.927-.376-1.938-.587-3-.587s-2.073.211-3%20.587v-3.587zm4%2011.723v2.277h-2v-2.277c-.596-.347-1-.984-1-1.723%200-1.104.896-2%202-2s2%20.896%202%202c0%20.738-.404%201.376-1%201.723z'/%3e%3c/svg%3e\"","<style>\n .active {\n background-color: #ffff;\n font-weight: 500;\n color: #000;\n }\n .btn-disabled {\n pointer-events: none;\n background-color: #d0d2d5;\n }\n</style>\n\n<script lang=\"ts\">\n import Loader from '../shared/Loader.svelte'\n \n export let onClick: (...args: unknown[]) => unknown\n export let text: string\n export let disabled: boolean = false\n export let isLoading: boolean = false\n export let isActive: boolean = false\n</script>\n\n<button\n type=\"submit\"\n class=\"crtw-flex crtw-justify-center crtw-items-center crtw-w-full crtw-h-[50px] crtw-cursor-pointer crtw-border crtw-border-gray-300\n crtw-rounded crtw-font-['poppins'] crtw-text-gray-600\"\n class:btn-disabled={disabled || isLoading}\n class:active={isActive}\n on:click|preventDefault={onClick}\n>\n {#if isLoading}\n <Loader />\n {:else}\n {text}\n {/if}\n</button>","<script lang=\"ts\">\n import { PaymentViews } from '../../../utils/enums';\n import ButtonBack from '../shared/inputs/button-back/ButtonBack.svelte';\n import LockIcon from '../../images/lock.svg'\n import type { TUser } from '../../../utils/types';\n import PaymentSwitchButton from './PaymentSwitchButton.svelte';\n\n export let isLoading: boolean\n export let options: {\n user: TUser| null\n title: string\n subtitle?: string\n onBackClick: () => void\n isStripeDisabled: boolean\n isCredezaValueDisabled: boolean,\n isPriceLoading: boolean\n totalSumCents: number,\n currencySymbol?: string\n }\n\n \n let { user, title, subtitle, onBackClick, isStripeDisabled, currencySymbol = '$' } = options\n let activeTab = isStripeDisabled ? PaymentViews.CREDENZA_BALANCE : PaymentViews.CREDIT_CARD\n\n $: isPriceLoading = options.isPriceLoading\n $: totalSumCents = options.totalSumCents\n $: isCredezaValueDisabled = options.isCredezaValueDisabled\n</script>\n\n<div class=\"cpui-payment crtw-text-left crtw-w-full\" class:crtw-hidden={isLoading}>\n <div class=\"crtw-text-right crtw-text-[13px] crtw-text-gray-400 crtw-mb-6\">\n <div class=\"crtw-break-words\">{user?.email || user?.pending?.email || ''}</div>\n <div>{user?.phone || user?.pending?.phone || ''}</div>\n </div>\n <div class=\"crtw-font-bold crtw-text-xl\">{title}</div>\n <div class=\"crtw-flex crtw-justify-between crtw-mb-3 crtw-text-gray-600 crtw-font-bold\">\n {#if subtitle}\n <div>{subtitle}</div>\n {/if}\n {#if isPriceLoading}\n <div>Getting price...</div>\n {:else if totalSumCents}\n <div>{currencySymbol}{(+totalSumCents / 100).toFixed(2)}</div>\n {/if}\n </div>\n <div class=\"crtw-flex crtw-bg-gray-200 crtw-rounded-md crtw-p-px\">\n <PaymentSwitchButton\n text=\"Credit Card\"\n onClick={() => (activeTab = PaymentViews.CREDIT_CARD)}\n isActive={activeTab === PaymentViews.CREDIT_CARD}\n disabled={isStripeDisabled}\n />\n <PaymentSwitchButton\n text=\"Credenza Balance\"\n onClick={() => (activeTab = PaymentViews.CREDENZA_BALANCE)}\n isActive={activeTab === PaymentViews.CREDENZA_BALANCE}\n disabled={isCredezaValueDisabled}\n />\n </div>\n <hr class=\"crtw-block crtw-border-t-2 crtw-border-gray-200 crtw-w-1/2 crtw-mx-auto crtw-mt-3.5 crtw-mb-[30px]\" />\n {#if activeTab === PaymentViews.CREDIT_CARD}\n <slot name=\"credit-card\" />\n {:else if activeTab === PaymentViews.CREDENZA_BALANCE}\n <slot name=\"cred-balance\" />\n {/if}\n <div class=\"crtw-flex crtw-w-full crtw-justify-center crtw-items-center\">\n <img src={LockIcon} alt=\"\" /><span class=\"crtw-text-sm crtw-text-gray-400 crtw-ml-1\"\n >Payments are secure and encrypted</span\n >\n </div>\n <div class=\"crtw-mt-1.5\">\n <ButtonBack onClick={onBackClick} />\n </div>\n</div>\n","<script lang=\"ts\">\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n isCardFocused: boolean\n onPay: () => void\n currencySymbol?: string\n }\n export let isPaymentDisabled: boolean\n export let isLoading: boolean\n export let totalToPay: string\n\n let { isCardFocused, onPay, currencySymbol = '$' } = options\n</script>\n\n<div class=\"crtw-text-base crtw-mb-1.5\">Credit card details</div>\n<div\n id=\"cpui-card-element\"\n class=\"crtw-border crtw-border-gray-300 crtw-rounded crtw-px-2.5 crtw-py-4 crtw-mb-2.5 crtw-w-full\"\n style={isCardFocused ? 'border-color: #121e2b' : ''}\n/>\n<!-- Used to display Element errors. -->\n<div id=\"card-errors\" role=\"alert\" />\n<Button\n text={`Pay ${currencySymbol}${totalToPay}`}\n onClick={onPay}\n disabled={isPaymentDisabled}\n bind:isLoading\n/>","<script lang=\"ts\">\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n formattedBalance: string\n balance: number\n credAlias: string\n onPay: () => void\n onGetCred: () => void\n totalToPay: string\n isLoading: boolean\n isPaymentDisabled: boolean\n }\n\n let { credAlias, onPay, onGetCred } = options\n\n $: isLoading = options.isLoading\n $: isPaymentDisabled = options.isPaymentDisabled\n $: formattedBalance = options.formattedBalance\n $: totalToPay = options.totalToPay\n $: balance = options.balance\n</script>\n\n<div class=\"crtw-w-full crtw-text-center crtw-my-5\">\n <div class=\"crtw-text-3xl crtw-text-black crtw-font-bold\">\n {#if Number(totalToPay) > balance}\n INSUFFICIENT FUNDS\n {:else}\n {formattedBalance}\n {/if}\n \n </div>\n <div class=\"crtw-mb-5 crtw-text-gray-600\">\n {#if Number(totalToPay) > balance}\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n You do not have enough stored value to make this payment. \n <span\n class=\"crtw-text-black crtw-cursor-pointer\"\n role=\"button\"\n tabindex=\"0\"\n on:click={onGetCred}\n >\n Click to get some {credAlias}\n </span>\n {:else}\n Your balance after purchase\n {/if}\n </div>\n\n <Button\n text={`Pay ${totalToPay} ${credAlias}`}\n onClick={onPay}\n disabled={isPaymentDisabled}\n {isLoading}\n />\n</div>","<script lang=\"ts\">\n import { onMount } from 'svelte'\n import { dispatch, PassportEvents } from '@lib/events/events'\n\n export let doPayment: (stripeTokenId: string) => Promise<void>\n export let stripe: Window['Stripe']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let stripeElements: any\n export let priceCents: number\n export let isLoading: boolean\n\n onMount(async () => {\n const paymentRequest = stripe.paymentRequest({\n country: 'US',\n currency: 'usd',\n total: {\n label: 'Apple/Google payment',\n amount: priceCents,\n },\n requestPayerName: true,\n requestPayerEmail: true,\n })\n const canMakePayment = await paymentRequest.canMakePayment()\n if (!canMakePayment) return\n\n const walletPayElement = document.getElementById('ctui-wallet-pay')\n if (walletPayElement) walletPayElement.style.display = 'crtw-block'\n\n const prButton = stripeElements.create('paymentRequestButton', {\n paymentRequest: paymentRequest,\n style: {\n paymentRequestButton: {\n height: '48px',\n },\n },\n })\n prButton.mount('#ctui-payment-request-button')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n paymentRequest.on('token', async (event: any) => {\n isLoading = true\n try {\n await doPayment(event.token.id)\n await event.complete('success')\n } catch (err) {\n await event.complete('error')\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n })\n })\n</script>\n\n<div id=\"ctui-wallet-pay\" class=\"crtw-w-full crtw-my-4\" style=\"dispay: none;\">\n <div id=\"ctui-payment-request-button\"></div>\n</div>\n","export const stripeStyles = {\n base: {\n color: '#121e2b',\n fontSize: '12px',\n '::placeholder': {\n color: '#d9d9d9',\n },\n },\n invalid: {\n color: '#fa755a',\n },\n}\n","export const loadScript = (src: string) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = src\n document.body.appendChild(script)\n script.addEventListener('load', () => resolve(script))\n script.addEventListener('error', () => reject(script))\n })\n}\n","import { get } from \"svelte/store\";\nimport { accessTokenStore } from \"../../../stores\";\nimport type { TPaymentReturn } from \"@packages/utils/types\";\n\nexport const getOrderDetails = async (apiUrl: string, orderId: string): Promise<TPaymentReturn> => {\n const res = await fetch(`${apiUrl}/orders/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n}\nexport const getCompmletedOrderDetails = async (\n apiUrl: string,\n orderId: string,\n maxRetries = 5\n) => {\n let attempts = 0;\n\n while (attempts < maxRetries) {\n const res = await fetch(`${apiUrl}/orders/completed/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n\n if (res.status === 204) {\n attempts++;\n if (attempts < maxRetries) {\n continue;\n } else {\n throw new Error(\"No content received after multiple attempts\");\n }\n }\n\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n }\n};\n\nexport const validateOrderItems = (\n txs: string[] | null[],\n orders: TPaymentReturn[\"items\"],\n): string => {\n const errorMessages = orders\n .filter((item) => item.error)\n .map(\n (item) =>\n `Name: ${item.metadata.name}, reason: ${item.error}`\n )\n .join(\"\\n\");\n if (txs.every((item) => item === null)) {\n throw new Error(`All transactions failed. \\n${errorMessages}`);\n } else if (orders?.every(item => item.status === \"ERROR\")) {\n throw new Error(`All transactions failed.}`);\n }\n return errorMessages;\n};\n","import { get } from 'svelte/store'\nimport { accessTokenStore, fn } from '@packages/stores'\nimport { RecieptTarget } from '@packages/utils/enums'\nimport { configStore } from '@src/stores/config'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport type { TMembershipPaymentData, TTokenPaymentData } from './oders.types'\nimport { dispatch, PassportEvents } from '@lib/events/events'\nimport { TransactionTypes } from '@packages/utils/enums'\nimport { pageOptsStore, pageStore, userStore } from '@packages/stores'\nimport { Pages } from '@packages/utils/enums'\nimport { analytics } from '@lib/mixpanel/mixpanel'\nimport { waitVideoEnded } from '@components/progress/ProgressVideo.service'\nimport { getAddress } from '@src/passport/blockchain'\nimport { validateOrderItems } from '@lib/orders'\nimport type { TPaymentReturn } from '@packages/utils/types'\n\n\nexport const requestReceipt = async ({\n hash,\n stripeChargeId,\n title,\n subtitle,\n amount,\n currency,\n}: {\n hash?: string\n stripeChargeId?: string\n title?: string\n subtitle?: string\n amount?: number\n currency?: string\n}) => {\n const { credenza, recieptTarget, clientId } = get(configStore)\n\n const result = await fetch(`${credenza.evmApiUrl}/contracts/receipt`, {\n method: 'POST',\n body: JSON.stringify({\n ...(hash ? { tx: hash } : { charge_id: stripeChargeId }),\n ...(amount ? { amount } : {}),\n ...(currency ? { currency } : {}),\n target: recieptTarget || RecieptTarget.EMAIL,\n title,\n subtitle,\n source: getClientConfigByClientId(clientId).name,\n }),\n headers: {\n Authorization: `Bearer ${get(accessTokenStore)}`,\n 'Content-Type': 'application/json',\n },\n })\n\n return result.ok\n}\n\nexport const afterPaymentProcess = async (res: TPaymentReturn, priceCents: number, purchaseConfig: {\n title: string\n subtitle: string\n tokens: TTokenPaymentData[]\n memberships: TMembershipPaymentData[]\n}) => {\n const { toastAlert } = get(fn)\n const config = get(configStore)\n \n const { chain_txs, items } = res\n const failedOrdersMessage = validateOrderItems(chain_txs, items)\n dispatch(PassportEvents.PAYMENT, {\n type: TransactionTypes.STRIPE,\n results: { tokens: purchaseConfig.tokens, memberships: purchaseConfig.memberships },\n })\n toastAlert('Your payment was successful')\n dispatch(PassportEvents.RECHECK_BALANCE, chain_txs)\n\n const user = get(userStore)\n if (user) {\n analytics.track('cp_payment_fiat', {\n $email: user.email,\n $phone: user.phone,\n chain: config.chainId,\n clientId: config.clientId,\n address: await getAddress(),\n location: window.location.href,\n tokens: purchaseConfig?.tokens,\n memberships: purchaseConfig?.memberships,\n total: priceCents / 100,\n description: (purchaseConfig?.title ?? '') + `(${purchaseConfig?.subtitle ?? ''})`,\n })\n }\n\n await waitVideoEnded()\n\n if (priceCents === 0) pageOptsStore.set({ subtitle: 'Your claim was successful!', receipt: false })\n\n if (failedOrdersMessage) {\n pageOptsStore.set({\n title: 'Done!',\n subtitle: 'Your payment was partly successful',\n orders: items,\n })\n }\n pageStore.set(Pages.PAYMENT_RESULT)\n}","<script lang=\"ts\">\n import WalletPay from './wallet-pay/WalletPay.svelte'\n import { onMount } from 'svelte'\n import { get } from 'svelte/store'\n import { stripeStyles } from '@pages/payment/stripe/Stripe.styles'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import { loadScript } from '@lib/scripts/scripts'\n import { pageOptsStore, pageStore, fn } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { Stripe as StripeComponent } from '@packages/ui'\n import { configStore } from '@src/stores/config'\n import { getClientConfigByClientId } from '@lib/clients'\n import { afterPaymentProcess } from '../Payment.service'\n import type { TMembershipPaymentData, TTokenPaymentData } from '../oders.types'\n\n export let priceCents: number\n export let isLoading: boolean\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let purchaseConfig: {\n title: string\n subtitle: string\n tokens: TTokenPaymentData[]\n memberships: TMembershipPaymentData[]\n }\n export let isPriceLoading: boolean\n\n const { toastAlert } = get(fn)\n const config = get(configStore)\n\n let Stripe: Window['Stripe']\n let stripe: Window['Stripe']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let stripeElements: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let cardElement: any\n let isButtonActive: boolean\n\n let isCardFocused = false\n onMount(async () => {\n try {\n if (!Stripe) {\n if (!window.Stripe) {\n await loadScript('https://js.stripe.com/v3/')\n if (!window.Stripe) throw {}\n }\n Stripe = window.Stripe\n }\n } catch (err) {\n return console.log('Please include stripe to use payments.')\n }\n if (stripe) return\n\n const clientName = getClientConfigByClientId(config.clientId).name\n stripe = Stripe(config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT)\n stripeElements = stripe.elements()\n cardElement = stripeElements.create('card', { style: stripeStyles })\n cardElement.mount('#cpui-card-element')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n cardElement.on('change', (event: any) => {\n isButtonActive = event.complete && !event.error\n })\n cardElement.on('focus', () => (isCardFocused = true))\n cardElement.on('blur', () => (isCardFocused = false))\n })\n\n const handleSubmit = async () => {\n try {\n if (!isButtonActive) return\n isLoading = true\n const result = await stripe.createToken(cardElement)\n if (result.error) throw result.error\n await doPayment(result.token.id)\n } catch (err) {\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n }\n\n const doPayment = async (tokenId: string) => {\n try {\n const { processPayment } = await import('@pages/payment/stripe/Stripe.service')\n\n const res = await processPayment(tokenId)\n await afterPaymentProcess(res, priceCents, purchaseConfig)\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message || err })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n }\n }\n\n $: isPaymentDisabled = !isButtonActive || isLoading || isPriceLoading\n $: totalToPay = (priceCents / 100).toFixed(2)\n</script>\n\n<StripeComponent\n bind:isPaymentDisabled\n bind:isLoading\n bind:totalToPay\n options={{\n isCardFocused,\n onPay: handleSubmit,\n currencySymbol: getClientConfigByClientId(config.clientId).currencySymbol,\n }}\n/>\n\n{#if stripe && stripeElements}\n <WalletPay {doPayment} {stripe} {stripeElements} {priceCents} bind:isLoading />\n{/if}\n","<script lang=\"ts\">\n import { ethers } from '@credenza3/core-web-evm-ext'\n import { get } from 'svelte/store'\n import { onMount } from 'svelte'\n import { Pages } from '@packages/utils/enums'\n import { clientPublicStore, fn, pageOptsStore, pageStore, userStore } from '@packages/stores'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import { TransactionTypes } from '@packages/utils/enums'\n import { sendContractTx, getTxScanAddress } from '@src/lib/tx/tx'\n import { requestReceipt } from '@pages/payment/Payment.service'\n import { analytics } from '@lib/mixpanel/mixpanel'\n import { waitVideoEnded } from '@components/progress/ProgressVideo.service'\n import { type TEvmContract, type TPaymentItem } from '@packages/utils/types'\n import { getCryptoCurrencySymbol } from '@lib/strings/strings'\n import { CredenzaBalance } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore, providerStore } from '@src/stores'\n import Loader from '@packages/ui/main/shared/Loader.svelte'\n\n export let totalPriceToken: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let purchaseConfig: any\n export let isLoading: boolean\n export let isPriceLoading: boolean\n export let pricesByToken: { [key: string]: number }\n\n const { getCREDContract, toastAlert } = get(fn)\n const { chainId, clientId } = get(configStore)\n\n let isBalanceLoading: boolean = false\n let balance: bigint = BigInt(0)\n let formattedBalance: string\n let symbol: string = ''\n let contract: ethers.Contract\n let decimals: number\n let userAddress: string\n let signer: ethers.Signer\n let credContract: {\n address: string\n decimals: number\n contract: ethers.Contract\n }\n\n const processPaymentItem = async (item: TPaymentItem, index: number) => {\n try {\n const { credenzaSellableMinAbi } = await import('@src/lib/abi')\n const credenzaSellableContract = new ethers.Contract(item.contractAddress, credenzaSellableMinAbi, signer)\n const tokenOrTypeId = item.tokenId ? item.tokenId : (item.typeId as string)\n const priceToken = pricesByToken[`${item.contractAddress}/${tokenOrTypeId}`]\n\n const approveTx = await contract.approve.populateTransaction(\n await credenzaSellableContract.getAddress(),\n priceToken,\n )\n\n await sendContractTx(approveTx, contract)\n const buyTx = await credenzaSellableContract.buyWithToken.populateTransaction(\n tokenOrTypeId,\n item.amount || 1,\n userAddress,\n )\n\n const result = await sendContractTx(buyTx, credenzaSellableContract)\n\n toastAlert(`<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Purchase TX #${index}</a> was created`)\n dispatch(PassportEvents.PAYMENT, { type: TransactionTypes.ERC20, data: result })\n dispatch(PassportEvents.RECHECK_BALANCE)\n\n await requestReceipt({\n hash: result.hash,\n title: purchaseConfig.title,\n subtitle: purchaseConfig.subtitle,\n currency: 'CRED',\n amount: +ethers.formatUnits(priceToken, decimals),\n })\n dispatch(PassportEvents.RECEIPT, { hash: result.hash })\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n }\n }\n\n const payWithCredenza = async () => {\n try {\n if (BigInt(totalPriceToken) > balance) return\n\n isLoading = true\n const paymentPromises = [...(purchaseConfig.tokens || []), ...(purchaseConfig.memberships || [])].map(\n (item, index) => processPaymentItem(item, index + 1),\n )\n await Promise.all(paymentPromises)\n\n const user = get(userStore)\n if (user) {\n analytics.track('cp_payment_stored_value', {\n $email: user.email,\n $phone: user.phone,\n chain: chainId,\n clientId,\n address: userAddress,\n location: window.location.href,\n tokens: purchaseConfig.tokens,\n memberships: purchaseConfig.memberships,\n total: totalPriceToken,\n description: (purchaseConfig?.title ?? '') + `(${purchaseConfig?.subtitle ?? ''})`,\n })\n }\n\n await waitVideoEnded()\n\n if (totalPriceToken === 0) pageOptsStore.set({ subtitle: 'Your claim was successful!', receipt: false })\n pageStore.set(Pages.PAYMENT_RESULT)\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n } finally {\n isLoading = false\n }\n }\n\n onMount(async () => {\n try {\n isBalanceLoading = true\n credContract = (await getCREDContract()) as TEvmContract\n\n signer = await get(providerStore).getSigner()\n contract = credContract.contract\n decimals = credContract.decimals\n ;[userAddress, symbol] = await Promise.all([getAddress(), contract.symbol()])\n balance = await contract.balanceOf(userAddress)\n\n formattedBalance = `${ethers.formatUnits(BigInt(balance) - BigInt(totalPriceToken), decimals)} ${getCryptoCurrencySymbol(symbol, 'cred')}`\n } catch (err) {\n console.log(err)\n } finally {\n isBalanceLoading = false\n }\n })\n</script>\n\n{#if isBalanceLoading}\n <div class=\"crtw-w-full crtw-justify-items-center crtw-my-5\">\n <Loader />\n </div>\n{:else}\n <CredenzaBalance\n options={{\n formattedBalance,\n balance: Number((+ethers.formatUnits(BigInt(balance), decimals)).toFixed(2)),\n credAlias: $clientPublicStore?.ui_settings.cred_alias,\n onPay: payWithCredenza,\n onGetCred: () => pageStore.set(Pages.WALLET),\n totalToPay: (+ethers.formatUnits(totalPriceToken, decimals)).toFixed(2),\n isLoading,\n isPaymentDisabled: !Number(balance) || BigInt(totalPriceToken) > balance || isPriceLoading,\n }}\n />\n{/if}\n","<script lang=\"ts\">\n import { Pages } from '@packages/utils/enums'\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { ethers } from '@credenza3/core-web-evm-ext'\n\n import { pageOptsStore, userStore, pageStore, fn } from '@packages/stores'\n import { DEFAULT_TOKEN_ID } from '@packages/utils/constants'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import type { TPaymentItem } from '@packages/utils/types'\n import { Payment } from '@packages/ui'\n import Stripe from './stripe/Stripe.svelte'\n import CredenzaBalance from './credenza-balance/CredenzaBalance.svelte'\n import { configStore, providerStore, contractsStore } from '@src/stores'\n\n const { close } = get(fn)\n const chainId = get(configStore).chainId\n\n $: if ($configStore.chainId !== chainId) close()\n\n let totalSumCents: number = 0\n let totalSumToken: number = 0\n let isPriceLoading: boolean = false\n let isLoading: boolean = false\n\n let pricesByToken: { [key: string]: number } = {}\n\n const getTokenPrice = async (sellableContract: ethers.Contract, tokenId: number): Promise<[number, number]> => {\n let priceCents = await sellableContract.getPriceFiat(tokenId).then((result) => Number(result))\n let priceToken = 0\n\n if (priceCents === 0) {\n ;[priceCents, priceToken] = await Promise.all([\n sellableContract.getPriceFiat(DEFAULT_TOKEN_ID).then((result) => Number(result)),\n sellableContract.getPriceToken(DEFAULT_TOKEN_ID).then((result) => Number(result)),\n ])\n } else {\n priceToken = await sellableContract.getPriceToken(tokenId).then((result) => Number(result))\n }\n\n return [priceCents, priceToken]\n }\n\n const calculateTotalPrice = async (items: TPaymentItem[]): Promise<void> => {\n try {\n isPriceLoading = true\n for (const token of items) {\n if (token.contractAddress === $contractsStore.erc20Cred.address) {\n totalSumCents += token.amount * 100\n } else {\n const { credenzaSellableMinAbi } = await import('@src/lib/abi')\n const sellableContract = new ethers.Contract(token.contractAddress, credenzaSellableMinAbi, $providerStore)\n const tokenId = token.tokenId || (token.typeId as string) || DEFAULT_TOKEN_ID\n\n let [priceCents, priceToken] = await getTokenPrice(sellableContract, +tokenId)\n\n if (token?.amount && token?.amount !== 0) {\n priceCents *= token.amount\n priceToken *= token.amount\n }\n\n totalSumCents += priceCents\n totalSumToken += priceToken\n\n pricesByToken[`${token.contractAddress}/${tokenId}`] = priceToken\n }\n }\n } catch (err) {\n dispatch(PassportEvents.ERROR, err)\n } finally {\n isPriceLoading = false\n }\n }\n\n const unsub = pageOptsStore.subscribe(async (store) => {\n if (!store?.tokens?.length && !store?.memberships?.length) return\n\n await calculateTotalPrice([...(store?.tokens || []), ...(store?.memberships || [])])\n })\n\n onDestroy(unsub)\n</script>\n\n{#if isLoading}\n {#await import('@components/progress/ProgressVideo.svelte') then module}\n <svelte:component this={module.default} />\n {/await}\n{/if}\n\n<Payment\n bind:isLoading\n options={{\n user: $userStore,\n title: $pageOptsStore.title || `Order Summary`,\n subtitle: $pageOptsStore.subtitle,\n onBackClick: () => pageStore.set(Pages.WALLET),\n isStripeDisabled: $pageOptsStore.payments?.stripe?.disabled,\n isCredezaValueDisabled: !totalSumCents || $pageOptsStore.payments?.credenzaStoredValue?.disabled,\n isPriceLoading,\n totalSumCents,\n }}\n>\n <div slot=\"credit-card\">\n <Stripe priceCents={totalSumCents} {isPriceLoading} purchaseConfig={$pageOptsStore} bind:isLoading />\n </div>\n <div slot=\"cred-balance\">\n <CredenzaBalance\n {pricesByToken}\n totalPriceToken={totalSumToken}\n {isPriceLoading}\n purchaseConfig={$pageOptsStore}\n bind:isLoading\n />\n </div>\n</Payment>\n"],"names":["LockIcon","onClick","$.prop","$$props","text","disabled","isLoading","isActive","$$render","consequent","alternate","_a","$$args","options","user","title","subtitle","onBackClick","isStripeDisabled","currencySymbol","activeTab","$.mutable_source","PaymentViews","isPriceLoading","totalSumCents","isCredezaValueDisabled","$0","$.untrack","$.get","consequent_2","consequent_1","isPaymentDisabled","totalToPay","isCardFocused","onPay","expression","$.derived_safe_equal","credAlias","onGetCred","formattedBalance","balance","__awaiter","thisArg","_arguments","P","generator","doPayment","stripe","stripeElements","priceCents","onMount","paymentRequest","walletPayElement","event","err","dispatch","PassportEvents","stripeStyles","loadScript","src","resolve","reject","script","getCompmletedOrderDetails","apiUrl","orderId","maxRetries","attempts","res","get","accessTokenStore","validateOrderItems","txs","orders","errorMessages","item","requestReceipt","hash","stripeChargeId","amount","currency","credenza","recieptTarget","clientId","configStore","RecieptTarget","getClientConfigByClientId","afterPaymentProcess","purchaseConfig","toastAlert","fn","config","chain_txs","items","failedOrdersMessage","TransactionTypes","userStore","analytics","getAddress","waitVideoEnded","pageOptsStore","pageStore","Pages","Stripe","cardElement","isButtonActive","clientName","$.set","handleSubmit","result","tokenId","processPayment","totalPriceToken","pricesByToken","getCREDContract","chainId","isBalanceLoading","symbol","contract","decimals","userAddress","signer","credContract","processPaymentItem","index","credenzaSellableMinAbi","credenzaSellableContract","ethers","tokenOrTypeId","priceToken","approveTx","sendContractTx","buyTx","getTxScanAddress","payWithCredenza","paymentPromises","_b","providerStore","getCryptoCurrencySymbol","$clientPublicStore","close","totalSumToken","getTokenPrice","sellableContract","DEFAULT_TOKEN_ID","calculateTotalPrice","token","$contractsStore","$providerStore","unsub","store","onDestroy","$configStore","$.await","node_1","module","$.component","node_2","$$anchor","$$component","$userStore","$pageOptsStore","_d","_c"],"mappings":"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"}
|