@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,4 +1,4 @@
|
|
|
1
|
-
import { getPermissionableEntityKeys, ADMIN_GROUP_NAME, isSuperAdmin, permissionRowsToRecord, vendorPortalFlagsFromUser } from './chunk-
|
|
1
|
+
import { getPermissionableEntityKeys, ADMIN_GROUP_NAME, isSuperAdmin, permissionRowsToRecord, vendorPortalFlagsFromUser } from './chunk-P7QCLE5W.js';
|
|
2
2
|
import { __name } from './chunk-SHUYVCID.js';
|
|
3
3
|
import { getToken } from 'next-auth/jwt';
|
|
4
4
|
import _CredentialsProvider from 'next-auth/providers/credentials';
|
|
@@ -14,7 +14,6 @@ async function seedAdministratorPermissions(dataSource, entityMap) {
|
|
|
14
14
|
deleted: false
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
-
console.log("ADMIN GROUP", adminGroup);
|
|
18
17
|
if (!adminGroup) return;
|
|
19
18
|
const fullCrud = {
|
|
20
19
|
canCreate: true,
|
|
@@ -29,7 +28,6 @@ async function seedAdministratorPermissions(dataSource, entityMap) {
|
|
|
29
28
|
entity
|
|
30
29
|
}
|
|
31
30
|
});
|
|
32
|
-
console.log("EXISTING", existing);
|
|
33
31
|
if (existing) {
|
|
34
32
|
existing.canCreate = true;
|
|
35
33
|
existing.canRead = true;
|
|
@@ -51,17 +49,13 @@ __name(seedAdministratorPermissions, "seedAdministratorPermissions");
|
|
|
51
49
|
var LOG_PREFIX = "[cms-auth]";
|
|
52
50
|
function isAuthDebugEnabled() {
|
|
53
51
|
const v = process.env.CMS_AUTH_DEBUG?.trim().toLowerCase();
|
|
54
|
-
|
|
55
|
-
if (v === "0" || v === "false" || v === "no") return false;
|
|
56
|
-
return process.env.NODE_ENV === "development";
|
|
52
|
+
return v === "1" || v === "true" || v === "yes";
|
|
57
53
|
}
|
|
58
54
|
__name(isAuthDebugEnabled, "isAuthDebugEnabled");
|
|
59
55
|
function isAuthDebugClientEnabled() {
|
|
60
56
|
if (typeof window === "undefined") return false;
|
|
61
57
|
const v = process.env.NEXT_PUBLIC_CMS_AUTH_DEBUG?.trim().toLowerCase();
|
|
62
|
-
|
|
63
|
-
if (v === "0" || v === "false" || v === "no") return false;
|
|
64
|
-
return process.env.NODE_ENV === "development";
|
|
58
|
+
return v === "1" || v === "true" || v === "yes";
|
|
65
59
|
}
|
|
66
60
|
__name(isAuthDebugClientEnabled, "isAuthDebugClientEnabled");
|
|
67
61
|
function logAuth(message, data) {
|
|
@@ -240,6 +234,62 @@ function createCmsMiddleware(config = {}) {
|
|
|
240
234
|
}
|
|
241
235
|
__name(createCmsMiddleware, "createCmsMiddleware");
|
|
242
236
|
var CredentialsProvider = _CredentialsProvider.default ?? _CredentialsProvider;
|
|
237
|
+
function parseBooleanSetting(value) {
|
|
238
|
+
if (typeof value === "boolean") return value;
|
|
239
|
+
if (typeof value === "number") return value !== 0;
|
|
240
|
+
if (typeof value === "string") {
|
|
241
|
+
const normalized = value.trim().toLowerCase();
|
|
242
|
+
if ([
|
|
243
|
+
"true",
|
|
244
|
+
"1",
|
|
245
|
+
"yes",
|
|
246
|
+
"on"
|
|
247
|
+
].includes(normalized)) return true;
|
|
248
|
+
if ([
|
|
249
|
+
"false",
|
|
250
|
+
"0",
|
|
251
|
+
"no",
|
|
252
|
+
"off"
|
|
253
|
+
].includes(normalized)) return false;
|
|
254
|
+
}
|
|
255
|
+
if (value && typeof value === "object") {
|
|
256
|
+
const record = value;
|
|
257
|
+
const nested = parseBooleanSetting(record.value ?? record.enabled ?? record.isEnabled ?? record.active ?? record.state);
|
|
258
|
+
if (nested != null) return nested;
|
|
259
|
+
}
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
__name(parseBooleanSetting, "parseBooleanSetting");
|
|
263
|
+
async function checkMultiVendorEnabledViaSettingsApi() {
|
|
264
|
+
const FAIL_OPEN_DEFAULT = true;
|
|
265
|
+
const base = process.env.NEXTAUTH_URL?.replace(/\/$/, "");
|
|
266
|
+
if (!base) {
|
|
267
|
+
logAuth("multiVendorCheck: no NEXTAUTH_URL, defaulting", {
|
|
268
|
+
multiVendorEnabled: FAIL_OPEN_DEFAULT
|
|
269
|
+
});
|
|
270
|
+
return FAIL_OPEN_DEFAULT;
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const res = await fetch(`${base}/api/settings/multi_vendor`, {
|
|
274
|
+
cache: "no-store"
|
|
275
|
+
});
|
|
276
|
+
if (!res.ok) {
|
|
277
|
+
logAuth("multiVendorCheck: non-OK response, defaulting", {
|
|
278
|
+
status: res.status
|
|
279
|
+
});
|
|
280
|
+
return FAIL_OPEN_DEFAULT;
|
|
281
|
+
}
|
|
282
|
+
const data = await res.json();
|
|
283
|
+
const parsed = parseBooleanSetting(data?.enabled ?? data?.value ?? data?.isEnabled ?? data?.active ?? data?.state);
|
|
284
|
+
return parsed ?? FAIL_OPEN_DEFAULT;
|
|
285
|
+
} catch (err) {
|
|
286
|
+
logAuth("multiVendorCheck: fetch failed, defaulting", {
|
|
287
|
+
message: err instanceof Error ? err.message : String(err)
|
|
288
|
+
});
|
|
289
|
+
return FAIL_OPEN_DEFAULT;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
__name(checkMultiVendorEnabledViaSettingsApi, "checkMultiVendorEnabledViaSettingsApi");
|
|
243
293
|
function sessionUserFromNextAuthUser(user) {
|
|
244
294
|
const g = user.group;
|
|
245
295
|
const isRBACAdmin = isSuperAdmin({
|
|
@@ -383,6 +433,17 @@ function getNextAuthOptions(config) {
|
|
|
383
433
|
return null;
|
|
384
434
|
}
|
|
385
435
|
const sessionUser = sessionUserFromNextAuthUser(user);
|
|
436
|
+
if (sessionUser.isVendorPortal && !sessionUser.isRBACAdmin) {
|
|
437
|
+
const multiVendorEnabled = await checkMultiVendorEnabledViaSettingsApi();
|
|
438
|
+
if (!multiVendorEnabled) {
|
|
439
|
+
logAuth("authorize(credentials) rejected", {
|
|
440
|
+
reason: "multi_vendor_disabled",
|
|
441
|
+
email,
|
|
442
|
+
userId: user.id
|
|
443
|
+
});
|
|
444
|
+
return null;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
386
447
|
logAuth("authorize(credentials) ok", summarizeSessionUserForLog(sessionUser));
|
|
387
448
|
return sessionUser;
|
|
388
449
|
} catch (err) {
|
|
@@ -86,12 +86,18 @@ async function resolveEventOrderTemplate(channel, getRow, eventOverride) {
|
|
|
86
86
|
let subject = def.subject;
|
|
87
87
|
let body = def.body;
|
|
88
88
|
let externalTemplateRef = def.externalTemplateRef;
|
|
89
|
+
let name;
|
|
90
|
+
let language;
|
|
91
|
+
let paramOrder;
|
|
89
92
|
let enabled = true;
|
|
90
93
|
if (row) {
|
|
91
94
|
enabled = row.enabled !== false;
|
|
92
95
|
if (row.subject?.trim()) subject = row.subject.trim();
|
|
93
96
|
if (row.body.trim()) body = row.body;
|
|
94
97
|
if (row.externalTemplateRef?.trim()) externalTemplateRef = row.externalTemplateRef.trim();
|
|
98
|
+
name = row.name?.trim() || void 0;
|
|
99
|
+
language = row.language?.trim() || void 0;
|
|
100
|
+
paramOrder = row.paramOrder?.length ? row.paramOrder : void 0;
|
|
95
101
|
}
|
|
96
102
|
if (eventOverride) {
|
|
97
103
|
if (eventOverride.subject?.trim()) subject = eventOverride.subject.trim();
|
|
@@ -104,6 +110,9 @@ async function resolveEventOrderTemplate(channel, getRow, eventOverride) {
|
|
|
104
110
|
subject,
|
|
105
111
|
body,
|
|
106
112
|
externalTemplateRef: externalTemplateRef?.trim() || void 0,
|
|
113
|
+
name,
|
|
114
|
+
language,
|
|
115
|
+
paramOrder,
|
|
107
116
|
enabled
|
|
108
117
|
};
|
|
109
118
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
4
|
+
var events = require('events');
|
|
5
|
+
|
|
6
|
+
var KNOWN_NOTIFICATION_TRIGGERS = {
|
|
7
|
+
ORDER_PLACED: "order_placed",
|
|
8
|
+
ORDER_CANCELLED: "order_cancelled"
|
|
9
|
+
};
|
|
10
|
+
var NotificationTriggerEmitter = class NotificationTriggerEmitter2 extends events.EventEmitter {
|
|
11
|
+
static {
|
|
12
|
+
chunkUSNT2KNT_cjs.__name(this, "NotificationTriggerEmitter");
|
|
13
|
+
}
|
|
14
|
+
emitTrigger(triggerKey, payload) {
|
|
15
|
+
this.emit("__any__", triggerKey, payload);
|
|
16
|
+
}
|
|
17
|
+
onAnyTrigger(listener) {
|
|
18
|
+
this.on("__any__", listener);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var notificationTriggerEmitter = new NotificationTriggerEmitter();
|
|
22
|
+
|
|
23
|
+
exports.KNOWN_NOTIFICATION_TRIGGERS = KNOWN_NOTIFICATION_TRIGGERS;
|
|
24
|
+
exports.notificationTriggerEmitter = notificationTriggerEmitter;
|