@infuro/cms-core 1.0.67 → 1.0.69
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 +121 -12
- package/dist/admin.js +121 -12
- package/dist/api.cjs +57 -54
- package/dist/api.js +24 -21
- 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-7NMT3GBR.cjs → chunk-3LQS4ATQ.cjs} +4 -4
- package/dist/{chunk-GWDI752Q.js → chunk-3XCTGADT.js} +1 -1
- package/dist/chunk-47G65M5Q.cjs +18 -0
- package/dist/{chunk-XFDIIVZB.cjs → chunk-4MNVIGVJ.cjs} +11 -11
- package/dist/{chunk-OY2YTBMP.cjs → chunk-4WZNRVEZ.cjs} +3 -3
- package/dist/{chunk-OVTOP42W.js → chunk-53AMBXMM.js} +1 -1
- package/dist/chunk-5BKT4CS5.js +28 -0
- package/dist/chunk-5DSY3GQI.js +16 -0
- package/dist/{chunk-AYERBA7I.js → chunk-5NVGWJSY.js} +1 -1
- package/dist/{chunk-HF3L2GIT.cjs → chunk-5YMKJ3TH.cjs} +16 -16
- package/dist/{chunk-WFMVD567.cjs → chunk-6MM5OMRL.cjs} +11 -11
- package/dist/{chunk-5MZFQRDW.cjs → chunk-747MJJCZ.cjs} +147 -147
- package/dist/{chunk-SYBOCAWB.js → chunk-7QJI56OL.js} +1 -1
- package/dist/{chunk-DBPSJYLZ.js → chunk-BK5XW5XH.js} +1 -1
- package/dist/chunk-BQQMTQ4C.cjs +455 -0
- package/dist/{chunk-6YOQ7G5O.js → chunk-CFUSYGSA.js} +1 -1
- package/dist/{chunk-OOTLNH63.cjs → chunk-CIZZX57T.cjs} +2 -2
- package/dist/{chunk-7L6KWI7S.cjs → chunk-CTTV375J.cjs} +13 -13
- package/dist/{chunk-ZY64VJMS.js → chunk-D4LR3S77.js} +2 -2
- package/dist/{chunk-GLLCLRCQ.js → chunk-DBBYLSQP.js} +179 -49
- package/dist/{chunk-5NOZSG6J.js → chunk-DWNQTFJ5.js} +2 -2
- package/dist/{chunk-2IAXTKQN.cjs → chunk-DZNWS2MM.cjs} +2 -2
- package/dist/chunk-E62LKM6Z.cjs +49 -0
- package/dist/{chunk-CRFV5WJK.js → chunk-ECNYZG6T.js} +1 -1
- package/dist/{chunk-TZEMLHSP.cjs → chunk-EYUBL7YH.cjs} +7 -7
- package/dist/{chunk-WMMZZRDJ.cjs → chunk-HGR4IA7I.cjs} +18 -18
- package/dist/{chunk-TJ2MIQUT.cjs → chunk-JRW3GQD4.cjs} +4 -4
- package/dist/{chunk-3K5AIEIZ.js → chunk-JYRFSFXH.js} +1 -1
- package/dist/chunk-K6RXCLD5.js +45 -0
- package/dist/{chunk-TU23GJPJ.js → chunk-LJ5C4RBF.js} +3 -3
- package/dist/{chunk-O4AFPDQ4.cjs → chunk-LXWF6T7F.cjs} +33 -33
- package/dist/{chunk-EIZKW2PF.js → chunk-LY7CDNC6.js} +1 -1
- package/dist/{chunk-PA6YDMFZ.cjs → chunk-M5QDJOUP.cjs} +12 -12
- package/dist/{chunk-MQBT33IV.js → chunk-MGT4DJ2D.js} +1 -1
- package/dist/{chunk-2ISSXYBZ.js → chunk-MJDNS324.js} +5 -5
- package/dist/{chunk-H3IVLIPR.cjs → chunk-OXFC3DAM.cjs} +4 -4
- package/dist/chunk-PQJIJ4ZX.js +445 -0
- package/dist/{chunk-HY3AXLOI.cjs → chunk-PRXVSSIF.cjs} +13 -13
- package/dist/{chunk-TDV6EJHV.js → chunk-PRZOLCFW.js} +2 -2
- package/dist/{chunk-BVLN75LP.cjs → chunk-QL44NCZC.cjs} +1221 -1091
- package/dist/{chunk-VM6OVUUM.cjs → chunk-QN6PZLAP.cjs} +40 -40
- package/dist/{chunk-OV5TRZET.cjs → chunk-QXAQ3V7R.cjs} +27 -27
- package/dist/{chunk-NV5IRHI3.js → chunk-RBKVMHBH.js} +9 -9
- package/dist/{chunk-UPLVMVRX.cjs → chunk-RQCXRCYM.cjs} +2 -2
- package/dist/{chunk-WUQAOTHA.js → chunk-SERRQ736.js} +1 -1
- package/dist/{chunk-SS3K7OIM.cjs → chunk-SWSTGV4F.cjs} +81 -81
- package/dist/{chunk-RCE5SJBA.js → chunk-T47VP2ZT.js} +3 -3
- package/dist/{chunk-FLUF2GZH.js → chunk-WHMIWJL7.js} +1 -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-X36V4DOH.cjs +16 -0
- package/dist/emit-order-notification-trigger-XKN2TWVF.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 +497 -494
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +39 -36
- package/dist/interpolate-KD37IRF2.js +2 -0
- package/dist/interpolate-WP6OSJHN.cjs +11 -0
- package/dist/invoice-templates-2ESQ7K4N.cjs +19 -0
- 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-L3RVKUBS.js → order-assignees-handlers-F7WOZHOG.js} +1 -1
- package/dist/{order-assignees-handlers-KF7RMTV5.cjs → order-assignees-handlers-JEJ5IDID.cjs} +3 -3
- package/dist/{order-completion-otp-handlers-HFGCPC4O.js → order-completion-otp-handlers-FIW7PZ6W.js} +12 -9
- package/dist/{order-completion-otp-handlers-DZAXK4GQ.cjs → order-completion-otp-handlers-LNAZTMTS.cjs} +25 -22
- 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-FS54ANAV.js +13 -0
- package/dist/order-notification-dispatcher-GG5C4LKZ.cjs +38 -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-KWV7D5PQ.cjs → rbac-debug-db-2ZI3XKA4.cjs} +4 -4
- package/dist/{rbac-debug-db-DFZWZ6GV.js → rbac-debug-db-IRKT6G62.js} +2 -2
- 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-GLD263KW.cjs +0 -862
- package/dist/chunk-OPJEV44S.js +0 -847
- package/dist/chunk-SHUYVCID.js +0 -4
- package/dist/chunk-USNT2KNT.cjs +0 -6
- package/dist/email-queue-4OY45JIU.cjs +0 -26
- package/dist/email-queue-HGXB2FIS.js +0 -5
- package/dist/email-service-5O24BSFR.cjs +0 -28
- package/dist/email-service-ADDF52PJ.js +0 -3
- package/dist/emit-order-notification-trigger-EJJZ6XTS.js +0 -3
- package/dist/emit-order-notification-trigger-ZD5YN3JM.cjs +0 -16
- package/dist/erp-config-enabled-CUMQ6N2V.cjs +0 -11
- package/dist/erp-config-enabled-T37X7T34.js +0 -2
- package/dist/erp-order-invoice-H6HCJ7YS.js +0 -4
- package/dist/erp-order-invoice-YUSPZ7CE.cjs +0 -25
- package/dist/interpolate-WAKPN56R.cjs +0 -11
- package/dist/interpolate-WDUWDF3I.js +0 -2
- package/dist/order-notification-dispatcher-ECPFI7CD.js +0 -10
- package/dist/order-notification-dispatcher-LL7ETKLU.cjs +0 -35
- 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/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 {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { ensureCustomerRecord, linkUnclaimedContactToUser, ensureCustomerForUser, canManageRoles, sessionHasEntityAccess } from './chunk-
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { queueErp } from './chunk-
|
|
17
|
-
import { __name } from './chunk-
|
|
1
|
+
import { inviteStatusForActivation } from './chunk-ZMIMKNSQ.js';
|
|
2
|
+
import { normalizePhoneE164, generateNumericOtp, createOtpChallenge, queueSms, verifyAndConsumeOtpChallenge } from './chunk-53AMBXMM.js';
|
|
3
|
+
import { EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS, EVENT_ORDER_TEMPLATE_KEY, EVENT_ORDER_TEMPLATE_VARIABLES } from './chunk-5NVGWJSY.js';
|
|
4
|
+
import { JOB_RUNNER_QUEUE } from './chunk-2BNVRFUQ.js';
|
|
5
|
+
import { validateInventoryForConfirmedOrderLines, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, orderInventorySnapshotFromRow, validateInventoryForOrderBecomingConfirmed } from './chunk-JYRFSFXH.js';
|
|
6
|
+
import { resolveChatEmailToolSettings, CHAT_EMAIL_LOG, detectChatLeadIntent, parseIntentRecipientEmails, sendChatLeadEmail, buildTranscriptForLeadEmail, buildChatbotSystemPromptWithEmailTool, validateFcmCredentials, sendFcmPushNotification, parseEmailRecipientsFromConfig, isWhatsAppPluginEnabled, WhatsAppService, emailPlugin, initWhatsappTriggerDispatcher } from './chunk-RBKVMHBH.js';
|
|
7
|
+
import { registerWhatsAppQueueProcessor } from './chunk-3XCTGADT.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-D4LR3S77.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-DWNQTFJ5.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';
|
|
@@ -5313,7 +5313,7 @@ function createCrudHandler(dataSource, entityMap, options) {
|
|
|
5313
5313
|
const orderIdForNotify = created.id;
|
|
5314
5314
|
const finalCreatedStatus = String(created.status ?? createdStatus ?? "pending").toLowerCase();
|
|
5315
5315
|
const initialPayStatus = String(persistBody.paymentStatus ?? body.paymentStatus ?? "unpaid").toLowerCase();
|
|
5316
|
-
void import('./emit-order-notification-trigger-
|
|
5316
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
5317
5317
|
if (finalCreatedStatus === "pending") {
|
|
5318
5318
|
if (initialPayStatus === "failed") {
|
|
5319
5319
|
fireOrderNotificationTrigger("payment_failed", orderIdForNotify, {
|
|
@@ -6516,7 +6516,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
6516
6516
|
const paymentUpdated = Boolean(rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null);
|
|
6517
6517
|
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
6518
|
if (assigneeUpdated) {
|
|
6519
|
-
void import('./emit-order-notification-trigger-
|
|
6519
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
6520
6520
|
fireOrderNotificationTrigger("order_assigned", updatedOrder.id, {
|
|
6521
6521
|
dataSource,
|
|
6522
6522
|
entityMap
|
|
@@ -6533,7 +6533,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
6533
6533
|
const payments = Array.isArray(updatedOrder.payments) ? updatedOrder.payments : [];
|
|
6534
6534
|
const bodyPayStatus = rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null ? String(rawBody.paymentStatus).toLowerCase() : null;
|
|
6535
6535
|
const curPayStatus = bodyPayStatus || String(payments[0]?.status || "unpaid").toLowerCase();
|
|
6536
|
-
void import('./emit-order-notification-trigger-
|
|
6536
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
6537
6537
|
if (newStatus === "pending") {
|
|
6538
6538
|
if (curPayStatus === "failed") {
|
|
6539
6539
|
fireOrderNotificationTrigger("payment_failed", updatedOrder.id, {
|
|
@@ -7241,7 +7241,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7241
7241
|
});
|
|
7242
7242
|
}
|
|
7243
7243
|
if (ordStatus === "pending" || ordStatus === "confirmed") {
|
|
7244
|
-
void import('./emit-order-notification-trigger-
|
|
7244
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7245
7245
|
fireOrderNotificationTrigger("order_placed", pOrder, {
|
|
7246
7246
|
dataSource,
|
|
7247
7247
|
entityMap
|
|
@@ -7255,7 +7255,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7255
7255
|
}
|
|
7256
7256
|
}
|
|
7257
7257
|
} else if (newPayStatus === "failed") {
|
|
7258
|
-
void import('./emit-order-notification-trigger-
|
|
7258
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7259
7259
|
fireOrderNotificationTrigger("payment_failed", pOrder, {
|
|
7260
7260
|
dataSource,
|
|
7261
7261
|
entityMap
|
|
@@ -7263,7 +7263,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7263
7263
|
}).catch(() => {
|
|
7264
7264
|
});
|
|
7265
7265
|
} else if (newPayStatus === "refunded") {
|
|
7266
|
-
void import('./emit-order-notification-trigger-
|
|
7266
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7267
7267
|
fireOrderNotificationTrigger("payment_refund_initiated", pOrder, {
|
|
7268
7268
|
dataSource,
|
|
7269
7269
|
entityMap
|
|
@@ -7390,7 +7390,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7390
7390
|
const paymentUpdated = Boolean(rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null);
|
|
7391
7391
|
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
7392
|
if (assigneeUpdated) {
|
|
7393
|
-
void import('./emit-order-notification-trigger-
|
|
7393
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7394
7394
|
fireOrderNotificationTrigger("order_assigned", ord.id, {
|
|
7395
7395
|
dataSource,
|
|
7396
7396
|
entityMap
|
|
@@ -7407,7 +7407,7 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
|
|
|
7407
7407
|
const payments = Array.isArray(ord.payments) ? ord.payments : [];
|
|
7408
7408
|
const bodyPayStatus = rawBody && typeof rawBody === "object" && rawBody.paymentStatus != null ? String(rawBody.paymentStatus).toLowerCase() : null;
|
|
7409
7409
|
const curPayStatus = bodyPayStatus || String(payments[0]?.status || "unpaid").toLowerCase();
|
|
7410
|
-
void import('./emit-order-notification-trigger-
|
|
7410
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
7411
7411
|
if (newStatus === "pending") {
|
|
7412
7412
|
if (curPayStatus === "failed") {
|
|
7413
7413
|
fireOrderNotificationTrigger("payment_failed", ord.id, {
|
|
@@ -11061,7 +11061,7 @@ function createUsersApiHandlers(config) {
|
|
|
11061
11061
|
if (token) {
|
|
11062
11062
|
inviteLink = buildVendorInviteLink(baseUrl, token);
|
|
11063
11063
|
}
|
|
11064
|
-
const { markVendorInvitePendingForUser } = await import('./vendor-invite-status-
|
|
11064
|
+
const { markVendorInvitePendingForUser } = await import('./vendor-invite-status-45ZCWKCX.js');
|
|
11065
11065
|
await markVendorInvitePendingForUser(dataSource, entityMap.vendors, u.id);
|
|
11066
11066
|
}
|
|
11067
11067
|
}
|
|
@@ -15542,6 +15542,7 @@ function createVendorOnboardHandlers(config) {
|
|
|
15542
15542
|
state: vp?.state ?? null,
|
|
15543
15543
|
postalCode: vp?.postalCode ?? null,
|
|
15544
15544
|
blocked: u?.blocked ?? false,
|
|
15545
|
+
inviteStatus: u?.inviteStatus ?? (u?.password ? "active" : "pending"),
|
|
15545
15546
|
groupName: u?.group?.name ?? null
|
|
15546
15547
|
};
|
|
15547
15548
|
});
|
|
@@ -16015,14 +16016,24 @@ function createVendorOnboardHandlers(config) {
|
|
|
16015
16016
|
});
|
|
16016
16017
|
}
|
|
16017
16018
|
}
|
|
16018
|
-
const
|
|
16019
|
-
|
|
16019
|
+
const hasPassword = !!(user.password && String(user.password).trim());
|
|
16020
|
+
const isPending = user.inviteStatus === "pending" || !hasPassword;
|
|
16021
|
+
if (!isPending) {
|
|
16020
16022
|
return json({
|
|
16021
|
-
error: "
|
|
16023
|
+
error: "User has already accepted the invite"
|
|
16022
16024
|
}, {
|
|
16023
16025
|
status: 400
|
|
16024
16026
|
});
|
|
16025
16027
|
}
|
|
16028
|
+
let token = String(user.inviteToken ?? "").trim();
|
|
16029
|
+
if (!token) {
|
|
16030
|
+
token = newUserInviteToken();
|
|
16031
|
+
await dataSource.getRepository(entityMap.users).update(user.id, {
|
|
16032
|
+
inviteToken: token,
|
|
16033
|
+
inviteStatus: "pending",
|
|
16034
|
+
password: null
|
|
16035
|
+
});
|
|
16036
|
+
}
|
|
16026
16037
|
const inviteLink = buildUserInviteLink(baseUrl, token);
|
|
16027
16038
|
const emailSent = await trySendVendorOnboardEmails({
|
|
16028
16039
|
vendorName,
|
|
@@ -27850,7 +27861,7 @@ async function queueJobScheduleNow(cms, scheduleId) {
|
|
|
27850
27861
|
if (!boss) {
|
|
27851
27862
|
throw new Error("pg-boss is not configured (DATABASE_URL required)");
|
|
27852
27863
|
}
|
|
27853
|
-
const { JOB_RUNNER_QUEUE: JOB_RUNNER_QUEUE2 } = await import('./pg-boss-service-
|
|
27864
|
+
const { JOB_RUNNER_QUEUE: JOB_RUNNER_QUEUE2 } = await import('./pg-boss-service-CMW3KQJM.js');
|
|
27854
27865
|
await boss.send(JOB_RUNNER_QUEUE2, {
|
|
27855
27866
|
scheduleId,
|
|
27856
27867
|
triggeredBy: "manual"
|
|
@@ -29427,7 +29438,7 @@ function createCmsApiHandler(config) {
|
|
|
29427
29438
|
companyDetails
|
|
29428
29439
|
};
|
|
29429
29440
|
if (queue) {
|
|
29430
|
-
const { queueEmail: queueEmail2 } = await import('./email-queue-
|
|
29441
|
+
const { queueEmail: queueEmail2 } = await import('./email-queue-MWP4R67H.js');
|
|
29431
29442
|
await queueEmail2(cms, {
|
|
29432
29443
|
to: opts.to,
|
|
29433
29444
|
templateName: "passwordReset",
|
|
@@ -29452,7 +29463,7 @@ function createCmsApiHandler(config) {
|
|
|
29452
29463
|
const prevActivate = userAuth.beforeActivate;
|
|
29453
29464
|
userAuth.beforeActivate = async (email, userId) => {
|
|
29454
29465
|
if (prevActivate) await prevActivate(email, userId);
|
|
29455
|
-
const { markVendorInviteAcceptedForUser } = await import('./vendor-invite-status-
|
|
29466
|
+
const { markVendorInviteAcceptedForUser } = await import('./vendor-invite-status-45ZCWKCX.js');
|
|
29456
29467
|
await markVendorInviteAcceptedForUser(ds, vendorEntity, userId);
|
|
29457
29468
|
};
|
|
29458
29469
|
}
|
|
@@ -30437,6 +30448,110 @@ function createCmsApiHandler(config) {
|
|
|
30437
30448
|
return socialMediaHandlers.publishBlogToFacebook(req, id);
|
|
30438
30449
|
}
|
|
30439
30450
|
}
|
|
30451
|
+
if (path2[0] === "settings" && path2.length === 2 && path2[1] === "invoice-preview" && m === "GET") {
|
|
30452
|
+
const a = await config.requireAuth(req);
|
|
30453
|
+
if (a) return a;
|
|
30454
|
+
const pe = await requireEntityPermissionEffective(req, "settings", "read");
|
|
30455
|
+
if (pe) return pe;
|
|
30456
|
+
const url = new URL(req.url);
|
|
30457
|
+
const templateParam = url.searchParams.get("template") || "classic";
|
|
30458
|
+
const qrParam = url.searchParams.get("qr");
|
|
30459
|
+
const configRepo = dataSource.getRepository(entityMap.configs);
|
|
30460
|
+
const rows = await configRepo.find({
|
|
30461
|
+
where: {
|
|
30462
|
+
settings: "store",
|
|
30463
|
+
deleted: false
|
|
30464
|
+
}
|
|
30465
|
+
});
|
|
30466
|
+
const storeMap = {};
|
|
30467
|
+
for (const r of rows) {
|
|
30468
|
+
storeMap[r.key] = r.value;
|
|
30469
|
+
}
|
|
30470
|
+
const { normalizeInvoiceTemplateId } = await import('./invoice-templates-3AXTXERZ.js');
|
|
30471
|
+
const { generateLocalInvoicePdf } = await import('./generate-local-invoice-pdf-XUH6GYEJ.js');
|
|
30472
|
+
const { resolveInvoiceAssetUrl } = await import('./resolve-invoice-asset-url-64QQUVC3.js');
|
|
30473
|
+
const templateId = normalizeInvoiceTemplateId(templateParam);
|
|
30474
|
+
const includeQr = qrParam != null ? qrParam === "1" || qrParam === "true" : storeMap.invoice_include_qr === "true";
|
|
30475
|
+
const sampleInput = {
|
|
30476
|
+
templateId,
|
|
30477
|
+
orderNumber: "SAMPLE-10024",
|
|
30478
|
+
orderDate: (/* @__PURE__ */ new Date()).toISOString(),
|
|
30479
|
+
currency: storeMap.currency || "INR",
|
|
30480
|
+
company: {
|
|
30481
|
+
name: storeMap.companyName || storeMap.invoiceCompanyName || "ETOE Services",
|
|
30482
|
+
supportEmail: storeMap.companyEmail || storeMap.invoiceEmail || "support@example.com",
|
|
30483
|
+
supportPhone: storeMap.companyPhone || storeMap.invoicePhone || "+91 98765 43210",
|
|
30484
|
+
address: storeMap.companyAddress || storeMap.invoiceAddress || "65 Sanjay Nagar B, Kalwar Road, Jhotwara, Jaipur, Rajasthan, 302012, India",
|
|
30485
|
+
logoUrl: resolveInvoiceAssetUrl(storeMap.invoiceLogoUrl || storeMap.companyLogo || storeMap.logo)
|
|
30486
|
+
},
|
|
30487
|
+
customerName: "Sahil Sharma",
|
|
30488
|
+
customerEmail: "sahil@example.com",
|
|
30489
|
+
customerPhone: "+91 98875 51178",
|
|
30490
|
+
billingAddress: {
|
|
30491
|
+
line1: "65 Sanjay Nagar B, Kalwar Road",
|
|
30492
|
+
city: "Jaipur",
|
|
30493
|
+
state: "Rajasthan",
|
|
30494
|
+
postalCode: "302012",
|
|
30495
|
+
country: "India"
|
|
30496
|
+
},
|
|
30497
|
+
shippingAddress: {
|
|
30498
|
+
line1: "65 Sanjay Nagar B, Kalwar Road",
|
|
30499
|
+
city: "Jaipur",
|
|
30500
|
+
state: "Rajasthan",
|
|
30501
|
+
postalCode: "302012",
|
|
30502
|
+
country: "India"
|
|
30503
|
+
},
|
|
30504
|
+
serviceDate: (/* @__PURE__ */ new Date()).toISOString(),
|
|
30505
|
+
timeSlot: "6:00 PM",
|
|
30506
|
+
assignedTo: "Raaj Sharma",
|
|
30507
|
+
qrToken: "sample-track-token-12345",
|
|
30508
|
+
qrData: "https://etoe.in/track/sample-track-token-12345",
|
|
30509
|
+
includeQrCode: includeQr,
|
|
30510
|
+
lineItems: [
|
|
30511
|
+
{
|
|
30512
|
+
name: "Complete Home Deep Cleaning Service",
|
|
30513
|
+
sku: "ETOE-HDC-001",
|
|
30514
|
+
quantity: 1,
|
|
30515
|
+
unitPrice: 3499,
|
|
30516
|
+
tax: 0,
|
|
30517
|
+
total: 3499
|
|
30518
|
+
},
|
|
30519
|
+
{
|
|
30520
|
+
name: "Kitchen & Bathroom Sanitization Add-on",
|
|
30521
|
+
sku: "ETOE-SAN-002",
|
|
30522
|
+
quantity: 1,
|
|
30523
|
+
unitPrice: 999,
|
|
30524
|
+
tax: 0,
|
|
30525
|
+
total: 999
|
|
30526
|
+
}
|
|
30527
|
+
],
|
|
30528
|
+
subtotal: 4498,
|
|
30529
|
+
discount: 499,
|
|
30530
|
+
tax: 0,
|
|
30531
|
+
total: 3999
|
|
30532
|
+
};
|
|
30533
|
+
try {
|
|
30534
|
+
const bytes = await generateLocalInvoicePdf(sampleInput);
|
|
30535
|
+
return new Response(Buffer.from(bytes), {
|
|
30536
|
+
status: 200,
|
|
30537
|
+
headers: {
|
|
30538
|
+
"Content-Type": "application/pdf",
|
|
30539
|
+
"Content-Disposition": `inline; filename="preview-invoice-${templateId}.pdf"`
|
|
30540
|
+
}
|
|
30541
|
+
});
|
|
30542
|
+
} catch (err) {
|
|
30543
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
30544
|
+
console.error("[invoice-preview] failed", {
|
|
30545
|
+
templateId,
|
|
30546
|
+
error: msg
|
|
30547
|
+
});
|
|
30548
|
+
return config.json({
|
|
30549
|
+
error: `Preview generation failed: ${msg}`
|
|
30550
|
+
}, {
|
|
30551
|
+
status: 500
|
|
30552
|
+
});
|
|
30553
|
+
}
|
|
30554
|
+
}
|
|
30440
30555
|
if (path2[0] === "settings" && path2.length === 2 && settingsHandlers) {
|
|
30441
30556
|
const group = path2[1];
|
|
30442
30557
|
const isPublic = group === "multi_vendor" || group === "turnstile" || group === "auth_providers" || settingsConfig?.publicGetGroups?.includes(group);
|
|
@@ -30741,7 +30856,7 @@ function createCmsApiHandler(config) {
|
|
|
30741
30856
|
const pe = await requireEntityPermissionEffective(req, "orders", "read");
|
|
30742
30857
|
if (pe) return pe;
|
|
30743
30858
|
const cms = await getCms();
|
|
30744
|
-
const { streamOrderInvoicePdf: streamOrderInvoicePdf2 } = await import('./erp-order-invoice-
|
|
30859
|
+
const { streamOrderInvoicePdf: streamOrderInvoicePdf2 } = await import('./erp-order-invoice-JEQKFXG4.js');
|
|
30745
30860
|
const oid = Number(path2[1]);
|
|
30746
30861
|
if (!Number.isFinite(oid)) return config.json({
|
|
30747
30862
|
error: "Invalid id"
|
|
@@ -30775,7 +30890,7 @@ function createCmsApiHandler(config) {
|
|
|
30775
30890
|
status: 400
|
|
30776
30891
|
});
|
|
30777
30892
|
const cms = await getCms();
|
|
30778
|
-
const { isErpIntegrationEnabled: isErpIntegrationEnabled3 } = await import('./erp-config-enabled-
|
|
30893
|
+
const { isErpIntegrationEnabled: isErpIntegrationEnabled3 } = await import('./erp-config-enabled-CASE5YVI.js');
|
|
30779
30894
|
const enabled = await isErpIntegrationEnabled3(cms, dataSource, entityMap);
|
|
30780
30895
|
if (m === "GET") {
|
|
30781
30896
|
return config.json({
|
|
@@ -30788,7 +30903,7 @@ function createCmsApiHandler(config) {
|
|
|
30788
30903
|
}, {
|
|
30789
30904
|
status: 409
|
|
30790
30905
|
});
|
|
30791
|
-
const { queueErpPaidOrderForOrderId } = await import('./paid-order-erp-
|
|
30906
|
+
const { queueErpPaidOrderForOrderId } = await import('./paid-order-erp-GRXR2OG6.js');
|
|
30792
30907
|
await queueErpPaidOrderForOrderId(cms, dataSource, entityMap, oid);
|
|
30793
30908
|
return config.json({
|
|
30794
30909
|
ok: true
|
|
@@ -30891,7 +31006,7 @@ function createCmsApiHandler(config) {
|
|
|
30891
31006
|
}
|
|
30892
31007
|
}
|
|
30893
31008
|
if (path2[0] === "sms-notification-templates" && path2.length === 1 && m === "GET") {
|
|
30894
|
-
const { createSmsNotificationTemplatesHandlers } = await import('./sms-notification-templates-handlers-
|
|
31009
|
+
const { createSmsNotificationTemplatesHandlers } = await import('./sms-notification-templates-handlers-ZGDCVS5Z.js');
|
|
30895
31010
|
const handlers = createSmsNotificationTemplatesHandlers(dataSource, entityMap);
|
|
30896
31011
|
return handlers.GET(req);
|
|
30897
31012
|
}
|
|
@@ -30966,7 +31081,7 @@ function createCmsApiHandler(config) {
|
|
|
30966
31081
|
"Content-Type": "text/html; charset=utf-8"
|
|
30967
31082
|
}
|
|
30968
31083
|
});
|
|
30969
|
-
const { renderOrderTrackingPage } = await import('./OrderTrackPage-
|
|
31084
|
+
const { renderOrderTrackingPage } = await import('./OrderTrackPage-VBZUVZOU.js');
|
|
30970
31085
|
const html = renderOrderTrackingPage(order);
|
|
30971
31086
|
return new Response(html, {
|
|
30972
31087
|
status: 200,
|
|
@@ -31123,7 +31238,7 @@ function createCmsApiHandler(config) {
|
|
|
31123
31238
|
status: 400
|
|
31124
31239
|
});
|
|
31125
31240
|
}
|
|
31126
|
-
const { resendOrderNotification } = await import('./order-notification-dispatcher-
|
|
31241
|
+
const { resendOrderNotification } = await import('./order-notification-dispatcher-FS54ANAV.js');
|
|
31127
31242
|
const result = await resendOrderNotification(triggerKey, orderId, {
|
|
31128
31243
|
dataSource,
|
|
31129
31244
|
entityMap,
|
|
@@ -31204,7 +31319,7 @@ function createCmsApiHandler(config) {
|
|
|
31204
31319
|
]
|
|
31205
31320
|
});
|
|
31206
31321
|
if (orderWithItems) {
|
|
31207
|
-
const { reconcileOrderInventoryBetweenSnapshots: reconcileOrderInventoryBetweenSnapshots2, orderInventorySnapshotFromRow: orderInventorySnapshotFromRow2 } = await import('./order-inventory-
|
|
31322
|
+
const { reconcileOrderInventoryBetweenSnapshots: reconcileOrderInventoryBetweenSnapshots2, orderInventorySnapshotFromRow: orderInventorySnapshotFromRow2 } = await import('./order-inventory-R3AU6N4V.js');
|
|
31208
31323
|
const prevSnap = orderInventorySnapshotFromRow2(orderWithItems);
|
|
31209
31324
|
const invErr = await reconcileOrderInventoryBetweenSnapshots2(dataSource, entityMap, prevSnap, {
|
|
31210
31325
|
status: "cancelled",
|
|
@@ -31222,7 +31337,7 @@ function createCmsApiHandler(config) {
|
|
|
31222
31337
|
status: "cancelled"
|
|
31223
31338
|
});
|
|
31224
31339
|
const fireOrderCancelledNotification = /* @__PURE__ */ __name((refundAmount) => {
|
|
31225
|
-
void import('./emit-order-notification-trigger-
|
|
31340
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
31226
31341
|
fireOrderNotificationTrigger("order_cancelled", orderId, {
|
|
31227
31342
|
dataSource,
|
|
31228
31343
|
entityMap
|
|
@@ -31467,7 +31582,7 @@ function createCmsApiHandler(config) {
|
|
|
31467
31582
|
}, {
|
|
31468
31583
|
status: 400
|
|
31469
31584
|
});
|
|
31470
|
-
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-
|
|
31585
|
+
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-FIW7PZ6W.js');
|
|
31471
31586
|
const handlers = createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser);
|
|
31472
31587
|
return handlers.getChannels(req, orderId);
|
|
31473
31588
|
}
|
|
@@ -31482,7 +31597,7 @@ function createCmsApiHandler(config) {
|
|
|
31482
31597
|
}, {
|
|
31483
31598
|
status: 400
|
|
31484
31599
|
});
|
|
31485
|
-
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-
|
|
31600
|
+
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-FIW7PZ6W.js');
|
|
31486
31601
|
const handlers = createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser);
|
|
31487
31602
|
return handlers.sendOtp(req, orderId);
|
|
31488
31603
|
}
|
|
@@ -31497,7 +31612,7 @@ function createCmsApiHandler(config) {
|
|
|
31497
31612
|
}, {
|
|
31498
31613
|
status: 400
|
|
31499
31614
|
});
|
|
31500
|
-
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-
|
|
31615
|
+
const { createOrderCompletionOtpHandlers } = await import('./order-completion-otp-handlers-FIW7PZ6W.js');
|
|
31501
31616
|
const handlers = createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser);
|
|
31502
31617
|
return handlers.verifyOtp(req, orderId);
|
|
31503
31618
|
}
|
|
@@ -31512,7 +31627,7 @@ function createCmsApiHandler(config) {
|
|
|
31512
31627
|
}, {
|
|
31513
31628
|
status: 400
|
|
31514
31629
|
});
|
|
31515
|
-
const { createOrderAssigneesHandlers } = await import('./order-assignees-handlers-
|
|
31630
|
+
const { createOrderAssigneesHandlers } = await import('./order-assignees-handlers-F7WOZHOG.js');
|
|
31516
31631
|
const handlers = createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionUser);
|
|
31517
31632
|
return handlers.listEligibleAssignees(req, orderId);
|
|
31518
31633
|
}
|
|
@@ -32129,7 +32244,7 @@ function createStorefrontApiHandler(config) {
|
|
|
32129
32244
|
const otpPepper = config.otpPepper;
|
|
32130
32245
|
const defaultPhoneCc = config.defaultPhoneCountryCode;
|
|
32131
32246
|
function fireStorefrontCheckoutNotifications(orderId) {
|
|
32132
|
-
void import('./emit-order-notification-trigger-
|
|
32247
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
32133
32248
|
fireOrderNotificationTrigger("order_pending", orderId, {
|
|
32134
32249
|
dataSource,
|
|
32135
32250
|
entityMap
|
|
@@ -33980,7 +34095,7 @@ function createStorefrontApiHandler(config) {
|
|
|
33980
34095
|
}, {
|
|
33981
34096
|
status: 400
|
|
33982
34097
|
});
|
|
33983
|
-
const { retireSoftDeletedUniqueValue: retireSoftDeletedUniqueValue2 } = await import('./retire-soft-deleted-unique-
|
|
34098
|
+
const { retireSoftDeletedUniqueValue: retireSoftDeletedUniqueValue2 } = await import('./retire-soft-deleted-unique-F25KZBZK.js');
|
|
33984
34099
|
await retireSoftDeletedUniqueValue2(userRepo(), "email", email);
|
|
33985
34100
|
const existing = await userRepo().findOne({
|
|
33986
34101
|
where: {
|
|
@@ -34893,7 +35008,9 @@ function createStorefrontApiHandler(config) {
|
|
|
34893
35008
|
},
|
|
34894
35009
|
relations: [
|
|
34895
35010
|
"items",
|
|
34896
|
-
"items.product"
|
|
35011
|
+
"items.product",
|
|
35012
|
+
"assignedUser",
|
|
35013
|
+
"payments"
|
|
34897
35014
|
]
|
|
34898
35015
|
});
|
|
34899
35016
|
if (!order) return json({
|
|
@@ -34919,7 +35036,9 @@ function createStorefrontApiHandler(config) {
|
|
|
34919
35036
|
},
|
|
34920
35037
|
relations: [
|
|
34921
35038
|
"items",
|
|
34922
|
-
"items.product"
|
|
35039
|
+
"items.product",
|
|
35040
|
+
"assignedUser",
|
|
35041
|
+
"payments"
|
|
34923
35042
|
]
|
|
34924
35043
|
});
|
|
34925
35044
|
}
|
|
@@ -34985,6 +35104,17 @@ function createStorefrontApiHandler(config) {
|
|
|
34985
35104
|
currency: o.currency,
|
|
34986
35105
|
createdAt: o.createdAt,
|
|
34987
35106
|
metadata: o.metadata ?? null,
|
|
35107
|
+
assignedUser: o.assignedUser ? {
|
|
35108
|
+
id: o.assignedUser.id,
|
|
35109
|
+
name: o.assignedUser.name,
|
|
35110
|
+
phone: o.assignedUser.phone
|
|
35111
|
+
} : null,
|
|
35112
|
+
payments: Array.isArray(o.payments) ? o.payments.map((pm) => ({
|
|
35113
|
+
id: pm.id,
|
|
35114
|
+
amount: pm.amount,
|
|
35115
|
+
method: pm.method,
|
|
35116
|
+
status: pm.status
|
|
35117
|
+
})) : [],
|
|
34988
35118
|
items: lines
|
|
34989
35119
|
},
|
|
34990
35120
|
relatedOrders: relatedOrders.map((r) => ({
|
|
@@ -35059,7 +35189,7 @@ function createStorefrontApiHandler(config) {
|
|
|
35059
35189
|
} catch {
|
|
35060
35190
|
}
|
|
35061
35191
|
try {
|
|
35062
|
-
void import('./emit-order-notification-trigger-
|
|
35192
|
+
void import('./emit-order-notification-trigger-XKN2TWVF.js').then(({ fireOrderNotificationTrigger }) => {
|
|
35063
35193
|
fireOrderNotificationTrigger("order_cancelled", orderId, {
|
|
35064
35194
|
dataSource,
|
|
35065
35195
|
entityMap
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from './chunk-
|
|
1
|
+
import { __name } from './chunk-5BKT4CS5.js';
|
|
2
2
|
|
|
3
3
|
// src/auth/permission-entities.ts
|
|
4
4
|
var PERMISSION_ENTITY_INTERNAL_EXCLUDE = /* @__PURE__ */ new Set([
|
|
@@ -623,7 +623,7 @@ async function logEntityAccessDecision(dataSource, context, user, entity, action
|
|
|
623
623
|
const id = Number(user.id);
|
|
624
624
|
if (Number.isFinite(id)) {
|
|
625
625
|
try {
|
|
626
|
-
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-
|
|
626
|
+
const { loadDbPermissionsForUser } = await import('./rbac-debug-db-IRKT6G62.js');
|
|
627
627
|
dbPermissions = await loadDbPermissionsForUser(dataSource, id);
|
|
628
628
|
} catch (e) {
|
|
629
629
|
dbPermissions = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
|
|
6
6
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -14,6 +14,6 @@ function ForceLightMode() {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
chunkXHPRD45G_cjs.__name(ForceLightMode, "ForceLightMode");
|
|
18
18
|
|
|
19
19
|
exports.ForceLightMode = ForceLightMode;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
|
|
4
|
+
|
|
5
|
+
// src/lib/invoice/invoice-templates.ts
|
|
6
|
+
var INVOICE_TEMPLATE_IDS = [
|
|
7
|
+
"classic",
|
|
8
|
+
"modern",
|
|
9
|
+
"compact",
|
|
10
|
+
"bold",
|
|
11
|
+
"service_detailed"
|
|
12
|
+
];
|
|
13
|
+
var INVOICE_TEMPLATE_OPTIONS = [
|
|
14
|
+
{
|
|
15
|
+
id: "classic",
|
|
16
|
+
label: "Classic",
|
|
17
|
+
description: "Traditional invoice with header, lined items, and totals footer."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: "modern",
|
|
21
|
+
label: "Modern",
|
|
22
|
+
description: "Clean layout with accent bar and spacious typography."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "compact",
|
|
26
|
+
label: "Compact",
|
|
27
|
+
description: "Dense single-page layout for high line-item counts."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "bold",
|
|
31
|
+
label: "Bold",
|
|
32
|
+
description: "Strong header band and clear payment summary block."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: "service_detailed",
|
|
36
|
+
label: "Service Detailed",
|
|
37
|
+
description: "Detailed service invoice with order date, service date, time slot, and assigned technician."
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
function normalizeInvoiceTemplateId(raw) {
|
|
41
|
+
const v = String(raw ?? "").trim().toLowerCase();
|
|
42
|
+
if (v === "service_qr") return "service_detailed";
|
|
43
|
+
return INVOICE_TEMPLATE_IDS.includes(v) ? v : "classic";
|
|
44
|
+
}
|
|
45
|
+
chunkXHPRD45G_cjs.__name(normalizeInvoiceTemplateId, "normalizeInvoiceTemplateId");
|
|
46
|
+
|
|
47
|
+
exports.INVOICE_TEMPLATE_IDS = INVOICE_TEMPLATE_IDS;
|
|
48
|
+
exports.INVOICE_TEMPLATE_OPTIONS = INVOICE_TEMPLATE_OPTIONS;
|
|
49
|
+
exports.normalizeInvoiceTemplateId = normalizeInvoiceTemplateId;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
|
|
4
4
|
|
|
5
5
|
// src/plugins/email/templates/types.ts
|
|
6
6
|
function normalizeSocialLinkItem(o) {
|
|
@@ -19,7 +19,7 @@ function normalizeSocialLinkItem(o) {
|
|
|
19
19
|
if (icon) item.icon = icon;
|
|
20
20
|
return item;
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
chunkXHPRD45G_cjs.__name(normalizeSocialLinkItem, "normalizeSocialLinkItem");
|
|
23
23
|
function parseSocialLinksJson(raw) {
|
|
24
24
|
if (raw == null || raw.trim() === "") return void 0;
|
|
25
25
|
try {
|
|
@@ -37,7 +37,7 @@ function parseSocialLinksJson(raw) {
|
|
|
37
37
|
return void 0;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
chunkXHPRD45G_cjs.__name(parseSocialLinksJson, "parseSocialLinksJson");
|
|
41
41
|
function absolutizeEmailAssetUrl(url) {
|
|
42
42
|
const t = url?.trim();
|
|
43
43
|
if (!t) return void 0;
|
|
@@ -46,10 +46,10 @@ function absolutizeEmailAssetUrl(url) {
|
|
|
46
46
|
if (!base) return t;
|
|
47
47
|
return `${base}${t.startsWith("/") ? t : `/${t}`}`;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
chunkXHPRD45G_cjs.__name(absolutizeEmailAssetUrl, "absolutizeEmailAssetUrl");
|
|
50
50
|
function mergeEmailLayoutCompanyDetails(branding, emailSettings, storeSettings) {
|
|
51
51
|
const fromBranding = getCompanyDetailsFromSettings(branding);
|
|
52
|
-
const first = /* @__PURE__ */
|
|
52
|
+
const first = /* @__PURE__ */ chunkXHPRD45G_cjs.__name((...vals) => {
|
|
53
53
|
for (const v of vals) {
|
|
54
54
|
const t = v?.trim();
|
|
55
55
|
if (t) return t;
|
|
@@ -81,7 +81,7 @@ function mergeEmailLayoutCompanyDetails(branding, emailSettings, storeSettings)
|
|
|
81
81
|
followUsTitle
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
chunkXHPRD45G_cjs.__name(mergeEmailLayoutCompanyDetails, "mergeEmailLayoutCompanyDetails");
|
|
85
85
|
function getCompanyDetailsFromSettings(settingsGroup) {
|
|
86
86
|
const logoUrl = settingsGroup.logo ?? settingsGroup.logoUrl ?? "";
|
|
87
87
|
const companyName = settingsGroup.companyName ?? settingsGroup.company_name ?? "";
|
|
@@ -109,7 +109,7 @@ function getCompanyDetailsFromSettings(settingsGroup) {
|
|
|
109
109
|
socialLinks: socialLinks.length ? socialLinks : void 0
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
|
|
112
|
+
chunkXHPRD45G_cjs.__name(getCompanyDetailsFromSettings, "getCompanyDetailsFromSettings");
|
|
113
113
|
|
|
114
114
|
exports.getCompanyDetailsFromSettings = getCompanyDetailsFromSettings;
|
|
115
115
|
exports.mergeEmailLayoutCompanyDetails = mergeEmailLayoutCompanyDetails;
|