@coinflowlabs/angular 0.0.4 → 0.0.5-sandbox1

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 (40) hide show
  1. package/esm2022/coinflowlabs-angular.mjs +5 -0
  2. package/esm2022/lib/coinflow-iframe.component.mjs +67 -0
  3. package/esm2022/lib/coinflow-purchase-history.component.mjs +16 -0
  4. package/esm2022/lib/coinflow-purchase-protection.component.mjs +16 -0
  5. package/esm2022/lib/coinflow-purchase.component.mjs +32 -0
  6. package/esm2022/lib/coinflow-withdraw-history.component.mjs +16 -0
  7. package/esm2022/lib/coinflow-withdraw.component.mjs +32 -0
  8. package/esm2022/lib/common/CoinflowLibMessageHandlers.mjs +127 -0
  9. package/esm2022/lib/common/CoinflowTypes.mjs +13 -0
  10. package/esm2022/lib/common/CoinflowUtils.mjs +182 -0
  11. package/esm2022/lib/common/index.mjs +4 -0
  12. package/esm2022/public-api.mjs +10 -0
  13. package/fesm2022/coinflowlabs-angular.mjs +496 -0
  14. package/fesm2022/coinflowlabs-angular.mjs.map +1 -0
  15. package/index.d.ts +5 -0
  16. package/lib/coinflow-iframe.component.d.ts +17 -0
  17. package/lib/coinflow-purchase-history.component.d.ts +5 -0
  18. package/lib/coinflow-purchase-protection.component.d.ts +5 -0
  19. package/lib/coinflow-purchase.component.d.ts +10 -0
  20. package/lib/coinflow-withdraw-history.component.d.ts +5 -0
  21. package/lib/coinflow-withdraw.component.d.ts +10 -0
  22. package/lib/common/CoinflowLibMessageHandlers.d.ts +21 -0
  23. package/lib/common/CoinflowTypes.d.ts +286 -0
  24. package/lib/common/CoinflowUtils.d.ts +21 -0
  25. package/package.json +16 -8
  26. package/{src/public-api.ts → public-api.d.ts} +0 -4
  27. package/ng-package.json +0 -7
  28. package/src/lib/coinflow-iframe.component.ts +0 -63
  29. package/src/lib/coinflow-purchase-history.component.ts +0 -9
  30. package/src/lib/coinflow-purchase-protection.component.ts +0 -9
  31. package/src/lib/coinflow-purchase.component.ts +0 -37
  32. package/src/lib/coinflow-withdraw-history.component.ts +0 -9
  33. package/src/lib/coinflow-withdraw.component.ts +0 -36
  34. package/src/lib/common/CoinflowLibMessageHandlers.ts +0 -188
  35. package/src/lib/common/CoinflowTypes.ts +0 -403
  36. package/src/lib/common/CoinflowUtils.ts +0 -269
  37. package/tsconfig.lib.json +0 -14
  38. package/tsconfig.lib.prod.json +0 -10
  39. package/tsconfig.spec.json +0 -14
  40. /package/{src/lib/common/index.ts → lib/common/index.d.ts} +0 -0
