@infuro/cms-core 1.0.68 → 1.0.70
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/{OrderTrackPage-W3J6WIG2.js → OrderTrackPage-VBZUVZOU.js} +1 -1
- package/dist/{OrderTrackPage-Z6FCJQYY.cjs → OrderTrackPage-VFIXWJOW.cjs} +4 -4
- package/dist/admin.cjs +2831 -2680
- package/dist/admin.js +1590 -1439
- package/dist/api.cjs +57 -57
- package/dist/api.js +24 -24
- package/dist/auth.cjs +62 -62
- package/dist/auth.js +6 -6
- package/dist/{chunk-XJNNOSJR.js → chunk-2BNVRFUQ.js} +1 -1
- package/dist/chunk-2JHGIWH7.cjs +2700 -0
- package/dist/{chunk-3DZRIZOD.cjs → chunk-3ASNJS2H.cjs} +3 -3
- package/dist/{chunk-N4LBZXBG.js → chunk-3LF4RYAJ.js} +360 -30
- package/dist/{chunk-7NMT3GBR.cjs → chunk-3LQS4ATQ.cjs} +4 -4
- package/dist/{chunk-P6S4XFZO.cjs → chunk-47G65M5Q.cjs} +2 -2
- package/dist/{chunk-UMC7W5G3.cjs → chunk-4MNVIGVJ.cjs} +11 -11
- package/dist/{chunk-OY2YTBMP.cjs → chunk-4WZNRVEZ.cjs} +3 -3
- package/dist/chunk-5BKT4CS5.js +28 -0
- package/dist/{chunk-IKTBZJHT.js → chunk-5DSY3GQI.js} +1 -1
- package/dist/{chunk-AYERBA7I.js → chunk-5NVGWJSY.js} +1 -1
- package/dist/{chunk-HF3L2GIT.cjs → chunk-5YMKJ3TH.cjs} +16 -16
- package/dist/{chunk-MYUGQHU4.js → chunk-7NQMGB2S.js} +162 -51
- package/dist/{chunk-SYBOCAWB.js → chunk-7QJI56OL.js} +1 -1
- package/dist/{chunk-DBPSJYLZ.js → chunk-BK5XW5XH.js} +1 -1
- package/dist/{chunk-SUUD7OUG.cjs → chunk-BQQMTQ4C.cjs} +27 -27
- package/dist/{chunk-6YOQ7G5O.js → chunk-CFUSYGSA.js} +1 -1
- package/dist/{chunk-OOTLNH63.cjs → chunk-CIZZX57T.cjs} +2 -2
- package/dist/{chunk-5NOZSG6J.js → chunk-CJY2HUJC.js} +20 -20
- package/dist/{chunk-HBUV73RB.cjs → chunk-CKTRA3Q2.cjs} +81 -81
- package/dist/{chunk-7L6KWI7S.cjs → chunk-CTTV375J.cjs} +13 -13
- package/dist/{chunk-2IAXTKQN.cjs → chunk-DZNWS2MM.cjs} +2 -2
- package/dist/{chunk-M5GPOPGX.cjs → chunk-E62LKM6Z.cjs} +2 -2
- package/dist/{chunk-CRFV5WJK.js → chunk-ECNYZG6T.js} +1 -1
- package/dist/{chunk-OVTOP42W.js → chunk-ECUGNV2I.js} +2 -58
- package/dist/{chunk-TZEMLHSP.cjs → chunk-EYUBL7YH.cjs} +7 -7
- package/dist/{chunk-OV5TRZET.cjs → chunk-FNLF6G2N.cjs} +27 -27
- package/dist/{chunk-SKJH7PX4.js → chunk-HZZTDM5J.js} +3 -3
- package/dist/{chunk-TJ2MIQUT.cjs → chunk-JRW3GQD4.cjs} +4 -4
- package/dist/{chunk-3K5AIEIZ.js → chunk-JYRFSFXH.js} +1 -1
- package/dist/{chunk-GWDI752Q.js → chunk-K6JT7BKY.js} +59 -2
- package/dist/{chunk-WKDBMDUX.js → chunk-K6RXCLD5.js} +1 -1
- package/dist/{chunk-PA6YDMFZ.cjs → chunk-K742UE6S.cjs} +13 -12
- package/dist/{chunk-WFMVD567.cjs → chunk-KB7EBYPR.cjs} +9 -67
- package/dist/{chunk-H3IVLIPR.cjs → chunk-KJB5LBFQ.cjs} +63 -4
- package/dist/{chunk-O4AFPDQ4.cjs → chunk-LCZZ3S4I.cjs} +49 -49
- package/dist/{chunk-7JCCPQEF.js → chunk-LJ5C4RBF.js} +3 -3
- package/dist/{chunk-EIZKW2PF.js → chunk-LY7CDNC6.js} +1 -1
- package/dist/{chunk-MQBT33IV.js → chunk-MGT4DJ2D.js} +1 -1
- package/dist/{chunk-GN4LKG4V.cjs → chunk-NIBEGDD4.cjs} +18 -18
- package/dist/{chunk-ZY64VJMS.js → chunk-NQF6H656.js} +2 -2
- package/dist/{chunk-22XKONB5.cjs → chunk-OP624LWU.cjs} +1204 -1093
- package/dist/{chunk-ZIT4IP6N.js → chunk-PQJIJ4ZX.js} +6 -6
- package/dist/{chunk-HY3AXLOI.cjs → chunk-PRXVSSIF.cjs} +13 -13
- package/dist/{chunk-TDV6EJHV.js → chunk-PRZOLCFW.js} +2 -2
- package/dist/{chunk-VM6OVUUM.cjs → chunk-QN6PZLAP.cjs} +40 -40
- package/dist/{chunk-UPLVMVRX.cjs → chunk-RQCXRCYM.cjs} +2 -2
- package/dist/{chunk-Z5G54EGD.js → chunk-SCE2GIKH.js} +5 -5
- package/dist/{chunk-WUQAOTHA.js → chunk-SERRQ736.js} +1 -1
- package/dist/{chunk-SMHQV3WL.cjs → chunk-TTOEY7AH.cjs} +496 -166
- package/dist/{chunk-FLUF2GZH.js → chunk-W2ZTGLUH.js} +2 -1
- package/dist/{chunk-JC6DLWTE.js → chunk-WQZ4AH2P.js} +1 -1
- package/dist/{chunk-D5FBNKQM.cjs → chunk-WXH3GMCF.cjs} +8 -8
- package/dist/chunk-XHPRD45G.cjs +32 -0
- package/dist/{chunk-THL5JDWJ.cjs → chunk-Y54WDY2O.cjs} +2 -2
- package/dist/{chunk-YRCKEGL2.js → chunk-YDMHG6BA.js} +1 -1
- package/dist/chunk-YHVA5NHI.js +2698 -0
- package/dist/{chunk-JXF23MPG.js → chunk-ZMIMKNSQ.js} +1 -1
- package/dist/cli.cjs +10 -10
- package/dist/cli.js +1 -1
- package/dist/email-queue-BJDH2ID7.cjs +29 -0
- package/dist/email-queue-MWP4R67H.js +8 -0
- package/dist/email-service-6JODEMUA.js +3 -0
- package/dist/email-service-VA4Q4ZRB.cjs +28 -0
- package/dist/emit-order-notification-trigger-I4HQSTEN.cjs +16 -0
- package/dist/emit-order-notification-trigger-TBXAZAPS.js +3 -0
- package/dist/erp-config-enabled-32XTHBBT.cjs +11 -0
- package/dist/erp-config-enabled-CASE5YVI.js +2 -0
- package/dist/erp-order-invoice-5O42ZKC5.cjs +28 -0
- package/dist/erp-order-invoice-JEQKFXG4.js +7 -0
- package/dist/{event-order-defaults-DU7V3YND.cjs → event-order-defaults-TR45WAQQ.cjs} +10 -10
- package/dist/{event-order-defaults-H4RT7NMR.js → event-order-defaults-VXYO6NHT.js} +2 -2
- package/dist/generate-local-invoice-pdf-2NCA2WBL.cjs +12 -0
- package/dist/generate-local-invoice-pdf-XUH6GYEJ.js +3 -0
- package/dist/hooks.cjs +24 -24
- package/dist/hooks.js +2 -2
- package/dist/index.cjs +504 -504
- package/dist/index.js +39 -39
- package/dist/interpolate-KD37IRF2.js +2 -0
- package/dist/interpolate-WP6OSJHN.cjs +11 -0
- package/dist/{invoice-templates-RB462AQN.cjs → invoice-templates-2ESQ7K4N.cjs} +5 -5
- package/dist/invoice-templates-3AXTXERZ.js +2 -0
- package/dist/middleware.cjs +4 -4
- package/dist/middleware.js +2 -2
- package/dist/{order-assignees-handlers-KF7RMTV5.cjs → order-assignees-handlers-E6PQZP4H.cjs} +25 -6
- package/dist/{order-assignees-handlers-L3RVKUBS.js → order-assignees-handlers-YCT3Q3KC.js} +23 -4
- package/dist/{order-completion-otp-handlers-DDQREULW.cjs → order-completion-otp-handlers-2ZKRK5SN.cjs} +25 -25
- package/dist/{order-completion-otp-handlers-NROWBGXN.js → order-completion-otp-handlers-KHLZQQJX.js} +12 -12
- package/dist/{order-inventory-76V4XIGW.js → order-inventory-R3AU6N4V.js} +2 -2
- package/dist/{order-inventory-2MYRKEPC.cjs → order-inventory-UUFPWLBW.cjs} +10 -10
- package/dist/order-notification-dispatcher-37KDVHBM.cjs +38 -0
- package/dist/order-notification-dispatcher-Z3MXNF4U.js +13 -0
- package/dist/paid-order-erp-GRXR2OG6.js +3 -0
- package/dist/paid-order-erp-X5QHPI23.cjs +12 -0
- package/dist/pg-boss-service-CMW3KQJM.js +2 -0
- package/dist/pg-boss-service-GA6ZVD5G.cjs +15 -0
- package/dist/{razorpay-U23LGY72.cjs → razorpay-GP2DXVP2.cjs} +2 -2
- package/dist/{razorpay-KLO2KNCB.js → razorpay-I3G5LNYH.js} +1 -1
- package/dist/{rbac-debug-db-DFZWZ6GV.js → rbac-debug-db-JK3U5UZK.js} +2 -2
- package/dist/{rbac-debug-db-KWV7D5PQ.cjs → rbac-debug-db-S3D6N6HN.cjs} +4 -4
- package/dist/resolve-invoice-asset-url-64QQUVC3.js +2 -0
- package/dist/resolve-invoice-asset-url-J7WAMD26.cjs +11 -0
- package/dist/retire-soft-deleted-unique-DZALT537.cjs +15 -0
- package/dist/{retire-soft-deleted-unique-NXQIH4BC.js → retire-soft-deleted-unique-F25KZBZK.js} +2 -2
- package/dist/sms-defaults-DSO3M26Y.js +2 -0
- package/dist/{sms-defaults-KCOPKQBA.cjs → sms-defaults-GDFILHHR.cjs} +5 -5
- package/dist/{sms-notification-templates-handlers-SJLO7JGZ.js → sms-notification-templates-handlers-ZGDCVS5Z.js} +1 -1
- package/dist/{sms-notification-templates-handlers-YSB3L2PK.cjs → sms-notification-templates-handlers-ZKLKFRFZ.cjs} +3 -3
- package/dist/{stripe-VU6OEG2D.cjs → stripe-2APRZHKU.cjs} +2 -2
- package/dist/{stripe-4FD27QVJ.js → stripe-7CO2ETTN.js} +1 -1
- package/dist/theme.cjs +10 -10
- package/dist/theme.js +3 -3
- package/dist/vendor-invite-status-45ZCWKCX.js +2 -0
- package/dist/{vendor-invite-status-77O7ZQ3U.cjs → vendor-invite-status-AT2E4FUA.cjs} +5 -5
- package/package.json +2 -1
- package/dist/chunk-SHUYVCID.js +0 -4
- package/dist/chunk-USNT2KNT.cjs +0 -6
- package/dist/chunk-Z5OB5QGN.js +0 -465
- package/dist/chunk-ZX5U3VCB.cjs +0 -471
- package/dist/email-queue-3QBQ63F7.js +0 -8
- package/dist/email-queue-K4E4OFI7.cjs +0 -29
- package/dist/email-service-5O24BSFR.cjs +0 -28
- package/dist/email-service-ADDF52PJ.js +0 -3
- package/dist/emit-order-notification-trigger-ROASTYQP.cjs +0 -16
- package/dist/emit-order-notification-trigger-YUQTPELC.js +0 -3
- package/dist/erp-config-enabled-CUMQ6N2V.cjs +0 -11
- package/dist/erp-config-enabled-T37X7T34.js +0 -2
- package/dist/erp-order-invoice-AZ5MX2JB.cjs +0 -28
- package/dist/erp-order-invoice-XSYHAMBS.js +0 -7
- package/dist/generate-local-invoice-pdf-BQTCL5MW.cjs +0 -12
- package/dist/generate-local-invoice-pdf-OCFG47SE.js +0 -3
- package/dist/interpolate-WAKPN56R.cjs +0 -11
- package/dist/interpolate-WDUWDF3I.js +0 -2
- package/dist/invoice-templates-GZ33OENC.js +0 -2
- package/dist/order-notification-dispatcher-6HCJ6Q75.cjs +0 -38
- package/dist/order-notification-dispatcher-KM2SY7TX.js +0 -13
- package/dist/paid-order-erp-3USEG6WL.js +0 -3
- package/dist/paid-order-erp-FSQ3GSXE.cjs +0 -12
- package/dist/pg-boss-service-BDGOKM2T.cjs +0 -15
- package/dist/pg-boss-service-WCBJD4JB.js +0 -2
- package/dist/resolve-invoice-asset-url-JEZRENJW.cjs +0 -11
- package/dist/resolve-invoice-asset-url-QZ2FRDHI.js +0 -2
- package/dist/retire-soft-deleted-unique-5VXBA5XX.cjs +0 -15
- package/dist/sms-defaults-2NL24H57.js +0 -2
- package/dist/vendor-invite-status-PWJ3DE76.js +0 -2
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { normalizePhoneE164, generateNumericOtp, createOtpChallenge,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { queueEmail, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-
|
|
9
|
-
import { unwrapErpReadData, mapErpPayloadToFulfillment, extractChildOrderRefsFromSalePayload, mapErpPayloadToInvoiceNumber, streamOrderInvoicePdf } from './chunk-
|
|
10
|
-
import { isErpIntegrationEnabled } from './chunk-
|
|
11
|
-
import { mergeEmailLayoutCompanyDetails } from './chunk-
|
|
12
|
-
import { getSmsTemplateDefault, SMS_MESSAGE_TEMPLATE_DEFAULTS } from './chunk-
|
|
13
|
-
import { ensureCustomerRecord, linkUnclaimedContactToUser, ensureCustomerForUser, canManageRoles, sessionHasEntityAccess } from './chunk-
|
|
14
|
-
import { permissionRowsToRecord, logRbac, isSuperAdmin, vendorPortalFlagsFromUser, VENDOR_SCOPED_STORE_ENTITIES, isVendorPortalUser, getPermissionableEntityKeys, VENDOR_STORE_RBAC_ENTITIES, isSuperAdminGroupName, VENDOR_RBAC_ENTITIES, VENDOR_VIEWER_ROLE_NAME, DEFAULT_VENDOR_ROLE_DEFS, VENDOR_GROUP_NAME, resolveVendorScopeFromSessionUser, canManageVendorRoles, isPlatformAdministrator, canManageVendorTeam, resolveDisabledMultiVendorScope, logEntityAccessDecision, explainSessionEntityAccess } from './chunk-
|
|
15
|
-
import { retireSoftDeletedUniqueValue, activeUniqueValueExists } from './chunk-
|
|
16
|
-
import { queueErp } from './chunk-
|
|
17
|
-
import { __name } from './chunk-
|
|
1
|
+
import { resolveChatEmailToolSettings, CHAT_EMAIL_LOG, detectChatLeadIntent, parseIntentRecipientEmails, sendChatLeadEmail, buildTranscriptForLeadEmail, buildChatbotSystemPromptWithEmailTool, validateFcmCredentials, sendFcmPushNotification, parseEmailRecipientsFromConfig, isWhatsAppPluginEnabled, WhatsAppService, emailPlugin, initWhatsappTriggerDispatcher } from './chunk-3LF4RYAJ.js';
|
|
2
|
+
import { normalizePhoneE164, generateNumericOtp, createOtpChallenge, verifyAndConsumeOtpChallenge } from './chunk-ECUGNV2I.js';
|
|
3
|
+
import { registerWhatsAppQueueProcessor, queueSms } from './chunk-K6JT7BKY.js';
|
|
4
|
+
import { inviteStatusForActivation } from './chunk-ZMIMKNSQ.js';
|
|
5
|
+
import { EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS, EVENT_ORDER_TEMPLATE_KEY, EVENT_ORDER_TEMPLATE_VARIABLES } from './chunk-5NVGWJSY.js';
|
|
6
|
+
import { JOB_RUNNER_QUEUE } from './chunk-2BNVRFUQ.js';
|
|
7
|
+
import { validateInventoryForConfirmedOrderLines, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, orderInventorySnapshotFromRow, validateInventoryForOrderBecomingConfirmed } from './chunk-JYRFSFXH.js';
|
|
8
|
+
import { queueEmail, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-LJ5C4RBF.js';
|
|
9
|
+
import { unwrapErpReadData, mapErpPayloadToFulfillment, extractChildOrderRefsFromSalePayload, mapErpPayloadToInvoiceNumber, streamOrderInvoicePdf } from './chunk-PQJIJ4ZX.js';
|
|
10
|
+
import { isErpIntegrationEnabled } from './chunk-WQZ4AH2P.js';
|
|
11
|
+
import { mergeEmailLayoutCompanyDetails } from './chunk-YDMHG6BA.js';
|
|
12
|
+
import { getSmsTemplateDefault, SMS_MESSAGE_TEMPLATE_DEFAULTS } from './chunk-MGT4DJ2D.js';
|
|
13
|
+
import { ensureCustomerRecord, linkUnclaimedContactToUser, ensureCustomerForUser, canManageRoles, sessionHasEntityAccess } from './chunk-NQF6H656.js';
|
|
14
|
+
import { permissionRowsToRecord, logRbac, isSuperAdmin, vendorPortalFlagsFromUser, VENDOR_SCOPED_STORE_ENTITIES, isVendorPortalUser, getPermissionableEntityKeys, VENDOR_STORE_RBAC_ENTITIES, isSuperAdminGroupName, VENDOR_RBAC_ENTITIES, VENDOR_VIEWER_ROLE_NAME, DEFAULT_VENDOR_ROLE_DEFS, VENDOR_GROUP_NAME, resolveVendorScopeFromSessionUser, canManageVendorRoles, isPlatformAdministrator, canManageVendorTeam, resolveDisabledMultiVendorScope, logEntityAccessDecision, explainSessionEntityAccess } from './chunk-CJY2HUJC.js';
|
|
15
|
+
import { retireSoftDeletedUniqueValue, activeUniqueValueExists } from './chunk-BK5XW5XH.js';
|
|
16
|
+
import { queueErp } from './chunk-7QJI56OL.js';
|
|
17
|
+
import { __name } from './chunk-5BKT4CS5.js';
|
|
18
18
|
import { PrimaryGeneratedColumn, Column, Entity, ManyToOne, JoinColumn, CreateDateColumn, UpdateDateColumn, Unique, OneToMany, Index, ManyToMany, JoinTable, In, ILike, Between, MoreThanOrEqual, LessThanOrEqual, Not, MoreThan, IsNull } from 'typeorm';
|
|
19
19
|
import { Country, State, City } from 'country-state-city';
|
|
20
20
|
import crypto2, { randomBytes, randomUUID } from 'crypto';
|
|
@@ -1698,6 +1698,82 @@ async function recordOrderAssigneeHistory(dataSource, entityMap, orderId, userId
|
|
|
1698
1698
|
return nextSortOrder;
|
|
1699
1699
|
}
|
|
1700
1700
|
__name(recordOrderAssigneeHistory, "recordOrderAssigneeHistory");
|
|
1701
|
+
async function validateAssigneeOrderPermission(dataSource, entityMap, userId) {
|
|
1702
|
+
if (!Number.isFinite(userId) || userId <= 0) return {
|
|
1703
|
+
valid: true
|
|
1704
|
+
};
|
|
1705
|
+
if (entityMap.users) {
|
|
1706
|
+
const uRepo = dataSource.getRepository(entityMap.users);
|
|
1707
|
+
const u = await uRepo.findOne({
|
|
1708
|
+
where: {
|
|
1709
|
+
id: userId,
|
|
1710
|
+
deleted: false
|
|
1711
|
+
},
|
|
1712
|
+
relations: [
|
|
1713
|
+
"group"
|
|
1714
|
+
]
|
|
1715
|
+
});
|
|
1716
|
+
if (!u) {
|
|
1717
|
+
return {
|
|
1718
|
+
valid: false,
|
|
1719
|
+
error: "Assignee user not found."
|
|
1720
|
+
};
|
|
1721
|
+
}
|
|
1722
|
+
const userRow = u;
|
|
1723
|
+
if (userRow.adminAccess) {
|
|
1724
|
+
return {
|
|
1725
|
+
valid: true
|
|
1726
|
+
};
|
|
1727
|
+
}
|
|
1728
|
+
if (userRow.group?.name && userRow.group.name.toLowerCase() === "customer") {
|
|
1729
|
+
return {
|
|
1730
|
+
valid: false,
|
|
1731
|
+
error: "Customer accounts cannot be assigned to orders."
|
|
1732
|
+
};
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
if (entityMap.vendor_users) {
|
|
1736
|
+
const vuRepo = dataSource.getRepository(entityMap.vendor_users);
|
|
1737
|
+
const vuLinks = await vuRepo.find({
|
|
1738
|
+
where: {
|
|
1739
|
+
userId
|
|
1740
|
+
},
|
|
1741
|
+
relations: [
|
|
1742
|
+
"vendorRole",
|
|
1743
|
+
"vendorRole.permissions"
|
|
1744
|
+
]
|
|
1745
|
+
});
|
|
1746
|
+
if (vuLinks && vuLinks.length > 0) {
|
|
1747
|
+
let anyRoleHasAccess = false;
|
|
1748
|
+
for (const vu of vuLinks) {
|
|
1749
|
+
const r = vu.vendorRole;
|
|
1750
|
+
if (r) {
|
|
1751
|
+
if (r.isOwnerRole) {
|
|
1752
|
+
anyRoleHasAccess = true;
|
|
1753
|
+
break;
|
|
1754
|
+
}
|
|
1755
|
+
if (Array.isArray(r.permissions)) {
|
|
1756
|
+
const orderPerm = r.permissions.find((p) => String(p?.entity).toLowerCase() === "orders");
|
|
1757
|
+
if (orderPerm && orderPerm.canRead) {
|
|
1758
|
+
anyRoleHasAccess = true;
|
|
1759
|
+
break;
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1764
|
+
if (!anyRoleHasAccess) {
|
|
1765
|
+
return {
|
|
1766
|
+
valid: false,
|
|
1767
|
+
error: "Cannot assign order: This team member does not have permission to access orders. Please grant order access in Roles & Permissions."
|
|
1768
|
+
};
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1772
|
+
return {
|
|
1773
|
+
valid: true
|
|
1774
|
+
};
|
|
1775
|
+
}
|
|
1776
|
+
__name(validateAssigneeOrderPermission, "validateAssigneeOrderPermission");
|
|
1701
1777
|
var LIST_QUERY_RESERVED = /* @__PURE__ */ new Set([
|
|
1702
1778
|
"page",
|
|
1703
1779
|
"limit",
|
|
@@ -5112,6 +5188,16 @@ function createCrudHandler(dataSource, entityMap, options) {
|
|
|
5112
5188
|
persistBody.orderNumber = `ORD00${randomPart}`;
|
|
5113
5189
|
persistBody.qrToken = crypto2.randomBytes(16).toString("hex");
|
|
5114
5190
|
}
|
|
5191
|
+
if (resource === "orders" && persistBody.assignedUserId) {
|
|
5192
|
+
const assignCheck = await validateAssigneeOrderPermission(dataSource, entityMap, Number(persistBody.assignedUserId));
|
|
5193
|
+
if (!assignCheck.valid) {
|
|
5194
|
+
return json({
|
|
5195
|
+
error: assignCheck.error ?? "Invalid order assignee"
|
|
5196
|
+
}, {
|
|
5197
|
+
status: 400
|
|
5198
|
+
});
|
|
5199
|
+
}
|
|
5200
|
+
}
|
|
5115
5201
|
await retireSoftDeletedUniquesFromBody(repo, persistBody);
|
|
5116
5202
|
created = await repo.save(repo.create(persistBody));
|
|
5117
5203
|
if (resource === "orders") {
|
|
@@ -5313,7 +5399,7 @@ function createCrudHandler(dataSource, entityMap, options) {
|
|
|
5313
5399
|
const orderIdForNotify = created.id;
|
|
5314
5400
|
const finalCreatedStatus = String(created.status ?? createdStatus ?? "pending").toLowerCase();
|
|
5315
5401
|
const initialPayStatus = String(persistBody.paymentStatus ?? body.paymentStatus ?? "unpaid").toLowerCase();
|
|
5316
|
-
void import('./emit-order-notification-trigger-
|
|
5402
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
5317
5403
|
if (finalCreatedStatus === "pending") {
|
|
5318
5404
|
if (initialPayStatus === "failed") {
|
|
5319
5405
|
fireOrderNotificationTrigger("payment_failed", orderIdForNotify, {
|
|
@@ -6220,6 +6306,14 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
6220
6306
|
if ("assignedUserId" in rawBody && rawBody.assignedUserId !== void 0) {
|
|
6221
6307
|
const aId = Number(rawBody.assignedUserId);
|
|
6222
6308
|
if (Number.isFinite(aId) && aId > 0) {
|
|
6309
|
+
const assignCheck = await validateAssigneeOrderPermission(dataSource, entityMap, aId);
|
|
6310
|
+
if (!assignCheck.valid) {
|
|
6311
|
+
return json({
|
|
6312
|
+
error: assignCheck.error ?? "Invalid order assignee"
|
|
6313
|
+
}, {
|
|
6314
|
+
status: 400
|
|
6315
|
+
});
|
|
6316
|
+
}
|
|
6223
6317
|
if (scopePutEarly.type === "vendor" && entityMap.vendor_users) {
|
|
6224
6318
|
const vuRepo = dataSource.getRepository(entityMap.vendor_users);
|
|
6225
6319
|
const vuLink = await vuRepo.findOne({
|
|
@@ -6516,7 +6610,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
6516
6610
|
const paymentUpdated = Boolean(rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null);
|
|
6517
6611
|
const assigneeUpdated = Boolean(rawBody && typeof rawBody === "object" && "assignedUserId" in rawBody && rawBody.assignedUserId !== void 0 && Number(rawBody.assignedUserId) > 0 && Number(rawBody.assignedUserId) !== Number(existingOrderRow?.assignedUserId));
|
|
6518
6612
|
if (assigneeUpdated) {
|
|
6519
|
-
void import('./emit-order-notification-trigger-
|
|
6613
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
6520
6614
|
fireOrderNotificationTrigger("order_assigned", updatedOrder.id, {
|
|
6521
6615
|
dataSource,
|
|
6522
6616
|
entityMap
|
|
@@ -6533,7 +6627,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
6533
6627
|
const payments = Array.isArray(updatedOrder.payments) ? updatedOrder.payments : [];
|
|
6534
6628
|
const bodyPayStatus = rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null ? String(rawBody.paymentStatus).toLowerCase() : null;
|
|
6535
6629
|
const curPayStatus = bodyPayStatus || String(payments[0]?.status || "unpaid").toLowerCase();
|
|
6536
|
-
void import('./emit-order-notification-trigger-
|
|
6630
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
6537
6631
|
if (newStatus === "pending") {
|
|
6538
6632
|
if (curPayStatus === "failed") {
|
|
6539
6633
|
fireOrderNotificationTrigger("payment_failed", updatedOrder.id, {
|
|
@@ -7101,6 +7195,14 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7101
7195
|
const aId = Number(rawBody.assignedUserId);
|
|
7102
7196
|
console.log("[ORDERS-DEBUG][UPDATE] Updating assignedUserId to:", aId);
|
|
7103
7197
|
if (Number.isFinite(aId) && aId > 0) {
|
|
7198
|
+
const assignCheck = await validateAssigneeOrderPermission(dataSource, entityMap, aId);
|
|
7199
|
+
if (!assignCheck.valid) {
|
|
7200
|
+
return json({
|
|
7201
|
+
error: assignCheck.error ?? "Invalid order assignee"
|
|
7202
|
+
}, {
|
|
7203
|
+
status: 400
|
|
7204
|
+
});
|
|
7205
|
+
}
|
|
7104
7206
|
if (scopePut.type === "vendor" && entityMap.vendor_users) {
|
|
7105
7207
|
const vuRepo = dataSource.getRepository(entityMap.vendor_users);
|
|
7106
7208
|
const vuLink = await vuRepo.findOne({
|
|
@@ -7241,7 +7343,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7241
7343
|
});
|
|
7242
7344
|
}
|
|
7243
7345
|
if (ordStatus === "pending" || ordStatus === "confirmed") {
|
|
7244
|
-
void import('./emit-order-notification-trigger-
|
|
7346
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7245
7347
|
fireOrderNotificationTrigger("order_placed", pOrder, {
|
|
7246
7348
|
dataSource,
|
|
7247
7349
|
entityMap
|
|
@@ -7255,7 +7357,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7255
7357
|
}
|
|
7256
7358
|
}
|
|
7257
7359
|
} else if (newPayStatus === "failed") {
|
|
7258
|
-
void import('./emit-order-notification-trigger-
|
|
7360
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7259
7361
|
fireOrderNotificationTrigger("payment_failed", pOrder, {
|
|
7260
7362
|
dataSource,
|
|
7261
7363
|
entityMap
|
|
@@ -7263,7 +7365,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7263
7365
|
}).catch(() => {
|
|
7264
7366
|
});
|
|
7265
7367
|
} else if (newPayStatus === "refunded") {
|
|
7266
|
-
void import('./emit-order-notification-trigger-
|
|
7368
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7267
7369
|
fireOrderNotificationTrigger("payment_refund_initiated", pOrder, {
|
|
7268
7370
|
dataSource,
|
|
7269
7371
|
entityMap
|
|
@@ -7390,7 +7492,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7390
7492
|
const paymentUpdated = Boolean(rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null);
|
|
7391
7493
|
const assigneeUpdated = Boolean(rawBody && typeof rawBody === "object" && "assignedUserId" in rawBody && rawBody.assignedUserId !== void 0 && Number(rawBody.assignedUserId) > 0 && Number(rawBody.assignedUserId) !== Number(existingOrderRow?.assignedUserId));
|
|
7392
7494
|
if (assigneeUpdated) {
|
|
7393
|
-
void import('./emit-order-notification-trigger-
|
|
7495
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7394
7496
|
fireOrderNotificationTrigger("order_assigned", ord.id, {
|
|
7395
7497
|
dataSource,
|
|
7396
7498
|
entityMap
|
|
@@ -7407,7 +7509,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7407
7509
|
const payments = Array.isArray(ord.payments) ? ord.payments : [];
|
|
7408
7510
|
const bodyPayStatus = rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null ? String(rawBody.paymentStatus).toLowerCase() : null;
|
|
7409
7511
|
const curPayStatus = bodyPayStatus || String(payments[0]?.status || "unpaid").toLowerCase();
|
|
7410
|
-
void import('./emit-order-notification-trigger-
|
|
7512
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7411
7513
|
if (newStatus === "pending") {
|
|
7412
7514
|
if (curPayStatus === "failed") {
|
|
7413
7515
|
fireOrderNotificationTrigger("payment_failed", ord.id, {
|
|
@@ -11061,7 +11163,7 @@ function createUsersApiHandlers(config) {
|
|
|
11061
11163
|
if (token) {
|
|
11062
11164
|
inviteLink = buildVendorInviteLink(baseUrl, token);
|
|
11063
11165
|
}
|
|
11064
|
-
const { markVendorInvitePendingForUser } = await import('./vendor-invite-status-
|
|
11166
|
+
const { markVendorInvitePendingForUser } = await import('./vendor-invite-status-45ZCWKCX.js');
|
|
11065
11167
|
await markVendorInvitePendingForUser(dataSource, entityMap.vendors, u.id);
|
|
11066
11168
|
}
|
|
11067
11169
|
}
|
|
@@ -27861,7 +27963,7 @@ async function queueJobScheduleNow(cms, scheduleId) {
|
|
|
27861
27963
|
if (!boss) {
|
|
27862
27964
|
throw new Error("pg-boss is not configured (DATABASE_URL required)");
|
|
27863
27965
|
}
|
|
27864
|
-
const { JOB_RUNNER_QUEUE: JOB_RUNNER_QUEUE2 } = await import('./pg-boss-service-
|
|
27966
|
+
const { JOB_RUNNER_QUEUE: JOB_RUNNER_QUEUE2 } = await import('./pg-boss-service-CMW3KQJM.js');
|
|
27865
27967
|
await boss.send(JOB_RUNNER_QUEUE2, {
|
|
27866
27968
|
scheduleId,
|
|
27867
27969
|
triggeredBy: "manual"
|
|
@@ -29036,6 +29138,7 @@ function whatsappPlugin(config = {}) {
|
|
|
29036
29138
|
const { getWhatsAppSettings, getMessageTemplateRow, ...staticRest } = config;
|
|
29037
29139
|
let settingsLoader = getWhatsAppSettings;
|
|
29038
29140
|
if (!settingsLoader && context.dataSource) {
|
|
29141
|
+
const encKey = resolveSettingsEncryptionKey(env);
|
|
29039
29142
|
settingsLoader = /* @__PURE__ */ __name(async () => {
|
|
29040
29143
|
try {
|
|
29041
29144
|
const ds = context.dataSource;
|
|
@@ -29046,10 +29149,18 @@ function whatsappPlugin(config = {}) {
|
|
|
29046
29149
|
deleted: false
|
|
29047
29150
|
}
|
|
29048
29151
|
});
|
|
29049
|
-
|
|
29050
|
-
|
|
29051
|
-
r.value
|
|
29052
|
-
|
|
29152
|
+
const result = {};
|
|
29153
|
+
for (const r of rows) {
|
|
29154
|
+
let val = String(r.value ?? "");
|
|
29155
|
+
if (r.encrypted && encKey) {
|
|
29156
|
+
try {
|
|
29157
|
+
val = simpleDecrypt(val, encKey);
|
|
29158
|
+
} catch {
|
|
29159
|
+
}
|
|
29160
|
+
}
|
|
29161
|
+
result[r.key] = val;
|
|
29162
|
+
}
|
|
29163
|
+
return result;
|
|
29053
29164
|
} catch {
|
|
29054
29165
|
return {};
|
|
29055
29166
|
}
|
|
@@ -29438,7 +29549,7 @@ function createCmsApiHandler(config) {
|
|
|
29438
29549
|
companyDetails
|
|
29439
29550
|
};
|
|
29440
29551
|
if (queue) {
|
|
29441
|
-
const { queueEmail: queueEmail2 } = await import('./email-queue-
|
|
29552
|
+
const { queueEmail: queueEmail2 } = await import('./email-queue-MWP4R67H.js');
|
|
29442
29553
|
await queueEmail2(cms, {
|
|
29443
29554
|
to: opts.to,
|
|
29444
29555
|
templateName: "passwordReset",
|
|
@@ -29463,7 +29574,7 @@ function createCmsApiHandler(config) {
|
|
|
29463
29574
|
const prevActivate = userAuth.beforeActivate;
|
|
29464
29575
|
userAuth.beforeActivate = async (email, userId) => {
|
|
29465
29576
|
if (prevActivate) await prevActivate(email, userId);
|
|
29466
|
-
const { markVendorInviteAcceptedForUser } = await import('./vendor-invite-status-
|
|
29577
|
+
const { markVendorInviteAcceptedForUser } = await import('./vendor-invite-status-45ZCWKCX.js');
|
|
29467
29578
|
await markVendorInviteAcceptedForUser(ds, vendorEntity, userId);
|
|
29468
29579
|
};
|
|
29469
29580
|
}
|
|
@@ -30467,9 +30578,9 @@ function createCmsApiHandler(config) {
|
|
|
30467
30578
|
for (const r of rows) {
|
|
30468
30579
|
storeMap[r.key] = r.value;
|
|
30469
30580
|
}
|
|
30470
|
-
const { normalizeInvoiceTemplateId } = await import('./invoice-templates-
|
|
30471
|
-
const { generateLocalInvoicePdf } = await import('./generate-local-invoice-pdf-
|
|
30472
|
-
const { resolveInvoiceAssetUrl } = await import('./resolve-invoice-asset-url-
|
|
30581
|
+
const { normalizeInvoiceTemplateId } = await import('./invoice-templates-3AXTXERZ.js');
|
|
30582
|
+
const { generateLocalInvoicePdf } = await import('./generate-local-invoice-pdf-XUH6GYEJ.js');
|
|
30583
|
+
const { resolveInvoiceAssetUrl } = await import('./resolve-invoice-asset-url-64QQUVC3.js');
|
|
30473
30584
|
const templateId = normalizeInvoiceTemplateId(templateParam);
|
|
30474
30585
|
const includeQr = qrParam != null ? qrParam === "1" || qrParam === "true" : storeMap.invoice_include_qr === "true";
|
|
30475
30586
|
const sampleInput = {
|
|
@@ -30856,7 +30967,7 @@ function createCmsApiHandler(config) {
|
|
|
30856
30967
|
const pe = await requireEntityPermissionEffective(req, "orders", "read");
|
|
30857
30968
|
if (pe) return pe;
|
|
30858
30969
|
const cms = await getCms();
|
|
30859
|
-
const { streamOrderInvoicePdf: streamOrderInvoicePdf2 } = await import('./erp-order-invoice-
|
|
30970
|
+
const { streamOrderInvoicePdf: streamOrderInvoicePdf2 } = await import('./erp-order-invoice-JEQKFXG4.js');
|
|
30860
30971
|
const oid = Number(path2[1]);
|
|
30861
30972
|
if (!Number.isFinite(oid)) return config.json({
|
|
30862
30973
|
error: "Invalid id"
|
|
@@ -30890,7 +31001,7 @@ function createCmsApiHandler(config) {
|
|
|
30890
31001
|
status: 400
|
|
30891
31002
|
});
|
|
30892
31003
|
const cms = await getCms();
|
|
30893
|
-
const { isErpIntegrationEnabled: isErpIntegrationEnabled3 } = await import('./erp-config-enabled-
|
|
31004
|
+
const { isErpIntegrationEnabled: isErpIntegrationEnabled3 } = await import('./erp-config-enabled-CASE5YVI.js');
|
|
30894
31005
|
const enabled = await isErpIntegrationEnabled3(cms, dataSource, entityMap);
|
|
30895
31006
|
if (m === "GET") {
|
|
30896
31007
|
return config.json({
|
|
@@ -30903,7 +31014,7 @@ function createCmsApiHandler(config) {
|
|
|
30903
31014
|
}, {
|
|
30904
31015
|
status: 409
|
|
30905
31016
|
});
|
|
30906
|
-
const { queueErpPaidOrderForOrderId } = await import('./paid-order-erp-
|
|
31017
|
+
const { queueErpPaidOrderForOrderId } = await import('./paid-order-erp-GRXR2OG6.js');
|
|
30907
31018
|
await queueErpPaidOrderForOrderId(cms, dataSource, entityMap, oid);
|
|
30908
31019
|
return config.json({
|
|
30909
31020
|
ok: true
|
|
@@ -31006,7 +31117,7 @@ function createCmsApiHandler(config) {
|
|
|
31006
31117
|
}
|
|
31007
31118
|
}
|
|
31008
31119
|
if (path2[0] === "sms-notification-templates" && path2.length === 1 && m === "GET") {
|
|
31009
|
-
const { createSmsNotificationTemplatesHandlers } = await import('./sms-notification-templates-handlers-
|
|
31120
|
+
const { createSmsNotificationTemplatesHandlers } = await import('./sms-notification-templates-handlers-ZGDCVS5Z.js');
|
|
31010
31121
|
const handlers = createSmsNotificationTemplatesHandlers(dataSource, entityMap);
|
|
31011
31122
|
return handlers.GET(req);
|
|
31012
31123
|
}
|
|
@@ -31081,7 +31192,7 @@ function createCmsApiHandler(config) {
|
|
|
31081
31192
|
"Content-Type": "text/html; charset=utf-8"
|
|
31082
31193
|
}
|
|
31083
31194
|
});
|
|
31084
|
-
const { renderOrderTrackingPage } = await import('./OrderTrackPage-
|
|
31195
|
+
const { renderOrderTrackingPage } = await import('./OrderTrackPage-VBZUVZOU.js');
|
|
31085
31196
|
const html = renderOrderTrackingPage(order);
|
|
31086
31197
|
return new Response(html, {
|
|
31087
31198
|
status: 200,
|
|
@@ -31238,7 +31349,7 @@ function createCmsApiHandler(config) {
|
|
|
31238
31349
|
status: 400
|
|
31239
31350
|
});
|
|
31240
31351
|
}
|
|
31241
|
-
const { resendOrderNotification } = await import('./order-notification-dispatcher-
|
|
31352
|
+
const { resendOrderNotification } = await import('./order-notification-dispatcher-Z3MXNF4U.js');
|
|
31242
31353
|
const result = await resendOrderNotification(triggerKey, orderId, {
|
|
31243
31354
|
dataSource,
|
|
31244
31355
|
entityMap,
|
|
@@ -31319,7 +31430,7 @@ function createCmsApiHandler(config) {
|
|
|
31319
31430
|
]
|
|
31320
31431
|
});
|
|
31321
31432
|
if (orderWithItems) {
|
|
31322
|
-
const { reconcileOrderInventoryBetweenSnapshots: reconcileOrderInventoryBetweenSnapshots2, orderInventorySnapshotFromRow: orderInventorySnapshotFromRow2 } = await import('./order-inventory-
|
|
31433
|
+
const { reconcileOrderInventoryBetweenSnapshots: reconcileOrderInventoryBetweenSnapshots2, orderInventorySnapshotFromRow: orderInventorySnapshotFromRow2 } = await import('./order-inventory-R3AU6N4V.js');
|
|
31323
31434
|
const prevSnap = orderInventorySnapshotFromRow2(orderWithItems);
|
|
31324
31435
|
const invErr = await reconcileOrderInventoryBetweenSnapshots2(dataSource, entityMap, prevSnap, {
|
|
31325
31436
|
status: "cancelled",
|
|
@@ -31337,7 +31448,7 @@ function createCmsApiHandler(config) {
|
|
|
31337
31448
|
status: "cancelled"
|
|
31338
31449
|
});
|
|
31339
31450
|
const fireOrderCancelledNotification = /* @__PURE__ */ __name((refundAmount) => {
|
|
31340
|
-
void import('./emit-order-notification-trigger-
|
|
31451
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
31341
31452
|
fireOrderNotificationTrigger("order_cancelled", orderId, {
|
|
31342
31453
|
dataSource,
|
|
31343
31454
|
entityMap
|
|
@@ -31582,7 +31693,7 @@ function createCmsApiHandler(config) {
|
|
|
31582
31693
|
}, {
|
|
31583
31694
|
status: 400
|
|
31584
31695
|
});
|
|
31585
|
-
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-
|
|
31696
|
+
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-KHLZQQJX.js');
|
|
31586
31697
|
const handlers = createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser);
|
|
31587
31698
|
return handlers.getChannels(req, orderId);
|
|
31588
31699
|
}
|
|
@@ -31597,7 +31708,7 @@ function createCmsApiHandler(config) {
|
|
|
31597
31708
|
}, {
|
|
31598
31709
|
status: 400
|
|
31599
31710
|
});
|
|
31600
|
-
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-
|
|
31711
|
+
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-KHLZQQJX.js');
|
|
31601
31712
|
const handlers = createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser);
|
|
31602
31713
|
return handlers.sendOtp(req, orderId);
|
|
31603
31714
|
}
|
|
@@ -31612,7 +31723,7 @@ function createCmsApiHandler(config) {
|
|
|
31612
31723
|
}, {
|
|
31613
31724
|
status: 400
|
|
31614
31725
|
});
|
|
31615
|
-
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-
|
|
31726
|
+
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-KHLZQQJX.js');
|
|
31616
31727
|
const handlers = createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser);
|
|
31617
31728
|
return handlers.verifyOtp(req, orderId);
|
|
31618
31729
|
}
|
|
@@ -31627,7 +31738,7 @@ function createCmsApiHandler(config) {
|
|
|
31627
31738
|
}, {
|
|
31628
31739
|
status: 400
|
|
31629
31740
|
});
|
|
31630
|
-
const { createOrderAssigneesHandlers } = await import('./order-assignees-handlers-
|
|
31741
|
+
const { createOrderAssigneesHandlers } = await import('./order-assignees-handlers-YCT3Q3KC.js');
|
|
31631
31742
|
const handlers = createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionUser);
|
|
31632
31743
|
return handlers.listEligibleAssignees(req, orderId);
|
|
31633
31744
|
}
|
|
@@ -32244,7 +32355,7 @@ function createStorefrontApiHandler(config) {
|
|
|
32244
32355
|
const otpPepper = config.otpPepper;
|
|
32245
32356
|
const defaultPhoneCc = config.defaultPhoneCountryCode;
|
|
32246
32357
|
function fireStorefrontCheckoutNotifications(orderId) {
|
|
32247
|
-
void import('./emit-order-notification-trigger-
|
|
32358
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
32248
32359
|
fireOrderNotificationTrigger("order_pending", orderId, {
|
|
32249
32360
|
dataSource,
|
|
32250
32361
|
entityMap
|
|
@@ -34095,7 +34206,7 @@ function createStorefrontApiHandler(config) {
|
|
|
34095
34206
|
}, {
|
|
34096
34207
|
status: 400
|
|
34097
34208
|
});
|
|
34098
|
-
const { retireSoftDeletedUniqueValue: retireSoftDeletedUniqueValue2 } = await import('./retire-soft-deleted-unique-
|
|
34209
|
+
const { retireSoftDeletedUniqueValue: retireSoftDeletedUniqueValue2 } = await import('./retire-soft-deleted-unique-F25KZBZK.js');
|
|
34099
34210
|
await retireSoftDeletedUniqueValue2(userRepo(), "email", email);
|
|
34100
34211
|
const existing = await userRepo().findOne({
|
|
34101
34212
|
where: {
|
|
@@ -35189,7 +35300,7 @@ function createStorefrontApiHandler(config) {
|
|
|
35189
35300
|
} catch {
|
|
35190
35301
|
}
|
|
35191
35302
|
try {
|
|
35192
|
-
void import('./emit-order-notification-trigger-
|
|
35303
|
+
void import('./emit-order-notification-trigger-TBXAZAPS.js').then(({ fireOrderNotificationTrigger }) => {
|
|
35193
35304
|
fireOrderNotificationTrigger("order_cancelled", orderId, {
|
|
35194
35305
|
dataSource,
|
|
35195
35306
|
entityMap
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
3
|
+
var chunkRQCXRCYM_cjs = require('./chunk-RQCXRCYM.cjs');
|
|
4
|
+
var chunk2JHGIWH7_cjs = require('./chunk-2JHGIWH7.cjs');
|
|
5
|
+
var chunkE62LKM6Z_cjs = require('./chunk-E62LKM6Z.cjs');
|
|
6
|
+
var chunk47G65M5Q_cjs = require('./chunk-47G65M5Q.cjs');
|
|
7
|
+
var chunkEYUBL7YH_cjs = require('./chunk-EYUBL7YH.cjs');
|
|
8
|
+
var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
|
|
9
9
|
|
|
10
10
|
// src/plugins/erp/erp-response-map.ts
|
|
11
11
|
function pickString(o, keys) {
|
|
@@ -15,7 +15,7 @@ function pickString(o, keys) {
|
|
|
15
15
|
}
|
|
16
16
|
return void 0;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
chunkXHPRD45G_cjs.__name(pickString, "pickString");
|
|
19
19
|
function unwrapErpReadData(json) {
|
|
20
20
|
if (!json || typeof json !== "object") return null;
|
|
21
21
|
const o = json;
|
|
@@ -23,7 +23,7 @@ function unwrapErpReadData(json) {
|
|
|
23
23
|
if (d && typeof d === "object" && !Array.isArray(d)) return d;
|
|
24
24
|
return o;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
chunkXHPRD45G_cjs.__name(unwrapErpReadData, "unwrapErpReadData");
|
|
27
27
|
function firstObject(data, keys) {
|
|
28
28
|
for (const k of keys) {
|
|
29
29
|
const v = data[k];
|
|
@@ -31,7 +31,7 @@ function firstObject(data, keys) {
|
|
|
31
31
|
}
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
chunkXHPRD45G_cjs.__name(firstObject, "firstObject");
|
|
35
35
|
function extractEvents(src) {
|
|
36
36
|
const timeline = src.timeline ?? src.events ?? src.history ?? src.trackingEvents;
|
|
37
37
|
if (!Array.isArray(timeline) || !timeline.length) return void 0;
|
|
@@ -65,7 +65,7 @@ function extractEvents(src) {
|
|
|
65
65
|
}
|
|
66
66
|
return events.length ? events : void 0;
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
chunkXHPRD45G_cjs.__name(extractEvents, "extractEvents");
|
|
69
69
|
function mapErpPayloadToFulfillment(data) {
|
|
70
70
|
const nested = firstObject(data, [
|
|
71
71
|
"fulfillment",
|
|
@@ -97,7 +97,7 @@ function mapErpPayloadToFulfillment(data) {
|
|
|
97
97
|
events
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
-
|
|
100
|
+
chunkXHPRD45G_cjs.__name(mapErpPayloadToFulfillment, "mapErpPayloadToFulfillment");
|
|
101
101
|
function mapErpPayloadToInvoiceNumber(data) {
|
|
102
102
|
const nested = firstObject(data, [
|
|
103
103
|
"invoice",
|
|
@@ -113,7 +113,7 @@ function mapErpPayloadToInvoiceNumber(data) {
|
|
|
113
113
|
"id"
|
|
114
114
|
]);
|
|
115
115
|
}
|
|
116
|
-
|
|
116
|
+
chunkXHPRD45G_cjs.__name(mapErpPayloadToInvoiceNumber, "mapErpPayloadToInvoiceNumber");
|
|
117
117
|
function extractChildOrderRefsFromSalePayload(data) {
|
|
118
118
|
const lists = [
|
|
119
119
|
data.returns,
|
|
@@ -151,7 +151,7 @@ function extractChildOrderRefsFromSalePayload(data) {
|
|
|
151
151
|
}
|
|
152
152
|
return out;
|
|
153
153
|
}
|
|
154
|
-
|
|
154
|
+
chunkXHPRD45G_cjs.__name(extractChildOrderRefsFromSalePayload, "extractChildOrderRefsFromSalePayload");
|
|
155
155
|
|
|
156
156
|
// src/lib/invoice/build-local-invoice-for-order.ts
|
|
157
157
|
async function loadSettingsGroup(ds, entityMap, group) {
|
|
@@ -167,7 +167,7 @@ async function loadSettingsGroup(ds, entityMap, group) {
|
|
|
167
167
|
String(r.value ?? "")
|
|
168
168
|
]));
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
chunkXHPRD45G_cjs.__name(loadSettingsGroup, "loadSettingsGroup");
|
|
171
171
|
function addrFromRow(row) {
|
|
172
172
|
if (!row || typeof row !== "object") return null;
|
|
173
173
|
const a = row;
|
|
@@ -180,7 +180,7 @@ function addrFromRow(row) {
|
|
|
180
180
|
country: String(a.country ?? "").trim() || void 0
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
|
-
|
|
183
|
+
chunkXHPRD45G_cjs.__name(addrFromRow, "addrFromRow");
|
|
184
184
|
async function buildLocalInvoicePdfForOrder(ds, entityMap, orderId) {
|
|
185
185
|
if (!entityMap.orders || !entityMap.order_items) {
|
|
186
186
|
return {
|
|
@@ -250,10 +250,10 @@ async function buildLocalInvoicePdfForOrder(ds, entityMap, orderId) {
|
|
|
250
250
|
loadSettingsGroup(ds, entityMap, "branding"),
|
|
251
251
|
loadSettingsGroup(ds, entityMap, "email")
|
|
252
252
|
]);
|
|
253
|
-
const companyDetails =
|
|
254
|
-
const fromBranding =
|
|
253
|
+
const companyDetails = chunkEYUBL7YH_cjs.mergeEmailLayoutCompanyDetails(branding, email, store);
|
|
254
|
+
const fromBranding = chunkEYUBL7YH_cjs.getCompanyDetailsFromSettings(branding);
|
|
255
255
|
const rawLogo = store.invoiceLogoUrl || store.companyLogo || store.logo || companyDetails.logoUrl || fromBranding.logoUrl || null;
|
|
256
|
-
const logoUrl =
|
|
256
|
+
const logoUrl = chunk47G65M5Q_cjs.resolveInvoiceAssetUrl(rawLogo);
|
|
257
257
|
const companyName = store.companyName || store.invoiceCompanyName || store.name || companyDetails.companyName || fromBranding.companyName || "Store";
|
|
258
258
|
const supportEmail = store.companyEmail || store.invoiceEmail || store.email || companyDetails.supportEmail || fromBranding.supportEmail;
|
|
259
259
|
const supportPhone = store.companyPhone || store.invoicePhone || store.phone || companyDetails.supportPhone;
|
|
@@ -277,8 +277,8 @@ async function buildLocalInvoicePdfForOrder(ds, entityMap, orderId) {
|
|
|
277
277
|
const baseUrl = process.env.NEXTAUTH_URL || process.env.PUBLIC_APP_URL || "";
|
|
278
278
|
const qrData = qrToken ? baseUrl ? `${baseUrl.replace(/\/$/, "")}/track/${qrToken}` : `/track/${qrToken}` : String(o.orderNumber || orderId);
|
|
279
279
|
const includeQrCode = store.invoice_include_qr === "true" || store.invoiceIncludeQr === "true";
|
|
280
|
-
const bytes = await
|
|
281
|
-
templateId:
|
|
280
|
+
const bytes = await chunk2JHGIWH7_cjs.generateLocalInvoicePdf({
|
|
281
|
+
templateId: chunkE62LKM6Z_cjs.normalizeInvoiceTemplateId(store.invoiceTemplate),
|
|
282
282
|
orderNumber: String(o.orderNumber || orderId),
|
|
283
283
|
orderDate: o.createdAt || /* @__PURE__ */ new Date(),
|
|
284
284
|
serviceDate,
|
|
@@ -311,7 +311,7 @@ async function buildLocalInvoicePdfForOrder(ds, entityMap, orderId) {
|
|
|
311
311
|
filename: `invoice-${String(o.orderNumber || orderId).replace(/[^\w.-]+/g, "_")}.pdf`
|
|
312
312
|
};
|
|
313
313
|
}
|
|
314
|
-
|
|
314
|
+
chunkXHPRD45G_cjs.__name(buildLocalInvoicePdfForOrder, "buildLocalInvoicePdfForOrder");
|
|
315
315
|
|
|
316
316
|
// src/plugins/erp/erp-order-invoice.ts
|
|
317
317
|
function pickInvoiceId(data) {
|
|
@@ -327,7 +327,7 @@ function pickInvoiceId(data) {
|
|
|
327
327
|
}
|
|
328
328
|
return void 0;
|
|
329
329
|
}
|
|
330
|
-
|
|
330
|
+
chunkXHPRD45G_cjs.__name(pickInvoiceId, "pickInvoiceId");
|
|
331
331
|
function jsonErr(msg, status) {
|
|
332
332
|
return new Response(JSON.stringify({
|
|
333
333
|
error: msg
|
|
@@ -338,7 +338,7 @@ function jsonErr(msg, status) {
|
|
|
338
338
|
}
|
|
339
339
|
});
|
|
340
340
|
}
|
|
341
|
-
|
|
341
|
+
chunkXHPRD45G_cjs.__name(jsonErr, "jsonErr");
|
|
342
342
|
var ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES = /* @__PURE__ */ new Set([
|
|
343
343
|
"pending",
|
|
344
344
|
"placed",
|
|
@@ -351,7 +351,7 @@ function isOrderEligibleForInvoiceEmail(status, orderKind) {
|
|
|
351
351
|
if (kind !== "sale") return false;
|
|
352
352
|
return ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES.has(String(status ?? "").trim().toLowerCase());
|
|
353
353
|
}
|
|
354
|
-
|
|
354
|
+
chunkXHPRD45G_cjs.__name(isOrderEligibleForInvoiceEmail, "isOrderEligibleForInvoiceEmail");
|
|
355
355
|
async function resolveOrderInvoicePdfBytes(cms, dataSource, entityMap, orderId, options = {}) {
|
|
356
356
|
try {
|
|
357
357
|
const orderRepo = dataSource.getRepository(entityMap.orders);
|
|
@@ -376,7 +376,7 @@ async function resolveOrderInvoicePdfBytes(cms, dataSource, entityMap, orderId,
|
|
|
376
376
|
status: 404
|
|
377
377
|
};
|
|
378
378
|
}
|
|
379
|
-
const on = await
|
|
379
|
+
const on = await chunkRQCXRCYM_cjs.isErpIntegrationEnabled(cms, dataSource, entityMap);
|
|
380
380
|
const erp = cms.getPlugin("erp");
|
|
381
381
|
if (on && erp?.submission) {
|
|
382
382
|
const meta = order.metadata && typeof order.metadata === "object" && !Array.isArray(order.metadata) ? order.metadata : {};
|
|
@@ -429,7 +429,7 @@ async function resolveOrderInvoicePdfBytes(cms, dataSource, entityMap, orderId,
|
|
|
429
429
|
};
|
|
430
430
|
}
|
|
431
431
|
}
|
|
432
|
-
|
|
432
|
+
chunkXHPRD45G_cjs.__name(resolveOrderInvoicePdfBytes, "resolveOrderInvoicePdfBytes");
|
|
433
433
|
async function streamOrderInvoicePdf(cms, dataSource, entityMap, orderId, options) {
|
|
434
434
|
const resolved = await resolveOrderInvoicePdfBytes(cms, dataSource, entityMap, orderId, options);
|
|
435
435
|
if ("error" in resolved) return jsonErr(resolved.error, resolved.status);
|
|
@@ -442,7 +442,7 @@ async function streamOrderInvoicePdf(cms, dataSource, entityMap, orderId, option
|
|
|
442
442
|
}
|
|
443
443
|
});
|
|
444
444
|
}
|
|
445
|
-
|
|
445
|
+
chunkXHPRD45G_cjs.__name(streamOrderInvoicePdf, "streamOrderInvoicePdf");
|
|
446
446
|
|
|
447
447
|
exports.ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES = ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES;
|
|
448
448
|
exports.buildLocalInvoicePdfForOrder = buildLocalInvoicePdfForOrder;
|