@coinflowlabs/angular 0.1.4 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/esm2022/lib/card-form/CardFormService.mjs +67 -0
- package/esm2022/lib/card-form/coinflow-card-number-input.component.mjs +46 -0
- package/esm2022/lib/card-form/coinflow-card-number-only-input.component.mjs +46 -0
- package/esm2022/lib/card-form/coinflow-cvv-input.component.mjs +20 -0
- package/esm2022/lib/card-form/coinflow-cvv-only-input.component.mjs +47 -0
- package/esm2022/lib/common/CoinflowLibMessageHandlers.mjs +2 -1
- package/esm2022/lib/common/CoinflowTypes.mjs +7 -1
- package/esm2022/lib/common/CoinflowUtils.mjs +19 -2
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/coinflowlabs-angular.mjs +235 -3
- package/fesm2022/coinflowlabs-angular.mjs.map +1 -1
- package/lib/card-form/CardFormService.d.ts +14 -0
- package/lib/card-form/coinflow-card-number-input.component.d.ts +13 -0
- package/lib/card-form/coinflow-card-number-only-input.component.d.ts +13 -0
- package/lib/card-form/coinflow-cvv-input.component.d.ts +6 -0
- package/lib/card-form/coinflow-cvv-only-input.component.d.ts +13 -0
- package/lib/common/CoinflowTypes.d.ts +21 -6
- package/lib/common/CoinflowUtils.d.ts +7 -1
- package/package.json +2 -2
- package/public-api.d.ts +4 -0
|
@@ -46,7 +46,7 @@ export class CoinflowUtils {
|
|
|
46
46
|
return 'http://localhost:5000';
|
|
47
47
|
return `https://api-${env}.coinflow.cash`;
|
|
48
48
|
}
|
|
49
|
-
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, 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, jwtToken, origins, }) {
|
|
49
|
+
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, 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, jwtToken, origins, threeDsChallengePreference, }) {
|
|
50
50
|
const prefix = routePrefix
|
|
51
51
|
? `/${routePrefix}/${blockchain}`
|
|
52
52
|
: `/${blockchain}`;
|
|
@@ -133,6 +133,8 @@ export class CoinflowUtils {
|
|
|
133
133
|
url.searchParams.append('jwtToken', jwtToken);
|
|
134
134
|
if (origins)
|
|
135
135
|
url.searchParams.append('origins', LZString.compressToEncodedURIComponent(JSON.stringify(origins)));
|
|
136
|
+
if (threeDsChallengePreference)
|
|
137
|
+
url.searchParams.append('threeDsChallengePreference', threeDsChallengePreference);
|
|
136
138
|
return url.toString();
|
|
137
139
|
}
|
|
138
140
|
static getTransaction(props) {
|
|
@@ -170,6 +172,12 @@ export class CoinflowUtils {
|
|
|
170
172
|
const { transaction } = props;
|
|
171
173
|
return LZString.compressToEncodedURIComponent(JSON.stringify(transaction));
|
|
172
174
|
},
|
|
175
|
+
arbitrum: () => {
|
|
176
|
+
if (!('transaction' in props))
|
|
177
|
+
return undefined;
|
|
178
|
+
const { transaction } = props;
|
|
179
|
+
return LZString.compressToEncodedURIComponent(JSON.stringify(transaction));
|
|
180
|
+
},
|
|
173
181
|
near: () => {
|
|
174
182
|
if (!('action' in props))
|
|
175
183
|
return undefined;
|
|
@@ -190,10 +198,19 @@ export class CoinflowUtils {
|
|
|
190
198
|
return args.eth;
|
|
191
199
|
case 'base':
|
|
192
200
|
return args.base;
|
|
201
|
+
case 'arbitrum':
|
|
202
|
+
return args.arbitrum;
|
|
193
203
|
default:
|
|
194
204
|
throw new Error('blockchain not supported!');
|
|
195
205
|
}
|
|
196
206
|
}
|
|
207
|
+
static async getWalletFromUserId({ userId, merchantId, env, }) {
|
|
208
|
+
return this.getWalletFromEmail({
|
|
209
|
+
email: userId,
|
|
210
|
+
merchantId,
|
|
211
|
+
env,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
197
214
|
static async getWalletFromEmail({ email, merchantId, env, }) {
|
|
198
215
|
const buffer = new TextEncoder().encode(email);
|
|
199
216
|
const crypto = window.crypto.subtle;
|
|
@@ -239,4 +256,4 @@ export class CoinflowUtils {
|
|
|
239
256
|
};
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFL0IsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBWSxHQUFrQjtRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU07WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLDJCQUEyQixDQUFDO2FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQzs7WUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxlQUFlLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsVUFBVSxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pDLElBQUksQ0FDSCxDQUFDLElBR0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FDaEU7YUFDQSxLQUFLLENB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QUNGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2luZmxvd0Jsb2NrY2hhaW4sXG4gIENvaW5mbG93RW52cyxcbiAgQ29pbmZsb3dJRnJhbWVQcm9wcyxcbiAgQ29pbmZsb3dQdXJjaGFzZVByb3BzLFxuICBTb2xhbmFXYWxsZXQsXG59IGZyb20gJy4vQ29pbmZsb3dUeXBlcyc7XG5pbXBvcnQge3dlYjMsIGJhc2U1OH0gZnJvbSAnLi9Tb2xhbmFQZWVyRGVwcyc7XG5pbXBvcnQgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcbmltcG9ydCB7S2V5cGFpciwgVHJhbnNhY3Rpb24sIFZlcnNpb25lZFRyYW5zYWN0aW9ufSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuaW1wb3J0IHtzaWdufSBmcm9tICd0d2VldG5hY2wnO1xuXG5leHBvcnQgY2xhc3MgQ29pbmZsb3dVdGlscyB7XG4gIGVudjogQ29pbmZsb3dFbnZzO1xuICB1cmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihlbnY/OiBDb2luZmxvd0VudnMpIHtcbiAgICB0aGlzLmVudiA9IGVudiA/PyAncHJvZCc7XG4gICAgaWYgKHRoaXMuZW52ID09PSAncHJvZCcpIHRoaXMudXJsID0gJ2h0dHBzOi8vYXBpLmNvaW5mbG93LmNhc2gnO1xuICAgIGVsc2UgaWYgKHRoaXMuZW52ID09PSAnbG9jYWwnKSB0aGlzLnVybCA9ICdodHRwOi8vbG9jYWxob3N0OjUwMDAnO1xuICAgIGVsc2UgdGhpcy51cmwgPSBgaHR0cHM6Ly9hcGktJHt0aGlzLmVudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBhc3luYyBnZXROU3VyZVBhcnRuZXJJZChtZXJjaGFudElkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBmZXRjaCh0aGlzLnVybCArIGAvbWVyY2hhbnQvdmlldy8ke21lcmNoYW50SWR9YClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgIC50aGVuKFxuICAgICAgICAoanNvbjoge1xuICAgICAgICAgIG5TdXJlUGFydG5lcklkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgblN1cmVTZXR0aW5nczoge25TdXJlUGFydG5lcklkOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuICAgICAgICB9KSA9PiBqc29uLm5TdXJlU2V0dGluZ3M/Lm5TdXJlUGFydG5lcklkIHx8IGpzb24ublN1cmVQYXJ0bmVySWRcbiAgICAgIClcbiAgICAgIC5jYXRjaChlID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q3JlZGl0QmFsYW5jZShcbiAgICBwdWJsaWNLZXk6IHN0cmluZyxcbiAgICBtZXJjaGFudElkOiBzdHJpbmcsXG4gICAgYmxvY2tjaGFpbjogJ3NvbGFuYScgfCAnbmVhcidcbiAgKTogUHJvbWlzZTx7Y2VudHM6IG51bWJlcn0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgdGhpcy51cmwgKyBgL2FwaS9jdXN0b21lci9iYWxhbmNlcy8ke21lcmNoYW50SWR9YCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICd4LWNvaW5mbG93LWF1dGgtd2FsbGV0JzogcHVibGljS2V5LFxuICAgICAgICAgICd4LWNvaW5mbG93LWF1dGgtYmxvY2tjaGFpbic6IGJsb2NrY2hhaW4sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKTtcbiAgICBjb25zdCB7Y3JlZGl0c30gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgcmV0dXJuIGNyZWRpdHM7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dCYXNlVXJsKGVudj86IENvaW5mbG93RW52cyk6IHN0cmluZyB7XG4gICAgaWYgKCFlbnYgfHwgZW52ID09PSAncHJvZCcpIHJldHVybiAnaHR0cHM6Ly9jb2luZmxvdy5jYXNoJztcbiAgICBpZiAoZW52ID09PSAnbG9jYWwnKSByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCc7XG5cbiAgICByZXR1cm4gYGh0dHBzOi8vJHtlbnZ9LmNvaW5mbG93LmNhc2hgO1xuICB9XG5cbiAgc3RhdGljIGdldENvaW5mbG93QXBpVXJsKGVudj86IENvaW5mbG93RW52cyk6IHN0cmluZyB7XG4gICAgaWYgKCFlbnYgfHwgZW52ID09PSAncHJvZCcpIHJldHVybiAnaHR0cHM6Ly9hcGkuY29pbmZsb3cuY2FzaCc7XG4gICAgaWYgKGVudiA9PT0gJ2xvY2FsJykgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OjUwMDAnO1xuXG4gICAgcmV0dXJuIGBodHRwczovL2FwaS0ke2Vudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dVcmwoe1xuICAgIHdhbGxldFB1YmtleSxcbiAgICByb3V0ZSxcbiAgICByb3V0ZVByZWZpeCxcbiAgICBlbnYsXG4gICAgYW1vdW50LFxuICAgIHRyYW5zYWN0aW9uLFxuICAgIGJsb2NrY2hhaW4sXG4gICAgd2ViaG9va0luZm8sXG4gICAgZW1haWwsXG4gICAgbG9hZGVyQmFja2dyb3VuZCxcbiAgICBoYW5kbGVIZWlnaHRDaGFuZ2UsXG4gICAgYmFua0FjY291bnRMaW5rUmVkaXJlY3QsXG4gICAgYWRkaXRpb25hbFdhbGxldHMsXG4gICAgbmVhckRlcG9zaXQsXG4gICAgY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhLFxuICAgIG1lcmNoYW50Q3NzLFxuICAgIGNvbG9yLFxuICAgIHJlbnQsXG4gICAgbG9ja0RlZmF1bHRUb2tlbixcbiAgICB0b2tlbixcbiAgICB0b2tlbnMsXG4gICAgcGxhbkNvZGUsXG4gICAgZGlzYWJsZUFwcGxlUGF5LFxuICAgIGRpc2FibGVHb29nbGVQYXksXG4gICAgY3VzdG9tZXJJbmZvLFxuICAgIHNldHRsZW1lbnRUeXBlLFxuICAgIGxvY2tBbW91bnQsXG4gICAgbmF0aXZlU29sVG9Db252ZXJ0LFxuICAgIHRoZW1lLFxuICAgIHVzZVBlcm1pdCxcbiAgICB0cmFuc2FjdGlvblNpZ25lcixcbiAgICBhdXRoT25seSxcbiAgICBkZXZpY2VJZCxcbiAgICBqd3RUb2tlbixcbiAgICBvcmlnaW5zLFxuICB9OiBDb2luZmxvd0lGcmFtZVByb3BzKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZVByZWZpeFxuICAgICAgPyBgLyR7cm91dGVQcmVmaXh9LyR7YmxvY2tjaGFpbn1gXG4gICAgICA6IGAvJHtibG9ja2NoYWlufWA7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChwcmVmaXggKyByb3V0ZSwgQ29pbmZsb3dVdGlscy5nZXRDb2luZmxvd0Jhc2VVcmwoZW52KSk7XG4gICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3B1YmtleScsIHdhbGxldFB1YmtleSEpO1xuXG4gICAgaWYgKHRyYW5zYWN0aW9uKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndHJhbnNhY3Rpb24nLCB0cmFuc2FjdGlvbik7XG4gICAgfVxuICAgIGlmIChhbW91bnQpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdhbW91bnQnLCBhbW91bnQudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHdlYmhvb2tJbmZvKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ3dlYmhvb2tJbmZvJyxcbiAgICAgICAgTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkod2ViaG9va0luZm8pKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhlbWUpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAndGhlbWUnLFxuICAgICAgICBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh0aGVtZSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjdXN0b21lckluZm8pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnY3VzdG9tZXJJbmZvJyxcbiAgICAgICAgTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXJJbmZvKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVtYWlsKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZW1haWwnLCBlbWFpbCk7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9rZW4nLCB0b2tlbi50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5zKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9rZW5zJywgdG9rZW5zLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmIChsb2FkZXJCYWNrZ3JvdW5kKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9hZGVyQmFja2dyb3VuZCcsIGxvYWRlckJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGlmIChoYW5kbGVIZWlnaHRDaGFuZ2UpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd1c2VIZWlnaHRDaGFuZ2UnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIGlmIChiYW5rQWNjb3VudExpbmtSZWRpcmVjdCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdiYW5rQWNjb3VudExpbmtSZWRpcmVjdCcsXG4gICAgICAgIGJhbmtBY2NvdW50TGlua1JlZGlyZWN0XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhZGRpdGlvbmFsV2FsbGV0cylcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnYWRkaXRpb25hbFdhbGxldHMnLFxuICAgICAgICBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsV2FsbGV0cylcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIGlmIChuZWFyRGVwb3NpdCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ25lYXJEZXBvc2l0JywgbmVhckRlcG9zaXQpO1xuXG4gICAgaWYgKGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSlcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhJyxcbiAgICAgICAgTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhKVxuICAgICAgICApXG4gICAgICApO1xuICAgIGlmIChkZXZpY2VJZCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2RldmljZUlkJywgZGV2aWNlSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGRldmljZUlkID0gd2luZG93Py5uU3VyZVNESz8uZ2V0RGV2aWNlSWQoKTtcbiAgICAgICAgaWYgKGRldmljZUlkKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1lcmNoYW50Q3NzKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbWVyY2hhbnRDc3MnLCBtZXJjaGFudENzcyk7XG4gICAgaWYgKGNvbG9yKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnY29sb3InLCBjb2xvcik7XG4gICAgaWYgKHJlbnQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdyZW50JywgcmVudC5sYW1wb3J0cy50b1N0cmluZygpKTtcbiAgICBpZiAobmF0aXZlU29sVG9Db252ZXJ0KVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICduYXRpdmVTb2xUb0NvbnZlcnQnLFxuICAgICAgICBuYXRpdmVTb2xUb0NvbnZlcnQubGFtcG9ydHMudG9TdHJpbmcoKVxuICAgICAgKTtcbiAgICBpZiAobG9ja0RlZmF1bHRUb2tlbikgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvY2tEZWZhdWx0VG9rZW4nLCAndHJ1ZScpO1xuICAgIGlmIChwbGFuQ29kZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3BsYW5Db2RlJywgcGxhbkNvZGUpO1xuXG4gICAgaWYgKGRpc2FibGVBcHBsZVBheSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc2FibGVBcHBsZVBheScsICd0cnVlJyk7XG4gICAgaWYgKGRpc2FibGVHb29nbGVQYXkpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkaXNhYmxlR29vZ2xlUGF5JywgJ3RydWUnKTtcbiAgICBpZiAoc2V0dGxlbWVudFR5cGUpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnc2V0dGxlbWVudFR5cGUnLCBzZXR0bGVtZW50VHlwZSk7XG5cbiAgICBpZiAobG9ja0Ftb3VudCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvY2tBbW91bnQnLCAndHJ1ZScpO1xuXG4gICAgaWYgKHVzZVBlcm1pdCA9PT0gZmFsc2UpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd1c2VQZXJtaXQnLCAnZmFsc2UnKTtcbiAgICBpZiAodHJhbnNhY3Rpb25TaWduZXIpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndHJhbnNhY3Rpb25TaWduZXInLCB0cmFuc2FjdGlvblNpZ25lcik7XG4gICAgaWYgKGF1dGhPbmx5ID09PSB0cnVlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnYXV0aE9ubHknLCAndHJ1ZScpO1xuICAgIGlmIChqd3RUb2tlbikgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2p3dFRva2VuJywgand0VG9rZW4pO1xuICAgIGlmIChvcmlnaW5zKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdvcmlnaW5zJyxcbiAgICAgICAgTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkob3JpZ2lucykpXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICB9XG5cbiAgc3RhdGljIGdldFRyYW5zYWN0aW9uKHByb3BzOiBDb2luZmxvd1B1cmNoYXNlUHJvcHMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmJ5QmxvY2tjaGFpbjwoKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQ+KHByb3BzLmJsb2NrY2hhaW4sIHtcbiAgICAgIHNvbGFuYTogKCkgPT4ge1xuICAgICAgICBpZiAoISgndHJhbnNhY3Rpb24nIGluIHByb3BzKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qge3RyYW5zYWN0aW9ufSA9IHByb3BzO1xuICAgICAgICBpZiAoIXdlYjMpXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdAc29sYW5hL3dlYjMuanMgZGVwZW5kZW5jeSBpcyByZXF1aXJlZCBmb3IgU29sYW5hJyk7XG4gICAgICAgIGlmICghYmFzZTU4KSB0aHJvdyBuZXcgRXJyb3IoJ2JzNTggZGVwZW5kZW5jeSBpcyByZXF1aXJlZCBmb3IgU29sYW5hJyk7XG4gICAgICAgIGlmICghdHJhbnNhY3Rpb24pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKFxuICAgICAgICAgICh0cmFuc2FjdGlvbiBhcyBWZXJzaW9uZWRUcmFuc2FjdGlvbiB8IFRyYW5zYWN0aW9uKS5zZXJpYWxpemUoe1xuICAgICAgICAgICAgcmVxdWlyZUFsbFNpZ25hdHVyZXM6IGZhbHNlLFxuICAgICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBwb2x5Z29uOiAoKSA9PiB7XG4gICAgICAgIGlmICghKCd0cmFuc2FjdGlvbicgaW4gcHJvcHMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB7dHJhbnNhY3Rpb259ID0gcHJvcHM7XG4gICAgICAgIHJldHVybiBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0cmFuc2FjdGlvbilcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBldGg6ICgpID0+IHtcbiAgICAgICAgaWYgKCEoJ3RyYW5zYWN0aW9uJyBpbiBwcm9wcykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbn0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIExaU3RyaW5nLmNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50KFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGJhc2U6ICgpID0+IHtcbiAgICAgICAgaWYgKCEoJ3RyYW5zYWN0aW9uJyBpbiBwcm9wcykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbn0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIExaU3RyaW5nLmNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50KFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIG5lYXI6ICgpID0+IHtcbiAgICAgICAgaWYgKCEoJ2FjdGlvbicgaW4gcHJvcHMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB7YWN0aW9ufSA9IHByb3BzO1xuICAgICAgICByZXR1cm4gTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoYWN0aW9uKSk7XG4gICAgICB9LFxuICAgIH0pKCk7XG4gIH1cblxuICBzdGF0aWMgYnlCbG9ja2NoYWluPFQ+KFxuICAgIGJsb2NrY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbixcbiAgICBhcmdzOiB7c29sYW5hOiBUOyBuZWFyOiBUOyBldGg6IFQ7IHBvbHlnb246IFQ7IGJhc2U6IFR9XG4gICk6IFQge1xuICAgIHN3aXRjaCAoYmxvY2tjaGFpbikge1xuICAgICAgY2FzZSAnc29sYW5hJzpcbiAgICAgICAgcmV0dXJuIGFyZ3Muc29sYW5hO1xuICAgICAgY2FzZSAnbmVhcic6XG4gICAgICAgIHJldHVybiBhcmdzLm5lYXI7XG4gICAgICBjYXNlICdwb2x5Z29uJzpcbiAgICAgICAgcmV0dXJuIGFyZ3MucG9seWdvbjtcbiAgICAgIGNhc2UgJ2V0aCc6XG4gICAgICAgIHJldHVybiBhcmdzLmV0aDtcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICByZXR1cm4gYXJncy5iYXNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdibG9ja2NoYWluIG5vdCBzdXBwb3J0ZWQhJyk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldFdhbGxldEZyb21FbWFpbCh7XG4gICAgZW1haWwsXG4gICAgbWVyY2hhbnRJZCxcbiAgICBlbnYsXG4gIH06IHtcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBlbnY6IENvaW5mbG93RW52cztcbiAgfSk6IFByb21pc2U8U29sYW5hV2FsbGV0PiB7XG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGVtYWlsKTtcbiAgICBjb25zdCBjcnlwdG8gPSB3aW5kb3cuY3J5cHRvLnN1YnRsZTtcbiAgICBjb25zdCBoYXNoID0gYXdhaXQgY3J5cHRvLmRpZ2VzdCgnU0hBLTI1NicsIGJ1ZmZlcik7XG4gICAgY29uc3Qgc2VlZCA9IG5ldyBVaW50OEFycmF5KGhhc2gpO1xuICAgIGNvbnN0IGtleXBhaXIgPSBLZXlwYWlyLmZyb21TZWVkKHNlZWQpO1xuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IGtleXBhaXIucHVibGljS2V5LFxuICAgICAgc2lnbk1lc3NhZ2U6IChtZXNzYWdlOiBVaW50OEFycmF5KSA9PlxuICAgICAgICBQcm9taXNlLnJlc29sdmUoc2lnbi5kZXRhY2hlZChtZXNzYWdlLCBrZXlwYWlyLnNlY3JldEtleSkpLFxuICAgICAgc2lnblRyYW5zYWN0aW9uOiBhc3luYyA8VCBleHRlbmRzIFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24+KFxuICAgICAgICB0cmFuc2FjdGlvbjogVFxuICAgICAgKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgICAgIGlmICh0cmFuc2FjdGlvbiBpbnN0YW5jZW9mIFRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgdHJhbnNhY3Rpb24uc2lnbihrZXlwYWlyKTtcbiAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhbnNhY3Rpb24uc2lnbihba2V5cGFpcl0pO1xuICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlbmRUcmFuc2FjdGlvbjogYXN5bmMgPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICAgICAgdHJhbnNhY3Rpb246IFRcbiAgICAgICk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgICAgIGlmICh0cmFuc2FjdGlvbiBpbnN0YW5jZW9mIFRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgdHJhbnNhY3Rpb24uc2lnbihrZXlwYWlyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zaWduKFtrZXlwYWlyXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2luZmxvd0Jhc2VVcmwgPSB0aGlzLmdldENvaW5mbG93QXBpVXJsKGVudik7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICd4LWNvaW5mbG93LWF1dGgtd2FsbGV0Jzoga2V5cGFpci5wdWJsaWNLZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICd4LWNvaW5mbG93LWF1dGgtYmxvY2tjaGFpbic6ICdzb2xhbmEnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgbWVyY2hhbnRJZCxcbiAgICAgICAgICAgIHNpZ25lZFRyYW5zYWN0aW9uOiBiYXNlNTg/LmVuY29kZSh0cmFuc2FjdGlvbi5zZXJpYWxpemUoKSksXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qge3NpZ25hdHVyZX0gPSBhd2FpdCBmZXRjaChcbiAgICAgICAgICBjb2luZmxvd0Jhc2VVcmwgKyAnL2FwaS91dGlscy9zZW5kLWNvaW5mbG93LXR4JyxcbiAgICAgICAgICBvcHRpb25zXG4gICAgICAgICkudGhlbihyZXMgPT4gcmVzLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBzaWduYXR1cmU7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFL0IsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBWSxHQUFrQjtRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU07WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLDJCQUEyQixDQUFDO2FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQzs7WUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxlQUFlLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsVUFBVSxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pDLElBQUksQ0FDSCxDQUFDLElBR0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FDaEU7YUFDQSxLQUFLLENB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RUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLE9BQU8sR0FBRztvQkFDZCxNQUFNLEVBQUUsTUFBTTtvQkFDZCxPQUFPLEVBQUU7d0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjt3QkFDbEMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7d0JBQ3RELDRCQUE0QixFQUFFLFFBQVE7cUJBQ3ZDO29CQUNELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUNuQixVQUFVO3dCQUNWLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO3FCQUMzRCxDQUFDO2lCQUNILENBQUM7Z0JBRUYsTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLE1BQU0sS0FBSyxDQUM3QixlQUFlLEdBQUcsNkJBQTZCLEVBQy9DLE9BQU8sQ0FDUixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvaW5mbG93QmxvY2tjaGFpbixcbiAgQ29pbmZsb3dFbnZzLFxuICBDb2luZmxvd0lGcmFtZVByb3BzLFxuICBDb2luZmxvd1B1cmNoYXNlUHJvcHMsXG4gIFNvbGFuYVdhbGxldCxcbn0gZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmltcG9ydCB7d2ViMywgYmFzZTU4fSBmcm9tICcuL1NvbGFuYVBlZXJEZXBzJztcbmltcG9ydCBMWlN0cmluZyBmcm9tICdsei1zdHJpbmcnO1xuaW1wb3J0IHtLZXlwYWlyLCBUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQge3NpZ259IGZyb20gJ3R3ZWV0bmFjbCc7XG5cbmV4cG9ydCBjbGFzcyBDb2luZmxvd1V0aWxzIHtcbiAgZW52OiBDb2luZmxvd0VudnM7XG4gIHVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGVudj86IENvaW5mbG93RW52cykge1xuICAgIHRoaXMuZW52ID0gZW52ID8/ICdwcm9kJztcbiAgICBpZiAodGhpcy5lbnYgPT09ICdwcm9kJykgdGhpcy51cmwgPSAnaHR0cHM6Ly9hcGkuY29pbmZsb3cuY2FzaCc7XG4gICAgZWxzZSBpZiAodGhpcy5lbnYgPT09ICdsb2NhbCcpIHRoaXMudXJsID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCc7XG4gICAgZWxzZSB0aGlzLnVybCA9IGBodHRwczovL2FwaS0ke3RoaXMuZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIGFzeW5jIGdldE5TdXJlUGFydG5lcklkKG1lcmNoYW50SWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGZldGNoKHRoaXMudXJsICsgYC9tZXJjaGFudC92aWV3LyR7bWVyY2hhbnRJZH1gKVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oXG4gICAgICAgIChqc29uOiB7XG4gICAgICAgICAgblN1cmVQYXJ0bmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBuU3VyZVNldHRpbmdzOiB7blN1cmVQYXJ0bmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZH07XG4gICAgICAgIH0pID0+IGpzb24ublN1cmVTZXR0aW5ncz8ublN1cmVQYXJ0bmVySWQgfHwganNvbi5uU3VyZVBhcnRuZXJJZFxuICAgICAgKVxuICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDcmVkaXRCYWxhbmNlKFxuICAgIHB1YmxpY0tleTogc3RyaW5nLFxuICAgIG1lcmNoYW50SWQ6IHN0cmluZyxcbiAgICBibG9ja2NoYWluOiAnc29sYW5hJyB8ICduZWFyJ1xuICApOiBQcm9taXNlPHtjZW50czogbnVtYmVyfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICB0aGlzLnVybCArIGAvYXBpL2N1c3RvbWVyL2JhbGFuY2VzLyR7bWVyY2hhbnRJZH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC13YWxsZXQnOiBwdWJsaWNLZXksXG4gICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC1ibG9ja2NoYWluJzogYmxvY2tjaGFpbixcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IHtjcmVkaXRzfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gY3JlZGl0cztcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd0Jhc2VVcmwoZW52PzogQ29pbmZsb3dFbnZzKTogc3RyaW5nIHtcbiAgICBpZiAoIWVudiB8fCBlbnYgPT09ICdwcm9kJykgcmV0dXJuICdodHRwczovL2NvaW5mbG93LmNhc2gnO1xuICAgIGlmIChlbnYgPT09ICdsb2NhbCcpIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJztcblxuICAgIHJldHVybiBgaHR0cHM6Ly8ke2Vudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dBcGlVcmwoZW52PzogQ29pbmZsb3dFbnZzKTogc3RyaW5nIHtcbiAgICBpZiAoIWVudiB8fCBlbnYgPT09ICdwcm9kJykgcmV0dXJuICdodHRwczovL2FwaS5jb2luZmxvdy5jYXNoJztcbiAgICBpZiAoZW52ID09PSAnbG9jYWwnKSByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCc7XG5cbiAgICByZXR1cm4gYGh0dHBzOi8vYXBpLSR7ZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd1VybCh7XG4gICAgd2FsbGV0UHVia2V5LFxuICAgIHJvdXRlLFxuICAgIHJvdXRlUHJlZml4LFxuICAgIGVudixcbiAgICBhbW91bnQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmxvY2tjaGFpbixcbiAgICB3ZWJob29rSW5mbyxcbiAgICBlbWFpbCxcbiAgICBsb2FkZXJCYWNrZ3JvdW5kLFxuICAgIGhhbmRsZUhlaWdodENoYW5nZSxcbiAgICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdCxcbiAgICBhZGRpdGlvbmFsV2FsbGV0cyxcbiAgICBuZWFyRGVwb3NpdCxcbiAgICBjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEsXG4gICAgbWVyY2hhbnRDc3MsXG4gICAgY29sb3IsXG4gICAgcmVudCxcbiAgICBsb2NrRGVmYXVsdFRva2VuLFxuICAgIHRva2VuLFxuICAgIHRva2VucyxcbiAgICBwbGFuQ29kZSxcbiAgICBkaXNhYmxlQXBwbGVQYXksXG4gICAgZGlzYWJsZUdvb2dsZVBheSxcbiAgICBjdXN0b21lckluZm8sXG4gICAgc2V0dGxlbWVudFR5cGUsXG4gICAgbG9ja0Ftb3VudCxcbiAgICBuYXRpdmVTb2xUb0NvbnZlcnQsXG4gICAgdGhlbWUsXG4gICAgdXNlUGVybWl0LFxuICAgIHRyYW5zYWN0aW9uU2lnbmVyLFxuICAgIGF1dGhPbmx5LFxuICAgIGRldmljZUlkLFxuICAgIGp3dFRva2VuLFxuICAgIG9yaWdpbnMsXG4gICAgdGhyZWVEc0NoYWxsZW5nZVByZWZlcmVuY2UsXG4gIH06IENvaW5mbG93SUZyYW1lUHJvcHMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlUHJlZml4XG4gICAgICA/IGAvJHtyb3V0ZVByZWZpeH0vJHtibG9ja2NoYWlufWBcbiAgICAgIDogYC8ke2Jsb2NrY2hhaW59YDtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHByZWZpeCArIHJvdXRlLCBDb2luZmxvd1V0aWxzLmdldENvaW5mbG93QmFzZVVybChlbnYpKTtcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncHVia2V5Jywgd2FsbGV0UHVia2V5ISk7XG5cbiAgICBpZiAodHJhbnNhY3Rpb24pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFuc2FjdGlvbicsIHRyYW5zYWN0aW9uKTtcbiAgICB9XG4gICAgaWYgKGFtb3VudCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Ftb3VudCcsIGFtb3VudC50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAod2ViaG9va0luZm8pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnd2ViaG9va0luZm8nLFxuICAgICAgICBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh3ZWJob29rSW5mbykpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGVtZSkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICd0aGVtZScsXG4gICAgICAgIExaU3RyaW5nLmNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHRoZW1lKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGN1c3RvbWVySW5mbykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdjdXN0b21lckluZm8nLFxuICAgICAgICBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjdXN0b21lckluZm8pKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZW1haWwpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdlbWFpbCcsIGVtYWlsKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0b2tlbicsIHRva2VuLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh0b2tlbnMpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0b2tlbnMnLCB0b2tlbnMudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRlckJhY2tncm91bmQpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdsb2FkZXJCYWNrZ3JvdW5kJywgbG9hZGVyQmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYgKGhhbmRsZUhlaWdodENoYW5nZSkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3VzZUhlaWdodENoYW5nZScsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgaWYgKGJhbmtBY2NvdW50TGlua1JlZGlyZWN0KSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2JhbmtBY2NvdW50TGlua1JlZGlyZWN0JyxcbiAgICAgICAgYmFua0FjY291bnRMaW5rUmVkaXJlY3RcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGFkZGl0aW9uYWxXYWxsZXRzKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdhZGRpdGlvbmFsV2FsbGV0cycsXG4gICAgICAgIExaU3RyaW5nLmNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50KFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGFkZGl0aW9uYWxXYWxsZXRzKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgaWYgKG5lYXJEZXBvc2l0KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbmVhckRlcG9zaXQnLCBuZWFyRGVwb3NpdCk7XG5cbiAgICBpZiAoY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEnLFxuICAgICAgICBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgaWYgKGRldmljZUlkKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgZGV2aWNlSWQgPSB3aW5kb3c/Lm5TdXJlU0RLPy5nZXREZXZpY2VJZCgpO1xuICAgICAgICBpZiAoZGV2aWNlSWQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWVyY2hhbnRDc3MpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdtZXJjaGFudENzcycsIG1lcmNoYW50Q3NzKTtcbiAgICBpZiAoY29sb3IpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdjb2xvcicsIGNvbG9yKTtcbiAgICBpZiAocmVudCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3JlbnQnLCByZW50LmxhbXBvcnRzLnRvU3RyaW5nKCkpO1xuICAgIGlmIChuYXRpdmVTb2xUb0NvbnZlcnQpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ25hdGl2ZVNvbFRvQ29udmVydCcsXG4gICAgICAgIG5hdGl2ZVNvbFRvQ29udmVydC5sYW1wb3J0cy50b1N0cmluZygpXG4gICAgICApO1xuICAgIGlmIChsb2NrRGVmYXVsdFRva2VuKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9ja0RlZmF1bHRUb2tlbicsICd0cnVlJyk7XG4gICAgaWYgKHBsYW5Db2RlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncGxhbkNvZGUnLCBwbGFuQ29kZSk7XG5cbiAgICBpZiAoZGlzYWJsZUFwcGxlUGF5KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGlzYWJsZUFwcGxlUGF5JywgJ3RydWUnKTtcbiAgICBpZiAoZGlzYWJsZUdvb2dsZVBheSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc2FibGVHb29nbGVQYXknLCAndHJ1ZScpO1xuICAgIGlmIChzZXR0bGVtZW50VHlwZSlcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdzZXR0bGVtZW50VHlwZScsIHNldHRsZW1lbnRUeXBlKTtcblxuICAgIGlmIChsb2NrQW1vdW50KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9ja0Ftb3VudCcsICd0cnVlJyk7XG5cbiAgICBpZiAodXNlUGVybWl0ID09PSBmYWxzZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3VzZVBlcm1pdCcsICdmYWxzZScpO1xuICAgIGlmICh0cmFuc2FjdGlvblNpZ25lcilcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFuc2FjdGlvblNpZ25lcicsIHRyYW5zYWN0aW9uU2lnbmVyKTtcbiAgICBpZiAoYXV0aE9ubHkgPT09IHRydWUpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdhdXRoT25seScsICd0cnVlJyk7XG4gICAgaWYgKGp3dFRva2VuKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnand0VG9rZW4nLCBqd3RUb2tlbik7XG4gICAgaWYgKG9yaWdpbnMpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ29yaWdpbnMnLFxuICAgICAgICBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShvcmlnaW5zKSlcbiAgICAgICk7XG5cbiAgICBpZiAodGhyZWVEc0NoYWxsZW5nZVByZWZlcmVuY2UpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ3RocmVlRHNDaGFsbGVuZ2VQcmVmZXJlbmNlJyxcbiAgICAgICAgdGhyZWVEc0NoYWxsZW5nZVByZWZlcmVuY2VcbiAgICAgICk7XG5cbiAgICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VHJhbnNhY3Rpb24ocHJvcHM6IENvaW5mbG93UHVyY2hhc2VQcm9wcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYnlCbG9ja2NoYWluPCgpID0+IHN0cmluZyB8IHVuZGVmaW5lZD4ocHJvcHMuYmxvY2tjaGFpbiwge1xuICAgICAgc29sYW5hOiAoKSA9PiB7XG4gICAgICAgIGlmICghKCd0cmFuc2FjdGlvbicgaW4gcHJvcHMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB7dHJhbnNhY3Rpb259ID0gcHJvcHM7XG4gICAgICAgIGlmICghd2ViMylcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Bzb2xhbmEvd2ViMy5qcyBkZXBlbmRlbmN5IGlzIHJlcXVpcmVkIGZvciBTb2xhbmEnKTtcbiAgICAgICAgaWYgKCFiYXNlNTgpIHRocm93IG5ldyBFcnJvcignYnM1OCBkZXBlbmRlbmN5IGlzIHJlcXVpcmVkIGZvciBTb2xhbmEnKTtcbiAgICAgICAgaWYgKCF0cmFuc2FjdGlvbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUoXG4gICAgICAgICAgKHRyYW5zYWN0aW9uIGFzIFZlcnNpb25lZFRyYW5zYWN0aW9uIHwgVHJhbnNhY3Rpb24pLnNlcmlhbGl6ZSh7XG4gICAgICAgICAgICByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgICB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHBvbHlnb246ICgpID0+IHtcbiAgICAgICAgaWYgKCEoJ3RyYW5zYWN0aW9uJyBpbiBwcm9wcykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbn0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIExaU3RyaW5nLmNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50KFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGV0aDogKCkgPT4ge1xuICAgICAgICBpZiAoISgndHJhbnNhY3Rpb24nIGluIHByb3BzKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qge3RyYW5zYWN0aW9ufSA9IHByb3BzO1xuICAgICAgICByZXR1cm4gTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb24pXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgYmFzZTogKCkgPT4ge1xuICAgICAgICBpZiAoISgndHJhbnNhY3Rpb24nIGluIHByb3BzKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qge3RyYW5zYWN0aW9ufSA9IHByb3BzO1xuICAgICAgICByZXR1cm4gTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb24pXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgYXJiaXRydW06ICgpID0+IHtcbiAgICAgICAgaWYgKCEoJ3RyYW5zYWN0aW9uJyBpbiBwcm9wcykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbn0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIExaU3RyaW5nLmNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50KFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIG5lYXI6ICgpID0+IHtcbiAgICAgICAgaWYgKCEoJ2FjdGlvbicgaW4gcHJvcHMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB7YWN0aW9ufSA9IHByb3BzO1xuICAgICAgICByZXR1cm4gTFpTdHJpbmcuY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoYWN0aW9uKSk7XG4gICAgICB9LFxuICAgIH0pKCk7XG4gIH1cblxuICBzdGF0aWMgYnlCbG9ja2NoYWluPFQ+KFxuICAgIGJsb2NrY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbixcbiAgICBhcmdzOiB7c29sYW5hOiBUOyBuZWFyOiBUOyBldGg6IFQ7IHBvbHlnb246IFQ7IGJhc2U6IFQ7IGFyYml0cnVtOiBUfVxuICApOiBUIHtcbiAgICBzd2l0Y2ggKGJsb2NrY2hhaW4pIHtcbiAgICAgIGNhc2UgJ3NvbGFuYSc6XG4gICAgICAgIHJldHVybiBhcmdzLnNvbGFuYTtcbiAgICAgIGNhc2UgJ25lYXInOlxuICAgICAgICByZXR1cm4gYXJncy5uZWFyO1xuICAgICAgY2FzZSAncG9seWdvbic6XG4gICAgICAgIHJldHVybiBhcmdzLnBvbHlnb247XG4gICAgICBjYXNlICdldGgnOlxuICAgICAgICByZXR1cm4gYXJncy5ldGg7XG4gICAgICBjYXNlICdiYXNlJzpcbiAgICAgICAgcmV0dXJuIGFyZ3MuYmFzZTtcbiAgICAgIGNhc2UgJ2FyYml0cnVtJzpcbiAgICAgICAgcmV0dXJuIGFyZ3MuYXJiaXRydW07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jsb2NrY2hhaW4gbm90IHN1cHBvcnRlZCEnKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0V2FsbGV0RnJvbVVzZXJJZCh7XG4gICAgdXNlcklkLFxuICAgIG1lcmNoYW50SWQsXG4gICAgZW52LFxuICB9OiB7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGVudjogQ29pbmZsb3dFbnZzO1xuICB9KTogUHJvbWlzZTxTb2xhbmFXYWxsZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXYWxsZXRGcm9tRW1haWwoe1xuICAgICAgZW1haWw6IHVzZXJJZCxcbiAgICAgIG1lcmNoYW50SWQsXG4gICAgICBlbnYsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0V2FsbGV0RnJvbUVtYWlsKHtcbiAgICBlbWFpbCxcbiAgICBtZXJjaGFudElkLFxuICAgIGVudixcbiAgfToge1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGVudjogQ29pbmZsb3dFbnZzO1xuICB9KTogUHJvbWlzZTxTb2xhbmFXYWxsZXQ+IHtcbiAgICBjb25zdCBidWZmZXIgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZW1haWwpO1xuICAgIGNvbnN0IGNyeXB0byA9IHdpbmRvdy5jcnlwdG8uc3VidGxlO1xuICAgIGNvbnN0IGhhc2ggPSBhd2FpdCBjcnlwdG8uZGlnZXN0KCdTSEEtMjU2JywgYnVmZmVyKTtcbiAgICBjb25zdCBzZWVkID0gbmV3IFVpbnQ4QXJyYXkoaGFzaCk7XG4gICAgY29uc3Qga2V5cGFpciA9IEtleXBhaXIuZnJvbVNlZWQoc2VlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YmxpY0tleToga2V5cGFpci5wdWJsaWNLZXksXG4gICAgICBzaWduTWVzc2FnZTogKG1lc3NhZ2U6IFVpbnQ4QXJyYXkpID0+XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShzaWduLmRldGFjaGVkKG1lc3NhZ2UsIGtleXBhaXIuc2VjcmV0S2V5KSksXG4gICAgICBzaWduVHJhbnNhY3Rpb246IGFzeW5jIDxUIGV4dGVuZHMgVHJhbnNhY3Rpb24gfCBWZXJzaW9uZWRUcmFuc2FjdGlvbj4oXG4gICAgICAgIHRyYW5zYWN0aW9uOiBUXG4gICAgICApOiBQcm9taXNlPFQ+ID0+IHtcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uIGluc3RhbmNlb2YgVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zaWduKGtleXBhaXIpO1xuICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zaWduKFtrZXlwYWlyXSk7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2VuZFRyYW5zYWN0aW9uOiBhc3luYyA8VCBleHRlbmRzIFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24+KFxuICAgICAgICB0cmFuc2FjdGlvbjogVFxuICAgICAgKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uIGluc3RhbmNlb2YgVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zaWduKGtleXBhaXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyYW5zYWN0aW9uLnNpZ24oW2tleXBhaXJdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvaW5mbG93QmFzZVVybCA9IHRoaXMuZ2V0Q29pbmZsb3dBcGlVcmwoZW52KTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC13YWxsZXQnOiBrZXlwYWlyLnB1YmxpY0tleS50b1N0cmluZygpLFxuICAgICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC1ibG9ja2NoYWluJzogJ3NvbGFuYScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBtZXJjaGFudElkLFxuICAgICAgICAgICAgc2lnbmVkVHJhbnNhY3Rpb246IGJhc2U1OD8uZW5jb2RlKHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCB7c2lnbmF0dXJlfSA9IGF3YWl0IGZldGNoKFxuICAgICAgICAgIGNvaW5mbG93QmFzZVVybCArICcvYXBpL3V0aWxzL3NlbmQtY29pbmZsb3ctdHgnLFxuICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgKS50aGVuKHJlcyA9PiByZXMuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -7,4 +7,8 @@ export * from './lib/coinflow-purchase-history.component';
|
|
|
7
7
|
export * from './lib/coinflow-purchase-protection.component';
|
|
8
8
|
export * from './lib/coinflow-withdraw.component';
|
|
9
9
|
export * from './lib/coinflow-withdraw-history.component';
|
|
10
|
-
|
|
10
|
+
export * from './lib/card-form/coinflow-card-number-input.component';
|
|
11
|
+
export * from './lib/card-form/coinflow-card-number-only-input.component';
|
|
12
|
+
export * from './lib/card-form/coinflow-cvv-input.component';
|
|
13
|
+
export * from './lib/card-form/coinflow-cvv-only-input.component';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvaW5mbG93bGFic1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvaW5mbG93LWlmcmFtZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29pbmZsb3ctcHVyY2hhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvaW5mbG93LXB1cmNoYXNlLWhpc3RvcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvaW5mbG93LXB1cmNoYXNlLXByb3RlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvaW5mbG93LXdpdGhkcmF3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2luZmxvdy13aXRoZHJhdy1oaXN0b3J5LmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQtZm9ybS9jb2luZmxvdy1jYXJkLW51bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC1mb3JtL2NvaW5mbG93LWNhcmQtbnVtYmVyLW9ubHktaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQtZm9ybS9jb2luZmxvdy1jdnYtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQtZm9ybS9jb2luZmxvdy1jdnYtb25seS1pbnB1dC5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, ViewChild, HostListener } from '@angular/core';
|
|
2
|
+
import { Component, Input, ViewChild, HostListener, Injectable, inject } from '@angular/core';
|
|
3
3
|
import * as SolanaWeb3Js from '@solana/web3.js';
|
|
4
4
|
import { Keypair, Transaction } from '@solana/web3.js';
|
|
5
5
|
import base58Imported from 'bs58';
|
|
@@ -19,6 +19,12 @@ var MerchantStyle;
|
|
|
19
19
|
MerchantStyle["Sharp"] = "sharp";
|
|
20
20
|
MerchantStyle["Pill"] = "pill";
|
|
21
21
|
})(MerchantStyle || (MerchantStyle = {}));
|
|
22
|
+
var ThreeDsChallengePreference;
|
|
23
|
+
(function (ThreeDsChallengePreference) {
|
|
24
|
+
ThreeDsChallengePreference["NoPreference"] = "NoPreference";
|
|
25
|
+
ThreeDsChallengePreference["Frictionless"] = "Frictionless";
|
|
26
|
+
ThreeDsChallengePreference["Challenge"] = "Challenge";
|
|
27
|
+
})(ThreeDsChallengePreference || (ThreeDsChallengePreference = {}));
|
|
22
28
|
var CardType;
|
|
23
29
|
(function (CardType) {
|
|
24
30
|
CardType["VISA"] = "VISA";
|
|
@@ -85,7 +91,7 @@ class CoinflowUtils {
|
|
|
85
91
|
return 'http://localhost:5000';
|
|
86
92
|
return `https://api-${env}.coinflow.cash`;
|
|
87
93
|
}
|
|
88
|
-
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, 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, jwtToken, origins, }) {
|
|
94
|
+
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, 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, jwtToken, origins, threeDsChallengePreference, }) {
|
|
89
95
|
const prefix = routePrefix
|
|
90
96
|
? `/${routePrefix}/${blockchain}`
|
|
91
97
|
: `/${blockchain}`;
|
|
@@ -172,6 +178,8 @@ class CoinflowUtils {
|
|
|
172
178
|
url.searchParams.append('jwtToken', jwtToken);
|
|
173
179
|
if (origins)
|
|
174
180
|
url.searchParams.append('origins', LZString.compressToEncodedURIComponent(JSON.stringify(origins)));
|
|
181
|
+
if (threeDsChallengePreference)
|
|
182
|
+
url.searchParams.append('threeDsChallengePreference', threeDsChallengePreference);
|
|
175
183
|
return url.toString();
|
|
176
184
|
}
|
|
177
185
|
static getTransaction(props) {
|
|
@@ -209,6 +217,12 @@ class CoinflowUtils {
|
|
|
209
217
|
const { transaction } = props;
|
|
210
218
|
return LZString.compressToEncodedURIComponent(JSON.stringify(transaction));
|
|
211
219
|
},
|
|
220
|
+
arbitrum: () => {
|
|
221
|
+
if (!('transaction' in props))
|
|
222
|
+
return undefined;
|
|
223
|
+
const { transaction } = props;
|
|
224
|
+
return LZString.compressToEncodedURIComponent(JSON.stringify(transaction));
|
|
225
|
+
},
|
|
212
226
|
near: () => {
|
|
213
227
|
if (!('action' in props))
|
|
214
228
|
return undefined;
|
|
@@ -229,10 +243,19 @@ class CoinflowUtils {
|
|
|
229
243
|
return args.eth;
|
|
230
244
|
case 'base':
|
|
231
245
|
return args.base;
|
|
246
|
+
case 'arbitrum':
|
|
247
|
+
return args.arbitrum;
|
|
232
248
|
default:
|
|
233
249
|
throw new Error('blockchain not supported!');
|
|
234
250
|
}
|
|
235
251
|
}
|
|
252
|
+
static async getWalletFromUserId({ userId, merchantId, env, }) {
|
|
253
|
+
return this.getWalletFromEmail({
|
|
254
|
+
email: userId,
|
|
255
|
+
merchantId,
|
|
256
|
+
env,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
236
259
|
static async getWalletFromEmail({ email, merchantId, env, }) {
|
|
237
260
|
const buffer = new TextEncoder().encode(email);
|
|
238
261
|
const crypto = window.crypto.subtle;
|
|
@@ -341,6 +364,7 @@ function getHandlers(props) {
|
|
|
341
364
|
eth: () => getEvmWalletHandlers(props),
|
|
342
365
|
polygon: () => getEvmWalletHandlers(props),
|
|
343
366
|
base: () => getEvmWalletHandlers(props),
|
|
367
|
+
arbitrum: () => getEvmWalletHandlers(props),
|
|
344
368
|
})();
|
|
345
369
|
}
|
|
346
370
|
function getSolanaWalletHandlers({ wallet, onSuccess, }) {
|
|
@@ -740,6 +764,214 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
740
764
|
}]
|
|
741
765
|
}] });
|
|
742
766
|
|
|
767
|
+
class CardFormService {
|
|
768
|
+
constructor() {
|
|
769
|
+
this.loaded = false;
|
|
770
|
+
this.tokenExIframe = undefined;
|
|
771
|
+
}
|
|
772
|
+
setTokenExIframe(iframe) {
|
|
773
|
+
this.tokenExIframe = iframe;
|
|
774
|
+
}
|
|
775
|
+
setCachedToken() { }
|
|
776
|
+
setLoaded(input) {
|
|
777
|
+
this.loaded = input;
|
|
778
|
+
}
|
|
779
|
+
async initializeCvvOnlyTokenExIframe(env, args) {
|
|
780
|
+
const iframe = await doInitializeCvvOnlyTokenExIframe({
|
|
781
|
+
...args,
|
|
782
|
+
tokenExScriptLoaded: true,
|
|
783
|
+
env,
|
|
784
|
+
setCachedToken: this.setCachedToken.bind(this),
|
|
785
|
+
setLoaded: this.setLoaded.bind(this),
|
|
786
|
+
});
|
|
787
|
+
this.setTokenExIframe(iframe);
|
|
788
|
+
if (iframe)
|
|
789
|
+
iframe.load();
|
|
790
|
+
return iframe;
|
|
791
|
+
}
|
|
792
|
+
async initializeTokenExIframe(env, args) {
|
|
793
|
+
console.log('initializeTokenExIframe');
|
|
794
|
+
const iframe = await doInitializeTokenExIframe({
|
|
795
|
+
...args,
|
|
796
|
+
tokenExScriptLoaded: true,
|
|
797
|
+
env,
|
|
798
|
+
setCachedToken: this.setCachedToken.bind(this),
|
|
799
|
+
setLoaded: this.setLoaded.bind(this),
|
|
800
|
+
});
|
|
801
|
+
console.log('iframe', iframe);
|
|
802
|
+
this.setTokenExIframe(iframe);
|
|
803
|
+
if (iframe)
|
|
804
|
+
iframe.load();
|
|
805
|
+
console.log('LOADED');
|
|
806
|
+
return iframe;
|
|
807
|
+
}
|
|
808
|
+
async initializeTokenExCardOnlyIframe(env, args) {
|
|
809
|
+
const iframe = await doInitializeTokenExCardOnlyIframe({
|
|
810
|
+
...args,
|
|
811
|
+
tokenExScriptLoaded: true,
|
|
812
|
+
env,
|
|
813
|
+
setCachedToken: this.setCachedToken.bind(this),
|
|
814
|
+
setLoaded: this.setLoaded.bind(this),
|
|
815
|
+
});
|
|
816
|
+
this.setTokenExIframe(iframe);
|
|
817
|
+
if (iframe)
|
|
818
|
+
iframe.load();
|
|
819
|
+
return iframe;
|
|
820
|
+
}
|
|
821
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CardFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
822
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CardFormService, providedIn: 'root' }); }
|
|
823
|
+
}
|
|
824
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CardFormService, decorators: [{
|
|
825
|
+
type: Injectable,
|
|
826
|
+
args: [{
|
|
827
|
+
providedIn: 'root',
|
|
828
|
+
}]
|
|
829
|
+
}] });
|
|
830
|
+
|
|
831
|
+
class CoinflowCardNumberInput {
|
|
832
|
+
constructor() {
|
|
833
|
+
this.cardFormService = inject(CardFormService);
|
|
834
|
+
this.iframe = undefined;
|
|
835
|
+
this.TokenExCardNumberIframeId = TokenExCardNumberIframeId;
|
|
836
|
+
}
|
|
837
|
+
onScriptLoaded() {
|
|
838
|
+
console.log('onScriptLoaded');
|
|
839
|
+
this.cardFormService
|
|
840
|
+
.initializeTokenExIframe(this.args.env, {
|
|
841
|
+
css: JSON.stringify(this.args.css),
|
|
842
|
+
debug: this.args.debug,
|
|
843
|
+
origins: this.args.origins,
|
|
844
|
+
font: this.args.font,
|
|
845
|
+
})
|
|
846
|
+
.then(iframe => (this.iframe = iframe))
|
|
847
|
+
.catch(e => console.error(e));
|
|
848
|
+
}
|
|
849
|
+
ngOnInit() {
|
|
850
|
+
setTokenExScriptTag({
|
|
851
|
+
env: this.args.env,
|
|
852
|
+
setTokenExScriptLoaded: this.onScriptLoaded.bind(this),
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
tokenize() {
|
|
856
|
+
return this.iframe.tokenize();
|
|
857
|
+
}
|
|
858
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
859
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCardNumberInput, isStandalone: true, selector: "lib-coinflow-card-number-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCardNumberIframeId}}"></div>', isInline: true }); }
|
|
860
|
+
}
|
|
861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberInput, decorators: [{
|
|
862
|
+
type: Component,
|
|
863
|
+
args: [{
|
|
864
|
+
selector: 'lib-coinflow-card-number-input',
|
|
865
|
+
standalone: true,
|
|
866
|
+
imports: [],
|
|
867
|
+
template: '<div id="{{TokenExCardNumberIframeId}}"></div>',
|
|
868
|
+
}]
|
|
869
|
+
}], propDecorators: { args: [{
|
|
870
|
+
type: Input
|
|
871
|
+
}] } });
|
|
872
|
+
|
|
873
|
+
class CoinflowCardNumberOnlyInput {
|
|
874
|
+
constructor() {
|
|
875
|
+
this.cardFormService = inject(CardFormService);
|
|
876
|
+
this.iframe = undefined;
|
|
877
|
+
this.TokenExCardNumberIframeId = TokenExCardNumberIframeId;
|
|
878
|
+
}
|
|
879
|
+
onScriptLoaded() {
|
|
880
|
+
console.log('onScriptLoaded');
|
|
881
|
+
this.cardFormService
|
|
882
|
+
.initializeTokenExCardOnlyIframe(this.args.env, {
|
|
883
|
+
css: JSON.stringify(this.args.css),
|
|
884
|
+
debug: this.args.debug,
|
|
885
|
+
origins: this.args.origins,
|
|
886
|
+
font: this.args.font,
|
|
887
|
+
})
|
|
888
|
+
.then(iframe => (this.iframe = iframe))
|
|
889
|
+
.catch(e => console.error(e));
|
|
890
|
+
}
|
|
891
|
+
ngOnInit() {
|
|
892
|
+
setTokenExScriptTag({
|
|
893
|
+
env: this.args.env,
|
|
894
|
+
setTokenExScriptLoaded: this.onScriptLoaded.bind(this),
|
|
895
|
+
});
|
|
896
|
+
}
|
|
897
|
+
tokenize() {
|
|
898
|
+
return this.iframe.tokenize();
|
|
899
|
+
}
|
|
900
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberOnlyInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
901
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCardNumberOnlyInput, isStandalone: true, selector: "lib-coinflow-card-number-only-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCardNumberIframeId}}"></div>', isInline: true }); }
|
|
902
|
+
}
|
|
903
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCardNumberOnlyInput, decorators: [{
|
|
904
|
+
type: Component,
|
|
905
|
+
args: [{
|
|
906
|
+
selector: 'lib-coinflow-card-number-only-input',
|
|
907
|
+
standalone: true,
|
|
908
|
+
imports: [],
|
|
909
|
+
template: '<div id="{{TokenExCardNumberIframeId}}"></div>',
|
|
910
|
+
}]
|
|
911
|
+
}], propDecorators: { args: [{
|
|
912
|
+
type: Input
|
|
913
|
+
}] } });
|
|
914
|
+
|
|
915
|
+
class CoinflowCvvInputComponent {
|
|
916
|
+
constructor() {
|
|
917
|
+
this.TokenExCvvContainerID = TokenExCvvContainerID;
|
|
918
|
+
}
|
|
919
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
920
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCvvInputComponent, isStandalone: true, selector: "lib-coinflow-cvv-input", ngImport: i0, template: '<div id="{{TokenExCvvContainerID}}" ></div>', isInline: true }); }
|
|
921
|
+
}
|
|
922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvInputComponent, decorators: [{
|
|
923
|
+
type: Component,
|
|
924
|
+
args: [{
|
|
925
|
+
selector: 'lib-coinflow-cvv-input',
|
|
926
|
+
standalone: true,
|
|
927
|
+
imports: [],
|
|
928
|
+
template: '<div id="{{TokenExCvvContainerID}}" ></div>',
|
|
929
|
+
}]
|
|
930
|
+
}] });
|
|
931
|
+
|
|
932
|
+
class CoinflowCvvOnlyInputComponent {
|
|
933
|
+
constructor() {
|
|
934
|
+
this.cardFormService = inject(CardFormService);
|
|
935
|
+
this.iframe = undefined;
|
|
936
|
+
this.TokenExCvvContainerID = TokenExCvvContainerID;
|
|
937
|
+
}
|
|
938
|
+
onScriptLoaded() {
|
|
939
|
+
this.cardFormService
|
|
940
|
+
.initializeCvvOnlyTokenExIframe(this.args.env, {
|
|
941
|
+
css: JSON.stringify(this.args.css),
|
|
942
|
+
debug: this.args.debug,
|
|
943
|
+
origins: this.args.origins,
|
|
944
|
+
font: this.args.font,
|
|
945
|
+
token: this.args.token,
|
|
946
|
+
cardType: this.args.cardType,
|
|
947
|
+
})
|
|
948
|
+
.then(iframe => (this.iframe = iframe))
|
|
949
|
+
.catch(e => console.error(e));
|
|
950
|
+
}
|
|
951
|
+
ngOnInit() {
|
|
952
|
+
setTokenExScriptTag({
|
|
953
|
+
env: this.args.env,
|
|
954
|
+
setTokenExScriptLoaded: this.onScriptLoaded.bind(this),
|
|
955
|
+
});
|
|
956
|
+
}
|
|
957
|
+
tokenize() {
|
|
958
|
+
return this.iframe.tokenize();
|
|
959
|
+
}
|
|
960
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvOnlyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
961
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowCvvOnlyInputComponent, isStandalone: true, selector: "lib-coinflow-cvv-only-input", inputs: { args: "args" }, ngImport: i0, template: '<div id="{{TokenExCvvContainerID}}"></div>', isInline: true }); }
|
|
962
|
+
}
|
|
963
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowCvvOnlyInputComponent, decorators: [{
|
|
964
|
+
type: Component,
|
|
965
|
+
args: [{
|
|
966
|
+
selector: 'lib-coinflow-cvv-only-input',
|
|
967
|
+
standalone: true,
|
|
968
|
+
imports: [],
|
|
969
|
+
template: '<div id="{{TokenExCvvContainerID}}"></div>',
|
|
970
|
+
}]
|
|
971
|
+
}], propDecorators: { args: [{
|
|
972
|
+
type: Input
|
|
973
|
+
}] } });
|
|
974
|
+
|
|
743
975
|
/*
|
|
744
976
|
* Public API Surface of coinflowlabs
|
|
745
977
|
*/
|
|
@@ -748,5 +980,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
748
980
|
* Generated bundle index. Do not edit.
|
|
749
981
|
*/
|
|
750
982
|
|
|
751
|
-
export { CoinflowIFrameComponent, CoinflowPurchaseComponent, CoinflowPurchaseHistoryComponent, CoinflowPurchaseProtectionComponent, CoinflowWithdrawComponent, CoinflowWithdrawHistoryComponent };
|
|
983
|
+
export { CoinflowCardNumberInput, CoinflowCardNumberOnlyInput, CoinflowCvvInputComponent, CoinflowCvvOnlyInputComponent, CoinflowIFrameComponent, CoinflowPurchaseComponent, CoinflowPurchaseHistoryComponent, CoinflowPurchaseProtectionComponent, CoinflowWithdrawComponent, CoinflowWithdrawHistoryComponent };
|
|
752
984
|
//# sourceMappingURL=coinflowlabs-angular.mjs.map
|