@@ -0,0 +1,182 @@
1
+ const web3 = require('@solana/web3.js');
2
+ const base58 = require('bs58');
3
+ export class CoinflowUtils {
4
+ constructor(env) {
5
+ this.env = env ?? 'prod';
6
+ if (this.env === 'prod')
7
+ this.url = 'https://api.coinflow.cash';
8
+ else if (this.env === 'local')
9
+ this.url = 'http://localhost:5000';
10
+ else
11
+ this.url = `https://api-${this.env}.coinflow.cash`;
12
+ }
13
+ async getNSurePartnerId(merchantId) {
14
+ return fetch(this.url + `/merchant/view/${merchantId}`)
15
+ .then(response => response.json())
16
+ .then((json) => json.nSureSettings?.nSurePartnerId || json.nSurePartnerId)
17
+ .catch(e => {
18
+ console.error(e);
19
+ return undefined;
20
+ });
21
+ }
22
+ async getCreditBalance(publicKey, merchantId, blockchain) {
23
+ const response = await fetch(this.url + `/api/customer/balances/${merchantId}`, {
24
+ method: 'GET',
25
+ headers: {
26
+ 'x-coinflow-auth-wallet': publicKey,
27
+ 'x-coinflow-auth-blockchain': blockchain,
28
+ },
29
+ });
30
+ const { credits } = await response.json();
31
+ return credits;
32
+ }
33
+ static getCoinflowBaseUrl(env) {
34
+ if (!env || env === 'prod')
35
+ return 'https://coinflow.cash';
36
+ if (env === 'local')
37
+ return 'http://localhost:3000';
38
+ return `https://${env}.coinflow.cash`;
39
+ }
40
+ static getCoinflowApiUrl(env) {
41
+ if (!env || env === 'prod')
42
+ return 'https://api.coinflow.cash';
43
+ if (env === 'local')
44
+ return 'http://localhost:5000';
45
+ return `https://api-${env}.coinflow.cash`;
46
+ }
47
+ static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, supportsVersionedTransactions, webhookInfo, email, loaderBackground, handleHeightChange, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, merchantCss, color, rent, lockDefaultToken, token, tokens, planCode, disableApplePay, disableGooglePay, customerInfo, settlementType, lockAmount, nativeSolToConvert, theme, usePermit, transactionSigner, authOnly, deviceId, }) {
48
+ const prefix = routePrefix
49
+ ? `/${routePrefix}/${blockchain}`
50
+ : `/${blockchain}`;
51
+ const url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));
52
+ url.searchParams.append('pubkey', walletPubkey);
53
+ if (transaction) {
54
+ url.searchParams.append('transaction', transaction);
55
+ }
56
+ if (amount) {
57
+ url.searchParams.append('amount', amount.toString());
58
+ }
59
+ if (supportsVersionedTransactions) {
60
+ url.searchParams.append('supportsVersionedTransactions', 'true');
61
+ }
62
+ if (webhookInfo) {
63
+ url.searchParams.append('webhookInfo', Buffer.from(JSON.stringify(webhookInfo)).toString('base64'));
64
+ }
65
+ if (theme) {
66
+ url.searchParams.append('theme', Buffer.from(JSON.stringify(theme)).toString('base64'));
67
+ }
68
+ if (customerInfo) {
69
+ url.searchParams.append('customerInfo', Buffer.from(JSON.stringify(customerInfo)).toString('base64'));
70
+ }
71
+ if (email) {
72
+ url.searchParams.append('email', email);
73
+ }
74
+ if (token) {
75
+ url.searchParams.append('token', token.toString());
76
+ }
77
+ if (tokens) {
78
+ url.searchParams.append('tokens', tokens.toString());
79
+ }
80
+ if (loaderBackground) {
81
+ url.searchParams.append('loaderBackground', loaderBackground);
82
+ }
83
+ if (handleHeightChange) {
84
+ url.searchParams.append('useHeightChange', 'true');
85
+ }
86
+ if (bankAccountLinkRedirect) {
87
+ url.searchParams.append('bankAccountLinkRedirect', bankAccountLinkRedirect);
88
+ }
89
+ if (additionalWallets)
90
+ url.searchParams.append('additionalWallets', JSON.stringify(additionalWallets));
91
+ if (nearDeposit)
92
+ url.searchParams.append('nearDeposit', nearDeposit);
93
+ if (chargebackProtectionData)
94
+ url.searchParams.append('chargebackProtectionData', JSON.stringify(chargebackProtectionData));
95
+ if (deviceId) {
96
+ url.searchParams.append('deviceId', deviceId);
97
+ }
98
+ else {
99
+ if (typeof window !== 'undefined') {
100
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
101
+ // @ts-ignore
102
+ const deviceId = window?.nSureSDK?.getDeviceId();
103
+ if (deviceId)
104
+ url.searchParams.append('deviceId', deviceId);
105
+ }
106
+ }
107
+ if (merchantCss)
108
+ url.searchParams.append('merchantCss', merchantCss);
109
+ if (color)
110
+ url.searchParams.append('color', color);
111
+ if (rent)
112
+ url.searchParams.append('rent', rent.lamports.toString());
113
+ if (nativeSolToConvert)
114
+ url.searchParams.append('nativeSolToConvert', nativeSolToConvert.lamports.toString());
115
+ if (lockDefaultToken)
116
+ url.searchParams.append('lockDefaultToken', 'true');
117
+ if (planCode)
118
+ url.searchParams.append('planCode', planCode);
119
+ if (disableApplePay)
120
+ url.searchParams.append('disableApplePay', 'true');
121
+ if (disableGooglePay)
122
+ url.searchParams.append('disableGooglePay', 'true');
123
+ if (settlementType)
124
+ url.searchParams.append('settlementType', settlementType);
125
+ if (lockAmount)
126
+ url.searchParams.append('lockAmount', 'true');
127
+ if (usePermit === false)
128
+ url.searchParams.append('usePermit', 'false');
129
+ if (transactionSigner)
130
+ url.searchParams.append('transactionSigner', transactionSigner);
131
+ if (authOnly === true)
132
+ url.searchParams.append('authOnly', 'true');
133
+ return url.toString();
134
+ }
135
+ static getTransaction(props) {
136
+ if ('transaction' in props && props.transaction !== undefined) {
137
+ const { transaction } = props;
138
+ if (web3 && transaction instanceof web3.Transaction) {
139
+ if (!base58)
140
+ throw new Error('bs58 dependency is required for Solana');
141
+ return base58.encode(
142
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
143
+ // @ts-ignore
144
+ transaction.serialize({
145
+ requireAllSignatures: false,
146
+ verifySignatures: false,
147
+ }));
148
+ }
149
+ if (web3 && transaction instanceof web3.VersionedTransaction) {
150
+ if (!base58)
151
+ throw new Error('bs58 dependency is required for Solana');
152
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
153
+ // @ts-ignore
154
+ return base58.encode(transaction.serialize());
155
+ }
156
+ return btoa(JSON.stringify(transaction));
157
+ }
158
+ if ('action' in props && props.action !== undefined) {
159
+ return btoa(JSON.stringify(props.action));
160
+ }
161
+ return undefined;
162
+ }
163
+ static byBlockchain(blockchain, args) {
164
+ switch (blockchain) {
165
+ case 'solana':
166
+ return args.solana;
167
+ case 'near':
168
+ return args.near;
169
+ case 'polygon':
170
+ return args.polygon;
171
+ case 'eth':
172
+ if (args.eth === undefined)
173
+ throw new Error('blockchain not supported for this operation!');
174
+ return args.eth;
175
+ case 'base':
176
+ return args.base;
177
+ default:
178
+ throw new Error('blockchain not supported!');
179
+ }
180
+ }
181
+ }
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUvQixNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFZLEdBQWtCO1FBQzVCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssTUFBTTtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsMkJBQTJCLENBQUM7YUFDM0QsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE9BQU87WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLHVCQUF1QixDQUFDOztZQUM3RCxJQUFJLENBQUMsR0FBRyxHQUFHLGVBQWUsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUN4QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLGtCQUFrQixVQUFVLEVBQUUsQ0FBQzthQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDakMsSUFBSSxDQUNILENBQUMsSUFHQSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUNoRTthQUNBLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxTQUFTLENBQUM7UUFDbkIs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QUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQ2pCLFVBQThCLEVBQzlCLElBQXdEO1FBRXhELFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNyQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25CLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEIsS0FBSyxLQUFLO2dCQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTO29CQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNsQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25CO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29pbmZsb3dCbG9ja2NoYWluLFxuICBDb2luZmxvd0VudnMsXG4gIENvaW5mbG93SUZyYW1lUHJvcHMsXG4gIENvaW5mbG93UHVyY2hhc2VQcm9wcyxcbn0gZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmNvbnN0IHdlYjMgPSByZXF1aXJlKCdAc29sYW5hL3dlYjMuanMnKTtcbmNvbnN0IGJhc2U1OCA9IHJlcXVpcmUoJ2JzNTgnKTtcblxuZXhwb3J0IGNsYXNzIENvaW5mbG93VXRpbHMge1xuICBlbnY6IENvaW5mbG93RW52cztcbiAgdXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZW52PzogQ29pbmZsb3dFbnZzKSB7XG4gICAgdGhpcy5lbnYgPSBlbnYgPz8gJ3Byb2QnO1xuICAgIGlmICh0aGlzLmVudiA9PT0gJ3Byb2QnKSB0aGlzLnVybCA9ICdodHRwczovL2FwaS5jb2luZmxvdy5jYXNoJztcbiAgICBlbHNlIGlmICh0aGlzLmVudiA9PT0gJ2xvY2FsJykgdGhpcy51cmwgPSAnaHR0cDovL2xvY2FsaG9zdDo1MDAwJztcbiAgICBlbHNlIHRoaXMudXJsID0gYGh0dHBzOi8vYXBpLSR7dGhpcy5lbnZ9LmNvaW5mbG93LmNhc2hgO1xuICB9XG5cbiAgYXN5bmMgZ2V0TlN1cmVQYXJ0bmVySWQobWVyY2hhbnRJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gZmV0Y2godGhpcy51cmwgKyBgL21lcmNoYW50L3ZpZXcvJHttZXJjaGFudElkfWApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAudGhlbihcbiAgICAgICAgKGpzb246IHtcbiAgICAgICAgICBuU3VyZVBhcnRuZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICAgIG5TdXJlU2V0dGluZ3M6IHtuU3VyZVBhcnRuZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkfTtcbiAgICAgICAgfSkgPT4ganNvbi5uU3VyZVNldHRpbmdzPy5uU3VyZVBhcnRuZXJJZCB8fCBqc29uLm5TdXJlUGFydG5lcklkXG4gICAgICApXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldENyZWRpdEJhbGFuY2UoXG4gICAgcHVibGljS2V5OiBzdHJpbmcsXG4gICAgbWVyY2hhbnRJZDogc3RyaW5nLFxuICAgIGJsb2NrY2hhaW46ICdzb2xhbmEnIHwgJ25lYXInXG4gICk6IFByb21pc2U8e2NlbnRzOiBudW1iZXJ9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICAgIHRoaXMudXJsICsgYC9hcGkvY3VzdG9tZXIvYmFsYW5jZXMvJHttZXJjaGFudElkfWAsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAneC1jb2luZmxvdy1hdXRoLXdhbGxldCc6IHB1YmxpY0tleSxcbiAgICAgICAgICAneC1jb2luZmxvdy1hdXRoLWJsb2NrY2hhaW4nOiBibG9ja2NoYWluLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICk7XG4gICAgY29uc3Qge2NyZWRpdHN9ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIHJldHVybiBjcmVkaXRzO1xuICB9XG5cbiAgc3RhdGljIGdldENvaW5mbG93QmFzZVVybChlbnY/OiBDb2luZmxvd0VudnMpOiBzdHJpbmcge1xuICAgIGlmICghZW52IHx8IGVudiA9PT0gJ3Byb2QnKSByZXR1cm4gJ2h0dHBzOi8vY29pbmZsb3cuY2FzaCc7XG4gICAgaWYgKGVudiA9PT0gJ2xvY2FsJykgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OjMwMDAnO1xuXG4gICAgcmV0dXJuIGBodHRwczovLyR7ZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd0FwaVVybChlbnY/OiBDb2luZmxvd0VudnMpOiBzdHJpbmcge1xuICAgIGlmICghZW52IHx8IGVudiA9PT0gJ3Byb2QnKSByZXR1cm4gJ2h0dHBzOi8vYXBpLmNvaW5mbG93LmNhc2gnO1xuICAgIGlmIChlbnYgPT09ICdsb2NhbCcpIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDo1MDAwJztcblxuICAgIHJldHVybiBgaHR0cHM6Ly9hcGktJHtlbnZ9LmNvaW5mbG93LmNhc2hgO1xuICB9XG5cbiAgc3RhdGljIGdldENvaW5mbG93VXJsKHtcbiAgICB3YWxsZXRQdWJrZXksXG4gICAgcm91dGUsXG4gICAgcm91dGVQcmVmaXgsXG4gICAgZW52LFxuICAgIGFtb3VudCxcbiAgICB0cmFuc2FjdGlvbixcbiAgICBibG9ja2NoYWluLFxuICAgIHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zLFxuICAgIHdlYmhvb2tJbmZvLFxuICAgIGVtYWlsLFxuICAgIGxvYWRlckJhY2tncm91bmQsXG4gICAgaGFuZGxlSGVpZ2h0Q2hhbmdlLFxuICAgIGJhbmtBY2NvdW50TGlua1JlZGlyZWN0LFxuICAgIGFkZGl0aW9uYWxXYWxsZXRzLFxuICAgIG5lYXJEZXBvc2l0LFxuICAgIGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSxcbiAgICBtZXJjaGFudENzcyxcbiAgICBjb2xvcixcbiAgICByZW50LFxuICAgIGxvY2tEZWZhdWx0VG9rZW4sXG4gICAgdG9rZW4sXG4gICAgdG9rZW5zLFxuICAgIHBsYW5Db2RlLFxuICAgIGRpc2FibGVBcHBsZVBheSxcbiAgICBkaXNhYmxlR29vZ2xlUGF5LFxuICAgIGN1c3RvbWVySW5mbyxcbiAgICBzZXR0bGVtZW50VHlwZSxcbiAgICBsb2NrQW1vdW50LFxuICAgIG5hdGl2ZVNvbFRvQ29udmVydCxcbiAgICB0aGVtZSxcbiAgICB1c2VQZXJtaXQsXG4gICAgdHJhbnNhY3Rpb25TaWduZXIsXG4gICAgYXV0aE9ubHksXG4gICAgZGV2aWNlSWQsXG4gIH06IENvaW5mbG93SUZyYW1lUHJvcHMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlUHJlZml4XG4gICAgICA/IGAvJHtyb3V0ZVByZWZpeH0vJHtibG9ja2NoYWlufWBcbiAgICAgIDogYC8ke2Jsb2NrY2hhaW59YDtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHByZWZpeCArIHJvdXRlLCBDb2luZmxvd1V0aWxzLmdldENvaW5mbG93QmFzZVVybChlbnYpKTtcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncHVia2V5Jywgd2FsbGV0UHVia2V5ISk7XG5cbiAgICBpZiAodHJhbnNhY3Rpb24pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFuc2FjdGlvbicsIHRyYW5zYWN0aW9uKTtcbiAgICB9XG4gICAgaWYgKGFtb3VudCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Ftb3VudCcsIGFtb3VudC50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnMpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdzdXBwb3J0c1ZlcnNpb25lZFRyYW5zYWN0aW9ucycsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgaWYgKHdlYmhvb2tJbmZvKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ3dlYmhvb2tJbmZvJyxcbiAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkod2ViaG9va0luZm8pKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoZW1lKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ3RoZW1lJyxcbiAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkodGhlbWUpKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGN1c3RvbWVySW5mbykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdjdXN0b21lckluZm8nLFxuICAgICAgICBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShjdXN0b21lckluZm8pKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVtYWlsKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZW1haWwnLCBlbWFpbCk7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9rZW4nLCB0b2tlbi50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5zKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9rZW5zJywgdG9rZW5zLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmIChsb2FkZXJCYWNrZ3JvdW5kKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9hZGVyQmFja2dyb3VuZCcsIGxvYWRlckJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGlmIChoYW5kbGVIZWlnaHRDaGFuZ2UpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd1c2VIZWlnaHRDaGFuZ2UnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIGlmIChiYW5rQWNjb3VudExpbmtSZWRpcmVjdCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdiYW5rQWNjb3VudExpbmtSZWRpcmVjdCcsXG4gICAgICAgIGJhbmtBY2NvdW50TGlua1JlZGlyZWN0XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhZGRpdGlvbmFsV2FsbGV0cylcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnYWRkaXRpb25hbFdhbGxldHMnLFxuICAgICAgICBKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsV2FsbGV0cylcbiAgICAgICk7XG5cbiAgICBpZiAobmVhckRlcG9zaXQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCduZWFyRGVwb3NpdCcsIG5lYXJEZXBvc2l0KTtcblxuICAgIGlmIChjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2NoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YScsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSlcbiAgICAgICk7XG4gICAgaWYgKGRldmljZUlkKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgZGV2aWNlSWQgPSB3aW5kb3c/Lm5TdXJlU0RLPy5nZXREZXZpY2VJZCgpO1xuICAgICAgICBpZiAoZGV2aWNlSWQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWVyY2hhbnRDc3MpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdtZXJjaGFudENzcycsIG1lcmNoYW50Q3NzKTtcbiAgICBpZiAoY29sb3IpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdjb2xvcicsIGNvbG9yKTtcbiAgICBpZiAocmVudCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3JlbnQnLCByZW50LmxhbXBvcnRzLnRvU3RyaW5nKCkpO1xuICAgIGlmIChuYXRpdmVTb2xUb0NvbnZlcnQpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ25hdGl2ZVNvbFRvQ29udmVydCcsXG4gICAgICAgIG5hdGl2ZVNvbFRvQ29udmVydC5sYW1wb3J0cy50b1N0cmluZygpXG4gICAgICApO1xuICAgIGlmIChsb2NrRGVmYXVsdFRva2VuKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9ja0RlZmF1bHRUb2tlbicsICd0cnVlJyk7XG4gICAgaWYgKHBsYW5Db2RlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncGxhbkNvZGUnLCBwbGFuQ29kZSk7XG5cbiAgICBpZiAoZGlzYWJsZUFwcGxlUGF5KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGlzYWJsZUFwcGxlUGF5JywgJ3RydWUnKTtcbiAgICBpZiAoZGlzYWJsZUdvb2dsZVBheSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc2FibGVHb29nbGVQYXknLCAndHJ1ZScpO1xuICAgIGlmIChzZXR0bGVtZW50VHlwZSlcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdzZXR0bGVtZW50VHlwZScsIHNldHRsZW1lbnRUeXBlKTtcblxuICAgIGlmIChsb2NrQW1vdW50KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9ja0Ftb3VudCcsICd0cnVlJyk7XG5cbiAgICBpZiAodXNlUGVybWl0ID09PSBmYWxzZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3VzZVBlcm1pdCcsICdmYWxzZScpO1xuICAgIGlmICh0cmFuc2FjdGlvblNpZ25lcilcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFuc2FjdGlvblNpZ25lcicsIHRyYW5zYWN0aW9uU2lnbmVyKTtcbiAgICBpZiAoYXV0aE9ubHkgPT09IHRydWUpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdhdXRoT25seScsICd0cnVlJyk7XG5cbiAgICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VHJhbnNhY3Rpb24ocHJvcHM6IENvaW5mbG93UHVyY2hhc2VQcm9wcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCd0cmFuc2FjdGlvbicgaW4gcHJvcHMgJiYgcHJvcHMudHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9ufSA9IHByb3BzO1xuICAgICAgaWYgKHdlYjMgJiYgdHJhbnNhY3Rpb24gaW5zdGFuY2VvZiB3ZWIzLlRyYW5zYWN0aW9uKSB7XG4gICAgICAgIGlmICghYmFzZTU4KSB0aHJvdyBuZXcgRXJyb3IoJ2JzNTggZGVwZW5kZW5jeSBpcyByZXF1aXJlZCBmb3IgU29sYW5hJyk7XG4gICAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdHJhbnNhY3Rpb24uc2VyaWFsaXplKHtcbiAgICAgICAgICAgIHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICAgIHZlcmlmeVNpZ25hdHVyZXM6IGZhbHNlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh3ZWIzICYmIHRyYW5zYWN0aW9uIGluc3RhbmNlb2Ygd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbikge1xuICAgICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQgZm9yIFNvbGFuYScpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUodHJhbnNhY3Rpb24uc2VyaWFsaXplKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYnRvYShKU09OLnN0cmluZ2lmeSh0cmFuc2FjdGlvbikpO1xuICAgIH1cblxuICAgIGlmICgnYWN0aW9uJyBpbiBwcm9wcyAmJiBwcm9wcy5hY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkocHJvcHMuYWN0aW9uKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBieUJsb2NrY2hhaW48VD4oXG4gICAgYmxvY2tjaGFpbjogQ29pbmZsb3dCbG9ja2NoYWluLFxuICAgIGFyZ3M6IHtzb2xhbmE6IFQ7IG5lYXI6IFQ7IGV0aD86IFQ7IHBvbHlnb246IFQ7IGJhc2U6IFR9XG4gICk6IFQge1xuICAgIHN3aXRjaCAoYmxvY2tjaGFpbikge1xuICAgICAgY2FzZSAnc29sYW5hJzpcbiAgICAgICAgcmV0dXJuIGFyZ3Muc29sYW5hO1xuICAgICAgY2FzZSAnbmVhcic6XG4gICAgICAgIHJldHVybiBhcmdzLm5lYXI7XG4gICAgICBjYXNlICdwb2x5Z29uJzpcbiAgICAgICAgcmV0dXJuIGFyZ3MucG9seWdvbjtcbiAgICAgIGNhc2UgJ2V0aCc6XG4gICAgICAgIGlmIChhcmdzLmV0aCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmxvY2tjaGFpbiBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIG9wZXJhdGlvbiEnKTtcbiAgICAgICAgcmV0dXJuIGFyZ3MuZXRoO1xuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIHJldHVybiBhcmdzLmJhc2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jsb2NrY2hhaW4gbm90IHN1cHBvcnRlZCEnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './CoinflowTypes';
2
+ export * from './CoinflowUtils';
3
+ export * from './CoinflowLibMessageHandlers';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0NvaW5mbG93VHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db2luZmxvd1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMnO1xuIl19
@@ -0,0 +1,10 @@
1
+ /*
2
+ * Public API Surface of coinflowlabs
3
+ */
4
+ export * from './lib/coinflow-iframe.component';
5
+ export * from './lib/coinflow-purchase.component';
6
+ export * from './lib/coinflow-purchase-history.component';
7
+ export * from './lib/coinflow-purchase-protection.component';
8
+ export * from './lib/coinflow-withdraw.component';
9
+ export * from './lib/coinflow-withdraw-history.component';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb2luZmxvd2xhYnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2luZmxvdy1pZnJhbWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvaW5mbG93LXB1cmNoYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2luZmxvdy1wdXJjaGFzZS1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2luZmxvdy1wdXJjaGFzZS1wcm90ZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2luZmxvdy13aXRoZHJhdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29pbmZsb3ctd2l0aGRyYXctaGlzdG9yeS5jb21wb25lbnQnO1xuIl19