@ggakila/agentx-framework 0.1.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 (228) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/LICENSE +21 -0
  3. package/README.md +335 -0
  4. package/dist/agent/Agent.d.ts +110 -0
  5. package/dist/agent/Agent.d.ts.map +1 -0
  6. package/dist/agent/Agent.js +291 -0
  7. package/dist/agent/Agent.js.map +1 -0
  8. package/dist/agent/index.d.ts +5 -0
  9. package/dist/agent/index.d.ts.map +1 -0
  10. package/dist/agent/index.js +11 -0
  11. package/dist/agent/index.js.map +1 -0
  12. package/dist/cli/CLI.d.ts +74 -0
  13. package/dist/cli/CLI.d.ts.map +1 -0
  14. package/dist/cli/CLI.js +255 -0
  15. package/dist/cli/CLI.js.map +1 -0
  16. package/dist/cli/InteractiveSetup.d.ts +104 -0
  17. package/dist/cli/InteractiveSetup.d.ts.map +1 -0
  18. package/dist/cli/InteractiveSetup.js +2225 -0
  19. package/dist/cli/InteractiveSetup.js.map +1 -0
  20. package/dist/cli/bin.d.ts +7 -0
  21. package/dist/cli/bin.d.ts.map +1 -0
  22. package/dist/cli/bin.js +35 -0
  23. package/dist/cli/bin.js.map +1 -0
  24. package/dist/cli/commands/ProjectCommands.d.ts +23 -0
  25. package/dist/cli/commands/ProjectCommands.d.ts.map +1 -0
  26. package/dist/cli/commands/ProjectCommands.js +504 -0
  27. package/dist/cli/commands/ProjectCommands.js.map +1 -0
  28. package/dist/cli/index.d.ts +7 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +21 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/credential/CredentialManager.d.ts +112 -0
  33. package/dist/credential/CredentialManager.d.ts.map +1 -0
  34. package/dist/credential/CredentialManager.js +343 -0
  35. package/dist/credential/CredentialManager.js.map +1 -0
  36. package/dist/credential/OAuth2Manager.d.ts +206 -0
  37. package/dist/credential/OAuth2Manager.d.ts.map +1 -0
  38. package/dist/credential/OAuth2Manager.js +463 -0
  39. package/dist/credential/OAuth2Manager.js.map +1 -0
  40. package/dist/credential/index.d.ts +6 -0
  41. package/dist/credential/index.d.ts.map +1 -0
  42. package/dist/credential/index.js +16 -0
  43. package/dist/credential/index.js.map +1 -0
  44. package/dist/error/ErrorHandler.d.ts +74 -0
  45. package/dist/error/ErrorHandler.d.ts.map +1 -0
  46. package/dist/error/ErrorHandler.js +279 -0
  47. package/dist/error/ErrorHandler.js.map +1 -0
  48. package/dist/index.d.ts +30 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +100 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/integrations/DatabaseTool.d.ts +149 -0
  53. package/dist/integrations/DatabaseTool.d.ts.map +1 -0
  54. package/dist/integrations/DatabaseTool.js +900 -0
  55. package/dist/integrations/DatabaseTool.js.map +1 -0
  56. package/dist/integrations/EmailTool.d.ts +142 -0
  57. package/dist/integrations/EmailTool.d.ts.map +1 -0
  58. package/dist/integrations/EmailTool.js +259 -0
  59. package/dist/integrations/EmailTool.js.map +1 -0
  60. package/dist/integrations/FileSystemTool.d.ts +153 -0
  61. package/dist/integrations/FileSystemTool.d.ts.map +1 -0
  62. package/dist/integrations/FileSystemTool.js +835 -0
  63. package/dist/integrations/FileSystemTool.js.map +1 -0
  64. package/dist/integrations/GoogleWorkspaceTool.d.ts +125 -0
  65. package/dist/integrations/GoogleWorkspaceTool.d.ts.map +1 -0
  66. package/dist/integrations/GoogleWorkspaceTool.js +765 -0
  67. package/dist/integrations/GoogleWorkspaceTool.js.map +1 -0
  68. package/dist/integrations/HttpTool.d.ts +55 -0
  69. package/dist/integrations/HttpTool.d.ts.map +1 -0
  70. package/dist/integrations/HttpTool.js +209 -0
  71. package/dist/integrations/HttpTool.js.map +1 -0
  72. package/dist/integrations/MessagingTool.d.ts +136 -0
  73. package/dist/integrations/MessagingTool.d.ts.map +1 -0
  74. package/dist/integrations/MessagingTool.js +503 -0
  75. package/dist/integrations/MessagingTool.js.map +1 -0
  76. package/dist/integrations/SchedulerTool.d.ts +147 -0
  77. package/dist/integrations/SchedulerTool.d.ts.map +1 -0
  78. package/dist/integrations/SchedulerTool.js +471 -0
  79. package/dist/integrations/SchedulerTool.js.map +1 -0
  80. package/dist/integrations/WebhookTool.d.ts +97 -0
  81. package/dist/integrations/WebhookTool.d.ts.map +1 -0
  82. package/dist/integrations/WebhookTool.js +351 -0
  83. package/dist/integrations/WebhookTool.js.map +1 -0
  84. package/dist/integrations/index.d.ts +13 -0
  85. package/dist/integrations/index.d.ts.map +1 -0
  86. package/dist/integrations/index.js +60 -0
  87. package/dist/integrations/index.js.map +1 -0
  88. package/dist/llm/LLMProvider.d.ts +83 -0
  89. package/dist/llm/LLMProvider.d.ts.map +1 -0
  90. package/dist/llm/LLMProvider.js +370 -0
  91. package/dist/llm/LLMProvider.js.map +1 -0
  92. package/dist/llm/index.d.ts +5 -0
  93. package/dist/llm/index.d.ts.map +1 -0
  94. package/dist/llm/index.js +14 -0
  95. package/dist/llm/index.js.map +1 -0
  96. package/dist/payment/PaymentProvider.d.ts +157 -0
  97. package/dist/payment/PaymentProvider.d.ts.map +1 -0
  98. package/dist/payment/PaymentProvider.js +525 -0
  99. package/dist/payment/PaymentProvider.js.map +1 -0
  100. package/dist/payment/index.d.ts +5 -0
  101. package/dist/payment/index.d.ts.map +1 -0
  102. package/dist/payment/index.js +16 -0
  103. package/dist/payment/index.js.map +1 -0
  104. package/dist/plugin/PluginManager.d.ts +156 -0
  105. package/dist/plugin/PluginManager.d.ts.map +1 -0
  106. package/dist/plugin/PluginManager.js +288 -0
  107. package/dist/plugin/PluginManager.js.map +1 -0
  108. package/dist/plugin/index.d.ts +5 -0
  109. package/dist/plugin/index.d.ts.map +1 -0
  110. package/dist/plugin/index.js +10 -0
  111. package/dist/plugin/index.js.map +1 -0
  112. package/dist/runtime/AgentXRuntime.d.ts +90 -0
  113. package/dist/runtime/AgentXRuntime.d.ts.map +1 -0
  114. package/dist/runtime/AgentXRuntime.js +469 -0
  115. package/dist/runtime/AgentXRuntime.js.map +1 -0
  116. package/dist/security/SecurityManager.d.ts +245 -0
  117. package/dist/security/SecurityManager.d.ts.map +1 -0
  118. package/dist/security/SecurityManager.js +512 -0
  119. package/dist/security/SecurityManager.js.map +1 -0
  120. package/dist/security/index.d.ts +5 -0
  121. package/dist/security/index.d.ts.map +1 -0
  122. package/dist/security/index.js +14 -0
  123. package/dist/security/index.js.map +1 -0
  124. package/dist/tool/ToolRegistry.d.ts +58 -0
  125. package/dist/tool/ToolRegistry.d.ts.map +1 -0
  126. package/dist/tool/ToolRegistry.js +173 -0
  127. package/dist/tool/ToolRegistry.js.map +1 -0
  128. package/dist/tool/ToolValidator.d.ts +41 -0
  129. package/dist/tool/ToolValidator.d.ts.map +1 -0
  130. package/dist/tool/ToolValidator.js +158 -0
  131. package/dist/tool/ToolValidator.js.map +1 -0
  132. package/dist/tool/index.d.ts +6 -0
  133. package/dist/tool/index.d.ts.map +1 -0
  134. package/dist/tool/index.js +11 -0
  135. package/dist/tool/index.js.map +1 -0
  136. package/dist/transport/BaseTransport.d.ts +66 -0
  137. package/dist/transport/BaseTransport.d.ts.map +1 -0
  138. package/dist/transport/BaseTransport.js +103 -0
  139. package/dist/transport/BaseTransport.js.map +1 -0
  140. package/dist/transport/HttpTransport.d.ts +41 -0
  141. package/dist/transport/HttpTransport.d.ts.map +1 -0
  142. package/dist/transport/HttpTransport.js +160 -0
  143. package/dist/transport/HttpTransport.js.map +1 -0
  144. package/dist/transport/LocalTransport.d.ts +40 -0
  145. package/dist/transport/LocalTransport.d.ts.map +1 -0
  146. package/dist/transport/LocalTransport.js +157 -0
  147. package/dist/transport/LocalTransport.js.map +1 -0
  148. package/dist/transport/QueueTransport.d.ts +63 -0
  149. package/dist/transport/QueueTransport.d.ts.map +1 -0
  150. package/dist/transport/QueueTransport.js +194 -0
  151. package/dist/transport/QueueTransport.js.map +1 -0
  152. package/dist/transport/StdioTransport.d.ts +51 -0
  153. package/dist/transport/StdioTransport.d.ts.map +1 -0
  154. package/dist/transport/StdioTransport.js +216 -0
  155. package/dist/transport/StdioTransport.js.map +1 -0
  156. package/dist/transport/TransportFactory.d.ts +35 -0
  157. package/dist/transport/TransportFactory.d.ts.map +1 -0
  158. package/dist/transport/TransportFactory.js +100 -0
  159. package/dist/transport/TransportFactory.js.map +1 -0
  160. package/dist/transport/index.d.ts +10 -0
  161. package/dist/transport/index.d.ts.map +1 -0
  162. package/dist/transport/index.js +19 -0
  163. package/dist/transport/index.js.map +1 -0
  164. package/dist/types/agent.d.ts +66 -0
  165. package/dist/types/agent.d.ts.map +1 -0
  166. package/dist/types/agent.js +3 -0
  167. package/dist/types/agent.js.map +1 -0
  168. package/dist/types/config.d.ts +60 -0
  169. package/dist/types/config.d.ts.map +1 -0
  170. package/dist/types/config.js +6 -0
  171. package/dist/types/config.js.map +1 -0
  172. package/dist/types/credential.d.ts +38 -0
  173. package/dist/types/credential.d.ts.map +1 -0
  174. package/dist/types/credential.js +3 -0
  175. package/dist/types/credential.js.map +1 -0
  176. package/dist/types/error.d.ts +136 -0
  177. package/dist/types/error.d.ts.map +1 -0
  178. package/dist/types/error.js +223 -0
  179. package/dist/types/error.js.map +1 -0
  180. package/dist/types/index.d.ts +10 -0
  181. package/dist/types/index.d.ts.map +1 -0
  182. package/dist/types/index.js +27 -0
  183. package/dist/types/index.js.map +1 -0
  184. package/dist/types/llm.d.ts +43 -0
  185. package/dist/types/llm.d.ts.map +1 -0
  186. package/dist/types/llm.js +3 -0
  187. package/dist/types/llm.js.map +1 -0
  188. package/dist/types/payment.d.ts +129 -0
  189. package/dist/types/payment.d.ts.map +1 -0
  190. package/dist/types/payment.js +6 -0
  191. package/dist/types/payment.js.map +1 -0
  192. package/dist/types/runtime.d.ts +31 -0
  193. package/dist/types/runtime.d.ts.map +1 -0
  194. package/dist/types/runtime.js +3 -0
  195. package/dist/types/runtime.js.map +1 -0
  196. package/dist/types/tool.d.ts +72 -0
  197. package/dist/types/tool.d.ts.map +1 -0
  198. package/dist/types/tool.js +3 -0
  199. package/dist/types/tool.js.map +1 -0
  200. package/dist/types/transport.d.ts +53 -0
  201. package/dist/types/transport.d.ts.map +1 -0
  202. package/dist/types/transport.js +3 -0
  203. package/dist/types/transport.js.map +1 -0
  204. package/dist/types/workflow.d.ts +72 -0
  205. package/dist/types/workflow.d.ts.map +1 -0
  206. package/dist/types/workflow.js +6 -0
  207. package/dist/types/workflow.js.map +1 -0
  208. package/dist/utils/factory.d.ts +14 -0
  209. package/dist/utils/factory.d.ts.map +1 -0
  210. package/dist/utils/factory.js +146 -0
  211. package/dist/utils/factory.js.map +1 -0
  212. package/dist/workflow/StateManager.d.ts +93 -0
  213. package/dist/workflow/StateManager.d.ts.map +1 -0
  214. package/dist/workflow/StateManager.js +223 -0
  215. package/dist/workflow/StateManager.js.map +1 -0
  216. package/dist/workflow/WorkflowDefinition.d.ts +49 -0
  217. package/dist/workflow/WorkflowDefinition.d.ts.map +1 -0
  218. package/dist/workflow/WorkflowDefinition.js +264 -0
  219. package/dist/workflow/WorkflowDefinition.js.map +1 -0
  220. package/dist/workflow/WorkflowExecutor.d.ts +42 -0
  221. package/dist/workflow/WorkflowExecutor.d.ts.map +1 -0
  222. package/dist/workflow/WorkflowExecutor.js +372 -0
  223. package/dist/workflow/WorkflowExecutor.js.map +1 -0
  224. package/dist/workflow/index.d.ts +7 -0
  225. package/dist/workflow/index.d.ts.map +1 -0
  226. package/dist/workflow/index.js +17 -0
  227. package/dist/workflow/index.js.map +1 -0
  228. package/package.json +122 -0
