@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.
Files changed (153) hide show
  1. package/dist/{OrderTrackPage-W3J6WIG2.js → OrderTrackPage-VBZUVZOU.js} +1 -1
  2. package/dist/{OrderTrackPage-Z6FCJQYY.cjs → OrderTrackPage-VFIXWJOW.cjs} +4 -4
  3. package/dist/admin.cjs +2831 -2680
  4. package/dist/admin.js +1590 -1439
  5. package/dist/api.cjs +57 -57
  6. package/dist/api.js +24 -24
  7. package/dist/auth.cjs +62 -62
  8. package/dist/auth.js +6 -6
  9. package/dist/{chunk-XJNNOSJR.js → chunk-2BNVRFUQ.js} +1 -1
  10. package/dist/chunk-2JHGIWH7.cjs +2700 -0
  11. package/dist/{chunk-3DZRIZOD.cjs → chunk-3ASNJS2H.cjs} +3 -3
  12. package/dist/{chunk-N4LBZXBG.js → chunk-3LF4RYAJ.js} +360 -30
  13. package/dist/{chunk-7NMT3GBR.cjs → chunk-3LQS4ATQ.cjs} +4 -4
  14. package/dist/{chunk-P6S4XFZO.cjs → chunk-47G65M5Q.cjs} +2 -2
  15. package/dist/{chunk-UMC7W5G3.cjs → chunk-4MNVIGVJ.cjs} +11 -11
  16. package/dist/{chunk-OY2YTBMP.cjs → chunk-4WZNRVEZ.cjs} +3 -3
  17. package/dist/chunk-5BKT4CS5.js +28 -0
  18. package/dist/{chunk-IKTBZJHT.js → chunk-5DSY3GQI.js} +1 -1
  19. package/dist/{chunk-AYERBA7I.js → chunk-5NVGWJSY.js} +1 -1
  20. package/dist/{chunk-HF3L2GIT.cjs → chunk-5YMKJ3TH.cjs} +16 -16
  21. package/dist/{chunk-MYUGQHU4.js → chunk-7NQMGB2S.js} +162 -51
  22. package/dist/{chunk-SYBOCAWB.js → chunk-7QJI56OL.js} +1 -1
  23. package/dist/{chunk-DBPSJYLZ.js → chunk-BK5XW5XH.js} +1 -1
  24. package/dist/{chunk-SUUD7OUG.cjs → chunk-BQQMTQ4C.cjs} +27 -27
  25. package/dist/{chunk-6YOQ7G5O.js → chunk-CFUSYGSA.js} +1 -1
  26. package/dist/{chunk-OOTLNH63.cjs → chunk-CIZZX57T.cjs} +2 -2
  27. package/dist/{chunk-5NOZSG6J.js → chunk-CJY2HUJC.js} +20 -20
  28. package/dist/{chunk-HBUV73RB.cjs → chunk-CKTRA3Q2.cjs} +81 -81
  29. package/dist/{chunk-7L6KWI7S.cjs → chunk-CTTV375J.cjs} +13 -13
  30. package/dist/{chunk-2IAXTKQN.cjs → chunk-DZNWS2MM.cjs} +2 -2
  31. package/dist/{chunk-M5GPOPGX.cjs → chunk-E62LKM6Z.cjs} +2 -2
  32. package/dist/{chunk-CRFV5WJK.js → chunk-ECNYZG6T.js} +1 -1
  33. package/dist/{chunk-OVTOP42W.js → chunk-ECUGNV2I.js} +2 -58
  34. package/dist/{chunk-TZEMLHSP.cjs → chunk-EYUBL7YH.cjs} +7 -7
  35. package/dist/{chunk-OV5TRZET.cjs → chunk-FNLF6G2N.cjs} +27 -27
  36. package/dist/{chunk-SKJH7PX4.js → chunk-HZZTDM5J.js} +3 -3
  37. package/dist/{chunk-TJ2MIQUT.cjs → chunk-JRW3GQD4.cjs} +4 -4
  38. package/dist/{chunk-3K5AIEIZ.js → chunk-JYRFSFXH.js} +1 -1
  39. package/dist/{chunk-GWDI752Q.js → chunk-K6JT7BKY.js} +59 -2
  40. package/dist/{chunk-WKDBMDUX.js → chunk-K6RXCLD5.js} +1 -1
  41. package/dist/{chunk-PA6YDMFZ.cjs → chunk-K742UE6S.cjs} +13 -12
  42. package/dist/{chunk-WFMVD567.cjs → chunk-KB7EBYPR.cjs} +9 -67
  43. package/dist/{chunk-H3IVLIPR.cjs → chunk-KJB5LBFQ.cjs} +63 -4
  44. package/dist/{chunk-O4AFPDQ4.cjs → chunk-LCZZ3S4I.cjs} +49 -49
  45. package/dist/{chunk-7JCCPQEF.js → chunk-LJ5C4RBF.js} +3 -3
  46. package/dist/{chunk-EIZKW2PF.js → chunk-LY7CDNC6.js} +1 -1
  47. package/dist/{chunk-MQBT33IV.js → chunk-MGT4DJ2D.js} +1 -1
  48. package/dist/{chunk-GN4LKG4V.cjs → chunk-NIBEGDD4.cjs} +18 -18
  49. package/dist/{chunk-ZY64VJMS.js → chunk-NQF6H656.js} +2 -2
  50. package/dist/{chunk-22XKONB5.cjs → chunk-OP624LWU.cjs} +1204 -1093
  51. package/dist/{chunk-ZIT4IP6N.js → chunk-PQJIJ4ZX.js} +6 -6
  52. package/dist/{chunk-HY3AXLOI.cjs → chunk-PRXVSSIF.cjs} +13 -13
  53. package/dist/{chunk-TDV6EJHV.js → chunk-PRZOLCFW.js} +2 -2
  54. package/dist/{chunk-VM6OVUUM.cjs → chunk-QN6PZLAP.cjs} +40 -40
  55. package/dist/{chunk-UPLVMVRX.cjs → chunk-RQCXRCYM.cjs} +2 -2
  56. package/dist/{chunk-Z5G54EGD.js → chunk-SCE2GIKH.js} +5 -5
  57. package/dist/{chunk-WUQAOTHA.js → chunk-SERRQ736.js} +1 -1
  58. package/dist/{chunk-SMHQV3WL.cjs → chunk-TTOEY7AH.cjs} +496 -166
  59. package/dist/{chunk-FLUF2GZH.js → chunk-W2ZTGLUH.js} +2 -1
  60. package/dist/{chunk-JC6DLWTE.js → chunk-WQZ4AH2P.js} +1 -1
  61. package/dist/{chunk-D5FBNKQM.cjs → chunk-WXH3GMCF.cjs} +8 -8
  62. package/dist/chunk-XHPRD45G.cjs +32 -0
  63. package/dist/{chunk-THL5JDWJ.cjs → chunk-Y54WDY2O.cjs} +2 -2
  64. package/dist/{chunk-YRCKEGL2.js → chunk-YDMHG6BA.js} +1 -1
  65. package/dist/chunk-YHVA5NHI.js +2698 -0
  66. package/dist/{chunk-JXF23MPG.js → chunk-ZMIMKNSQ.js} +1 -1
  67. package/dist/cli.cjs +10 -10
  68. package/dist/cli.js +1 -1
  69. package/dist/email-queue-BJDH2ID7.cjs +29 -0
  70. package/dist/email-queue-MWP4R67H.js +8 -0
  71. package/dist/email-service-6JODEMUA.js +3 -0
  72. package/dist/email-service-VA4Q4ZRB.cjs +28 -0
  73. package/dist/emit-order-notification-trigger-I4HQSTEN.cjs +16 -0
  74. package/dist/emit-order-notification-trigger-TBXAZAPS.js +3 -0
  75. package/dist/erp-config-enabled-32XTHBBT.cjs +11 -0
  76. package/dist/erp-config-enabled-CASE5YVI.js +2 -0
  77. package/dist/erp-order-invoice-5O42ZKC5.cjs +28 -0
  78. package/dist/erp-order-invoice-JEQKFXG4.js +7 -0
  79. package/dist/{event-order-defaults-DU7V3YND.cjs → event-order-defaults-TR45WAQQ.cjs} +10 -10
  80. package/dist/{event-order-defaults-H4RT7NMR.js → event-order-defaults-VXYO6NHT.js} +2 -2
  81. package/dist/generate-local-invoice-pdf-2NCA2WBL.cjs +12 -0
  82. package/dist/generate-local-invoice-pdf-XUH6GYEJ.js +3 -0
  83. package/dist/hooks.cjs +24 -24
  84. package/dist/hooks.js +2 -2
  85. package/dist/index.cjs +504 -504
  86. package/dist/index.js +39 -39
  87. package/dist/interpolate-KD37IRF2.js +2 -0
  88. package/dist/interpolate-WP6OSJHN.cjs +11 -0
  89. package/dist/{invoice-templates-RB462AQN.cjs → invoice-templates-2ESQ7K4N.cjs} +5 -5
  90. package/dist/invoice-templates-3AXTXERZ.js +2 -0
  91. package/dist/middleware.cjs +4 -4
  92. package/dist/middleware.js +2 -2
  93. package/dist/{order-assignees-handlers-KF7RMTV5.cjs → order-assignees-handlers-E6PQZP4H.cjs} +25 -6
  94. package/dist/{order-assignees-handlers-L3RVKUBS.js → order-assignees-handlers-YCT3Q3KC.js} +23 -4
  95. package/dist/{order-completion-otp-handlers-DDQREULW.cjs → order-completion-otp-handlers-2ZKRK5SN.cjs} +25 -25
  96. package/dist/{order-completion-otp-handlers-NROWBGXN.js → order-completion-otp-handlers-KHLZQQJX.js} +12 -12
  97. package/dist/{order-inventory-76V4XIGW.js → order-inventory-R3AU6N4V.js} +2 -2
  98. package/dist/{order-inventory-2MYRKEPC.cjs → order-inventory-UUFPWLBW.cjs} +10 -10
  99. package/dist/order-notification-dispatcher-37KDVHBM.cjs +38 -0
  100. package/dist/order-notification-dispatcher-Z3MXNF4U.js +13 -0
  101. package/dist/paid-order-erp-GRXR2OG6.js +3 -0
  102. package/dist/paid-order-erp-X5QHPI23.cjs +12 -0
  103. package/dist/pg-boss-service-CMW3KQJM.js +2 -0
  104. package/dist/pg-boss-service-GA6ZVD5G.cjs +15 -0
  105. package/dist/{razorpay-U23LGY72.cjs → razorpay-GP2DXVP2.cjs} +2 -2
  106. package/dist/{razorpay-KLO2KNCB.js → razorpay-I3G5LNYH.js} +1 -1
  107. package/dist/{rbac-debug-db-DFZWZ6GV.js → rbac-debug-db-JK3U5UZK.js} +2 -2
  108. package/dist/{rbac-debug-db-KWV7D5PQ.cjs → rbac-debug-db-S3D6N6HN.cjs} +4 -4
  109. package/dist/resolve-invoice-asset-url-64QQUVC3.js +2 -0
  110. package/dist/resolve-invoice-asset-url-J7WAMD26.cjs +11 -0
  111. package/dist/retire-soft-deleted-unique-DZALT537.cjs +15 -0
  112. package/dist/{retire-soft-deleted-unique-NXQIH4BC.js → retire-soft-deleted-unique-F25KZBZK.js} +2 -2
  113. package/dist/sms-defaults-DSO3M26Y.js +2 -0
  114. package/dist/{sms-defaults-KCOPKQBA.cjs → sms-defaults-GDFILHHR.cjs} +5 -5
  115. package/dist/{sms-notification-templates-handlers-SJLO7JGZ.js → sms-notification-templates-handlers-ZGDCVS5Z.js} +1 -1
  116. package/dist/{sms-notification-templates-handlers-YSB3L2PK.cjs → sms-notification-templates-handlers-ZKLKFRFZ.cjs} +3 -3
  117. package/dist/{stripe-VU6OEG2D.cjs → stripe-2APRZHKU.cjs} +2 -2
  118. package/dist/{stripe-4FD27QVJ.js → stripe-7CO2ETTN.js} +1 -1
  119. package/dist/theme.cjs +10 -10
  120. package/dist/theme.js +3 -3
  121. package/dist/vendor-invite-status-45ZCWKCX.js +2 -0
  122. package/dist/{vendor-invite-status-77O7ZQ3U.cjs → vendor-invite-status-AT2E4FUA.cjs} +5 -5
  123. package/package.json +2 -1
  124. package/dist/chunk-SHUYVCID.js +0 -4
  125. package/dist/chunk-USNT2KNT.cjs +0 -6
  126. package/dist/chunk-Z5OB5QGN.js +0 -465
  127. package/dist/chunk-ZX5U3VCB.cjs +0 -471
  128. package/dist/email-queue-3QBQ63F7.js +0 -8
  129. package/dist/email-queue-K4E4OFI7.cjs +0 -29
  130. package/dist/email-service-5O24BSFR.cjs +0 -28
  131. package/dist/email-service-ADDF52PJ.js +0 -3
  132. package/dist/emit-order-notification-trigger-ROASTYQP.cjs +0 -16
  133. package/dist/emit-order-notification-trigger-YUQTPELC.js +0 -3
  134. package/dist/erp-config-enabled-CUMQ6N2V.cjs +0 -11
  135. package/dist/erp-config-enabled-T37X7T34.js +0 -2
  136. package/dist/erp-order-invoice-AZ5MX2JB.cjs +0 -28
  137. package/dist/erp-order-invoice-XSYHAMBS.js +0 -7
  138. package/dist/generate-local-invoice-pdf-BQTCL5MW.cjs +0 -12
  139. package/dist/generate-local-invoice-pdf-OCFG47SE.js +0 -3
  140. package/dist/interpolate-WAKPN56R.cjs +0 -11
  141. package/dist/interpolate-WDUWDF3I.js +0 -2
  142. package/dist/invoice-templates-GZ33OENC.js +0 -2
  143. package/dist/order-notification-dispatcher-6HCJ6Q75.cjs +0 -38
  144. package/dist/order-notification-dispatcher-KM2SY7TX.js +0 -13
  145. package/dist/paid-order-erp-3USEG6WL.js +0 -3
  146. package/dist/paid-order-erp-FSQ3GSXE.cjs +0 -12
  147. package/dist/pg-boss-service-BDGOKM2T.cjs +0 -15
  148. package/dist/pg-boss-service-WCBJD4JB.js +0 -2
  149. package/dist/resolve-invoice-asset-url-JEZRENJW.cjs +0 -11
  150. package/dist/resolve-invoice-asset-url-QZ2FRDHI.js +0 -2
  151. package/dist/retire-soft-deleted-unique-5VXBA5XX.cjs +0 -15
  152. package/dist/sms-defaults-2NL24H57.js +0 -2
  153. package/dist/vendor-invite-status-PWJ3DE76.js +0 -2
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
3
+ var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
4
4
 
