@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
package/dist/index.js CHANGED
@@ -1,38 +1,38 @@
1
- export { emitOrderNotificationTrigger, fireOrderNotificationTrigger } from './chunk-SKJH7PX4.js';
2
- import { checkMultiVendorEnabled, loadUserVendorContext, getPublicSettingsGroup, BlogGeneratorService } from './chunk-MYUGQHU4.js';
3
- export { Address, Attendee, Attribute, BLOG_GENERATOR_AGENT_NAME, BLOG_GENERATOR_DEFAULT_SYSTEM_INSTRUCTION, BLOG_GENERATOR_DEFAULT_VALIDATION_RULES, BLOG_GENERATOR_LLM_AGENT_SLUG, BLOG_GENERATOR_MARKDOWN_ARTICLE_SEPARATOR, BLOG_METADATA_ENRICHER_AGENT_NAME, BLOG_METADATA_ENRICHER_DEFAULT_SYSTEM_INSTRUCTION, BLOG_METADATA_ENRICHER_DEFAULT_VALIDATION_RULES, BLOG_METADATA_ENRICHER_LLM_AGENT_SLUG, Blog, BlogGeneratorService, Brand, CMS_ENTITY_MAP, Cart, CartItem, Category, ChatConversation, ChatMessage, Collection, Combo, ComboItem, Comment, Config, Contact, Currency, CurrencyExchange, Customer, Customer_Contacts, Discount, DiscountRules, Event, EventProduct, Form, FormField, FormSubmission, JobSchedule, JobScheduleRun, KnowledgeBaseChunk, KnowledgeBaseDocument, LlmAgent, LlmAgentKnowledgeDocument, Media, MessageTemplate, Order, OrderAddresses, OrderAssignee, OrderDiscounts, OrderItem, OrderNotificationBinding, OrderNotificationTrigger, OtpChallenge, Page, PasswordResetToken, Payment, Permission, Product, ProductAttribute, ProductCategory, ProductConfig, ProductVariant, RefundPolicy, RefundRequest, RssArticle, RssFeed, Seo, Tag, Tax, User, UserDeviceToken, UserGroup, Vendor, VendorCustomer, VendorRole, VendorRolePermission, VendorUser, VendorUserProfile, Wishlist, WishlistItem, ZIP_MIME_TYPES, applyApprovalStatusSideEffects, applyEventApprovalStatusSideEffects, applyRotatingVendorInvite, applyVendorCustomersContactFilter, applyVendorEventCreateApproval, applyVendorProductCreateApproval, assertCaptchaOk, assertContactAllowedForVendorOrder, assertEventApprovalUpdate, assertProductApprovalUpdate, autoExpireOrderIfPaymentTimeExceeded, buildBlogMetadataUserPrompt, buildCronFromSchedule, buildRssUserPromptFromFeeds, buildUserInviteLink, buildVendorInviteLink, calculateOrderRefundPreview, calculateRefundFromPolicy, checkAndIncrementDiscountUsage, checkEventsEnabled, checkMultiVendorEnabled, completeUserInviteAccept, consumeAppliedDiscountUsages, contactIsVendorCustomer, countDiscountOrdersForContact, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, daysBeforeEventStart, decrementDiscountUsage, describeEventTierPolicy, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, formatTierRange, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRssArticleSummaryFromItem, getVendorCatalogCreateFlags, hydrateVendorSessionUser, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isZipMedia, llmAgentToChatAgentOptions, loadSettingsGroupFromDb, loadUserVendorContext, mergeGuardrailsIntoSystemPrompt, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, normalizeRefundTiers, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseLlmAgentValidationRules, pgBossScheduleNameForId, queueErpCreateContactIfEnabled, queueJobScheduleNow, queuePlugin, recordDiscountUsage, registerJobRunnerWorker, registerMessagingQueueProcessors, relativePathFromMediaParentId, resolveBlogCategoryIdByName, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, sanitizeMediaFolderPath, sanitizeStorageSegment, sendVendorOnboardEmails, simpleDecrypt, simpleEncrypt, syncJobScheduleToPgBoss, validateRefundTiers, validateScheduleInput, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, whatsappPlugin, wrapGetCmsWithMessaging } from './chunk-MYUGQHU4.js';
4
- import './chunk-JXF23MPG.js';
5
- export { countRecentOtpSends, createOtpChallenge, generateNumericOtp, hashOtpCode, normalizePhoneE164, queueSms, registerSmsQueueProcessor, verifyAndConsumeOtpChallenge, verifyOtpCodeHash } from './chunk-OVTOP42W.js';
6
- export { EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS, EVENT_ORDER_TEMPLATE_KEY, EVENT_ORDER_TEMPLATE_VARIABLES, resolveEventOrderTemplate } from './chunk-AYERBA7I.js';
7
- import { PgBossService } from './chunk-XJNNOSJR.js';
8
- export { JOB_RUNNER_QUEUE, PgBossService } from './chunk-XJNNOSJR.js';
9
- export { deductInventoryForConfirmedOrder, mergeInventoryLines, orderInventorySnapshotFromRow, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, restoreInventoryForCancelledOrder, validateInventoryForConfirmedOrderLines, validateInventoryForOrderBecomingConfirmed } from './chunk-3K5AIEIZ.js';
10
- import { parseEmailRecipientsFromConfig } from './chunk-N4LBZXBG.js';
11
- export { buildEventOrderTemplateVariables, emailPlugin, initWhatsappTriggerDispatcher, joinRecipientsForSend, parseEmailRecipientsFromConfig, resendOrderNotification, serializeEmailRecipients } from './chunk-N4LBZXBG.js';
12
- export { queueWhatsApp, registerWhatsAppQueueProcessor } from './chunk-GWDI752Q.js';
13
- export { KNOWN_NOTIFICATION_TRIGGERS, notificationTriggerEmitter } from './chunk-FLUF2GZH.js';
14
- import './chunk-CRFV5WJK.js';
15
- export { EmailService, emailTemplates, renderEmail, renderLayout } from './chunk-6YOQ7G5O.js';
16
- import { queueOrderPlacedEmails } from './chunk-7JCCPQEF.js';
17
- export { queueEmail, queueOrderPlacedEmails, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-7JCCPQEF.js';
18
- export { buildLocalInvoicePdfForOrder, isOrderEligibleForInvoiceEmail, resolveOrderInvoicePdfBytes, streamOrderInvoicePdf } from './chunk-ZIT4IP6N.js';
19
- import './chunk-JC6DLWTE.js';
20
- export { generateLocalInvoicePdf } from './chunk-Z5OB5QGN.js';
21
- export { INVOICE_TEMPLATE_IDS, INVOICE_TEMPLATE_OPTIONS, normalizeInvoiceTemplateId } from './chunk-WKDBMDUX.js';
22
- export { resolveInvoiceAssetUrl } from './chunk-IKTBZJHT.js';
23
- import { mergeEmailLayoutCompanyDetails } from './chunk-YRCKEGL2.js';
24
- export { getCompanyDetailsFromSettings, mergeEmailLayoutCompanyDetails } from './chunk-YRCKEGL2.js';
25
- import './chunk-MQBT33IV.js';
26
- export { AUTH_PROVIDERS_SETTINGS_GROUP, buildNextAuthOptions, buildStorefrontNextAuthOptions, createCustomerUserFromGoogleOAuth, getNextAuthOptions, getStorefrontNextAuthOptions, googleOAuthRedirectUri, isGoogleAuthPubliclyEnabled, resolveGoogleAuthConfig, seedAdministratorPermissions } from './chunk-Z5G54EGD.js';
27
- export { OPEN_ENDPOINTS, PERMISSION_REQUIRED_ENDPOINTS, RBAC_ADMIN_ONLY_ENTITIES, canManageRoles, createAuthHelpers, createCmsAuthBundle, customerPhoneForEmail, customerPhoneForUser, ensureCustomerForUser, ensureCustomerRecord, getRequiredPermission, isOpenEndpoint, isPublicMethod, isSyntheticCustomerPhone, linkUnclaimedContactToUser, normalizeCustomerPhone, sessionHasEntityAccess } from './chunk-ZY64VJMS.js';
28
- import { isSuperAdmin, isVendorGroupName } from './chunk-5NOZSG6J.js';
29
- export { ADMIN_GROUP_NAME, SUPER_ADMIN_GROUP_ID, VENDOR_ADMIN_GROUP_ID, VENDOR_GROUP_NAME, VENDOR_OWNER_GROUP_NAME, VENDOR_SCOPED_STORE_ENTITIES, VENDOR_STORE_RBAC_ENTITIES, canManageVendorRoles, canManageVendorTeam, canOnboardVendors, explainSessionEntityAccess, getPermissionableEntityKeys, hasEntityPermission, isPlatformAdministrator, isRbacDebugEnabled, isSuperAdmin, isSuperAdminGroupName, isVendorAdmin, isVendorGroupName, isVendorOwner, isVendorPortalUser, isVendorStaff, logEntityAccessDecision, logRbac, permissionRowsToRecord, resolveVendorScopeFromSessionUser, summarizeEntityPerms, vendorPortalFlagsFromUser } from './chunk-5NOZSG6J.js';
30
- export { activeUniqueValueExists, retireSoftDeletedUniqueValue } from './chunk-DBPSJYLZ.js';
31
- export { createCmsMiddleware, defaultPublicApiMethods, isAuthDebugClientEnabled, isAuthDebugEnabled, logAuth, logAuthClient, nextAuthCookieDebugInfo, summarizeSessionUserForLog } from './chunk-WUQAOTHA.js';
32
- export { queueErpPaidOrderForOrderId } from './chunk-TDV6EJHV.js';
33
- import { erpSafeWebhookUrl, logErp, warnErp, errorErp } from './chunk-SYBOCAWB.js';
34
- export { queueErp, registerErpQueueProcessor } from './chunk-SYBOCAWB.js';
35
- import { __name } from './chunk-SHUYVCID.js';
1
+ export { emitOrderNotificationTrigger, fireOrderNotificationTrigger } from './chunk-HZZTDM5J.js';
2
+ import { checkMultiVendorEnabled, loadUserVendorContext, getPublicSettingsGroup, BlogGeneratorService } from './chunk-7NQMGB2S.js';
3
+ export { Address, Attendee, Attribute, BLOG_GENERATOR_AGENT_NAME, BLOG_GENERATOR_DEFAULT_SYSTEM_INSTRUCTION, BLOG_GENERATOR_DEFAULT_VALIDATION_RULES, BLOG_GENERATOR_LLM_AGENT_SLUG, BLOG_GENERATOR_MARKDOWN_ARTICLE_SEPARATOR, BLOG_METADATA_ENRICHER_AGENT_NAME, BLOG_METADATA_ENRICHER_DEFAULT_SYSTEM_INSTRUCTION, BLOG_METADATA_ENRICHER_DEFAULT_VALIDATION_RULES, BLOG_METADATA_ENRICHER_LLM_AGENT_SLUG, Blog, BlogGeneratorService, Brand, CMS_ENTITY_MAP, Cart, CartItem, Category, ChatConversation, ChatMessage, Collection, Combo, ComboItem, Comment, Config, Contact, Currency, CurrencyExchange, Customer, Customer_Contacts, Discount, DiscountRules, Event, EventProduct, Form, FormField, FormSubmission, JobSchedule, JobScheduleRun, KnowledgeBaseChunk, KnowledgeBaseDocument, LlmAgent, LlmAgentKnowledgeDocument, Media, MessageTemplate, Order, OrderAddresses, OrderAssignee, OrderDiscounts, OrderItem, OrderNotificationBinding, OrderNotificationTrigger, OtpChallenge, Page, PasswordResetToken, Payment, Permission, Product, ProductAttribute, ProductCategory, ProductConfig, ProductVariant, RefundPolicy, RefundRequest, RssArticle, RssFeed, Seo, Tag, Tax, User, UserDeviceToken, UserGroup, Vendor, VendorCustomer, VendorRole, VendorRolePermission, VendorUser, VendorUserProfile, Wishlist, WishlistItem, ZIP_MIME_TYPES, applyApprovalStatusSideEffects, applyEventApprovalStatusSideEffects, applyRotatingVendorInvite, applyVendorCustomersContactFilter, applyVendorEventCreateApproval, applyVendorProductCreateApproval, assertCaptchaOk, assertContactAllowedForVendorOrder, assertEventApprovalUpdate, assertProductApprovalUpdate, autoExpireOrderIfPaymentTimeExceeded, buildBlogMetadataUserPrompt, buildCronFromSchedule, buildRssUserPromptFromFeeds, buildUserInviteLink, buildVendorInviteLink, calculateOrderRefundPreview, calculateRefundFromPolicy, checkAndIncrementDiscountUsage, checkEventsEnabled, checkMultiVendorEnabled, completeUserInviteAccept, consumeAppliedDiscountUsages, contactIsVendorCustomer, countDiscountOrdersForContact, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, daysBeforeEventStart, decrementDiscountUsage, describeEventTierPolicy, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, formatTierRange, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRssArticleSummaryFromItem, getVendorCatalogCreateFlags, hydrateVendorSessionUser, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isZipMedia, llmAgentToChatAgentOptions, loadSettingsGroupFromDb, loadUserVendorContext, mergeGuardrailsIntoSystemPrompt, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, normalizeRefundTiers, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseLlmAgentValidationRules, pgBossScheduleNameForId, queueErpCreateContactIfEnabled, queueJobScheduleNow, queuePlugin, recordDiscountUsage, registerJobRunnerWorker, registerMessagingQueueProcessors, relativePathFromMediaParentId, resolveBlogCategoryIdByName, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, sanitizeMediaFolderPath, sanitizeStorageSegment, sendVendorOnboardEmails, simpleDecrypt, simpleEncrypt, syncJobScheduleToPgBoss, validateRefundTiers, validateScheduleInput, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, whatsappPlugin, wrapGetCmsWithMessaging } from './chunk-7NQMGB2S.js';
4
+ import { parseEmailRecipientsFromConfig } from './chunk-3LF4RYAJ.js';
5
+ export { buildEventOrderTemplateVariables, emailPlugin, initWhatsappTriggerDispatcher, joinRecipientsForSend, parseEmailRecipientsFromConfig, resendOrderNotification, serializeEmailRecipients } from './chunk-3LF4RYAJ.js';
6
+ export { countRecentOtpSends, createOtpChallenge, generateNumericOtp, hashOtpCode, normalizePhoneE164, verifyAndConsumeOtpChallenge, verifyOtpCodeHash } from './chunk-ECUGNV2I.js';
7
+ export { queueSms, queueWhatsApp, registerSmsQueueProcessor, registerWhatsAppQueueProcessor } from './chunk-K6JT7BKY.js';
8
+ export { KNOWN_NOTIFICATION_TRIGGERS, notificationTriggerEmitter } from './chunk-W2ZTGLUH.js';
9
+ import './chunk-ECNYZG6T.js';
10
+ import './chunk-ZMIMKNSQ.js';
11
+ export { EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS, EVENT_ORDER_TEMPLATE_KEY, EVENT_ORDER_TEMPLATE_VARIABLES, resolveEventOrderTemplate } from './chunk-5NVGWJSY.js';
12
+ import { PgBossService } from './chunk-2BNVRFUQ.js';
13
+ export { JOB_RUNNER_QUEUE, PgBossService } from './chunk-2BNVRFUQ.js';
14
+ export { deductInventoryForConfirmedOrder, mergeInventoryLines, orderInventorySnapshotFromRow, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, restoreInventoryForCancelledOrder, validateInventoryForConfirmedOrderLines, validateInventoryForOrderBecomingConfirmed } from './chunk-JYRFSFXH.js';
15
+ export { EmailService, emailTemplates, renderEmail, renderLayout } from './chunk-CFUSYGSA.js';
16
+ import { queueOrderPlacedEmails } from './chunk-LJ5C4RBF.js';
17
+ export { queueEmail, queueOrderPlacedEmails, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-LJ5C4RBF.js';
18
+ export { buildLocalInvoicePdfForOrder, isOrderEligibleForInvoiceEmail, resolveOrderInvoicePdfBytes, streamOrderInvoicePdf } from './chunk-PQJIJ4ZX.js';
19
+ import './chunk-WQZ4AH2P.js';
20
+ export { generateLocalInvoicePdf } from './chunk-YHVA5NHI.js';
21
+ export { INVOICE_TEMPLATE_IDS, INVOICE_TEMPLATE_OPTIONS, normalizeInvoiceTemplateId } from './chunk-K6RXCLD5.js';
22
+ export { resolveInvoiceAssetUrl } from './chunk-5DSY3GQI.js';
23
+ import { mergeEmailLayoutCompanyDetails } from './chunk-YDMHG6BA.js';
24
+ export { getCompanyDetailsFromSettings, mergeEmailLayoutCompanyDetails } from './chunk-YDMHG6BA.js';
25
+ import './chunk-MGT4DJ2D.js';
26
+ export { AUTH_PROVIDERS_SETTINGS_GROUP, buildNextAuthOptions, buildStorefrontNextAuthOptions, createCustomerUserFromGoogleOAuth, getNextAuthOptions, getStorefrontNextAuthOptions, googleOAuthRedirectUri, isGoogleAuthPubliclyEnabled, resolveGoogleAuthConfig, seedAdministratorPermissions } from './chunk-SCE2GIKH.js';
27
+ export { OPEN_ENDPOINTS, PERMISSION_REQUIRED_ENDPOINTS, RBAC_ADMIN_ONLY_ENTITIES, canManageRoles, createAuthHelpers, createCmsAuthBundle, customerPhoneForEmail, customerPhoneForUser, ensureCustomerForUser, ensureCustomerRecord, getRequiredPermission, isOpenEndpoint, isPublicMethod, isSyntheticCustomerPhone, linkUnclaimedContactToUser, normalizeCustomerPhone, sessionHasEntityAccess } from './chunk-NQF6H656.js';
28
+ import { isSuperAdmin, isVendorGroupName } from './chunk-CJY2HUJC.js';
29
+ export { ADMIN_GROUP_NAME, SUPER_ADMIN_GROUP_ID, VENDOR_ADMIN_GROUP_ID, VENDOR_GROUP_NAME, VENDOR_OWNER_GROUP_NAME, VENDOR_SCOPED_STORE_ENTITIES, VENDOR_STORE_RBAC_ENTITIES, canManageVendorRoles, canManageVendorTeam, canOnboardVendors, explainSessionEntityAccess, getPermissionableEntityKeys, hasEntityPermission, isPlatformAdministrator, isRbacDebugEnabled, isSuperAdmin, isSuperAdminGroupName, isVendorAdmin, isVendorGroupName, isVendorOwner, isVendorPortalUser, isVendorStaff, logEntityAccessDecision, logRbac, permissionRowsToRecord, resolveVendorScopeFromSessionUser, summarizeEntityPerms, vendorPortalFlagsFromUser } from './chunk-CJY2HUJC.js';
30
+ export { activeUniqueValueExists, retireSoftDeletedUniqueValue } from './chunk-BK5XW5XH.js';
31
+ export { createCmsMiddleware, defaultPublicApiMethods, isAuthDebugClientEnabled, isAuthDebugEnabled, logAuth, logAuthClient, nextAuthCookieDebugInfo, summarizeSessionUserForLog } from './chunk-SERRQ736.js';
32
+ export { queueErpPaidOrderForOrderId } from './chunk-PRZOLCFW.js';
33
+ import { erpSafeWebhookUrl, logErp, warnErp, errorErp } from './chunk-7QJI56OL.js';
34
+ export { queueErp, registerErpQueueProcessor } from './chunk-7QJI56OL.js';
35
+ import { __name } from './chunk-5BKT4CS5.js';
36
36
  import { google } from 'googleapis';
37
37
  import Redis from 'ioredis';
38
38
  import { LRUCache } from 'lru-cache';
@@ -948,8 +948,8 @@ var SmsService = class {
948
948
  let flowOverrides;
949
949
  if (opts.templateKey?.trim()) {
950
950
  if (!this.getMessageTemplateRow) return false;
951
- const { resolveSmsTemplateForSend } = await import('./sms-defaults-2NL24H57.js');
952
- const { applyTemplateVars } = await import('./interpolate-WDUWDF3I.js');
951
+ const { resolveSmsTemplateForSend } = await import('./sms-defaults-DSO3M26Y.js');
952
+ const { applyTemplateVars } = await import('./interpolate-KD37IRF2.js');
953
953
  const resolved = await resolveSmsTemplateForSend(opts.templateKey.trim(), this.getMessageTemplateRow);
954
954
  if (!resolved) return false;
955
955
  const vars = {
@@ -1032,7 +1032,7 @@ function paymentPlugin(config) {
1032
1032
  version: "1.0.0",
1033
1033
  async init(context) {
1034
1034
  if (config.provider === "stripe") {
1035
- const { StripePaymentService } = await import('./stripe-4FD27QVJ.js');
1035
+ const { StripePaymentService } = await import('./stripe-7CO2ETTN.js');
1036
1036
  const secretKey = config.secretKey || context.config.STRIPE_SECRET_KEY;
1037
1037
  if (!secretKey) {
1038
1038
  context.logger.warn("Payment plugin skipped: Stripe secret key not configured");
@@ -1044,7 +1044,7 @@ function paymentPlugin(config) {
1044
1044
  });
1045
1045
  }
1046
1046
  if (config.provider === "razorpay") {
1047
- const { RazorpayPaymentService } = await import('./razorpay-KLO2KNCB.js');
1047
+ const { RazorpayPaymentService } = await import('./razorpay-I3G5LNYH.js');
1048
1048
  const keyId = config.keyId || context.config.RAZORPAY_KEY_ID;
1049
1049
  const keySecret = config.keySecret || context.config.RAZORPAY_KEY_SECRET;
1050
1050
  if (!keyId || !keySecret) {
@@ -0,0 +1,2 @@
1
+ export { applyTemplateVars } from './chunk-ECNYZG6T.js';
2
+ import './chunk-5BKT4CS5.js';
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var chunkCIZZX57T_cjs = require('./chunk-CIZZX57T.cjs');
4
+ require('./chunk-XHPRD45G.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "applyTemplateVars", {
9
+ enumerable: true,
10
+ get: function () { return chunkCIZZX57T_cjs.applyTemplateVars; }
11
+ });
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var chunkM5GPOPGX_cjs = require('./chunk-M5GPOPGX.cjs');
4
- require('./chunk-USNT2KNT.cjs');
3
+ var chunkE62LKM6Z_cjs = require('./chunk-E62LKM6Z.cjs');
4
+ require('./chunk-XHPRD45G.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "INVOICE_TEMPLATE_IDS", {
9
9
  enumerable: true,
10
- get: function () { return chunkM5GPOPGX_cjs.INVOICE_TEMPLATE_IDS; }
10
+ get: function () { return chunkE62LKM6Z_cjs.INVOICE_TEMPLATE_IDS; }
11
11
  });
12
12
  Object.defineProperty(exports, "INVOICE_TEMPLATE_OPTIONS", {
13
13
  enumerable: true,
14
- get: function () { return chunkM5GPOPGX_cjs.INVOICE_TEMPLATE_OPTIONS; }
14
+ get: function () { return chunkE62LKM6Z_cjs.INVOICE_TEMPLATE_OPTIONS; }
15
15
  });
16
16
  Object.defineProperty(exports, "normalizeInvoiceTemplateId", {
17
17
  enumerable: true,
18
- get: function () { return chunkM5GPOPGX_cjs.normalizeInvoiceTemplateId; }
18
+ get: function () { return chunkE62LKM6Z_cjs.normalizeInvoiceTemplateId; }
19
19
  });
@@ -0,0 +1,2 @@
1
+ export { INVOICE_TEMPLATE_IDS, INVOICE_TEMPLATE_OPTIONS, normalizeInvoiceTemplateId } from './chunk-K6RXCLD5.js';
2
+ import './chunk-5BKT4CS5.js';
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunk7L6KWI7S_cjs = require('./chunk-7L6KWI7S.cjs');
4
- require('./chunk-USNT2KNT.cjs');
3
+ var chunkCTTV375J_cjs = require('./chunk-CTTV375J.cjs');
4
+ require('./chunk-XHPRD45G.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "createCmsMiddleware", {
9
9
  enumerable: true,
10
- get: function () { return chunk7L6KWI7S_cjs.createCmsMiddleware; }
10
+ get: function () { return chunkCTTV375J_cjs.createCmsMiddleware; }
11
11
  });
12
12
  Object.defineProperty(exports, "defaultPublicApiMethods", {
13
13
  enumerable: true,
14
- get: function () { return chunk7L6KWI7S_cjs.defaultPublicApiMethods; }
14
+ get: function () { return chunkCTTV375J_cjs.defaultPublicApiMethods; }
15
15
  });
@@ -1,2 +1,2 @@
1
- export { createCmsMiddleware, defaultPublicApiMethods } from './chunk-WUQAOTHA.js';
2
- import './chunk-SHUYVCID.js';
1
+ export { createCmsMiddleware, defaultPublicApiMethods } from './chunk-SERRQ736.js';
2
+ import './chunk-5BKT4CS5.js';
@@ -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/api/order-assignees-handlers.ts
6
6
  function json(data, init) {
@@ -12,7 +12,7 @@ function json(data, init) {
12
12
  }
13
13
  });
14
14
  }
15
- chunkUSNT2KNT_cjs.__name(json, "json");
15
+ chunkXHPRD45G_cjs.__name(json, "json");
16
16
  function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionUser) {
17
17
  return {
18
18
  /** GET /api/orders/:id/eligible-assignees */
@@ -99,6 +99,7 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
99
99
  relations: [
100
100
  "user",
101
101
  "vendorRole",
102
+ "vendorRole.permissions",
102
103
  "vendor"
103
104
  ]
104
105
  });
@@ -108,13 +109,21 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
108
109
  const v = vu.vendor;
109
110
  if (u && u.id && !u.deleted && !u.blocked && u.inviteStatus === "active") {
110
111
  const roleName = r?.name || (r?.isOwnerRole ? "Owner" : "Vendor Staff");
112
+ const isOwner = Boolean(r?.isOwnerRole);
113
+ let hasOrderPermission = isOwner;
114
+ if (!isOwner && Array.isArray(r?.permissions)) {
115
+ const orderPerm = r.permissions.find((p) => String(p?.entity).toLowerCase() === "orders");
116
+ hasOrderPermission = Boolean(orderPerm?.canRead);
117
+ }
111
118
  assigneesMap.set(u.id, {
112
119
  id: u.id,
113
120
  name: u.name || u.email?.split("@")[0] || `User #${u.id}`,
114
121
  email: u.email || "",
115
122
  role: roleName,
116
123
  vendorId: targetVendorId,
117
- vendorName: v?.name || `Vendor #${targetVendorId}`
124
+ vendorName: v?.name || `Vendor #${targetVendorId}`,
125
+ hasOrderPermission,
126
+ permissionReason: hasOrderPermission ? void 0 : "No order access in role permissions"
118
127
  });
119
128
  }
120
129
  }
@@ -147,6 +156,7 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
147
156
  relations: [
148
157
  "user",
149
158
  "vendorRole",
159
+ "vendorRole.permissions",
150
160
  "vendor"
151
161
  ]
152
162
  });
