@infuro/cms-core 1.0.45 → 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.
Files changed (82) hide show
  1. package/README.md +19 -2
  2. package/dist/admin.cjs +4249 -2872
  3. package/dist/admin.d.cts +24 -4
  4. package/dist/admin.d.ts +24 -4
  5. package/dist/admin.js +3179 -1804
  6. package/dist/api.cjs +41 -39
  7. package/dist/api.d.cts +10 -4
  8. package/dist/api.d.ts +10 -4
  9. package/dist/api.js +9 -7
  10. package/dist/auth.cjs +55 -51
  11. package/dist/auth.d.cts +6 -3
  12. package/dist/auth.d.ts +6 -3
  13. package/dist/auth.js +3 -3
  14. package/dist/{chunk-KFFB6EMZ.js → chunk-2HU5R2JE.js} +2 -0
  15. package/dist/chunk-2IAXTKQN.cjs +19 -0
  16. package/dist/chunk-2KUCQVAQ.js +936 -0
  17. package/dist/chunk-3K5AIEIZ.js +256 -0
  18. package/dist/{chunk-SPQFNIYJ.cjs → chunk-4PMK3RNA.cjs} +2 -0
  19. package/dist/{chunk-X6UQFV4X.cjs → chunk-77NUXO6A.cjs} +14 -12
  20. package/dist/chunk-BXYZDMTZ.cjs +953 -0
  21. package/dist/chunk-DBPSJYLZ.js +47 -0
  22. package/dist/chunk-EIZKW2PF.js +13 -0
  23. package/dist/chunk-HY3AXLOI.cjs +265 -0
  24. package/dist/{chunk-X47PBV4I.js → chunk-JE22VP6S.js} +1 -0
  25. package/dist/{chunk-DN65KDIA.js → chunk-JIWUVQ6B.js} +14 -13
  26. package/dist/{chunk-HT5DI3XW.cjs → chunk-KOTXDSQB.cjs} +1 -0
  27. package/dist/chunk-L3525VXI.js +243 -0
  28. package/dist/{chunk-22FFHLTO.cjs → chunk-LMJ7RKPF.cjs} +421 -150
  29. package/dist/chunk-OY2YTBMP.cjs +50 -0
  30. package/dist/{chunk-TAHX46EI.cjs → chunk-Q3HQEM4R.cjs} +15 -7
  31. package/dist/chunk-V25RDUOU.cjs +248 -0
  32. package/dist/{chunk-ZMRQ72F6.cjs → chunk-VUQFARRT.cjs} +10 -10
  33. package/dist/{chunk-MVXLRANV.js → chunk-W42UZLQO.js} +1977 -891
  34. package/dist/{chunk-F5XFHYTG.cjs → chunk-XUCKZPML.cjs} +2088 -991
  35. package/dist/{chunk-I6NH72MO.js → chunk-YC4NUZCS.js} +10 -2
  36. package/dist/{chunk-NNQBWDCI.js → chunk-YXH2UUEZ.js} +418 -146
  37. package/dist/{chunk-BLR6H5GL.js → chunk-ZF2RQWXB.js} +4 -4
  38. package/dist/cli.cjs +9 -4
  39. package/dist/cli.js +9 -4
  40. package/dist/{email-queue-TPZWLTIV.cjs → email-queue-6NJY6HNM.cjs} +7 -5
  41. package/dist/email-queue-OI2HSCGE.js +4 -0
  42. package/dist/{emit-order-notification-trigger-IVLWKKJL.js → emit-order-notification-trigger-6XX7LSC4.js} +1 -1
  43. package/dist/{emit-order-notification-trigger-D2N3KFHL.cjs → emit-order-notification-trigger-NASG7ZEO.cjs} +3 -3
  44. package/dist/erp-order-invoice-3GXDE443.js +3 -0
  45. package/dist/erp-order-invoice-EYYNR526.cjs +24 -0
  46. package/dist/{event-order-defaults-EMWBIGL3.cjs → event-order-defaults-7Z3UZOEH.cjs} +9 -9
  47. package/dist/{event-order-defaults-SDRNAZHC.js → event-order-defaults-XQ3IDPD7.js} +1 -1
  48. package/dist/hooks.cjs +43 -0
  49. package/dist/hooks.d.cts +10 -1
  50. package/dist/hooks.d.ts +10 -1
  51. package/dist/hooks.js +39 -1
  52. package/dist/index.cjs +429 -298
  53. package/dist/index.d.cts +317 -30
  54. package/dist/index.d.ts +317 -30
  55. package/dist/index.js +17 -13
  56. package/dist/migrations/1781810000000-OrderItemsVariantId.ts +44 -0
  57. package/dist/migrations/1781900000000-UserInviteStatusToken.ts +46 -0
  58. package/dist/migrations/1782000000000-ComboSlug.ts +58 -0
  59. package/dist/migrations/1782100000000-DiscountDeviceType.ts +20 -0
  60. package/dist/migrations/1782200000000-VendorTeamProfiles.ts +233 -0
  61. package/dist/migrations/1782300000000-AddTypeToOrderNotificationBindings.ts +75 -0
  62. package/dist/order-inventory-2MYRKEPC.cjs +39 -0
  63. package/dist/order-inventory-76V4XIGW.js +2 -0
  64. package/dist/{order-notification-dispatcher-XWIJYDGA.js → order-notification-dispatcher-6WNG24NY.js} +4 -2
  65. package/dist/{order-notification-dispatcher-RU7BTGGX.cjs → order-notification-dispatcher-6XSU3AR7.cjs} +6 -4
  66. package/dist/{rbac-debug-db-2SGNLANF.js → rbac-debug-db-6EMIVMGF.js} +1 -1
  67. package/dist/{rbac-debug-db-4Z6A425H.cjs → rbac-debug-db-6PWTLBEL.cjs} +2 -2
  68. package/dist/retire-soft-deleted-unique-5VXBA5XX.cjs +15 -0
  69. package/dist/retire-soft-deleted-unique-NXQIH4BC.js +2 -0
  70. package/dist/theme.cjs +6 -1
  71. package/dist/theme.d.cts +4 -1
  72. package/dist/theme.d.ts +4 -1
  73. package/dist/theme.js +3 -1
  74. package/package.json +5 -4
  75. package/src/admin/admin.css +34 -24
  76. package/dist/chunk-5ELSW2UP.js +0 -150
  77. package/dist/chunk-PNOKNSG2.cjs +0 -222
  78. package/dist/chunk-WEMDMVHQ.js +0 -216
  79. package/dist/chunk-XW5ATPRW.cjs +0 -155
  80. package/dist/email-queue-CGZBVVAS.js +0 -2
  81. package/dist/erp-order-invoice-3YISSOWW.js +0 -3
  82. package/dist/erp-order-invoice-ZR5F2KTA.cjs +0 -12
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
4
+
5
+ // src/lib/retire-soft-deleted-unique.ts
6
+ async function retireSoftDeletedUniqueValue(repo, column, value) {
7
+ const trimmed = typeof value === "string" ? value.trim() : "";
8
+ if (!trimmed) return;
9
+ const cols = new Set(repo.metadata.columns.map((c) => c.propertyName));
10
+ if (!cols.has(column) || !cols.has("deleted")) return;
11
+ const rows = await repo.find({
12
+ where: {
13
+ [column]: trimmed,
14
+ deleted: true
15
+ }
16
+ });
17
+ for (const row of rows) {
18
+ const id = row.id;
19
+ if (!Number.isFinite(id)) continue;
20
+ const current = String(row[column] ?? "");
21
+ if (current.includes("__deleted_")) continue;
22
+ await repo.update(id, {
23
+ [column]: `${trimmed}__deleted_${id}`
24
+ });
25
+ }
26
+ }
27
+ chunkUSNT2KNT_cjs.__name(retireSoftDeletedUniqueValue, "retireSoftDeletedUniqueValue");
28
+ async function activeUniqueValueExists(repo, column, value, excludeId) {
29
+ const trimmed = typeof value === "string" ? value.trim() : "";
30
+ if (!trimmed) return false;
31
+ const cols = new Set(repo.metadata.columns.map((c) => c.propertyName));
32
+ if (!cols.has(column)) return false;
33
+ const qb = repo.createQueryBuilder("row").where(`row.${column} = :value`, {
34
+ value: trimmed
35
+ });
36
+ if (cols.has("deleted")) {
37
+ qb.andWhere("row.deleted = false");
38
+ }
39
+ if (excludeId != null && Number.isFinite(excludeId) && excludeId > 0) {
40
+ qb.andWhere("row.id != :excludeId", {
41
+ excludeId
42
+ });
43
+ }
44
+ const hit = await qb.getOne();
45
+ return !!hit;
46
+ }
47
+ chunkUSNT2KNT_cjs.__name(activeUniqueValueExists, "activeUniqueValueExists");
48
+
49
+ exports.activeUniqueValueExists = activeUniqueValueExists;
50
+ exports.retireSoftDeletedUniqueValue = retireSoftDeletedUniqueValue;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkX6UQFV4X_cjs = require('./chunk-X6UQFV4X.cjs');
3
+ var chunk77NUXO6A_cjs = require('./chunk-77NUXO6A.cjs');
4
4
  var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
