@mohasinac/appkit 4.41.16 → 4.42.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/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +1 -1
- package/dist/_internal/server/features/checkout/actions.d.ts +16 -14
- package/dist/_internal/server/features/checkout/actions.js +145 -97
- package/dist/_internal/server/features/checkout/bundle-expansion.d.ts +1 -1
- package/dist/_internal/server/features/checkout/index.d.ts +1 -1
- package/dist/_internal/server/features/checkout/index.js +1 -1
- package/dist/_internal/server/features/checkout/locked-lines.js +1 -1
- package/dist/_internal/server/features/checkout/source-context.js +2 -2
- package/dist/_internal/server/features/maintenance/analyze.js +1 -1
- package/dist/_internal/server/features/refunds/actions.d.ts +4 -4
- package/dist/_internal/server/features/refunds/actions.js +9 -8
- package/dist/_internal/server/functions/scheduled.d.ts +1 -2
- package/dist/_internal/server/functions/scheduled.js +1 -9
- package/dist/_internal/server/jobs/core/index.d.ts +0 -1
- package/dist/_internal/server/jobs/core/index.js +0 -1
- package/dist/_internal/server/jobs/handlers/index.d.ts +0 -1
- package/dist/_internal/server/jobs/handlers/index.js +0 -1
- package/dist/_internal/shared/actions/action-registry.js +2 -2
- package/dist/_internal/shared/checkout/order-math.d.ts +1 -1
- package/dist/_internal/shared/checkout/order-math.js +1 -1
- package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +2 -2
- package/dist/_internal/shared/features/blog/schema.d.ts +4 -4
- package/dist/_internal/shared/features/cart/schema.d.ts +6 -6
- package/dist/_internal/shared/features/orders/refund-copy.d.ts +1 -1
- package/dist/_internal/shared/features/orders/refund-copy.js +1 -1
- package/dist/_internal/shared/features/orders/schema.d.ts +5 -5
- package/dist/_internal/shared/features/orders/schema.js +1 -1
- package/dist/_internal/shared/features/products/schema.d.ts +2 -2
- package/dist/_internal/shared/features/promotions/schema.d.ts +4 -4
- package/dist/_internal/shared/features/reviews/schema.d.ts +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/configs/next.js +2 -2
- package/dist/constants/field-names.d.ts +1 -1
- package/dist/constants/field-names.js +1 -1
- package/dist/contracts/index.d.ts +0 -2
- package/dist/contracts/index.js +0 -1
- package/dist/contracts/payment.d.ts +13 -2
- package/dist/contracts/payment.js +2 -2
- package/dist/core/integration-keys.d.ts +7 -3
- package/dist/core/integration-keys.js +13 -7
- package/dist/core/money.d.ts +11 -0
- package/dist/core/money.js +15 -0
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/messages.d.ts +1 -0
- package/dist/errors/messages.js +1 -0
- package/dist/errors/{razorpay-unreachable.d.ts → payment-provider-unreachable.d.ts} +1 -1
- package/dist/errors/{razorpay-unreachable.js → payment-provider-unreachable.js} +1 -1
- package/dist/features/addresses/schemas/address-form.d.ts +20 -20
- package/dist/features/addresses/schemas/index.d.ts +2 -2
- package/dist/features/admin/components/AdminSiteSettingsView.js +32 -16
- package/dist/features/admin/constants/site-settings-tabs.d.ts +1 -1
- package/dist/features/admin/schemas/admin-ops-forms.d.ts +10 -10
- package/dist/features/admin/schemas/admin-user-form.d.ts +2 -2
- package/dist/features/admin/schemas/firestore.d.ts +17 -8
- package/dist/features/admin/schemas/firestore.js +1 -1
- package/dist/features/admin/schemas/nav-item-form.d.ts +2 -2
- package/dist/features/auctions/schemas/index.d.ts +2 -2
- package/dist/features/auth/schemas/index.d.ts +2 -2
- package/dist/features/before-after/schemas/index.d.ts +2 -2
- package/dist/features/blog/actions/blog-actions.d.ts +4 -4
- package/dist/features/blog/schemas/blog-form.d.ts +2 -2
- package/dist/features/blog/schemas/index.d.ts +4 -4
- package/dist/features/cart/schemas/index.d.ts +3 -3
- package/dist/features/catalogue/schemas/validation.d.ts +4 -4
- package/dist/features/categories/schemas/index.d.ts +2 -2
- package/dist/features/checkout/index.d.ts +0 -4
- package/dist/features/checkout/index.js +0 -3
- package/dist/features/checkout/types/index.d.ts +0 -25
- package/dist/features/checkout/types/index.js +1 -2
- package/dist/features/collections/schemas/index.d.ts +2 -2
- package/dist/features/consultation/schemas/index.d.ts +4 -4
- package/dist/features/corporate/schemas/index.d.ts +2 -2
- package/dist/features/events/schemas/index.d.ts +4 -4
- package/dist/features/grouped/schemas/index.d.ts +2 -2
- package/dist/features/homepage/schemas/index.d.ts +2 -2
- package/dist/features/lottery/schemas/zod.d.ts +4 -4
- package/dist/features/loyalty/schemas/index.d.ts +6 -6
- package/dist/features/orders/components/OrderPaymentSummary.d.ts +1 -1
- package/dist/features/orders/components/OrderPaymentSummary.js +5 -5
- package/dist/features/orders/components/RefundHistoryTable.js +1 -1
- package/dist/features/orders/repository/orders.repository.d.ts +10 -1
- package/dist/features/orders/repository/orders.repository.js +17 -1
- package/dist/features/orders/schemas/firestore.d.ts +11 -12
- package/dist/features/orders/schemas/firestore.js +0 -1
- package/dist/features/orders/schemas/index.d.ts +48 -48
- package/dist/features/orders/schemas/index.js +1 -1
- package/dist/features/orders/types/index.d.ts +1 -3
- package/dist/features/orders/types/index.js +1 -2
- package/dist/features/payments/manifest.js +1 -1
- package/dist/features/payments/repository/payout.repository.d.ts +1 -4
- package/dist/features/payments/repository/payout.repository.js +0 -29
- package/dist/features/payments/schemas/firestore.d.ts +8 -15
- package/dist/features/payments/schemas/firestore.js +7 -5
- package/dist/features/payments/schemas/index.d.ts +52 -125
- package/dist/features/payments/schemas/index.js +0 -58
- package/dist/features/payments/types/index.d.ts +2 -4
- package/dist/features/payments/types/index.js +1 -2
- package/dist/features/products/schemas/index.d.ts +14 -14
- package/dist/features/products/schemas/product-features.validators.d.ts +10 -10
- package/dist/features/promotions/schemas/index.d.ts +20 -20
- package/dist/features/reviews/schemas/index.d.ts +8 -8
- package/dist/features/scams/schemas/index.d.ts +10 -10
- package/dist/features/search/action-index/settings-entries.js +4 -4
- package/dist/features/seller/schemas/index.d.ts +12 -12
- package/dist/features/seller/schemas/order-forms.d.ts +4 -4
- package/dist/features/shipments/schemas/validation.d.ts +28 -28
- package/dist/features/store-extensions/schemas/payout-method-form.d.ts +50 -50
- package/dist/features/store-extensions/schemas/report-create-form.d.ts +2 -2
- package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +10 -10
- package/dist/features/support/schemas/index.d.ts +14 -14
- package/dist/features/tester/actions/checklist-item-actions.d.ts +4 -4
- package/dist/features/tester/schemas/checklist-item-form.d.ts +2 -2
- package/dist/features/tester/seed-data/_money-flows.js +145 -0
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +21 -2
- package/dist/features/tester/seed-data/authored/admin__site-system.js +38 -0
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +10 -10
- package/dist/features/tester/seed-data/authored/buying__offers.js +11 -10
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +1 -1
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +24 -12
- package/dist/features/wishlist/schemas/index.d.ts +2 -2
- package/dist/index.d.ts +6 -28
- package/dist/index.js +8 -51
- package/dist/jobs.d.ts +1 -1
- package/dist/jobs.js +1 -1
- package/dist/providers/payment-phonepe/index.d.ts +117 -0
- package/dist/providers/payment-phonepe/index.js +221 -0
- package/dist/providers.d.ts +3 -2
- package/dist/providers.js +3 -2
- package/dist/schemas/registry.d.ts +163 -2623
- package/dist/schemas/registry.js +1 -6
- package/dist/seed/faq-seed-data.js +5 -5
- package/dist/seed/payouts-seed-data.js +3 -3
- package/dist/seed/site-settings-seed-data.js +7 -4
- package/dist/server-entry.d.ts +1 -2
- package/dist/server-entry.js +1 -3
- package/dist/server.d.ts +3 -9
- package/dist/server.js +5 -23
- package/dist/validation/schemas.d.ts +2 -2
- package/package.json +5 -4
- package/dist/_internal/server/features/payments/actions.d.ts +0 -30
- package/dist/_internal/server/features/payments/actions.js +0 -45
- package/dist/_internal/server/features/payments/data.d.ts +0 -13
- package/dist/_internal/server/features/payments/data.js +0 -20
- package/dist/_internal/server/features/payments/index.d.ts +0 -3
- package/dist/_internal/server/features/payments/index.js +0 -3
- package/dist/_internal/server/jobs/core/payoutBatch.d.ts +0 -2
- package/dist/_internal/server/jobs/core/payoutBatch.js +0 -120
- package/dist/_internal/server/jobs/handlers/payoutBatch.d.ts +0 -2
- package/dist/_internal/server/jobs/handlers/payoutBatch.js +0 -2
- package/dist/_internal/shared/features/payments/config.d.ts +0 -3
- package/dist/_internal/shared/features/payments/config.js +0 -3
- package/dist/contracts/client-payment-gateway.d.ts +0 -64
- package/dist/contracts/client-payment-gateway.js +0 -25
- package/dist/features/checkout/hooks/useCheckout.d.ts +0 -9
- package/dist/features/checkout/hooks/useCheckout.js +0 -24
- package/dist/features/checkout/hooks/useCheckoutApi.d.ts +0 -72
- package/dist/features/checkout/hooks/useCheckoutApi.js +0 -47
- package/dist/features/checkout/hooks/usePaymentCheckout.d.ts +0 -77
- package/dist/features/checkout/hooks/usePaymentCheckout.js +0 -192
- package/dist/providers/payment-razorpay/index.d.ts +0 -115
- package/dist/providers/payment-razorpay/index.js +0 -208
- package/dist/schemas/webhooks/razorpay.d.ts +0 -2634
- package/dist/schemas/webhooks/razorpay.js +0 -104
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @mohasinac/payment-razorpay — Razorpay IPaymentProvider implementation
|
|
3
|
-
*
|
|
4
|
-
* Implements the @mohasinac/contracts IPaymentProvider interface.
|
|
5
|
-
* Accepts credentials via constructor — no Firestore or DB dependency.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { RazorpayProvider } from "@mohasinac/payment-razorpay";
|
|
10
|
-
* import { registerProviders } from "../../contracts";
|
|
11
|
-
*
|
|
12
|
-
* registerProviders({
|
|
13
|
-
* payment: new RazorpayProvider({
|
|
14
|
-
* keyId: process.env.RAZORPAY_KEY_ID!,
|
|
15
|
-
* keySecret: process.env.RAZORPAY_KEY_SECRET!,
|
|
16
|
-
* webhookSecret: process.env.RAZORPAY_WEBHOOK_SECRET,
|
|
17
|
-
* }),
|
|
18
|
-
* });
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
import Razorpay from "razorpay";
|
|
22
|
-
import { createHmac, timingSafeEqual } from "crypto";
|
|
23
|
-
import { IPaymentProvider } from "../../contracts";
|
|
24
|
-
import { getDefaultCurrency } from "../../core/baseline-resolver";
|
|
25
|
-
// --- IPaymentProvider implementation ------------------------------------------
|
|
26
|
-
export class RazorpayProvider extends IPaymentProvider {
|
|
27
|
-
constructor(config) {
|
|
28
|
-
super();
|
|
29
|
-
this.name = "razorpay";
|
|
30
|
-
this.razorpay = new Razorpay({
|
|
31
|
-
key_id: config.keyId,
|
|
32
|
-
key_secret: config.keySecret,
|
|
33
|
-
});
|
|
34
|
-
this.webhookSecret = config.webhookSecret;
|
|
35
|
-
}
|
|
36
|
-
async createOrder(amount, currency, metadata) {
|
|
37
|
-
const resolvedCurrency = currency ?? getDefaultCurrency();
|
|
38
|
-
const order = await this.razorpay.orders.create({
|
|
39
|
-
amount,
|
|
40
|
-
currency: resolvedCurrency,
|
|
41
|
-
notes: metadata,
|
|
42
|
-
});
|
|
43
|
-
return {
|
|
44
|
-
id: String(order.id),
|
|
45
|
-
amount: Number(order.amount),
|
|
46
|
-
currency: String(order.currency),
|
|
47
|
-
status: "created",
|
|
48
|
-
receipt: order.receipt ?? undefined,
|
|
49
|
-
metadata,
|
|
50
|
-
createdAt: new Date(Number(order.created_at) * 1000).toISOString(),
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Verify Razorpay webhook signature (HMAC-SHA256 over raw body).
|
|
55
|
-
* Requires webhookSecret to be set in the constructor.
|
|
56
|
-
*/
|
|
57
|
-
verifyWebhook(payload, signature) {
|
|
58
|
-
if (!this.webhookSecret)
|
|
59
|
-
return false;
|
|
60
|
-
const expected = createHmac("sha256", this.webhookSecret)
|
|
61
|
-
.update(payload)
|
|
62
|
-
.digest("hex");
|
|
63
|
-
if (signature.length !== 64 || expected.length !== 64)
|
|
64
|
-
return false;
|
|
65
|
-
return timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(signature, "hex"));
|
|
66
|
-
}
|
|
67
|
-
async capturePayment(paymentId) {
|
|
68
|
-
const payment = await this.razorpay.payments.fetch(paymentId);
|
|
69
|
-
return {
|
|
70
|
-
id: String(payment.id),
|
|
71
|
-
orderId: String(payment.order_id ?? ""),
|
|
72
|
-
amount: Number(payment.amount),
|
|
73
|
-
currency: String(payment.currency),
|
|
74
|
-
status: payment.status === "captured" ? "captured" : "failed",
|
|
75
|
-
capturedAt: new Date().toISOString(),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
async refund(paymentId, amount) {
|
|
79
|
-
const refundData = {};
|
|
80
|
-
if (amount !== undefined)
|
|
81
|
-
refundData.amount = amount;
|
|
82
|
-
const result = await this.razorpay.payments.refund(paymentId, refundData);
|
|
83
|
-
return {
|
|
84
|
-
id: String(result.id),
|
|
85
|
-
paymentId,
|
|
86
|
-
amount: Number(result.amount),
|
|
87
|
-
currency: String(result.currency),
|
|
88
|
-
status: result.status === "processed" ? "processed" : "pending",
|
|
89
|
-
createdAt: new Date(Number(result.created_at) * 1000).toISOString(),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
async getOrder(orderId) {
|
|
93
|
-
const order = await this.razorpay.orders.fetch(orderId);
|
|
94
|
-
return {
|
|
95
|
-
id: String(order.id),
|
|
96
|
-
amount: Number(order.amount),
|
|
97
|
-
currency: String(order.currency),
|
|
98
|
-
status: "created",
|
|
99
|
-
receipt: order.receipt ?? undefined,
|
|
100
|
-
createdAt: new Date(Number(order.created_at) * 1000).toISOString(),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// --- Utility exports ----------------------------------------------------------
|
|
105
|
-
/** Convert rupees (float) → paise (integer) for Razorpay amount field */
|
|
106
|
-
export function rupeesToPaise(rupees) {
|
|
107
|
-
return Math.round(rupees * 100);
|
|
108
|
-
}
|
|
109
|
-
/** Convert paise (integer) → rupees (float) */
|
|
110
|
-
export function paiseToRupees(paise) {
|
|
111
|
-
return paise / 100;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Verify Razorpay payment signature.
|
|
115
|
-
* Uses HMAC-SHA256 over `{orderId}|{paymentId}` with the key secret.
|
|
116
|
-
*/
|
|
117
|
-
export function verifyPaymentSignature(params, keySecret) {
|
|
118
|
-
if (!keySecret)
|
|
119
|
-
return false;
|
|
120
|
-
const expected = createHmac("sha256", keySecret)
|
|
121
|
-
.update(`${params.razorpay_order_id}|${params.razorpay_payment_id}`)
|
|
122
|
-
.digest("hex");
|
|
123
|
-
if (params.razorpay_signature.length !== 64)
|
|
124
|
-
return false;
|
|
125
|
-
return timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(params.razorpay_signature, "hex"));
|
|
126
|
-
}
|
|
127
|
-
// --- Standalone API helpers (auto-credential resolution via resolveKeys) ------
|
|
128
|
-
// These resolve credentials from Firestore → env fallback so callers don't
|
|
129
|
-
// need to instantiate RazorpayProvider or pass credentials explicitly.
|
|
130
|
-
import { resolveKeys } from "../../core/integration-keys";
|
|
131
|
-
async function getRazorpayInstance() {
|
|
132
|
-
const keys = await resolveKeys();
|
|
133
|
-
if (!keys.razorpayKeyId || !keys.razorpayKeySecret) {
|
|
134
|
-
throw new Error("Razorpay credentials are missing. Configure them in Admin › Site Settings › Credentials, or set RAZORPAY_KEY_ID and RAZORPAY_KEY_SECRET in .env.local");
|
|
135
|
-
}
|
|
136
|
-
return new Razorpay({
|
|
137
|
-
key_id: keys.razorpayKeyId,
|
|
138
|
-
key_secret: keys.razorpayKeySecret,
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Create a Razorpay order. Credentials resolved from Firestore → env.
|
|
143
|
-
* @deprecated Use `getProviders().payment.createOrder()` via `IPaymentProvider` instead.
|
|
144
|
-
* @internal Will be removed in a future version.
|
|
145
|
-
*/
|
|
146
|
-
export async function createRazorpayOrder(opts) {
|
|
147
|
-
const razorpay = await getRazorpayInstance();
|
|
148
|
-
const order = await razorpay.orders.create({
|
|
149
|
-
amount: opts.amount,
|
|
150
|
-
currency: opts.currency ?? getDefaultCurrency(),
|
|
151
|
-
receipt: opts.receipt ?? `rcpt_${Date.now()}`,
|
|
152
|
-
notes: opts.notes,
|
|
153
|
-
});
|
|
154
|
-
return order;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Fetch an existing Razorpay order by ID.
|
|
158
|
-
* @deprecated Use `getProviders().payment.getOrder()` via `IPaymentProvider` instead.
|
|
159
|
-
* @internal Will be removed in a future version.
|
|
160
|
-
*/
|
|
161
|
-
export async function fetchRazorpayOrder(orderId) {
|
|
162
|
-
const razorpay = await getRazorpayInstance();
|
|
163
|
-
const order = await razorpay.orders.fetch(orderId);
|
|
164
|
-
return order;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Verify Razorpay payment signature — auto-resolves key secret.
|
|
168
|
-
* Returns false if credentials are unavailable.
|
|
169
|
-
* @deprecated Use `getProviders().payment.verifyWebhook()` via `IPaymentProvider` instead.
|
|
170
|
-
* @internal Will be removed in a future version.
|
|
171
|
-
*/
|
|
172
|
-
export async function verifyPaymentSignatureWithKeys(params) {
|
|
173
|
-
const { razorpayKeySecret } = await resolveKeys();
|
|
174
|
-
if (!razorpayKeySecret)
|
|
175
|
-
return false;
|
|
176
|
-
return verifyPaymentSignature(params, razorpayKeySecret);
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Verify Razorpay webhook signature — auto-resolves webhook secret.
|
|
180
|
-
* Uses HMAC-SHA256 over raw body.
|
|
181
|
-
* @deprecated Use `getProviders().payment.verifyWebhook()` via `IPaymentProvider` instead.
|
|
182
|
-
* @internal Will be removed in a future version.
|
|
183
|
-
*/
|
|
184
|
-
export async function verifyWebhookSignature(rawBody, receivedSignature) {
|
|
185
|
-
const { razorpayWebhookSecret } = await resolveKeys();
|
|
186
|
-
if (!razorpayWebhookSecret) {
|
|
187
|
-
throw new Error("Razorpay webhook secret is not configured");
|
|
188
|
-
}
|
|
189
|
-
const expected = createHmac("sha256", razorpayWebhookSecret)
|
|
190
|
-
.update(rawBody)
|
|
191
|
-
.digest("hex");
|
|
192
|
-
if (receivedSignature.length !== 64)
|
|
193
|
-
return false;
|
|
194
|
-
return timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(receivedSignature, "hex"));
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Create a full or partial refund for a Razorpay payment.
|
|
198
|
-
* @deprecated Use `getProviders().payment.refund()` via `IPaymentProvider` instead.
|
|
199
|
-
* @internal Will be removed in a future version.
|
|
200
|
-
*/
|
|
201
|
-
export async function createRazorpayRefund(paymentId, amountPaise) {
|
|
202
|
-
const razorpay = await getRazorpayInstance();
|
|
203
|
-
const opts = {};
|
|
204
|
-
if (amountPaise)
|
|
205
|
-
opts.amount = amountPaise;
|
|
206
|
-
const refund = await razorpay.payments.refund(paymentId, opts);
|
|
207
|
-
return refund;
|
|
208
|
-
}
|