@@ -157,13 +167,21 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
157
167
  if (u && u.id && !u.deleted && !u.blocked && u.inviteStatus === "active") {
158
168
  if (v && v.deleted) continue;
159
169
  const roleName = r?.name || (r?.isOwnerRole ? "Owner" : "Vendor Staff");
170
+ const isOwner = Boolean(r?.isOwnerRole);
171
+ let hasOrderPermission = isOwner;
172
+ if (!isOwner && Array.isArray(r?.permissions)) {
173
+ const orderPerm = r.permissions.find((p) => String(p?.entity).toLowerCase() === "orders");
174
+ hasOrderPermission = Boolean(orderPerm?.canRead);
175
+ }
160
176
  assigneesMap.set(u.id, {
161
177
  id: u.id,
162
178
  name: u.name || u.email?.split("@")[0] || `User #${u.id}`,
163
179
  email: u.email || "",
164
180
  role: roleName,
165
181
  vendorId: vu.vendorId,
166
- vendorName: v?.name || `Vendor #${vu.vendorId}`
182
+ vendorName: v?.name || `Vendor #${vu.vendorId}`,
183
+ hasOrderPermission,
184
+ permissionReason: hasOrderPermission ? void 0 : "No order access in role permissions"
167
185
  });
168
186
  }
