fintoc 1.1.2 → 1.2.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.
- package/README.md +75 -296
- package/build/main/index.d.ts +3 -0
- package/build/main/index.js +13 -2
- package/build/main/interfaces/client/constructorOptions.d.ts +1 -0
- package/build/main/interfaces/client/index.js +6 -2
- package/build/main/interfaces/client/requestOptions.d.ts +1 -0
- package/build/main/interfaces/mixins/index.js +6 -2
- package/build/main/interfaces/paginator/index.js +6 -2
- package/build/main/interfaces/paginator/paginationOptions.d.ts +1 -0
- package/build/main/lib/client.d.ts +6 -1
- package/build/main/lib/client.js +50 -24
- package/build/main/lib/core.d.ts +18 -2
- package/build/main/lib/core.js +23 -6
- package/build/main/lib/errors.d.ts +2 -0
- package/build/main/lib/errors.js +5 -2
- package/build/main/lib/jws.d.ts +25 -0
- package/build/main/lib/jws.js +130 -0
- package/build/main/lib/managers/accountsManager.d.ts +4 -0
- package/build/main/lib/managers/accountsManager.js +7 -2
- package/build/main/lib/managers/index.js +6 -2
- package/build/main/lib/managers/invoicesManager.js +2 -2
- package/build/main/lib/managers/linksManager.js +2 -2
- package/build/main/lib/managers/movementsManager.js +2 -2
- package/build/main/lib/managers/paymentIntentsManager.js +2 -2
- package/build/main/lib/managers/refreshIntentsManager.js +2 -2
- package/build/main/lib/managers/subscriptionsManager.js +2 -2
- package/build/main/lib/managers/taxReturnsManager.js +2 -2
- package/build/main/lib/managers/v2/accountNumbersManager.d.ts +6 -0
- package/build/main/lib/managers/v2/accountNumbersManager.js +10 -0
- package/build/main/lib/managers/v2/accountsManager.d.ts +6 -0
- package/build/main/lib/managers/v2/accountsManager.js +10 -0
- package/build/main/lib/managers/v2/index.d.ts +4 -0
- package/build/main/lib/managers/v2/index.js +21 -0
- package/build/main/lib/managers/v2/simulateManager.d.ts +8 -0
- package/build/main/lib/managers/v2/simulateManager.js +15 -0
- package/build/main/lib/managers/v2/transfersManager.d.ts +6 -0
- package/build/main/lib/managers/v2/transfersManager.js +10 -0
- package/build/main/lib/managers/webhookEndpointsManager.js +2 -2
- package/build/main/lib/mixins/index.js +6 -2
- package/build/main/lib/mixins/managerMixin.d.ts +21 -6
- package/build/main/lib/mixins/managerMixin.js +35 -19
- package/build/main/lib/mixins/resourceMixin.js +10 -11
- package/build/main/lib/paginator.d.ts +1 -1
- package/build/main/lib/paginator.js +16 -13
- package/build/main/lib/resourceHandlers.d.ts +1 -1
- package/build/main/lib/resourceHandlers.js +15 -14
- package/build/main/lib/resources/account.d.ts +4 -0
- package/build/main/lib/resources/account.js +7 -2
- package/build/main/lib/resources/link.d.ts +20 -0
- package/build/main/lib/resources/link.js +31 -6
- package/build/main/lib/resources/v2/account.d.ts +3 -0
- package/build/main/lib/resources/v2/account.js +8 -0
- package/build/main/lib/resources/v2/accountNumber.d.ts +3 -0
- package/build/main/lib/resources/v2/accountNumber.js +8 -0
- package/build/main/lib/resources/v2/index.d.ts +3 -0
- package/build/main/lib/resources/v2/index.js +20 -0
- package/build/main/lib/resources/v2/transfer.d.ts +3 -0
- package/build/main/lib/resources/v2/transfer.js +8 -0
- package/build/main/lib/utils.d.ts +3 -3
- package/build/main/lib/utils.js +36 -23
- package/build/main/lib/version.js +1 -1
- package/build/main/lib/webhook.d.ts +17 -0
- package/build/main/lib/webhook.js +109 -0
- package/build/main/spec/client/creationFunctionality.spec.js +11 -11
- package/build/main/spec/client/requestFunctionality.spec.js +36 -11
- package/build/main/spec/core.spec.js +2 -2
- package/build/main/spec/integration.spec.d.ts +1 -0
- package/build/main/spec/integration.spec.js +587 -0
- package/build/main/spec/jws.spec.d.ts +1 -0
- package/build/main/spec/jws.spec.js +185 -0
- package/build/main/spec/managers/linkManagers.spec.js +5 -5
- package/build/main/spec/mixins/managerMixin/creation.spec.js +9 -9
- package/build/main/spec/mixins/managerMixin/handlers.spec.js +10 -14
- package/build/main/spec/mixins/managerMixin/methods.spec.js +10 -10
- package/build/main/spec/mixins/managerMixin/mocks/complexMockManager.d.ts +1 -1
- package/build/main/spec/mixins/managerMixin/mocks/complexMockManager.js +4 -4
- package/build/main/spec/mixins/managerMixin/mocks/emptyMockManager.js +2 -2
- package/build/main/spec/mixins/resourceMixin/creation.spec.js +6 -6
- package/build/main/spec/mixins/resourceMixin/methods.spec.js +7 -7
- package/build/main/spec/mixins/resourceMixin/serialization.spec.js +5 -5
- package/build/main/spec/mocks/client/axiosInstance.js +6 -5
- package/build/main/spec/mocks/client/response.d.ts +3 -0
- package/build/main/spec/mocks/client/response.js +8 -3
- package/build/main/spec/mocks/initializers.d.ts +1 -1
- package/build/main/spec/mocks/initializers.js +4 -5
- package/build/main/spec/paginator/paginate.spec.js +7 -7
- package/build/main/spec/paginator/parseLink.spec.js +13 -13
- package/build/main/spec/paginator/parseLinkHeaders.spec.js +8 -8
- package/build/main/spec/paginator/request.spec.js +10 -8
- package/build/main/spec/resources/account.spec.js +2 -2
- package/build/main/spec/resources/link.spec.js +6 -6
- package/build/main/spec/shared/utils.js +3 -4
- package/build/main/spec/utils/canRaiseHTTPError.spec.js +4 -4
- package/build/main/spec/utils/getErrorClass.spec.js +5 -5
- package/build/main/spec/utils/getResourceClass.spec.js +13 -13
- package/build/main/spec/utils/isISODate.spec.js +5 -5
- package/build/main/spec/utils/objetize.spec.js +14 -14
- package/build/main/spec/utils/objetizeGenerator.spec.js +6 -6
- package/build/main/spec/utils/serialize.spec.js +14 -14
- package/build/main/spec/utils/shared/getGenerator.js +2 -3
- package/build/main/spec/utils/singularize.spec.js +7 -7
- package/build/main/spec/utils/snakeToPascal.spec.js +7 -7
- package/build/main/spec/webhook.spec.d.ts +1 -0
- package/build/main/spec/webhook.spec.js +120 -0
- package/build/main/types/genericFunction.d.ts +1 -1
- package/build/main/types/index.js +6 -2
- package/build/main/types/resourceArguments.d.ts +1 -1
- package/build/module/index.d.ts +3 -0
- package/build/module/index.js +4 -1
- package/build/module/interfaces/client/constructorOptions.d.ts +1 -0
- package/build/module/interfaces/client/requestOptions.d.ts +1 -0
- package/build/module/interfaces/paginator/paginationOptions.d.ts +1 -0
- package/build/module/lib/client.d.ts +6 -1
- package/build/module/lib/client.js +41 -14
- package/build/module/lib/core.d.ts +18 -2
- package/build/module/lib/core.js +35 -8
- package/build/module/lib/errors.d.ts +2 -0
- package/build/module/lib/errors.js +3 -1
- package/build/module/lib/jws.d.ts +25 -0
- package/build/module/lib/jws.js +94 -0
- package/build/module/lib/managers/accountsManager.d.ts +4 -0
- package/build/module/lib/managers/accountsManager.js +8 -2
- package/build/module/lib/managers/invoicesManager.js +2 -2
- package/build/module/lib/managers/linksManager.js +2 -2
- package/build/module/lib/managers/movementsManager.js +2 -2
- package/build/module/lib/managers/paymentIntentsManager.js +2 -2
- package/build/module/lib/managers/refreshIntentsManager.js +2 -2
- package/build/module/lib/managers/subscriptionsManager.js +2 -2
- package/build/module/lib/managers/taxReturnsManager.js +2 -2
- package/build/module/lib/managers/v2/accountNumbersManager.d.ts +6 -0
- package/build/module/lib/managers/v2/accountNumbersManager.js +6 -0
- package/build/module/lib/managers/v2/accountsManager.d.ts +6 -0
- package/build/module/lib/managers/v2/accountsManager.js +6 -0
- package/build/module/lib/managers/v2/index.d.ts +4 -0
- package/build/module/lib/managers/v2/index.js +5 -0
- package/build/module/lib/managers/v2/simulateManager.d.ts +8 -0
- package/build/module/lib/managers/v2/simulateManager.js +11 -0
- package/build/module/lib/managers/v2/transfersManager.d.ts +6 -0
- package/build/module/lib/managers/v2/transfersManager.js +6 -0
- package/build/module/lib/managers/webhookEndpointsManager.js +2 -2
- package/build/module/lib/mixins/managerMixin.d.ts +21 -6
- package/build/module/lib/mixins/managerMixin.js +32 -16
- package/build/module/lib/mixins/resourceMixin.js +2 -3
- package/build/module/lib/paginator.d.ts +1 -1
- package/build/module/lib/paginator.js +12 -8
- package/build/module/lib/resourceHandlers.d.ts +1 -1
- package/build/module/lib/resourceHandlers.js +5 -3
- package/build/module/lib/resources/account.d.ts +4 -0
- package/build/module/lib/resources/account.js +7 -2
- package/build/module/lib/resources/link.d.ts +20 -0
- package/build/module/lib/resources/link.js +31 -6
- package/build/module/lib/resources/v2/account.d.ts +3 -0
- package/build/module/lib/resources/v2/account.js +4 -0
- package/build/module/lib/resources/v2/accountNumber.d.ts +3 -0
- package/build/module/lib/resources/v2/accountNumber.js +4 -0
- package/build/module/lib/resources/v2/index.d.ts +3 -0
- package/build/module/lib/resources/v2/index.js +4 -0
- package/build/module/lib/resources/v2/transfer.d.ts +3 -0
- package/build/module/lib/resources/v2/transfer.js +4 -0
- package/build/module/lib/utils.d.ts +3 -3
- package/build/module/lib/utils.js +1 -1
- package/build/module/lib/version.js +1 -1
- package/build/module/lib/webhook.d.ts +17 -0
- package/build/module/lib/webhook.js +72 -0
- package/build/module/spec/client/creationFunctionality.spec.js +6 -6
- package/build/module/spec/client/requestFunctionality.spec.js +26 -1
- package/build/module/spec/integration.spec.d.ts +1 -0
- package/build/module/spec/integration.spec.js +582 -0
- package/build/module/spec/jws.spec.d.ts +1 -0
- package/build/module/spec/jws.spec.js +147 -0
- package/build/module/spec/mixins/managerMixin/handlers.spec.js +6 -10
- package/build/module/spec/mixins/managerMixin/methods.spec.js +1 -1
- package/build/module/spec/mixins/managerMixin/mocks/complexMockManager.d.ts +1 -1
- package/build/module/spec/mixins/managerMixin/mocks/complexMockManager.js +4 -4
- package/build/module/spec/mixins/managerMixin/mocks/emptyMockManager.js +2 -2
- package/build/module/spec/mocks/client/axiosInstance.js +4 -3
- package/build/module/spec/mocks/client/response.d.ts +3 -0
- package/build/module/spec/mocks/client/response.js +9 -3
- package/build/module/spec/mocks/initializers.d.ts +1 -1
- package/build/module/spec/paginator/paginate.spec.js +2 -2
- package/build/module/spec/paginator/request.spec.js +6 -4
- package/build/module/spec/utils/objetizeGenerator.spec.js +1 -1
- package/build/module/spec/utils/shared/getGenerator.js +1 -1
- package/build/module/spec/webhook.spec.d.ts +1 -0
- package/build/module/spec/webhook.spec.js +115 -0
- package/build/module/types/genericFunction.d.ts +1 -1
- package/build/module/types/resourceArguments.d.ts +1 -1
- package/package.json +7 -7
|
@@ -37,45 +37,70 @@ class Link extends resourceMixin_1.ResourceMixin {
|
|
|
37
37
|
get _linkToken() {
|
|
38
38
|
return __classPrivateFieldGet(this, _Link_linkToken, "f");
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* @deprecated This method is deprecated and will be removed in a future version.
|
|
42
|
+
* Please use the Fintoc client directly to access accounts. See: https://github.com/fintoc-com/fintoc-node/pull/34
|
|
43
|
+
*/
|
|
40
44
|
get accounts() {
|
|
45
|
+
console.warn('Warning: Link.accounts is deprecated and will be removed in a future version. Please use the Fintoc client directly to access accounts. See: https://github.com/fintoc-com/fintoc-node/pull/34');
|
|
41
46
|
if (__classPrivateFieldGet(this, _Link_accountsManager, "f") === undefined) {
|
|
42
|
-
__classPrivateFieldSet(this, _Link_accountsManager, new managers_1.AccountsManager('/accounts', this._useClient()), "f");
|
|
47
|
+
__classPrivateFieldSet(this, _Link_accountsManager, new managers_1.AccountsManager('/v1/accounts', this._useClient()), "f");
|
|
43
48
|
}
|
|
44
49
|
return __classPrivateFieldGet(this, _Link_accountsManager, "f");
|
|
45
50
|
}
|
|
46
51
|
set accounts(newValue) {
|
|
47
52
|
throw new ReferenceError('Attribute name corresponds to a manager');
|
|
48
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated This method is deprecated and will be removed in a future version.
|
|
56
|
+
* Please use the Fintoc client directly to access subscriptions. See: https://github.com/fintoc-com/fintoc-node/pull/34
|
|
57
|
+
*/
|
|
49
58
|
get subscriptions() {
|
|
59
|
+
console.warn('Warning: Link.subscriptions is deprecated and will be removed in a future version. Please use the Fintoc client directly to access subscriptions. See: https://github.com/fintoc-com/fintoc-node/pull/34');
|
|
50
60
|
if (__classPrivateFieldGet(this, _Link_subscriptionsManager, "f") === undefined) {
|
|
51
|
-
__classPrivateFieldSet(this, _Link_subscriptionsManager, new managers_1.SubscriptionsManager('/subscriptions', this._useClient()), "f");
|
|
61
|
+
__classPrivateFieldSet(this, _Link_subscriptionsManager, new managers_1.SubscriptionsManager('/v1/subscriptions', this._useClient()), "f");
|
|
52
62
|
}
|
|
53
63
|
return __classPrivateFieldGet(this, _Link_subscriptionsManager, "f");
|
|
54
64
|
}
|
|
55
65
|
set subscriptions(newValue) {
|
|
56
66
|
throw new ReferenceError('Attribute name corresponds to a manager');
|
|
57
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated This method is deprecated and will be removed in a future version.
|
|
70
|
+
* Please use the Fintoc client directly to access taxReturns. See: https://github.com/fintoc-com/fintoc-node/pull/34
|
|
71
|
+
*/
|
|
58
72
|
get taxReturns() {
|
|
73
|
+
console.warn('Warning: Link.taxReturns is deprecated and will be removed in a future version. Please use the Fintoc client directly to access taxReturns. See: https://github.com/fintoc-com/fintoc-node/pull/34');
|
|
59
74
|
if (__classPrivateFieldGet(this, _Link_taxReturnsManager, "f") === undefined) {
|
|
60
|
-
__classPrivateFieldSet(this, _Link_taxReturnsManager, new managers_1.TaxReturnsManager('/tax_returns', this._useClient()), "f");
|
|
75
|
+
__classPrivateFieldSet(this, _Link_taxReturnsManager, new managers_1.TaxReturnsManager('/v1/tax_returns', this._useClient()), "f");
|
|
61
76
|
}
|
|
62
77
|
return __classPrivateFieldGet(this, _Link_taxReturnsManager, "f");
|
|
63
78
|
}
|
|
64
79
|
set taxReturns(newValue) {
|
|
65
80
|
throw new ReferenceError('Attribute name corresponds to a manager');
|
|
66
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* @deprecated This method is deprecated and will be removed in a future version.
|
|
84
|
+
* Please use the Fintoc client directly to access invoices. See: https://github.com/fintoc-com/fintoc-node/pull/34
|
|
85
|
+
*/
|
|
67
86
|
get invoices() {
|
|
87
|
+
console.warn('Warning: Link.invoices is deprecated and will be removed in a future version. Please use the Fintoc client directly to access invoices. See: https://github.com/fintoc-com/fintoc-node/pull/34');
|
|
68
88
|
if (__classPrivateFieldGet(this, _Link_invoicesManager, "f") === undefined) {
|
|
69
|
-
__classPrivateFieldSet(this, _Link_invoicesManager, new managers_1.InvoicesManager('/invoices', this._useClient()), "f");
|
|
89
|
+
__classPrivateFieldSet(this, _Link_invoicesManager, new managers_1.InvoicesManager('/v1/invoices', this._useClient()), "f");
|
|
70
90
|
}
|
|
71
91
|
return __classPrivateFieldGet(this, _Link_invoicesManager, "f");
|
|
72
92
|
}
|
|
73
93
|
set invoices(newValue) {
|
|
74
94
|
throw new ReferenceError('Attribute name corresponds to a manager');
|
|
75
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* @deprecated This method is deprecated and will be removed in a future version.
|
|
98
|
+
* Please use the Fintoc client directly to access refreshIntents. See: https://github.com/fintoc-com/fintoc-node/pull/34
|
|
99
|
+
*/
|
|
76
100
|
get refreshIntents() {
|
|
101
|
+
console.warn('Warning: Link.refreshIntents is deprecated and will be removed in a future version. Please use the Fintoc client directly to access refreshIntents. See: https://github.com/fintoc-com/fintoc-node/pull/34');
|
|
77
102
|
if (__classPrivateFieldGet(this, _Link_refreshIntentsManager, "f") === undefined) {
|
|
78
|
-
__classPrivateFieldSet(this, _Link_refreshIntentsManager, new managers_1.RefreshIntentsManager('/refresh_intents', this._useClient()), "f");
|
|
103
|
+
__classPrivateFieldSet(this, _Link_refreshIntentsManager, new managers_1.RefreshIntentsManager('/v1/refresh_intents', this._useClient()), "f");
|
|
79
104
|
}
|
|
80
105
|
return __classPrivateFieldGet(this, _Link_refreshIntentsManager, "f");
|
|
81
106
|
}
|
|
@@ -86,4 +111,4 @@ class Link extends resourceMixin_1.ResourceMixin {
|
|
|
86
111
|
exports.Link = Link;
|
|
87
112
|
_Link_accountsManager = new WeakMap(), _Link_subscriptionsManager = new WeakMap(), _Link_taxReturnsManager = new WeakMap(), _Link_invoicesManager = new WeakMap(), _Link_refreshIntentsManager = new WeakMap(), _Link_linkToken = new WeakMap();
|
|
88
113
|
Link.resourceIdentifier = '_linkToken';
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmVzb3VyY2VzL2xpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBRXFCO0FBQ3JCLDJEQUF3RDtBQUV4RCxNQUFhLElBQUssU0FBUSw2QkFBbUI7SUFZM0MsWUFDRSxNQUFjLEVBQ2QsUUFBeUMsRUFDekMsT0FBaUIsRUFDakIsSUFBWSxFQUNaLE9BQTRCO1FBRTVCLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFoQmxELHdDQUFtQztRQUNuQyw2Q0FBNkM7UUFDN0MsMENBQXVDO1FBQ3ZDLHdDQUFtQztRQUNuQyw4Q0FBK0M7UUFFL0MsK0NBQStDO1FBQy9DLGtDQUFvQjtRQVVsQix1QkFBQSxJQUFJLHlCQUFvQixTQUFTLE1BQUEsQ0FBQztRQUNsQyx1QkFBQSxJQUFJLDhCQUF5QixTQUFTLE1BQUEsQ0FBQztRQUN2Qyx1QkFBQSxJQUFJLDJCQUFzQixTQUFTLE1BQUEsQ0FBQztRQUNwQyx1QkFBQSxJQUFJLHlCQUFvQixTQUFTLE1BQUEsQ0FBQztRQUNsQyx1QkFBQSxJQUFJLCtCQUEwQixTQUFTLE1BQUEsQ0FBQztJQUMxQyxDQUFDO0lBRVMsYUFBYSxDQUFDLFlBQW9CO1FBQzFDLHVCQUFBLElBQUksbUJBQWMsWUFBWSxNQUFBLENBQUM7SUFDakMsQ0FBQztJQUVELElBQWMsVUFBVTtRQUN0QixPQUFPLHVCQUFBLElBQUksdUJBQVcsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxnTUFBZ00sQ0FBQyxDQUFDO1FBQy9NLElBQUksdUJBQUEsSUFBSSw2QkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4Qyx1QkFBQSxJQUFJLHlCQUFvQixJQUFJLDBCQUFl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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Account = void 0;
|
|
4
|
+
const resourceMixin_1 = require("../../mixins/resourceMixin");
|
|
5
|
+
class Account extends resourceMixin_1.ResourceMixin {
|
|
6
|
+
}
|
|
7
|
+
exports.Account = Account;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcmVzb3VyY2VzL3YyL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQTJEO0FBRTNELE1BQWEsT0FBUSxTQUFRLDZCQUFzQjtDQUNsRDtBQURELDBCQUNDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountNumber = void 0;
|
|
4
|
+
const resourceMixin_1 = require("../../mixins/resourceMixin");
|
|
5
|
+
class AccountNumber extends resourceMixin_1.ResourceMixin {
|
|
6
|
+
}
|
|
7
|
+
exports.AccountNumber = AccountNumber;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudE51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcmVzb3VyY2VzL3YyL2FjY291bnROdW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQTJEO0FBRTNELE1BQWEsYUFBYyxTQUFRLDZCQUE0QjtDQUM5RDtBQURELHNDQUNDIn0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./transfer"), exports);
|
|
18
|
+
__exportStar(require("./account"), exports);
|
|
19
|
+
__exportStar(require("./accountNumber"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Jlc291cmNlcy92Mi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLDRDQUEwQjtBQUMxQixrREFBZ0MifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Transfer = void 0;
|
|
4
|
+
const resourceMixin_1 = require("../../mixins/resourceMixin");
|
|
5
|
+
class Transfer extends resourceMixin_1.ResourceMixin {
|
|
6
|
+
}
|
|
7
|
+
exports.Transfer = Transfer;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Jlc291cmNlcy92Mi90cmFuc2Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBMkQ7QUFFM0QsTUFBYSxRQUFTLFNBQVEsNkJBQXVCO0NBQ3BEO0FBREQsNEJBQ0MifQ==
|
|
@@ -72,9 +72,9 @@ export declare function getErrorClass(snakeErrorName: string): any;
|
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
74
|
export declare function canRaiseHTTPError(_: unknown, __: string, descriptor: TypedPropertyDescriptor<any>): {
|
|
75
|
-
enumerable?: boolean
|
|
76
|
-
configurable?: boolean
|
|
77
|
-
writable?: boolean
|
|
75
|
+
enumerable?: boolean;
|
|
76
|
+
configurable?: boolean;
|
|
77
|
+
writable?: boolean;
|
|
78
78
|
value?: any;
|
|
79
79
|
get?: (() => any) | undefined;
|
|
80
80
|
set?: ((value: any) => void) | undefined;
|
package/build/main/lib/utils.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,18 +15,39 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
37
|
};
|
|
24
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.
|
|
39
|
+
exports.toTitle = toTitle;
|
|
40
|
+
exports.snakeToPascal = snakeToPascal;
|
|
41
|
+
exports.singularize = singularize;
|
|
42
|
+
exports.isISODate = isISODate;
|
|
43
|
+
exports.getResourcesModule = getResourcesModule;
|
|
44
|
+
exports.getErrorsModule = getErrorsModule;
|
|
45
|
+
exports.getResourceClass = getResourceClass;
|
|
46
|
+
exports.getErrorClass = getErrorClass;
|
|
47
|
+
exports.canRaiseHTTPError = canRaiseHTTPError;
|
|
48
|
+
exports.serialize = serialize;
|
|
49
|
+
exports.objetize = objetize;
|
|
50
|
+
exports.objetizeGenerator = objetizeGenerator;
|
|
26
51
|
const axios_1 = __importDefault(require("axios"));
|
|
27
52
|
const errors = __importStar(require("./errors"));
|
|
28
53
|
const genericFintocResource_1 = require("./resources/genericFintocResource");
|
|
@@ -35,7 +60,6 @@ const genericFintocResource_1 = require("./resources/genericFintocResource");
|
|
|
35
60
|
function toTitle(rawString) {
|
|
36
61
|
return rawString[0].toUpperCase() + rawString.substr(1).toLowerCase();
|
|
37
62
|
}
|
|
38
|
-
exports.toTitle = toTitle;
|
|
39
63
|
/**
|
|
40
64
|
* Transforms a snake-cased string into a pascal-cased one.
|
|
41
65
|
*
|
|
@@ -45,7 +69,6 @@ exports.toTitle = toTitle;
|
|
|
45
69
|
function snakeToPascal(snakeString) {
|
|
46
70
|
return snakeString.split('_').map(toTitle).join('');
|
|
47
71
|
}
|
|
48
|
-
exports.snakeToPascal = snakeToPascal;
|
|
49
72
|
/**
|
|
50
73
|
* Remove the last 's' from a string if exists.
|
|
51
74
|
*
|
|
@@ -55,7 +78,6 @@ exports.snakeToPascal = snakeToPascal;
|
|
|
55
78
|
function singularize(rawString) {
|
|
56
79
|
return rawString.replace(/s$/, '');
|
|
57
80
|
}
|
|
58
|
-
exports.singularize = singularize;
|
|
59
81
|
/**
|
|
60
82
|
* Tries to parse an ISO formatted string to check if it is parseable as a Date object.
|
|
61
83
|
*
|
|
@@ -65,7 +87,6 @@ exports.singularize = singularize;
|
|
|
65
87
|
function isISODate(rawDate) {
|
|
66
88
|
return !Number.isNaN(Date.parse(rawDate));
|
|
67
89
|
}
|
|
68
|
-
exports.isISODate = isISODate;
|
|
69
90
|
/**
|
|
70
91
|
* Gets and returns the resources module interfaced as an IModule.
|
|
71
92
|
*
|
|
@@ -75,14 +96,13 @@ exports.isISODate = isISODate;
|
|
|
75
96
|
async function getResourcesModule(resourceName) {
|
|
76
97
|
const camelCaseName = resourceName.charAt(0).toLowerCase() + resourceName.slice(1);
|
|
77
98
|
try {
|
|
78
|
-
const resources = await Promise.resolve().then(
|
|
99
|
+
const resources = await Promise.resolve(`${`./resources/${camelCaseName}`}`).then(s => __importStar(require(s)));
|
|
79
100
|
return resources;
|
|
80
101
|
}
|
|
81
102
|
catch (_a) {
|
|
82
103
|
return {};
|
|
83
104
|
}
|
|
84
105
|
}
|
|
85
|
-
exports.getResourcesModule = getResourcesModule;
|
|
86
106
|
/**
|
|
87
107
|
* Gets and returns the errors module interfaced as an IModule.
|
|
88
108
|
*
|
|
@@ -91,7 +111,6 @@ exports.getResourcesModule = getResourcesModule;
|
|
|
91
111
|
function getErrorsModule() {
|
|
92
112
|
return errors;
|
|
93
113
|
}
|
|
94
|
-
exports.getErrorsModule = getErrorsModule;
|
|
95
114
|
/**
|
|
96
115
|
* Get the class corresponding to the the resource name and value.
|
|
97
116
|
*
|
|
@@ -111,7 +130,6 @@ async function getResourceClass(snakeResourceName, value = {}) {
|
|
|
111
130
|
}
|
|
112
131
|
return klass;
|
|
113
132
|
}
|
|
114
|
-
exports.getResourceClass = getResourceClass;
|
|
115
133
|
/**
|
|
116
134
|
* Get the error corresponding to the error name.
|
|
117
135
|
*
|
|
@@ -123,7 +141,6 @@ function getErrorClass(snakeErrorName) {
|
|
|
123
141
|
const errorName = snakeToPascal(snakeErrorName);
|
|
124
142
|
return errorsModule[errorName] || errorsModule.FintocError;
|
|
125
143
|
}
|
|
126
|
-
exports.getErrorClass = getErrorClass;
|
|
127
144
|
/**
|
|
128
145
|
* Decorator designed for an instance method. It tries tp execute the function,
|
|
129
146
|
* catches exceptions and re-rises the adequate Fintoc exception.
|
|
@@ -157,7 +174,6 @@ function canRaiseHTTPError(_, __, descriptor) {
|
|
|
157
174
|
};
|
|
158
175
|
return newDescriptor;
|
|
159
176
|
}
|
|
160
|
-
exports.canRaiseHTTPError = canRaiseHTTPError;
|
|
161
177
|
/**
|
|
162
178
|
* Serializes an object.
|
|
163
179
|
*
|
|
@@ -173,7 +189,6 @@ function serialize(object) {
|
|
|
173
189
|
}
|
|
174
190
|
return object;
|
|
175
191
|
}
|
|
176
|
-
exports.serialize = serialize;
|
|
177
192
|
/**
|
|
178
193
|
* Wraps some data with a class.
|
|
179
194
|
*
|
|
@@ -197,7 +212,6 @@ async function objetize(Klass, client, data, handlers = {}, methods = [], path =
|
|
|
197
212
|
}
|
|
198
213
|
return Klass._build(client, handlers, methods, path, data);
|
|
199
214
|
}
|
|
200
|
-
exports.objetize = objetize;
|
|
201
215
|
/**
|
|
202
216
|
* Wraps and yields some data (from a generator) with a class.
|
|
203
217
|
*
|
|
@@ -214,5 +228,4 @@ async function* objetizeGenerator(generator, klass, client, handlers = {}, metho
|
|
|
214
228
|
yield objetize(klass, client, element, handlers, methods, path);
|
|
215
229
|
}
|
|
216
230
|
}
|
|
217
|
-
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEM7QUFNMUMsaURBQW1DO0FBQ25DLDZFQUEwRTtBQUUxRTs7Ozs7R0FLRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxTQUFpQjtJQUN2QyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3hFLENBQUM7QUFGRCwwQkFFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLFdBQW1CO0lBQy9DLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFGRCxzQ0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLFNBQWlCO0lBQzNDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUZELGtDQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixTQUFTLENBQUMsT0FBZTtJQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUZELDhCQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsWUFBb0I7SUFDM0QsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25GLElBQUk7UUFDRixNQUFNLFNBQVMsR0FBRyx3REFBYSxlQUFlLGFBQWEsRUFBRSxHQUFDLENBQUM7UUFDL0QsT0FBTyxTQUFvQixDQUFDO0tBQzdCO0lBQUMsV0FBTTtRQUNOLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDSCxDQUFDO0FBUkQsZ0RBUUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZUFBZTtJQUM3QixPQUFPLE1BQWlCLENBQUM7QUFDM0IsQ0FBQztBQUZELDBDQUVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUFDLGlCQUF5QixFQUFFLFFBQWEsRUFBRTtJQUMvRSxNQUFNLEtBQUssR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsV0FBVyxDQUFDO0lBQ2pDLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtRQUNwQixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxNQUFNLGVBQWUsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELE9BQU8sZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLDZDQUFxQixDQUFDO0tBQy9EO0lBQ0QsSUFBSSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDMUMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDRDQVdDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixhQUFhLENBQUMsY0FBc0I7SUFDbEQsTUFBTSxZQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUM7QUFDN0QsQ0FBQztBQUpELHNDQUlDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixDQUFVLEVBQUUsRUFBVSxFQUFFLFVBQXdDO0lBRWhFLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUV4QyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssVUFBVSxPQUFPLENBQUMsR0FBRyxJQUFXO1FBQ3pELElBQUk7WUFDRixPQUFPLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pEO1FBQUMsT0FBTyxHQUE2QixFQUFFO1lBQ3RDLElBQUksZUFBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQTJCLENBQUM7Z0JBQzNELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxNQUFNLEdBQUcsQ0FBQzthQUNYO1NBQ0Y7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBcEJELDhDQW9CQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQVc7SUFDbkMsSUFBSSxPQUFPLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVMsQ0FBQSxLQUFLLFVBQVUsRUFBRTtRQUMzQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUMzQjtJQUNELElBQUksQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsV0FBVyxNQUFLLElBQUksRUFBRTtRQUNoQyxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUM3QjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFSRCw4QkFRQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSSxLQUFLLFVBQVUsUUFBUSxDQUM1QixLQUFVLEVBQ1YsTUFBYyxFQUNkLElBQVMsRUFDVCxXQUE0QyxFQUFFLEVBQzlDLFVBQW9CLEVBQUUsRUFDdEIsT0FBc0IsSUFBSTtJQUUxQixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDcEI7SUFDRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDbEIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN4QjtJQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQWxCRCw0QkFrQkM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0ksS0FBSyxTQUFTLENBQUMsQ0FBQyxpQkFBaUIsQ0FDdEMsU0FBOEMsRUFDOUMsS0FBVSxFQUNWLE1BQWMsRUFDZCxXQUE0QyxFQUFFLEVBQzlDLFVBQW9CLEVBQUUsRUFDdEIsT0FBc0IsSUFBSTtJQUUxQixJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sSUFBSSxTQUFTLEVBQUU7UUFDckMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNqRTtBQUNILENBQUM7QUFYRCw4Q0FXQyJ9
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsMEJBRUM7QUFRRCxzQ0FFQztBQVFELGtDQUVDO0FBUUQsOEJBRUM7QUFRRCxnREFRQztBQU9ELDBDQUVDO0FBU0QsNENBV0M7QUFRRCxzQ0FJQztBQWdCRCw4Q0FvQkM7QUFRRCw4QkFRQztBQWFELDRCQWtCQztBQWFELDhDQVdDO0FBbk5ELGtEQUEwQztBQU0xQyxpREFBbUM7QUFDbkMsNkVBQTBFO0FBRTFFOzs7OztHQUtHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLFNBQWlCO0lBQ3ZDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLFdBQW1CO0lBQy9DLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxTQUFpQjtJQUMzQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxPQUFlO0lBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMs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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.version = exports.versionInfo = void 0;
|
|
4
|
-
exports.versionInfo = [1,
|
|
4
|
+
exports.versionInfo = [1, 2, 0];
|
|
5
5
|
exports.version = exports.versionInfo.join('.');
|
|
6
6
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFeEIsUUFBQSxPQUFPLEdBQUcsbUJBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class WebhookSignature {
|
|
2
|
+
/**
|
|
3
|
+
* Verifies the authenticity of incoming webhooks from Fintoc by validating the signature.
|
|
4
|
+
*
|
|
5
|
+
* @param payload - The raw request body as a string or Buffer
|
|
6
|
+
* @param header - The Fintoc-Signature header value
|
|
7
|
+
* @param secret - Your webhook secret key (found in your Fintoc dashboard)
|
|
8
|
+
* @param tolerance - Number of seconds to tolerate when checking timestamp (default: 300)
|
|
9
|
+
* @throws {WebhookSignatureError} If the signature is invalid or timestamp is outside
|
|
10
|
+
* tolerance window
|
|
11
|
+
*/
|
|
12
|
+
static verifyHeader(payload: string | Buffer, header: string, secret: string, tolerance?: number): void;
|
|
13
|
+
private static parseHeader;
|
|
14
|
+
private static verifyTimestamp;
|
|
15
|
+
private static computeSignature;
|
|
16
|
+
private static secureCompare;
|
|
17
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.WebhookSignature = void 0;
|
|
37
|
+
const crypto = __importStar(require("crypto"));
|
|
38
|
+
const errors_1 = require("./errors");
|
|
39
|
+
const DEFAULT_TOLERANCE_SECONDS = 300;
|
|
40
|
+
class WebhookSignature {
|
|
41
|
+
/**
|
|
42
|
+
* Verifies the authenticity of incoming webhooks from Fintoc by validating the signature.
|
|
43
|
+
*
|
|
44
|
+
* @param payload - The raw request body as a string or Buffer
|
|
45
|
+
* @param header - The Fintoc-Signature header value
|
|
46
|
+
* @param secret - Your webhook secret key (found in your Fintoc dashboard)
|
|
47
|
+
* @param tolerance - Number of seconds to tolerate when checking timestamp (default: 300)
|
|
48
|
+
* @throws {WebhookSignatureError} If the signature is invalid or timestamp is outside
|
|
49
|
+
* tolerance window
|
|
50
|
+
*/
|
|
51
|
+
static verifyHeader(payload, header, secret, tolerance = DEFAULT_TOLERANCE_SECONDS) {
|
|
52
|
+
if (!header) {
|
|
53
|
+
throw new errors_1.WebhookSignatureError('Missing Fintoc-Signature header.');
|
|
54
|
+
}
|
|
55
|
+
if (!secret) {
|
|
56
|
+
throw new errors_1.WebhookSignatureError('Webhook secret is required for verification.');
|
|
57
|
+
}
|
|
58
|
+
const { timestamp, signature } = WebhookSignature.parseHeader(header);
|
|
59
|
+
WebhookSignature.verifyTimestamp(timestamp, tolerance);
|
|
60
|
+
const expectedSignature = WebhookSignature.computeSignature(payload, timestamp, secret);
|
|
61
|
+
if (!WebhookSignature.secureCompare(signature, expectedSignature)) {
|
|
62
|
+
throw new errors_1.WebhookSignatureError('Signature mismatch. The webhook signature is not valid.');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
static parseHeader(header) {
|
|
66
|
+
const parts = header.split(',');
|
|
67
|
+
let timestampStr;
|
|
68
|
+
let signature;
|
|
69
|
+
for (const part of parts) {
|
|
70
|
+
const [key, value] = part.split('=');
|
|
71
|
+
if (key === 't') {
|
|
72
|
+
timestampStr = value;
|
|
73
|
+
}
|
|
74
|
+
else if (key === 'v1') {
|
|
75
|
+
signature = value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (!timestampStr || !signature) {
|
|
79
|
+
throw new errors_1.WebhookSignatureError('Unable to extract timestamp and signatures from header');
|
|
80
|
+
}
|
|
81
|
+
const timestamp = parseInt(timestampStr, 10);
|
|
82
|
+
if (Number.isNaN(timestamp)) {
|
|
83
|
+
throw new errors_1.WebhookSignatureError('Unable to extract timestamp and signatures from header');
|
|
84
|
+
}
|
|
85
|
+
return { timestamp, signature };
|
|
86
|
+
}
|
|
87
|
+
static verifyTimestamp(timestamp, toleranceSeconds) {
|
|
88
|
+
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
89
|
+
const timeDifference = Math.abs(nowSeconds - timestamp);
|
|
90
|
+
if (timeDifference > toleranceSeconds) {
|
|
91
|
+
throw new errors_1.WebhookSignatureError(`Timestamp outside the tolerance zone (${timestamp})`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static computeSignature(payload, timestamp, secret) {
|
|
95
|
+
const signedPayload = `${timestamp}.${payload.toString('utf8')}`;
|
|
96
|
+
return crypto
|
|
97
|
+
.createHmac('sha256', secret)
|
|
98
|
+
.update(signedPayload)
|
|
99
|
+
.digest('hex');
|
|
100
|
+
}
|
|
101
|
+
static secureCompare(a, b) {
|
|
102
|
+
if (a.length !== b.length) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
return crypto.timingSafeEqual(Buffer.from(a), Buffer.from(b));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.WebhookSignature = WebhookSignature;
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvd2ViaG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMscUNBQWlEO0FBRWpELE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFDO0FBRXRDLE1BQWEsZ0JBQWdCO0lBQzNCOzs7Ozs7Ozs7T0FTRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLE9BQXdCLEVBQ3hCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsWUFBb0IseUJBQXlCO1FBRTdDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSw4QkFBcUIsQ0FDN0Isa0NBQWtDLENBQ25DLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLDhCQUFxQixDQUM3Qiw4Q0FBOEMsQ0FDL0MsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXZELE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQ3pELE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxDQUNQLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbEUsTUFBTSxJQUFJLDhCQUFxQixDQUM3Qix5REFBeUQsQ0FDMUQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxZQUFnQyxDQUFDO1FBQ3JDLElBQUksU0FBNkIsQ0FBQztRQUVsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO2lCQUFNLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN4QixTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSw4QkFBcUIsQ0FDN0Isd0RBQXdELENBQ3pELENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksOEJBQXFCLENBQzdCLHdEQUF3RCxDQUN6RCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBaUIsRUFBRSxnQkFBd0I7UUFDeEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFeEQsSUFBSSxjQUFjLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksOEJBQXFCLENBQzdCLHlDQUF5QyxTQUFTLEdBQUcsQ0FDdEQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLGdCQUFnQixDQUM3QixPQUF3QixFQUN4QixTQUFpQixFQUNqQixNQUFjO1FBRWQsTUFBTSxhQUFhLEdBQUcsR0FBRyxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sTUFBTTthQUNWLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO2FBQzVCLE1BQU0sQ0FBQyxhQUFhLENBQUM7YUFDckIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFTyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQy9DLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQXpHRCw0Q0F5R0MifQ==
|
|
@@ -21,7 +21,7 @@ ava_1.default.beforeEach((t) => {
|
|
|
21
21
|
}
|
|
22
22
|
ctx.createClient = createClient;
|
|
23
23
|
});
|
|
24
|
-
ava_1.default('"Client" creation without parameters', (t) => {
|
|
24
|
+
(0, ava_1.default)('"Client" creation without parameters', (t) => {
|
|
25
25
|
const ctx = t.context;
|
|
26
26
|
const client = ctx.createClient();
|
|
27
27
|
t.assert(client instanceof client_1.Client);
|
|
@@ -32,7 +32,7 @@ ava_1.default('"Client" creation without parameters', (t) => {
|
|
|
32
32
|
&& Object.keys(client.params).length === 0
|
|
33
33
|
&& client.params.constructor === Object);
|
|
34
34
|
});
|
|
35
|
-
ava_1.default('"Client" creation with parameters', (t) => {
|
|
35
|
+
(0, ava_1.default)('"Client" creation with parameters', (t) => {
|
|
36
36
|
const ctx = t.context;
|
|
37
37
|
const client = ctx.createClient(true);
|
|
38
38
|
t.assert(client instanceof client_1.Client);
|
|
@@ -41,17 +41,17 @@ ava_1.default('"Client" creation with parameters', (t) => {
|
|
|
41
41
|
t.assert(client.userAgent === ctx.userAgent);
|
|
42
42
|
t.assert(client.params === ctx.params);
|
|
43
43
|
});
|
|
44
|
-
ava_1.default('"Client" headers', (t) => {
|
|
44
|
+
(0, ava_1.default)('"Client" headers', (t) => {
|
|
45
45
|
const ctx = t.context;
|
|
46
46
|
const client = ctx.createClient();
|
|
47
47
|
t.assert(client instanceof client_1.Client);
|
|
48
|
-
t.assert(Object.keys(client.
|
|
49
|
-
t.assert('Authorization' in client.
|
|
50
|
-
t.assert('User-Agent' in client.
|
|
51
|
-
t.assert(client.
|
|
52
|
-
t.assert(client.
|
|
48
|
+
t.assert(Object.keys(client.staticHeaders).length === 3);
|
|
49
|
+
t.assert('Authorization' in client.staticHeaders);
|
|
50
|
+
t.assert('User-Agent' in client.staticHeaders);
|
|
51
|
+
t.assert(client.staticHeaders.Authorization === ctx.apiKey);
|
|
52
|
+
t.assert(client.staticHeaders['User-Agent'] === ctx.userAgent);
|
|
53
53
|
});
|
|
54
|
-
ava_1.default('"Client" extension', (t) => {
|
|
54
|
+
(0, ava_1.default)('"Client" extension', (t) => {
|
|
55
55
|
const ctx = t.context;
|
|
56
56
|
const client = ctx.createClient();
|
|
57
57
|
t.assert(client instanceof client_1.Client);
|
|
@@ -61,7 +61,7 @@ ava_1.default('"Client" extension', (t) => {
|
|
|
61
61
|
t.assert(newClient instanceof client_1.Client);
|
|
62
62
|
t.assert(newClient !== client);
|
|
63
63
|
});
|
|
64
|
-
ava_1.default('"Client" params extension', (t) => {
|
|
64
|
+
(0, ava_1.default)('"Client" params extension', (t) => {
|
|
65
65
|
const ctx = t.context;
|
|
66
66
|
const client = ctx.createClient(true);
|
|
67
67
|
t.assert(client instanceof client_1.Client);
|
|
@@ -70,4 +70,4 @@ ava_1.default('"Client" params extension', (t) => {
|
|
|
70
70
|
t.assert(Object.keys(newClient.params).length === Object.keys(client.params).length + 1);
|
|
71
71
|
t.assert(newClient.params.first_param !== client.params.first_param);
|
|
72
72
|
});
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRpb25GdW5jdGlvbmFsaXR5LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3BlYy9jbGllbnQvY3JlYXRpb25GdW5jdGlvbmFsaXR5LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBdUI7QUFFdkIsNkNBQTBDO0FBRTFDLGFBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNwQixNQUFNLEdBQUcsR0FBUSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzNCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUM7SUFDakMsR0FBRyxDQUFDLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQztJQUNwQyxHQUFHLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDO0lBQ25DLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUUxRSxTQUFTLFlBQVksQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksZUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFDRCxPQUFPLElBQUksZUFBTSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtTQUN2RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDbEMsQ0FBQyxDQUFD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
|