5
5
  // src/message-templates/sms-defaults.ts
6
6
  var SMS_MESSAGE_TEMPLATE_DEFAULTS = [
@@ -24,7 +24,7 @@ var SMS_MESSAGE_TEMPLATE_DEFAULTS = [
24
24
  function getSmsTemplateDefault(templateKey) {
25
25
  return SMS_MESSAGE_TEMPLATE_DEFAULTS.find((d) => d.templateKey === templateKey);
26
26
  }
27
- chunkUSNT2KNT_cjs.__name(getSmsTemplateDefault, "getSmsTemplateDefault");
27
+ chunkXHPRD45G_cjs.__name(getSmsTemplateDefault, "getSmsTemplateDefault");
28
28
  async function resolveSmsTemplateForSend(templateKey, getRow) {
29
29
  const def = getSmsTemplateDefault(templateKey);
30
30
  if (!def) return null;
@@ -45,7 +45,7 @@ async function resolveSmsTemplateForSend(templateKey, getRow) {
45
45
  otpVarKey: otpVarKey || "var1"
46
46
  };
47
47
  }
48
- chunkUSNT2KNT_cjs.__name(resolveSmsTemplateForSend, "resolveSmsTemplateForSend");
48
+ chunkXHPRD45G_cjs.__name(resolveSmsTemplateForSend, "resolveSmsTemplateForSend");
49
49
 
50
50
  exports.SMS_MESSAGE_TEMPLATE_DEFAULTS = SMS_MESSAGE_TEMPLATE_DEFAULTS;
51
51
  exports.getSmsTemplateDefault = getSmsTemplateDefault;
@@ -1,10 +1,10 @@
1
- import { queueWhatsApp } from './chunk-GWDI752Q.js';
2
- import { notifyLog, logFcmToken, maskNotifyEmail, maskNotifyPhone, notificationTriggerEmitter } from './chunk-FLUF2GZH.js';
3
- import { applyTemplateVars } from './chunk-CRFV5WJK.js';
4
- import { sesRegionSupportsSmtp, sesSmtpHost, EmailService, renderLayout } from './chunk-6YOQ7G5O.js';
5
- import { queueEmail } from './chunk-7JCCPQEF.js';
6
- import { mergeEmailLayoutCompanyDetails } from './chunk-YRCKEGL2.js';
7
- import { __name } from './chunk-SHUYVCID.js';
1
+ import { queueWhatsApp, queueSms } from './chunk-K6JT7BKY.js';
2
+ import { notifyLog, logFcmToken, maskNotifyEmail, maskNotifyPhone, notificationTriggerEmitter } from './chunk-W2ZTGLUH.js';
3
+ import { applyTemplateVars } from './chunk-ECNYZG6T.js';
4
+ import { sesRegionSupportsSmtp, sesSmtpHost, EmailService, renderLayout } from './chunk-CFUSYGSA.js';
5
+ import { queueEmail } from './chunk-LJ5C4RBF.js';
6
+ import { mergeEmailLayoutCompanyDetails } from './chunk-YDMHG6BA.js';
7
+ import { __name } from './chunk-5BKT4CS5.js';
8
8
  import * as crypto from 'crypto';
9
9
 
10
10
  // src/lib/event-order-template-context.ts
@@ -385,7 +385,10 @@ function whatsAppConfigured(config) {
385
385
  }
386
386
  __name(whatsAppConfigured, "whatsAppConfigured");
387
387
  function normalizeWhatsAppRecipient(to) {
388
- const digits = to.replace(/\D/g, "");
388
+ let digits = to.replace(/\D/g, "");
389
+ if (digits.length === 10) {
390
+ digits = `91${digits}`;
391
+ }
389
392
  return digits;
390
393
  }
391
394
  __name(normalizeWhatsAppRecipient, "normalizeWhatsAppRecipient");
@@ -455,7 +458,7 @@ var WhatsAppService = class {
455
458
  let body = opts.body?.trim() ?? "";
456
459
  const variables = opts.variables ?? {};
457
460
  if (opts.templateKey?.trim() && this.getMessageTemplateRow) {
458
- const { resolveEventOrderTemplate, EVENT_ORDER_TEMPLATE_KEY } = await import('./event-order-defaults-H4RT7NMR.js');
461
+ const { resolveEventOrderTemplate, EVENT_ORDER_TEMPLATE_KEY } = await import('./event-order-defaults-VXYO6NHT.js');
459
462
  if (opts.templateKey.trim() === EVENT_ORDER_TEMPLATE_KEY) {
460
463
  const resolved = await resolveEventOrderTemplate("whatsapp", async (ch, key) => {
461
464
  const row = await this.getMessageTemplateRow(ch, key);
@@ -479,12 +482,11 @@ var WhatsAppService = class {
479
482
  }
480
483
  }
481
484
  }
482
- const { applyTemplateVars: applyTemplateVars2 } = await import('./interpolate-WDUWDF3I.js');
485
+ const { applyTemplateVars: applyTemplateVars2 } = await import('./interpolate-KD37IRF2.js');
483
486
  if (body) body = applyTemplateVars2(body, variables);
484
487
  if (templateName) {
485
- const paramValues = opts.templateParamOrder?.length ? opts.templateParamOrder.map((key) => String(variables[key] ?? "").slice(0, 1024)) : Object.keys(variables).length ? Object.values(variables) : body ? [
486
- body
487
- ] : [];
488
+ const isHelloWorld = templateName === "hello_world";
489
+ const paramValues = isHelloWorld ? [] : opts.templateParamOrder?.length ? opts.templateParamOrder.map((key) => String(variables[key] ?? "").replace(/[\r\n\t]+/g, " ").replace(/\s{4,}/g, " ").trim().slice(0, 1024)) : [];
488
490
  logWhatsApp("info", "sending template message", {
489
491
  to: maskPhone(to),
490
492
  templateName,
@@ -1427,6 +1429,12 @@ async function isWhatsappNotificationsEnabled(dataSource, entityMap) {
1427
1429
  return settings.whatsapp_enabled !== "false" && settings.whatsapp_enabled !== "0";
1428
1430
  }
1429
1431
  __name(isWhatsappNotificationsEnabled, "isWhatsappNotificationsEnabled");
1432
+ async function isSmsNotificationsEnabled(dataSource, entityMap) {
1433
+ const settings = await getSettingsGroup(dataSource, entityMap, "event_notifications");
1434
+ if (settings.enabled === "false" || settings.enabled === "0") return false;
1435
+ return settings.sms_enabled !== "false" && settings.sms_enabled !== "0";
1436
+ }
1437
+ __name(isSmsNotificationsEnabled, "isSmsNotificationsEnabled");
1430
1438
  async function isTriggerCatalogEnabled(triggerKey, dataSource, entityMap) {
1431
1439
  if (!entityMap.order_notification_triggers) {
1432
1440
  return true;
@@ -1615,6 +1623,22 @@ async function isAudiencePushEnabled(dataSource, entityMap, audience) {
1615
1623
  return settings[key] !== "false" && settings[key] !== "0";
1616
1624
  }
1617
1625
  __name(isAudiencePushEnabled, "isAudiencePushEnabled");
1626
+ async function isAudienceWhatsAppEnabled(dataSource, entityMap, audience) {
1627
+ const settings = await getSettingsGroup(dataSource, entityMap, "event_notifications");
1628
+ if (settings.enabled === "false" || settings.enabled === "0") return false;
1629
+ if (settings.whatsapp_enabled === "false" || settings.whatsapp_enabled === "0") return false;
1630
+ const key = `whatsapp_${audience}_enabled`;
1631
+ return settings[key] !== "false" && settings[key] !== "0";
1632
+ }
1633
+ __name(isAudienceWhatsAppEnabled, "isAudienceWhatsAppEnabled");
1634
+ async function isAudienceSmsEnabled(dataSource, entityMap, audience) {
1635
+ const settings = await getSettingsGroup(dataSource, entityMap, "event_notifications");
1636
+ if (settings.enabled === "false" || settings.enabled === "0") return false;
1637
+ if (settings.sms_enabled === "false" || settings.sms_enabled === "0") return false;
1638
+ const key = `sms_${audience}_enabled`;
1639
+ return settings[key] !== "false" && settings[key] !== "0";
1640
+ }
1641
+ __name(isAudienceSmsEnabled, "isAudienceSmsEnabled");
1618
1642
  async function sendPushNotificationForTrigger(triggerKey, orderId, audienceType, targetId, variables, dataSource, entityMap) {
1619
1643
  let template = await loadBoundTemplate(triggerKey, "mobile", audienceType, dataSource, entityMap);
1620
1644
  if (!template) {
@@ -1867,6 +1891,140 @@ async function getAdminRecipientEmails(dataSource, entityMap) {
1867
1891
  return Array.from(emails).filter((e) => !vendorEmails.has(e.toLowerCase()));
1868
1892
  }
1869
1893
  __name(getAdminRecipientEmails, "getAdminRecipientEmails");
1894
+ async function getOrderVendorPhones(orderId, orderVendorId, dataSource, entityMap) {
1895
+ const phones = /* @__PURE__ */ new Set();
1896
+ if (!entityMap.vendors) return [];
1897
+ const vendorRepo = dataSource.getRepository(entityMap.vendors);
1898
+ if (orderVendorId) {
1899
+ try {
1900
+ const v = await vendorRepo.findOne({
1901
+ where: {
1902
+ id: orderVendorId
1903
+ }
1904
+ });
1905
+ if (v) {
1906
+ const row = v;
1907
+ if (row.phone?.trim()) phones.add(row.phone.trim());
1908
+ if (row.supportPhone?.trim()) phones.add(row.supportPhone.trim());
1909
+ if (row.mobile?.trim()) phones.add(row.mobile.trim());
1910
+ }
1911
+ } catch {
1912
+ }
1913
+ }
1914
+ if (entityMap.order_items) {
1915
+ try {
1916
+ const items = await dataSource.getRepository(entityMap.order_items).find({
1917
+ where: {
1918
+ orderId
1919
+ },
1920
+ relations: [
1921
+ "product"
1922
+ ]
1923
+ });
1924
+ for (const item of items) {
1925
+ const row = item;
1926
+ const vId = row.product?.vendorId;
1927
+ if (vId && vId !== orderVendorId) {
1928
+ const v = await vendorRepo.findOne({
1929
+ where: {
1930
+ id: vId
1931
+ }
1932
+ });
1933
+ if (v) {
1934
+ const vRow = v;
1935
+ if (vRow.phone?.trim()) phones.add(vRow.phone.trim());
1936
+ if (vRow.supportPhone?.trim()) phones.add(vRow.supportPhone.trim());
1937
+ if (vRow.mobile?.trim()) phones.add(vRow.mobile.trim());
1938
+ }
1939
+ }
1940
+ }
1941
+ } catch {
1942
+ }
1943
+ }
1944
+ return Array.from(phones);
1945
+ }
1946
+ __name(getOrderVendorPhones, "getOrderVendorPhones");
1947
+ async function getAdminRecipientPhones(dataSource, entityMap) {
1948
+ const phones = /* @__PURE__ */ new Set();
1949
+ const [waSettings, smsSettings, storeSettings, brandSettings] = await Promise.all([
1950
+ getSettingsGroup(dataSource, entityMap, "whatsapp"),
1951
+ getSettingsGroup(dataSource, entityMap, "sms"),
1952
+ getSettingsGroup(dataSource, entityMap, "store"),
1953
+ getSettingsGroup(dataSource, entityMap, "branding")
1954
+ ]);
1955
+ const rawRecipients = [
1956
+ waSettings.adminPhone,
1957
+ waSettings.adminMobile,
1958
+ waSettings.salesTeamPhone,
1959
+ waSettings.fulfilmentTeamPhone,
1960
+ waSettings.phone,
1961
+ smsSettings.adminPhone,
1962
+ smsSettings.adminMobile,
1963
+ smsSettings.salesTeamPhone,
1964
+ smsSettings.fulfilmentTeamPhone,
1965
+ smsSettings.phone,
1966
+ storeSettings.phone,
1967
+ storeSettings.supportPhone,
1968
+ brandSettings.phone
1969
+ ];
1970
+ for (const raw of rawRecipients) {
1971
+ if (!raw) continue;
1972
+ const parts = String(raw).split(/[,;]/);
1973
+ for (const p of parts) {
1974
+ const trimmed = p.trim();
1975
+ if (trimmed && trimmed.length >= 7) phones.add(trimmed);
1976
+ }
1977
+ }
1978
+ if (entityMap.users) {
1979
+ try {
1980
+ const userRepo = dataSource.getRepository(entityMap.users);
1981
+ const adminUsers = await userRepo.find({
1982
+ where: [
1983
+ {
1984
+ groupId: 1,
1985
+ blocked: false
1986
+ },
1987
+ {
1988
+ adminAccess: true,
1989
+ blocked: false
1990
+ }
1991
+ ]
1992
+ });
1993
+ for (const u of adminUsers) {
1994
+ const ph = (u.phone || u.mobile || u.phoneNumber)?.trim();
1995
+ if (ph && ph.length >= 7) {
1996
+ phones.add(ph);
1997
+ }
1998
+ }
1999
+ } catch {
2000
+ }
2001
+ }
2002
+ try {
2003
+ const rows = await dataSource.query(`SELECT DISTINCT TRIM(COALESCE(phone, mobile, "phoneNumber", '')) AS phone
2004
+ FROM users
2005
+ WHERE ("groupId" = 1 OR "adminAccess" = true)
2006
+ AND COALESCE(blocked, false) = false
2007
+ AND COALESCE(deleted, false) = false
2008
+ AND "deletedAt" IS NULL`);
2009
+ for (const r of rows) {
2010
+ const ph = r.phone?.trim();
2011
+ if (ph && ph.length >= 7) {
2012
+ phones.add(ph);
2013
+ }
2014
+ }
2015
+ } catch {
2016
+ }
2017
+ const vendorPhones = /* @__PURE__ */ new Set();
2018
+ try {
2019
+ const vRows = await dataSource.query(`SELECT DISTINCT TRIM(COALESCE(phone, "supportPhone", mobile, '')) AS phone FROM vendors WHERE COALESCE(deleted, false) = false`).catch(() => []);
2020
+ for (const r of vRows) {
2021
+ if (r.phone && r.phone.length >= 7) vendorPhones.add(r.phone);
2022
+ }
2023
+ } catch {
2024
+ }
2025
+ return Array.from(phones).filter((p) => !vendorPhones.has(p));
2026
+ }
2027
+ __name(getAdminRecipientPhones, "getAdminRecipientPhones");
1870
2028
  function formatBodyForEmailHtml(body) {
1871
2029
  if (!body) return "";
1872
2030
  if (/^\s*<(html|body|table|section)[\s>]/i.test(body.trim())) {
@@ -1931,12 +2089,13 @@ async function sendEmailForTrigger(triggerKey, orderId, audienceType, variables,
1931
2089
  });
1932
2090
  }
1933
2091
  __name(sendEmailForTrigger, "sendEmailForTrigger");
1934
- async function sendWhatsAppForTrigger(triggerKey, orderId, phone, variables, dataSource, entityMap, getCms) {
1935
- const template = await loadBoundTemplate(triggerKey, "whatsapp", "customers", dataSource, entityMap);
2092
+ async function sendWhatsAppForTrigger(triggerKey, orderId, audienceType, phone, variables, dataSource, entityMap, getCms) {
2093
+ const template = await loadBoundTemplate(triggerKey, "whatsapp", audienceType, dataSource, entityMap);
1936
2094
  if (!template) {
1937
2095
  notifyLog.skip("WHATSAPP", "no bound/default WhatsApp template", {
1938
2096
  triggerKey,
1939
2097
  orderId,
2098
+ audienceType,
1940
2099
  phone: maskNotifyPhone(phone)
1941
2100
  });
1942
2101
  return;
@@ -1945,7 +2104,8 @@ async function sendWhatsAppForTrigger(triggerKey, orderId, phone, variables, dat
1945
2104
  if (paramOrder.length === 0) {
1946
2105
  notifyLog.skip("WHATSAPP", "template has no paramOrder \u2014 variables may send blank/wrong", {
1947
2106
  triggerKey,
1948
- orderId
2107
+ orderId,
2108
+ audienceType
1949
2109
  });
1950
2110
  }
1951
2111
  const cms = await getCms();
@@ -1957,6 +2117,7 @@ async function sendWhatsAppForTrigger(triggerKey, orderId, phone, variables, dat
1957
2117
  notifyLog.skip("WHATSAPP", "template has no Meta template name", {
1958
2118
  triggerKey,
1959
2119
  orderId,
2120
+ audienceType,
1960
2121
  phone: maskNotifyPhone(phone),
1961
2122
  templateId: template.id
1962
2123
  });
@@ -1975,6 +2136,7 @@ async function sendWhatsAppForTrigger(triggerKey, orderId, phone, variables, dat
1975
2136
  notifyLog.error("WHATSAPP", "send failed / not queued", {
1976
2137
  triggerKey,
1977
2138
  orderId,
2139
+ audienceType,
1978
2140
  phone: maskNotifyPhone(phone),
1979
2141
  hint: "Register whatsappPlugin() + queuePlugin() in getCms(), or set WHATSAPP_ACCESS_TOKEN and WHATSAPP_PHONE_NUMBER_ID"
1980
2142
  });
@@ -1982,12 +2144,40 @@ async function sendWhatsAppForTrigger(triggerKey, orderId, phone, variables, dat
1982
2144
  notifyLog.whatsapp("queued/sent", {
1983
2145
  triggerKey,
1984
2146
  orderId,
2147
+ audienceType,
1985
2148
  phone: maskNotifyPhone(phone),
1986
2149
  metaTemplateName
1987
2150
  });
1988
2151
  }
1989
2152
  }
1990
2153
  __name(sendWhatsAppForTrigger, "sendWhatsAppForTrigger");
2154
+ async function sendSmsForTrigger(triggerKey, orderId, audienceType, phone, variables, dataSource, entityMap, getCms) {
2155
+ const template = await loadBoundTemplate(triggerKey, "sms", audienceType, dataSource, entityMap);
2156
+ if (!template || !template.body) {
2157
+ notifyLog.skip("SMS", "no bound/default SMS template", {
2158
+ triggerKey,
2159
+ orderId,
2160
+ audienceType,
2161
+ phone: maskNotifyPhone(phone)
2162
+ });
2163
+ return;
2164
+ }
2165
+ const rawBody = applyTemplateVars(template.body, variables);
2166
+ const cms = await getCms();
2167
+ await queueSms(cms, {
2168
+ to: phone.trim(),
2169
+ body: rawBody,
2170
+ templateKey: template.externalTemplateRef || template.name || triggerKey,
2171
+ variables
2172
+ });
2173
+ notifyLog.sms("queued/sent", {
2174
+ triggerKey,
2175
+ audienceType,
2176
+ orderId,
2177
+ phone: maskNotifyPhone(phone)
2178
+ });
2179
+ }
2180
+ __name(sendSmsForTrigger, "sendSmsForTrigger");
1991
2181
  async function handleTrigger(triggerKey, payload, dataSource, entityMap, getCms) {
1992
2182
  notifyLog.trigger("dispatcher received", {
1993
2183
  triggerKey,
@@ -1996,20 +2186,22 @@ async function handleTrigger(triggerKey, payload, dataSource, entityMap, getCms)
1996
2186
  phone: maskNotifyPhone(payload.customerPhone),
1997
2187
  vendorId: payload.vendorId ?? null
1998
2188
  });
1999
- const [emailChannelEnabled, whatsappChannelEnabled, pushChannelEnabled] = await Promise.all([
2189
+ const [emailChannelEnabled, whatsappChannelEnabled, pushChannelEnabled, smsChannelEnabled] = await Promise.all([
2000
2190
  isEmailNotificationsEnabled(dataSource, entityMap),
2001
2191
  isWhatsappNotificationsEnabled(dataSource, entityMap),
2002
- isPushNotificationsEnabled(dataSource, entityMap)
2192
+ isPushNotificationsEnabled(dataSource, entityMap),
2193
+ isSmsNotificationsEnabled(dataSource, entityMap)
2003
2194
  ]);
2004
2195
  notifyLog.trigger("channel switches", {
2005
2196
  triggerKey,
2006
2197
  orderId: payload.orderId,
2007
2198
  email: emailChannelEnabled,
2008
2199
  whatsapp: whatsappChannelEnabled,
2009
- push: pushChannelEnabled
2200
+ push: pushChannelEnabled,
2201
+ sms: smsChannelEnabled
2010
2202
  });
2011
- if (!emailChannelEnabled && !whatsappChannelEnabled && !pushChannelEnabled) {
2012
- notifyLog.skip("ALL", "Email, WhatsApp, and Mobile Push are disabled in event_notifications", {
2203
+ if (!emailChannelEnabled && !whatsappChannelEnabled && !pushChannelEnabled && !smsChannelEnabled) {
2204
+ notifyLog.skip("ALL", "Email, WhatsApp, Mobile Push, and SMS are disabled in event_notifications", {
2013
2205
  triggerKey,
2014
2206
  orderId: payload.orderId
2015
2207
  });
@@ -2156,21 +2348,155 @@ async function handleTrigger(triggerKey, payload, dataSource, entityMap, getCms)
2156
2348
  });
2157
2349
  }
2158
2350
  if (whatsappChannelEnabled) {
2159
- const targetPhone = triggerKey === "order_assigned_assignee" ? context?.order?.assignedUser?.phone?.trim() : contactPhone;
2160
- if (targetPhone) {
2161
- await sendWhatsAppForTrigger(triggerKey, payload.orderId, targetPhone, variables, dataSource, entityMap, getCms);
2351
+ const [waCustomerEnabled, waVendorEnabled, waAdminEnabled] = await Promise.all([
2352
+ isAudienceWhatsAppEnabled(dataSource, entityMap, "customer"),
2353
+ isAudienceWhatsAppEnabled(dataSource, entityMap, "vendor"),
2354
+ isAudienceWhatsAppEnabled(dataSource, entityMap, "admin")
2355
+ ]);
2356
+ notifyLog.whatsapp("audience switches", {
2357
+ triggerKey,
2358
+ orderId: payload.orderId,
2359
+ customer: waCustomerEnabled,
2360
+ vendor: waVendorEnabled,
2361
+ admin: waAdminEnabled
2362
+ });
2363
+ if (triggerKey === "order_assigned_assignee") {
2364
+ const assigneePhone = context?.order?.assignedUser?.phone?.trim();
2365
+ if (assigneePhone) {
2366
+ await sendWhatsAppForTrigger(triggerKey, payload.orderId, "customers", assigneePhone, variables, dataSource, entityMap, getCms);
2367
+ } else {
2368
+ notifyLog.skip("WHATSAPP", "order_assigned_assignee has no assignee phone", {
2369
+ triggerKey,
2370
+ orderId: payload.orderId
2371
+ });
2372
+ }
2373
+ } else if (waCustomerEnabled && contactPhone) {
2374
+ await sendWhatsAppForTrigger(triggerKey, payload.orderId, "customers", contactPhone, variables, dataSource, entityMap, getCms);
2375
+ } else if (!waCustomerEnabled) {
2376
+ notifyLog.skip("WHATSAPP", "customer WhatsApp audience disabled", {
2377
+ triggerKey,
2378
+ orderId: payload.orderId
2379
+ });
2162
2380
  } else {
2163
- notifyLog.skip("WHATSAPP", "no recipient phone", {
2381
+ notifyLog.skip("WHATSAPP", "no customer phone on order contact", {
2164
2382
  triggerKey,
2165
2383
  orderId: payload.orderId
2166
2384
  });
2167
2385
  }
2386
+ if (waVendorEnabled && triggerKey !== "order_assigned_assignee") {
2387
+ const multiVendorSettings = await getSettingsGroup(dataSource, entityMap, "multi_vendor");
2388
+ if (multiVendorSettings.enabled !== "false" && multiVendorSettings.enabled !== "0") {
2389
+ const vendorPhones = await getOrderVendorPhones(payload.orderId, payload.vendorId, dataSource, entityMap);
2390
+ if (vendorPhones.length === 0) {
2391
+ notifyLog.skip("WHATSAPP", "no vendor phones for order", {
2392
+ triggerKey,
2393
+ orderId: payload.orderId,
2394
+ vendorId: payload.vendorId ?? null
2395
+ });
2396
+ }
2397
+ for (const vPhone of vendorPhones) {
2398
+ await sendWhatsAppForTrigger(triggerKey, payload.orderId, "vendors", vPhone, variables, dataSource, entityMap, getCms);
2399
+ }
2400
+ } else {
2401
+ notifyLog.skip("WHATSAPP", "multi-vendor off \u2014 skip vendor WhatsApp", {
2402
+ triggerKey,
2403
+ orderId: payload.orderId
2404
+ });
2405
+ }
2406
+ }
2407
+ if (waAdminEnabled && triggerKey !== "order_assigned_assignee") {
2408
+ const adminPhones = await getAdminRecipientPhones(dataSource, entityMap);
2409
+ if (adminPhones.length === 0) {
2410
+ notifyLog.skip("WHATSAPP", "no admin recipient phones", {
2411
+ triggerKey,
2412
+ orderId: payload.orderId
2413
+ });
2414
+ }
2415
+ for (const aPhone of adminPhones) {
2416
+ await sendWhatsAppForTrigger(triggerKey, payload.orderId, "admin", aPhone, variables, dataSource, entityMap, getCms);
2417
+ }
2418
+ }
2168
2419
  } else {
2169
2420
  notifyLog.skip("WHATSAPP", "WhatsApp channel disabled", {
2170
2421
  triggerKey,
2171
2422
  orderId: payload.orderId
2172
2423
  });
2173
2424
  }
2425
+ if (smsChannelEnabled) {
2426
+ const [smsCustomerEnabled, smsVendorEnabled, smsAdminEnabled] = await Promise.all([
2427
+ isAudienceSmsEnabled(dataSource, entityMap, "customer"),
2428
+ isAudienceSmsEnabled(dataSource, entityMap, "vendor"),
2429
+ isAudienceSmsEnabled(dataSource, entityMap, "admin")
2430
+ ]);
2431
+ notifyLog.sms("audience switches", {
2432
+ triggerKey,
2433
+ orderId: payload.orderId,
2434
+ customer: smsCustomerEnabled,
2435
+ vendor: smsVendorEnabled,
2436
+ admin: smsAdminEnabled
2437
+ });
2438
+ if (triggerKey === "order_assigned_assignee") {
2439
+ const assigneePhone = context?.order?.assignedUser?.phone?.trim();
2440
+ if (assigneePhone) {
2441
+ await sendSmsForTrigger(triggerKey, payload.orderId, "customers", assigneePhone, variables, dataSource, entityMap, getCms);
2442
+ } else {
2443
+ notifyLog.skip("SMS", "order_assigned_assignee has no assignee phone", {
2444
+ triggerKey,
2445
+ orderId: payload.orderId
2446
+ });
2447
+ }
2448
+ } else if (smsCustomerEnabled && contactPhone) {
2449
+ await sendSmsForTrigger(triggerKey, payload.orderId, "customers", contactPhone, variables, dataSource, entityMap, getCms);
2450
+ } else if (!smsCustomerEnabled) {
2451
+ notifyLog.skip("SMS", "customer SMS audience disabled", {
2452
+ triggerKey,
2453
+ orderId: payload.orderId
2454
+ });
2455
+ } else {
2456
+ notifyLog.skip("SMS", "no customer phone on order contact", {
2457
+ triggerKey,
2458
+ orderId: payload.orderId
2459
+ });
2460
+ }
2461
+ if (smsVendorEnabled && triggerKey !== "order_assigned_assignee") {
2462
+ const multiVendorSettings = await getSettingsGroup(dataSource, entityMap, "multi_vendor");
2463
+ if (multiVendorSettings.enabled !== "false" && multiVendorSettings.enabled !== "0") {
2464
+ const vendorPhones = await getOrderVendorPhones(payload.orderId, payload.vendorId, dataSource, entityMap);
2465
+ if (vendorPhones.length === 0) {
2466
+ notifyLog.skip("SMS", "no vendor phones for order", {
2467
+ triggerKey,
2468
+ orderId: payload.orderId,
2469
+ vendorId: payload.vendorId ?? null
2470
+ });
2471
+ }
2472
+ for (const vPhone of vendorPhones) {
2473
+ await sendSmsForTrigger(triggerKey, payload.orderId, "vendors", vPhone, variables, dataSource, entityMap, getCms);
2474
+ }
2475
+ } else {
2476
+ notifyLog.skip("SMS", "multi-vendor off \u2014 skip vendor SMS", {
2477
+ triggerKey,
2478
+ orderId: payload.orderId
2479
+ });
2480
+ }
2481
+ }
2482
+ if (smsAdminEnabled && triggerKey !== "order_assigned_assignee") {
2483
+ const adminPhones = await getAdminRecipientPhones(dataSource, entityMap);
2484
+ if (adminPhones.length === 0) {
2485
+ notifyLog.skip("SMS", "no admin recipient phones", {
2486
+ triggerKey,
2487
+ orderId: payload.orderId
2488
+ });
2489
+ }
2490
+ for (const aPhone of adminPhones) {
2491
+ await sendSmsForTrigger(triggerKey, payload.orderId, "admin", aPhone, variables, dataSource, entityMap, getCms);
2492
+ }
2493
+ }
2494
+ } else {
2495
+ notifyLog.skip("SMS", "SMS channel disabled", {
2496
+ triggerKey,
2497
+ orderId: payload.orderId
2498
+ });
2499
+ }
2174
2500
  }
2175
2501
  __name(handleTrigger, "handleTrigger");
2176
2502
  var globalGetCms = null;
@@ -2181,6 +2507,8 @@ function initWhatsappTriggerDispatcher(deps) {
2181
2507
  const { dataSource, entityMap, getCms } = deps;
2182
2508
  void dataSource.query(`ALTER TYPE "order_notification_bindings_channel_enum" ADD VALUE IF NOT EXISTS 'mobile'`).catch(() => {
2183
2509
  });
2510
+ void dataSource.query(`ALTER TYPE "order_notification_bindings_channel_enum" ADD VALUE IF NOT EXISTS 'sms'`).catch(() => {
2511
+ });
2184
2512
  notificationTriggerEmitter.onAnyTrigger((triggerKey, payload) => {
2185
2513
  void handleTrigger(triggerKey, payload, dataSource, entityMap, getCms).catch((err) => {
2186
2514
  notifyLog.error("TRIGGER", "dispatcher handleTrigger failed", {
@@ -2195,7 +2523,8 @@ function initWhatsappTriggerDispatcher(deps) {
2195
2523
  channels: [
2196
2524
  "email",
2197
2525
  "whatsapp",
2198
- "push"
2526
+ "push",
2527
+ "sms"
2199
2528
  ]
2200
2529
  });
2201
2530
  }
@@ -2212,14 +2541,15 @@ async function resendOrderNotification(triggerKey, orderId, deps) {
2212
2541
  ok: false,
2213
2542
  error: "orders entity missing"
2214
2543
  };
2215
- const [emailEnabled, whatsappEnabled] = await Promise.all([
2544
+ const [emailEnabled, whatsappEnabled, smsEnabled] = await Promise.all([
2216
2545
  isEmailNotificationsEnabled(deps.dataSource, deps.entityMap),
2217
- isWhatsappNotificationsEnabled(deps.dataSource, deps.entityMap)
2546
+ isWhatsappNotificationsEnabled(deps.dataSource, deps.entityMap),
2547
+ isSmsNotificationsEnabled(deps.dataSource, deps.entityMap)
2218
2548
  ]);
2219
- if (!emailEnabled && !whatsappEnabled) {
2549
+ if (!emailEnabled && !whatsappEnabled && !smsEnabled) {
2220
2550
  return {
2221
2551
  ok: false,
2222
- error: "Both Email and WhatsApp notifications are disabled"
2552
+ error: "Email, WhatsApp, and SMS notifications are all disabled"
2223
2553
  };
2224
2554
  }
2225
2555
  const triggerEnabled = await isTriggerCatalogEnabled(triggerKey, deps.dataSource, deps.entityMap);
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
3
+ var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
4
4
 
5
5
  // src/lib/vendor-invite-status.ts
6
6
  function inviteStatusForActivation(activation) {
7
7
  return activation === "invite" ? "pending" : "accepted";
8
8
  }
9
- chunkUSNT2KNT_cjs.__name(inviteStatusForActivation, "inviteStatusForActivation");
9
+ chunkXHPRD45G_cjs.__name(inviteStatusForActivation, "inviteStatusForActivation");
10
10
  async function markVendorInviteAcceptedForUser(dataSource, vendorEntity, userId) {
11
11
  await dataSource.getRepository(vendorEntity).update({
12
12
  userId
@@ -14,7 +14,7 @@ async function markVendorInviteAcceptedForUser(dataSource, vendorEntity, userId)
14
14
  inviteStatus: "accepted"
15
15
  });
16
16
  }
17
- chunkUSNT2KNT_cjs.__name(markVendorInviteAcceptedForUser, "markVendorInviteAcceptedForUser");
17
+ chunkXHPRD45G_cjs.__name(markVendorInviteAcceptedForUser, "markVendorInviteAcceptedForUser");
18
18
  async function markVendorInvitePendingForUser(dataSource, vendorEntity, userId) {
19
19
  await dataSource.getRepository(vendorEntity).update({
20
20
  userId
@@ -22,7 +22,7 @@ async function markVendorInvitePendingForUser(dataSource, vendorEntity, userId)
22
22
  inviteStatus: "pending"
23
23
  });
24
24
  }
25
- chunkUSNT2KNT_cjs.__name(markVendorInvitePendingForUser, "markVendorInvitePendingForUser");
25
+ chunkXHPRD45G_cjs.__name(markVendorInvitePendingForUser, "markVendorInvitePendingForUser");
26
26
 
27
27
  exports.inviteStatusForActivation = inviteStatusForActivation;
28
28
  exports.markVendorInviteAcceptedForUser = markVendorInviteAcceptedForUser;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
3
+ var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
4
4
 
5
5
  // src/lib/invoice/resolve-invoice-asset-url.ts
6
6
  function resolveInvoiceAssetUrl(raw) {
@@ -13,6 +13,6 @@ function resolveInvoiceAssetUrl(raw) {
13
13
  if (t.startsWith("/")) return `${base}${t}`;
14
14
  return `${base}/${t}`;
15
15
  }
16
- chunkUSNT2KNT_cjs.__name(resolveInvoiceAssetUrl, "resolveInvoiceAssetUrl");
16
+ chunkXHPRD45G_cjs.__name(resolveInvoiceAssetUrl, "resolveInvoiceAssetUrl");
17
17
 
18
18
  exports.resolveInvoiceAssetUrl = resolveInvoiceAssetUrl;