169
187
  }
@@ -199,7 +217,8 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
199
217
  email: u.email || "",
200
218
  role: roleLabel,
201
219
  vendorId: null,
202
- vendorName: "Platform Staff"
220
+ vendorName: "Platform Staff",
221
+ hasOrderPermission: true
203
222
  });
204
223
  }
205
224
  }
@@ -216,6 +235,6 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
216
235
  }
217
236
  };
218
237
  }
219
- chunkUSNT2KNT_cjs.__name(createOrderAssigneesHandlers, "createOrderAssigneesHandlers");
238
+ chunkXHPRD45G_cjs.__name(createOrderAssigneesHandlers, "createOrderAssigneesHandlers");
220
239
 
221
240
  exports.createOrderAssigneesHandlers = createOrderAssigneesHandlers;
@@ -1,4 +1,4 @@
1
- import { __name } from './chunk-SHUYVCID.js';
1
+ import { __name } from './chunk-5BKT4CS5.js';
2
2
 
3
3
  // src/api/order-assignees-handlers.ts
4
4
  function json(data, init) {
@@ -97,6 +97,7 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
97
97
  relations: [
98
98
  "user",
99
99
  "vendorRole",
100
+ "vendorRole.permissions",
100
101
  "vendor"
101
102
  ]
102
103
  });
