@infuro/cms-core 1.0.45 → 1.0.47
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/README.md +19 -2
- package/dist/admin.cjs +4249 -2872
- package/dist/admin.d.cts +24 -4
- package/dist/admin.d.ts +24 -4
- package/dist/admin.js +3179 -1804
- package/dist/api.cjs +41 -39
- package/dist/api.d.cts +10 -4
- package/dist/api.d.ts +10 -4
- package/dist/api.js +9 -7
- package/dist/auth.cjs +55 -51
- package/dist/auth.d.cts +6 -3
- package/dist/auth.d.ts +6 -3
- package/dist/auth.js +3 -3
- package/dist/{chunk-KFFB6EMZ.js → chunk-2HU5R2JE.js} +2 -0
- package/dist/chunk-2IAXTKQN.cjs +19 -0
- package/dist/chunk-2KUCQVAQ.js +936 -0
- package/dist/chunk-3K5AIEIZ.js +256 -0
- package/dist/{chunk-SPQFNIYJ.cjs → chunk-4PMK3RNA.cjs} +2 -0
- package/dist/{chunk-X6UQFV4X.cjs → chunk-77NUXO6A.cjs} +14 -12
- package/dist/chunk-BXYZDMTZ.cjs +953 -0
- package/dist/chunk-DBPSJYLZ.js +47 -0
- package/dist/chunk-EIZKW2PF.js +13 -0
- package/dist/chunk-HY3AXLOI.cjs +265 -0
- package/dist/{chunk-X47PBV4I.js → chunk-JE22VP6S.js} +1 -0
- package/dist/{chunk-DN65KDIA.js → chunk-JIWUVQ6B.js} +14 -13
- package/dist/{chunk-HT5DI3XW.cjs → chunk-KOTXDSQB.cjs} +1 -0
- package/dist/chunk-L3525VXI.js +243 -0
- package/dist/{chunk-22FFHLTO.cjs → chunk-LMJ7RKPF.cjs} +421 -150
- package/dist/chunk-OY2YTBMP.cjs +50 -0
- package/dist/{chunk-TAHX46EI.cjs → chunk-Q3HQEM4R.cjs} +15 -7
- package/dist/chunk-V25RDUOU.cjs +248 -0
- package/dist/{chunk-ZMRQ72F6.cjs → chunk-VUQFARRT.cjs} +10 -10
- package/dist/{chunk-MVXLRANV.js → chunk-W42UZLQO.js} +1977 -891
- package/dist/{chunk-F5XFHYTG.cjs → chunk-XUCKZPML.cjs} +2088 -991
- package/dist/{chunk-I6NH72MO.js → chunk-YC4NUZCS.js} +10 -2
- package/dist/{chunk-NNQBWDCI.js → chunk-YXH2UUEZ.js} +418 -146
- package/dist/{chunk-BLR6H5GL.js → chunk-ZF2RQWXB.js} +4 -4
- package/dist/cli.cjs +9 -4
- package/dist/cli.js +9 -4
- package/dist/{email-queue-TPZWLTIV.cjs → email-queue-6NJY6HNM.cjs} +7 -5
- package/dist/email-queue-OI2HSCGE.js +4 -0
- package/dist/{emit-order-notification-trigger-IVLWKKJL.js → emit-order-notification-trigger-6XX7LSC4.js} +1 -1
- package/dist/{emit-order-notification-trigger-D2N3KFHL.cjs → emit-order-notification-trigger-NASG7ZEO.cjs} +3 -3
- package/dist/erp-order-invoice-3GXDE443.js +3 -0
- package/dist/erp-order-invoice-EYYNR526.cjs +24 -0
- package/dist/{event-order-defaults-EMWBIGL3.cjs → event-order-defaults-7Z3UZOEH.cjs} +9 -9
- package/dist/{event-order-defaults-SDRNAZHC.js → event-order-defaults-XQ3IDPD7.js} +1 -1
- package/dist/hooks.cjs +43 -0
- package/dist/hooks.d.cts +10 -1
- package/dist/hooks.d.ts +10 -1
- package/dist/hooks.js +39 -1
- package/dist/index.cjs +429 -298
- package/dist/index.d.cts +317 -30
- package/dist/index.d.ts +317 -30
- package/dist/index.js +17 -13
- package/dist/migrations/1781810000000-OrderItemsVariantId.ts +44 -0
- package/dist/migrations/1781900000000-UserInviteStatusToken.ts +46 -0
- package/dist/migrations/1782000000000-ComboSlug.ts +58 -0
- package/dist/migrations/1782100000000-DiscountDeviceType.ts +20 -0
- package/dist/migrations/1782200000000-VendorTeamProfiles.ts +233 -0
- package/dist/migrations/1782300000000-AddTypeToOrderNotificationBindings.ts +75 -0
- package/dist/order-inventory-2MYRKEPC.cjs +39 -0
- package/dist/order-inventory-76V4XIGW.js +2 -0
- package/dist/{order-notification-dispatcher-XWIJYDGA.js → order-notification-dispatcher-6WNG24NY.js} +4 -2
- package/dist/{order-notification-dispatcher-RU7BTGGX.cjs → order-notification-dispatcher-6XSU3AR7.cjs} +6 -4
- package/dist/{rbac-debug-db-2SGNLANF.js → rbac-debug-db-6EMIVMGF.js} +1 -1
- package/dist/{rbac-debug-db-4Z6A425H.cjs → rbac-debug-db-6PWTLBEL.cjs} +2 -2
- package/dist/retire-soft-deleted-unique-5VXBA5XX.cjs +15 -0
- package/dist/retire-soft-deleted-unique-NXQIH4BC.js +2 -0
- package/dist/theme.cjs +6 -1
- package/dist/theme.d.cts +4 -1
- package/dist/theme.d.ts +4 -1
- package/dist/theme.js +3 -1
- package/package.json +5 -4
- package/src/admin/admin.css +34 -24
- package/dist/chunk-5ELSW2UP.js +0 -150
- package/dist/chunk-PNOKNSG2.cjs +0 -222
- package/dist/chunk-WEMDMVHQ.js +0 -216
- package/dist/chunk-XW5ATPRW.cjs +0 -155
- package/dist/email-queue-CGZBVVAS.js +0 -2
- package/dist/erp-order-invoice-3YISSOWW.js +0 -3
- package/dist/erp-order-invoice-ZR5F2KTA.cjs +0 -12
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import PgBoss from 'pg-boss';
|
|
2
2
|
import * as typeorm from 'typeorm';
|
|
3
|
-
import { DataSource, EntityTarget, ObjectLiteral,
|
|
3
|
+
import { DataSource, EntityManager, EntityTarget, ObjectLiteral, Repository, SelectQueryBuilder } from 'typeorm';
|
|
4
4
|
import { ClassValue } from 'clsx';
|
|
5
5
|
import { Metadata } from 'next';
|
|
6
6
|
import { EventEmitter } from 'events';
|
|
@@ -121,7 +121,7 @@ declare class ERPSubmissionService {
|
|
|
121
121
|
}[]): ContactFormData | null;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
interface CmsAppLike$
|
|
124
|
+
interface CmsAppLike$5 {
|
|
125
125
|
getPlugin(name: string): unknown;
|
|
126
126
|
}
|
|
127
127
|
type ErpJobPayload = {
|
|
@@ -140,8 +140,8 @@ type ErpJobPayload = {
|
|
|
140
140
|
kind: 'productUpsert';
|
|
141
141
|
product: Record<string, unknown>;
|
|
142
142
|
};
|
|
143
|
-
declare function queueErp(cms: CmsAppLike$
|
|
144
|
-
declare function registerErpQueueProcessor(cms: CmsAppLike$
|
|
143
|
+
declare function queueErp(cms: CmsAppLike$5, payload: ErpJobPayload): Promise<void>;
|
|
144
|
+
declare function registerErpQueueProcessor(cms: CmsAppLike$5): void;
|
|
145
145
|
|
|
146
146
|
/**
|
|
147
147
|
* Duck-typed DataSource so host apps (e.g. Next) can pass their own TypeORM instance
|
|
@@ -162,7 +162,7 @@ type ErpPaidOrderEntityMap = Record<string, unknown>;
|
|
|
162
162
|
* Enqueues ERP `order.created` only when the order has at least one **completed** payment.
|
|
163
163
|
* Include `payments` in the payload.
|
|
164
164
|
*/
|
|
165
|
-
declare function queueErpPaidOrderForOrderId(cms: CmsAppLike$
|
|
165
|
+
declare function queueErpPaidOrderForOrderId(cms: CmsAppLike$5, dataSource: ErpPaidOrderDataSource, entityMap: ErpPaidOrderEntityMap, orderId: number): Promise<void>;
|
|
166
166
|
|
|
167
167
|
interface ErpContactSyncInput {
|
|
168
168
|
name: string;
|
|
@@ -178,7 +178,43 @@ interface ErpContactSyncInput {
|
|
|
178
178
|
* When ERP is enabled and plugin loaded, enqueue `create-contact` (non-fatal on failure).
|
|
179
179
|
* Used for admin CRUD and storefront contact paths — not form submissions (those use lead/opportunity).
|
|
180
180
|
*/
|
|
181
|
-
declare function queueErpCreateContactIfEnabled(cms: CmsAppLike$
|
|
181
|
+
declare function queueErpCreateContactIfEnabled(cms: CmsAppLike$5, dataSource: ErpPaidOrderDataSource, entityMap: ErpPaidOrderEntityMap, input: ErpContactSyncInput): Promise<void>;
|
|
182
|
+
|
|
183
|
+
type CmsAppLike$4 = {
|
|
184
|
+
getPlugin(name: string): unknown;
|
|
185
|
+
};
|
|
186
|
+
type ErpConfigDataSource = {
|
|
187
|
+
getRepository(entity: unknown): {
|
|
188
|
+
find(options?: object): Promise<unknown[]>;
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
type ResolvedOrderInvoicePdf = {
|
|
193
|
+
bytes: Uint8Array;
|
|
194
|
+
filename: string;
|
|
195
|
+
contentType: string;
|
|
196
|
+
source: 'erp' | 'local';
|
|
197
|
+
};
|
|
198
|
+
type ResolveOrderInvoicePdfError = {
|
|
199
|
+
error: string;
|
|
200
|
+
status: number;
|
|
201
|
+
};
|
|
202
|
+
declare function isOrderEligibleForInvoiceEmail(status: string | null | undefined, orderKind?: string | null): boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Resolve invoice PDF bytes for a **sale** order (ERP prefer → local).
|
|
205
|
+
* Shared by HTTP download and order-confirmation email attachment.
|
|
206
|
+
*/
|
|
207
|
+
declare function resolveOrderInvoicePdfBytes(cms: CmsAppLike$4, dataSource: ErpConfigDataSource, entityMap: Record<string, unknown>, orderId: number, options?: {
|
|
208
|
+
ownerContactId?: number;
|
|
209
|
+
}): Promise<ResolvedOrderInvoicePdf | ResolveOrderInvoicePdfError>;
|
|
210
|
+
/**
|
|
211
|
+
* Streams invoice PDF for a **sale** order.
|
|
212
|
+
* Prefer ERP tax invoice when configured + ready; otherwise generate a local PDF
|
|
213
|
+
* using the store `invoiceTemplate` setting.
|
|
214
|
+
*/
|
|
215
|
+
declare function streamOrderInvoicePdf(cms: CmsAppLike$4, dataSource: ErpConfigDataSource, entityMap: Record<string, unknown>, orderId: number, options: {
|
|
216
|
+
ownerContactId?: number;
|
|
217
|
+
}): Promise<Response>;
|
|
182
218
|
|
|
183
219
|
interface ERPPluginConfig {
|
|
184
220
|
webhookUrl: string;
|
|
@@ -261,12 +297,18 @@ interface EmailPluginConfig$1 {
|
|
|
261
297
|
secretAccessKey?: string;
|
|
262
298
|
templateOptions?: RenderEmailOptions;
|
|
263
299
|
}
|
|
300
|
+
interface EmailAttachment {
|
|
301
|
+
filename: string;
|
|
302
|
+
content: Buffer | Uint8Array;
|
|
303
|
+
contentType?: string;
|
|
304
|
+
}
|
|
264
305
|
interface EmailData {
|
|
265
306
|
subject: string;
|
|
266
307
|
html: string;
|
|
267
308
|
text?: string;
|
|
268
309
|
to?: string;
|
|
269
310
|
from?: string;
|
|
311
|
+
attachments?: EmailAttachment[];
|
|
270
312
|
}
|
|
271
313
|
interface EmailServiceInterface {
|
|
272
314
|
send(emailData: EmailData): Promise<boolean>;
|
|
@@ -284,6 +326,7 @@ declare class EmailService implements EmailServiceInterface {
|
|
|
284
326
|
/** AWS via SMTP (nodemailer) vs SES API SDK. */
|
|
285
327
|
private awsViaSmtp;
|
|
286
328
|
constructor(config: EmailPluginConfig$1);
|
|
329
|
+
private nodemailerAttachments;
|
|
287
330
|
send(emailData: EmailData): Promise<boolean>;
|
|
288
331
|
renderTemplate(templateName: EmailTemplateName, ctx: TemplateContext<unknown>): RenderedEmail;
|
|
289
332
|
/** Default notification recipient from plugin config (SMTP_TO / plugin `to`). */
|
|
@@ -326,6 +369,7 @@ declare function renderLayout(options: {
|
|
|
326
369
|
|
|
327
370
|
interface CmsAppLike$3 {
|
|
328
371
|
getPlugin(name: string): unknown;
|
|
372
|
+
dataSource?: unknown;
|
|
329
373
|
}
|
|
330
374
|
/** Context for template rendering: at least companyDetails; template-specific fields (formName, etc.) are allowed. */
|
|
331
375
|
interface EmailJobPayload {
|
|
@@ -337,8 +381,18 @@ interface EmailJobPayload {
|
|
|
337
381
|
subject?: string;
|
|
338
382
|
html?: string;
|
|
339
383
|
text?: string;
|
|
340
|
-
|
|
341
|
-
|
|
384
|
+
/** When set with attachInvoice, processor builds PDF in-worker (not stored in queue). */
|
|
385
|
+
orderId?: number;
|
|
386
|
+
/** Customer order-confirmed mail only — attach order invoice PDF when eligible. */
|
|
387
|
+
attachInvoice?: boolean;
|
|
388
|
+
attachments?: EmailAttachment[];
|
|
389
|
+
}
|
|
390
|
+
interface EmailQueueProcessorOptions {
|
|
391
|
+
/** Prefer explicit getter (host apps); falls back to `cms.dataSource`. */
|
|
392
|
+
getDataSource?: () => Promise<DataSource>;
|
|
393
|
+
entityMap?: Record<string, unknown>;
|
|
394
|
+
}
|
|
395
|
+
declare function registerEmailQueueProcessor(cms: CmsAppLike$3, options?: EmailQueueProcessorOptions): void;
|
|
342
396
|
declare function queueEmail(cms: CmsAppLike$3, payload: EmailJobPayload): Promise<void>;
|
|
343
397
|
interface OrderPlacedEmailPayload {
|
|
344
398
|
orderNumber: string;
|
|
@@ -355,6 +409,15 @@ interface OrderPlacedEmailPayload {
|
|
|
355
409
|
lineItems: OrderPlacedLineItem[];
|
|
356
410
|
billingAddress?: Record<string, string>;
|
|
357
411
|
shippingAddress?: Record<string, string>;
|
|
412
|
+
/**
|
|
413
|
+
* When set, customer email may attach order invoice (processor checks status eligibility).
|
|
414
|
+
* Sales emails never attach.
|
|
415
|
+
*/
|
|
416
|
+
orderId?: number;
|
|
417
|
+
/**
|
|
418
|
+
* Default true when orderId is set. Set false to skip invoice PDF on customer mail.
|
|
419
|
+
*/
|
|
420
|
+
attachInvoiceToCustomer?: boolean;
|
|
358
421
|
}
|
|
359
422
|
/** Queues one `orderPlaced` email per recipient (customer + each unique sales address; skips sales if same as customer). */
|
|
360
423
|
declare function queueOrderPlacedEmails(cms: CmsAppLike$3, payload: OrderPlacedEmailPayload): Promise<void>;
|
|
@@ -363,7 +426,7 @@ interface VendorOnboardEmailPayload {
|
|
|
363
426
|
vendorSlug?: string;
|
|
364
427
|
ownerName: string;
|
|
365
428
|
ownerEmail: string;
|
|
366
|
-
activation: 'invite' | 'password';
|
|
429
|
+
activation: 'invite' | 'password' | 'membership';
|
|
367
430
|
inviteLink?: string;
|
|
368
431
|
signInLink: string;
|
|
369
432
|
kind?: 'vendor_onboard' | 'team_invite';
|
|
@@ -765,7 +828,7 @@ interface SessionUser {
|
|
|
765
828
|
vendorIds?: number[];
|
|
766
829
|
/** Active vendor for scoped CRUD (vendor staff). */
|
|
767
830
|
activeVendorId?: number | null;
|
|
768
|
-
/**
|
|
831
|
+
/** @deprecated Prefer isVendorRoleOwner / vendorRoleId. Legacy owner|staff hint. */
|
|
769
832
|
vendorRole?: 'owner' | 'staff' | null;
|
|
770
833
|
/** Active vendor-scoped role id (`vendor_users.vendorRoleId`). */
|
|
771
834
|
vendorRoleId?: number | null;
|
|
@@ -830,7 +893,9 @@ type VendorScope = {
|
|
|
830
893
|
} | {
|
|
831
894
|
type: 'deny';
|
|
832
895
|
};
|
|
833
|
-
declare const
|
|
896
|
+
declare const VENDOR_GROUP_NAME = "Vendor";
|
|
897
|
+
/** @deprecated Use VENDOR_GROUP_NAME */
|
|
898
|
+
declare const VENDOR_OWNER_GROUP_NAME = "Vendor";
|
|
834
899
|
/** User groups treated as vendor store staff (sidebar + scoped admin). */
|
|
835
900
|
declare function isVendorGroupName(name: string | null | undefined): boolean;
|
|
836
901
|
declare function isPlatformAdministrator(user: SessionUser | null | undefined): boolean;
|
|
@@ -857,6 +922,50 @@ declare function vendorPortalFlagsFromUser(input: {
|
|
|
857
922
|
isVendorOwner: boolean;
|
|
858
923
|
};
|
|
859
924
|
|
|
925
|
+
type EntityMapLike$3 = Record<string, EntityTarget<ObjectLiteral> | undefined>;
|
|
926
|
+
type InventoryOrderLine = {
|
|
927
|
+
productId: number;
|
|
928
|
+
quantity: number;
|
|
929
|
+
variantId?: number | null;
|
|
930
|
+
};
|
|
931
|
+
type OrderInventorySnapshot = {
|
|
932
|
+
status: string;
|
|
933
|
+
lines: InventoryOrderLine[];
|
|
934
|
+
};
|
|
935
|
+
declare function orderStatusHoldsStock(status: string | null | undefined): boolean;
|
|
936
|
+
declare function orderInventorySnapshotFromRow(order: {
|
|
937
|
+
status?: string;
|
|
938
|
+
items?: Array<{
|
|
939
|
+
productId: number;
|
|
940
|
+
quantity: unknown;
|
|
941
|
+
variantId?: number | null;
|
|
942
|
+
metadata?: Record<string, unknown> | null;
|
|
943
|
+
}>;
|
|
944
|
+
}): OrderInventorySnapshot;
|
|
945
|
+
/** Merge lines by product+variant so duplicate lines net correctly. */
|
|
946
|
+
declare function mergeInventoryLines(lines: InventoryOrderLine[]): Map<string, InventoryOrderLine>;
|
|
947
|
+
type EmOrDs$1 = DataSource | EntityManager;
|
|
948
|
+
/**
|
|
949
|
+
* Validate stock for lines that will hold inventory (confirmed/completed).
|
|
950
|
+
* Checks product.quantity (summed across variants) and per-variant inventory.
|
|
951
|
+
*/
|
|
952
|
+
declare function validateInventoryForConfirmedOrderLines(ds: EmOrDs$1, entityMap: EntityMapLike$3, lines: InventoryOrderLine[]): Promise<string | null>;
|
|
953
|
+
/**
|
|
954
|
+
* When an order may already hold stock: available = DB qty + prior held qty for that key.
|
|
955
|
+
*/
|
|
956
|
+
declare function validateInventoryForOrderBecomingConfirmed(ds: EmOrDs$1, entityMap: EntityMapLike$3, prevSnap: OrderInventorySnapshot | null, nextLines: InventoryOrderLine[]): Promise<string | null>;
|
|
957
|
+
/**
|
|
958
|
+
* Restore stock when leaving a held status; deduct when entering a held status.
|
|
959
|
+
* Restore runs before deduct so line edits while staying held net correctly.
|
|
960
|
+
*/
|
|
961
|
+
declare function reconcileOrderInventoryBetweenSnapshots(ds: EmOrDs$1, entityMap: EntityMapLike$3, prev: OrderInventorySnapshot, next: OrderInventorySnapshot): Promise<string | null>;
|
|
962
|
+
/** Convenience: deduct stock for a newly confirmed/completed order. */
|
|
963
|
+
declare function deductInventoryForConfirmedOrder(ds: EmOrDs$1, entityMap: EntityMapLike$3, lines: InventoryOrderLine[], options?: {
|
|
964
|
+
validate?: boolean;
|
|
965
|
+
}): Promise<string | null>;
|
|
966
|
+
/** Convenience: restore stock when cancelling a held order. */
|
|
967
|
+
declare function restoreInventoryForCancelledOrder(ds: EmOrDs$1, entityMap: EntityMapLike$3, lines: InventoryOrderLine[]): Promise<string | null>;
|
|
968
|
+
|
|
860
969
|
type EntityMap$2 = Record<string, typeorm.EntityTarget<typeorm.ObjectLiteral>>;
|
|
861
970
|
interface CrudHandlerOptions {
|
|
862
971
|
requireAuth: (req: Request) => Promise<Response | null>;
|
|
@@ -1275,7 +1384,7 @@ declare function createUsersApiHandlers(config: UsersApiConfig): {
|
|
|
1275
1384
|
getById(_req: Request, id: string): Promise<Response>;
|
|
1276
1385
|
update(req: Request, id: string): Promise<Response>;
|
|
1277
1386
|
delete(_req: Request, id: string): Promise<Response>;
|
|
1278
|
-
regenerateInvite(
|
|
1387
|
+
regenerateInvite(req: Request, id: string): Promise<Response>;
|
|
1279
1388
|
};
|
|
1280
1389
|
interface UserAvatarConfig extends CmsHandlersBase {
|
|
1281
1390
|
getSession: () => Promise<{
|
|
@@ -1629,6 +1738,8 @@ declare class UserGroup {
|
|
|
1629
1738
|
users: User[];
|
|
1630
1739
|
}
|
|
1631
1740
|
|
|
1741
|
+
/** Invite lifecycle for CMS users (separate from `blocked`). */
|
|
1742
|
+
type UserInviteStatus = 'pending' | 'active';
|
|
1632
1743
|
declare class User {
|
|
1633
1744
|
id: number;
|
|
1634
1745
|
name: string;
|
|
@@ -1638,6 +1749,13 @@ declare class User {
|
|
|
1638
1749
|
phoneVerifiedAt: Date | null;
|
|
1639
1750
|
emailVerifiedAt: Date | null;
|
|
1640
1751
|
password: string | null;
|
|
1752
|
+
/**
|
|
1753
|
+
* `pending` = invite outstanding (cannot sign in until password is set).
|
|
1754
|
+
* `active` = invite accepted / account usable (subject to `blocked`).
|
|
1755
|
+
*/
|
|
1756
|
+
inviteStatus: UserInviteStatus;
|
|
1757
|
+
/** Rotating invite token; null when active or no invite outstanding. */
|
|
1758
|
+
inviteToken: string | null;
|
|
1641
1759
|
blocked: boolean;
|
|
1642
1760
|
adminAccess: boolean;
|
|
1643
1761
|
groupId: number | null;
|
|
@@ -1679,20 +1797,38 @@ declare class VendorRole {
|
|
|
1679
1797
|
permissions: VendorRolePermission[];
|
|
1680
1798
|
}
|
|
1681
1799
|
|
|
1682
|
-
/**
|
|
1800
|
+
/** Person KYC / contact for a vendor owner or team member (1:1 with vendor_users). */
|
|
1801
|
+
declare class VendorUserProfile {
|
|
1802
|
+
id: number;
|
|
1803
|
+
name: string;
|
|
1804
|
+
email: string;
|
|
1805
|
+
phone: string | null;
|
|
1806
|
+
aadhaarNo: string | null;
|
|
1807
|
+
panNo: string | null;
|
|
1808
|
+
addressLine1: string | null;
|
|
1809
|
+
addressLine2: string | null;
|
|
1810
|
+
city: string | null;
|
|
1811
|
+
state: string | null;
|
|
1812
|
+
postalCode: string | null;
|
|
1813
|
+
createdAt: Date;
|
|
1814
|
+
updatedAt: Date;
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
/** @deprecated Prefer vendorRoleId / isOwnerRole from vendor_roles */
|
|
1683
1818
|
type VendorUserRole = 'owner' | 'staff';
|
|
1819
|
+
/** Links a staff user to a vendor store. Store role is vendorRoleId only. */
|
|
1684
1820
|
declare class VendorUser {
|
|
1685
1821
|
id: number;
|
|
1686
1822
|
vendorId: number;
|
|
1687
1823
|
userId: number;
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
vendorRoleId: number | null;
|
|
1824
|
+
vendorRoleId: number;
|
|
1825
|
+
vendorUserProfileId: number;
|
|
1691
1826
|
createdAt: Date;
|
|
1692
1827
|
updatedAt: Date;
|
|
1693
1828
|
vendor: Vendor;
|
|
1694
1829
|
user: User;
|
|
1695
|
-
vendorRole: VendorRole
|
|
1830
|
+
vendorRole: VendorRole;
|
|
1831
|
+
vendorUserProfile: VendorUserProfile;
|
|
1696
1832
|
}
|
|
1697
1833
|
|
|
1698
1834
|
type VendorInviteStatus = 'none' | 'pending' | 'expired' | 'accepted';
|
|
@@ -1713,7 +1849,6 @@ declare class Vendor {
|
|
|
1713
1849
|
country: string | null;
|
|
1714
1850
|
postalCode: string | null;
|
|
1715
1851
|
gstin: string | null;
|
|
1716
|
-
pan: string | null;
|
|
1717
1852
|
logo: string | null;
|
|
1718
1853
|
description: string | null;
|
|
1719
1854
|
metadata: Record<string, unknown> | null;
|
|
@@ -1745,6 +1880,19 @@ declare function findVendorByInviteToken(dataSource: DataSource, vendorEntity: E
|
|
|
1745
1880
|
metadata: Record<string, unknown> | null;
|
|
1746
1881
|
} | null>;
|
|
1747
1882
|
|
|
1883
|
+
/** Same URL shape as vendor invites: `/admin/invite?token=…`. */
|
|
1884
|
+
declare function buildUserInviteLink(baseUrl: string, token: string): string;
|
|
1885
|
+
declare function newUserInviteToken(): string;
|
|
1886
|
+
declare function findUserByInviteToken(dataSource: DataSource, userEntity: EntityTarget<ObjectLiteral>, token: string): Promise<{
|
|
1887
|
+
id: number;
|
|
1888
|
+
email: string;
|
|
1889
|
+
blocked: boolean;
|
|
1890
|
+
password: string | null;
|
|
1891
|
+
inviteStatus: UserInviteStatus;
|
|
1892
|
+
inviteToken: string | null;
|
|
1893
|
+
} | null>;
|
|
1894
|
+
declare function completeUserInviteAccept(dataSource: DataSource, userEntity: EntityTarget<ObjectLiteral>, userId: number, passwordHash: string): Promise<void>;
|
|
1895
|
+
|
|
1748
1896
|
/** Parse stored config value into a list of emails (JSON array, or comma/semicolon-separated string). */
|
|
1749
1897
|
declare function parseEmailRecipientsFromConfig(raw: string | undefined | null): string[];
|
|
1750
1898
|
/** Serialize email list for config storage (JSON array in DB). */
|
|
@@ -1798,19 +1946,103 @@ declare function rateLimitPublicApiIfNeeded(req: Request, method: string, segmen
|
|
|
1798
1946
|
}): Promise<Response | null>;
|
|
1799
1947
|
declare function rateLimitCheckoutPost(req: Request): Promise<Response | null>;
|
|
1800
1948
|
|
|
1801
|
-
interface EntityMapLike$
|
|
1949
|
+
interface EntityMapLike$2 {
|
|
1802
1950
|
configs: unknown;
|
|
1803
1951
|
orders: unknown;
|
|
1804
1952
|
order_items: unknown;
|
|
1805
1953
|
}
|
|
1806
1954
|
interface SendOrderPlacedEmailDeps {
|
|
1807
1955
|
getDataSource: () => Promise<DataSource>;
|
|
1808
|
-
entityMap: EntityMapLike$
|
|
1809
|
-
|
|
1956
|
+
entityMap: EntityMapLike$2;
|
|
1957
|
+
/** Minimal CMS handle used to queue emails (matches storefront `getCms`). */
|
|
1958
|
+
getCms: () => Promise<{
|
|
1959
|
+
getPlugin: (name: string) => unknown;
|
|
1960
|
+
dataSource?: unknown;
|
|
1961
|
+
}>;
|
|
1810
1962
|
}
|
|
1811
1963
|
/** After payment confirmation: email customer + each sales team address from plugin settings. */
|
|
1812
1964
|
declare function sendOrderPlacedEmailsAfterConfirmation(orderId: number, deps: SendOrderPlacedEmailDeps): Promise<void>;
|
|
1813
1965
|
|
|
1966
|
+
/** Built-in invoice layout ids selectable in Store settings. */
|
|
1967
|
+
declare const INVOICE_TEMPLATE_IDS: readonly ["classic", "modern", "compact", "bold"];
|
|
1968
|
+
type InvoiceTemplateId = (typeof INVOICE_TEMPLATE_IDS)[number];
|
|
1969
|
+
declare const INVOICE_TEMPLATE_OPTIONS: Array<{
|
|
1970
|
+
id: InvoiceTemplateId;
|
|
1971
|
+
label: string;
|
|
1972
|
+
description: string;
|
|
1973
|
+
}>;
|
|
1974
|
+
declare function normalizeInvoiceTemplateId(raw: string | null | undefined): InvoiceTemplateId;
|
|
1975
|
+
|
|
1976
|
+
type InvoiceLineItem = {
|
|
1977
|
+
name: string;
|
|
1978
|
+
quantity: number;
|
|
1979
|
+
unitPrice: number;
|
|
1980
|
+
tax?: number;
|
|
1981
|
+
total: number;
|
|
1982
|
+
sku?: string | null;
|
|
1983
|
+
};
|
|
1984
|
+
type InvoiceAddress = {
|
|
1985
|
+
line1?: string;
|
|
1986
|
+
line2?: string | null;
|
|
1987
|
+
city?: string;
|
|
1988
|
+
state?: string;
|
|
1989
|
+
postalCode?: string;
|
|
1990
|
+
country?: string;
|
|
1991
|
+
};
|
|
1992
|
+
type InvoiceCompany = {
|
|
1993
|
+
name: string;
|
|
1994
|
+
logoUrl?: string | null;
|
|
1995
|
+
supportEmail?: string;
|
|
1996
|
+
supportPhone?: string;
|
|
1997
|
+
address?: string;
|
|
1998
|
+
};
|
|
1999
|
+
type InvoicePdfInput = {
|
|
2000
|
+
templateId?: string | null;
|
|
2001
|
+
orderNumber: string;
|
|
2002
|
+
orderDate: Date | string;
|
|
2003
|
+
currency: string;
|
|
2004
|
+
customerName: string;
|
|
2005
|
+
customerEmail?: string | null;
|
|
2006
|
+
customerPhone?: string | null;
|
|
2007
|
+
billingAddress?: InvoiceAddress | null;
|
|
2008
|
+
shippingAddress?: InvoiceAddress | null;
|
|
2009
|
+
lineItems: InvoiceLineItem[];
|
|
2010
|
+
subtotal: number;
|
|
2011
|
+
tax: number;
|
|
2012
|
+
discount: number;
|
|
2013
|
+
total: number;
|
|
2014
|
+
company: InvoiceCompany;
|
|
2015
|
+
};
|
|
2016
|
+
/**
|
|
2017
|
+
* Generate a local tax invoice PDF using the selected store template.
|
|
2018
|
+
*/
|
|
2019
|
+
declare function generateLocalInvoicePdf(input: InvoicePdfInput): Promise<Uint8Array>;
|
|
2020
|
+
|
|
2021
|
+
type EmOrDs = DataSource | EntityManager;
|
|
2022
|
+
type EntityMapLike$1 = Record<string, EntityTarget<ObjectLiteral> | undefined>;
|
|
2023
|
+
/** Build local invoice PDF bytes for an order (store template + branding). */
|
|
2024
|
+
declare function buildLocalInvoicePdfForOrder(ds: EmOrDs, entityMap: EntityMapLike$1, orderId: number): Promise<{
|
|
2025
|
+
bytes: Uint8Array;
|
|
2026
|
+
filename: string;
|
|
2027
|
+
} | {
|
|
2028
|
+
error: string;
|
|
2029
|
+
status: number;
|
|
2030
|
+
}>;
|
|
2031
|
+
|
|
2032
|
+
/**
|
|
2033
|
+
* Resolve branding/logo URLs for invoice PDFs.
|
|
2034
|
+
* Absolute http(s) URLs pass through; site-relative paths use public base URL env.
|
|
2035
|
+
*/
|
|
2036
|
+
declare function resolveInvoiceAssetUrl(raw: string | null | undefined): string | null;
|
|
2037
|
+
|
|
2038
|
+
/**
|
|
2039
|
+
* Soft-deleted rows still occupy UNIQUE columns (email/slug). Rename them so a new
|
|
2040
|
+
* active row can reuse the original value without dropping the DB unique constraint.
|
|
2041
|
+
*/
|
|
2042
|
+
declare function retireSoftDeletedUniqueValue(repo: Repository<ObjectLiteral>, column: string, value: string): Promise<void>;
|
|
2043
|
+
/** True when an active (non-deleted) row already holds this unique value. */
|
|
2044
|
+
declare function activeUniqueValueExists(repo: Repository<ObjectLiteral>, column: string, value: string, excludeId?: number): Promise<boolean>;
|
|
2045
|
+
|
|
1814
2046
|
declare class FormField {
|
|
1815
2047
|
id: number;
|
|
1816
2048
|
formId: number;
|
|
@@ -2189,6 +2421,8 @@ declare class OrderItem {
|
|
|
2189
2421
|
id: number;
|
|
2190
2422
|
orderId: number;
|
|
2191
2423
|
productId: number;
|
|
2424
|
+
/** Selected product variant at order time (optional). */
|
|
2425
|
+
variantId: number | null;
|
|
2192
2426
|
discountIds: number[];
|
|
2193
2427
|
vendorId: number | null;
|
|
2194
2428
|
vendor: Vendor | null;
|
|
@@ -2527,6 +2761,7 @@ declare function buildEventOrderTemplateVariables(input: {
|
|
|
2527
2761
|
phone?: string | null;
|
|
2528
2762
|
};
|
|
2529
2763
|
productNames: string;
|
|
2764
|
+
vendorName?: string;
|
|
2530
2765
|
orderLines?: OrderLineForTemplate[];
|
|
2531
2766
|
siteUrl?: string;
|
|
2532
2767
|
}): Record<string, string>;
|
|
@@ -2548,7 +2783,7 @@ type EventOrderMessageTemplateDefault = {
|
|
|
2548
2783
|
externalTemplateRef?: string;
|
|
2549
2784
|
};
|
|
2550
2785
|
/** Variables available in email HTML and WhatsApp text templates. */
|
|
2551
|
-
declare const EVENT_ORDER_TEMPLATE_VARIABLES: readonly ["eventName", "eventSlug", "venue", "startDate", "orderNumber", "orderTotal", "currency", "customerName", "customerEmail", "customerPhone", "productNames", "trackUrl", "qrImageUrl", "orderDetails", "orderDetailsHtml"];
|
|
2786
|
+
declare const EVENT_ORDER_TEMPLATE_VARIABLES: readonly ["eventName", "vendorName", "eventSlug", "venue", "startDate", "orderNumber", "orderTotal", "currency", "customerName", "customerEmail", "customerPhone", "productNames", "trackUrl", "qrImageUrl", "orderDetails", "orderDetailsHtml"];
|
|
2552
2787
|
declare const EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS: EventOrderMessageTemplateDefault[];
|
|
2553
2788
|
type ResolvedEventOrderTemplate = {
|
|
2554
2789
|
subject?: string;
|
|
@@ -2570,19 +2805,21 @@ declare function resolveEventOrderTemplate(channel: EventOrderNotificationChanne
|
|
|
2570
2805
|
} | null>, eventOverride?: EventOrderTemplateOverride | null): Promise<ResolvedEventOrderTemplate | null>;
|
|
2571
2806
|
|
|
2572
2807
|
interface EmitOrderNotificationTriggerDeps {
|
|
2573
|
-
dataSource:
|
|
2808
|
+
dataSource: any;
|
|
2574
2809
|
entityMap: Record<string, unknown>;
|
|
2575
2810
|
}
|
|
2576
2811
|
declare function emitOrderNotificationTrigger(triggerKey: string, orderId: number, deps: EmitOrderNotificationTriggerDeps, extra?: {
|
|
2577
2812
|
refundAmount?: number | null;
|
|
2813
|
+
extraVariables?: Record<string, string>;
|
|
2578
2814
|
}): Promise<void>;
|
|
2579
2815
|
/** Fire-and-forget wrapper for API handlers (storefront, CRUD, CMS). */
|
|
2580
2816
|
declare function fireOrderNotificationTrigger(triggerKey: string, orderId: number, deps: EmitOrderNotificationTriggerDeps, extra?: {
|
|
2581
2817
|
refundAmount?: number | null;
|
|
2818
|
+
extraVariables?: Record<string, string>;
|
|
2582
2819
|
}): void;
|
|
2583
2820
|
|
|
2584
2821
|
interface OrderNotificationDispatcherDeps {
|
|
2585
|
-
dataSource:
|
|
2822
|
+
dataSource: any;
|
|
2586
2823
|
entityMap: EntityMap$2;
|
|
2587
2824
|
getCms: () => Promise<CmsAppLike$1>;
|
|
2588
2825
|
}
|
|
@@ -2638,7 +2875,7 @@ declare const ORDER_NOTIFICATION_TRIGGERS: readonly [{
|
|
|
2638
2875
|
}];
|
|
2639
2876
|
type OrderNotificationTriggerKey = (typeof ORDER_NOTIFICATION_TRIGGERS)[number]['key'];
|
|
2640
2877
|
|
|
2641
|
-
type VendorOnboardedActivation = 'invite' | 'password';
|
|
2878
|
+
type VendorOnboardedActivation = 'invite' | 'password' | 'membership';
|
|
2642
2879
|
type VendorOnboardedKind = 'vendor_onboard' | 'team_invite';
|
|
2643
2880
|
|
|
2644
2881
|
interface EntityMapLike {
|
|
@@ -2690,7 +2927,7 @@ declare function seedDefaultAdmin(ds: DataSource, entityMap: SeedEntityMap, opts
|
|
|
2690
2927
|
type UserVendorContext = {
|
|
2691
2928
|
vendorIds: number[];
|
|
2692
2929
|
activeVendorId: number | null;
|
|
2693
|
-
/** @deprecated
|
|
2930
|
+
/** @deprecated Prefer isVendorRoleOwner / vendorRoleId */
|
|
2694
2931
|
vendorRole: VendorUserRole | null;
|
|
2695
2932
|
vendorRoleId: number | null;
|
|
2696
2933
|
vendorRoleName: string | null;
|
|
@@ -2710,6 +2947,7 @@ interface NextAuthUser {
|
|
|
2710
2947
|
name: string | null;
|
|
2711
2948
|
password: string | null;
|
|
2712
2949
|
blocked?: boolean;
|
|
2950
|
+
inviteStatus?: 'pending' | 'active';
|
|
2713
2951
|
deleted?: boolean;
|
|
2714
2952
|
groupId?: number | null;
|
|
2715
2953
|
adminAccess?: boolean;
|
|
@@ -2938,6 +3176,41 @@ declare function calculateOrderRefundPreview(dataSource: DataSource, entityMap:
|
|
|
2938
3176
|
/** @deprecated Use event-attached policy via calculateOrderRefundPreview. */
|
|
2939
3177
|
declare function findActiveRefundPolicyForVendor(dataSource: DataSource, entityMap: EntityMap$2, vendorId: number | null | undefined): Promise<PolicyRow | null>;
|
|
2940
3178
|
|
|
3179
|
+
/** Minimal entity map keys needed for discount usage accounting. */
|
|
3180
|
+
type DiscountUsageEntityMap = {
|
|
3181
|
+
discounts?: EntityTarget<ObjectLiteral>;
|
|
3182
|
+
order_discounts?: EntityTarget<ObjectLiteral>;
|
|
3183
|
+
order_items: EntityTarget<ObjectLiteral>;
|
|
3184
|
+
};
|
|
3185
|
+
/**
|
|
3186
|
+
* `order_discounts.userId` stores the contact id (historical column name).
|
|
3187
|
+
*/
|
|
3188
|
+
declare function countDiscountOrdersForContact(dataSource: DataSource, discountId: number, contactId: number): Promise<number>;
|
|
3189
|
+
declare function isMaxTotalUsageReached(discount: {
|
|
3190
|
+
maxTotalUsage?: number | null;
|
|
3191
|
+
usedCount?: number | null;
|
|
3192
|
+
}): boolean;
|
|
3193
|
+
declare function isMaxPerUserUsageReached(dataSource: DataSource, discount: {
|
|
3194
|
+
id: number;
|
|
3195
|
+
maxUsagePerUser?: number | null;
|
|
3196
|
+
}, contactId: number | null | undefined): Promise<boolean>;
|
|
3197
|
+
/**
|
|
3198
|
+
* Enforce per-user + total limits, then atomically increment `usedCount`.
|
|
3199
|
+
* Returns an error message, or null on success.
|
|
3200
|
+
*/
|
|
3201
|
+
declare function checkAndIncrementDiscountUsage(dataSource: DataSource, entityMap: DiscountUsageEntityMap, discountId: number, contactId: number): Promise<string | null>;
|
|
3202
|
+
declare function decrementDiscountUsage(dataSource: DataSource, entityMap: DiscountUsageEntityMap, discountId: number, orderId: number): Promise<void>;
|
|
3203
|
+
declare function recordDiscountUsage(dataSource: DataSource, entityMap: DiscountUsageEntityMap, orderId: number, discountId: number, contactId: number, discountAmount: number): Promise<void>;
|
|
3204
|
+
type AppliedDiscountUsage = {
|
|
3205
|
+
id: number;
|
|
3206
|
+
calculatedDiscount: number;
|
|
3207
|
+
};
|
|
3208
|
+
/**
|
|
3209
|
+
* For each applied discount: enforce limits, increment usedCount, write order_discounts.
|
|
3210
|
+
* Stops on first error and returns that message (caller may roll back).
|
|
3211
|
+
*/
|
|
3212
|
+
declare function consumeAppliedDiscountUsages(dataSource: DataSource, entityMap: DiscountUsageEntityMap, orderId: number, contactId: number, applied: AppliedDiscountUsage[]): Promise<string | null>;
|
|
3213
|
+
|
|
2941
3214
|
type CaptchaProviderId = 'turnstile' | 'recaptcha_v3';
|
|
2942
3215
|
interface CaptchaPublicConfig {
|
|
2943
3216
|
enabled: boolean;
|
|
@@ -3451,6 +3724,7 @@ declare enum Type {
|
|
|
3451
3724
|
CATEGORY = "category",
|
|
3452
3725
|
CART = "cart",
|
|
3453
3726
|
PAYMENT_METHOD = "paymentMethod",
|
|
3727
|
+
DEVICE_TYPE = "deviceType",
|
|
3454
3728
|
ORDER = "order",
|
|
3455
3729
|
QUANTITY = "quantity",
|
|
3456
3730
|
TIME = "time",
|
|
@@ -3622,6 +3896,7 @@ declare class Combo {
|
|
|
3622
3896
|
vendorId: number;
|
|
3623
3897
|
vendor: Vendor;
|
|
3624
3898
|
name: string;
|
|
3899
|
+
slug: string;
|
|
3625
3900
|
desc?: string;
|
|
3626
3901
|
eventId?: number | null;
|
|
3627
3902
|
event?: Event | null;
|
|
@@ -3681,10 +3956,16 @@ declare enum NotificationChannel {
|
|
|
3681
3956
|
WHATSAPP = "whatsapp",
|
|
3682
3957
|
EMAIL = "email"
|
|
3683
3958
|
}
|
|
3959
|
+
declare enum NotificationAudienceType {
|
|
3960
|
+
CUSTOMERS = "customers",
|
|
3961
|
+
VENDORS = "vendors",
|
|
3962
|
+
ADMIN = "admin"
|
|
3963
|
+
}
|
|
3684
3964
|
declare class OrderNotificationBinding {
|
|
3685
3965
|
id: number;
|
|
3686
3966
|
triggerKey: string;
|
|
3687
3967
|
channel: NotificationChannel;
|
|
3968
|
+
type: NotificationAudienceType;
|
|
3688
3969
|
messageTemplateId: number | null;
|
|
3689
3970
|
enabled: boolean;
|
|
3690
3971
|
createdAt: Date;
|
|
@@ -3799,7 +4080,7 @@ declare function logAuthClient(message: string, data?: Record<string, unknown>):
|
|
|
3799
4080
|
declare function summarizeSessionUserForLog(user: unknown): Record<string, unknown>;
|
|
3800
4081
|
declare function nextAuthCookieDebugInfo(): Record<string, unknown>;
|
|
3801
4082
|
|
|
3802
|
-
type VendorOwnerActivation = 'invite' | 'password';
|
|
4083
|
+
type VendorOwnerActivation = 'invite' | 'password' | 'membership';
|
|
3803
4084
|
interface VendorOnboardHandlersConfig {
|
|
3804
4085
|
dataSource: DataSource;
|
|
3805
4086
|
entityMap: EntityMap$2;
|
|
@@ -3825,8 +4106,14 @@ declare function createVendorOnboardHandlers(config: VendorOnboardHandlersConfig
|
|
|
3825
4106
|
switchVendor(req: Request): Promise<Response>;
|
|
3826
4107
|
/** GET /api/admin/vendor/team */
|
|
3827
4108
|
listTeam(): Promise<Response>;
|
|
3828
|
-
/** POST /api/admin/vendor/team —
|
|
4109
|
+
/** POST /api/admin/vendor/team — invite staff (set-password for new; accept-only for existing vendor people) */
|
|
3829
4110
|
addTeamMember(req: Request): Promise<Response>;
|
|
4111
|
+
/** POST /api/admin/vendor/team/send-invite — send invite email for a pending team member */
|
|
4112
|
+
sendTeamInviteEmail(req: Request): Promise<Response>;
|
|
4113
|
+
/** GET /api/admin/vendor/team-invite?token=&vendorId= — preflight for membership accept (no password) */
|
|
4114
|
+
validateTeamInvite(req: Request): Promise<Response>;
|
|
4115
|
+
/** POST /api/admin/vendor/team-invite — accept membership (token; no password) */
|
|
4116
|
+
acceptTeamInvite(req: Request): Promise<Response>;
|
|
3830
4117
|
/** PATCH /api/admin/vendor/team/:userId — change member store role */
|
|
3831
4118
|
updateTeamMemberRole(req: Request, userIdStr: string): Promise<Response>;
|
|
3832
4119
|
/** DELETE /api/admin/vendor/team/:userId */
|
|
@@ -3979,7 +4266,7 @@ declare function resolveSettingsEncryptionKey(config?: Record<string, string>):
|
|
|
3979
4266
|
declare function loadSettingsGroupFromDb(dataSource: DataSource, entityMap: EntityMap$2, group: string, encryptionKey?: string): Promise<Record<string, string>>;
|
|
3980
4267
|
declare function createMessageTemplateRowLoader(dataSource: DataSource, entityMap: EntityMap$2): MessageTemplateRowLoader;
|
|
3981
4268
|
/** Register email + WhatsApp queue processors when a queue plugin is present. */
|
|
3982
|
-
declare function registerMessagingQueueProcessors(cms: CmsApp): void;
|
|
4269
|
+
declare function registerMessagingQueueProcessors(cms: CmsApp, entityMap?: EntityMap$2): void;
|
|
3983
4270
|
/**
|
|
3984
4271
|
* Ensures queue, email, and WhatsApp plugins exist on the CMS app (lazy overlay).
|
|
3985
4272
|
* Consumer apps that omit `whatsappPlugin()` / `queuePlugin()` still get order notifications when env/DB is configured.
|
|
@@ -3993,4 +4280,4 @@ type CreateCmsAppWithMessagingOptions = CreateCmsAppOptions & EnsureMessagingPlu
|
|
|
3993
4280
|
/** `createCmsApp` + messaging plugins + queue processor registration. */
|
|
3994
4281
|
declare function createCmsAppWithMessaging(options: CreateCmsAppWithMessagingOptions): Promise<CmsApp>;
|
|
3995
4282
|
|
|
3996
|
-
export { ADMIN_GROUP_NAME, Address, type AdminNavItem, type AnalyticsHandlerConfig, type AnalyticsPluginConfig, Attendee, Attribute, type AuthHandlersConfig, type AuthHelpers, type AuthorizeOtpInput, 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, type BlogBySlugConfig, type BlogGeneratorBlogDraft, type BlogGeneratorDraftParseMode, type BlogGeneratorPluginConfig, type BlogGeneratorSeoDraft, BlogGeneratorService, Brand, CMS_ENTITY_MAP, type CachePluginConfig, type CacheService, type CaptchaProviderId, type CaptchaPublicConfig, CaptchaService, type CaptchaVerifyResult, Cart, CartItem, Category, type ChangePasswordConfig, ChatConversation, ChatMessage, type ChatPublicConfig, type CmsApiHandlerConfig, type CmsApp, type CmsGetter, type CmsMiddlewareConfig, type CmsMiddlewareRequest, type CmsPlugin, Collection, Combo, ComboItem, Comment, type CompanyDetails, Config, Contact, type CreateCmsAppOptions, type CreateCmsAppWithMessagingOptions, type CrudHandlerOptions, Currency, CurrencyExchange, Customer, Customer_Contacts, DEFAULT_ADMIN_NAV, DEFAULT_ORDER_NOTIFICATION_TRIGGER_SEEDS, type DashboardStatsConfig, type DataSourceManager, Discount, DiscountRules, type ERPPluginConfig, type ERPPluginInstance, ERPSubmissionService, EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS, EVENT_ORDER_TEMPLATE_KEY, EVENT_ORDER_TEMPLATE_VARIABLES, type EcommerceAnalyticsConfig, type EmailData, type EmailJobPayload, type EmailPluginConfig, EmailService, type EmailServiceInterface, type EmailTemplateName, type EmailTemplateResult, type EmitOrderNotificationTriggerDeps, type EnsureCustomerRecordInput, type EnsureCustomerUserInput, type EnsureMessagingPluginsOptions, type EnsureVendorCustomerDetails, type EntityCrudAction, type EntityMap$2 as EntityMap, type EntityPermissionFlags, type ErpContactSyncInput, type ErpCreateContactPayload, type ErpJobPayload, type ErpPaidOrderDataSource, type ErpPaidOrderEntityMap, Event, type EventApprovalStatus, type EventOrderMessageTemplateHandlersConfig, type EventOrderNotificationChannel, type EventOrderNotificationTemplates, type EventOrderTemplateOverride, EventProduct, type ExtraPublicWriteRule, type FacebookMeAccountsResponse, type FacebookPageAccount, type ForgotPasswordConfig, Form, type FormBySlugConfig, FormField, FormSubmission, type GetPublicSettingsGroupConfig, type GetPublicSettingsGroupDataSource, type GetSession, type InviteAcceptConfig, JOB_RUNNER_QUEUE, type CmsAppLike as JobRunnerCmsAppLike, type JobRunnerDeps, type JobRunnerPayload, JobSchedule, type JobScheduleApiConfig, JobScheduleRun, KNOWN_NOTIFICATION_TRIGGERS, KnowledgeBaseChunk, KnowledgeBaseDocument, type LatestArticleFromFeed, LlmAgent, type LlmAgentKnowledgeApiConfig, type LlmAgentOptions, type LlmAgentValidationRulesJson, type LlmChatOptions, type LlmEmbeddingProvider, type LlmMessage, type LlmPluginConfig, LlmService, type LlmServiceEmbedOptions, type LlmServiceInterface, type LocalStoragePluginConfig, type Logger, Media, MessageTemplate, type MetaGraphMutationResponse, type NextAuthOptionsConfig, type NextAuthUser, OPEN_ENDPOINTS, ORDER_NOTIFICATION_TRIGGERS, Order, OrderAddresses, OrderDiscounts, OrderItem, OrderNotificationBinding, OrderNotificationTrigger, type OrderNotificationTriggerKey, type OrderPlacedEmailPayload, type OrderPlacedLineItem, type OrderTriggerPayload, OtpChallenge, type OtpChannel, type OtpPurpose, PERMISSION_REQUIRED_ENDPOINTS, Page, type ParsedLlmAgentValidation, PasswordResetToken, Payment, type PaymentIntent, type PaymentPluginConfig, type PaymentServiceInterface, Permission, type PgBossPluginConfig, PgBossService, type PipelineNames, type PluginContext, Product, type ProductApprovalStatus, ProductAttribute, ProductCategory, ProductConfig, ProductVariant, type PublicThemeSettingsPayload, type QueuePluginConfig, type QueueService, RBAC_ADMIN_ONLY_ENTITIES, type RefundCalculationResult, RefundPolicy, type RefundPolicyLike, type RefundPolicyTier, RefundRequest, type RenderEmailOptions, type RenderedEmail, RssArticle, RssFeed, type S3StoragePluginConfig, SUPER_ADMIN_GROUP_ID, type SendVendorOnboardEmailInput, Seo, type SeoLike, type SeoMetadataOverrides, type SessionUser, type SetPasswordConfig, type SettingsApiConfig, type SmsJobPayload, type SmsPluginConfig, type SmsProviderChoice, type SmsProviderId, type SmsServiceConfig, type SmsServiceInterface, type SocialLinkItem, type SocialMediaPluginConfig, type StorageService, type StorefrontApiConfig, type StorefrontOtpFlags, Tag, Tax, type TemplateContext, type UploadHandlerConfig, User, type UserAuthApiConfig, type UserAvatarConfig, UserGroup, type UserProfileConfig, type UsersApiConfig, VENDOR_ADMIN_GROUP_ID, VENDOR_OWNER_GROUP_NAME, VENDOR_SCOPED_STORE_ENTITIES, VENDOR_STORE_RBAC_ENTITIES, Vendor, type VendorCatalogCreateFlags, VendorCustomer, type VendorDashboardConfig, type VendorOnboardHandlersConfig, type VendorOwnerActivation, VendorRole, VendorRolePermission, VendorUser, type WhatsAppJobPayload, type WhatsAppPluginConfig, type WhatsAppServiceConfig, type WhatsAppServiceInterface, Wishlist, WishlistItem, ZIP_MIME_TYPES, allowRateLimit, analyticsPlugin, applyApprovalStatusSideEffects, applyEventApprovalStatusSideEffects, applyRotatingVendorInvite, applyVendorCustomersContactFilter, applyVendorEventCreateApproval, applyVendorProductCreateApproval, assertCaptchaOk, assertContactAllowedForVendorOrder, assertEventApprovalUpdate, assertProductApprovalUpdate, blogGeneratorPlugin, buildBlogMetadataUserPrompt, buildCaptchaPublicConfig, buildCronFromSchedule, buildEventOrderTemplateVariables, buildRssUserPromptFromFeeds, buildVendorInviteLink, cachePlugin, calculateOrderRefundPreview, calculateRefundFromPolicy, canManageRoles, canManageVendorRoles, canManageVendorTeam, canOnboardVendors, captchaPlugin, checkEventsEnabled, checkMultiVendorEnabled, cn, contactIsVendorCustomer, countRecentOtpSends, createAnalyticsHandlers, createAuthHelpers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCmsAuthBundle, createCmsMiddleware, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createDataSourceManager, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createOtpChallenge, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, customerPhoneForEmail, customerPhoneForUser, daysBeforeEventStart, defaultPublicApiMethods, describeEventTierPolicy, emailPlugin, emailTemplates, emitOrderNotificationTrigger, enrichUserWithVendorContext, ensureCustomerForUser, ensureCustomerRecord, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, erpPlugin, explainSessionEntityAccess, fetchSeoBySlug, findActiveRefundPolicyForVendor, findVendorByInviteToken, fireOrderNotificationTrigger, formatDate, formatDateOnly, formatDateTime, formatTierRange, generateNumericOtp, generateSlug, getCompanyDetailsFromSettings, getNextAuthOptions, getPermissionableEntityKeys, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRequiredPermission, getRssArticleSummaryFromItem, getStorefrontNextAuthOptions, getVendorCatalogCreateFlags, hasEntityPermission, hashOtpCode, hydrateVendorSessionUser, initWhatsappTriggerDispatcher, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isAuthDebugClientEnabled, isAuthDebugEnabled, isCustomerTypeContact, isOpenEndpoint, isPlatformAdministrator, isPublicMethod, isRbacDebugEnabled, isSuperAdmin, isSuperAdminGroupName, isSyntheticCustomerPhone, isVendorAdmin, isVendorGroupName, isVendorOwner, isVendorPortalUser, isVendorStaff, isZipMedia, joinRecipientsForSend, linkUnclaimedContactToUser, llmAgentToChatAgentOptions, llmPlugin, loadPublicThemeSettings, loadSettingsGroupFromDb, loadUserVendorContext, localStoragePlugin, logAuth, logAuthClient, logEntityAccessDecision, logRbac, mergeEmailLayoutCompanyDetails, mergeGuardrailsIntoSystemPrompt, mergeSeoBySlug, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, nextAuthCookieDebugInfo, normalizeCustomerPhone, normalizePhoneE164, normalizeRefundTiers, notificationTriggerEmitter, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseEmailRecipientsFromConfig, parseHfInferenceEmbeddingBody, parseLlmAgentValidationRules, paymentPlugin, permissionRowsToRecord, pgBossPlugin, pgBossScheduleNameForId, queueEmail, queueErp, queueErpCreateContactIfEnabled, queueErpPaidOrderForOrderId, queueJobScheduleNow, queueOrderPlacedEmails, queuePlugin, queueSms, queueVendorOnboardEmails, queueWhatsApp, rateLimitCheckoutPost, rateLimitKeyForApiRequest, rateLimitPublicApiIfNeeded, registerEmailQueueProcessor, registerErpQueueProcessor, registerJobRunnerWorker, registerMessagingQueueProcessors, registerSmsQueueProcessor, registerWhatsAppQueueProcessor, relativePathFromMediaParentId, renderEmail, renderLayout, resendOrderNotification, resolveBlogCategoryIdByName, resolveEventOrderTemplate, resolvePublicMetadata, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, resolveVendorScopeFromSessionUser, s3StoragePlugin, sanitizeMediaFolderPath, sanitizeStorageSegment, seedAdministratorPermissions, seedDefaultAdmin, sendOrderPlacedEmailsAfterConfirmation, sendVendorOnboardEmails, serializeEmailRecipients, sessionHasEntityAccess, shouldRateLimitPublicWrite, simpleDecrypt, simpleEncrypt, smsPlugin, socialMediaPlugin, summarizeEntityPerms, summarizeSessionUserForLog, syncJobScheduleToPgBoss, truncateText, validateRefundTiers, validateScheduleInput, validateSlug, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, vendorPortalFlagsFromUser, verifyAndConsumeOtpChallenge, verifyOtpCodeHash, whatsappPlugin, withAdminRlsContext, withVendorRlsContext, wrapGetCmsWithMessaging };
|
|
4283
|
+
export { ADMIN_GROUP_NAME, Address, type AdminNavItem, type AnalyticsHandlerConfig, type AnalyticsPluginConfig, type AppliedDiscountUsage, Attendee, Attribute, type AuthHandlersConfig, type AuthHelpers, type AuthorizeOtpInput, 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, type BlogBySlugConfig, type BlogGeneratorBlogDraft, type BlogGeneratorDraftParseMode, type BlogGeneratorPluginConfig, type BlogGeneratorSeoDraft, BlogGeneratorService, Brand, CMS_ENTITY_MAP, type CachePluginConfig, type CacheService, type CaptchaProviderId, type CaptchaPublicConfig, CaptchaService, type CaptchaVerifyResult, Cart, CartItem, Category, type ChangePasswordConfig, ChatConversation, ChatMessage, type ChatPublicConfig, type CmsApiHandlerConfig, type CmsApp, type CmsGetter, type CmsMiddlewareConfig, type CmsMiddlewareRequest, type CmsPlugin, Collection, Combo, ComboItem, Comment, type CompanyDetails, Config, Contact, type CreateCmsAppOptions, type CreateCmsAppWithMessagingOptions, type CrudHandlerOptions, Currency, CurrencyExchange, Customer, Customer_Contacts, DEFAULT_ADMIN_NAV, DEFAULT_ORDER_NOTIFICATION_TRIGGER_SEEDS, type DashboardStatsConfig, type DataSourceManager, Discount, DiscountRules, type DiscountUsageEntityMap, type ERPPluginConfig, type ERPPluginInstance, ERPSubmissionService, EVENT_ORDER_MESSAGE_TEMPLATE_DEFAULTS, EVENT_ORDER_TEMPLATE_KEY, EVENT_ORDER_TEMPLATE_VARIABLES, type EcommerceAnalyticsConfig, type EmailAttachment, type EmailData, type EmailJobPayload, type EmailPluginConfig, type EmailQueueProcessorOptions, EmailService, type EmailServiceInterface, type EmailTemplateName, type EmailTemplateResult, type EmitOrderNotificationTriggerDeps, type EnsureCustomerRecordInput, type EnsureCustomerUserInput, type EnsureMessagingPluginsOptions, type EnsureVendorCustomerDetails, type EntityCrudAction, type EntityMap$2 as EntityMap, type EntityPermissionFlags, type ErpContactSyncInput, type ErpCreateContactPayload, type ErpJobPayload, type ErpPaidOrderDataSource, type ErpPaidOrderEntityMap, Event, type EventApprovalStatus, type EventOrderMessageTemplateHandlersConfig, type EventOrderNotificationChannel, type EventOrderNotificationTemplates, type EventOrderTemplateOverride, EventProduct, type ExtraPublicWriteRule, type FacebookMeAccountsResponse, type FacebookPageAccount, type ForgotPasswordConfig, Form, type FormBySlugConfig, FormField, FormSubmission, type GetPublicSettingsGroupConfig, type GetPublicSettingsGroupDataSource, type GetSession, INVOICE_TEMPLATE_IDS, INVOICE_TEMPLATE_OPTIONS, type InventoryOrderLine, type InviteAcceptConfig, type InvoiceAddress, type InvoiceCompany, type InvoiceLineItem, type InvoicePdfInput, type InvoiceTemplateId, JOB_RUNNER_QUEUE, type CmsAppLike as JobRunnerCmsAppLike, type JobRunnerDeps, type JobRunnerPayload, JobSchedule, type JobScheduleApiConfig, JobScheduleRun, KNOWN_NOTIFICATION_TRIGGERS, KnowledgeBaseChunk, KnowledgeBaseDocument, type LatestArticleFromFeed, LlmAgent, type LlmAgentKnowledgeApiConfig, type LlmAgentOptions, type LlmAgentValidationRulesJson, type LlmChatOptions, type LlmEmbeddingProvider, type LlmMessage, type LlmPluginConfig, LlmService, type LlmServiceEmbedOptions, type LlmServiceInterface, type LocalStoragePluginConfig, type Logger, Media, MessageTemplate, type MetaGraphMutationResponse, type NextAuthOptionsConfig, type NextAuthUser, OPEN_ENDPOINTS, ORDER_NOTIFICATION_TRIGGERS, Order, OrderAddresses, OrderDiscounts, type OrderInventorySnapshot, OrderItem, OrderNotificationBinding, OrderNotificationTrigger, type OrderNotificationTriggerKey, type OrderPlacedEmailPayload, type OrderPlacedLineItem, type OrderTriggerPayload, OtpChallenge, type OtpChannel, type OtpPurpose, PERMISSION_REQUIRED_ENDPOINTS, Page, type ParsedLlmAgentValidation, PasswordResetToken, Payment, type PaymentIntent, type PaymentPluginConfig, type PaymentServiceInterface, Permission, type PgBossPluginConfig, PgBossService, type PipelineNames, type PluginContext, Product, type ProductApprovalStatus, ProductAttribute, ProductCategory, ProductConfig, ProductVariant, type PublicThemeSettingsPayload, type QueuePluginConfig, type QueueService, RBAC_ADMIN_ONLY_ENTITIES, type RefundCalculationResult, RefundPolicy, type RefundPolicyLike, type RefundPolicyTier, RefundRequest, type RenderEmailOptions, type RenderedEmail, type ResolveOrderInvoicePdfError, type ResolvedOrderInvoicePdf, RssArticle, RssFeed, type S3StoragePluginConfig, SUPER_ADMIN_GROUP_ID, type SendVendorOnboardEmailInput, Seo, type SeoLike, type SeoMetadataOverrides, type SessionUser, type SetPasswordConfig, type SettingsApiConfig, type SmsJobPayload, type SmsPluginConfig, type SmsProviderChoice, type SmsProviderId, type SmsServiceConfig, type SmsServiceInterface, type SocialLinkItem, type SocialMediaPluginConfig, type StorageService, type StorefrontApiConfig, type StorefrontOtpFlags, Tag, Tax, type TemplateContext, type UploadHandlerConfig, User, type UserAuthApiConfig, type UserAvatarConfig, UserGroup, type UserInviteStatus, type UserProfileConfig, type UsersApiConfig, VENDOR_ADMIN_GROUP_ID, VENDOR_GROUP_NAME, VENDOR_OWNER_GROUP_NAME, VENDOR_SCOPED_STORE_ENTITIES, VENDOR_STORE_RBAC_ENTITIES, Vendor, type VendorCatalogCreateFlags, VendorCustomer, type VendorDashboardConfig, type VendorOnboardHandlersConfig, type VendorOwnerActivation, VendorRole, VendorRolePermission, VendorUser, VendorUserProfile, type WhatsAppJobPayload, type WhatsAppPluginConfig, type WhatsAppServiceConfig, type WhatsAppServiceInterface, Wishlist, WishlistItem, ZIP_MIME_TYPES, activeUniqueValueExists, allowRateLimit, analyticsPlugin, applyApprovalStatusSideEffects, applyEventApprovalStatusSideEffects, applyRotatingVendorInvite, applyVendorCustomersContactFilter, applyVendorEventCreateApproval, applyVendorProductCreateApproval, assertCaptchaOk, assertContactAllowedForVendorOrder, assertEventApprovalUpdate, assertProductApprovalUpdate, blogGeneratorPlugin, buildBlogMetadataUserPrompt, buildCaptchaPublicConfig, buildCronFromSchedule, buildEventOrderTemplateVariables, buildLocalInvoicePdfForOrder, buildRssUserPromptFromFeeds, buildUserInviteLink, buildVendorInviteLink, cachePlugin, calculateOrderRefundPreview, calculateRefundFromPolicy, canManageRoles, canManageVendorRoles, canManageVendorTeam, canOnboardVendors, captchaPlugin, checkAndIncrementDiscountUsage, checkEventsEnabled, checkMultiVendorEnabled, cn, completeUserInviteAccept, consumeAppliedDiscountUsages, contactIsVendorCustomer, countDiscountOrdersForContact, countRecentOtpSends, createAnalyticsHandlers, createAuthHelpers, createBlogBySlugHandler, createChangePasswordHandler, createCmsApiHandler, createCmsApp, createCmsAppWithMessaging, createCmsAuthBundle, createCmsMiddleware, createCrudByIdHandler, createCrudHandler, createDashboardStatsHandler, createDataSourceManager, createEcommerceAnalyticsHandler, createEventOrderMessageTemplateHandlers, createForgotPasswordHandler, createFormBySlugHandler, createInviteAcceptHandler, createJobScheduleHandlers, createLlmAgentKnowledgeHandlers, createMediaZipExtractHandler, createMessageTemplateRowLoader, createOtpChallenge, createSetPasswordHandler, createSettingsApiHandlers, createSocialMediaHandlers, createStorefrontApiHandler, createUploadHandler, createUserAuthApiRouter, createUserAvatarHandler, createUserProfileHandler, createUsersApiHandlers, createVendorDashboardHandler, createVendorOnboardHandlers, customerPhoneForEmail, customerPhoneForUser, daysBeforeEventStart, decrementDiscountUsage, deductInventoryForConfirmedOrder, defaultPublicApiMethods, describeEventTierPolicy, emailPlugin, emailTemplates, emitOrderNotificationTrigger, enrichUserWithVendorContext, ensureCustomerForUser, ensureCustomerRecord, ensureMessagingPluginsOnCms, ensureScheduleQueueWorker, ensureVendorCustomerForOrderContact, ensureVendorCustomersForOrder, erpPlugin, explainSessionEntityAccess, fetchSeoBySlug, findActiveRefundPolicyForVendor, findUserByInviteToken, findVendorByInviteToken, fireOrderNotificationTrigger, formatDate, formatDateOnly, formatDateTime, formatTierRange, generateLocalInvoicePdf, generateNumericOtp, generateSlug, getCompanyDetailsFromSettings, getNextAuthOptions, getPermissionableEntityKeys, getPublicSettingsGroup, getRequireEventApproval, getRequireProductApproval, getRequiredPermission, getRssArticleSummaryFromItem, getStorefrontNextAuthOptions, getVendorCatalogCreateFlags, hasEntityPermission, hashOtpCode, hydrateVendorSessionUser, initWhatsappTriggerDispatcher, invalidateEventsCache, invalidateMultiVendorCache, invalidateRequireEventApprovalCache, invalidateRequireProductApprovalCache, invalidateVendorCatalogCreateFlagsCache, isAuthDebugClientEnabled, isAuthDebugEnabled, isCustomerTypeContact, isMaxPerUserUsageReached, isMaxTotalUsageReached, isOpenEndpoint, isOrderEligibleForInvoiceEmail, isPlatformAdministrator, isPublicMethod, isRbacDebugEnabled, isSuperAdmin, isSuperAdminGroupName, isSyntheticCustomerPhone, isVendorAdmin, isVendorGroupName, isVendorOwner, isVendorPortalUser, isVendorStaff, isZipMedia, joinRecipientsForSend, linkUnclaimedContactToUser, llmAgentToChatAgentOptions, llmPlugin, loadPublicThemeSettings, loadSettingsGroupFromDb, loadUserVendorContext, localStoragePlugin, logAuth, logAuthClient, logEntityAccessDecision, logRbac, mergeEmailLayoutCompanyDetails, mergeGuardrailsIntoSystemPrompt, mergeInventoryLines, mergeSeoBySlug, messagingPlugins, metaFetchUserManagedPages, metaPostPageFeed, metaPostPagePhoto, metaResolvePageAccessToken, newUserInviteToken, nextAuthCookieDebugInfo, normalizeCustomerPhone, normalizeInvoiceTemplateId, normalizePhoneE164, normalizeRefundTiers, notificationTriggerEmitter, orderInventorySnapshotFromRow, orderStatusHoldsStock, overlayCmsPlugins, parseBlogGeneratorAgentContent, parseBlogGeneratorModelOutput, parseBlogMetadataEnrichmentJson, parseEmailRecipientsFromConfig, parseHfInferenceEmbeddingBody, parseLlmAgentValidationRules, paymentPlugin, permissionRowsToRecord, pgBossPlugin, pgBossScheduleNameForId, queueEmail, queueErp, queueErpCreateContactIfEnabled, queueErpPaidOrderForOrderId, queueJobScheduleNow, queueOrderPlacedEmails, queuePlugin, queueSms, queueVendorOnboardEmails, queueWhatsApp, rateLimitCheckoutPost, rateLimitKeyForApiRequest, rateLimitPublicApiIfNeeded, reconcileOrderInventoryBetweenSnapshots, recordDiscountUsage, registerEmailQueueProcessor, registerErpQueueProcessor, registerJobRunnerWorker, registerMessagingQueueProcessors, registerSmsQueueProcessor, registerWhatsAppQueueProcessor, relativePathFromMediaParentId, renderEmail, renderLayout, resendOrderNotification, resolveBlogCategoryIdByName, resolveEventOrderTemplate, resolveInvoiceAssetUrl, resolveOrderInvoicePdfBytes, resolvePublicMetadata, resolveSettingsEncryptionKey, resolveVendorIdForContactCheck, resolveVendorScopeFromSessionUser, restoreInventoryForCancelledOrder, retireSoftDeletedUniqueValue, s3StoragePlugin, sanitizeMediaFolderPath, sanitizeStorageSegment, seedAdministratorPermissions, seedDefaultAdmin, sendOrderPlacedEmailsAfterConfirmation, sendVendorOnboardEmails, serializeEmailRecipients, sessionHasEntityAccess, shouldRateLimitPublicWrite, simpleDecrypt, simpleEncrypt, smsPlugin, socialMediaPlugin, streamOrderInvoicePdf, summarizeEntityPerms, summarizeSessionUserForLog, syncJobScheduleToPgBoss, truncateText, validateInventoryForConfirmedOrderLines, validateInventoryForOrderBecomingConfirmed, validateRefundTiers, validateScheduleInput, validateSlug, validateUserMessageAgainstAgentRules, validateUserMessageAgainstStructuredRules, vendorPortalFlagsFromUser, verifyAndConsumeOtpChallenge, verifyOtpCodeHash, whatsappPlugin, withAdminRlsContext, withVendorRlsContext, wrapGetCmsWithMessaging };
|