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,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Pay Command
|
|
4
|
+
*
|
|
5
|
+
* Execute payment using templates - HYBRID ARCHITECTURE
|
|
6
|
+
* OpenClaw selects template and provides parameters
|
|
7
|
+
* Payment-skill executes the predefined flow
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.payCommand = void 0;
|
|
14
|
+
const commander_1 = require("commander");
|
|
15
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
16
|
+
const ora_1 = __importDefault(require("ora"));
|
|
17
|
+
const template_engine_1 = require("../core/template-engine");
|
|
18
|
+
exports.payCommand = new commander_1.Command('pay')
|
|
19
|
+
.description('Execute a payment using a template (HYBRID ARCHITECTURE)')
|
|
20
|
+
.requiredOption('-t, --template <id>', 'Template ID (e.g., wise_standard_transfer, bunq_instant_payment)')
|
|
21
|
+
.requiredOption('--amount <amount>', 'Payment amount')
|
|
22
|
+
.requiredOption('--currency <currency>', 'Currency code (EUR, USD, etc.)')
|
|
23
|
+
.option('--profile-id <id>', 'Wise profile ID')
|
|
24
|
+
.option('--user-id <id>', 'Bunq user ID')
|
|
25
|
+
.option('--account-id <id>', 'Bunq account ID')
|
|
26
|
+
.option('--recipient-id <id>', 'Recipient/account ID')
|
|
27
|
+
.option('--recipient-iban <iban>', 'Recipient IBAN')
|
|
28
|
+
.option('--recipient-name <name>', 'Recipient name')
|
|
29
|
+
.option('--reference <text>', 'Payment reference')
|
|
30
|
+
.option('--description <text>', 'Payment description')
|
|
31
|
+
.option('--dry-run', 'Show what would be executed without actually doing it')
|
|
32
|
+
.action(async (options) => {
|
|
33
|
+
const spinner = (0, ora_1.default)('Initializing payment...').start();
|
|
34
|
+
try {
|
|
35
|
+
// Get template
|
|
36
|
+
const template = template_engine_1.templateEngine.getTemplate(options.template);
|
|
37
|
+
if (!template) {
|
|
38
|
+
spinner.fail(`Template '${options.template}' not found`);
|
|
39
|
+
console.log(chalk_1.default.yellow('\nAvailable templates:'));
|
|
40
|
+
const templates = template_engine_1.templateEngine.getAllTemplates();
|
|
41
|
+
templates.forEach(t => {
|
|
42
|
+
console.log(` ${t.templateId} - ${t.description}`);
|
|
43
|
+
});
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
spinner.succeed(`Using template: ${template.templateId}`);
|
|
47
|
+
console.log(chalk_1.default.blue(`Description: ${template.description}`));
|
|
48
|
+
console.log(chalk_1.default.gray(`Merchant: ${template.merchant}`));
|
|
49
|
+
// Build parameters
|
|
50
|
+
const params = {
|
|
51
|
+
amount: options.amount,
|
|
52
|
+
currency: options.currency.toUpperCase()
|
|
53
|
+
};
|
|
54
|
+
if (options.profileId)
|
|
55
|
+
params.profileId = options.profileId;
|
|
56
|
+
if (options.userId)
|
|
57
|
+
params.userId = options.userId;
|
|
58
|
+
if (options.accountId)
|
|
59
|
+
params.accountId = options.accountId;
|
|
60
|
+
if (options.recipientId)
|
|
61
|
+
params.recipientId = options.recipientId;
|
|
62
|
+
if (options.recipientIban)
|
|
63
|
+
params.recipientIban = options.recipientIban;
|
|
64
|
+
if (options.recipientName)
|
|
65
|
+
params.recipientName = options.recipientName;
|
|
66
|
+
if (options.reference)
|
|
67
|
+
params.reference = options.reference;
|
|
68
|
+
if (options.description)
|
|
69
|
+
params.description = options.description;
|
|
70
|
+
// Show execution plan
|
|
71
|
+
console.log(chalk_1.default.blue('\nExecution Plan:'));
|
|
72
|
+
template.steps.sort((a, b) => a.order - b.order).forEach(step => {
|
|
73
|
+
console.log(` ${step.order}. ${step.name}`);
|
|
74
|
+
if (step.async) {
|
|
75
|
+
console.log(chalk_1.default.yellow(` [ASYNC - ${step.confirmation?.type || 'manual'} confirmation]`));
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
console.log(chalk_1.default.blue('\nParameters:'));
|
|
79
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
80
|
+
console.log(` ${key}: ${value}`);
|
|
81
|
+
});
|
|
82
|
+
if (options.dryRun) {
|
|
83
|
+
console.log(chalk_1.default.yellow('\n[DRY RUN - No actual payment will be made]'));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// Confirm execution
|
|
87
|
+
console.log(chalk_1.default.yellow('\n⚠️ This will execute the payment flow above.'));
|
|
88
|
+
console.log(chalk_1.default.gray('Use --dry-run to preview without executing.'));
|
|
89
|
+
// Execute template
|
|
90
|
+
const execSpinner = (0, ora_1.default)('Executing payment flow...').start();
|
|
91
|
+
try {
|
|
92
|
+
const tx = await template_engine_1.templateEngine.executeTemplate(options.template, params);
|
|
93
|
+
execSpinner.succeed(chalk_1.default.green('Payment flow completed!'));
|
|
94
|
+
console.log(chalk_1.default.green(`\n✓ Transaction ID: ${tx.id}`));
|
|
95
|
+
console.log(` Status: ${tx.status}`);
|
|
96
|
+
console.log(` Amount: ${tx.amount} ${tx.currency}`);
|
|
97
|
+
if (template.steps.some(s => s.async)) {
|
|
98
|
+
console.log(chalk_1.default.yellow('\n⚠️ Some steps are async and may require confirmation.'));
|
|
99
|
+
console.log(chalk_1.default.gray('Check status with: payment-skill transaction status ' + tx.id));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
execSpinner.fail(chalk_1.default.red('Payment failed'));
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error(chalk_1.default.red('\nError:'), error.message);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=pay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/commands/pay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/commands/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,gBAAgB,SACa,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Provider Commands
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.providerCommands = void 0;
|
|
10
|
+
const commander_1 = require("commander");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const config_1 = require("../core/config");
|
|
13
|
+
exports.providerCommands = new commander_1.Command('provider')
|
|
14
|
+
.description('Manage payment providers');
|
|
15
|
+
exports.providerCommands
|
|
16
|
+
.command('add')
|
|
17
|
+
.description('Add a payment provider')
|
|
18
|
+
.argument('<name>', 'Provider name (wise, bunq)')
|
|
19
|
+
.requiredOption('-k, --api-key <key>', 'API key')
|
|
20
|
+
.option('-e, --environment <env>', 'Environment', 'production')
|
|
21
|
+
.option('--profile-id <id>', 'Wise profile ID')
|
|
22
|
+
.action((name, options) => {
|
|
23
|
+
const provider = {
|
|
24
|
+
name,
|
|
25
|
+
apiKey: options.apiKey,
|
|
26
|
+
environment: options.environment
|
|
27
|
+
};
|
|
28
|
+
if (options.profileId) {
|
|
29
|
+
provider.profileId = options.profileId;
|
|
30
|
+
}
|
|
31
|
+
config_1.configManager.setProvider(name, provider);
|
|
32
|
+
console.log(chalk_1.default.green(`✓ Provider '${name}' added`));
|
|
33
|
+
});
|
|
34
|
+
exports.providerCommands
|
|
35
|
+
.command('list')
|
|
36
|
+
.description('List configured providers')
|
|
37
|
+
.action(() => {
|
|
38
|
+
const providers = config_1.configManager.getAllProviders();
|
|
39
|
+
console.log(chalk_1.default.blue('Configured Providers:'));
|
|
40
|
+
Object.entries(providers).forEach(([name, config]) => {
|
|
41
|
+
console.log(` ${name} - ${config.environment}`);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
exports.providerCommands
|
|
45
|
+
.command('get')
|
|
46
|
+
.description('Get provider details')
|
|
47
|
+
.argument('<name>', 'Provider name')
|
|
48
|
+
.action((name) => {
|
|
49
|
+
const provider = config_1.configManager.getProvider(name);
|
|
50
|
+
if (provider) {
|
|
51
|
+
console.log(JSON.stringify(provider, null, 2));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log(chalk_1.default.yellow(`Provider '${name}' not found`));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
exports.providerCommands
|
|
58
|
+
.command('remove')
|
|
59
|
+
.description('Remove a provider')
|
|
60
|
+
.argument('<name>', 'Provider name')
|
|
61
|
+
.action((name) => {
|
|
62
|
+
config_1.configManager.removeProvider(name);
|
|
63
|
+
console.log(chalk_1.default.green(`✓ Provider '${name}' removed`));
|
|
64
|
+
});
|
|
65
|
+
exports.providerCommands
|
|
66
|
+
.command('test')
|
|
67
|
+
.description('Test provider connection')
|
|
68
|
+
.argument('<name>', 'Provider name')
|
|
69
|
+
.action(async (name) => {
|
|
70
|
+
console.log(chalk_1.default.blue(`Testing connection to ${name}...`));
|
|
71
|
+
// Implementation would test actual connection
|
|
72
|
+
console.log(chalk_1.default.green('✓ Connection successful'));
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/commands/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SACQ,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Server Commands
|
|
4
|
+
*
|
|
5
|
+
* Server management with actual implementation
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.serverCommands = void 0;
|
|
45
|
+
const commander_1 = require("commander");
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
const server_1 = require("../server/server");
|
|
48
|
+
exports.serverCommands = new commander_1.Command('server')
|
|
49
|
+
.description('Server management');
|
|
50
|
+
exports.serverCommands
|
|
51
|
+
.command('serve', { isDefault: true })
|
|
52
|
+
.description('Start the dashboard server')
|
|
53
|
+
.option('-p, --port <port>', 'Port number', '8080')
|
|
54
|
+
.option('-h, --host <host>', 'Host address', 'localhost')
|
|
55
|
+
.action((options) => {
|
|
56
|
+
console.log(chalk_1.default.blue(`Starting Payment Skill server...`));
|
|
57
|
+
console.log(chalk_1.default.gray(`Port: ${options.port}`));
|
|
58
|
+
console.log(chalk_1.default.gray(`Host: ${options.host}`));
|
|
59
|
+
const server = new server_1.PaymentSkillServer(parseInt(options.port));
|
|
60
|
+
server.start();
|
|
61
|
+
console.log(chalk_1.default.green(`\n✓ Server started!`));
|
|
62
|
+
console.log(chalk_1.default.blue(`\nDashboard: http://${options.host}:${options.port}`));
|
|
63
|
+
console.log(chalk_1.default.gray(`API: http://${options.host}:${options.port}/api`));
|
|
64
|
+
console.log(chalk_1.default.gray(`Press Ctrl+C to stop`));
|
|
65
|
+
});
|
|
66
|
+
exports.serverCommands
|
|
67
|
+
.command('stop')
|
|
68
|
+
.description('Stop the server (not implemented - use Ctrl+C)')
|
|
69
|
+
.action(() => {
|
|
70
|
+
console.log(chalk_1.default.yellow('To stop the server, press Ctrl+C in the terminal where it\'s running'));
|
|
71
|
+
});
|
|
72
|
+
exports.serverCommands
|
|
73
|
+
.command('status')
|
|
74
|
+
.description('Check server status')
|
|
75
|
+
.option('-p, --port <port>', 'Port number', '8080')
|
|
76
|
+
.action(async (options) => {
|
|
77
|
+
try {
|
|
78
|
+
const fetch = (await Promise.resolve().then(() => __importStar(require('node-fetch')))).default;
|
|
79
|
+
const response = await fetch(`http://localhost:${options.port}/api/health`);
|
|
80
|
+
const data = await response.json();
|
|
81
|
+
if (data.status === 'ok') {
|
|
82
|
+
console.log(chalk_1.default.green('✓ Server is running'));
|
|
83
|
+
console.log(` Version: ${data.version}`);
|
|
84
|
+
console.log(` Emergency Stop: ${data.emergencyStop ? chalk_1.default.red('ACTIVE') : chalk_1.default.green('inactive')}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.log(chalk_1.default.red('✗ Server is not running'));
|
|
89
|
+
console.log(chalk_1.default.gray(` Could not connect to port ${options.port}`));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,gBAAgB,SAC4B,CAAC"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Template Commands
|
|
4
|
+
*
|
|
5
|
+
* Manage and execute payment templates
|
|
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.templateCommands = void 0;
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
const template_engine_1 = require("../core/template-engine");
|
|
15
|
+
exports.templateCommands = new commander_1.Command('template')
|
|
16
|
+
.description('Payment templates - HYBRID ARCHITECTURE');
|
|
17
|
+
exports.templateCommands
|
|
18
|
+
.command('list')
|
|
19
|
+
.description('List available templates')
|
|
20
|
+
.option('-m, --merchant <merchant>', 'Filter by merchant (wise.com, bunq.com, stripe.com)')
|
|
21
|
+
.action((options) => {
|
|
22
|
+
let templates = template_engine_1.templateEngine.getAllTemplates();
|
|
23
|
+
if (options.merchant) {
|
|
24
|
+
templates = templates.filter(t => t.merchant === options.merchant);
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk_1.default.blue(`Available Templates (${templates.length}):\n`));
|
|
27
|
+
templates.forEach(t => {
|
|
28
|
+
console.log(chalk_1.default.green(`${t.templateId}`));
|
|
29
|
+
console.log(` Merchant: ${t.merchant}`);
|
|
30
|
+
console.log(` Description: ${t.description}`);
|
|
31
|
+
console.log(` Version: ${t.version}`);
|
|
32
|
+
console.log(` Steps: ${t.steps.length}`);
|
|
33
|
+
if (t.prerequisites.apiKey === 'required') {
|
|
34
|
+
console.log(chalk_1.default.yellow(' ⚠️ Requires API key'));
|
|
35
|
+
}
|
|
36
|
+
console.log('');
|
|
37
|
+
});
|
|
38
|
+
console.log(chalk_1.default.gray('Use "payment-skill template get <id>" for details'));
|
|
39
|
+
console.log(chalk_1.default.gray('Use "payment-skill pay --template <id> ..." to execute'));
|
|
40
|
+
});
|
|
41
|
+
exports.templateCommands
|
|
42
|
+
.command('get')
|
|
43
|
+
.description('Get template details')
|
|
44
|
+
.argument('<template-id>', 'Template ID')
|
|
45
|
+
.action((templateId) => {
|
|
46
|
+
const template = template_engine_1.templateEngine.getTemplate(templateId);
|
|
47
|
+
if (!template) {
|
|
48
|
+
console.log(chalk_1.default.yellow(`Template '${templateId}' not found`));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
console.log(chalk_1.default.blue('Template Details:'));
|
|
52
|
+
console.log(` ID: ${template.templateId}`);
|
|
53
|
+
console.log(` Merchant: ${template.merchant}`);
|
|
54
|
+
console.log(` Description: ${template.description}`);
|
|
55
|
+
console.log(` Version: ${template.version}`);
|
|
56
|
+
console.log(chalk_1.default.blue('\nPrerequisites:'));
|
|
57
|
+
console.log(` API Key: ${template.prerequisites.apiKey}`);
|
|
58
|
+
if (template.prerequisites.webhookEndpoint) {
|
|
59
|
+
console.log(` Webhook: ${template.prerequisites.webhookEndpoint}`);
|
|
60
|
+
}
|
|
61
|
+
console.log(chalk_1.default.blue('\nExecution Steps:'));
|
|
62
|
+
template.steps.sort((a, b) => a.order - b.order).forEach(step => {
|
|
63
|
+
console.log(`\n ${step.order}. ${step.name}`);
|
|
64
|
+
console.log(` Command: ${step.command}`);
|
|
65
|
+
if (Object.keys(step.params).length > 0) {
|
|
66
|
+
console.log(' Parameters:');
|
|
67
|
+
Object.entries(step.params).forEach(([key, value]) => {
|
|
68
|
+
console.log(` ${key}: ${value}`);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (step.async) {
|
|
72
|
+
console.log(chalk_1.default.yellow(' [ASYNC]'));
|
|
73
|
+
if (step.confirmation) {
|
|
74
|
+
console.log(` Confirmation: ${step.confirmation.type}`);
|
|
75
|
+
if (step.confirmation.timeout) {
|
|
76
|
+
console.log(` Timeout: ${step.confirmation.timeout}s`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (step.output) {
|
|
81
|
+
console.log(' Outputs:');
|
|
82
|
+
Object.entries(step.output).forEach(([key, path]) => {
|
|
83
|
+
console.log(` ${key} -> ${path}`);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
console.log(chalk_1.default.blue('\nError Handling:'));
|
|
88
|
+
console.log(` Retry on: ${template.errorHandling.retryOn.join(', ')}`);
|
|
89
|
+
console.log(` Max retries: ${template.errorHandling.maxRetries}`);
|
|
90
|
+
if (template.errorHandling.fallback) {
|
|
91
|
+
console.log(` Fallback: ${template.errorHandling.fallback}`);
|
|
92
|
+
}
|
|
93
|
+
console.log(chalk_1.default.blue('\nExample Usage:'));
|
|
94
|
+
console.log(chalk_1.default.gray(` payment-skill pay --template ${templateId} --amount 100 --currency EUR ...`));
|
|
95
|
+
});
|
|
96
|
+
exports.templateCommands
|
|
97
|
+
.command('validate')
|
|
98
|
+
.description('Validate template parameters without executing')
|
|
99
|
+
.requiredOption('-t, --template <id>', 'Template ID')
|
|
100
|
+
.option('--amount <amount>', 'Payment amount')
|
|
101
|
+
.option('--currency <currency>', 'Currency code')
|
|
102
|
+
.option('--profile-id <id>', 'Wise profile ID')
|
|
103
|
+
.option('--user-id <id>', 'Bunq user ID')
|
|
104
|
+
.option('--account-id <id>', 'Bunq account ID')
|
|
105
|
+
.option('--recipient-id <id>', 'Recipient ID')
|
|
106
|
+
.option('--recipient-iban <iban>', 'Recipient IBAN')
|
|
107
|
+
.option('--recipient-name <name>', 'Recipient name')
|
|
108
|
+
.action((options) => {
|
|
109
|
+
const template = template_engine_1.templateEngine.getTemplate(options.template);
|
|
110
|
+
if (!template) {
|
|
111
|
+
console.log(chalk_1.default.red(`Template '${options.template}' not found`));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk_1.default.blue('Validating parameters for template:'), options.template);
|
|
115
|
+
// Build params
|
|
116
|
+
const params = {};
|
|
117
|
+
if (options.amount)
|
|
118
|
+
params.amount = options.amount;
|
|
119
|
+
if (options.currency)
|
|
120
|
+
params.currency = options.currency;
|
|
121
|
+
if (options.profileId)
|
|
122
|
+
params.profileId = options.profileId;
|
|
123
|
+
if (options.userId)
|
|
124
|
+
params.userId = options.userId;
|
|
125
|
+
if (options.accountId)
|
|
126
|
+
params.accountId = options.accountId;
|
|
127
|
+
if (options.recipientId)
|
|
128
|
+
params.recipientId = options.recipientId;
|
|
129
|
+
if (options.recipientIban)
|
|
130
|
+
params.recipientIban = options.recipientIban;
|
|
131
|
+
if (options.recipientName)
|
|
132
|
+
params.recipientName = options.recipientName;
|
|
133
|
+
// Check for missing required params
|
|
134
|
+
const requiredParams = new Set();
|
|
135
|
+
template.steps.forEach(step => {
|
|
136
|
+
Object.values(step.params).forEach(value => {
|
|
137
|
+
if (typeof value === 'string') {
|
|
138
|
+
const matches = value.match(/\{\{(\w+)\}\}/g);
|
|
139
|
+
if (matches) {
|
|
140
|
+
matches.forEach(match => {
|
|
141
|
+
const paramName = match.replace(/\{\{|\}\}/g, '');
|
|
142
|
+
requiredParams.add(paramName);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
const missing = Array.from(requiredParams).filter(p => !params[p]);
|
|
149
|
+
if (missing.length > 0) {
|
|
150
|
+
console.log(chalk_1.default.red('\n❌ Missing required parameters:'));
|
|
151
|
+
missing.forEach(p => console.log(` - ${p}`));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.log(chalk_1.default.green('\n✓ All required parameters provided'));
|
|
155
|
+
}
|
|
156
|
+
console.log(chalk_1.default.blue('\nProvided parameters:'));
|
|
157
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
158
|
+
console.log(` ${key}: ${value}`);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,6DAAyD;AAE5C,QAAA,gBAAgB,GAAG,IAAI,mBAAO,CAAC,UAAU,CAAC;KACpD,WAAW,CAAC,yCAAyC,CAAC,CAAC;AAE1D,wBAAgB;KACb,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,2BAA2B,EAAE,qDAAqD,CAAC;KAC1F,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,IAAI,SAAS,GAAG,gCAAc,CAAC,eAAe,EAAE,CAAC;IAEjD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;IAExE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEL,wBAAgB;KACb,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,sBAAsB,CAAC;KACnC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC;KACxC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;IACrB,MAAM,QAAQ,GAAG,gCAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,UAAU,aAAa,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACnD,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5D,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;gBAClD,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,UAAU,kCAAkC,CAAC,CAAC,CAAC;AAC1G,CAAC,CAAC,CAAC;AAEL,wBAAgB;KACb,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,cAAc,CAAC,qBAAqB,EAAE,aAAa,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;KAC7C,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;KAChD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;KAC9C,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC;KACxC,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;KAC9C,MAAM,CAAC,qBAAqB,EAAE,cAAc,CAAC;KAC7C,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;KACnD,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;KACnD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,MAAM,QAAQ,GAAG,gCAAc,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjF,eAAe;IACf,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,IAAI,OAAO,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzD,IAAI,OAAO,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,IAAI,OAAO,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5D,IAAI,OAAO,CAAC,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAClE,IAAI,OAAO,CAAC,aAAa;QAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IACxE,IAAI,OAAO,CAAC,aAAa;QAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAExE,oCAAoC;IACpC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACtB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;wBAClD,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/commands/transaction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,mBAAmB,SACK,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment Skill - Transaction Commands
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.transactionCommands = void 0;
|
|
10
|
+
const commander_1 = require("commander");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const transaction_1 = require("../core/transaction");
|
|
13
|
+
exports.transactionCommands = new commander_1.Command('transaction')
|
|
14
|
+
.description('Manage transactions');
|
|
15
|
+
exports.transactionCommands
|
|
16
|
+
.command('list')
|
|
17
|
+
.description('List transactions')
|
|
18
|
+
.option('-s, --status <status>', 'Filter by status')
|
|
19
|
+
.option('-p, --provider <provider>', 'Filter by provider')
|
|
20
|
+
.option('-m, --merchant <merchant>', 'Filter by merchant')
|
|
21
|
+
.option('--from <date>', 'From date (YYYY-MM-DD)')
|
|
22
|
+
.option('--to <date>', 'To date (YYYY-MM-DD)')
|
|
23
|
+
.action((options) => {
|
|
24
|
+
const filters = {};
|
|
25
|
+
if (options.status)
|
|
26
|
+
filters.status = options.status;
|
|
27
|
+
if (options.provider)
|
|
28
|
+
filters.provider = options.provider;
|
|
29
|
+
if (options.merchant)
|
|
30
|
+
filters.merchant = options.merchant;
|
|
31
|
+
if (options.from)
|
|
32
|
+
filters.from = new Date(options.from);
|
|
33
|
+
if (options.to)
|
|
34
|
+
filters.to = new Date(options.to);
|
|
35
|
+
const txs = transaction_1.transactionManager.getTransactions(filters);
|
|
36
|
+
console.log(chalk_1.default.blue(`Transactions (${txs.length}):`));
|
|
37
|
+
txs.forEach(tx => {
|
|
38
|
+
const statusColor = tx.status === 'completed' ? chalk_1.default.green :
|
|
39
|
+
tx.status === 'pending' ? chalk_1.default.yellow : chalk_1.default.red;
|
|
40
|
+
console.log(` ${tx.id} - ${statusColor(tx.status)} - ${tx.amount} ${tx.currency} - ${tx.merchant}`);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
exports.transactionCommands
|
|
44
|
+
.command('get')
|
|
45
|
+
.description('Get transaction details')
|
|
46
|
+
.argument('<id>', 'Transaction ID')
|
|
47
|
+
.action((id) => {
|
|
48
|
+
const tx = transaction_1.transactionManager.getTransaction(id);
|
|
49
|
+
if (tx) {
|
|
50
|
+
console.log(JSON.stringify(tx, null, 2));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
console.log(chalk_1.default.yellow(`Transaction '${id}' not found`));
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
exports.transactionCommands
|
|
57
|
+
.command('cancel')
|
|
58
|
+
.description('Cancel a transaction')
|
|
59
|
+
.argument('<id>', 'Transaction ID')
|
|
60
|
+
.action((id) => {
|
|
61
|
+
transaction_1.transactionManager.updateTransactionStatus(id, 'cancelled');
|
|
62
|
+
console.log(chalk_1.default.green(`✓ Transaction ${id} cancelled`));
|
|
63
|
+
});
|
|
64
|
+
exports.transactionCommands
|
|
65
|
+
.command('delete')
|
|
66
|
+
.description('Delete a transaction')
|
|
67
|
+
.argument('<id>', 'Transaction ID')
|
|
68
|
+
.action((id) => {
|
|
69
|
+
transaction_1.transactionManager.deleteTransaction(id);
|
|
70
|
+
console.log(chalk_1.default.green(`✓ Transaction ${id} deleted`));
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/commands/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wise.d.ts","sourceRoot":"","sources":["../../src/commands/wise.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,YAAY,SACY,CAAC"}
|