@@ -106,13 +107,21 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
106
107
  const v = vu.vendor;
107
108
  if (u && u.id && !u.deleted && !u.blocked && u.inviteStatus === "active") {
108
109
  const roleName = r?.name || (r?.isOwnerRole ? "Owner" : "Vendor Staff");
110
+ const isOwner = Boolean(r?.isOwnerRole);
111
+ let hasOrderPermission = isOwner;
112
+ if (!isOwner && Array.isArray(r?.permissions)) {
113
+ const orderPerm = r.permissions.find((p) => String(p?.entity).toLowerCase() === "orders");
114
+ hasOrderPermission = Boolean(orderPerm?.canRead);
115
+ }
109
116
  assigneesMap.set(u.id, {
110
117
  id: u.id,
111
118
  name: u.name || u.email?.split("@")[0] || `User #${u.id}`,
112
119
  email: u.email || "",
113
120
  role: roleName,
114
121
  vendorId: targetVendorId,
115
- vendorName: v?.name || `Vendor #${targetVendorId}`
122
+ vendorName: v?.name || `Vendor #${targetVendorId}`,
123
+ hasOrderPermission,
124
+ permissionReason: hasOrderPermission ? void 0 : "No order access in role permissions"
116
125
  });
117
126
  }
118
127
  }
