payment-skill 1.1.0 → 1.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,GAAE,MAAa;IAO/B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,WAAW;IAoFnB,KAAK,IAAI,IAAI;CAMd"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,GAAE,MAAa;IAO/B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,WAAW;IAkMnB,KAAK,IAAI,IAAI;CAMd"}
@@ -77,13 +77,108 @@ class PaymentSkillServer {
77
77
  config_1.configManager.deactivateEmergencyStop();
78
78
  res.json({ success: true, message: 'Emergency stop deactivated' });
79
79
  });
80
- // Get limits
80
+ // Get all limits and controls
81
81
  this.app.get('/api/limits', (req, res) => {
82
82
  res.json({
83
83
  limits: config_1.configManager.getLimits(),
84
- timeWindow: config_1.configManager.getTimeWindow()
84
+ timeWindow: config_1.configManager.getTimeWindow(),
85
+ cumulativeBudgets: config_1.configManager.getCumulativeBudgets(),
86
+ domainControls: config_1.configManager.getDomainControls(),
87
+ geographyControls: config_1.configManager.getGeographyControls(),
88
+ categoryControls: config_1.configManager.getCategoryControls()
85
89
  });
86
90
  });
91
+ // Update basic limits
92
+ this.app.post('/api/limits', (req, res) => {
93
+ const { perTransaction, daily, weekly, monthly, maxTransactionsPerHour } = req.body;
94
+ config_1.configManager.setLimits({ perTransaction, daily, weekly, monthly, maxTransactionsPerHour });
95
+ res.json({ success: true, message: 'Limits updated' });
96
+ });
97
+ // Cumulative Budgets
98
+ this.app.get('/api/limits/budgets', (req, res) => {
99
+ res.json(config_1.configManager.getCumulativeBudgets());
100
+ });
101
+ this.app.post('/api/limits/budgets', (req, res) => {
102
+ config_1.configManager.addCumulativeBudget(req.body);
103
+ res.json({ success: true, message: 'Budget added' });
104
+ });
105
+ this.app.delete('/api/limits/budgets/:index', (req, res) => {
106
+ config_1.configManager.removeCumulativeBudget(parseInt(req.params.index));
107
+ res.json({ success: true, message: 'Budget removed' });
108
+ });
109
+ // Domain Controls
110
+ this.app.get('/api/limits/domains', (req, res) => {
111
+ res.json(config_1.configManager.getDomainControls());
112
+ });
113
+ this.app.post('/api/limits/domains', (req, res) => {
114
+ const { mode, domain } = req.body;
115
+ if (mode) {
116
+ const controls = config_1.configManager.getDomainControls();
117
+ controls.mode = mode;
118
+ config_1.configManager.setDomainControls(controls);
119
+ }
120
+ if (domain) {
121
+ config_1.configManager.addDomain(domain);
122
+ }
123
+ res.json({ success: true, message: 'Domain controls updated' });
124
+ });
125
+ this.app.delete('/api/limits/domains/:domain', (req, res) => {
126
+ config_1.configManager.removeDomain(req.params.domain);
127
+ res.json({ success: true, message: 'Domain removed' });
128
+ });
129
+ // Time Window
130
+ this.app.get('/api/limits/time-window', (req, res) => {
131
+ res.json(config_1.configManager.getTimeWindow());
132
+ });
133
+ this.app.post('/api/limits/time-window', (req, res) => {
134
+ config_1.configManager.setTimeWindow(req.body);
135
+ res.json({ success: true, message: 'Time window updated' });
136
+ });
137
+ // Geography Controls
138
+ this.app.get('/api/limits/geo', (req, res) => {
139
+ res.json(config_1.configManager.getGeographyControls());
140
+ });
141
+ this.app.post('/api/limits/geo', (req, res) => {
142
+ const { enabled, mode, country } = req.body;
143
+ const controls = config_1.configManager.getGeographyControls();
144
+ if (enabled !== undefined)
145
+ controls.enabled = enabled;
146
+ if (mode)
147
+ controls.mode = mode;
148
+ if (country) {
149
+ if (!controls.countries.includes(country)) {
150
+ controls.countries.push(country);
151
+ }
152
+ }
153
+ config_1.configManager.setGeographyControls(controls);
154
+ res.json({ success: true, message: 'Geography controls updated' });
155
+ });
156
+ this.app.delete('/api/limits/geo/:country', (req, res) => {
157
+ const controls = config_1.configManager.getGeographyControls();
158
+ controls.countries = controls.countries.filter((c) => c !== req.params.country);
159
+ config_1.configManager.setGeographyControls(controls);
160
+ res.json({ success: true, message: 'Country removed' });
161
+ });
162
+ // Category Controls
163
+ this.app.get('/api/limits/categories', (req, res) => {
164
+ res.json(config_1.configManager.getCategoryControls());
165
+ });
166
+ this.app.post('/api/limits/categories/block', (req, res) => {
167
+ config_1.configManager.addBlockedCategory(req.body.category);
168
+ res.json({ success: true, message: 'Category blocked' });
169
+ });
170
+ this.app.post('/api/limits/categories/unblock', (req, res) => {
171
+ config_1.configManager.removeBlockedCategory(req.body.category);
172
+ res.json({ success: true, message: 'Category unblocked' });
173
+ });
174
+ this.app.post('/api/limits/categories/allow', (req, res) => {
175
+ config_1.configManager.addAllowedCategory(req.body.category);
176
+ res.json({ success: true, message: 'Category added to allowed list' });
177
+ });
178
+ this.app.post('/api/limits/categories/disallow', (req, res) => {
179
+ config_1.configManager.removeAllowedCategory(req.body.category);
180
+ res.json({ success: true, message: 'Category removed from allowed list' });
181
+ });
87
182
  // Webhook endpoints
