@coinflowlabs/angular 0.0.3 → 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.
- package/esm2022/lib/coinflow-iframe.component.mjs +3 -3
- package/esm2022/lib/coinflow-purchase-history.component.mjs +3 -3
- package/esm2022/lib/coinflow-purchase-protection.component.mjs +3 -3
- package/esm2022/lib/coinflow-purchase.component.mjs +3 -3
- package/esm2022/lib/coinflow-withdraw-history.component.mjs +3 -3
- package/esm2022/lib/coinflow-withdraw.component.mjs +3 -3
- package/esm2022/lib/common/CoinflowLibMessageHandlers.mjs +3 -3
- package/esm2022/lib/common/CoinflowTypes.mjs +1 -1
- package/esm2022/lib/common/CoinflowUtils.mjs +17 -8
- package/fesm2022/coinflowlabs-angular.mjs +37 -27
- package/fesm2022/coinflowlabs-angular.mjs.map +1 -1
- package/lib/common/CoinflowTypes.d.ts +1 -2
- package/package.json +2 -2
|
@@ -24,8 +24,8 @@ export class CoinflowIFrameComponent {
|
|
|
24
24
|
return;
|
|
25
25
|
this.iframe.nativeElement.contentWindow.postMessage(message, '*');
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowIFrameComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowIFrameComponent, isStandalone: true, selector: "lib-coinflow-iframe", inputs: { iframeProps: "iframeProps", messageHandlers: "messageHandlers" }, host: { listeners: { "window:message": "onPostMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: ` <iframe
|
|
29
29
|
width="100%"
|
|
30
30
|
height="100%"
|
|
31
31
|
#iframe
|
|
@@ -36,7 +36,7 @@ export class CoinflowIFrameComponent {
|
|
|
36
36
|
[src]="dynamicUrl"
|
|
37
37
|
></iframe>`, isInline: true }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowIFrameComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: 'lib-coinflow-iframe',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CoinflowPurchaseHistoryComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowPurchaseHistoryComponent, isStandalone: true, selector: "lib-coinflow-purchase-history", ngImport: i0, template: ' <p>coinflow-purchase-history works!</p> ', isInline: true }); }
|
|
6
6
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseHistoryComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
10
|
selector: 'lib-coinflow-purchase-history',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CoinflowPurchaseProtectionComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseProtectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowPurchaseProtectionComponent, isStandalone: true, selector: "lib-coinflow-purchase-protection", ngImport: i0, template: ' <p>coinflow-purchase-protection works!</p> ', isInline: true }); }
|
|
6
6
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseProtectionComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
10
|
selector: 'lib-coinflow-purchase-protection',
|
|
@@ -15,10 +15,10 @@ export class CoinflowPurchaseComponent {
|
|
|
15
15
|
transaction: CoinflowUtils.getTransaction(this.purchaseProps),
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowPurchaseComponent, isStandalone: true, selector: "lib-coinflow-purchase", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"] }] }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
23
|
args: [{
|
|
24
24
|
selector: 'lib-coinflow-purchase',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CoinflowWithdrawHistoryComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowWithdrawHistoryComponent, isStandalone: true, selector: "lib-coinflow-withdraw-history", ngImport: i0, template: ' <p>coinflow-withdraw-history works!</p> ', isInline: true }); }
|
|
6
6
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawHistoryComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
10
|
selector: 'lib-coinflow-withdraw-history',
|
|
@@ -15,10 +15,10 @@ export class CoinflowWithdrawComponent {
|
|
|
15
15
|
transaction: undefined,
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowWithdrawComponent, isStandalone: true, selector: "lib-coinflow-withdraw", inputs: { withdrawProps: "withdrawProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"] }] }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
23
|
args: [{
|
|
24
24
|
selector: 'lib-coinflow-withdraw',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CoinflowUtils } from './CoinflowUtils';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const web3 = require('@solana/web3.js');
|
|
3
|
+
const base58 = require('bs58');
|
|
4
4
|
var IFrameMessageMethods;
|
|
5
5
|
(function (IFrameMessageMethods) {
|
|
6
6
|
IFrameMessageMethods["SignMessage"] = "signMessage";
|
|
@@ -124,4 +124,4 @@ function getEvmWalletHandlers({ wallet, }) {
|
|
|
124
124
|
},
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxJQUFJLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxNQUFNLE1BQU0sTUFBTSxDQUFDO0FBVzFCLElBQUssb0JBS0o7QUFMRCxXQUFLLG9CQUFvQjtJQUN2QixtREFBMkIsQ0FBQTtJQUMzQiwyREFBbUMsQ0FBQTtJQUNuQywyREFBbUMsQ0FBQTtJQUNuQyxxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTEksb0JBQW9CLEtBQXBCLG9CQUFvQixRQUt4QjtBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsRUFDOUIsTUFBTSxHQUNnQztJQUN0QyxJQUFJLFdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFVBQWtCLEVBQ2xCLFFBQStCO0lBRS9CLElBQUksVUFBc0IsQ0FBQztJQUMzQixJQUFJLENBQUM7UUFDSCxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztR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biAgTmVhcldhbGxldCxcbiAgU29sYW5hV2FsbGV0LFxufSBmcm9tICcuL0NvaW5mbG93VHlwZXMnO1xuaW1wb3J0IHtDb2luZmxvd1V0aWxzfSBmcm9tICcuL0NvaW5mbG93VXRpbHMnO1xuaW1wb3J0IHtUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgKiBhcyB3ZWIzIGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgYmFzZTU4IGZyb20gJ2JzNTgnO1xuXG5leHBvcnQgdHlwZSBXYWxsZXRDYWxsID0ge21ldGhvZDogSUZyYW1lTWVzc2FnZU1ldGhvZHM7IGRhdGE6IHN0cmluZ307XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZyYW1lTWVzc2FnZUhhbmRsZXJzIHtcbiAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiAodHJhbnNhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVTaWduTWVzc2FnZT86IChtZXNzYWdlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgaGFuZGxlU2lnblRyYW5zYWN0aW9uPzogKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgaGFuZGxlSGVpZ2h0Q2hhbmdlPzogKGhlaWdodDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5lbnVtIElGcmFtZU1lc3NhZ2VNZXRob2RzIHtcbiAgU2lnbk1lc3NhZ2UgPSAnc2lnbk1lc3NhZ2UnLFxuICBTaWduVHJhbnNhY3Rpb24gPSAnc2lnblRyYW5zYWN0aW9uJyxcbiAgU2VuZFRyYW5zYWN0aW9uID0gJ3NlbmRUcmFuc2FjdGlvbicsXG4gIEhlaWdodENoYW5nZSA9ICdoZWlnaHRDaGFuZ2UnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0UHVia2V5KHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICBpZiAoJ3B1YmxpY0tleScgaW4gd2FsbGV0KSB7XG4gICAgcmV0dXJuIHdhbGxldC5wdWJsaWNLZXkhLnRvU3RyaW5nKCk7XG4gIH1cblxuICBpZiAoJ2FkZHJlc3MnIGluIHdhbGxldCkge1xuICAgIHJldHVybiB3YWxsZXQuYWRkcmVzcztcbiAgfVxuXG4gIGlmICgnYWNjb3VudElkJyBpbiB3YWxsZXQpIHtcbiAgICByZXR1cm4gd2FsbGV0LmFjY291bnRJZDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlSUZyYW1lTWVzc2FnZShcbiAgcmF3TWVzc2FnZTogc3RyaW5nLFxuICBoYW5kbGVyczogSUZyYW1lTWVzc2FnZUhhbmRsZXJzXG4pOiBQcm9taXNlPHN0cmluZz4gfCB2b2lkIHtcbiAgbGV0IHdhbGxldENhbGw6IFdhbGxldENhbGw7XG4gIHRyeSB7XG4gICAgd2FsbGV0Q2FsbCA9IEpTT04ucGFyc2UocmF3TWVzc2FnZSk7XG4gICAgaWYgKCEoJ21ldGhvZCcgaW4gd2FsbGV0Q2FsbCkgfHwgISgnZGF0YScgaW4gd2FsbGV0Q2FsbCkpIHJldHVybjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2hhbmRsZUlGcmFtZU1lc3NhZ2UgSlNPTiBwYXJzZScsIGUpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHtkYXRhLCBtZXRob2R9ID0gd2FsbGV0Q2FsbDtcbiAgc3dpdGNoIChtZXRob2QpIHtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlNpZ25NZXNzYWdlOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVTaWduTWVzc2FnZSkgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZVNpZ25NZXNzYWdlKGRhdGEpO1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuU2lnblRyYW5zYWN0aW9uOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVTaWduVHJhbnNhY3Rpb24pIHJldHVybjtcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVTaWduVHJhbnNhY3Rpb24oZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TZW5kVHJhbnNhY3Rpb246XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlU2VuZFRyYW5zYWN0aW9uKGRhdGEpO1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuSGVpZ2h0Q2hhbmdlOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVIZWlnaHRDaGFuZ2UpIHJldHVybjtcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVIZWlnaHRDaGFuZ2UoZGF0YSk7XG4gIH1cblxuICBjb25zb2xlLndhcm4oXG4gICAgYERpZG4ndCBleHBlY3QgdG8gZ2V0IGhlcmUsIGhhbmRsZUlGcmFtZU1lc3NhZ2UgbWV0aG9kOiR7bWV0aG9kfSBpcyBub3Qgb25lIG9mICR7T2JqZWN0LnZhbHVlcyhJRnJhbWVNZXNzYWdlTWV0aG9kcyl9YFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlcnMoe1xuICB3YWxsZXQsXG4gIGJsb2NrY2hhaW4sXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCcgfCAnYmxvY2tjaGFpbic+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIHJldHVybiBDb2luZmxvd1V0aWxzLmJ5QmxvY2tjaGFpbihibG9ja2NoYWluLCB7XG4gICAgc29sYW5hOiAoKSA9PiBnZXRTb2xhbmFXYWxsZXRIYW5kbGVycyh7d2FsbGV0fSksXG4gICAgbmVhcjogKCkgPT4gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBldGg6ICgpID0+IGdldEV2bVdhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBwb2x5Z29uOiAoKSA9PiBnZXRFdm1XYWxsZXRIYW5kbGVycyh7d2FsbGV0fSksXG4gICAgYmFzZTogKCkgPT4gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe3dhbGxldH0pLFxuICB9KSgpO1xufVxuXG5mdW5jdGlvbiBnZXRTb2xhbmFXYWxsZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbn06IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0Jz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0eCA9IGdldFNvbGFuYVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIHJldHVybiAod2FsbGV0IGFzIFNvbGFuYVdhbGxldCkuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICB9LFxuICAgIGhhbmRsZVNpZ25NZXNzYWdlOiBhc3luYyAobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzaWduTWVzc2FnZSA9ICh3YWxsZXQgYXMgU29sYW5hV2FsbGV0KS5zaWduTWVzc2FnZTtcbiAgICAgIGlmICghc2lnbk1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduTWVzc2FnZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgd2FsbGV0Jyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpZ25lZE1lc3NhZ2UgPSBhd2FpdCBzaWduTWVzc2FnZShcbiAgICAgICAgbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG1lc3NhZ2UpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUoc2lnbmVkTWVzc2FnZSk7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzaWduVHJhbnNhY3Rpb24gPSAod2FsbGV0IGFzIFNvbGFuYVdhbGxldCkuc2lnblRyYW5zYWN0aW9uO1xuICAgICAgaWYgKCFzaWduVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduVHJhbnNhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHdhbGxldCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHggPSBnZXRTb2xhbmFUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICBjb25zdCBzaWduZWRUcmFuc2FjdGlvbiA9IGF3YWl0IHNpZ25UcmFuc2FjdGlvbih0eCk7XG4gICAgICByZXR1cm4gYmFzZTU4LmVuY29kZShcbiAgICAgICAgc2lnbmVkVHJhbnNhY3Rpb24uc2VyaWFsaXplKHtcbiAgICAgICAgICByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVRyYW5zYWN0aW9uKFxuICBkYXRhOiBzdHJpbmdcbik6IFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24ge1xuICBpZiAoIXdlYjMpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Bzb2xhbmEvd2ViMy5qcyBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIGluc3RhbGwgQHNvbGFuYS93ZWIzLmpzIGludG8geW91ciBwcm9qZWN0J1xuICAgICk7XG5cbiAgaWYgKCFiYXNlNTgpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2JzNTggaXMgbm90IGRlZmluZWQuIFBsZWFzZSBpbnN0YWxsIGJzNTggaW50byB5b3VyIHByb2plY3QnXG4gICAgKTtcblxuICBjb25zdCBwYXJzZWRVSW50OEFycmF5ID0gYmFzZTU4LmRlY29kZShkYXRhKTtcbiAgY29uc3QgdnR4ID0gd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZShwYXJzZWRVSW50OEFycmF5KTtcbiAgaWYgKHZ0eC52ZXJzaW9uID09PSAnbGVnYWN5JykgcmV0dXJuIHdlYjMuVHJhbnNhY3Rpb24uZnJvbShwYXJzZWRVSW50OEFycmF5KTtcbiAgcmV0dXJuIHZ0eDtcbn1cblxuZnVuY3Rpb24gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IE9taXQ8XG4gIElGcmFtZU1lc3NhZ2VIYW5kbGVycyxcbiAgJ2hhbmRsZUhlaWdodENoYW5nZSdcbj4ge1xuICBjb25zdCBuZWFyV2FsbGV0ID0gd2FsbGV0IGFzIE5lYXJXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbSh0cmFuc2FjdGlvbiwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCkpO1xuICAgICAgY29uc3QgZXhlY3V0aW9uT3V0Y29tZSA9IGF3YWl0IG5lYXJXYWxsZXQuc2lnbkFuZFNlbmRUcmFuc2FjdGlvbihhY3Rpb24pO1xuICAgICAgaWYgKCFleGVjdXRpb25PdXRjb21lKSB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGRpZCBub3Qgc2VuZCcpO1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9uOiB0cmFuc2FjdGlvblJlc3VsdH0gPSBleGVjdXRpb25PdXRjb21lO1xuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uUmVzdWx0Lmhhc2g7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe1xuICB3YWxsZXQsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIGNvbnN0IGV2bVdhbGxldCA9IHdhbGxldCBhcyBFdGhXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHRyYW5zYWN0aW9uLCAnYmFzZTY0JykudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCB7aGFzaH0gPSBhd2FpdCBldm1XYWxsZXQuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHJldHVybiBoYXNoO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBldm1XYWxsZXQuc2lnbk1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQVcvQixJQUFLLG9CQUtKO0FBTEQsV0FBSyxvQkFBb0I7SUFDdkIsbURBQTJCLENBQUE7SUFDM0IsMkRBQW1DLENBQUE7SUFDbkMsMkRBQW1DLENBQUE7SUFDbkMscURBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUxJLG9CQUFvQixLQUFwQixvQkFBb0IsUUFLeEI7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQzlCLE1BQU0sR0FDZ0M7SUFDdEMsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsU0FBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxVQUFrQixFQUNsQixRQUErQjtJQUUvQixJQUFJLFVBQXNCLENBQUM7SUFDM0IsSUFBSSxDQUFDO1FBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQyxL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aGFzZVByb3BzLFxuICBFdGhXYWxsZXQsXG4gIE5lYXJXYWxsZXQsXG4gIFNvbGFuYVdhbGxldCxcbn0gZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmltcG9ydCB7Q29pbmZsb3dVdGlsc30gZnJvbSAnLi9Db2luZmxvd1V0aWxzJztcbmltcG9ydCB0eXBlIHtUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5jb25zdCB3ZWIzID0gcmVxdWlyZSgnQHNvbGFuYS93ZWIzLmpzJyk7XG5jb25zdCBiYXNlNTggPSByZXF1aXJlKCdiczU4Jyk7XG5cbmV4cG9ydCB0eXBlIFdhbGxldENhbGwgPSB7bWV0aG9kOiBJRnJhbWVNZXNzYWdlTWV0aG9kczsgZGF0YTogc3RyaW5nfTtcblxuZXhwb3J0IGludGVyZmFjZSBJRnJhbWVNZXNzYWdlSGFuZGxlcnMge1xuICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIGhhbmRsZVNpZ25NZXNzYWdlPzogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVTaWduVHJhbnNhY3Rpb24/OiAodHJhbnNhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVIZWlnaHRDaGFuZ2U/OiAoaGVpZ2h0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmVudW0gSUZyYW1lTWVzc2FnZU1ldGhvZHMge1xuICBTaWduTWVzc2FnZSA9ICdzaWduTWVzc2FnZScsXG4gIFNpZ25UcmFuc2FjdGlvbiA9ICdzaWduVHJhbnNhY3Rpb24nLFxuICBTZW5kVHJhbnNhY3Rpb24gPSAnc2VuZFRyYW5zYWN0aW9uJyxcbiAgSGVpZ2h0Q2hhbmdlID0gJ2hlaWdodENoYW5nZScsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRQdWJrZXkoe1xuICB3YWxsZXQsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCc+KTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIGlmICgncHVibGljS2V5JyBpbiB3YWxsZXQpIHtcbiAgICByZXR1cm4gd2FsbGV0LnB1YmxpY0tleSEudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGlmICgnYWRkcmVzcycgaW4gd2FsbGV0KSB7XG4gICAgcmV0dXJuIHdhbGxldC5hZGRyZXNzO1xuICB9XG5cbiAgaWYgKCdhY2NvdW50SWQnIGluIHdhbGxldCkge1xuICAgIHJldHVybiB3YWxsZXQuYWNjb3VudElkO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJRnJhbWVNZXNzYWdlKFxuICByYXdNZXNzYWdlOiBzdHJpbmcsXG4gIGhhbmRsZXJzOiBJRnJhbWVNZXNzYWdlSGFuZGxlcnNcbik6IFByb21pc2U8c3RyaW5nPiB8IHZvaWQge1xuICBsZXQgd2FsbGV0Q2FsbDogV2FsbGV0Q2FsbDtcbiAgdHJ5IHtcbiAgICB3YWxsZXRDYWxsID0gSlNPTi5wYXJzZShyYXdNZXNzYWdlKTtcbiAgICBpZiAoISgnbWV0aG9kJyBpbiB3YWxsZXRDYWxsKSB8fCAhKCdkYXRhJyBpbiB3YWxsZXRDYWxsKSkgcmV0dXJuO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignaGFuZGxlSUZyYW1lTWVzc2FnZSBKU09OIHBhcnNlJywgZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge2RhdGEsIG1ldGhvZH0gPSB3YWxsZXRDYWxsO1xuICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuU2lnbk1lc3NhZ2U6XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZVNpZ25NZXNzYWdlKSByZXR1cm47XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlU2lnbk1lc3NhZ2UoZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TaWduVHJhbnNhY3Rpb246XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZVNpZ25UcmFuc2FjdGlvbikgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZVNpZ25UcmFuc2FjdGlvbihkYXRhKTtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlNlbmRUcmFuc2FjdGlvbjpcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVTZW5kVHJhbnNhY3Rpb24oZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5IZWlnaHRDaGFuZ2U6XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZUhlaWdodENoYW5nZSkgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZUhlaWdodENoYW5nZShkYXRhKTtcbiAgfVxuXG4gIGNvbnNvbGUud2FybihcbiAgICBgRGlkbid0IGV4cGVjdCB0byBnZXQgaGVyZSwgaGFuZGxlSUZyYW1lTWVzc2FnZSBtZXRob2Q6JHttZXRob2R9IGlzIG5vdCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKElGcmFtZU1lc3NhZ2VNZXRob2RzKX1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbiAgYmxvY2tjaGFpbixcbn06IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0JyB8ICdibG9ja2NoYWluJz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgcmV0dXJuIENvaW5mbG93VXRpbHMuYnlCbG9ja2NoYWluKGJsb2NrY2hhaW4sIHtcbiAgICBzb2xhbmE6ICgpID0+IGdldFNvbGFuYVdhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBuZWFyOiAoKSA9PiBnZXROZWFyV2FsbGV0SGFuZGxlcnMoe3dhbGxldH0pLFxuICAgIGV0aDogKCkgPT4gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe3dhbGxldH0pLFxuICAgIHBvbHlnb246ICgpID0+IGdldEV2bVdhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBiYXNlOiAoKSA9PiBnZXRFdm1XYWxsZXRIYW5kbGVycyh7d2FsbGV0fSksXG4gIH0pKCk7XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVdhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IE9taXQ8XG4gIElGcmFtZU1lc3NhZ2VIYW5kbGVycyxcbiAgJ2hhbmRsZUhlaWdodENoYW5nZSdcbj4ge1xuICByZXR1cm4ge1xuICAgIGhhbmRsZVNlbmRUcmFuc2FjdGlvbjogYXN5bmMgKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHR4ID0gZ2V0U29sYW5hVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgcmV0dXJuICh3YWxsZXQgYXMgU29sYW5hV2FsbGV0KS5zZW5kVHJhbnNhY3Rpb24odHgpO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25NZXNzYWdlID0gKHdhbGxldCBhcyBTb2xhbmFXYWxsZXQpLnNpZ25NZXNzYWdlO1xuICAgICAgaWYgKCFzaWduTWVzc2FnZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25NZXNzYWdlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyB3YWxsZXQnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IHNpZ25NZXNzYWdlKFxuICAgICAgICBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUobWVzc2FnZSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gYmFzZTU4LmVuY29kZShzaWduZWRNZXNzYWdlKTtcbiAgICB9LFxuICAgIGhhbmRsZVNpZ25UcmFuc2FjdGlvbjogYXN5bmMgKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25UcmFuc2FjdGlvbiA9ICh3YWxsZXQgYXMgU29sYW5hV2FsbGV0KS5zaWduVHJhbnNhY3Rpb247XG4gICAgICBpZiAoIXNpZ25UcmFuc2FjdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25UcmFuc2FjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgd2FsbGV0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCB0eCA9IGdldFNvbGFuYVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gYXdhaXQgc2lnblRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKFxuICAgICAgICBzaWduZWRUcmFuc2FjdGlvbi5zZXJpYWxpemUoe1xuICAgICAgICAgIHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U29sYW5hVHJhbnNhY3Rpb24oXG4gIGRhdGE6IHN0cmluZ1xuKTogVHJhbnNhY3Rpb24gfCBWZXJzaW9uZWRUcmFuc2FjdGlvbiB7XG4gIGlmICghd2ViMylcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQHNvbGFuYS93ZWIzLmpzIGlzIG5vdCBkZWZpbmVkLiBQbGVhc2UgaW5zdGFsbCBAc29sYW5hL3dlYjMuanMgaW50byB5b3VyIHByb2plY3QnXG4gICAgKTtcblxuICBpZiAoIWJhc2U1OClcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYnM1OCBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIGluc3RhbGwgYnM1OCBpbnRvIHlvdXIgcHJvamVjdCdcbiAgICApO1xuXG4gIGNvbnN0IHBhcnNlZFVJbnQ4QXJyYXkgPSBiYXNlNTguZGVjb2RlKGRhdGEpO1xuICBjb25zdCB2dHggPSB3ZWIzLlZlcnNpb25lZFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplKHBhcnNlZFVJbnQ4QXJyYXkpO1xuICBpZiAodnR4LnZlcnNpb24gPT09ICdsZWdhY3knKSByZXR1cm4gd2ViMy5UcmFuc2FjdGlvbi5mcm9tKHBhcnNlZFVJbnQ4QXJyYXkpO1xuICByZXR1cm4gdnR4O1xufVxuXG5mdW5jdGlvbiBnZXROZWFyV2FsbGV0SGFuZGxlcnMoe1xuICB3YWxsZXQsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIGNvbnN0IG5lYXJXYWxsZXQgPSB3YWxsZXQgYXMgTmVhcldhbGxldDtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBhY3Rpb24gPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHRyYW5zYWN0aW9uLCAnYmFzZTY0JykudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCBleGVjdXRpb25PdXRjb21lID0gYXdhaXQgbmVhcldhbGxldC5zaWduQW5kU2VuZFRyYW5zYWN0aW9uKGFjdGlvbik7XG4gICAgICBpZiAoIWV4ZWN1dGlvbk91dGNvbWUpIHRocm93IG5ldyBFcnJvcignVHJhbnNhY3Rpb24gZGlkIG5vdCBzZW5kJyk7XG4gICAgICBjb25zdCB7dHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uUmVzdWx0fSA9IGV4ZWN1dGlvbk91dGNvbWU7XG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb25SZXN1bHQuaGFzaDtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRFdm1XYWxsZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbn06IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0Jz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgY29uc3QgZXZtV2FsbGV0ID0gd2FsbGV0IGFzIEV0aFdhbGxldDtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0eCA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20odHJhbnNhY3Rpb24sICdiYXNlNjQnKS50b1N0cmluZygpKTtcbiAgICAgIGNvbnN0IHtoYXNofSA9IGF3YWl0IGV2bVdhbGxldC5zZW5kVHJhbnNhY3Rpb24odHgpO1xuICAgICAgcmV0dXJuIGhhc2g7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduTWVzc2FnZTogYXN5bmMgKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGV2bVdhbGxldC5zaWduTWVzc2FnZShtZXNzYWdlKTtcbiAgICB9LFxuICB9O1xufVxuIl19
|
|
@@ -10,4 +10,4 @@ export var MerchantStyle;
|
|
|
10
10
|
MerchantStyle["Sharp"] = "sharp";
|
|
11
11
|
MerchantStyle["Pill"] = "pill";
|
|
12
12
|
})(MerchantStyle || (MerchantStyle = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIscUNBQW1CLENBQUE7SUFDbkIsK0JBQWEsQ0FBQTtJQUNiLCtCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge0Nvbm5lY3Rpb24sIFZlcnNpb25lZFRyYW5zYWN0aW9ufSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuaW1wb3J0IHtQdWJsaWNLZXksIFNpZ25lciwgVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5cbmV4cG9ydCBlbnVtIFNldHRsZW1lbnRUeXBlIHtcbiAgQ3JlZGl0cyA9ICdDcmVkaXRzJyxcbiAgVVNEQyA9ICdVU0RDJyxcbiAgQmFuayA9ICdCYW5rJyxcbn1cblxuZXhwb3J0IGVudW0gTWVyY2hhbnRTdHlsZSB7XG4gIFJvdW5kZWQgPSAncm91bmRlZCcsXG4gIFNoYXJwID0gJ3NoYXJwJyxcbiAgUGlsbCA9ICdwaWxsJyxcbn1cblxuZXhwb3J0IHR5cGUgTWVyY2hhbnRUaGVtZSA9IHtcbiAgcHJpbWFyeT86IHN0cmluZztcbiAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgYmFja2dyb3VuZEFjY2VudD86IHN0cmluZztcbiAgYmFja2dyb3VuZEFjY2VudDI/OiBzdHJpbmc7XG4gIHRleHRDb2xvcj86IHN0cmluZztcbiAgdGV4dENvbG9yQWNjZW50Pzogc3RyaW5nO1xuICB0ZXh0Q29sb3JBY3Rpb24/OiBzdHJpbmc7XG4gIGZvbnQ/OiBzdHJpbmc7XG4gIHN0eWxlPzogTWVyY2hhbnRTdHlsZTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJJbmZvIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uSWQ/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICBjaXR5Pzogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgemlwPzogc3RyaW5nO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xuICBpcD86IHN0cmluZztcbiAgbGF0Pzogc3RyaW5nO1xuICBsbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBDb2luZmxvdyBUeXBlcyAqKi9cbmV4cG9ydCB0eXBlIENvaW5mbG93QmxvY2tjaGFpbiA9ICdzb2xhbmEnIHwgJ25lYXInIHwgJ2V0aCcgfCAncG9seWdvbicgfCAnYmFzZSc7XG5leHBvcnQgdHlwZSBDb2luZmxvd0VudnMgPSAncHJvZCcgfCAnc3RhZ2luZycgfCAnc2FuZGJveCcgfCAnbG9jYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93VHlwZXMge1xuICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIGVudj86IENvaW5mbG93RW52cztcbiAgbG9hZGVyQmFja2dyb3VuZD86IHN0cmluZztcbiAgYmxvY2tjaGFpbjogQ29pbmZsb3dCbG9ja2NoYWluO1xuICBoYW5kbGVIZWlnaHRDaGFuZ2U/OiAoaGVpZ2h0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHRoZW1lPzogTWVyY2hhbnRUaGVtZTtcbn1cblxuZXhwb3J0IHR5cGUgUGFydGlhbEJ5PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQYXJ0aWFsPFBpY2s8VCwgSz4+O1xuXG5leHBvcnQgdHlwZSBPblN1Y2Nlc3NNZXRob2QgPSAocGFyYW1zOiBzdHJpbmcpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4vKiogV2FsbGV0cyAqKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29sYW5hV2FsbGV0IHtcbiAgcHVibGljS2V5OiBQdWJsaWNLZXkgfCBudWxsO1xuICBzaWduVHJhbnNhY3Rpb24/OiA8VCBleHRlbmRzIFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24+KFxuICAgIHRyYW5zYWN0aW9uOiBUXG4gICkgPT4gUHJvbWlzZTxUPjtcbiAgc2VuZFRyYW5zYWN0aW9uOiA8VCBleHRlbmRzIFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24+KFxuICAgIHRyYW5zYWN0aW9uOiBUXG4gICkgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBzaWduTWVzc2FnZT86IChtZXNzYWdlOiBVaW50OEFycmF5KSA9PiBQcm9taXNlPFVpbnQ4QXJyYXk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5lYXJXYWxsZXQge1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgc2lnbkFuZFNlbmRUcmFuc2FjdGlvbjogKHRyYW5zYWN0aW9uOiB1bmtub3duKSA9PiBQcm9taXNlPHtcbiAgICB0cmFuc2FjdGlvbjoge2hhc2g6IHN0cmluZ307XG4gIH0+O1xufVxuXG50eXBlIEFjY2Vzc0xpc3QgPSBBcnJheTx7YWRkcmVzczogc3RyaW5nOyBzdG9yYWdlS2V5czogQXJyYXk8c3RyaW5nPn0+O1xudHlwZSBBY2Nlc3NMaXN0aXNoID1cbiAgfCBBY2Nlc3NMaXN0XG4gIHwgQXJyYXk8W3N0cmluZywgQXJyYXk8c3RyaW5nPl0+XG4gIHwgUmVjb3JkPHN0cmluZywgQXJyYXk8c3RyaW5nPj47XG5cbmV4cG9ydCB0eXBlIEV0aFdhbGxldCA9IHtcbiAgYWRkcmVzczogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgc2VuZFRyYW5zYWN0aW9uOiAodHJhbnNhY3Rpb246IHtcbiAgICB0bzogc3RyaW5nO1xuICAgIGZyb20/OiBzdHJpbmc7XG4gICAgbm9uY2U/OiBCeXRlcyB8IGJpZ2ludCB8IHN0cmluZyB8IG51bWJlcjtcblxuICAgIGdhc0xpbWl0PzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG4gICAgZ2FzUHJpY2U/OiBCeXRlcyB8IGJpZ2ludCB8IHN0cmluZyB8IG51bWJlcjtcblxuICAgIGRhdGE/OiBCeXRlc0xpa2U7XG4gICAgdmFsdWU/OiBCeXRlcyB8IGJpZ2ludCB8IHN0cmluZyB8IG51bWJlcjtcbiAgICBjaGFpbklkPzogbnVtYmVyO1xuXG4gICAgdHlwZT86IG51bWJlcjtcbiAgICBhY2Nlc3NMaXN0PzogQWNjZXNzTGlzdGlzaDtcblxuICAgIG1heFByaW9yaXR5RmVlUGVyR2FzPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG4gICAgbWF4RmVlUGVyR2FzPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBjdXN0b21EYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjY2lwUmVhZEVuYWJsZWQ/OiBib29sZWFuO1xuICB9KSA9PiBQcm9taXNlPHtoYXNoOiBzdHJpbmd9PjtcbiAgc2lnbk1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbn07XG5cbi8qKiBIaXN0b3J5ICoqL1xuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd1NvbGFuYUhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICB3YWxsZXQ6IFNvbGFuYVdhbGxldDtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgYmxvY2tjaGFpbjogJ3NvbGFuYSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dOZWFySGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIHdhbGxldDogTmVhcldhbGxldDtcbiAgYmxvY2tjaGFpbjogJ25lYXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIHdhbGxldDogRXRoV2FsbGV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93RXRoSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1IaXN0b3J5UHJvcHMge1xuICBibG9ja2NoYWluOiAnZXRoJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd1BvbHlnb25IaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bUhpc3RvcnlQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdwb2x5Z29uJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0Jhc2VIaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bUhpc3RvcnlQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdiYXNlJztcbn1cblxuZXhwb3J0IHR5cGUgQ29pbmZsb3dIaXN0b3J5UHJvcHMgPVxuICB8IENvaW5mbG93U29sYW5hSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dOZWFySGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dQb2x5Z29uSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dFdGhIaXN0b3J5UHJvcHNcbiAgfCBDb2luZmxvd0Jhc2VIaXN0b3J5UHJvcHM7XG5cbi8qKiBUcmFuc2FjdGlvbnMgKiovXG5cbmV4cG9ydCB0eXBlIE5lYXJGdFRyYW5zZmVyQ2FsbEFjdGlvbiA9IHtcbiAgbWV0aG9kTmFtZTogJ2Z0X3RyYW5zZmVyX2NhbGwnO1xuICBhcmdzOiBvYmplY3Q7XG4gIGdhczogc3RyaW5nO1xuICBkZXBvc2l0OiBzdHJpbmc7XG59O1xuXG50eXBlIEJ5dGVzID0gQXJyYXlMaWtlPG51bWJlcj47XG50eXBlIEJ5dGVzTGlrZSA9IEJ5dGVzIHwgc3RyaW5nO1xuXG4vKiogUHVyY2hhc2UgKiovXG5cbmV4cG9ydCB0eXBlIENoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSA9IENoYXJnZWJhY2tQcm90ZWN0aW9uSXRlbVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJnZWJhY2tQcm90ZWN0aW9uSXRlbSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvZHVjdFxuICAgKi9cbiAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwcm9kdWN0IHR5cGUuIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlOiBpbkdhbWVQcm9kdWN0LCBnYW1lT2ZTa2lsbCwgZGF0YVN0b3JhZ2UsIGNvbXB1dGluZ1Jlc291cmNlcywgc3BvcnRzVGlja2V0LCBlU3BvcnRzVGlja2V0LCBtdXNpY1RpY2tldCwgY29uZmVyZW5jZVRpY2tldCwgdmlydHVhbFNwb3J0c1RpY2tldCwgdmlydHVhbEVTcG9ydHNUaWNrZXQsIHZpcnR1YWxNdXNpY1RpY2tldCwgdmlydHVhbENvbmZlcmVuY2VUaWNrZXQsIGFsY29ob2wsIERMQywgc3Vic2NyaXB0aW9uLCBmdW5kQUNhdXNlLCByZWFsRXN0YXRlLCBjb21wdXRpbmdDb250cmFjdCwgZGlnaXRhbEFydCwgdG9wVXBcbiAgICovXG4gIHByb2R1Y3RUeXBlOlxuICAgIHwgJ2luR2FtZVByb2R1Y3QnXG4gICAgfCAnZ2FtZU9mU2tpbGwnXG4gICAgfCAnZGF0YVN0b3JhZ2UnXG4gICAgfCAnY29tcHV0aW5nUmVzb3VyY2VzJ1xuICAgIHwgJ3Nwb3J0c1RpY2tldCdcbiAgICB8ICdlU3BvcnRzVGlja2V0J1xuICAgIHwgJ211c2ljVGlja2V0J1xuICAgIHwgJ2NvbmZlcmVuY2VUaWNrZXQnXG4gICAgfCAndmlydHVhbFNwb3J0c1RpY2tldCdcbiAgICB8ICd2aXJ0dWFsRVNwb3J0c1RpY2tldCdcbiAgICB8ICd2aXJ0dWFsTXVzaWNUaWNrZXQnXG4gICAgfCAndmlydHVhbENvbmZlcmVuY2VUaWNrZXQnXG4gICAgfCAnYWxjb2hvbCdcbiAgICB8ICdETEMnXG4gICAgfCAnc3Vic2NyaXB0aW9uJ1xuICAgIHwgJ2Z1bmRBQ2F1c2UnXG4gICAgfCAncmVhbEVzdGF0ZSdcbiAgICB8ICdjb21wdXRpbmdDb250cmFjdCdcbiAgICB8ICdkaWdpdGFsQXJ0J1xuICAgIHwgJ3RvcFVwJ1xuICAgIHwgJ293bmVyc2hpcENvbnRyYWN0JztcbiAgLyoqXG4gICAqIFRoZSBpdGVtJ3MgbGlzdCBwcmljZVxuICAgKi9cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdW5pdHMgc29sZFxuICAgKi9cbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgLyoqXG4gICAqIEFueSBhZGRpdGlvbmFsIGRhdGEgdGhhdCB0aGUgc3RvcmUgY2FuIHByb3ZpZGUgb24gdGhlIHByb2R1Y3QsIGUuZy4gZGVzY3JpcHRpb24sIGxpbmsgdG8gaW1hZ2UsIGV0Yy5cbiAgICovXG4gIHJhd1Byb2R1Y3REYXRhPzoge1trZXk6IHN0cmluZ106IGFueX07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dDb21tb25QdXJjaGFzZVByb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIGFtb3VudD86IG51bWJlcjtcbiAgb25TdWNjZXNzPzogT25TdWNjZXNzTWV0aG9kO1xuICB3ZWJob29rSW5mbz86IG9iamVjdDtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YT86IENoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YTtcbiAgcGxhbkNvZGU/OiBzdHJpbmc7XG4gIGRpc2FibGVBcHBsZVBheT86IGJvb2xlYW47XG4gIGRpc2FibGVHb29nbGVQYXk/OiBib29sZWFuO1xuICBjdXN0b21lckluZm8/OiBDdXN0b21lckluZm87XG4gIHNldHRsZW1lbnRUeXBlPzogU2V0dGxlbWVudFR5cGU7XG4gIGF1dGhPbmx5PzogYm9vbGVhbjtcbiAgZGV2aWNlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTb2xhbmFQdXJjaGFzZVByb3BzXG4gIGV4dGVuZHMgQ29pbmZsb3dDb21tb25QdXJjaGFzZVByb3BzIHtcbiAgd2FsbGV0OiBTb2xhbmFXYWxsZXQ7XG4gIHRyYW5zYWN0aW9uPzogVHJhbnNhY3Rpb24gfCBWZXJzaW9uZWRUcmFuc2FjdGlvbjtcbiAgcGFydGlhbFNpZ25lcnM/OiBTaWduZXJbXTtcbiAgZGVidWdUeD86IGJvb2xlYW47XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG4gIGJsb2NrY2hhaW46ICdzb2xhbmEnO1xuICB0b2tlbj86IFB1YmxpY0tleSB8IHN0cmluZztcbiAgc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnM/OiBib29sZWFuO1xuICByZW50Pzoge2xhbXBvcnRzOiBzdHJpbmcgfCBudW1iZXJ9O1xuICBuYXRpdmVTb2xUb0NvbnZlcnQ/OiB7bGFtcG9ydHM6IHN0cmluZyB8IG51bWJlcn07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dOZWFyUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyB7XG4gIHdhbGxldDogTmVhcldhbGxldDtcbiAgYmxvY2tjaGFpbjogJ25lYXInO1xuICBhY3Rpb24/OiBOZWFyRnRUcmFuc2ZlckNhbGxBY3Rpb247XG4gIG5lYXJEZXBvc2l0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyB7XG4gIHRyYW5zYWN0aW9uPzogRXZtVHJhbnNhY3Rpb25EYXRhO1xuICB0b2tlbj86IHN0cmluZztcbiAgd2FsbGV0OiBFdGhXYWxsZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dQb2x5Z29uUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdwb2x5Z29uJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V0aFB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMge1xuICBibG9ja2NoYWluOiAnZXRoJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0Jhc2VQdXJjaGFzZVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1QdXJjaGFzZVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2Jhc2UnO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd1B1cmNoYXNlUHJvcHMgPVxuICB8IENvaW5mbG93U29sYW5hUHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93TmVhclB1cmNoYXNlUHJvcHNcbiAgfCBDb2luZmxvd1BvbHlnb25QdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dFdGhQdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dCYXNlUHVyY2hhc2VQcm9wcztcblxuLyoqIFdpdGhkcmF3ICoqL1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICBvblN1Y2Nlc3M/OiBPblN1Y2Nlc3NNZXRob2Q7XG4gIHRva2Vucz86IHN0cmluZ1tdO1xuICBsb2NrRGVmYXVsdFRva2VuPzogYm9vbGVhbjtcbiAgYW1vdW50PzogbnVtYmVyO1xuICBlbWFpbD86IHN0cmluZztcbiAgYmFua0FjY291bnRMaW5rUmVkaXJlY3Q/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxXYWxsZXRzPzoge1xuICAgIHdhbGxldDogc3RyaW5nO1xuICAgIGJsb2NrY2hhaW46ICdzb2xhbmEnIHwgJ2V0aCcgfCAnbmVhcicgfCAncG9seWdvbic7XG4gIH1bXTtcbiAgc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnM/OiBib29sZWFuO1xuICBsb2NrQW1vdW50PzogYm9vbGVhbjtcbiAgdHJhbnNhY3Rpb25TaWduZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTb2xhbmFXaXRoZHJhd1Byb3BzXG4gIGV4dGVuZHMgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIHtcbiAgd2FsbGV0OiBTb2xhbmFXYWxsZXQ7XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG4gIGJsb2NrY2hhaW46ICdzb2xhbmEnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93TmVhcldpdGhkcmF3UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vbldpdGhkcmF3UHJvcHMge1xuICB3YWxsZXQ6IE5lYXJXYWxsZXQ7XG4gIGJsb2NrY2hhaW46ICduZWFyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V2bVdpdGhkcmF3UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vbldpdGhkcmF3UHJvcHMge1xuICB3YWxsZXQ6IEV0aFdhbGxldDtcbiAgdXNlUGVybWl0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V0aFdpdGhkcmF3UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bVdpdGhkcmF3UHJvcHMge1xuICBibG9ja2NoYWluOiAnZXRoJztcbiAgdXNlUGVybWl0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd1BvbHlnb25XaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIHtcbiAgYmxvY2tjaGFpbjogJ3BvbHlnb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93QmFzZVdpdGhkcmF3UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bVdpdGhkcmF3UHJvcHMge1xuICBibG9ja2NoYWluOiAnYmFzZSc7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93V2l0aGRyYXdQcm9wcyA9XG4gIHwgQ29pbmZsb3dTb2xhbmFXaXRoZHJhd1Byb3BzXG4gIHwgQ29pbmZsb3dOZWFyV2l0aGRyYXdQcm9wc1xuICB8IENvaW5mbG93RXRoV2l0aGRyYXdQcm9wc1xuICB8IENvaW5mbG93UG9seWdvbldpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd0Jhc2VXaXRoZHJhd1Byb3BzO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vbkV2bVJlZGVlbSB7XG4gIHdhaXRGb3JIYXNoPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3JtYWxSZWRlZW0gZXh0ZW5kcyBDb21tb25Fdm1SZWRlZW0ge1xuICB0cmFuc2FjdGlvbjoge3RvOiBzdHJpbmc7IGRhdGE6IHN0cmluZ307XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS25vd25Ub2tlbklkUmVkZWVtIGV4dGVuZHMgTm9ybWFsUmVkZWVtIHtcbiAgbmZ0Q29udHJhY3Q6IHN0cmluZztcbiAgbmZ0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYWZlTWludFJlZGVlbSBleHRlbmRzIE5vcm1hbFJlZGVlbSB7XG4gIHR5cGU6ICdzYWZlTWludCc7XG4gIG5mdENvbnRyYWN0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldHVybmVkVG9rZW5JZFJlZGVlbSBleHRlbmRzIE5vcm1hbFJlZGVlbSB7XG4gIHR5cGU6ICdyZXR1cm5lZCc7XG4gIG5mdENvbnRyYWN0Pzogc3RyaW5nO1xufVxuXG50eXBlIFJlc2Vydm9pck5mdElkSXRlbSA9IE9taXQ8S25vd25Ub2tlbklkUmVkZWVtLCBrZXlvZiBOb3JtYWxSZWRlZW0+O1xuaW50ZXJmYWNlIFJlc2Vydm9pck9yZGVySWRJdGVtIHtcbiAgb3JkZXJJZDogc3RyaW5nO1xufVxudHlwZSBSZXNlcnZvaXJJdGVtID0gUmVzZXJ2b2lyTmZ0SWRJdGVtIHwgUmVzZXJ2b2lyT3JkZXJJZEl0ZW07XG50eXBlIFJlc2Vydm9pckl0ZW1zID0gUmVzZXJ2b2lySXRlbSB8IFJlc2Vydm9pckl0ZW1bXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNlcnZvaXJSZWRlZW0gZXh0ZW5kcyBDb21tb25Fdm1SZWRlZW0ge1xuICB0eXBlOiAncmVzZXJ2b2lyJztcbiAgaXRlbXM6IFJlc2Vydm9pckl0ZW1zO1xufVxuXG5leHBvcnQgdHlwZSBFdm1UcmFuc2FjdGlvbkRhdGEgPVxuICB8IFNhZmVNaW50UmVkZWVtXG4gIHwgUmV0dXJuZWRUb2tlbklkUmVkZWVtXG4gIHwgUmVzZXJ2b2lyUmVkZWVtXG4gIHwgS25vd25Ub2tlbklkUmVkZWVtXG4gIHwgTm9ybWFsUmVkZWVtO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93SUZyYW1lUHJvcHNcbiAgZXh0ZW5kcyBPbWl0PENvaW5mbG93VHlwZXMsICdtZXJjaGFudElkJz4sXG4gICAgUGljazxcbiAgICAgIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyxcbiAgICAgIHwgJ2NoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSdcbiAgICAgIHwgJ3dlYmhvb2tJbmZvJ1xuICAgICAgfCAnYW1vdW50J1xuICAgICAgfCAnY3VzdG9tZXJJbmZvJ1xuICAgICAgfCAnc2V0dGxlbWVudFR5cGUnXG4gICAgICB8ICdlbWFpbCdcbiAgICAgIHwgJ3BsYW5Db2RlJ1xuICAgICAgfCAnZGV2aWNlSWQnXG4gICAgPixcbiAgICBQaWNrPFxuICAgICAgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzLFxuICAgICAgfCAnYmFua0FjY291bnRMaW5rUmVkaXJlY3QnXG4gICAgICB8ICdhZGRpdGlvbmFsV2FsbGV0cydcbiAgICAgIHwgJ3RyYW5zYWN0aW9uU2lnbmVyJ1xuICAgICAgfCAnbG9ja0Ftb3VudCdcbiAgICAgIHwgJ2xvY2tEZWZhdWx0VG9rZW4nXG4gICAgPixcbiAgICBQaWNrPENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcywgJ2F1dGhPbmx5Jz4sXG4gICAgUGljazxDb2luZmxvd1NvbGFuYVB1cmNoYXNlUHJvcHMsICdyZW50JyB8ICduYXRpdmVTb2xUb0NvbnZlcnQnIHwgJ3Rva2VuJz4ge1xuICB3YWxsZXRQdWJrZXk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIHJvdXRlUHJlZml4Pzogc3RyaW5nO1xuICB0cmFuc2FjdGlvbj86IHN0cmluZztcbiAgdG9rZW5zPzogc3RyaW5nW10gfCBQdWJsaWNLZXlbXTtcbiAgc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnM/OiBib29sZWFuO1xuICBuZWFyRGVwb3NpdD86IHN0cmluZztcbiAgbWVyY2hhbnRDc3M/OiBzdHJpbmc7XG4gIGNvbG9yPzogJ3doaXRlJyB8ICdibGFjayc7XG4gIGRpc2FibGVBcHBsZVBheT86IGJvb2xlYW47XG4gIGRpc2FibGVHb29nbGVQYXk/OiBib29sZWFuO1xuICB0aGVtZT86IE1lcmNoYW50VGhlbWU7XG4gIHVzZVBlcm1pdD86IGJvb2xlYW47XG59XG4iXX0=
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIscUNBQW1CLENBQUE7SUFDbkIsK0JBQWEsQ0FBQTtJQUNiLCtCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDb25uZWN0aW9uLFxuICBWZXJzaW9uZWRUcmFuc2FjdGlvbixcbiAgUHVibGljS2V5LFxuICBTaWduZXIsXG4gIFRyYW5zYWN0aW9uLFxufSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuXG5leHBvcnQgZW51bSBTZXR0bGVtZW50VHlwZSB7XG4gIENyZWRpdHMgPSAnQ3JlZGl0cycsXG4gIFVTREMgPSAnVVNEQycsXG4gIEJhbmsgPSAnQmFuaycsXG59XG5cbmV4cG9ydCBlbnVtIE1lcmNoYW50U3R5bGUge1xuICBSb3VuZGVkID0gJ3JvdW5kZWQnLFxuICBTaGFycCA9ICdzaGFycCcsXG4gIFBpbGwgPSAncGlsbCcsXG59XG5cbmV4cG9ydCB0eXBlIE1lcmNoYW50VGhlbWUgPSB7XG4gIHByaW1hcnk/OiBzdHJpbmc7XG4gIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIGJhY2tncm91bmRBY2NlbnQ/OiBzdHJpbmc7XG4gIGJhY2tncm91bmRBY2NlbnQyPzogc3RyaW5nO1xuICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIHRleHRDb2xvckFjY2VudD86IHN0cmluZztcbiAgdGV4dENvbG9yQWN0aW9uPzogc3RyaW5nO1xuICBmb250Pzogc3RyaW5nO1xuICBzdHlsZT86IE1lcmNoYW50U3R5bGU7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVySW5mbyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbklkPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgY2l0eT86IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG4gIHppcD86IHN0cmluZztcbiAgY291bnRyeT86IHN0cmluZztcbiAgaXA/OiBzdHJpbmc7XG4gIGxhdD86IHN0cmluZztcbiAgbG5nPzogc3RyaW5nO1xufVxuXG4vKiogQ29pbmZsb3cgVHlwZXMgKiovXG5leHBvcnQgdHlwZSBDb2luZmxvd0Jsb2NrY2hhaW4gPSAnc29sYW5hJyB8ICduZWFyJyB8ICdldGgnIHwgJ3BvbHlnb24nIHwgJ2Jhc2UnO1xuZXhwb3J0IHR5cGUgQ29pbmZsb3dFbnZzID0gJ3Byb2QnIHwgJ3N0YWdpbmcnIHwgJ3NhbmRib3gnIHwgJ2xvY2FsJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd1R5cGVzIHtcbiAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICBlbnY/OiBDb2luZmxvd0VudnM7XG4gIGxvYWRlckJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIGJsb2NrY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbjtcbiAgaGFuZGxlSGVpZ2h0Q2hhbmdlPzogKGhlaWdodDogc3RyaW5nKSA9PiB2b2lkO1xuICB0aGVtZT86IE1lcmNoYW50VGhlbWU7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxCeTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGFydGlhbDxQaWNrPFQsIEs+PjtcblxuZXhwb3J0IHR5cGUgT25TdWNjZXNzTWV0aG9kID0gKHBhcmFtczogc3RyaW5nKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuLyoqIFdhbGxldHMgKiovXG5leHBvcnQgaW50ZXJmYWNlIFNvbGFuYVdhbGxldCB7XG4gIHB1YmxpY0tleTogUHVibGljS2V5IHwgbnVsbDtcbiAgc2lnblRyYW5zYWN0aW9uPzogPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICB0cmFuc2FjdGlvbjogVFxuICApID0+IFByb21pc2U8VD47XG4gIHNlbmRUcmFuc2FjdGlvbjogPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICB0cmFuc2FjdGlvbjogVFxuICApID0+IFByb21pc2U8c3RyaW5nPjtcbiAgc2lnbk1lc3NhZ2U/OiAobWVzc2FnZTogVWludDhBcnJheSkgPT4gUHJvbWlzZTxVaW50OEFycmF5Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZWFyV2FsbGV0IHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHNpZ25BbmRTZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbjogdW5rbm93bikgPT4gUHJvbWlzZTx7XG4gICAgdHJhbnNhY3Rpb246IHtoYXNoOiBzdHJpbmd9O1xuICB9Pjtcbn1cblxudHlwZSBBY2Nlc3NMaXN0ID0gQXJyYXk8e2FkZHJlc3M6IHN0cmluZzsgc3RvcmFnZUtleXM6IEFycmF5PHN0cmluZz59PjtcbnR5cGUgQWNjZXNzTGlzdGlzaCA9XG4gIHwgQWNjZXNzTGlzdFxuICB8IEFycmF5PFtzdHJpbmcsIEFycmF5PHN0cmluZz5dPlxuICB8IFJlY29yZDxzdHJpbmcsIEFycmF5PHN0cmluZz4+O1xuXG5leHBvcnQgdHlwZSBFdGhXYWxsZXQgPSB7XG4gIGFkZHJlc3M6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHNlbmRUcmFuc2FjdGlvbjogKHRyYW5zYWN0aW9uOiB7XG4gICAgdG86IHN0cmluZztcbiAgICBmcm9tPzogc3RyaW5nO1xuICAgIG5vbmNlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBnYXNMaW1pdD86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuICAgIGdhc1ByaWNlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBkYXRhPzogQnl0ZXNMaWtlO1xuICAgIHZhbHVlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG4gICAgY2hhaW5JZD86IG51bWJlcjtcblxuICAgIHR5cGU/OiBudW1iZXI7XG4gICAgYWNjZXNzTGlzdD86IEFjY2Vzc0xpc3Rpc2g7XG5cbiAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1heEZlZVBlckdhcz86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgY3VzdG9tRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY2NpcFJlYWRFbmFibGVkPzogYm9vbGVhbjtcbiAgfSkgPT4gUHJvbWlzZTx7aGFzaDogc3RyaW5nfT47XG4gIHNpZ25NZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG59O1xuXG4vKiogSGlzdG9yeSAqKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTb2xhbmFIaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd1R5cGVzIHtcbiAgd2FsbGV0OiBTb2xhbmFXYWxsZXQ7XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG4gIGJsb2NrY2hhaW46ICdzb2xhbmEnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93TmVhckhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICB3YWxsZXQ6IE5lYXJXYWxsZXQ7XG4gIGJsb2NrY2hhaW46ICduZWFyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V2bUhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICB3YWxsZXQ6IEV0aFdhbGxldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V0aEhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dQb2x5Z29uSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1IaXN0b3J5UHJvcHMge1xuICBibG9ja2NoYWluOiAncG9seWdvbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dCYXNlSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1IaXN0b3J5UHJvcHMge1xuICBibG9ja2NoYWluOiAnYmFzZSc7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93SGlzdG9yeVByb3BzID1cbiAgfCBDb2luZmxvd1NvbGFuYUhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93TmVhckhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93UG9seWdvbkhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93RXRoSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dCYXNlSGlzdG9yeVByb3BzO1xuXG4vKiogVHJhbnNhY3Rpb25zICoqL1xuXG5leHBvcnQgdHlwZSBOZWFyRnRUcmFuc2ZlckNhbGxBY3Rpb24gPSB7XG4gIG1ldGhvZE5hbWU6ICdmdF90cmFuc2Zlcl9jYWxsJztcbiAgYXJnczogb2JqZWN0O1xuICBnYXM6IHN0cmluZztcbiAgZGVwb3NpdDogc3RyaW5nO1xufTtcblxudHlwZSBCeXRlcyA9IEFycmF5TGlrZTxudW1iZXI+O1xudHlwZSBCeXRlc0xpa2UgPSBCeXRlcyB8IHN0cmluZztcblxuLyoqIFB1cmNoYXNlICoqL1xuXG5leHBvcnQgdHlwZSBDaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEgPSBDaGFyZ2ViYWNrUHJvdGVjdGlvbkl0ZW1bXTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFyZ2ViYWNrUHJvdGVjdGlvbkl0ZW0ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByb2R1Y3RcbiAgICovXG4gIHByb2R1Y3ROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcHJvZHVjdCB0eXBlLiBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogaW5HYW1lUHJvZHVjdCwgZ2FtZU9mU2tpbGwsIGRhdGFTdG9yYWdlLCBjb21wdXRpbmdSZXNvdXJjZXMsIHNwb3J0c1RpY2tldCwgZVNwb3J0c1RpY2tldCwgbXVzaWNUaWNrZXQsIGNvbmZlcmVuY2VUaWNrZXQsIHZpcnR1YWxTcG9ydHNUaWNrZXQsIHZpcnR1YWxFU3BvcnRzVGlja2V0LCB2aXJ0dWFsTXVzaWNUaWNrZXQsIHZpcnR1YWxDb25mZXJlbmNlVGlja2V0LCBhbGNvaG9sLCBETEMsIHN1YnNjcmlwdGlvbiwgZnVuZEFDYXVzZSwgcmVhbEVzdGF0ZSwgY29tcHV0aW5nQ29udHJhY3QsIGRpZ2l0YWxBcnQsIHRvcFVwXG4gICAqL1xuICBwcm9kdWN0VHlwZTpcbiAgICB8ICdpbkdhbWVQcm9kdWN0J1xuICAgIHwgJ2dhbWVPZlNraWxsJ1xuICAgIHwgJ2RhdGFTdG9yYWdlJ1xuICAgIHwgJ2NvbXB1dGluZ1Jlc291cmNlcydcbiAgICB8ICdzcG9ydHNUaWNrZXQnXG4gICAgfCAnZVNwb3J0c1RpY2tldCdcbiAgICB8ICdtdXNpY1RpY2tldCdcbiAgICB8ICdjb25mZXJlbmNlVGlja2V0J1xuICAgIHwgJ3ZpcnR1YWxTcG9ydHNUaWNrZXQnXG4gICAgfCAndmlydHVhbEVTcG9ydHNUaWNrZXQnXG4gICAgfCAndmlydHVhbE11c2ljVGlja2V0J1xuICAgIHwgJ3ZpcnR1YWxDb25mZXJlbmNlVGlja2V0J1xuICAgIHwgJ2FsY29ob2wnXG4gICAgfCAnRExDJ1xuICAgIHwgJ3N1YnNjcmlwdGlvbidcbiAgICB8ICdmdW5kQUNhdXNlJ1xuICAgIHwgJ3JlYWxFc3RhdGUnXG4gICAgfCAnY29tcHV0aW5nQ29udHJhY3QnXG4gICAgfCAnZGlnaXRhbEFydCdcbiAgICB8ICd0b3BVcCdcbiAgICB8ICdvd25lcnNoaXBDb250cmFjdCc7XG4gIC8qKlxuICAgKiBUaGUgaXRlbSdzIGxpc3QgcHJpY2VcbiAgICovXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHVuaXRzIHNvbGRcbiAgICovXG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbnkgYWRkaXRpb25hbCBkYXRhIHRoYXQgdGhlIHN0b3JlIGNhbiBwcm92aWRlIG9uIHRoZSBwcm9kdWN0LCBlLmcuIGRlc2NyaXB0aW9uLCBsaW5rIHRvIGltYWdlLCBldGMuXG4gICAqL1xuICByYXdQcm9kdWN0RGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICBhbW91bnQ/OiBudW1iZXI7XG4gIG9uU3VjY2Vzcz86IE9uU3VjY2Vzc01ldGhvZDtcbiAgd2ViaG9va0luZm8/OiBvYmplY3Q7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGE/OiBDaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGE7XG4gIHBsYW5Db2RlPzogc3RyaW5nO1xuICBkaXNhYmxlQXBwbGVQYXk/OiBib29sZWFuO1xuICBkaXNhYmxlR29vZ2xlUGF5PzogYm9vbGVhbjtcbiAgY3VzdG9tZXJJbmZvPzogQ3VzdG9tZXJJbmZvO1xuICBzZXR0bGVtZW50VHlwZT86IFNldHRsZW1lbnRUeXBlO1xuICBhdXRoT25seT86IGJvb2xlYW47XG4gIGRldmljZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93U29sYW5hUHVyY2hhc2VQcm9wc1xuICBleHRlbmRzIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyB7XG4gIHdhbGxldDogU29sYW5hV2FsbGV0O1xuICB0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb247XG4gIHBhcnRpYWxTaWduZXJzPzogU2lnbmVyW107XG4gIGRlYnVnVHg/OiBib29sZWFuO1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuICBibG9ja2NoYWluOiAnc29sYW5hJztcbiAgdG9rZW4/OiBQdWJsaWNLZXkgfCBzdHJpbmc7XG4gIHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zPzogYm9vbGVhbjtcbiAgcmVudD86IHtsYW1wb3J0czogc3RyaW5nIHwgbnVtYmVyfTtcbiAgbmF0aXZlU29sVG9Db252ZXJ0Pzoge2xhbXBvcnRzOiBzdHJpbmcgfCBudW1iZXJ9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93TmVhclB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB3YWxsZXQ6IE5lYXJXYWxsZXQ7XG4gIGJsb2NrY2hhaW46ICduZWFyJztcbiAgYWN0aW9uPzogTmVhckZ0VHJhbnNmZXJDYWxsQWN0aW9uO1xuICBuZWFyRGVwb3NpdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB0cmFuc2FjdGlvbj86IEV2bVRyYW5zYWN0aW9uRGF0YTtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHdhbGxldDogRXRoV2FsbGV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93UG9seWdvblB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMge1xuICBibG9ja2NoYWluOiAncG9seWdvbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdGhQdXJjaGFzZVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1QdXJjaGFzZVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dCYXNlUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdiYXNlJztcbn1cblxuZXhwb3J0IHR5cGUgQ29pbmZsb3dQdXJjaGFzZVByb3BzID1cbiAgfCBDb2luZmxvd1NvbGFuYVB1cmNoYXNlUHJvcHNcbiAgfCBDb2luZmxvd05lYXJQdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dQb2x5Z29uUHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93RXRoUHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93QmFzZVB1cmNoYXNlUHJvcHM7XG5cbi8qKiBXaXRoZHJhdyAqKi9cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0NvbW1vbldpdGhkcmF3UHJvcHMgZXh0ZW5kcyBDb2luZmxvd1R5cGVzIHtcbiAgb25TdWNjZXNzPzogT25TdWNjZXNzTWV0aG9kO1xuICB0b2tlbnM/OiBzdHJpbmdbXTtcbiAgbG9ja0RlZmF1bHRUb2tlbj86IGJvb2xlYW47XG4gIGFtb3VudD86IG51bWJlcjtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGJhbmtBY2NvdW50TGlua1JlZGlyZWN0Pzogc3RyaW5nO1xuICBhZGRpdGlvbmFsV2FsbGV0cz86IHtcbiAgICB3YWxsZXQ6IHN0cmluZztcbiAgICBibG9ja2NoYWluOiAnc29sYW5hJyB8ICdldGgnIHwgJ25lYXInIHwgJ3BvbHlnb24nO1xuICB9W107XG4gIHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zPzogYm9vbGVhbjtcbiAgbG9ja0Ftb3VudD86IGJvb2xlYW47XG4gIHRyYW5zYWN0aW9uU2lnbmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93U29sYW5hV2l0aGRyYXdQcm9wc1xuICBleHRlbmRzIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyB7XG4gIHdhbGxldDogU29sYW5hV2FsbGV0O1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuICBibG9ja2NoYWluOiAnc29sYW5hJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd05lYXJXaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIHtcbiAgd2FsbGV0OiBOZWFyV2FsbGV0O1xuICBibG9ja2NoYWluOiAnbmVhcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIHtcbiAgd2FsbGV0OiBFdGhXYWxsZXQ7XG4gIHVzZVBlcm1pdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdGhXaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG4gIHVzZVBlcm1pdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dQb2x5Z29uV2l0aGRyYXdQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtV2l0aGRyYXdQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdwb2x5Z29uJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0Jhc2VXaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2Jhc2UnO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd1dpdGhkcmF3UHJvcHMgPVxuICB8IENvaW5mbG93U29sYW5hV2l0aGRyYXdQcm9wc1xuICB8IENvaW5mbG93TmVhcldpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd0V0aFdpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd1BvbHlnb25XaXRoZHJhd1Byb3BzXG4gIHwgQ29pbmZsb3dCYXNlV2l0aGRyYXdQcm9wcztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25Fdm1SZWRlZW0ge1xuICB3YWl0Rm9ySGFzaD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsUmVkZWVtIGV4dGVuZHMgQ29tbW9uRXZtUmVkZWVtIHtcbiAgdHJhbnNhY3Rpb246IHt0bzogc3RyaW5nOyBkYXRhOiBzdHJpbmd9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtub3duVG9rZW5JZFJlZGVlbSBleHRlbmRzIE5vcm1hbFJlZGVlbSB7XG4gIG5mdENvbnRyYWN0OiBzdHJpbmc7XG4gIG5mdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZU1pbnRSZWRlZW0gZXh0ZW5kcyBOb3JtYWxSZWRlZW0ge1xuICB0eXBlOiAnc2FmZU1pbnQnO1xuICBuZnRDb250cmFjdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXR1cm5lZFRva2VuSWRSZWRlZW0gZXh0ZW5kcyBOb3JtYWxSZWRlZW0ge1xuICB0eXBlOiAncmV0dXJuZWQnO1xuICBuZnRDb250cmFjdD86IHN0cmluZztcbn1cblxudHlwZSBSZXNlcnZvaXJOZnRJZEl0ZW0gPSBPbWl0PEtub3duVG9rZW5JZFJlZGVlbSwga2V5b2YgTm9ybWFsUmVkZWVtPjtcbmludGVyZmFjZSBSZXNlcnZvaXJPcmRlcklkSXRlbSB7XG4gIG9yZGVySWQ6IHN0cmluZztcbn1cbnR5cGUgUmVzZXJ2b2lySXRlbSA9IFJlc2Vydm9pck5mdElkSXRlbSB8IFJlc2Vydm9pck9yZGVySWRJdGVtO1xudHlwZSBSZXNlcnZvaXJJdGVtcyA9IFJlc2Vydm9pckl0ZW0gfCBSZXNlcnZvaXJJdGVtW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXJ2b2lyUmVkZWVtIGV4dGVuZHMgQ29tbW9uRXZtUmVkZWVtIHtcbiAgdHlwZTogJ3Jlc2Vydm9pcic7XG4gIGl0ZW1zOiBSZXNlcnZvaXJJdGVtcztcbn1cblxuZXhwb3J0IHR5cGUgRXZtVHJhbnNhY3Rpb25EYXRhID1cbiAgfCBTYWZlTWludFJlZGVlbVxuICB8IFJldHVybmVkVG9rZW5JZFJlZGVlbVxuICB8IFJlc2Vydm9pclJlZGVlbVxuICB8IEtub3duVG9rZW5JZFJlZGVlbVxuICB8IE5vcm1hbFJlZGVlbTtcblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0lGcmFtZVByb3BzXG4gIGV4dGVuZHMgT21pdDxDb2luZmxvd1R5cGVzLCAnbWVyY2hhbnRJZCc+LFxuICAgIFBpY2s8XG4gICAgICBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMsXG4gICAgICB8ICdjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEnXG4gICAgICB8ICd3ZWJob29rSW5mbydcbiAgICAgIHwgJ2Ftb3VudCdcbiAgICAgIHwgJ2N1c3RvbWVySW5mbydcbiAgICAgIHwgJ3NldHRsZW1lbnRUeXBlJ1xuICAgICAgfCAnZW1haWwnXG4gICAgICB8ICdwbGFuQ29kZSdcbiAgICAgIHwgJ2RldmljZUlkJ1xuICAgID4sXG4gICAgUGljazxcbiAgICAgIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyxcbiAgICAgIHwgJ2JhbmtBY2NvdW50TGlua1JlZGlyZWN0J1xuICAgICAgfCAnYWRkaXRpb25hbFdhbGxldHMnXG4gICAgICB8ICd0cmFuc2FjdGlvblNpZ25lcidcbiAgICAgIHwgJ2xvY2tBbW91bnQnXG4gICAgICB8ICdsb2NrRGVmYXVsdFRva2VuJ1xuICAgID4sXG4gICAgUGljazxDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMsICdhdXRoT25seSc+LFxuICAgIFBpY2s8Q29pbmZsb3dTb2xhbmFQdXJjaGFzZVByb3BzLCAncmVudCcgfCAnbmF0aXZlU29sVG9Db252ZXJ0JyB8ICd0b2tlbic+IHtcbiAgd2FsbGV0UHVia2V5OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICByb3V0ZTogc3RyaW5nO1xuICByb3V0ZVByZWZpeD86IHN0cmluZztcbiAgdHJhbnNhY3Rpb24/OiBzdHJpbmc7XG4gIHRva2Vucz86IHN0cmluZ1tdIHwgUHVibGljS2V5W107XG4gIHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zPzogYm9vbGVhbjtcbiAgbmVhckRlcG9zaXQ/OiBzdHJpbmc7XG4gIG1lcmNoYW50Q3NzPzogc3RyaW5nO1xuICBjb2xvcj86ICd3aGl0ZScgfCAnYmxhY2snO1xuICBkaXNhYmxlQXBwbGVQYXk/OiBib29sZWFuO1xuICBkaXNhYmxlR29vZ2xlUGF5PzogYm9vbGVhbjtcbiAgdGhlbWU/OiBNZXJjaGFudFRoZW1lO1xuICB1c2VQZXJtaXQ/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const web3 = require('@solana/web3.js');
|
|
2
|
+
const base58 = require('bs58');
|
|
3
3
|
export class CoinflowUtils {
|
|
4
4
|
constructor(env) {
|
|
5
5
|
this.env = env ?? 'prod';
|
|
@@ -133,20 +133,29 @@ export class CoinflowUtils {
|
|
|
133
133
|
return url.toString();
|
|
134
134
|
}
|
|
135
135
|
static getTransaction(props) {
|
|
136
|
-
if ('transaction' in props) {
|
|
136
|
+
if ('transaction' in props && props.transaction !== undefined) {
|
|
137
137
|
const { transaction } = props;
|
|
138
|
-
if (transaction instanceof Transaction) {
|
|
139
|
-
|
|
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({
|
|
140
145
|
requireAllSignatures: false,
|
|
141
146
|
verifySignatures: false,
|
|
142
147
|
}));
|
|
143
148
|
}
|
|
144
|
-
if (transaction instanceof VersionedTransaction) {
|
|
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
|
|
145
154
|
return base58.encode(transaction.serialize());
|
|
146
155
|
}
|
|
147
156
|
return btoa(JSON.stringify(transaction));
|
|
148
157
|
}
|
|
149
|
-
if ('action' in props) {
|
|
158
|
+
if ('action' in props && props.action !== undefined) {
|
|
150
159
|
return btoa(JSON.stringify(props.action));
|
|
151
160
|
}
|
|
152
161
|
return undefined;
|
|
@@ -170,4 +179,4 @@ export class CoinflowUtils {
|
|
|
170
179
|
}
|
|
171
180
|
}
|
|
172
181
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLE1BQU0sTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBWSxHQUFrQjtRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU07WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLDJCQUEyQixDQUFDO2FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQzs7WUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxlQUFlLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsVUFBVSxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pDLElBQUksQ0FDSCxDQUFDLElBR0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FDaEU7YUFDQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FB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SSxDQUFDLE9BQU8sQ0FBQztZQUN0QixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVM7b0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztnQkFDbEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2xCLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2luZmxvd0Jsb2NrY2hhaW4sXG4gIENvaW5mbG93RW52cyxcbiAgQ29pbmZsb3dJRnJhbWVQcm9wcyxcbiAgQ29pbmZsb3dQdXJjaGFzZVByb3BzLFxufSBmcm9tICcuL0NvaW5mbG93VHlwZXMnO1xuaW1wb3J0IHtUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgYmFzZTU4IGZyb20gJ2JzNTgnO1xuXG5leHBvcnQgY2xhc3MgQ29pbmZsb3dVdGlscyB7XG4gIGVudjogQ29pbmZsb3dFbnZzO1xuICB1cmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihlbnY/OiBDb2luZmxvd0VudnMpIHtcbiAgICB0aGlzLmVudiA9IGVudiA/PyAncHJvZCc7XG4gICAgaWYgKHRoaXMuZW52ID09PSAncHJvZCcpIHRoaXMudXJsID0gJ2h0dHBzOi8vYXBpLmNvaW5mbG93LmNhc2gnO1xuICAgIGVsc2UgaWYgKHRoaXMuZW52ID09PSAnbG9jYWwnKSB0aGlzLnVybCA9ICdodHRwOi8vbG9jYWxob3N0OjUwMDAnO1xuICAgIGVsc2UgdGhpcy51cmwgPSBgaHR0cHM6Ly9hcGktJHt0aGlzLmVudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBhc3luYyBnZXROU3VyZVBhcnRuZXJJZChtZXJjaGFudElkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBmZXRjaCh0aGlzLnVybCArIGAvbWVyY2hhbnQvdmlldy8ke21lcmNoYW50SWR9YClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgIC50aGVuKFxuICAgICAgICAoanNvbjoge1xuICAgICAgICAgIG5TdXJlUGFydG5lcklkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgblN1cmVTZXR0aW5nczoge25TdXJlUGFydG5lcklkOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuICAgICAgICB9KSA9PiBqc29uLm5TdXJlU2V0dGluZ3M/Lm5TdXJlUGFydG5lcklkIHx8IGpzb24ublN1cmVQYXJ0bmVySWRcbiAgICAgIClcbiAgICAgIC5jYXRjaChlID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q3JlZGl0QmFsYW5jZShcbiAgICBwdWJsaWNLZXk6IHN0cmluZyxcbiAgICBtZXJjaGFudElkOiBzdHJpbmcsXG4gICAgYmxvY2tjaGFpbjogJ3NvbGFuYScgfCAnbmVhcidcbiAgKTogUHJvbWlzZTx7Y2VudHM6IG51bWJlcn0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgdGhpcy51cmwgKyBgL2FwaS9jdXN0b21lci9iYWxhbmNlcy8ke21lcmNoYW50SWR9YCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICd4LWNvaW5mbG93LWF1dGgtd2FsbGV0JzogcHVibGljS2V5LFxuICAgICAgICAgICd4LWNvaW5mbG93LWF1dGgtYmxvY2tjaGFpbic6IGJsb2NrY2hhaW4sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKTtcbiAgICBjb25zdCB7Y3JlZGl0c30gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgcmV0dXJuIGNyZWRpdHM7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dCYXNlVXJsKGVudj86IENvaW5mbG93RW52cyk6IHN0cmluZyB7XG4gICAgaWYgKCFlbnYgfHwgZW52ID09PSAncHJvZCcpIHJldHVybiAnaHR0cHM6Ly9jb2luZmxvdy5jYXNoJztcbiAgICBpZiAoZW52ID09PSAnbG9jYWwnKSByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCc7XG5cbiAgICByZXR1cm4gYGh0dHBzOi8vJHtlbnZ9LmNvaW5mbG93LmNhc2hgO1xuICB9XG5cbiAgc3RhdGljIGdldENvaW5mbG93QXBpVXJsKGVudj86IENvaW5mbG93RW52cyk6IHN0cmluZyB7XG4gICAgaWYgKCFlbnYgfHwgZW52ID09PSAncHJvZCcpIHJldHVybiAnaHR0cHM6Ly9hcGkuY29pbmZsb3cuY2FzaCc7XG4gICAgaWYgKGVudiA9PT0gJ2xvY2FsJykgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OjUwMDAnO1xuXG4gICAgcmV0dXJuIGBodHRwczovL2FwaS0ke2Vudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dVcmwoe1xuICAgIHdhbGxldFB1YmtleSxcbiAgICByb3V0ZSxcbiAgICByb3V0ZVByZWZpeCxcbiAgICBlbnYsXG4gICAgYW1vdW50LFxuICAgIHRyYW5zYWN0aW9uLFxuICAgIGJsb2NrY2hhaW4sXG4gICAgc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnMsXG4gICAgd2ViaG9va0luZm8sXG4gICAgZW1haWwsXG4gICAgbG9hZGVyQmFja2dyb3VuZCxcbiAgICBoYW5kbGVIZWlnaHRDaGFuZ2UsXG4gICAgYmFua0FjY291bnRMaW5rUmVkaXJlY3QsXG4gICAgYWRkaXRpb25hbFdhbGxldHMsXG4gICAgbmVhckRlcG9zaXQsXG4gICAgY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhLFxuICAgIG1lcmNoYW50Q3NzLFxuICAgIGNvbG9yLFxuICAgIHJlbnQsXG4gICAgbG9ja0RlZmF1bHRUb2tlbixcbiAgICB0b2tlbixcbiAgICB0b2tlbnMsXG4gICAgcGxhbkNvZGUsXG4gICAgZGlzYWJsZUFwcGxlUGF5LFxuICAgIGRpc2FibGVHb29nbGVQYXksXG4gICAgY3VzdG9tZXJJbmZvLFxuICAgIHNldHRsZW1lbnRUeXBlLFxuICAgIGxvY2tBbW91bnQsXG4gICAgbmF0aXZlU29sVG9Db252ZXJ0LFxuICAgIHRoZW1lLFxuICAgIHVzZVBlcm1pdCxcbiAgICB0cmFuc2FjdGlvblNpZ25lcixcbiAgICBhdXRoT25seSxcbiAgICBkZXZpY2VJZCxcbiAgfTogQ29pbmZsb3dJRnJhbWVQcm9wcyk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGVQcmVmaXhcbiAgICAgID8gYC8ke3JvdXRlUHJlZml4fS8ke2Jsb2NrY2hhaW59YFxuICAgICAgOiBgLyR7YmxvY2tjaGFpbn1gO1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwocHJlZml4ICsgcm91dGUsIENvaW5mbG93VXRpbHMuZ2V0Q29pbmZsb3dCYXNlVXJsKGVudikpO1xuICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdwdWJrZXknLCB3YWxsZXRQdWJrZXkhKTtcblxuICAgIGlmICh0cmFuc2FjdGlvbikge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3RyYW5zYWN0aW9uJywgdHJhbnNhY3Rpb24pO1xuICAgIH1cbiAgICBpZiAoYW1vdW50KSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnYW1vdW50JywgYW1vdW50LnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmIChzdXBwb3J0c1ZlcnNpb25lZFRyYW5zYWN0aW9ucykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3N1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICBpZiAod2ViaG9va0luZm8pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnd2ViaG9va0luZm8nLFxuICAgICAgICBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeSh3ZWJob29rSW5mbykpLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhlbWUpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAndGhlbWUnLFxuICAgICAgICBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeSh0aGVtZSkpLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY3VzdG9tZXJJbmZvKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2N1c3RvbWVySW5mbycsXG4gICAgICAgIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGN1c3RvbWVySW5mbykpLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZW1haWwpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdlbWFpbCcsIGVtYWlsKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0b2tlbicsIHRva2VuLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh0b2tlbnMpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0b2tlbnMnLCB0b2tlbnMudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRlckJhY2tncm91bmQpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdsb2FkZXJCYWNrZ3JvdW5kJywgbG9hZGVyQmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYgKGhhbmRsZUhlaWdodENoYW5nZSkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3VzZUhlaWdodENoYW5nZScsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgaWYgKGJhbmtBY2NvdW50TGlua1JlZGlyZWN0KSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2JhbmtBY2NvdW50TGlua1JlZGlyZWN0JyxcbiAgICAgICAgYmFua0FjY291bnRMaW5rUmVkaXJlY3RcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGFkZGl0aW9uYWxXYWxsZXRzKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdhZGRpdGlvbmFsV2FsbGV0cycsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGFkZGl0aW9uYWxXYWxsZXRzKVxuICAgICAgKTtcblxuICAgIGlmIChuZWFyRGVwb3NpdCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ25lYXJEZXBvc2l0JywgbmVhckRlcG9zaXQpO1xuXG4gICAgaWYgKGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSlcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhJyxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhKVxuICAgICAgKTtcbiAgICBpZiAoZGV2aWNlSWQpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBkZXZpY2VJZCA9IHdpbmRvdz8ublN1cmVTREs/LmdldERldmljZUlkKCk7XG4gICAgICAgIGlmIChkZXZpY2VJZCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2RldmljZUlkJywgZGV2aWNlSWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtZXJjaGFudENzcykgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ21lcmNoYW50Q3NzJywgbWVyY2hhbnRDc3MpO1xuICAgIGlmIChjb2xvcikgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2NvbG9yJywgY29sb3IpO1xuICAgIGlmIChyZW50KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncmVudCcsIHJlbnQubGFtcG9ydHMudG9TdHJpbmcoKSk7XG4gICAgaWYgKG5hdGl2ZVNvbFRvQ29udmVydClcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnbmF0aXZlU29sVG9Db252ZXJ0JyxcbiAgICAgICAgbmF0aXZlU29sVG9Db252ZXJ0LmxhbXBvcnRzLnRvU3RyaW5nKClcbiAgICAgICk7XG4gICAgaWYgKGxvY2tEZWZhdWx0VG9rZW4pIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdsb2NrRGVmYXVsdFRva2VuJywgJ3RydWUnKTtcbiAgICBpZiAocGxhbkNvZGUpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdwbGFuQ29kZScsIHBsYW5Db2RlKTtcblxuICAgIGlmIChkaXNhYmxlQXBwbGVQYXkpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkaXNhYmxlQXBwbGVQYXknLCAndHJ1ZScpO1xuICAgIGlmIChkaXNhYmxlR29vZ2xlUGF5KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGlzYWJsZUdvb2dsZVBheScsICd0cnVlJyk7XG4gICAgaWYgKHNldHRsZW1lbnRUeXBlKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3NldHRsZW1lbnRUeXBlJywgc2V0dGxlbWVudFR5cGUpO1xuXG4gICAgaWYgKGxvY2tBbW91bnQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdsb2NrQW1vdW50JywgJ3RydWUnKTtcblxuICAgIGlmICh1c2VQZXJtaXQgPT09IGZhbHNlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndXNlUGVybWl0JywgJ2ZhbHNlJyk7XG4gICAgaWYgKHRyYW5zYWN0aW9uU2lnbmVyKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3RyYW5zYWN0aW9uU2lnbmVyJywgdHJhbnNhY3Rpb25TaWduZXIpO1xuICAgIGlmIChhdXRoT25seSA9PT0gdHJ1ZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2F1dGhPbmx5JywgJ3RydWUnKTtcblxuICAgIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRUcmFuc2FjdGlvbihwcm9wczogQ29pbmZsb3dQdXJjaGFzZVByb3BzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoJ3RyYW5zYWN0aW9uJyBpbiBwcm9wcykge1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9ufSA9IHByb3BzO1xuICAgICAgaWYgKHRyYW5zYWN0aW9uIGluc3RhbmNlb2YgVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUoXG4gICAgICAgICAgdHJhbnNhY3Rpb24uc2VyaWFsaXplKHtcbiAgICAgICAgICAgIHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICAgIHZlcmlmeVNpZ25hdHVyZXM6IGZhbHNlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0cmFuc2FjdGlvbiBpbnN0YW5jZW9mIFZlcnNpb25lZFRyYW5zYWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoJ2FjdGlvbicgaW4gcHJvcHMpIHtcbiAgICAgIHJldHVybiBidG9hKEpTT04uc3RyaW5naWZ5KHByb3BzLmFjdGlvbikpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgYnlCbG9ja2NoYWluPFQ+KFxuICAgIGJsb2NrY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbixcbiAgICBhcmdzOiB7c29sYW5hOiBUOyBuZWFyOiBUOyBldGg/OiBUOyBwb2x5Z29uOiBUOyBiYXNlOiBUfVxuICApOiBUIHtcbiAgICBzd2l0Y2ggKGJsb2NrY2hhaW4pIHtcbiAgICAgIGNhc2UgJ3NvbGFuYSc6XG4gICAgICAgIHJldHVybiBhcmdzLnNvbGFuYTtcbiAgICAgIGNhc2UgJ25lYXInOlxuICAgICAgICByZXR1cm4gYXJncy5uZWFyO1xuICAgICAgY2FzZSAncG9seWdvbic6XG4gICAgICAgIHJldHVybiBhcmdzLnBvbHlnb247XG4gICAgICBjYXNlICdldGgnOlxuICAgICAgICBpZiAoYXJncy5ldGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jsb2NrY2hhaW4gbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb24hJyk7XG4gICAgICAgIHJldHVybiBhcmdzLmV0aDtcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICByZXR1cm4gYXJncy5iYXNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdibG9ja2NoYWluIG5vdCBzdXBwb3J0ZWQhJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUvQixNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFZLEdBQWtCO1FBQzVCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssTUFBTTtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsMkJBQTJCLENBQUM7YUFDM0QsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE9BQU87WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLHVCQUF1QixDQUFDOztZQUM3RCxJQUFJLENBQUMsR0FBRyxHQUFHLGVBQWUsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUN4QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLGtCQUFrQixVQUFVLEVBQUUsQ0FBQzthQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDakMsSUFBSSxDQUNILENBQUMsSUFHQSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUNoRTthQUNBLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxTQUFTLENBQUM7UUFDbkIs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QUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQ2pCLFVBQThCLEVBQzlCLElBQXdEO1FBRXhELFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNyQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25CLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEIsS0FBSyxLQUFLO2dCQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTO29CQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNsQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25CO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29pbmZsb3dCbG9ja2NoYWluLFxuICBDb2luZmxvd0VudnMsXG4gIENvaW5mbG93SUZyYW1lUHJvcHMsXG4gIENvaW5mbG93UHVyY2hhc2VQcm9wcyxcbn0gZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmNvbnN0IHdlYjMgPSByZXF1aXJlKCdAc29sYW5hL3dlYjMuanMnKTtcbmNvbnN0IGJhc2U1OCA9IHJlcXVpcmUoJ2JzNTgnKTtcblxuZXhwb3J0IGNsYXNzIENvaW5mbG93VXRpbHMge1xuICBlbnY6IENvaW5mbG93RW52cztcbiAgdXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZW52PzogQ29pbmZsb3dFbnZzKSB7XG4gICAgdGhpcy5lbnYgPSBlbnYgPz8gJ3Byb2QnO1xuICAgIGlmICh0aGlzLmVudiA9PT0gJ3Byb2QnKSB0aGlzLnVybCA9ICdodHRwczovL2FwaS5jb2luZmxvdy5jYXNoJztcbiAgICBlbHNlIGlmICh0aGlzLmVudiA9PT0gJ2xvY2FsJykgdGhpcy51cmwgPSAnaHR0cDovL2xvY2FsaG9zdDo1MDAwJztcbiAgICBlbHNlIHRoaXMudXJsID0gYGh0dHBzOi8vYXBpLSR7dGhpcy5lbnZ9LmNvaW5mbG93LmNhc2hgO1xuICB9XG5cbiAgYXN5bmMgZ2V0TlN1cmVQYXJ0bmVySWQobWVyY2hhbnRJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gZmV0Y2godGhpcy51cmwgKyBgL21lcmNoYW50L3ZpZXcvJHttZXJjaGFudElkfWApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAudGhlbihcbiAgICAgICAgKGpzb246IHtcbiAgICAgICAgICBuU3VyZVBhcnRuZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICAgIG5TdXJlU2V0dGluZ3M6IHtuU3VyZVBhcnRuZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkfTtcbiAgICAgICAgfSkgPT4ganNvbi5uU3VyZVNldHRpbmdzPy5uU3VyZVBhcnRuZXJJZCB8fCBqc29uLm5TdXJlUGFydG5lcklkXG4gICAgICApXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldENyZWRpdEJhbGFuY2UoXG4gICAgcHVibGljS2V5OiBzdHJpbmcsXG4gICAgbWVyY2hhbnRJZDogc3RyaW5nLFxuICAgIGJsb2NrY2hhaW46ICdzb2xhbmEnIHwgJ25lYXInXG4gICk6IFByb21pc2U8e2NlbnRzOiBudW1iZXJ9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICAgIHRoaXMudXJsICsgYC9hcGkvY3VzdG9tZXIvYmFsYW5jZXMvJHttZXJjaGFudElkfWAsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAneC1jb2luZmxvdy1hdXRoLXdhbGxldCc6IHB1YmxpY0tleSxcbiAgICAgICAgICAneC1jb2luZmxvdy1hdXRoLWJsb2NrY2hhaW4nOiBibG9ja2NoYWluLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICk7XG4gICAgY29uc3Qge2NyZWRpdHN9ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIHJldHVybiBjcmVkaXRzO1xuICB9XG5cbiAgc3RhdGljIGdldENvaW5mbG93QmFzZVVybChlbnY/OiBDb2luZmxvd0VudnMpOiBzdHJpbmcge1xuICAgIGlmICghZW52IHx8IGVudiA9PT0gJ3Byb2QnKSByZXR1cm4gJ2h0dHBzOi8vY29pbmZsb3cuY2FzaCc7XG4gICAgaWYgKGVudiA9PT0gJ2xvY2FsJykgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OjMwMDAnO1xuXG4gICAgcmV0dXJuIGBodHRwczovLyR7ZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd0FwaVVybChlbnY/OiBDb2luZmxvd0VudnMpOiBzdHJpbmcge1xuICAgIGlmICghZW52IHx8IGVudiA9PT0gJ3Byb2QnKSByZXR1cm4gJ2h0dHBzOi8vYXBpLmNvaW5mbG93LmNhc2gnO1xuICAgIGlmIChlbnYgPT09ICdsb2NhbCcpIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDo1MDAwJztcblxuICAgIHJldHVybiBgaHR0cHM6Ly9hcGktJHtlbnZ9LmNvaW5mbG93LmNhc2hgO1xuICB9XG5cbiAgc3RhdGljIGdldENvaW5mbG93VXJsKHtcbiAgICB3YWxsZXRQdWJrZXksXG4gICAgcm91dGUsXG4gICAgcm91dGVQcmVmaXgsXG4gICAgZW52LFxuICAgIGFtb3VudCxcbiAgICB0cmFuc2FjdGlvbixcbiAgICBibG9ja2NoYWluLFxuICAgIHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zLFxuICAgIHdlYmhvb2tJbmZvLFxuICAgIGVtYWlsLFxuICAgIGxvYWRlckJhY2tncm91bmQsXG4gICAgaGFuZGxlSGVpZ2h0Q2hhbmdlLFxuICAgIGJhbmtBY2NvdW50TGlua1JlZGlyZWN0LFxuICAgIGFkZGl0aW9uYWxXYWxsZXRzLFxuICAgIG5lYXJEZXBvc2l0LFxuICAgIGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSxcbiAgICBtZXJjaGFudENzcyxcbiAgICBjb2xvcixcbiAgICByZW50LFxuICAgIGxvY2tEZWZhdWx0VG9rZW4sXG4gICAgdG9rZW4sXG4gICAgdG9rZW5zLFxuICAgIHBsYW5Db2RlLFxuICAgIGRpc2FibGVBcHBsZVBheSxcbiAgICBkaXNhYmxlR29vZ2xlUGF5LFxuICAgIGN1c3RvbWVySW5mbyxcbiAgICBzZXR0bGVtZW50VHlwZSxcbiAgICBsb2NrQW1vdW50LFxuICAgIG5hdGl2ZVNvbFRvQ29udmVydCxcbiAgICB0aGVtZSxcbiAgICB1c2VQZXJtaXQsXG4gICAgdHJhbnNhY3Rpb25TaWduZXIsXG4gICAgYXV0aE9ubHksXG4gICAgZGV2aWNlSWQsXG4gIH06IENvaW5mbG93SUZyYW1lUHJvcHMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlUHJlZml4XG4gICAgICA/IGAvJHtyb3V0ZVByZWZpeH0vJHtibG9ja2NoYWlufWBcbiAgICAgIDogYC8ke2Jsb2NrY2hhaW59YDtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHByZWZpeCArIHJvdXRlLCBDb2luZmxvd1V0aWxzLmdldENvaW5mbG93QmFzZVVybChlbnYpKTtcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncHVia2V5Jywgd2FsbGV0UHVia2V5ISk7XG5cbiAgICBpZiAodHJhbnNhY3Rpb24pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFuc2FjdGlvbicsIHRyYW5zYWN0aW9uKTtcbiAgICB9XG4gICAgaWYgKGFtb3VudCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Ftb3VudCcsIGFtb3VudC50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnMpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdzdXBwb3J0c1ZlcnNpb25lZFRyYW5zYWN0aW9ucycsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgaWYgKHdlYmhvb2tJbmZvKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ3dlYmhvb2tJbmZvJyxcbiAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkod2ViaG9va0luZm8pKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoZW1lKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ3RoZW1lJyxcbiAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkodGhlbWUpKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGN1c3RvbWVySW5mbykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdjdXN0b21lckluZm8nLFxuICAgICAgICBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShjdXN0b21lckluZm8pKS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVtYWlsKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZW1haWwnLCBlbWFpbCk7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9rZW4nLCB0b2tlbi50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5zKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9rZW5zJywgdG9rZW5zLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmIChsb2FkZXJCYWNrZ3JvdW5kKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9hZGVyQmFja2dyb3VuZCcsIGxvYWRlckJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGlmIChoYW5kbGVIZWlnaHRDaGFuZ2UpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd1c2VIZWlnaHRDaGFuZ2UnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIGlmIChiYW5rQWNjb3VudExpbmtSZWRpcmVjdCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdiYW5rQWNjb3VudExpbmtSZWRpcmVjdCcsXG4gICAgICAgIGJhbmtBY2NvdW50TGlua1JlZGlyZWN0XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhZGRpdGlvbmFsV2FsbGV0cylcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnYWRkaXRpb25hbFdhbGxldHMnLFxuICAgICAgICBKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsV2FsbGV0cylcbiAgICAgICk7XG5cbiAgICBpZiAobmVhckRlcG9zaXQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCduZWFyRGVwb3NpdCcsIG5lYXJEZXBvc2l0KTtcblxuICAgIGlmIChjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2NoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YScsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSlcbiAgICAgICk7XG4gICAgaWYgKGRldmljZUlkKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgZGV2aWNlSWQgPSB3aW5kb3c/Lm5TdXJlU0RLPy5nZXREZXZpY2VJZCgpO1xuICAgICAgICBpZiAoZGV2aWNlSWQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWVyY2hhbnRDc3MpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdtZXJjaGFudENzcycsIG1lcmNoYW50Q3NzKTtcbiAgICBpZiAoY29sb3IpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdjb2xvcicsIGNvbG9yKTtcbiAgICBpZiAocmVudCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3JlbnQnLCByZW50LmxhbXBvcnRzLnRvU3RyaW5nKCkpO1xuICAgIGlmIChuYXRpdmVTb2xUb0NvbnZlcnQpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ25hdGl2ZVNvbFRvQ29udmVydCcsXG4gICAgICAgIG5hdGl2ZVNvbFRvQ29udmVydC5sYW1wb3J0cy50b1N0cmluZygpXG4gICAgICApO1xuICAgIGlmIChsb2NrRGVmYXVsdFRva2VuKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9ja0RlZmF1bHRUb2tlbicsICd0cnVlJyk7XG4gICAgaWYgKHBsYW5Db2RlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncGxhbkNvZGUnLCBwbGFuQ29kZSk7XG5cbiAgICBpZiAoZGlzYWJsZUFwcGxlUGF5KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGlzYWJsZUFwcGxlUGF5JywgJ3RydWUnKTtcbiAgICBpZiAoZGlzYWJsZUdvb2dsZVBheSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc2FibGVHb29nbGVQYXknLCAndHJ1ZScpO1xuICAgIGlmIChzZXR0bGVtZW50VHlwZSlcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdzZXR0bGVtZW50VHlwZScsIHNldHRsZW1lbnRUeXBlKTtcblxuICAgIGlmIChsb2NrQW1vdW50KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbG9ja0Ftb3VudCcsICd0cnVlJyk7XG5cbiAgICBpZiAodXNlUGVybWl0ID09PSBmYWxzZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3VzZVBlcm1pdCcsICdmYWxzZScpO1xuICAgIGlmICh0cmFuc2FjdGlvblNpZ25lcilcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFuc2FjdGlvblNpZ25lcicsIHRyYW5zYWN0aW9uU2lnbmVyKTtcbiAgICBpZiAoYXV0aE9ubHkgPT09IHRydWUpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdhdXRoT25seScsICd0cnVlJyk7XG5cbiAgICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VHJhbnNhY3Rpb24ocHJvcHM6IENvaW5mbG93UHVyY2hhc2VQcm9wcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCd0cmFuc2FjdGlvbicgaW4gcHJvcHMgJiYgcHJvcHMudHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9ufSA9IHByb3BzO1xuICAgICAgaWYgKHdlYjMgJiYgdHJhbnNhY3Rpb24gaW5zdGFuY2VvZiB3ZWIzLlRyYW5zYWN0aW9uKSB7XG4gICAgICAgIGlmICghYmFzZTU4KSB0aHJvdyBuZXcgRXJyb3IoJ2JzNTggZGVwZW5kZW5jeSBpcyByZXF1aXJlZCBmb3IgU29sYW5hJyk7XG4gICAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdHJhbnNhY3Rpb24uc2VyaWFsaXplKHtcbiAgICAgICAgICAgIHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICAgIHZlcmlmeVNpZ25hdHVyZXM6IGZhbHNlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh3ZWIzICYmIHRyYW5zYWN0aW9uIGluc3RhbmNlb2Ygd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbikge1xuICAgICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQgZm9yIFNvbGFuYScpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUodHJhbnNhY3Rpb24uc2VyaWFsaXplKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYnRvYShKU09OLnN0cmluZ2lmeSh0cmFuc2FjdGlvbikpO1xuICAgIH1cblxuICAgIGlmICgnYWN0aW9uJyBpbiBwcm9wcyAmJiBwcm9wcy5hY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkocHJvcHMuYWN0aW9uKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBieUJsb2NrY2hhaW48VD4oXG4gICAgYmxvY2tjaGFpbjogQ29pbmZsb3dCbG9ja2NoYWluLFxuICAgIGFyZ3M6IHtzb2xhbmE6IFQ7IG5lYXI6IFQ7IGV0aD86IFQ7IHBvbHlnb246IFQ7IGJhc2U6IFR9XG4gICk6IFQge1xuICAgIHN3aXRjaCAoYmxvY2tjaGFpbikge1xuICAgICAgY2FzZSAnc29sYW5hJzpcbiAgICAgICAgcmV0dXJuIGFyZ3Muc29sYW5hO1xuICAgICAgY2FzZSAnbmVhcic6XG4gICAgICAgIHJldHVybiBhcmdzLm5lYXI7XG4gICAgICBjYXNlICdwb2x5Z29uJzpcbiAgICAgICAgcmV0dXJuIGFyZ3MucG9seWdvbjtcbiAgICAgIGNhc2UgJ2V0aCc6XG4gICAgICAgIGlmIChhcmdzLmV0aCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmxvY2tjaGFpbiBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIG9wZXJhdGlvbiEnKTtcbiAgICAgICAgcmV0dXJuIGFyZ3MuZXRoO1xuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIHJldHVybiBhcmdzLmJhc2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jsb2NrY2hhaW4gbm90IHN1cHBvcnRlZCEnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Input, ViewChild, HostListener } from '@angular/core';
|
|
3
|
-
import * as web3 from '@solana/web3.js';
|
|
4
|
-
import { Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
5
|
-
import base58 from 'bs58';
|
|
6
3
|
import * as i1 from '@angular/platform-browser';
|
|
7
4
|
|
|
8
5
|
var SettlementType;
|
|
@@ -18,6 +15,8 @@ var MerchantStyle;
|
|
|
18
15
|
MerchantStyle["Pill"] = "pill";
|
|
19
16
|
})(MerchantStyle || (MerchantStyle = {}));
|
|
20
17
|
|
|
18
|
+
const web3$1 = require('@solana/web3.js');
|
|
19
|
+
const base58$1 = require('bs58');
|
|
21
20
|
class CoinflowUtils {
|
|
22
21
|
constructor(env) {
|
|
23
22
|
this.env = env ?? 'prod';
|
|
@@ -151,20 +150,29 @@ class CoinflowUtils {
|
|
|
151
150
|
return url.toString();
|
|
152
151
|
}
|
|
153
152
|
static getTransaction(props) {
|
|
154
|
-
if ('transaction' in props) {
|
|
153
|
+
if ('transaction' in props && props.transaction !== undefined) {
|
|
155
154
|
const { transaction } = props;
|
|
156
|
-
if (transaction instanceof Transaction) {
|
|
157
|
-
|
|
155
|
+
if (web3$1 && transaction instanceof web3$1.Transaction) {
|
|
156
|
+
if (!base58$1)
|
|
157
|
+
throw new Error('bs58 dependency is required for Solana');
|
|
158
|
+
return base58$1.encode(
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
160
|
+
// @ts-ignore
|
|
161
|
+
transaction.serialize({
|
|
158
162
|
requireAllSignatures: false,
|
|
159
163
|
verifySignatures: false,
|
|
160
164
|
}));
|
|
161
165
|
}
|
|
162
|
-
if (transaction instanceof VersionedTransaction) {
|
|
163
|
-
|
|
166
|
+
if (web3$1 && transaction instanceof web3$1.VersionedTransaction) {
|
|
167
|
+
if (!base58$1)
|
|
168
|
+
throw new Error('bs58 dependency is required for Solana');
|
|
169
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
170
|
+
// @ts-ignore
|
|
171
|
+
return base58$1.encode(transaction.serialize());
|
|
164
172
|
}
|
|
165
173
|
return btoa(JSON.stringify(transaction));
|
|
166
174
|
}
|
|
167
|
-
if ('action' in props) {
|
|
175
|
+
if ('action' in props && props.action !== undefined) {
|
|
168
176
|
return btoa(JSON.stringify(props.action));
|
|
169
177
|
}
|
|
170
178
|
return undefined;
|
|
@@ -189,6 +197,8 @@ class CoinflowUtils {
|
|
|
189
197
|
}
|
|
190
198
|
}
|
|
191
199
|
|
|
200
|
+
const web3 = require('@solana/web3.js');
|
|
201
|
+
const base58 = require('bs58');
|
|
192
202
|
var IFrameMessageMethods;
|
|
193
203
|
(function (IFrameMessageMethods) {
|
|
194
204
|
IFrameMessageMethods["SignMessage"] = "signMessage";
|
|
@@ -335,8 +345,8 @@ class CoinflowIFrameComponent {
|
|
|
335
345
|
return;
|
|
336
346
|
this.iframe.nativeElement.contentWindow.postMessage(message, '*');
|
|
337
347
|
}
|
|
338
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
339
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
348
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowIFrameComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
349
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowIFrameComponent, isStandalone: true, selector: "lib-coinflow-iframe", inputs: { iframeProps: "iframeProps", messageHandlers: "messageHandlers" }, host: { listeners: { "window:message": "onPostMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: ` <iframe
|
|
340
350
|
width="100%"
|
|
341
351
|
height="100%"
|
|
342
352
|
#iframe
|
|
@@ -347,7 +357,7 @@ class CoinflowIFrameComponent {
|
|
|
347
357
|
[src]="dynamicUrl"
|
|
348
358
|
></iframe>`, isInline: true }); }
|
|
349
359
|
}
|
|
350
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowIFrameComponent, decorators: [{
|
|
351
361
|
type: Component,
|
|
352
362
|
args: [{
|
|
353
363
|
selector: 'lib-coinflow-iframe',
|
|
@@ -389,10 +399,10 @@ class CoinflowPurchaseComponent {
|
|
|
389
399
|
transaction: CoinflowUtils.getTransaction(this.purchaseProps),
|
|
390
400
|
};
|
|
391
401
|
}
|
|
392
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
393
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
402
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
403
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowPurchaseComponent, isStandalone: true, selector: "lib-coinflow-purchase", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"] }] }); }
|
|
394
404
|
}
|
|
395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseComponent, decorators: [{
|
|
396
406
|
type: Component,
|
|
397
407
|
args: [{
|
|
398
408
|
selector: 'lib-coinflow-purchase',
|
|
@@ -405,10 +415,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
|
405
415
|
}] } });
|
|
406
416
|
|
|
407
417
|
class CoinflowPurchaseHistoryComponent {
|
|
408
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
409
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
418
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
419
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowPurchaseHistoryComponent, isStandalone: true, selector: "lib-coinflow-purchase-history", ngImport: i0, template: ' <p>coinflow-purchase-history works!</p> ', isInline: true }); }
|
|
410
420
|
}
|
|
411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseHistoryComponent, decorators: [{
|
|
412
422
|
type: Component,
|
|
413
423
|
args: [{
|
|
414
424
|
selector: 'lib-coinflow-purchase-history',
|
|
@@ -419,10 +429,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
|
419
429
|
}] });
|
|
420
430
|
|
|
421
431
|
class CoinflowPurchaseProtectionComponent {
|
|
422
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
423
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
432
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseProtectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
433
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowPurchaseProtectionComponent, isStandalone: true, selector: "lib-coinflow-purchase-protection", ngImport: i0, template: ' <p>coinflow-purchase-protection works!</p> ', isInline: true }); }
|
|
424
434
|
}
|
|
425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowPurchaseProtectionComponent, decorators: [{
|
|
426
436
|
type: Component,
|
|
427
437
|
args: [{
|
|
428
438
|
selector: 'lib-coinflow-purchase-protection',
|
|
@@ -445,10 +455,10 @@ class CoinflowWithdrawComponent {
|
|
|
445
455
|
transaction: undefined,
|
|
446
456
|
};
|
|
447
457
|
}
|
|
448
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
449
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
458
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
459
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowWithdrawComponent, isStandalone: true, selector: "lib-coinflow-withdraw", inputs: { withdrawProps: "withdrawProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"] }] }); }
|
|
450
460
|
}
|
|
451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
461
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawComponent, decorators: [{
|
|
452
462
|
type: Component,
|
|
453
463
|
args: [{
|
|
454
464
|
selector: 'lib-coinflow-withdraw',
|
|
@@ -461,10 +471,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
|
461
471
|
}] } });
|
|
462
472
|
|
|
463
473
|
class CoinflowWithdrawHistoryComponent {
|
|
464
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
465
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
474
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: CoinflowWithdrawHistoryComponent, isStandalone: true, selector: "lib-coinflow-withdraw-history", ngImport: i0, template: ' <p>coinflow-withdraw-history works!</p> ', isInline: true }); }
|
|
466
476
|
}
|
|
467
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CoinflowWithdrawHistoryComponent, decorators: [{
|
|
468
478
|
type: Component,
|
|
469
479
|
args: [{
|
|
470
480
|
selector: 'lib-coinflow-withdraw-history',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinflowlabs-angular.mjs","sources":["../../../projects/coinflowlabs/src/lib/common/CoinflowTypes.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowUtils.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowLibMessageHandlers.ts","../../../projects/coinflowlabs/src/lib/coinflow-iframe.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-history.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-protection.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw-history.component.ts","../../../projects/coinflowlabs/src/public-api.ts","../../../projects/coinflowlabs/src/coinflowlabs-angular.ts"],"sourcesContent":["import type {Connection, VersionedTransaction} from '@solana/web3.js';\nimport {PublicKey, Signer, Transaction} from '@solana/web3.js';\n\nexport enum SettlementType {\n Credits = 'Credits',\n USDC = 'USDC',\n Bank = 'Bank',\n}\n\nexport enum MerchantStyle {\n Rounded = 'rounded',\n Sharp = 'sharp',\n Pill = 'pill',\n}\n\nexport type MerchantTheme = {\n primary?: string;\n background?: string;\n backgroundAccent?: string;\n backgroundAccent2?: string;\n textColor?: string;\n textColorAccent?: string;\n textColorAction?: string;\n font?: string;\n style?: MerchantStyle;\n};\n\nexport interface CustomerInfo {\n name?: string;\n verificationId?: string;\n displayName?: string;\n address?: string;\n city?: string;\n state?: string;\n zip?: string;\n country?: string;\n ip?: string;\n lat?: string;\n lng?: string;\n}\n\n/** Coinflow Types **/\nexport type CoinflowBlockchain = 'solana' | 'near' | 'eth' | 'polygon' | 'base';\nexport type CoinflowEnvs = 'prod' | 'staging' | 'sandbox' | 'local';\n\nexport interface CoinflowTypes {\n merchantId: string;\n env?: CoinflowEnvs;\n loaderBackground?: string;\n blockchain: CoinflowBlockchain;\n handleHeightChange?: (height: string) => void;\n theme?: MerchantTheme;\n}\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport type OnSuccessMethod = (params: string) => void | Promise<void>;\n\n/** Wallets **/\nexport interface SolanaWallet {\n publicKey: PublicKey | null;\n signTransaction?: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<T>;\n sendTransaction: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<string>;\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\nexport interface NearWallet {\n accountId: string;\n signAndSendTransaction: (transaction: unknown) => Promise<{\n transaction: {hash: string};\n }>;\n}\n\ntype AccessList = Array<{address: string; storageKeys: Array<string>}>;\ntype AccessListish =\n | AccessList\n | Array<[string, Array<string>]>\n | Record<string, Array<string>>;\n\nexport type EthWallet = {\n address: string | null | undefined;\n sendTransaction: (transaction: {\n to: string;\n from?: string;\n nonce?: Bytes | bigint | string | number;\n\n gasLimit?: Bytes | bigint | string | number;\n gasPrice?: Bytes | bigint | string | number;\n\n data?: BytesLike;\n value?: Bytes | bigint | string | number;\n chainId?: number;\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: Bytes | bigint | string | number;\n maxFeePerGas?: Bytes | bigint | string | number;\n\n customData?: Record<string, any>;\n ccipReadEnabled?: boolean;\n }) => Promise<{hash: string}>;\n signMessage: (message: string) => Promise<string>;\n};\n\n/** History **/\nexport interface CoinflowSolanaHistoryProps extends CoinflowTypes {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearHistoryProps extends CoinflowTypes {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmHistoryProps extends CoinflowTypes {\n wallet: EthWallet;\n}\n\nexport interface CoinflowEthHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowPolygonHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'base';\n}\n\nexport type CoinflowHistoryProps =\n | CoinflowSolanaHistoryProps\n | CoinflowNearHistoryProps\n | CoinflowPolygonHistoryProps\n | CoinflowEthHistoryProps\n | CoinflowBaseHistoryProps;\n\n/** Transactions **/\n\nexport type NearFtTransferCallAction = {\n methodName: 'ft_transfer_call';\n args: object;\n gas: string;\n deposit: string;\n};\n\ntype Bytes = ArrayLike<number>;\ntype BytesLike = Bytes | string;\n\n/** Purchase **/\n\nexport type ChargebackProtectionData = ChargebackProtectionItem[];\n\nexport interface ChargebackProtectionItem {\n /**\n * The name of the product\n */\n productName: string;\n /**\n * The product type. Possible values include: inGameProduct, gameOfSkill, dataStorage, computingResources, sportsTicket, eSportsTicket, musicTicket, conferenceTicket, virtualSportsTicket, virtualESportsTicket, virtualMusicTicket, virtualConferenceTicket, alcohol, DLC, subscription, fundACause, realEstate, computingContract, digitalArt, topUp\n */\n productType:\n | 'inGameProduct'\n | 'gameOfSkill'\n | 'dataStorage'\n | 'computingResources'\n | 'sportsTicket'\n | 'eSportsTicket'\n | 'musicTicket'\n | 'conferenceTicket'\n | 'virtualSportsTicket'\n | 'virtualESportsTicket'\n | 'virtualMusicTicket'\n | 'virtualConferenceTicket'\n | 'alcohol'\n | 'DLC'\n | 'subscription'\n | 'fundACause'\n | 'realEstate'\n | 'computingContract'\n | 'digitalArt'\n | 'topUp'\n | 'ownershipContract';\n /**\n * The item's list price\n */\n /**\n * The number of units sold\n */\n quantity: number;\n /**\n * Any additional data that the store can provide on the product, e.g. description, link to image, etc.\n */\n rawProductData?: {[key: string]: any};\n}\n\nexport interface CoinflowCommonPurchaseProps extends CoinflowTypes {\n amount?: number;\n onSuccess?: OnSuccessMethod;\n webhookInfo?: object;\n email?: string;\n chargebackProtectionData?: ChargebackProtectionData;\n planCode?: string;\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n customerInfo?: CustomerInfo;\n settlementType?: SettlementType;\n authOnly?: boolean;\n deviceId?: string;\n}\n\nexport interface CoinflowSolanaPurchaseProps\n extends CoinflowCommonPurchaseProps {\n wallet: SolanaWallet;\n transaction?: Transaction | VersionedTransaction;\n partialSigners?: Signer[];\n debugTx?: boolean;\n connection: Connection;\n blockchain: 'solana';\n token?: PublicKey | string;\n supportsVersionedTransactions?: boolean;\n rent?: {lamports: string | number};\n nativeSolToConvert?: {lamports: string | number};\n}\n\nexport interface CoinflowNearPurchaseProps extends CoinflowCommonPurchaseProps {\n wallet: NearWallet;\n blockchain: 'near';\n action?: NearFtTransferCallAction;\n nearDeposit?: string;\n}\n\nexport interface CoinflowEvmPurchaseProps extends CoinflowCommonPurchaseProps {\n transaction?: EvmTransactionData;\n token?: string;\n wallet: EthWallet;\n}\n\nexport interface CoinflowPolygonPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowEthPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowBasePurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'base';\n}\n\nexport type CoinflowPurchaseProps =\n | CoinflowSolanaPurchaseProps\n | CoinflowNearPurchaseProps\n | CoinflowPolygonPurchaseProps\n | CoinflowEthPurchaseProps\n | CoinflowBasePurchaseProps;\n\n/** Withdraw **/\n\nexport interface CoinflowCommonWithdrawProps extends CoinflowTypes {\n onSuccess?: OnSuccessMethod;\n tokens?: string[];\n lockDefaultToken?: boolean;\n amount?: number;\n email?: string;\n bankAccountLinkRedirect?: string;\n additionalWallets?: {\n wallet: string;\n blockchain: 'solana' | 'eth' | 'near' | 'polygon';\n }[];\n supportsVersionedTransactions?: boolean;\n lockAmount?: boolean;\n transactionSigner?: string;\n}\n\nexport interface CoinflowSolanaWithdrawProps\n extends CoinflowCommonWithdrawProps {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: EthWallet;\n usePermit?: boolean;\n}\n\nexport interface CoinflowEthWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'eth';\n usePermit?: boolean;\n}\n\nexport interface CoinflowPolygonWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'base';\n}\n\nexport type CoinflowWithdrawProps =\n | CoinflowSolanaWithdrawProps\n | CoinflowNearWithdrawProps\n | CoinflowEthWithdrawProps\n | CoinflowPolygonWithdrawProps\n | CoinflowBaseWithdrawProps;\n\nexport interface CommonEvmRedeem {\n waitForHash?: boolean;\n}\n\nexport interface NormalRedeem extends CommonEvmRedeem {\n transaction: {to: string; data: string};\n}\n\nexport interface KnownTokenIdRedeem extends NormalRedeem {\n nftContract: string;\n nftId: string;\n}\n\nexport interface SafeMintRedeem extends NormalRedeem {\n type: 'safeMint';\n nftContract?: string;\n}\n\nexport interface ReturnedTokenIdRedeem extends NormalRedeem {\n type: 'returned';\n nftContract?: string;\n}\n\ntype ReservoirNftIdItem = Omit<KnownTokenIdRedeem, keyof NormalRedeem>;\ninterface ReservoirOrderIdItem {\n orderId: string;\n}\ntype ReservoirItem = ReservoirNftIdItem | ReservoirOrderIdItem;\ntype ReservoirItems = ReservoirItem | ReservoirItem[];\n\nexport interface ReservoirRedeem extends CommonEvmRedeem {\n type: 'reservoir';\n items: ReservoirItems;\n}\n\nexport type EvmTransactionData =\n | SafeMintRedeem\n | ReturnedTokenIdRedeem\n | ReservoirRedeem\n | KnownTokenIdRedeem\n | NormalRedeem;\n\nexport interface CoinflowIFrameProps\n extends Omit<CoinflowTypes, 'merchantId'>,\n Pick<\n CoinflowCommonPurchaseProps,\n | 'chargebackProtectionData'\n | 'webhookInfo'\n | 'amount'\n | 'customerInfo'\n | 'settlementType'\n | 'email'\n | 'planCode'\n | 'deviceId'\n >,\n Pick<\n CoinflowCommonWithdrawProps,\n | 'bankAccountLinkRedirect'\n | 'additionalWallets'\n | 'transactionSigner'\n | 'lockAmount'\n | 'lockDefaultToken'\n >,\n Pick<CoinflowEvmPurchaseProps, 'authOnly'>,\n Pick<CoinflowSolanaPurchaseProps, 'rent' | 'nativeSolToConvert' | 'token'> {\n walletPubkey: string | null | undefined;\n route: string;\n routePrefix?: string;\n transaction?: string;\n tokens?: string[] | PublicKey[];\n supportsVersionedTransactions?: boolean;\n nearDeposit?: string;\n merchantCss?: string;\n color?: 'white' | 'black';\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n theme?: MerchantTheme;\n usePermit?: boolean;\n}\n","import {\n CoinflowBlockchain,\n CoinflowEnvs,\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n} from './CoinflowTypes';\nimport {Transaction, VersionedTransaction} from '@solana/web3.js';\nimport base58 from 'bs58';\n\nexport class CoinflowUtils {\n env: CoinflowEnvs;\n url: string;\n\n constructor(env?: CoinflowEnvs) {\n this.env = env ?? 'prod';\n if (this.env === 'prod') this.url = 'https://api.coinflow.cash';\n else if (this.env === 'local') this.url = 'http://localhost:5000';\n else this.url = `https://api-${this.env}.coinflow.cash`;\n }\n\n async getNSurePartnerId(merchantId: string): Promise<string | undefined> {\n return fetch(this.url + `/merchant/view/${merchantId}`)\n .then(response => response.json())\n .then(\n (json: {\n nSurePartnerId: string | undefined;\n nSureSettings: {nSurePartnerId: string | undefined};\n }) => json.nSureSettings?.nSurePartnerId || json.nSurePartnerId\n )\n .catch(e => {\n console.error(e);\n return undefined;\n });\n }\n\n async getCreditBalance(\n publicKey: string,\n merchantId: string,\n blockchain: 'solana' | 'near'\n ): Promise<{cents: number}> {\n const response = await fetch(\n this.url + `/api/customer/balances/${merchantId}`,\n {\n method: 'GET',\n headers: {\n 'x-coinflow-auth-wallet': publicKey,\n 'x-coinflow-auth-blockchain': blockchain,\n },\n }\n );\n const {credits} = await response.json();\n return credits;\n }\n\n static getCoinflowBaseUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://coinflow.cash';\n if (env === 'local') return 'http://localhost:3000';\n\n return `https://${env}.coinflow.cash`;\n }\n\n static getCoinflowApiUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://api.coinflow.cash';\n if (env === 'local') return 'http://localhost:5000';\n\n return `https://api-${env}.coinflow.cash`;\n }\n\n static getCoinflowUrl({\n walletPubkey,\n route,\n routePrefix,\n env,\n amount,\n transaction,\n blockchain,\n supportsVersionedTransactions,\n webhookInfo,\n email,\n loaderBackground,\n handleHeightChange,\n bankAccountLinkRedirect,\n additionalWallets,\n nearDeposit,\n chargebackProtectionData,\n merchantCss,\n color,\n rent,\n lockDefaultToken,\n token,\n tokens,\n planCode,\n disableApplePay,\n disableGooglePay,\n customerInfo,\n settlementType,\n lockAmount,\n nativeSolToConvert,\n theme,\n usePermit,\n transactionSigner,\n authOnly,\n deviceId,\n }: CoinflowIFrameProps): string {\n const prefix = routePrefix\n ? `/${routePrefix}/${blockchain}`\n : `/${blockchain}`;\n const url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));\n url.searchParams.append('pubkey', walletPubkey!);\n\n if (transaction) {\n url.searchParams.append('transaction', transaction);\n }\n if (amount) {\n url.searchParams.append('amount', amount.toString());\n }\n\n if (supportsVersionedTransactions) {\n url.searchParams.append('supportsVersionedTransactions', 'true');\n }\n\n if (webhookInfo) {\n url.searchParams.append(\n 'webhookInfo',\n Buffer.from(JSON.stringify(webhookInfo)).toString('base64')\n );\n }\n\n if (theme) {\n url.searchParams.append(\n 'theme',\n Buffer.from(JSON.stringify(theme)).toString('base64')\n );\n }\n\n if (customerInfo) {\n url.searchParams.append(\n 'customerInfo',\n Buffer.from(JSON.stringify(customerInfo)).toString('base64')\n );\n }\n\n if (email) {\n url.searchParams.append('email', email);\n }\n\n if (token) {\n url.searchParams.append('token', token.toString());\n }\n\n if (tokens) {\n url.searchParams.append('tokens', tokens.toString());\n }\n\n if (loaderBackground) {\n url.searchParams.append('loaderBackground', loaderBackground);\n }\n\n if (handleHeightChange) {\n url.searchParams.append('useHeightChange', 'true');\n }\n\n if (bankAccountLinkRedirect) {\n url.searchParams.append(\n 'bankAccountLinkRedirect',\n bankAccountLinkRedirect\n );\n }\n\n if (additionalWallets)\n url.searchParams.append(\n 'additionalWallets',\n JSON.stringify(additionalWallets)\n );\n\n if (nearDeposit) url.searchParams.append('nearDeposit', nearDeposit);\n\n if (chargebackProtectionData)\n url.searchParams.append(\n 'chargebackProtectionData',\n JSON.stringify(chargebackProtectionData)\n );\n if (deviceId) {\n url.searchParams.append('deviceId', deviceId);\n } else {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const deviceId = window?.nSureSDK?.getDeviceId();\n if (deviceId) url.searchParams.append('deviceId', deviceId);\n }\n }\n\n if (merchantCss) url.searchParams.append('merchantCss', merchantCss);\n if (color) url.searchParams.append('color', color);\n if (rent) url.searchParams.append('rent', rent.lamports.toString());\n if (nativeSolToConvert)\n url.searchParams.append(\n 'nativeSolToConvert',\n nativeSolToConvert.lamports.toString()\n );\n if (lockDefaultToken) url.searchParams.append('lockDefaultToken', 'true');\n if (planCode) url.searchParams.append('planCode', planCode);\n\n if (disableApplePay) url.searchParams.append('disableApplePay', 'true');\n if (disableGooglePay) url.searchParams.append('disableGooglePay', 'true');\n if (settlementType)\n url.searchParams.append('settlementType', settlementType);\n\n if (lockAmount) url.searchParams.append('lockAmount', 'true');\n\n if (usePermit === false) url.searchParams.append('usePermit', 'false');\n if (transactionSigner)\n url.searchParams.append('transactionSigner', transactionSigner);\n if (authOnly === true) url.searchParams.append('authOnly', 'true');\n\n return url.toString();\n }\n\n static getTransaction(props: CoinflowPurchaseProps): string | undefined {\n if ('transaction' in props) {\n const {transaction} = props;\n if (transaction instanceof Transaction) {\n return base58.encode(\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n }\n\n if (transaction instanceof VersionedTransaction) {\n return base58.encode(transaction.serialize());\n }\n\n return btoa(JSON.stringify(transaction));\n }\n\n if ('action' in props) {\n return btoa(JSON.stringify(props.action));\n }\n\n return undefined;\n }\n\n static byBlockchain<T>(\n blockchain: CoinflowBlockchain,\n args: {solana: T; near: T; eth?: T; polygon: T; base: T}\n ): T {\n switch (blockchain) {\n case 'solana':\n return args.solana;\n case 'near':\n return args.near;\n case 'polygon':\n return args.polygon;\n case 'eth':\n if (args.eth === undefined)\n throw new Error('blockchain not supported for this operation!');\n return args.eth;\n case 'base':\n return args.base;\n default:\n throw new Error('blockchain not supported!');\n }\n }\n}\n","import {\n CoinflowPurchaseProps,\n EthWallet,\n NearWallet,\n SolanaWallet,\n} from './CoinflowTypes';\nimport {CoinflowUtils} from './CoinflowUtils';\nimport {Transaction, VersionedTransaction} from '@solana/web3.js';\nimport * as web3 from '@solana/web3.js';\nimport base58 from 'bs58';\n\nexport type WalletCall = {method: IFrameMessageMethods; data: string};\n\nexport interface IFrameMessageHandlers {\n handleSendTransaction: (transaction: string) => Promise<string>;\n handleSignMessage?: (message: string) => Promise<string>;\n handleSignTransaction?: (transaction: string) => Promise<string>;\n handleHeightChange?: (height: string) => void;\n}\n\nenum IFrameMessageMethods {\n SignMessage = 'signMessage',\n SignTransaction = 'signTransaction',\n SendTransaction = 'sendTransaction',\n HeightChange = 'heightChange',\n}\n\nexport function getWalletPubkey({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): string | null | undefined {\n if ('publicKey' in wallet) {\n return wallet.publicKey!.toString();\n }\n\n if ('address' in wallet) {\n return wallet.address;\n }\n\n if ('accountId' in wallet) {\n return wallet.accountId;\n }\n\n return null;\n}\n\nexport function handleIFrameMessage(\n rawMessage: string,\n handlers: IFrameMessageHandlers\n): Promise<string> | void {\n let walletCall: WalletCall;\n try {\n walletCall = JSON.parse(rawMessage);\n if (!('method' in walletCall) || !('data' in walletCall)) return;\n } catch (e) {\n console.error('handleIFrameMessage JSON parse', e);\n return;\n }\n\n const {data, method} = walletCall;\n switch (method) {\n case IFrameMessageMethods.SignMessage:\n if (!handlers.handleSignMessage) return;\n return handlers.handleSignMessage(data);\n case IFrameMessageMethods.SignTransaction:\n if (!handlers.handleSignTransaction) return;\n return handlers.handleSignTransaction(data);\n case IFrameMessageMethods.SendTransaction:\n return handlers.handleSendTransaction(data);\n case IFrameMessageMethods.HeightChange:\n if (!handlers.handleHeightChange) return;\n return handlers.handleHeightChange(data);\n }\n\n console.warn(\n `Didn't expect to get here, handleIFrameMessage method:${method} is not one of ${Object.values(IFrameMessageMethods)}`\n );\n}\n\nexport function getHandlers({\n wallet,\n blockchain,\n}: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return CoinflowUtils.byBlockchain(blockchain, {\n solana: () => getSolanaWalletHandlers({wallet}),\n near: () => getNearWalletHandlers({wallet}),\n eth: () => getEvmWalletHandlers({wallet}),\n polygon: () => getEvmWalletHandlers({wallet}),\n base: () => getEvmWalletHandlers({wallet}),\n })();\n}\n\nfunction getSolanaWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = getSolanaTransaction(transaction);\n return (wallet as SolanaWallet).sendTransaction(tx);\n },\n handleSignMessage: async (message: string) => {\n const signMessage = (wallet as SolanaWallet).signMessage;\n if (!signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n\n const signedMessage = await signMessage(\n new TextEncoder().encode(message)\n );\n return base58.encode(signedMessage);\n },\n handleSignTransaction: async (transaction: string) => {\n const signTransaction = (wallet as SolanaWallet).signTransaction;\n if (!signTransaction) {\n throw new Error('signTransaction is not supported by this wallet');\n }\n const tx = getSolanaTransaction(transaction);\n const signedTransaction = await signTransaction(tx);\n return base58.encode(\n signedTransaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n },\n };\n}\n\nfunction getSolanaTransaction(\n data: string\n): Transaction | VersionedTransaction {\n if (!web3)\n throw new Error(\n '@solana/web3.js is not defined. Please install @solana/web3.js into your project'\n );\n\n if (!base58)\n throw new Error(\n 'bs58 is not defined. Please install bs58 into your project'\n );\n\n const parsedUInt8Array = base58.decode(data);\n const vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);\n if (vtx.version === 'legacy') return web3.Transaction.from(parsedUInt8Array);\n return vtx;\n}\n\nfunction getNearWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const nearWallet = wallet as NearWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const action = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const executionOutcome = await nearWallet.signAndSendTransaction(action);\n if (!executionOutcome) throw new Error('Transaction did not send');\n const {transaction: transactionResult} = executionOutcome;\n return transactionResult.hash;\n },\n };\n}\n\nfunction getEvmWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const evmWallet = wallet as EthWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const {hash} = await evmWallet.sendTransaction(tx);\n return hash;\n },\n handleSignMessage: async (message: string) => {\n return evmWallet.signMessage(message);\n },\n };\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowUtils,\n IFrameMessageHandlers,\n handleIFrameMessage,\n} from './common';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\n\n@Component({\n selector: 'lib-coinflow-iframe',\n standalone: true,\n imports: [],\n template: ` <iframe\n width=\"100%\"\n height=\"100%\"\n #iframe\n scrolling=\"{{ iframeProps?.handleHeightChange ? 'no' : 'yes' }}\"\n allow=\"payment;camera\"\n title=\"withdraw\"\n frameBorder=\"0\"\n [src]=\"dynamicUrl\"\n ></iframe>`,\n})\nexport class CoinflowIFrameComponent {\n @Input() iframeProps!: CoinflowIFrameProps;\n @Input() messageHandlers!: IFrameMessageHandlers;\n\n dynamicUrl?: SafeResourceUrl;\n @ViewChild('iframe') iframe?: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n const coinflowUrl = CoinflowUtils.getCoinflowUrl(this.iframeProps);\n this.dynamicUrl =\n this.sanitizer.bypassSecurityTrustResourceUrl(coinflowUrl);\n }\n\n @HostListener('window:message', ['$event']) onPostMessage(event: any) {\n if (\n !event.origin.includes(\n CoinflowUtils.getCoinflowBaseUrl(this.iframeProps.env)\n )\n )\n return;\n\n const promise = handleIFrameMessage(event.data, this.messageHandlers);\n if (!promise) return;\n promise.then(this.sendMessage.bind(this));\n }\n\n sendMessage(message: string) {\n if (!this.iframe || !this.iframe.nativeElement) return;\n this.iframe.nativeElement.contentWindow!.postMessage(message, '*');\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\nimport {\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n CoinflowUtils,\n} from './common';\n\n@Component({\n selector: 'lib-coinflow-purchase',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowPurchaseComponent {\n @Input() purchaseProps!: CoinflowPurchaseProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.purchaseProps);\n this.messageHandlers = getHandlers(this.purchaseProps);\n this.messageHandlers.handleHeightChange =\n this.purchaseProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.purchaseProps,\n walletPubkey,\n route: `/purchase/${this.purchaseProps?.merchantId}`,\n transaction: CoinflowUtils.getTransaction(this.purchaseProps),\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-history works!</p> ',\n})\nexport class CoinflowPurchaseHistoryComponent {}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-protection',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-protection works!</p> ',\n})\nexport class CoinflowPurchaseProtectionComponent {}\n","import {Component, Input} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowWithdrawProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n} from './common';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\n\n@Component({\n selector: 'lib-coinflow-withdraw',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowWithdrawComponent {\n @Input() withdrawProps!: CoinflowWithdrawProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.withdrawProps);\n this.messageHandlers = getHandlers(this.withdrawProps);\n this.messageHandlers.handleHeightChange =\n this.withdrawProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.withdrawProps,\n walletPubkey,\n route: `/withdraw/${this.withdrawProps?.merchantId}`,\n transaction: undefined,\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-withdraw-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-withdraw-history works!</p> ',\n})\nexport class CoinflowWithdrawHistoryComponent {}\n","/*\n * Public API Surface of coinflowlabs\n */\n\nexport * from './lib/coinflow-iframe.component';\nexport * from './lib/coinflow-purchase.component';\nexport * from './lib/coinflow-purchase-history.component';\nexport * from './lib/coinflow-purchase-protection.component';\nexport * from './lib/coinflow-withdraw.component';\nexport * from './lib/coinflow-withdraw-history.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAGA,IAAY,cAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;MCJY,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAY,GAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;AAC3D,aAAA,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;;YAC7D,IAAI,CAAC,GAAG,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,GAAG,gBAAgB,CAAC;KACzD;IAED,MAAM,iBAAiB,CAAC,UAAkB,EAAA;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA,eAAA,EAAkB,UAAU,CAAA,CAAE,CAAC;aACpD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjC,aAAA,IAAI,CACH,CAAC,IAGA,KAAK,IAAI,CAAC,aAAa,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAChE;aACA,KAAK,CAAC,CAAC,IAAG;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,YAAA,OAAO,SAAS,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,MAAM,gBAAgB,CACpB,SAAiB,EACjB,UAAkB,EAClB,UAA6B,EAAA;AAE7B,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,IAAI,CAAC,GAAG,GAAG,CAAA,uBAAA,EAA0B,UAAU,CAAA,CAAE,EACjD;AACE,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,wBAAwB,EAAE,SAAS;AACnC,gBAAA,4BAA4B,EAAE,UAAU;AACzC,aAAA;AACF,SAAA,CACF,CAAC;QACF,MAAM,EAAC,OAAO,EAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACxC,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,kBAAkB,CAAC,GAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;AAAE,YAAA,OAAO,uBAAuB,CAAC;QAC3D,IAAI,GAAG,KAAK,OAAO;AAAE,YAAA,OAAO,uBAAuB,CAAC;QAEpD,OAAO,CAAA,QAAA,EAAW,GAAG,CAAA,cAAA,CAAgB,CAAC;KACvC;IAED,OAAO,iBAAiB,CAAC,GAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;AAAE,YAAA,OAAO,2BAA2B,CAAC;QAC/D,IAAI,GAAG,KAAK,OAAO;AAAE,YAAA,OAAO,uBAAuB,CAAC;QAEpD,OAAO,CAAA,YAAA,EAAe,GAAG,CAAA,cAAA,CAAgB,CAAC;KAC3C;AAED,IAAA,OAAO,cAAc,CAAC,EACpB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,GAAG,EACH,MAAM,EACN,WAAW,EACX,UAAU,EACV,6BAA6B,EAC7B,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,WAAW,EACX,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,QAAQ,GACY,EAAA;QACpB,MAAM,MAAM,GAAG,WAAW;AACxB,cAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,EAAI,UAAU,CAAE,CAAA;AACjC,cAAE,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAa,CAAC,CAAC;QAEjD,IAAI,WAAW,EAAE;YACf,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;SACrD;QACD,IAAI,MAAM,EAAE;AACV,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtD;QAED,IAAI,6BAA6B,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;SAClE;QAED,IAAI,WAAW,EAAE;YACf,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,aAAa,EACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5D,CAAC;SACH;QAED,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtD,CAAC;SACH;QAED,IAAI,YAAY,EAAE;YAChB,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,cAAc,EACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC7D,CAAC;SACH;QAED,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACzC;QAED,IAAI,KAAK,EAAE;AACT,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACpD;QAED,IAAI,MAAM,EAAE;AACV,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtD;QAED,IAAI,gBAAgB,EAAE;YACpB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;SAC/D;QAED,IAAI,kBAAkB,EAAE;YACtB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;SACpD;QAED,IAAI,uBAAuB,EAAE;YAC3B,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,yBAAyB,EACzB,uBAAuB,CACxB,CAAC;SACH;AAED,QAAA,IAAI,iBAAiB;AACnB,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,mBAAmB,EACnB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAClC,CAAC;AAEJ,QAAA,IAAI,WAAW;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAErE,QAAA,IAAI,wBAAwB;AAC1B,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,0BAA0B,EAC1B,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CACzC,CAAC;QACJ,IAAI,QAAQ,EAAE;YACZ,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SAC/C;aAAM;AACL,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;;gBAGjC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACjD,gBAAA,IAAI,QAAQ;oBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;aAC7D;SACF;AAED,QAAA,IAAI,WAAW;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACrE,QAAA,IAAI,KAAK;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnD,QAAA,IAAI,IAAI;AAAE,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpE,QAAA,IAAI,kBAAkB;AACpB,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,oBAAoB,EACpB,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CACvC,CAAC;AACJ,QAAA,IAAI,gBAAgB;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC1E,QAAA,IAAI,QAAQ;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAE5D,QAAA,IAAI,eAAe;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AACxE,QAAA,IAAI,gBAAgB;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC1E,QAAA,IAAI,cAAc;YAChB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAE5D,QAAA,IAAI,UAAU;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,SAAS,KAAK,KAAK;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACvE,QAAA,IAAI,iBAAiB;YACnB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,IAAI;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEnE,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;KACvB;IAED,OAAO,cAAc,CAAC,KAA4B,EAAA;AAChD,QAAA,IAAI,aAAa,IAAI,KAAK,EAAE;AAC1B,YAAA,MAAM,EAAC,WAAW,EAAC,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,WAAW,YAAY,WAAW,EAAE;AACtC,gBAAA,OAAO,MAAM,CAAC,MAAM,CAClB,WAAW,CAAC,SAAS,CAAC;AACpB,oBAAA,oBAAoB,EAAE,KAAK;AAC3B,oBAAA,gBAAgB,EAAE,KAAK;AACxB,iBAAA,CAAC,CACH,CAAC;aACH;AAED,YAAA,IAAI,WAAW,YAAY,oBAAoB,EAAE;gBAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;aAC/C;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1C;AAED,QAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3C;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,OAAO,YAAY,CACjB,UAA8B,EAC9B,IAAwD,EAAA;QAExD,QAAQ,UAAU;AAChB,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;AACxB,oBAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;KACF;AACF;;ACtPD,IAAK,oBAKJ,CAAA;AALD,CAAA,UAAK,oBAAoB,EAAA;AACvB,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EALI,oBAAoB,KAApB,oBAAoB,GAKxB,EAAA,CAAA,CAAA,CAAA;AAEe,SAAA,eAAe,CAAC,EAC9B,MAAM,GACgC,EAAA;AACtC,IAAA,IAAI,WAAW,IAAI,MAAM,EAAE;AACzB,QAAA,OAAO,MAAM,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAC;KACrC;AAED,IAAA,IAAI,SAAS,IAAI,MAAM,EAAE;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC;KACvB;AAED,IAAA,IAAI,WAAW,IAAI,MAAM,EAAE;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC;KACzB;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,mBAAmB,CACjC,UAAkB,EAClB,QAA+B,EAAA;AAE/B,IAAA,IAAI,UAAsB,CAAC;AAC3B,IAAA,IAAI;AACF,QAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,UAAU,CAAC;YAAE,OAAO;KAClE;IAAC,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO;KACR;AAED,IAAA,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,UAAU,CAAC;IAClC,QAAQ,MAAM;QACZ,KAAK,oBAAoB,CAAC,WAAW;YACnC,IAAI,CAAC,QAAQ,CAAC,iBAAiB;gBAAE,OAAO;AACxC,YAAA,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,oBAAoB,CAAC,eAAe;YACvC,IAAI,CAAC,QAAQ,CAAC,qBAAqB;gBAAE,OAAO;AAC5C,YAAA,OAAO,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,oBAAoB,CAAC,eAAe;AACvC,YAAA,OAAO,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,oBAAoB,CAAC,YAAY;YACpC,IAAI,CAAC,QAAQ,CAAC,kBAAkB;gBAAE,OAAO;AACzC,YAAA,OAAO,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KAC5C;AAED,IAAA,OAAO,CAAC,IAAI,CACV,CAAA,sDAAA,EAAyD,MAAM,CAAkB,eAAA,EAAA,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA,CAAE,CACvH,CAAC;AACJ,CAAC;SAEe,WAAW,CAAC,EAC1B,MAAM,EACN,UAAU,GAC2C,EAAA;AAIrD,IAAA,OAAO,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE;QAC5C,MAAM,EAAE,MAAM,uBAAuB,CAAC,EAAC,MAAM,EAAC,CAAC;QAC/C,IAAI,EAAE,MAAM,qBAAqB,CAAC,EAAC,MAAM,EAAC,CAAC;QAC3C,GAAG,EAAE,MAAM,oBAAoB,CAAC,EAAC,MAAM,EAAC,CAAC;QACzC,OAAO,EAAE,MAAM,oBAAoB,CAAC,EAAC,MAAM,EAAC,CAAC;QAC7C,IAAI,EAAE,MAAM,oBAAoB,CAAC,EAAC,MAAM,EAAC,CAAC;AAC3C,KAAA,CAAC,EAAE,CAAC;AACP,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,MAAM,GACgC,EAAA;IAItC,OAAO;AACL,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC7C,YAAA,OAAQ,MAAuB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;SACrD;AACD,QAAA,iBAAiB,EAAE,OAAO,OAAe,KAAI;AAC3C,YAAA,MAAM,WAAW,GAAI,MAAuB,CAAC,WAAW,CAAC;YACzD,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAChE;AAED,YAAA,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAClC,CAAC;AACF,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACrC;AACD,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,eAAe,GAAI,MAAuB,CAAC,eAAe,CAAC;YACjE,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;aACpE;AACD,YAAA,MAAM,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC7C,YAAA,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;AACpD,YAAA,OAAO,MAAM,CAAC,MAAM,CAClB,iBAAiB,CAAC,SAAS,CAAC;AAC1B,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,gBAAgB,EAAE,KAAK;AACxB,aAAA,CAAC,CACH,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EAAA;AAEZ,IAAA,IAAI,CAAC,IAAI;AACP,QAAA,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;AAEJ,IAAA,IAAI,CAAC,MAAM;AACT,QAAA,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IAEJ,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACpE,IAAA,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7E,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,MAAM,GACgC,EAAA;IAItC,MAAM,UAAU,GAAG,MAAoB,CAAC;IACxC,OAAO;AACL,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACnE,YAAA,MAAM,EAAC,WAAW,EAAE,iBAAiB,EAAC,GAAG,gBAAgB,CAAC;YAC1D,OAAO,iBAAiB,CAAC,IAAI,CAAC;SAC/B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,MAAM,GACgC,EAAA;IAItC,MAAM,SAAS,GAAG,MAAmB,CAAC;IACtC,OAAO;AACL,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AACnD,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,iBAAiB,EAAE,OAAO,OAAe,KAAI;AAC3C,YAAA,OAAO,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACvC;KACF,CAAC;AACJ;;MC7Ja,uBAAuB,CAAA;AAOlC,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;IAE/C,QAAQ,GAAA;QACN,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,UAAU;AACb,YAAA,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;KAC9D;AAE2C,IAAA,aAAa,CAAC,KAAU,EAAA;AAClE,QAAA,IACE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CACpB,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CACvD;YAED,OAAO;AAET,QAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;AACrB,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,WAAW,CAAC,OAAe,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAc,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KACpE;8GA/BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAXxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;AASC,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEA,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AASC,YAAA,CAAA;AACZ,iBAAA,CAAA;iFAEU,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGe,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBAUyB,aAAa,EAAA,CAAA;sBAAxD,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC3B/B,yBAAyB,CAAA;IAKpC,QAAQ,GAAA;QACN,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,kBAAkB;AACrC,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,YAAY;AACZ,YAAA,KAAK,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,aAAa,EAAE,UAAU,CAAE,CAAA;YACpD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9D,CAAC;KACH;8GAjBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFlC,wJAAwJ,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAFhJ,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAItB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,QAAQ,EACN,wJAAwJ;AAC3J,iBAAA,CAAA;8BAEU,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MCXK,gCAAgC,CAAA;8GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,yFAFjC,2CAA2C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1C,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,2CAA2C;AACtD,iBAAA,CAAA;;;MCCY,mCAAmC,CAAA;8GAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,4FAFpC,8CAA8C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE7C,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,8CAA8C;AACzD,iBAAA,CAAA;;;MCUY,yBAAyB,CAAA;IAKpC,QAAQ,GAAA;QACN,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,kBAAkB;AACrC,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,YAAY;AACZ,YAAA,KAAK,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,aAAa,EAAE,UAAU,CAAE,CAAA;AACpD,YAAA,WAAW,EAAE,SAAS;SACvB,CAAC;KACH;8GAjBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFlC,yJAAyJ,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAFjJ,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAItB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,QAAQ,EACN,yJAAyJ;AAC5J,iBAAA,CAAA;8BAEU,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MCVK,gCAAgC,CAAA;8GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,yFAFjC,2CAA2C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1C,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,2CAA2C;AACtD,iBAAA,CAAA;;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"coinflowlabs-angular.mjs","sources":["../../../projects/coinflowlabs/src/lib/common/CoinflowTypes.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowUtils.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowLibMessageHandlers.ts","../../../projects/coinflowlabs/src/lib/coinflow-iframe.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-history.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-protection.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw-history.component.ts","../../../projects/coinflowlabs/src/public-api.ts","../../../projects/coinflowlabs/src/coinflowlabs-angular.ts"],"sourcesContent":["import type {\n Connection,\n VersionedTransaction,\n PublicKey,\n Signer,\n Transaction,\n} from '@solana/web3.js';\n\nexport enum SettlementType {\n Credits = 'Credits',\n USDC = 'USDC',\n Bank = 'Bank',\n}\n\nexport enum MerchantStyle {\n Rounded = 'rounded',\n Sharp = 'sharp',\n Pill = 'pill',\n}\n\nexport type MerchantTheme = {\n primary?: string;\n background?: string;\n backgroundAccent?: string;\n backgroundAccent2?: string;\n textColor?: string;\n textColorAccent?: string;\n textColorAction?: string;\n font?: string;\n style?: MerchantStyle;\n};\n\nexport interface CustomerInfo {\n name?: string;\n verificationId?: string;\n displayName?: string;\n address?: string;\n city?: string;\n state?: string;\n zip?: string;\n country?: string;\n ip?: string;\n lat?: string;\n lng?: string;\n}\n\n/** Coinflow Types **/\nexport type CoinflowBlockchain = 'solana' | 'near' | 'eth' | 'polygon' | 'base';\nexport type CoinflowEnvs = 'prod' | 'staging' | 'sandbox' | 'local';\n\nexport interface CoinflowTypes {\n merchantId: string;\n env?: CoinflowEnvs;\n loaderBackground?: string;\n blockchain: CoinflowBlockchain;\n handleHeightChange?: (height: string) => void;\n theme?: MerchantTheme;\n}\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport type OnSuccessMethod = (params: string) => void | Promise<void>;\n\n/** Wallets **/\nexport interface SolanaWallet {\n publicKey: PublicKey | null;\n signTransaction?: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<T>;\n sendTransaction: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<string>;\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\nexport interface NearWallet {\n accountId: string;\n signAndSendTransaction: (transaction: unknown) => Promise<{\n transaction: {hash: string};\n }>;\n}\n\ntype AccessList = Array<{address: string; storageKeys: Array<string>}>;\ntype AccessListish =\n | AccessList\n | Array<[string, Array<string>]>\n | Record<string, Array<string>>;\n\nexport type EthWallet = {\n address: string | null | undefined;\n sendTransaction: (transaction: {\n to: string;\n from?: string;\n nonce?: Bytes | bigint | string | number;\n\n gasLimit?: Bytes | bigint | string | number;\n gasPrice?: Bytes | bigint | string | number;\n\n data?: BytesLike;\n value?: Bytes | bigint | string | number;\n chainId?: number;\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: Bytes | bigint | string | number;\n maxFeePerGas?: Bytes | bigint | string | number;\n\n customData?: Record<string, any>;\n ccipReadEnabled?: boolean;\n }) => Promise<{hash: string}>;\n signMessage: (message: string) => Promise<string>;\n};\n\n/** History **/\nexport interface CoinflowSolanaHistoryProps extends CoinflowTypes {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearHistoryProps extends CoinflowTypes {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmHistoryProps extends CoinflowTypes {\n wallet: EthWallet;\n}\n\nexport interface CoinflowEthHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowPolygonHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'base';\n}\n\nexport type CoinflowHistoryProps =\n | CoinflowSolanaHistoryProps\n | CoinflowNearHistoryProps\n | CoinflowPolygonHistoryProps\n | CoinflowEthHistoryProps\n | CoinflowBaseHistoryProps;\n\n/** Transactions **/\n\nexport type NearFtTransferCallAction = {\n methodName: 'ft_transfer_call';\n args: object;\n gas: string;\n deposit: string;\n};\n\ntype Bytes = ArrayLike<number>;\ntype BytesLike = Bytes | string;\n\n/** Purchase **/\n\nexport type ChargebackProtectionData = ChargebackProtectionItem[];\n\nexport interface ChargebackProtectionItem {\n /**\n * The name of the product\n */\n productName: string;\n /**\n * The product type. Possible values include: inGameProduct, gameOfSkill, dataStorage, computingResources, sportsTicket, eSportsTicket, musicTicket, conferenceTicket, virtualSportsTicket, virtualESportsTicket, virtualMusicTicket, virtualConferenceTicket, alcohol, DLC, subscription, fundACause, realEstate, computingContract, digitalArt, topUp\n */\n productType:\n | 'inGameProduct'\n | 'gameOfSkill'\n | 'dataStorage'\n | 'computingResources'\n | 'sportsTicket'\n | 'eSportsTicket'\n | 'musicTicket'\n | 'conferenceTicket'\n | 'virtualSportsTicket'\n | 'virtualESportsTicket'\n | 'virtualMusicTicket'\n | 'virtualConferenceTicket'\n | 'alcohol'\n | 'DLC'\n | 'subscription'\n | 'fundACause'\n | 'realEstate'\n | 'computingContract'\n | 'digitalArt'\n | 'topUp'\n | 'ownershipContract';\n /**\n * The item's list price\n */\n /**\n * The number of units sold\n */\n quantity: number;\n /**\n * Any additional data that the store can provide on the product, e.g. description, link to image, etc.\n */\n rawProductData?: {[key: string]: any};\n}\n\nexport interface CoinflowCommonPurchaseProps extends CoinflowTypes {\n amount?: number;\n onSuccess?: OnSuccessMethod;\n webhookInfo?: object;\n email?: string;\n chargebackProtectionData?: ChargebackProtectionData;\n planCode?: string;\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n customerInfo?: CustomerInfo;\n settlementType?: SettlementType;\n authOnly?: boolean;\n deviceId?: string;\n}\n\nexport interface CoinflowSolanaPurchaseProps\n extends CoinflowCommonPurchaseProps {\n wallet: SolanaWallet;\n transaction?: Transaction | VersionedTransaction;\n partialSigners?: Signer[];\n debugTx?: boolean;\n connection: Connection;\n blockchain: 'solana';\n token?: PublicKey | string;\n supportsVersionedTransactions?: boolean;\n rent?: {lamports: string | number};\n nativeSolToConvert?: {lamports: string | number};\n}\n\nexport interface CoinflowNearPurchaseProps extends CoinflowCommonPurchaseProps {\n wallet: NearWallet;\n blockchain: 'near';\n action?: NearFtTransferCallAction;\n nearDeposit?: string;\n}\n\nexport interface CoinflowEvmPurchaseProps extends CoinflowCommonPurchaseProps {\n transaction?: EvmTransactionData;\n token?: string;\n wallet: EthWallet;\n}\n\nexport interface CoinflowPolygonPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowEthPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowBasePurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'base';\n}\n\nexport type CoinflowPurchaseProps =\n | CoinflowSolanaPurchaseProps\n | CoinflowNearPurchaseProps\n | CoinflowPolygonPurchaseProps\n | CoinflowEthPurchaseProps\n | CoinflowBasePurchaseProps;\n\n/** Withdraw **/\n\nexport interface CoinflowCommonWithdrawProps extends CoinflowTypes {\n onSuccess?: OnSuccessMethod;\n tokens?: string[];\n lockDefaultToken?: boolean;\n amount?: number;\n email?: string;\n bankAccountLinkRedirect?: string;\n additionalWallets?: {\n wallet: string;\n blockchain: 'solana' | 'eth' | 'near' | 'polygon';\n }[];\n supportsVersionedTransactions?: boolean;\n lockAmount?: boolean;\n transactionSigner?: string;\n}\n\nexport interface CoinflowSolanaWithdrawProps\n extends CoinflowCommonWithdrawProps {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: EthWallet;\n usePermit?: boolean;\n}\n\nexport interface CoinflowEthWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'eth';\n usePermit?: boolean;\n}\n\nexport interface CoinflowPolygonWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'base';\n}\n\nexport type CoinflowWithdrawProps =\n | CoinflowSolanaWithdrawProps\n | CoinflowNearWithdrawProps\n | CoinflowEthWithdrawProps\n | CoinflowPolygonWithdrawProps\n | CoinflowBaseWithdrawProps;\n\nexport interface CommonEvmRedeem {\n waitForHash?: boolean;\n}\n\nexport interface NormalRedeem extends CommonEvmRedeem {\n transaction: {to: string; data: string};\n}\n\nexport interface KnownTokenIdRedeem extends NormalRedeem {\n nftContract: string;\n nftId: string;\n}\n\nexport interface SafeMintRedeem extends NormalRedeem {\n type: 'safeMint';\n nftContract?: string;\n}\n\nexport interface ReturnedTokenIdRedeem extends NormalRedeem {\n type: 'returned';\n nftContract?: string;\n}\n\ntype ReservoirNftIdItem = Omit<KnownTokenIdRedeem, keyof NormalRedeem>;\ninterface ReservoirOrderIdItem {\n orderId: string;\n}\ntype ReservoirItem = ReservoirNftIdItem | ReservoirOrderIdItem;\ntype ReservoirItems = ReservoirItem | ReservoirItem[];\n\nexport interface ReservoirRedeem extends CommonEvmRedeem {\n type: 'reservoir';\n items: ReservoirItems;\n}\n\nexport type EvmTransactionData =\n | SafeMintRedeem\n | ReturnedTokenIdRedeem\n | ReservoirRedeem\n | KnownTokenIdRedeem\n | NormalRedeem;\n\nexport interface CoinflowIFrameProps\n extends Omit<CoinflowTypes, 'merchantId'>,\n Pick<\n CoinflowCommonPurchaseProps,\n | 'chargebackProtectionData'\n | 'webhookInfo'\n | 'amount'\n | 'customerInfo'\n | 'settlementType'\n | 'email'\n | 'planCode'\n | 'deviceId'\n >,\n Pick<\n CoinflowCommonWithdrawProps,\n | 'bankAccountLinkRedirect'\n | 'additionalWallets'\n | 'transactionSigner'\n | 'lockAmount'\n | 'lockDefaultToken'\n >,\n Pick<CoinflowEvmPurchaseProps, 'authOnly'>,\n Pick<CoinflowSolanaPurchaseProps, 'rent' | 'nativeSolToConvert' | 'token'> {\n walletPubkey: string | null | undefined;\n route: string;\n routePrefix?: string;\n transaction?: string;\n tokens?: string[] | PublicKey[];\n supportsVersionedTransactions?: boolean;\n nearDeposit?: string;\n merchantCss?: string;\n color?: 'white' | 'black';\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n theme?: MerchantTheme;\n usePermit?: boolean;\n}\n","import {\n CoinflowBlockchain,\n CoinflowEnvs,\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n} from './CoinflowTypes';\nconst web3 = require('@solana/web3.js');\nconst base58 = require('bs58');\n\nexport class CoinflowUtils {\n env: CoinflowEnvs;\n url: string;\n\n constructor(env?: CoinflowEnvs) {\n this.env = env ?? 'prod';\n if (this.env === 'prod') this.url = 'https://api.coinflow.cash';\n else if (this.env === 'local') this.url = 'http://localhost:5000';\n else this.url = `https://api-${this.env}.coinflow.cash`;\n }\n\n async getNSurePartnerId(merchantId: string): Promise<string | undefined> {\n return fetch(this.url + `/merchant/view/${merchantId}`)\n .then(response => response.json())\n .then(\n (json: {\n nSurePartnerId: string | undefined;\n nSureSettings: {nSurePartnerId: string | undefined};\n }) => json.nSureSettings?.nSurePartnerId || json.nSurePartnerId\n )\n .catch(e => {\n console.error(e);\n return undefined;\n });\n }\n\n async getCreditBalance(\n publicKey: string,\n merchantId: string,\n blockchain: 'solana' | 'near'\n ): Promise<{cents: number}> {\n const response = await fetch(\n this.url + `/api/customer/balances/${merchantId}`,\n {\n method: 'GET',\n headers: {\n 'x-coinflow-auth-wallet': publicKey,\n 'x-coinflow-auth-blockchain': blockchain,\n },\n }\n );\n const {credits} = await response.json();\n return credits;\n }\n\n static getCoinflowBaseUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://coinflow.cash';\n if (env === 'local') return 'http://localhost:3000';\n\n return `https://${env}.coinflow.cash`;\n }\n\n static getCoinflowApiUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://api.coinflow.cash';\n if (env === 'local') return 'http://localhost:5000';\n\n return `https://api-${env}.coinflow.cash`;\n }\n\n static getCoinflowUrl({\n walletPubkey,\n route,\n routePrefix,\n env,\n amount,\n transaction,\n blockchain,\n supportsVersionedTransactions,\n webhookInfo,\n email,\n loaderBackground,\n handleHeightChange,\n bankAccountLinkRedirect,\n additionalWallets,\n nearDeposit,\n chargebackProtectionData,\n merchantCss,\n color,\n rent,\n lockDefaultToken,\n token,\n tokens,\n planCode,\n disableApplePay,\n disableGooglePay,\n customerInfo,\n settlementType,\n lockAmount,\n nativeSolToConvert,\n theme,\n usePermit,\n transactionSigner,\n authOnly,\n deviceId,\n }: CoinflowIFrameProps): string {\n const prefix = routePrefix\n ? `/${routePrefix}/${blockchain}`\n : `/${blockchain}`;\n const url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));\n url.searchParams.append('pubkey', walletPubkey!);\n\n if (transaction) {\n url.searchParams.append('transaction', transaction);\n }\n if (amount) {\n url.searchParams.append('amount', amount.toString());\n }\n\n if (supportsVersionedTransactions) {\n url.searchParams.append('supportsVersionedTransactions', 'true');\n }\n\n if (webhookInfo) {\n url.searchParams.append(\n 'webhookInfo',\n Buffer.from(JSON.stringify(webhookInfo)).toString('base64')\n );\n }\n\n if (theme) {\n url.searchParams.append(\n 'theme',\n Buffer.from(JSON.stringify(theme)).toString('base64')\n );\n }\n\n if (customerInfo) {\n url.searchParams.append(\n 'customerInfo',\n Buffer.from(JSON.stringify(customerInfo)).toString('base64')\n );\n }\n\n if (email) {\n url.searchParams.append('email', email);\n }\n\n if (token) {\n url.searchParams.append('token', token.toString());\n }\n\n if (tokens) {\n url.searchParams.append('tokens', tokens.toString());\n }\n\n if (loaderBackground) {\n url.searchParams.append('loaderBackground', loaderBackground);\n }\n\n if (handleHeightChange) {\n url.searchParams.append('useHeightChange', 'true');\n }\n\n if (bankAccountLinkRedirect) {\n url.searchParams.append(\n 'bankAccountLinkRedirect',\n bankAccountLinkRedirect\n );\n }\n\n if (additionalWallets)\n url.searchParams.append(\n 'additionalWallets',\n JSON.stringify(additionalWallets)\n );\n\n if (nearDeposit) url.searchParams.append('nearDeposit', nearDeposit);\n\n if (chargebackProtectionData)\n url.searchParams.append(\n 'chargebackProtectionData',\n JSON.stringify(chargebackProtectionData)\n );\n if (deviceId) {\n url.searchParams.append('deviceId', deviceId);\n } else {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const deviceId = window?.nSureSDK?.getDeviceId();\n if (deviceId) url.searchParams.append('deviceId', deviceId);\n }\n }\n\n if (merchantCss) url.searchParams.append('merchantCss', merchantCss);\n if (color) url.searchParams.append('color', color);\n if (rent) url.searchParams.append('rent', rent.lamports.toString());\n if (nativeSolToConvert)\n url.searchParams.append(\n 'nativeSolToConvert',\n nativeSolToConvert.lamports.toString()\n );\n if (lockDefaultToken) url.searchParams.append('lockDefaultToken', 'true');\n if (planCode) url.searchParams.append('planCode', planCode);\n\n if (disableApplePay) url.searchParams.append('disableApplePay', 'true');\n if (disableGooglePay) url.searchParams.append('disableGooglePay', 'true');\n if (settlementType)\n url.searchParams.append('settlementType', settlementType);\n\n if (lockAmount) url.searchParams.append('lockAmount', 'true');\n\n if (usePermit === false) url.searchParams.append('usePermit', 'false');\n if (transactionSigner)\n url.searchParams.append('transactionSigner', transactionSigner);\n if (authOnly === true) url.searchParams.append('authOnly', 'true');\n\n return url.toString();\n }\n\n static getTransaction(props: CoinflowPurchaseProps): string | undefined {\n if ('transaction' in props && props.transaction !== undefined) {\n const {transaction} = props;\n if (web3 && transaction instanceof web3.Transaction) {\n if (!base58) throw new Error('bs58 dependency is required for Solana');\n return base58.encode(\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n }\n\n if (web3 && transaction instanceof web3.VersionedTransaction) {\n if (!base58) throw new Error('bs58 dependency is required for Solana');\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return base58.encode(transaction.serialize());\n }\n\n return btoa(JSON.stringify(transaction));\n }\n\n if ('action' in props && props.action !== undefined) {\n return btoa(JSON.stringify(props.action));\n }\n\n return undefined;\n }\n\n static byBlockchain<T>(\n blockchain: CoinflowBlockchain,\n args: {solana: T; near: T; eth?: T; polygon: T; base: T}\n ): T {\n switch (blockchain) {\n case 'solana':\n return args.solana;\n case 'near':\n return args.near;\n case 'polygon':\n return args.polygon;\n case 'eth':\n if (args.eth === undefined)\n throw new Error('blockchain not supported for this operation!');\n return args.eth;\n case 'base':\n return args.base;\n default:\n throw new Error('blockchain not supported!');\n }\n }\n}\n","import {\n CoinflowPurchaseProps,\n EthWallet,\n NearWallet,\n SolanaWallet,\n} from './CoinflowTypes';\nimport {CoinflowUtils} from './CoinflowUtils';\nimport type {Transaction, VersionedTransaction} from '@solana/web3.js';\nconst web3 = require('@solana/web3.js');\nconst base58 = require('bs58');\n\nexport type WalletCall = {method: IFrameMessageMethods; data: string};\n\nexport interface IFrameMessageHandlers {\n handleSendTransaction: (transaction: string) => Promise<string>;\n handleSignMessage?: (message: string) => Promise<string>;\n handleSignTransaction?: (transaction: string) => Promise<string>;\n handleHeightChange?: (height: string) => void;\n}\n\nenum IFrameMessageMethods {\n SignMessage = 'signMessage',\n SignTransaction = 'signTransaction',\n SendTransaction = 'sendTransaction',\n HeightChange = 'heightChange',\n}\n\nexport function getWalletPubkey({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): string | null | undefined {\n if ('publicKey' in wallet) {\n return wallet.publicKey!.toString();\n }\n\n if ('address' in wallet) {\n return wallet.address;\n }\n\n if ('accountId' in wallet) {\n return wallet.accountId;\n }\n\n return null;\n}\n\nexport function handleIFrameMessage(\n rawMessage: string,\n handlers: IFrameMessageHandlers\n): Promise<string> | void {\n let walletCall: WalletCall;\n try {\n walletCall = JSON.parse(rawMessage);\n if (!('method' in walletCall) || !('data' in walletCall)) return;\n } catch (e) {\n console.error('handleIFrameMessage JSON parse', e);\n return;\n }\n\n const {data, method} = walletCall;\n switch (method) {\n case IFrameMessageMethods.SignMessage:\n if (!handlers.handleSignMessage) return;\n return handlers.handleSignMessage(data);\n case IFrameMessageMethods.SignTransaction:\n if (!handlers.handleSignTransaction) return;\n return handlers.handleSignTransaction(data);\n case IFrameMessageMethods.SendTransaction:\n return handlers.handleSendTransaction(data);\n case IFrameMessageMethods.HeightChange:\n if (!handlers.handleHeightChange) return;\n return handlers.handleHeightChange(data);\n }\n\n console.warn(\n `Didn't expect to get here, handleIFrameMessage method:${method} is not one of ${Object.values(IFrameMessageMethods)}`\n );\n}\n\nexport function getHandlers({\n wallet,\n blockchain,\n}: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return CoinflowUtils.byBlockchain(blockchain, {\n solana: () => getSolanaWalletHandlers({wallet}),\n near: () => getNearWalletHandlers({wallet}),\n eth: () => getEvmWalletHandlers({wallet}),\n polygon: () => getEvmWalletHandlers({wallet}),\n base: () => getEvmWalletHandlers({wallet}),\n })();\n}\n\nfunction getSolanaWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = getSolanaTransaction(transaction);\n return (wallet as SolanaWallet).sendTransaction(tx);\n },\n handleSignMessage: async (message: string) => {\n const signMessage = (wallet as SolanaWallet).signMessage;\n if (!signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n\n const signedMessage = await signMessage(\n new TextEncoder().encode(message)\n );\n return base58.encode(signedMessage);\n },\n handleSignTransaction: async (transaction: string) => {\n const signTransaction = (wallet as SolanaWallet).signTransaction;\n if (!signTransaction) {\n throw new Error('signTransaction is not supported by this wallet');\n }\n const tx = getSolanaTransaction(transaction);\n const signedTransaction = await signTransaction(tx);\n return base58.encode(\n signedTransaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n },\n };\n}\n\nfunction getSolanaTransaction(\n data: string\n): Transaction | VersionedTransaction {\n if (!web3)\n throw new Error(\n '@solana/web3.js is not defined. Please install @solana/web3.js into your project'\n );\n\n if (!base58)\n throw new Error(\n 'bs58 is not defined. Please install bs58 into your project'\n );\n\n const parsedUInt8Array = base58.decode(data);\n const vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);\n if (vtx.version === 'legacy') return web3.Transaction.from(parsedUInt8Array);\n return vtx;\n}\n\nfunction getNearWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const nearWallet = wallet as NearWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const action = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const executionOutcome = await nearWallet.signAndSendTransaction(action);\n if (!executionOutcome) throw new Error('Transaction did not send');\n const {transaction: transactionResult} = executionOutcome;\n return transactionResult.hash;\n },\n };\n}\n\nfunction getEvmWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const evmWallet = wallet as EthWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const {hash} = await evmWallet.sendTransaction(tx);\n return hash;\n },\n handleSignMessage: async (message: string) => {\n return evmWallet.signMessage(message);\n },\n };\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowUtils,\n IFrameMessageHandlers,\n handleIFrameMessage,\n} from './common';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\n\n@Component({\n selector: 'lib-coinflow-iframe',\n standalone: true,\n imports: [],\n template: ` <iframe\n width=\"100%\"\n height=\"100%\"\n #iframe\n scrolling=\"{{ iframeProps?.handleHeightChange ? 'no' : 'yes' }}\"\n allow=\"payment;camera\"\n title=\"withdraw\"\n frameBorder=\"0\"\n [src]=\"dynamicUrl\"\n ></iframe>`,\n})\nexport class CoinflowIFrameComponent {\n @Input() iframeProps!: CoinflowIFrameProps;\n @Input() messageHandlers!: IFrameMessageHandlers;\n\n dynamicUrl?: SafeResourceUrl;\n @ViewChild('iframe') iframe?: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n const coinflowUrl = CoinflowUtils.getCoinflowUrl(this.iframeProps);\n this.dynamicUrl =\n this.sanitizer.bypassSecurityTrustResourceUrl(coinflowUrl);\n }\n\n @HostListener('window:message', ['$event']) onPostMessage(event: any) {\n if (\n !event.origin.includes(\n CoinflowUtils.getCoinflowBaseUrl(this.iframeProps.env)\n )\n )\n return;\n\n const promise = handleIFrameMessage(event.data, this.messageHandlers);\n if (!promise) return;\n promise.then(this.sendMessage.bind(this));\n }\n\n sendMessage(message: string) {\n if (!this.iframe || !this.iframe.nativeElement) return;\n this.iframe.nativeElement.contentWindow!.postMessage(message, '*');\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\nimport {\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n CoinflowUtils,\n} from './common';\n\n@Component({\n selector: 'lib-coinflow-purchase',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowPurchaseComponent {\n @Input() purchaseProps!: CoinflowPurchaseProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.purchaseProps);\n this.messageHandlers = getHandlers(this.purchaseProps);\n this.messageHandlers.handleHeightChange =\n this.purchaseProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.purchaseProps,\n walletPubkey,\n route: `/purchase/${this.purchaseProps?.merchantId}`,\n transaction: CoinflowUtils.getTransaction(this.purchaseProps),\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-history works!</p> ',\n})\nexport class CoinflowPurchaseHistoryComponent {}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-protection',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-protection works!</p> ',\n})\nexport class CoinflowPurchaseProtectionComponent {}\n","import {Component, Input} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowWithdrawProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n} from './common';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\n\n@Component({\n selector: 'lib-coinflow-withdraw',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowWithdrawComponent {\n @Input() withdrawProps!: CoinflowWithdrawProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.withdrawProps);\n this.messageHandlers = getHandlers(this.withdrawProps);\n this.messageHandlers.handleHeightChange =\n this.withdrawProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.withdrawProps,\n walletPubkey,\n route: `/withdraw/${this.withdrawProps?.merchantId}`,\n transaction: undefined,\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-withdraw-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-withdraw-history works!</p> ',\n})\nexport class CoinflowWithdrawHistoryComponent {}\n","/*\n * Public API Surface of coinflowlabs\n */\n\nexport * from './lib/coinflow-iframe.component';\nexport * from './lib/coinflow-purchase.component';\nexport * from './lib/coinflow-purchase-history.component';\nexport * from './lib/coinflow-purchase-protection.component';\nexport * from './lib/coinflow-withdraw.component';\nexport * from './lib/coinflow-withdraw-history.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["web3","base58"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Connection, VersionedTransaction } from '@solana/web3.js';
|
|
2
|
-
import { PublicKey, Signer, Transaction } from '@solana/web3.js';
|
|
1
|
+
import type { Connection, VersionedTransaction, PublicKey, Signer, Transaction } from '@solana/web3.js';
|
|
3
2
|
export declare enum SettlementType {
|
|
4
3
|
Credits = "Credits",
|
|
5
4
|
USDC = "USDC",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinflowlabs/angular",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5-sandbox1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^17.3.0",
|
|
6
6
|
"@angular/core": "^17.3.0",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"bs58": "~5.0.0"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"tslib": "^2.
|
|
12
|
+
"tslib": "^2.6.2"
|
|
13
13
|
},
|
|
14
14
|
"peerDependenciesMeta": {
|
|
15
15
|
"@coinflowlabs/lib-common": {
|