@neocleus/razorpay-firebase-functions 1.0.6 → 1.0.8
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/lib/admin.d.ts +1 -2
- package/lib/admin.js +13 -54
- package/lib/admin.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/triggers/createCustomer.js +1 -1
- package/lib/triggers/createCustomer.js.map +1 -1
- package/lib/utils/index.d.ts +1 -10
- package/lib/utils/index.js +1 -55
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
package/lib/admin.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import Razorpay from 'razorpay';
|
|
2
2
|
import { RazorpaySyncConfig, ProductDoc } from './types';
|
|
3
|
-
export declare const buildCreatePlan: (config: RazorpaySyncConfig, rzp: Razorpay) => import("firebase-functions/v2/https").CallableFunction<any, Promise<
|
|
3
|
+
export declare const buildCreatePlan: (config: RazorpaySyncConfig, rzp: Razorpay) => import("firebase-functions/v2/https").CallableFunction<any, Promise<import("./types").SanitizedPlan>, unknown>;
|
|
4
4
|
export declare const buildSyncPlans: (config: RazorpaySyncConfig, rzp: Razorpay) => import("firebase-functions/v2/https").CallableFunction<any, Promise<{
|
|
5
5
|
status: string;
|
|
6
6
|
count: number;
|
|
7
|
-
productsCount: number;
|
|
8
7
|
}>, unknown>;
|
|
9
8
|
export declare const buildCreateProduct: (config: RazorpaySyncConfig) => import("firebase-functions/v2/https").CallableFunction<import("@neocleus/razorpay-firebase-types").CreateProductRequest, Promise<ProductDoc>, unknown>;
|
package/lib/admin.js
CHANGED
|
@@ -57,9 +57,12 @@ const buildCreatePlan = (config, rzp) => {
|
|
|
57
57
|
notes
|
|
58
58
|
});
|
|
59
59
|
const db = admin.firestore();
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
const typedFs = new typedFirestore_1.TypedFirestore(db, config);
|
|
61
|
+
const planRef = typedFs.getPlanDoc(plan.id);
|
|
62
|
+
const planData = (0, utils_1.sanitizePlan)(plan);
|
|
63
|
+
await planRef.set(planData, { merge: true });
|
|
64
|
+
logs_1.logs.info(`Admin created plan: ${plan.id} and saved to plans collection.`);
|
|
65
|
+
return planData;
|
|
63
66
|
}
|
|
64
67
|
catch (err) {
|
|
65
68
|
logs_1.logs.error(err);
|
|
@@ -94,64 +97,20 @@ const buildSyncPlans = (config, rzp) => {
|
|
|
94
97
|
hasMore = false;
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
|
-
logs_1.logs.info(`Fetched ${allPlans.length} plans.
|
|
98
|
-
// Group plans by productId in memory
|
|
99
|
-
const productPlansMap = new Map();
|
|
100
|
-
for (const plan of allPlans) {
|
|
101
|
-
const productId = (0, utils_1.generateProductId)(plan);
|
|
102
|
-
if (!productPlansMap.has(productId)) {
|
|
103
|
-
productPlansMap.set(productId, []);
|
|
104
|
-
}
|
|
105
|
-
productPlansMap.get(productId).push(plan);
|
|
106
|
-
}
|
|
107
|
-
logs_1.logs.info(`Identified ${productPlansMap.size} distinct products. Reading existing products collection...`);
|
|
108
|
-
// Read all existing products to avoid per-document lookups
|
|
109
|
-
const productsCollection = typedFs.getProductsCollection();
|
|
110
|
-
const existingProductsSnap = await productsCollection.get();
|
|
111
|
-
const existingProducts = new Map();
|
|
112
|
-
for (const doc of existingProductsSnap.docs) {
|
|
113
|
-
existingProducts.set(doc.id, doc.data());
|
|
114
|
-
}
|
|
115
|
-
logs_1.logs.info('Writing synchronized product catalogs to Firestore via BulkWriter...');
|
|
100
|
+
logs_1.logs.info(`Fetched ${allPlans.length} plans. Writing to plans collection via BulkWriter...`);
|
|
116
101
|
const bulkWriter = db.bulkWriter();
|
|
117
102
|
bulkWriter.onWriteError((error) => {
|
|
118
103
|
logs_1.logs.error(new Error(`BulkWriter error: ${error.message}`));
|
|
119
104
|
return false; // Do not retry
|
|
120
105
|
});
|
|
121
|
-
for (const
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
id: productId,
|
|
126
|
-
name: plans[0].item?.name || 'Razorpay Product',
|
|
127
|
-
description: plans[0].item?.description || '',
|
|
128
|
-
active: true,
|
|
129
|
-
created_at: firestore_1.FieldValue.serverTimestamp(),
|
|
130
|
-
};
|
|
131
|
-
if (plans.length > 0) {
|
|
132
|
-
productData.planId = plans[0].id;
|
|
133
|
-
if (plans[0].notes && Object.keys(plans[0].notes).length > 0) {
|
|
134
|
-
const metadata = {};
|
|
135
|
-
for (const [key, value] of Object.entries(plans[0].notes)) {
|
|
136
|
-
metadata[key] = String(value);
|
|
137
|
-
}
|
|
138
|
-
productData.metadata = metadata;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
productData.type = 'subscription';
|
|
142
|
-
productData.updated_at = firestore_1.FieldValue.serverTimestamp();
|
|
143
|
-
productData._synced_via = 'admin_api';
|
|
144
|
-
bulkWriter.set(productDocRef, productData, { merge: true });
|
|
145
|
-
// Write each plan to root-level plans collection
|
|
146
|
-
for (const plan of plans) {
|
|
147
|
-
const planDocRef = typedFs.getPlanDoc(plan.id);
|
|
148
|
-
const planData = (0, utils_1.sanitizePlan)(plan);
|
|
149
|
-
bulkWriter.set(planDocRef, planData, { merge: true });
|
|
150
|
-
}
|
|
106
|
+
for (const plan of allPlans) {
|
|
107
|
+
const planDocRef = typedFs.getPlanDoc(plan.id);
|
|
108
|
+
const planData = (0, utils_1.sanitizePlan)(plan);
|
|
109
|
+
bulkWriter.set(planDocRef, planData, { merge: true });
|
|
151
110
|
}
|
|
152
111
|
await bulkWriter.close();
|
|
153
|
-
logs_1.logs.info(`Admin synced ${allPlans.length} plans successfully
|
|
154
|
-
return { status: 'SUCCESS', count: allPlans.length
|
|
112
|
+
logs_1.logs.info(`Admin synced ${allPlans.length} plans successfully.`);
|
|
113
|
+
return { status: 'SUCCESS', count: allPlans.length };
|
|
155
114
|
}
|
|
156
115
|
catch (err) {
|
|
157
116
|
logs_1.logs.error(err);
|
package/lib/admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAkF;AAClF,sDAAwC;AACxC,wDAAsD;AAEtD,iCAA8B;AAE9B,
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -20,11 +20,10 @@ export declare function initializeRazorpay(userConfig: RazorpayUserConfig): {
|
|
|
20
20
|
plan_id: string;
|
|
21
21
|
status: "cancelled" | "active" | "pending" | "created" | "expired" | "authenticated" | "halted" | "completed";
|
|
22
22
|
}>, unknown>;
|
|
23
|
-
createPlan: import("firebase-functions/https").CallableFunction<any, Promise<import("./types").
|
|
23
|
+
createPlan: import("firebase-functions/https").CallableFunction<any, Promise<import("./types").SanitizedPlan>, unknown>;
|
|
24
24
|
syncPlans: import("firebase-functions/https").CallableFunction<any, Promise<{
|
|
25
25
|
status: string;
|
|
26
26
|
count: number;
|
|
27
|
-
productsCount: number;
|
|
28
27
|
}>, unknown>;
|
|
29
28
|
createProduct: import("firebase-functions/https").CallableFunction<import("@neocleus/razorpay-firebase-types").CreateProductRequest, Promise<import("./types").ProductDoc>, unknown>;
|
|
30
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCustomer.js","sourceRoot":"","sources":["../../src/triggers/createCustomer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,iEAAmD;AACnD,wDAAsD;
|
|
1
|
+
{"version":3,"file":"createCustomer.js","sourceRoot":"","sources":["../../src/triggers/createCustomer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,iEAAmD;AACnD,wDAAsD;AAEtD,kCAA+B;AAE/B,4DAAyD;AAElD,MAAM,mBAAmB,GAAG,CAAC,MAA0B,EAAE,GAAa,EAAE,EAAE;IAC7E,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CACjC,KAAK,EAAE,IAAI,EAAiB,EAAE;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxB,WAAI,CAAC,IAAI,CAAC,yEAAyE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/F,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,WAAI,CAAC,IAAI,CAAC,4CAA4C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAElE,MAAM,cAAc,GAAQ;gBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAC9B,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;gBACtC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;gBACnC,aAAa,EAAE,GAAG;gBAClB,KAAK,EAAE;oBACH,WAAW,EAAE,IAAI,CAAC,GAAG;iBACxB;aACJ,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5D,WAAI,CAAC,IAAI,CAAC,6BAA6B,QAAQ,CAAC,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE3E,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,YAAY,GAAgB;gBAC9B,oBAAoB,EAAE,QAAQ,CAAC,EAAE;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;gBACzB,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBAC9B,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBAC/B,UAAU,EAAE,sBAAU,CAAC,eAAe,EAAE;gBACxC,UAAU,EAAE,sBAAU,CAAC,eAAe,EAAE;aAC3C,CAAC;YAEF,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpG,WAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC,CAAC;AA1CW,QAAA,mBAAmB,uBA0C9B"}
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import * as admin from 'firebase-admin';
|
|
2
1
|
import { Plans } from 'razorpay/dist/types/plans';
|
|
3
|
-
import {
|
|
2
|
+
import { SanitizedPlan } from '../types';
|
|
4
3
|
/**
|
|
5
4
|
* Helper to sanitize Razorpay plan data for Firestore storage.
|
|
6
5
|
*/
|
|
7
6
|
export declare const sanitizePlan: (plan: Plans.RazorPayPlans) => SanitizedPlan;
|
|
8
|
-
export declare const generateProductId: (plan: Plans.RazorPayPlans) => string;
|
|
9
|
-
export declare const generatePlanKey: (plan: Plans.RazorPayPlans) => string;
|
|
10
|
-
/**
|
|
11
|
-
* Syncs a Razorpay plan to a Firestore product document.
|
|
12
|
-
* Creates or updates the product document with the plan's details.
|
|
13
|
-
* Shared between buildCreatePlan and buildSyncPlans.
|
|
14
|
-
*/
|
|
15
|
-
export declare const syncPlanToProduct: (plan: Plans.RazorPayPlans, db: admin.firestore.Firestore, config: RazorpaySyncConfig) => Promise<ProductDoc>;
|
package/lib/utils/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.sanitizePlan = void 0;
|
|
4
4
|
const firestore_1 = require("firebase-admin/firestore");
|
|
5
|
-
const typedFirestore_1 = require("./typedFirestore");
|
|
6
5
|
/**
|
|
7
6
|
* Helper to sanitize Razorpay plan data for Firestore storage.
|
|
8
7
|
*/
|
|
@@ -25,57 +24,4 @@ const sanitizePlan = (plan) => {
|
|
|
25
24
|
return sanitizedPlan;
|
|
26
25
|
};
|
|
27
26
|
exports.sanitizePlan = sanitizePlan;
|
|
28
|
-
const generateProductId = (plan) => {
|
|
29
|
-
if (plan.notes && plan.notes.productId) {
|
|
30
|
-
return String(plan.notes.productId);
|
|
31
|
-
}
|
|
32
|
-
if (plan.item && plan.item.name) {
|
|
33
|
-
return plan.item.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-+)+/g, '');
|
|
34
|
-
}
|
|
35
|
-
return `prod_${plan.id}`;
|
|
36
|
-
};
|
|
37
|
-
exports.generateProductId = generateProductId;
|
|
38
|
-
const generatePlanKey = (plan) => {
|
|
39
|
-
if (plan.interval > 1) {
|
|
40
|
-
return `${plan.interval}_${plan.period}`;
|
|
41
|
-
}
|
|
42
|
-
return plan.period;
|
|
43
|
-
};
|
|
44
|
-
exports.generatePlanKey = generatePlanKey;
|
|
45
|
-
/**
|
|
46
|
-
* Syncs a Razorpay plan to a Firestore product document.
|
|
47
|
-
* Creates or updates the product document with the plan's details.
|
|
48
|
-
* Shared between buildCreatePlan and buildSyncPlans.
|
|
49
|
-
*/
|
|
50
|
-
const syncPlanToProduct = async (plan, db, config) => {
|
|
51
|
-
const productId = (0, exports.generateProductId)(plan);
|
|
52
|
-
const typedFs = new typedFirestore_1.TypedFirestore(db, config);
|
|
53
|
-
const docRef = typedFs.getProductDoc(productId);
|
|
54
|
-
const productSnap = await docRef.get();
|
|
55
|
-
const productData = productSnap.data() || {
|
|
56
|
-
id: productId,
|
|
57
|
-
name: plan.item?.name || 'Razorpay Product',
|
|
58
|
-
description: plan.item?.description || '',
|
|
59
|
-
active: true,
|
|
60
|
-
created_at: firestore_1.FieldValue.serverTimestamp(),
|
|
61
|
-
};
|
|
62
|
-
productData.planId = plan.id;
|
|
63
|
-
productData.type = 'subscription';
|
|
64
|
-
productData.updated_at = firestore_1.FieldValue.serverTimestamp();
|
|
65
|
-
productData._synced_via = 'admin_api';
|
|
66
|
-
if (plan.notes && Object.keys(plan.notes).length > 0) {
|
|
67
|
-
const metadata = {};
|
|
68
|
-
for (const [key, value] of Object.entries(plan.notes)) {
|
|
69
|
-
metadata[key] = String(value);
|
|
70
|
-
}
|
|
71
|
-
productData.metadata = metadata;
|
|
72
|
-
}
|
|
73
|
-
await docRef.set(productData, { merge: true });
|
|
74
|
-
// Save plan to root-level plans collection
|
|
75
|
-
const planRef = typedFs.getPlanDoc(plan.id);
|
|
76
|
-
const planData = (0, exports.sanitizePlan)(plan);
|
|
77
|
-
await planRef.set(planData, { merge: true });
|
|
78
|
-
return productData;
|
|
79
|
-
};
|
|
80
|
-
exports.syncPlanToProduct = syncPlanToProduct;
|
|
81
27
|
//# sourceMappingURL=index.js.map
|
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AAKtD;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAiB,EAAE;IACrE,MAAM,aAAa,GAAkB;QACjC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAA2B,CAAC,CAAC,CAAC,IAAI;QAC1D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,MAAM,EAAE,IAAI,EAAE,wDAAwD;QACtE,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,sBAAU,CAAC,eAAe,EAAE;QACxC,WAAW,EAAE,WAAW;KAC3B,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,IAA2B,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACtE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,IAA2B,CAAC,MAAM,CAAC;IACtE,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAnBW,QAAA,YAAY,gBAmBvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neocleus/razorpay-firebase-functions",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Consumable Firebase Cloud Functions for Razorpay payments and subscriptions integration using the Factory pattern",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|