payment-skill 1.0.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/LICENSE +62 -0
- package/README.md +545 -0
- package/SKILL.md +99 -0
- package/SUPPORT.md +153 -0
- package/bin/payment-skill.js +2 -0
- package/dashboard.html +669 -0
- package/dist/api/bunq.d.ts +35 -0
- package/dist/api/bunq.d.ts.map +1 -0
- package/dist/api/bunq.js +164 -0
- package/dist/api/bunq.js.map +1 -0
- package/dist/api/wise.d.ts +32 -0
- package/dist/api/wise.d.ts.map +1 -0
- package/dist/api/wise.js +155 -0
- package/dist/api/wise.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +69 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/bunq.d.ts +8 -0
- package/dist/commands/bunq.d.ts.map +1 -0
- package/dist/commands/bunq.js +193 -0
- package/dist/commands/bunq.js.map +1 -0
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +70 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/emergency.d.ts +8 -0
- package/dist/commands/emergency.d.ts.map +1 -0
- package/dist/commands/emergency.js +85 -0
- package/dist/commands/emergency.js.map +1 -0
- package/dist/commands/limits.d.ts +6 -0
- package/dist/commands/limits.d.ts.map +1 -0
- package/dist/commands/limits.js +125 -0
- package/dist/commands/limits.js.map +1 -0
- package/dist/commands/merchant.d.ts +6 -0
- package/dist/commands/merchant.d.ts.map +1 -0
- package/dist/commands/merchant.js +41 -0
- package/dist/commands/merchant.js.map +1 -0
- package/dist/commands/pay.d.ts +10 -0
- package/dist/commands/pay.d.ts.map +1 -0
- package/dist/commands/pay.js +112 -0
- package/dist/commands/pay.js.map +1 -0
- package/dist/commands/provider.d.ts +6 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +74 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/server.d.ts +8 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +92 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/commands/template.d.ts +8 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +161 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/transaction.d.ts +6 -0
- package/dist/commands/transaction.d.ts.map +1 -0
- package/dist/commands/transaction.js +72 -0
- package/dist/commands/transaction.js.map +1 -0
- package/dist/commands/wise.d.ts +8 -0
- package/dist/commands/wise.d.ts.map +1 -0
- package/dist/commands/wise.js +240 -0
- package/dist/commands/wise.js.map +1 -0
- package/dist/core/config.d.ts +40 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +201 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/template-engine.d.ts +27 -0
- package/dist/core/template-engine.d.ts.map +1 -0
- package/dist/core/template-engine.js +410 -0
- package/dist/core/template-engine.js.map +1 -0
- package/dist/core/transaction.d.ts +31 -0
- package/dist/core/transaction.d.ts.map +1 -0
- package/dist/core/transaction.js +214 -0
- package/dist/core/transaction.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/server/server.d.ts +14 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +120 -0
- package/dist/server/server.js.map +1 -0
- package/dist/types/index.d.ts +141 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/logo.png +0 -0
- package/package.json +78 -0
- package/src/api/bunq.ts +257 -0
- package/src/api/wise.ts +204 -0
- package/src/cli.ts +67 -0
- package/src/commands/bunq.ts +223 -0
- package/src/commands/config.ts +72 -0
- package/src/commands/emergency.ts +94 -0
- package/src/commands/limits.ts +126 -0
- package/src/commands/merchant.ts +39 -0
- package/src/commands/pay.ts +109 -0
- package/src/commands/provider.ts +75 -0
- package/src/commands/server.ts +59 -0
- package/src/commands/template.ts +172 -0
- package/src/commands/transaction.ts +66 -0
- package/src/commands/wise.ts +279 -0
- package/src/core/config.ts +202 -0
- package/src/core/template-engine.ts +454 -0
- package/src/core/transaction.ts +228 -0
- package/src/index.ts +14 -0
- package/src/server/server.ts +131 -0
- package/src/types/index.ts +178 -0
- package/tsconfig.json +23 -0
- package/verified-merchants.json +63 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment Skill - Bunq API Client
|
|
3
|
+
*
|
|
4
|
+
* Handles all Bunq API interactions
|
|
5
|
+
*/
|
|
6
|
+
import { BunqConfig } from '../types';
|
|
7
|
+
export declare class BunqClient {
|
|
8
|
+
private client;
|
|
9
|
+
private config;
|
|
10
|
+
private baseURL;
|
|
11
|
+
constructor(config: BunqConfig);
|
|
12
|
+
private generateRequestId;
|
|
13
|
+
getUser(userId: string): Promise<any>;
|
|
14
|
+
getMonetaryAccounts(userId: string): Promise<any>;
|
|
15
|
+
getMonetaryAccount(userId: string, accountId: string): Promise<any>;
|
|
16
|
+
getAccountBalance(userId: string, accountId: string): Promise<any>;
|
|
17
|
+
createPayment(userId: string, accountId: string, amount: string, currency: string, counterpartyIban: string, counterpartyName: string, description: string): Promise<any>;
|
|
18
|
+
getPayments(userId: string, accountId: string, limit?: number): Promise<any>;
|
|
19
|
+
getPayment(userId: string, accountId: string, paymentId: string): Promise<any>;
|
|
20
|
+
createRequestInquiry(userId: string, accountId: string, amount: string, currency: string, counterpartyAlias: any, description: string, allowBunqme?: boolean): Promise<any>;
|
|
21
|
+
getRequestInquiries(userId: string, accountId: string): Promise<any>;
|
|
22
|
+
getRequestInquiry(userId: string, accountId: string, inquiryId: string): Promise<any>;
|
|
23
|
+
cancelRequestInquiry(userId: string, accountId: string, inquiryId: string): Promise<any>;
|
|
24
|
+
createDraftPayment(userId: string, accountId: string, payments: any[]): Promise<any>;
|
|
25
|
+
getDraftPayments(userId: string, accountId: string): Promise<any>;
|
|
26
|
+
deleteDraftPayment(userId: string, accountId: string, draftId: string): Promise<any>;
|
|
27
|
+
createCounterparty(userId: string, name: string, type: string, value: string): Promise<any>;
|
|
28
|
+
getCounterparties(userId: string): Promise<any>;
|
|
29
|
+
createSchedule(userId: string, accountId: string, payment: any, schedule: any): Promise<any>;
|
|
30
|
+
getSchedules(userId: string, accountId: string): Promise<any>;
|
|
31
|
+
deleteSchedule(userId: string, accountId: string, scheduleId: string): Promise<any>;
|
|
32
|
+
getCards(userId: string): Promise<any>;
|
|
33
|
+
exportStatement(userId: string, accountId: string, dateStart: string, dateEnd: string, format?: 'CSV' | 'PDF' | 'MT940'): Promise<any>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=bunq.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunq.d.ts","sourceRoot":"","sources":["../../src/api/bunq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,UAAU;IAsB9B,OAAO,CAAC,iBAAiB;IAKnB,OAAO,CAAC,MAAM,EAAE,MAAM;IAMtB,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAKlC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAMnD,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM;IAoBf,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY;IAOlE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQ/D,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,GAAG,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,OAAe;IAiBxB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAOrD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAOtE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IASzE,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,GAAG,EAAE;IASX,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAOlD,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQrE,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM;IAaT,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAMhC,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,GAAG;IAYT,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO9C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAQpE,QAAQ,CAAC,MAAM,EAAE,MAAM;IAMvB,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,KAAK,GAAG,KAAK,GAAG,OAAe;CAY1C"}
|
package/dist/api/bunq.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Bunq API Client
|
|
4
|
+
*
|
|
5
|
+
* Handles all Bunq API interactions
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.BunqClient = void 0;
|
|
12
|
+
const axios_1 = __importDefault(require("axios"));
|
|
13
|
+
class BunqClient {
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.baseURL = 'https://api.bunq.com/v1';
|
|
17
|
+
this.client = axios_1.default.create({
|
|
18
|
+
baseURL: this.baseURL,
|
|
19
|
+
headers: {
|
|
20
|
+
'X-Bunq-Client-Request-Id': this.generateRequestId(),
|
|
21
|
+
'X-Bunq-Geolocation': '0 0 0 0 NL',
|
|
22
|
+
'X-Bunq-Language': 'en_US',
|
|
23
|
+
'X-Bunq-Region': 'en_US',
|
|
24
|
+
'Content-Type': 'application/json'
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// Add API key to requests
|
|
28
|
+
this.client.interceptors.request.use((config) => {
|
|
29
|
+
config.headers['X-Bunq-Client-Authentication'] = this.config.apiKey;
|
|
30
|
+
return config;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
generateRequestId() {
|
|
34
|
+
return `${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
35
|
+
}
|
|
36
|
+
// User Management
|
|
37
|
+
async getUser(userId) {
|
|
38
|
+
const response = await this.client.get(`/user/${userId}`);
|
|
39
|
+
return response.data;
|
|
40
|
+
}
|
|
41
|
+
// Monetary Accounts
|
|
42
|
+
async getMonetaryAccounts(userId) {
|
|
43
|
+
const response = await this.client.get(`/user/${userId}/monetary-account`);
|
|
44
|
+
return response.data;
|
|
45
|
+
}
|
|
46
|
+
async getMonetaryAccount(userId, accountId) {
|
|
47
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}`);
|
|
48
|
+
return response.data;
|
|
49
|
+
}
|
|
50
|
+
async getAccountBalance(userId, accountId) {
|
|
51
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}`);
|
|
52
|
+
return response.data;
|
|
53
|
+
}
|
|
54
|
+
// Payments
|
|
55
|
+
async createPayment(userId, accountId, amount, currency, counterpartyIban, counterpartyName, description) {
|
|
56
|
+
const response = await this.client.post(`/user/${userId}/monetary-account/${accountId}/payment`, {
|
|
57
|
+
amount: {
|
|
58
|
+
value: amount,
|
|
59
|
+
currency: currency
|
|
60
|
+
},
|
|
61
|
+
counterparty_alias: {
|
|
62
|
+
type: 'IBAN',
|
|
63
|
+
value: counterpartyIban,
|
|
64
|
+
name: counterpartyName
|
|
65
|
+
},
|
|
66
|
+
description: description
|
|
67
|
+
});
|
|
68
|
+
return response.data;
|
|
69
|
+
}
|
|
70
|
+
async getPayments(userId, accountId, limit = 100) {
|
|
71
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}/payment?count=${limit}`);
|
|
72
|
+
return response.data;
|
|
73
|
+
}
|
|
74
|
+
async getPayment(userId, accountId, paymentId) {
|
|
75
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}/payment/${paymentId}`);
|
|
76
|
+
return response.data;
|
|
77
|
+
}
|
|
78
|
+
// Request Inquiries (Payment Requests)
|
|
79
|
+
async createRequestInquiry(userId, accountId, amount, currency, counterpartyAlias, description, allowBunqme = false) {
|
|
80
|
+
const response = await this.client.post(`/user/${userId}/monetary-account/${accountId}/request-inquiry`, {
|
|
81
|
+
amount_inquired: {
|
|
82
|
+
value: amount,
|
|
83
|
+
currency: currency
|
|
84
|
+
},
|
|
85
|
+
counterparty_alias: counterpartyAlias,
|
|
86
|
+
description: description,
|
|
87
|
+
allow_bunqme: allowBunqme
|
|
88
|
+
});
|
|
89
|
+
return response.data;
|
|
90
|
+
}
|
|
91
|
+
async getRequestInquiries(userId, accountId) {
|
|
92
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}/request-inquiry`);
|
|
93
|
+
return response.data;
|
|
94
|
+
}
|
|
95
|
+
async getRequestInquiry(userId, accountId, inquiryId) {
|
|
96
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}/request-inquiry/${inquiryId}`);
|
|
97
|
+
return response.data;
|
|
98
|
+
}
|
|
99
|
+
async cancelRequestInquiry(userId, accountId, inquiryId) {
|
|
100
|
+
const response = await this.client.put(`/user/${userId}/monetary-account/${accountId}/request-inquiry/${inquiryId}`, { status: 'CANCELLED' });
|
|
101
|
+
return response.data;
|
|
102
|
+
}
|
|
103
|
+
// Draft Payments
|
|
104
|
+
async createDraftPayment(userId, accountId, payments) {
|
|
105
|
+
const response = await this.client.post(`/user/${userId}/monetary-account/${accountId}/draft-payment`, { payments });
|
|
106
|
+
return response.data;
|
|
107
|
+
}
|
|
108
|
+
async getDraftPayments(userId, accountId) {
|
|
109
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}/draft-payment`);
|
|
110
|
+
return response.data;
|
|
111
|
+
}
|
|
112
|
+
async deleteDraftPayment(userId, accountId, draftId) {
|
|
113
|
+
const response = await this.client.delete(`/user/${userId}/monetary-account/${accountId}/draft-payment/${draftId}`);
|
|
114
|
+
return response.data;
|
|
115
|
+
}
|
|
116
|
+
// Counterparties
|
|
117
|
+
async createCounterparty(userId, name, type, value) {
|
|
118
|
+
const response = await this.client.post(`/user/${userId}/counterparty`, {
|
|
119
|
+
name,
|
|
120
|
+
alias: {
|
|
121
|
+
type,
|
|
122
|
+
value,
|
|
123
|
+
name
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return response.data;
|
|
127
|
+
}
|
|
128
|
+
async getCounterparties(userId) {
|
|
129
|
+
const response = await this.client.get(`/user/${userId}/counterparty`);
|
|
130
|
+
return response.data;
|
|
131
|
+
}
|
|
132
|
+
// Schedules (Recurring Payments)
|
|
133
|
+
async createSchedule(userId, accountId, payment, schedule) {
|
|
134
|
+
const response = await this.client.post(`/user/${userId}/monetary-account/${accountId}/schedule`, {
|
|
135
|
+
payment,
|
|
136
|
+
schedule
|
|
137
|
+
});
|
|
138
|
+
return response.data;
|
|
139
|
+
}
|
|
140
|
+
async getSchedules(userId, accountId) {
|
|
141
|
+
const response = await this.client.get(`/user/${userId}/monetary-account/${accountId}/schedule`);
|
|
142
|
+
return response.data;
|
|
143
|
+
}
|
|
144
|
+
async deleteSchedule(userId, accountId, scheduleId) {
|
|
145
|
+
const response = await this.client.delete(`/user/${userId}/monetary-account/${accountId}/schedule/${scheduleId}`);
|
|
146
|
+
return response.data;
|
|
147
|
+
}
|
|
148
|
+
// Cards
|
|
149
|
+
async getCards(userId) {
|
|
150
|
+
const response = await this.client.get(`/user/${userId}/card`);
|
|
151
|
+
return response.data;
|
|
152
|
+
}
|
|
153
|
+
// Export
|
|
154
|
+
async exportStatement(userId, accountId, dateStart, dateEnd, format = 'CSV') {
|
|
155
|
+
const response = await this.client.post(`/user/${userId}/monetary-account/${accountId}/export-statement`, {
|
|
156
|
+
date_start: dateStart,
|
|
157
|
+
date_end: dateEnd,
|
|
158
|
+
regional_format: format
|
|
159
|
+
});
|
|
160
|
+
return response.data;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.BunqClient = BunqClient;
|
|
164
|
+
//# sourceMappingURL=bunq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunq.js","sourceRoot":"","sources":["../../src/api/bunq.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment Skill - Wise API Client
|
|
3
|
+
*
|
|
4
|
+
* Handles all Wise API interactions
|
|
5
|
+
*/
|
|
6
|
+
import { WiseConfig } from '../types';
|
|
7
|
+
export declare class WiseClient {
|
|
8
|
+
private client;
|
|
9
|
+
private config;
|
|
10
|
+
constructor(config: WiseConfig);
|
|
11
|
+
getProfiles(): Promise<any>;
|
|
12
|
+
getProfile(profileId: string): Promise<any>;
|
|
13
|
+
getBalances(profileId: string): Promise<any>;
|
|
14
|
+
getBalance(profileId: string, balanceId: string): Promise<any>;
|
|
15
|
+
createQuote(profileId: string, sourceCurrency: string, targetCurrency: string, sourceAmount?: number, targetAmount?: number): Promise<any>;
|
|
16
|
+
getQuote(profileId: string, quoteId: string): Promise<any>;
|
|
17
|
+
createRecipient(profileId: string, currency: string, accountHolderName: string, details: any): Promise<any>;
|
|
18
|
+
getRecipients(profileId: string): Promise<any>;
|
|
19
|
+
getRecipient(accountId: string): Promise<any>;
|
|
20
|
+
deleteRecipient(accountId: string): Promise<any>;
|
|
21
|
+
createTransfer(profileId: string, quoteId: string, targetAccountId: string, reference?: string): Promise<any>;
|
|
22
|
+
getTransfer(transferId: string): Promise<any>;
|
|
23
|
+
cancelTransfer(transferId: string): Promise<any>;
|
|
24
|
+
getTransfers(profileId: string, status?: string, limit?: number): Promise<any>;
|
|
25
|
+
getTransferRequirements(profileId: string, quoteId: string, targetAccountId: string): Promise<any>;
|
|
26
|
+
fundTransfer(profileId: string, transferId: string): Promise<any>;
|
|
27
|
+
getBankAccountDetails(profileId: string, balanceId: string): Promise<any>;
|
|
28
|
+
createWebhook(profileId: string, name: string, triggerOn: string[], url: string): Promise<any>;
|
|
29
|
+
getWebhooks(profileId: string): Promise<any>;
|
|
30
|
+
deleteWebhook(profileId: string, subscriptionId: string): Promise<any>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=wise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wise.d.ts","sourceRoot":"","sources":["../../src/api/wise.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAgBxB,WAAW;IAKX,UAAU,CAAC,SAAS,EAAE,MAAM;IAM5B,WAAW,CAAC,SAAS,EAAE,MAAM;IAK7B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM/C,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM;IAiBjB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM3C,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,GAAG;IAYR,aAAa,CAAC,SAAS,EAAE,MAAM;IAK/B,YAAY,CAAC,SAAS,EAAE,MAAM;IAK9B,eAAe,CAAC,SAAS,EAAE,MAAM;IAMjC,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM;IAed,WAAW,CAAC,UAAU,EAAE,MAAM;IAK9B,cAAc,CAAC,UAAU,EAAE,MAAM;IAKjC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY;IAUpE,uBAAuB,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM;IAUnB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IASlD,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQ1D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAY/E,WAAW,CAAC,SAAS,EAAE,MAAM;IAK7B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAM9D"}
|
package/dist/api/wise.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Wise API Client
|
|
4
|
+
*
|
|
5
|
+
* Handles all Wise API interactions
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.WiseClient = void 0;
|
|
12
|
+
const axios_1 = __importDefault(require("axios"));
|
|
13
|
+
class WiseClient {
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
const baseURL = config.environment === 'production'
|
|
17
|
+
? 'https://api.wise.com'
|
|
18
|
+
: 'https://api.sandbox.transferwise.tech';
|
|
19
|
+
this.client = axios_1.default.create({
|
|
20
|
+
baseURL,
|
|
21
|
+
headers: {
|
|
22
|
+
'Authorization': `Bearer ${config.apiKey}`,
|
|
23
|
+
'Content-Type': 'application/json'
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
// Profile Management
|
|
28
|
+
async getProfiles() {
|
|
29
|
+
const response = await this.client.get('/v2/profiles');
|
|
30
|
+
return response.data;
|
|
31
|
+
}
|
|
32
|
+
async getProfile(profileId) {
|
|
33
|
+
const response = await this.client.get(`/v2/profiles/${profileId}`);
|
|
34
|
+
return response.data;
|
|
35
|
+
}
|
|
36
|
+
// Balance Management
|
|
37
|
+
async getBalances(profileId) {
|
|
38
|
+
const response = await this.client.get(`/v4/profiles/${profileId}/balances`);
|
|
39
|
+
return response.data;
|
|
40
|
+
}
|
|
41
|
+
async getBalance(profileId, balanceId) {
|
|
42
|
+
const response = await this.client.get(`/v4/profiles/${profileId}/balances/${balanceId}`);
|
|
43
|
+
return response.data;
|
|
44
|
+
}
|
|
45
|
+
// Quote Management
|
|
46
|
+
async createQuote(profileId, sourceCurrency, targetCurrency, sourceAmount, targetAmount) {
|
|
47
|
+
const body = {
|
|
48
|
+
sourceCurrency,
|
|
49
|
+
targetCurrency
|
|
50
|
+
};
|
|
51
|
+
if (sourceAmount) {
|
|
52
|
+
body.sourceAmount = sourceAmount;
|
|
53
|
+
}
|
|
54
|
+
else if (targetAmount) {
|
|
55
|
+
body.targetAmount = targetAmount;
|
|
56
|
+
}
|
|
57
|
+
const response = await this.client.post(`/v3/profiles/${profileId}/quotes`, body);
|
|
58
|
+
return response.data;
|
|
59
|
+
}
|
|
60
|
+
async getQuote(profileId, quoteId) {
|
|
61
|
+
const response = await this.client.get(`/v3/profiles/${profileId}/quotes/${quoteId}`);
|
|
62
|
+
return response.data;
|
|
63
|
+
}
|
|
64
|
+
// Recipient Management
|
|
65
|
+
async createRecipient(profileId, currency, accountHolderName, details) {
|
|
66
|
+
const response = await this.client.post(`/v1/accounts`, {
|
|
67
|
+
profile: profileId,
|
|
68
|
+
currency,
|
|
69
|
+
type: 'iban',
|
|
70
|
+
accountHolderName,
|
|
71
|
+
details
|
|
72
|
+
});
|
|
73
|
+
return response.data;
|
|
74
|
+
}
|
|
75
|
+
async getRecipients(profileId) {
|
|
76
|
+
const response = await this.client.get(`/v1/accounts?profile=${profileId}`);
|
|
77
|
+
return response.data;
|
|
78
|
+
}
|
|
79
|
+
async getRecipient(accountId) {
|
|
80
|
+
const response = await this.client.get(`/v1/accounts/${accountId}`);
|
|
81
|
+
return response.data;
|
|
82
|
+
}
|
|
83
|
+
async deleteRecipient(accountId) {
|
|
84
|
+
const response = await this.client.delete(`/v1/accounts/${accountId}`);
|
|
85
|
+
return response.data;
|
|
86
|
+
}
|
|
87
|
+
// Transfer Management
|
|
88
|
+
async createTransfer(profileId, quoteId, targetAccountId, reference) {
|
|
89
|
+
const body = {
|
|
90
|
+
targetAccount: targetAccountId,
|
|
91
|
+
quoteUuid: quoteId
|
|
92
|
+
};
|
|
93
|
+
if (reference) {
|
|
94
|
+
body.reference = reference;
|
|
95
|
+
}
|
|
96
|
+
const response = await this.client.post(`/v1/transfers`, body);
|
|
97
|
+
return response.data;
|
|
98
|
+
}
|
|
99
|
+
async getTransfer(transferId) {
|
|
100
|
+
const response = await this.client.get(`/v1/transfers/${transferId}`);
|
|
101
|
+
return response.data;
|
|
102
|
+
}
|
|
103
|
+
async cancelTransfer(transferId) {
|
|
104
|
+
const response = await this.client.put(`/v1/transfers/${transferId}/cancel`);
|
|
105
|
+
return response.data;
|
|
106
|
+
}
|
|
107
|
+
async getTransfers(profileId, status, limit = 100) {
|
|
108
|
+
const params = { profile: profileId, limit };
|
|
109
|
+
if (status) {
|
|
110
|
+
params.status = status;
|
|
111
|
+
}
|
|
112
|
+
const response = await this.client.get(`/v1/transfers`, { params });
|
|
113
|
+
return response.data;
|
|
114
|
+
}
|
|
115
|
+
// Transfer Requirements
|
|
116
|
+
async getTransferRequirements(profileId, quoteId, targetAccountId) {
|
|
117
|
+
const response = await this.client.post(`/v1/transfer-requirements`, {
|
|
118
|
+
targetAccount: targetAccountId,
|
|
119
|
+
quoteUuid: quoteId
|
|
120
|
+
});
|
|
121
|
+
return response.data;
|
|
122
|
+
}
|
|
123
|
+
// Fund Transfer
|
|
124
|
+
async fundTransfer(profileId, transferId) {
|
|
125
|
+
const response = await this.client.post(`/v3/profiles/${profileId}/transfers/${transferId}/payments`, { type: 'BALANCE' });
|
|
126
|
+
return response.data;
|
|
127
|
+
}
|
|
128
|
+
// Bank Account Details
|
|
129
|
+
async getBankAccountDetails(profileId, balanceId) {
|
|
130
|
+
const response = await this.client.get(`/v4/profiles/${profileId}/balances/${balanceId}/bank-details`);
|
|
131
|
+
return response.data;
|
|
132
|
+
}
|
|
133
|
+
// Webhook Management
|
|
134
|
+
async createWebhook(profileId, name, triggerOn, url) {
|
|
135
|
+
const response = await this.client.post(`/v3/profiles/${profileId}/subscriptions`, {
|
|
136
|
+
name,
|
|
137
|
+
triggerOn,
|
|
138
|
+
delivery: {
|
|
139
|
+
version: '2.0.0',
|
|
140
|
+
url
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
return response.data;
|
|
144
|
+
}
|
|
145
|
+
async getWebhooks(profileId) {
|
|
146
|
+
const response = await this.client.get(`/v3/profiles/${profileId}/subscriptions`);
|
|
147
|
+
return response.data;
|
|
148
|
+
}
|
|
149
|
+
async deleteWebhook(profileId, subscriptionId) {
|
|
150
|
+
const response = await this.client.delete(`/v3/profiles/${profileId}/subscriptions/${subscriptionId}`);
|
|
151
|
+
return response.data;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.WiseClient = WiseClient;
|
|
155
|
+
//# sourceMappingURL=wise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wise.js","sourceRoot":"","sources":["../../src/api/wise.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Payment Skill CLI
|
|
5
|
+
*
|
|
6
|
+
* Main entry point for the payment-skill command line interface
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
const config_1 = require("./commands/config");
|
|
15
|
+
const provider_1 = require("./commands/provider");
|
|
16
|
+
const wise_1 = require("./commands/wise");
|
|
17
|
+
const bunq_1 = require("./commands/bunq");
|
|
18
|
+
const transaction_1 = require("./commands/transaction");
|
|
19
|
+
const merchant_1 = require("./commands/merchant");
|
|
20
|
+
const limits_1 = require("./commands/limits");
|
|
21
|
+
const emergency_1 = require("./commands/emergency");
|
|
22
|
+
const server_1 = require("./commands/server");
|
|
23
|
+
const template_1 = require("./commands/template");
|
|
24
|
+
const pay_1 = require("./commands/pay");
|
|
25
|
+
const program = new commander_1.Command();
|
|
26
|
+
program
|
|
27
|
+
.name('payment-skill')
|
|
28
|
+
.description('Self-hosted payment orchestration for OpenClaw')
|
|
29
|
+
.version('1.0.0')
|
|
30
|
+
.option('-v, --verbose', 'Enable verbose output')
|
|
31
|
+
.option('-j, --json', 'Output in JSON format')
|
|
32
|
+
.option('-c, --config <path>', 'Path to config file')
|
|
33
|
+
.option('--dry-run', 'Simulate without executing')
|
|
34
|
+
.hook('preAction', (thisCommand) => {
|
|
35
|
+
const options = thisCommand.opts();
|
|
36
|
+
if (options.verbose) {
|
|
37
|
+
console.log(chalk_1.default.gray('Verbose mode enabled'));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
// Add command groups
|
|
41
|
+
program.addCommand(config_1.configCommands);
|
|
42
|
+
program.addCommand(provider_1.providerCommands);
|
|
43
|
+
program.addCommand(wise_1.wiseCommands);
|
|
44
|
+
program.addCommand(bunq_1.bunqCommands);
|
|
45
|
+
program.addCommand(transaction_1.transactionCommands);
|
|
46
|
+
program.addCommand(merchant_1.merchantCommands);
|
|
47
|
+
program.addCommand(limits_1.limitCommands);
|
|
48
|
+
program.addCommand(emergency_1.emergencyCommands);
|
|
49
|
+
program.addCommand(server_1.serverCommands);
|
|
50
|
+
program.addCommand(template_1.templateCommands);
|
|
51
|
+
program.addCommand(pay_1.payCommand);
|
|
52
|
+
// Global error handler
|
|
53
|
+
program.exitOverride();
|
|
54
|
+
try {
|
|
55
|
+
program.parse();
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error.code === 'commander.help') {
|
|
59
|
+
process.exit(0);
|
|
60
|
+
}
|
|
61
|
+
else if (error.code === 'commander.version') {
|
|
62
|
+
process.exit(0);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.error(chalk_1.default.red('Error:'), error.message);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAmD;AACnD,kDAAuD;AACvD,0CAA+C;AAC/C,0CAA+C;AAC/C,wDAA6D;AAC7D,kDAAuD;AACvD,8CAAkD;AAClD,oDAAyD;AACzD,8CAAmD;AACnD,kDAAuD;AACvD,wCAA4C;AAE5C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;KACjD,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACjC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,qBAAqB;AACrB,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,2BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,mBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,mBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,iCAAmB,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,2BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,6BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,2BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAE/B,uBAAuB;AACvB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,IAAI,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAAC,OAAO,KAAU,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bunq.d.ts","sourceRoot":"","sources":["../../src/commands/bunq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,YAAY,SACY,CAAC"}
|