@infuro/cms-core 1.0.35 → 1.0.38
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 +1222 -1024
- package/dist/admin.d.cts +6 -0
- package/dist/admin.d.ts +6 -0
- package/dist/admin.js +1224 -1026
- package/dist/api.cjs +40 -39
- package/dist/api.js +8 -7
- package/dist/auth.cjs +51 -51
- package/dist/auth.d.cts +3 -3
- package/dist/auth.d.ts +3 -3
- package/dist/auth.js +3 -3
- package/dist/chunk-22FFHLTO.cjs +2356 -0
- package/dist/{chunk-CNTSLED2.cjs → chunk-E6WVP7BK.cjs} +75 -14
- package/dist/chunk-HCIRL37O.js +21 -0
- package/dist/chunk-HT5DI3XW.cjs +82 -0
- package/dist/{chunk-EF2JBPDM.js → chunk-KFFB6EMZ.js} +9 -0
- package/dist/chunk-NNQBWDCI.js +2325 -0
- package/dist/{chunk-TIAEXJLI.cjs → chunk-OIGCAGH7.cjs} +7 -7
- package/dist/{chunk-4TRPKBKO.js → chunk-P7QCLE5W.js} +52 -24
- package/dist/{chunk-2XE4X74C.js → chunk-PYUXVU75.js} +7801 -6871
- package/dist/{chunk-EQPITOP6.js → chunk-SBRBR3VO.js} +70 -9
- package/dist/{chunk-N44BJZ4C.cjs → chunk-SPQFNIYJ.cjs} +9 -0
- package/dist/chunk-UCKN4BBY.cjs +24 -0
- package/dist/{chunk-6KPQWRFW.js → chunk-UXMDSNIG.js} +1 -1
- package/dist/{chunk-BGJAV67S.cjs → chunk-VJDUKAJ3.cjs} +8207 -7261
- package/dist/{chunk-3KPNTQBV.cjs → chunk-WMXPKKXU.cjs} +52 -23
- package/dist/chunk-X47PBV4I.js +79 -0
- package/dist/cli.cjs +4 -2
- package/dist/cli.js +4 -2
- package/dist/emit-order-notification-trigger-D2N3KFHL.cjs +16 -0
- package/dist/emit-order-notification-trigger-IVLWKKJL.js +3 -0
- package/dist/{event-order-defaults-DUGDVGJI.cjs → event-order-defaults-EMWBIGL3.cjs} +9 -9
- package/dist/{event-order-defaults-6E543227.js → event-order-defaults-SDRNAZHC.js} +1 -1
- package/dist/index.cjs +805 -1059
- package/dist/index.d.cts +834 -728
- package/dist/index.d.ts +834 -728
- package/dist/index.js +385 -724
- package/dist/migrations/1775500000000-RssFeedsAndArticles.ts +0 -1
- package/dist/migrations/1775700000000-JobSchedules.ts +0 -1
- package/dist/migrations/1781220000000-AddWhatsappTriggerBindings.ts +23 -0
- package/dist/migrations/1781230000000-AddOrderNotificationTriggers.ts +46 -0
- package/dist/migrations/1781240000000-DropEventOrderNotificationColumns.ts +29 -0
- package/dist/migrations/1781250000000-RemoveOrderRefundedTrigger.ts +36 -0
- package/dist/migrations/1781260000000-RenameWhatsappTriggerBindingsToOrderNotificationBindings.ts +92 -0
- package/dist/migrations/1781270000000-ComboVendorId.ts +58 -0
- package/dist/order-notification-dispatcher-RU7BTGGX.cjs +18 -0
- package/dist/order-notification-dispatcher-XWIJYDGA.js +5 -0
- package/dist/{rbac-debug-db-D7ME7QUY.cjs → rbac-debug-db-KHG4FJC3.cjs} +2 -2
- package/dist/{rbac-debug-db-MTCTVNNM.js → rbac-debug-db-QWHOENBR.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-46GKADYE.cjs +0 -84
- package/dist/chunk-7YIBMQDR.cjs +0 -86
- package/dist/chunk-J7XHLOLO.js +0 -830
- package/dist/chunk-JBRR5UYL.js +0 -87
- package/dist/chunk-JHF4YYRC.cjs +0 -188
- package/dist/chunk-PAMVINEX.cjs +0 -577
- package/dist/chunk-QM733NUK.js +0 -186
- package/dist/chunk-R73BKDRO.cjs +0 -90
- package/dist/chunk-TFUOHI37.cjs +0 -839
- package/dist/chunk-XDSNZUW7.js +0 -564
- package/dist/chunk-ZQ4X6OAU.js +0 -82
- package/dist/chunk-ZSVCP6N3.js +0 -83
- package/dist/email-FKR4FXFI.js +0 -5
- package/dist/email-KVKVPNCL.cjs +0 -58
- package/dist/event-order-notifications-5GSAOYVS.cjs +0 -27
- package/dist/event-order-notifications-IIIF23D5.js +0 -10
- package/dist/layout-36UFTHC5.cjs +0 -11
- package/dist/layout-AOBN26XG.js +0 -2
- package/dist/whatsapp-queue-3DXA4MXU.js +0 -2
- package/dist/whatsapp-queue-KG65MXD5.cjs +0 -15
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkWMXPKKXU_cjs = require('./chunk-WMXPKKXU.cjs');
|
|
4
4
|
var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
5
5
|
|
|
6
6
|
// src/auth/helpers.ts
|
|
@@ -10,7 +10,7 @@ var RBAC_ADMIN_ONLY_ENTITIES = /* @__PURE__ */ new Set([
|
|
|
10
10
|
"permissions"
|
|
11
11
|
]);
|
|
12
12
|
function sessionHasEntityAccess(user, entity, action) {
|
|
13
|
-
return
|
|
13
|
+
return chunkWMXPKKXU_cjs.explainSessionEntityAccess(user, entity, action).allowed;
|
|
14
14
|
}
|
|
15
15
|
chunkUSNT2KNT_cjs.__name(sessionHasEntityAccess, "sessionHasEntityAccess");
|
|
16
16
|
function canManageRoles(user) {
|
|
@@ -101,8 +101,8 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
|
101
101
|
}
|
|
102
102
|
const u = session.user;
|
|
103
103
|
const allowed = sessionHasEntityAccess(u, entity, action);
|
|
104
|
-
const { reason } =
|
|
105
|
-
|
|
104
|
+
const { reason } = chunkWMXPKKXU_cjs.explainSessionEntityAccess(u, entity, action);
|
|
105
|
+
chunkWMXPKKXU_cjs.logRbac("authHelpers.requireEntityPermission", {
|
|
106
106
|
entity,
|
|
107
107
|
action,
|
|
108
108
|
allowed,
|
|
@@ -134,10 +134,10 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
|
134
134
|
}
|
|
135
135
|
const u = session.user;
|
|
136
136
|
if (u.isRBACAdmin) return null;
|
|
137
|
-
if (
|
|
137
|
+
if (chunkWMXPKKXU_cjs.isVendorPortalUser(u)) return null;
|
|
138
138
|
if (u.adminAccess === true) return null;
|
|
139
139
|
if (u.adminAccess === false) {
|
|
140
|
-
|
|
140
|
+
chunkWMXPKKXU_cjs.logRbac("requireAdminAccess denied (adminAccess:false)", {
|
|
141
141
|
email: u.email,
|
|
142
142
|
groupName: u.groupName,
|
|
143
143
|
isVendorPortal: u.isVendorPortal
|
|
@@ -149,7 +149,7 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
|
149
149
|
status: 403
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
|
-
|
|
152
|
+
chunkWMXPKKXU_cjs.logRbac("requireAdminAccess denied (no matching rule)", {
|
|
153
153
|
email: u.email,
|
|
154
154
|
adminAccess: u.adminAccess,
|
|
155
155
|
groupName: u.groupName,
|
|
@@ -15,6 +15,8 @@ var PERMISSION_ENTITY_INTERNAL_EXCLUDE = /* @__PURE__ */ new Set([
|
|
|
15
15
|
"wishlists",
|
|
16
16
|
"wishlist_items",
|
|
17
17
|
"message_templates",
|
|
18
|
+
"order_notification_triggers",
|
|
19
|
+
"order_notification_bindings",
|
|
18
20
|
"vendor_users",
|
|
19
21
|
"vendor_roles",
|
|
20
22
|
"vendor_role_permissions"
|
|
@@ -67,7 +69,52 @@ function hasEntityPermission(record, entity, action) {
|
|
|
67
69
|
}
|
|
68
70
|
__name(hasEntityPermission, "hasEntityPermission");
|
|
69
71
|
|
|
72
|
+
// src/auth/role-helpers.ts
|
|
73
|
+
var SUPER_ADMIN_GROUP_ID = 1;
|
|
74
|
+
var VENDOR_ADMIN_GROUP_ID = 5;
|
|
75
|
+
function isSuperAdmin(user) {
|
|
76
|
+
if (!user) return false;
|
|
77
|
+
if (user.groupId === SUPER_ADMIN_GROUP_ID) return true;
|
|
78
|
+
if (user.isRBACAdmin === true) return true;
|
|
79
|
+
return isSuperAdminGroupName(user.groupName);
|
|
80
|
+
}
|
|
81
|
+
__name(isSuperAdmin, "isSuperAdmin");
|
|
82
|
+
function isVendorAdmin(user) {
|
|
83
|
+
if (!user?.email || isSuperAdmin(user)) return false;
|
|
84
|
+
if (user.groupId === VENDOR_ADMIN_GROUP_ID) return true;
|
|
85
|
+
if ((user.vendorIds?.length ?? 0) > 0) return true;
|
|
86
|
+
return isVendorGroupName(user.groupName);
|
|
87
|
+
}
|
|
88
|
+
__name(isVendorAdmin, "isVendorAdmin");
|
|
89
|
+
|
|
70
90
|
// src/auth/vendor-scope.ts
|
|
91
|
+
var DEFAULT_VENDOR_SLUG = "default";
|
|
92
|
+
async function resolveDefaultVendorId(dataSource) {
|
|
93
|
+
try {
|
|
94
|
+
const rows = await dataSource.query(`SELECT id FROM vendors WHERE slug = $1 AND deleted = false LIMIT 1`, [
|
|
95
|
+
DEFAULT_VENDOR_SLUG
|
|
96
|
+
]);
|
|
97
|
+
const id = rows[0]?.id;
|
|
98
|
+
return typeof id === "number" ? id : null;
|
|
99
|
+
} catch {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
__name(resolveDefaultVendorId, "resolveDefaultVendorId");
|
|
104
|
+
async function resolveDisabledMultiVendorScope(dataSource) {
|
|
105
|
+
const defaultVendorId = await resolveDefaultVendorId(dataSource);
|
|
106
|
+
if (defaultVendorId == null) return {
|
|
107
|
+
type: "deny"
|
|
108
|
+
};
|
|
109
|
+
return {
|
|
110
|
+
type: "vendor",
|
|
111
|
+
vendorId: defaultVendorId,
|
|
112
|
+
vendorIds: [
|
|
113
|
+
defaultVendorId
|
|
114
|
+
]
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
__name(resolveDisabledMultiVendorScope, "resolveDisabledMultiVendorScope");
|
|
71
118
|
var VENDOR_SCOPED_STORE_ENTITIES = /* @__PURE__ */ new Set([
|
|
72
119
|
"products",
|
|
73
120
|
"collections",
|
|
@@ -80,7 +127,8 @@ var VENDOR_SCOPED_STORE_ENTITIES = /* @__PURE__ */ new Set([
|
|
|
80
127
|
"vendor_customers",
|
|
81
128
|
"discounts",
|
|
82
129
|
"events",
|
|
83
|
-
"refund_policies"
|
|
130
|
+
"refund_policies",
|
|
131
|
+
"combos"
|
|
84
132
|
]);
|
|
85
133
|
var VENDOR_STORE_RBAC_ENTITIES = /* @__PURE__ */ new Set([
|
|
86
134
|
...VENDOR_SCOPED_STORE_ENTITIES,
|
|
@@ -164,24 +212,6 @@ function vendorPortalFlagsFromUser(input) {
|
|
|
164
212
|
}
|
|
165
213
|
__name(vendorPortalFlagsFromUser, "vendorPortalFlagsFromUser");
|
|
166
214
|
|
|
167
|
-
// src/auth/role-helpers.ts
|
|
168
|
-
var SUPER_ADMIN_GROUP_ID = 1;
|
|
169
|
-
var VENDOR_ADMIN_GROUP_ID = 5;
|
|
170
|
-
function isSuperAdmin(user) {
|
|
171
|
-
if (!user) return false;
|
|
172
|
-
if (user.groupId === SUPER_ADMIN_GROUP_ID) return true;
|
|
173
|
-
if (user.isRBACAdmin === true) return true;
|
|
174
|
-
return isSuperAdminGroupName(user.groupName);
|
|
175
|
-
}
|
|
176
|
-
__name(isSuperAdmin, "isSuperAdmin");
|
|
177
|
-
function isVendorAdmin(user) {
|
|
178
|
-
if (!user?.email || isSuperAdmin(user)) return false;
|
|
179
|
-
if (user.groupId === VENDOR_ADMIN_GROUP_ID) return true;
|
|
180
|
-
if ((user.vendorIds?.length ?? 0) > 0) return true;
|
|
181
|
-
return isVendorGroupName(user.groupName);
|
|
182
|
-
}
|
|
183
|
-
__name(isVendorAdmin, "isVendorAdmin");
|
|
184
|
-
|
|
185
215
|
// src/lib/vendor-role-defaults.ts
|
|
186
216
|
var VENDOR_RBAC_ENTITIES = [
|
|
187
217
|
...VENDOR_STORE_RBAC_ENTITIES,
|
|
@@ -349,9 +379,7 @@ var VENDOR_VIEWER_ROLE_NAME = "Viewer";
|
|
|
349
379
|
var LOG_PREFIX = "[cms-rbac]";
|
|
350
380
|
function isRbacDebugEnabled() {
|
|
351
381
|
const v = process.env.CMS_RBAC_DEBUG?.trim().toLowerCase();
|
|
352
|
-
|
|
353
|
-
if (v === "0" || v === "false" || v === "no") return false;
|
|
354
|
-
return process.env.NODE_ENV === "development";
|
|
382
|
+
return v === "1" || v === "true" || v === "yes";
|
|
355
383
|
}
|
|
356
384
|
__name(isRbacDebugEnabled, "isRbacDebugEnabled");
|
|
357
385
|
function logRbac(message, data) {
|
|
@@ -565,7 +593,7 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
565
593
|
const id = Number(user.id);
|
|
566
594
|
if (Number.isFinite(id)) {
|
|
567
595
|
try {
|
|
568
|
-
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-
|
|
596
|
+
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-QWHOENBR.js');
|
|
569
597
|
dbPermissions = await loadDbPermissionsForUser(dataSource, id);
|
|
570
598
|
} catch (e) {
|
|
571
599
|
dbPermissions = {
|
|
@@ -586,4 +614,4 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
586
614
|
}
|
|
587
615
|
__name(logEntityAccessDecision, "logEntityAccessDecision");
|
|
588
616
|
|
|
589
|
-
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, resolveVendorScopeFromSessionUser, summarizeEntityPerms, vendorPortalFlagsFromUser };
|
|
617
|
+
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 };
|