88
183
  this.app.post('/webhooks/wise', (req, res) => {
89
184
  console.log('Wise webhook received:', req.body);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payment-skill",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Self-hosted payment orchestration app for OpenClaw - pay from your bank account to merchants via API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -84,14 +84,124 @@ export class PaymentSkillServer {
84
84
  res.json({ success: true, message: 'Emergency stop deactivated' });
85
85
  });
86
86
 
87
- // Get limits
87
+ // Get all limits and controls
88
88
  this.app.get('/api/limits', (req, res) => {
89
89
  res.json({
90
90
  limits: configManager.getLimits(),
91
- timeWindow: configManager.getTimeWindow()
91
+ timeWindow: configManager.getTimeWindow(),
92
+ cumulativeBudgets: configManager.getCumulativeBudgets(),
93
+ domainControls: configManager.getDomainControls(),
94
+ geographyControls: configManager.getGeographyControls(),
95
+ categoryControls: configManager.getCategoryControls()
92
96
  });
93
97
  });
94
98
 
99
+ // Update basic limits
100
+ this.app.post('/api/limits', (req, res) => {
101
+ const { perTransaction, daily, weekly, monthly, maxTransactionsPerHour } = req.body;
102
+ configManager.setLimits({ perTransaction, daily, weekly, monthly, maxTransactionsPerHour });
103
+ res.json({ success: true, message: 'Limits updated' });
104
+ });
105
+
106
+ // Cumulative Budgets
107
+ this.app.get('/api/limits/budgets', (req, res) => {
108
+ res.json(configManager.getCumulativeBudgets());
109
+ });
110
+
111
+ this.app.post('/api/limits/budgets', (req, res) => {
112
+ configManager.addCumulativeBudget(req.body);
113
+ res.json({ success: true, message: 'Budget added' });
114
+ });
115
+
116
+ this.app.delete('/api/limits/budgets/:index', (req, res) => {
117
+ configManager.removeCumulativeBudget(parseInt(req.params.index));
118
+ res.json({ success: true, message: 'Budget removed' });
119
+ });
120
+
121
+ // Domain Controls
122
+ this.app.get('/api/limits/domains', (req, res) => {
123
+ res.json(configManager.getDomainControls());
124
+ });
125
+
126
+ this.app.post('/api/limits/domains', (req, res) => {
127
+ const { mode, domain } = req.body;
128
+ if (mode) {
129
+ const controls = configManager.getDomainControls();
130
+ controls.mode = mode;
131
+ configManager.setDomainControls(controls);
132
+ }
133
+ if (domain) {
134
+ configManager.addDomain(domain);
135
+ }
136
+ res.json({ success: true, message: 'Domain controls updated' });
137
+ });
138
+
139
+ this.app.delete('/api/limits/domains/:domain', (req, res) => {
140
+ configManager.removeDomain(req.params.domain);
141
+ res.json({ success: true, message: 'Domain removed' });
142
+ });
143
+
144
+ // Time Window
145
+ this.app.get('/api/limits/time-window', (req, res) => {
146
+ res.json(configManager.getTimeWindow());
147
+ });
148
+
149
+ this.app.post('/api/limits/time-window', (req, res) => {
150
+ configManager.setTimeWindow(req.body);
151
+ res.json({ success: true, message: 'Time window updated' });
152
+ });
153
+
154
+ // Geography Controls
155
+ this.app.get('/api/limits/geo', (req, res) => {
156
+ res.json(configManager.getGeographyControls());
157
+ });
158
+
159
+ this.app.post('/api/limits/geo', (req, res) => {
160
+ const { enabled, mode, country } = req.body;
161
+ const controls = configManager.getGeographyControls();
162
+ if (enabled !== undefined) controls.enabled = enabled;
163
+ if (mode) controls.mode = mode;
164
+ if (country) {
165
+ if (!controls.countries.includes(country)) {
166
+ controls.countries.push(country);
167
+ }
168
+ }
169
+ configManager.setGeographyControls(controls);
170
+ res.json({ success: true, message: 'Geography controls updated' });
171
+ });
172
+
173
+ this.app.delete('/api/limits/geo/:country', (req, res) => {
174
+ const controls = configManager.getGeographyControls();
175
+ controls.countries = controls.countries.filter((c: string) => c !== req.params.country);
176
+ configManager.setGeographyControls(controls);
177
+ res.json({ success: true, message: 'Country removed' });
178
+ });
179
+
180
+ // Category Controls
181
+ this.app.get('/api/limits/categories', (req, res) => {
182
+ res.json(configManager.getCategoryControls());
183
+ });
184
+
185
+ this.app.post('/api/limits/categories/block', (req, res) => {
186
+ configManager.addBlockedCategory(req.body.category);
187
+ res.json({ success: true, message: 'Category blocked' });
188
+ });
189
+
190
+ this.app.post('/api/limits/categories/unblock', (req, res) => {
191
+ configManager.removeBlockedCategory(req.body.category);
192
+ res.json({ success: true, message: 'Category unblocked' });
193
+ });
194
+
195
+ this.app.post('/api/limits/categories/allow', (req, res) => {
196
+ configManager.addAllowedCategory(req.body.category);
197
+ res.json({ success: true, message: 'Category added to allowed list' });
198
+ });
199
+
200
+ this.app.post('/api/limits/categories/disallow', (req, res) => {
201
+ configManager.removeAllowedCategory(req.body.category);
202
+ res.json({ success: true, message: 'Category removed from allowed list' });
203
+ });
204
+
95
205
  // Webhook endpoints
96
206
  this.app.post('/webhooks/wise', (req, res) => {
97
207
  console.log('Wise webhook received:', req.body);