@vendasta/billing 9.4.0 → 9.5.0

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.
@@ -0,0 +1,110 @@
1
+ import * as e from '../enums';
2
+ export function enumStringToValue(enumRef, value) {
3
+ if (typeof value === 'number') {
4
+ return value;
5
+ }
6
+ return enumRef[value];
7
+ }
8
+ export class CreateMerchantServicesReportRun {
9
+ constructor(kwargs) {
10
+ if (!kwargs) {
11
+ return;
12
+ }
13
+ Object.assign(this, kwargs);
14
+ }
15
+ static fromProto(proto) {
16
+ let m = new CreateMerchantServicesReportRun();
17
+ m = Object.assign(m, proto);
18
+ if (proto.reportType) {
19
+ m.reportType = enumStringToValue(e.MerchantServicesReportRunType, proto.reportType);
20
+ }
21
+ if (proto.intervalStart) {
22
+ m.intervalStart = new Date(proto.intervalStart);
23
+ }
24
+ if (proto.intervalEnd) {
25
+ m.intervalEnd = new Date(proto.intervalEnd);
26
+ }
27
+ return m;
28
+ }
29
+ toApiJson() {
30
+ const toReturn = {};
31
+ if (typeof this.merchantId !== 'undefined') {
32
+ toReturn['merchantId'] = this.merchantId;
33
+ }
34
+ if (typeof this.reportType !== 'undefined') {
35
+ toReturn['reportType'] = this.reportType;
36
+ }
37
+ if (typeof this.intervalStart !== 'undefined' && this.intervalStart !== null) {
38
+ toReturn['intervalStart'] = 'toApiJson' in this.intervalStart ? this.intervalStart.toApiJson() : this.intervalStart;
39
+ }
40
+ if (typeof this.intervalEnd !== 'undefined' && this.intervalEnd !== null) {
41
+ toReturn['intervalEnd'] = 'toApiJson' in this.intervalEnd ? this.intervalEnd.toApiJson() : this.intervalEnd;
42
+ }
43
+ if (typeof this.currencyCode !== 'undefined') {
44
+ toReturn['currencyCode'] = this.currencyCode;
45
+ }
46
+ return toReturn;
47
+ }
48
+ }
49
+ export class GetMerchantServicesReportRun {
50
+ constructor(kwargs) {
51
+ if (!kwargs) {
52
+ return;
53
+ }
54
+ Object.assign(this, kwargs);
55
+ }
56
+ static fromProto(proto) {
57
+ let m = new GetMerchantServicesReportRun();
58
+ m = Object.assign(m, proto);
59
+ return m;
60
+ }
61
+ toApiJson() {
62
+ const toReturn = {};
63
+ if (typeof this.id !== 'undefined') {
64
+ toReturn['id'] = this.id;
65
+ }
66
+ return toReturn;
67
+ }
68
+ }
69
+ export class MerchantServicesReportRun {
70
+ constructor(kwargs) {
71
+ if (!kwargs) {
72
+ return;
73
+ }
74
+ Object.assign(this, kwargs);
75
+ }
76
+ static fromProto(proto) {
77
+ let m = new MerchantServicesReportRun();
78
+ m = Object.assign(m, proto);
79
+ if (proto.created) {
80
+ m.created = new Date(proto.created);
81
+ }
82
+ if (proto.reportType) {
83
+ m.reportType = enumStringToValue(e.MerchantServicesReportRunType, proto.reportType);
84
+ }
85
+ if (proto.status) {
86
+ m.status = enumStringToValue(e.MerchantServicesReportRunStatus, proto.status);
87
+ }
88
+ return m;
89
+ }
90
+ toApiJson() {
91
+ const toReturn = {};
92
+ if (typeof this.id !== 'undefined') {
93
+ toReturn['id'] = this.id;
94
+ }
95
+ if (typeof this.created !== 'undefined' && this.created !== null) {
96
+ toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;
97
+ }
98
+ if (typeof this.reportType !== 'undefined') {
99
+ toReturn['reportType'] = this.reportType;
100
+ }
101
+ if (typeof this.status !== 'undefined') {
102
+ toReturn['status'] = this.status;
103
+ }
104
+ if (typeof this.error !== 'undefined') {
105
+ toReturn['error'] = this.error;
106
+ }
107
+ return toReturn;
108
+ }
109
+ }
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJ1bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvcmVwb3J0LXJ1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sK0JBQStCO0lBZ0J4QyxZQUFZLE1BQW1EO1FBQzNELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBZEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksK0JBQStCLEVBQUUsQ0FBQztRQUM5QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBa0MsQ0FBQyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUFDO1FBQzdJLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQUM7UUFDM0UsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJ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O0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1biBpbXBsZW1lbnRzIGkuQ3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bkludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHJlcG9ydFR5cGU6IGUuTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1blR5cGU7XG4gICAgaW50ZXJ2YWxTdGFydDogRGF0ZTtcbiAgICBpbnRlcnZhbEVuZDogRGF0ZTtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4ge1xuICAgICAgICBsZXQgbSA9IG5ldyBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnJlcG9ydFR5cGUpIHttLnJlcG9ydFR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLk1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5UeXBlPihlLk1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5UeXBlLCBwcm90by5yZXBvcnRUeXBlKTt9XG4gICAgICAgIGlmIChwcm90by5pbnRlcnZhbFN0YXJ0KSB7bS5pbnRlcnZhbFN0YXJ0ID0gbmV3IERhdGUocHJvdG8uaW50ZXJ2YWxTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8uaW50ZXJ2YWxFbmQpIHttLmludGVydmFsRW5kID0gbmV3IERhdGUocHJvdG8uaW50ZXJ2YWxFbmQpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlcG9ydFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlcG9ydFR5cGUnXSA9IHRoaXMucmVwb3J0VHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnRlcnZhbFN0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludGVydmFsU3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnaW50ZXJ2YWxTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnRlcnZhbFN0YXJ0ID8gKHRoaXMuaW50ZXJ2YWxTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pbnRlcnZhbFN0YXJ0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmludGVydmFsRW5kICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludGVydmFsRW5kICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludGVydmFsRW5kJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmludGVydmFsRW5kID8gKHRoaXMuaW50ZXJ2YWxFbmQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW50ZXJ2YWxFbmQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VycmVuY3lDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXJyZW5jeUNvZGUnXSA9IHRoaXMuY3VycmVuY3lDb2RlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4gaW1wbGVtZW50cyBpLkdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5JbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuIGltcGxlbWVudHMgaS5NZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgcmVwb3J0VHlwZTogZS5NZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuVHlwZTtcbiAgICBzdGF0dXM6IGUuTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1blN0YXR1cztcbiAgICBlcnJvcjogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1biB7XG4gICAgICAgIGxldCBtID0gbmV3IE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnJlcG9ydFR5cGUpIHttLnJlcG9ydFR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLk1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5UeXBlPihlLk1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5UeXBlLCBwcm90by5yZXBvcnRUeXBlKTt9XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1blN0YXR1cz4oZS5NZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuU3RhdHVzLCBwcm90by5zdGF0dXMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5NZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3JlYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydjcmVhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNyZWF0ZWQgPyAodGhpcy5jcmVhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNyZWF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVwb3J0VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVwb3J0VHlwZSddID0gdGhpcy5yZXBvcnRUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lcnJvciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZXJyb3InXSA9IHRoaXMuZXJyb3I7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=