@infuro/cms-core 1.0.46 → 1.0.47
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/admin.cjs +3420 -2702
- package/dist/admin.d.cts +18 -4
- package/dist/admin.d.ts +18 -4
- package/dist/admin.js +2328 -1612
- package/dist/api.cjs +37 -38
- package/dist/api.d.cts +9 -3
- package/dist/api.d.ts +9 -3
- package/dist/api.js +5 -6
- package/dist/auth.cjs +55 -51
- package/dist/auth.d.cts +5 -3
- package/dist/auth.d.ts +5 -3
- package/dist/auth.js +3 -3
- package/dist/{chunk-KFFB6EMZ.js → chunk-2HU5R2JE.js} +2 -0
- package/dist/chunk-2IAXTKQN.cjs +19 -0
- package/dist/{chunk-SPQFNIYJ.cjs → chunk-4PMK3RNA.cjs} +2 -0
- package/dist/{chunk-X6UQFV4X.cjs → chunk-77NUXO6A.cjs} +14 -12
- package/dist/chunk-EIZKW2PF.js +13 -0
- package/dist/{chunk-X47PBV4I.js → chunk-JE22VP6S.js} +1 -0
- package/dist/{chunk-DN65KDIA.js → chunk-JIWUVQ6B.js} +14 -13
- package/dist/{chunk-HT5DI3XW.cjs → chunk-KOTXDSQB.cjs} +1 -0
- package/dist/{chunk-TCSGFAWB.cjs → chunk-LMJ7RKPF.cjs} +1188 -3
- package/dist/{chunk-FBKDMRQL.cjs → chunk-Q3HQEM4R.cjs} +6 -6
- package/dist/{chunk-NBY4NVTY.cjs → chunk-VUQFARRT.cjs} +7 -7
- package/dist/{chunk-UKC3HYXI.js → chunk-W42UZLQO.js} +1377 -559
- package/dist/{chunk-UDVLFVEC.cjs → chunk-XUCKZPML.cjs} +1448 -630
- package/dist/{chunk-57O3HZPG.js → chunk-YC4NUZCS.js} +1 -1
- package/dist/{chunk-CRYKVJTO.js → chunk-YXH2UUEZ.js} +1179 -3
- package/dist/{chunk-SF2XKMCI.js → chunk-ZF2RQWXB.js} +1 -1
- package/dist/{emit-order-notification-trigger-IVLWKKJL.js → emit-order-notification-trigger-6XX7LSC4.js} +1 -1
- package/dist/{emit-order-notification-trigger-D2N3KFHL.cjs → emit-order-notification-trigger-NASG7ZEO.cjs} +3 -3
- package/dist/{event-order-defaults-EMWBIGL3.cjs → event-order-defaults-7Z3UZOEH.cjs} +9 -9
- package/dist/{event-order-defaults-SDRNAZHC.js → event-order-defaults-XQ3IDPD7.js} +1 -1
- package/dist/hooks.cjs +43 -0
- package/dist/hooks.d.cts +10 -1
- package/dist/hooks.d.ts +10 -1
- package/dist/hooks.js +39 -1
- package/dist/index.cjs +414 -310
- package/dist/index.d.cts +51 -17
- package/dist/index.d.ts +51 -17
- package/dist/index.js +114 -12
- package/dist/migrations/1782200000000-VendorTeamProfiles.ts +233 -0
- package/dist/migrations/1782300000000-AddTypeToOrderNotificationBindings.ts +75 -0
- package/dist/{order-notification-dispatcher-ZJZB2HUN.js → order-notification-dispatcher-6WNG24NY.js} +1 -2
- package/dist/{order-notification-dispatcher-SBQAMM5V.cjs → order-notification-dispatcher-6XSU3AR7.cjs} +3 -4
- package/dist/{rbac-debug-db-2SGNLANF.js → rbac-debug-db-6EMIVMGF.js} +1 -1
- package/dist/{rbac-debug-db-4Z6A425H.cjs → rbac-debug-db-6PWTLBEL.cjs} +2 -2
- package/dist/theme.cjs +6 -1
- package/dist/theme.d.cts +4 -1
- package/dist/theme.d.ts +4 -1
- package/dist/theme.js +3 -1
- package/package.json +1 -1
- package/src/admin/admin.css +7 -0
- package/dist/chunk-7PMHZRF3.cjs +0 -872
- package/dist/chunk-CQHXW4TR.js +0 -107
- package/dist/chunk-GUSHM5HN.js +0 -862
- package/dist/chunk-XMRMZ6NQ.cjs +0 -109
- package/dist/send-order-placed-emails-B5ZVJT7T.cjs +0 -15
- package/dist/send-order-placed-emails-WPI37KRZ.js +0 -6
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
9
|
+
|
|
10
|
+
function ForceLightMode() {
|
|
11
|
+
return React__default.default.createElement("script", {
|
|
12
|
+
dangerouslySetInnerHTML: {
|
|
13
|
+
__html: `(function(){try{var r=document.documentElement,b=document.body;if(r){r.classList.remove('dark');r.style.colorScheme='light';}if(b){b.classList.remove('dark');b.style.colorScheme='light';}}catch(e){}})();`
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
chunkUSNT2KNT_cjs.__name(ForceLightMode, "ForceLightMode");
|
|
18
|
+
|
|
19
|
+
exports.ForceLightMode = ForceLightMode;
|
|
@@ -6,6 +6,7 @@ var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
|
6
6
|
var EVENT_ORDER_TEMPLATE_KEY = "eventOrderPlaced";
|
|
7
7
|
var EVENT_ORDER_TEMPLATE_VARIABLES = [
|
|
8
8
|
"eventName",
|
|
9
|
+
"vendorName",
|
|
9
10
|
"eventSlug",
|
|
10
11
|
"venue",
|
|
11
12
|
"startDate",
|
|
@@ -33,6 +34,7 @@ var EVENT_ORDER_WHATSAPP_PARAM_KEYS = [
|
|
|
33
34
|
];
|
|
34
35
|
var EVENT_ORDER_TEMPLATE_VARIABLE_HINTS = {
|
|
35
36
|
eventName: "Event title",
|
|
37
|
+
vendorName: "Vendor / store name",
|
|
36
38
|
eventSlug: "Event URL slug",
|
|
37
39
|
venue: "Venue name",
|
|
38
40
|
startDate: "Formatted event start",
|
|
@@ -50,12 +50,13 @@ chunkUSNT2KNT_cjs.__name(getPermissionableEntityKeys, "getPermissionableEntityKe
|
|
|
50
50
|
function permissionRowsToRecord(rows) {
|
|
51
51
|
const out = {};
|
|
52
52
|
if (!rows?.length) return out;
|
|
53
|
+
const flag = /* @__PURE__ */ chunkUSNT2KNT_cjs.__name((v) => v === true || v === 1 || v === "1" || v === "t" || v === "true", "flag");
|
|
53
54
|
for (const p of rows) {
|
|
54
55
|
out[p.entity] = {
|
|
55
|
-
c:
|
|
56
|
-
r:
|
|
57
|
-
u:
|
|
58
|
-
d:
|
|
56
|
+
c: flag(p.canCreate),
|
|
57
|
+
r: flag(p.canRead),
|
|
58
|
+
u: flag(p.canUpdate),
|
|
59
|
+
d: flag(p.canDelete)
|
|
59
60
|
};
|
|
60
61
|
}
|
|
61
62
|
return out;
|
|
@@ -138,11 +139,12 @@ var VENDOR_STORE_RBAC_ENTITIES = /* @__PURE__ */ new Set([
|
|
|
138
139
|
"order_addresses",
|
|
139
140
|
"event_products"
|
|
140
141
|
]);
|
|
141
|
-
var
|
|
142
|
+
var VENDOR_GROUP_NAME = "Vendor";
|
|
143
|
+
var VENDOR_OWNER_GROUP_NAME = VENDOR_GROUP_NAME;
|
|
142
144
|
function isVendorGroupName(name) {
|
|
143
145
|
if (!name?.trim()) return false;
|
|
144
146
|
const n = name.trim().toLowerCase();
|
|
145
|
-
return n ===
|
|
147
|
+
return n === "vendor" || n === "vendor owner" || n.includes("vendor");
|
|
146
148
|
}
|
|
147
149
|
chunkUSNT2KNT_cjs.__name(isVendorGroupName, "isVendorGroupName");
|
|
148
150
|
function isPlatformAdministrator(user) {
|
|
@@ -165,10 +167,8 @@ function isVendorOwner(user) {
|
|
|
165
167
|
if (user?.isVendorOwner === true) return true;
|
|
166
168
|
if (!user?.email || isPlatformAdministrator(user)) return false;
|
|
167
169
|
if (user.isVendorRoleOwner === true) return true;
|
|
168
|
-
if (user.vendorRole === "staff") return false;
|
|
169
170
|
if (user.vendorRole === "owner") return true;
|
|
170
|
-
|
|
171
|
-
return user.groupName?.trim().toLowerCase() === VENDOR_OWNER_GROUP_NAME.toLowerCase();
|
|
171
|
+
return false;
|
|
172
172
|
}
|
|
173
173
|
chunkUSNT2KNT_cjs.__name(isVendorOwner, "isVendorOwner");
|
|
174
174
|
function canManageVendorTeam(user) {
|
|
@@ -206,7 +206,7 @@ chunkUSNT2KNT_cjs.__name(resolveVendorScopeFromSessionUser, "resolveVendorScopeF
|
|
|
206
206
|
function vendorPortalFlagsFromUser(input) {
|
|
207
207
|
const vendorIds = input.vendorIds ?? [];
|
|
208
208
|
const isVendorPortal = !input.isRBACAdmin && (vendorIds.length > 0 || isVendorGroupName(input.groupName));
|
|
209
|
-
const isVendorOwner2 = isVendorPortal && (input.isVendorRoleOwner === true || input.vendorRole
|
|
209
|
+
const isVendorOwner2 = isVendorPortal && (input.isVendorRoleOwner === true || input.vendorRole === "owner");
|
|
210
210
|
return {
|
|
211
211
|
isVendorPortal,
|
|
212
212
|
isVendorOwner: isVendorOwner2
|
|
@@ -463,7 +463,8 @@ function explainSessionEntityAccess(user, entity, action) {
|
|
|
463
463
|
const isStaff = user.vendorRole === "staff";
|
|
464
464
|
const vendorPerms = user.vendorEntityPerms;
|
|
465
465
|
const hasVendorRolePerms = vendorPerms != null && Object.keys(vendorPerms).length > 0;
|
|
466
|
-
|
|
466
|
+
const enforceVendorRoleMatrix = vendorIds.length > 0 && (hasVendorRolePerms || user.vendorRoleId != null);
|
|
467
|
+
if (enforceVendorRoleMatrix) {
|
|
467
468
|
const vendorRbacSet = new Set(VENDOR_RBAC_ENTITIES);
|
|
468
469
|
if (vendorRbacSet.has(entity) || entity === "analytics") {
|
|
469
470
|
if (entity === "analytics" && action === "read") {
|
|
@@ -605,7 +606,7 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
605
606
|
const id = Number(user.id);
|
|
606
607
|
if (Number.isFinite(id)) {
|
|
607
608
|
try {
|
|
608
|
-
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-
|
|
609
|
+
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-6PWTLBEL.cjs');
|
|
609
610
|
dbPermissions = await loadDbPermissionsForUser(dataSource, id);
|
|
610
611
|
} catch (e) {
|
|
611
612
|
dbPermissions = {
|
|
@@ -630,6 +631,7 @@ exports.ADMIN_GROUP_NAME = ADMIN_GROUP_NAME;
|
|
|
630
631
|
exports.DEFAULT_VENDOR_ROLE_DEFS = DEFAULT_VENDOR_ROLE_DEFS;
|
|
631
632
|
exports.SUPER_ADMIN_GROUP_ID = SUPER_ADMIN_GROUP_ID;
|
|
632
633
|
exports.VENDOR_ADMIN_GROUP_ID = VENDOR_ADMIN_GROUP_ID;
|
|
634
|
+
exports.VENDOR_GROUP_NAME = VENDOR_GROUP_NAME;
|
|
633
635
|
exports.VENDOR_OWNER_GROUP_NAME = VENDOR_OWNER_GROUP_NAME;
|
|
634
636
|
exports.VENDOR_RBAC_ENTITIES = VENDOR_RBAC_ENTITIES;
|
|
635
637
|
exports.VENDOR_SCOPED_STORE_ENTITIES = VENDOR_SCOPED_STORE_ENTITIES;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { __name } from './chunk-SHUYVCID.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
function ForceLightMode() {
|
|
5
|
+
return React.createElement("script", {
|
|
6
|
+
dangerouslySetInnerHTML: {
|
|
7
|
+
__html: `(function(){try{var r=document.documentElement,b=document.body;if(r){r.classList.remove('dark');r.style.colorScheme='light';}if(b){b.classList.remove('dark');b.style.colorScheme='light';}}catch(e){}})();`
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
__name(ForceLightMode, "ForceLightMode");
|
|
12
|
+
|
|
13
|
+
export { ForceLightMode };
|
|
@@ -59,6 +59,7 @@ async function emitOrderNotificationTrigger(triggerKey, orderId, deps, extra) {
|
|
|
59
59
|
total: fo.total ?? 0,
|
|
60
60
|
currency: String(fo.currency ?? "INR"),
|
|
61
61
|
vendorId: fo.vendorId ?? null,
|
|
62
|
+
...extra?.extraVariables ?? {},
|
|
62
63
|
...extra?.refundAmount != null ? {
|
|
63
64
|
refundAmount: extra.refundAmount
|
|
64
65
|
} : {}
|
|
@@ -48,12 +48,13 @@ __name(getPermissionableEntityKeys, "getPermissionableEntityKeys");
|
|
|
48
48
|
function permissionRowsToRecord(rows) {
|
|
49
49
|
const out = {};
|
|
50
50
|
if (!rows?.length) return out;
|
|
51
|
+
const flag = /* @__PURE__ */ __name((v) => v === true || v === 1 || v === "1" || v === "t" || v === "true", "flag");
|
|
51
52
|
for (const p of rows) {
|
|
52
53
|
out[p.entity] = {
|
|
53
|
-
c:
|
|
54
|
-
r:
|
|
55
|
-
u:
|
|
56
|
-
d:
|
|
54
|
+
c: flag(p.canCreate),
|
|
55
|
+
r: flag(p.canRead),
|
|
56
|
+
u: flag(p.canUpdate),
|
|
57
|
+
d: flag(p.canDelete)
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
60
|
return out;
|
|
@@ -136,11 +137,12 @@ var VENDOR_STORE_RBAC_ENTITIES = /* @__PURE__ */ new Set([
|
|
|
136
137
|
"order_addresses",
|
|
137
138
|
"event_products"
|
|
138
139
|
]);
|
|
139
|
-
var
|
|
140
|
+
var VENDOR_GROUP_NAME = "Vendor";
|
|
141
|
+
var VENDOR_OWNER_GROUP_NAME = VENDOR_GROUP_NAME;
|
|
140
142
|
function isVendorGroupName(name) {
|
|
141
143
|
if (!name?.trim()) return false;
|
|
142
144
|
const n = name.trim().toLowerCase();
|
|
143
|
-
return n ===
|
|
145
|
+
return n === "vendor" || n === "vendor owner" || n.includes("vendor");
|
|
144
146
|
}
|
|
145
147
|
__name(isVendorGroupName, "isVendorGroupName");
|
|
146
148
|
function isPlatformAdministrator(user) {
|
|
@@ -163,10 +165,8 @@ function isVendorOwner(user) {
|
|
|
163
165
|
if (user?.isVendorOwner === true) return true;
|
|
164
166
|
if (!user?.email || isPlatformAdministrator(user)) return false;
|
|
165
167
|
if (user.isVendorRoleOwner === true) return true;
|
|
166
|
-
if (user.vendorRole === "staff") return false;
|
|
167
168
|
if (user.vendorRole === "owner") return true;
|
|
168
|
-
|
|
169
|
-
return user.groupName?.trim().toLowerCase() === VENDOR_OWNER_GROUP_NAME.toLowerCase();
|
|
169
|
+
return false;
|
|
170
170
|
}
|
|
171
171
|
__name(isVendorOwner, "isVendorOwner");
|
|
172
172
|
function canManageVendorTeam(user) {
|
|
@@ -204,7 +204,7 @@ __name(resolveVendorScopeFromSessionUser, "resolveVendorScopeFromSessionUser");
|
|
|
204
204
|
function vendorPortalFlagsFromUser(input) {
|
|
205
205
|
const vendorIds = input.vendorIds ?? [];
|
|
206
206
|
const isVendorPortal = !input.isRBACAdmin && (vendorIds.length > 0 || isVendorGroupName(input.groupName));
|
|
207
|
-
const isVendorOwner2 = isVendorPortal && (input.isVendorRoleOwner === true || input.vendorRole
|
|
207
|
+
const isVendorOwner2 = isVendorPortal && (input.isVendorRoleOwner === true || input.vendorRole === "owner");
|
|
208
208
|
return {
|
|
209
209
|
isVendorPortal,
|
|
210
210
|
isVendorOwner: isVendorOwner2
|
|
@@ -461,7 +461,8 @@ function explainSessionEntityAccess(user, entity, action) {
|
|
|
461
461
|
const isStaff = user.vendorRole === "staff";
|
|
462
462
|
const vendorPerms = user.vendorEntityPerms;
|
|
463
463
|
const hasVendorRolePerms = vendorPerms != null && Object.keys(vendorPerms).length > 0;
|
|
464
|
-
|
|
464
|
+
const enforceVendorRoleMatrix = vendorIds.length > 0 && (hasVendorRolePerms || user.vendorRoleId != null);
|
|
465
|
+
if (enforceVendorRoleMatrix) {
|
|
465
466
|
const vendorRbacSet = new Set(VENDOR_RBAC_ENTITIES);
|
|
466
467
|
if (vendorRbacSet.has(entity) || entity === "analytics") {
|
|
467
468
|
if (entity === "analytics" && action === "read") {
|
|
@@ -603,7 +604,7 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
603
604
|
const id = Number(user.id);
|
|
604
605
|
if (Number.isFinite(id)) {
|
|
605
606
|
try {
|
|
606
|
-
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-
|
|
607
|
+
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-6EMIVMGF.js');
|
|
607
608
|
dbPermissions = await loadDbPermissionsForUser(dataSource, id);
|
|
608
609
|
} catch (e) {
|
|
609
610
|
dbPermissions = {
|
|
@@ -624,4 +625,4 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
624
625
|
}
|
|
625
626
|
__name(logEntityAccessDecision, "logEntityAccessDecision");
|
|
626
627
|
|
|
627
|
-
export { ADMIN_GROUP_NAME, DEFAULT_VENDOR_ROLE_DEFS, SUPER_ADMIN_GROUP_ID, VENDOR_ADMIN_GROUP_ID, VENDOR_OWNER_GROUP_NAME, VENDOR_RBAC_ENTITIES, VENDOR_SCOPED_STORE_ENTITIES, VENDOR_STORE_RBAC_ENTITIES, VENDOR_VIEWER_ROLE_NAME, canManageVendorRoles, canManageVendorTeam, canOnboardVendors, explainSessionEntityAccess, getPermissionableEntityKeys, hasEntityPermission, isPlatformAdministrator, isRbacDebugEnabled, isSuperAdmin, isSuperAdminGroupName, isVendorAdmin, isVendorGroupName, isVendorOwner, isVendorPortalUser, isVendorStaff, logEntityAccessDecision, logRbac, permissionRowsToRecord, resolveDisabledMultiVendorScope, resolveVendorScopeFromSessionUser, summarizeEntityPerms, vendorPortalFlagsFromUser };
|
|
628
|
+
export { ADMIN_GROUP_NAME, DEFAULT_VENDOR_ROLE_DEFS, SUPER_ADMIN_GROUP_ID, VENDOR_ADMIN_GROUP_ID, VENDOR_GROUP_NAME, VENDOR_OWNER_GROUP_NAME, VENDOR_RBAC_ENTITIES, VENDOR_SCOPED_STORE_ENTITIES, VENDOR_STORE_RBAC_ENTITIES, VENDOR_VIEWER_ROLE_NAME, canManageVendorRoles, canManageVendorTeam, canOnboardVendors, explainSessionEntityAccess, getPermissionableEntityKeys, hasEntityPermission, isPlatformAdministrator, isRbacDebugEnabled, isSuperAdmin, isSuperAdminGroupName, isVendorAdmin, isVendorGroupName, isVendorOwner, isVendorPortalUser, isVendorStaff, logEntityAccessDecision, logRbac, permissionRowsToRecord, resolveDisabledMultiVendorScope, resolveVendorScopeFromSessionUser, summarizeEntityPerms, vendorPortalFlagsFromUser };
|
|
@@ -61,6 +61,7 @@ async function emitOrderNotificationTrigger(triggerKey, orderId, deps, extra) {
|
|
|
61
61
|
total: fo.total ?? 0,
|
|
62
62
|
currency: String(fo.currency ?? "INR"),
|
|
63
63
|
vendorId: fo.vendorId ?? null,
|
|
64
|
+
...extra?.extraVariables ?? {},
|
|
64
65
|
...extra?.refundAmount != null ? {
|
|
65
66
|
refundAmount: extra.refundAmount
|
|
66
67
|
} : {}
|