@infuro/cms-core 1.0.57 → 1.0.59

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/admin.cjs CHANGED
@@ -887,7 +887,7 @@ var init_admin_config_context = __esm({
887
887
  var CMS_VERSION;
888
888
  var init_cms_version = __esm({
889
889
  "src/lib/cms-version.ts"() {
890
- CMS_VERSION = "1.0.57" ;
890
+ CMS_VERSION = "1.0.59" ;
891
891
  }
892
892
  });
893
893
  function useCatalogCategories(enabled = true) {
package/dist/admin.js CHANGED
@@ -853,7 +853,7 @@ var init_admin_config_context = __esm({
853
853
  var CMS_VERSION;
854
854
  var init_cms_version = __esm({
855
855
  "src/lib/cms-version.ts"() {
856
- CMS_VERSION = "1.0.57" ;
856
+ CMS_VERSION = "1.0.59" ;
857
857
  }
858
858
  });
859
859
  function useCatalogCategories(enabled = true) {
package/dist/api.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkCMXNHMHP_cjs = require('./chunk-CMXNHMHP.cjs');
3
+ var chunkMCCA7WLQ_cjs = require('./chunk-MCCA7WLQ.cjs');
4
4
  require('./chunk-XQ3QUHWR.cjs');
5
5
  require('./chunk-HY3AXLOI.cjs');
6
- require('./chunk-JN4AFHZ4.cjs');
6
+ require('./chunk-HXLC56ZK.cjs');
7
7
  require('./chunk-UCKN4BBY.cjs');
8
8
  require('./chunk-7NMT3GBR.cjs');
9
9
  require('./chunk-V25RDUOU.cjs');
@@ -20,129 +20,133 @@ require('./chunk-USNT2KNT.cjs');
20
20
 
21
21
 
22
22
 
23
+ Object.defineProperty(exports, "autoExpireOrderIfPaymentTimeExceeded", {
24
+ enumerable: true,
25
+ get: function () { return chunkMCCA7WLQ_cjs.autoExpireOrderIfPaymentTimeExceeded; }
26
+ });
23
27
  Object.defineProperty(exports, "createAnalyticsHandlers", {
24
28
  enumerable: true,
25
- get: function () { return chunkCMXNHMHP_cjs.createAnalyticsHandlers; }
29
+ get: function () { return chunkMCCA7WLQ_cjs.createAnalyticsHandlers; }
26
30
  });
27
31
  Object.defineProperty(exports, "createBlogBySlugHandler", {
28
32
  enumerable: true,
29
- get: function () { return chunkCMXNHMHP_cjs.createBlogBySlugHandler; }
33
+ get: function () { return chunkMCCA7WLQ_cjs.createBlogBySlugHandler; }
30
34
  });
31
35
  Object.defineProperty(exports, "createChangePasswordHandler", {
32
36
  enumerable: true,
33
- get: function () { return chunkCMXNHMHP_cjs.createChangePasswordHandler; }
37
+ get: function () { return chunkMCCA7WLQ_cjs.createChangePasswordHandler; }
34
38
  });
35
39
  Object.defineProperty(exports, "createCmsApiHandler", {
36
40
  enumerable: true,
37
- get: function () { return chunkCMXNHMHP_cjs.createCmsApiHandler; }
41
+ get: function () { return chunkMCCA7WLQ_cjs.createCmsApiHandler; }
38
42
  });
39
43
  Object.defineProperty(exports, "createCrudByIdHandler", {
40
44
  enumerable: true,
41
- get: function () { return chunkCMXNHMHP_cjs.createCrudByIdHandler; }
45
+ get: function () { return chunkMCCA7WLQ_cjs.createCrudByIdHandler; }
42
46
  });
43
47
  Object.defineProperty(exports, "createCrudHandler", {
44
48
  enumerable: true,
45
- get: function () { return chunkCMXNHMHP_cjs.createCrudHandler; }
49
+ get: function () { return chunkMCCA7WLQ_cjs.createCrudHandler; }
46
50
  });
47
51
  Object.defineProperty(exports, "createDashboardStatsHandler", {
48
52
  enumerable: true,
49
- get: function () { return chunkCMXNHMHP_cjs.createDashboardStatsHandler; }
53
+ get: function () { return chunkMCCA7WLQ_cjs.createDashboardStatsHandler; }
50
54
  });
51
55
  Object.defineProperty(exports, "createEcommerceAnalyticsHandler", {
52
56
  enumerable: true,
53
- get: function () { return chunkCMXNHMHP_cjs.createEcommerceAnalyticsHandler; }
57
+ get: function () { return chunkMCCA7WLQ_cjs.createEcommerceAnalyticsHandler; }
54
58
  });
55
59
  Object.defineProperty(exports, "createForgotPasswordHandler", {
56
60
  enumerable: true,
57
- get: function () { return chunkCMXNHMHP_cjs.createForgotPasswordHandler; }
61
+ get: function () { return chunkMCCA7WLQ_cjs.createForgotPasswordHandler; }
58
62
  });
59
63
  Object.defineProperty(exports, "createFormBySlugHandler", {
60
64
  enumerable: true,
61
- get: function () { return chunkCMXNHMHP_cjs.createFormBySlugHandler; }
65
+ get: function () { return chunkMCCA7WLQ_cjs.createFormBySlugHandler; }
62
66
  });
63
67
  Object.defineProperty(exports, "createInviteAcceptHandler", {
64
68
  enumerable: true,
65
- get: function () { return chunkCMXNHMHP_cjs.createInviteAcceptHandler; }
69
+ get: function () { return chunkMCCA7WLQ_cjs.createInviteAcceptHandler; }
66
70
  });
67
71
  Object.defineProperty(exports, "createJobScheduleHandlers", {
68
72
  enumerable: true,
69
- get: function () { return chunkCMXNHMHP_cjs.createJobScheduleHandlers; }
73
+ get: function () { return chunkMCCA7WLQ_cjs.createJobScheduleHandlers; }
70
74
  });
71
75
  Object.defineProperty(exports, "createLlmAgentKnowledgeHandlers", {
72
76
  enumerable: true,
73
- get: function () { return chunkCMXNHMHP_cjs.createLlmAgentKnowledgeHandlers; }
77
+ get: function () { return chunkMCCA7WLQ_cjs.createLlmAgentKnowledgeHandlers; }
74
78
  });
75
79
  Object.defineProperty(exports, "createMediaZipExtractHandler", {
76
80
  enumerable: true,
77
- get: function () { return chunkCMXNHMHP_cjs.createMediaZipExtractHandler; }
81
+ get: function () { return chunkMCCA7WLQ_cjs.createMediaZipExtractHandler; }
78
82
  });
79
83
  Object.defineProperty(exports, "createSetPasswordHandler", {
80
84
  enumerable: true,
81
- get: function () { return chunkCMXNHMHP_cjs.createSetPasswordHandler; }
85
+ get: function () { return chunkMCCA7WLQ_cjs.createSetPasswordHandler; }
82
86
  });
83
87
  Object.defineProperty(exports, "createSettingsApiHandlers", {
84
88
  enumerable: true,
85
- get: function () { return chunkCMXNHMHP_cjs.createSettingsApiHandlers; }
89
+ get: function () { return chunkMCCA7WLQ_cjs.createSettingsApiHandlers; }
86
90
  });
87
91
  Object.defineProperty(exports, "createStorefrontApiHandler", {
88
92
  enumerable: true,
89
- get: function () { return chunkCMXNHMHP_cjs.createStorefrontApiHandler; }
93
+ get: function () { return chunkMCCA7WLQ_cjs.createStorefrontApiHandler; }
90
94
  });
91
95
  Object.defineProperty(exports, "createUploadHandler", {
92
96
  enumerable: true,
93
- get: function () { return chunkCMXNHMHP_cjs.createUploadHandler; }
97
+ get: function () { return chunkMCCA7WLQ_cjs.createUploadHandler; }
94
98
  });
95
99
  Object.defineProperty(exports, "createUserAuthApiRouter", {
96
100
  enumerable: true,
97
- get: function () { return chunkCMXNHMHP_cjs.createUserAuthApiRouter; }
101
+ get: function () { return chunkMCCA7WLQ_cjs.createUserAuthApiRouter; }
98
102
  });
99
103
  Object.defineProperty(exports, "createUserAvatarHandler", {
100
104
  enumerable: true,
101
- get: function () { return chunkCMXNHMHP_cjs.createUserAvatarHandler; }
105
+ get: function () { return chunkMCCA7WLQ_cjs.createUserAvatarHandler; }
102
106
  });
103
107
  Object.defineProperty(exports, "createUserProfileHandler", {
104
108
  enumerable: true,
105
- get: function () { return chunkCMXNHMHP_cjs.createUserProfileHandler; }
109
+ get: function () { return chunkMCCA7WLQ_cjs.createUserProfileHandler; }
106
110
  });
107
111
  Object.defineProperty(exports, "createUsersApiHandlers", {
108
112
  enumerable: true,
109
- get: function () { return chunkCMXNHMHP_cjs.createUsersApiHandlers; }
113
+ get: function () { return chunkMCCA7WLQ_cjs.createUsersApiHandlers; }
110
114
  });
111
115
  Object.defineProperty(exports, "createVendorDashboardHandler", {
112
116
  enumerable: true,
113
- get: function () { return chunkCMXNHMHP_cjs.createVendorDashboardHandler; }
117
+ get: function () { return chunkMCCA7WLQ_cjs.createVendorDashboardHandler; }
114
118
  });
115
119
  Object.defineProperty(exports, "createVendorOnboardHandlers", {
116
120
  enumerable: true,
117
- get: function () { return chunkCMXNHMHP_cjs.createVendorOnboardHandlers; }
121
+ get: function () { return chunkMCCA7WLQ_cjs.createVendorOnboardHandlers; }
118
122
  });
119
123
  Object.defineProperty(exports, "getPublicSettingsGroup", {
120
124
  enumerable: true,
121
- get: function () { return chunkCMXNHMHP_cjs.getPublicSettingsGroup; }
125
+ get: function () { return chunkMCCA7WLQ_cjs.getPublicSettingsGroup; }
122
126
  });
123
127
  Object.defineProperty(exports, "mergeGuardrailsIntoSystemPrompt", {
124
128
  enumerable: true,
125
- get: function () { return chunkCMXNHMHP_cjs.mergeGuardrailsIntoSystemPrompt; }
129
+ get: function () { return chunkMCCA7WLQ_cjs.mergeGuardrailsIntoSystemPrompt; }
126
130
  });
127
131
  Object.defineProperty(exports, "parseLlmAgentValidationRules", {
128
132
  enumerable: true,
129
- get: function () { return chunkCMXNHMHP_cjs.parseLlmAgentValidationRules; }
133
+ get: function () { return chunkMCCA7WLQ_cjs.parseLlmAgentValidationRules; }
130
134
  });
131
135
  Object.defineProperty(exports, "simpleDecrypt", {
132
136
  enumerable: true,
133
- get: function () { return chunkCMXNHMHP_cjs.simpleDecrypt; }
137
+ get: function () { return chunkMCCA7WLQ_cjs.simpleDecrypt; }
134
138
  });
135
139
  Object.defineProperty(exports, "simpleEncrypt", {
136
140
  enumerable: true,
137
- get: function () { return chunkCMXNHMHP_cjs.simpleEncrypt; }
141
+ get: function () { return chunkMCCA7WLQ_cjs.simpleEncrypt; }
138
142
  });
139
143
  Object.defineProperty(exports, "validateUserMessageAgainstAgentRules", {
140
144
  enumerable: true,
141
- get: function () { return chunkCMXNHMHP_cjs.validateUserMessageAgainstAgentRules; }
145
+ get: function () { return chunkMCCA7WLQ_cjs.validateUserMessageAgainstAgentRules; }
142
146
  });
143
147
  Object.defineProperty(exports, "validateUserMessageAgainstStructuredRules", {
144
148
  enumerable: true,
145
- get: function () { return chunkCMXNHMHP_cjs.validateUserMessageAgainstStructuredRules; }
149
+ get: function () { return chunkMCCA7WLQ_cjs.validateUserMessageAgainstStructuredRules; }
146
150
  });
147
151
  Object.defineProperty(exports, "createCmsAuthBundle", {
148
152
  enumerable: true,
package/dist/api.d.cts CHANGED
@@ -68,6 +68,7 @@ type VendorScope = {
68
68
  };
69
69
 
70
70
  type EntityMap = Record<string, typeorm.EntityTarget<typeorm.ObjectLiteral>>;
71
+ declare function autoExpireOrderIfPaymentTimeExceeded(dataSource: typeorm.DataSource, entityMap: Record<string, unknown>, order: Record<string, unknown> | null | undefined): Promise<Record<string, unknown> | null | undefined>;
71
72
  interface CrudHandlerOptions {
72
73
  requireAuth: (req: Request) => Promise<Response | null>;
73
74
  json: (body: unknown, init?: {
@@ -641,4 +642,4 @@ declare function createStorefrontApiHandler(config: StorefrontApiConfig): {
641
642
  handle(method: string, path: string[], req: Request): Promise<Response>;
642
643
  };
643
644
 
644
- export { type AnalyticsHandlerConfig, type AuthHandlersConfig, type BlogBySlugConfig, type ChangePasswordConfig, type ChatPublicConfig, type CmsApiHandlerConfig, type CmsGetter, type CrudHandlerOptions, type DashboardStatsConfig, type EcommerceAnalyticsConfig, type EntityMap, type ForgotPasswordConfig, type FormBySlugConfig, type GetPublicSettingsGroupConfig, type GetPublicSettingsGroupDataSource, type InviteAcceptConfig, type JobScheduleApiConfig, type LlmAgentKnowledgeApiConfig, type LlmAgentValidationRulesJson, type ParsedLlmAgentValidation, type SetPasswordConfig, type SettingsApiConfig, type StorefrontApiConfig, type StorefrontOtpFlags, type UploadHandlerConfig, type UserAuthApiConfig, type UserAvatarConfig, type UserProfileConfig, type UsersApiConfig, type VendorDashboardConfig, type VendorOnboardHandlersConfig, type VendorOwnerActivation, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsAuthBundle, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules };
645
+ export { type AnalyticsHandlerConfig, type AuthHandlersConfig, type BlogBySlugConfig, type ChangePasswordConfig, type ChatPublicConfig, type CmsApiHandlerConfig, type CmsGetter, type CrudHandlerOptions, type DashboardStatsConfig, type EcommerceAnalyticsConfig, type EntityMap, type ForgotPasswordConfig, type FormBySlugConfig, type GetPublicSettingsGroupConfig, type GetPublicSettingsGroupDataSource, type InviteAcceptConfig, type JobScheduleApiConfig, type LlmAgentKnowledgeApiConfig, type LlmAgentValidationRulesJson, type ParsedLlmAgentValidation, type SetPasswordConfig, type SettingsApiConfig, type StorefrontApiConfig, type StorefrontOtpFlags, type UploadHandlerConfig, type UserAuthApiConfig, type UserAvatarConfig, type UserProfileConfig, type UsersApiConfig, type VendorDashboardConfig, type VendorOnboardHandlersConfig, type VendorOwnerActivation, autoExpireOrderIfPaymentTimeExceeded, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsAuthBundle, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules };
package/dist/api.d.ts CHANGED
@@ -68,6 +68,7 @@ type VendorScope = {
68
68
  };
69
69
 
70
70
  type EntityMap = Record<string, typeorm.EntityTarget<typeorm.ObjectLiteral>>;
71
+ declare function autoExpireOrderIfPaymentTimeExceeded(dataSource: typeorm.DataSource, entityMap: Record<string, unknown>, order: Record<string, unknown> | null | undefined): Promise<Record<string, unknown> | null | undefined>;
71
72
  interface CrudHandlerOptions {
72
73
  requireAuth: (req: Request) => Promise<Response | null>;
73
74
  json: (body: unknown, init?: {
@@ -641,4 +642,4 @@ declare function createStorefrontApiHandler(config: StorefrontApiConfig): {
641
642
  handle(method: string, path: string[], req: Request): Promise<Response>;
642
643
  };
643
644
 
644
- export { type AnalyticsHandlerConfig, type AuthHandlersConfig, type BlogBySlugConfig, type ChangePasswordConfig, type ChatPublicConfig, type CmsApiHandlerConfig, type CmsGetter, type CrudHandlerOptions, type DashboardStatsConfig, type EcommerceAnalyticsConfig, type EntityMap, type ForgotPasswordConfig, type FormBySlugConfig, type GetPublicSettingsGroupConfig, type GetPublicSettingsGroupDataSource, type InviteAcceptConfig, type JobScheduleApiConfig, type LlmAgentKnowledgeApiConfig, type LlmAgentValidationRulesJson, type ParsedLlmAgentValidation, type SetPasswordConfig, type SettingsApiConfig, type StorefrontApiConfig, type StorefrontOtpFlags, type UploadHandlerConfig, type UserAuthApiConfig, type UserAvatarConfig, type UserProfileConfig, type UsersApiConfig, type VendorDashboardConfig, type VendorOnboardHandlersConfig, type VendorOwnerActivation, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsAuthBundle, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules };
645
+ export { type AnalyticsHandlerConfig, type AuthHandlersConfig, type BlogBySlugConfig, type ChangePasswordConfig, type ChatPublicConfig, type CmsApiHandlerConfig, type CmsGetter, type CrudHandlerOptions, type DashboardStatsConfig, type EcommerceAnalyticsConfig, type EntityMap, type ForgotPasswordConfig, type FormBySlugConfig, type GetPublicSettingsGroupConfig, type GetPublicSettingsGroupDataSource, type InviteAcceptConfig, type JobScheduleApiConfig, type LlmAgentKnowledgeApiConfig, type LlmAgentValidationRulesJson, type ParsedLlmAgentValidation, type SetPasswordConfig, type SettingsApiConfig, type StorefrontApiConfig, type StorefrontOtpFlags, type UploadHandlerConfig, type UserAuthApiConfig, type UserAvatarConfig, type UserProfileConfig, type UsersApiConfig, type VendorDashboardConfig, type VendorOnboardHandlersConfig, type VendorOwnerActivation, autoExpireOrderIfPaymentTimeExceeded, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsAuthBundle, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules };
package/dist/api.js CHANGED
@@ -1,7 +1,7 @@
1
- export { createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules } from './chunk-BAUV5FZQ.js';
1
+ export { autoExpireOrderIfPaymentTimeExceeded, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createSetPasswordHandler, createSettingsApiHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, getPublicSettingsGroup, mergeGuardrailsIntoSystemPrompt, parseLlmAgentValidationRules, simpleDecrypt, simpleEncrypt, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules } from './chunk-BTUEUA5H.js';
2
2
  import './chunk-GO7PPYNU.js';
3
3
  import './chunk-3K5AIEIZ.js';
4
- import './chunk-CTXBYO2J.js';
4
+ import './chunk-HYW3MUXT.js';
5
5
  import './chunk-HCIRL37O.js';
6
6
  import './chunk-JXF23MPG.js';
7
7
  import './chunk-L3525VXI.js';
@@ -1,6 +1,6 @@
1
1
  import { JOB_RUNNER_QUEUE } from './chunk-GO7PPYNU.js';
2
2
  import { validateInventoryForConfirmedOrderLines, orderStatusHoldsStock, reconcileOrderInventoryBetweenSnapshots, orderInventorySnapshotFromRow, validateInventoryForOrderBecomingConfirmed } from './chunk-3K5AIEIZ.js';
3
- import { resolveChatEmailToolSettings, CHAT_EMAIL_LOG, detectChatLeadIntent, parseIntentRecipientEmails, sendChatLeadEmail, buildTranscriptForLeadEmail, buildChatbotSystemPromptWithEmailTool, sendFcmPushNotification, parseEmailRecipientsFromConfig, isWhatsAppPluginEnabled, mergeWhatsAppConfigLayers, whatsAppConfigured, WhatsAppService, registerWhatsAppQueueProcessor, emailPlugin, initWhatsappTriggerDispatcher } from './chunk-CTXBYO2J.js';
3
+ import { resolveChatEmailToolSettings, CHAT_EMAIL_LOG, detectChatLeadIntent, parseIntentRecipientEmails, sendChatLeadEmail, buildTranscriptForLeadEmail, buildChatbotSystemPromptWithEmailTool, validateFcmCredentials, sendFcmPushNotification, parseEmailRecipientsFromConfig, isWhatsAppPluginEnabled, mergeWhatsAppConfigLayers, whatsAppConfigured, WhatsAppService, registerWhatsAppQueueProcessor, emailPlugin, initWhatsappTriggerDispatcher } from './chunk-HYW3MUXT.js';
4
4
  import { inviteStatusForActivation } from './chunk-JXF23MPG.js';
5
5
  import { queueEmail, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-L3525VXI.js';
6
6
  import { mergeEmailLayoutCompanyDetails, unwrapErpReadData, mapErpPayloadToFulfillment, extractChildOrderRefsFromSalePayload, mapErpPayloadToInvoiceNumber, streamOrderInvoicePdf } from './chunk-2KUCQVAQ.js';
@@ -1510,6 +1510,36 @@ async function validateLlmAgentScopeForWrite(dataSource, entityMap, scope, exclu
1510
1510
  __name(validateLlmAgentScopeForWrite, "validateLlmAgentScopeForWrite");
1511
1511
 
1512
1512
  // src/api/crud.ts
1513
+ async function autoExpireOrderIfPaymentTimeExceeded(dataSource, entityMap, order) {
1514
+ if (!order || typeof order !== "object") return order;
1515
+ const status = String(order.status ?? "").toLowerCase();
1516
+ if (status !== "pending") return order;
1517
+ const meta = typeof order.metadata === "object" && order.metadata ? order.metadata : {};
1518
+ const expiresAtStr = meta.paymentExpiresAt ? String(meta.paymentExpiresAt) : null;
1519
+ if (!expiresAtStr) return order;
1520
+ const expiresMs = new Date(expiresAtStr).getTime();
1521
+ if (Number.isNaN(expiresMs) || Date.now() <= expiresMs) return order;
1522
+ try {
1523
+ const orderId = Number(order.id);
1524
+ if (orderId && entityMap.orders) {
1525
+ const orderRepo = dataSource.getRepository(entityMap.orders);
1526
+ const updatedMeta = {
1527
+ ...meta,
1528
+ cancelReason: "Payment window expired (10 minutes)"
1529
+ };
1530
+ await orderRepo.update(orderId, {
1531
+ status: "cancelled",
1532
+ metadata: updatedMeta
1533
+ });
1534
+ order.status = "cancelled";
1535
+ order.metadata = updatedMeta;
1536
+ }
1537
+ } catch (err) {
1538
+ console.error("[payment-expiry] Auto-cancelling expired order failed", err);
1539
+ }
1540
+ return order;
1541
+ }
1542
+ __name(autoExpireOrderIfPaymentTimeExceeded, "autoExpireOrderIfPaymentTimeExceeded");
1513
1543
  var CRUD_LOG = "[cms-crud]";
1514
1544
  function logCrudClientError(op, detail) {
1515
1545
  console.warn(CRUD_LOG, op, detail);
@@ -3554,6 +3584,12 @@ function createCrudHandler(dataSource, entityMap, options) {
3554
3584
  }
3555
3585
  const itemsSummary = parts.join(", ") || "\u2014";
3556
3586
  const { payments: _payments, ...orderWithoutPayments } = order;
3587
+ const rawPayStatus = String(orderPayments[0]?.status ?? "unpaid").toLowerCase();
3588
+ const orderStatus = String(order.status ?? "").toLowerCase();
3589
+ let paymentStatus2 = rawPayStatus;
3590
+ if (orderStatus === "cancelled" && rawPayStatus !== "paid" && rawPayStatus !== "captured" && rawPayStatus !== "refunded") {
3591
+ paymentStatus2 = "unpaid";
3592
+ }
3557
3593
  return {
3558
3594
  ...orderWithoutPayments,
3559
3595
  contact: contact ? {
@@ -3563,7 +3599,7 @@ function createCrudHandler(dataSource, entityMap, options) {
3563
3599
  phone: contact.phone
3564
3600
  } : null,
3565
3601
  itemsSummary,
3566
- paymentStatus: orderPayments[0]?.status ?? "unpaid"
3602
+ paymentStatus: paymentStatus2
3567
3603
  };
3568
3604
  }));
3569
3605
  return json({
@@ -5448,6 +5484,9 @@ function createCrudByIdHandler(dataSource, entityMap, options) {
5448
5484
  "payments"
5449
5485
  ]
5450
5486
  });
5487
+ if (order) {
5488
+ await autoExpireOrderIfPaymentTimeExceeded(dataSource, entityMap, order);
5489
+ }
5451
5490
  const orderDenied = await vendorScopeAccessJson(order, scope2, resource);
5452
5491
  if (orderDenied) return orderDenied;
5453
5492
  const relatedOrders = await repo.find({
@@ -12056,6 +12095,7 @@ var UserDeviceToken = class {
12056
12095
  __name(this, "UserDeviceToken");
12057
12096
  }
12058
12097
  id;
12098
+ /** Staff/vendor app store. Null for customer/marketplace tokens (membership is `vendor_customers`). */
12059
12099
  vendorId;
12060
12100
  vendor;
12061
12101
  userId;
@@ -12076,13 +12116,15 @@ _ts_decorate2([
12076
12116
  _ts_decorate2([
12077
12117
  Column({
12078
12118
  type: "integer",
12079
- name: "vendor_id"
12119
+ name: "vendor_id",
12120
+ nullable: true
12080
12121
  }),
12081
- _ts_metadata2("design:type", Number)
12122
+ _ts_metadata2("design:type", Object)
12082
12123
  ], UserDeviceToken.prototype, "vendorId", void 0);
12083
12124
  _ts_decorate2([
12084
12125
  ManyToOne("Vendor", {
12085
- onDelete: "CASCADE"
12126
+ onDelete: "CASCADE",
12127
+ nullable: true
12086
12128
  }),
12087
12129
  JoinColumn({
12088
12130
  name: "vendor_id"
@@ -12179,6 +12221,22 @@ UserDeviceToken = _ts_decorate2([
12179
12221
  ], UserDeviceToken);
12180
12222
 
12181
12223
  // src/api/device-tokens-handlers.ts
12224
+ function parseRequiredPositiveInt(value, field) {
12225
+ const n = parseInt(String(value ?? "").trim(), 10);
12226
+ if (!Number.isFinite(n) || n <= 0) {
12227
+ return {
12228
+ error: `${field} must be a positive integer`
12229
+ };
12230
+ }
12231
+ return n;
12232
+ }
12233
+ __name(parseRequiredPositiveInt, "parseRequiredPositiveInt");
12234
+ function parseOptionalVendorId(value) {
12235
+ if (value == null) return null;
12236
+ if (typeof value === "string" && value.trim() === "") return null;
12237
+ return parseRequiredPositiveInt(value, "vendor_id");
12238
+ }
12239
+ __name(parseOptionalVendorId, "parseOptionalVendorId");
12182
12240
  function createDeviceTokensHandlers(config) {
12183
12241
  const { dataSource, entityMap, json } = config;
12184
12242
  return /* @__PURE__ */ __name(async function handleDeviceTokensApi(req, pathSegments) {
@@ -12250,18 +12308,28 @@ function createDeviceTokensHandlers(config) {
12250
12308
  if (method === "POST") {
12251
12309
  try {
12252
12310
  const body = await req.json().catch(() => ({}));
12253
- const vendorId = body.vendor_id?.trim();
12254
- const userId = body.user_id?.trim();
12311
+ const vendorParsed = parseOptionalVendorId(body.vendor_id);
12312
+ const userParsed = parseRequiredPositiveInt(body.user_id, "user_id");
12255
12313
  const token = body.token?.trim();
12256
12314
  const platformRaw = body.platform?.trim().toLowerCase();
12257
- if (!vendorId || !userId || !token || !platformRaw) {
12315
+ if (vendorParsed !== null && typeof vendorParsed === "object") {
12316
+ return json({
12317
+ success: false,
12318
+ error: vendorParsed.error
12319
+ }, {
12320
+ status: 400
12321
+ });
12322
+ }
12323
+ if (typeof userParsed === "object" || !token || !platformRaw) {
12258
12324
  return json({
12259
12325
  success: false,
12260
- error: "vendor_id, user_id, token, and platform (android|ios) are required"
12326
+ error: (typeof userParsed === "object" ? userParsed.error : null) || "user_id, token, and platform (android|ios) are required"
12261
12327
  }, {
12262
12328
  status: 400
12263
12329
  });
12264
12330
  }
12331
+ const vendorId = vendorParsed;
12332
+ const userId = userParsed;
12265
12333
  if (platformRaw !== "android" && platformRaw !== "ios") {
12266
12334
  return json({
12267
12335
  success: false,
@@ -12327,13 +12395,35 @@ function createDeviceTokensHandlers(config) {
12327
12395
  if (method === "GET") {
12328
12396
  try {
12329
12397
  const url = new URL(req.url);
12330
- const userId = url.searchParams.get("userId")?.trim();
12331
- const vendorId = url.searchParams.get("vendorId")?.trim();
12398
+ const userIdRaw = url.searchParams.get("userId")?.trim();
12399
+ const vendorIdRaw = url.searchParams.get("vendorId")?.trim();
12332
12400
  const whereCondition = {
12333
12401
  isActive: true
12334
12402
  };
12335
- if (userId) whereCondition.userId = userId;
12336
- if (vendorId) whereCondition.vendorId = vendorId;
12403
+ if (userIdRaw) {
12404
+ const userId = parseRequiredPositiveInt(userIdRaw, "userId");
12405
+ if (typeof userId === "object") {
12406
+ return json({
12407
+ success: false,
12408
+ error: userId.error
12409
+ }, {
12410
+ status: 400
12411
+ });
12412
+ }
12413
+ whereCondition.userId = userId;
12414
+ }
12415
+ if (vendorIdRaw) {
12416
+ const vendorId = parseRequiredPositiveInt(vendorIdRaw, "vendorId");
12417
+ if (typeof vendorId === "object") {
12418
+ return json({
12419
+ success: false,
12420
+ error: vendorId.error
12421
+ }, {
12422
+ status: 400
12423
+ });
12424
+ }
12425
+ whereCondition.vendorId = vendorId;
12426
+ }
12337
12427
  const tokens = await tokenRepo.find({
12338
12428
  where: whereCondition,
12339
12429
  order: {
@@ -12360,16 +12450,17 @@ function createDeviceTokensHandlers(config) {
12360
12450
  if (method === "DELETE") {
12361
12451
  try {
12362
12452
  const body = await req.json().catch(() => ({}));
12363
- const userId = body.user_id?.trim();
12453
+ const userParsed = parseRequiredPositiveInt(body.user_id, "user_id");
12364
12454
  const token = body.token?.trim();
12365
- if (!userId || !token) {
12455
+ if (typeof userParsed === "object" || !token) {
12366
12456
  return json({
12367
12457
  success: false,
12368
- error: "user_id and token are required to deactivate"
12458
+ error: (typeof userParsed === "object" ? userParsed.error : null) || "user_id and token are required to deactivate"
12369
12459
  }, {
12370
12460
  status: 400
12371
12461
  });
12372
12462
  }
12463
+ const userId = userParsed;
12373
12464
  await tokenRepo.update({
12374
12465
  userId,
12375
12466
  token
@@ -29791,7 +29882,7 @@ function createCmsApiHandler(config) {
29791
29882
  status: 400
29792
29883
  });
29793
29884
  }
29794
- const { resendOrderNotification } = await import('./order-notification-dispatcher-AT4IFAGL.js');
29885
+ const { resendOrderNotification } = await import('./order-notification-dispatcher-64WDCHHG.js');
29795
29886
  const result = await resendOrderNotification(triggerKey, orderId, {
29796
29887
  dataSource,
29797
29888
  entityMap,
@@ -32832,6 +32923,23 @@ function createStorefrontApiHandler(config) {
32832
32923
  });
32833
32924
  return json(body);
32834
32925
  }
32926
+ if (path2[0] === "cart" && path2.length === 1 && method === "DELETE") {
32927
+ const { cart, err } = await getOrCreateCart(req);
32928
+ if (err) return err;
32929
+ const cartId = cart?.id;
32930
+ if (cartId && Number.isFinite(cartId) && cartId > 0) {
32931
+ await cartItemRepo().delete({
32932
+ cartId
32933
+ });
32934
+ await cartRepo().update(cartId, {
32935
+ updatedAt: /* @__PURE__ */ new Date()
32936
+ });
32937
+ }
32938
+ return json({
32939
+ ok: true,
32940
+ message: "Cart cleared"
32941
+ });
32942
+ }
32835
32943
  if (path2[0] === "cart" && path2[1] === "items" && path2.length === 2 && method === "POST") {
32836
32944
  const body = await req.json().catch(() => ({}));
32837
32945
  const capCart = await assertCaptchaOk(getCms, body, req, json);
@@ -33351,7 +33459,8 @@ function createStorefrontApiHandler(config) {
33351
33459
  total: prepOrd.orderTotal,
33352
33460
  currency: cart.currency || "INR",
33353
33461
  metadata: {
33354
- cartId
33462
+ cartId,
33463
+ paymentExpiresAt: new Date(Date.now() + 10 * 60 * 1e3).toISOString()
33355
33464
  }
33356
33465
  }));
33357
33466
  const oid = ord.id;
@@ -33424,7 +33533,11 @@ function createStorefrontApiHandler(config) {
33424
33533
  tax: prepChk.orderTax,
33425
33534
  discount: 0,
33426
33535
  total: prepChk.orderTotal,
33427
- currency: cart.currency || "INR"
33536
+ currency: cart.currency || "INR",
33537
+ metadata: {
33538
+ cartId: cart.id,
33539
+ paymentExpiresAt: new Date(Date.now() + 10 * 60 * 1e3).toISOString()
33540
+ }
33428
33541
  }));
33429
33542
  const oid = ord.id;
33430
33543
  await orderRepo().update(oid, {
@@ -33670,6 +33783,7 @@ function createStorefrontApiHandler(config) {
33670
33783
  status: 404
33671
33784
  });
33672
33785
  const o = order;
33786
+ await autoExpireOrderIfPaymentTimeExceeded(dataSource, entityMap, o);
33673
33787
  const lines = (o.items || []).map((line) => {
33674
33788
  const p = line.product;
33675
33789
  return {
@@ -33730,6 +33844,73 @@ function createStorefrontApiHandler(config) {
33730
33844
  fulfillmentPreview: fulfillmentPreview || void 0
33731
33845
  });
33732
33846
  }
33847
+ if (path2[0] === "orders" && path2.length === 3 && path2[2] === "cancel" && method === "POST") {
33848
+ const orderId = parseInt(path2[1], 10);
33849
+ if (!Number.isFinite(orderId)) return json({
33850
+ error: "Invalid order id"
33851
+ }, {
33852
+ status: 400
33853
+ });
33854
+ const order = await orderRepo().findOne({
33855
+ where: {
33856
+ id: orderId,
33857
+ deleted: false
33858
+ }
33859
+ });
33860
+ if (!order) return json({
33861
+ error: "Not found"
33862
+ }, {
33863
+ status: 404
33864
+ });
33865
+ const o = order;
33866
+ const status = String(o.status || "").toLowerCase();
33867
+ if (status === "pending") {
33868
+ const meta = typeof o.metadata === "object" && o.metadata ? o.metadata : {};
33869
+ const updatedMeta = {
33870
+ ...meta,
33871
+ cancelReason: "Cancelled by user during payment window"
33872
+ };
33873
+ await orderRepo().update(orderId, {
33874
+ status: "cancelled",
33875
+ metadata: updatedMeta
33876
+ });
33877
+ try {
33878
+ if (entityMap.payments) {
33879
+ const payRepo = dataSource.getRepository(entityMap.payments);
33880
+ const pendingPayment = await payRepo.findOne({
33881
+ where: {
33882
+ orderId,
33883
+ status: "pending"
33884
+ }
33885
+ });
33886
+ if (pendingPayment) {
33887
+ await payRepo.update(pendingPayment.id, {
33888
+ status: "unpaid"
33889
+ });
33890
+ }
33891
+ }
33892
+ } catch {
33893
+ }
33894
+ try {
33895
+ const { cart } = await getOrCreateCart(req);
33896
+ const cartId = cart?.id;
33897
+ if (cartId && Number.isFinite(cartId) && cartId > 0) {
33898
+ await cartItemRepo().delete({
33899
+ cartId
33900
+ });
33901
+ await cartRepo().update(cartId, {
33902
+ updatedAt: /* @__PURE__ */ new Date()
33903
+ });
33904
+ }
33905
+ } catch {
33906
+ }
33907
+ }
33908
+ return json({
33909
+ ok: true,
33910
+ orderId,
33911
+ status: "cancelled"
33912
+ });
33913
+ }
33733
33914
  return json({
33734
33915
  error: "Not found"
33735
33916
  }, {
@@ -33747,4 +33928,4 @@ function createStorefrontApiHandler(config) {
33747
33928
  }
33748
33929
  __name(createStorefrontApiHandler, "createStorefrontApiHandler");
33749
33930
 
33750
- 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, 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, buildBlogMetadataUserPrompt, buildCronFromSchedule, buildRssUserPromptFromFeeds, buildUserInviteLink, buildVendorInviteLink, calculateOrderRefundPreview, calculateRefundFromPolicy, checkAndIncrementDiscountUsage, checkEventsEnabled, checkMultiVendorEnabled, completeUserInviteAccept, consumeAppliedDiscountUsages, contactIsVendorCustomer, countDiscountOrdersForContact, countRecentOtpSends, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createOtpChallenge, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, daysBeforeEventStart, decrementDiscountUsage, describeEventTierPolicy, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, formatTierRange, generateNumericOtp, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRssArticleSummaryFromItem, getVendorCatalogCreateFlags, hashOtpCode, hydrateVendorSessionUser, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isZipMedia, llmAgentToChatAgentOptions, loadSettingsGroupFromDb, loadUserVendorContext, mergeGuardrailsIntoSystemPrompt, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, normalizePhoneE164, normalizeRefundTiers, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseLlmAgentValidationRules, pgBossScheduleNameForId, queueErpCreateContactIfEnabled, queueJobScheduleNow, queuePlugin, queueSms, recordDiscountUsage, registerJobRunnerWorker, registerMessagingQueueProcessors, registerSmsQueueProcessor, relativePathFromMediaParentId, resolveBlogCategoryIdByName, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, sanitizeMediaFolderPath, sanitizeStorageSegment, sendVendorOnboardEmails, simpleDecrypt, simpleEncrypt, syncJobScheduleToPgBoss, validateRefundTiers, validateScheduleInput, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, verifyAndConsumeOtpChallenge, verifyOtpCodeHash, whatsappPlugin, wrapGetCmsWithMessaging };
33931
+ 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, 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, countRecentOtpSends, createAnalyticsHandlers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createOtpChallenge, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, daysBeforeEventStart, decrementDiscountUsage, describeEventTierPolicy, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, formatTierRange, generateNumericOtp, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRssArticleSummaryFromItem, getVendorCatalogCreateFlags, hashOtpCode, hydrateVendorSessionUser, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isZipMedia, llmAgentToChatAgentOptions, loadSettingsGroupFromDb, loadUserVendorContext, mergeGuardrailsIntoSystemPrompt, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, normalizePhoneE164, normalizeRefundTiers, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseLlmAgentValidationRules, pgBossScheduleNameForId, queueErpCreateContactIfEnabled, queueJobScheduleNow, queuePlugin, queueSms, recordDiscountUsage, registerJobRunnerWorker, registerMessagingQueueProcessors, registerSmsQueueProcessor, relativePathFromMediaParentId, resolveBlogCategoryIdByName, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, sanitizeMediaFolderPath, sanitizeStorageSegment, sendVendorOnboardEmails, simpleDecrypt, simpleEncrypt, syncJobScheduleToPgBoss, validateRefundTiers, validateScheduleInput, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, verifyAndConsumeOtpChallenge, verifyOtpCodeHash, whatsappPlugin, wrapGetCmsWithMessaging };