5
5
  var jwt = require('next-auth/jwt');
6
6
  var _CredentialsProvider = require('next-auth/providers/credentials');
@@ -11,12 +11,12 @@ var _CredentialsProvider__default = /*#__PURE__*/_interopDefault(_CredentialsPro
11
11
 
12
12
  // src/auth/seed-permissions.ts
13
13
  async function seedAdministratorPermissions(dataSource, entityMap) {
14
- const entities = chunkX6UQFV4X_cjs.getPermissionableEntityKeys(entityMap);
14
+ const entities = chunk77NUXO6A_cjs.getPermissionableEntityKeys(entityMap);
15
15
  const groupRepo = dataSource.getRepository(entityMap.user_groups);
16
16
  const permRepo = dataSource.getRepository(entityMap.permissions);
17
17
  const adminGroup = await groupRepo.findOne({
18
18
  where: {
19
- name: chunkX6UQFV4X_cjs.ADMIN_GROUP_NAME,
19
+ name: chunk77NUXO6A_cjs.ADMIN_GROUP_NAME,
20
20
  deleted: false
21
21
  }
22
22
  });
@@ -299,18 +299,18 @@ async function checkMultiVendorEnabledViaSettingsApi() {
299
299
  chunkUSNT2KNT_cjs.__name(checkMultiVendorEnabledViaSettingsApi, "checkMultiVendorEnabledViaSettingsApi");
300
300
  function sessionUserFromNextAuthUser(user) {
301
301
  const g = user.group;
302
- const isRBACAdmin = chunkX6UQFV4X_cjs.isSuperAdmin({
302
+ const isRBACAdmin = chunk77NUXO6A_cjs.isSuperAdmin({
303
303
  groupId: user.groupId ?? void 0,
304
304
  groupName: g?.name,
305
305
  isRBACAdmin: false
306
306
  });
307
- const entityPerms = chunkX6UQFV4X_cjs.permissionRowsToRecord(g?.permissions);
307
+ const entityPerms = chunk77NUXO6A_cjs.permissionRowsToRecord(g?.permissions);
308
308
  const rawAdminAccess = user.adminAccess;
309
309
  const adminAccess = rawAdminAccess === true ? true : rawAdminAccess === false ? false : void 0;
310
310
  const vendorIds = user.vendorIds ?? [];
311
311
  const vendorRole = user.vendorRole ?? null;
312
312
  const isVendorRoleOwner = user.isVendorRoleOwner ?? false;
313
- const { isVendorPortal, isVendorOwner: isVendorOwner2 } = chunkX6UQFV4X_cjs.vendorPortalFlagsFromUser({
313
+ const { isVendorPortal, isVendorOwner: isVendorOwner2 } = chunk77NUXO6A_cjs.vendorPortalFlagsFromUser({
314
314
  email: user.email,
315
315
  isRBACAdmin,
316
316
  groupName: g?.name,
@@ -405,6 +405,14 @@ function getNextAuthOptions(config) {
405
405
  });
406
406
  return null;
407
407
  }
408
+ if (user.inviteStatus === "pending") {
409
+ logAuth("authorize(credentials) rejected", {
410
+ reason: "invite_pending",
411
+ email,
412
+ userId: user.id
413
+ });
414
+ return null;
415
+ }
408
416
  if (user.deleted) {
409
417
  logAuth("authorize(credentials) rejected", {
410
418
  reason: "deleted",
@@ -494,7 +502,7 @@ function getNextAuthOptions(config) {
494
502
  channel: ch,
495
503
  code
496
504
  });
497
- if (!user || user.blocked || user.deleted) return null;
505
+ if (!user || user.blocked || user.inviteStatus === "pending" || user.deleted) return null;
498
506
  if (isCustomerGroupUser(user) && !permitsCustomerLogin(allowCustomerLogin, creds)) {
499
507
  logAuth("authorize(otp) rejected", {
500
508
  reason: "customer_group",
@@ -0,0 +1,248 @@
1
+ 'use strict';
2
+
3
+ var chunkBXYZDMTZ_cjs = require('./chunk-BXYZDMTZ.cjs');
4
+ var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
5
+
6
+ // src/plugins/email/email-queue.ts
7
+ var EMAIL_QUEUE_NAME = "email";
8
+ var registeredInvoiceOptions = {};
9
+ async function resolveInvoiceAttachmentForJob(cms, payload, options) {
10
+ if (!payload.attachInvoice || payload.orderId == null || payload.orderId < 1) {
11
+ return {
12
+ attachments: payload.attachments,
13
+ invoiceAttached: false
14
+ };
15
+ }
16
+ const entityMap = options.entityMap;
17
+ if (!entityMap?.orders) {
18
+ console.warn("[email] attachInvoice skipped: entityMap not registered on email queue processor");
19
+ return {
20
+ attachments: payload.attachments,
21
+ invoiceAttached: false
22
+ };
23
+ }
24
+ let dataSource;
25
+ try {
26
+ dataSource = options.getDataSource ? await options.getDataSource() : cms.dataSource;
27
+ } catch (err) {
28
+ console.error("[email] attachInvoice: getDataSource failed", err);
29
+ return {
30
+ attachments: payload.attachments,
31
+ invoiceAttached: false
32
+ };
33
+ }
34
+ if (!dataSource) {
35
+ console.warn("[email] attachInvoice skipped: no dataSource");
36
+ return {
37
+ attachments: payload.attachments,
38
+ invoiceAttached: false
39
+ };
40
+ }
41
+ try {
42
+ const order = await dataSource.getRepository(entityMap.orders).findOne({
43
+ where: {
44
+ id: payload.orderId,
45
+ deleted: false
46
+ }
47
+ });
48
+ if (!order) return {
49
+ attachments: payload.attachments,
50
+ invoiceAttached: false
51
+ };
52
+ const o = order;
53
+ if (!chunkBXYZDMTZ_cjs.isOrderEligibleForInvoiceEmail(o.status, o.orderKind)) {
54
+ return {
55
+ attachments: payload.attachments,
56
+ invoiceAttached: false
57
+ };
58
+ }
59
+ const resolved = await chunkBXYZDMTZ_cjs.resolveOrderInvoicePdfBytes(cms, dataSource, entityMap, payload.orderId);
60
+ if ("error" in resolved) {
61
+ console.warn("[email] order invoice attach failed", {
62
+ orderId: payload.orderId,
63
+ error: resolved.error,
64
+ status: resolved.status
65
+ });
66
+ return {
67
+ attachments: payload.attachments,
68
+ invoiceAttached: false
69
+ };
70
+ }
71
+ const invoiceAtt = {
72
+ filename: resolved.filename,
73
+ content: resolved.bytes,
74
+ contentType: resolved.contentType
75
+ };
76
+ return {
77
+ attachments: [
78
+ ...payload.attachments ?? [],
79
+ invoiceAtt
80
+ ],
81
+ invoiceAttached: true
82
+ };
83
+ } catch (err) {
84
+ console.error("[email] order invoice attach error", {
85
+ orderId: payload.orderId,
86
+ err
87
+ });
88
+ return {
89
+ attachments: payload.attachments,
90
+ invoiceAttached: false
91
+ };
92
+ }
93
+ }
94
+ chunkUSNT2KNT_cjs.__name(resolveInvoiceAttachmentForJob, "resolveInvoiceAttachmentForJob");
95
+ async function sendRendered(email, to, subject, html, text, attachments) {
96
+ await email.send({
97
+ to,
98
+ subject,
99
+ html,
100
+ text,
101
+ attachments
102
+ });
103
+ }
104
+ chunkUSNT2KNT_cjs.__name(sendRendered, "sendRendered");
105
+ function registerEmailQueueProcessor(cms, options = {}) {
106
+ registeredInvoiceOptions = options;
107
+ const queue = cms.getPlugin("queue");
108
+ const email = cms.getPlugin("email");
109
+ if (!queue || !email) return;
110
+ queue.registerProcessor(EMAIL_QUEUE_NAME, async (data) => {
111
+ const payload = data;
112
+ const { to, templateName, ctx, subject, html, text } = payload;
113
+ if (!to) return;
114
+ const attachmentsResult = await resolveInvoiceAttachmentForJob(cms, payload, registeredInvoiceOptions);
115
+ if (templateName && ctx) {
116
+ const rendered = email.renderTemplate(templateName, {
117
+ ...ctx,
118
+ invoiceAttached: attachmentsResult.invoiceAttached
119
+ });
120
+ await sendRendered(email, to, rendered.subject, rendered.html, rendered.text, attachmentsResult.attachments);
121
+ } else if (subject != null && html != null) {
122
+ await sendRendered(email, to, subject, html, text, attachmentsResult.attachments);
123
+ }
124
+ });
125
+ }
126
+ chunkUSNT2KNT_cjs.__name(registerEmailQueueProcessor, "registerEmailQueueProcessor");
127
+ async function queueEmail(cms, payload) {
128
+ const queue = cms.getPlugin("queue");
129
+ if (queue) {
130
+ await queue.add(EMAIL_QUEUE_NAME, payload);
131
+ return;
132
+ }
133
+ const email = cms.getPlugin("email");
134
+ if (!email) return;
135
+ const attachmentsResult = await resolveInvoiceAttachmentForJob(cms, payload, registeredInvoiceOptions);
136
+ if (payload.templateName && payload.ctx) {
137
+ const rendered = email.renderTemplate(payload.templateName, {
138
+ ...payload.ctx,
139
+ invoiceAttached: attachmentsResult.invoiceAttached
140
+ });
141
+ await sendRendered(email, payload.to, rendered.subject, rendered.html, rendered.text, attachmentsResult.attachments);
142
+ } else if (payload.subject != null && payload.html != null) {
143
+ await sendRendered(email, payload.to, payload.subject, payload.html, payload.text, attachmentsResult.attachments ?? payload.attachments);
144
+ }
145
+ }
146
+ chunkUSNT2KNT_cjs.__name(queueEmail, "queueEmail");
147
+ async function queueOrderPlacedEmails(cms, payload) {
148
+ const { orderNumber, total, subtotal, tax, currency, customerName, customerEmail, salesTeamEmails, companyDetails, lineItems, billingAddress, shippingAddress, orderId, attachInvoiceToCustomer = true } = payload;
149
+ const base = {
150
+ orderNumber,
151
+ total: total != null ? String(total) : void 0,
152
+ subtotal: subtotal != null ? String(subtotal) : void 0,
153
+ tax: tax != null ? String(tax) : void 0,
154
+ currency,
155
+ customerName,
156
+ companyDetails: companyDetails ?? {},
157
+ lineItems: lineItems ?? [],
158
+ billingAddress,
159
+ shippingAddress
160
+ };
161
+ const customerLower = customerEmail?.trim().toLowerCase() ?? "";
162
+ const jobs = [];
163
+ const shouldAttach = attachInvoiceToCustomer && orderId != null && Number.isFinite(orderId) && orderId > 0;
164
+ if (customerEmail?.trim()) {
165
+ jobs.push(queueEmail(cms, {
166
+ to: customerEmail.trim(),
167
+ templateName: "orderPlaced",
168
+ ctx: {
169
+ ...base,
170
+ audience: "customer"
171
+ },
172
+ ...shouldAttach ? {
173
+ orderId,
174
+ attachInvoice: true
175
+ } : {}
176
+ }));
177
+ }
178
+ const seen = /* @__PURE__ */ new Set();
179
+ for (const raw of salesTeamEmails) {
180
+ const to = raw.trim();
181
+ if (!to) continue;
182
+ const key = to.toLowerCase();
183
+ if (seen.has(key)) continue;
184
+ seen.add(key);
185
+ if (customerLower && key === customerLower) continue;
186
+ jobs.push(queueEmail(cms, {
187
+ to,
188
+ templateName: "orderPlaced",
189
+ ctx: {
190
+ ...base,
191
+ audience: "sales",
192
+ internalCustomerEmail: customerEmail?.trim() || void 0
193
+ }
194
+ }));
195
+ }
196
+ await Promise.all(jobs);
197
+ }
198
+ chunkUSNT2KNT_cjs.__name(queueOrderPlacedEmails, "queueOrderPlacedEmails");
199
+ async function queueVendorOnboardEmails(cms, payload) {
200
+ const { vendorName, vendorSlug, ownerName, ownerEmail, activation, inviteLink, signInLink, kind = "vendor_onboard", notifyEmails, companyDetails, sendToOwner = true } = payload;
201
+ const base = {
202
+ vendorName,
203
+ vendorSlug,
204
+ ownerName,
205
+ ownerEmail,
206
+ activation,
207
+ inviteLink,
208
+ signInLink,
209
+ kind,
210
+ companyDetails: companyDetails ?? {}
211
+ };
212
+ const ownerLower = ownerEmail?.trim().toLowerCase() ?? "";
213
+ const jobs = [];
214
+ if (sendToOwner && ownerEmail?.trim()) {
215
+ jobs.push(queueEmail(cms, {
216
+ to: ownerEmail.trim(),
217
+ templateName: "vendorOnboarded",
218
+ ctx: {
219
+ ...base,
220
+ audience: "owner"
221
+ }
222
+ }));
223
+ }
224
+ const seen = /* @__PURE__ */ new Set();
225
+ for (const raw of notifyEmails) {
226
+ const to = raw.trim();
227
+ if (!to) continue;
228
+ const key = to.toLowerCase();
229
+ if (seen.has(key)) continue;
230
+ seen.add(key);
231
+ if (ownerLower && key === ownerLower) continue;
232
+ jobs.push(queueEmail(cms, {
233
+ to,
234
+ templateName: "vendorOnboarded",
235
+ ctx: {
236
+ ...base,
237
+ audience: "internal"
238
+ }
239
+ }));
240
+ }
241
+ await Promise.all(jobs);
242
+ }
243
+ chunkUSNT2KNT_cjs.__name(queueVendorOnboardEmails, "queueVendorOnboardEmails");
244
+
245
+ exports.queueEmail = queueEmail;
246
+ exports.queueOrderPlacedEmails = queueOrderPlacedEmails;
247
+ exports.queueVendorOnboardEmails = queueVendorOnboardEmails;
248
+ exports.registerEmailQueueProcessor = registerEmailQueueProcessor;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkX6UQFV4X_cjs = require('./chunk-X6UQFV4X.cjs');
3
+ var chunk77NUXO6A_cjs = require('./chunk-77NUXO6A.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 chunkX6UQFV4X_cjs.explainSessionEntityAccess(user, entity, action).allowed;
13
+ return chunk77NUXO6A_cjs.explainSessionEntityAccess(user, entity, action).allowed;
14
14
  }
15
15
  chunkUSNT2KNT_cjs.__name(sessionHasEntityAccess, "sessionHasEntityAccess");
16
16
  function canManageRoles(user) {
@@ -68,7 +68,7 @@ function createCmsAuthBundle(getSession, NextResponse) {
68
68
  chunkUSNT2KNT_cjs.__name(createCmsAuthBundle, "createCmsAuthBundle");
69
69
  function createAuthHelpersFromGetSession(getSession, NextResponse) {
70
70
  return {
71
- async requireAuth() {
71
+ async requireAuth(_req) {
72
72
  const session = await getSession();
73
73
  if (!session?.user?.email) {
74
74
  return NextResponse.json({
@@ -79,7 +79,7 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
79
79
  }
80
80
  return null;
81
81
  },
82
- async requirePermission() {
82
+ async requirePermission(_req, _permission) {
83
83
  const session = await getSession();
84
84
  if (!session?.user?.email) {
85
85
  return NextResponse.json({
@@ -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 } = chunkX6UQFV4X_cjs.explainSessionEntityAccess(u, entity, action);
105
- chunkX6UQFV4X_cjs.logRbac("authHelpers.requireEntityPermission", {
104
+ const { reason } = chunk77NUXO6A_cjs.explainSessionEntityAccess(u, entity, action);
105
+ chunk77NUXO6A_cjs.logRbac("authHelpers.requireEntityPermission", {
106
106
  entity,
107
107
  action,
108
108
  allowed,
@@ -123,7 +123,7 @@ function createAuthHelpersFromGetSession(getSession, NextResponse) {
123
123
  status: 403
124
124
  });
125
125
  },
126
- async requireAdminAccess() {
126
+ async requireAdminAccess(_req) {
127
127
  const session = await getSession();
128
128
  if (!session?.user?.email) {
129
129
  return NextResponse.json({
@@ -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 (chunkX6UQFV4X_cjs.isVendorPortalUser(u)) return null;
137
+ if (chunk77NUXO6A_cjs.isVendorPortalUser(u)) return null;
138
138
  if (u.adminAccess === true) return null;
139
139
  if (u.adminAccess === false) {
140
- chunkX6UQFV4X_cjs.logRbac("requireAdminAccess denied (adminAccess:false)", {
140
+ chunk77NUXO6A_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
- chunkX6UQFV4X_cjs.logRbac("requireAdminAccess denied (no matching rule)", {
152
+ chunk77NUXO6A_cjs.logRbac("requireAdminAccess denied (no matching rule)", {
153
153
  email: u.email,
154
154
  adminAccess: u.adminAccess,
155
155
  groupName: u.groupName,