@@ -145,6 +154,7 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
145
154
  relations: [
146
155
  "user",
147
156
  "vendorRole",
157
+ "vendorRole.permissions",
148
158
  "vendor"
149
159
  ]
150
160
  });
@@ -155,13 +165,21 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
155
165
  if (u && u.id && !u.deleted && !u.blocked && u.inviteStatus === "active") {
156
166
  if (v && v.deleted) continue;
157
167
  const roleName = r?.name || (r?.isOwnerRole ? "Owner" : "Vendor Staff");
168
+ const isOwner = Boolean(r?.isOwnerRole);
169
+ let hasOrderPermission = isOwner;
170
+ if (!isOwner && Array.isArray(r?.permissions)) {
171
+ const orderPerm = r.permissions.find((p) => String(p?.entity).toLowerCase() === "orders");
172
+ hasOrderPermission = Boolean(orderPerm?.canRead);
173
+ }
158
174
  assigneesMap.set(u.id, {
159
175
  id: u.id,
160
176
  name: u.name || u.email?.split("@")[0] || `User #${u.id}`,
161
177
  email: u.email || "",
162
178
  role: roleName,
163
179
  vendorId: vu.vendorId,
164
- vendorName: v?.name || `Vendor #${vu.vendorId}`
180
+ vendorName: v?.name || `Vendor #${vu.vendorId}`,
181
+ hasOrderPermission,
182
+ permissionReason: hasOrderPermission ? void 0 : "No order access in role permissions"
165
183
  });
166
184
  }
