@infuro/cms-core 1.0.46 → 1.0.50
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/README.md +30 -16
- package/dist/admin.cjs +4568 -2716
- package/dist/admin.d.cts +18 -4
- package/dist/admin.d.ts +18 -4
- package/dist/admin.js +3475 -1625
- package/dist/api.cjs +38 -39
- package/dist/api.d.cts +9 -3
- package/dist/api.d.ts +9 -3
- package/dist/api.js +6 -7
- package/dist/auth.cjs +84 -51
- package/dist/auth.d.cts +105 -4
- package/dist/auth.d.ts +105 -4
- package/dist/auth.js +4 -3
- package/dist/chunk-2IAXTKQN.cjs +19 -0
- package/dist/chunk-3EOM4V2M.cjs +452 -0
- package/dist/{chunk-X6UQFV4X.cjs → chunk-77NUXO6A.cjs} +14 -12
- package/dist/{chunk-KFFB6EMZ.js → chunk-AYERBA7I.js} +3 -7
- package/dist/chunk-EIZKW2PF.js +13 -0
- package/dist/{chunk-CRYKVJTO.js → chunk-IPDHT2UV.js} +1420 -3
- package/dist/{chunk-UDVLFVEC.cjs → chunk-JCMOOPNX.cjs} +3820 -2907
- 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-UKC3HYXI.js → chunk-LT2WOPKA.js} +3733 -2813
- package/dist/chunk-RK5ETF2I.js +434 -0
- package/dist/{chunk-SPQFNIYJ.cjs → chunk-TJ2MIQUT.cjs} +3 -7
- package/dist/{chunk-TCSGFAWB.cjs → chunk-UUWAUHUW.cjs} +1451 -3
- package/dist/{chunk-57O3HZPG.js → chunk-WRKV6MHB.js} +415 -3
- package/dist/{chunk-FBKDMRQL.cjs → chunk-YV5PK4JW.cjs} +427 -7
- package/dist/cli.cjs +13 -22
- package/dist/cli.js +13 -22
- 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-DU7V3YND.cjs} +9 -9
- package/dist/{event-order-defaults-SDRNAZHC.js → event-order-defaults-H4RT7NMR.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 +479 -339
- package/dist/index.d.cts +181 -20
- package/dist/index.d.ts +181 -20
- package/dist/index.js +115 -13
- package/dist/migrations/1782200000000-VendorTeamProfiles.ts +233 -0
- package/dist/migrations/1782300000000-AddTypeToOrderNotificationBindings.ts +75 -0
- package/dist/migrations/1782400000000-CreateUserDeviceTokens.ts +36 -0
- package/dist/migrations/1782500000000-AddPushToOrderNotificationBindingsChannelEnum.ts +15 -0
- package/dist/{order-notification-dispatcher-ZJZB2HUN.js → order-notification-dispatcher-3TA4ETYJ.js} +1 -2
- package/dist/{order-notification-dispatcher-SBQAMM5V.cjs → order-notification-dispatcher-ZEAZ5SHV.cjs} +7 -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-NBY4NVTY.cjs +0 -182
- package/dist/chunk-SF2XKMCI.js +0 -171
- 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
package/dist/chunk-NBY4NVTY.cjs
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkX6UQFV4X_cjs = require('./chunk-X6UQFV4X.cjs');
|
|
4
|
-
var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
5
|
-
|
|
6
|
-
// src/auth/helpers.ts
|
|
7
|
-
var RBAC_ADMIN_ONLY_ENTITIES = /* @__PURE__ */ new Set([
|
|
8
|
-
"users",
|
|
9
|
-
"user_groups",
|
|
10
|
-
"permissions"
|
|
11
|
-
]);
|
|
12
|
-
function sessionHasEntityAccess(user, entity, action) {
|
|
13
|
-
return chunkX6UQFV4X_cjs.explainSessionEntityAccess(user, entity, action).allowed;
|
|
14
|
-
}
|
|
15
|
-
chunkUSNT2KNT_cjs.__name(sessionHasEntityAccess, "sessionHasEntityAccess");
|
|
16
|
-
function canManageRoles(user) {
|
|
17
|
-
return !!(user?.email && user.isRBACAdmin);
|
|
18
|
-
}
|
|
19
|
-
chunkUSNT2KNT_cjs.__name(canManageRoles, "canManageRoles");
|
|
20
|
-
var OPEN_ENDPOINTS = [
|
|
21
|
-
{
|
|
22
|
-
"/api/contacts": [
|
|
23
|
-
"POST"
|
|
24
|
-
]
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"/api/form-submissions": [
|
|
28
|
-
"POST"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"/api/blogs": [
|
|
33
|
-
"GET"
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
];
|
|
37
|
-
var PERMISSION_REQUIRED_ENDPOINTS = {};
|
|
38
|
-
function isOpenEndpoint(pathname) {
|
|
39
|
-
return OPEN_ENDPOINTS.some((endpoint) => pathname.startsWith(Object.keys(endpoint)[0]));
|
|
40
|
-
}
|
|
41
|
-
chunkUSNT2KNT_cjs.__name(isOpenEndpoint, "isOpenEndpoint");
|
|
42
|
-
function getRequiredPermission(pathname) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
chunkUSNT2KNT_cjs.__name(getRequiredPermission, "getRequiredPermission");
|
|
46
|
-
function isPublicMethod(pathname, method) {
|
|
47
|
-
for (const endpoint of OPEN_ENDPOINTS) {
|
|
48
|
-
const key = Object.keys(endpoint)[0];
|
|
49
|
-
if (pathname.startsWith(key) && endpoint[key].includes(method)) return true;
|
|
50
|
-
}
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
chunkUSNT2KNT_cjs.__name(isPublicMethod, "isPublicMethod");
|
|
54
|
-
function createAuthHelpers(getSession, NextResponse) {
|
|
55
|
-
return createAuthHelpersFromGetSession(getSession, NextResponse);
|
|
56
|
-
}
|
|
57
|
-
chunkUSNT2KNT_cjs.__name(createAuthHelpers, "createAuthHelpers");
|
|
58
|
-
function createCmsAuthBundle(getSession, NextResponse) {
|
|
59
|
-
const auth = createAuthHelpers(getSession, NextResponse);
|
|
60
|
-
return {
|
|
61
|
-
requireAuth: auth.requireAuth,
|
|
62
|
-
requireAdminAccess: auth.requireAdminAccess,
|
|
63
|
-
requireEntityPermission: auth.requireEntityPermission,
|
|
64
|
-
getSessionUser: auth.getAuthenticatedUser,
|
|
65
|
-
getAuthenticatedUser: auth.getAuthenticatedUser
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
chunkUSNT2KNT_cjs.__name(createCmsAuthBundle, "createCmsAuthBundle");
|
|
69
|
-
function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
70
|
-
return {
|
|
71
|
-
async requireAuth(_req) {
|
|
72
|
-
const session = await getSession();
|
|
73
|
-
if (!session?.user?.email) {
|
|
74
|
-
return NextResponse.json({
|
|
75
|
-
error: "Unauthorized"
|
|
76
|
-
}, {
|
|
77
|
-
status: 401
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return null;
|
|
81
|
-
},
|
|
82
|
-
async requirePermission(_req, _permission) {
|
|
83
|
-
const session = await getSession();
|
|
84
|
-
if (!session?.user?.email) {
|
|
85
|
-
return NextResponse.json({
|
|
86
|
-
error: "Unauthorized"
|
|
87
|
-
}, {
|
|
88
|
-
status: 401
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
return null;
|
|
92
|
-
},
|
|
93
|
-
async requireEntityPermission(_req, entity, action) {
|
|
94
|
-
const session = await getSession();
|
|
95
|
-
if (!session?.user?.email) {
|
|
96
|
-
return NextResponse.json({
|
|
97
|
-
error: "Unauthorized"
|
|
98
|
-
}, {
|
|
99
|
-
status: 401
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
const u = session.user;
|
|
103
|
-
const allowed = sessionHasEntityAccess(u, entity, action);
|
|
104
|
-
const { reason } = chunkX6UQFV4X_cjs.explainSessionEntityAccess(u, entity, action);
|
|
105
|
-
chunkX6UQFV4X_cjs.logRbac("authHelpers.requireEntityPermission", {
|
|
106
|
-
entity,
|
|
107
|
-
action,
|
|
108
|
-
allowed,
|
|
109
|
-
reason,
|
|
110
|
-
email: u.email,
|
|
111
|
-
groupName: u.groupName,
|
|
112
|
-
vendorIds: u.vendorIds,
|
|
113
|
-
isVendorPortal: u.isVendorPortal,
|
|
114
|
-
isVendorOwner: u.isVendorOwner
|
|
115
|
-
});
|
|
116
|
-
if (allowed) return null;
|
|
117
|
-
return NextResponse.json({
|
|
118
|
-
error: "Forbidden",
|
|
119
|
-
entity,
|
|
120
|
-
action,
|
|
121
|
-
reason
|
|
122
|
-
}, {
|
|
123
|
-
status: 403
|
|
124
|
-
});
|
|
125
|
-
},
|
|
126
|
-
async requireAdminAccess(_req) {
|
|
127
|
-
const session = await getSession();
|
|
128
|
-
if (!session?.user?.email) {
|
|
129
|
-
return NextResponse.json({
|
|
130
|
-
error: "Unauthorized"
|
|
131
|
-
}, {
|
|
132
|
-
status: 401
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
const u = session.user;
|
|
136
|
-
if (u.isRBACAdmin) return null;
|
|
137
|
-
if (chunkX6UQFV4X_cjs.isVendorPortalUser(u)) return null;
|
|
138
|
-
if (u.adminAccess === true) return null;
|
|
139
|
-
if (u.adminAccess === false) {
|
|
140
|
-
chunkX6UQFV4X_cjs.logRbac("requireAdminAccess denied (adminAccess:false)", {
|
|
141
|
-
email: u.email,
|
|
142
|
-
groupName: u.groupName,
|
|
143
|
-
isVendorPortal: u.isVendorPortal
|
|
144
|
-
});
|
|
145
|
-
return NextResponse.json({
|
|
146
|
-
error: "Forbidden",
|
|
147
|
-
reason: "admin_access"
|
|
148
|
-
}, {
|
|
149
|
-
status: 403
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
chunkX6UQFV4X_cjs.logRbac("requireAdminAccess denied (no matching rule)", {
|
|
153
|
-
email: u.email,
|
|
154
|
-
adminAccess: u.adminAccess,
|
|
155
|
-
groupName: u.groupName,
|
|
156
|
-
isVendorPortal: u.isVendorPortal
|
|
157
|
-
});
|
|
158
|
-
return NextResponse.json({
|
|
159
|
-
error: "Forbidden",
|
|
160
|
-
reason: "admin_access"
|
|
161
|
-
}, {
|
|
162
|
-
status: 403
|
|
163
|
-
});
|
|
164
|
-
},
|
|
165
|
-
async getAuthenticatedUser() {
|
|
166
|
-
const session = await getSession();
|
|
167
|
-
return session?.user ?? null;
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
chunkUSNT2KNT_cjs.__name(createAuthHelpersFromGetSession, "createAuthHelpersFromGetSession");
|
|
172
|
-
|
|
173
|
-
exports.OPEN_ENDPOINTS = OPEN_ENDPOINTS;
|
|
174
|
-
exports.PERMISSION_REQUIRED_ENDPOINTS = PERMISSION_REQUIRED_ENDPOINTS;
|
|
175
|
-
exports.RBAC_ADMIN_ONLY_ENTITIES = RBAC_ADMIN_ONLY_ENTITIES;
|
|
176
|
-
exports.canManageRoles = canManageRoles;
|
|
177
|
-
exports.createAuthHelpers = createAuthHelpers;
|
|
178
|
-
exports.createCmsAuthBundle = createCmsAuthBundle;
|
|
179
|
-
exports.getRequiredPermission = getRequiredPermission;
|
|
180
|
-
exports.isOpenEndpoint = isOpenEndpoint;
|
|
181
|
-
exports.isPublicMethod = isPublicMethod;
|
|
182
|
-
exports.sessionHasEntityAccess = sessionHasEntityAccess;
|
package/dist/chunk-SF2XKMCI.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { explainSessionEntityAccess, isVendorPortalUser, logRbac } from './chunk-DN65KDIA.js';
|
|
2
|
-
import { __name } from './chunk-SHUYVCID.js';
|
|
3
|
-
|
|
4
|
-
// src/auth/helpers.ts
|
|
5
|
-
var RBAC_ADMIN_ONLY_ENTITIES = /* @__PURE__ */ new Set([
|
|
6
|
-
"users",
|
|
7
|
-
"user_groups",
|
|
8
|
-
"permissions"
|
|
9
|
-
]);
|
|
10
|
-
function sessionHasEntityAccess(user, entity, action) {
|
|
11
|
-
return explainSessionEntityAccess(user, entity, action).allowed;
|
|
12
|
-
}
|
|
13
|
-
__name(sessionHasEntityAccess, "sessionHasEntityAccess");
|
|
14
|
-
function canManageRoles(user) {
|
|
15
|
-
return !!(user?.email && user.isRBACAdmin);
|
|
16
|
-
}
|
|
17
|
-
__name(canManageRoles, "canManageRoles");
|
|
18
|
-
var OPEN_ENDPOINTS = [
|
|
19
|
-
{
|
|
20
|
-
"/api/contacts": [
|
|
21
|
-
"POST"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"/api/form-submissions": [
|
|
26
|
-
"POST"
|
|
27
|
-
]
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"/api/blogs": [
|
|
31
|
-
"GET"
|
|
32
|
-
]
|
|
33
|
-
}
|
|
34
|
-
];
|
|
35
|
-
var PERMISSION_REQUIRED_ENDPOINTS = {};
|
|
36
|
-
function isOpenEndpoint(pathname) {
|
|
37
|
-
return OPEN_ENDPOINTS.some((endpoint) => pathname.startsWith(Object.keys(endpoint)[0]));
|
|
38
|
-
}
|
|
39
|
-
__name(isOpenEndpoint, "isOpenEndpoint");
|
|
40
|
-
function getRequiredPermission(pathname) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
__name(getRequiredPermission, "getRequiredPermission");
|
|
44
|
-
function isPublicMethod(pathname, method) {
|
|
45
|
-
for (const endpoint of OPEN_ENDPOINTS) {
|
|
46
|
-
const key = Object.keys(endpoint)[0];
|
|
47
|
-
if (pathname.startsWith(key) && endpoint[key].includes(method)) return true;
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
__name(isPublicMethod, "isPublicMethod");
|
|
52
|
-
function createAuthHelpers(getSession, NextResponse) {
|
|
53
|
-
return createAuthHelpersFromGetSession(getSession, NextResponse);
|
|
54
|
-
}
|
|
55
|
-
__name(createAuthHelpers, "createAuthHelpers");
|
|
56
|
-
function createCmsAuthBundle(getSession, NextResponse) {
|
|
57
|
-
const auth = createAuthHelpers(getSession, NextResponse);
|
|
58
|
-
return {
|
|
59
|
-
requireAuth: auth.requireAuth,
|
|
60
|
-
requireAdminAccess: auth.requireAdminAccess,
|
|
61
|
-
requireEntityPermission: auth.requireEntityPermission,
|
|
62
|
-
getSessionUser: auth.getAuthenticatedUser,
|
|
63
|
-
getAuthenticatedUser: auth.getAuthenticatedUser
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
__name(createCmsAuthBundle, "createCmsAuthBundle");
|
|
67
|
-
function createAuthHelpersFromGetSession(getSession, NextResponse) {
|
|
68
|
-
return {
|
|
69
|
-
async requireAuth(_req) {
|
|
70
|
-
const session = await getSession();
|
|
71
|
-
if (!session?.user?.email) {
|
|
72
|
-
return NextResponse.json({
|
|
73
|
-
error: "Unauthorized"
|
|
74
|
-
}, {
|
|
75
|
-
status: 401
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
},
|
|
80
|
-
async requirePermission(_req, _permission) {
|
|
81
|
-
const session = await getSession();
|
|
82
|
-
if (!session?.user?.email) {
|
|
83
|
-
return NextResponse.json({
|
|
84
|
-
error: "Unauthorized"
|
|
85
|
-
}, {
|
|
86
|
-
status: 401
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
|
-
},
|
|
91
|
-
async requireEntityPermission(_req, entity, action) {
|
|
92
|
-
const session = await getSession();
|
|
93
|
-
if (!session?.user?.email) {
|
|
94
|
-
return NextResponse.json({
|
|
95
|
-
error: "Unauthorized"
|
|
96
|
-
}, {
|
|
97
|
-
status: 401
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
const u = session.user;
|
|
101
|
-
const allowed = sessionHasEntityAccess(u, entity, action);
|
|
102
|
-
const { reason } = explainSessionEntityAccess(u, entity, action);
|
|
103
|
-
logRbac("authHelpers.requireEntityPermission", {
|
|
104
|
-
entity,
|
|
105
|
-
action,
|
|
106
|
-
allowed,
|
|
107
|
-
reason,
|
|
108
|
-
email: u.email,
|
|
109
|
-
groupName: u.groupName,
|
|
110
|
-
vendorIds: u.vendorIds,
|
|
111
|
-
isVendorPortal: u.isVendorPortal,
|
|
112
|
-
isVendorOwner: u.isVendorOwner
|
|
113
|
-
});
|
|
114
|
-
if (allowed) return null;
|
|
115
|
-
return NextResponse.json({
|
|
116
|
-
error: "Forbidden",
|
|
117
|
-
entity,
|
|
118
|
-
action,
|
|
119
|
-
reason
|
|
120
|
-
}, {
|
|
121
|
-
status: 403
|
|
122
|
-
});
|
|
123
|
-
},
|
|
124
|
-
async requireAdminAccess(_req) {
|
|
125
|
-
const session = await getSession();
|
|
126
|
-
if (!session?.user?.email) {
|
|
127
|
-
return NextResponse.json({
|
|
128
|
-
error: "Unauthorized"
|
|
129
|
-
}, {
|
|
130
|
-
status: 401
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
const u = session.user;
|
|
134
|
-
if (u.isRBACAdmin) return null;
|
|
135
|
-
if (isVendorPortalUser(u)) return null;
|
|
136
|
-
if (u.adminAccess === true) return null;
|
|
137
|
-
if (u.adminAccess === false) {
|
|
138
|
-
logRbac("requireAdminAccess denied (adminAccess:false)", {
|
|
139
|
-
email: u.email,
|
|
140
|
-
groupName: u.groupName,
|
|
141
|
-
isVendorPortal: u.isVendorPortal
|
|
142
|
-
});
|
|
143
|
-
return NextResponse.json({
|
|
144
|
-
error: "Forbidden",
|
|
145
|
-
reason: "admin_access"
|
|
146
|
-
}, {
|
|
147
|
-
status: 403
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
logRbac("requireAdminAccess denied (no matching rule)", {
|
|
151
|
-
email: u.email,
|
|
152
|
-
adminAccess: u.adminAccess,
|
|
153
|
-
groupName: u.groupName,
|
|
154
|
-
isVendorPortal: u.isVendorPortal
|
|
155
|
-
});
|
|
156
|
-
return NextResponse.json({
|
|
157
|
-
error: "Forbidden",
|
|
158
|
-
reason: "admin_access"
|
|
159
|
-
}, {
|
|
160
|
-
status: 403
|
|
161
|
-
});
|
|
162
|
-
},
|
|
163
|
-
async getAuthenticatedUser() {
|
|
164
|
-
const session = await getSession();
|
|
165
|
-
return session?.user ?? null;
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
__name(createAuthHelpersFromGetSession, "createAuthHelpersFromGetSession");
|
|
170
|
-
|
|
171
|
-
export { OPEN_ENDPOINTS, PERMISSION_REQUIRED_ENDPOINTS, RBAC_ADMIN_ONLY_ENTITIES, canManageRoles, createAuthHelpers, createCmsAuthBundle, getRequiredPermission, isOpenEndpoint, isPublicMethod, sessionHasEntityAccess };
|
package/dist/chunk-XMRMZ6NQ.cjs
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkTCSGFAWB_cjs = require('./chunk-TCSGFAWB.cjs');
|
|
4
|
-
var chunkV25RDUOU_cjs = require('./chunk-V25RDUOU.cjs');
|
|
5
|
-
var chunkBXYZDMTZ_cjs = require('./chunk-BXYZDMTZ.cjs');
|
|
6
|
-
var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
|
|
7
|
-
|
|
8
|
-
// src/lib/send-order-placed-emails.ts
|
|
9
|
-
async function getSettingsGroup(deps, group) {
|
|
10
|
-
const ds = await deps.getDataSource();
|
|
11
|
-
const rows = await ds.getRepository(deps.entityMap.configs).find({
|
|
12
|
-
where: {
|
|
13
|
-
settings: group,
|
|
14
|
-
deleted: false
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
return Object.fromEntries(rows.map((r) => [
|
|
18
|
-
r.key,
|
|
19
|
-
r.value
|
|
20
|
-
]));
|
|
21
|
-
}
|
|
22
|
-
chunkUSNT2KNT_cjs.__name(getSettingsGroup, "getSettingsGroup");
|
|
23
|
-
async function sendOrderPlacedEmailsAfterConfirmation(orderId, deps) {
|
|
24
|
-
try {
|
|
25
|
-
let addrToRecord2 = function(a) {
|
|
26
|
-
if (!a) return void 0;
|
|
27
|
-
const out = {};
|
|
28
|
-
const set = /* @__PURE__ */ chunkUSNT2KNT_cjs.__name((k, v) => {
|
|
29
|
-
const t = v != null ? String(v).trim() : "";
|
|
30
|
-
if (t) out[k] = t;
|
|
31
|
-
}, "set");
|
|
32
|
-
set("line1", a.line1);
|
|
33
|
-
set("line2", a.line2);
|
|
34
|
-
set("city", a.city);
|
|
35
|
-
set("state", a.state);
|
|
36
|
-
set("postalCode", a.postalCode);
|
|
37
|
-
set("country", a.country);
|
|
38
|
-
return Object.keys(out).length ? out : void 0;
|
|
39
|
-
};
|
|
40
|
-
var addrToRecord = addrToRecord2;
|
|
41
|
-
chunkUSNT2KNT_cjs.__name(addrToRecord2, "addrToRecord");
|
|
42
|
-
const ds = await deps.getDataSource();
|
|
43
|
-
const order = await ds.getRepository(deps.entityMap.orders).findOne({
|
|
44
|
-
where: {
|
|
45
|
-
id: orderId
|
|
46
|
-
},
|
|
47
|
-
relations: [
|
|
48
|
-
"contact",
|
|
49
|
-
"billingAddress",
|
|
50
|
-
"shippingAddress"
|
|
51
|
-
]
|
|
52
|
-
});
|
|
53
|
-
if (!order) return;
|
|
54
|
-
const o = order;
|
|
55
|
-
const contact = o.contact;
|
|
56
|
-
const customerEmail = contact?.email?.trim() || null;
|
|
57
|
-
const customerName = contact?.name?.trim() || void 0;
|
|
58
|
-
const itemRows = await ds.getRepository(deps.entityMap.order_items).find({
|
|
59
|
-
where: {
|
|
60
|
-
orderId
|
|
61
|
-
},
|
|
62
|
-
relations: [
|
|
63
|
-
"product"
|
|
64
|
-
],
|
|
65
|
-
order: {
|
|
66
|
-
id: "ASC"
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
const lineItems = itemRows.map((row) => {
|
|
70
|
-
const r = row;
|
|
71
|
-
const name = r.product?.name && String(r.product.name).trim() || `Product #${r.productId}`;
|
|
72
|
-
return {
|
|
73
|
-
productName: name,
|
|
74
|
-
quantity: Math.max(0, Math.floor(Number(r.quantity) || 0)),
|
|
75
|
-
unitPrice: r.unitPrice,
|
|
76
|
-
lineTotal: r.total,
|
|
77
|
-
sku: r.product?.sku && String(r.product.sku).trim() ? r.product.sku : void 0,
|
|
78
|
-
tax: r.tax != null && Number(r.tax) !== 0 ? r.tax : void 0,
|
|
79
|
-
hsn: r.hsn && String(r.hsn).trim() ? r.hsn : void 0
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
const [branding, emailSettings] = await Promise.all([
|
|
83
|
-
getSettingsGroup(deps, "branding"),
|
|
84
|
-
getSettingsGroup(deps, "email")
|
|
85
|
-
]);
|
|
86
|
-
const companyDetails = chunkBXYZDMTZ_cjs.mergeEmailLayoutCompanyDetails(branding, emailSettings);
|
|
87
|
-
const salesTeamEmails = chunkTCSGFAWB_cjs.parseEmailRecipientsFromConfig(emailSettings.salesTeamEmails ?? emailSettings.salesTeamEmail);
|
|
88
|
-
const cms = await deps.getCms();
|
|
89
|
-
await chunkV25RDUOU_cjs.queueOrderPlacedEmails(cms, {
|
|
90
|
-
orderId,
|
|
91
|
-
orderNumber: o.orderNumber,
|
|
92
|
-
total: o.total,
|
|
93
|
-
subtotal: o.subtotal,
|
|
94
|
-
tax: o.tax,
|
|
95
|
-
currency: o.currency,
|
|
96
|
-
customerName,
|
|
97
|
-
customerEmail,
|
|
98
|
-
salesTeamEmails,
|
|
99
|
-
companyDetails,
|
|
100
|
-
lineItems,
|
|
101
|
-
billingAddress: addrToRecord2(o.billingAddress),
|
|
102
|
-
shippingAddress: addrToRecord2(o.shippingAddress)
|
|
103
|
-
});
|
|
104
|
-
} catch {
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
chunkUSNT2KNT_cjs.__name(sendOrderPlacedEmailsAfterConfirmation, "sendOrderPlacedEmailsAfterConfirmation");
|
|
108
|
-
|
|
109
|
-
exports.sendOrderPlacedEmailsAfterConfirmation = sendOrderPlacedEmailsAfterConfirmation;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkXMRMZ6NQ_cjs = require('./chunk-XMRMZ6NQ.cjs');
|
|
4
|
-
require('./chunk-TCSGFAWB.cjs');
|
|
5
|
-
require('./chunk-V25RDUOU.cjs');
|
|
6
|
-
require('./chunk-BXYZDMTZ.cjs');
|
|
7
|
-
require('./chunk-UPLVMVRX.cjs');
|
|
8
|
-
require('./chunk-USNT2KNT.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Object.defineProperty(exports, "sendOrderPlacedEmailsAfterConfirmation", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () { return chunkXMRMZ6NQ_cjs.sendOrderPlacedEmailsAfterConfirmation; }
|
|
15
|
-
});
|