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.
Files changed (110) hide show
  1. package/LICENSE +62 -0
  2. package/README.md +545 -0
  3. package/SKILL.md +99 -0
  4. package/SUPPORT.md +153 -0
  5. package/bin/payment-skill.js +2 -0
  6. package/dashboard.html +669 -0
  7. package/dist/api/bunq.d.ts +35 -0
  8. package/dist/api/bunq.d.ts.map +1 -0
  9. package/dist/api/bunq.js +164 -0
  10. package/dist/api/bunq.js.map +1 -0
  11. package/dist/api/wise.d.ts +32 -0
  12. package/dist/api/wise.d.ts.map +1 -0
  13. package/dist/api/wise.js +155 -0
  14. package/dist/api/wise.js.map +1 -0
  15. package/dist/cli.d.ts +8 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +69 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/commands/bunq.d.ts +8 -0
  20. package/dist/commands/bunq.d.ts.map +1 -0
  21. package/dist/commands/bunq.js +193 -0
  22. package/dist/commands/bunq.js.map +1 -0
  23. package/dist/commands/config.d.ts +8 -0
  24. package/dist/commands/config.d.ts.map +1 -0
  25. package/dist/commands/config.js +70 -0
  26. package/dist/commands/config.js.map +1 -0
  27. package/dist/commands/emergency.d.ts +8 -0
  28. package/dist/commands/emergency.d.ts.map +1 -0
  29. package/dist/commands/emergency.js +85 -0
  30. package/dist/commands/emergency.js.map +1 -0
  31. package/dist/commands/limits.d.ts +6 -0
  32. package/dist/commands/limits.d.ts.map +1 -0
  33. package/dist/commands/limits.js +125 -0
  34. package/dist/commands/limits.js.map +1 -0
  35. package/dist/commands/merchant.d.ts +6 -0
  36. package/dist/commands/merchant.d.ts.map +1 -0
  37. package/dist/commands/merchant.js +41 -0
  38. package/dist/commands/merchant.js.map +1 -0
  39. package/dist/commands/pay.d.ts +10 -0
  40. package/dist/commands/pay.d.ts.map +1 -0
  41. package/dist/commands/pay.js +112 -0
  42. package/dist/commands/pay.js.map +1 -0
  43. package/dist/commands/provider.d.ts +6 -0
  44. package/dist/commands/provider.d.ts.map +1 -0
  45. package/dist/commands/provider.js +74 -0
  46. package/dist/commands/provider.js.map +1 -0
  47. package/dist/commands/server.d.ts +8 -0
  48. package/dist/commands/server.d.ts.map +1 -0
  49. package/dist/commands/server.js +92 -0
  50. package/dist/commands/server.js.map +1 -0
  51. package/dist/commands/template.d.ts +8 -0
  52. package/dist/commands/template.d.ts.map +1 -0
  53. package/dist/commands/template.js +161 -0
  54. package/dist/commands/template.js.map +1 -0
  55. package/dist/commands/transaction.d.ts +6 -0
  56. package/dist/commands/transaction.d.ts.map +1 -0
  57. package/dist/commands/transaction.js +72 -0
  58. package/dist/commands/transaction.js.map +1 -0
  59. package/dist/commands/wise.d.ts +8 -0
  60. package/dist/commands/wise.d.ts.map +1 -0
  61. package/dist/commands/wise.js +240 -0
  62. package/dist/commands/wise.js.map +1 -0
  63. package/dist/core/config.d.ts +40 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +201 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/template-engine.d.ts +27 -0
  68. package/dist/core/template-engine.d.ts.map +1 -0
  69. package/dist/core/template-engine.js +410 -0
  70. package/dist/core/template-engine.js.map +1 -0
  71. package/dist/core/transaction.d.ts +31 -0
  72. package/dist/core/transaction.d.ts.map +1 -0
  73. package/dist/core/transaction.js +214 -0
  74. package/dist/core/transaction.js.map +1 -0
  75. package/dist/index.d.ts +12 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +36 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/server/server.d.ts +14 -0
  80. package/dist/server/server.d.ts.map +1 -0
  81. package/dist/server/server.js +120 -0
  82. package/dist/server/server.js.map +1 -0
  83. package/dist/types/index.d.ts +141 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +8 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/logo.png +0 -0
  88. package/package.json +78 -0
  89. package/src/api/bunq.ts +257 -0
  90. package/src/api/wise.ts +204 -0
  91. package/src/cli.ts +67 -0
  92. package/src/commands/bunq.ts +223 -0
  93. package/src/commands/config.ts +72 -0
  94. package/src/commands/emergency.ts +94 -0
  95. package/src/commands/limits.ts +126 -0
  96. package/src/commands/merchant.ts +39 -0
  97. package/src/commands/pay.ts +109 -0
  98. package/src/commands/provider.ts +75 -0
  99. package/src/commands/server.ts +59 -0
  100. package/src/commands/template.ts +172 -0
  101. package/src/commands/transaction.ts +66 -0
  102. package/src/commands/wise.ts +279 -0
  103. package/src/core/config.ts +202 -0
  104. package/src/core/template-engine.ts +454 -0
  105. package/src/core/transaction.ts +228 -0
  106. package/src/index.ts +14 -0
  107. package/src/server/server.ts +131 -0
  108. package/src/types/index.ts +178 -0
  109. package/tsconfig.json +23 -0
  110. 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"}
@@ -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"}
@@ -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,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Payment Skill CLI
4
+ *
5
+ * Main entry point for the payment-skill command line interface
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=cli.d.ts.map
@@ -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
@@ -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,8 @@
1
+ /**
2
+ * Payment Skill - Bunq Commands
3
+ *
4
+ * Bunq API CLI commands
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const bunqCommands: Command;
8
+ //# sourceMappingURL=bunq.d.ts.map
@@ -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"}