167
185
  }
@@ -197,7 +215,8 @@ function createOrderAssigneesHandlers(dataSource, entityMap, getHydratedSessionU
197
215
  email: u.email || "",
198
216
  role: roleLabel,
199
217
  vendorId: null,
200
- vendorName: "Platform Staff"
218
+ vendorName: "Platform Staff",
219
+ hasOrderPermission: true
201
220
  });
202
221
  }
203
222
  }
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunkGN4LKG4V_cjs = require('./chunk-GN4LKG4V.cjs');
4
- var chunkWFMVD567_cjs = require('./chunk-WFMVD567.cjs');
5
- var chunkH3IVLIPR_cjs = require('./chunk-H3IVLIPR.cjs');
6
- require('./chunk-PA6YDMFZ.cjs');
7
- var chunkUMC7W5G3_cjs = require('./chunk-UMC7W5G3.cjs');
8
- require('./chunk-SUUD7OUG.cjs');
9
- require('./chunk-UPLVMVRX.cjs');
10
- require('./chunk-ZX5U3VCB.cjs');
11
- require('./chunk-M5GPOPGX.cjs');
12
- require('./chunk-P6S4XFZO.cjs');
13
- require('./chunk-TZEMLHSP.cjs');
14
- var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
3
+ var chunkNIBEGDD4_cjs = require('./chunk-NIBEGDD4.cjs');
4
+ var chunkKB7EBYPR_cjs = require('./chunk-KB7EBYPR.cjs');
5
+ var chunkKJB5LBFQ_cjs = require('./chunk-KJB5LBFQ.cjs');
6
+ require('./chunk-K742UE6S.cjs');
7
+ var chunk4MNVIGVJ_cjs = require('./chunk-4MNVIGVJ.cjs');
8
+ require('./chunk-BQQMTQ4C.cjs');
9
+ require('./chunk-RQCXRCYM.cjs');
10
+ require('./chunk-2JHGIWH7.cjs');
11
+ require('./chunk-E62LKM6Z.cjs');
12
+ require('./chunk-47G65M5Q.cjs');
13
+ require('./chunk-EYUBL7YH.cjs');
14
+ var chunkXHPRD45G_cjs = require('./chunk-XHPRD45G.cjs');
15
15
 
16
16
  // src/api/order-completion-otp-handlers.ts
17
17
  function json(data, init) {
@@ -23,7 +23,7 @@ function json(data, init) {
23
23
  }
24
24
  });
25
25
  }
