@pulgueta/epayco-convex 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 (169) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +945 -0
  3. package/dist/client/_generated/_ignore.d.ts +1 -0
  4. package/dist/client/_generated/_ignore.d.ts.map +1 -0
  5. package/dist/client/_generated/_ignore.js +3 -0
  6. package/dist/client/_generated/_ignore.js.map +1 -0
  7. package/dist/client/index.d.ts +222 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +355 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/component/_generated/api.d.ts +78 -0
  12. package/dist/component/_generated/api.d.ts.map +1 -0
  13. package/dist/component/_generated/api.js +31 -0
  14. package/dist/component/_generated/api.js.map +1 -0
  15. package/dist/component/_generated/component.d.ts +580 -0
  16. package/dist/component/_generated/component.d.ts.map +1 -0
  17. package/dist/component/_generated/component.js +11 -0
  18. package/dist/component/_generated/component.js.map +1 -0
  19. package/dist/component/_generated/dataModel.d.ts +46 -0
  20. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  21. package/dist/component/_generated/dataModel.js +11 -0
  22. package/dist/component/_generated/dataModel.js.map +1 -0
  23. package/dist/component/_generated/server.d.ts +121 -0
  24. package/dist/component/_generated/server.d.ts.map +1 -0
  25. package/dist/component/_generated/server.js +78 -0
  26. package/dist/component/_generated/server.js.map +1 -0
  27. package/dist/component/banks.d.ts +14 -0
  28. package/dist/component/banks.d.ts.map +1 -0
  29. package/dist/component/banks.js +37 -0
  30. package/dist/component/banks.js.map +1 -0
  31. package/dist/component/cashApi.d.ts +59 -0
  32. package/dist/component/cashApi.d.ts.map +1 -0
  33. package/dist/component/cashApi.js +88 -0
  34. package/dist/component/cashApi.js.map +1 -0
  35. package/dist/component/chargesApi.d.ts +64 -0
  36. package/dist/component/chargesApi.d.ts.map +1 -0
  37. package/dist/component/chargesApi.js +106 -0
  38. package/dist/component/chargesApi.js.map +1 -0
  39. package/dist/component/convex.config.d.ts +3 -0
  40. package/dist/component/convex.config.d.ts.map +1 -0
  41. package/dist/component/convex.config.js +6 -0
  42. package/dist/component/convex.config.js.map +1 -0
  43. package/dist/component/customers.d.ts +67 -0
  44. package/dist/component/customers.d.ts.map +1 -0
  45. package/dist/component/customers.js +103 -0
  46. package/dist/component/customers.js.map +1 -0
  47. package/dist/component/customersApi.d.ts +99 -0
  48. package/dist/component/customersApi.d.ts.map +1 -0
  49. package/dist/component/customersApi.js +176 -0
  50. package/dist/component/customersApi.js.map +1 -0
  51. package/dist/component/daviplataApi.d.ts +43 -0
  52. package/dist/component/daviplataApi.d.ts.map +1 -0
  53. package/dist/component/daviplataApi.js +103 -0
  54. package/dist/component/daviplataApi.js.map +1 -0
  55. package/dist/component/epaycoClient.d.ts +84 -0
  56. package/dist/component/epaycoClient.d.ts.map +1 -0
  57. package/dist/component/epaycoClient.js +422 -0
  58. package/dist/component/epaycoClient.js.map +1 -0
  59. package/dist/component/payloads.d.ts +34 -0
  60. package/dist/component/payloads.d.ts.map +1 -0
  61. package/dist/component/payloads.js +45 -0
  62. package/dist/component/payloads.js.map +1 -0
  63. package/dist/component/plans.d.ts +47 -0
  64. package/dist/component/plans.d.ts.map +1 -0
  65. package/dist/component/plans.js +83 -0
  66. package/dist/component/plans.js.map +1 -0
  67. package/dist/component/plansApi.d.ts +64 -0
  68. package/dist/component/plansApi.d.ts.map +1 -0
  69. package/dist/component/plansApi.js +121 -0
  70. package/dist/component/plansApi.js.map +1 -0
  71. package/dist/component/pseApi.d.ts +68 -0
  72. package/dist/component/pseApi.d.ts.map +1 -0
  73. package/dist/component/pseApi.js +113 -0
  74. package/dist/component/pseApi.js.map +1 -0
  75. package/dist/component/rateLimits.d.ts +69 -0
  76. package/dist/component/rateLimits.d.ts.map +1 -0
  77. package/dist/component/rateLimits.js +67 -0
  78. package/dist/component/rateLimits.js.map +1 -0
  79. package/dist/component/safetypayApi.d.ts +35 -0
  80. package/dist/component/safetypayApi.d.ts.map +1 -0
  81. package/dist/component/safetypayApi.js +68 -0
  82. package/dist/component/safetypayApi.js.map +1 -0
  83. package/dist/component/schema.d.ts +200 -0
  84. package/dist/component/schema.d.ts.map +1 -0
  85. package/dist/component/schema.js +104 -0
  86. package/dist/component/schema.js.map +1 -0
  87. package/dist/component/signature.d.ts +11 -0
  88. package/dist/component/signature.d.ts.map +1 -0
  89. package/dist/component/signature.js +28 -0
  90. package/dist/component/signature.js.map +1 -0
  91. package/dist/component/status.d.ts +12 -0
  92. package/dist/component/status.d.ts.map +1 -0
  93. package/dist/component/status.js +55 -0
  94. package/dist/component/status.js.map +1 -0
  95. package/dist/component/subscriptions.d.ts +69 -0
  96. package/dist/component/subscriptions.d.ts.map +1 -0
  97. package/dist/component/subscriptions.js +114 -0
  98. package/dist/component/subscriptions.js.map +1 -0
  99. package/dist/component/subscriptionsApi.d.ts +62 -0
  100. package/dist/component/subscriptionsApi.d.ts.map +1 -0
  101. package/dist/component/subscriptionsApi.js +147 -0
  102. package/dist/component/subscriptionsApi.js.map +1 -0
  103. package/dist/component/tokens.d.ts +31 -0
  104. package/dist/component/tokens.d.ts.map +1 -0
  105. package/dist/component/tokens.js +79 -0
  106. package/dist/component/tokens.js.map +1 -0
  107. package/dist/component/tokensApi.d.ts +18 -0
  108. package/dist/component/tokensApi.d.ts.map +1 -0
  109. package/dist/component/tokensApi.js +53 -0
  110. package/dist/component/tokensApi.js.map +1 -0
  111. package/dist/component/transactions.d.ts +103 -0
  112. package/dist/component/transactions.d.ts.map +1 -0
  113. package/dist/component/transactions.js +177 -0
  114. package/dist/component/transactions.js.map +1 -0
  115. package/dist/component/validators.d.ts +571 -0
  116. package/dist/component/validators.d.ts.map +1 -0
  117. package/dist/component/validators.js +203 -0
  118. package/dist/component/validators.js.map +1 -0
  119. package/dist/component/webhooks.d.ts +55 -0
  120. package/dist/component/webhooks.d.ts.map +1 -0
  121. package/dist/component/webhooks.js +172 -0
  122. package/dist/component/webhooks.js.map +1 -0
  123. package/dist/react/index.d.ts +16 -0
  124. package/dist/react/index.d.ts.map +1 -0
  125. package/dist/react/index.js +43 -0
  126. package/dist/react/index.js.map +1 -0
  127. package/package.json +106 -0
  128. package/src/client/_generated/_ignore.ts +1 -0
  129. package/src/client/index.test.ts +66 -0
  130. package/src/client/index.ts +633 -0
  131. package/src/client/setup.test.ts +26 -0
  132. package/src/component/_generated/api.ts +94 -0
  133. package/src/component/_generated/component.ts +809 -0
  134. package/src/component/_generated/dataModel.ts +60 -0
  135. package/src/component/_generated/server.ts +156 -0
  136. package/src/component/banks.ts +41 -0
  137. package/src/component/cashApi.ts +100 -0
  138. package/src/component/chargesApi.ts +119 -0
  139. package/src/component/convex.config.ts +7 -0
  140. package/src/component/customers.test.ts +122 -0
  141. package/src/component/customers.ts +116 -0
  142. package/src/component/customersApi.ts +206 -0
  143. package/src/component/daviplataApi.ts +119 -0
  144. package/src/component/epaycoApi.test.ts +110 -0
  145. package/src/component/epaycoClient.ts +578 -0
  146. package/src/component/payloads.ts +67 -0
  147. package/src/component/plans.test.ts +129 -0
  148. package/src/component/plans.ts +86 -0
  149. package/src/component/plansApi.ts +135 -0
  150. package/src/component/pseApi.ts +125 -0
  151. package/src/component/rateLimits.ts +67 -0
  152. package/src/component/safetypayApi.ts +78 -0
  153. package/src/component/schema.ts +124 -0
  154. package/src/component/setup.test.helper.ts +10 -0
  155. package/src/component/setup.test.ts +22 -0
  156. package/src/component/signature.ts +38 -0
  157. package/src/component/status.ts +71 -0
  158. package/src/component/subscriptions.test.ts +117 -0
  159. package/src/component/subscriptions.ts +128 -0
  160. package/src/component/subscriptionsApi.ts +172 -0
  161. package/src/component/tokens.ts +89 -0
  162. package/src/component/tokensApi.ts +63 -0
  163. package/src/component/transactions.test.ts +227 -0
  164. package/src/component/transactions.ts +200 -0
  165. package/src/component/validators.ts +245 -0
  166. package/src/component/webhooks.test.ts +137 -0
  167. package/src/component/webhooks.ts +229 -0
  168. package/src/react/index.ts +71 -0
  169. package/src/test.ts +13 -0
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=_ignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_ignore.d.ts","sourceRoot":"","sources":["../../../src/client/_generated/_ignore.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This is only here so convex-test can detect a _generated folder
3
+ //# sourceMappingURL=_ignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_ignore.js","sourceRoot":"","sources":["../../../src/client/_generated/_ignore.ts"],"names":[],"mappings":";AAAA,kEAAkE"}
@@ -0,0 +1,222 @@
1
+ import type { Auth, GenericActionCtx, GenericDataModel, GenericQueryCtx, HttpRouter } from "convex/server";
2
+ import type { Infer } from "convex/values";
3
+ import type { ComponentApi } from "../component/_generated/component.js";
4
+ import { chargeInfoValidator, customerInfoValidator, cashInfoValidator, cashProviderValidator, daviplataInfoValidator, planInfoValidator, pseInfoValidator, safetypayInfoValidator, subscriptionInfoValidator, tokenInfoValidator } from "../component/validators.js";
5
+ type QueryCtx = Pick<GenericQueryCtx<GenericDataModel>, "runQuery">;
6
+ type ActionCtx = Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation" | "runAction">;
7
+ type CustomerInfo = Infer<typeof customerInfoValidator>;
8
+ type TokenInfo = Infer<typeof tokenInfoValidator>;
9
+ type ChargeInfo = Infer<typeof chargeInfoValidator>;
10
+ type PseInfo = Infer<typeof pseInfoValidator>;
11
+ type CashInfo = Infer<typeof cashInfoValidator>;
12
+ type CashProvider = Infer<typeof cashProviderValidator>;
13
+ type DaviplataInfo = Infer<typeof daviplataInfoValidator>;
14
+ type SafetyPayInfo = Infer<typeof safetypayInfoValidator>;
15
+ type PlanInfo = Infer<typeof planInfoValidator>;
16
+ type SubscriptionInfo = Infer<typeof subscriptionInfoValidator>;
17
+ export interface EPaycoOptions {
18
+ /** ePayco PUBLIC_KEY. Falls back to `EPAYCO_PUBLIC_KEY`. */
19
+ publicKey?: string;
20
+ /** ePayco PRIVATE_KEY. Falls back to `EPAYCO_PRIVATE_KEY`. */
21
+ privateKey?: string;
22
+ /** Run against the ePayco sandbox. Falls back to `EPAYCO_TEST_MODE === "true"`. */
23
+ testMode?: boolean;
24
+ /** API language ("ES" | "EN"). Falls back to `EPAYCO_LANG` or "ES". */
25
+ lang?: string;
26
+ }
27
+ /**
28
+ * Host-side client for the ePayco component. Construct it once with the
29
+ * component reference and (optionally) credentials, then call its methods from
30
+ * your own actions/queries. Credentials are read from the environment by
31
+ * default so secrets never need to be hard-coded.
32
+ */
33
+ export declare class EPayco {
34
+ component: ComponentApi;
35
+ private options;
36
+ constructor(component: ComponentApi, options?: EPaycoOptions);
37
+ private creds;
38
+ createToken(ctx: ActionCtx, args: {
39
+ userId: string;
40
+ tokenInfo: TokenInfo;
41
+ }): Promise<any>;
42
+ getLocalTokens(ctx: QueryCtx, args: {
43
+ userId: string;
44
+ }): Promise<any>;
45
+ createCustomer(ctx: ActionCtx, args: {
46
+ userId: string;
47
+ customerInfo: CustomerInfo;
48
+ }): Promise<any>;
49
+ getCustomer(ctx: ActionCtx, args: {
50
+ epaycoCustomerId: string;
51
+ userId: string;
52
+ }): Promise<any>;
53
+ listCustomers(ctx: ActionCtx, args?: {
54
+ page?: number;
55
+ perPage?: number;
56
+ }): Promise<any>;
57
+ updateCustomer(ctx: ActionCtx, args: {
58
+ userId: string;
59
+ epaycoCustomerId: string;
60
+ name?: string;
61
+ lastName?: string;
62
+ email?: string;
63
+ phone?: string;
64
+ cellPhone?: string;
65
+ city?: string;
66
+ address?: string;
67
+ }): Promise<any>;
68
+ deleteCustomerCard(ctx: ActionCtx, args: {
69
+ franchise: string;
70
+ mask: string;
71
+ customerId: string;
72
+ }): Promise<any>;
73
+ addDefaultCard(ctx: ActionCtx, args: {
74
+ customerId: string;
75
+ token: string;
76
+ franchise: string;
77
+ mask: string;
78
+ }): Promise<any>;
79
+ addNewToken(ctx: ActionCtx, args: {
80
+ customerId: string;
81
+ tokenCard: string;
82
+ }): Promise<any>;
83
+ getLocalCustomer(ctx: QueryCtx, args: {
84
+ userId: string;
85
+ }): Promise<any>;
86
+ createPlan(ctx: ActionCtx, args: {
87
+ planInfo: PlanInfo;
88
+ }): Promise<any>;
89
+ getPlan(ctx: ActionCtx, args: {
90
+ epaycoPlanId: string;
91
+ }): Promise<any>;
92
+ listPlans(ctx: ActionCtx): Promise<any>;
93
+ updatePlan(ctx: ActionCtx, args: {
94
+ epaycoPlanId: string;
95
+ name?: string;
96
+ description?: string;
97
+ amount?: number;
98
+ currency?: string;
99
+ interval?: string;
100
+ intervalCount?: number;
101
+ trialDays?: number;
102
+ }): Promise<any>;
103
+ deletePlan(ctx: ActionCtx, args: {
104
+ epaycoPlanId: string;
105
+ }): Promise<any>;
106
+ getLocalPlan(ctx: QueryCtx, args: {
107
+ epaycoPlanId: string;
108
+ }): Promise<any>;
109
+ listLocalPlans(ctx: QueryCtx, args?: {
110
+ status?: string;
111
+ }): Promise<any>;
112
+ createSubscription(ctx: ActionCtx, args: {
113
+ userId: string;
114
+ subscriptionInfo: SubscriptionInfo;
115
+ }): Promise<any>;
116
+ getSubscription(ctx: ActionCtx, args: {
117
+ epaycoSubscriptionId: string;
118
+ }): Promise<any>;
119
+ listSubscriptionsFromEpayco(ctx: ActionCtx): Promise<any>;
120
+ cancelSubscription(ctx: ActionCtx, args: {
121
+ epaycoSubscriptionId: string;
122
+ }): Promise<any>;
123
+ chargeSubscription(ctx: ActionCtx, args: {
124
+ userId: string;
125
+ idPlan: string;
126
+ customer: string;
127
+ tokenCard: string;
128
+ docType: string;
129
+ docNumber: string;
130
+ ip?: string;
131
+ }): Promise<any>;
132
+ getActiveSubscription(ctx: QueryCtx, args: {
133
+ userId: string;
134
+ }): Promise<any>;
135
+ listSubscriptions(ctx: QueryCtx, args: {
136
+ userId: string;
137
+ }): Promise<any>;
138
+ chargeCreditCard(ctx: ActionCtx, args: {
139
+ userId: string;
140
+ chargeInfo: ChargeInfo;
141
+ }): Promise<any>;
142
+ getCharge(ctx: ActionCtx, args: {
143
+ epaycoRef: string;
144
+ }): Promise<any>;
145
+ createPseTransaction(ctx: ActionCtx, args: {
146
+ userId: string;
147
+ pseInfo: PseInfo;
148
+ }): Promise<any>;
149
+ getPseTransaction(ctx: ActionCtx, args: {
150
+ ticketId: string;
151
+ }): Promise<any>;
152
+ getBanks(ctx: ActionCtx): Promise<any>;
153
+ listLocalBanks(ctx: QueryCtx): Promise<any>;
154
+ createCashPayment(ctx: ActionCtx, args: {
155
+ userId: string;
156
+ provider: CashProvider;
157
+ cashInfo: CashInfo;
158
+ }): Promise<any>;
159
+ getCashPayment(ctx: ActionCtx, args: {
160
+ epaycoRef: string;
161
+ }): Promise<any>;
162
+ createDaviplataPayment(ctx: ActionCtx, args: {
163
+ userId: string;
164
+ daviplataInfo: DaviplataInfo;
165
+ }): Promise<any>;
166
+ confirmDaviplataPayment(ctx: ActionCtx, args: {
167
+ refPayco: string;
168
+ idSessionToken: string;
169
+ otp: string;
170
+ }): Promise<any>;
171
+ createSafetyPayPayment(ctx: ActionCtx, args: {
172
+ userId: string;
173
+ safetypayInfo: SafetyPayInfo;
174
+ }): Promise<any>;
175
+ getTransaction(ctx: QueryCtx, args: {
176
+ epaycoRef: string;
177
+ }): Promise<any>;
178
+ listTransactions(ctx: QueryCtx, args: {
179
+ userId: string;
180
+ status?: string;
181
+ paymentMethod?: "credit_card" | "pse" | "cash" | "daviplata" | "safetypay";
182
+ limit?: number;
183
+ }): Promise<any>;
184
+ }
185
+ /**
186
+ * Build a set of public, auth-gated queries the host app can re-export directly
187
+ * to its clients, so reactive reads don't need a bespoke wrapper per app.
188
+ */
189
+ export declare function exposeApi(component: ComponentApi, options: {
190
+ auth: (ctx: {
191
+ auth: Auth;
192
+ }, operation: {
193
+ type: "read";
194
+ } | {
195
+ type: "create";
196
+ } | {
197
+ type: "manage";
198
+ }) => Promise<string>;
199
+ }): {
200
+ listTransactions: import("convex/server").RegisteredQuery<"public", {
201
+ limit?: number | undefined;
202
+ status?: string | undefined;
203
+ }, Promise<any>>;
204
+ getTransaction: import("convex/server").RegisteredQuery<"public", {
205
+ epaycoRef: string;
206
+ }, Promise<any>>;
207
+ getCustomer: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
208
+ listSubscriptions: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
209
+ getActiveSubscription: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
210
+ };
211
+ /**
212
+ * Register ePayco webhook (confirmation) and response HTTP routes on the host's
213
+ * router. `custIdCliente` / `pKey` are used to verify the confirmation
214
+ * signature and default to `EPAYCO_P_CUST_ID_CLIENTE` / `EPAYCO_P_KEY`.
215
+ */
216
+ export declare function registerRoutes(http: HttpRouter, component: ComponentApi, options?: {
217
+ pathPrefix?: string;
218
+ custIdCliente?: string;
219
+ pKey?: string;
220
+ }): void;
221
+ export {};
222
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,355 @@
1
+ import { httpActionGeneric, queryGeneric } from "convex/server";
2
+ import { v } from "convex/values";
3
+ import { chargeInfoValidator, customerInfoValidator, cashInfoValidator, cashProviderValidator, daviplataInfoValidator, planInfoValidator, pseInfoValidator, safetypayInfoValidator, subscriptionInfoValidator, tokenInfoValidator, } from "../component/validators.js";
4
+ /**
5
+ * Host-side client for the ePayco component. Construct it once with the
6
+ * component reference and (optionally) credentials, then call its methods from
7
+ * your own actions/queries. Credentials are read from the environment by
8
+ * default so secrets never need to be hard-coded.
9
+ */
10
+ export class EPayco {
11
+ component;
12
+ options;
13
+ constructor(component, options) {
14
+ this.component = component;
15
+ this.options = options ?? {};
16
+ }
17
+ creds() {
18
+ const apiKey = this.options.publicKey ?? process.env.EPAYCO_PUBLIC_KEY;
19
+ const privateKey = this.options.privateKey ?? process.env.EPAYCO_PRIVATE_KEY;
20
+ if (!apiKey || !privateKey) {
21
+ throw new Error("ePayco credentials are required: set EPAYCO_PUBLIC_KEY and EPAYCO_PRIVATE_KEY (or pass publicKey/privateKey to the EPayco constructor).");
22
+ }
23
+ return {
24
+ apiKey,
25
+ privateKey,
26
+ testMode: this.options.testMode ?? process.env.EPAYCO_TEST_MODE === "true",
27
+ lang: this.options.lang ?? process.env.EPAYCO_LANG ?? "ES",
28
+ };
29
+ }
30
+ // --- Tokens ---
31
+ async createToken(ctx, args) {
32
+ return await ctx.runAction(this.component.tokensApi.createToken, {
33
+ credentials: this.creds(),
34
+ ...args,
35
+ });
36
+ }
37
+ async getLocalTokens(ctx, args) {
38
+ return await ctx.runQuery(this.component.tokens.getLocalTokens, args);
39
+ }
40
+ // --- Customers ---
41
+ async createCustomer(ctx, args) {
42
+ return await ctx.runAction(this.component.customersApi.createCustomer, {
43
+ credentials: this.creds(),
44
+ ...args,
45
+ });
46
+ }
47
+ async getCustomer(ctx, args) {
48
+ return await ctx.runAction(this.component.customersApi.getCustomer, {
49
+ credentials: this.creds(),
50
+ ...args,
51
+ });
52
+ }
53
+ async listCustomers(ctx, args = {}) {
54
+ return await ctx.runAction(this.component.customersApi.listCustomers, {
55
+ credentials: this.creds(),
56
+ ...args,
57
+ });
58
+ }
59
+ async updateCustomer(ctx, args) {
60
+ return await ctx.runAction(this.component.customersApi.updateCustomer, {
61
+ credentials: this.creds(),
62
+ ...args,
63
+ });
64
+ }
65
+ async deleteCustomerCard(ctx, args) {
66
+ return await ctx.runAction(this.component.customersApi.deleteCustomerCard, {
67
+ credentials: this.creds(),
68
+ ...args,
69
+ });
70
+ }
71
+ async addDefaultCard(ctx, args) {
72
+ return await ctx.runAction(this.component.customersApi.addDefaultCard, {
73
+ credentials: this.creds(),
74
+ ...args,
75
+ });
76
+ }
77
+ async addNewToken(ctx, args) {
78
+ return await ctx.runAction(this.component.customersApi.addNewToken, {
79
+ credentials: this.creds(),
80
+ ...args,
81
+ });
82
+ }
83
+ async getLocalCustomer(ctx, args) {
84
+ return await ctx.runQuery(this.component.customers.getLocalCustomer, args);
85
+ }
86
+ // --- Plans ---
87
+ async createPlan(ctx, args) {
88
+ return await ctx.runAction(this.component.plansApi.createPlan, {
89
+ credentials: this.creds(),
90
+ ...args,
91
+ });
92
+ }
93
+ async getPlan(ctx, args) {
94
+ return await ctx.runAction(this.component.plansApi.getPlan, {
95
+ credentials: this.creds(),
96
+ ...args,
97
+ });
98
+ }
99
+ async listPlans(ctx) {
100
+ return await ctx.runAction(this.component.plansApi.listPlans, {
101
+ credentials: this.creds(),
102
+ });
103
+ }
104
+ async updatePlan(ctx, args) {
105
+ return await ctx.runAction(this.component.plansApi.updatePlan, {
106
+ credentials: this.creds(),
107
+ ...args,
108
+ });
109
+ }
110
+ async deletePlan(ctx, args) {
111
+ return await ctx.runAction(this.component.plansApi.deletePlan, {
112
+ credentials: this.creds(),
113
+ ...args,
114
+ });
115
+ }
116
+ async getLocalPlan(ctx, args) {
117
+ return await ctx.runQuery(this.component.plans.getLocalPlan, args);
118
+ }
119
+ async listLocalPlans(ctx, args = {}) {
120
+ return await ctx.runQuery(this.component.plans.listLocalPlans, args);
121
+ }
122
+ // --- Subscriptions ---
123
+ async createSubscription(ctx, args) {
124
+ return await ctx.runAction(this.component.subscriptionsApi.createSubscription, { credentials: this.creds(), ...args });
125
+ }
126
+ async getSubscription(ctx, args) {
127
+ return await ctx.runAction(this.component.subscriptionsApi.getSubscription, { credentials: this.creds(), ...args });
128
+ }
129
+ async listSubscriptionsFromEpayco(ctx) {
130
+ return await ctx.runAction(this.component.subscriptionsApi.listSubscriptions, {
131
+ credentials: this.creds(),
132
+ });
133
+ }
134
+ async cancelSubscription(ctx, args) {
135
+ return await ctx.runAction(this.component.subscriptionsApi.cancelSubscription, { credentials: this.creds(), ...args });
136
+ }
137
+ async chargeSubscription(ctx, args) {
138
+ return await ctx.runAction(this.component.subscriptionsApi.chargeSubscription, { credentials: this.creds(), ...args });
139
+ }
140
+ async getActiveSubscription(ctx, args) {
141
+ return await ctx.runQuery(this.component.subscriptions.getActiveSubscription, args);
142
+ }
143
+ async listSubscriptions(ctx, args) {
144
+ return await ctx.runQuery(this.component.subscriptions.listLocalSubscriptionsByUser, args);
145
+ }
146
+ // --- Credit-card charges ---
147
+ async chargeCreditCard(ctx, args) {
148
+ return await ctx.runAction(this.component.chargesApi.createCharge, {
149
+ credentials: this.creds(),
150
+ ...args,
151
+ });
152
+ }
153
+ async getCharge(ctx, args) {
154
+ return await ctx.runAction(this.component.chargesApi.getCharge, {
155
+ credentials: this.creds(),
156
+ ...args,
157
+ });
158
+ }
159
+ // --- PSE ---
160
+ async createPseTransaction(ctx, args) {
161
+ return await ctx.runAction(this.component.pseApi.createPseTransaction, {
162
+ credentials: this.creds(),
163
+ ...args,
164
+ });
165
+ }
166
+ async getPseTransaction(ctx, args) {
167
+ return await ctx.runAction(this.component.pseApi.getPseTransaction, {
168
+ credentials: this.creds(),
169
+ ...args,
170
+ });
171
+ }
172
+ async getBanks(ctx) {
173
+ return await ctx.runAction(this.component.pseApi.getBanks, {
174
+ credentials: this.creds(),
175
+ });
176
+ }
177
+ async listLocalBanks(ctx) {
178
+ return await ctx.runQuery(this.component.banks.listLocalBanks, {});
179
+ }
180
+ // --- Cash ---
181
+ async createCashPayment(ctx, args) {
182
+ return await ctx.runAction(this.component.cashApi.createCashPayment, {
183
+ credentials: this.creds(),
184
+ ...args,
185
+ });
186
+ }
187
+ async getCashPayment(ctx, args) {
188
+ return await ctx.runAction(this.component.cashApi.getCashPayment, {
189
+ credentials: this.creds(),
190
+ ...args,
191
+ });
192
+ }
193
+ // --- Daviplata ---
194
+ async createDaviplataPayment(ctx, args) {
195
+ return await ctx.runAction(this.component.daviplataApi.createDaviplataPayment, { credentials: this.creds(), ...args });
196
+ }
197
+ async confirmDaviplataPayment(ctx, args) {
198
+ return await ctx.runAction(this.component.daviplataApi.confirmDaviplataPayment, { credentials: this.creds(), ...args });
199
+ }
200
+ // --- SafetyPay ---
201
+ async createSafetyPayPayment(ctx, args) {
202
+ return await ctx.runAction(this.component.safetypayApi.createSafetyPayPayment, { credentials: this.creds(), ...args });
203
+ }
204
+ // --- Transactions (local reactive reads) ---
205
+ async getTransaction(ctx, args) {
206
+ return await ctx.runQuery(this.component.transactions.getLocalTransaction, args);
207
+ }
208
+ async listTransactions(ctx, args) {
209
+ return await ctx.runQuery(this.component.transactions.listLocalTransactions, args);
210
+ }
211
+ }
212
+ /**
213
+ * Build a set of public, auth-gated queries the host app can re-export directly
214
+ * to its clients, so reactive reads don't need a bespoke wrapper per app.
215
+ */
216
+ export function exposeApi(component, options) {
217
+ return {
218
+ // NOTE: none of these queries accept a client-supplied `userId`. The scope
219
+ // is always the identity resolved by `options.auth`, so an authenticated
220
+ // caller can never widen access to another user's records.
221
+ listTransactions: queryGeneric({
222
+ args: {
223
+ status: v.optional(v.string()),
224
+ limit: v.optional(v.number()),
225
+ },
226
+ handler: async (ctx, args) => {
227
+ const userId = await options.auth(ctx, { type: "read" });
228
+ return await ctx.runQuery(component.transactions.listLocalTransactions, {
229
+ userId,
230
+ status: args.status,
231
+ limit: args.limit,
232
+ });
233
+ },
234
+ }),
235
+ getTransaction: queryGeneric({
236
+ args: { epaycoRef: v.string() },
237
+ handler: async (ctx, args) => {
238
+ const userId = await options.auth(ctx, { type: "read" });
239
+ const transaction = await ctx.runQuery(component.transactions.getLocalTransaction, { epaycoRef: args.epaycoRef });
240
+ // Transactions carry customer PII; only return it to its owner.
241
+ if (!transaction || transaction.userId !== userId)
242
+ return null;
243
+ return transaction;
244
+ },
245
+ }),
246
+ getCustomer: queryGeneric({
247
+ args: {},
248
+ handler: async (ctx) => {
249
+ const userId = await options.auth(ctx, { type: "read" });
250
+ return await ctx.runQuery(component.customers.getLocalCustomer, {
251
+ userId,
252
+ });
253
+ },
254
+ }),
255
+ listSubscriptions: queryGeneric({
256
+ args: {},
257
+ handler: async (ctx) => {
258
+ const userId = await options.auth(ctx, { type: "read" });
259
+ return await ctx.runQuery(component.subscriptions.listLocalSubscriptionsByUser, { userId });
260
+ },
261
+ }),
262
+ getActiveSubscription: queryGeneric({
263
+ args: {},
264
+ handler: async (ctx) => {
265
+ const userId = await options.auth(ctx, { type: "read" });
266
+ return await ctx.runQuery(component.subscriptions.getActiveSubscription, { userId });
267
+ },
268
+ }),
269
+ };
270
+ }
271
+ /**
272
+ * Register ePayco webhook (confirmation) and response HTTP routes on the host's
273
+ * router. `custIdCliente` / `pKey` are used to verify the confirmation
274
+ * signature and default to `EPAYCO_P_CUST_ID_CLIENTE` / `EPAYCO_P_KEY`.
275
+ */
276
+ export function registerRoutes(http, component, options = {}) {
277
+ const pathPrefix = options.pathPrefix ?? "/epayco";
278
+ const custIdCliente = options.custIdCliente ?? process.env.EPAYCO_P_CUST_ID_CLIENTE ?? "";
279
+ const pKey = options.pKey ?? process.env.EPAYCO_P_KEY ?? "";
280
+ const handleConfirmation = async (ctx, payload) => {
281
+ return await ctx.runAction(component.webhooks.processConfirmation, {
282
+ custIdCliente,
283
+ pKey,
284
+ payload,
285
+ });
286
+ };
287
+ http.route({
288
+ path: `${pathPrefix}/confirmation`,
289
+ method: "POST",
290
+ handler: httpActionGeneric(async (ctx, request) => {
291
+ const contentType = request.headers.get("content-type") ?? "";
292
+ let payload = {};
293
+ if (contentType.includes("application/json")) {
294
+ payload = await request.json();
295
+ }
296
+ else {
297
+ const form = await request.formData();
298
+ form.forEach((value, key) => {
299
+ payload[key] = typeof value === "string" ? value : "";
300
+ });
301
+ }
302
+ const result = await handleConfirmation(ctx, payload);
303
+ return new Response(JSON.stringify(result), {
304
+ status: 200,
305
+ headers: { "Content-Type": "application/json" },
306
+ });
307
+ }),
308
+ });
309
+ http.route({
310
+ path: `${pathPrefix}/confirmation`,
311
+ method: "GET",
312
+ handler: httpActionGeneric(async (ctx, request) => {
313
+ const url = new URL(request.url);
314
+ const payload = {};
315
+ url.searchParams.forEach((value, key) => {
316
+ payload[key] = value;
317
+ });
318
+ const result = await handleConfirmation(ctx, payload);
319
+ return new Response(JSON.stringify(result), {
320
+ status: 200,
321
+ headers: { "Content-Type": "application/json" },
322
+ });
323
+ }),
324
+ });
325
+ http.route({
326
+ path: `${pathPrefix}/response`,
327
+ method: "GET",
328
+ handler: httpActionGeneric(async (ctx, request) => {
329
+ const url = new URL(request.url);
330
+ const refPayco = url.searchParams.get("ref_payco");
331
+ if (!refPayco) {
332
+ return new Response(JSON.stringify({ error: "ref_payco parameter required" }), { status: 400, headers: { "Content-Type": "application/json" } });
333
+ }
334
+ const transaction = await ctx.runQuery(component.transactions.getLocalTransaction, { epaycoRef: refPayco });
335
+ // This endpoint is public (ePayco redirects the buyer's browser here),
336
+ // so expose only a minimal status payload — never the full row, which
337
+ // holds customerEmail, responseMessage, splitReceivers and rawResponse.
338
+ const body = transaction
339
+ ? {
340
+ found: true,
341
+ ref_payco: transaction.epaycoRef,
342
+ status: transaction.status,
343
+ paymentMethod: transaction.paymentMethod,
344
+ amount: transaction.amount,
345
+ currency: transaction.currency,
346
+ }
347
+ : { found: false };
348
+ return new Response(JSON.stringify(body), {
349
+ status: 200,
350
+ headers: { "Content-Type": "application/json" },
351
+ });
352
+ }),
353
+ });
354
+ }
355
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}