@@ -0,0 +1,525 @@
1
+ "use strict";
2
+ /**
3
+ * Payment Provider System
4
+ * Provides pluggable payment provider abstraction
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PaymentProviderRegistry = exports.MPesaProvider = exports.PayPalProvider = exports.StripeProvider = exports.GenericAPIPaymentProvider = exports.BasePaymentProvider = exports.PaymentError = void 0;
8
+ exports.createPaymentProvider = createPaymentProvider;
9
+ const uuid_1 = require("uuid");
10
+ /**
11
+ * Payment Error
12
+ */
13
+ class PaymentError extends Error {
14
+ code;
15
+ details;
16
+ constructor(message, code, details) {
17
+ super(message);
18
+ this.name = 'PaymentError';
19
+ this.code = code;
20
+ this.details = details;
21
+ }
22
+ }
23
+ exports.PaymentError = PaymentError;
24
+ /**
25
+ * Base Payment Provider
26
+ * Abstract class for implementing payment providers
27
+ */
28
+ class BasePaymentProvider {
29
+ config;
30
+ logger;
31
+ initialized = false;
32
+ constructor(logger) {
33
+ this.logger = logger;
34
+ }
35
+ async initialize(config) {
36
+ this.config = config;
37
+ this.initialized = true;
38
+ this.logger.info(`Payment provider initialized: ${this.name}`);
39
+ }
40
+ async healthCheck() {
41
+ return this.initialized;
42
+ }
43
+ /**
44
+ * Generate idempotency key
45
+ */
46
+ generateIdempotencyKey() {
47
+ return (0, uuid_1.v4)();
48
+ }
49
+ /**
50
+ * Format amount for API (convert to smallest unit)
51
+ */
52
+ formatAmount(amount, currency) {
53
+ const zeroDecimalCurrencies = ['JPY', 'KRW', 'VND'];
54
+ if (zeroDecimalCurrencies.includes(currency.toUpperCase())) {
55
+ return Math.round(amount);
56
+ }
57
+ return Math.round(amount * 100);
58
+ }
59
+ /**
60
+ * Parse amount from API (convert from smallest unit)
61
+ */
62
+ parseAmount(amount, currency) {
63
+ const zeroDecimalCurrencies = ['JPY', 'KRW', 'VND'];
64
+ if (zeroDecimalCurrencies.includes(currency.toUpperCase())) {
65
+ return amount;
66
+ }
67
+ return amount / 100;
68
+ }
69
+ }
70
+ exports.BasePaymentProvider = BasePaymentProvider;
71
+ /**
72
+ * Generic API Payment Provider
73
+ * Base class for easy API-based payment integrations
74
+ */
75
+ class GenericAPIPaymentProvider extends BasePaymentProvider {
76
+ baseUrl = '';
77
+ /**
78
+ * Make authenticated API request
79
+ */
80
+ async apiRequest(method, endpoint, data, headers) {
81
+ const url = `${this.baseUrl}${endpoint}`;
82
+ const authHeaders = await this.getAuthHeaders();
83
+ const requestHeaders = {
84
+ 'Content-Type': 'application/json',
85
+ ...authHeaders,
86
+ ...headers,
87
+ };
88
+ const options = {
89
+ method,
90
+ headers: requestHeaders,
91
+ };
92
+ if (data && ['POST', 'PUT'].includes(method)) {
93
+ options.body = JSON.stringify(data);
94
+ }
95
+ this.logger.debug(`Payment API: ${method} ${endpoint}`, {
96
+ provider: this.name
97
+ });
98
+ const response = await fetch(url, options);
99
+ const responseData = await response.json();
100
+ if (!response.ok) {
101
+ this.logger.error(`Payment API error: ${response.status}`, new Error(JSON.stringify(responseData)));
102
+ throw new PaymentError(`API error: ${response.status}`, 'API_ERROR', responseData);
103
+ }
104
+ return responseData;
105
+ }
106
+ }
107
+ exports.GenericAPIPaymentProvider = GenericAPIPaymentProvider;
108
+ /**
109
+ * Stripe Payment Provider
110
+ */
111
+ class StripeProvider extends GenericAPIPaymentProvider {
112
+ name = 'stripe';
113
+ version = '1.0.0';
114
+ async initialize(config) {
115
+ await super.initialize(config);
116
+ this.baseUrl = 'https://api.stripe.com/v1';
117
+ if (!config.credentials.apiKey) {
118
+ throw new PaymentError('Stripe API key is required', 'CONFIG_ERROR');
119
+ }
120
+ }
121
+ async getAuthHeaders() {
122
+ return {
123
+ 'Authorization': `Bearer ${this.config.credentials.apiKey}`,
124
+ };
125
+ }
126
+ getSupportedCurrencies() {
127
+ return ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'JPY'];
128
+ }
129
+ getSupportedPaymentMethods() {
130
+ return [
131
+ { type: 'card', provider: 'stripe' },
132
+ { type: 'bank_transfer', provider: 'stripe' },
133
+ ];
134
+ }
135
+ getWebhookEvents() {
136
+ return [
137
+ 'payment_intent.succeeded',
138
+ 'payment_intent.payment_failed',
139
+ 'charge.refunded',
140
+ ];
141
+ }
142
+ async processPayment(request) {
143
+ const data = {
144
+ amount: this.formatAmount(request.amount, request.currency),
145
+ currency: request.currency.toLowerCase(),
146
+ description: request.description,
147
+ metadata: request.metadata,
148
+ payment_method_types: ['card'],
149
+ };
150
+ const response = await this.apiRequest('POST', '/payment_intents', data);
151
+ return {
152
+ success: response.status === 'succeeded' || response.status === 'requires_action',
153
+ paymentId: response.id,
154
+ status: this.mapStatus(response.status),
155
+ providerResponse: response,
156
+ };
157
+ }
158
+ async getPaymentStatus(paymentId) {
159
+ const response = await this.apiRequest('GET', `/payment_intents/${paymentId}`);
160
+ return this.mapStatus(response.status);
161
+ }
162
+ async refundPayment(request) {
163
+ const data = {
164
+ payment_intent: request.paymentId,
165
+ amount: request.amount ? this.formatAmount(request.amount, 'USD') : undefined,
166
+ reason: request.reason,
167
+ };
168
+ const response = await this.apiRequest('POST', '/refunds', data);
169
+ return {
170
+ success: response.status === 'succeeded',
171
+ refundId: response.id,
172
+ amount: this.parseAmount(response.amount, 'USD'),
173
+ status: response.status === 'succeeded' ? 'completed' : 'pending',
174
+ };
175
+ }
176
+ async validateWebhook(payload, signature) {
177
+ // In production, verify signature using Stripe's webhook secret
178
+ return !!signature && !!this.config.credentials.webhookSecret;
179
+ }
180
+ async processWebhook(payload) {
181
+ const data = payload;
182
+ const eventType = data.type;
183
+ const eventData = data.data;
184
+ const object = eventData?.object;
185
+ return {
186
+ processed: true,
187
+ paymentId: object?.id,
188
+ event: eventType,
189
+ data: object,
190
+ };
191
+ }
192
+ mapStatus(stripeStatus) {
193
+ const statusMap = {
194
+ 'requires_payment_method': 'pending',
195
+ 'requires_confirmation': 'pending',
196
+ 'requires_action': 'pending',
197
+ 'processing': 'processing',
198
+ 'requires_capture': 'processing',
199
+ 'succeeded': 'completed',
200
+ 'canceled': 'cancelled',
201
+ };
202
+ return statusMap[stripeStatus] || 'failed';
203
+ }
204
+ }
205
+ exports.StripeProvider = StripeProvider;
206
+ /**
207
+ * PayPal Payment Provider
208
+ */
209
+ class PayPalProvider extends GenericAPIPaymentProvider {
210
+ name = 'paypal';
211
+ version = '1.0.0';
212
+ accessToken;
213
+ tokenExpiry;
214
+ async initialize(config) {
215
+ await super.initialize(config);
216
+ this.baseUrl = config.environment === 'sandbox'
217
+ ? 'https://api-m.sandbox.paypal.com'
218
+ : 'https://api-m.paypal.com';
219
+ if (!config.credentials.clientId || !config.credentials.clientSecret) {
220
+ throw new PaymentError('PayPal client ID and secret are required', 'CONFIG_ERROR');
221
+ }
222
+ await this.refreshToken();
223
+ }
224
+ async refreshToken() {
225
+ const credentials = Buffer.from(`${this.config.credentials.clientId}:${this.config.credentials.clientSecret}`).toString('base64');
226
+ const response = await fetch(`${this.baseUrl}/v1/oauth2/token`, {
227
+ method: 'POST',
228
+ headers: {
229
+ 'Authorization': `Basic ${credentials}`,
230
+ 'Content-Type': 'application/x-www-form-urlencoded',
231
+ },
232
+ body: 'grant_type=client_credentials',
233
+ });
234
+ const data = await response.json();
235
+ this.accessToken = data.access_token;
236
+ this.tokenExpiry = new Date(Date.now() + data.expires_in * 1000);
237
+ }
238
+ async getAuthHeaders() {
239
+ if (!this.accessToken || (this.tokenExpiry && this.tokenExpiry < new Date())) {
240
+ await this.refreshToken();
241
+ }
242
+ return {
243
+ 'Authorization': `Bearer ${this.accessToken}`,
244
+ };
245
+ }
246
+ getSupportedCurrencies() {
247
+ return ['USD', 'EUR', 'GBP', 'CAD', 'AUD'];
248
+ }
249
+ getSupportedPaymentMethods() {
250
+ return [
251
+ { type: 'card', provider: 'paypal' },
252
+ { type: 'digital_wallet', provider: 'paypal' },
253
+ ];
254
+ }
255
+ getWebhookEvents() {
256
+ return [
257
+ 'PAYMENT.CAPTURE.COMPLETED',
258
+ 'PAYMENT.CAPTURE.DENIED',
259
+ 'PAYMENT.CAPTURE.REFUNDED',
260
+ ];
261
+ }
262
+ async processPayment(request) {
263
+ const data = {
264
+ intent: 'CAPTURE',
265
+ purchase_units: [{
266
+ amount: {
267
+ currency_code: request.currency.toUpperCase(),
268
+ value: request.amount.toFixed(2),
269
+ },
270
+ description: request.description,
271
+ custom_id: request.metadata?.orderId,
272
+ }],
273
+ };
274
+ const response = await this.apiRequest('POST', '/v2/checkout/orders', data);
275
+ return {
276
+ success: response.status === 'COMPLETED' || response.status === 'CREATED',
277
+ paymentId: response.id,
278
+ status: this.mapStatus(response.status),
279
+ providerResponse: response,
280
+ };
281
+ }
282
+ async getPaymentStatus(paymentId) {
283
+ const response = await this.apiRequest('GET', `/v2/checkout/orders/${paymentId}`);
284
+ return this.mapStatus(response.status);
285
+ }
286
+ async refundPayment(request) {
287
+ const data = request.amount ? {
288
+ amount: {
289
+ value: request.amount.toFixed(2),
290
+ currency_code: 'USD',
291
+ },
292
+ note_to_payer: request.reason,
293
+ } : {};
294
+ const response = await this.apiRequest('POST', `/v2/payments/captures/${request.paymentId}/refund`, data);
295
+ return {
296
+ success: response.status === 'COMPLETED',
297
+ refundId: response.id,
298
+ amount: request.amount || 0,
299
+ status: response.status === 'COMPLETED' ? 'completed' : 'pending',
300
+ };
301
+ }
302
+ async validateWebhook(payload, signature) {
303
+ return !!signature;
304
+ }
305
+ async processWebhook(payload) {
306
+ const data = payload;
307
+ const resource = data.resource;
308
+ return {
309
+ processed: true,
310
+ paymentId: resource?.id,
311
+ event: data.event_type,
312
+ data: resource,
313
+ };
314
+ }
315
+ mapStatus(paypalStatus) {
316
+ const statusMap = {
317
+ 'CREATED': 'pending',
318
+ 'SAVED': 'pending',
319
+ 'APPROVED': 'processing',
320
+ 'VOIDED': 'cancelled',
321
+ 'COMPLETED': 'completed',
322
+ 'PAYER_ACTION_REQUIRED': 'pending',
323
+ };
324
+ return statusMap[paypalStatus] || 'failed';
325
+ }
326
+ }
327
+ exports.PayPalProvider = PayPalProvider;
328
+ /**
329
+ * M-Pesa Payment Provider
330
+ */
331
+ class MPesaProvider extends GenericAPIPaymentProvider {
332
+ name = 'mpesa';
333
+ version = '1.0.0';
334
+ accessToken;
335
+ tokenExpiry;
336
+ async initialize(config) {
337
+ await super.initialize(config);
338
+ this.baseUrl = config.environment === 'sandbox'
339
+ ? 'https://sandbox.safaricom.co.ke'
340
+ : 'https://api.safaricom.co.ke';
341
+ if (!config.credentials.consumerKey || !config.credentials.consumerSecret) {
342
+ throw new PaymentError('M-Pesa consumer key and secret are required', 'CONFIG_ERROR');
343
+ }
344
+ if (!config.credentials.shortcode || !config.credentials.passkey) {
345
+ throw new PaymentError('M-Pesa short code and pass key are required', 'CONFIG_ERROR');
346
+ }
347
+ await this.refreshToken();
348
+ }
349
+ async refreshToken() {
350
+ const credentials = Buffer.from(`${this.config.credentials.consumerKey}:${this.config.credentials.consumerSecret}`).toString('base64');
351
+ const response = await fetch(`${this.baseUrl}/oauth/v1/generate?grant_type=client_credentials`, {
352
+ method: 'GET',
353
+ headers: {
354
+ 'Authorization': `Basic ${credentials}`,
355
+ },
356
+ });
357
+ const data = await response.json();
358
+ this.accessToken = data.access_token;
359
+ this.tokenExpiry = new Date(Date.now() + 3600 * 1000);
360
+ }
361
+ async getAuthHeaders() {
362
+ if (!this.accessToken || (this.tokenExpiry && this.tokenExpiry < new Date())) {
363
+ await this.refreshToken();
364
+ }
365
+ return {
366
+ 'Authorization': `Bearer ${this.accessToken}`,
367
+ };
368
+ }
369
+ getSupportedCurrencies() {
370
+ return ['KES'];
371
+ }
372
+ getSupportedPaymentMethods() {
373
+ return [
374
+ { type: 'mobile_money', provider: 'mpesa' },
375
+ ];
376
+ }
377
+ getWebhookEvents() {
378
+ return ['stkCallback'];
379
+ }
380
+ async processPayment(request) {
381
+ const phoneNumber = request.metadata?.phoneNumber;
382
+ if (!phoneNumber) {
383
+ throw new PaymentError('Phone number is required for M-Pesa', 'VALIDATION_ERROR');
384
+ }
385
+ const timestamp = new Date().toISOString().replace(/[-:T.Z]/g, '').slice(0, 14);
386
+ const shortcode = this.config.credentials.shortcode;
387
+ const passkey = this.config.credentials.passkey;
388
+ const password = Buffer.from(`${shortcode}${passkey}${timestamp}`).toString('base64');
389
+ const data = {
390
+ BusinessShortCode: shortcode,
391
+ Password: password,
392
+ Timestamp: timestamp,
393
+ TransactionType: 'CustomerPayBillOnline',
394
+ Amount: Math.round(request.amount),
395
+ PartyA: this.formatPhoneNumber(phoneNumber),
396
+ PartyB: shortcode,
397
+ PhoneNumber: this.formatPhoneNumber(phoneNumber),
398
+ CallBackURL: request.callbackUrl || this.config.callbackUrl,
399
+ AccountReference: request.metadata?.accountReference || 'Payment',
400
+ TransactionDesc: request.description || 'Payment',
401
+ };
402
+ const response = await this.apiRequest('POST', '/mpesa/stkpush/v1/processrequest', data);
403
+ const success = response.ResponseCode === '0';
404
+ return {
405
+ success,
406
+ paymentId: response.CheckoutRequestID,
407
+ status: success ? 'pending' : 'failed',
408
+ providerResponse: response,
409
+ error: success ? undefined : response.ResponseDescription,
410
+ };
411
+ }
412
+ async getPaymentStatus(paymentId) {
413
+ const timestamp = new Date().toISOString().replace(/[-:T.Z]/g, '').slice(0, 14);
414
+ const shortcode = this.config.credentials.shortcode;
415
+ const passkey = this.config.credentials.passkey;
416
+ const password = Buffer.from(`${shortcode}${passkey}${timestamp}`).toString('base64');
417
+ const response = await this.apiRequest('POST', '/mpesa/stkpushquery/v1/query', {
418
+ BusinessShortCode: shortcode,
419
+ Password: password,
420
+ Timestamp: timestamp,
421
+ CheckoutRequestID: paymentId,
422
+ });
423
+ return this.mapStatus(response.ResultCode);
424
+ }
425
+ async refundPayment(request) {
426
+ throw new PaymentError('M-Pesa refunds require B2C API configuration', 'NOT_IMPLEMENTED');
427
+ }
428
+ async validateWebhook(payload, signature) {
429
+ // M-Pesa doesn't use signature validation in the same way
430
+ const data = payload;
431
+ return !!data.Body?.stkCallback;
432
+ }
433
+ async processWebhook(payload) {
434
+ const data = payload;
435
+ const body = data.Body;
436
+ const callback = body?.stkCallback;
437
+ if (!callback) {
438
+ return { processed: false, event: 'unknown' };
439
+ }
440
+ return {
441
+ processed: true,
442
+ paymentId: callback.CheckoutRequestID,
443
+ event: 'stkCallback',
444
+ data: callback,
445
+ };
446
+ }
447
+ formatPhoneNumber(phone) {
448
+ let formatted = phone.replace(/\D/g, '');
449
+ if (formatted.startsWith('0')) {
450
+ formatted = '254' + formatted.slice(1);
451
+ }
452
+ else if (!formatted.startsWith('254')) {
453
+ formatted = '254' + formatted;
454
+ }
455
+ return formatted;
456
+ }
457
+ mapStatus(resultCode) {
458
+ if (resultCode === '0')
459
+ return 'completed';
460
+ if (resultCode === '1032')
461
+ return 'cancelled';
462
+ return 'failed';
463
+ }
464
+ }
465
+ exports.MPesaProvider = MPesaProvider;
466
+ /**
467
+ * Payment Provider Registry
468
+ */
469
+ class PaymentProviderRegistry {
470
+ providers = new Map();
471
+ logger;
472
+ constructor(logger) {
473
+ this.logger = logger;
474
+ }
475
+ /**
476
+ * Register a payment provider
477
+ */
478
+ async register(provider, config) {
479
+ await provider.initialize(config);
480
+ this.providers.set(provider.name, provider);
481
+ this.logger.info(`Payment provider registered: ${provider.name}`);
482
+ }
483
+ /**
484
+ * Get a provider by name
485
+ */
486
+ get(name) {
487
+ return this.providers.get(name);
488
+ }
489
+ /**
490
+ * List all providers
491
+ */
492
+ list() {
493
+ return Array.from(this.providers.keys());
494
+ }
495
+ /**
496
+ * Find providers supporting a payment method
497
+ */
498
+ findByMethod(methodType) {
499
+ return Array.from(this.providers.values())
500
+ .filter(p => p.getSupportedPaymentMethods().some(m => m.type === methodType));
501
+ }
502
+ /**
503
+ * Unregister a provider
504
+ */
505
+ unregister(name) {
506
+ return this.providers.delete(name);
507
+ }
508
+ }
509
+ exports.PaymentProviderRegistry = PaymentProviderRegistry;
510
+ /**
511
+ * Create payment provider from type
512
+ */
513
+ function createPaymentProvider(type, logger) {
514
+ switch (type.toLowerCase()) {
515
+ case 'stripe':
516
+ return new StripeProvider(logger);
517
+ case 'paypal':
518
+ return new PayPalProvider(logger);
519
+ case 'mpesa':
520
+ return new MPesaProvider(logger);
521
+ default:
522
+ throw new PaymentError(`Unknown payment provider: ${type}`, 'CONFIG_ERROR');
523
+ }
524
+ }
525
+ //# sourceMappingURL=PaymentProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentProvider.js","sourceRoot":"","sources":["../../src/payment/PaymentProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Payment Module Exports
3
+ */
4
+ export { BasePaymentProvider, GenericAPIPaymentProvider, PaymentError, StripeProvider, PayPalProvider, MPesaProvider, PaymentProviderRegistry, createPaymentProvider, } from './PaymentProvider';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * Payment Module Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createPaymentProvider = exports.PaymentProviderRegistry = exports.MPesaProvider = exports.PayPalProvider = exports.StripeProvider = exports.PaymentError = exports.GenericAPIPaymentProvider = exports.BasePaymentProvider = void 0;
7
+ var PaymentProvider_1 = require("./PaymentProvider");
8
+ Object.defineProperty(exports, "BasePaymentProvider", { enumerable: true, get: function () { return PaymentProvider_1.BasePaymentProvider; } });
9
+ Object.defineProperty(exports, "GenericAPIPaymentProvider", { enumerable: true, get: function () { return PaymentProvider_1.GenericAPIPaymentProvider; } });
10
+ Object.defineProperty(exports, "PaymentError", { enumerable: true, get: function () { return PaymentProvider_1.PaymentError; } });
11
+ Object.defineProperty(exports, "StripeProvider", { enumerable: true, get: function () { return PaymentProvider_1.StripeProvider; } });
12
+ Object.defineProperty(exports, "PayPalProvider", { enumerable: true, get: function () { return PaymentProvider_1.PayPalProvider; } });
13
+ Object.defineProperty(exports, "MPesaProvider", { enumerable: true, get: function () { return PaymentProvider_1.MPesaProvider; } });
14
+ Object.defineProperty(exports, "PaymentProviderRegistry", { enumerable: true, get: function () { return PaymentProvider_1.PaymentProviderRegistry; } });
15
+ Object.defineProperty(exports, "createPaymentProvider", { enumerable: true, get: function () { return PaymentProvider_1.createPaymentProvider; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payment/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qDAS2B;AARzB,sHAAA,mBAAmB,OAAA;AACnB,4HAAA,yBAAyB,OAAA;AACzB,+GAAA,YAAY,OAAA;AACZ,iHAAA,cAAc,OAAA;AACd,iHAAA,cAAc,OAAA;AACd,gHAAA,aAAa,OAAA;AACb,0HAAA,uBAAuB,OAAA;AACvB,wHAAA,qBAAqB,OAAA"}