26
- chunkUSNT2KNT_cjs.__name(json, "json");
26
+ chunkXHPRD45G_cjs.__name(json, "json");
27
27
  function maskEmail(email) {
28
28
  if (!email) return "";
29
29
  const parts = email.split("@");
@@ -33,14 +33,14 @@ function maskEmail(email) {
33
33
  if (name.length <= 2) return `${name[0]}***@${domain}`;
34
34
  return `${name.slice(0, 2)}***${name.slice(-1)}@${domain}`;
35
35
  }
36
- chunkUSNT2KNT_cjs.__name(maskEmail, "maskEmail");
36
+ chunkXHPRD45G_cjs.__name(maskEmail, "maskEmail");
37
37
  function maskPhone(phone) {
38
38
  if (!phone) return "";
39
39
  const digits = String(phone).replace(/\D/g, "");
40
40
  if (digits.length <= 4) return "***";
41
41
  return `+${digits.slice(0, 2)} ***${digits.slice(-4)}`;
42
42
  }
43
- chunkUSNT2KNT_cjs.__name(maskPhone, "maskPhone");
43
+ chunkXHPRD45G_cjs.__name(maskPhone, "maskPhone");
44
44
  async function getOtpChannelsConfig(dataSource, entityMap) {
45
45
  if (!entityMap.configs) {
46
46
  return {
@@ -67,7 +67,7 @@ async function getOtpChannelsConfig(dataSource, entityMap) {
67
67
  push: map.otp_push_enabled === "true" || map.otp_push_enabled === "1"
68
68
  };
69
69
  }
70
- chunkUSNT2KNT_cjs.__name(getOtpChannelsConfig, "getOtpChannelsConfig");
70
+ chunkXHPRD45G_cjs.__name(getOtpChannelsConfig, "getOtpChannelsConfig");
71
71
  function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydratedSessionUser) {
72
72
  async function verifyOrderAccess(order) {
73
73
  const session = await getHydratedSessionUser?.() ?? null;
@@ -116,7 +116,7 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
116
116
  }
117
117
  return null;
118
118
  }
119
- chunkUSNT2KNT_cjs.__name(verifyOrderAccess, "verifyOrderAccess");
119
+ chunkXHPRD45G_cjs.__name(verifyOrderAccess, "verifyOrderAccess");
120
120
  return {
121
121
  /** GET /api/orders/:id/completion-otp/channels */
122
122
  async getChannels(req, orderId) {
@@ -250,8 +250,8 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
250
250
  if (customerEmail) targetChannels.push("email");
251
251
  else if (customerPhone) targetChannels.push("whatsapp");
252
252
  }
253
- const code = chunkWFMVD567_cjs.generateNumericOtp(6);
254
- const challengeResult = await chunkWFMVD567_cjs.createOtpChallenge(dataSource, entityMap, {
253
+ const code = chunkKB7EBYPR_cjs.generateNumericOtp(6);
254
+ const challengeResult = await chunkKB7EBYPR_cjs.createOtpChallenge(dataSource, entityMap, {
255
255
  purpose: "order_completion",
256
256
  channel: targetChannels[0] || "email",
257
257
  identifier: `order:${orderId}`,
@@ -281,7 +281,7 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
281
281
  <p style="color: #6b7280; font-size: 13px;">This code is valid for 10 minutes. If you did not authorize this completion, please contact support immediately.</p>
282
282
  </div>
283
283
  `;
284
- await chunkUMC7W5G3_cjs.queueEmail(cms, {
284
+ await chunk4MNVIGVJ_cjs.queueEmail(cms, {
285
285
  to: customerEmail,
286
286
  subject: `Completion Code ${code} for Order #${o.orderNumber}`,
287
287
  html,
@@ -294,7 +294,7 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
294
294
  }
295
295
  if (targetChannels.includes("whatsapp") && customerPhone) {
296
296
  try {
297
- const sent = await chunkH3IVLIPR_cjs.queueWhatsApp(cms, {
297
+ const sent = await chunkKJB5LBFQ_cjs.queueWhatsApp(cms, {
298
298
  to: customerPhone,
299
299
  body: `Your completion code for Order #${o.orderNumber} is ${code}. Share this with your representative to complete your order. Valid for 10 minutes.`,
300
300
  variables: {
@@ -310,7 +310,7 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
310
310
  }
311
311
  if (targetChannels.includes("sms") && customerPhone) {
312
312
  try {
313
- await chunkWFMVD567_cjs.queueSms(cms, {
313
+ await chunkKJB5LBFQ_cjs.queueSms(cms, {
314
314
  to: customerPhone,
315
315
  body: `Your verification code for Order #${o.orderNumber} is ${code}. Valid for 10 minutes.`,
316
316
  otpCode: code,
@@ -378,7 +378,7 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
378
378
  }
379
379
  const accessError = await verifyOrderAccess(order);
380
380
  if (accessError) return accessError;
381
- const verifyResult = await chunkWFMVD567_cjs.verifyAndConsumeOtpChallenge(dataSource, entityMap, {
381
+ const verifyResult = await chunkKB7EBYPR_cjs.verifyAndConsumeOtpChallenge(dataSource, entityMap, {
382
382
  purpose: "order_completion",
383
383
  identifier: `order:${orderId}`,
384
384
  code
@@ -396,7 +396,7 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
396
396
  order.updatedAt = now;
397
397
  await orderRepo.save(order);
398
398
  try {
399
- await chunkGN4LKG4V_cjs.fireOrderNotificationTrigger("order_completed", orderId, {
399
+ await chunkNIBEGDD4_cjs.fireOrderNotificationTrigger("order_completed", orderId, {
400
400
  dataSource,
401
401
  entityMap
402
402
  });
@@ -415,6 +415,6 @@ function createOrderCompletionOtpHandlers(dataSource, entityMap, getCms, getHydr
415
415
  }
416
416
  };
417
417
  }
418
- chunkUSNT2KNT_cjs.__name(createOrderCompletionOtpHandlers, "createOrderCompletionOtpHandlers");
418
+ chunkXHPRD45G_cjs.__name(createOrderCompletionOtpHandlers, "createOrderCompletionOtpHandlers");
419
419
 
420
420
  exports.createOrderCompletionOtpHandlers = createOrderCompletionOtpHandlers;
@@ -1,15 +1,15 @@
1
- import { fireOrderNotificationTrigger } from './chunk-SKJH7PX4.js';
2
- import { verifyAndConsumeOtpChallenge, generateNumericOtp, createOtpChallenge, queueSms } from './chunk-OVTOP42W.js';
3
- import { queueWhatsApp } from './chunk-GWDI752Q.js';
4
- import './chunk-FLUF2GZH.js';
5
- import { queueEmail } from './chunk-7JCCPQEF.js';
6
- import './chunk-ZIT4IP6N.js';
7
- import './chunk-JC6DLWTE.js';
8
- import './chunk-Z5OB5QGN.js';
9
- import './chunk-WKDBMDUX.js';
10
- import './chunk-IKTBZJHT.js';
11
- import './chunk-YRCKEGL2.js';
12
- import { __name } from './chunk-SHUYVCID.js';
1
+ import { fireOrderNotificationTrigger } from './chunk-HZZTDM5J.js';
2
+ import { verifyAndConsumeOtpChallenge, generateNumericOtp, createOtpChallenge } from './chunk-ECUGNV2I.js';
3
+ import { queueWhatsApp, queueSms } from './chunk-K6JT7BKY.js';
4
+ import './chunk-W2ZTGLUH.js';
5
+ import { queueEmail } from './chunk-LJ5C4RBF.js';
6
+ import './chunk-PQJIJ4ZX.js';
7
+ import './chunk-WQZ4AH2P.js';
8
+ import './chunk-YHVA5NHI.js';
9
+ import './chunk-K6RXCLD5.js';
10
+ import './chunk-5DSY3GQI.js';
11
+ import './chunk-YDMHG6BA.js';
12
+ import { __name } from './chunk-5BKT4CS5.js';
13
13
 
14
14
  // src/api/order-completion-otp-handlers.ts
15
15
  function json(data, init) {
@@ -1,2 +1,2 @@
1
- export { deductInventoryForConfirmedOrder, mergeInventoryLines, orderInventorySnapshotFromRow, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, restoreInventoryForCancelledOrder, validateInventoryForConfirmedOrderLines, validateInventoryForOrderBecomingConfirmed } from './chunk-3K5AIEIZ.js';
2
- import './chunk-SHUYVCID.js';
1
+ export { deductInventoryForConfirmedOrder, mergeInventoryLines, orderInventorySnapshotFromRow, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, restoreInventoryForCancelledOrder, validateInventoryForConfirmedOrderLines, validateInventoryForOrderBecomingConfirmed } from './chunk-JYRFSFXH.js';
2
+ import './chunk-5BKT4CS5.js';
@@ -1,39 +1,39 @@
1
1
  'use strict';
2
2
 
3
- var chunkHY3AXLOI_cjs = require('./chunk-HY3AXLOI.cjs');
4
- require('./chunk-USNT2KNT.cjs');
3
+ var chunkPRXVSSIF_cjs = require('./chunk-PRXVSSIF.cjs');
4
+ require('./chunk-XHPRD45G.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "deductInventoryForConfirmedOrder", {
9
9
  enumerable: true,
10
- get: function () { return chunkHY3AXLOI_cjs.deductInventoryForConfirmedOrder; }
10
+ get: function () { return chunkPRXVSSIF_cjs.deductInventoryForConfirmedOrder; }
11
11
  });
12
12
  Object.defineProperty(exports, "mergeInventoryLines", {
13
13
  enumerable: true,
14
- get: function () { return chunkHY3AXLOI_cjs.mergeInventoryLines; }
14
+ get: function () { return chunkPRXVSSIF_cjs.mergeInventoryLines; }
15
15
  });
16
16
  Object.defineProperty(exports, "orderInventorySnapshotFromRow", {
17
17
  enumerable: true,
18
- get: function () { return chunkHY3AXLOI_cjs.orderInventorySnapshotFromRow; }
18
+ get: function () { return chunkPRXVSSIF_cjs.orderInventorySnapshotFromRow; }
19
19
  });
20
20
  Object.defineProperty(exports, "orderStatusHoldsStock", {
21
21
  enumerable: true,
22
- get: function () { return chunkHY3AXLOI_cjs.orderStatusHoldsStock; }
22
+ get: function () { return chunkPRXVSSIF_cjs.orderStatusHoldsStock; }
23
23
  });
24
24
  Object.defineProperty(exports, "reconcileOrderInventoryBetweenSnapshots", {
25
25
  enumerable: true,
26
- get: function () { return chunkHY3AXLOI_cjs.reconcileOrderInventoryBetweenSnapshots; }
26
+ get: function () { return chunkPRXVSSIF_cjs.reconcileOrderInventoryBetweenSnapshots; }
27
27
  });
28
28
  Object.defineProperty(exports, "restoreInventoryForCancelledOrder", {
29
29
  enumerable: true,
30
- get: function () { return chunkHY3AXLOI_cjs.restoreInventoryForCancelledOrder; }
30
+ get: function () { return chunkPRXVSSIF_cjs.restoreInventoryForCancelledOrder; }
31
31
  });
32
32
  Object.defineProperty(exports, "validateInventoryForConfirmedOrderLines", {
33
33
  enumerable: true,
34
- get: function () { return chunkHY3AXLOI_cjs.validateInventoryForConfirmedOrderLines; }
34
+ get: function () { return chunkPRXVSSIF_cjs.validateInventoryForConfirmedOrderLines; }
35
35
  });
36
36
  Object.defineProperty(exports, "validateInventoryForOrderBecomingConfirmed", {
37
37
  enumerable: true,
38
- get: function () { return chunkHY3AXLOI_cjs.validateInventoryForOrderBecomingConfirmed; }
38
+ get: function () { return chunkPRXVSSIF_cjs.validateInventoryForOrderBecomingConfirmed; }
39
39
  });
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var chunkTTOEY7AH_cjs = require('./chunk-TTOEY7AH.cjs');
4
+ require('./chunk-KJB5LBFQ.cjs');
5
+ require('./chunk-K742UE6S.cjs');
6
+ require('./chunk-CIZZX57T.cjs');
7
+ require('./chunk-QN6PZLAP.cjs');
8
+ require('./chunk-4MNVIGVJ.cjs');
9
+ require('./chunk-BQQMTQ4C.cjs');
10
+ require('./chunk-RQCXRCYM.cjs');
11
+ require('./chunk-2JHGIWH7.cjs');
12
+ require('./chunk-E62LKM6Z.cjs');
13
+ require('./chunk-47G65M5Q.cjs');
14
+ require('./chunk-EYUBL7YH.cjs');
15
+ require('./chunk-XHPRD45G.cjs');
16
+
17
+
18
+
19
+ Object.defineProperty(exports, "dispatchOrderNotificationDirectly", {
20
+ enumerable: true,
21
+ get: function () { return chunkTTOEY7AH_cjs.dispatchOrderNotificationDirectly; }
22
+ });
23
+ Object.defineProperty(exports, "emitOrderNotificationTrigger", {
24
+ enumerable: true,
25
+ get: function () { return chunkTTOEY7AH_cjs.emitOrderNotificationTrigger; }
26
+ });
27
+ Object.defineProperty(exports, "getSettingsGroup", {
28
+ enumerable: true,
29
+ get: function () { return chunkTTOEY7AH_cjs.getSettingsGroup; }
30
+ });
31
+ Object.defineProperty(exports, "initWhatsappTriggerDispatcher", {
32
+ enumerable: true,
33
+ get: function () { return chunkTTOEY7AH_cjs.initWhatsappTriggerDispatcher; }
34
+ });
35
+ Object.defineProperty(exports, "resendOrderNotification", {
36
+ enumerable: true,
37
+ get: function () { return chunkTTOEY7AH_cjs.resendOrderNotification; }
38
+ });